lavalink-client 2.3.4 → 2.3.6

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 (65) hide show
  1. package/README.md +225 -2
  2. package/dist/cjs/index.d.ts +16 -16
  3. package/dist/cjs/index.js +16 -16
  4. package/dist/cjs/structures/Constants.d.ts +2 -1
  5. package/dist/cjs/structures/Constants.js +1 -0
  6. package/dist/cjs/structures/CustomSearches/BandCampSearch.d.ts +2 -2
  7. package/dist/cjs/structures/Filters.d.ts +2 -2
  8. package/dist/cjs/structures/Filters.js +1 -1
  9. package/dist/cjs/structures/LavalinkManager.d.ts +6 -6
  10. package/dist/cjs/structures/LavalinkManager.js +5 -5
  11. package/dist/cjs/structures/LavalinkManagerStatics.d.ts +3 -1
  12. package/dist/cjs/structures/LavalinkManagerStatics.js +11 -2
  13. package/dist/cjs/structures/Node.d.ts +86 -6
  14. package/dist/cjs/structures/Node.js +147 -3
  15. package/dist/cjs/structures/NodeManager.d.ts +4 -4
  16. package/dist/cjs/structures/NodeManager.js +3 -3
  17. package/dist/cjs/structures/Player.d.ts +53 -10
  18. package/dist/cjs/structures/Player.js +55 -5
  19. package/dist/cjs/structures/Queue.d.ts +3 -3
  20. package/dist/cjs/structures/Queue.js +1 -1
  21. package/dist/cjs/structures/Types/Filters.d.ts +1 -1
  22. package/dist/cjs/structures/Types/Manager.d.ts +25 -7
  23. package/dist/cjs/structures/Types/Node.d.ts +26 -3
  24. package/dist/cjs/structures/Types/Player.d.ts +5 -5
  25. package/dist/cjs/structures/Types/Queue.d.ts +1 -1
  26. package/dist/cjs/structures/Types/Track.d.ts +3 -3
  27. package/dist/cjs/structures/Types/Utils.d.ts +68 -10
  28. package/dist/cjs/structures/Utils.d.ts +6 -6
  29. package/dist/cjs/structures/Utils.js +11 -2
  30. package/dist/esm/index.d.ts +16 -16
  31. package/dist/esm/index.js +16 -16
  32. package/dist/esm/structures/Constants.d.ts +2 -1
  33. package/dist/esm/structures/Constants.js +1 -0
  34. package/dist/esm/structures/CustomSearches/BandCampSearch.d.ts +2 -2
  35. package/dist/esm/structures/Filters.d.ts +2 -2
  36. package/dist/esm/structures/Filters.js +1 -1
  37. package/dist/esm/structures/LavalinkManager.d.ts +6 -6
  38. package/dist/esm/structures/LavalinkManager.js +5 -5
  39. package/dist/esm/structures/LavalinkManagerStatics.d.ts +3 -1
  40. package/dist/esm/structures/LavalinkManagerStatics.js +11 -2
  41. package/dist/esm/structures/Node.d.ts +86 -6
  42. package/dist/esm/structures/Node.js +147 -3
  43. package/dist/esm/structures/NodeManager.d.ts +4 -4
  44. package/dist/esm/structures/NodeManager.js +3 -3
  45. package/dist/esm/structures/Player.d.ts +53 -10
  46. package/dist/esm/structures/Player.js +55 -5
  47. package/dist/esm/structures/Queue.d.ts +3 -3
  48. package/dist/esm/structures/Queue.js +1 -1
  49. package/dist/esm/structures/Types/Filters.d.ts +1 -1
  50. package/dist/esm/structures/Types/Manager.d.ts +25 -7
  51. package/dist/esm/structures/Types/Node.d.ts +26 -3
  52. package/dist/esm/structures/Types/Player.d.ts +5 -5
  53. package/dist/esm/structures/Types/Queue.d.ts +1 -1
  54. package/dist/esm/structures/Types/Track.d.ts +3 -3
  55. package/dist/esm/structures/Types/Utils.d.ts +68 -10
  56. package/dist/esm/structures/Utils.d.ts +6 -6
  57. package/dist/esm/structures/Utils.js +11 -2
  58. package/dist/types/structures/Constants.d.ts +1 -0
  59. package/dist/types/structures/LavalinkManagerStatics.d.ts +2 -0
  60. package/dist/types/structures/Node.d.ts +81 -1
  61. package/dist/types/structures/Player.d.ts +43 -0
  62. package/dist/types/structures/Types/Manager.d.ts +19 -1
  63. package/dist/types/structures/Types/Node.d.ts +23 -0
  64. package/dist/types/structures/Types/Utils.d.ts +64 -6
  65. package/package.json +1 -1
