verification-layer 0.27.13 → 0.27.14
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.
|
@@ -18,5 +18,5 @@ export declare function applyAcknowledgments(findings: Finding[], config: Vlayer
|
|
|
18
18
|
/**
|
|
19
19
|
* Validate acknowledged finding configuration
|
|
20
20
|
*/
|
|
21
|
-
export declare function validateAcknowledgedFinding(ack:
|
|
21
|
+
export declare function validateAcknowledgedFinding(ack: unknown, index: number): string[];
|
|
22
22
|
//# sourceMappingURL=acknowledgments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acknowledgments.d.ts","sourceRoot":"","sources":["../src/acknowledgments.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,GACnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"acknowledgments.d.ts","sourceRoot":"","sources":["../src/acknowledgments.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,GACnB,mBAAmB,CA2DrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,YAAY,GACnB,OAAO,EAAE,CAoBX;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,GACZ,MAAM,EAAE,CAuCV"}
|
package/dist/acknowledgments.js
CHANGED
|
@@ -29,16 +29,28 @@ export function checkAcknowledgment(finding, config) {
|
|
|
29
29
|
if (ack.severity && ack.severity !== finding.severity) {
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
32
|
-
//
|
|
32
|
+
// Expired acknowledgments must never suppress findings. Return the match
|
|
33
|
+
// metadata so callers can still distinguish an expired exception from no
|
|
34
|
+
// matching exception at all.
|
|
33
35
|
const expired = ack.expiresAt ? new Date(ack.expiresAt) < new Date() : false;
|
|
34
|
-
|
|
36
|
+
if (expired) {
|
|
37
|
+
return {
|
|
38
|
+
acknowledged: false,
|
|
39
|
+
reason: ack.reason,
|
|
40
|
+
acknowledgedBy: ack.acknowledgedBy,
|
|
41
|
+
acknowledgedAt: ack.acknowledgedAt,
|
|
42
|
+
ticketUrl: ack.ticketUrl,
|
|
43
|
+
expired: true,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// All criteria matched and the acknowledgment is still active.
|
|
35
47
|
return {
|
|
36
48
|
acknowledged: true,
|
|
37
49
|
reason: ack.reason,
|
|
38
50
|
acknowledgedBy: ack.acknowledgedBy,
|
|
39
51
|
acknowledgedAt: ack.acknowledgedAt,
|
|
40
52
|
ticketUrl: ack.ticketUrl,
|
|
41
|
-
expired,
|
|
53
|
+
expired: false,
|
|
42
54
|
};
|
|
43
55
|
}
|
|
44
56
|
return { acknowledged: false };
|
|
@@ -70,30 +82,36 @@ export function applyAcknowledgments(findings, config) {
|
|
|
70
82
|
*/
|
|
71
83
|
export function validateAcknowledgedFinding(ack, index) {
|
|
72
84
|
const errors = [];
|
|
73
|
-
|
|
85
|
+
const value = typeof ack === 'object' && ack !== null ? ack : {};
|
|
86
|
+
if (!value.pattern || typeof value.pattern !== 'string') {
|
|
74
87
|
errors.push(`acknowledgedFindings[${index}]: 'pattern' is required and must be a string`);
|
|
75
88
|
}
|
|
76
|
-
if (!
|
|
89
|
+
if (!value.reason || typeof value.reason !== 'string') {
|
|
77
90
|
errors.push(`acknowledgedFindings[${index}]: 'reason' is required and must be a string`);
|
|
78
91
|
}
|
|
79
|
-
if (!
|
|
92
|
+
if (!value.acknowledgedBy || typeof value.acknowledgedBy !== 'string') {
|
|
80
93
|
errors.push(`acknowledgedFindings[${index}]: 'acknowledgedBy' is required and must be a string`);
|
|
81
94
|
}
|
|
82
|
-
if (!
|
|
95
|
+
if (!value.acknowledgedAt || typeof value.acknowledgedAt !== 'string') {
|
|
83
96
|
errors.push(`acknowledgedFindings[${index}]: 'acknowledgedAt' is required and must be a string`);
|
|
84
97
|
}
|
|
85
98
|
else {
|
|
86
99
|
// Validate ISO 8601 date format
|
|
87
|
-
const date = new Date(
|
|
100
|
+
const date = new Date(value.acknowledgedAt);
|
|
88
101
|
if (isNaN(date.getTime())) {
|
|
89
102
|
errors.push(`acknowledgedFindings[${index}]: 'acknowledgedAt' must be a valid ISO 8601 date`);
|
|
90
103
|
}
|
|
91
104
|
}
|
|
92
|
-
if (
|
|
93
|
-
|
|
94
|
-
if (isNaN(date.getTime())) {
|
|
105
|
+
if (value.expiresAt !== undefined) {
|
|
106
|
+
if (typeof value.expiresAt !== 'string') {
|
|
95
107
|
errors.push(`acknowledgedFindings[${index}]: 'expiresAt' must be a valid ISO 8601 date`);
|
|
96
108
|
}
|
|
109
|
+
else {
|
|
110
|
+
const date = new Date(value.expiresAt);
|
|
111
|
+
if (isNaN(date.getTime())) {
|
|
112
|
+
errors.push(`acknowledgedFindings[${index}]: 'expiresAt' must be a valid ISO 8601 date`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
97
115
|
}
|
|
98
116
|
return errors;
|
|
99
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acknowledgments.js","sourceRoot":"","sources":["../src/acknowledgments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAYtC;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,MAAoB;IAEpB,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC9C,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,2CAA2C;QAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QAED,6CAA6C;QAC7C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,2CAA2C;QAC3C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"acknowledgments.js","sourceRoot":"","sources":["../src/acknowledgments.ts"],"names":[],"mappings":"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"}
|
package/dist/rule-catalog.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "verification-layer",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.14",
|
|
4
4
|
"description": "Open-source HIPAA compliance scanner for healthcare code. 143 rules, 5 HIPAA categories. CLI + CI/CD + VS Code.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"start": "node dist/cli.js",
|
|
28
28
|
"test": "vitest",
|
|
29
29
|
"test:run": "vitest run",
|
|
30
|
-
"lint": "eslint src/",
|
|
30
|
+
"lint": "eslint src/ --max-warnings 23",
|
|
31
31
|
"typecheck": "tsc --noEmit",
|
|
32
32
|
"prepare": "husky || true",
|
|
33
33
|
"prepublishOnly": "npm run build"
|
|
@@ -65,15 +65,14 @@
|
|
|
65
65
|
},
|
|
66
66
|
"homepage": "https://github.com/Francosimon53/verification-layer#readme",
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@
|
|
69
|
-
"@semantic-release/git": "^10.0.1",
|
|
68
|
+
"@eslint/js": "^9.39.5",
|
|
70
69
|
"@types/node": "^20.0.0",
|
|
71
70
|
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
72
71
|
"@typescript-eslint/parser": "^8.54.0",
|
|
73
|
-
"eslint": "^
|
|
72
|
+
"eslint": "^9.39.5",
|
|
74
73
|
"husky": "^9.1.7",
|
|
75
|
-
"semantic-release": "^24.2.9",
|
|
76
74
|
"typescript": "^5.4.0",
|
|
75
|
+
"typescript-eslint": "^8.69.0",
|
|
77
76
|
"vitest": "^4.1.11"
|
|
78
77
|
},
|
|
79
78
|
"dependencies": {
|