🏖️ Back to Sand Calculator
🔍 Sandcastle Builder Pro - Source Code
const express = require('express');
// VM2 3.9.16
const { VM } = require('vm2');
const app = express();
const port = 3000;
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static('public'));
// Serve the main page
app.get('/', (req, res) => {
res.sendFile(__dirname + '/public/index.html');
});
// Source code endpoint - show developers how secure we are!
app.get('/source', (req, res) => {
const fs = require('fs');
const sourceCode = fs.readFileSync(__filename, 'utf8');
res.send(`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Source Code - Sandcastle Builder Pro</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
background: linear-gradient(to bottom, #87CEEB 0%, #F4A460 60%, #C2B280 100%);
min-height: 100vh;
padding: 20px;
color: #333;
}
.container {
max-width: 1200px;
margin: 0 auto;
background: rgba(255, 248, 220, 0.95);
border-radius: 15px;
padding: 30px;
box-shadow: 0 10px 40px rgba(139, 69, 19, 0.3);
border: 3px solid #D2B48C;
}
h1 {
color: #A0522D;
margin-bottom: 20px;
text-align: center;
}
.info {
background: #FFE4B5;
padding: 15px;
border-radius: 8px;
margin-bottom: 20px;
border: 2px solid #DEB887;
color: #8B4513;
}
pre {
background: #2d3436;
color: #00ff00;
padding: 20px;
border-radius: 10px;
overflow-x: auto;
font-size: 14px;
line-height: 1.5;
border: 3px solid #654321;
}
.back-btn {
display: inline-block;
margin-bottom: 20px;
padding: 10px 20px;
background: linear-gradient(135deg, #FF8C00 0%, #FF6347 100%);
color: white;
text-decoration: none;
border-radius: 8px;
font-weight: bold;
}
.back-btn:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(255, 140, 0, 0.6);
}
</style>
</head>
<body>
<div class="container">
<a href="/" class="back-btn">🏖️ Back to Sand Calculator</a>
<h1>🔍 Sandcastle Builder Pro - Source Code</h1>
<pre><code>${sourceCode.replace(/</g, '<').replace(/>/g, '>')}</code></pre>
</div>
</body>
</html>
`);
});
// API endpoint to execute code in sandbox
app.post('/api/execute', (req, res) => {
const { code } = req.body;
if (!code) {
return res.status(400).json({
error: 'No code provided',
output: null
});
}
try {
const vm = new VM({
timeout: 1000,
sandbox: {
Math: Math,
Date: Date,
console: {
log: (...args) => args.join(' ')
}
}
});
const result = vm.run(code);
res.json({
success: true,
output: String(result),
message: 'Sandcastle built successfully!'
});
} catch (error) {
res.status(400).json({
error: error.message,
output: null
});
}
});
app.listen(port, '0.0.0.0', () => {
console.log(`🏖️ Sandcastle Builder Pro running on port ${port} 🏰`);
});