verification-layer 0.4.0

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.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +345 -0
  3. package/dist/audit/evidence.d.ts +25 -0
  4. package/dist/audit/evidence.d.ts.map +1 -0
  5. package/dist/audit/evidence.js +70 -0
  6. package/dist/audit/evidence.js.map +1 -0
  7. package/dist/audit/index.d.ts +54 -0
  8. package/dist/audit/index.d.ts.map +1 -0
  9. package/dist/audit/index.js +159 -0
  10. package/dist/audit/index.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +199 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +7 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +77 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/fixer/index.d.ts +11 -0
  20. package/dist/fixer/index.d.ts.map +1 -0
  21. package/dist/fixer/index.js +171 -0
  22. package/dist/fixer/index.js.map +1 -0
  23. package/dist/fixer/strategies.d.ts +3 -0
  24. package/dist/fixer/strategies.d.ts.map +1 -0
  25. package/dist/fixer/strategies.js +199 -0
  26. package/dist/fixer/strategies.js.map +1 -0
  27. package/dist/index.d.ts +4 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/reporters/audit-report.d.ts +13 -0
  32. package/dist/reporters/audit-report.d.ts.map +1 -0
  33. package/dist/reporters/audit-report.js +526 -0
  34. package/dist/reporters/audit-report.js.map +1 -0
  35. package/dist/reporters/fix-report.d.ts +3 -0
  36. package/dist/reporters/fix-report.d.ts.map +1 -0
  37. package/dist/reporters/fix-report.js +70 -0
  38. package/dist/reporters/fix-report.js.map +1 -0
  39. package/dist/reporters/index.d.ts +3 -0
  40. package/dist/reporters/index.d.ts.map +1 -0
  41. package/dist/reporters/index.js +425 -0
  42. package/dist/reporters/index.js.map +1 -0
  43. package/dist/reporters/remediation-guides.d.ts +25 -0
  44. package/dist/reporters/remediation-guides.d.ts.map +1 -0
  45. package/dist/reporters/remediation-guides.js +636 -0
  46. package/dist/reporters/remediation-guides.js.map +1 -0
  47. package/dist/scan.d.ts +3 -0
  48. package/dist/scan.d.ts.map +1 -0
  49. package/dist/scan.js +96 -0
  50. package/dist/scan.js.map +1 -0
  51. package/dist/scanners/access/index.d.ts +3 -0
  52. package/dist/scanners/access/index.d.ts.map +1 -0
  53. package/dist/scanners/access/index.js +102 -0
  54. package/dist/scanners/access/index.js.map +1 -0
  55. package/dist/scanners/audit/index.d.ts +3 -0
  56. package/dist/scanners/audit/index.d.ts.map +1 -0
  57. package/dist/scanners/audit/index.js +94 -0
  58. package/dist/scanners/audit/index.js.map +1 -0
  59. package/dist/scanners/encryption/index.d.ts +3 -0
  60. package/dist/scanners/encryption/index.d.ts.map +1 -0
  61. package/dist/scanners/encryption/index.js +86 -0
  62. package/dist/scanners/encryption/index.js.map +1 -0
  63. package/dist/scanners/phi/index.d.ts +3 -0
  64. package/dist/scanners/phi/index.d.ts.map +1 -0
  65. package/dist/scanners/phi/index.js +47 -0
  66. package/dist/scanners/phi/index.js.map +1 -0
  67. package/dist/scanners/phi/patterns.d.ts +13 -0
  68. package/dist/scanners/phi/patterns.d.ts.map +1 -0
  69. package/dist/scanners/phi/patterns.js +242 -0
  70. package/dist/scanners/phi/patterns.js.map +1 -0
  71. package/dist/scanners/retention/index.d.ts +3 -0
  72. package/dist/scanners/retention/index.d.ts.map +1 -0
  73. package/dist/scanners/retention/index.js +102 -0
  74. package/dist/scanners/retention/index.js.map +1 -0
  75. package/dist/scanners/security/index.d.ts +3 -0
  76. package/dist/scanners/security/index.d.ts.map +1 -0
  77. package/dist/scanners/security/index.js +280 -0
  78. package/dist/scanners/security/index.js.map +1 -0
  79. package/dist/stack-detector/index.d.ts +26 -0
  80. package/dist/stack-detector/index.d.ts.map +1 -0
  81. package/dist/stack-detector/index.js +317 -0
  82. package/dist/stack-detector/index.js.map +1 -0
  83. package/dist/stack-detector/stack-guides.d.ts +16 -0
  84. package/dist/stack-detector/stack-guides.d.ts.map +1 -0
  85. package/dist/stack-detector/stack-guides.js +772 -0
  86. package/dist/stack-detector/stack-guides.js.map +1 -0
  87. package/dist/types.d.ts +143 -0
  88. package/dist/types.d.ts.map +1 -0
  89. package/dist/types.js +2 -0
  90. package/dist/types.js.map +1 -0
  91. package/dist/utils/context.d.ts +3 -0
  92. package/dist/utils/context.d.ts.map +1 -0
  93. package/dist/utils/context.js +14 -0
  94. package/dist/utils/context.js.map +1 -0
  95. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-guides.js","sourceRoot":"","sources":["../../src/stack-detector/stack-guides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';
