@pulsesync/yamusic-types 0.0.2 → 0.0.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/index.d.ts +48 -1
- package/dist/index.js +4 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,9 @@ export interface PulseSyncTrackSelector {
|
|
|
17
17
|
from?: string;
|
|
18
18
|
position?: 'next' | 'last' | string;
|
|
19
19
|
}
|
|
20
|
+
export interface PulseSyncToastOptions {
|
|
21
|
+
durationMs?: number;
|
|
22
|
+
}
|
|
20
23
|
export interface PulseSyncTrackArtist {
|
|
21
24
|
id?: string | number;
|
|
22
25
|
name?: string;
|
|
@@ -75,6 +78,26 @@ export interface PulseSyncPageEntity {
|
|
|
75
78
|
readonly type: PulseSyncPageEntityType;
|
|
76
79
|
readonly entity: unknown;
|
|
77
80
|
}
|
|
81
|
+
export interface PulseSyncPlayerSnapshot {
|
|
82
|
+
readonly status: PulseSyncPlayerStatus;
|
|
83
|
+
readonly isPlaying: boolean;
|
|
84
|
+
readonly track: PulseSyncTrackMeta | null;
|
|
85
|
+
readonly progress: number | PulseSyncProgressState | null;
|
|
86
|
+
readonly duration: number | null;
|
|
87
|
+
readonly volume: number | null;
|
|
88
|
+
readonly repeatMode: PulseSyncRepeatMode | null;
|
|
89
|
+
readonly shuffle: boolean;
|
|
90
|
+
}
|
|
91
|
+
export interface PulseSyncQueueSnapshot {
|
|
92
|
+
readonly currentIndex: number | null;
|
|
93
|
+
readonly items: readonly PulseSyncTrackMeta[];
|
|
94
|
+
}
|
|
95
|
+
export interface PulseSyncRouteSnapshot {
|
|
96
|
+
readonly href: string;
|
|
97
|
+
readonly pathname: string;
|
|
98
|
+
readonly search: string;
|
|
99
|
+
readonly hash: string;
|
|
100
|
+
}
|
|
78
101
|
export interface PulseSyncObservableState<T> {
|
|
79
102
|
value?: T;
|
|
80
103
|
onChange?: (callback: (value: T) => void, options?: Record<string, unknown>) => (() => void) | void;
|
|
@@ -274,6 +297,9 @@ export interface PulseSyncApi {
|
|
|
274
297
|
isTrackLiked: (trackId?: string, albumId?: string) => boolean;
|
|
275
298
|
isTrackDisliked: (trackId?: string, albumId?: string) => boolean;
|
|
276
299
|
isPlaying: () => boolean;
|
|
300
|
+
getPlayerSnapshot: () => PulseSyncPlayerSnapshot;
|
|
301
|
+
getQueueSnapshot: () => PulseSyncQueueSnapshot;
|
|
302
|
+
getRouteSnapshot: () => PulseSyncRouteSnapshot;
|
|
277
303
|
getState: () => PulseSyncPlayerState | null | undefined;
|
|
278
304
|
getCurrentTrack: () => PulseSyncTrackMeta | undefined;
|
|
279
305
|
getQueue: () => PulseSyncQueueItem[] | undefined;
|
|
@@ -286,6 +312,9 @@ export interface PulseSyncApi {
|
|
|
286
312
|
includeArtistBrief?: boolean;
|
|
287
313
|
}) => Promise<PulseSyncPageEntity | null>;
|
|
288
314
|
onCurrentTrackChange: (listener: (track: PulseSyncTrackMeta | null) => void) => () => void;
|
|
315
|
+
onPlayerSnapshotChange: (listener: (snapshot: PulseSyncPlayerSnapshot) => void) => () => void;
|
|
316
|
+
onQueueChange: (listener: (snapshot: PulseSyncQueueSnapshot) => void) => () => void;
|
|
317
|
+
onRouteChange: (listener: (snapshot: PulseSyncRouteSnapshot) => void) => () => void;
|
|
289
318
|
onPageEntityChange: (listener: (snapshot: PulseSyncPageEntity) => void) => () => void;
|
|
290
319
|
setTrackReplacement: (trackId: string, url: string, ownerId?: string) => boolean;
|
|
291
320
|
setTrackReplacements: (replacements: Readonly<Record<string, string>>, ownerId?: string) => number;
|
|
@@ -294,19 +323,37 @@ export interface PulseSyncApi {
|
|
|
294
323
|
getDisplayMaxFps: () => number;
|
|
295
324
|
getPlatform: () => string;
|
|
296
325
|
getPremiumStatus: () => Promise<boolean>;
|
|
326
|
+
showToast: (message: string, options?: PulseSyncToastOptions, ownerId?: string) => Promise<void>;
|
|
297
327
|
refreshPlayerBar: () => void;
|
|
298
328
|
getSettings: <TSettings extends AddonSettings = AddonSettings>(addonId: string) => AddonSettingsStore<TSettings>;
|
|
299
329
|
}
|
|
300
330
|
export declare const PULSESYNC_WEB_HOST_API_VERSION: 1;
|
|
301
|
-
export declare const PULSESYNC_WEB_HOST_API_V1_RPC_METHODS: readonly ["playVibe", "play", "pause", "togglePlayPause", "next", "previous", "setRepeatMode", "toggleShuffle", "setVolume", "setProgress", "playTrackById", "playPlaylistById", "addTrackToQueueById", "likeTrack", "unlikeTrack", "dislikeTrack", "undislikeTrack", "isTrackLiked", "isTrackDisliked", "isPlaying", "getCurrentTrack", "getQueue", "getProgress", "getDuration", "getVolume", "getRepeatMode", "isShuffle", "getDisplayMaxFps", "getPlatform", "getPremiumStatus", "refreshPlayerBar", "getPageEntity", "setTrackReplacement", "setTrackReplacements", "removeTrackReplacement", "clearTrackReplacements"];
|
|
331
|
+
export declare const PULSESYNC_WEB_HOST_API_V1_RPC_METHODS: readonly ["playVibe", "play", "pause", "togglePlayPause", "next", "previous", "setRepeatMode", "toggleShuffle", "setVolume", "setProgress", "playTrackById", "playPlaylistById", "addTrackToQueueById", "likeTrack", "unlikeTrack", "dislikeTrack", "undislikeTrack", "isTrackLiked", "isTrackDisliked", "isPlaying", "getPlayerSnapshot", "getQueueSnapshot", "getRouteSnapshot", "getCurrentTrack", "getQueue", "getProgress", "getDuration", "getVolume", "getRepeatMode", "isShuffle", "getDisplayMaxFps", "getPlatform", "getPremiumStatus", "showToast", "refreshPlayerBar", "getPageEntity", "setTrackReplacement", "setTrackReplacements", "removeTrackReplacement", "clearTrackReplacements"];
|
|
302
332
|
export type PulseSyncWebHostApiV1RpcMethod = (typeof PULSESYNC_WEB_HOST_API_V1_RPC_METHODS)[number];
|
|
303
333
|
export type PulseSyncWebHostRpcApiV1 = {
|
|
304
334
|
readonly [TMethod in PulseSyncWebHostApiV1RpcMethod]: PulseSyncApi[TMethod] extends (...args: infer TArgs) => infer TResult ? (...args: TArgs) => Promise<Awaited<TResult>> : never;
|
|
305
335
|
};
|
|
306
336
|
export type PulseSyncWebHostApiV1 = PulseSyncWebHostRpcApiV1 & {
|
|
307
337
|
onCurrentTrackChange: (listener: (track: PulseSyncTrackMeta | null) => void) => () => void;
|
|
338
|
+
onPlayerSnapshotChange: (listener: (snapshot: PulseSyncPlayerSnapshot) => void) => () => void;
|
|
339
|
+
onQueueChange: (listener: (snapshot: PulseSyncQueueSnapshot) => void) => () => void;
|
|
340
|
+
onRouteChange: (listener: (snapshot: PulseSyncRouteSnapshot) => void) => () => void;
|
|
308
341
|
onPageEntityChange: (listener: (snapshot: PulseSyncPageEntity) => void) => () => void;
|
|
309
342
|
};
|
|
343
|
+
export type PulseSyncPlayerApiV1 = {
|
|
344
|
+
getSnapshot: PulseSyncWebHostApiV1['getPlayerSnapshot'];
|
|
345
|
+
onChange: PulseSyncWebHostApiV1['onPlayerSnapshotChange'];
|
|
346
|
+
onQueueChange: PulseSyncWebHostApiV1['onQueueChange'];
|
|
347
|
+
onTrackChange: PulseSyncWebHostApiV1['onCurrentTrackChange'];
|
|
348
|
+
};
|
|
349
|
+
export type PulseSyncPageApiV1 = {
|
|
350
|
+
getSnapshot: PulseSyncWebHostApiV1['getPageEntity'];
|
|
351
|
+
onChange: PulseSyncWebHostApiV1['onPageEntityChange'];
|
|
352
|
+
};
|
|
353
|
+
export type PulseSyncRouterApiV1 = {
|
|
354
|
+
getSnapshot: PulseSyncWebHostApiV1['getRouteSnapshot'];
|
|
355
|
+
onChange: PulseSyncWebHostApiV1['onRouteChange'];
|
|
356
|
+
};
|
|
310
357
|
export interface WolfyPlayerState {
|
|
311
358
|
speed: number;
|
|
312
359
|
status: PulseSyncPlayerStatus;
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,9 @@ export const PULSESYNC_WEB_HOST_API_V1_RPC_METHODS = Object.freeze([
|
|
|
20
20
|
'isTrackLiked',
|
|
21
21
|
'isTrackDisliked',
|
|
22
22
|
'isPlaying',
|
|
23
|
+
'getPlayerSnapshot',
|
|
24
|
+
'getQueueSnapshot',
|
|
25
|
+
'getRouteSnapshot',
|
|
23
26
|
'getCurrentTrack',
|
|
24
27
|
'getQueue',
|
|
25
28
|
'getProgress',
|
|
@@ -30,6 +33,7 @@ export const PULSESYNC_WEB_HOST_API_V1_RPC_METHODS = Object.freeze([
|
|
|
30
33
|
'getDisplayMaxFps',
|
|
31
34
|
'getPlatform',
|
|
32
35
|
'getPremiumStatus',
|
|
36
|
+
'showToast',
|
|
33
37
|
'refreshPlayerBar',
|
|
34
38
|
'getPageEntity',
|
|
35
39
|
'setTrackReplacement',
|