@fabriziosalmi/slopless 1.4.1
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/LICENSE +21 -0
- package/README.md +142 -0
- package/dist/engine/api.d.ts +16 -0
- package/dist/engine/api.js +543 -0
- package/dist/index.d.ts +122 -0
- package/dist/index.js +590 -0
- package/package.json +59 -0
- package/rules/VBC-001.yaml +33 -0
- package/rules/VBC-002.yaml +13 -0
- package/rules/VBC-003.yaml +36 -0
- package/rules/VBC-004.yaml +33 -0
- package/rules/VBC-005.yaml +24 -0
- package/rules/VBC-006.yaml +16 -0
- package/rules/VBC-007.yaml +28 -0
- package/rules/VBC-008.yaml +21 -0
- package/rules/VBC-009.yaml +24 -0
- package/rules/VBC-010.yaml +24 -0
- package/rules/VBC-011.yaml +21 -0
- package/rules/VBC-012.yaml +21 -0
- package/rules/VBC-013.yaml +17 -0
- package/rules/VBC-014.yaml +15 -0
- package/rules/VBC-015.yaml +40 -0
- package/rules/VBC-016.yaml +21 -0
- package/rules/VBC-017.yaml +23 -0
- package/rules/VBC-018.yaml +19 -0
- package/rules/VBC-019.yaml +42 -0
- package/rules/VBC-020.yaml +22 -0
- package/rules/VBC-021.yaml +22 -0
- package/rules/VBC-022.yaml +21 -0
- package/rules/VBC-023.yaml +22 -0
- package/rules/VBC-024.yaml +26 -0
- package/rules/VBC-025.yaml +13 -0
- package/rules/VBC-026.yaml +17 -0
- package/rules/VBC-027.yaml +27 -0
- package/rules/VBC-028.yaml +18 -0
- package/rules/VBC-029.yaml +22 -0
- package/rules/VBC-030.yaml +22 -0
- package/rules/VBC-032.yaml +20 -0
- package/rules/VBC-033.yaml +26 -0
- package/rules/VBC-034.yaml +41 -0
- package/rules/VBC-035.yaml +30 -0
- package/rules/VBC-039.yaml +18 -0
- package/rules/VBC-042.yaml +26 -0
- package/rules/VBC-045.yaml +13 -0
- package/rules/VBC-046.yaml +13 -0
- package/rules/VBC-048.yaml +23 -0
- package/rules/VBC-049.yaml +19 -0
- package/rules/VBC-051.yaml +23 -0
- package/rules/VBC-052.yaml +19 -0
- package/rules/VBC-053.yaml +19 -0
- package/rules/VBC-054.yaml +29 -0
- package/rules/VBC-056.yaml +28 -0
- package/rules/VBC-057.yaml +18 -0
- package/rules/VBC-058.yaml +18 -0
- package/rules/VBC-059.yaml +21 -0
- package/rules/VBC-063-B.yaml +15 -0
- package/rules/VBC-063.yaml +18 -0
- package/rules/VBC-065.yaml +33 -0
- package/rules/VBC-066.yaml +16 -0
- package/rules/VBC-068.yaml +21 -0
- package/rules/VBC-070.yaml +19 -0
- package/rules/VBC-077.yaml +35 -0
- package/rules/VBC-079.yaml +18 -0
- package/rules/VBC-080.yaml +18 -0
- package/rules/VBC-084.yaml +22 -0
- package/rules/VBC-086.yaml +22 -0
- package/rules/VBC-090.yaml +28 -0
- package/rules/VBC-096.yaml +19 -0
- package/rules/VBC-097.yaml +21 -0
- package/rules/VBC-098.yaml +18 -0
- package/rules/VBC-101.yaml +23 -0
- package/rules/VBC-102.yaml +20 -0
- package/rules/VBC-103.yaml +35 -0
- package/rules/VBC-104.yaml +24 -0
- package/rules/VBC-106.yaml +14 -0
- package/rules/VBC-112.yaml +20 -0
- package/rules/VBC-113.yaml +19 -0
- package/rules/VBC-117.yaml +21 -0
- package/rules/VBC-123.yaml +29 -0
- package/rules/VBC-131.yaml +20 -0
- package/rules/VBC-150.yaml +27 -0
- package/rules/VBC-153.yaml +21 -0
- package/rules/VBC-158.yaml +16 -0
- package/rules/VBC-161.yaml +27 -0
- package/rules/VBC-172.yaml +25 -0
- package/rules/VBC-197.yaml +22 -0
- package/rules/VBC-201.yaml +35 -0
- package/rules/VBC-206.yaml +19 -0
- package/rules/VBC-208.yaml +27 -0
- package/rules/VBC-212.yaml +19 -0
- package/rules/VBC-215.yaml +24 -0
- package/rules/VBC-305.yaml +20 -0
- package/rules/VBC-324.yaml +24 -0
- package/rules/VBC-334.yaml +23 -0
- package/rules/VBC-338.yaml +32 -0
- package/rules/VBC-340.yaml +22 -0
- package/rules/VBC-344.yaml +19 -0
- package/rules/VBC-347.yaml +21 -0
- package/rules/VBC-348.yaml +19 -0
- package/rules/VBC-385.yaml +21 -0
- package/rules/VBC-398.yaml +22 -0
- package/rules/VBC-401.yaml +12 -0
- package/rules/VBC-414.yaml +23 -0
- package/rules/VBC-421.yaml +20 -0
- package/rules/VBC-501.yaml +18 -0
- package/rules/VBC-502.yaml +23 -0
- package/rules/VBC-503.yaml +18 -0
- package/rules/VBC-504.yaml +20 -0
- package/rules/VBC-800.yaml +17 -0
- package/rules/VBC-901.yaml +48 -0
- package/rules/VBC-902.yaml +19 -0
- package/rules/VBC-903.yaml +17 -0
- package/rules/VBC-904.yaml +21 -0
- package/rules/VBC-905.yaml +17 -0
- package/rules/VBC-906.yaml +29 -0
- package/rules/VBC-907.yaml +24 -0
- package/rules/VBC-908.yaml +22 -0
- package/rules/VBC-909.yaml +21 -0
- package/rules/VBC-910.yaml +18 -0
- package/rules/VBC-911.yaml +21 -0
- package/rules/VBC-913.yaml +30 -0
- package/rules/VBC-914.yaml +31 -0
- package/rules/VBC-915.yaml +19 -0
- package/rules/VBC-916.yaml +24 -0
- package/rules/VBC-917.yaml +21 -0
- package/rules/VBC-918.yaml +22 -0
- package/rules/VBC-920.yaml +20 -0
- package/rules/VBC-921.yaml +45 -0
- package/rules/VBC-922.yaml +15 -0
- package/rules/VBC-923.yaml +15 -0
- package/rules/VBC-924.yaml +12 -0
- package/rules/VBC-925.yaml +14 -0
- package/rules/VBC-926.yaml +14 -0
- package/rules/VBC-927.yaml +24 -0
- package/rules/VBC-928.yaml +25 -0
- package/rules/VBC-929.yaml +21 -0
- package/rules/VBC-930.yaml +16 -0
- package/rules/VBC-931.yaml +16 -0
- package/rules/VBC-932.yaml +16 -0
- package/rules/VBC-933.yaml +28 -0
- package/rules/VBC-934.yaml +24 -0
- package/rules/VBC-935.yaml +26 -0
- package/rules/VBC-936.yaml +24 -0
- package/rules/VBC-937.yaml +24 -0
- package/rules/VBC-938.yaml +23 -0
- package/rules/VBC-939.yaml +23 -0
- package/rules/VBC-940.yaml +30 -0
- package/rules/VBC-941.yaml +28 -0
- package/rules/VBC-942.yaml +23 -0
- package/rules/VBC-943.yaml +22 -0
- package/rules/VBC-944.yaml +26 -0
- package/rules/VBC-945.yaml +33 -0
- package/rules/VBC-946.yaml +26 -0
- package/rules/VBC-947.yaml +22 -0
- package/rules/VBC-948.yaml +26 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
declare const RuleSchema: z.ZodObject<{
|
|
5
|
+
id: z.ZodString;
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
category: z.ZodString;
|
|
8
|
+
severity: z.ZodEnum<{
|
|
9
|
+
error: "error";
|
|
10
|
+
warning: "warning";
|
|
11
|
+
}>;
|
|
12
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
match: z.ZodObject<{
|
|
14
|
+
regex: z.ZodOptional<z.ZodString>;
|
|
15
|
+
flags: z.ZodOptional<z.ZodString>;
|
|
16
|
+
file_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
|
+
scan: z.ZodOptional<z.ZodEnum<{
|
|
18
|
+
code: "code";
|
|
19
|
+
strings: "strings";
|
|
20
|
+
comments: "comments";
|
|
21
|
+
all: "all";
|
|
22
|
+
}>>;
|
|
23
|
+
multiline: z.ZodOptional<z.ZodBoolean>;
|
|
24
|
+
exclude_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
25
|
+
exclude_selectors: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26
|
+
git_check: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
committed_env: "committed_env";
|
|
28
|
+
binary_file: "binary_file";
|
|
29
|
+
node_modules: "node_modules";
|
|
30
|
+
commit_message_too_short: "commit_message_too_short";
|
|
31
|
+
missing_gitignore: "missing_gitignore";
|
|
32
|
+
missing_license: "missing_license";
|
|
33
|
+
missing_readme: "missing_readme";
|
|
34
|
+
spaces_in_filenames: "spaces_in_filenames";
|
|
35
|
+
too_many_staged_files: "too_many_staged_files";
|
|
36
|
+
filename_too_long: "filename_too_long";
|
|
37
|
+
large_file_size: "large_file_size";
|
|
38
|
+
committed_ide_settings: "committed_ide_settings";
|
|
39
|
+
missing_contributing: "missing_contributing";
|
|
40
|
+
missing_security: "missing_security";
|
|
41
|
+
missing_changelog: "missing_changelog";
|
|
42
|
+
}>>;
|
|
43
|
+
ast_check: z.ZodOptional<z.ZodObject<{
|
|
44
|
+
type: z.ZodEnum<{
|
|
45
|
+
"function-params-limit": "function-params-limit";
|
|
46
|
+
"function-length-limit": "function-length-limit";
|
|
47
|
+
"file-length-limit": "file-length-limit";
|
|
48
|
+
"empty-catch": "empty-catch";
|
|
49
|
+
"nested-blocks-limit": "nested-blocks-limit";
|
|
50
|
+
"empty-block": "empty-block";
|
|
51
|
+
"one-liner-limit": "one-liner-limit";
|
|
52
|
+
"redundant-if-true": "redundant-if-true";
|
|
53
|
+
"lying-function-names": "lying-function-names";
|
|
54
|
+
"empty-interface": "empty-interface";
|
|
55
|
+
"async-without-await": "async-without-await";
|
|
56
|
+
"empty-file": "empty-file";
|
|
57
|
+
}>;
|
|
58
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
}, z.core.$strip>>;
|
|
60
|
+
heuristic_check: z.ZodOptional<z.ZodEnum<{
|
|
61
|
+
"link-checker": "link-checker";
|
|
62
|
+
"circular-dependency": "circular-dependency";
|
|
63
|
+
"stale-copyright-year": "stale-copyright-year";
|
|
64
|
+
}>>;
|
|
65
|
+
semantic_check: z.ZodOptional<z.ZodEnum<{
|
|
66
|
+
"boolean-naming": "boolean-naming";
|
|
67
|
+
"boolean-redundancy": "boolean-redundancy";
|
|
68
|
+
"collection-suffix": "collection-suffix";
|
|
69
|
+
"semantic-shadowing": "semantic-shadowing";
|
|
70
|
+
}>>;
|
|
71
|
+
type_check: z.ZodOptional<z.ZodEnum<{
|
|
72
|
+
"floating-promise": "floating-promise";
|
|
73
|
+
}>>;
|
|
74
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
fix: z.ZodOptional<z.ZodObject<{
|
|
77
|
+
regex_replace: z.ZodOptional<z.ZodObject<{
|
|
78
|
+
pattern: z.ZodString;
|
|
79
|
+
replacement: z.ZodString;
|
|
80
|
+
}, z.core.$strip>>;
|
|
81
|
+
}, z.core.$strip>>;
|
|
82
|
+
supersedes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
83
|
+
opt_in: z.ZodOptional<z.ZodBoolean>;
|
|
84
|
+
tests: z.ZodOptional<z.ZodObject<{
|
|
85
|
+
fire: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
86
|
+
file: z.ZodOptional<z.ZodString>;
|
|
87
|
+
code: z.ZodString;
|
|
88
|
+
repeat: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
}, z.core.$strip>]>>>;
|
|
90
|
+
quiet: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
91
|
+
file: z.ZodOptional<z.ZodString>;
|
|
92
|
+
code: z.ZodString;
|
|
93
|
+
repeat: z.ZodOptional<z.ZodNumber>;
|
|
94
|
+
}, z.core.$strip>]>>>;
|
|
95
|
+
external: z.ZodOptional<z.ZodString>;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
message: z.ZodString;
|
|
98
|
+
docs_url: z.ZodOptional<z.ZodString>;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
type Rule = z.infer<typeof RuleSchema>;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* `ignore` only accepts paths relative to the working directory and throws on
|
|
104
|
+
* anything else, so an absolute path on the command line crashed the whole run.
|
|
105
|
+
* Paths outside the project cannot be matched by a .sloplessignore rule at all,
|
|
106
|
+
* so they pass through untouched.
|
|
107
|
+
*/
|
|
108
|
+
declare function applyIgnoreRules(files: string[], configIgnore?: string[]): string[];
|
|
109
|
+
/**
|
|
110
|
+
* Narrows the rule set before anything runs.
|
|
111
|
+
*
|
|
112
|
+
* Across ten instrumented repositories the tool reported 4754 findings, of which
|
|
113
|
+
* 9 were security and 101 were errors of any kind. Everything a person installs
|
|
114
|
+
* this for was buried under style. Selecting up front is cheaper than reading
|
|
115
|
+
* past it, and cheaper than running the rules at all.
|
|
116
|
+
*/
|
|
117
|
+
declare function selectRules(rules: Rule[], options: {
|
|
118
|
+
only?: string;
|
|
119
|
+
minSeverity?: string;
|
|
120
|
+
}): Rule[];
|
|
121
|
+
|
|
122
|
+
export { applyIgnoreRules, selectRules };
|