@runapi.ai/suno 0.2.1 → 0.2.6
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/dist/index.d.mts +178 -41
- package/dist/index.d.ts +178 -41
- package/dist/index.js +128 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +114 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -20
- package/skills/suno/README.md +36 -6
- package/skills/suno/SKILL.md +63 -211
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/resources/text-to-music.ts","../src/resources/extend-music.ts","../src/resources/generate-artwork.ts","../src/resources/cover-audio.ts","../src/resources/add-instrumental.ts","../src/resources/add-vocals.ts","../src/resources/separate-audio-stems.ts","../src/resources/generate-midi.ts","../src/resources/convert-audio.ts","../src/resources/visualize-music.ts","../src/resources/generate-lyrics.ts","../src/resources/get-timestamped-lyrics.ts","../src/resources/replace-section.ts","../src/resources/create-mashup.ts","../src/resources/text-to-sound.ts","../src/resources/generate-persona.ts","../src/resources/boost-style.ts"],"sourcesContent":["export { SunoClient } from './client';\nexport * from './types';\n\n// Re-export common errors from core for convenience\nexport {\n RunApiError,\n AuthenticationError,\n InsufficientCreditsError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServiceUnavailableError,\n NetworkError,\n TimeoutError,\n TaskTimeoutError,\n TaskFailedError,\n} from '@runapi.ai/core';\n","import { createHttpClient, type ClientOptions } from '@runapi.ai/core';\nimport { TextToMusic } from './resources/text-to-music';\nimport { ExtendMusic } from './resources/extend-music';\nimport { GenerateArtwork } from './resources/generate-artwork';\nimport { CoverAudio } from './resources/cover-audio';\nimport { AddInstrumental } from './resources/add-instrumental';\nimport { AddVocals } from './resources/add-vocals';\nimport { SeparateAudioStems } from './resources/separate-audio-stems';\nimport { GenerateMidi } from './resources/generate-midi';\nimport { ConvertAudio } from './resources/convert-audio';\nimport { VisualizeMusic } from './resources/visualize-music';\nimport { GenerateLyrics } from './resources/generate-lyrics';\nimport { GetTimestampedLyrics } from './resources/get-timestamped-lyrics';\nimport { ReplaceSection } from './resources/replace-section';\nimport { CreateMashup } from './resources/create-mashup';\nimport { TextToSound } from './resources/text-to-sound';\nimport { GeneratePersona } from './resources/generate-persona';\nimport { BoostStyle } from './resources/boost-style';\n\n/**\n * Suno API client.\n *\n * @example\n * ```typescript\n * const client = new SunoClient({\n * apiKey: 'your-api-key',\n * baseUrl: 'https://runapi.ai',\n * });\n *\n * const result = await client.textToMusic.run({\n * custom_mode: false,\n * instrumental: false,\n * prompt: 'A chill lo-fi beat with soft vocals',\n * model: 'V4_5PLUS',\n * });\n * ```\n */\nexport class SunoClient {\n public readonly textToMusic: TextToMusic;\n public readonly extendMusic: ExtendMusic;\n public readonly generateArtwork: GenerateArtwork;\n public readonly coverAudio: CoverAudio;\n public readonly addInstrumental: AddInstrumental;\n public readonly addVocals: AddVocals;\n public readonly separateAudioStems: SeparateAudioStems;\n public readonly generateMidi: GenerateMidi;\n public readonly convertAudio: ConvertAudio;\n public readonly visualizeMusic: VisualizeMusic;\n public readonly generateLyrics: GenerateLyrics;\n public readonly getTimestampedLyrics: GetTimestampedLyrics;\n public readonly replaceSection: ReplaceSection;\n public readonly createMashup: CreateMashup;\n public readonly textToSound: TextToSound;\n public readonly generatePersona: GeneratePersona;\n public readonly boostStyle: BoostStyle;\n\n constructor(options: ClientOptions = {}) {\n const http = createHttpClient(options);\n this.textToMusic = new TextToMusic(http);\n this.extendMusic = new ExtendMusic(http);\n this.generateArtwork = new GenerateArtwork(http);\n this.coverAudio = new CoverAudio(http);\n this.addInstrumental = new AddInstrumental(http);\n this.addVocals = new AddVocals(http);\n this.separateAudioStems = new SeparateAudioStems(http);\n this.generateMidi = new GenerateMidi(http);\n this.convertAudio = new ConvertAudio(http);\n this.visualizeMusic = new VisualizeMusic(http);\n this.generateLyrics = new GenerateLyrics(http);\n this.getTimestampedLyrics = new GetTimestampedLyrics(http);\n this.replaceSection = new ReplaceSection(http);\n this.createMashup = new CreateMashup(http);\n this.textToSound = new TextToSound(http);\n this.generatePersona = new GeneratePersona(http);\n this.boostStyle = new BoostStyle(http);\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToMusicResponse, TextToMusicParams, TextToMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_music';\n\nexport class TextToMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToMusicResponse;\n }\n\n async create(params: TextToMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToMusicResponse> {\n return this.http.request<TextToMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedExtendMusicResponse, ExtendMusicParams, ExtendMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/extend_music';\n\nexport class ExtendMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ExtendMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedExtendMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ExtendMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedExtendMusicResponse;\n }\n\n async create(params: ExtendMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ExtendMusicResponse> {\n return this.http.request<ExtendMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateArtworkResponse, GenerateArtworkParams, GenerateArtworkResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_artwork';\n\nexport class GenerateArtwork {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateArtworkParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateArtworkResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateArtworkResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateArtworkResponse;\n }\n\n async create(params: GenerateArtworkParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateArtworkResponse> {\n return this.http.request<GenerateArtworkResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCoverAudioResponse, CoverAudioParams, CoverAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/cover_audio';\n\nexport class CoverAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CoverAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedCoverAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CoverAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCoverAudioResponse;\n }\n\n async create(params: CoverAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CoverAudioResponse> {\n return this.http.request<CoverAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddInstrumentalResponse, AddInstrumentalParams, AddInstrumentalResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_instrumental';\n\nexport class AddInstrumental {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddInstrumentalParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddInstrumentalResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddInstrumentalResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddInstrumentalResponse;\n }\n\n async create(params: AddInstrumentalParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddInstrumentalResponse> {\n return this.http.request<AddInstrumentalResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddVocalsResponse, AddVocalsParams, AddVocalsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_vocals';\n\nexport class AddVocals {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddVocalsParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddVocalsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddVocalsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddVocalsResponse;\n }\n\n async create(params: AddVocalsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddVocalsResponse> {\n return this.http.request<AddVocalsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedSeparateAudioStemsResponse, SeparateAudioStemsParams, SeparateAudioStemsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/separate_audio_stems';\n\nexport class SeparateAudioStems {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: SeparateAudioStemsParams, options?: RequestOptions & PollingOptions): Promise<CompletedSeparateAudioStemsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<SeparateAudioStemsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedSeparateAudioStemsResponse;\n }\n\n async create(params: SeparateAudioStemsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<SeparateAudioStemsResponse> {\n return this.http.request<SeparateAudioStemsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateMidiResponse, GenerateMidiParams, GenerateMidiResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_midi';\n\nexport class GenerateMidi {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateMidiParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateMidiResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateMidiResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateMidiResponse;\n }\n\n async create(params: GenerateMidiParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateMidiResponse> {\n return this.http.request<GenerateMidiResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedConvertAudioResponse, ConvertAudioParams, ConvertAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/convert_audio';\n\nexport class ConvertAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ConvertAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedConvertAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ConvertAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedConvertAudioResponse;\n }\n\n async create(params: ConvertAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ConvertAudioResponse> {\n return this.http.request<ConvertAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedVisualizeMusicResponse, VisualizeMusicParams, VisualizeMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/visualize_music';\n\nexport class VisualizeMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VisualizeMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedVisualizeMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VisualizeMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVisualizeMusicResponse;\n }\n\n async create(params: VisualizeMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VisualizeMusicResponse> {\n return this.http.request<VisualizeMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateLyricsResponse, GenerateLyricsParams, GenerateLyricsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_lyrics';\n\nexport class GenerateLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateLyricsParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateLyricsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateLyricsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateLyricsResponse;\n }\n\n async create(params: GenerateLyricsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateLyricsResponse> {\n return this.http.request<GenerateLyricsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GetTimestampedLyricsParams, GetTimestampedLyricsResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/get_timestamped_lyrics';\n\nexport class GetTimestampedLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GetTimestampedLyricsParams, options?: RequestOptions): Promise<GetTimestampedLyricsResponse> {\n return this.http.request<GetTimestampedLyricsResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedReplaceSectionResponse, ReplaceSectionParams, ReplaceSectionResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/replace_section';\n\nexport class ReplaceSection {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ReplaceSectionParams, options?: RequestOptions & PollingOptions): Promise<CompletedReplaceSectionResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ReplaceSectionResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedReplaceSectionResponse;\n }\n\n async create(params: ReplaceSectionParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ReplaceSectionResponse> {\n return this.http.request<ReplaceSectionResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCreateMashupResponse, CreateMashupParams, CreateMashupResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/create_mashup';\n\nexport class CreateMashup {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CreateMashupParams, options?: RequestOptions & PollingOptions): Promise<CompletedCreateMashupResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CreateMashupResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCreateMashupResponse;\n }\n\n async create(params: CreateMashupParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CreateMashupResponse> {\n return this.http.request<CreateMashupResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToSoundResponse, TextToSoundParams, TextToSoundResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_sound';\n\nexport class TextToSound {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToSoundParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToSoundResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToSoundResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToSoundResponse;\n }\n\n async create(params: TextToSoundParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToSoundResponse> {\n return this.http.request<TextToSoundResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GeneratePersonaParams, GeneratePersonaResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_persona';\n\nexport class GeneratePersona {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GeneratePersonaParams, options?: RequestOptions): Promise<GeneratePersonaResponse> {\n return this.http.request<GeneratePersonaResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { BoostStyleParams, BoostStyleResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/boost_style';\n\nexport class BoostStyle {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: BoostStyleParams, options?: RequestOptions): Promise<BoostStyleResponse> {\n return this.http.request<BoostStyleResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n"],"mappings":"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","names":["import_core","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","ENDPOINT","import_core"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/resources/text-to-music.ts","../src/resources/extend-music.ts","../src/resources/generate-artwork.ts","../src/resources/cover-audio.ts","../src/resources/add-instrumental.ts","../src/resources/add-vocals.ts","../src/resources/separate-audio-stems.ts","../src/resources/generate-midi.ts","../src/resources/convert-audio.ts","../src/resources/visualize-music.ts","../src/resources/generate-lyrics.ts","../src/resources/get-timestamped-lyrics.ts","../src/resources/replace-section.ts","../src/resources/create-mashup.ts","../src/resources/text-to-sound.ts","../src/resources/generate-persona.ts","../src/resources/boost-style.ts","../src/resources/voice-to-validation-phrase.ts","../src/resources/regenerate-validation-phrase.ts","../src/resources/generate-voice.ts","../src/resources/check-voice.ts"],"sourcesContent":["export { SunoClient } from './client';\nexport * from './types';\n\n// Re-export common errors from core for convenience\nexport {\n RunApiError,\n AuthenticationError,\n InsufficientCreditsError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServiceUnavailableError,\n NetworkError,\n TimeoutError,\n TaskTimeoutError,\n TaskFailedError,\n} from '@runapi.ai/core';\n","import { createHttpClient, type ClientOptions } from '@runapi.ai/core';\nimport { TextToMusic } from './resources/text-to-music';\nimport { ExtendMusic } from './resources/extend-music';\nimport { GenerateArtwork } from './resources/generate-artwork';\nimport { CoverAudio } from './resources/cover-audio';\nimport { AddInstrumental } from './resources/add-instrumental';\nimport { AddVocals } from './resources/add-vocals';\nimport { SeparateAudioStems } from './resources/separate-audio-stems';\nimport { GenerateMidi } from './resources/generate-midi';\nimport { ConvertAudio } from './resources/convert-audio';\nimport { VisualizeMusic } from './resources/visualize-music';\nimport { GenerateLyrics } from './resources/generate-lyrics';\nimport { GetTimestampedLyrics } from './resources/get-timestamped-lyrics';\nimport { ReplaceSection } from './resources/replace-section';\nimport { CreateMashup } from './resources/create-mashup';\nimport { TextToSound } from './resources/text-to-sound';\nimport { GeneratePersona } from './resources/generate-persona';\nimport { BoostStyle } from './resources/boost-style';\nimport { VoiceToValidationPhrase } from './resources/voice-to-validation-phrase';\nimport { RegenerateValidationPhrase } from './resources/regenerate-validation-phrase';\nimport { GenerateVoice } from './resources/generate-voice';\nimport { CheckVoice } from './resources/check-voice';\n\n/**\n * Suno API client.\n *\n * @example\n * ```typescript\n * const client = new SunoClient({\n * apiKey: 'your-api-key',\n * baseUrl: 'https://runapi.ai',\n * });\n *\n * const result = await client.textToMusic.run({\n * prompt: 'A chill lo-fi beat with soft vocals',\n * model: 'suno-v4.5-plus',\n * });\n * ```\n */\nexport class SunoClient {\n public readonly textToMusic: TextToMusic;\n public readonly extendMusic: ExtendMusic;\n public readonly generateArtwork: GenerateArtwork;\n public readonly coverAudio: CoverAudio;\n public readonly addInstrumental: AddInstrumental;\n public readonly addVocals: AddVocals;\n public readonly separateAudioStems: SeparateAudioStems;\n public readonly generateMidi: GenerateMidi;\n public readonly convertAudio: ConvertAudio;\n public readonly visualizeMusic: VisualizeMusic;\n public readonly generateLyrics: GenerateLyrics;\n public readonly getTimestampedLyrics: GetTimestampedLyrics;\n public readonly replaceSection: ReplaceSection;\n public readonly createMashup: CreateMashup;\n public readonly textToSound: TextToSound;\n public readonly generatePersona: GeneratePersona;\n public readonly boostStyle: BoostStyle;\n public readonly voiceToValidationPhrase: VoiceToValidationPhrase;\n public readonly regenerateValidationPhrase: RegenerateValidationPhrase;\n public readonly generateVoice: GenerateVoice;\n public readonly checkVoice: CheckVoice;\n\n constructor(options: ClientOptions = {}) {\n const http = createHttpClient(options);\n this.textToMusic = new TextToMusic(http);\n this.extendMusic = new ExtendMusic(http);\n this.generateArtwork = new GenerateArtwork(http);\n this.coverAudio = new CoverAudio(http);\n this.addInstrumental = new AddInstrumental(http);\n this.addVocals = new AddVocals(http);\n this.separateAudioStems = new SeparateAudioStems(http);\n this.generateMidi = new GenerateMidi(http);\n this.convertAudio = new ConvertAudio(http);\n this.visualizeMusic = new VisualizeMusic(http);\n this.generateLyrics = new GenerateLyrics(http);\n this.getTimestampedLyrics = new GetTimestampedLyrics(http);\n this.replaceSection = new ReplaceSection(http);\n this.createMashup = new CreateMashup(http);\n this.textToSound = new TextToSound(http);\n this.generatePersona = new GeneratePersona(http);\n this.boostStyle = new BoostStyle(http);\n this.voiceToValidationPhrase = new VoiceToValidationPhrase(http);\n this.regenerateValidationPhrase = new RegenerateValidationPhrase(http);\n this.generateVoice = new GenerateVoice(http);\n this.checkVoice = new CheckVoice(http);\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToMusicResponse, TextToMusicParams, TextToMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_music';\n\nexport class TextToMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToMusicResponse;\n }\n\n async create(params: TextToMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToMusicResponse> {\n return this.http.request<TextToMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedExtendMusicResponse, ExtendMusicParams, ExtendMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/extend_music';\n\nexport class ExtendMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ExtendMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedExtendMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ExtendMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedExtendMusicResponse;\n }\n\n async create(params: ExtendMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ExtendMusicResponse> {\n return this.http.request<ExtendMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateArtworkResponse, GenerateArtworkParams, GenerateArtworkResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_artwork';\n\nexport class GenerateArtwork {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateArtworkParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateArtworkResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateArtworkResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateArtworkResponse;\n }\n\n async create(params: GenerateArtworkParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateArtworkResponse> {\n return this.http.request<GenerateArtworkResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCoverAudioResponse, CoverAudioParams, CoverAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/cover_audio';\n\nexport class CoverAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CoverAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedCoverAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CoverAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCoverAudioResponse;\n }\n\n async create(params: CoverAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CoverAudioResponse> {\n return this.http.request<CoverAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddInstrumentalResponse, AddInstrumentalParams, AddInstrumentalResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_instrumental';\n\nexport class AddInstrumental {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddInstrumentalParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddInstrumentalResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddInstrumentalResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddInstrumentalResponse;\n }\n\n async create(params: AddInstrumentalParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddInstrumentalResponse> {\n return this.http.request<AddInstrumentalResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddVocalsResponse, AddVocalsParams, AddVocalsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_vocals';\n\nexport class AddVocals {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddVocalsParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddVocalsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddVocalsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddVocalsResponse;\n }\n\n async create(params: AddVocalsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddVocalsResponse> {\n return this.http.request<AddVocalsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedSeparateAudioStemsResponse, SeparateAudioStemsParams, SeparateAudioStemsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/separate_audio_stems';\n\nexport class SeparateAudioStems {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: SeparateAudioStemsParams, options?: RequestOptions & PollingOptions): Promise<CompletedSeparateAudioStemsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<SeparateAudioStemsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedSeparateAudioStemsResponse;\n }\n\n async create(params: SeparateAudioStemsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<SeparateAudioStemsResponse> {\n return this.http.request<SeparateAudioStemsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateMidiResponse, GenerateMidiParams, GenerateMidiResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_midi';\n\nexport class GenerateMidi {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateMidiParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateMidiResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateMidiResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateMidiResponse;\n }\n\n async create(params: GenerateMidiParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateMidiResponse> {\n return this.http.request<GenerateMidiResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedConvertAudioResponse, ConvertAudioParams, ConvertAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/convert_audio';\n\nexport class ConvertAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ConvertAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedConvertAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ConvertAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedConvertAudioResponse;\n }\n\n async create(params: ConvertAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ConvertAudioResponse> {\n return this.http.request<ConvertAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedVisualizeMusicResponse, VisualizeMusicParams, VisualizeMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/visualize_music';\n\nexport class VisualizeMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VisualizeMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedVisualizeMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VisualizeMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVisualizeMusicResponse;\n }\n\n async create(params: VisualizeMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VisualizeMusicResponse> {\n return this.http.request<VisualizeMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateLyricsResponse, GenerateLyricsParams, GenerateLyricsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_lyrics';\n\nexport class GenerateLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateLyricsParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateLyricsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateLyricsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateLyricsResponse;\n }\n\n async create(params: GenerateLyricsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateLyricsResponse> {\n return this.http.request<GenerateLyricsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GetTimestampedLyricsParams, GetTimestampedLyricsResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/get_timestamped_lyrics';\n\nexport class GetTimestampedLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GetTimestampedLyricsParams, options?: RequestOptions): Promise<GetTimestampedLyricsResponse> {\n return this.http.request<GetTimestampedLyricsResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedReplaceSectionResponse, ReplaceSectionParams, ReplaceSectionResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/replace_section';\n\nexport class ReplaceSection {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ReplaceSectionParams, options?: RequestOptions & PollingOptions): Promise<CompletedReplaceSectionResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ReplaceSectionResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedReplaceSectionResponse;\n }\n\n async create(params: ReplaceSectionParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ReplaceSectionResponse> {\n return this.http.request<ReplaceSectionResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCreateMashupResponse, CreateMashupParams, CreateMashupResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/create_mashup';\n\nexport class CreateMashup {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CreateMashupParams, options?: RequestOptions & PollingOptions): Promise<CompletedCreateMashupResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CreateMashupResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCreateMashupResponse;\n }\n\n async create(params: CreateMashupParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CreateMashupResponse> {\n return this.http.request<CreateMashupResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToSoundResponse, TextToSoundParams, TextToSoundResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_sound';\n\nexport class TextToSound {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToSoundParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToSoundResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToSoundResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToSoundResponse;\n }\n\n async create(params: TextToSoundParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToSoundResponse> {\n return this.http.request<TextToSoundResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GeneratePersonaParams, GeneratePersonaResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_persona';\n\nexport class GeneratePersona {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GeneratePersonaParams, options?: RequestOptions): Promise<GeneratePersonaResponse> {\n return this.http.request<GeneratePersonaResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { BoostStyleParams, BoostStyleResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/boost_style';\n\nexport class BoostStyle {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: BoostStyleParams, options?: RequestOptions): Promise<BoostStyleResponse> {\n return this.http.request<BoostStyleResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n TaskCreateResponse,\n ValidationPhraseResponse,\n VoiceToValidationPhraseParams,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/voice_to_validation_phrase';\n\nexport class VoiceToValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VoiceToValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n async create(params: VoiceToValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n RegenerateValidationPhraseParams,\n TaskCreateResponse,\n ValidationPhraseResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/regenerate_validation_phrase';\n\nexport class RegenerateValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: RegenerateValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n async create(params: RegenerateValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedVoiceGenerationResponse,\n GenerateVoiceParams,\n TaskCreateResponse,\n VoiceGenerationResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_voice';\n\nexport class GenerateVoice {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateVoiceParams, options?: RequestOptions & PollingOptions): Promise<CompletedVoiceGenerationResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VoiceGenerationResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVoiceGenerationResponse;\n }\n\n async create(params: GenerateVoiceParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VoiceGenerationResponse> {\n return this.http.request<VoiceGenerationResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { CheckVoiceParams, CheckVoiceResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/check_voice';\n\nexport class CheckVoice {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CheckVoiceParams, options?: RequestOptions): Promise<CheckVoiceResponse> {\n return this.http.request<CheckVoiceResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAAqD;;;ACCrD,kBAA8B;AAC9B,sBAAkC;AAGlC,IAAM,WAAW;AAEV,IAAM,cAAN,MAAkB;AAAA,EACvB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA2B,SAAkF;AACrH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,mCAAuC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MACzF,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA2B,SAAuD;AAC7F,WAAO,KAAK,KAAK,QAA4B,QAAQ,UAAU;AAAA,MAC7D,UAAM,2BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAwD;AAC5E,WAAO,KAAK,KAAK,QAA6B,OAAO,GAAG,QAAQ,IAAI,EAAE,IAAI;AAAA,MACxE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,cAAN,MAAkB;AAAA,EACvB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA2B,SAAkF;AACrH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAAuC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MACzF,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA2B,SAAuD;AAC7F,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAwD;AAC5E,WAAO,KAAK,KAAK,QAA6B,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MACxE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA+B,SAAsF;AAC7H,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAA2C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC7F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA+B,SAAuD;AACjG,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA4D;AAChF,WAAO,KAAK,KAAK,QAAiC,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MAC5E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA0B,SAAiF;AACnH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAAsC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MACxF,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA0B,SAAuD;AAC5F,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAuD;AAC3E,WAAO,KAAK,KAAK,QAA4B,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MACvE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA+B,SAAsF;AAC7H,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAA2C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC7F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA+B,SAAuD;AACjG,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA4D;AAChF,WAAO,KAAK,KAAK,QAAiC,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MAC5E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,YAAN,MAAgB;AAAA,EACrB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAAyB,SAAgF;AACjH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAAqC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MACvF,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAyB,SAAuD;AAC3F,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAsD;AAC1E,WAAO,KAAK,KAAK,QAA2B,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MACtE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAAkC,SAAyF;AACnI,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAA8C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAChG,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAkC,SAAuD;AACpG,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA+D;AACnF,WAAO,KAAK,KAAK,QAAoC,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MAC/E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA4B,SAAmF;AACvH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAAwC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC1F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA4B,SAAuD;AAC9F,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAyD;AAC7E,WAAO,KAAK,KAAK,QAA8B,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MACzE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,eAA8B;AAC9B,IAAAC,mBAAkC;AAGlC,IAAMC,YAAW;AAEV,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA4B,SAAmF;AACvH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,oCAAwC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC1F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA4B,SAAuD;AAC9F,WAAO,KAAK,KAAK,QAA4B,QAAQA,WAAU;AAAA,MAC7D,UAAM,4BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAyD;AAC7E,WAAO,KAAK,KAAK,QAA8B,OAAO,GAAGA,SAAQ,IAAI,EAAE,IAAI;AAAA,MACzE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAGlC,IAAMC,aAAW;AAEV,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA8B,SAAqF;AAC3H,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAA0C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC5F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA8B,SAAuD;AAChG,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA2D;AAC/E,WAAO,KAAK,KAAK,QAAgC,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MAC3E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAGlC,IAAMC,aAAW;AAEV,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA8B,SAAqF;AAC3H,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAA0C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC5F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA8B,SAAuD;AAChG,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA2D;AAC/E,WAAO,KAAK,KAAK,QAAgC,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MAC3E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,gBAA8B;AAG9B,IAAMC,aAAW;AAEV,IAAM,uBAAN,MAA2B;AAAA,EAChC,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAAoC,SAAiE;AAC7G,WAAO,KAAK,KAAK,QAAsC,QAAQA,YAAU;AAAA,MACvE,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ACdA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAGlC,IAAMC,aAAW;AAEV,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA8B,SAAqF;AAC3H,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAA0C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC5F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA8B,SAAuD;AAChG,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA2D;AAC/E,WAAO,KAAK,KAAK,QAAgC,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MAC3E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAGlC,IAAMC,aAAW;AAEV,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA4B,SAAmF;AACvH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAAwC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC1F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA4B,SAAuD;AAC9F,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAyD;AAC7E,WAAO,KAAK,KAAK,QAA8B,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MACzE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAGlC,IAAMC,aAAW;AAEV,IAAM,cAAN,MAAkB;AAAA,EACvB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA2B,SAAkF;AACrH,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAAuC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MACzF,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA2B,SAAuD;AAC7F,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAAwD;AAC5E,WAAO,KAAK,KAAK,QAA6B,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MACxE,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;AC9BA,IAAAC,gBAA8B;AAG9B,IAAMC,aAAW;AAEV,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA+B,SAA4D;AACnG,WAAO,KAAK,KAAK,QAAiC,QAAQA,YAAU;AAAA,MAClE,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ACdA,IAAAC,gBAA8B;AAG9B,IAAMC,aAAW;AAEV,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA0B,SAAuD;AACzF,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ACdA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAQlC,IAAMC,aAAW;AAEV,IAAM,0BAAN,MAA8B;AAAA,EACnC,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAAuC,SAAuF;AACtI,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAA4C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC9F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAuC,SAAuD;AACzG,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA6D;AACjF,WAAO,KAAK,KAAK,QAAkC,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MAC7E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ACnCA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAQlC,IAAMC,aAAW;AAEV,IAAM,6BAAN,MAAiC;AAAA,EACtC,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA0C,SAAuF;AACzI,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAA4C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC9F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA0C,SAAuD;AAC5G,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA6D;AACjF,WAAO,KAAK,KAAK,QAAkC,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MAC7E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ACnCA,IAAAC,gBAA8B;AAC9B,IAAAC,oBAAkC;AAQlC,IAAMC,aAAW;AAEV,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA6B,SAAsF;AAC3H,UAAM,EAAE,GAAG,IAAI,MAAM,KAAK,OAAO,QAAQ,OAAO;AAChD,UAAM,WAAW,UAAM,qCAA2C,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG;AAAA,MAC7F,WAAW,SAAS;AAAA,MACpB,gBAAgB,SAAS;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAA6B,SAAuD;AAC/F,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,IAAY,SAA4D;AAChF,WAAO,KAAK,KAAK,QAAiC,OAAO,GAAGA,UAAQ,IAAI,EAAE,IAAI;AAAA,MAC5E,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ACnCA,IAAAC,gBAA8B;AAG9B,IAAMC,aAAW;AAEV,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA6B,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAAnB;AAAA,EAE7B,MAAM,IAAI,QAA0B,SAAuD;AACzF,WAAO,KAAK,KAAK,QAA4B,QAAQA,YAAU;AAAA,MAC7D,UAAM,6BAAc,MAAM;AAAA,MAC1B,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AACF;;;ArBwBO,IAAM,aAAN,MAAiB;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YAAY,UAAyB,CAAC,GAAG;AACvC,UAAM,WAAO,gCAAiB,OAAO;AACrC,SAAK,cAAc,IAAI,YAAY,IAAI;AACvC,SAAK,cAAc,IAAI,YAAY,IAAI;AACvC,SAAK,kBAAkB,IAAI,gBAAgB,IAAI;AAC/C,SAAK,aAAa,IAAI,WAAW,IAAI;AACrC,SAAK,kBAAkB,IAAI,gBAAgB,IAAI;AAC/C,SAAK,YAAY,IAAI,UAAU,IAAI;AACnC,SAAK,qBAAqB,IAAI,mBAAmB,IAAI;AACrD,SAAK,eAAe,IAAI,aAAa,IAAI;AACzC,SAAK,eAAe,IAAI,aAAa,IAAI;AACzC,SAAK,iBAAiB,IAAI,eAAe,IAAI;AAC7C,SAAK,iBAAiB,IAAI,eAAe,IAAI;AAC7C,SAAK,uBAAuB,IAAI,qBAAqB,IAAI;AACzD,SAAK,iBAAiB,IAAI,eAAe,IAAI;AAC7C,SAAK,eAAe,IAAI,aAAa,IAAI;AACzC,SAAK,cAAc,IAAI,YAAY,IAAI;AACvC,SAAK,kBAAkB,IAAI,gBAAgB,IAAI;AAC/C,SAAK,aAAa,IAAI,WAAW,IAAI;AACrC,SAAK,0BAA0B,IAAI,wBAAwB,IAAI;AAC/D,SAAK,6BAA6B,IAAI,2BAA2B,IAAI;AACrE,SAAK,gBAAgB,IAAI,cAAc,IAAI;AAC3C,SAAK,aAAa,IAAI,WAAW,IAAI;AAAA,EACvC;AACF;;;ADlFA,IAAAC,gBAYO;","names":["import_core","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","import_internal","ENDPOINT","import_core","ENDPOINT","import_core"]}
|
package/dist/index.mjs
CHANGED
|
@@ -469,6 +469,112 @@ var BoostStyle = class {
|
|
|
469
469
|
}
|
|
470
470
|
};
|
|
471
471
|
|
|
472
|
+
// src/resources/voice-to-validation-phrase.ts
|
|
473
|
+
import { compactParams as compactParams18 } from "@runapi.ai/core";
|
|
474
|
+
import { pollUntilComplete as pollUntilComplete15 } from "@runapi.ai/core/internal";
|
|
475
|
+
var ENDPOINT18 = "/api/v1/suno/voice_to_validation_phrase";
|
|
476
|
+
var VoiceToValidationPhrase = class {
|
|
477
|
+
constructor(http) {
|
|
478
|
+
this.http = http;
|
|
479
|
+
}
|
|
480
|
+
http;
|
|
481
|
+
async run(params, options) {
|
|
482
|
+
const { id } = await this.create(params, options);
|
|
483
|
+
const response = await pollUntilComplete15(() => this.get(id, options), {
|
|
484
|
+
maxWaitMs: options?.maxWaitMs,
|
|
485
|
+
pollIntervalMs: options?.pollIntervalMs
|
|
486
|
+
});
|
|
487
|
+
return response;
|
|
488
|
+
}
|
|
489
|
+
async create(params, options) {
|
|
490
|
+
return this.http.request("POST", ENDPOINT18, {
|
|
491
|
+
body: compactParams18(params),
|
|
492
|
+
...options
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
async get(id, options) {
|
|
496
|
+
return this.http.request("GET", `${ENDPOINT18}/${id}`, {
|
|
497
|
+
...options
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
// src/resources/regenerate-validation-phrase.ts
|
|
503
|
+
import { compactParams as compactParams19 } from "@runapi.ai/core";
|
|
504
|
+
import { pollUntilComplete as pollUntilComplete16 } from "@runapi.ai/core/internal";
|
|
505
|
+
var ENDPOINT19 = "/api/v1/suno/regenerate_validation_phrase";
|
|
506
|
+
var RegenerateValidationPhrase = class {
|
|
507
|
+
constructor(http) {
|
|
508
|
+
this.http = http;
|
|
509
|
+
}
|
|
510
|
+
http;
|
|
511
|
+
async run(params, options) {
|
|
512
|
+
const { id } = await this.create(params, options);
|
|
513
|
+
const response = await pollUntilComplete16(() => this.get(id, options), {
|
|
514
|
+
maxWaitMs: options?.maxWaitMs,
|
|
515
|
+
pollIntervalMs: options?.pollIntervalMs
|
|
516
|
+
});
|
|
517
|
+
return response;
|
|
518
|
+
}
|
|
519
|
+
async create(params, options) {
|
|
520
|
+
return this.http.request("POST", ENDPOINT19, {
|
|
521
|
+
body: compactParams19(params),
|
|
522
|
+
...options
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
async get(id, options) {
|
|
526
|
+
return this.http.request("GET", `${ENDPOINT19}/${id}`, {
|
|
527
|
+
...options
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
// src/resources/generate-voice.ts
|
|
533
|
+
import { compactParams as compactParams20 } from "@runapi.ai/core";
|
|
534
|
+
import { pollUntilComplete as pollUntilComplete17 } from "@runapi.ai/core/internal";
|
|
535
|
+
var ENDPOINT20 = "/api/v1/suno/generate_voice";
|
|
536
|
+
var GenerateVoice = class {
|
|
537
|
+
constructor(http) {
|
|
538
|
+
this.http = http;
|
|
539
|
+
}
|
|
540
|
+
http;
|
|
541
|
+
async run(params, options) {
|
|
542
|
+
const { id } = await this.create(params, options);
|
|
543
|
+
const response = await pollUntilComplete17(() => this.get(id, options), {
|
|
544
|
+
maxWaitMs: options?.maxWaitMs,
|
|
545
|
+
pollIntervalMs: options?.pollIntervalMs
|
|
546
|
+
});
|
|
547
|
+
return response;
|
|
548
|
+
}
|
|
549
|
+
async create(params, options) {
|
|
550
|
+
return this.http.request("POST", ENDPOINT20, {
|
|
551
|
+
body: compactParams20(params),
|
|
552
|
+
...options
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
async get(id, options) {
|
|
556
|
+
return this.http.request("GET", `${ENDPOINT20}/${id}`, {
|
|
557
|
+
...options
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
};
|
|
561
|
+
|
|
562
|
+
// src/resources/check-voice.ts
|
|
563
|
+
import { compactParams as compactParams21 } from "@runapi.ai/core";
|
|
564
|
+
var ENDPOINT21 = "/api/v1/suno/check_voice";
|
|
565
|
+
var CheckVoice = class {
|
|
566
|
+
constructor(http) {
|
|
567
|
+
this.http = http;
|
|
568
|
+
}
|
|
569
|
+
http;
|
|
570
|
+
async run(params, options) {
|
|
571
|
+
return this.http.request("POST", ENDPOINT21, {
|
|
572
|
+
body: compactParams21(params),
|
|
573
|
+
...options
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
};
|
|
577
|
+
|
|
472
578
|
// src/client.ts
|
|
473
579
|
var SunoClient = class {
|
|
474
580
|
textToMusic;
|
|
@@ -488,6 +594,10 @@ var SunoClient = class {
|
|
|
488
594
|
textToSound;
|
|
489
595
|
generatePersona;
|
|
490
596
|
boostStyle;
|
|
597
|
+
voiceToValidationPhrase;
|
|
598
|
+
regenerateValidationPhrase;
|
|
599
|
+
generateVoice;
|
|
600
|
+
checkVoice;
|
|
491
601
|
constructor(options = {}) {
|
|
492
602
|
const http = createHttpClient(options);
|
|
493
603
|
this.textToMusic = new TextToMusic(http);
|
|
@@ -507,6 +617,10 @@ var SunoClient = class {
|
|
|
507
617
|
this.textToSound = new TextToSound(http);
|
|
508
618
|
this.generatePersona = new GeneratePersona(http);
|
|
509
619
|
this.boostStyle = new BoostStyle(http);
|
|
620
|
+
this.voiceToValidationPhrase = new VoiceToValidationPhrase(http);
|
|
621
|
+
this.regenerateValidationPhrase = new RegenerateValidationPhrase(http);
|
|
622
|
+
this.generateVoice = new GenerateVoice(http);
|
|
623
|
+
this.checkVoice = new CheckVoice(http);
|
|
510
624
|
}
|
|
511
625
|
};
|
|
512
626
|
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts","../src/resources/text-to-music.ts","../src/resources/extend-music.ts","../src/resources/generate-artwork.ts","../src/resources/cover-audio.ts","../src/resources/add-instrumental.ts","../src/resources/add-vocals.ts","../src/resources/separate-audio-stems.ts","../src/resources/generate-midi.ts","../src/resources/convert-audio.ts","../src/resources/visualize-music.ts","../src/resources/generate-lyrics.ts","../src/resources/get-timestamped-lyrics.ts","../src/resources/replace-section.ts","../src/resources/create-mashup.ts","../src/resources/text-to-sound.ts","../src/resources/generate-persona.ts","../src/resources/boost-style.ts","../src/index.ts"],"sourcesContent":["import { createHttpClient, type ClientOptions } from '@runapi.ai/core';\nimport { TextToMusic } from './resources/text-to-music';\nimport { ExtendMusic } from './resources/extend-music';\nimport { GenerateArtwork } from './resources/generate-artwork';\nimport { CoverAudio } from './resources/cover-audio';\nimport { AddInstrumental } from './resources/add-instrumental';\nimport { AddVocals } from './resources/add-vocals';\nimport { SeparateAudioStems } from './resources/separate-audio-stems';\nimport { GenerateMidi } from './resources/generate-midi';\nimport { ConvertAudio } from './resources/convert-audio';\nimport { VisualizeMusic } from './resources/visualize-music';\nimport { GenerateLyrics } from './resources/generate-lyrics';\nimport { GetTimestampedLyrics } from './resources/get-timestamped-lyrics';\nimport { ReplaceSection } from './resources/replace-section';\nimport { CreateMashup } from './resources/create-mashup';\nimport { TextToSound } from './resources/text-to-sound';\nimport { GeneratePersona } from './resources/generate-persona';\nimport { BoostStyle } from './resources/boost-style';\n\n/**\n * Suno API client.\n *\n * @example\n * ```typescript\n * const client = new SunoClient({\n * apiKey: 'your-api-key',\n * baseUrl: 'https://runapi.ai',\n * });\n *\n * const result = await client.textToMusic.run({\n * custom_mode: false,\n * instrumental: false,\n * prompt: 'A chill lo-fi beat with soft vocals',\n * model: 'V4_5PLUS',\n * });\n * ```\n */\nexport class SunoClient {\n public readonly textToMusic: TextToMusic;\n public readonly extendMusic: ExtendMusic;\n public readonly generateArtwork: GenerateArtwork;\n public readonly coverAudio: CoverAudio;\n public readonly addInstrumental: AddInstrumental;\n public readonly addVocals: AddVocals;\n public readonly separateAudioStems: SeparateAudioStems;\n public readonly generateMidi: GenerateMidi;\n public readonly convertAudio: ConvertAudio;\n public readonly visualizeMusic: VisualizeMusic;\n public readonly generateLyrics: GenerateLyrics;\n public readonly getTimestampedLyrics: GetTimestampedLyrics;\n public readonly replaceSection: ReplaceSection;\n public readonly createMashup: CreateMashup;\n public readonly textToSound: TextToSound;\n public readonly generatePersona: GeneratePersona;\n public readonly boostStyle: BoostStyle;\n\n constructor(options: ClientOptions = {}) {\n const http = createHttpClient(options);\n this.textToMusic = new TextToMusic(http);\n this.extendMusic = new ExtendMusic(http);\n this.generateArtwork = new GenerateArtwork(http);\n this.coverAudio = new CoverAudio(http);\n this.addInstrumental = new AddInstrumental(http);\n this.addVocals = new AddVocals(http);\n this.separateAudioStems = new SeparateAudioStems(http);\n this.generateMidi = new GenerateMidi(http);\n this.convertAudio = new ConvertAudio(http);\n this.visualizeMusic = new VisualizeMusic(http);\n this.generateLyrics = new GenerateLyrics(http);\n this.getTimestampedLyrics = new GetTimestampedLyrics(http);\n this.replaceSection = new ReplaceSection(http);\n this.createMashup = new CreateMashup(http);\n this.textToSound = new TextToSound(http);\n this.generatePersona = new GeneratePersona(http);\n this.boostStyle = new BoostStyle(http);\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToMusicResponse, TextToMusicParams, TextToMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_music';\n\nexport class TextToMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToMusicResponse;\n }\n\n async create(params: TextToMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToMusicResponse> {\n return this.http.request<TextToMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedExtendMusicResponse, ExtendMusicParams, ExtendMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/extend_music';\n\nexport class ExtendMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ExtendMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedExtendMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ExtendMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedExtendMusicResponse;\n }\n\n async create(params: ExtendMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ExtendMusicResponse> {\n return this.http.request<ExtendMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateArtworkResponse, GenerateArtworkParams, GenerateArtworkResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_artwork';\n\nexport class GenerateArtwork {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateArtworkParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateArtworkResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateArtworkResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateArtworkResponse;\n }\n\n async create(params: GenerateArtworkParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateArtworkResponse> {\n return this.http.request<GenerateArtworkResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCoverAudioResponse, CoverAudioParams, CoverAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/cover_audio';\n\nexport class CoverAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CoverAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedCoverAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CoverAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCoverAudioResponse;\n }\n\n async create(params: CoverAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CoverAudioResponse> {\n return this.http.request<CoverAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddInstrumentalResponse, AddInstrumentalParams, AddInstrumentalResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_instrumental';\n\nexport class AddInstrumental {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddInstrumentalParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddInstrumentalResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddInstrumentalResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddInstrumentalResponse;\n }\n\n async create(params: AddInstrumentalParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddInstrumentalResponse> {\n return this.http.request<AddInstrumentalResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddVocalsResponse, AddVocalsParams, AddVocalsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_vocals';\n\nexport class AddVocals {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddVocalsParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddVocalsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddVocalsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddVocalsResponse;\n }\n\n async create(params: AddVocalsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddVocalsResponse> {\n return this.http.request<AddVocalsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedSeparateAudioStemsResponse, SeparateAudioStemsParams, SeparateAudioStemsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/separate_audio_stems';\n\nexport class SeparateAudioStems {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: SeparateAudioStemsParams, options?: RequestOptions & PollingOptions): Promise<CompletedSeparateAudioStemsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<SeparateAudioStemsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedSeparateAudioStemsResponse;\n }\n\n async create(params: SeparateAudioStemsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<SeparateAudioStemsResponse> {\n return this.http.request<SeparateAudioStemsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateMidiResponse, GenerateMidiParams, GenerateMidiResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_midi';\n\nexport class GenerateMidi {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateMidiParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateMidiResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateMidiResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateMidiResponse;\n }\n\n async create(params: GenerateMidiParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateMidiResponse> {\n return this.http.request<GenerateMidiResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedConvertAudioResponse, ConvertAudioParams, ConvertAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/convert_audio';\n\nexport class ConvertAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ConvertAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedConvertAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ConvertAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedConvertAudioResponse;\n }\n\n async create(params: ConvertAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ConvertAudioResponse> {\n return this.http.request<ConvertAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedVisualizeMusicResponse, VisualizeMusicParams, VisualizeMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/visualize_music';\n\nexport class VisualizeMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VisualizeMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedVisualizeMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VisualizeMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVisualizeMusicResponse;\n }\n\n async create(params: VisualizeMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VisualizeMusicResponse> {\n return this.http.request<VisualizeMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateLyricsResponse, GenerateLyricsParams, GenerateLyricsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_lyrics';\n\nexport class GenerateLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateLyricsParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateLyricsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateLyricsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateLyricsResponse;\n }\n\n async create(params: GenerateLyricsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateLyricsResponse> {\n return this.http.request<GenerateLyricsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GetTimestampedLyricsParams, GetTimestampedLyricsResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/get_timestamped_lyrics';\n\nexport class GetTimestampedLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GetTimestampedLyricsParams, options?: RequestOptions): Promise<GetTimestampedLyricsResponse> {\n return this.http.request<GetTimestampedLyricsResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedReplaceSectionResponse, ReplaceSectionParams, ReplaceSectionResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/replace_section';\n\nexport class ReplaceSection {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ReplaceSectionParams, options?: RequestOptions & PollingOptions): Promise<CompletedReplaceSectionResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ReplaceSectionResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedReplaceSectionResponse;\n }\n\n async create(params: ReplaceSectionParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ReplaceSectionResponse> {\n return this.http.request<ReplaceSectionResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCreateMashupResponse, CreateMashupParams, CreateMashupResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/create_mashup';\n\nexport class CreateMashup {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CreateMashupParams, options?: RequestOptions & PollingOptions): Promise<CompletedCreateMashupResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CreateMashupResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCreateMashupResponse;\n }\n\n async create(params: CreateMashupParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CreateMashupResponse> {\n return this.http.request<CreateMashupResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToSoundResponse, TextToSoundParams, TextToSoundResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_sound';\n\nexport class TextToSound {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToSoundParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToSoundResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToSoundResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToSoundResponse;\n }\n\n async create(params: TextToSoundParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToSoundResponse> {\n return this.http.request<TextToSoundResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GeneratePersonaParams, GeneratePersonaResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_persona';\n\nexport class GeneratePersona {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GeneratePersonaParams, options?: RequestOptions): Promise<GeneratePersonaResponse> {\n return this.http.request<GeneratePersonaResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { BoostStyleParams, BoostStyleResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/boost_style';\n\nexport class BoostStyle {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: BoostStyleParams, options?: RequestOptions): Promise<BoostStyleResponse> {\n return this.http.request<BoostStyleResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","export { SunoClient } from './client';\nexport * from './types';\n\n// Re-export common errors from core for convenience\nexport {\n RunApiError,\n AuthenticationError,\n InsufficientCreditsError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServiceUnavailableError,\n NetworkError,\n TimeoutError,\n TaskTimeoutError,\n TaskFailedError,\n} from '@runapi.ai/core';\n"],"mappings":"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","names":["compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","ENDPOINT","compactParams","ENDPOINT"]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/resources/text-to-music.ts","../src/resources/extend-music.ts","../src/resources/generate-artwork.ts","../src/resources/cover-audio.ts","../src/resources/add-instrumental.ts","../src/resources/add-vocals.ts","../src/resources/separate-audio-stems.ts","../src/resources/generate-midi.ts","../src/resources/convert-audio.ts","../src/resources/visualize-music.ts","../src/resources/generate-lyrics.ts","../src/resources/get-timestamped-lyrics.ts","../src/resources/replace-section.ts","../src/resources/create-mashup.ts","../src/resources/text-to-sound.ts","../src/resources/generate-persona.ts","../src/resources/boost-style.ts","../src/resources/voice-to-validation-phrase.ts","../src/resources/regenerate-validation-phrase.ts","../src/resources/generate-voice.ts","../src/resources/check-voice.ts","../src/index.ts"],"sourcesContent":["import { createHttpClient, type ClientOptions } from '@runapi.ai/core';\nimport { TextToMusic } from './resources/text-to-music';\nimport { ExtendMusic } from './resources/extend-music';\nimport { GenerateArtwork } from './resources/generate-artwork';\nimport { CoverAudio } from './resources/cover-audio';\nimport { AddInstrumental } from './resources/add-instrumental';\nimport { AddVocals } from './resources/add-vocals';\nimport { SeparateAudioStems } from './resources/separate-audio-stems';\nimport { GenerateMidi } from './resources/generate-midi';\nimport { ConvertAudio } from './resources/convert-audio';\nimport { VisualizeMusic } from './resources/visualize-music';\nimport { GenerateLyrics } from './resources/generate-lyrics';\nimport { GetTimestampedLyrics } from './resources/get-timestamped-lyrics';\nimport { ReplaceSection } from './resources/replace-section';\nimport { CreateMashup } from './resources/create-mashup';\nimport { TextToSound } from './resources/text-to-sound';\nimport { GeneratePersona } from './resources/generate-persona';\nimport { BoostStyle } from './resources/boost-style';\nimport { VoiceToValidationPhrase } from './resources/voice-to-validation-phrase';\nimport { RegenerateValidationPhrase } from './resources/regenerate-validation-phrase';\nimport { GenerateVoice } from './resources/generate-voice';\nimport { CheckVoice } from './resources/check-voice';\n\n/**\n * Suno API client.\n *\n * @example\n * ```typescript\n * const client = new SunoClient({\n * apiKey: 'your-api-key',\n * baseUrl: 'https://runapi.ai',\n * });\n *\n * const result = await client.textToMusic.run({\n * prompt: 'A chill lo-fi beat with soft vocals',\n * model: 'suno-v4.5-plus',\n * });\n * ```\n */\nexport class SunoClient {\n public readonly textToMusic: TextToMusic;\n public readonly extendMusic: ExtendMusic;\n public readonly generateArtwork: GenerateArtwork;\n public readonly coverAudio: CoverAudio;\n public readonly addInstrumental: AddInstrumental;\n public readonly addVocals: AddVocals;\n public readonly separateAudioStems: SeparateAudioStems;\n public readonly generateMidi: GenerateMidi;\n public readonly convertAudio: ConvertAudio;\n public readonly visualizeMusic: VisualizeMusic;\n public readonly generateLyrics: GenerateLyrics;\n public readonly getTimestampedLyrics: GetTimestampedLyrics;\n public readonly replaceSection: ReplaceSection;\n public readonly createMashup: CreateMashup;\n public readonly textToSound: TextToSound;\n public readonly generatePersona: GeneratePersona;\n public readonly boostStyle: BoostStyle;\n public readonly voiceToValidationPhrase: VoiceToValidationPhrase;\n public readonly regenerateValidationPhrase: RegenerateValidationPhrase;\n public readonly generateVoice: GenerateVoice;\n public readonly checkVoice: CheckVoice;\n\n constructor(options: ClientOptions = {}) {\n const http = createHttpClient(options);\n this.textToMusic = new TextToMusic(http);\n this.extendMusic = new ExtendMusic(http);\n this.generateArtwork = new GenerateArtwork(http);\n this.coverAudio = new CoverAudio(http);\n this.addInstrumental = new AddInstrumental(http);\n this.addVocals = new AddVocals(http);\n this.separateAudioStems = new SeparateAudioStems(http);\n this.generateMidi = new GenerateMidi(http);\n this.convertAudio = new ConvertAudio(http);\n this.visualizeMusic = new VisualizeMusic(http);\n this.generateLyrics = new GenerateLyrics(http);\n this.getTimestampedLyrics = new GetTimestampedLyrics(http);\n this.replaceSection = new ReplaceSection(http);\n this.createMashup = new CreateMashup(http);\n this.textToSound = new TextToSound(http);\n this.generatePersona = new GeneratePersona(http);\n this.boostStyle = new BoostStyle(http);\n this.voiceToValidationPhrase = new VoiceToValidationPhrase(http);\n this.regenerateValidationPhrase = new RegenerateValidationPhrase(http);\n this.generateVoice = new GenerateVoice(http);\n this.checkVoice = new CheckVoice(http);\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToMusicResponse, TextToMusicParams, TextToMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_music';\n\nexport class TextToMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToMusicResponse;\n }\n\n async create(params: TextToMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToMusicResponse> {\n return this.http.request<TextToMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedExtendMusicResponse, ExtendMusicParams, ExtendMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/extend_music';\n\nexport class ExtendMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ExtendMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedExtendMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ExtendMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedExtendMusicResponse;\n }\n\n async create(params: ExtendMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ExtendMusicResponse> {\n return this.http.request<ExtendMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateArtworkResponse, GenerateArtworkParams, GenerateArtworkResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_artwork';\n\nexport class GenerateArtwork {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateArtworkParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateArtworkResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateArtworkResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateArtworkResponse;\n }\n\n async create(params: GenerateArtworkParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateArtworkResponse> {\n return this.http.request<GenerateArtworkResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCoverAudioResponse, CoverAudioParams, CoverAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/cover_audio';\n\nexport class CoverAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CoverAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedCoverAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CoverAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCoverAudioResponse;\n }\n\n async create(params: CoverAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CoverAudioResponse> {\n return this.http.request<CoverAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddInstrumentalResponse, AddInstrumentalParams, AddInstrumentalResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_instrumental';\n\nexport class AddInstrumental {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddInstrumentalParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddInstrumentalResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddInstrumentalResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddInstrumentalResponse;\n }\n\n async create(params: AddInstrumentalParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddInstrumentalResponse> {\n return this.http.request<AddInstrumentalResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedAddVocalsResponse, AddVocalsParams, AddVocalsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/add_vocals';\n\nexport class AddVocals {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: AddVocalsParams, options?: RequestOptions & PollingOptions): Promise<CompletedAddVocalsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<AddVocalsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedAddVocalsResponse;\n }\n\n async create(params: AddVocalsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<AddVocalsResponse> {\n return this.http.request<AddVocalsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedSeparateAudioStemsResponse, SeparateAudioStemsParams, SeparateAudioStemsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/separate_audio_stems';\n\nexport class SeparateAudioStems {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: SeparateAudioStemsParams, options?: RequestOptions & PollingOptions): Promise<CompletedSeparateAudioStemsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<SeparateAudioStemsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedSeparateAudioStemsResponse;\n }\n\n async create(params: SeparateAudioStemsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<SeparateAudioStemsResponse> {\n return this.http.request<SeparateAudioStemsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateMidiResponse, GenerateMidiParams, GenerateMidiResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_midi';\n\nexport class GenerateMidi {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateMidiParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateMidiResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateMidiResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateMidiResponse;\n }\n\n async create(params: GenerateMidiParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateMidiResponse> {\n return this.http.request<GenerateMidiResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedConvertAudioResponse, ConvertAudioParams, ConvertAudioResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/convert_audio';\n\nexport class ConvertAudio {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ConvertAudioParams, options?: RequestOptions & PollingOptions): Promise<CompletedConvertAudioResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ConvertAudioResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedConvertAudioResponse;\n }\n\n async create(params: ConvertAudioParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ConvertAudioResponse> {\n return this.http.request<ConvertAudioResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedVisualizeMusicResponse, VisualizeMusicParams, VisualizeMusicResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/visualize_music';\n\nexport class VisualizeMusic {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VisualizeMusicParams, options?: RequestOptions & PollingOptions): Promise<CompletedVisualizeMusicResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VisualizeMusicResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVisualizeMusicResponse;\n }\n\n async create(params: VisualizeMusicParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VisualizeMusicResponse> {\n return this.http.request<VisualizeMusicResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedGenerateLyricsResponse, GenerateLyricsParams, GenerateLyricsResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_lyrics';\n\nexport class GenerateLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateLyricsParams, options?: RequestOptions & PollingOptions): Promise<CompletedGenerateLyricsResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<GenerateLyricsResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedGenerateLyricsResponse;\n }\n\n async create(params: GenerateLyricsParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<GenerateLyricsResponse> {\n return this.http.request<GenerateLyricsResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GetTimestampedLyricsParams, GetTimestampedLyricsResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/get_timestamped_lyrics';\n\nexport class GetTimestampedLyrics {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GetTimestampedLyricsParams, options?: RequestOptions): Promise<GetTimestampedLyricsResponse> {\n return this.http.request<GetTimestampedLyricsResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedReplaceSectionResponse, ReplaceSectionParams, ReplaceSectionResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/replace_section';\n\nexport class ReplaceSection {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: ReplaceSectionParams, options?: RequestOptions & PollingOptions): Promise<CompletedReplaceSectionResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ReplaceSectionResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedReplaceSectionResponse;\n }\n\n async create(params: ReplaceSectionParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ReplaceSectionResponse> {\n return this.http.request<ReplaceSectionResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedCreateMashupResponse, CreateMashupParams, CreateMashupResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/create_mashup';\n\nexport class CreateMashup {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CreateMashupParams, options?: RequestOptions & PollingOptions): Promise<CompletedCreateMashupResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<CreateMashupResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedCreateMashupResponse;\n }\n\n async create(params: CreateMashupParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<CreateMashupResponse> {\n return this.http.request<CreateMashupResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type { CompletedTextToSoundResponse, TextToSoundParams, TextToSoundResponse, TaskCreateResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/text_to_sound';\n\nexport class TextToSound {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: TextToSoundParams, options?: RequestOptions & PollingOptions): Promise<CompletedTextToSoundResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<TextToSoundResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedTextToSoundResponse;\n }\n\n async create(params: TextToSoundParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<TextToSoundResponse> {\n return this.http.request<TextToSoundResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { GeneratePersonaParams, GeneratePersonaResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_persona';\n\nexport class GeneratePersona {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GeneratePersonaParams, options?: RequestOptions): Promise<GeneratePersonaResponse> {\n return this.http.request<GeneratePersonaResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { BoostStyleParams, BoostStyleResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/boost_style';\n\nexport class BoostStyle {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: BoostStyleParams, options?: RequestOptions): Promise<BoostStyleResponse> {\n return this.http.request<BoostStyleResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n TaskCreateResponse,\n ValidationPhraseResponse,\n VoiceToValidationPhraseParams,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/voice_to_validation_phrase';\n\nexport class VoiceToValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: VoiceToValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n async create(params: VoiceToValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedValidationPhraseResponse,\n RegenerateValidationPhraseParams,\n TaskCreateResponse,\n ValidationPhraseResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/regenerate_validation_phrase';\n\nexport class RegenerateValidationPhrase {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: RegenerateValidationPhraseParams, options?: RequestOptions & PollingOptions): Promise<CompletedValidationPhraseResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<ValidationPhraseResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedValidationPhraseResponse;\n }\n\n async create(params: RegenerateValidationPhraseParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<ValidationPhraseResponse> {\n return this.http.request<ValidationPhraseResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions, PollingOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport { pollUntilComplete } from '@runapi.ai/core/internal';\nimport type {\n CompletedVoiceGenerationResponse,\n GenerateVoiceParams,\n TaskCreateResponse,\n VoiceGenerationResponse,\n} from '../types';\n\nconst ENDPOINT = '/api/v1/suno/generate_voice';\n\nexport class GenerateVoice {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: GenerateVoiceParams, options?: RequestOptions & PollingOptions): Promise<CompletedVoiceGenerationResponse> {\n const { id } = await this.create(params, options);\n const response = await pollUntilComplete<VoiceGenerationResponse>(() => this.get(id, options), {\n maxWaitMs: options?.maxWaitMs,\n pollIntervalMs: options?.pollIntervalMs,\n });\n return response as CompletedVoiceGenerationResponse;\n }\n\n async create(params: GenerateVoiceParams, options?: RequestOptions): Promise<TaskCreateResponse> {\n return this.http.request<TaskCreateResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n\n async get(id: string, options?: RequestOptions): Promise<VoiceGenerationResponse> {\n return this.http.request<VoiceGenerationResponse>('GET', `${ENDPOINT}/${id}`, {\n ...options,\n });\n }\n}\n","import type { HttpClient, RequestOptions } from '@runapi.ai/core';\nimport { compactParams } from '@runapi.ai/core';\nimport type { CheckVoiceParams, CheckVoiceResponse } from '../types';\n\nconst ENDPOINT = '/api/v1/suno/check_voice';\n\nexport class CheckVoice {\n constructor(private readonly http: HttpClient) {}\n\n async run(params: CheckVoiceParams, options?: RequestOptions): Promise<CheckVoiceResponse> {\n return this.http.request<CheckVoiceResponse>('POST', ENDPOINT, {\n body: compactParams(params),\n ...options,\n });\n }\n}\n","export { SunoClient } from './client';\nexport * from './types';\n\n// Re-export common errors from core for convenience\nexport {\n RunApiError,\n AuthenticationError,\n InsufficientCreditsError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServiceUnavailableError,\n NetworkError,\n TimeoutError,\n TaskTimeoutError,\n TaskFailedError,\n} from '@runapi.ai/core';\n"],"mappings":"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","names":["compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","ENDPOINT","compactParams","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","pollUntilComplete","ENDPOINT","compactParams","ENDPOINT"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runapi.ai/suno",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "RunAPI Suno SDK for JavaScript, Ruby, and Go",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -25,27 +25,10 @@
|
|
|
25
25
|
"build": "tsup",
|
|
26
26
|
"test": "vitest run",
|
|
27
27
|
"typecheck": "tsc --noEmit",
|
|
28
|
-
"clean": "rm -rf dist"
|
|
29
|
-
"test:simple": "dotenv -e manual-tests/.env -- tsx manual-tests/test-generation-simple.ts",
|
|
30
|
-
"test:custom": "dotenv -e manual-tests/.env -- tsx manual-tests/test-generation-custom.ts",
|
|
31
|
-
"test:covers": "dotenv -e manual-tests/.env -- tsx manual-tests/test-covers.ts",
|
|
32
|
-
"test:extension": "dotenv -e manual-tests/.env -- tsx manual-tests/test-extension.ts",
|
|
33
|
-
"test:instrumentals": "dotenv -e manual-tests/.env -- tsx manual-tests/test-instrumentals.ts",
|
|
34
|
-
"test:vocals": "dotenv -e manual-tests/.env -- tsx manual-tests/test-vocals.ts",
|
|
35
|
-
"test:vocal-removal": "dotenv -e manual-tests/.env -- tsx manual-tests/test-vocal-removal.ts",
|
|
36
|
-
"test:conversions": "dotenv -e manual-tests/.env -- tsx manual-tests/test-conversions.ts",
|
|
37
|
-
"test:music-videos": "dotenv -e manual-tests/.env -- tsx manual-tests/test-music-videos.ts",
|
|
38
|
-
"test:lyrics": "dotenv -e manual-tests/.env -- tsx manual-tests/test-lyrics.ts",
|
|
39
|
-
"test:timestamped-lyrics": "dotenv -e manual-tests/.env -- tsx manual-tests/test-timestamped-lyrics.ts",
|
|
40
|
-
"test:section-replacements": "dotenv -e manual-tests/.env -- tsx manual-tests/test-section-replacements.ts",
|
|
41
|
-
"test:personas-styles": "dotenv -e manual-tests/.env -- tsx manual-tests/test-personas-styles.ts",
|
|
42
|
-
"test:midi": "dotenv -e manual-tests/.env -- tsx manual-tests/test-midi.ts",
|
|
43
|
-
"test:errors": "dotenv -e manual-tests/.env -- tsx manual-tests/test-error-handling.ts",
|
|
44
|
-
"test:all": "dotenv -e manual-tests/.env -- tsx manual-tests/test-all.ts",
|
|
45
|
-
"test:manual": "npm run test:all"
|
|
28
|
+
"clean": "rm -rf dist"
|
|
46
29
|
},
|
|
47
30
|
"dependencies": {
|
|
48
|
-
"@runapi.ai/core": "^0.2.
|
|
31
|
+
"@runapi.ai/core": "^0.2.5"
|
|
49
32
|
},
|
|
50
33
|
"devDependencies": {
|
|
51
34
|
"@types/node": "^20.0.0",
|