@darrenjaws/spotify-mcp 1.0.1 → 1.1.0

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.
Files changed (39) hide show
  1. package/build/bin.js +4 -4
  2. package/build/index.js +135 -24
  3. package/build/index.js.map +1 -1
  4. package/build/setup.d.ts.map +1 -1
  5. package/build/setup.js +156 -156
  6. package/build/setup.js.map +1 -1
  7. package/build/spotify/auth.d.ts +4 -0
  8. package/build/spotify/auth.d.ts.map +1 -1
  9. package/build/spotify/auth.js +38 -15
  10. package/build/spotify/auth.js.map +1 -1
  11. package/build/spotify/client.d.ts +8 -2
  12. package/build/spotify/client.d.ts.map +1 -1
  13. package/build/spotify/client.js +72 -4
  14. package/build/spotify/client.js.map +1 -1
  15. package/build/tools/library.d.ts.map +1 -1
  16. package/build/tools/library.js +58 -30
  17. package/build/tools/library.js.map +1 -1
  18. package/build/tools/playback.d.ts.map +1 -1
  19. package/build/tools/playback.js +40 -20
  20. package/build/tools/playback.js.map +1 -1
  21. package/build/tools/playlists.d.ts.map +1 -1
  22. package/build/tools/playlists.js +39 -17
  23. package/build/tools/playlists.js.map +1 -1
  24. package/build/tools/search.d.ts.map +1 -1
  25. package/build/tools/search.js +11 -5
  26. package/build/tools/search.js.map +1 -1
  27. package/build/tools/user.d.ts.map +1 -1
  28. package/build/tools/user.js +11 -6
  29. package/build/tools/user.js.map +1 -1
  30. package/build/types.d.ts +42 -0
  31. package/build/types.d.ts.map +1 -1
  32. package/build/utils/logger.d.ts.map +1 -1
  33. package/build/utils/logger.js +32 -16
  34. package/build/utils/logger.js.map +1 -1
  35. package/build/utils/validation.d.ts +40 -0
  36. package/build/utils/validation.d.ts.map +1 -0
  37. package/build/utils/validation.js +57 -0
  38. package/build/utils/validation.js.map +1 -0
  39. package/package.json +6 -2
package/build/setup.js CHANGED
@@ -3,29 +3,29 @@
3
3
  * Interactive setup wizard for Spotify MCP Server
4
4
  * Guides users through the Spotify Developer app creation process
5
5
  */
6
- import * as readline from 'readline/promises';
7
- import { stdin as input, stdout as output } from 'process';
8
- import { spawn } from 'child_process';
9
- import { writeFile } from 'fs/promises';
10
- import { homedir } from 'os';
11
- import { join } from 'path';
6
+ import * as readline from "readline/promises";
7
+ import { stdin as input, stdout as output } from "process";
8
+ import { spawn } from "child_process";
9
+ import { writeFile } from "fs/promises";
10
+ import { homedir } from "os";
11
+ import { join } from "path";
12
12
  // ANSI color codes for better terminal output
13
13
  const colors = {
14
- reset: '\x1b[0m',
15
- bright: '\x1b[1m',
16
- green: '\x1b[32m',
17
- yellow: '\x1b[33m',
18
- blue: '\x1b[34m',
19
- cyan: '\x1b[36m',
20
- red: '\x1b[31m',
14
+ reset: "\x1b[0m",
15
+ bright: "\x1b[1m",
16
+ green: "\x1b[32m",
17
+ yellow: "\x1b[33m",
18
+ blue: "\x1b[34m",
19
+ cyan: "\x1b[36m",
20
+ red: "\x1b[31m",
21
21
  };
22
22
  function print(message, color = colors.reset) {
23
23
  console.log(`${color}${message}${colors.reset}`);
24
24
  }
25
25
  function header(message) {
26
- print(`\n${'='.repeat(60)}`, colors.cyan);
26
+ print(`\n${"=".repeat(60)}`, colors.cyan);
27
27
  print(message, colors.bright + colors.cyan);
28
- print('='.repeat(60), colors.cyan);
28
+ print("=".repeat(60), colors.cyan);
29
29
  }
