@sun-asterisk/sunlint
Version:
☀️ SunLint - Multi-language static analysis tool for code quality and security | Sun* Engineering Standards
59 lines (52 loc) • 1.46 kB
JavaScript
/**
* S004 Dart Analyzer - Sensitive Data Logging Protection
*
* This is a JS wrapper that delegates to DartAnalyzer binary.
* Actual implementation: dart_analyzer/lib/rules/sensitive_data_logging_analyzer.dart
*
* Rule: Prevent logging of sensitive information like passwords, tokens, and payment data
*/
class DartS004Analyzer {
constructor() {
this.ruleId = 'S004';
this.language = 'dart';
}
/**
* Get rule metadata
*/
getMetadata() {
return {
ruleId: 'S004',
name: 'Sensitive Data Logging Protection',
language: 'dart',
delegateTo: 'dart_analyzer',
description: 'Prevent logging of sensitive information without proper redaction'
};
}
/**
* Get default configuration
*/
getConfig() {
return {
sensitivePatterns: [
'password', 'secret', 'token', 'apikey', 'api_key',
'accessToken', 'access_token', 'refreshToken', 'refresh_token',
'credential', 'auth', 'private', 'creditCard', 'credit_card',
'ssn', 'socialSecurity'
],
logMethods: ['print', 'debugPrint', 'log', 'logger'],
severity: 'warning'
};
}
/**
* Analysis is delegated to DartAnalyzer via heuristic-engine.js
*/
async analyze(files, language, options) {
// Delegated to DartAnalyzer binary via heuristic-engine.js
return [];
}
supportsLanguage(language) {
return language === 'dart';
}
}
module.exports = DartS004Analyzer;