discord-player 6.8.0-dev.0 → 6.8.0-dev.1

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 (3) hide show
  1. package/dist/index.d.ts +170 -152
  2. package/dist/index.js +371 -285
  3. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -963,6 +963,7 @@ interface GuildNodeInit<Meta = unknown> {
963
963
  disableFilterer: boolean;
964
964
  disableBiquad: boolean;
965
965
  disableResampler: boolean;
966
+ disableFallbackStream: boolean;
966
967
  }
967
968
  interface VoiceConnectConfig {
968
969
  deaf?: boolean;
@@ -1606,6 +1607,8 @@ declare class Track<T = unknown> {
1606
1607
  private __reqMetadataFn;
1607
1608
  cleanTitle: string;
1608
1609
  live: boolean;
1610
+ bridgedExtractor: BaseExtractor | null;
1611
+ bridgedTrack: Track | null;
1609
1612
  /**
1610
1613
  * Track constructor
1611
1614
  * @param player The player that instantiated this Track
@@ -1776,10 +1779,165 @@ declare class Playlist {
1776
1779
  play<T = unknown>(channel: GuildVoiceChannelResolvable, options?: PlayerNodeInitializerOptions<T>): Promise<PlayerNodeInitializationResult<T>>;
1777
1780
  }
1778
1781
 
1782
+ type unsafe = any;
1783
+ /**
1784
+ * The receiver function that will be called when the context is provided
1785
+ */
1786
+ type ContextReceiver<R> = () => R;
1787
+ declare class Context<T> {
1788
+ private defaultValue?;
1789
+ private storage;
1790
+ constructor(defaultValue?: T | undefined);
1791
+ /**
1792
+ * Exit out of this context
1793
+ */
1794
+ exit(scope: ContextReceiver<void>): void;
1795
+ /**
1796
+ * Whether the context is lost
1797
+ */
1798
+ get isLost(): boolean;
1799
+ /**
1800
+ * Get the current value of the context. If the context is lost and no default value is provided, undefined will be returned.
1801
+ */
1802
+ consume(): T | undefined;
1803
+ /**
1804
+ * Run a function within the context of this provider
1805
+ */
1806
+ provide<R = unsafe>(value: T, receiver: ContextReceiver<R>): R;
1807
+ }
1808
+ /**
1809
+ * Create a new context. The default value is optional.
1810
+ * @param defaultValue The default value of the context
1811
+ * @example const userContext = createContext();
1812
+ *
1813
+ * // the value to provide
1814
+ * const user = {
1815
+ * id: 1,
1816
+ * name: 'John Doe'
1817
+ * };
1818
+ *
1819
+ * // provide the context value to the receiver
1820
+ * context.provide(user, handler);
1821
+ *
1822
+ * function handler() {
1823
+ * // get the context value
1824
+ * const { id, name } = useContext(context);
1825
+ *
1826
+ * console.log(id, name); // 1, John Doe
1827
+ * }
1828
+ */
1829
+ declare function createContext<T = unsafe>(defaultValue?: T): Context<T>;
1830
+ /**
1831
+ * Get the current value of the context. If the context is lost and no default value is provided, undefined will be returned.
1832
+ * @param context The context to get the value from
1833
+ * @example const value = useContext(context);
1834
+ */
1835
+ declare function useContext<T = unsafe>(context: Context<T>): T | undefined;
1836
+
1837
+ /**
1838
+ * Fetch guild queue history
1839
+ * @param node guild queue node resolvable
1840
+ */
1841
+ declare function useHistory<Meta = unknown>(): GuildQueueHistory<Meta> | null;
1842
+ declare function useHistory<Meta = unknown>(node: NodeResolvable): GuildQueueHistory<Meta> | null;
1843
+
1844
+ /**
1845
+ * Fetch guild queue player node
1846
+ * @param node Guild queue node resolvable
1847
+ */
1848
+ declare function usePlayer<Meta = unknown>(): GuildQueuePlayerNode<Meta> | null;
1849
+ declare function usePlayer<Meta = unknown>(node: NodeResolvable): GuildQueuePlayerNode<Meta> | null;
1850
+
1851
+ /**
1852
+ * Fetch guild queue
1853
+ * @param node Guild queue node resolvable
1854
+ */
1855
+ declare function useQueue<Meta = unknown>(): GuildQueue<Meta> | null;
1856
+ declare function useQueue<Meta = unknown>(node: NodeResolvable): GuildQueue<Meta> | null;
1857
+
1858
+ /**
1859
+ * Fetch main player instance
1860
+ * @deprecated
1861
+ */
1862
+ declare function useMasterPlayer(): Player;
1863
+ /**
1864
+ * Fetch main player instance
1865
+ */
1866
+ declare function useMainPlayer(): Player;
1867
+
1868
+ type SetterFN$1<T, P> = (previous: P) => T;
1869
+ type MetadataDispatch<T> = readonly [() => T, (metadata: T | SetterFN$1<T, T>) => void];
1870
+ /**
1871
+ * Fetch or manipulate guild queue metadata
1872
+ * @param node Guild queue node resolvable
1873
+ */
1874
+ declare function useMetadata<T = unknown>(): MetadataDispatch<T>;
1875
+ declare function useMetadata<T = unknown>(node: NodeResolvable): MetadataDispatch<T>;
1876
+
1877
+ interface TimelineDispatcherOptions {
1878
+ ignoreFilters: boolean;
1879
+ }
1880
+ /**
1881
+ * Fetch or manipulate current track
1882
+ * @param node Guild queue node resolvable
1883
+ * @param options Options for timeline dispatcher
1884
+ */
1885
+ declare function useTimeline(node?: NodeResolvable, options?: Partial<TimelineDispatcherOptions>): {
1886
+ readonly timestamp: PlayerTimestamp;
1887
+ readonly volume: number;
1888
+ readonly paused: boolean;
1889
+ readonly track: Track<unknown> | null;
1890
+ pause(): boolean;
1891
+ resume(): boolean;
1892
+ setVolume(vol: number): boolean;
1893
+ setPosition(time: number): Promise<boolean>;
1894
+ } | null;
1895
+
1896
+ /**
1897
+ * Global onAfterCreateStream handler
1898
+ * @param handler The handler callback
1899
+ */
1900
+ declare function onAfterCreateStream(handler: OnAfterCreateStreamHandler): void;
1901
+
1902
+ /**
1903
+ * Global onBeforeCreateStream handler
1904
+ * @param handler The handler callback
1905
+ */
1906
+ declare function onBeforeCreateStream(handler: OnBeforeCreateStreamHandler): void;
1907
+
1908
+ type SetterFN = (previous: number) => number;
1909
+ type VolumeDispatch = readonly [() => number, (volume: number | SetterFN) => boolean | undefined];
1910
+ /**
1911
+ * Fetch or manipulate player volume
1912
+ * @param node Guild queue node resolvable
1913
+ */
1914
+ declare function useVolume(): VolumeDispatch;
1915
+ declare function useVolume(node: NodeResolvable): VolumeDispatch;
1916
+
1917
+ declare const instances: Collection<string, Player>;
1918
+
1919
+ declare const getPlayer: () => Player | null;
1920
+ interface HooksCtx {
1921
+ guild: Guild;
1922
+ }
1923
+ declare const getQueue: <T = unknown>(node: NodeResolvable) => GuildQueue<T> | null;
1924
+ interface HookDeclarationContext {
1925
+ getQueue: typeof getQueue;
1926
+ getPlayer: typeof getPlayer;
1927
+ instances: typeof instances;
1928
+ }
1929
+ type HookDeclaration<T extends (...args: any[]) => any> = (context: HookDeclarationContext) => T;
1930
+ declare function createHook<T extends HookDeclaration<(...args: any[]) => any>>(hook: T): ReturnType<T>;
1931
+
1779
1932
  declare const knownExtractorKeys: readonly ["SpotifyExtractor", "AppleMusicExtractor", "SoundCloudExtractor", "YouTubeExtractor", "VimeoExtractor", "ReverbnationExtractor", "AttachmentExtractor"];
1780
1933
  type ExtractorLoaderOptionDict = {
1781
1934
  [K in (typeof knownExtractorKeys)[number]]?: ConstructorParameters<typeof _discord_player_extractor[K]>[1];
1782
1935
  };
1936
+ interface ExtractorSession {
1937
+ id: string;
1938
+ attemptedExtractors: Set<string>;
1939
+ bridgeAttemptedExtractors: Set<string>;
1940
+ }
1783
1941
  interface ExtractorExecutionEvents {
1784
1942
  /**
1785
1943
  * Emitted when a extractor is registered
@@ -1818,7 +1976,16 @@ declare class ExtractorExecutionContext extends PlayerEventsEmitter<ExtractorExe
1818
1976
  * The extractors store
1819
1977
  */
1820
1978
  store: Collection<string, BaseExtractor<object>>;
1979
+ readonly context: Context<ExtractorSession>;
1821
1980
  constructor(player: Player);
1981
+ /**
1982
+ * Get the current execution id
1983
+ */
1984
+ getExecutionId(): string | null;
1985
+ /**
1986
+ * Get the current execution context
1987
+ */
1988
+ getContext(): ExtractorSession | null;
1822
1989
  /**
1823
1990
  * Load default extractors from `@discord-player/extractor`
1824
1991
  */
@@ -1869,7 +2036,7 @@ declare class ExtractorExecutionContext extends PlayerEventsEmitter<ExtractorExe
1869
2036
  * @param track The track to request bridge for
1870
2037
  * @param sourceExtractor The source extractor of the track
1871
2038
  */
1872
- requestBridge(track: Track, sourceExtractor?: BaseExtractor | null): Promise<ExtractorExecutionResult<false> | ExtractorExecutionResult<ExtractorStreamable> | undefined>;
2039
+ requestBridge(track: Track, sourceExtractor?: BaseExtractor | null): Promise<ExtractorExecutionResult<ExtractorStreamable>>;
1873
2040
  /**
1874
2041
  * Request bridge from the specified extractor
1875
2042
  * @param track The track to request bridge for
@@ -2212,156 +2379,6 @@ declare class IPRotator {
2212
2379
  static getRandomIP(address: string, start?: number, end?: number): string;
2213
2380
  }
2214
2381
 
2215
- type unsafe = any;
2216
- /**
2217
- * The receiver function that will be called when the context is provided
2218
- */
2219
- type ContextReceiver<R> = () => R;
2220
- declare class Context<T> {
2221
- private defaultValue?;
2222
- private storage;
2223
- constructor(defaultValue?: T | undefined);
2224
- /**
2225
- * Exit out of this context
2226
- */
2227
- exit(scope: ContextReceiver<void>): void;
2228
- /**
2229
- * Whether the context is lost
2230
- */
2231
- get isLost(): boolean;
2232
- /**
2233
- * Get the current value of the context. If the context is lost and no default value is provided, undefined will be returned.
2234
- */
2235
- consume(): T | undefined;
2236
- /**
2237
- * Run a function within the context of this provider
2238
- */
2239
- provide<R = unsafe>(value: T, receiver: ContextReceiver<R>): R;
2240
- }
2241
- /**
2242
- * Create a new context. The default value is optional.
2243
- * @param defaultValue The default value of the context
2244
- * @example const userContext = createContext();
2245
- *
2246
- * // the value to provide
2247
- * const user = {
2248
- * id: 1,
2249
- * name: 'John Doe'
2250
- * };
2251
- *
2252
- * // provide the context value to the receiver
2253
- * context.provide(user, handler);
2254
- *
2255
- * function handler() {
2256
- * // get the context value
2257
- * const { id, name } = useContext(context);
2258
- *
2259
- * console.log(id, name); // 1, John Doe
2260
- * }
2261
- */
2262
- declare function createContext<T = unsafe>(defaultValue?: T): Context<T>;
2263
- /**
2264
- * Get the current value of the context. If the context is lost and no default value is provided, undefined will be returned.
2265
- * @param context The context to get the value from
2266
- * @example const value = useContext(context);
2267
- */
2268
- declare function useContext<T = unsafe>(context: Context<T>): T | undefined;
2269
-
2270
- /**
2271
- * Fetch guild queue history
2272
- * @param node guild queue node resolvable
2273
- */
2274
- declare function useHistory<Meta = unknown>(): GuildQueueHistory<Meta> | null;
2275
- declare function useHistory<Meta = unknown>(node: NodeResolvable): GuildQueueHistory<Meta> | null;
2276
-
2277
- /**
2278
- * Fetch guild queue player node
2279
- * @param node Guild queue node resolvable
2280
- */
2281
- declare function usePlayer<Meta = unknown>(): GuildQueuePlayerNode<Meta> | null;
2282
- declare function usePlayer<Meta = unknown>(node: NodeResolvable): GuildQueuePlayerNode<Meta> | null;
2283
-
2284
- /**
2285
- * Fetch guild queue
2286
- * @param node Guild queue node resolvable
2287
- */
2288
- declare function useQueue<Meta = unknown>(): GuildQueue<Meta> | null;
2289
- declare function useQueue<Meta = unknown>(node: NodeResolvable): GuildQueue<Meta> | null;
2290
-
2291
- /**
2292
- * Fetch main player instance
2293
- * @deprecated
2294
- */
2295
- declare function useMasterPlayer(): Player;
2296
- /**
2297
- * Fetch main player instance
2298
- */
2299
- declare function useMainPlayer(): Player;
2300
-
2301
- type SetterFN$1<T, P> = (previous: P) => T;
2302
- type MetadataDispatch<T> = readonly [() => T, (metadata: T | SetterFN$1<T, T>) => void];
2303
- /**
2304
- * Fetch or manipulate guild queue metadata
2305
- * @param node Guild queue node resolvable
2306
- */
2307
- declare function useMetadata<T = unknown>(): MetadataDispatch<T>;
2308
- declare function useMetadata<T = unknown>(node: NodeResolvable): MetadataDispatch<T>;
2309
-
2310
- interface TimelineDispatcherOptions {
2311
- ignoreFilters: boolean;
2312
- }
2313
- /**
2314
- * Fetch or manipulate current track
2315
- * @param node Guild queue node resolvable
2316
- * @param options Options for timeline dispatcher
2317
- */
2318
- declare function useTimeline(node?: NodeResolvable, options?: Partial<TimelineDispatcherOptions>): {
2319
- readonly timestamp: PlayerTimestamp;
2320
- readonly volume: number;
2321
- readonly paused: boolean;
2322
- readonly track: Track<unknown> | null;
2323
- pause(): boolean;
2324
- resume(): boolean;
2325
- setVolume(vol: number): boolean;
2326
- setPosition(time: number): Promise<boolean>;
2327
- } | null;
2328
-
2329
- /**
2330
- * Global onAfterCreateStream handler
2331
- * @param handler The handler callback
2332
- */
2333
- declare function onAfterCreateStream(handler: OnAfterCreateStreamHandler): void;
2334
-
2335
- /**
2336
- * Global onBeforeCreateStream handler
2337
- * @param handler The handler callback
2338
- */
2339
- declare function onBeforeCreateStream(handler: OnBeforeCreateStreamHandler): void;
2340
-
2341
- type SetterFN = (previous: number) => number;
2342
- type VolumeDispatch = readonly [() => number, (volume: number | SetterFN) => boolean | undefined];
2343
- /**
2344
- * Fetch or manipulate player volume
2345
- * @param node Guild queue node resolvable
2346
- */
2347
- declare function useVolume(): VolumeDispatch;
2348
- declare function useVolume(node: NodeResolvable): VolumeDispatch;
2349
-
2350
- declare const instances: Collection<string, Player>;
2351
-
2352
- declare const getPlayer: () => Player | null;
2353
- interface HooksCtx {
2354
- guild: Guild;
2355
- }
2356
- declare const getQueue: <T = unknown>(node: NodeResolvable) => GuildQueue<T> | null;
2357
- interface HookDeclarationContext {
2358
- getQueue: typeof getQueue;
2359
- getPlayer: typeof getPlayer;
2360
- instances: typeof instances;
2361
- }
2362
- type HookDeclaration<T extends (...args: any[]) => any> = (context: HookDeclarationContext) => T;
2363
- declare function createHook<T extends HookDeclaration<(...args: any[]) => any>>(hook: T): ReturnType<T>;
2364
-
2365
2382
  interface PlayerNodeInitializationResult<T = unknown> {
2366
2383
  track: Track;
2367
2384
  extractor: BaseExtractor | null;
@@ -2621,6 +2638,7 @@ interface GuildNodeCreateOptions<T = unknown> {
2621
2638
  disableFilterer?: boolean;
2622
2639
  disableBiquad?: boolean;
2623
2640
  disableResampler?: boolean;
2641
+ disableFallbackStream?: boolean;
2624
2642
  }
2625
2643
  type NodeResolvable = GuildQueue | GuildResolvable;
2626
2644
  declare class GuildNodeManager<Meta = unknown> {
@@ -3343,4 +3361,4 @@ declare class QueryResolver {
3343
3361
 
3344
3362
  declare const version: string;
3345
3363
 
3346
- export { AFilterGraph, AsyncQueue, AsyncQueueAcquisitionOptions, AsyncQueueEntry, AsyncQueueExceptionHandler, AudioFilters, BaseExtractor, Context, ContextReceiver, CreateStreamOps, DiscordPlayerQueryResultCache, Encodable, EqualizerConfigurationPreset, ExtractorExecutionContext, ExtractorExecutionEvents, ExtractorExecutionFN, ExtractorExecutionResult, ExtractorInfo, ExtractorLoaderOptionDict, ExtractorResolvable, ExtractorSearchContext, ExtractorStreamable, FFMPEG_ARGS_PIPED, FFMPEG_ARGS_STRING, FFMPEG_SRATE_REGEX, FFmpegFilterer, FFmpegStreamOptions, FilterGraph, FiltersName, GuildNodeCreateOptions, GuildNodeInit, GuildNodeManager, GuildQueue, GuildQueueAFiltersCache, GuildQueueAudioFilters, GuildQueueEvent, GuildQueueEvents, GuildQueueHistory, GuildQueuePlayerNode, GuildQueueStatistics, GuildQueueStatisticsMetadata, HookDeclaration, HookDeclarationContext, IPBlock, IPRotationConfig, IPRotator, LrcGetParams, LrcGetResult, LrcLib, LrcSearchParams, LrcSearchResult, MetadataDispatch, NextFunction, NodeResolvable, OnAfterCreateStreamHandler, OnBeforeCreateStreamHandler, PlayOptions, Player, PlayerEvent, PlayerEvents, PlayerEventsEmitter, PlayerInitOptions, PlayerNodeInitializationResult, PlayerNodeInitializerOptions, PlayerProgressbarOptions, PlayerSearchResult, PlayerTimestamp, PlayerTriggeredReason, Playlist, PlaylistInitData, PlaylistJSON, PostProcessedResult, QueryCache, QueryCacheOptions, QueryCacheProvider, QueryCacheResolverContext, QueryExtractorSearch, QueryResolver, QueryType, QueueFilters, QueueRepeatMode, RawTrackData, RawTrackInit, RequestEntity, ResolvedQuery, ResourcePlayOptions, Runtime, RuntimeType, SearchOptions, SearchQueryType, SearchResult, SearchResultData, SequentialBucket, SerializedPlaylist, SerializedTrack, SerializedType, SetterFN$1 as SetterFN, SkipOptions, StreamConfig, StreamDispatcher, TimeData, TimelineDispatcherOptions, Track, TrackJSON, TrackLike, TrackResolvable, TrackSkipReason, TrackSource, TypeUtil, Util, VALIDATE_QUEUE_CAP, VoiceConnectConfig, VoiceEvents, VoiceReceiverNode, VoiceReceiverOptions, VoiceStateHandler, VoiceUtils, WithMetadata, createContext, createErisCompat, createFFmpegStream, createHook, decode, deserialize, encode, isErisProxy, onAfterCreateStream, onBeforeCreateStream, serialize, tryIntoThumbnailString, useContext, useHistory, useMainPlayer, useMasterPlayer, useMetadata, usePlayer, useQueue, useTimeline, useVolume, version };
3364
+ export { AFilterGraph, AsyncQueue, AsyncQueueAcquisitionOptions, AsyncQueueEntry, AsyncQueueExceptionHandler, AudioFilters, BaseExtractor, Context, ContextReceiver, CreateStreamOps, DiscordPlayerQueryResultCache, Encodable, EqualizerConfigurationPreset, ExtractorExecutionContext, ExtractorExecutionEvents, ExtractorExecutionFN, ExtractorExecutionResult, ExtractorInfo, ExtractorLoaderOptionDict, ExtractorResolvable, ExtractorSearchContext, ExtractorSession, ExtractorStreamable, FFMPEG_ARGS_PIPED, FFMPEG_ARGS_STRING, FFMPEG_SRATE_REGEX, FFmpegFilterer, FFmpegStreamOptions, FilterGraph, FiltersName, GuildNodeCreateOptions, GuildNodeInit, GuildNodeManager, GuildQueue, GuildQueueAFiltersCache, GuildQueueAudioFilters, GuildQueueEvent, GuildQueueEvents, GuildQueueHistory, GuildQueuePlayerNode, GuildQueueStatistics, GuildQueueStatisticsMetadata, HookDeclaration, HookDeclarationContext, IPBlock, IPRotationConfig, IPRotator, LrcGetParams, LrcGetResult, LrcLib, LrcSearchParams, LrcSearchResult, MetadataDispatch, NextFunction, NodeResolvable, OnAfterCreateStreamHandler, OnBeforeCreateStreamHandler, PlayOptions, Player, PlayerEvent, PlayerEvents, PlayerEventsEmitter, PlayerInitOptions, PlayerNodeInitializationResult, PlayerNodeInitializerOptions, PlayerProgressbarOptions, PlayerSearchResult, PlayerTimestamp, PlayerTriggeredReason, Playlist, PlaylistInitData, PlaylistJSON, PostProcessedResult, QueryCache, QueryCacheOptions, QueryCacheProvider, QueryCacheResolverContext, QueryExtractorSearch, QueryResolver, QueryType, QueueFilters, QueueRepeatMode, RawTrackData, RawTrackInit, RequestEntity, ResolvedQuery, ResourcePlayOptions, Runtime, RuntimeType, SearchOptions, SearchQueryType, SearchResult, SearchResultData, SequentialBucket, SerializedPlaylist, SerializedTrack, SerializedType, SetterFN$1 as SetterFN, SkipOptions, StreamConfig, StreamDispatcher, TimeData, TimelineDispatcherOptions, Track, TrackJSON, TrackLike, TrackResolvable, TrackSkipReason, TrackSource, TypeUtil, Util, VALIDATE_QUEUE_CAP, VoiceConnectConfig, VoiceEvents, VoiceReceiverNode, VoiceReceiverOptions, VoiceStateHandler, VoiceUtils, WithMetadata, createContext, createErisCompat, createFFmpegStream, createHook, decode, deserialize, encode, isErisProxy, onAfterCreateStream, onBeforeCreateStream, serialize, tryIntoThumbnailString, useContext, useHistory, useMainPlayer, useMasterPlayer, useMetadata, usePlayer, useQueue, useTimeline, useVolume, version };