UNPKG

@sun-asterisk/sunlint

Version:

☀️ SunLint - Multi-language static analysis tool for code quality and security | Sun* Engineering Standards

165 lines (159 loc) 4.61 kB
{ "_description": "ESLint to Heuristic Migration Mapping - Maps ESLint plugin rules to heuristic engine equivalents", "migrations": [ { "eslint_rule": "c006-function-name-verb-noun", "heuristic_rule": "C006_function_naming", "category": "coding", "compatibility": "full", "priority": "high", "status": "completed", "notes": "Direct mapping - heuristic version already exists" }, { "eslint_rule": "c019-log-level-usage", "heuristic_rule": "C019_log_level_usage", "category": "coding", "compatibility": "full", "priority": "high", "status": "completed", "notes": "Direct mapping - heuristic version already exists" }, { "eslint_rule": "c029-catch-block-logging", "heuristic_rule": "C029_catch_block_logging", "category": "coding", "compatibility": "full", "priority": "high", "status": "completed", "notes": "Direct mapping - heuristic version already exists" }, { "eslint_rule": "c031-validation-separation", "heuristic_rule": "C031_validation_separation", "category": "coding", "compatibility": "full", "priority": "high", "status": "completed", "notes": "Direct mapping - heuristic version already exists" }, { "eslint_rule": "c002-no-duplicate-code", "heuristic_rule": "C002_no_duplicate_code", "category": "coding", "compatibility": "partial", "priority": "medium", "status": "pending", "notes": "Requires AST pattern matching for code duplication" }, { "eslint_rule": "c003-no-vague-abbreviations", "heuristic_rule": "C003_no_vague_abbreviations", "category": "coding", "compatibility": "full", "priority": "low", "status": "pending", "notes": "String pattern matching for variable names" }, { "eslint_rule": "s001-fail-securely", "heuristic_rule": "S001_fail_securely", "category": "security", "compatibility": "partial", "priority": "critical", "status": "pending", "notes": "Complex logic analysis required for security patterns" }, { "eslint_rule": "s003-no-unvalidated-redirect", "heuristic_rule": "S003_no_unvalidated_redirect", "category": "security", "compatibility": "full", "priority": "critical", "status": "pending", "notes": "Pattern matching for redirect vulnerabilities" }, { "eslint_rule": "s012-hardcode-secret", "heuristic_rule": "S012_hardcode_secret", "category": "security", "compatibility": "full", "priority": "critical", "status": "pending", "notes": "String pattern matching for hardcoded secrets" }, { "eslint_rule": "t002-interface-prefix-i", "heuristic_rule": "T002_interface_prefix_i", "category": "typescript", "compatibility": "full", "priority": "medium", "status": "pending", "notes": "TypeScript interface naming conventions" }, { "eslint_rule": "t003-ts-ignore-reason", "heuristic_rule": "T003_ts_ignore_reason", "category": "typescript", "compatibility": "full", "priority": "medium", "status": "pending", "notes": "TypeScript comment analysis for @ts-ignore" } ], "migration_stats": { "total_rules": 81, "completed": 4, "pending": 77, "by_category": { "coding": { "total": 22, "completed": 4, "pending": 18 }, "security": { "total": 49, "completed": 0, "pending": 49 }, "typescript": { "total": 10, "completed": 0, "pending": 10 } }, "by_priority": { "critical": 3, "high": 4, "medium": 12, "low": 62 }, "by_compatibility": { "full": 65, "partial": 16, "complex": 0 } }, "migration_phases": { "phase_1": { "name": "Critical Security Rules", "rules": ["S001", "S003", "S012"], "timeline": "Immediate post-ESLint deprecation" }, "phase_2": { "name": "High Priority Coding Rules", "rules": ["C002", "C010", "C014", "C018"], "timeline": "Within 1 month" }, "phase_3": { "name": "TypeScript Rules", "rules": ["T002", "T003", "T004", "T007"], "timeline": "Within 2 months" }, "phase_4": { "name": "Remaining Rules", "rules": "All remaining 70 rules", "timeline": "Within 6 months" } } }