UNPKG

n8n-nodes-elevenlabs-langfix

Version:

Complete implementation of ElevenLabs AI voice generation into n8n workflows.

101 lines 3.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadOptions = void 0; async function loadResource(resource) { try { const results = await this.helpers.httpRequest({ url: 'https://api.elevenlabs.io/v1/voice-generation/generate-voice/parameters', }); if (!results[resource] || !Array.isArray(results[resource])) { throw new Error(`Invalid response format for ${resource}`); } return results[resource].map((entry) => ({ name: entry.name, value: entry.code, })); } catch (error) { console.error(`Error loading ${resource}:`, error); throw new Error(`Failed to load ${resource}: ${error.message}`); } } async function loadVoices() { try { const voices = await this.helpers.httpRequestWithAuthentication.call(this, 'elevenLabsApi', { method: 'GET', url: '/voices', }); return voices.voices.map((voice) => ({ name: voice.name, value: voice.voice_id, description: voice.labels.description || voice.category, })); } catch (error) { console.error('Error loading voices:', error); throw new Error(`Failed to load voices: ${error.message}`); } } async function loadModels() { try { const response = await this.helpers.httpRequestWithAuthentication.call(this, 'elevenLabsApi', { method: 'GET', url: '/models', }); if (response && Array.isArray(response)) { return response.map((model) => ({ name: model.name, value: model.model_id, description: model.description, })); } console.warn('API response did not contain models array, using static list'); return getStaticModels(); } catch (error) { console.error('Error loading models:', error); return getStaticModels(); } } function getStaticModels() { return [ { name: 'Turbo V2.5 (Fastest, 32 Languages)', value: 'eleven_turbo_v2_5', description: 'Best for real-time applications, supports 32 languages', }, { name: 'Multilingual V2 (Highest Quality)', value: 'eleven_multilingual_v2', description: 'Most lifelike, best for professional content', }, { name: 'Monolingual V1 (English Only)', value: 'eleven_monolingual_v1', description: 'Legacy model, English language only', }, { name: 'Flash V2.5 (Fast)', value: 'eleven_flash_v2_5', description: 'Fast model with good quality', }, ]; } exports.loadOptions = { async listVoiceGenders() { return await loadResource.call(this, 'genders'); }, async listVoiceAges() { return await loadResource.call(this, 'ages'); }, async listVoiceAccents() { return await loadResource.call(this, 'accents'); }, async listModels() { return await loadModels.call(this); }, async listVoices() { return await loadVoices.call(this); }, }; //# sourceMappingURL=loadOptions.js.map