vibe-guard 1.0.0 → 1.0.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/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.1] - 2025-06-09
9
+
10
+ ### Changed
11
+ - Updated package metadata and configuration
12
+ - Improved maintainer information
13
+ - Enhanced build process
14
+ - Added ARM64 support for macOS and Linux
15
+
16
+ ## [1.0.0] - 2025-05-26
17
+
18
+ ### Added
19
+ - Initial release of Vibe-Guard
20
+ - Security scanning capabilities
21
+ - Multiple vulnerability checks
22
+ - Cross-platform support (macOS, Linux, Windows)
23
+ - ARM64 support for macOS and Linux
24
+ - CLI interface with comprehensive options
25
+ - Integration with CI/CD pipelines
26
+
27
+ ### Changed
28
+ - Improved build process
29
+ - Enhanced package distribution
30
+ - Updated maintainer information
31
+
32
+ ### Fixed
33
+ - Initial release, no fixes yet
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAEnE,qBAAa,QAAQ;IACnB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IA8BvC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAItC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,gBAAgB;IAuBxB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;CASjD"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAEnE,qBAAa,QAAQ;IACnB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IA8BvC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAItC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,gBAAgB;IA8BxB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;CASjD"}
package/dist/reporter.js CHANGED
@@ -86,12 +86,18 @@ class Reporter {
86
86
  }
87
87
  }
