@pulsesync/yamusic-types 0.0.1 → 0.0.2
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/README.md +1 -7
- package/dist/global.js +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +39 -0
- package/package.json +10 -3
package/README.md
CHANGED
package/dist/global.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -69,6 +69,12 @@ export interface PulseSyncProgressState {
|
|
|
69
69
|
remainingBufferedTime?: number;
|
|
70
70
|
[key: string]: unknown;
|
|
71
71
|
}
|
|
72
|
+
export type PulseSyncPageEntityType = 'album' | 'playlist' | 'artist';
|
|
73
|
+
export interface PulseSyncPageEntity {
|
|
74
|
+
readonly revision: number;
|
|
75
|
+
readonly type: PulseSyncPageEntityType;
|
|
76
|
+
readonly entity: unknown;
|
|
77
|
+
}
|
|
72
78
|
export interface PulseSyncObservableState<T> {
|
|
73
79
|
value?: T;
|
|
74
80
|
onChange?: (callback: (value: T) => void, options?: Record<string, unknown>) => (() => void) | void;
|
|
@@ -256,6 +262,10 @@ export interface PulseSyncApi {
|
|
|
256
262
|
setVolume: (volume: number) => void;
|
|
257
263
|
setProgress: (progress: number) => void;
|
|
258
264
|
playTrackById: (trackId: string, options?: PulseSyncTrackSelector) => void;
|
|
265
|
+
playPlaylistById: (playlistId: string, options?: PulseSyncTrackSelector & {
|
|
266
|
+
uuid?: string;
|
|
267
|
+
utmLink?: string;
|
|
268
|
+
}) => void;
|
|
259
269
|
addTrackToQueueById: (trackId: string, options?: PulseSyncTrackSelector) => void;
|
|
260
270
|
likeTrack: (trackId?: string, options?: PulseSyncTrackSelector) => boolean;
|
|
261
271
|
unlikeTrack: (trackId?: string, options?: PulseSyncTrackSelector) => boolean;
|
|
@@ -263,6 +273,7 @@ export interface PulseSyncApi {
|
|
|
263
273
|
undislikeTrack: (trackId?: string, options?: PulseSyncTrackSelector) => boolean;
|
|
264
274
|
isTrackLiked: (trackId?: string, albumId?: string) => boolean;
|
|
265
275
|
isTrackDisliked: (trackId?: string, albumId?: string) => boolean;
|
|
276
|
+
isPlaying: () => boolean;
|
|
266
277
|
getState: () => PulseSyncPlayerState | null | undefined;
|
|
267
278
|
getCurrentTrack: () => PulseSyncTrackMeta | undefined;
|
|
268
279
|
getQueue: () => PulseSyncQueueItem[] | undefined;
|
|
@@ -271,8 +282,31 @@ export interface PulseSyncApi {
|
|
|
271
282
|
getVolume: () => number | undefined;
|
|
272
283
|
getRepeatMode: () => PulseSyncRepeatMode | undefined;
|
|
273
284
|
isShuffle: () => boolean | undefined;
|
|
285
|
+
getPageEntity: (options?: {
|
|
286
|
+
includeArtistBrief?: boolean;
|
|
287
|
+
}) => Promise<PulseSyncPageEntity | null>;
|
|
288
|
+
onCurrentTrackChange: (listener: (track: PulseSyncTrackMeta | null) => void) => () => void;
|
|
289
|
+
onPageEntityChange: (listener: (snapshot: PulseSyncPageEntity) => void) => () => void;
|
|
290
|
+
setTrackReplacement: (trackId: string, url: string, ownerId?: string) => boolean;
|
|
291
|
+
setTrackReplacements: (replacements: Readonly<Record<string, string>>, ownerId?: string) => number;
|
|
292
|
+
removeTrackReplacement: (trackId: string, ownerId?: string) => boolean;
|
|
293
|
+
clearTrackReplacements: (ownerId?: string) => boolean;
|
|
294
|
+
getDisplayMaxFps: () => number;
|
|
295
|
+
getPlatform: () => string;
|
|
296
|
+
getPremiumStatus: () => Promise<boolean>;
|
|
297
|
+
refreshPlayerBar: () => void;
|
|
274
298
|
getSettings: <TSettings extends AddonSettings = AddonSettings>(addonId: string) => AddonSettingsStore<TSettings>;
|
|
275
299
|
}
|
|
300
|
+
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"];
|
|
302
|
+
export type PulseSyncWebHostApiV1RpcMethod = (typeof PULSESYNC_WEB_HOST_API_V1_RPC_METHODS)[number];
|
|
303
|
+
export type PulseSyncWebHostRpcApiV1 = {
|
|
304
|
+
readonly [TMethod in PulseSyncWebHostApiV1RpcMethod]: PulseSyncApi[TMethod] extends (...args: infer TArgs) => infer TResult ? (...args: TArgs) => Promise<Awaited<TResult>> : never;
|
|
305
|
+
};
|
|
306
|
+
export type PulseSyncWebHostApiV1 = PulseSyncWebHostRpcApiV1 & {
|
|
307
|
+
onCurrentTrackChange: (listener: (track: PulseSyncTrackMeta | null) => void) => () => void;
|
|
308
|
+
onPageEntityChange: (listener: (snapshot: PulseSyncPageEntity) => void) => () => void;
|
|
309
|
+
};
|
|
276
310
|
export interface WolfyPlayerState {
|
|
277
311
|
speed: number;
|
|
278
312
|
status: PulseSyncPlayerStatus;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const PULSESYNC_WEB_HOST_API_VERSION = 1;
|
|
2
|
+
export const PULSESYNC_WEB_HOST_API_V1_RPC_METHODS = Object.freeze([
|
|
3
|
+
'playVibe',
|
|
4
|
+
'play',
|
|
5
|
+
'pause',
|
|
6
|
+
'togglePlayPause',
|
|
7
|
+
'next',
|
|
8
|
+
'previous',
|
|
9
|
+
'setRepeatMode',
|
|
10
|
+
'toggleShuffle',
|
|
11
|
+
'setVolume',
|
|
12
|
+
'setProgress',
|
|
13
|
+
'playTrackById',
|
|
14
|
+
'playPlaylistById',
|
|
15
|
+
'addTrackToQueueById',
|
|
16
|
+
'likeTrack',
|
|
17
|
+
'unlikeTrack',
|
|
18
|
+
'dislikeTrack',
|
|
19
|
+
'undislikeTrack',
|
|
20
|
+
'isTrackLiked',
|
|
21
|
+
'isTrackDisliked',
|
|
22
|
+
'isPlaying',
|
|
23
|
+
'getCurrentTrack',
|
|
24
|
+
'getQueue',
|
|
25
|
+
'getProgress',
|
|
26
|
+
'getDuration',
|
|
27
|
+
'getVolume',
|
|
28
|
+
'getRepeatMode',
|
|
29
|
+
'isShuffle',
|
|
30
|
+
'getDisplayMaxFps',
|
|
31
|
+
'getPlatform',
|
|
32
|
+
'getPremiumStatus',
|
|
33
|
+
'refreshPlayerBar',
|
|
34
|
+
'getPageEntity',
|
|
35
|
+
'setTrackReplacement',
|
|
36
|
+
'setTrackReplacements',
|
|
37
|
+
'removeTrackReplacement',
|
|
38
|
+
'clearTrackReplacements',
|
|
39
|
+
]);
|
package/package.json
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pulsesync/yamusic-types",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "TypeScript declaration package for PulseSync YaMusic addon development",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"sideEffects": false,
|
|
7
8
|
"types": "./dist/index.d.ts",
|
|
8
9
|
"exports": {
|
|
9
|
-
".":
|
|
10
|
-
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./global": {
|
|
15
|
+
"types": "./dist/global.d.ts",
|
|
16
|
+
"import": "./dist/global.js"
|
|
17
|
+
},
|
|
11
18
|
"./package.json": "./package.json"
|
|
12
19
|
},
|
|
13
20
|
"files": [
|