const fs = require('fs'); const path = require('path'); console.log('šŸ” Validating Desktop App Structure...\n'); // Check required files const requiredFiles = [ 'main.js', 'package.json', 'index.html', 'home.html', 'js/script.js', 'js/components.js', 'css/style.css' ]; let allFilesPresent = true; requiredFiles.forEach(file => { const filePath = path.join(__dirname, file); if (fs.existsSync(filePath)) { console.log(`āœ… ${file} - Present`); } else { console.log(`āŒ ${file} - Missing`); allFilesPresent = false; } }); // Check API configuration try { const scriptContent = fs.readFileSync(path.join(__dirname, 'js/script.js'), 'utf8'); if (scriptContent.includes('https://notes.lhamacorp.com/api/notes')) { console.log('āœ… API_BASE - Correctly configured for production'); } else { console.log('āŒ API_BASE - Not configured for production'); allFilesPresent = false; } } catch (error) { console.log('āŒ Could not validate API configuration'); allFilesPresent = false; } // Check package.json scripts try { const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8')); const requiredScripts = ['start', 'build', 'build-all', 'build-win', 'build-mac', 'build-linux']; console.log('\nšŸ“¦ Build Scripts:'); requiredScripts.forEach(script => { if (packageJson.scripts && packageJson.scripts[script]) { console.log(`āœ… npm run ${script} - Available`); } else { console.log(`āŒ npm run ${script} - Missing`); } }); } catch (error) { console.log('āŒ Could not validate package.json'); } // Check if build output exists if (fs.existsSync(path.join(__dirname, 'dist/linux-unpacked/knotes-desktop'))) { console.log('\nšŸ—ļø Build Status:'); console.log('āœ… Linux build - Completed successfully'); console.log('šŸ“‚ Executable: ./dist/linux-unpacked/knotes-desktop'); } console.log('\nšŸŽ‰ Desktop App Validation Complete!'); console.log(allFilesPresent ? 'āœ… All components are properly configured' : 'āŒ Some issues found'); console.log('\nšŸ“‹ Next Steps:'); console.log('1. Run "npm start" on a machine with GUI to test'); console.log('2. Run "npm run build-linux" to create AppImage'); console.log('3. Run "npm run build-win" on Windows to create installer'); console.log('4. Run "npm run build-mac" on macOS to create DMG');