Files
add-to-project/fix-regex.js

48 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
/**
* Fix for misleading operator precedence in @octokit/request regex
* Changes /^text\/|charset=utf-8$/ to /^text\/|charset=utf-8/
*/
const fs = require('fs')
const filesToFix = [
'node_modules/@actions/github/node_modules/@octokit/request/dist-src/fetch-wrapper.js',
'node_modules/@actions/github/node_modules/@octokit/request/dist-node/index.js',
'node_modules/@actions/github/node_modules/@octokit/request/dist-web/index.js',
]
process.stdout.write('🔧 Applying regex fix for @octokit/request...\n')
let filesFixed = 0
for (const filePath of filesToFix) {
if (fs.existsSync(filePath)) {
try {
let content = fs.readFileSync(filePath, 'utf8')
const originalContent = content
// Fix the problematic regex pattern - replace the end anchor version with the fixed version
content = content.replace(/^text\/|charset=utf-8$\//g, '/^(text\/|charset=utf-8)$/')
if (content !== originalContent) {
fs.writeFileSync(filePath, content, 'utf8')
process.stdout.write(`✅ Fixed: ${filePath}\n`)
filesFixed++
} else {
process.stdout.write(` No changes needed: ${filePath}\n`)
}
} catch (error) {
process.stderr.write(`❌ Error fixing ${filePath}: ${error.message}\n`)
}
} else {
process.stdout.write(`⚠️ File not found: ${filePath}\n`)
}
}
process.stdout.write(`\n🎉 Fix complete! ${filesFixed} files updated.\n`)
if (filesFixed > 0) {
process.stdout.write('Run "npm run build:package" to rebuild with the fix.\n')
}