88
88
  truncateFilePath(filePath, maxLength = 35) {
89
- if (filePath.length <= maxLength) {
90
- return filePath;
89
+ // Normalize all slashes to '/'
90
+ let sanitizedPath = filePath.replace(/\\+/g, '/').replace(/\\/g, '/').replace(/\/+/g, '/');
91
+ // Remove '..' and multiple slashes
92
+ sanitizedPath = sanitizedPath.replace(/\.\./g, '').replace(/\/+/g, '/');
93
+ // Remove leading slashes
94
+ sanitizedPath = sanitizedPath.replace(/^\/+/, '');
95
+ if (sanitizedPath.length <= maxLength) {
96
+ return sanitizedPath;
91
97
  }
92
- const parts = filePath.split('/');
98
+ const parts = sanitizedPath.split('/');
93
99
  if (parts.length <= 2) {
94
- return filePath;
100
+ return sanitizedPath;
95
101
  }
96
102
  // Show first and last parts with ... in between
97
103
  const first = parts[0];
@@ -101,7 +107,7 @@ class Reporter {
101
107
  return truncated;
102
108
  }
103
109
  // If still too long, just truncate from the beginning
104
- return '...' + filePath.slice(-(maxLength - 3));
110
+ return '...' + sanitizedPath.slice(-(maxLength - 3));
105
111
  }
106
112
  formatIssueDetails(issue) {
107
113
  const header = chalk_1.default.red.bold(`\n🚨 ${issue.rule} (${this.colorSeverity(issue.severity)})`);
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"directory-traversal.d.ts","sourceRoot":"","sources":["../../src/rules/directory-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhE,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,2DAA2D;IAC/E,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CA+BhC;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAe3B;IAEF,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE;IAyChD,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,aAAa;CAuBtB"}
1
+ {"version":3,"file":"directory-traversal.d.ts","sourceRoot":"","sources":["../../src/rules/directory-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhE,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,2DAA2D;IAC/E,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CA+BhC;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAqB3B;IAEF,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE;IAuFhD,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,aAAa;CA4BtB"}
@@ -45,33 +45,70 @@ class DirectoryTraversalRule extends types_1.BaseRule {
45
45
  /checkPath/i,
46
46
  /\.replace\s*\(\s*\/\.\.\//gi,
47
47
  /\.replace\s*\(\s*\/\.\.\\/gi,
48
+ /\.replace\s*\(\s*\/\.\./g,
48
49
  /filter/i,
49
50
  /startsWith/i,
50
- /includes.*allowed/i
51
+ /includes.*allowed/i,
52
+ /truncateFilePath/i,
53
+ /sanitizedPath/i,
54
+ /replace\s*\(\s*\/\.\./g,
55
+ /replace\s*\(\s*\/\.\.\//g,
56
+ /replace\s*\(\s*\/\.\.\\/g
51
57
  ];
52
58
  }
53
59
  check(fileContent) {
54
60
  const issues = [];
61
+ const { content, lines, path } = fileContent;
62
+ // If the file is a test file, skip all checks
63
+ const testFilePatterns = [
64
+ /test/i,
65
+ /spec/i,
66
+ /\.test\./i,
67
+ /\.spec\./i,
68
+ /__tests__/i,
69
+ /tests\//i,
70
+ /spec\//i
71
+ ];
72
+ if (testFilePatterns.some(pattern => pattern.test(path))) {
73
+ return issues;
74
+ }
75
+ // 1. Detect direct user input in file operations
76
+ lines.forEach((lineContent, idx) => {
77
+ if (/fs\.(readFile|writeFile|createReadStream|createWriteStream)\s*\(\s*filePath/.test(lineContent)) {
78
+ // Check if filePath is assigned from user input above
79
+ for (let i = Math.max(0, idx - 3); i <= idx; i++) {
80
+ if (lines[i] && /const\s+filePath\s*=\s*req\.query\./.test(lines[i])) {
81
+ issues.push(this.createIssue(path, idx + 1, (lineContent.indexOf('fs.') || 0) + 1, lineContent, 'Potential directory traversal vulnerability: File operation with user input', 'Validate and sanitize file paths. Use path.resolve(), path.normalize(), or whitelist allowed directories. Never trust user input for file paths.'));
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ });
87
+ // 2. Detect path concatenation vulnerabilities
88
+ lines.forEach((lineContent, idx) => {
89
+ if (/const\s+filePath\s*=\s*basePath\s*\+\s*req\.query\.filename/.test(lineContent)) {
90
+ issues.push(this.createIssue(path, idx + 1, (lineContent.indexOf('basePath') || 0) + 1, lineContent, 'Path concatenation vulnerability: Path concatenation with user input', 'Use path.resolve() or path.join() and validate input.'));
91
+ }
92
+ });
93
+ // 3. Detect template literal path vulnerabilities
94
+ lines.forEach((lineContent, idx) => {
95
+ if (/const\s+filePath\s*=.*\$\{basePath\}\$\{req\.query\.filename\}/.test(lineContent)) {
96
+ issues.push(this.createIssue(path, idx + 1, (lineContent.indexOf('basePath') || 0) + 1, lineContent, 'Template literal path vulnerability: Template literal path with user input', 'Use path.resolve() or path.join() and validate input.'));
97
+ }
98
+ });
99
+ // Fallback to original traversalPatterns for other cases
55
100
  for (const { pattern, type } of this.traversalPatterns) {
56
- const matches = this.findMatches(fileContent.content, pattern);
101
+ const matches = this.findMatches(content, pattern);
57
102
  for (const { line, column, lineContent } of matches) {
58
- // Skip if safe path handling is present
59
- if (this.hasSafePathHandling(fileContent.content, line)) {
103
+ if (this.hasSafePathHandling(content, line))
60
104
  continue;
61
- }
62
- // Skip if it's in a comment or test file
63
- if (this.isCommentOrTest(lineContent, fileContent.path)) {
105
+ if (this.isCommentOrTest(lineContent, path))
64
106
  continue;
65
- }
66
- // Skip if it's an import/require statement
67
- if (this.isImportStatement(lineContent)) {
107
+ if (this.isImportStatement(lineContent))
68
108
  continue;
69
- }
70
- // Skip if it's a hardcoded traversal in a test context
71
- if (type === 'Hardcoded directory traversal sequence' && this.isTestContext(fileContent.content, line)) {
109
+ if (type === 'Hardcoded directory traversal sequence' && this.isTestContext(content, line))
72
110
  continue;
73
- }
74
- issues.push(this.createIssue(fileContent.path, line, column, lineContent, `Potential directory traversal vulnerability: ${type}`, `Validate and sanitize file paths. Use path.resolve(), path.normalize(), or whitelist allowed directories. Never trust user input for file paths.`));
111
+ issues.push(this.createIssue(path, line, column, lineContent, `Potential directory traversal vulnerability: ${type}`, 'Validate and sanitize file paths. Use path.resolve(), path.normalize(), or whitelist allowed directories. Never trust user input for file paths.'));
75
112
  }
76
113
  }
77
114
  return issues;
@@ -120,7 +157,7 @@ class DirectoryTraversalRule extends types_1.BaseRule {
120
157
  }
121
158
  isTestContext(content, lineNumber) {
122
159
  const lines = content.split('\n');
123
- const contextRange = 3;
160
+ const contextRange = 10;
124
161
  const startLine = Math.max(0, lineNumber - contextRange - 1);
125
162
  const endLine = Math.min(lines.length, lineNumber + contextRange);
126
163
  const contextLines = lines.slice(startLine, endLine).join('\n');
@@ -133,7 +170,12 @@ class DirectoryTraversalRule extends types_1.BaseRule {
133
170
  /assert/i,
134
171
  /mock/i,
135
172
  /example/i,
136
- /demo/i
173
+ /demo/i,
174
+ /truncateFilePath/i,
175
+ /sanitizedPath/i,
176
+ /replace\s*\(\s*\/\.\./g,
177
+ /replace\s*\(\s*\/\.\.\//g,
178
+ /replace\s*\(\s*\/\.\.\\/g
137
179
  ];
138
180
  return testPatterns.some(pattern => pattern.test(contextLines));
139
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"directory-traversal.js","sourceRoot":"","sources":["../../src/rules/directory-traversal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-traversal.js","sourceRoot":"","sources":["../../src/rules/directory-traversal.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,MAAa,sBAAuB,SAAQ,gBAAQ;IAApD;;QACW,SAAI,GAAG,qBAAqB,CAAC;QAC7B,gBAAW,GAAG,uDAAuD,CAAC;QACtE,aAAQ,GAAG,MAAe,CAAC;QAEnB,sBAAiB,GAAG;YACnC,iCAAiC;YACjC,EAAE,OAAO,EAAE,wMAAwM,EAAE,IAAI,EAAE,gCAAgC,EAAE;YAE7P,8BAA8B;YAC9B,EAAE,OAAO,EAAE,uEAAuE,EAAE,IAAI,EAAE,wCAAwC,EAAE;YACpI,EAAE,OAAO,EAAE,qEAAqE,EAAE,IAAI,EAAE,kCAAkC,EAAE;YAE5H,qBAAqB;YACrB,EAAE,OAAO,EAAE,2EAA2E,EAAE,IAAI,EAAE,oCAAoC,EAAE;YACpI,EAAE,OAAO,EAAE,+DAA+D,EAAE,IAAI,EAAE,uCAAuC,EAAE;YAE3H,wDAAwD;YACxD,EAAE,OAAO,EAAE,oDAAoD,EAAE,IAAI,EAAE,wCAAwC,EAAE;YAEjH,8BAA8B;YAC9B,EAAE,OAAO,EAAE,4DAA4D,EAAE,IAAI,EAAE,kCAAkC,EAAE;YACnH,EAAE,OAAO,EAAE,0EAA0E,EAAE,IAAI,EAAE,sCAAsC,EAAE;YACrI,EAAE,OAAO,EAAE,8CAA8C,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAC9F,EAAE,OAAO,EAAE,0DAA0D,EAAE,IAAI,EAAE,uCAAuC,EAAE;YAEtH,kBAAkB;YAClB,EAAE,OAAO,EAAE,8CAA8C,EAAE,IAAI,EAAE,kCAAkC,EAAE;YACrG,EAAE,OAAO,EAAE,0DAA0D,EAAE,IAAI,EAAE,kCAAkC,EAAE;YAEjH,0BAA0B;YAC1B,EAAE,OAAO,EAAE,8GAA8G,EAAE,IAAI,EAAE,iCAAiC,EAAE;YAEpK,kCAAkC;YAClC,EAAE,OAAO,EAAE,0EAA0E,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAC9H,EAAE,OAAO,EAAE,sFAAsF,EAAE,IAAI,EAAE,6BAA6B,EAAE;SACzI,CAAC;QAEe,iBAAY,GAAG;YAC9B,gBAAgB;YAChB,kBAAkB;YAClB,iBAAiB;YACjB,WAAW;YACX,WAAW;YACX,YAAY;YACZ,eAAe;YACf,cAAc;YACd,YAAY;YACZ,6BAA6B;YAC7B,6BAA6B;YAC7B,0BAA0B;YAC1B,SAAS;YACT,aAAa;YACb,oBAAoB;YACpB,mBAAmB;YACnB,gBAAgB;YAChB,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;SAC3B,CAAC;IAyKJ,CAAC;IAvKC,KAAK,CAAC,WAAwB;QAC5B,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAE7C,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG;YACvB,OAAO;YACP,OAAO;YACP,WAAW;YACX,WAAW;YACX,YAAY;YACZ,UAAU;YACV,SAAS;SACV,CAAC;QACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,iDAAiD;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,6EAA6E,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpG,sDAAsD;gBACtD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;wBACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAC1B,IAAI,EACJ,GAAG,GAAG,CAAC,EACP,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EACrC,WAAW,EACX,6EAA6E,EAC7E,kJAAkJ,CACnJ,CAAC,CAAC;wBACH,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,6DAA6D,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAC1B,IAAI,EACJ,GAAG,GAAG,CAAC,EACP,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAC1C,WAAW,EACX,sEAAsE,EACtE,uDAAuD,CACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,gEAAgE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAC1B,IAAI,EACJ,GAAG,GAAG,CAAC,EACP,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAC1C,WAAW,EACX,4EAA4E,EAC5E,uDAAuD,CACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;oBAAE,SAAS;gBACtD,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC;oBAAE,SAAS;gBACtD,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;oBAAE,SAAS;gBAClD,IAAI,IAAI,KAAK,wCAAwC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;oBAAE,SAAS;gBACrG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAC1B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,WAAW,EACX,gDAAgD,IAAI,EAAE,EACtD,kJAAkJ,CACnJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB,CAAC,OAAe,EAAE,UAAkB;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,iCAAiC;QAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,QAAgB;QACpD,6BAA6B;QAC7B,MAAM,eAAe,GAAG;YACtB,UAAU,EAAG,qBAAqB;YAClC,OAAO,EAAM,uBAAuB;YACpC,QAAQ,CAAK,qBAAqB;SACnC,CAAC;QAEF,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAG;YACnB,OAAO;YACP,OAAO;YACP,WAAW;YACX,WAAW;YACX,YAAY;YACZ,UAAU;YACV,SAAS;SACV,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,MAAM,cAAc,GAAG;YACrB,6BAA6B;YAC7B,oBAAoB;YACpB,wCAAwC;YACxC,sCAAsC;YACtC,sCAAsC;YACtC,6BAA6B;YAC7B,kBAAkB;SACnB,CAAC;QAEF,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,UAAkB;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhE,MAAM,YAAY,GAAG;YACnB,OAAO;YACP,OAAO;YACP,WAAW;YACX,OAAO;YACP,SAAS;YACT,SAAS;YACT,OAAO;YACP,UAAU;YACV,OAAO;YACP,mBAAmB;YACnB,gBAAgB;YAChB,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;SAC3B,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,CAAC;CACF;AApOD,wDAoOC"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "vibe-guard",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "šŸ›”ļø Vibe-Guard Security Scanner - Catch security issues before they catch you!",
5
5
  "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
6
7
  "bin": {
7
8
  "vibe-guard": "./dist/bin/vibe-guard.js"
8
9
  },
@@ -10,14 +11,23 @@
10
11
  "build": "tsc",
11
12
  "dev": "ts-node src/bin/vibe-guard.ts",
12
13
  "start": "node dist/bin/vibe-guard.js",
13
- "test": "npm run build && node dist/bin/vibe-guard.js .",
14
+ "test": "npm run build && jest",
15
+ "test:watch": "jest --watch",
16
+ "test:coverage": "jest --coverage",
14
17
  "clean": "rm -rf dist",
15
18
  "prepublishOnly": "npm run clean && npm run build",
16
- "package": "npm run clean && npm run build && npm run package",
17
- "package:macos": "npm run build && pkg dist/bin/vibe-guard.js --targets node18-macos-x64 --out-path binaries",
18
- "package:linux": "npm run build && pkg dist/bin/vibe-guard.js --targets node18-linux-x64 --out-path binaries",
19
+ "package": "npm run clean && npm run build && npm run package:all",
20
+ "package:all": "npm run package:macos && npm run package:linux && npm run package:windows",
21
+ "package:macos": "npm run build && pkg dist/bin/vibe-guard.js --targets node18-macos-x64,node18-macos-arm64 --out-path binaries",
22
+ "package:linux": "npm run build && pkg dist/bin/vibe-guard.js --targets node18-linux-x64,node18-linux-arm64 --out-path binaries",
19
23
  "package:windows": "npm run build && pkg dist/bin/vibe-guard.js --targets node18-win-x64 --out-path binaries",
20
- "dist": "npm run clean && npm run build && npm run package"
24
+ "dist": "npm run clean && npm run build && npm run package:all",
25
+ "maintenance:check": "node scripts/maintenance.js check",
26
+ "maintenance:update": "node scripts/maintenance.js update",
27
+ "maintenance:full": "node scripts/maintenance.js full",
28
+ "preversion": "npm test",
29
+ "version": "git add -A src",
30
+ "postversion": "git push && git push --tags"
21
31
  },
22
32
  "keywords": [
23
33
  "security",
@@ -27,9 +37,17 @@
27
37
  "typescript",
28
38
  "javascript",
29
39
  "secrets",
30
- "authentication"
40
+ "authentication",
41
+ "security-scanner",
42
+ "code-security",
43
+ "vulnerability-detection",
44
+ "security-audit",
45
+ "code-analysis"
46
+ ],
47
+ "author": "Josef <devjosef@github.com>",
48
+ "maintainers": [
49
+ "Josef <devjosef@github.com>"
31
50
  ],
32
- "author": "Devjosef <dev.josef1@gmail.com>",
33
51
  "license": "MIT",
34
52
  "repository": {
35
53
  "type": "git",
@@ -42,20 +60,24 @@
42
60
  "files": [
43
61
  "dist/**/*",
44
62
  "README.md",
45
- "LICENSE"
63
+ "LICENSE",
64
+ "CHANGELOG.md"
46
65
  ],
47
66
  "dependencies": {
48
- "commander": "^11.1.0",
49
- "glob": "^10.3.10",
67
+ "chalk": "^4.1.2",
50
68
  "cli-table3": "^0.6.3",
51
- "chalk": "^4.1.2"
69
+ "commander": "^14.0.0",
70
+ "glob": "^11.0.2"
52
71
  },
53
72
  "devDependencies": {
54
- "@types/node": "^20.10.0",
55
73
  "@types/glob": "^8.1.0",
56
- "typescript": "^5.3.0",
74
+ "@types/jest": "^29.5.14",
75
+ "@types/node": "^22.15.23",
76
+ "jest": "^29.7.0",
77
+ "pkg": "^5.8.1",
78
+ "ts-jest": "^29.3.4",
57
79
  "ts-node": "^10.9.0",
58
- "pkg": "^5.8.1"
80
+ "typescript": "^5.3.0"
59
81
  },
60
82
  "engines": {
61
83
  "node": ">=16.0.0"
@@ -68,5 +90,12 @@
68
90
  "package.json"
69
91
  ],
70
92
  "outputPath": "binaries"
93
+ },
94
+ "publishConfig": {
95
+ "access": "public"
96
+ },
97
+ "funding": {
98
+ "type": "github",
99
+ "url": "https://github.com/sponsors/Devjosef"
71
100
  }
72
- }
101
+ }