soundcloud-api-ts 1.10.2 → 1.11.1
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/AGENTS.md +4 -3
- package/README.md +29 -0
- package/dist/{chunk-ACK4KMGD.mjs → chunk-DGZEPXIQ.mjs} +81 -20
- package/dist/chunk-DGZEPXIQ.mjs.map +1 -0
- package/dist/{chunk-J2PMIV3Z.js → chunk-GTSVJU3P.js} +81 -20
- package/dist/chunk-GTSVJU3P.js.map +1 -0
- package/dist/cli.js +6 -6
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +25 -3
- package/dist/index.d.ts +25 -3
- package/dist/index.js +63 -63
- package/dist/index.mjs +1 -1
- package/llms.txt +11 -1
- package/package.json +1 -1
- package/dist/chunk-ACK4KMGD.mjs.map +0 -1
- package/dist/chunk-J2PMIV3Z.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,23 @@ interface RequestOptions {
|
|
|
18
18
|
/** Override the Content-Type header (defaults to "application/json" for object bodies) */
|
|
19
19
|
contentType?: string;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Structured telemetry emitted after every API request.
|
|
23
|
+
*/
|
|
24
|
+
interface SCRequestTelemetry {
|
|
25
|
+
/** HTTP method used */
|
|
26
|
+
method: "GET" | "POST" | "PUT" | "DELETE";
|
|
27
|
+
/** API path or full URL */
|
|
28
|
+
path: string;
|
|
29
|
+
/** Total duration including retries, in milliseconds */
|
|
30
|
+
durationMs: number;
|
|
31
|
+
/** Final HTTP status code */
|
|
32
|
+
status: number;
|
|
33
|
+
/** Number of retries performed (0 = succeeded on first attempt) */
|
|
34
|
+
retryCount: number;
|
|
35
|
+
/** Error message if the request ultimately failed */
|
|
36
|
+
error?: string;
|
|
37
|
+
}
|
|
21
38
|
/**
|
|
22
39
|
* Configuration for automatic retry with exponential backoff on transient errors.
|
|
23
40
|
*/
|
|
@@ -45,6 +62,8 @@ interface AutoRefreshContext {
|
|
|
45
62
|
setToken: (accessToken: string, refreshToken?: string) => void;
|
|
46
63
|
/** Retry configuration for this context */
|
|
47
64
|
retry?: RetryConfig;
|
|
65
|
+
/** Called after every API request with structured telemetry */
|
|
66
|
+
onRequest?: (telemetry: SCRequestTelemetry) => void;
|
|
48
67
|
}
|
|
49
68
|
/**
|
|
50
69
|
* Make a request to the SoundCloud API using native `fetch`.
|
|
@@ -71,7 +90,7 @@ interface AutoRefreshContext {
|
|
|
71
90
|
*
|
|
72
91
|
* @see https://developers.soundcloud.com/docs/api/explorer/open-api
|
|
73
92
|
*/
|
|
74
|
-
declare function scFetch<T>(options: RequestOptions, refreshCtx?: AutoRefreshContext): Promise<T>;
|
|
93
|
+
declare function scFetch<T>(options: RequestOptions, refreshCtx?: AutoRefreshContext, onRequest?: (telemetry: SCRequestTelemetry) => void): Promise<T>;
|
|
75
94
|
/**
|
|
76
95
|
* Fetch an absolute URL (e.g. `next_href` from paginated responses).
|
|
77
96
|
*
|
|
@@ -93,7 +112,7 @@ declare function scFetch<T>(options: RequestOptions, refreshCtx?: AutoRefreshCon
|
|
|
93
112
|
* );
|
|
94
113
|
* ```
|
|
95
114
|
*/
|
|
96
|
-
declare function scFetchUrl<T>(url: string, token?: string, retryConfig?: RetryConfig): Promise<T>;
|
|
115
|
+
declare function scFetchUrl<T>(url: string, token?: string, retryConfig?: RetryConfig, onRequest?: (telemetry: SCRequestTelemetry) => void): Promise<T>;
|
|
97
116
|
|
|
98
117
|
/**
|
|
99
118
|
* Parameters for updating a track's metadata via {@link updateTrack}.
|
|
@@ -300,6 +319,8 @@ interface SoundCloudClientConfig {
|
|
|
300
319
|
retryBaseDelay?: number;
|
|
301
320
|
/** Optional debug logger callback for retry attempts and other internal events */
|
|
302
321
|
onDebug?: (message: string) => void;
|
|
322
|
+
/** Called after every API request with structured telemetry (timing, status, retries) */
|
|
323
|
+
onRequest?: (telemetry: SCRequestTelemetry) => void;
|
|
303
324
|
}
|
|
304
325
|
/**
|
|
305
326
|
* Optional token override that can be passed as the last parameter to client methods.
|
|
@@ -443,6 +464,7 @@ declare namespace SoundCloudClient {
|
|
|
443
464
|
class Auth {
|
|
444
465
|
private config;
|
|
445
466
|
constructor(config: SoundCloudClientConfig);
|
|
467
|
+
private fetch;
|
|
446
468
|
/**
|
|
447
469
|
* Build the authorization URL to redirect users to SoundCloud's OAuth login page.
|
|
448
470
|
*
|
|
@@ -2441,4 +2463,4 @@ declare const unrepostPlaylist: (token: string, playlistId: string | number) =>
|
|
|
2441
2463
|
*/
|
|
2442
2464
|
declare const getSoundCloudWidgetUrl: (trackId: string | number) => string;
|
|
2443
2465
|
|
|
2444
|
-
export { type CreatePlaylistParams, type RequestOptions, type RetryConfig, SoundCloudActivitiesResponse, SoundCloudClient, type SoundCloudClientConfig, SoundCloudComment, SoundCloudMe, SoundCloudPaginatedResponse, SoundCloudPlaylist, SoundCloudStreams, SoundCloudToken, SoundCloudTrack, SoundCloudUser, SoundCloudWebProfile, type TokenOption, type UpdatePlaylistParams, type UpdateTrackParams, createPlaylist, createTrackComment, deletePlaylist, deleteTrack, fetchAll, followUser, generateCodeChallenge, generateCodeVerifier, getAuthorizationUrl, getClientToken, getFollowers, getFollowings, getMe, getMeActivities, getMeActivitiesOwn, getMeActivitiesTracks, getMeFollowers, getMeFollowings, getMeFollowingsTracks, getMeLikesPlaylists, getMeLikesTracks, getMePlaylists, getMeTracks, getPlaylist, getPlaylistReposts, getPlaylistTracks, getRelatedTracks, getSoundCloudWidgetUrl, getTrack, getTrackComments, getTrackLikes, getTrackReposts, getTrackStreams, getUser, getUserLikesPlaylists, getUserLikesTracks, getUserPlaylists, getUserToken, getUserTracks, getUserWebProfiles, likePlaylist, likeTrack, paginate, paginateItems, refreshUserToken, repostPlaylist, repostTrack, resolveUrl, scFetch, scFetchUrl, searchPlaylists, searchTracks, searchUsers, signOut, unfollowUser, unlikePlaylist, unlikeTrack, unrepostPlaylist, unrepostTrack, updatePlaylist, updateTrack };
|
|
2466
|
+
export { type CreatePlaylistParams, type RequestOptions, type RetryConfig, type SCRequestTelemetry, SoundCloudActivitiesResponse, SoundCloudClient, type SoundCloudClientConfig, SoundCloudComment, SoundCloudMe, SoundCloudPaginatedResponse, SoundCloudPlaylist, SoundCloudStreams, SoundCloudToken, SoundCloudTrack, SoundCloudUser, SoundCloudWebProfile, type TokenOption, type UpdatePlaylistParams, type UpdateTrackParams, createPlaylist, createTrackComment, deletePlaylist, deleteTrack, fetchAll, followUser, generateCodeChallenge, generateCodeVerifier, getAuthorizationUrl, getClientToken, getFollowers, getFollowings, getMe, getMeActivities, getMeActivitiesOwn, getMeActivitiesTracks, getMeFollowers, getMeFollowings, getMeFollowingsTracks, getMeLikesPlaylists, getMeLikesTracks, getMePlaylists, getMeTracks, getPlaylist, getPlaylistReposts, getPlaylistTracks, getRelatedTracks, getSoundCloudWidgetUrl, getTrack, getTrackComments, getTrackLikes, getTrackReposts, getTrackStreams, getUser, getUserLikesPlaylists, getUserLikesTracks, getUserPlaylists, getUserToken, getUserTracks, getUserWebProfiles, likePlaylist, likeTrack, paginate, paginateItems, refreshUserToken, repostPlaylist, repostTrack, resolveUrl, scFetch, scFetchUrl, searchPlaylists, searchTracks, searchUsers, signOut, unfollowUser, unlikePlaylist, unlikeTrack, unrepostPlaylist, unrepostTrack, updatePlaylist, updateTrack };
|
package/dist/index.js
CHANGED
|
@@ -1,257 +1,257 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkGTSVJU3P_js = require('./chunk-GTSVJU3P.js');
|
|
4
4
|
var chunkMLVA534Z_js = require('./chunk-MLVA534Z.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "SoundCloudClient", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkGTSVJU3P_js.SoundCloudClient; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "createPlaylist", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkGTSVJU3P_js.createPlaylist; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "createTrackComment", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkGTSVJU3P_js.createTrackComment; }
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "deletePlaylist", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkGTSVJU3P_js.deletePlaylist; }
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "deleteTrack", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkGTSVJU3P_js.deleteTrack; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "fetchAll", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkGTSVJU3P_js.fetchAll; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "followUser", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkGTSVJU3P_js.followUser; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "generateCodeChallenge", {
|
|
37
37
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunkGTSVJU3P_js.generateCodeChallenge; }
|
|
39
39
|
});
|
|
40
40
|
Object.defineProperty(exports, "generateCodeVerifier", {
|
|
41
41
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkGTSVJU3P_js.generateCodeVerifier; }
|
|
43
43
|
});
|
|
44
44
|
Object.defineProperty(exports, "getAuthorizationUrl", {
|
|
45
45
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunkGTSVJU3P_js.getAuthorizationUrl; }
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "getClientToken", {
|
|
49
49
|
enumerable: true,
|
|
50
|
-
get: function () { return
|
|
50
|
+
get: function () { return chunkGTSVJU3P_js.getClientToken; }
|
|
51
51
|
});
|
|
52
52
|
Object.defineProperty(exports, "getFollowers", {
|
|
53
53
|
enumerable: true,
|
|
54
|
-
get: function () { return
|
|
54
|
+
get: function () { return chunkGTSVJU3P_js.getFollowers; }
|
|
55
55
|
});
|
|
56
56
|
Object.defineProperty(exports, "getFollowings", {
|
|
57
57
|
enumerable: true,
|
|
58
|
-
get: function () { return
|
|
58
|
+
get: function () { return chunkGTSVJU3P_js.getFollowings; }
|
|
59
59
|
});
|
|
60
60
|
Object.defineProperty(exports, "getMe", {
|
|
61
61
|
enumerable: true,
|
|
62
|
-
get: function () { return
|
|
62
|
+
get: function () { return chunkGTSVJU3P_js.getMe; }
|
|
63
63
|
});
|
|
64
64
|
Object.defineProperty(exports, "getMeActivities", {
|
|
65
65
|
enumerable: true,
|
|
66
|
-
get: function () { return
|
|
66
|
+
get: function () { return chunkGTSVJU3P_js.getMeActivities; }
|
|
67
67
|
});
|
|
68
68
|
Object.defineProperty(exports, "getMeActivitiesOwn", {
|
|
69
69
|
enumerable: true,
|
|
70
|
-
get: function () { return
|
|
70
|
+
get: function () { return chunkGTSVJU3P_js.getMeActivitiesOwn; }
|
|
71
71
|
});
|
|
72
72
|
Object.defineProperty(exports, "getMeActivitiesTracks", {
|
|
73
73
|
enumerable: true,
|
|
74
|
-
get: function () { return
|
|
74
|
+
get: function () { return chunkGTSVJU3P_js.getMeActivitiesTracks; }
|
|
75
75
|
});
|
|
76
76
|
Object.defineProperty(exports, "getMeFollowers", {
|
|
77
77
|
enumerable: true,
|
|
78
|
-
get: function () { return
|
|
78
|
+
get: function () { return chunkGTSVJU3P_js.getMeFollowers; }
|
|
79
79
|
});
|
|
80
80
|
Object.defineProperty(exports, "getMeFollowings", {
|
|
81
81
|
enumerable: true,
|
|
82
|
-
get: function () { return
|
|
82
|
+
get: function () { return chunkGTSVJU3P_js.getMeFollowings; }
|
|
83
83
|
});
|
|
84
84
|
Object.defineProperty(exports, "getMeFollowingsTracks", {
|
|
85
85
|
enumerable: true,
|
|
86
|
-
get: function () { return
|
|
86
|
+
get: function () { return chunkGTSVJU3P_js.getMeFollowingsTracks; }
|
|
87
87
|
});
|
|
88
88
|
Object.defineProperty(exports, "getMeLikesPlaylists", {
|
|
89
89
|
enumerable: true,
|
|
90
|
-
get: function () { return
|
|
90
|
+
get: function () { return chunkGTSVJU3P_js.getMeLikesPlaylists; }
|
|
91
91
|
});
|
|
92
92
|
Object.defineProperty(exports, "getMeLikesTracks", {
|
|
93
93
|
enumerable: true,
|
|
94
|
-
get: function () { return
|
|
94
|
+
get: function () { return chunkGTSVJU3P_js.getMeLikesTracks; }
|
|
95
95
|
});
|
|
96
96
|
Object.defineProperty(exports, "getMePlaylists", {
|
|
97
97
|
enumerable: true,
|
|
98
|
-
get: function () { return
|
|
98
|
+
get: function () { return chunkGTSVJU3P_js.getMePlaylists; }
|
|
99
99
|
});
|
|
100
100
|
Object.defineProperty(exports, "getMeTracks", {
|
|
101
101
|
enumerable: true,
|
|
102
|
-
get: function () { return
|
|
102
|
+
get: function () { return chunkGTSVJU3P_js.getMeTracks; }
|
|
103
103
|
});
|
|
104
104
|
Object.defineProperty(exports, "getPlaylist", {
|
|
105
105
|
enumerable: true,
|
|
106
|
-
get: function () { return
|
|
106
|
+
get: function () { return chunkGTSVJU3P_js.getPlaylist; }
|
|
107
107
|
});
|
|
108
108
|
Object.defineProperty(exports, "getPlaylistReposts", {
|
|
109
109
|
enumerable: true,
|
|
110
|
-
get: function () { return
|
|
110
|
+
get: function () { return chunkGTSVJU3P_js.getPlaylistReposts; }
|
|
111
111
|
});
|
|
112
112
|
Object.defineProperty(exports, "getPlaylistTracks", {
|
|
113
113
|
enumerable: true,
|
|
114
|
-
get: function () { return
|
|
114
|
+
get: function () { return chunkGTSVJU3P_js.getPlaylistTracks; }
|
|
115
115
|
});
|
|
116
116
|
Object.defineProperty(exports, "getRelatedTracks", {
|
|
117
117
|
enumerable: true,
|
|
118
|
-
get: function () { return
|
|
118
|
+
get: function () { return chunkGTSVJU3P_js.getRelatedTracks; }
|
|
119
119
|
});
|
|
120
120
|
Object.defineProperty(exports, "getSoundCloudWidgetUrl", {
|
|
121
121
|
enumerable: true,
|
|
122
|
-
get: function () { return
|
|
122
|
+
get: function () { return chunkGTSVJU3P_js.getSoundCloudWidgetUrl; }
|
|
123
123
|
});
|
|
124
124
|
Object.defineProperty(exports, "getTrack", {
|
|
125
125
|
enumerable: true,
|
|
126
|
-
get: function () { return
|
|
126
|
+
get: function () { return chunkGTSVJU3P_js.getTrack; }
|
|
127
127
|
});
|
|
128
128
|
Object.defineProperty(exports, "getTrackComments", {
|
|
129
129
|
enumerable: true,
|
|
130
|
-
get: function () { return
|
|
130
|
+
get: function () { return chunkGTSVJU3P_js.getTrackComments; }
|
|
131
131
|
});
|
|
132
132
|
Object.defineProperty(exports, "getTrackLikes", {
|
|
133
133
|
enumerable: true,
|
|
134
|
-
get: function () { return
|
|
134
|
+
get: function () { return chunkGTSVJU3P_js.getTrackLikes; }
|
|
135
135
|
});
|
|
136
136
|
Object.defineProperty(exports, "getTrackReposts", {
|
|
137
137
|
enumerable: true,
|
|
138
|
-
get: function () { return
|
|
138
|
+
get: function () { return chunkGTSVJU3P_js.getTrackReposts; }
|
|
139
139
|
});
|
|
140
140
|
Object.defineProperty(exports, "getTrackStreams", {
|
|
141
141
|
enumerable: true,
|
|
142
|
-
get: function () { return
|
|
142
|
+
get: function () { return chunkGTSVJU3P_js.getTrackStreams; }
|
|
143
143
|
});
|
|
144
144
|
Object.defineProperty(exports, "getUser", {
|
|
145
145
|
enumerable: true,
|
|
146
|
-
get: function () { return
|
|
146
|
+
get: function () { return chunkGTSVJU3P_js.getUser; }
|
|
147
147
|
});
|
|
148
148
|
Object.defineProperty(exports, "getUserLikesPlaylists", {
|
|
149
149
|
enumerable: true,
|
|
150
|
-
get: function () { return
|
|
150
|
+
get: function () { return chunkGTSVJU3P_js.getUserLikesPlaylists; }
|
|
151
151
|
});
|
|
152
152
|
Object.defineProperty(exports, "getUserLikesTracks", {
|
|
153
153
|
enumerable: true,
|
|
154
|
-
get: function () { return
|
|
154
|
+
get: function () { return chunkGTSVJU3P_js.getUserLikesTracks; }
|
|
155
155
|
});
|
|
156
156
|
Object.defineProperty(exports, "getUserPlaylists", {
|
|
157
157
|
enumerable: true,
|
|
158
|
-
get: function () { return
|
|
158
|
+
get: function () { return chunkGTSVJU3P_js.getUserPlaylists; }
|
|
159
159
|
});
|
|
160
160
|
Object.defineProperty(exports, "getUserToken", {
|
|
161
161
|
enumerable: true,
|
|
162
|
-
get: function () { return
|
|
162
|
+
get: function () { return chunkGTSVJU3P_js.getUserToken; }
|
|
163
163
|
});
|
|
164
164
|
Object.defineProperty(exports, "getUserTracks", {
|
|
165
165
|
enumerable: true,
|
|
166
|
-
get: function () { return
|
|
166
|
+
get: function () { return chunkGTSVJU3P_js.getUserTracks; }
|
|
167
167
|
});
|
|
168
168
|
Object.defineProperty(exports, "getUserWebProfiles", {
|
|
169
169
|
enumerable: true,
|
|
170
|
-
get: function () { return
|
|
170
|
+
get: function () { return chunkGTSVJU3P_js.getUserWebProfiles; }
|
|
171
171
|
});
|
|
172
172
|
Object.defineProperty(exports, "likePlaylist", {
|
|
173
173
|
enumerable: true,
|
|
174
|
-
get: function () { return
|
|
174
|
+
get: function () { return chunkGTSVJU3P_js.likePlaylist; }
|
|
175
175
|
});
|
|
176
176
|
Object.defineProperty(exports, "likeTrack", {
|
|
177
177
|
enumerable: true,
|
|
178
|
-
get: function () { return
|
|
178
|
+
get: function () { return chunkGTSVJU3P_js.likeTrack; }
|
|
179
179
|
});
|
|
180
180
|
Object.defineProperty(exports, "paginate", {
|
|
181
181
|
enumerable: true,
|
|
182
|
-
get: function () { return
|
|
182
|
+
get: function () { return chunkGTSVJU3P_js.paginate; }
|
|
183
183
|
});
|
|
184
184
|
Object.defineProperty(exports, "paginateItems", {
|
|
185
185
|
enumerable: true,
|
|
186
|
-
get: function () { return
|
|
186
|
+
get: function () { return chunkGTSVJU3P_js.paginateItems; }
|
|
187
187
|
});
|
|
188
188
|
Object.defineProperty(exports, "refreshUserToken", {
|
|
189
189
|
enumerable: true,
|
|
190
|
-
get: function () { return
|
|
190
|
+
get: function () { return chunkGTSVJU3P_js.refreshUserToken; }
|
|
191
191
|
});
|
|
192
192
|
Object.defineProperty(exports, "repostPlaylist", {
|
|
193
193
|
enumerable: true,
|
|
194
|
-
get: function () { return
|
|
194
|
+
get: function () { return chunkGTSVJU3P_js.repostPlaylist; }
|
|
195
195
|
});
|
|
196
196
|
Object.defineProperty(exports, "repostTrack", {
|
|
197
197
|
enumerable: true,
|
|
198
|
-
get: function () { return
|
|
198
|
+
get: function () { return chunkGTSVJU3P_js.repostTrack; }
|
|
199
199
|
});
|
|
200
200
|
Object.defineProperty(exports, "resolveUrl", {
|
|
201
201
|
enumerable: true,
|
|
202
|
-
get: function () { return
|
|
202
|
+
get: function () { return chunkGTSVJU3P_js.resolveUrl; }
|
|
203
203
|
});
|
|
204
204
|
Object.defineProperty(exports, "scFetch", {
|
|
205
205
|
enumerable: true,
|
|
206
|
-
get: function () { return
|
|
206
|
+
get: function () { return chunkGTSVJU3P_js.scFetch; }
|
|
207
207
|
});
|
|
208
208
|
Object.defineProperty(exports, "scFetchUrl", {
|
|
209
209
|
enumerable: true,
|
|
210
|
-
get: function () { return
|
|
210
|
+
get: function () { return chunkGTSVJU3P_js.scFetchUrl; }
|
|
211
211
|
});
|
|
212
212
|
Object.defineProperty(exports, "searchPlaylists", {
|
|
213
213
|
enumerable: true,
|
|
214
|
-
get: function () { return
|
|
214
|
+
get: function () { return chunkGTSVJU3P_js.searchPlaylists; }
|
|
215
215
|
});
|
|
216
216
|
Object.defineProperty(exports, "searchTracks", {
|
|
217
217
|
enumerable: true,
|
|
218
|
-
get: function () { return
|
|
218
|
+
get: function () { return chunkGTSVJU3P_js.searchTracks; }
|
|
219
219
|
});
|
|
220
220
|
Object.defineProperty(exports, "searchUsers", {
|
|
221
221
|
enumerable: true,
|
|
222
|
-
get: function () { return
|
|
222
|
+
get: function () { return chunkGTSVJU3P_js.searchUsers; }
|
|
223
223
|
});
|
|
224
224
|
Object.defineProperty(exports, "signOut", {
|
|
225
225
|
enumerable: true,
|
|
226
|
-
get: function () { return
|
|
226
|
+
get: function () { return chunkGTSVJU3P_js.signOut; }
|
|
227
227
|
});
|
|
228
228
|
Object.defineProperty(exports, "unfollowUser", {
|
|
229
229
|
enumerable: true,
|
|
230
|
-
get: function () { return
|
|
230
|
+
get: function () { return chunkGTSVJU3P_js.unfollowUser; }
|
|
231
231
|
});
|
|
232
232
|
Object.defineProperty(exports, "unlikePlaylist", {
|
|
233
233
|
enumerable: true,
|
|
234
|
-
get: function () { return
|
|
234
|
+
get: function () { return chunkGTSVJU3P_js.unlikePlaylist; }
|
|
235
235
|
});
|
|
236
236
|
Object.defineProperty(exports, "unlikeTrack", {
|
|
237
237
|
enumerable: true,
|
|
238
|
-
get: function () { return
|
|
238
|
+
get: function () { return chunkGTSVJU3P_js.unlikeTrack; }
|
|
239
239
|
});
|
|
240
240
|
Object.defineProperty(exports, "unrepostPlaylist", {
|
|
241
241
|
enumerable: true,
|
|
242
|
-
get: function () { return
|
|
242
|
+
get: function () { return chunkGTSVJU3P_js.unrepostPlaylist; }
|
|
243
243
|
});
|
|
244
244
|
Object.defineProperty(exports, "unrepostTrack", {
|
|
245
245
|
enumerable: true,
|
|
246
|
-
get: function () { return
|
|
246
|
+
get: function () { return chunkGTSVJU3P_js.unrepostTrack; }
|
|
247
247
|
});
|
|
248
248
|
Object.defineProperty(exports, "updatePlaylist", {
|
|
249
249
|
enumerable: true,
|
|
250
|
-
get: function () { return
|
|
250
|
+
get: function () { return chunkGTSVJU3P_js.updatePlaylist; }
|
|
251
251
|
});
|
|
252
252
|
Object.defineProperty(exports, "updateTrack", {
|
|
253
253
|
enumerable: true,
|
|
254
|
-
get: function () { return
|
|
254
|
+
get: function () { return chunkGTSVJU3P_js.updateTrack; }
|
|
255
255
|
});
|
|
256
256
|
Object.defineProperty(exports, "SoundCloudError", {
|
|
257
257
|
enumerable: true,
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SoundCloudClient, createPlaylist, createTrackComment, deletePlaylist, deleteTrack, fetchAll, followUser, generateCodeChallenge, generateCodeVerifier, getAuthorizationUrl, getClientToken, getFollowers, getFollowings, getMe, getMeActivities, getMeActivitiesOwn, getMeActivitiesTracks, getMeFollowers, getMeFollowings, getMeFollowingsTracks, getMeLikesPlaylists, getMeLikesTracks, getMePlaylists, getMeTracks, getPlaylist, getPlaylistReposts, getPlaylistTracks, getRelatedTracks, getSoundCloudWidgetUrl, getTrack, getTrackComments, getTrackLikes, getTrackReposts, getTrackStreams, getUser, getUserLikesPlaylists, getUserLikesTracks, getUserPlaylists, getUserToken, getUserTracks, getUserWebProfiles, likePlaylist, likeTrack, paginate, paginateItems, refreshUserToken, repostPlaylist, repostTrack, resolveUrl, scFetch, scFetchUrl, searchPlaylists, searchTracks, searchUsers, signOut, unfollowUser, unlikePlaylist, unlikeTrack, unrepostPlaylist, unrepostTrack, updatePlaylist, updateTrack } from './chunk-
|
|
1
|
+
export { SoundCloudClient, createPlaylist, createTrackComment, deletePlaylist, deleteTrack, fetchAll, followUser, generateCodeChallenge, generateCodeVerifier, getAuthorizationUrl, getClientToken, getFollowers, getFollowings, getMe, getMeActivities, getMeActivitiesOwn, getMeActivitiesTracks, getMeFollowers, getMeFollowings, getMeFollowingsTracks, getMeLikesPlaylists, getMeLikesTracks, getMePlaylists, getMeTracks, getPlaylist, getPlaylistReposts, getPlaylistTracks, getRelatedTracks, getSoundCloudWidgetUrl, getTrack, getTrackComments, getTrackLikes, getTrackReposts, getTrackStreams, getUser, getUserLikesPlaylists, getUserLikesTracks, getUserPlaylists, getUserToken, getUserTracks, getUserWebProfiles, likePlaylist, likeTrack, paginate, paginateItems, refreshUserToken, repostPlaylist, repostTrack, resolveUrl, scFetch, scFetchUrl, searchPlaylists, searchTracks, searchUsers, signOut, unfollowUser, unlikePlaylist, unlikeTrack, unrepostPlaylist, unrepostTrack, updatePlaylist, updateTrack } from './chunk-DGZEPXIQ.mjs';
|
|
2
2
|
export { SoundCloudError } from './chunk-QYYEWUIJ.mjs';
|
|
3
3
|
//# sourceMappingURL=index.mjs.map
|
|
4
4
|
//# sourceMappingURL=index.mjs.map
|
package/llms.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# soundcloud-api-ts v1.
|
|
1
|
+
# soundcloud-api-ts v1.11.0
|
|
2
2
|
|
|
3
3
|
> A TypeScript client for the SoundCloud API. Zero dependencies, native fetch, full OAuth 2.1 + PKCE support via `secure.soundcloud.com`.
|
|
4
4
|
|
|
@@ -190,6 +190,16 @@ const sc = new SoundCloudClient({
|
|
|
190
190
|
});
|
|
191
191
|
```
|
|
192
192
|
|
|
193
|
+
### Request Telemetry
|
|
194
|
+
```ts
|
|
195
|
+
const sc = new SoundCloudClient({
|
|
196
|
+
clientId: '...', clientSecret: '...',
|
|
197
|
+
onRequest: (t) => console.log(`[SC] ${t.method} ${t.path} ${t.status} ${t.durationMs}ms retries=${t.retryCount}`),
|
|
198
|
+
});
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
`SCRequestTelemetry`: `{ method, path, durationMs, status, retryCount, error? }` — fires after every request including pagination and retries.
|
|
202
|
+
|
|
193
203
|
## Full Documentation
|
|
194
204
|
|
|
195
205
|
https://twin-paws.github.io/soundcloud-api-ts/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "soundcloud-api-ts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"description": "TypeScript-first SoundCloud API client for accessing tracks, users, playlists, and search endpoints. Zero dependencies, native fetch, full OAuth 2.1 + PKCE support.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sc-cli": "./dist/cli.js",
|