@@ -4,7 +4,7 @@ import type { LavalinkNodeOptions } from "./Node";
4
4
  import type { DestroyReasonsType, PlayerJson } from "./Player";
5
5
  import type { ManagerQueueOptions } from "./Queue";
6
6
  import type { Track, UnresolvedTrack } from "./Track";
7
- import type { GuildShardPayload, SearchPlatform, SponsorBlockChaptersLoaded, SponsorBlockChapterStarted, SponsorBlockSegmentSkipped, SponsorBlockSegmentsLoaded, TrackExceptionEvent, TrackEndEvent, TrackStuckEvent, WebSocketClosedEvent, TrackStartEvent } from "./Utils";
7
+ import type { GuildShardPayload, SearchPlatform, SponsorBlockChaptersLoaded, SponsorBlockChapterStarted, SponsorBlockSegmentSkipped, SponsorBlockSegmentsLoaded, TrackExceptionEvent, TrackEndEvent, TrackStuckEvent, WebSocketClosedEvent, TrackStartEvent, LyricsFoundEvent, LyricsNotFoundEvent, LyricsLineEvent } from "./Utils";
8
8
  /**
9
9
  * The events from the lavalink Manager
10
10
  */
@@ -114,6 +114,24 @@ export interface LavalinkManagerEvents {
114
114
  error?: Error | string;
115
115
  functionLayer: string;
116
116
  }) => void;
117
+ /**
118
+ * Emitted when a Lyrics line is received
119
+ * @link https://github.com/topi314/LavaLyrics
120
+ * @event Manager#LyricsLine
121
+ */
122
+ "LyricsLine": (player: Player, track: Track | UnresolvedTrack | null, payload: LyricsLineEvent) => void;
123
+ /**
124
+ * Emitted when a Lyrics is found
125
+ * @link https://github.com/topi314/LavaLyrics
126
+ * @event Manager#LyricsFound
127
+ */
128
+ "LyricsFound": (player: Player, track: Track | UnresolvedTrack | null, payload: LyricsFoundEvent) => void;
129
+ /**
130
+ * Emitted when a Lyrics is not found
131
+ * @link https://github.com/topi314/LavaLyrics
132
+ * @event Manager#LyricsNotFound
133
+ */
134
+ "LyricsNotFound": (player: Player, track: Track | UnresolvedTrack | null, payload: LyricsNotFoundEvent) => void;
117
135
  }
118
136
  /**
119
137
  * The Bot client Options needed for the manager
@@ -3,6 +3,7 @@ import type internal from "stream";
3
3
  import type { LavalinkNode } from "../Node";
4
4
  import type { DestroyReasonsType } from "./Player";
5
5
  import type { InvalidLavalinkRestRequest, LavalinkPlayer } from "./Utils";
6
+ import type { PluginInfo } from "./Track";
6
7
  /** Ability to manipulate fetch requests */