30
30
  function success(message) {
31
31
  print(`✓ ${message}`, colors.green);
@@ -43,25 +43,25 @@ async function openBrowser(url) {
43
43
  const platform = process.platform;
44
44
  let command;
45
45
  let args;
46
- if (platform === 'darwin') {
47
- command = 'open';
46
+ if (platform === "darwin") {
47
+ command = "open";
48
48
  args = [url];
49
49
  }
50
- else if (platform === 'win32') {
51
- command = 'cmd';
52
- args = ['/c', 'start', '', url];
50
+ else if (platform === "win32") {
51
+ command = "cmd";
52
+ args = ["/c", "start", "", url];
53
53
  }
54
54
  else {
55
- command = 'xdg-open';
55
+ command = "xdg-open";
56
56
  args = [url];
57
57
  }
58
58
  return new Promise((resolve) => {
59
59
  const child = spawn(command, args, { shell: false });
60
- child.on('error', () => {
60
+ child.on("error", () => {
61
61
  warning(`Could not open browser automatically. Please visit: ${url}`);
62
62
  resolve();
63
63
  });
64
- child.on('close', (code) => {
64
+ child.on("close", (code) => {
65
65
  if (code === 0) {
66
66
  success(`Opened browser to: ${url}`);
67
67
  }
@@ -87,14 +87,14 @@ function validateClientSecret(clientSecret) {
87
87
  async function getConfigPath() {
88
88
  const platform = process.platform;
89
89
  let configPath;
90
- if (platform === 'darwin') {
91
- configPath = join(homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
90
+ if (platform === "darwin") {
91
+ configPath = join(homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
92
92
  }
93
- else if (platform === 'win32') {
94
- configPath = join(process.env.APPDATA || join(homedir(), 'AppData', 'Roaming'), 'Claude', 'claude_desktop_config.json');
93
+ else if (platform === "win32") {
94
+ configPath = join(process.env.APPDATA || join(homedir(), "AppData", "Roaming"), "Claude", "claude_desktop_config.json");
95
95
  }
96
96
  else {
97
- configPath = join(homedir(), '.config', 'Claude', 'claude_desktop_config.json');
97
+ configPath = join(homedir(), ".config", "Claude", "claude_desktop_config.json");
98
98
  }
99
99
  return configPath;
100
100
  }
@@ -106,20 +106,20 @@ SPOTIFY_CLIENT_ID=${clientId}
106
106
  SPOTIFY_CLIENT_SECRET=${clientSecret}
107
107
  SPOTIFY_REDIRECT_URI=http://127.0.0.1:3000/callback
108
108
  `;
109
- await writeFile('.env', envContent);
110
- success('Created .env file in current directory');
109
+ await writeFile(".env", envContent);
110
+ success("Created .env file in current directory");
111
111
  }
112
112
  function generateMcpConfig(clientId, clientSecret, useNpx = true) {
113
113
  if (useNpx) {
114
114
  return JSON.stringify({
115
115
  mcpServers: {
116
116
  spotify: {
117
- command: 'npx',
118
- args: ['-y', '@darrenjaws/spotify-mcp'],
117
+ command: "npx",
118
+ args: ["-y", "@darrenjaws/spotify-mcp"],
119
119
  env: {
120
120
  SPOTIFY_CLIENT_ID: clientId,
121
121
  SPOTIFY_CLIENT_SECRET: clientSecret,
122
- SPOTIFY_REDIRECT_URI: 'http://127.0.0.1:3000/callback',
122
+ SPOTIFY_REDIRECT_URI: "http://127.0.0.1:3000/callback",
123
123
  },
124
124
  },
125
125
  },
@@ -129,11 +129,11 @@ function generateMcpConfig(clientId, clientSecret, useNpx = true) {
129
129
  return JSON.stringify({
130
130
  mcpServers: {
131
131
  spotify: {
132
- command: 'spotify-mcp',
132
+ command: "spotify-mcp",
133
133
  env: {
134
134
  SPOTIFY_CLIENT_ID: clientId,
135
135
  SPOTIFY_CLIENT_SECRET: clientSecret,
136
- SPOTIFY_REDIRECT_URI: 'http://127.0.0.1:3000/callback',
136
+ SPOTIFY_REDIRECT_URI: "http://127.0.0.1:3000/callback",
137
137
  },
138
138
  },
139
139
  },
@@ -144,12 +144,12 @@ function generateCursorConfig(clientId, clientSecret) {
144
144
  return JSON.stringify({
145
145
  mcpServers: {
146
146
  spotify: {
147
- command: 'npx',
148
- args: ['-y', '@darrenjaws/spotify-mcp'],
147
+ command: "npx",
148
+ args: ["-y", "@darrenjaws/spotify-mcp"],
149
149
  env: {
150
150
  SPOTIFY_CLIENT_ID: clientId,
151
151
  SPOTIFY_CLIENT_SECRET: clientSecret,
152
- SPOTIFY_REDIRECT_URI: 'http://127.0.0.1:3000/callback',
152
+ SPOTIFY_REDIRECT_URI: "http://127.0.0.1:3000/callback",
153
153
  },
154
154
  },
155
155
  },
@@ -159,12 +159,12 @@ function generateWindsurfConfig(clientId, clientSecret) {
159
159
  return JSON.stringify({
160
160
  mcpServers: {
161
161
  spotify: {
162
- command: 'npx',
163
- args: ['-y', '@darrenjaws/spotify-mcp'],
162
+ command: "npx",
163
+ args: ["-y", "@darrenjaws/spotify-mcp"],
164
164
  env: {
165
165
  SPOTIFY_CLIENT_ID: clientId,
166
166
  SPOTIFY_CLIENT_SECRET: clientSecret,
167
- SPOTIFY_REDIRECT_URI: 'http://127.0.0.1:3000/callback',
167
+ SPOTIFY_REDIRECT_URI: "http://127.0.0.1:3000/callback",
168
168
  },
169
169
  },
170
170
  },
@@ -174,13 +174,13 @@ function generateVSCodeConfig(clientId, clientSecret) {
174
174
  return JSON.stringify({
175
175
  servers: {
176
176
  spotify: {
177
- type: 'stdio',
178
- command: 'npx',
179
- args: ['-y', '@darrenjaws/spotify-mcp'],
177
+ type: "stdio",
178
+ command: "npx",
179
+ args: ["-y", "@darrenjaws/spotify-mcp"],
180
180
  env: {
181
181
  SPOTIFY_CLIENT_ID: clientId,
182
182
  SPOTIFY_CLIENT_SECRET: clientSecret,
183
- SPOTIFY_REDIRECT_URI: 'http://127.0.0.1:3000/callback',
183
+ SPOTIFY_REDIRECT_URI: "http://127.0.0.1:3000/callback",
184
184
  },
185
185
  },
186
186
  },
@@ -189,192 +189,192 @@ function generateVSCodeConfig(clientId, clientSecret) {
189
189
  function generateOpenCodeConfig(clientId, clientSecret) {
190
190
  return JSON.stringify({
191
191
  spotify: {
192
- command: ['npx', '-y', '@darrenjaws/spotify-mcp@latest'],
192
+ command: ["npx", "-y", "@darrenjaws/spotify-mcp@latest"],
193
193
  environment: {
194
194
  SPOTIFY_CLIENT_ID: clientId,
195
195
  SPOTIFY_CLIENT_SECRET: clientSecret,
196
- SPOTIFY_REDIRECT_URI: 'http://127.0.0.1:3000/callback',
196
+ SPOTIFY_REDIRECT_URI: "http://127.0.0.1:3000/callback",
197
197
  },
198
- type: 'local',
198
+ type: "local",
199
199
  },
200
200
  }, null, 2);
201
201
  }
202
202
  export async function runSetup() {
203
203
  const rl = readline.createInterface({ input, output });
204
204
  try {
205
- header('Spotify MCP Server - Setup Wizard');
206
- print('\nThis wizard will help you configure the Spotify MCP Server.\n');
207
- info('You\'ll need to create a Spotify Developer app to get started.');
205
+ header("Spotify MCP Server - Setup Wizard");
206
+ print("\nThis wizard will help you configure the Spotify MCP Server.\n");
207
+ info("You'll need to create a Spotify Developer app to get started.");
208
208
  // Step 1: Open Spotify Developer Dashboard
209
- header('Step 1: Create a Spotify Developer App');
210
- print('\n1. We\'ll open the Spotify Developer Dashboard');
211
- print('2. Log in with your Spotify account');
209
+ header("Step 1: Create a Spotify Developer App");
210
+ print("\n1. We'll open the Spotify Developer Dashboard");
211
+ print("2. Log in with your Spotify account");
212
212
  print('3. Click "Create app" button');
213
- print('4. Fill in the following:');
213
+ print("4. Fill in the following:");
214
214
  print(' - App name: "My Spotify MCP" (or any name you prefer)');
215
215
  print(' - App description: "MCP server for AI assistant"');
216
- print(' - Redirect URI: http://127.0.0.1:3000/callback');
216
+ print(" - Redirect URI: http://127.0.0.1:3000/callback");
217
217
  print(' - Which API/SDKs are you planning to use? Check "Web API"');
218
218
  print('5. Accept the terms and click "Save"\n');
219
- const openDashboard = await prompt(rl, 'Ready to open the Spotify Developer Dashboard? (Y/n):');
220
- if (openDashboard.toLowerCase() !== 'n') {
221
- await openBrowser('https://developer.spotify.com/dashboard');
219
+ const openDashboard = await prompt(rl, "Ready to open the Spotify Developer Dashboard? (Y/n):");
220
+ if (openDashboard.toLowerCase() !== "n") {
221
+ await openBrowser("https://developer.spotify.com/dashboard");
222
222
  }
223
223
  else {
224
- info('Please visit: https://developer.spotify.com/dashboard');
224
+ info("Please visit: https://developer.spotify.com/dashboard");
225
225
  }
226
- print('\n');
227
- warning('IMPORTANT: Make sure to add this Redirect URI exactly:');
228
- print(' → http://127.0.0.1:3000/callback', colors.bright);
229
- print('\n');
230
- await prompt(rl, 'Press ENTER once you\'ve created your app and have it open...');
226
+ print("\n");
227
+ warning("IMPORTANT: Make sure to add this Redirect URI exactly:");
228
+ print(" → http://127.0.0.1:3000/callback", colors.bright);
229
+ print("\n");
230
+ await prompt(rl, "Press ENTER once you've created your app and have it open...");
231
231
  // Step 2: Get Client ID
232
- header('Step 2: Get Your Client ID');
233
- print('\nIn your Spotify app settings:');
232
+ header("Step 2: Get Your Client ID");
233
+ print("\nIn your Spotify app settings:");
234
234
  print('1. Look for "Client ID" (it\'s already visible)');
235
- print('2. Copy the 32-character code\n');
236
- let clientId = '';
235
+ print("2. Copy the 32-character code\n");
236
+ let clientId = "";
237
237
  while (!clientId) {
238
- clientId = await prompt(rl, 'Paste your Client ID here:');
238
+ clientId = await prompt(rl, "Paste your Client ID here:");
239
239
  if (!validateClientId(clientId)) {
240
- error('Invalid Client ID format. It should be a 32-character hex string.');
241
- clientId = '';
240
+ error("Invalid Client ID format. It should be a 32-character hex string.");
241
+ clientId = "";
242
242
  }
243
243
  else {
244
- success('Client ID looks good!');
244
+ success("Client ID looks good!");
245
245
  }
246
246
  }
247
247
  // Step 3: Get Client Secret
248
- header('Step 3: Get Your Client Secret');
249
- print('\nIn your Spotify app settings:');
248
+ header("Step 3: Get Your Client Secret");
249
+ print("\nIn your Spotify app settings:");
250
250
  print('1. Click "View client secret" link');
251
- print('2. Copy the secret that appears\n');
252
- let clientSecret = '';
251
+ print("2. Copy the secret that appears\n");
252
+ let clientSecret = "";
253
253
  while (!clientSecret) {
254
- clientSecret = await prompt(rl, 'Paste your Client Secret here:');
254
+ clientSecret = await prompt(rl, "Paste your Client Secret here:");
255
255
  if (!validateClientSecret(clientSecret)) {
256
- error('Invalid Client Secret format. It should be a 32-character hex string.');
257
- clientSecret = '';
256
+ error("Invalid Client Secret format. It should be a 32-character hex string.");
257
+ clientSecret = "";
258
258
  }
259
259
  else {
260
- success('Client Secret looks good!');
260
+ success("Client Secret looks good!");
261
261
  }
262
262
  }
263
263
  // Step 4: Configuration method
264
- header('Step 4: Choose Configuration Method');
265
- print('\nHow would you like to use the Spotify MCP server?\n');
266
- print('1. Claude Desktop');
267
- print('2. Claude Code CLI');
268
- print('3. Cursor');
269
- print('4. Windsurf');
270
- print('5. VS Code (GitHub Copilot)');
271
- print('6. OpenCode');
272
- print('7. From source (for development)\n');
273
- const configMethod = await prompt(rl, 'Enter your choice (1-7):');
274
- let mcpConfig = '';
264
+ header("Step 4: Choose Configuration Method");
265
+ print("\nHow would you like to use the Spotify MCP server?\n");
266
+ print("1. Claude Desktop");
267
+ print("2. Claude Code CLI");
268
+ print("3. Cursor");
269
+ print("4. Windsurf");
270
+ print("5. VS Code (GitHub Copilot)");
271
+ print("6. OpenCode");
272
+ print("7. From source (for development)\n");
273
+ const configMethod = await prompt(rl, "Enter your choice (1-7):");
274
+ let mcpConfig = "";
275
275
  switch (configMethod) {
276
- case '1': {
276
+ case "1": {
277
277
  // Claude Desktop
278
- header('Claude Desktop Configuration');
279
- print('\nChoose installation method:\n');
280
- print('1. Using npx (recommended - no installation needed)');
281
- print('2. Global installation (npm install -g @darrenjaws/spotify-mcp)\n');
282
- const installMethod = await prompt(rl, 'Enter your choice (1-2):');
283
- const useNpx = installMethod !== '2';
278
+ header("Claude Desktop Configuration");
279
+ print("\nChoose installation method:\n");
280
+ print("1. Using npx (recommended - no installation needed)");
281
+ print("2. Global installation (npm install -g @darrenjaws/spotify-mcp)\n");
282
+ const installMethod = await prompt(rl, "Enter your choice (1-2):");
283
+ const useNpx = installMethod !== "2";
284
284
  mcpConfig = generateMcpConfig(clientId, clientSecret, useNpx);
285
285
  const configPath = await getConfigPath();
286
- print('\n');
286
+ print("\n");
287
287
  info(`Your Claude Desktop config file should be at:`);
288
288
  print(` ${configPath}`, colors.bright);
289
- print('\n');
290
- success('Copy this configuration and add it to your claude_desktop_config.json:');
291
- print('\n' + mcpConfig, colors.cyan);
292
- print('\n');
293
- warning('After updating the config, restart Claude Desktop for changes to take effect.');
289
+ print("\n");
290
+ success("Copy this configuration and add it to your claude_desktop_config.json:");
291
+ print("\n" + mcpConfig, colors.cyan);
292
+ print("\n");
293
+ warning("After updating the config, restart Claude Desktop for changes to take effect.");
294
294
  break;
295
295
  }
296
- case '2': {
296
+ case "2": {
297
297
  // Claude Code CLI
298
- header('Claude Code CLI Configuration');
298
+ header("Claude Code CLI Configuration");
299
299
  mcpConfig = generateMcpConfig(clientId, clientSecret, true);
300
- print('\n');
301
- info('Add this to your ~/.claude/config.json:');
302
- print('\n' + mcpConfig, colors.cyan);
303
- print('\n');
304
- info('Or run: claude mcp add');
300
+ print("\n");
301
+ info("Add this to your ~/.claude/config.json:");
302
+ print("\n" + mcpConfig, colors.cyan);
303
+ print("\n");
304
+ info("Or run: claude mcp add");
305
305
  break;
306
306
  }
307
- case '3': {
307
+ case "3": {
308
308
  // Cursor
309
- header('Cursor Configuration');
309
+ header("Cursor Configuration");
310
310
  mcpConfig = generateCursorConfig(clientId, clientSecret);
311
- print('\n');
312
- info('Add this to your project\'s .cursor/mcp.json (or ~/.cursor/mcp.json for global):');
313
- print('\n' + mcpConfig, colors.cyan);
314
- print('\n');
315
- warning('Restart Cursor after saving the config file.');
311
+ print("\n");
312
+ info("Add this to your project's .cursor/mcp.json (or ~/.cursor/mcp.json for global):");
313
+ print("\n" + mcpConfig, colors.cyan);
314
+ print("\n");
315
+ warning("Restart Cursor after saving the config file.");
316
316
  break;
317
317
  }
318
- case '4': {
318
+ case "4": {
319
319
  // Windsurf
320
- header('Windsurf Configuration');
320
+ header("Windsurf Configuration");
321
321
  mcpConfig = generateWindsurfConfig(clientId, clientSecret);
322
- print('\n');
323
- info('Add this to your ~/.codeium/windsurf/mcp_config.json:');
324
- print('\n' + mcpConfig, colors.cyan);
325
- print('\n');
326
- warning('Restart Windsurf after saving the config file.');
322
+ print("\n");
323
+ info("Add this to your ~/.codeium/windsurf/mcp_config.json:");
324
+ print("\n" + mcpConfig, colors.cyan);
325
+ print("\n");
326
+ warning("Restart Windsurf after saving the config file.");
327
327
  break;
328
328
  }
329
- case '5': {
329
+ case "5": {
330
330
  // VS Code
331
- header('VS Code (GitHub Copilot) Configuration');
331
+ header("VS Code (GitHub Copilot) Configuration");
332
332
  mcpConfig = generateVSCodeConfig(clientId, clientSecret);
333
- print('\n');
334
- info('Add this to your project\'s .vscode/mcp.json (or User Settings for global):');
335
- print('\n' + mcpConfig, colors.cyan);
336
- print('\n');
337
- warning('Reload VS Code after saving the config file.');
333
+ print("\n");
334
+ info("Add this to your project's .vscode/mcp.json (or User Settings for global):");
335
+ print("\n" + mcpConfig, colors.cyan);
336
+ print("\n");
337
+ warning("Reload VS Code after saving the config file.");
338
338
  break;
339
339
  }
340
- case '6': {
340
+ case "6": {
341
341
  // OpenCode
342
- header('OpenCode Configuration');
342
+ header("OpenCode Configuration");
343
343
  mcpConfig = generateOpenCodeConfig(clientId, clientSecret);
344
- print('\n');
344
+ print("\n");
345
345
  info('Add this to the "mcpServers" section of your opencode.json:');
346
- print('\n' + mcpConfig, colors.cyan);
346
+ print("\n" + mcpConfig, colors.cyan);
347
347
  break;
348
348
  }
349
- case '7': {
349
+ case "7": {
350
350
  // Development from source
351
- header('Development Configuration');
351
+ header("Development Configuration");
352
352
  await createEnvFile(clientId, clientSecret);
353
- print('\n');
354
- success('Configuration saved!');
355
- print('\nNext steps:');
356
- print('1. Run: npm run build');
357
- print('2. Test with MCP Inspector: npx @modelcontextprotocol/inspector node build/index.js');
353
+ print("\n");
354
+ success("Configuration saved!");
355
+ print("\nNext steps:");
356
+ print("1. Run: npm run build");
357
+ print("2. Test with MCP Inspector: npx @modelcontextprotocol/inspector node build/index.js");
358
358
  break;
359
359
  }
360
360
  default: {
361
- warning('Invalid choice. Showing Claude Desktop configuration...');
362
- print('\n=== Claude Desktop (npx) ===');
361
+ warning("Invalid choice. Showing Claude Desktop configuration...");
362
+ print("\n=== Claude Desktop (npx) ===");
363
363
  print(generateMcpConfig(clientId, clientSecret, true), colors.cyan);
364
364
  break;
365
365
  }
366
366
  }
367
367
  // Step 5: Test Connection (Optional)
368
- header('Setup Complete!');
369
- success('Your Spotify MCP server is configured!');
370
- print('\n');
371
- info('Next steps:');
372
- print('1. Restart your AI tool (Claude Desktop, Cursor, Windsurf, VS Code, etc.)');
368
+ header("Setup Complete!");
369
+ success("Your Spotify MCP server is configured!");
370
+ print("\n");
371
+ info("Next steps:");
372
+ print("1. Restart your AI tool (Claude Desktop, Cursor, Windsurf, VS Code, etc.)");
373
373
  print('2. Ask your AI assistant: "What\'s currently playing on Spotify?"');
374
- print('3. The first request will open your browser for Spotify OAuth authentication');
375
- print('4. After authorizing, all future requests will work automatically');
376
- print('\n');
377
- success('Happy listening! 🎵');
374
+ print("3. The first request will open your browser for Spotify OAuth authentication");
375
+ print("4. After authorizing, all future requests will work automatically");
376
+ print("\n");
377
+ success("Happy listening! 🎵");
378
378
  }
379
379
  catch (err) {
380
380
  error(`Setup failed: ${err.message}`);
@@ -387,7 +387,7 @@ export async function runSetup() {
387
387
  // Run setup if called directly
388
388
  if (import.meta.url === `file://${process.argv[1]}`) {
389
389
  runSetup().catch((err) => {
390
- console.error('Setup error:', err);
390
+ console.error("Setup error:", err);
391
391
  process.exit(1);
392
392
  });
393
393
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,10 @@ export declare function loadTokens(): Promise<StoredTokens | null>;
23
23
  * Save tokens to file
24
24
  */
25
25
  export declare function saveTokens(tokens: StoredTokens): Promise<void>;
26
+ /**
27
+ * Delete stored tokens file (used when tokens are invalid and re-auth is needed)
28
+ */
29
+ export declare function deleteTokens(): Promise<void>;
26
30
  /**
27
31
  * Check if tokens are expired or will expire soon (within 5 minutes)
28
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/spotify/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoBpE;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAUnD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAc/D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,aAAa,CAMlF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA6KjF"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/spotify/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoBpE;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAUnD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwB/D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,aAAa,CAMlF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA8LjF"}