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 +33 -0
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +11 -5
- package/dist/reporter.js.map +1 -1
- package/dist/rules/directory-traversal.d.ts.map +1 -1
- package/dist/rules/directory-traversal.js +59 -17
- package/dist/rules/directory-traversal.js.map +1 -1
- package/package.json +45 -16
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
|
package/dist/reporter.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
90
|
-
|
|
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 =
|
|
98
|
+
const parts = sanitizedPath.split('/');
|
|
93
99
|
if (parts.length <= 2) {
|
|
94
|
-
return
|
|
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 '...' +
|
|
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)})`);
|
package/dist/reporter.js.map
CHANGED
|
@@ -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,
|
|
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(
|
|
101
|
+
const matches = this.findMatches(content, pattern);
|
|
57
102
|
for (const { line, column, lineContent } of matches) {
|
|
58
|
-
|
|
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 =
|
|
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":";;;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,SAAS;YACT,aAAa;YACb,oBAAoB;
|
|
1
|
+
{"version":3,"file":"directory-traversal.js","sourceRoot":"","sources":["../../src/rules/directory-traversal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe-guard",
|
|
3
|
-
"version": "1.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 &&
|
|
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:
|
|
18
|
-
"package:
|
|
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
|
-
"
|
|
49
|
-
"glob": "^10.3.10",
|
|
67
|
+
"chalk": "^4.1.2",
|
|
50
68
|
"cli-table3": "^0.6.3",
|
|
51
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
+
}
|