@dotsetlabs/tollgate 0.2.2 → 0.3.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.
- package/README.md +138 -0
- package/dist/analyzers/filesystem.d.ts +5 -0
- package/dist/analyzers/filesystem.d.ts.map +1 -1
- package/dist/analyzers/filesystem.js +61 -7
- package/dist/analyzers/filesystem.js.map +1 -1
- package/dist/analyzers/loader.d.ts +5 -0
- package/dist/analyzers/loader.d.ts.map +1 -1
- package/dist/analyzers/loader.js +112 -6
- package/dist/analyzers/loader.js.map +1 -1
- package/dist/analyzers/prompt-injection.d.ts +1 -0
- package/dist/analyzers/prompt-injection.d.ts.map +1 -1
- package/dist/analyzers/prompt-injection.js +48 -2
- package/dist/analyzers/prompt-injection.js.map +1 -1
- package/dist/analyzers/shell.d.ts +8 -0
- package/dist/analyzers/shell.d.ts.map +1 -1
- package/dist/analyzers/shell.js +109 -8
- package/dist/analyzers/shell.js.map +1 -1
- package/dist/analyzers/sql.d.ts.map +1 -1
- package/dist/analyzers/sql.js +8 -7
- package/dist/analyzers/sql.js.map +1 -1
- package/dist/approval/interactive.d.ts +1 -1
- package/dist/approval/interactive.d.ts.map +1 -1
- package/dist/approval/interactive.js +13 -1
- package/dist/approval/interactive.js.map +1 -1
- package/dist/approval/rate-limiter.d.ts +115 -0
- package/dist/approval/rate-limiter.d.ts.map +1 -0
- package/dist/approval/rate-limiter.js +200 -0
- package/dist/approval/rate-limiter.js.map +1 -0
- package/dist/approval/url-validator.d.ts +51 -0
- package/dist/approval/url-validator.d.ts.map +1 -0
- package/dist/approval/url-validator.js +184 -0
- package/dist/approval/url-validator.js.map +1 -0
- package/dist/approval/webhook.d.ts +48 -0
- package/dist/approval/webhook.d.ts.map +1 -1
- package/dist/approval/webhook.js +89 -0
- package/dist/approval/webhook.js.map +1 -1
- package/dist/audit/integrity.d.ts +107 -0
- package/dist/audit/integrity.d.ts.map +1 -0
- package/dist/audit/integrity.js +191 -0
- package/dist/audit/integrity.js.map +1 -0
- package/dist/audit/logger.d.ts.map +1 -1
- package/dist/audit/logger.js +6 -5
- package/dist/audit/logger.js.map +1 -1
- package/dist/audit/redaction.js +6 -4
- package/dist/audit/redaction.js.map +1 -1
- package/dist/cli/commands/guard.d.ts +97 -0
- package/dist/cli/commands/guard.d.ts.map +1 -0
- package/dist/cli/commands/guard.js +456 -0
- package/dist/cli/commands/guard.js.map +1 -0
- package/dist/cli/commands/serve.js +1 -1
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/input-validation.d.ts +83 -0
- package/dist/cli/input-validation.d.ts.map +1 -0
- package/dist/cli/input-validation.js +237 -0
- package/dist/cli/input-validation.js.map +1 -0
- package/dist/cli/ui.js +2 -2
- package/dist/cli/ui.js.map +1 -1
- package/dist/guard/alternatives/index.d.ts +68 -0
- package/dist/guard/alternatives/index.d.ts.map +1 -0
- package/dist/guard/alternatives/index.js +224 -0
- package/dist/guard/alternatives/index.js.map +1 -0
- package/dist/guard/alternatives/registry.d.ts +16 -0
- package/dist/guard/alternatives/registry.d.ts.map +1 -0
- package/dist/guard/alternatives/registry.js +518 -0
- package/dist/guard/alternatives/registry.js.map +1 -0
- package/dist/guard/alternatives/types.d.ts +86 -0
- package/dist/guard/alternatives/types.d.ts.map +1 -0
- package/dist/guard/alternatives/types.js +5 -0
- package/dist/guard/alternatives/types.js.map +1 -0
- package/dist/guard/approval/enhanced-terminal.d.ts +110 -0
- package/dist/guard/approval/enhanced-terminal.d.ts.map +1 -0
- package/dist/guard/approval/enhanced-terminal.js +387 -0
- package/dist/guard/approval/enhanced-terminal.js.map +1 -0
- package/dist/guard/config.d.ts +80 -0
- package/dist/guard/config.d.ts.map +1 -0
- package/dist/guard/config.js +260 -0
- package/dist/guard/config.js.map +1 -0
- package/dist/guard/context/directory.d.ts +35 -0
- package/dist/guard/context/directory.d.ts.map +1 -0
- package/dist/guard/context/directory.js +243 -0
- package/dist/guard/context/directory.js.map +1 -0
- package/dist/guard/context/environment.d.ts +31 -0
- package/dist/guard/context/environment.d.ts.map +1 -0
- package/dist/guard/context/environment.js +204 -0
- package/dist/guard/context/environment.js.map +1 -0
- package/dist/guard/context/git.d.ts +52 -0
- package/dist/guard/context/git.d.ts.map +1 -0
- package/dist/guard/context/git.js +278 -0
- package/dist/guard/context/git.js.map +1 -0
- package/dist/guard/context/index.d.ts +64 -0
- package/dist/guard/context/index.d.ts.map +1 -0
- package/dist/guard/context/index.js +227 -0
- package/dist/guard/context/index.js.map +1 -0
- package/dist/guard/context/project.d.ts +47 -0
- package/dist/guard/context/project.d.ts.map +1 -0
- package/dist/guard/context/project.js +281 -0
- package/dist/guard/context/project.js.map +1 -0
- package/dist/guard/context/types.d.ts +152 -0
- package/dist/guard/context/types.d.ts.map +1 -0
- package/dist/guard/context/types.js +7 -0
- package/dist/guard/context/types.js.map +1 -0
- package/dist/guard/engine.d.ts +107 -0
- package/dist/guard/engine.d.ts.map +1 -0
- package/dist/guard/engine.js +430 -0
- package/dist/guard/engine.js.map +1 -0
- package/dist/guard/enhanced-engine.d.ts +151 -0
- package/dist/guard/enhanced-engine.d.ts.map +1 -0
- package/dist/guard/enhanced-engine.js +622 -0
- package/dist/guard/enhanced-engine.js.map +1 -0
- package/dist/guard/hooks/index.d.ts +50 -0
- package/dist/guard/hooks/index.d.ts.map +1 -0
- package/dist/guard/hooks/index.js +325 -0
- package/dist/guard/hooks/index.js.map +1 -0
- package/dist/guard/index.d.ts +29 -0
- package/dist/guard/index.d.ts.map +1 -0
- package/dist/guard/index.js +31 -0
- package/dist/guard/index.js.map +1 -0
- package/dist/guard/learning/index.d.ts +136 -0
- package/dist/guard/learning/index.d.ts.map +1 -0
- package/dist/guard/learning/index.js +314 -0
- package/dist/guard/learning/index.js.map +1 -0
- package/dist/guard/learning/pattern-extractor.d.ts +50 -0
- package/dist/guard/learning/pattern-extractor.d.ts.map +1 -0
- package/dist/guard/learning/pattern-extractor.js +372 -0
- package/dist/guard/learning/pattern-extractor.js.map +1 -0
- package/dist/guard/learning/rule-suggester.d.ts +67 -0
- package/dist/guard/learning/rule-suggester.d.ts.map +1 -0
- package/dist/guard/learning/rule-suggester.js +345 -0
- package/dist/guard/learning/rule-suggester.js.map +1 -0
- package/dist/guard/learning/types.d.ts +211 -0
- package/dist/guard/learning/types.d.ts.map +1 -0
- package/dist/guard/learning/types.js +18 -0
- package/dist/guard/learning/types.js.map +1 -0
- package/dist/guard/preview/effects.d.ts +15 -0
- package/dist/guard/preview/effects.d.ts.map +1 -0
- package/dist/guard/preview/effects.js +413 -0
- package/dist/guard/preview/effects.js.map +1 -0
- package/dist/guard/preview/index.d.ts +49 -0
- package/dist/guard/preview/index.d.ts.map +1 -0
- package/dist/guard/preview/index.js +196 -0
- package/dist/guard/preview/index.js.map +1 -0
- package/dist/guard/preview/parser.d.ts +34 -0
- package/dist/guard/preview/parser.d.ts.map +1 -0
- package/dist/guard/preview/parser.js +292 -0
- package/dist/guard/preview/parser.js.map +1 -0
- package/dist/guard/preview/types.d.ts +140 -0
- package/dist/guard/preview/types.d.ts.map +1 -0
- package/dist/guard/preview/types.js +5 -0
- package/dist/guard/preview/types.js.map +1 -0
- package/dist/guard/reversibility/index.d.ts +88 -0
- package/dist/guard/reversibility/index.d.ts.map +1 -0
- package/dist/guard/reversibility/index.js +310 -0
- package/dist/guard/reversibility/index.js.map +1 -0
- package/dist/guard/types.d.ts +192 -0
- package/dist/guard/types.d.ts.map +1 -0
- package/dist/guard/types.js +8 -0
- package/dist/guard/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/manager.d.ts.map +1 -1
- package/dist/orchestrator/manager.js +6 -1
- package/dist/orchestrator/manager.js.map +1 -1
- package/dist/policy/engine.d.ts.map +1 -1
- package/dist/policy/engine.js +11 -3
- package/dist/policy/engine.js.map +1 -1
- package/dist/policy/parser.d.ts.map +1 -1
- package/dist/policy/parser.js +3 -0
- package/dist/policy/parser.js.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/server.js +8 -6
- package/dist/proxy/server.js.map +1 -1
- package/dist/session/manager.d.ts +2 -2
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +106 -88
- package/dist/session/manager.js.map +1 -1
- package/dist/session/signing.d.ts +88 -0
- package/dist/session/signing.d.ts.map +1 -0
- package/dist/session/signing.js +166 -0
- package/dist/session/signing.js.map +1 -0
- package/dist/session/types.d.ts +2 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/utils/security-logger.d.ts +146 -0
- package/dist/utils/security-logger.d.ts.map +1 -0
- package/dist/utils/security-logger.js +222 -0
- package/dist/utils/security-logger.js.map +1 -0
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +7 -1
- package/dist/wizard.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Input Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates and sanitizes CLI inputs to prevent injection attacks.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/input-validation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Validate a server name from CLI input.
|
|
10
|
+
*
|
|
11
|
+
* Server names must be:
|
|
12
|
+
* - Alphanumeric with underscores and dashes
|
|
13
|
+
* - Between 1 and 64 characters
|
|
14
|
+
* - No path separators or special characters
|
|
15
|
+
*
|
|
16
|
+
* @param name - Server name to validate
|
|
17
|
+
* @returns Validated server name
|
|
18
|
+
* @throws Error if name is invalid
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateServerName(name: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Validate a file path from CLI input.
|
|
23
|
+
*
|
|
24
|
+
* Validates that paths don't contain:
|
|
25
|
+
* - Null bytes
|
|
26
|
+
* - Path traversal sequences
|
|
27
|
+
* - Shell metacharacters
|
|
28
|
+
*
|
|
29
|
+
* @param path - Path to validate
|
|
30
|
+
* @returns Validated path
|
|
31
|
+
* @throws Error if path is invalid
|
|
32
|
+
*/
|
|
33
|
+
export declare function validatePath(path: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Validate a tool name from CLI input.
|
|
36
|
+
*
|
|
37
|
+
* @param name - Tool name to validate
|
|
38
|
+
* @returns Validated tool name
|
|
39
|
+
* @throws Error if name is invalid
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateToolName(name: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Validate a glob pattern from CLI input.
|
|
44
|
+
*
|
|
45
|
+
* @param pattern - Glob pattern to validate
|
|
46
|
+
* @returns Validated pattern
|
|
47
|
+
* @throws Error if pattern is invalid
|
|
48
|
+
*/
|
|
49
|
+
export declare function validateGlobPattern(pattern: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Validate a duration string from CLI input.
|
|
52
|
+
*
|
|
53
|
+
* @param duration - Duration string (e.g., "5min", "1h", "30s")
|
|
54
|
+
* @returns Validated duration
|
|
55
|
+
* @throws Error if duration is invalid
|
|
56
|
+
*/
|
|
57
|
+
export declare function validateDuration(duration: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Sanitize a string for safe logging.
|
|
60
|
+
* Removes control characters and truncates long strings.
|
|
61
|
+
*
|
|
62
|
+
* @param input - String to sanitize
|
|
63
|
+
* @param maxLength - Maximum length (default: 1000)
|
|
64
|
+
* @returns Sanitized string
|
|
65
|
+
*/
|
|
66
|
+
export declare function sanitizeForLogging(input: string, maxLength?: number): string;
|
|
67
|
+
/**
|
|
68
|
+
* Validate port number from CLI input.
|
|
69
|
+
*
|
|
70
|
+
* @param port - Port number or string
|
|
71
|
+
* @returns Validated port number
|
|
72
|
+
* @throws Error if port is invalid
|
|
73
|
+
*/
|
|
74
|
+
export declare function validatePort(port: number | string): number;
|
|
75
|
+
/**
|
|
76
|
+
* Validate a timeout value from CLI input.
|
|
77
|
+
*
|
|
78
|
+
* @param timeout - Timeout in milliseconds
|
|
79
|
+
* @returns Validated timeout
|
|
80
|
+
* @throws Error if timeout is invalid
|
|
81
|
+
*/
|
|
82
|
+
export declare function validateTimeout(timeout: number | string): number;
|
|
83
|
+
//# sourceMappingURL=input-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-validation.d.ts","sourceRoot":"","sources":["../../src/cli/input-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmCjD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBrD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwB3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2BzD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM,CAqBlF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAqB1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAiBhE"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Input Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates and sanitizes CLI inputs to prevent injection attacks.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/input-validation
|
|
7
|
+
*/
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Validation Functions
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Validate a server name from CLI input.
|
|
13
|
+
*
|
|
14
|
+
* Server names must be:
|
|
15
|
+
* - Alphanumeric with underscores and dashes
|
|
16
|
+
* - Between 1 and 64 characters
|
|
17
|
+
* - No path separators or special characters
|
|
18
|
+
*
|
|
19
|
+
* @param name - Server name to validate
|
|
20
|
+
* @returns Validated server name
|
|
21
|
+
* @throws Error if name is invalid
|
|
22
|
+
*/
|
|
23
|
+
export function validateServerName(name) {
|
|
24
|
+
if (!name || typeof name !== 'string') {
|
|
25
|
+
throw new Error('Server name is required');
|
|
26
|
+
}
|
|
27
|
+
const trimmed = name.trim();
|
|
28
|
+
if (trimmed.length === 0) {
|
|
29
|
+
throw new Error('Server name cannot be empty');
|
|
30
|
+
}
|
|
31
|
+
if (trimmed.length > 64) {
|
|
32
|
+
throw new Error('Server name must be 64 characters or fewer');
|
|
33
|
+
}
|
|
34
|
+
// Allow alphanumeric, underscores, and dashes only
|
|
35
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(trimmed)) {
|
|
36
|
+
throw new Error('Server name can only contain letters, numbers, underscores, and dashes');
|
|
37
|
+
}
|
|
38
|
+
// Prevent reserved names
|
|
39
|
+
const reservedNames = ['all', 'none', 'default', '__proto__', 'constructor'];
|
|
40
|
+
if (reservedNames.includes(trimmed.toLowerCase())) {
|
|
41
|
+
throw new Error(`'${trimmed}' is a reserved name`);
|
|
42
|
+
}
|
|
43
|
+
return trimmed;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validate a file path from CLI input.
|
|
47
|
+
*
|
|
48
|
+
* Validates that paths don't contain:
|
|
49
|
+
* - Null bytes
|
|
50
|
+
* - Path traversal sequences
|
|
51
|
+
* - Shell metacharacters
|
|
52
|
+
*
|
|
53
|
+
* @param path - Path to validate
|
|
54
|
+
* @returns Validated path
|
|
55
|
+
* @throws Error if path is invalid
|
|
56
|
+
*/
|
|
57
|
+
export function validatePath(path) {
|
|
58
|
+
if (!path || typeof path !== 'string') {
|
|
59
|
+
throw new Error('Path is required');
|
|
60
|
+
}
|
|
61
|
+
const trimmed = path.trim();
|
|
62
|
+
if (trimmed.length === 0) {
|
|
63
|
+
throw new Error('Path cannot be empty');
|
|
64
|
+
}
|
|
65
|
+
// Check for null bytes (injection attack)
|
|
66
|
+
if (trimmed.includes('\0')) {
|
|
67
|
+
throw new Error('Path contains invalid characters (null byte)');
|
|
68
|
+
}
|
|
69
|
+
// Check for path traversal
|
|
70
|
+
if (trimmed.includes('..')) {
|
|
71
|
+
throw new Error('Path traversal sequences (..) are not allowed');
|
|
72
|
+
}
|
|
73
|
+
// Check for shell metacharacters
|
|
74
|
+
const shellMetachars = ['|', '&', ';', '$', '`', '(', ')', '{', '}', '<', '>', '!', '*', '?', '[', ']', '#'];
|
|
75
|
+
for (const char of shellMetachars) {
|
|
76
|
+
if (trimmed.includes(char)) {
|
|
77
|
+
throw new Error(`Path contains shell metacharacter: ${char}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Check for newlines (command injection)
|
|
81
|
+
if (/[\r\n]/.test(trimmed)) {
|
|
82
|
+
throw new Error('Path cannot contain newlines');
|
|
83
|
+
}
|
|
84
|
+
return trimmed;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Validate a tool name from CLI input.
|
|
88
|
+
*
|
|
89
|
+
* @param name - Tool name to validate
|
|
90
|
+
* @returns Validated tool name
|
|
91
|
+
* @throws Error if name is invalid
|
|
92
|
+
*/
|
|
93
|
+
export function validateToolName(name) {
|
|
94
|
+
if (!name || typeof name !== 'string') {
|
|
95
|
+
throw new Error('Tool name is required');
|
|
96
|
+
}
|
|
97
|
+
const trimmed = name.trim();
|
|
98
|
+
if (trimmed.length === 0) {
|
|
99
|
+
throw new Error('Tool name cannot be empty');
|
|
100
|
+
}
|
|
101
|
+
if (trimmed.length > 128) {
|
|
102
|
+
throw new Error('Tool name must be 128 characters or fewer');
|
|
103
|
+
}
|
|
104
|
+
// Allow alphanumeric, underscores, dashes, and dots (for namespacing)
|
|
105
|
+
if (!/^[a-zA-Z0-9_.-]+$/.test(trimmed)) {
|
|
106
|
+
throw new Error('Tool name can only contain letters, numbers, underscores, dashes, and dots');
|
|
107
|
+
}
|
|
108
|
+
return trimmed;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Validate a glob pattern from CLI input.
|
|
112
|
+
*
|
|
113
|
+
* @param pattern - Glob pattern to validate
|
|
114
|
+
* @returns Validated pattern
|
|
115
|
+
* @throws Error if pattern is invalid
|
|
116
|
+
*/
|
|
117
|
+
export function validateGlobPattern(pattern) {
|
|
118
|
+
if (!pattern || typeof pattern !== 'string') {
|
|
119
|
+
throw new Error('Pattern is required');
|
|
120
|
+
}
|
|
121
|
+
const trimmed = pattern.trim();
|
|
122
|
+
if (trimmed.length === 0) {
|
|
123
|
+
throw new Error('Pattern cannot be empty');
|
|
124
|
+
}
|
|
125
|
+
if (trimmed.length > 256) {
|
|
126
|
+
throw new Error('Pattern must be 256 characters or fewer');
|
|
127
|
+
}
|
|
128
|
+
// Glob patterns can contain *, ?, [] but not shell injection chars
|
|
129
|
+
const dangerousChars = ['|', '&', ';', '$', '`', '(', ')', '{', '}', '<', '>', '!', '#', '\0'];
|
|
130
|
+
for (const char of dangerousChars) {
|
|
131
|
+
if (trimmed.includes(char)) {
|
|
132
|
+
throw new Error(`Pattern contains invalid character: ${char}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return trimmed;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Validate a duration string from CLI input.
|
|
139
|
+
*
|
|
140
|
+
* @param duration - Duration string (e.g., "5min", "1h", "30s")
|
|
141
|
+
* @returns Validated duration
|
|
142
|
+
* @throws Error if duration is invalid
|
|
143
|
+
*/
|
|
144
|
+
export function validateDuration(duration) {
|
|
145
|
+
if (!duration || typeof duration !== 'string') {
|
|
146
|
+
throw new Error('Duration is required');
|
|
147
|
+
}
|
|
148
|
+
const trimmed = duration.trim().toLowerCase();
|
|
149
|
+
// Predefined durations
|
|
150
|
+
const predefined = ['once', '5min', '15min', '30min', 'session'];
|
|
151
|
+
if (predefined.includes(trimmed)) {
|
|
152
|
+
return trimmed;
|
|
153
|
+
}
|
|
154
|
+
// Numeric with unit
|
|
155
|
+
const match = trimmed.match(/^(\d+)(s|m|min|h|hr)$/);
|
|
156
|
+
if (!match) {
|
|
157
|
+
throw new Error('Duration must be a number followed by a unit (s, m, min, h) or a predefined value (once, 5min, 15min, 30min, session)');
|
|
158
|
+
}
|
|
159
|
+
const value = parseInt(match[1], 10);
|
|
160
|
+
if (value <= 0 || value > 86400) {
|
|
161
|
+
throw new Error('Duration must be between 1 second and 24 hours');
|
|
162
|
+
}
|
|
163
|
+
return trimmed;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Sanitize a string for safe logging.
|
|
167
|
+
* Removes control characters and truncates long strings.
|
|
168
|
+
*
|
|
169
|
+
* @param input - String to sanitize
|
|
170
|
+
* @param maxLength - Maximum length (default: 1000)
|
|
171
|
+
* @returns Sanitized string
|
|
172
|
+
*/
|
|
173
|
+
export function sanitizeForLogging(input, maxLength = 1000) {
|
|
174
|
+
if (!input || typeof input !== 'string') {
|
|
175
|
+
return '';
|
|
176
|
+
}
|
|
177
|
+
// Remove control characters (ASCII 0-31 and 127)
|
|
178
|
+
// Using character code filtering instead of regex to avoid lint issues
|
|
179
|
+
let sanitized = '';
|
|
180
|
+
for (const char of input) {
|
|
181
|
+
const code = char.charCodeAt(0);
|
|
182
|
+
if (code >= 32 && code !== 127) {
|
|
183
|
+
sanitized += char;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Truncate with ellipsis
|
|
187
|
+
if (sanitized.length > maxLength) {
|
|
188
|
+
sanitized = sanitized.slice(0, maxLength - 3) + '...';
|
|
189
|
+
}
|
|
190
|
+
return sanitized;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Validate port number from CLI input.
|
|
194
|
+
*
|
|
195
|
+
* @param port - Port number or string
|
|
196
|
+
* @returns Validated port number
|
|
197
|
+
* @throws Error if port is invalid
|
|
198
|
+
*/
|
|
199
|
+
export function validatePort(port) {
|
|
200
|
+
const portNum = typeof port === 'string' ? parseInt(port, 10) : port;
|
|
201
|
+
if (isNaN(portNum)) {
|
|
202
|
+
throw new Error('Port must be a number');
|
|
203
|
+
}
|
|
204
|
+
if (!Number.isInteger(portNum)) {
|
|
205
|
+
throw new Error('Port must be an integer');
|
|
206
|
+
}
|
|
207
|
+
if (portNum < 1 || portNum > 65535) {
|
|
208
|
+
throw new Error('Port must be between 1 and 65535');
|
|
209
|
+
}
|
|
210
|
+
// Warn about privileged ports (but allow them)
|
|
211
|
+
if (portNum < 1024) {
|
|
212
|
+
// Could add a warning here in a real implementation
|
|
213
|
+
}
|
|
214
|
+
return portNum;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Validate a timeout value from CLI input.
|
|
218
|
+
*
|
|
219
|
+
* @param timeout - Timeout in milliseconds
|
|
220
|
+
* @returns Validated timeout
|
|
221
|
+
* @throws Error if timeout is invalid
|
|
222
|
+
*/
|
|
223
|
+
export function validateTimeout(timeout) {
|
|
224
|
+
const timeoutNum = typeof timeout === 'string' ? parseInt(timeout, 10) : timeout;
|
|
225
|
+
if (isNaN(timeoutNum)) {
|
|
226
|
+
throw new Error('Timeout must be a number');
|
|
227
|
+
}
|
|
228
|
+
if (!Number.isInteger(timeoutNum)) {
|
|
229
|
+
throw new Error('Timeout must be an integer');
|
|
230
|
+
}
|
|
231
|
+
// Minimum 1 second, maximum 5 minutes
|
|
232
|
+
if (timeoutNum < 1000 || timeoutNum > 300000) {
|
|
233
|
+
throw new Error('Timeout must be between 1000ms (1 second) and 300000ms (5 minutes)');
|
|
234
|
+
}
|
|
235
|
+
return timeoutNum;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=input-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-validation.js","sourceRoot":"","sources":["../../src/cli/input-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/ui.js
CHANGED
|
@@ -200,12 +200,12 @@ class CLIUI {
|
|
|
200
200
|
return Math.max(h.length, maxRowWidth);
|
|
201
201
|
});
|
|
202
202
|
// Header
|
|
203
|
-
const headerLine = headers.map((h, i) => h.padEnd(widths[i])).join(' ');
|
|
203
|
+
const headerLine = headers.map((h, i) => h.padEnd(widths[i] ?? 0)).join(' ');
|
|
204
204
|
this.write(this.color(chalk.bold, headerLine));
|
|
205
205
|
this.write(this.color(chalk.dim, widths.map(w => '─'.repeat(w)).join('──')));
|
|
206
206
|
// Rows
|
|
207
207
|
for (const row of rows) {
|
|
208
|
-
const rowLine = row.map((cell, i) => (cell ?? '').padEnd(widths[i])).join(' ');
|
|
208
|
+
const rowLine = row.map((cell, i) => (cell ?? '').padEnd(widths[i] ?? 0)).join(' ');
|
|
209
209
|
this.write(rowLine);
|
|
210
210
|
}
|
|
211
211
|
}
|
package/dist/cli/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safer Alternatives Engine for Shell Guardian
|
|
3
|
+
*
|
|
4
|
+
* Suggests safer ways to accomplish the same goal as a risky command.
|
|
5
|
+
*/
|
|
6
|
+
import type { SaferAlternative, AlternativeResult, AlternativesFinderOptions } from './types.js';
|
|
7
|
+
import type { EnhancedGuardContext } from '../context/types.js';
|
|
8
|
+
import type { AnalysisResult } from '../../analyzers/types.js';
|
|
9
|
+
export type { SaferAlternative, AlternativeResult, AlternativesFinderOptions, AlternativeCategory, AlternativeMapping, AlternativeGeneratorContext, } from './types.js';
|
|
10
|
+
export { getAlternativeMappings, ALTERNATIVE_MAPPINGS } from './registry.js';
|
|
11
|
+
/**
|
|
12
|
+
* Find safer alternatives for a command.
|
|
13
|
+
*
|
|
14
|
+
* @param command - The command to find alternatives for
|
|
15
|
+
* @param context - Enhanced context information
|
|
16
|
+
* @param analysis - Risk analysis of the command
|
|
17
|
+
* @param options - Finder options
|
|
18
|
+
* @returns Alternative suggestions
|
|
19
|
+
*/
|
|
20
|
+
export declare function findAlternatives(command: string, context: EnhancedGuardContext, analysis?: AnalysisResult, options?: Partial<AlternativesFinderOptions>): AlternativeResult;
|
|
21
|
+
/**
|
|
22
|
+
* Format alternatives for display.
|
|
23
|
+
*
|
|
24
|
+
* @param result - Alternative result to format
|
|
25
|
+
* @returns Formatted string for terminal display
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatAlternatives(result: AlternativeResult): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get the safest alternative if available.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getSafestAlternative(result: AlternativeResult): SaferAlternative | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Get only reversible alternatives.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getReversibleAlternatives(result: AlternativeResult): SaferAlternative[];
|
|
36
|
+
/**
|
|
37
|
+
* Check if better alternatives exist (significant safety improvement).
|
|
38
|
+
*/
|
|
39
|
+
export declare function hasBetterAlternatives(result: AlternativeResult, minImprovement?: number): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Create a summary of available alternatives.
|
|
42
|
+
*/
|
|
43
|
+
export declare function summarizeAlternatives(result: AlternativeResult): string;
|
|
44
|
+
/**
|
|
45
|
+
* AlternativesFinder class for stateful alternative finding.
|
|
46
|
+
*/
|
|
47
|
+
export declare class AlternativesFinder {
|
|
48
|
+
private readonly options;
|
|
49
|
+
private toolCache;
|
|
50
|
+
constructor(options?: Partial<AlternativesFinderOptions>);
|
|
51
|
+
/**
|
|
52
|
+
* Find alternatives for a command.
|
|
53
|
+
*/
|
|
54
|
+
find(command: string, context: EnhancedGuardContext, analysis?: AnalysisResult): AlternativeResult;
|
|
55
|
+
/**
|
|
56
|
+
* Check if a tool is available (cached).
|
|
57
|
+
*/
|
|
58
|
+
isToolAvailable(toolName: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get install instructions for missing tools.
|
|
61
|
+
*/
|
|
62
|
+
getMissingToolInstructions(result: AlternativeResult): Map<string, string>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create an alternatives finder instance.
|
|
66
|
+
*/
|
|
67
|
+
export declare function createAlternativesFinder(options?: Partial<AlternativesFinderOptions>): AlternativesFinder;
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/guard/alternatives/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAW7E;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC3C,iBAAiB,CAqFnB;AAcD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6BpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,CAM5F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB,EAAE,CAEvF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,cAAc,SAAK,GAClB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAYvE;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,SAAS,CAAmC;gBAExC,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAIxD;;OAEG;IACH,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,cAAc,GACxB,iBAAiB;IAIpB;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAU1C;;OAEG;IACH,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAc3E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC3C,kBAAkB,CAEpB"}
|