@sun-asterisk/sunlint 1.3.1 → 1.3.2
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 +47 -0
- package/CONTRIBUTING.md +210 -1691
- package/config/rule-analysis-strategies.js +17 -1
- package/config/rules/enhanced-rules-registry.json +369 -1135
- package/config/rules/rules-registry-generated.json +1 -1
- package/core/enhanced-rules-registry.js +2 -1
- package/core/semantic-engine.js +15 -3
- package/core/semantic-rule-base.js +4 -2
- package/engines/heuristic-engine.js +65 -4
- 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 +1 -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/index.js +5 -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/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/consolidate-config.js +116 -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
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
module.exports = {
|
|
7
7
|
// Rules that benefit significantly from AST analysis
|
|
8
8
|
astPreferred: {
|
|
9
|
+
'C003': {
|
|
10
|
+
reason: 'Variable naming requires context awareness (types, scopes, conventions)',
|
|
11
|
+
methods: ['ast', 'regex'],
|
|
12
|
+
accuracy: { ast: 95, regex: 75 }
|
|
13
|
+
},
|
|
9
14
|
'C010': {
|
|
10
15
|
reason: 'Block nesting requires precise scope tracking',
|
|
11
16
|
methods: ['ast', 'regex'],
|
|
@@ -46,6 +51,11 @@ module.exports = {
|
|
|
46
51
|
methods: ['regex'],
|
|
47
52
|
accuracy: { regex: 95 }
|
|
48
53
|
},
|
|
54
|
+
'C002': {
|
|
55
|
+
reason: 'Duplicate code detection requires cross-file analysis',
|
|
56
|
+
methods: ['regex'],
|
|
57
|
+
accuracy: { regex: 85 }
|
|
58
|
+
},
|
|
49
59
|
'C043': {
|
|
50
60
|
reason: 'Console/print detection via simple patterns',
|
|
51
61
|
methods: ['regex'],
|
|
@@ -60,6 +70,12 @@ module.exports = {
|
|
|
60
70
|
|
|
61
71
|
// Rules that require hybrid approach
|
|
62
72
|
hybridOptimal: {
|
|
73
|
+
'C018': {
|
|
74
|
+
reason: 'Do not throw generic errors',
|
|
75
|
+
methods: ['semantic', 'regex'],
|
|
76
|
+
strategy: 'semantic-primary-regex-fallback',
|
|
77
|
+
accuracy: { semantic: 90, regex: 70, combined: 95 }
|
|
78
|
+
},
|
|
63
79
|
'C029': {
|
|
64
80
|
reason: 'Catch block analysis needs context + patterns',
|
|
65
81
|
methods: ['ast', 'regex', 'semantic'],
|
|
@@ -106,4 +122,4 @@ module.exports = {
|
|
|
106
122
|
strategy: 'progressive-enhancement'
|
|
107
123
|
}
|
|
108
124
|
}
|
|
109
|
-
};
|
|
125
|
+
};
|