Initial build: SimpleScan Solo v0.1.0 - Freelancer receipt capture Chrome extension
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const secretPatterns = [
|
||||
/sk-[a-zA-Z0-9]{20,}/g,
|
||||
/eyJ[a-zA-Z0-9_-]*\.eyJ[a-zA-Z0-9_-]*/g,
|
||||
/api[_-]?key\s*[:=]\s*['"][a-zA-Z0-9]{16,}['"]/gi,
|
||||
/token\s*[:=]\s*['"][a-zA-Z0-9]{16,}['"]/gi,
|
||||
];
|
||||
|
||||
const filesToCheck = [
|
||||
'src/types.ts', 'src/background.ts', 'src/options.ts',
|
||||
'src/popup/popup.ts', 'src/popup/popup.html', 'src/popup/popup.css',
|
||||
'src/content/email-scanner.ts',
|
||||
'src/utils/storage.ts', 'src/utils/categories.ts', 'src/utils/export.ts',
|
||||
'options.html', 'package.json', 'vite.config.ts',
|
||||
'tsconfig.json', 'tsconfig.test.json', '.gitignore'
|
||||
];
|
||||
|
||||
let found = false;
|
||||
for (const file of filesToCheck) {
|
||||
const fp = path.join(__dirname, '..', file);
|
||||
if (!fs.existsSync(fp)) continue;
|
||||
const content = fs.readFileSync(fp, 'utf8');
|
||||
for (const pattern of secretPatterns) {
|
||||
const matches = content.match(pattern);
|
||||
if (matches) {
|
||||
console.log(`SECRET FOUND in ${file}: ${matches[0].substring(0, 30)}...`);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (found) {
|
||||
console.log('SECRETS DETECTED - aborting');
|
||||
process.exit(1);
|
||||
} else {
|
||||
console.log('No secrets found');
|
||||
process.exit(0);
|
||||
}
|
||||
Reference in New Issue
Block a user