UNPKG

n8n-nodes-dataforseo

Version:

DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.

150 lines 6.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataForSeoAiOptimizationApi = void 0; const n8n_workflow_1 = require("n8n-workflow"); const keyword_data_1 = require("./resources/keyword_data"); const keyword_data_2 = require("./execute/keyword_data"); const chat_gpt_1 = require("./execute/chat_gpt"); const chat_gpt_2 = require("./resources/chat_gpt"); const claude_1 = require("./resources/claude"); const claude_2 = require("./execute/claude"); const gemini_1 = require("./execute/gemini"); const gemini_2 = require("./resources/gemini"); const perplexity_1 = require("./execute/perplexity"); const llm_mentions_1 = require("./resources/llm_mentions"); const llm_mentions_2 = require("./execute/llm_mentions"); const perplexity_2 = require("./resources/perplexity"); class DataForSeoAiOptimizationApi { constructor() { this.description = { displayName: 'DataForSEO AI Optimization API', name: 'dataForSeoAiOptimizationApi', icon: 'file:dataforseo.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'DataForSEO', defaults: { name: 'DataForSeo AI Optimization API', }, inputs: ["main"], outputs: ["main"], credentials: [ { name: 'dataForSeoApi', required: true, }, ], requestDefaults: { method: 'POST', baseURL: 'https://api.dataforseo.com/v3', headers: { 'Content-Type': 'application/json', }, }, properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Keyword Data', value: 'keyword_data', }, { name: 'ChatGPT', value: 'chat_gpt', }, { name: 'Claude', value: 'claude', }, { name: 'Gemini', value: 'gemini', }, { name: 'Perplexity', value: 'perplexity', }, { name: 'LLM Mentions', value: 'llm_mentions', } ], default: 'keyword_data', }, ...keyword_data_1.KeywordDataOperations, ...chat_gpt_2.ChatGptOperations, ...claude_1.ClaudeOperations, ...gemini_2.GeminiOperations, ...perplexity_2.PerplexityOperations, ...llm_mentions_1.LlmMentionsOperations ], }; } async execute() { let responseData = []; const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); const mapping = { 'keyword_data': { 'get-ai-keyword-search-volume': keyword_data_2.getAiKeywordSearchVolume }, 'chat_gpt': { 'get-live-chat-gpt-llm-responses': chat_gpt_1.getLiveChatGptLlmResponses, 'get-live-chat-gpt-llm-results-advanced': chat_gpt_1.getLiveChatGptLlmResultsAdvanced, 'get-live-chat-gpt-llm-results-html': chat_gpt_1.getLiveChatGptLlmResultsHTML, 'get-chat-gpt-llm-results-advanced': chat_gpt_1.geChatGptLlmResultsAdvanced, 'get-chat-gpt-llm-results-html': chat_gpt_1.geChatGptLlmResultsHTML }, 'claude': { 'get-live-claude-llm-responses': claude_2.getLiveClaudeLlmResponses, }, 'gemini': { 'get-live-gemini-llm-responses': gemini_1.getLiveGeminiLlmResponses, 'get-live-gemini-llm-scraper-results-advanced': gemini_1.getLiveGeminiLlmScraperResultsAdvanced, 'get-live-gemini-llm-scraper-results-html': gemini_1.getLiveGeminiLlmScraperResultsHTML, 'get-gemini-llm-scraper-results-advanced': gemini_1.getGeminiLlmScraperResultsAdvanced, 'get-gemini-llm-scraper-results-html': gemini_1.getGeminiLlmScraperResultsHTML }, 'perplexity': { 'get-live-perplexity-llm-responses': perplexity_1.getLivePerplexityLlmResponses }, 'llm_mentions': { 'get-live-llm-mentions': llm_mentions_2.getLiveLlmMentions, 'get-live-llm-mentions-top-pages': llm_mentions_2.getLiveLlmMentionsTopPages, 'get-live-llm-mentions-top-domains': llm_mentions_2.getLiveLlmMentionsTopDomains, 'get-live-llm-mentions-aggregated-metrics': llm_mentions_2.getLiveLlmMentionsAggregatedMetrics, 'get-live-llm-mentions-cross-aggregated-metrics': llm_mentions_2.getLiveLlmMentionsCrossAggregatedMetrics } }; const fn = mapping[resource][operation]; if (!fn) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), "Something went wrong"); } try { const items = this.getInputData(); for (let i = 0; i < items.length; i++) { const result = await fn(this, i); responseData.push({ json: result, pairedItem: { item: i } }); } } catch (e) { if (e instanceof n8n_workflow_1.NodeOperationError) { throw e; } else { throw new n8n_workflow_1.NodeOperationError(this.getNode(), e); } } return [this.helpers.returnJsonArray(responseData)]; } } exports.DataForSeoAiOptimizationApi = DataForSeoAiOptimizationApi; //# sourceMappingURL=DataForSeoAiOptimizationApi.node.js.map