Compare commits

...

3 Commits

Author SHA1 Message Date
Alicia Sykes
145711bdc7 ref: Bump version to 2.0.1 2025-04-12 12:12:51 +01:00
Alicia Sykes
0e4958aa10 security: Replace exec with execFile 2025-04-12 12:11:11 +01:00
Alicia Sykes
99653868c7 ref: Update data-domain 2025-04-03 13:05:33 +01:00
3 changed files with 23 additions and 19 deletions

View File

@@ -1,7 +1,7 @@
import puppeteer from 'puppeteer-core'; import puppeteer from 'puppeteer-core';
import chromium from 'chrome-aws-lambda'; import chromium from 'chrome-aws-lambda';
import middleware from './_common/middleware.js'; import middleware from './_common/middleware.js';
import { exec } from 'child_process'; import { execFile } from 'child_process';
import { promises as fs } from 'fs'; import { promises as fs } from 'fs';
import path from 'path'; import path from 'path';
import pkg from 'uuid'; import pkg from 'uuid';
@@ -20,32 +20,37 @@ const directChromiumScreenshot = async (url) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const chromePath = process.env.CHROME_PATH || '/usr/bin/chromium'; const chromePath = process.env.CHROME_PATH || '/usr/bin/chromium';
const command = `${chromePath} --headless --disable-gpu --no-sandbox --screenshot=${screenshotPath} "${url}"`; const args = [
'--headless',
'--disable-gpu',
'--no-sandbox',
`--screenshot=${screenshotPath}`,
url
];
console.log(`[DIRECT-SCREENSHOT] Executing: ${chromePath} ${args.join(' ')}`);
console.log(`[DIRECT-SCREENSHOT] Executing command: ${command}`); execFile(chromePath, args, async (error, stdout, stderr) => {
exec(command, async (error, stdout, stderr) => {
if (error) { if (error) {
console.error(`[DIRECT-SCREENSHOT] Error executing Chromium: ${error.message}`); console.error(`[DIRECT-SCREENSHOT] Chromium error: ${error.message}`);
return reject(error); return reject(error);
} }
try { try {
// Read screenshot // Read the screenshot file
const screenshotData = await fs.readFile(screenshotPath); const screenshotData = await fs.readFile(screenshotPath);
console.log(`[DIRECT-SCREENSHOT] Read ${screenshotData.length} bytes from screenshot file`); console.log(`[DIRECT-SCREENSHOT] Screenshot read successfully`);
// Convert base64 // Convert to base64
const base64Data = screenshotData.toString('base64'); const base64Data = screenshotData.toString('base64');
// Clean await fs.unlink(screenshotPath).catch(err =>
await fs.unlink(screenshotPath).catch(err =>
console.warn(`[DIRECT-SCREENSHOT] Failed to delete temp file: ${err.message}`) console.warn(`[DIRECT-SCREENSHOT] Failed to delete temp file: ${err.message}`)
); );
resolve(base64Data); resolve(base64Data);
} catch (readError) { } catch (readError) {
console.error(`[DIRECT-SCREENSHOT] Error reading screenshot: ${readError.message}`); console.error(`[DIRECT-SCREENSHOT] Failed reading screenshot: ${readError.message}`);
reject(readError); reject(readError);
} }
}); });

View File

@@ -1,7 +1,7 @@
{ {
"name": "web-check", "name": "web-check",
"type": "module", "type": "module",
"version": "2.0.0", "version": "2.0.1",
"homepage": "https://web-check.xyz", "homepage": "https://web-check.xyz",
"scripts": { "scripts": {
"start": "node server", "start": "node server",

View File

@@ -22,7 +22,7 @@ const siteInfo = {
site: import.meta.env.SITE_URL || 'https://web-check.xyz', site: import.meta.env.SITE_URL || 'https://web-check.xyz',
analytics: { analytics: {
enable: import.meta.env.ENABLE_ANALYTICS, enable: import.meta.env.ENABLE_ANALYTICS,
domain: 'web-check.xyz', domain: 'web-check.as93.net',
script: 'https://no-track.as93.net/js/script.js', script: 'https://no-track.as93.net/js/script.js',
}, },
}; };
@@ -92,8 +92,7 @@ const makeBreadcrumbs = () => {
<!-- Non-tracking hit counter --> <!-- Non-tracking hit counter -->
{analytics.enable && ( {analytics.enable && (
<script defer is:inline type="text/partytown" <script defer data-domain={analytics.domain} src={analytics.script}></script>
data-domain={analytics.domain} src={analytics.script}></script>
)} )}
<!-- Schema.org markup for Google --> <!-- Schema.org markup for Google -->