@sun-asterisk/sunlint 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -0
- package/CONTRIBUTING.md +210 -1691
- package/README.md +5 -3
- package/config/rule-analysis-strategies.js +17 -1
- package/config/rules/enhanced-rules-registry.json +506 -1161
- package/config/rules/rules-registry-generated.json +1 -1
- package/core/analysis-orchestrator.js +167 -42
- package/core/auto-performance-manager.js +243 -0
- package/core/cli-action-handler.js +9 -1
- package/core/cli-program.js +19 -5
- package/core/constants/defaults.js +56 -0
- package/core/enhanced-rules-registry.js +2 -1
- package/core/performance-optimizer.js +271 -0
- package/core/semantic-engine.js +15 -3
- package/core/semantic-rule-base.js +4 -2
- package/docs/FILE_LIMITS_COMPLETION_REPORT.md +151 -0
- package/docs/FILE_LIMITS_EXPLANATION.md +190 -0
- package/docs/PERFORMANCE.md +311 -0
- package/docs/PERFORMANCE_MIGRATION_GUIDE.md +368 -0
- package/docs/PERFORMANCE_OPTIMIZATION_PLAN.md +255 -0
- package/docs/QUICK_FILE_LIMITS.md +64 -0
- package/docs/SIMPLIFIED_USAGE_GUIDE.md +208 -0
- package/engines/heuristic-engine.js +247 -9
- package/integrations/eslint/plugin/rules/common/c003-no-vague-abbreviations.js +59 -1
- package/integrations/eslint/plugin/rules/common/c006-function-name-verb-noun.js +26 -1
- package/integrations/eslint/plugin/rules/common/c030-use-custom-error-classes.js +54 -19
- package/origin-rules/common-en.md +11 -7
- package/package.json +2 -1
- package/rules/common/C002_no_duplicate_code/analyzer.js +334 -36
- package/rules/common/C003_no_vague_abbreviations/analyzer.js +220 -35
- package/rules/common/C006_function_naming/analyzer.js +29 -3
- package/rules/common/C010_limit_block_nesting/analyzer.js +181 -337
- package/rules/common/C010_limit_block_nesting/config.json +64 -0
- package/rules/common/C010_limit_block_nesting/regex-based-analyzer.js +379 -0
- package/rules/common/C010_limit_block_nesting/symbol-based-analyzer.js +231 -0
- package/rules/common/C013_no_dead_code/analyzer.js +75 -177
- package/rules/common/C013_no_dead_code/config.json +61 -0
- package/rules/common/C013_no_dead_code/regex-based-analyzer.js +345 -0
- package/rules/common/C013_no_dead_code/symbol-based-analyzer.js +640 -0
- package/rules/common/C014_dependency_injection/analyzer.js +48 -313
- package/rules/common/C014_dependency_injection/config.json +26 -0
- package/rules/common/C014_dependency_injection/symbol-based-analyzer.js +751 -0
- package/rules/common/C018_no_throw_generic_error/analyzer.js +232 -0
- package/rules/common/C018_no_throw_generic_error/config.json +50 -0
- package/rules/common/C018_no_throw_generic_error/regex-based-analyzer.js +387 -0
- package/rules/common/C018_no_throw_generic_error/symbol-based-analyzer.js +314 -0
- package/rules/common/C019_log_level_usage/analyzer.js +110 -317
- package/rules/common/C019_log_level_usage/pattern-analyzer.js +88 -0
- package/rules/common/C019_log_level_usage/system-log-analyzer.js +1267 -0
- package/rules/common/C023_no_duplicate_variable/analyzer.js +180 -0
- package/rules/common/C023_no_duplicate_variable/config.json +50 -0
- package/rules/common/C023_no_duplicate_variable/symbol-based-analyzer.js +158 -0
- package/rules/common/C024_no_scatter_hardcoded_constants/analyzer.js +180 -0
- package/rules/common/C024_no_scatter_hardcoded_constants/config.json +50 -0
- package/rules/common/C024_no_scatter_hardcoded_constants/symbol-based-analyzer.js +181 -0
- package/rules/common/C030_use_custom_error_classes/analyzer.js +200 -0
- package/rules/common/C035_error_logging_context/analyzer.js +3 -1
- package/rules/common/C048_no_bypass_architectural_layers/analyzer.js +180 -0
- package/rules/common/C048_no_bypass_architectural_layers/config.json +50 -0
- package/rules/common/C048_no_bypass_architectural_layers/symbol-based-analyzer.js +235 -0
- package/rules/common/C052_parsing_or_data_transformation/analyzer.js +180 -0
- package/rules/common/C052_parsing_or_data_transformation/config.json +50 -0
- package/rules/common/C052_parsing_or_data_transformation/symbol-based-analyzer.js +132 -0
- package/rules/index.js +7 -1
- package/rules/security/S009_no_insecure_encryption/README.md +158 -0
- package/rules/security/S009_no_insecure_encryption/analyzer.js +319 -0
- package/rules/security/S009_no_insecure_encryption/config.json +55 -0
- package/rules/security/S010_no_insecure_encryption/README.md +224 -0
- package/rules/security/S010_no_insecure_encryption/analyzer.js +493 -0
- package/rules/security/S010_no_insecure_encryption/config.json +48 -0
- package/rules/security/S016_no_sensitive_querystring/STRATEGY.md +149 -0
- package/rules/security/S016_no_sensitive_querystring/analyzer.js +276 -0
- package/rules/security/S016_no_sensitive_querystring/config.json +127 -0
- package/rules/security/S016_no_sensitive_querystring/regex-based-analyzer.js +258 -0
- package/rules/security/S016_no_sensitive_querystring/symbol-based-analyzer.js +495 -0
- package/rules/security/S017_use_parameterized_queries/README.md +128 -0
- package/rules/security/S017_use_parameterized_queries/analyzer.js +286 -0
- package/rules/security/S017_use_parameterized_queries/config.json +109 -0
- package/rules/security/S017_use_parameterized_queries/regex-based-analyzer.js +541 -0
- package/rules/security/S017_use_parameterized_queries/symbol-based-analyzer.js +777 -0
- package/rules/security/S031_secure_session_cookies/README.md +127 -0
- package/rules/security/S031_secure_session_cookies/analyzer.js +245 -0
- package/rules/security/S031_secure_session_cookies/config.json +86 -0
- package/rules/security/S031_secure_session_cookies/regex-based-analyzer.js +196 -0
- package/rules/security/S031_secure_session_cookies/symbol-based-analyzer.js +1084 -0
- package/rules/security/S032_httponly_session_cookies/FRAMEWORK_SUPPORT.md +209 -0
- package/rules/security/S032_httponly_session_cookies/README.md +184 -0
- package/rules/security/S032_httponly_session_cookies/analyzer.js +282 -0
- package/rules/security/S032_httponly_session_cookies/config.json +96 -0
- package/rules/security/S032_httponly_session_cookies/regex-based-analyzer.js +715 -0
- package/rules/security/S032_httponly_session_cookies/symbol-based-analyzer.js +1348 -0
- package/rules/security/S033_samesite_session_cookies/README.md +227 -0
- package/rules/security/S033_samesite_session_cookies/analyzer.js +242 -0
- package/rules/security/S033_samesite_session_cookies/config.json +87 -0
- package/rules/security/S033_samesite_session_cookies/regex-based-analyzer.js +703 -0
- package/rules/security/S033_samesite_session_cookies/symbol-based-analyzer.js +732 -0
- package/rules/security/S034_host_prefix_session_cookies/README.md +204 -0
- package/rules/security/S034_host_prefix_session_cookies/analyzer.js +290 -0
- package/rules/security/S034_host_prefix_session_cookies/config.json +62 -0
- package/rules/security/S034_host_prefix_session_cookies/regex-based-analyzer.js +478 -0
- package/rules/security/S034_host_prefix_session_cookies/symbol-based-analyzer.js +277 -0
- package/rules/security/S035_path_session_cookies/README.md +257 -0
- package/rules/security/S035_path_session_cookies/analyzer.js +316 -0
- package/rules/security/S035_path_session_cookies/config.json +99 -0
- package/rules/security/S035_path_session_cookies/regex-based-analyzer.js +724 -0
- package/rules/security/S035_path_session_cookies/symbol-based-analyzer.js +373 -0
- package/rules/security/S048_no_current_password_in_reset/README.md +222 -0
- package/rules/security/S048_no_current_password_in_reset/analyzer.js +366 -0
- package/rules/security/S048_no_current_password_in_reset/config.json +48 -0
- package/rules/security/S055_content_type_validation/README.md +176 -0
- package/rules/security/S055_content_type_validation/analyzer.js +312 -0
- package/rules/security/S055_content_type_validation/config.json +48 -0
- package/rules/utils/rule-helpers.js +140 -1
- package/scripts/batch-processing-demo.js +334 -0
- package/scripts/consolidate-config.js +116 -0
- package/scripts/performance-test.js +541 -0
- package/scripts/quick-performance-test.js +108 -0
- package/config/rules/S027-categories.json +0 -122
- package/config/rules/rules-registry.json +0 -777
- package/rules/common/C006_function_naming/smart-analyzer.js +0 -503
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,91 @@
|
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
## 🚀 **v1.3.3 - Performance & File Limits Optimization (September 4, 2025)**
|
|
6
|
+
|
|
7
|
+
**Release Date**: September 4, 2025
|
|
8
|
+
**Type**: Performance Enhancement & User Experience
|
|
9
|
+
|
|
10
|
+
### ⚡ **Performance Engineering**
|
|
11
|
+
- **ENHANCED**: Heuristic Engine v4.0 with integrated performance optimizations
|
|
12
|
+
- **Smart file limits**: Auto-detection prevents memory issues
|
|
13
|
+
- **Batch processing**: Optimized rule execution for large projects
|
|
14
|
+
- **Memory management**: Symbol table limits for TypeScript projects
|
|
15
|
+
- **Timeout protection**: Graceful handling of long-running analysis
|
|
16
|
+
|
|
17
|
+
### 🎛️ **CLI Enhancement & Clarity**
|
|
18
|
+
- **CLARIFIED**: File limit options with comprehensive documentation
|
|
19
|
+
- **`--max-files`**: Controls total analysis workload (performance)
|
|
20
|
+
- **`--max-semantic-files`**: Controls TypeScript symbol table memory
|
|
21
|
+
- **Auto-detection**: Smart defaults for 90% of use cases
|
|
22
|
+
- **Manual tuning**: Fine control for enterprise projects
|
|
23
|
+
|
|
24
|
+
### 📚 **Documentation Expansion**
|
|
25
|
+
- **NEW**: [FILE_LIMITS_EXPLANATION.md](./docs/FILE_LIMITS_EXPLANATION.md) - Comprehensive guide (5.7KB)
|
|
26
|
+
- **NEW**: [QUICK_FILE_LIMITS.md](./docs/QUICK_FILE_LIMITS.md) - Quick reference (1.8KB)
|
|
27
|
+
- **ENHANCED**: CLI help with clear usage examples
|
|
28
|
+
- **INTEGRATED**: Performance docs in README.md
|
|
29
|
+
|
|
30
|
+
### 🧠 **Architecture Improvements**
|
|
31
|
+
- **INTEGRATED**: Performance logic into heuristic engine (no separate files)
|
|
32
|
+
- **ENHANCED**: Auto-performance-manager for intelligent limit calculation
|
|
33
|
+
- **OPTIMIZED**: Memory usage patterns for large codebases
|
|
34
|
+
- **TESTED**: GitHub Actions compatibility with resource constraints
|
|
35
|
+
|
|
36
|
+
### 🎯 **User Experience**
|
|
37
|
+
- **90/10 Rule**: Auto-detection works for most cases, manual tuning available
|
|
38
|
+
- **Progressive disclosure**: Quick ref → detailed guide → implementation details
|
|
39
|
+
- **CI/CD Ready**: Optimized for memory-constrained environments
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🏆 **v1.3.2 - Precision Engineering & Rule Maturity (August 21, 2025)**
|
|
44
|
+
|
|
45
|
+
**Release Date**: August 21, 2025
|
|
46
|
+
**Type**: Precision Enhancement & Architecture-Aware Analysis
|
|
47
|
+
|
|
48
|
+
### 🎯 **Precision Engineering Achievements**
|
|
49
|
+
- **BREAKTHROUGH**: Rule **C019** - Log Level Usage
|
|
50
|
+
- **97.5% false positive reduction** across real projects (315+ → 8 violations)
|
|
51
|
+
- **Architecture-aware detection**: Frontend/backend, client/server, test exclusions
|
|
52
|
+
- **Framework-aware patterns**: NestJS DI, Redux slices, ORM operations
|
|
53
|
+
- **Context-aware analysis**: Centralized logging, error handling, internal vs external calls
|
|
54
|
+
- **Production-ready precision**: Only high-value violations remain
|
|
55
|
+
|
|
56
|
+
### 🔧 **Rules Enhanced with Production-Grade Precision**
|
|
57
|
+
- **ENHANCED**: Rule **C002** - Code Organization & Structure
|
|
58
|
+
- **ENHANCED**: Rule **C003** - Function Complexity Management
|
|
59
|
+
- **ENHANCED**: Rule **C006** - Error Handling Patterns
|
|
60
|
+
- **ENHANCED**: Rule **C010** - Performance Optimization
|
|
61
|
+
- **ENHANCED**: Rule **C012** - Security Best Practices
|
|
62
|
+
- **ENHANCED**: Rule **C014** - API Design Standards
|
|
63
|
+
|
|
64
|
+
### 🌟 **New Rules Portfolio**
|
|
65
|
+
- **NEW**: Rule **S005** - Security Vulnerability Detection
|
|
66
|
+
- **NEW**: Rule **S006** - Authentication & Authorization Patterns
|
|
67
|
+
- **NEW**: Rule **S007** - Data Protection & Privacy
|
|
68
|
+
- **NEW**: Rule **S009** - Input Validation & Sanitization
|
|
69
|
+
- **NEW**: Rule **S010** - Cryptographic Implementation
|
|
70
|
+
- **NEW**: Rule **S016** - Secure Communication Protocols
|
|
71
|
+
- **NEW**: Rule **C018** - Code Documentation Standards
|
|
72
|
+
- **NEW**: Rule **C023** - Database Query Optimization
|
|
73
|
+
- **NEW**: Rule **C024** - Memory Management Patterns
|
|
74
|
+
|
|
75
|
+
### 🏗️ **Architecture & Detection Improvements**
|
|
76
|
+
- **Smart exclusion patterns**: Config services, local libraries, internal dependencies
|
|
77
|
+
- **Centralized logging detection**: Redux error handling, API interceptors, global handlers
|
|
78
|
+
- **Duplicate log intelligence**: Different functions, error handling contexts
|
|
79
|
+
- **Business logic awareness**: Higher thresholds for complex functions
|
|
80
|
+
- **Framework-specific patterns**: NestJS, React, Redux, ORM recognition
|
|
81
|
+
|
|
82
|
+
### 📊 **Precision Metrics**
|
|
83
|
+
- **External service calls**: 99.7% false positive elimination
|
|
84
|
+
- **Payment transactions**: Redux slice exclusion, actual processing detection
|
|
85
|
+
- **Duplicate logs**: Context-aware, cross-function intelligent filtering
|
|
86
|
+
- **Log levels**: Architecture-aware suggestions and enforcement
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
5
90
|
## 🚀 **v1.3.1 - Advanced Rules & Performance Optimization (August 18, 2025)**
|
|
6
91
|
|
|
7
92
|
**Release Date**: August 18, 2025
|