const fs = require('fs'); const typesContent = fs.readFileSync('src/types.ts', 'utf8'); const domUtilsContent = fs.readFileSync('src/utils/DOMUtils.ts', 'utf8'); const storageServiceContent = fs.readFileSync('src/services/StorageService.ts', 'utf8'); const messageServiceContent = fs.readFileSync('src/services/MessageService.ts', 'utf8'); const highlightEngineContent = fs.readFileSync('src/content/HighlightEngine.ts', 'utf8'); const contentScriptContent = fs.readFileSync('src/content/ContentScript.ts', 'utf8'); const mainContent = fs.readFileSync('src/main.ts', 'utf8'); function extractDefinitions(content, filename) { // Remove import statements let cleaned = content.replace(/^import\s+.*?;?\s*$/gm, ''); // Remove export keywords but keep the definitions cleaned = cleaned.replace(/^export\s+/gm, ''); // Add a comment header cleaned = `// === ${filename} ===\n${cleaned}\n`; return cleaned; } // Extract and combine all definitions const combinedContent = `// Auto-generated standalone content script // Do not edit this file directly - edit the source files and rebuild ${extractDefinitions(typesContent, 'types.ts')} ${extractDefinitions(domUtilsContent, 'utils/DOMUtils.ts')} ${extractDefinitions(storageServiceContent, 'services/StorageService.ts')} ${extractDefinitions(messageServiceContent, 'services/MessageService.ts')} ${extractDefinitions(highlightEngineContent, 'content/HighlightEngine.ts')} ${extractDefinitions(contentScriptContent, 'content/ContentScript.ts')} ${extractDefinitions(mainContent, 'main.ts')} `; fs.writeFileSync('src/content-standalone.ts', combinedContent); console.log('Generated standalone content script');