File tree 2 files changed +75
-1
lines changed
2 files changed +75
-1
lines changed Original file line number Diff line number Diff line change 1
1
export {
2
- informativeTest_6_3_1 ,
3
2
informativeTest_6_3_2 ,
4
3
informativeTest_6_3_3 ,
5
4
informativeTest_6_3_4 ,
@@ -11,3 +10,4 @@ export {
11
10
informativeTest_6_3_10 ,
12
11
informativeTest_6_3_11 ,
13
12
} from '../informativeTests.js'
13
+ export { informativeTest_6_3_1 } from './informativeTests/informativeTest_6_3_1.js'
Original file line number Diff line number Diff line change
1
+ import Ajv from 'ajv/dist/jtd.js'
2
+
3
+ const ajv = new Ajv ( )
4
+
5
+ const inputSchema = /** @type {const } */ ( {
6
+ additionalProperties : true ,
7
+ properties : {
8
+ vulnerabilities : {
9
+ elements : {
10
+ additionalProperties : true ,
11
+ properties : { } ,
12
+ optionalProperties : {
13
+ metrics : {
14
+ elements : {
15
+ additionalProperties : true ,
16
+ optionalProperties : {
17
+ content : {
18
+ additionalProperties : true ,
19
+ optionalProperties : {
20
+ cvss_v2 : {
21
+ additionalProperties : true ,
22
+ properties : { } ,
23
+ } ,
24
+ cvss_v3 : {
25
+ additionalProperties : true ,
26
+ properties : { } ,
27
+ } ,
28
+ cvss_v4 : {
29
+ additionalProperties : true ,
30
+ properties : { } ,
31
+ } ,
32
+ } ,
33
+ } ,
34
+ } ,
35
+ } ,
36
+ } ,
37
+ } ,
38
+ } ,
39
+ } ,
40
+ } ,
41
+ } )
42
+
43
+ const validateInput = ajv . compile ( inputSchema )
44
+
45
+ /**
46
+ * @param {unknown } doc
47
+ * @returns
48
+ */
49
+ export function informativeTest_6_3_1 ( doc ) {
50
+ const ctx = {
51
+ infos : /** @type {Array<{ message: string; instancePath: string }> } */ ( [ ] ) ,
52
+ }
53
+
54
+ if ( ! validateInput ( doc ) ) {
55
+ return ctx
56
+ }
57
+
58
+ doc . vulnerabilities . forEach ( ( vulnerability , vulnerabilityIndex ) => {
59
+ vulnerability . metrics ?. forEach ( ( metric , metricIndex ) => {
60
+ if (
61
+ metric . content ?. cvss_v2 &&
62
+ ! metric . content ?. cvss_v3 &&
63
+ ! metric . content ?. cvss_v4
64
+ ) {
65
+ ctx . infos . push ( {
66
+ instancePath : `/vulnerabilities/${ vulnerabilityIndex } /metrics/${ metricIndex } ` ,
67
+ message : 'use of cvss v2 as the only scoring system' ,
68
+ } )
69
+ }
70
+ } )
71
+ } )
72
+
73
+ return ctx
74
+ }
You can’t perform that action at this time.
0 commit comments