7
8
  export type ModifyRequest = (options: RequestInit & {
8
9
  path: string;
@@ -157,6 +158,28 @@ export interface PluginObject {
157
158
  /** The version of the plugin */
158
159
  version: string;
159
160
  }
161
+ export interface LyricsResult {
162
+ /**The name of the source */
163
+ sourceName: string;
164
+ /**The name of the provider */
165
+ provider: string;
166
+ /**The result text */
167
+ text: string | null;
168
+ /**The lyrics lines */
169
+ lines: LyricsLine[];
170
+ /**Information about the plugin */
171
+ plugin: PluginInfo;
172
+ }
173
+ export interface LyricsLine {
174
+ /**The millisecond timestamp */
175
+ timestamp: number;
176
+ /**The line duration in milliseconds */
177
+ duration: number | null;
178
+ /**The line text */
179
+ line: string;
180
+ /**Information about the plugin */
181
+ plugin: PluginInfo;
182
+ }
160
183
  export type LavalinkNodeIdentifier = string;
161
184
  export interface NodeManagerEvents {
162
185
  /**
@@ -1,6 +1,6 @@
1
1
  import type { MiniMap } from "../Utils";
2
2
  import type { LavalinkFilterData } from "./Filters";
3
- import type { NodeStats } from "./Node";
3
+ import type { LyricsLine, LyricsResult, NodeStats } from "./Node";
4
4
  import type { LavalinkPlayOptions } from "./Player";
5
5
  import type { LavalinkTrack, PluginInfo, Track, UnresolvedTrack } from "./Track";
6
6
  /** Helper for generating Opaque types. */
@@ -13,15 +13,16 @@ export type IntegerNumber = Opaque<number, 'Int'>;
13
13
  export type FloatNumber = Opaque<number, 'Float'>;
14
14
  export type LavaSrcSearchPlatformBase = "spsearch" | "sprec" | "amsearch" | "dzsearch" | "dzisrc" | "ymsearch";
15
15
  export type LavaSrcSearchPlatform = LavaSrcSearchPlatformBase | "ftts";
16
+ export type JioSaavnSearchPlatform = "jssearch" | "jsrec";
16
17
  export type DuncteSearchPlatform = "speak" | "phsearch" | "pornhub" | "porn" | "tts";
17
18
  export type LavalinkClientSearchPlatform = "bcsearch";
18
19
  export type LavalinkClientSearchPlatformResolve = "bandcamp" | "bc";
19
- export type LavalinkSearchPlatform = "ytsearch" | "ytmsearch" | "scsearch" | "bcsearch" | LavaSrcSearchPlatform | DuncteSearchPlatform | LavalinkClientSearchPlatform;
20
+ export type LavalinkSearchPlatform = "ytsearch" | "ytmsearch" | "scsearch" | "bcsearch" | LavaSrcSearchPlatform | DuncteSearchPlatform | JioSaavnSearchPlatform | LavalinkClientSearchPlatform;
20
21
  export type ClientCustomSearchPlatformUtils = "local" | "http" | "https" | "link" | "uri";
21
22
  export type ClientSearchPlatform = ClientCustomSearchPlatformUtils | // for file/link requests
22
- "youtube" | "yt" | "youtube music" | "youtubemusic" | "ytm" | "musicyoutube" | "music youtube" | "soundcloud" | "sc" | "am" | "apple music" | "applemusic" | "apple" | "musicapple" | "music apple" | "sp" | "spsuggestion" | "spotify" | "spotify.com" | "spotifycom" | "dz" | "deezer" | "yandex" | "yandex music" | "yandexmusic" | "flowerytts" | "flowery" | "flowery.tts" | LavalinkClientSearchPlatformResolve | LavalinkClientSearchPlatform;
23
+ "youtube" | "yt" | "youtube music" | "youtubemusic" | "ytm" | "musicyoutube" | "music youtube" | "soundcloud" | "sc" | "am" | "apple music" | "applemusic" | "apple" | "musicapple" | "music apple" | "sp" | "spsuggestion" | "spotify" | "spotify.com" | "spotifycom" | "dz" | "deezer" | "yandex" | "yandex music" | "yandexmusic" | "flowerytts" | "flowery" | "flowery.tts" | LavalinkClientSearchPlatformResolve | LavalinkClientSearchPlatform | "js" | "jiosaavn";
23
24
  export type SearchPlatform = LavalinkSearchPlatform | ClientSearchPlatform;
24
- export type SourcesRegex = "YoutubeRegex" | "YoutubeMusicRegex" | "SoundCloudRegex" | "SoundCloudMobileRegex" | "DeezerTrackRegex" | "DeezerArtistRegex" | "DeezerEpisodeRegex" | "DeezerMixesRegex" | "DeezerPageLinkRegex" | "DeezerPlaylistRegex" | "DeezerAlbumRegex" | "AllDeezerRegex" | "AllDeezerRegexWithoutPageLink" | "SpotifySongRegex" | "SpotifyPlaylistRegex" | "SpotifyArtistRegex" | "SpotifyEpisodeRegex" | "SpotifyShowRegex" | "SpotifyAlbumRegex" | "AllSpotifyRegex" | "mp3Url" | "m3uUrl" | "m3u8Url" | "mp4Url" | "m4aUrl" | "wavUrl" | "aacpUrl" | "tiktok" | "mixcloud" | "musicYandex" | "radiohost" | "bandcamp" | "appleMusic" | "TwitchTv" | "vimeo";
25
+ export type SourcesRegex = "YoutubeRegex" | "YoutubeMusicRegex" | "SoundCloudRegex" | "SoundCloudMobileRegex" | "DeezerTrackRegex" | "DeezerArtistRegex" | "DeezerEpisodeRegex" | "DeezerMixesRegex" | "DeezerPageLinkRegex" | "DeezerPlaylistRegex" | "DeezerAlbumRegex" | "AllDeezerRegex" | "AllDeezerRegexWithoutPageLink" | "SpotifySongRegex" | "SpotifyPlaylistRegex" | "SpotifyArtistRegex" | "SpotifyEpisodeRegex" | "SpotifyShowRegex" | "SpotifyAlbumRegex" | "AllSpotifyRegex" | "mp3Url" | "m3uUrl" | "m3u8Url" | "mp4Url" | "m4aUrl" | "wavUrl" | "aacpUrl" | "tiktok" | "mixcloud" | "musicYandex" | "radiohost" | "bandcamp" | "jiosaavn" | "appleMusic" | "TwitchTv" | "vimeo";
25
26
  export interface PlaylistInfo {
26
27
  /** The playlist name */
27
28
  name: string;
@@ -62,7 +63,7 @@ export interface MiniMapConstructor {
62
63
  readonly prototype: MiniMap<unknown, unknown>;
63
64
  readonly [Symbol.species]: MiniMapConstructor;
64
65
  }
65
- export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent | SponsorBlockSegmentEvents;
66
+ export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent | SponsorBlockSegmentEvents | LyricsEvent;
66
67
  export type Severity = "COMMON" | "SUSPICIOUS" | "FAULT";
67
68
  export interface Exception {
68
69
  /** Severity of the error */
@@ -148,9 +149,66 @@ export interface SponsorBlockChaptersLoaded extends PlayerEvent {
148
149
  duration: number;
149
150
  }[];
150
151
  }
152
+ /**
153
+ * Types & Events for Lyrics plugin from Lavalink: https://github.com/topi314/LavaLyrics
154
+ */
155
+ export type LyricsEvent = LyricsFoundEvent | LyricsNotFoundEvent | LyricsLineEvent;
156
+ export type LyricsEventType = "LyricsFoundEvent" | "LyricsNotFoundEvent" | "LyricsLineEvent";
157
+ export interface LyricsFoundEvent extends PlayerEvent {
158
+ /** The lyricsfound event */
159
+ type: "LyricsFoundEvent";
160
+ /** The guildId */
161
+ guildId: string;
162
+ /** The lyrics */
163
+ lyrics: LyricsResult;
164
+ }
165
+ export interface LyricsNotFoundEvent extends PlayerEvent {
166
+ /**The lyricsnotfound event*/
167
+ type: "LyricsNotFoundEvent";
168
+ /**The guildId*/
169
+ guildId: string;
170
+ }
171
+ export interface LyricsLineEvent extends PlayerEvent {
172
+ /**The lyricsline event*/
173
+ type: "LyricsLineEvent";
174
+ /** The guildId */
175
+ guildId: string;
176
+ /** The line number */
177
+ lineIndex: number;
178
+ /** The line */
179
+ line: LyricsLine;
180
+ /**skipped is true if the line was skipped */
181
+ skipped: boolean;
182
+ }
183
+ export interface LyricsFoundEvent extends PlayerEvent {
184
+ /** The lyricsfound event */
185
+ type: "LyricsFoundEvent";
186
+ /** The guildId */
187
+ guildId: string;
188
+ /** The lyrics */
189
+ lyrics: LyricsResult;
190
+ }
191
+ export interface LyricsNotFoundEvent extends PlayerEvent {
192
+ /**The lyricsnotfound event*/
193
+ type: "LyricsNotFoundEvent";
194
+ /**The guildId*/
195
+ guildId: string;
196
+ }
197
+ export interface LyricsLineEvent extends PlayerEvent {
198
+ /**The lyricsline event*/
199
+ type: "LyricsLineEvent";
200
+ /** The guildId */
201
+ guildId: string;
202
+ /** The line number */
203
+ lineIndex: number;
204
+ /** The line */
205
+ line: LyricsLine;
206
+ /**skipped is true if the line was skipped */
207
+ skipped: boolean;
208
+ }
151
209
  export type LoadTypes = "track" | "playlist" | "search" | "error" | "empty";
152
210
  export type State = "CONNECTED" | "CONNECTING" | "DISCONNECTED" | "DISCONNECTING" | "DESTROYING";
153
- export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | SponsorBlockSegmentEventType;
211
+ export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | SponsorBlockSegmentEventType | LyricsEventType;
154
212
  export type TrackEndReason = "finished" | "loadFailed" | "stopped" | "replaced" | "cleanup";
155
213
  export interface InvalidLavalinkRestRequest {
156
214
  /** Rest Request Data for when it was made */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lavalink-client",
3
- "version": "2.3.4",
3
+ "version": "2.3.6",
4
4
  "description": "Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",