#!/usr/bin/env node
/**
* Patch script for puppeteer-screen-recorder
*
* This script patches the peerDependencies in puppeteer-screen-recorder's package.json
* to use brave-real-puppeteer-core instead of the old puppeteer@19.0.0
*
* Runs automatically after npm install via postinstall hook
*/
const fs = require('fs');
const path = require('path');
// Path to puppeteer-screen-recorder's package.json
const packagePath = path.join(
process.cwd(),
'node_modules',
'puppeteer-screen-recorder',
'package.json'
);
// Skip if package doesn't exist
if (!fs.existsSync(packagePath)) {
console.log('âšī¸ puppeteer-screen-recorder not found, skipping patch');
process.exit(0);
}
try {
console.log('đ§ Patching puppeteer-screen-recorder peerDependencies...');
// Read the package.json
const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
// Check if patch is needed
if (packageJson.peerDependencies && packageJson.peerDependencies.puppeteer) {
const currentValue = packageJson.peerDependencies.puppeteer;
const targetValue = 'npm:brave-real-puppeteer-core@latest';
// Always update to ensure it's using @latest tag (not @>=24.0.0)
if (currentValue !== targetValue) {
// Update to brave-real-puppeteer-core with latest tag
packageJson.peerDependencies.puppeteer = targetValue;
// Write back to file
fs.writeFileSync(packagePath, JSON.stringify(packageJson, null, 2), 'utf8');
console.log(' â puppeteer-screen-recorder patched successfully');
console.log(' â peerDependencies.puppeteer: npm:brave-real-puppeteer-core@latest');
} else {
console.log(' â puppeteer-screen-recorder already patched');
}
} else {
console.log(' â ī¸ No puppeteer peerDependency found');
}
} catch (error) {
console.error('â ī¸ Failed to patch puppeteer-screen-recorder:', error.message);
console.log('âšī¸ Continuing anyway...');
process.exit(0); // Don't fail the install
}