@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.
package/README.md CHANGED
@@ -33,9 +33,14 @@
33
33
  - [Inactivity Timeout](#inactivity-timeout)
34
34
  - [Queue Limits & Deduplication](#queue-limits--deduplication)
35
35
  - [Node Health Monitoring](#node-health-monitoring)
36
+ - [Zombie Node Detection](#zombie-node-detection)
37
+ - [REST Backpressure](#rest-backpressure)
38
+ - [Track Serialization (Memory Protection)](#track-serialization-memory-protection)
39
+ - [Voice Hot-Swapping](#voice-hot-swapping)
36
40
  - [Smart Autoplay](#smart-autoplay)
37
41
  - [Search with Fallback](#search-with-fallback)
38
42
  - [Audio Filters](#audio-filters)
43
+ - [Plugin Support](#plugin-support)
39
44
  - [Events Reference](#events-reference)
40
45
  - [Configuration Reference](#configuration-reference)
41
46
  - [Requirements](#requirements)
@@ -56,6 +61,11 @@ Unlike other Lavalink clients, StellaLib:
56
61
  - **Has a smart autoplay engine** that picks the best next track based on listening history
57
62
  - **Auto-failover** — when a node dies, players move to healthy nodes automatically
58
63
  - **Proactive health monitoring** — detects overloaded nodes and migrates players *before* they crash
64
+ - **Zombie node detection** — catches frozen Lavalink processes that pass heartbeat checks but stop sending player updates
65
+ - **REST backpressure** — token bucket rate limiter prevents self-DDoS when 100+ users `/play` simultaneously
66
+ - **Voice hot-swapping** — silently reconnects voice when Discord rotates servers, instead of dropping audio
67
+ - **Memory protection** — compact queue serialization reduces RAM by 50-70% at scale
68
+ - **Plugin support** — SponsorBlock, LavaSearch, RoutePlanner, Crossfade, Auto-ducking, and Opus priority
59
69
  - **Handles failures gracefully** with fast first reconnect, exponential backoff, rate limit retries, and search fallback
60
70
 
61
71
  ## How it Works
@@ -605,6 +615,137 @@ const manager = new StellaManager({
605
615
 
606
616
  This is **proactive** failover — it moves players before they experience audio issues, unlike the reactive auto-failover which only triggers when a node dies.
607
617
 
618
+ ## Zombie Node Detection
619
+
620
+ A Lavalink process can freeze internally (deadlock, GC pause, thread starvation) while its TCP connection stays alive — heartbeat pings still return, but `playerUpdate` messages stop. Players hear silence with no errors. StellaLib detects this:
621
+
622
+ ```ts
623
+ const manager = new StellaManager({
624
+ zombieDetection: {
625
+ enabled: true, // Default: true
626
+ checkInterval: 20000, // Check every 20 seconds
627
+ maxSilence: 30000, // Flag as zombie after 30s without playerUpdate
628
+ },
629
+ // ...
630
+ });
631
+
632
+ manager.on("NodeZombie", (node, playersAffected, lastUpdate) => {
633
+ console.log(`🧟 Node ${node.options.identifier} is zombie! ${playersAffected} players affected`);
634
+ });
635
+ ```
636
+
637
+ ```
638
+ Zombie Detection (every 20s)
639
+
640
+ Node A: last playerUpdate 45s ago, 3 playing players ──► ZOMBIE!
641
+ Node B: last playerUpdate 2s ago ──► healthy
642
+
643
+ Move 3 players A → B, terminate A's socket → triggers reconnect
644
+ ```
645
+
646
+ **How it works:**
647
+ 1. Every `playerUpdate` WebSocket message updates `node.lastPlayerUpdate` timestamp
648
+ 2. The Manager checks all connected nodes every 20s (configurable)
649
+ 3. If a node has playing players but no `playerUpdate` in 30s → zombie
650
+ 4. Players are seamlessly moved to healthy (non-zombie) nodes
651
+ 5. The zombie node's socket is terminated, triggering the reconnect cycle
652
+ 6. If no healthy nodes exist, the zombie socket is terminated to force reconnect
653
+
654
+ ## REST Backpressure
655
+
656
+ When 100+ users run `/play` simultaneously, StellaLib can fire hundreds of REST requests at Lavalink in milliseconds. This causes 429 rate limits or even crashes. The token bucket rate limiter prevents this:
657
+
658
+ ```ts
659
+ const manager = new StellaManager({
660
+ restBackpressure: {
661
+ enabled: true,
662
+ maxRequestsPerSecond: 20, // Sustained rate cap
663
+ bucketSize: 40, // Burst allowance
664
+ },
665
+ // ...
666
+ });
667
+
668
+ // Monitor queue depth
669
+ const stats = manager.getStats();
670
+ for (const node of stats.nodes) {
671
+ console.log(`Node ${node.identifier}: ${node.restRequests} requests, pending: ...`);
672
+ }
673
+ ```
674
+
675
+ **How the token bucket works:**
676
+ - The bucket starts full with `bucketSize` tokens (default: 40)
677
+ - Each REST request consumes 1 token
678
+ - Tokens refill at `maxRequestsPerSecond` rate (default: 20/s)
679
+ - If the bucket is empty, requests wait in a FIFO queue until a token is available
680
+ - Bursts are allowed (up to 40 requests instantly), but sustained rate is capped at 20/s
681
+
682
+ ```
683
+ Burst of 50 requests arrives:
684
+ [1-40] → sent immediately (bucket had 40 tokens)
685
+ [41-50] → queued, released at ~50ms intervals (20/s)
686
+ ```
687
+
688
+ ## Track Serialization (Memory Protection)
689
+
690
+ At scale (700+ servers, 50-track queues), each guild's queue holds full Track objects with artwork URLs, plugin metadata, ISRC codes, and custom data. This wastes RAM. `compactQueue()` strips heavy metadata, keeping only what Lavalink needs:
691
+
692
+ ```ts
693
+ // Compact the queue to save memory
694
+ const compacted = player.queue.compactQueue();
695
+ console.log(`Compacted ${compacted} tracks`);
696
+
697
+ // Monitor memory usage
698
+ console.log(`Queue RAM: ~${(player.queue.memoryEstimate / 1024).toFixed(1)} KB`);
699
+
700
+ // Check if a specific track is compacted
701
+ if (StellaQueue.isCompacted(player.queue[0])) {
702
+ console.log("Track is in compact form");
703
+ }
704
+ ```
705
+
706
+ **What's kept (playback essentials):**
707
+ - `track` (base64 encoded — the only thing Lavalink needs)
708
+ - `title`, `author`, `duration`, `uri`, `sourceName`, `identifier`
709
+ - `requester`, `isSeekable`, `isStream`
710
+
711
+ **What's stripped (heavy metadata):**
712
+ - `pluginInfo` (album art URLs, artist URLs, preview URLs)
713
+ - `customData` (user-attached data)
714
+ - `artworkUrl`, `thumbnail`, `isrc`
715
+
716
+ **Typical savings:** A 50-track queue drops from ~120KB to ~35KB per guild (~70% reduction).
717
+
718
+ ## Voice Hot-Swapping
719
+
720
+ Discord periodically rotates voice servers (code 4015) or UDP connections desync (code 4000). Without handling, the player goes silent at 0:00 with no errors. StellaLib now silently re-identifies:
721
+
722
+ ```ts
723
+ manager.on("VoiceReconnect", (player, code) => {
724
+ console.log(`🔄 Player ${player.guild} voice re-identified after code ${code}`);
725
+ });
726
+ ```
727
+
728
+ **How it works:**
729
+ 1. `socketClosed` event fires with code 4015 or 4000
730
+ 2. Instead of cleaning up, StellaLib calls `player.reconnectVoice()`
731
+ 3. A fresh voice state is sent to Discord (re-identify)
732
+ 4. Discord responds with new token + endpoint
733
+ 5. Playback resumes at the current position (~1s gap)
734
+
735
+ **Close code handling:**
736
+
737
+ | Code | Meaning | Action |
738
+ |---|---|---|
739
+ | **4000** | Unknown error (UDP desync) | Auto-reconnect voice |
740
+ | **4006** | Session invalid | Try reconnect, fall back to cleanup |
741
+ | **4014** | Disconnected (kicked from VC) | Clean up player |
742
+ | **4015** | Voice server changed | Auto-reconnect voice |
743
+
744
+ ```ts
745
+ // You can also manually trigger a voice reconnect:
746
+ await player.reconnectVoice();
747
+ ```
748
+
608
749
  ## Smart Autoplay
609
750
 
610
751
  When the queue ends and autoplay is enabled, StellaLib's auto-mix engine picks the best next track.
@@ -661,6 +802,88 @@ const result = await manager.search("natori セレナーデ", userId);
661
802
  | `tv` | Tinny speaker simulation |
662
803
  | `distort` | Audio distortion effect |
663
804
 
805
+ ## Plugin Support
806
+
807
+ ### SponsorBlock (requires [SponsorBlock plugin](https://github.com/topi314/Sponsorblock-Plugin))
808
+
809
+ Auto-skip sponsor segments, intros, outros, and more:
810
+
811
+ ```ts
812
+ // Enable SponsorBlock for a player
813
+ await player.setSponsorBlock(["sponsor", "selfpromo", "intro", "outro"]);
814
+
815
+ // Get current segments
816
+ const segments = await player.getSponsorBlock();
817
+
818
+ // Disable
819
+ await player.clearSponsorBlock();
820
+
821
+ manager.on("SegmentSkipped", (player, segment) => {
822
+ console.log(`Skipped ${segment.category} segment (${segment.start}ms - ${segment.end}ms)`);
823
+ });
824
+ ```
825
+
826
+ ### LavaSearch (requires [LavaSearch plugin](https://github.com/topi314/LavaSearch))
827
+
828
+ Structured search returning tracks, albums, artists, playlists, and text suggestions:
829
+
830
+ ```ts
831
+ const results = await manager.lavaSearch({
832
+ query: "natori",
833
+ types: ["track", "album", "artist"],
834
+ source: "spsearch",
835
+ });
836
+
837
+ console.log(results.tracks); // Track[]
838
+ console.log(results.albums); // Album[]
839
+ console.log(results.artists); // Artist[]
840
+ ```
841
+
842
+ ### RoutePlanner API
843
+
844
+ IP rotation management for anti-429 monitoring:
845
+
846
+ ```ts
847
+ const status = await manager.getRoutePlannerStatus();
848
+ await manager.freeRoutePlannerAddress("1.2.3.4");
849
+ await manager.freeAllRoutePlannerAddresses();
850
+ ```
851
+
852
+ ### Crossfade
853
+
854
+ Smooth volume fade-out transitions between tracks:
855
+
856
+ ```ts
857
+ player.setCrossfade(3000); // 3 second crossfade
858
+
859
+ manager.on("CrossfadeStart", (player, currentTrack, nextTrack) => {
860
+ console.log(`Crossfading: ${currentTrack.title} → ${nextTrack.title}`);
861
+ });
862
+ ```
863
+
864
+ ### Auto-Ducking
865
+
866
+ Temporarily reduce music volume during TTS or voice announcements:
867
+
868
+ ```ts
869
+ player.duck(10); // Reduce to volume 10
870
+ // ... play TTS ...
871
+ player.unduck(); // Restore original volume
872
+
873
+ console.log(player.isDucked); // true/false
874
+ ```
875
+
876
+ ### Opus Priority
877
+
878
+ Prefer Opus-native sources (SoundCloud, YouTube Music) in search results to reduce Lavalink CPU:
879
+
880
+ ```ts
881
+ const manager = new StellaManager({
882
+ opusPriority: true, // Opus-native sources appear first in search results
883
+ // ...
884
+ });
885
+ ```
886
+
664
887
  ## Events Reference
665
888
 
666
889
  | Event | Parameters | Description |
@@ -672,6 +895,7 @@ const result = await manager.search("natori セレナーデ", userId);
672
895
  | `NodeDestroy` | `(node)` | Node destroyed |
673
896
  | `NodeError` | `(node, error)` | Error on node |
674
897
  | `NodeRaw` | `(payload)` | Raw WebSocket message |
898
+ | `NodeZombie` | `(node, playersAffected, lastUpdate)` | Node detected as zombie (frozen) |
675
899
  | `TrackStart` | `(player, track, payload)` | Track started playing |
676
900
  | `TrackEnd` | `(player, track, payload)` | Track finished |
677
901
  | `TrackStuck` | `(player, track, payload)` | Track got stuck |
@@ -684,6 +908,9 @@ const result = await manager.search("natori セレナーデ", userId);
684
908
  | `PlayerStateUpdate` | `(oldPlayer, newPlayer)` | Player state changed |
685
909
  | `PlayerFailover` | `(player, oldNode, newNode)` | Player seamlessly moved to a new node |
686
910
  | `SocketClosed` | `(player, payload)` | Discord voice WebSocket closed for player |
911
+ | `SegmentSkipped` | `(player, segment)` | SponsorBlock segment auto-skipped |
912
+ | `CrossfadeStart` | `(player, currentTrack, nextTrack)` | Crossfade transition started |
913
+ | `VoiceReconnect` | `(player, code)` | Voice connection silently re-identified |
687
914
  | `Debug` | `(message)` | Debug log message |
688
915
 
689
916
  ## Configuration Reference
@@ -700,13 +927,24 @@ interface ManagerOptions {
700
927
  autoPlay?: boolean; // Enable autoplay on queue end
701
928
  defaultSearchPlatform?: SearchPlatform;// Default search source
702
929
  searchFallback?: string[]; // Fallback platforms
930
+ opusPriority?: boolean; // Prefer Opus-native sources in search results
703
931
  sessionStore?: SessionStore; // Session persistence store
704
- playerStateStore?: PlayerStateStore; // Full player state persistence (auto-detected from sessionStore)
932
+ playerStateStore?: PlayerStateStore; // Full player state persistence
705
933
  nodeHealthThresholds?: { // Proactive node health monitoring
706
934
  maxCpuLoad?: number; // Max CPU load (0-1), default: 0.9
707
935
  maxFrameDeficit?: number; // Max frame deficit, default: 500
708
936
  checkInterval?: number; // Check interval (ms), default: 60000
709
937
  };
938
+ zombieDetection?: { // Frozen node detection
939
+ enabled?: boolean; // Default: true
940
+ checkInterval?: number; // Check interval (ms), default: 20000
941
+ maxSilence?: number; // Max silence before zombie flag (ms), default: 30000
942
+ };
943
+ restBackpressure?: { // REST rate limiting (token bucket)
944
+ enabled?: boolean; // Default: false
945
+ maxRequestsPerSecond?: number; // Sustained rate cap, default: 20
946
+ bucketSize?: number; // Burst allowance, default: 40
947
+ };
710
948
  caches?: {
711
949
  enabled: boolean;
712
950
  time: number; // TTL in ms
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../src/Structures/Filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../src/Structures/Filters.ts"],"names":[],"mappings":"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"}
@@ -198,14 +198,14 @@ class Filters {
198
198
  */
199
199
  setVaporwave(status) {
200
200
  if (status) {
201
- return this.setEqualizer(FiltersEqualizers_1.vaporwaveEqualizer)
202
- .setTimescale({ pitch: 0.55 })
203
- .setFilterStatus("vaporwave", status);
201
+ this.applyFilter({ property: "equalizer", value: FiltersEqualizers_1.vaporwaveEqualizer }, false);
202
+ this.applyFilter({ property: "timescale", value: { pitch: 0.55 } }, true);
203
+ return this.setFilterStatus("vaporwave", status);
204
204
  }
205
205
  else {
206
- return this.setEqualizer([])
207
- .setTimescale(null)
208
- .setFilterStatus("vaporwave", status);
206
+ this.applyFilter({ property: "equalizer", value: [] }, false);
207
+ this.applyFilter({ property: "timescale", value: null }, true);
208
+ return this.setFilterStatus("vaporwave", status);
209
209
  }
210
210
  }
211
211
  /**
@@ -279,7 +279,8 @@ class Filters {
279
279
  break;
280
280
  default: throw new Error(`Invalid filter: "${filter}"`);
281
281
  }
282
- await this.updateFilters();
282
+ // Note: individual filter methods already call updateFilters() via applyFilter(),
283
+ // so we don't need to call it again here.
283
284
  return this;
284
285
  }
285
286
  /** Removes all audio effects and resets the filter status. */
@@ -296,13 +297,13 @@ class Filters {
296
297
  tv: false,
297
298
  vaporwave: false,
298
299
  };
299
- this.player.filters = new Filters(this.player);
300
- this.setEqualizer([]);
301
- this.setDistortion(null);
302
- this.setKaraoke(false);
303
- this.setRotation(null);
304
- this.setTimescale(null);
305
- this.setVibrato(null);
300
+ this.distortion = null;
301
+ this.equalizer = [];
302
+ this.karaoke = null;
303
+ this.rotation = null;
304
+ this.timescale = null;
305
+ this.vibrato = null;
306
+ this.volume = 1.0;
306
307
  await this.updateFilters();
307
308
  return this;
308
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sourceRoot":"","sources":["../../src/Structures/Filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sourceRoot":"","sources":["../../src/Structures/Filters.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Derived from LithiumX — Copyright (c) 2025 Anantix Network (MIT)
5
5
  * See LICENSE and THIRD-PARTY-NOTICES.md for full license details.
6
6
  */
7
- import type { NodeOptions, PlayerOptions, TrackData, VoicePacket, VoiceServer, VoiceStateUpdate, SearchPlatform, SearchQuery, SearchResult, ManagerOptions, ManagerEvents, PlayerStateStore } from "./Types";
7
+ import type { NodeOptions, PlayerOptions, TrackData, VoicePacket, VoiceServer, VoiceStateUpdate, SearchPlatform, SearchQuery, SearchResult, ManagerOptions, ManagerEvents, PlayerStateStore, LavaSearchQuery, LavaSearchResult, RoutePlannerStatus } from "./Types";
8
8
  import type { StellaNode } from "./Node";
9
9
  import type { StellaPlayer } from "./Player";
10
10
  import { LRUCache } from "./LRUCache";
@@ -29,6 +29,8 @@ declare class StellaManager extends TypedEmitter<ManagerEvents> {
29
29
  private pruneInterval?;
30
30
  /** Reference to node health check interval for cleanup. */
31
31
  private healthCheckInterval?;
32
+ /** Reference to zombie detection interval for cleanup. */
33
+ private zombieCheckInterval?;
32
34
  /** Returns the nodes sorted by least CPU load. */
33
35
  get leastLoadNode(): Map<string, StellaNode>;
34
36
  /** Returns the nodes sorted by least amount of players. */
@@ -49,6 +51,12 @@ declare class StellaManager extends TypedEmitter<ManagerEvents> {
49
51
  * @param clientId
50
52
  */
51
53
  init(clientId?: string): this;
54
+ /**
55
+ * Detects "zombie" nodes: connected but no longer sending playerUpdates.
56
+ * This catches frozen Lavalink processes that pass TCP/heartbeat checks but
57
+ * have internally deadlocked. Players on zombie nodes hear silence.
58
+ */
59
+ private checkZombieNodes;
52
60
  /**
53
61
  * Checks node health and preemptively migrates players from overloaded nodes.
54
62
  * Called periodically when `nodeHealthThresholds` is configured.
@@ -71,6 +79,40 @@ declare class StellaManager extends TypedEmitter<ManagerEvents> {
71
79
  version: string;
72
80
  }[];
73
81
  }>;
82
+ /**
83
+ * Performs a structured search using the LavaSearch Lavalink plugin.
84
+ * Returns rich results including tracks, albums, artists, playlists, and text suggestions.
85
+ * Requires the LavaSearch plugin to be installed on the Lavalink server.
86
+ *
87
+ * @param query The search query or LavaSearchQuery object.
88
+ * @param requester The user who requested the search.
89
+ * @example
90
+ * ```ts
91
+ * const results = await manager.lavaSearch({ query: "Daft Punk", source: "spotify", types: ["track", "album", "artist"] });
92
+ * console.log(results.tracks, results.albums, results.artists);
93
+ * ```
94
+ */
95
+ lavaSearch(query: string | LavaSearchQuery, requester?: string): Promise<LavaSearchResult>;
96
+ /**
97
+ * Gets the current RoutePlanner status from the Lavalink server.
98
+ * Useful for monitoring IP rotation and identifying failing addresses.
99
+ *
100
+ * @param nodeIdentifier Optional specific node to query. Defaults to best available.
101
+ */
102
+ getRoutePlannerStatus(nodeIdentifier?: string): Promise<RoutePlannerStatus>;
103
+ /**
104
+ * Unmarks a specific IP address as failing in the RoutePlanner.
105
+ *
106
+ * @param address The IP address to free.
107
+ * @param nodeIdentifier Optional specific node. Defaults to best available.
108
+ */
109
+ freeRoutePlannerAddress(address: string, nodeIdentifier?: string): Promise<void>;
110
+ /**
111
+ * Unmarks all failing IP addresses in the RoutePlanner.
112
+ *
113
+ * @param nodeIdentifier Optional specific node. Defaults to best available.
114
+ */
115
+ freeAllRoutePlannerAddresses(nodeIdentifier?: string): Promise<void>;
74
116
  /**
75
117
  * Decodes the base64 encoded tracks and returns a TrackData array.
76
118
  * @param tracks
@@ -93,6 +135,7 @@ declare class StellaManager extends TypedEmitter<ManagerEvents> {
93
135
  get(guild: string): StellaPlayer | undefined;
94
136
  /**
95
137
  * Destroys a player if it exists.
138
+ * Properly cleans up the player (disconnects, stops timers) before removing.
96
139
  * @param guild
97
140
  */
98
141
  destroy(guild: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/Structures/Manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/Structures/Manager.ts"],"names":[],"mappings":"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"}