@stella_project/stellalib 1.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 (64) hide show
  1. package/LICENSE +213 -0
  2. package/README.md +285 -0
  3. package/THIRD-PARTY-NOTICES.md +84 -0
  4. package/dist/Structures/Filters.d.ts +140 -0
  5. package/dist/Structures/Filters.d.ts.map +1 -0
  6. package/dist/Structures/Filters.js +315 -0
  7. package/dist/Structures/Filters.js.map +1 -0
  8. package/dist/Structures/LRUCache.d.ts +36 -0
  9. package/dist/Structures/LRUCache.d.ts.map +1 -0
  10. package/dist/Structures/LRUCache.js +94 -0
  11. package/dist/Structures/LRUCache.js.map +1 -0
  12. package/dist/Structures/Manager.d.ts +146 -0
  13. package/dist/Structures/Manager.d.ts.map +1 -0
  14. package/dist/Structures/Manager.js +503 -0
  15. package/dist/Structures/Manager.js.map +1 -0
  16. package/dist/Structures/Node.d.ts +118 -0
  17. package/dist/Structures/Node.d.ts.map +1 -0
  18. package/dist/Structures/Node.js +927 -0
  19. package/dist/Structures/Node.js.map +1 -0
  20. package/dist/Structures/Player.d.ts +193 -0
  21. package/dist/Structures/Player.d.ts.map +1 -0
  22. package/dist/Structures/Player.js +598 -0
  23. package/dist/Structures/Player.js.map +1 -0
  24. package/dist/Structures/Queue.d.ts +48 -0
  25. package/dist/Structures/Queue.d.ts.map +1 -0
  26. package/dist/Structures/Queue.js +114 -0
  27. package/dist/Structures/Queue.js.map +1 -0
  28. package/dist/Structures/Rest.d.ts +105 -0
  29. package/dist/Structures/Rest.d.ts.map +1 -0
  30. package/dist/Structures/Rest.js +343 -0
  31. package/dist/Structures/Rest.js.map +1 -0
  32. package/dist/Structures/SessionStore.d.ts +42 -0
  33. package/dist/Structures/SessionStore.d.ts.map +1 -0
  34. package/dist/Structures/SessionStore.js +94 -0
  35. package/dist/Structures/SessionStore.js.map +1 -0
  36. package/dist/Structures/Types.d.ts +450 -0
  37. package/dist/Structures/Types.d.ts.map +1 -0
  38. package/dist/Structures/Types.js +13 -0
  39. package/dist/Structures/Types.js.map +1 -0
  40. package/dist/Structures/Utils.d.ts +61 -0
  41. package/dist/Structures/Utils.d.ts.map +1 -0
  42. package/dist/Structures/Utils.js +204 -0
  43. package/dist/Structures/Utils.js.map +1 -0
  44. package/dist/Utils/FiltersEqualizers.d.ts +20 -0
  45. package/dist/Utils/FiltersEqualizers.d.ts.map +1 -0
  46. package/dist/Utils/FiltersEqualizers.js +96 -0
  47. package/dist/Utils/FiltersEqualizers.js.map +1 -0
  48. package/dist/Utils/ManagerCheck.d.ts +9 -0
  49. package/dist/Utils/ManagerCheck.d.ts.map +1 -0
  50. package/dist/Utils/ManagerCheck.js +45 -0
  51. package/dist/Utils/ManagerCheck.js.map +1 -0
  52. package/dist/Utils/NodeCheck.d.ts +9 -0
  53. package/dist/Utils/NodeCheck.d.ts.map +1 -0
  54. package/dist/Utils/NodeCheck.js +31 -0
  55. package/dist/Utils/NodeCheck.js.map +1 -0
  56. package/dist/Utils/PlayerCheck.d.ts +9 -0
  57. package/dist/Utils/PlayerCheck.d.ts.map +1 -0
  58. package/dist/Utils/PlayerCheck.js +23 -0
  59. package/dist/Utils/PlayerCheck.js.map +1 -0
  60. package/dist/index.d.ts +12 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +28 -0
  63. package/dist/index.js.map +1 -0
  64. package/package.json +64 -0
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileSessionStore = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ /**
7
+ * File-based session store that persists Lavalink session IDs to disk.
8
+ * This allows session resume after bot restarts — players keep playing seamlessly.
9
+ *
10
+ * Usage:
11
+ * ```ts
12
+ * const manager = new StellaManager({
13
+ * sessionStore: new FileSessionStore("./sessions.json"),
14
+ * // ...
15
+ * });
16
+ * ```
17
+ */
18
+ class FileSessionStore {
19
+ filePath;
20
+ flushInterval;
21
+ data = {};
22
+ dirty = false;
23
+ writeTimer = null;
24
+ /**
25
+ * @param filePath Path to the JSON file for storing sessions.
26
+ * @param flushInterval How often to write to disk in ms (default: 1000). Set to 0 for immediate writes.
27
+ */
28
+ constructor(filePath, flushInterval = 1000) {
29
+ this.filePath = filePath;
30
+ this.flushInterval = flushInterval;
31
+ this.load();
32
+ }
33
+ /** Load sessions from disk. */
34
+ load() {
35
+ try {
36
+ if ((0, node_fs_1.existsSync)(this.filePath)) {
37
+ const raw = (0, node_fs_1.readFileSync)(this.filePath, "utf-8");
38
+ this.data = JSON.parse(raw);
39
+ }
40
+ }
41
+ catch {
42
+ this.data = {};
43
+ }
44
+ }
45
+ /** Schedule a write to disk (debounced). */
46
+ scheduleFlush() {
47
+ if (this.flushInterval === 0) {
48
+ this.flush();
49
+ return;
50
+ }
51
+ if (this.writeTimer)
52
+ return;
53
+ this.dirty = true;
54
+ this.writeTimer = setTimeout(() => {
55
+ this.flush();
56
+ this.writeTimer = null;
57
+ }, this.flushInterval);
58
+ }
59
+ /** Write sessions to disk immediately. */
60
+ flush() {
61
+ try {
62
+ const dir = (0, node_path_1.dirname)(this.filePath);
63
+ if (!(0, node_fs_1.existsSync)(dir))
64
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true });
65
+ (0, node_fs_1.writeFileSync)(this.filePath, JSON.stringify(this.data, null, 2), "utf-8");
66
+ this.dirty = false;
67
+ }
68
+ catch {
69
+ // Silently fail — best effort persistence
70
+ }
71
+ }
72
+ get(nodeId) {
73
+ return this.data[nodeId] ?? null;
74
+ }
75
+ set(nodeId, sessionId) {
76
+ this.data[nodeId] = sessionId;
77
+ this.scheduleFlush();
78
+ }
79
+ delete(nodeId) {
80
+ delete this.data[nodeId];
81
+ this.scheduleFlush();
82
+ }
83
+ /** Flush and clean up timers. Call on shutdown. */
84
+ destroy() {
85
+ if (this.writeTimer) {
86
+ clearTimeout(this.writeTimer);
87
+ this.writeTimer = null;
88
+ }
89
+ if (this.dirty)
90
+ this.flush();
91
+ }
92
+ }
93
+ exports.FileSessionStore = FileSessionStore;
94
+ //# sourceMappingURL=SessionStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStore.js","sourceRoot":"","sources":["../../src/Structures/SessionStore.ts"],"names":[],"mappings":";;;AAMA,qCAA6E;AAC7E,yCAAoC;AAEpC;;;;;;;;;;;GAWG;AACH,MAAa,gBAAgB;IAUV;IACA;IAVV,IAAI,GAA2B,EAAE,CAAC;IAClC,KAAK,GAAG,KAAK,CAAC;IACd,UAAU,GAAyC,IAAI,CAAC;IAEhE;;;OAGG;IACH,YACkB,QAAgB,EAChB,gBAAgB,IAAI;QADpB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,kBAAa,GAAb,aAAa,CAAO;QAErC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,+BAA+B;IACvB,IAAI;QACX,IAAI,CAAC;YACJ,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IAED,4CAA4C;IACpC,aAAa;QACpB,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;QACR,CAAC;QACD,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACxB,CAAC;IAED,0CAA0C;IACnC,KAAK;QACX,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC;gBAAE,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAA,uBAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACR,0CAA0C;QAC3C,CAAC;IACF,CAAC;IAEM,GAAG,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAClC,CAAC;IAEM,GAAG,CAAC,MAAc,EAAE,SAAiB;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAEM,MAAM,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,mDAAmD;IAC5C,OAAO;QACb,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACD;AA5ED,4CA4EC"}
@@ -0,0 +1,450 @@
1
+ /**
2
+ * @license
3
+ * StellaLib — Copyright (c) 2026 AntonyZ, x2sadddDM, SynX, Astel (OSL-3.0)
4
+ * Derived from LithiumX — Copyright (c) 2025 Anantix Network (MIT)
5
+ * See LICENSE and THIRD-PARTY-NOTICES.md for full license details.
6
+ *
7
+ * Shared type definitions for StellaLib.
8
+ * This file contains all interfaces/types used across multiple modules,
9
+ * extracted here to avoid circular dependency issues.
10
+ */
11
+ /** Detected Lavalink server version (3 or 4). */
12
+ export type LavalinkVersion = 3 | 4;
13
+ export type Sizes = "0" | "1" | "2" | "3" | "default" | "mqdefault" | "hqdefault" | "maxresdefault";
14
+ export type TrackSourceName = "youtube" | "soundcloud" | "spotify" | "deezer" | "bandcamp" | "tidal" | "applemusic" | "jiosaavn" | string;
15
+ export interface PlayerOptions {
16
+ /** The guild the Player belongs to. */
17
+ guild: string;
18
+ /** The text channel the Player belongs to. */
19
+ textChannel?: string;
20
+ /** The voice channel the Player belongs to. */
21
+ voiceChannel?: string;
22
+ /** The node the Player uses. */
23
+ node?: string;
24
+ /** The initial volume the Player will use. */
25
+ volume?: number;
26
+ /** If the player should mute itself. */
27
+ selfMute?: boolean;
28
+ /** If the player should deaf itself. */
29
+ selfDeafen?: boolean;
30
+ }
31
+ /** If track partials are set some of these will be `undefined` as they were removed. */
32
+ export interface Track {
33
+ /** The base64 encoded track. */
34
+ readonly track: string;
35
+ /** The artwork URL of the track. */
36
+ readonly artworkUrl: string;
37
+ /** The track source name. */
38
+ readonly sourceName: TrackSourceName;
39
+ /** The title of the track. */
40
+ title: string;
41
+ /** The identifier of the track. */
42
+ readonly identifier: string;
43
+ /** The author of the track. */
44
+ author: string;
45
+ /** The duration of the track. */
46
+ readonly duration: number;
47
+ /** The ISRC of the track. */
48
+ readonly isrc: string;
49
+ /** If the track is seekable. */
50
+ readonly isSeekable: boolean;
51
+ /** If the track is a stream. */
52
+ readonly isStream: boolean;
53
+ /** The URI of the track. */
54
+ readonly uri: string;
55
+ /** The thumbnail of the track or null if unsupported source. */
56
+ readonly thumbnail: string | null;
57
+ /** The user that requested the track. */
58
+ readonly requester: string | null | undefined;
59
+ /** Displays the track thumbnail with optional size. */
60
+ displayThumbnail(size?: Sizes): string | null;
61
+ /** Additional track info provided by plugins. */
62
+ pluginInfo: TrackPluginInfo;
63
+ /** Add your own data to the track. */
64
+ customData: Record<string, unknown>;
65
+ }
66
+ export interface TrackPluginInfo {
67
+ albumName?: string;
68
+ albumUrl?: string;
69
+ artistArtworkUrl?: string;
70
+ artistUrl?: string;
71
+ isPreview?: string;
72
+ previewUrl?: string;
73
+ [key: string]: string | undefined;
74
+ }
75
+ /** Unresolved tracks can't be played normally, they will resolve before playing into a Track. */
76
+ export interface UnresolvedTrack extends Partial<Track> {
77
+ /** The title to search against. */
78
+ title: string;
79
+ /** The author to search against. */
80
+ author?: string;
81
+ /** The duration to search within 1500 milliseconds of the results. */
82
+ duration?: number;
83
+ /** Resolves into a Track. */
84
+ resolve(): Promise<void>;
85
+ }
86
+ export interface PlayOptions {
87
+ /** The position to start the track. */
88
+ readonly startTime?: number;
89
+ /** The position to end the track. */
90
+ readonly endTime?: number;
91
+ /** Whether to not replace the track if a play payload is sent. */
92
+ readonly noReplace?: boolean;
93
+ }
94
+ export interface EqualizerBand {
95
+ /** The band number being 0 to 14. */
96
+ band: number;
97
+ /** The gain amount being -0.25 to 1.00, 0.25 being double. */
98
+ gain: number;
99
+ }
100
+ export interface NodeOptions {
101
+ /** The host for the node. */
102
+ host: string;
103
+ /** The port for the node. */
104
+ port?: number;
105
+ /** The password for the node. */
106
+ password?: string;
107
+ /** Whether the host uses SSL. */
108
+ secure?: boolean;
109
+ /** The identifier for the node. */
110
+ identifier?: string;
111
+ /** The retryAmount for the node. */
112
+ retryAmount?: number;
113
+ /** The retryDelay for the node (ms). */
114
+ retryDelay?: number;
115
+ /** Whether to resume the previous session. */
116
+ resumeStatus?: boolean;
117
+ /** The timeout for session resume (seconds). */
118
+ resumeTimeout?: number;
119
+ /** The timeout used for API calls (ms). */
120
+ requestTimeout?: number;
121
+ /** Priority of the node (higher = more likely to be selected). */
122
+ priority?: number;
123
+ /** Heartbeat interval in ms to detect dead connections (0 = disabled, default: 30000). */
124
+ heartbeatInterval?: number;
125
+ }
126
+ export interface NodeStats {
127
+ players: number;
128
+ playingPlayers: number;
129
+ uptime: number;
130
+ memory: MemoryStats;
131
+ cpu: CPUStats;
132
+ frameStats: FrameStats;
133
+ }
134
+ export interface MemoryStats {
135
+ free: number;
136
+ used: number;
137
+ allocated: number;
138
+ reservable: number;
139
+ }
140
+ export interface CPUStats {
141
+ cores: number;
142
+ systemLoad: number;
143
+ lavalinkLoad: number;
144
+ }
145
+ export interface FrameStats {
146
+ sent?: number;
147
+ nulled?: number;
148
+ deficit?: number;
149
+ }
150
+ export interface LavalinkInfo {
151
+ version: {
152
+ semver: string;
153
+ major: number;
154
+ minor: number;
155
+ patch: number;
156
+ preRelease: string;
157
+ };
158
+ buildTime: number;
159
+ git: {
160
+ branch: string;
161
+ commit: string;
162
+ commitTime: number;
163
+ };
164
+ jvm: string;
165
+ lavaplayer: string;
166
+ sourceManagers: string[];
167
+ filters: string[];
168
+ plugins: {
169
+ name: string;
170
+ version: string;
171
+ }[];
172
+ }
173
+ export interface VoiceState {
174
+ op: "voiceUpdate";
175
+ guildId: string;
176
+ event: VoiceServer;
177
+ sessionId?: string;
178
+ channelId?: string;
179
+ }
180
+ export interface VoiceServer {
181
+ token: string;
182
+ guild_id: string;
183
+ endpoint: string;
184
+ }
185
+ export interface VoiceStateUpdate {
186
+ guild_id: string;
187
+ user_id: string;
188
+ session_id: string;
189
+ channel_id: string;
190
+ }
191
+ export interface VoicePacket {
192
+ t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE";
193
+ d: VoiceStateUpdate | VoiceServer;
194
+ }
195
+ export type LoadType = "track" | "playlist" | "search" | "empty" | "error";
196
+ export type State = "CONNECTED" | "CONNECTING" | "DISCONNECTED" | "DISCONNECTING" | "DESTROYING" | "MOVING";
197
+ export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent";
198
+ export type TrackEndReason = "finished" | "loadFailed" | "stopped" | "replaced" | "cleanup";
199
+ export type Severity = "common" | "suspicious" | "fault";
200
+ export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent;
201
+ export interface TrackData {
202
+ /** The base64 encoded track. */
203
+ encoded: string;
204
+ /** The detailed track information. */
205
+ info: TrackDataInfo;
206
+ /** Additional track info provided by plugins. */
207
+ pluginInfo: Record<string, string>;
208
+ }
209
+ export interface TrackDataInfo {
210
+ identifier: string;
211
+ isSeekable: boolean;
212
+ author: string;
213
+ length: number;
214
+ isrc?: string;
215
+ isStream: boolean;
216
+ title: string;
217
+ uri?: string;
218
+ artworkUrl?: string;
219
+ sourceName?: TrackSourceName;
220
+ }
221
+ export interface PlayerEvent {
222
+ op: "event";
223
+ type: PlayerEventType;
224
+ guildId: string;
225
+ }
226
+ export interface Exception {
227
+ message: string;
228
+ severity: Severity;
229
+ cause: string;
230
+ }
231
+ export interface TrackStartEvent extends PlayerEvent {
232
+ type: "TrackStartEvent";
233
+ track: TrackData;
234
+ }
235
+ export interface TrackEndEvent extends PlayerEvent {
236
+ type: "TrackEndEvent";
237
+ track: TrackData;
238
+ reason: TrackEndReason;
239
+ }
240
+ export interface TrackExceptionEvent extends PlayerEvent {
241
+ type: "TrackExceptionEvent";
242
+ exception?: Exception;
243
+ guildId: string;
244
+ }
245
+ export interface TrackStuckEvent extends PlayerEvent {
246
+ type: "TrackStuckEvent";
247
+ thresholdMs: number;
248
+ }
249
+ export interface WebSocketClosedEvent extends PlayerEvent {
250
+ type: "WebSocketClosedEvent";
251
+ code: number;
252
+ reason: string;
253
+ byRemote: boolean;
254
+ }
255
+ export interface PlayerUpdate {
256
+ op: "playerUpdate";
257
+ guildId: string;
258
+ state: {
259
+ time: number;
260
+ position: number;
261
+ connected: boolean;
262
+ ping: number;
263
+ };
264
+ }
265
+ export interface NodeMessage extends NodeStats {
266
+ type: PlayerEventType;
267
+ op: "stats" | "playerUpdate" | "event";
268
+ guildId: string;
269
+ }
270
+ export interface UnresolvedQuery {
271
+ /** The title of the unresolved track. */
272
+ title: string;
273
+ /** The author of the unresolved track. */
274
+ author?: string;
275
+ /** The duration of the unresolved track. */
276
+ duration?: number;
277
+ }
278
+ export interface RestPlayOptions {
279
+ guildId: string;
280
+ data: {
281
+ /** The base64 encoded track. */
282
+ encodedTrack?: string | null;
283
+ /** The track identifier. */
284
+ identifier?: string;
285
+ /** The track time to start at. */
286
+ startTime?: number;
287
+ /** The track time to end at. */
288
+ endTime?: number;
289
+ /** The player volume level. */
290
+ volume?: number;
291
+ /** The player position in a track. */
292
+ position?: number;
293
+ /** Whether the player is paused. */
294
+ paused?: boolean;
295
+ /** The audio filters. */
296
+ filters?: object;
297
+ /** Voice connection payload. */
298
+ voice?: {
299
+ token: string;
300
+ sessionId: string;
301
+ endpoint: string;
302
+ channelId?: string;
303
+ };
304
+ /** Whether to not replace the current track. */
305
+ noReplace?: boolean;
306
+ };
307
+ }
308
+ export type Method = "GET" | "POST" | "PATCH" | "DELETE";
309
+ export interface Payload {
310
+ /** The OP code */
311
+ op: number;
312
+ d: {
313
+ guild_id: string;
314
+ channel_id: string | null;
315
+ self_mute: boolean;
316
+ self_deaf: boolean;
317
+ };
318
+ }
319
+ export type SearchPlatform = "deezer" | "soundcloud" | "youtube music" | "youtube" | "spotify" | "jiosaavn" | "tidal" | "applemusic" | "bandcamp";
320
+ export interface SearchQuery {
321
+ /** The source to search from. */
322
+ source?: SearchPlatform | string;
323
+ /** The query to search for. */
324
+ query: string;
325
+ }
326
+ export interface LavalinkResponse {
327
+ loadType: LoadType;
328
+ data: TrackData[] | PlaylistRawData;
329
+ }
330
+ export interface SearchResult {
331
+ /** The load type of the result. */
332
+ loadType: LoadType;
333
+ /** The array of tracks from the result. */
334
+ tracks: Track[];
335
+ /** The playlist info if the load type is 'playlist'. */
336
+ playlist?: PlaylistData;
337
+ }
338
+ export interface PlaylistRawData {
339
+ info: {
340
+ /** The playlist name. */
341
+ name: string;
342
+ };
343
+ /** Addition info provided by plugins. */
344
+ pluginInfo: object;
345
+ /** The tracks of the playlist. */
346
+ tracks: TrackData[];
347
+ }
348
+ export interface PlaylistData {
349
+ /** The playlist name. */
350
+ name: string;
351
+ /** The length of the playlist. */
352
+ duration: number;
353
+ /** The songs of the playlist. */
354
+ tracks: Track[];
355
+ }
356
+ /** Interface for persisting session IDs across bot restarts. */
357
+ export interface SessionStore {
358
+ /** Load a saved session ID for a node identifier. */
359
+ get(nodeId: string): Promise<string | null> | string | null;
360
+ /** Save a session ID for a node identifier. */
361
+ set(nodeId: string, sessionId: string): Promise<void> | void;
362
+ /** Delete a saved session ID. */
363
+ delete(nodeId: string): Promise<void> | void;
364
+ }
365
+ /** Snapshot of a player's state, used for resume after reconnect. */
366
+ export interface PlayerStateSnapshot {
367
+ guildId: string;
368
+ track: string | null;
369
+ position: number;
370
+ volume: number;
371
+ paused: boolean;
372
+ filters: object;
373
+ voiceChannelId: string | null;
374
+ textChannelId: string | null;
375
+ trackRepeat: boolean;
376
+ queueRepeat: boolean;
377
+ dynamicRepeat: boolean;
378
+ }
379
+ export interface ManagerOptions {
380
+ /** Use priority mode over least amount of player or load? */
381
+ usePriority?: boolean;
382
+ /** Use the least amount of players or least load? */
383
+ useNode?: "leastLoad" | "leastPlayers";
384
+ /** The array of nodes to connect to. */
385
+ nodes?: NodeOptions[];
386
+ /** The client ID to use. */
387
+ clientId?: string;
388
+ /** Value to use for the `Client-Name` header. */
389
+ clientName?: string;
390
+ /** The shard count. */
391
+ shards?: number;
392
+ /** A array of plugins to use. */
393
+ plugins?: any[];
394
+ /** Whether players should automatically play the next song. */
395
+ autoPlay?: boolean;
396
+ /** An array of track properties to keep. `track` will always be present. */
397
+ trackPartial?: string[];
398
+ /** The default search platform to use. */
399
+ defaultSearchPlatform?: SearchPlatform;
400
+ /**
401
+ * Fallback search platforms to try when the primary returns empty.
402
+ * Tried in order until one returns results.
403
+ * Example: ["soundcloud", "deezer", "spotify"]
404
+ */
405
+ searchFallback?: SearchPlatform[];
406
+ /** Whether the YouTube video titles should be replaced. */
407
+ replaceYouTubeCredentials?: boolean;
408
+ /** Cache settings for search results. */
409
+ caches?: {
410
+ /** Whether to cache the search results. */
411
+ enabled: boolean;
412
+ /** The time to cache the search results (ms). */
413
+ time: number;
414
+ /** Maximum number of cached search results (default: 200). */
415
+ maxSize?: number;
416
+ };
417
+ /** Session store for persisting session IDs across bot restarts. */
418
+ sessionStore?: SessionStore;
419
+ /**
420
+ * Function to send data to the Discord websocket.
421
+ * @param id Guild ID
422
+ * @param payload The payload to send
423
+ */
424
+ send(id: string, payload: Payload): void;
425
+ }
426
+ export interface ManagerEvents {
427
+ NodeCreate: (node: any) => void;
428
+ NodeDestroy: (node: any) => void;
429
+ NodeConnect: (node: any) => void;
430
+ NodeReconnect: (node: any) => void;
431
+ NodeDisconnect: (node: any, reason: {
432
+ code?: number;
433
+ reason?: string;
434
+ }) => void;
435
+ NodeError: (node: any, error: Error) => void;
436
+ NodeRaw: (payload: unknown) => void;
437
+ PlayerCreate: (player: any) => void;
438
+ PlayerDestroy: (player: any) => void;
439
+ PlayerStateUpdate: (oldPlayer: any, newPlayer: any) => void;
440
+ PlayerMove: (player: any, initChannel: string, newChannel: string) => void;
441
+ PlayerDisconnect: (player: any, oldChannel: string) => void;
442
+ QueueEnd: (player: any, track: Track | UnresolvedTrack, payload: TrackEndEvent) => void;
443
+ SocketClosed: (player: any, payload: WebSocketClosedEvent) => void;
444
+ TrackStart: (player: any, track: Track, payload: TrackStartEvent) => void;
445
+ TrackEnd: (player: any, track: Track, payload: TrackEndEvent) => void;
446
+ TrackStuck: (player: any, track: Track, payload: TrackStuckEvent) => void;
447
+ TrackError: (player: any, track: Track | UnresolvedTrack, payload: TrackExceptionEvent | unknown) => void;
448
+ Debug: (message: string) => void;
449
+ }
450
+ //# sourceMappingURL=Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/Structures/Types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * StellaLib — Copyright (c) 2026 AntonyZ, x2sadddDM, SynX, Astel (OSL-3.0)
5
+ * Derived from LithiumX — Copyright (c) 2025 Anantix Network (MIT)
6
+ * See LICENSE and THIRD-PARTY-NOTICES.md for full license details.
7
+ *
8
+ * Shared type definitions for StellaLib.
9
+ * This file contains all interfaces/types used across multiple modules,
10
+ * extracted here to avoid circular dependency issues.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ //# sourceMappingURL=Types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/Structures/Types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ * StellaLib — Copyright (c) 2026 AntonyZ, x2sadddDM, SynX, Astel (OSL-3.0)
4
+ * Derived from LithiumX — Copyright (c) 2025 Anantix Network (MIT)
5
+ * See LICENSE and THIRD-PARTY-NOTICES.md for full license details.
6
+ */
7
+ import type { Track, UnresolvedTrack, UnresolvedQuery, TrackData } from "./Types";
8
+ declare abstract class TrackUtils {
9
+ static trackPartial: string[] | null;
10
+ private static manager;
11
+ /** @hidden */
12
+ static init(manager: any): void;
13
+ static setTrackPartial(partial: string[]): void;
14
+ /**
15
+ * Checks if the provided argument is a valid Track or UnresolvedTrack.
16
+ * If provided an array then every element will be checked.
17
+ */
18
+ static validate(trackOrTracks: unknown): boolean;
19
+ /** Checks if the provided argument is a valid UnresolvedTrack. */
20
+ static isUnresolvedTrack(track: unknown): boolean;
21
+ /** Checks if the provided argument is a valid Track. */
22
+ static isTrack(track: unknown): boolean;
23
+ /**
24
+ * Builds a Track from the raw data from Lavalink and an optional requester.
25
+ * @param data The raw data from Lavalink.
26
+ * @param requester The user who requested the track.
27
+ */
28
+ static build(data: TrackData, requester?: string): Track;
29
+ /**
30
+ * Builds an UnresolvedTrack to be resolved before being played.
31
+ * @param query The query to search for.
32
+ * @param requester The user who requested the track.
33
+ */
34
+ static buildUnresolved(query: string | UnresolvedQuery, requester?: string): UnresolvedTrack;
35
+ static getClosestTrack(unresolvedTrack: UnresolvedTrack): Promise<Track>;
36
+ }
37
+ /** Gets or extends structures to extend the built in, or already extended, classes to add more functionality. */
38
+ declare abstract class Structure {
39
+ /**
40
+ * Extends a class.
41
+ * @param name
42
+ * @param extender
43
+ */
44
+ static extend<K extends keyof Extendable, T extends Extendable[K]>(name: K, extender: (target: Extendable[K]) => T): T;
45
+ /**
46
+ * Get a structure from available structures by name.
47
+ * @param name
48
+ */
49
+ static get<K extends keyof Extendable>(name: K): Extendable[K];
50
+ }
51
+ declare class Plugin {
52
+ load(_manager: any): void;
53
+ unload(_manager: any): void;
54
+ }
55
+ interface Extendable {
56
+ Player: any;
57
+ Queue: any;
58
+ Node: any;
59
+ }
60
+ export { TrackUtils, Structure, Plugin, Extendable, };
61
+ //# sourceMappingURL=Utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/Structures/Utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACX,KAAK,EACL,eAAe,EACf,eAAe,EAEf,SAAS,EAGT,MAAM,SAAS,CAAC;AAWjB,uBAAe,UAAU;IACxB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAC5C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAM;IAE5B,cAAc;WACA,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAItC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAO/C;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO;IAiBhD,kEAAkE;IAClE,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMjD,wDAAwD;IACxD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMvC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK;IAqDxD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;WAwB/E,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;CAoC9E;AAED,iHAAiH;AACjH,uBAAe,SAAS;IACvB;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EACvE,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GACpC,CAAC;IAQJ;;;OAGG;WACW,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CAKrE;AAED,cAAM,MAAM;IACJ,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IACzB,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;CAClC;AAED,UAAU,UAAU;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;CACV;AAcD,OAAO,EACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,UAAU,GACV,CAAC"}