magmastream 2.10.3-dev.2 → 2.10.4
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/dist/structures/Enums.d.ts +145 -1
- package/dist/structures/Enums.js +148 -1
- package/dist/structures/Filters.d.ts +120 -1
- package/dist/structures/Filters.js +348 -11
- package/dist/structures/Manager.d.ts +9 -0
- package/dist/structures/Manager.js +169 -30
- package/dist/structures/Node.d.ts +89 -2
- package/dist/structures/Node.js +504 -53
- package/dist/structures/Player.d.ts +85 -2
- package/dist/structures/Player.js +300 -12
- package/dist/structures/Rest.d.ts +61 -2
- package/dist/structures/Rest.js +210 -1
- package/dist/structures/Types.d.ts +645 -90
- package/dist/structures/Utils.d.ts +1 -1
- package/dist/structures/Utils.js +60 -18
- package/dist/utils/managerCheck.js +3 -2
- package/package.json +3 -2
|
@@ -6,7 +6,7 @@ import type { User as SeyfertUser, ClientUser as SeyfertClientUser, Message as S
|
|
|
6
6
|
import { JsonQueue } from "../statestorage/JsonQueue";
|
|
7
7
|
import { MemoryQueue } from "../statestorage/MemoryQueue";
|
|
8
8
|
import { RedisQueue } from "../statestorage/RedisQueue";
|
|
9
|
-
import { AutoPlayPlatform, LoadTypes, ManagerEventTypes, PlayerStateEventTypes, SearchPlatform, SeverityTypes, StateStorageType, TrackEndReasonTypes, TrackPartial, TrackSourceTypes, UseNodeOptions } from "./Enums";
|
|
9
|
+
import { AutoPlayPlatform, LoadTypes, ManagerEventTypes, NodeLinkRecommendationPlatform, NodeLinkSearchPlatform, NodeLinkSearchType, PlayerStateEventTypes, SearchPlatform, SeverityTypes, StateStorageType, TrackEndReasonTypes, TrackPartial, TrackSourceTypes, UseNodeOptions } from "./Enums";
|
|
10
10
|
import { Node } from "./Node";
|
|
11
11
|
import { Player } from "./Player";
|
|
12
12
|
import { Plugin } from "./Plugin";
|
|
@@ -51,7 +51,7 @@ export interface ManagerOptions {
|
|
|
51
51
|
* Use enum `SearchPlatform`.
|
|
52
52
|
* @default SearchPlatform.YouTube
|
|
53
53
|
*/
|
|
54
|
-
defaultSearchPlatform?:
|
|
54
|
+
defaultSearchPlatform?: SearchSource;
|
|
55
55
|
/** The last.fm API key.
|
|
56
56
|
* If you need to create one go here: https://www.last.fm/api/account/create.
|
|
57
57
|
* If you already have one, get it from here: https://www.last.fm/api/accounts. */
|
|
@@ -388,13 +388,13 @@ export interface Track {
|
|
|
388
388
|
/** The duration of the track. */
|
|
389
389
|
readonly duration: number;
|
|
390
390
|
/** The ISRC of the track. */
|
|
391
|
-
readonly isrc: string;
|
|
391
|
+
readonly isrc: string | null;
|
|
392
392
|
/** If the track is seekable. */
|
|
393
393
|
readonly isSeekable: boolean;
|
|
394
394
|
/** If the track is a stream.. */
|
|
395
395
|
readonly isStream: boolean;
|
|
396
396
|
/** The uri of the track. */
|
|
397
|
-
readonly uri: string;
|
|
397
|
+
readonly uri: string | null;
|
|
398
398
|
/** The thumbnail of the track or null if it's a unsupported source. */
|
|
399
399
|
readonly thumbnail: string | null;
|
|
400
400
|
/** The user that requested the track. */
|
|
@@ -412,6 +412,7 @@ export interface Track {
|
|
|
412
412
|
* Track Plugin Info
|
|
413
413
|
*/
|
|
414
414
|
export interface TrackPluginInfo {
|
|
415
|
+
[key: string]: unknown;
|
|
415
416
|
albumName?: string;
|
|
416
417
|
albumUrl?: string;
|
|
417
418
|
artistArtworkUrl?: string;
|
|
@@ -424,16 +425,26 @@ export interface TrackPluginInfo {
|
|
|
424
425
|
*/
|
|
425
426
|
export interface SearchQuery {
|
|
426
427
|
/** The source to search from. */
|
|
427
|
-
source?:
|
|
428
|
+
source?: SearchSource;
|
|
429
|
+
/**
|
|
430
|
+
* NodeLink search type modifier.
|
|
431
|
+
*
|
|
432
|
+
* Builds identifiers like `ytsearch:playlist:query` and routes the search to a NodeLink node.
|
|
433
|
+
*/
|
|
434
|
+
searchType?: NodeLinkSearchType | string;
|
|
428
435
|
/** The query to search for. */
|
|
429
436
|
query: string;
|
|
430
437
|
}
|
|
438
|
+
/**
|
|
439
|
+
* Search source.
|
|
440
|
+
*/
|
|
441
|
+
export type SearchSource = SearchPlatform | NodeLinkSearchPlatform | NodeLinkRecommendationPlatform;
|
|
431
442
|
/**
|
|
432
443
|
* Lavalink Response
|
|
433
444
|
*/
|
|
434
445
|
export interface LavalinkResponse {
|
|
435
446
|
loadType: LoadTypes;
|
|
436
|
-
data:
|
|
447
|
+
data: LavalinkLoadResultData;
|
|
437
448
|
}
|
|
438
449
|
/**
|
|
439
450
|
* Track Data
|
|
@@ -444,7 +455,9 @@ export interface TrackData {
|
|
|
444
455
|
/** The detailed information of the track. */
|
|
445
456
|
info: TrackDataInfo;
|
|
446
457
|
/** Additional track info provided by plugins. */
|
|
447
|
-
pluginInfo: Record<string,
|
|
458
|
+
pluginInfo: Record<string, unknown>;
|
|
459
|
+
/** Additional track data sent back from Lavalink. */
|
|
460
|
+
userData?: Record<string, unknown>;
|
|
448
461
|
}
|
|
449
462
|
/**
|
|
450
463
|
* Playlist Raw Data
|
|
@@ -453,12 +466,15 @@ export interface PlaylistRawData {
|
|
|
453
466
|
info: {
|
|
454
467
|
/** The playlist name. */
|
|
455
468
|
name: string;
|
|
469
|
+
/** The selected track index, or -1 if none is selected. */
|
|
470
|
+
selectedTrack: number;
|
|
456
471
|
};
|
|
457
472
|
/** Addition info provided by plugins. */
|
|
458
|
-
pluginInfo:
|
|
473
|
+
pluginInfo: Record<string, unknown>;
|
|
459
474
|
/** The tracks of the playlist */
|
|
460
475
|
tracks: TrackData[];
|
|
461
476
|
}
|
|
477
|
+
export type LavalinkLoadResultData = TrackData | TrackData[] | PlaylistRawData | Exception | null;
|
|
462
478
|
/**
|
|
463
479
|
* Track Data Info
|
|
464
480
|
*/
|
|
@@ -467,19 +483,20 @@ export interface TrackDataInfo {
|
|
|
467
483
|
isSeekable: boolean;
|
|
468
484
|
author: string;
|
|
469
485
|
length: number;
|
|
470
|
-
|
|
486
|
+
position: number;
|
|
487
|
+
isrc: string | null;
|
|
471
488
|
isStream: boolean;
|
|
472
489
|
title: string;
|
|
473
|
-
uri
|
|
474
|
-
artworkUrl
|
|
475
|
-
sourceName
|
|
490
|
+
uri: string | null;
|
|
491
|
+
artworkUrl: string | null;
|
|
492
|
+
sourceName: TrackSourceName;
|
|
476
493
|
}
|
|
477
494
|
/**
|
|
478
495
|
* LavaPlayer
|
|
479
496
|
*/
|
|
480
497
|
export interface LavaPlayer {
|
|
481
498
|
guildId: string;
|
|
482
|
-
track: TrackData;
|
|
499
|
+
track: TrackData | null;
|
|
483
500
|
volume: number;
|
|
484
501
|
paused: boolean;
|
|
485
502
|
state: {
|
|
@@ -489,7 +506,11 @@ export interface LavaPlayer {
|
|
|
489
506
|
ping: number;
|
|
490
507
|
};
|
|
491
508
|
voice: LavalinkVoiceStateResponse;
|
|
492
|
-
filters:
|
|
509
|
+
filters: LavalinkFilters;
|
|
510
|
+
/** NodeLink playback fading configuration. */
|
|
511
|
+
fading?: NodeLinkFadingConfig;
|
|
512
|
+
/** NodeLink loudness normalizer state. */
|
|
513
|
+
loudnessNormalizer?: boolean;
|
|
493
514
|
}
|
|
494
515
|
/**
|
|
495
516
|
* Error or Empty Search Result
|
|
@@ -509,6 +530,15 @@ export interface TrackSearchResult {
|
|
|
509
530
|
/** The track obtained */
|
|
510
531
|
tracks: [Track];
|
|
511
532
|
}
|
|
533
|
+
/**
|
|
534
|
+
* Episode Search Result
|
|
535
|
+
*/
|
|
536
|
+
export interface EpisodeSearchResult {
|
|
537
|
+
/** The load type is always 'episode' */
|
|
538
|
+
loadType: LoadTypes.Episode;
|
|
539
|
+
/** The episode obtained */
|
|
540
|
+
tracks: [Track];
|
|
541
|
+
}
|
|
512
542
|
/**
|
|
513
543
|
* Search Result
|
|
514
544
|
*/
|
|
@@ -584,8 +614,10 @@ export interface PlaylistData {
|
|
|
584
614
|
name: string;
|
|
585
615
|
/** Requester of playlist. */
|
|
586
616
|
requester: AnyUser;
|
|
587
|
-
/**
|
|
588
|
-
playlistInfo: PlaylistInfoData
|
|
617
|
+
/** Lavalink playlist information. */
|
|
618
|
+
playlistInfo: PlaylistInfoData;
|
|
619
|
+
/** Additional playlist information provided by plugins. */
|
|
620
|
+
pluginInfo: PlaylistPluginInfo;
|
|
589
621
|
/** The length of the playlist. */
|
|
590
622
|
duration: number;
|
|
591
623
|
/** The songs of the playlist. */
|
|
@@ -595,27 +627,28 @@ export interface PlaylistData {
|
|
|
595
627
|
* Playlist Info Data
|
|
596
628
|
*/
|
|
597
629
|
export interface PlaylistInfoData {
|
|
598
|
-
/**
|
|
599
|
-
|
|
600
|
-
/**
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
630
|
+
/** The playlist name. */
|
|
631
|
+
name: string;
|
|
632
|
+
/** The selected track index, or -1 if none is selected. */
|
|
633
|
+
selectedTrack: number;
|
|
634
|
+
}
|
|
635
|
+
export interface PlaylistPluginInfo extends Record<string, unknown> {
|
|
636
|
+
url?: string;
|
|
637
|
+
type?: string;
|
|
638
|
+
artworkUrl?: string;
|
|
639
|
+
totalTracks?: number;
|
|
640
|
+
author?: string;
|
|
608
641
|
}
|
|
609
642
|
/**
|
|
610
643
|
* Manager Events
|
|
611
644
|
*/
|
|
612
645
|
export interface ManagerEvents {
|
|
613
|
-
[ManagerEventTypes.ChapterStarted]: [player: Player, track: Track, payload: SponsorBlockChapterStarted];
|
|
614
|
-
[ManagerEventTypes.ChaptersLoaded]: [player: Player, track: Track, payload: SponsorBlockChaptersLoaded];
|
|
646
|
+
[ManagerEventTypes.ChapterStarted]: [player: Player, track: Track | null, payload: SponsorBlockChapterStarted];
|
|
647
|
+
[ManagerEventTypes.ChaptersLoaded]: [player: Player, track: Track | null, payload: SponsorBlockChaptersLoaded];
|
|
615
648
|
[ManagerEventTypes.Debug]: [info: string];
|
|
616
|
-
[ManagerEventTypes.LyricsFound]: [player: Player, track: Track, payload: LyricsFoundEvent];
|
|
617
|
-
[ManagerEventTypes.LyricsLine]: [player: Player, track: Track, payload: LyricsLineEvent];
|
|
618
|
-
[ManagerEventTypes.LyricsNotFound]: [player: Player, track: Track, payload: LyricsNotFoundEvent];
|
|
649
|
+
[ManagerEventTypes.LyricsFound]: [player: Player, track: Track | null, payload: LyricsFoundEvent];
|
|
650
|
+
[ManagerEventTypes.LyricsLine]: [player: Player, track: Track | null, payload: LyricsLineEvent];
|
|
651
|
+
[ManagerEventTypes.LyricsNotFound]: [player: Player, track: Track | null, payload: LyricsNotFoundEvent];
|
|
619
652
|
[ManagerEventTypes.NodeConnect]: [node: Node];
|
|
620
653
|
[ManagerEventTypes.NodeCreate]: [node: Node];
|
|
621
654
|
[ManagerEventTypes.NodeDestroy]: [node: Node];
|
|
@@ -634,17 +667,35 @@ export interface ManagerEvents {
|
|
|
634
667
|
[ManagerEventTypes.PlayerStateUpdate]: [oldPlayer: Player, newPlayer: Player, changeType: PlayerStateUpdateEvent];
|
|
635
668
|
[ManagerEventTypes.QueueEnd]: [player: Player, track: Track, payload: TrackEndEvent];
|
|
636
669
|
[ManagerEventTypes.RestoreComplete]: [node: Node];
|
|
637
|
-
[ManagerEventTypes.SegmentSkipped]: [player: Player, track: Track, payload: SponsorBlockSegmentSkipped];
|
|
638
|
-
[ManagerEventTypes.SegmentsLoaded]: [player: Player, track: Track, payload: SponsorBlockSegmentsLoaded];
|
|
670
|
+
[ManagerEventTypes.SegmentSkipped]: [player: Player, track: Track | null, payload: SponsorBlockSegmentSkipped];
|
|
671
|
+
[ManagerEventTypes.SegmentsLoaded]: [player: Player, track: Track | null, payload: SponsorBlockSegmentsLoaded];
|
|
639
672
|
[ManagerEventTypes.SocketClosed]: [player: Player, payload: WebSocketClosedEvent];
|
|
640
673
|
[ManagerEventTypes.TrackEnd]: [player: Player, track: Track, payload: TrackEndEvent];
|
|
641
674
|
[ManagerEventTypes.TrackError]: [player: Player, track: Track, payload: TrackExceptionEvent];
|
|
642
675
|
[ManagerEventTypes.TrackStart]: [player: Player, track: Track, payload: TrackStartEvent];
|
|
643
676
|
[ManagerEventTypes.TrackStuck]: [player: Player, track: Track, payload: TrackStuckEvent];
|
|
677
|
+
[ManagerEventTypes.MixStarted]: [player: Player, payload: NodeLinkMixStartedEvent];
|
|
678
|
+
[ManagerEventTypes.MixEnded]: [player: Player, payload: NodeLinkMixEndedEvent];
|
|
679
|
+
[ManagerEventTypes.NodeLinkConnectionStatus]: [node: Node, payload: NodeLinkConnectionStatusEvent];
|
|
680
|
+
[ManagerEventTypes.NodeLinkEternalBoxInfo]: [player: Player, payload: NodeLinkEternalBoxInfoEvent];
|
|
681
|
+
[ManagerEventTypes.NodeLinkEternalBoxJump]: [player: Player, payload: NodeLinkEternalBoxJumpEvent];
|
|
682
|
+
[ManagerEventTypes.NodeLinkEvent]: [node: Node, payload: NodeLinkEvent];
|
|
683
|
+
[ManagerEventTypes.NodeLinkFiltersChanged]: [player: Player, payload: NodeLinkFiltersChangedEvent];
|
|
684
|
+
[ManagerEventTypes.NodeLinkPause]: [player: Player, payload: NodeLinkPauseEvent];
|
|
685
|
+
[ManagerEventTypes.NodeLinkPlayerConnected]: [player: Player, payload: NodeLinkPlayerConnectedEvent];
|
|
686
|
+
[ManagerEventTypes.NodeLinkPlayerCreated]: [player: Player, payload: NodeLinkPlayerCreatedEvent];
|
|
687
|
+
[ManagerEventTypes.NodeLinkPlayerDestroyed]: [player: Player, payload: NodeLinkPlayerDestroyedEvent];
|
|
688
|
+
[ManagerEventTypes.NodeLinkPlayerReconnecting]: [player: Player, payload: NodeLinkPlayerReconnectingEvent];
|
|
689
|
+
[ManagerEventTypes.NodeLinkSeek]: [player: Player, payload: NodeLinkSeekEvent];
|
|
690
|
+
[ManagerEventTypes.NodeLinkStreamMetadata]: [player: Player, payload: NodeLinkStreamMetadataEvent];
|
|
691
|
+
[ManagerEventTypes.NodeLinkVolumeChanged]: [player: Player, payload: NodeLinkVolumeChangedEvent];
|
|
692
|
+
[ManagerEventTypes.NodeLinkWorkerFailed]: [node: Node, payload: NodeLinkWorkerFailedEvent];
|
|
693
|
+
[ManagerEventTypes.PlayerUpdate]: [player: Player, payload: PlayerUpdateMessage];
|
|
644
694
|
[ManagerEventTypes.VoiceReceiverDisconnect]: [player: Player];
|
|
645
695
|
[ManagerEventTypes.VoiceReceiverConnect]: [player: Player];
|
|
646
696
|
[ManagerEventTypes.VoiceReceiverError]: [player: Player, error: Error];
|
|
647
697
|
[ManagerEventTypes.VoiceReceiverStartSpeaking]: [player: Player, data: unknown];
|
|
698
|
+
[ManagerEventTypes.VoiceReceiverData]: [player: Player, data: VoiceReceiverData];
|
|
648
699
|
[ManagerEventTypes.VoiceReceiverEndSpeaking]: [player: Player, data: unknown];
|
|
649
700
|
}
|
|
650
701
|
/**
|
|
@@ -703,16 +754,33 @@ export interface NodeStats {
|
|
|
703
754
|
/** The cpu stats for the node. */
|
|
704
755
|
cpu: CPUStats;
|
|
705
756
|
/** The frame stats for the node. */
|
|
706
|
-
frameStats: FrameStats;
|
|
757
|
+
frameStats: FrameStats | null;
|
|
707
758
|
}
|
|
708
|
-
/**
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
759
|
+
/** Lavalink/NodeLink ready gateway payload. */
|
|
760
|
+
export interface ReadyMessage {
|
|
761
|
+
op: "ready";
|
|
762
|
+
resumed: boolean;
|
|
763
|
+
sessionId: string;
|
|
764
|
+
}
|
|
765
|
+
/** Lavalink/NodeLink stats gateway payload. */
|
|
766
|
+
export interface StatsMessage extends NodeStats {
|
|
767
|
+
op: "stats";
|
|
768
|
+
}
|
|
769
|
+
/** Player state carried by a playerUpdate gateway payload. */
|
|
770
|
+
export interface PlayerUpdateState {
|
|
771
|
+
time: number;
|
|
772
|
+
position: number;
|
|
773
|
+
connected: boolean;
|
|
774
|
+
ping: number;
|
|
775
|
+
}
|
|
776
|
+
/** Lavalink/NodeLink playerUpdate gateway payload. */
|
|
777
|
+
export interface PlayerUpdateMessage {
|
|
778
|
+
op: "playerUpdate";
|
|
714
779
|
guildId: string;
|
|
780
|
+
state: PlayerUpdateState;
|
|
715
781
|
}
|
|
782
|
+
/** Discriminated gateway payload received from Lavalink or NodeLink. */
|
|
783
|
+
export type NodeMessage = ReadyMessage | StatsMessage | PlayerUpdateMessage | PlayerEvents | NodeLinkEvent;
|
|
716
784
|
/**
|
|
717
785
|
* PlayerEvent interface
|
|
718
786
|
*/
|
|
@@ -725,9 +793,10 @@ export interface PlayerEvent {
|
|
|
725
793
|
* Exception interface
|
|
726
794
|
*/
|
|
727
795
|
export interface Exception {
|
|
728
|
-
message: string;
|
|
796
|
+
message: string | null;
|
|
729
797
|
severity: SeverityTypes;
|
|
730
798
|
cause: string;
|
|
799
|
+
causeStackTrace?: string;
|
|
731
800
|
}
|
|
732
801
|
/**
|
|
733
802
|
* TrackStartEvent interface
|
|
@@ -735,6 +804,8 @@ export interface Exception {
|
|
|
735
804
|
export interface TrackStartEvent extends PlayerEvent {
|
|
736
805
|
type: "TrackStartEvent";
|
|
737
806
|
track: TrackData;
|
|
807
|
+
/** NodeLink YouTube itag selected for playback, when available. */
|
|
808
|
+
playingQuality?: number | null;
|
|
738
809
|
}
|
|
739
810
|
/**
|
|
740
811
|
* TrackEndEvent interface
|
|
@@ -751,6 +822,7 @@ export interface TrackExceptionEvent extends PlayerEvent {
|
|
|
751
822
|
exception?: Exception;
|
|
752
823
|
guildId: string;
|
|
753
824
|
type: "TrackExceptionEvent";
|
|
825
|
+
track?: TrackData | null;
|
|
754
826
|
}
|
|
755
827
|
/**
|
|
756
828
|
* TrackStuckEvent interface
|
|
@@ -758,6 +830,8 @@ export interface TrackExceptionEvent extends PlayerEvent {
|
|
|
758
830
|
export interface TrackStuckEvent extends PlayerEvent {
|
|
759
831
|
type: "TrackStuckEvent";
|
|
760
832
|
thresholdMs: number;
|
|
833
|
+
track?: TrackData | null;
|
|
834
|
+
reason?: string;
|
|
761
835
|
}
|
|
762
836
|
/**
|
|
763
837
|
* WebSocketClosedEvent interface
|
|
@@ -772,23 +846,39 @@ export interface WebSocketClosedEvent extends PlayerEvent {
|
|
|
772
846
|
* SponsorBlockSegmentsLoaded interface
|
|
773
847
|
*/
|
|
774
848
|
export interface SponsorBlockSegmentsLoaded extends PlayerEvent {
|
|
775
|
-
type: "SegmentsLoaded";
|
|
849
|
+
type: "SegmentsLoaded" | "SponsorBlockSegmentsLoadedEvent";
|
|
776
850
|
segments: {
|
|
777
851
|
category: string;
|
|
778
852
|
start: number;
|
|
779
853
|
end: number;
|
|
854
|
+
/** NodeLink SponsorBlock segment id. */
|
|
855
|
+
uuid?: string;
|
|
856
|
+
actionType?: string;
|
|
857
|
+
votes?: number;
|
|
858
|
+
locked?: boolean;
|
|
859
|
+
videoDuration?: number;
|
|
860
|
+
description?: string;
|
|
780
861
|
}[];
|
|
781
862
|
}
|
|
782
863
|
/**
|
|
783
864
|
* SponsorBlockSegmentSkipped interface
|
|
784
865
|
*/
|
|
785
866
|
export interface SponsorBlockSegmentSkipped extends PlayerEvent {
|
|
786
|
-
type: "SegmentSkipped";
|
|
867
|
+
type: "SegmentSkipped" | "SponsorBlockSegmentSkippedEvent";
|
|
787
868
|
segment: {
|
|
788
869
|
category: string;
|
|
789
870
|
start: number;
|
|
790
871
|
end: number;
|
|
872
|
+
/** NodeLink SponsorBlock segment id. */
|
|
873
|
+
uuid?: string;
|
|
874
|
+
actionType?: string;
|
|
875
|
+
votes?: number;
|
|
876
|
+
locked?: boolean;
|
|
877
|
+
videoDuration?: number;
|
|
878
|
+
description?: string;
|
|
791
879
|
};
|
|
880
|
+
/** Milliseconds skipped by NodeLink. */
|
|
881
|
+
skippedMs?: number;
|
|
792
882
|
}
|
|
793
883
|
/**
|
|
794
884
|
* SponsorBlockChapterStarted interface
|
|
@@ -804,6 +894,204 @@ export interface SponsorBlockChapterStarted extends PlayerEvent {
|
|
|
804
894
|
duration: number;
|
|
805
895
|
};
|
|
806
896
|
}
|
|
897
|
+
/**
|
|
898
|
+
* NodeLink SponsorBlock segment data.
|
|
899
|
+
*/
|
|
900
|
+
export interface NodeLinkSponsorBlockSegment {
|
|
901
|
+
uuid: string;
|
|
902
|
+
start: number;
|
|
903
|
+
end: number;
|
|
904
|
+
category: string;
|
|
905
|
+
actionType: string;
|
|
906
|
+
votes: number;
|
|
907
|
+
locked: boolean;
|
|
908
|
+
videoDuration: number;
|
|
909
|
+
description: string;
|
|
910
|
+
}
|
|
911
|
+
/**
|
|
912
|
+
* NodeLink SponsorBlock state.
|
|
913
|
+
*/
|
|
914
|
+
export interface NodeLinkSponsorBlockState {
|
|
915
|
+
enabled: boolean;
|
|
916
|
+
categories: string[];
|
|
917
|
+
actionTypes: string[];
|
|
918
|
+
segments: NodeLinkSponsorBlockSegment[];
|
|
919
|
+
lastSkippedUuid: string | null;
|
|
920
|
+
skipMarginMs: number;
|
|
921
|
+
}
|
|
922
|
+
/** Mutable NodeLink SponsorBlock settings accepted by PATCH. */
|
|
923
|
+
export interface NodeLinkSponsorBlockUpdate {
|
|
924
|
+
enabled?: boolean;
|
|
925
|
+
categories?: string[];
|
|
926
|
+
actionTypes?: string[];
|
|
927
|
+
skipMarginMs?: number;
|
|
928
|
+
}
|
|
929
|
+
/**
|
|
930
|
+
* NodeLink chapter data.
|
|
931
|
+
*/
|
|
932
|
+
export interface NodeLinkChapter {
|
|
933
|
+
title: string;
|
|
934
|
+
startTime: number;
|
|
935
|
+
thumbnails: Array<{
|
|
936
|
+
url: string;
|
|
937
|
+
width?: number;
|
|
938
|
+
height?: number;
|
|
939
|
+
[key: string]: unknown;
|
|
940
|
+
}>;
|
|
941
|
+
duration?: number;
|
|
942
|
+
endTime?: number;
|
|
943
|
+
}
|
|
944
|
+
/** Track metadata accepted by NodeLink's encode endpoints. */
|
|
945
|
+
export interface NodeLinkTrackEncodeInput {
|
|
946
|
+
title: string;
|
|
947
|
+
author: string;
|
|
948
|
+
length: number;
|
|
949
|
+
identifier: string;
|
|
950
|
+
isStream: boolean;
|
|
951
|
+
uri: string | null;
|
|
952
|
+
artworkUrl: string | null;
|
|
953
|
+
isrc: string | null;
|
|
954
|
+
sourceName: string;
|
|
955
|
+
position: number;
|
|
956
|
+
details: Array<string | null>;
|
|
957
|
+
}
|
|
958
|
+
/** NodeLink connection diagnostics response. */
|
|
959
|
+
export interface NodeLinkConnectionInfo {
|
|
960
|
+
status: string;
|
|
961
|
+
metrics: Record<string, unknown> | null;
|
|
962
|
+
reason?: string;
|
|
963
|
+
}
|
|
964
|
+
/** NodeLink meaning endpoint response. */
|
|
965
|
+
export type NodeLinkMeaningResult = {
|
|
966
|
+
loadType: "meaning";
|
|
967
|
+
data: Record<string, unknown>;
|
|
968
|
+
} | {
|
|
969
|
+
loadType: "empty";
|
|
970
|
+
data: Record<string, never>;
|
|
971
|
+
} | {
|
|
972
|
+
loadType: "error";
|
|
973
|
+
data: {
|
|
974
|
+
message?: string;
|
|
975
|
+
severity?: string;
|
|
976
|
+
} & Record<string, unknown>;
|
|
977
|
+
};
|
|
978
|
+
/** NodeLink direct track stream URL response. */
|
|
979
|
+
export interface NodeLinkTrackStreamResult {
|
|
980
|
+
url?: string;
|
|
981
|
+
protocol?: string | null;
|
|
982
|
+
format?: string | null;
|
|
983
|
+
hlsUrl?: string | null;
|
|
984
|
+
formats?: Array<Record<string, unknown>>;
|
|
985
|
+
additionalData?: Record<string, unknown>;
|
|
986
|
+
exception?: Exception | null;
|
|
987
|
+
}
|
|
988
|
+
/** Options accepted by NodeLink's raw PCM loadstream endpoint. */
|
|
989
|
+
export interface NodeLinkLoadStreamOptions {
|
|
990
|
+
volume?: number;
|
|
991
|
+
position?: number;
|
|
992
|
+
filters?: LavalinkFilters;
|
|
993
|
+
}
|
|
994
|
+
/**
|
|
995
|
+
* NodeLink active mix layer.
|
|
996
|
+
*/
|
|
997
|
+
export interface NodeLinkMix {
|
|
998
|
+
id: string;
|
|
999
|
+
track: TrackData;
|
|
1000
|
+
volume: number;
|
|
1001
|
+
position?: number;
|
|
1002
|
+
startTime?: number;
|
|
1003
|
+
}
|
|
1004
|
+
/**
|
|
1005
|
+
* NodeLink mix started event.
|
|
1006
|
+
*/
|
|
1007
|
+
export interface NodeLinkMixStartedEvent extends PlayerEvent {
|
|
1008
|
+
type: "MixStartedEvent";
|
|
1009
|
+
mixId: string;
|
|
1010
|
+
track?: TrackData;
|
|
1011
|
+
volume?: number;
|
|
1012
|
+
}
|
|
1013
|
+
/**
|
|
1014
|
+
* NodeLink mix ended event.
|
|
1015
|
+
*/
|
|
1016
|
+
export interface NodeLinkMixEndedEvent extends PlayerEvent {
|
|
1017
|
+
type: "MixEndedEvent";
|
|
1018
|
+
mixId: string;
|
|
1019
|
+
reason: string;
|
|
1020
|
+
}
|
|
1021
|
+
/** NodeLink connection diagnostics broadcast. This event is node-wide. */
|
|
1022
|
+
export interface NodeLinkConnectionStatusEvent {
|
|
1023
|
+
op: "event";
|
|
1024
|
+
type: "ConnectionStatusEvent";
|
|
1025
|
+
status: string;
|
|
1026
|
+
metrics: Record<string, unknown>;
|
|
1027
|
+
}
|
|
1028
|
+
/** NodeLink worker failure broadcast. This event is node-wide. */
|
|
1029
|
+
export interface NodeLinkWorkerFailedEvent {
|
|
1030
|
+
op: "event";
|
|
1031
|
+
type: "WorkerFailedEvent";
|
|
1032
|
+
affectedGuilds: string[];
|
|
1033
|
+
message: string;
|
|
1034
|
+
}
|
|
1035
|
+
export interface NodeLinkVolumeChangedEvent extends PlayerEvent {
|
|
1036
|
+
type: "VolumeChangedEvent";
|
|
1037
|
+
volume: number;
|
|
1038
|
+
}
|
|
1039
|
+
export interface NodeLinkFiltersChangedEvent extends PlayerEvent {
|
|
1040
|
+
type: "FiltersChangedEvent";
|
|
1041
|
+
filters: LavalinkFilters | {
|
|
1042
|
+
filters: LavalinkFilters;
|
|
1043
|
+
};
|
|
1044
|
+
}
|
|
1045
|
+
export interface NodeLinkSeekEvent extends PlayerEvent {
|
|
1046
|
+
type: "SeekEvent";
|
|
1047
|
+
position: number;
|
|
1048
|
+
duration: number;
|
|
1049
|
+
}
|
|
1050
|
+
export interface NodeLinkPauseEvent extends PlayerEvent {
|
|
1051
|
+
type: "PauseEvent";
|
|
1052
|
+
paused: boolean;
|
|
1053
|
+
}
|
|
1054
|
+
export interface NodeLinkPlayerCreatedEvent extends PlayerEvent {
|
|
1055
|
+
type: "PlayerCreatedEvent";
|
|
1056
|
+
player: LavaPlayer & {
|
|
1057
|
+
fading?: NodeLinkFadingConfig;
|
|
1058
|
+
loudnessNormalizer?: boolean;
|
|
1059
|
+
};
|
|
1060
|
+
}
|
|
1061
|
+
export interface NodeLinkPlayerDestroyedEvent extends PlayerEvent {
|
|
1062
|
+
type: "PlayerDestroyedEvent";
|
|
1063
|
+
}
|
|
1064
|
+
export interface NodeLinkPlayerConnectedEvent extends PlayerEvent {
|
|
1065
|
+
type: "PlayerConnectedEvent";
|
|
1066
|
+
voice: LavalinkVoiceStateResponse;
|
|
1067
|
+
}
|
|
1068
|
+
export interface NodeLinkPlayerReconnectingEvent extends PlayerEvent {
|
|
1069
|
+
type: "PlayerReconnectingEvent";
|
|
1070
|
+
voice: LavalinkVoiceStateResponse;
|
|
1071
|
+
}
|
|
1072
|
+
export interface NodeLinkEternalBoxInfoEvent extends PlayerEvent {
|
|
1073
|
+
type: "EternalBoxInfoEvent";
|
|
1074
|
+
track: TrackData | null;
|
|
1075
|
+
eternalbox: Record<string, unknown>;
|
|
1076
|
+
}
|
|
1077
|
+
export interface NodeLinkEternalBoxJumpEvent extends PlayerEvent {
|
|
1078
|
+
type: "EternalBoxJumpEvent";
|
|
1079
|
+
track: TrackData | null;
|
|
1080
|
+
eternalbox: unknown;
|
|
1081
|
+
}
|
|
1082
|
+
export interface NodeLinkStreamMetadataEvent extends PlayerEvent {
|
|
1083
|
+
type: "StreamMetadataEvent";
|
|
1084
|
+
track: TrackData | null;
|
|
1085
|
+
stream: unknown;
|
|
1086
|
+
}
|
|
1087
|
+
export type NodeLinkPlayerEvent = NodeLinkVolumeChangedEvent | NodeLinkFiltersChangedEvent | NodeLinkSeekEvent | NodeLinkPauseEvent | NodeLinkPlayerCreatedEvent | NodeLinkPlayerDestroyedEvent | NodeLinkPlayerConnectedEvent | NodeLinkPlayerReconnectingEvent | NodeLinkMixStartedEvent | NodeLinkMixEndedEvent | NodeLinkEternalBoxInfoEvent | NodeLinkEternalBoxJumpEvent | NodeLinkStreamMetadataEvent;
|
|
1088
|
+
export type NodeLinkKnownEvent = NodeLinkConnectionStatusEvent | NodeLinkWorkerFailedEvent | NodeLinkPlayerEvent;
|
|
1089
|
+
/** Forward-compatible NodeLink event payload, including plugin-defined events. */
|
|
1090
|
+
export type NodeLinkEvent = NodeLinkKnownEvent | ({
|
|
1091
|
+
op: "event";
|
|
1092
|
+
type: string;
|
|
1093
|
+
guildId?: string;
|
|
1094
|
+
} & Record<string, unknown>);
|
|
807
1095
|
/**
|
|
808
1096
|
* SponsorBlockChaptersLoaded interface
|
|
809
1097
|
*/
|
|
@@ -818,23 +1106,6 @@ export interface SponsorBlockChaptersLoaded extends PlayerEvent {
|
|
|
818
1106
|
duration: number;
|
|
819
1107
|
}[];
|
|
820
1108
|
}
|
|
821
|
-
/**
|
|
822
|
-
* NodeStats interface
|
|
823
|
-
*/
|
|
824
|
-
export interface NodeStats {
|
|
825
|
-
/** The amount of players on the node. */
|
|
826
|
-
players: number;
|
|
827
|
-
/** The amount of playing players on the node. */
|
|
828
|
-
playingPlayers: number;
|
|
829
|
-
/** The uptime for the node. */
|
|
830
|
-
uptime: number;
|
|
831
|
-
/** The memory stats for the node. */
|
|
832
|
-
memory: MemoryStats;
|
|
833
|
-
/** The cpu stats for the node. */
|
|
834
|
-
cpu: CPUStats;
|
|
835
|
-
/** The frame stats for the node. */
|
|
836
|
-
frameStats: FrameStats;
|
|
837
|
-
}
|
|
838
1109
|
/**
|
|
839
1110
|
* MemoryStats interface
|
|
840
1111
|
*/
|
|
@@ -856,8 +1127,10 @@ export interface CPUStats {
|
|
|
856
1127
|
cores: number;
|
|
857
1128
|
/** The system load. */
|
|
858
1129
|
systemLoad: number;
|
|
859
|
-
/** The
|
|
1130
|
+
/** The Lavalink process load. Normalized from nodelinkLoad on NodeLink. */
|
|
860
1131
|
lavalinkLoad: number;
|
|
1132
|
+
/** The native NodeLink process load, when reported by NodeLink. */
|
|
1133
|
+
nodelinkLoad?: number;
|
|
861
1134
|
}
|
|
862
1135
|
/**
|
|
863
1136
|
* FrameStats interface
|
|
@@ -869,6 +1142,8 @@ export interface FrameStats {
|
|
|
869
1142
|
nulled?: number;
|
|
870
1143
|
/** The amount of deficit frames. */
|
|
871
1144
|
deficit?: number;
|
|
1145
|
+
/** The expected frame count reported by NodeLink. */
|
|
1146
|
+
expected?: number;
|
|
872
1147
|
}
|
|
873
1148
|
/**
|
|
874
1149
|
* LavalinkInfo interface
|
|
@@ -879,7 +1154,7 @@ export interface LavalinkInfo {
|
|
|
879
1154
|
major: number;
|
|
880
1155
|
minor: number;
|
|
881
1156
|
patch: number;
|
|
882
|
-
preRelease: string;
|
|
1157
|
+
preRelease: string | null;
|
|
883
1158
|
};
|
|
884
1159
|
buildTime: number;
|
|
885
1160
|
git: {
|
|
@@ -887,13 +1162,21 @@ export interface LavalinkInfo {
|
|
|
887
1162
|
commit: string;
|
|
888
1163
|
commitTime: number;
|
|
889
1164
|
};
|
|
890
|
-
jvm
|
|
891
|
-
lavaplayer
|
|
1165
|
+
jvm?: string;
|
|
1166
|
+
lavaplayer?: string;
|
|
1167
|
+
node?: string;
|
|
1168
|
+
voice?: {
|
|
1169
|
+
name: string;
|
|
1170
|
+
version: string;
|
|
1171
|
+
};
|
|
1172
|
+
isNodelink?: boolean;
|
|
892
1173
|
sourceManagers: string[];
|
|
893
1174
|
filters: string[];
|
|
894
1175
|
plugins: {
|
|
895
1176
|
name: string;
|
|
896
1177
|
version: string;
|
|
1178
|
+
author?: string | null;
|
|
1179
|
+
path?: string | null;
|
|
897
1180
|
}[];
|
|
898
1181
|
}
|
|
899
1182
|
/**
|
|
@@ -903,17 +1186,21 @@ export interface LyricsLine {
|
|
|
903
1186
|
timestamp: number;
|
|
904
1187
|
duration: number;
|
|
905
1188
|
line: string;
|
|
906
|
-
|
|
1189
|
+
words?: Array<Record<string, unknown>>;
|
|
1190
|
+
plugin: Record<string, unknown>;
|
|
907
1191
|
}
|
|
908
1192
|
/**
|
|
909
1193
|
* Lyrics interface
|
|
910
1194
|
*/
|
|
911
1195
|
export interface Lyrics {
|
|
912
|
-
source
|
|
913
|
-
|
|
914
|
-
|
|
1196
|
+
/** Lavalink lyrics plugin source field. */
|
|
1197
|
+
source?: string | null;
|
|
1198
|
+
/** NodeLink lyrics source field. */
|
|
1199
|
+
sourceName?: string | null;
|
|
1200
|
+
provider: string | null;
|
|
1201
|
+
text?: string | null;
|
|
915
1202
|
lines: LyricsLine[];
|
|
916
|
-
plugin:
|
|
1203
|
+
plugin: Record<string, unknown> | Array<Record<string, unknown>>;
|
|
917
1204
|
}
|
|
918
1205
|
/**
|
|
919
1206
|
* LyricsFoundEvent interface
|
|
@@ -947,6 +1234,23 @@ export interface NodeLinkGetLyricsMultiple {
|
|
|
947
1234
|
loadType: "lyricsMultiple";
|
|
948
1235
|
data: NodeLinkGetLyricsData[];
|
|
949
1236
|
}
|
|
1237
|
+
/**
|
|
1238
|
+
* NodeLink Get Lyrics interface
|
|
1239
|
+
*/
|
|
1240
|
+
export interface NodeLinkGetLyricsLyrics {
|
|
1241
|
+
loadType: "lyrics";
|
|
1242
|
+
data: {
|
|
1243
|
+
name?: string;
|
|
1244
|
+
synced?: boolean;
|
|
1245
|
+
provider?: string;
|
|
1246
|
+
lines?: {
|
|
1247
|
+
time: number;
|
|
1248
|
+
duration?: number;
|
|
1249
|
+
text: string;
|
|
1250
|
+
words?: Record<string, unknown>[];
|
|
1251
|
+
}[];
|
|
1252
|
+
};
|
|
1253
|
+
}
|
|
950
1254
|
/**
|
|
951
1255
|
* NodeLink Get Lyrics Empty interface
|
|
952
1256
|
*/
|
|
@@ -981,11 +1285,22 @@ export interface NodeLinkGetLyricsError {
|
|
|
981
1285
|
loadType: "error";
|
|
982
1286
|
data: {
|
|
983
1287
|
message: string;
|
|
984
|
-
severity: Severity;
|
|
985
|
-
cause
|
|
1288
|
+
severity: Severity | string;
|
|
1289
|
+
cause?: string;
|
|
986
1290
|
trace?: string;
|
|
987
1291
|
};
|
|
988
1292
|
}
|
|
1293
|
+
/** Audio format names used by NodeLink voice receive frames. */
|
|
1294
|
+
export type NodeLinkVoiceReceiveFormat = "opus" | "pcm_s16le" | "ogg";
|
|
1295
|
+
/** A single NodeLink voice receive audio frame. */
|
|
1296
|
+
export interface VoiceReceiverData {
|
|
1297
|
+
userId: string;
|
|
1298
|
+
guildId: string;
|
|
1299
|
+
data: Buffer;
|
|
1300
|
+
type: NodeLinkVoiceReceiveFormat;
|
|
1301
|
+
ssrc: number;
|
|
1302
|
+
timestamp: number;
|
|
1303
|
+
}
|
|
989
1304
|
/**
|
|
990
1305
|
* Start Speaking Event Voice Receiver Data interface
|
|
991
1306
|
*/
|
|
@@ -998,6 +1313,12 @@ export interface StartSpeakingEventVoiceReceiverData {
|
|
|
998
1313
|
* The guild ID of the guild where the user started speaking.
|
|
999
1314
|
*/
|
|
1000
1315
|
guildId: string;
|
|
1316
|
+
/** The SSRC identifier of the speaking user. */
|
|
1317
|
+
ssrc?: number;
|
|
1318
|
+
/** The audio frame type sent by NodeLink. */
|
|
1319
|
+
type?: NodeLinkVoiceReceiveFormat;
|
|
1320
|
+
/** The timestamp sent by NodeLink for the start frame. */
|
|
1321
|
+
timestamp?: number;
|
|
1001
1322
|
}
|
|
1002
1323
|
/**
|
|
1003
1324
|
* End Speaking Event Voice Receiver Data interface
|
|
@@ -1014,11 +1335,15 @@ export interface EndSpeakingEventVoiceReceiverData {
|
|
|
1014
1335
|
/**
|
|
1015
1336
|
* The audio data received from the user in base64.
|
|
1016
1337
|
*/
|
|
1017
|
-
data: string;
|
|
1338
|
+
data: string | Buffer;
|
|
1018
1339
|
/**
|
|
1019
1340
|
* The type of the audio data. Can be either opus or pcm. Older versions may include ogg/opus.
|
|
1020
1341
|
*/
|
|
1021
|
-
type:
|
|
1342
|
+
type: NodeLinkVoiceReceiveFormat;
|
|
1343
|
+
/** The SSRC identifier of the speaking user. */
|
|
1344
|
+
ssrc?: number;
|
|
1345
|
+
/** The timestamp sent by NodeLink for the final frame. */
|
|
1346
|
+
timestamp?: number;
|
|
1022
1347
|
}
|
|
1023
1348
|
/**
|
|
1024
1349
|
* Base Voice Receiver Event interface
|
|
@@ -1073,6 +1398,33 @@ export interface PlayOptions {
|
|
|
1073
1398
|
readonly endTime?: number;
|
|
1074
1399
|
/** Whether to not replace the track if a play payload is sent. */
|
|
1075
1400
|
readonly noReplace?: boolean;
|
|
1401
|
+
/** NodeLink optional audio track id for alternate audio tracks. */
|
|
1402
|
+
readonly audioTrackId?: string;
|
|
1403
|
+
/** Legacy NodeLink alias for audioTrackId. */
|
|
1404
|
+
readonly language?: string;
|
|
1405
|
+
/** NodeLink loudness normalizer toggle. */
|
|
1406
|
+
readonly loudnessNormalizer?: boolean;
|
|
1407
|
+
}
|
|
1408
|
+
/** NodeLink options for a preloaded next track. */
|
|
1409
|
+
export interface NodeLinkNextTrackOptions {
|
|
1410
|
+
readonly audioTrackId?: string;
|
|
1411
|
+
readonly language?: string;
|
|
1412
|
+
}
|
|
1413
|
+
/** NodeLink fade action configuration. */
|
|
1414
|
+
export interface NodeLinkFadingSection {
|
|
1415
|
+
duration: number;
|
|
1416
|
+
curve?: string;
|
|
1417
|
+
type?: "volume" | "tape" | "scratch" | "both";
|
|
1418
|
+
}
|
|
1419
|
+
/** NodeLink fading configuration accepted by Update Player. */
|
|
1420
|
+
export interface NodeLinkFadingConfig {
|
|
1421
|
+
enabled?: boolean;
|
|
1422
|
+
trackStart?: NodeLinkFadingSection;
|
|
1423
|
+
trackEnd?: NodeLinkFadingSection;
|
|
1424
|
+
trackStop?: NodeLinkFadingSection;
|
|
1425
|
+
seek?: NodeLinkFadingSection;
|
|
1426
|
+
pause?: NodeLinkFadingSection;
|
|
1427
|
+
resume?: NodeLinkFadingSection;
|
|
1076
1428
|
}
|
|
1077
1429
|
/**
|
|
1078
1430
|
* RestPlayOptions interface
|
|
@@ -1091,7 +1443,23 @@ export interface RestPlayOptions {
|
|
|
1091
1443
|
identifier?: string | null;
|
|
1092
1444
|
/** The user data of the track. */
|
|
1093
1445
|
userData?: object;
|
|
1446
|
+
/** NodeLink optional audio track id for alternate audio tracks. */
|
|
1447
|
+
audioTrackId?: string | null;
|
|
1448
|
+
/** Legacy NodeLink alias for audioTrackId. */
|
|
1449
|
+
language?: string | null;
|
|
1094
1450
|
};
|
|
1451
|
+
/** NodeLink next track preload payload. */
|
|
1452
|
+
nextTrack?: {
|
|
1453
|
+
encoded?: string | null;
|
|
1454
|
+
identifier?: string | null;
|
|
1455
|
+
userData?: object;
|
|
1456
|
+
audioTrackId?: string | null;
|
|
1457
|
+
language?: string | null;
|
|
1458
|
+
} | null;
|
|
1459
|
+
/** NodeLink loudness normalizer toggle. */
|
|
1460
|
+
loudnessNormalizer?: boolean;
|
|
1461
|
+
/** NodeLink playback fading configuration. */
|
|
1462
|
+
fading?: NodeLinkFadingConfig;
|
|
1095
1463
|
/** The player position in a track. */
|
|
1096
1464
|
position?: number;
|
|
1097
1465
|
/** The track time to end at. */
|
|
@@ -1101,7 +1469,7 @@ export interface RestPlayOptions {
|
|
|
1101
1469
|
/** Whether the player is paused. */
|
|
1102
1470
|
paused?: boolean;
|
|
1103
1471
|
/** The audio effects. */
|
|
1104
|
-
filters?:
|
|
1472
|
+
filters?: LavalinkFilters;
|
|
1105
1473
|
/** voice payload. */
|
|
1106
1474
|
voice?: LavalinkVoiceStateUpdate;
|
|
1107
1475
|
};
|
|
@@ -1140,12 +1508,25 @@ export interface SerializedPlayerState {
|
|
|
1140
1508
|
filters: {
|
|
1141
1509
|
bassBoostlevel: number | null;
|
|
1142
1510
|
equalizer: EqualizerBand[];
|
|
1143
|
-
distortion: DistortionOptions;
|
|
1144
|
-
karaoke: KaraokeOptions;
|
|
1145
|
-
timescale: TimescaleOptions;
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1511
|
+
distortion: DistortionOptions | null;
|
|
1512
|
+
karaoke: KaraokeOptions | null;
|
|
1513
|
+
timescale: TimescaleOptions | null;
|
|
1514
|
+
tremolo: TremoloOptions | null;
|
|
1515
|
+
vibrato: VibratoOptions | null;
|
|
1516
|
+
rotation: RotationOptions | null;
|
|
1517
|
+
channelMix: ChannelMixOptions | null;
|
|
1518
|
+
lowPass: LowPassOptions | null;
|
|
1519
|
+
highpass: HighPassOptions | null;
|
|
1520
|
+
echo: EchoOptions | null;
|
|
1521
|
+
chorus: ChorusOptions | null;
|
|
1522
|
+
compressor: CompressorOptions | null;
|
|
1523
|
+
flanger: FlangerOptions | null;
|
|
1524
|
+
phaser: PhaserOptions | null;
|
|
1525
|
+
phonograph: PhonographOptions | null;
|
|
1526
|
+
spatial: SpatialOptions | null;
|
|
1527
|
+
tape: TapeOptions | null;
|
|
1528
|
+
pluginFilters: Record<string, unknown>;
|
|
1529
|
+
reverb: ReverbOptions | null;
|
|
1149
1530
|
volume: number;
|
|
1150
1531
|
filterStatus: Record<string, boolean>;
|
|
1151
1532
|
} | null;
|
|
@@ -1183,6 +1564,26 @@ export interface LavalinkSession {
|
|
|
1183
1564
|
resuming?: boolean;
|
|
1184
1565
|
timeout?: number;
|
|
1185
1566
|
}
|
|
1567
|
+
export interface RoutePlannerStatus {
|
|
1568
|
+
class: "RotatingIpRoutePlanner" | "NanoIpRoutePlanner" | "RotatingNanoIpRoutePlanner" | "BalancingIpRoutePlanner";
|
|
1569
|
+
details: RoutePlannerDetails;
|
|
1570
|
+
}
|
|
1571
|
+
export interface RoutePlannerDetails {
|
|
1572
|
+
ipBlock: {
|
|
1573
|
+
type: "Inet4Address" | "Inet6Address";
|
|
1574
|
+
size: string;
|
|
1575
|
+
};
|
|
1576
|
+
failingAddresses: {
|
|
1577
|
+
failingAddress: string;
|
|
1578
|
+
failingTimestamp: number;
|
|
1579
|
+
failingTime: string;
|
|
1580
|
+
}[];
|
|
1581
|
+
rotateIndex?: string;
|
|
1582
|
+
ipIndex?: string;
|
|
1583
|
+
currentAddress?: string;
|
|
1584
|
+
currentAddressIndex?: string;
|
|
1585
|
+
blockIndex?: string;
|
|
1586
|
+
}
|
|
1186
1587
|
/**
|
|
1187
1588
|
* ManagerInitOptions interface
|
|
1188
1589
|
*/
|
|
@@ -1199,20 +1600,36 @@ export interface EqualizerBand {
|
|
|
1199
1600
|
/** The gain amount being -0.25 to 1.00, 0.25 being double. */
|
|
1200
1601
|
gain: number;
|
|
1201
1602
|
}
|
|
1603
|
+
export interface AnimationTransition {
|
|
1604
|
+
durationMs: number;
|
|
1605
|
+
curve?: string;
|
|
1606
|
+
}
|
|
1202
1607
|
/** Options for adjusting the timescale of audio. */
|
|
1203
1608
|
export interface TimescaleOptions {
|
|
1204
1609
|
speed?: number;
|
|
1205
1610
|
pitch?: number;
|
|
1206
1611
|
rate?: number;
|
|
1612
|
+
transition?: AnimationTransition;
|
|
1613
|
+
}
|
|
1614
|
+
/** Options for applying tremolo effect to audio. */
|
|
1615
|
+
export interface TremoloOptions {
|
|
1616
|
+
frequency?: number;
|
|
1617
|
+
depth?: number;
|
|
1618
|
+
alpha?: number;
|
|
1619
|
+
transition?: AnimationTransition;
|
|
1207
1620
|
}
|
|
1208
1621
|
/** Options for applying vibrato effect to audio. */
|
|
1209
1622
|
export interface VibratoOptions {
|
|
1210
|
-
frequency
|
|
1211
|
-
depth
|
|
1623
|
+
frequency?: number;
|
|
1624
|
+
depth?: number;
|
|
1625
|
+
alpha?: number;
|
|
1626
|
+
transition?: AnimationTransition;
|
|
1212
1627
|
}
|
|
1213
1628
|
/** Options for applying rotation effect to audio. */
|
|
1214
1629
|
export interface RotationOptions {
|
|
1215
1630
|
rotationHz: number;
|
|
1631
|
+
alpha?: number;
|
|
1632
|
+
transition?: AnimationTransition;
|
|
1216
1633
|
}
|
|
1217
1634
|
/** Options for applying karaoke effect to audio. */
|
|
1218
1635
|
export interface KaraokeOptions {
|
|
@@ -1220,6 +1637,8 @@ export interface KaraokeOptions {
|
|
|
1220
1637
|
monoLevel?: number;
|
|
1221
1638
|
filterBand?: number;
|
|
1222
1639
|
filterWidth?: number;
|
|
1640
|
+
alpha?: number;
|
|
1641
|
+
transition?: AnimationTransition;
|
|
1223
1642
|
}
|
|
1224
1643
|
/** Options for applying distortion effect to audio. */
|
|
1225
1644
|
export interface DistortionOptions {
|
|
@@ -1231,13 +1650,149 @@ export interface DistortionOptions {
|
|
|
1231
1650
|
tanScale?: number;
|
|
1232
1651
|
offset?: number;
|
|
1233
1652
|
scale?: number;
|
|
1234
|
-
|
|
1235
|
-
|
|
1653
|
+
alpha?: number;
|
|
1654
|
+
transition?: AnimationTransition;
|
|
1655
|
+
}
|
|
1656
|
+
/** Options for mixing stereo channels. */
|
|
1657
|
+
export interface ChannelMixOptions {
|
|
1658
|
+
leftToLeft?: number;
|
|
1659
|
+
leftToRight?: number;
|
|
1660
|
+
rightToLeft?: number;
|
|
1661
|
+
rightToRight?: number;
|
|
1662
|
+
transition?: AnimationTransition;
|
|
1663
|
+
}
|
|
1664
|
+
/** Options for applying a low pass filter. */
|
|
1665
|
+
export interface LowPassOptions {
|
|
1666
|
+
smoothing?: number;
|
|
1667
|
+
targetAlpha?: number;
|
|
1668
|
+
logSmoothing?: number;
|
|
1669
|
+
transition?: AnimationTransition;
|
|
1670
|
+
}
|
|
1671
|
+
/** Options for applying a high pass filter. */
|
|
1672
|
+
export interface HighPassOptions {
|
|
1673
|
+
smoothing?: number;
|
|
1674
|
+
targetAlpha?: number;
|
|
1675
|
+
transition?: AnimationTransition;
|
|
1676
|
+
}
|
|
1677
|
+
/** Options for applying an echo filter. */
|
|
1678
|
+
export interface EchoOptions {
|
|
1679
|
+
delay?: number;
|
|
1680
|
+
feedback?: number;
|
|
1681
|
+
mix?: number;
|
|
1682
|
+
alpha?: number;
|
|
1683
|
+
transition?: AnimationTransition;
|
|
1684
|
+
}
|
|
1685
|
+
/** Options for applying a reverb filter. */
|
|
1236
1686
|
export interface ReverbOptions {
|
|
1237
1687
|
wet?: number;
|
|
1238
1688
|
dry?: number;
|
|
1239
1689
|
roomSize?: number;
|
|
1240
1690
|
damping?: number;
|
|
1691
|
+
wetLevel?: number;
|
|
1692
|
+
dryLevel?: number;
|
|
1693
|
+
width?: number;
|
|
1694
|
+
mix?: number;
|
|
1695
|
+
alpha?: number;
|
|
1696
|
+
transition?: AnimationTransition;
|
|
1697
|
+
}
|
|
1698
|
+
/** Options for applying a chorus filter. */
|
|
1699
|
+
export interface ChorusOptions {
|
|
1700
|
+
rate?: number;
|
|
1701
|
+
depth?: number;
|
|
1702
|
+
feedback?: number;
|
|
1703
|
+
delay?: number;
|
|
1704
|
+
mix?: number;
|
|
1705
|
+
alpha?: number;
|
|
1706
|
+
transition?: AnimationTransition;
|
|
1707
|
+
}
|
|
1708
|
+
/** Options for applying a compressor filter. */
|
|
1709
|
+
export interface CompressorOptions {
|
|
1710
|
+
threshold?: number;
|
|
1711
|
+
ratio?: number;
|
|
1712
|
+
attack?: number;
|
|
1713
|
+
release?: number;
|
|
1714
|
+
gain?: number;
|
|
1715
|
+
makeupGain?: number;
|
|
1716
|
+
alpha?: number;
|
|
1717
|
+
transition?: AnimationTransition;
|
|
1718
|
+
}
|
|
1719
|
+
/** Options for applying a flanger filter. */
|
|
1720
|
+
export interface FlangerOptions {
|
|
1721
|
+
rate?: number;
|
|
1722
|
+
depth?: number;
|
|
1723
|
+
feedback?: number;
|
|
1724
|
+
delay?: number;
|
|
1725
|
+
mix?: number;
|
|
1726
|
+
alpha?: number;
|
|
1727
|
+
transition?: AnimationTransition;
|
|
1728
|
+
}
|
|
1729
|
+
/** Options for applying a phaser filter. */
|
|
1730
|
+
export interface PhaserOptions {
|
|
1731
|
+
rate?: number;
|
|
1732
|
+
depth?: number;
|
|
1733
|
+
feedback?: number;
|
|
1734
|
+
delay?: number;
|
|
1735
|
+
mix?: number;
|
|
1736
|
+
stages?: number;
|
|
1737
|
+
minFrequency?: number;
|
|
1738
|
+
maxFrequency?: number;
|
|
1739
|
+
alpha?: number;
|
|
1740
|
+
transition?: AnimationTransition;
|
|
1741
|
+
}
|
|
1742
|
+
/** Options for applying a spatial audio filter. */
|
|
1743
|
+
export interface SpatialOptions {
|
|
1744
|
+
x?: number;
|
|
1745
|
+
y?: number;
|
|
1746
|
+
z?: number;
|
|
1747
|
+
depth?: number;
|
|
1748
|
+
rate?: number;
|
|
1749
|
+
alpha?: number;
|
|
1750
|
+
transition?: AnimationTransition;
|
|
1751
|
+
}
|
|
1752
|
+
/** Options for applying a phonograph filter. */
|
|
1753
|
+
export interface PhonographOptions {
|
|
1754
|
+
frequency?: number;
|
|
1755
|
+
depth?: number;
|
|
1756
|
+
crackle?: number;
|
|
1757
|
+
flutter?: number;
|
|
1758
|
+
room?: number;
|
|
1759
|
+
micAgc?: number;
|
|
1760
|
+
drive?: number;
|
|
1761
|
+
alpha?: number;
|
|
1762
|
+
transition?: AnimationTransition;
|
|
1763
|
+
}
|
|
1764
|
+
/** Options for applying a tape filter. */
|
|
1765
|
+
export interface TapeOptions {
|
|
1766
|
+
duration?: number;
|
|
1767
|
+
type?: "start" | "stop";
|
|
1768
|
+
curve?: string;
|
|
1769
|
+
}
|
|
1770
|
+
export interface LavalinkFilters {
|
|
1771
|
+
volume?: number;
|
|
1772
|
+
equalizer?: EqualizerBand[] | {
|
|
1773
|
+
bands?: EqualizerBand[];
|
|
1774
|
+
transition?: AnimationTransition;
|
|
1775
|
+
};
|
|
1776
|
+
karaoke?: KaraokeOptions | null;
|
|
1777
|
+
timescale?: TimescaleOptions | null;
|
|
1778
|
+
tremolo?: TremoloOptions | null;
|
|
1779
|
+
vibrato?: VibratoOptions | null;
|
|
1780
|
+
distortion?: DistortionOptions | null;
|
|
1781
|
+
rotation?: RotationOptions | null;
|
|
1782
|
+
channelMix?: ChannelMixOptions | null;
|
|
1783
|
+
lowPass?: LowPassOptions | null;
|
|
1784
|
+
lowpass?: LowPassOptions | null;
|
|
1785
|
+
highpass?: HighPassOptions | null;
|
|
1786
|
+
echo?: EchoOptions | null;
|
|
1787
|
+
reverb?: ReverbOptions | null;
|
|
1788
|
+
chorus?: ChorusOptions | null;
|
|
1789
|
+
compressor?: CompressorOptions | null;
|
|
1790
|
+
flanger?: FlangerOptions | null;
|
|
1791
|
+
phaser?: PhaserOptions | null;
|
|
1792
|
+
phonograph?: PhonographOptions | null;
|
|
1793
|
+
spatial?: SpatialOptions | null;
|
|
1794
|
+
tape?: TapeOptions | null;
|
|
1795
|
+
pluginFilters?: Record<string, unknown>;
|
|
1241
1796
|
}
|
|
1242
1797
|
export interface LastFmResponse {
|
|
1243
1798
|
error?: number;
|
|
@@ -1305,7 +1860,7 @@ export type Sizes = "0" | "1" | "2" | "3" | "default" | "mqdefault" | "hqdefault
|
|
|
1305
1860
|
/**
|
|
1306
1861
|
* Track Source Name Enum type
|
|
1307
1862
|
*/
|
|
1308
|
-
export type TrackSourceName =
|
|
1863
|
+
export type TrackSourceName = `${TrackSourceTypes}` | string;
|
|
1309
1864
|
/**
|
|
1310
1865
|
* Use Node Option Enum type
|
|
1311
1866
|
*/
|
|
@@ -1317,7 +1872,7 @@ export type TrackEndReason = keyof typeof TrackEndReasonTypes;
|
|
|
1317
1872
|
/**
|
|
1318
1873
|
* Player Event Type Enum type
|
|
1319
1874
|
*/
|
|
1320
|
-
export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted" | "LyricsFoundEvent" | "LyricsNotFoundEvent" | "LyricsLineEvent";
|
|
1875
|
+
export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "MixStartedEvent" | "MixEndedEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "SponsorBlockSegmentSkippedEvent" | "SponsorBlockSegmentsLoadedEvent" | "ChaptersLoaded" | "ChapterStarted" | "LyricsFoundEvent" | "LyricsNotFoundEvent" | "LyricsLineEvent" | "VolumeChangedEvent" | "FiltersChangedEvent" | "SeekEvent" | "PauseEvent" | "PlayerCreatedEvent" | "PlayerDestroyedEvent" | "PlayerReconnectingEvent" | "PlayerConnectedEvent" | "EternalBoxInfoEvent" | "EternalBoxJumpEvent" | "StreamMetadataEvent";
|
|
1321
1876
|
/**
|
|
1322
1877
|
* Severity Types Enum type
|
|
1323
1878
|
*/
|
|
@@ -1329,11 +1884,11 @@ export type SponsorBlockSegmentEvents = SponsorBlockSegmentSkipped | SponsorBloc
|
|
|
1329
1884
|
/**
|
|
1330
1885
|
* SponsorBlock Segment Event Type Enum type
|
|
1331
1886
|
*/
|
|
1332
|
-
export type SponsorBlockSegmentEventType = "SegmentSkipped" | "SegmentsLoaded" | "ChapterStarted" | "ChaptersLoaded";
|
|
1887
|
+
export type SponsorBlockSegmentEventType = "SegmentSkipped" | "SegmentsLoaded" | "SponsorBlockSegmentSkippedEvent" | "SponsorBlockSegmentsLoadedEvent" | "ChapterStarted" | "ChaptersLoaded";
|
|
1333
1888
|
/**
|
|
1334
1889
|
* Player Events Enum type
|
|
1335
1890
|
*/
|
|
1336
|
-
export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent | SponsorBlockSegmentEvents | LyricsEvent;
|
|
1891
|
+
export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent | SponsorBlockSegmentEvents | LyricsEvent | NodeLinkPlayerEvent;
|
|
1337
1892
|
/**
|
|
1338
1893
|
* Load Type Enum type
|
|
1339
1894
|
*/
|
|
@@ -1341,7 +1896,7 @@ export type LoadType = keyof typeof LoadTypes;
|
|
|
1341
1896
|
/**
|
|
1342
1897
|
* NodeLink Get Lyrics Enum type
|
|
1343
1898
|
*/
|
|
1344
|
-
export type NodeLinkGetLyrics = NodeLinkGetLyricsSingle | NodeLinkGetLyricsMultiple | NodeLinkGetLyricsEmpty | NodeLinkGetLyricsError;
|
|
1899
|
+
export type NodeLinkGetLyrics = NodeLinkGetLyricsLyrics | NodeLinkGetLyricsSingle | NodeLinkGetLyricsMultiple | NodeLinkGetLyricsEmpty | NodeLinkGetLyricsError;
|
|
1345
1900
|
/**
|
|
1346
1901
|
* Voice Receiver Event Enum type
|
|
1347
1902
|
*/
|
|
@@ -1349,7 +1904,7 @@ export type VoiceReceiverEvent = StartSpeakingEventVoiceReceiver | EndSpeakingEv
|
|
|
1349
1904
|
/**
|
|
1350
1905
|
* Search Result Enum type
|
|
1351
1906
|
*/
|
|
1352
|
-
export type SearchResult = TrackSearchResult | SearchSearchResult | PlaylistSearchResult | ErrorOrEmptySearchResult | AlbumSearchResult | ArtistSearchResult | StationSearchResult | PodcastSearchResult | ShowSearchResult | ShortSearchResult;
|
|
1907
|
+
export type SearchResult = TrackSearchResult | EpisodeSearchResult | SearchSearchResult | PlaylistSearchResult | ErrorOrEmptySearchResult | AlbumSearchResult | ArtistSearchResult | StationSearchResult | PodcastSearchResult | ShowSearchResult | ShortSearchResult;
|
|
1353
1908
|
/**
|
|
1354
1909
|
* Lyrics Event Enum type
|
|
1355
1910
|
*/
|