Skip to content

Commit ad65156

Browse files
authored
SDK: minor improvements & new api fields (#20)
1 parent 67e24c4 commit ad65156

File tree

10 files changed

+385
-413
lines changed

10 files changed

+385
-413
lines changed

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
# Yandex.Music API SDK - TypeScript
22

3-
This is an unofficial JavaScript/TypeScript SDK for
4-
the [Yandex.Music](https://music.yandex.ru/).
3+
This is an unofficial JavaScript/TypeScript SDK for the [Yandex.Music](https://music.yandex.ru/).
54

6-
Current OpenAPI specification can be found
7-
here: [yamusicdocs.voir.dev](https://yamusicdocs.voir.dev)
5+
Current OpenAPI specification can be found here: [yamusicdocs.voir.dev](https://yamusicdocs.voir.dev)
86

97
## Requirements
108

@@ -57,7 +55,7 @@ console.table(status.account);
5755

5856
### Extensibility
5957

60-
All of the constructors support a configuration object that lets you override the default behavior
58+
All the constructors support a configuration object that lets you override the default behavior
6159
of the SDK.
6260

6361
```ts

sdk/package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@checksanity/yamusic-sdk",
3-
"version": "0.0.6",
3+
"version": "0.0.7",
44
"description": "Unofficial Yandex.Music SDK for Web API written in Typescript",
55
"source": "src/index.ts",
66
"main": "dist/yamusic-sdk.js",
@@ -37,26 +37,26 @@
3737
"url": "https://github.com/checksanity/yamusic-sdk"
3838
},
3939
"dependencies": {
40-
"dotenv": "^16.4.1"
40+
"dotenv": "^16.4.5"
4141
},
4242
"devDependencies": {
43-
"@types/jest": "^29.5.11",
44-
"@types/node": "^20.11.13",
43+
"@types/jest": "^29.5.12",
44+
"@types/node": "^22.4.2",
4545
"@types/uuid": "^9.0.8",
46-
"@typescript-eslint/eslint-plugin": "^6.20.0",
47-
"@typescript-eslint/parser": "^6.20.0",
48-
"eslint": "^8.56.0",
46+
"@typescript-eslint/eslint-plugin": "^8.2.0",
47+
"@typescript-eslint/parser": "^8.2.0",
48+
"eslint": "^8.57.0",
4949
"eslint-config-prettier": "^9.1.0",
50-
"eslint-plugin-prettier": "^5.1.3",
51-
"husky": "^9.0.7",
50+
"eslint-plugin-prettier": "^5.2.1",
51+
"husky": "^9.1.5",
5252
"jest": "^29.7.0",
53-
"lint-staged": "^15.2.1",
53+
"lint-staged": "^15.2.9",
5454
"microbundle": "^0.15.1",
55-
"prettier": "^3.2.4",
56-
"ts-jest": "^29.1.2",
55+
"prettier": "^3.3.3",
56+
"ts-jest": "^29.2.4",
5757
"ts-loader": "^9.5.1",
5858
"ts-node": "^10.9.2",
59-
"typescript": "^5.3.3",
59+
"typescript": "^5.5.4",
6060
"uuid": "^9.0.1"
6161
},
6262
"keywords": [

sdk/src/artists/Artists.types.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ export type Artist = {
1212
id: number;
1313
name: string;
1414
various?: boolean;
15-
composer?: boolean;
15+
available?: boolean;
1616
cover?: Cover;
1717
genres?: string[];
18-
counts: ArtistCounts;
1918
disclaimers?: string[];
19+
composer?: boolean;
20+
counts?: ArtistCounts;
2021
dbAliases?: string[];
2122
likesCount?: number;
2223
error?: string;

sdk/src/common/Common.types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export type Cover = {
2-
type?: string;
2+
type?: 'from-artist-photos' | string; //
33
prefix?: string;
44
dir?: string; // Exist when type="pic"
55
itemsUri?: string[]; // Exist when type mosaic
@@ -14,6 +14,7 @@ export type CustomWave = {
1414
animationUrl: string;
1515
position: string;
1616
header: string;
17+
backgroundImageUrl?: string;
1718
};
1819

1920
export type Pager = {

sdk/src/playlists/Playlists.api.spec.ts

Lines changed: 0 additions & 122 deletions
This file was deleted.

sdk/src/playlists/Playlists.api.ts

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,75 +8,78 @@ import {
88

99
export class PlaylistsApi extends BaseApi {
1010
public createPlaylist(args: {
11-
login: number | string;
11+
loginOrId: string | number;
1212
title: string;
1313
visibility: PlaylistVisibility;
1414
}) {
1515
const formData = new FormData();
1616
formData.append('title', args.title);
1717
formData.append('visibility', args.visibility);
1818

19-
return this.postRequest<Playlist>(`users/${args.login}/playlists/create`, {
20-
formData: formData,
21-
});
19+
return this.postRequest<Playlist>(
20+
`users/${args.loginOrId}/playlists/create`,
21+
{
22+
formData: formData,
23+
},
24+
);
2225
}
2326

2427
public deletePlaylist(args: {
25-
login: number | string;
28+
loginOrId: string | number;
2629
kind: number | string;
2730
}): Promise<string> {
2831
return this.postRequest(
29-
`users/${args.login}/playlists/${args.kind}/delete`,
32+
`users/${args.loginOrId}/playlists/${args.kind}/delete`,
3033
);
3134
}
3235

3336
public updatePlaylistName(args: {
34-
login: number | string;
37+
loginOrId: string | number;
3538
kind: number | string;
3639
newName: string;
3740
}): Promise<Playlist> {
3841
const formData = new FormData();
3942
formData.append('value', args.newName);
4043

4144
return this.postRequest<Playlist>(
42-
`users/${args.login}/playlists/${args.kind}/name`,
45+
`users/${args.loginOrId}/playlists/${args.kind}/name`,
4346
{
4447
formData: formData,
4548
},
4649
);
4750
}
4851

4952
public updatePlaylistVisibility(args: {
50-
login: number | string;
53+
loginOrId: string | number;
5154
kind: number | string;
5255
newVisibility: PlaylistVisibility;
5356
}): Promise<Playlist> {
5457
const formData = new FormData();
5558
formData.append('value', args.newVisibility);
5659

5760
return this.postRequest<Playlist>(
58-
`users/${args.login}/playlists/${args.kind}/visibility`,
61+
`users/${args.loginOrId}/playlists/${args.kind}/visibility`,
5962
{
6063
formData: formData,
6164
},
6265
);
6366
}
6467

6568
public playlist(args: {
66-
login: number | string;
69+
loginOrId: string | number;
6770
kind: number | string;
6871
}): Promise<PlaylistWithTracks> {
6972
return this.getRequest<PlaylistWithTracks>(
70-
`users/${args.login}/playlists/${args.kind}`,
73+
`users/${args.loginOrId}/playlists/${args.kind}`,
7174
);
7275
}
7376

7477
public recommendations(args: {
75-
login: number | string;
78+
loginOrId: string | number;
7679
kind: number | string;
7780
}): Promise<PlaylistRecommendations> {
7881
return this.getRequest<PlaylistRecommendations>(
79-
`users/${args.login}/playlists/${args.kind}/recommendations`,
82+
`users/${args.loginOrId}/playlists/${args.kind}/recommendations`,
8083
);
8184
}
8285
}

sdk/src/playlists/Playlists.types.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { Cover, CustomWave, Region, UserInfo } from '../common/Common.types';
1+
import {
2+
Cover,
3+
CustomWave,
4+
Pager,
5+
Region,
6+
UserInfo,
7+
} from '../common/Common.types';
28
import { Track } from '../tracks/Track.types';
39

410
export type Playlist = {
@@ -38,7 +44,10 @@ export type Playlist = {
3844
backgroundVideoUrl?: string;
3945
backgroundImageUrl?: string;
4046
likesCount?: number;
47+
lastOwnerPlaylists?: Playlist[];
4148
customWave?: CustomWave;
49+
hasTrailer?: boolean;
50+
pager?: Pager;
4251
regions?: Region[];
4352
};
4453

@@ -82,6 +91,8 @@ export type PlaylistTrack = {
8291
*/
8392
originalIndex: number;
8493

94+
originalShuffleIndex?: number;
95+
8596
/**
8697
* Is recent?
8798
*/

sdk/src/tracks/Track.types.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export type Track = {
66
id: number | string;
77
realId?: number | string;
88
title: string;
9+
version?: string;
910
contentWarning?: string;
1011
trackSource: TrackSource;
1112
major?: TrackMajor;
@@ -26,13 +27,24 @@ export type Track = {
2627
ogImage?: string;
2728
lyricsAvailable?: boolean;
2829
lyricsInfo?: TrackLyricsInfo;
30+
derivedColors?: DerivedColors;
2931
type: TrackType;
3032
rememberPosition?: boolean;
33+
backgroundVideoUri?: string;
3134
trackSharingFlag?: TrackSharingFlag;
35+
playerId?: string;
36+
specialAudioResources?: string[];
3237
error?: string;
3338
regions?: Region[];
3439
};
3540

41+
export type DerivedColors = {
42+
average: string;
43+
waveText: string;
44+
miniPlayer: string;
45+
accent: string;
46+
};
47+
3648
export type SimilarTracks = {
3749
track: Track;
3850
similarTracks: Track[];

0 commit comments

Comments
 (0)