UNPKG

n8n-nodes-nextcloud-tables

Version:

Production-Ready n8n Node fΓΌr Nextcloud Tables - VollstΓ€ndige API-Abdeckung mit erweiterten Filtern, Multi-Column-Sorting, CSV-Import und professioneller Datenvalidierung

284 lines β€’ 9.01 kB
"use strict"; /** * πŸ› Debug-Helper fΓΌr Nextcloud Tables n8n-Node * Zentrale Debug-Infrastruktur mit Kategorisierung und Inventar */ Object.defineProperty(exports, "__esModule", { value: true }); exports.registerDebugPoints = exports.DebugHelper = exports.DebugInventory = void 0; /** * πŸ—‚οΈ Debug-Inventar - Alle Debug-Points registriert */ class DebugInventory { /** * Debug-Point registrieren */ static register(entry) { this.entries.set(entry.id, entry); } /** * Alle Debug-Points abrufen */ static getAll() { return Array.from(this.entries.values()); } /** * Debug-Points nach Kategorie filtern */ static getByCategory(category) { return this.getAll().filter(entry => entry.category === category); } /** * Debug-Points nach Test-Phase filtern */ static getByPhase(phase) { return this.getAll().filter(entry => entry.testPhase === phase); } /** * Debug-Point aktivieren/deaktivieren */ static setEnabled(id, enabled) { const entry = this.entries.get(id); if (entry) { entry.enabled = enabled; } } /** * Kategorie komplett aktivieren/deaktivieren */ static setCategoryEnabled(category, enabled) { this.getByCategory(category).forEach(entry => { entry.enabled = enabled; }); } /** * Markdown-Report generieren */ static generateReport() { const categories = [...new Set(this.getAll().map(e => e.category))]; let report = '# πŸ› Debug-Inventar - Nextcloud Tables n8n-Node\n\n'; report += `**Gesamt Debug-Points:** ${this.getAll().length}\n\n`; categories.forEach(category => { const entries = this.getByCategory(category); const enabledCount = entries.filter(e => e.enabled).length; report += `## πŸ“‚ ${category.toUpperCase()} (${enabledCount}/${entries.length} aktiv)\n\n`; entries.forEach(entry => { const status = entry.enabled ? 'βœ…' : '❌'; const phase = entry.testPhase ? ` [${entry.testPhase}]` : ''; report += `- ${status} **${entry.id}** - ${entry.description} ${phase}\n`; report += ` - πŸ“ Location: \`${entry.location}\`\n`; report += ` - 🏷️ Level: ${entry.level}\n\n`; }); }); return report; } } exports.DebugInventory = DebugInventory; DebugInventory.entries = new Map(); /** * πŸ› Debug-Helper Hauptklasse */ class DebugHelper { /** * Debug-System global aktivieren/deaktivieren */ static setEnabled(enabled) { this.isEnabled = enabled; } /** * Minimum Log-Level setzen */ static setMinLevel(level) { this.minLevel = level; } /** * Debug-Message ausgeben */ static log(id, message, data, category, level = 'DEBUG') { if (!this.isEnabled) return; const entry = DebugInventory.getAll().find(e => e.id === id); if (entry && !entry.enabled) return; if (!this.shouldLog(level)) return; const timestamp = new Date().toISOString(); const categoryTag = category ? `[${category.toUpperCase()}]` : ''; const prefix = `πŸ› ${timestamp} ${categoryTag} [${level}] ${id}:`; console.log(prefix, message); if (data !== undefined) { console.log('πŸ“Š Data:', JSON.stringify(data, null, 2)); } } /** * API-Request Debug */ static logApiRequest(method, url, data) { this.log('api-request', `${method} ${url}`, data, 'api', 'INFO'); } /** * API-Response Debug */ static logApiResponse(method, url, status, data) { this.log('api-response', `${method} ${url} - Status: ${status}`, data, 'api', 'INFO'); } /** * Resource Locator Debug */ static logResourceLocator(type, value) { this.log('resource-locator', `Resource Locator: ${type}`, value, 'resource-locator', 'DEBUG'); } /** * Validation Debug */ static logValidation(field, value, result, error) { this.log('validation', `Validation ${field}: ${result ? 'βœ… PASS' : '❌ FAIL'}`, { value, error }, 'validation', 'DEBUG'); } /** * Row Operation Debug */ static logRowOperation(operation, tableId, data) { this.log('row-operation', `Row ${operation} - Table ${tableId}`, data, 'row-operations', 'INFO'); } /** * Share Operation Debug */ static logShareOperation(operation, shareType, receiver) { this.log('share-operation', `Share ${operation} - Type: ${shareType}, Receiver: ${receiver}`, undefined, 'share-operations', 'INFO'); } /** * Error Debug */ static logError(context, error) { this.log('error', `Error in ${context}`, { message: error.message, stack: error.stack, name: error.name }, 'error-handling', 'ERROR'); } /** * Performance Debug */ static logPerformance(operation, startTime, additionalData) { const duration = Date.now() - startTime; this.log('performance', `${operation} completed in ${duration}ms`, additionalData, 'api', 'DEBUG'); } /** * Load Options Debug */ static logLoadOptions(method, resultCount, data) { this.log('load-options', `Load Options ${method}: ${resultCount} items`, data, 'resource-locator', 'DEBUG'); } /** * PrΓΌft ob Log-Level ausgegeben werden soll */ static shouldLog(level) { const levels = { 'ERROR': 0, 'WARN': 1, 'INFO': 2, 'DEBUG': 3, 'TRACE': 4 }; return levels[level] <= levels[this.minLevel]; } } exports.DebugHelper = DebugHelper; DebugHelper.isEnabled = true; DebugHelper.minLevel = 'DEBUG'; /** * πŸ—‚οΈ Debug-Points registrieren */ function registerDebugPoints() { // API Debug Points DebugInventory.register({ id: 'api-request', category: 'api', level: 'INFO', description: 'API-Requests verfolgen', location: 'api.helper.ts - makeApiRequest()', enabled: true, testPhase: 'testing' }); DebugInventory.register({ id: 'api-response', category: 'api', level: 'INFO', description: 'API-Responses verfolgen', location: 'api.helper.ts - makeApiRequest()', enabled: true, testPhase: 'testing' }); // Resource Locator Debug Points DebugInventory.register({ id: 'resource-locator', category: 'resource-locator', level: 'DEBUG', description: 'Resource Locator Werte debuggen', location: 'api.helper.ts - getResourceId()', enabled: true, testPhase: 'development' }); DebugInventory.register({ id: 'load-options', category: 'resource-locator', level: 'DEBUG', description: 'Load Options Methoden debuggen', location: 'node.methods.ts - NodeLoadOptions', enabled: true, testPhase: 'testing' }); // Validation Debug Points DebugInventory.register({ id: 'validation', category: 'validation', level: 'DEBUG', description: 'Datenvalidierung verfolgen', location: 'data.formatter.ts - formatColumnValue()', enabled: true, testPhase: 'development' }); // Row Operations Debug Points DebugInventory.register({ id: 'row-operation', category: 'row-operations', level: 'INFO', description: 'Zeilen-Operationen verfolgen', location: 'row.handler.ts - create/update/delete/get', enabled: true, testPhase: 'testing' }); // Share Operations Debug Points DebugInventory.register({ id: 'share-operation', category: 'share-operations', level: 'INFO', description: 'Share-Operationen verfolgen', location: 'share.handler.ts - create/update/delete', enabled: true, testPhase: 'testing' }); // Error Handling Debug Points DebugInventory.register({ id: 'error', category: 'error-handling', level: 'ERROR', description: 'Fehlerbehandlung verfolgen', location: 'api.helper.ts - handleApiError()', enabled: true, testPhase: 'production' }); // Performance Debug Points DebugInventory.register({ id: 'performance', category: 'api', level: 'DEBUG', description: 'Performance-Metriken sammeln', location: 'Verschiedene Handler', enabled: false, testPhase: 'development' }); } exports.registerDebugPoints = registerDebugPoints; // Debug-Points beim Import registrieren registerDebugPoints(); //# sourceMappingURL=debug.helper.js.map