@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 CHANGED
@@ -20,13 +20,7 @@ npm run check
20
20
  npm run build
21
21
  ```
22
22
 
23
- ## Локальная проверка перед публикацией
24
-
25
- ```bash
26
- npm run pack
27
- ```
28
-
29
- Для публикации:
23
+ ## Публикация
30
24
 
31
25
  ```bash
32
26
  npm run publish:public
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.1",
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
- ".": "./dist/index.d.ts",
10
- "./global": "./dist/global.d.ts",
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": [