2
+ export type ComplianceCategory = 'phi-exposure' | 'encryption' | 'audit-logging' | 'access-control' | 'data-retention';
3
+ export interface ContextLine {
4
+ lineNumber: number;
5
+ content: string;
6
+ isMatch: boolean;
7
+ }
8
+ export type FixType = 'sql-injection-template' | 'sql-injection-concat' | 'hardcoded-password' | 'hardcoded-secret' | 'api-key-exposed' | 'phi-console-log' | 'http-url' | 'innerhtml-unsanitized' | 'phi-localstorage' | 'phi-url-param' | 'phi-log-unredacted' | 'cookie-insecure' | 'backup-unencrypted';
9
+ export interface Finding {
10
+ id: string;
11
+ category: ComplianceCategory;
12
+ severity: Severity;
13
+ title: string;
14
+ description: string;
15
+ file: string;
16
+ line?: number;
17
+ column?: number;
18
+ recommendation: string;
19
+ hipaaReference?: string;
20
+ context?: ContextLine[];
21
+ fixType?: FixType;
22
+ }
23
+ export interface StackInfo {
24
+ framework: string;
25
+ database: string;
26
+ auth: string;
27
+ frameworkDisplay: string;
28
+ databaseDisplay: string;
29
+ authDisplay: string;
30
+ recommendations: string[];
31
+ }
32
+ export interface ScanResult {
33
+ findings: Finding[];
34
+ scannedFiles: number;
35
+ scanDuration: number;
36
+ stack?: StackInfo;
37
+ }
38
+ export interface ScanOptions {
39
+ path: string;
40
+ categories?: ComplianceCategory[];
41
+ exclude?: string[];
42
+ configFile?: string;
43
+ config?: VlayerConfig;
44
+ fix?: boolean;
45
+ }
46
+ export interface Scanner {
47
+ name: string;
48
+ category: ComplianceCategory;
49
+ scan(files: string[], options: ScanOptions): Promise<Finding[]>;
50
+ }
51
+ export interface Report {
52
+ timestamp: string;
53
+ targetPath: string;
54
+ summary: {
55
+ total: number;
56
+ critical: number;
57
+ high: number;
58
+ medium: number;
59
+ low: number;
60
+ info: number;
61
+ };
62
+ findings: Finding[];
63
+ scannedFiles: number;
64
+ scanDuration: number;
65
+ stack?: StackInfo;
66
+ }
67
+ export interface ReportOptions {
68
+ format: 'json' | 'html' | 'markdown';
69
+ outputPath?: string;
70
+ }
71
+ export interface VlayerConfig {
72
+ exclude?: string[];
73
+ ignorePaths?: string[];
74
+ safeHttpDomains?: string[];
75
+ contextLines?: number;
76
+ categories?: ComplianceCategory[];
77
+ }
78
+ export interface FixResult {
79
+ finding: Finding;
80
+ fixed: boolean;
81
+ originalLine: string;
82
+ fixedLine: string;
83
+ fixType: FixType;
84
+ }
85
+ export interface FixReport {
86
+ totalFindings: number;
87
+ fixedCount: number;
88
+ skippedCount: number;
89
+ fixes: FixResult[];
90
+ }
91
+ export interface CodeSnapshot {
92
+ content: string;
93
+ context: ContextLine[];
94
+ lineNumber: number;
95
+ }
96
+ export interface AuditEvidence {
97
+ id: string;
98
+ findingId: string;
99
+ timestamp: string;
100
+ filePath: string;
101
+ before: CodeSnapshot;
102
+ after: CodeSnapshot;
103
+ fileHashBefore: string;
104
+ fileHashAfter: string;
105
+ hipaaReference: string;
106
+ fixType: FixType;
107
+ description: string;
108
+ }
109
+ export type ManualReviewStatus = 'pending_review' | 'assigned' | 'in_progress' | 'resolved' | 'accepted_risk';
110
+ export interface ManualReviewItem {
111
+ id: string;
112
+ findingId: string;
113
+ finding: Finding;
114
+ status: ManualReviewStatus;
115
+ assignedTo?: string;
116
+ suggestedDeadline: string;
117
+ createdAt: string;
118
+ updatedAt: string;
119
+ notes?: string;
120
+ resolution?: string;
121
+ }
122
+ export interface AuditTrail {
123
+ id: string;
124
+ createdAt: string;
125
+ projectPath: string;
126
+ projectName: string;
127
+ scanDuration: number;
128
+ scannedFiles: number;
129
+ totalFindings: number;
130
+ autoFixedCount: number;
131
+ manualReviewCount: number;
132
+ evidence: AuditEvidence[];
133
+ manualReviews: ManualReviewItem[];
134
+ reportHash?: string;
135
+ }
136
+ export interface AuditReportOptions {
137
+ outputPath: string;
138
+ includeEvidence?: boolean;
139
+ includeManualReviews?: boolean;
140
+ organizationName?: string;
141
+ auditorName?: string;
142
+ }
143
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { ContextLine } from '../types.js';
2
+ export declare function getContextLines(lines: string[], matchLine: number, contextSize?: number): ContextLine[];
3
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAU,GACtB,WAAW,EAAE,CAcf"}
@@ -0,0 +1,14 @@
1
+ export function getContextLines(lines, matchLine, contextSize = 2) {
2
+ const result = [];
3
+ const start = Math.max(0, matchLine - contextSize);
4
+ const end = Math.min(lines.length - 1, matchLine + contextSize);
5
+ for (let i = start; i <= end; i++) {
6
+ result.push({
7
+ lineNumber: i + 1, // 1-indexed
8
+ content: lines[i],
9
+ isMatch: i === matchLine,
10
+ });
11
+ }
12
+ return result;
13
+ }
14
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAC7B,KAAe,EACf,SAAiB,EACjB,cAAsB,CAAC;IAEvB,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY;YAC/B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,OAAO,EAAE,CAAC,KAAK,SAAS;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "verification-layer",
3
+ "version": "0.4.0",
4
+ "description": "CLI tool for HIPAA compliance scanning and reporting",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "vlayer": "dist/cli.js"
9
+ },
10
+ "type": "module",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "dev": "tsc --watch",
25
+ "start": "node dist/cli.js",
26
+ "test": "vitest",
27
+ "test:run": "vitest run",
28
+ "lint": "eslint src/",
29
+ "typecheck": "tsc --noEmit",
30
+ "prepublishOnly": "npm run build"
31
+ },
32
+ "keywords": [
33
+ "hipaa",
34
+ "compliance",
35
+ "healthcare",
36
+ "security",
37
+ "cli",
38
+ "scanner",
39
+ "phi",
40
+ "audit",
41
+ "encryption",
42
+ "medical"
43
+ ],
44
+ "author": "Simon Franco",
45
+ "license": "MIT",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/Francosimon53/verification-layer.git"
49
+ },
50
+ "bugs": {
51
+ "url": "https://github.com/Francosimon53/verification-layer/issues"
52
+ },
53
+ "homepage": "https://github.com/Francosimon53/verification-layer#readme",
54
+ "devDependencies": {
55
+ "@semantic-release/changelog": "^6.0.3",
56
+ "@semantic-release/git": "^10.0.1",
57
+ "@types/node": "^20.0.0",
58
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
59
+ "@typescript-eslint/parser": "^8.54.0",
60
+ "eslint": "^8.57.0",
61
+ "semantic-release": "^24.2.9",
62
+ "typescript": "^5.4.0",
63
+ "vitest": "^1.6.0"
64
+ },
65
+ "dependencies": {
66
+ "@types/pdfkit": "^0.17.4",
67
+ "chalk": "^5.3.0",
68
+ "commander": "^12.0.0",
69
+ "glob": "^10.3.0",
70
+ "ora": "^8.0.0",
71
+ "pdfkit": "^0.17.2"
72
+ },
73
+ "engines": {
74
+ "node": ">=18.0.0"
75
+ }
76
+ }