"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = require("express"); const router = (0, express_1.Router)(); const apiDocumentation = { name: 'Redirect Intelligence v2 API', version: '2.0.0', description: 'Professional redirect tracking and analysis API', baseUrl: process.env.NODE_ENV === 'production' ? 'https://api.urltrackertool.com' : 'http://localhost:3333', endpoints: { health: { method: 'GET', path: '/health', description: 'API health check', response: { status: 'ok', timestamp: '2025-08-19T12:53:08.946Z', version: '2.0.0', environment: 'production' } }, auth: { login: { method: 'POST', path: '/api/v1/auth/login', description: 'User authentication', body: { email: 'user@example.com', password: 'password' } }, register: { method: 'POST', path: '/api/v1/auth/register', description: 'User registration', body: { email: 'user@example.com', name: 'User Name', password: 'password', organizationName: 'My Organization' } } }, tracking: { trackV2: { method: 'POST', path: '/api/v2/track', description: 'Enhanced URL tracking with analysis', body: { url: 'https://example.com', method: 'GET', enableSSLAnalysis: true, enableSEOAnalysis: true, enableSecurityAnalysis: true, maxHops: 10, timeout: 15000 } }, trackLegacy: { method: 'POST', path: '/api/v1/track', description: 'Legacy URL tracking (backward compatibility)', body: { url: 'https://example.com', method: 'GET', userAgent: 'RedirectTracker/2.0' } }, getCheck: { method: 'GET', path: '/api/v2/track/:checkId', description: 'Get tracking check results by ID' } }, analysis: { ssl: { method: 'POST', path: '/api/v2/analyze/ssl', description: 'SSL certificate analysis', body: { url: 'https://example.com' } }, seo: { method: 'POST', path: '/api/v2/analyze/seo', description: 'SEO analysis', body: { url: 'https://example.com' } }, security: { method: 'POST', path: '/api/v2/analyze/security', description: 'Security analysis', body: { url: 'https://example.com' } }, comprehensive: { method: 'POST', path: '/api/v2/analyze/comprehensive', description: 'Comprehensive analysis (SSL + SEO + Security)', body: { url: 'https://example.com' } } }, export: { markdown: { method: 'GET', path: '/api/v2/export/:checkId/markdown', description: 'Export check results as Markdown' }, pdf: { method: 'GET', path: '/api/v2/export/:checkId/pdf', description: 'Export check results as PDF' } }, bulk: { upload: { method: 'POST', path: '/api/v2/bulk/upload', description: 'Upload CSV file for bulk URL tracking', contentType: 'multipart/form-data', body: 'CSV file with url,method,userAgent columns' }, jobs: { method: 'GET', path: '/api/v2/bulk/jobs', description: 'List bulk tracking jobs' } } }, rateLimit: { anonymous: '50 requests per hour', authenticated: '1000 requests per hour' }, authentication: { type: 'JWT (HttpOnly Cookies)', loginRequired: [ '/api/v2/track (enhanced features)', '/api/v2/bulk/*', '/api/v2/export/*', '/api/v1/auth/me' ] } }; router.get('/docs', (req, res) => { const htmlDoc = `
Version: ${apiDocumentation.version}
Base URL: ${apiDocumentation.baseUrl}
${apiDocumentation.description}
/health
Check API health and status
${JSON.stringify(apiDocumentation.endpoints.health.response, null, 2)}
Type: ${apiDocumentation.authentication.type}
/api/v1/auth/login
User authentication
${JSON.stringify(apiDocumentation.endpoints.auth.login.body, null, 2)}
/api/v1/auth/register
User registration
${JSON.stringify(apiDocumentation.endpoints.auth.register.body, null, 2)}
/api/v2/track
Enhanced v2
Advanced URL tracking with SSL, SEO, and Security analysis
${JSON.stringify(apiDocumentation.endpoints.tracking.trackV2.body, null, 2)}
/api/v1/track
Legacy
Basic URL tracking (backward compatibility)
${JSON.stringify(apiDocumentation.endpoints.tracking.trackLegacy.body, null, 2)}
/api/v2/track/:checkId
Get tracking results by check ID
/api/v2/analyze/comprehensive
Complete analysis (SSL + SEO + Security)
${JSON.stringify(apiDocumentation.endpoints.analysis.comprehensive.body, null, 2)}
/api/v2/analyze/ssl
SSL certificate analysis only
/api/v2/analyze/seo
SEO analysis only
/api/v2/analyze/security
Security analysis only
/api/v2/bulk/upload
Auth Required
Upload CSV file for bulk URL tracking
Content-Type: multipart/form-data
File Format: CSV with columns: url, method, userAgent
/api/v2/bulk/jobs
Auth Required
List your bulk tracking jobs
/api/v2/export/:checkId/markdown
Auth Required
Export check results as Markdown report
/api/v2/export/:checkId/pdf
Auth Required
Export check results as PDF report
Anonymous Users: ${apiDocumentation.rateLimit.anonymous}
Authenticated Users: ${apiDocumentation.rateLimit.authenticated}
Main App: https://urltrackertool.com
Full-featured React application with dashboard, tracking interface, and analytics.
🔗 Redirect Intelligence v2 - Professional Redirect Tracking & Analysis Platform