@pulsesync/yamusic-types 0.0.2 → 0.0.3
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 +44 -1
- package/dist/index.js +3 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -75,6 +75,26 @@ export interface PulseSyncPageEntity {
|
|
|
75
75
|
readonly type: PulseSyncPageEntityType;
|
|
76
76
|
readonly entity: unknown;
|
|
77
77
|
}
|
|
78
|
+
export interface PulseSyncPlayerSnapshot {
|
|
79
|
+
readonly status: PulseSyncPlayerStatus;
|
|
80
|
+
readonly isPlaying: boolean;
|
|
81
|
+
readonly track: PulseSyncTrackMeta | null;
|
|
82
|
+
readonly progress: number | PulseSyncProgressState | null;
|
|
83
|
+
readonly duration: number | null;
|
|
84
|
+
readonly volume: number | null;
|
|
85
|
+
readonly repeatMode: PulseSyncRepeatMode | null;
|
|
86
|
+
readonly shuffle: boolean;
|
|
87
|
+
}
|
|
88
|
+
export interface PulseSyncQueueSnapshot {
|
|
89
|
+
readonly currentIndex: number | null;
|
|
90
|
+
readonly items: readonly PulseSyncTrackMeta[];
|
|
91
|
+
}
|
|
92
|
+
export interface PulseSyncRouteSnapshot {
|
|
93
|
+
readonly href: string;
|
|
94
|
+
readonly pathname: string;
|
|
95
|
+
readonly search: string;
|
|
96
|
+
readonly hash: string;
|
|
97
|
+
}
|
|
78
98
|
export interface PulseSyncObservableState<T> {
|
|
79
99
|
value?: T;
|
|
80
100
|
onChange?: (callback: (value: T) => void, options?: Record<string, unknown>) => (() => void) | void;
|
|
@@ -274,6 +294,9 @@ export interface PulseSyncApi {
|
|
|
274
294
|
isTrackLiked: (trackId?: string, albumId?: string) => boolean;
|
|
275
295
|
isTrackDisliked: (trackId?: string, albumId?: string) => boolean;
|
|
276
296
|
isPlaying: () => boolean;
|
|
297
|
+
getPlayerSnapshot: () => PulseSyncPlayerSnapshot;
|
|
298
|
+
getQueueSnapshot: () => PulseSyncQueueSnapshot;
|
|
299
|
+
getRouteSnapshot: () => PulseSyncRouteSnapshot;
|
|
277
300
|
getState: () => PulseSyncPlayerState | null | undefined;
|
|
278
301
|
getCurrentTrack: () => PulseSyncTrackMeta | undefined;
|
|
279
302
|
getQueue: () => PulseSyncQueueItem[] | undefined;
|
|
@@ -286,6 +309,9 @@ export interface PulseSyncApi {
|
|
|
286
309
|
includeArtistBrief?: boolean;
|
|
287
310
|
}) => Promise<PulseSyncPageEntity | null>;
|
|
288
311
|
onCurrentTrackChange: (listener: (track: PulseSyncTrackMeta | null) => void) => () => void;
|
|
312
|
+
onPlayerSnapshotChange: (listener: (snapshot: PulseSyncPlayerSnapshot) => void) => () => void;
|
|
313
|
+
onQueueChange: (listener: (snapshot: PulseSyncQueueSnapshot) => void) => () => void;
|
|
314
|
+
onRouteChange: (listener: (snapshot: PulseSyncRouteSnapshot) => void) => () => void;
|
|
289
315
|
onPageEntityChange: (listener: (snapshot: PulseSyncPageEntity) => void) => () => void;
|
|
290
316
|
setTrackReplacement: (trackId: string, url: string, ownerId?: string) => boolean;
|
|
291
317
|
setTrackReplacements: (replacements: Readonly<Record<string, string>>, ownerId?: string) => number;
|
|
@@ -298,15 +324,32 @@ export interface PulseSyncApi {
|
|
|
298
324
|
getSettings: <TSettings extends AddonSettings = AddonSettings>(addonId: string) => AddonSettingsStore<TSettings>;
|
|
299
325
|
}
|
|
300
326
|
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"];
|
|
327
|
+
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", "refreshPlayerBar", "getPageEntity", "setTrackReplacement", "setTrackReplacements", "removeTrackReplacement", "clearTrackReplacements"];
|
|
302
328
|
export type PulseSyncWebHostApiV1RpcMethod = (typeof PULSESYNC_WEB_HOST_API_V1_RPC_METHODS)[number];
|
|
303
329
|
export type PulseSyncWebHostRpcApiV1 = {
|
|
304
330
|
readonly [TMethod in PulseSyncWebHostApiV1RpcMethod]: PulseSyncApi[TMethod] extends (...args: infer TArgs) => infer TResult ? (...args: TArgs) => Promise<Awaited<TResult>> : never;
|
|
305
331
|
};
|
|
306
332
|
export type PulseSyncWebHostApiV1 = PulseSyncWebHostRpcApiV1 & {
|
|
307
333
|
onCurrentTrackChange: (listener: (track: PulseSyncTrackMeta | null) => void) => () => void;
|
|
334
|
+
onPlayerSnapshotChange: (listener: (snapshot: PulseSyncPlayerSnapshot) => void) => () => void;
|
|
335
|
+
onQueueChange: (listener: (snapshot: PulseSyncQueueSnapshot) => void) => () => void;
|
|
336
|
+
onRouteChange: (listener: (snapshot: PulseSyncRouteSnapshot) => void) => () => void;
|
|
308
337
|
onPageEntityChange: (listener: (snapshot: PulseSyncPageEntity) => void) => () => void;
|
|
309
338
|
};
|
|
339
|
+
export type PulseSyncPlayerApiV1 = {
|
|
340
|
+
getSnapshot: PulseSyncWebHostApiV1['getPlayerSnapshot'];
|
|
341
|
+
onChange: PulseSyncWebHostApiV1['onPlayerSnapshotChange'];
|
|
342
|
+
onQueueChange: PulseSyncWebHostApiV1['onQueueChange'];
|
|
343
|
+
onTrackChange: PulseSyncWebHostApiV1['onCurrentTrackChange'];
|
|
344
|
+
};
|
|
345
|
+
export type PulseSyncPageApiV1 = {
|
|
346
|
+
getSnapshot: PulseSyncWebHostApiV1['getPageEntity'];
|
|
347
|
+
onChange: PulseSyncWebHostApiV1['onPageEntityChange'];
|
|
348
|
+
};
|
|
349
|
+
export type PulseSyncRouterApiV1 = {
|
|
350
|
+
getSnapshot: PulseSyncWebHostApiV1['getRouteSnapshot'];
|
|
351
|
+
onChange: PulseSyncWebHostApiV1['onRouteChange'];
|
|
352
|
+
};
|
|
310
353
|
export interface WolfyPlayerState {
|
|
311
354
|
speed: number;
|
|
312
355
|
status: PulseSyncPlayerStatus;
|
package/dist/index.js
CHANGED