/* eslint-disable no-console */ import fs from 'fs'; import path from 'path'; export class TemplateService { static createFallbackTemplates(templatesDir: string): void { try { fs.mkdirSync(templatesDir, { recursive: true }); const templates = { 'scan-results.html': this.getBasicScanTemplate(), 'crawl-results.html': this.getBasicCrawlTemplate(), 'test-results.html': this.getBasicTestTemplate(), 'test-multiple-results.html': this.getBasicTestMultipleTemplate(), }; for (const [filename, content] of Object.entries(templates)) { const filePath = path.join(templatesDir, filename); if (!fs.existsSync(filePath)) { fs.writeFileSync(filePath, content, 'utf8'); } } console.log(`✅ Created fallback templates in ${templatesDir}`); } catch (error) { console.error(`❌ Failed to create fallback templates: ${error}`); } } private static getBasicScanTemplate(): string { return ` LensCore Scan Results

🔍 LensCore Scan Results

Scan completed at: {{SCAN_TIME}}

Total Pages

{{TOTAL_PAGES}}

Passed Checks

{{PASSED_CHECKS}}

Violations

{{VIOLATIONS}}

{{VIOLATIONS_SECTION}} {{PASSED_CHECKS_SECTION}}
`; } private static getBasicCrawlTemplate(): string { return ` LensCore Crawl Results

🕷️ LensCore Crawl Results

Crawl completed at: {{CRAWL_TIME}}

Discovered Pages

{{CRAWL_TABLE_ROWS}}
`; } private static getBasicTestTemplate(): string { return ` LensCore Test Results

♿ LensCore Test Results

Test completed at: {{TEST_TIME}}

{{VIOLATIONS_SECTION}} {{PASSED_CHECKS_SECTION}}
`; } private static getBasicTestMultipleTemplate(): string { return ` LensCore Multiple Test Results

♿ LensCore Multiple Test Results

Tests completed at: {{TEST_TIME}}

{{MULTIPLE_TEST_SECTIONS}}
`; } }