guardrail-cli 2.5.0 → 2.5.2
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/LICENSE +21 -21
- package/README.md +548 -532
- package/dist/commands/autopilot-decision.d.ts +24 -0
- package/dist/commands/autopilot-decision.d.ts.map +1 -0
- package/dist/commands/autopilot-decision.js +304 -0
- package/dist/commands/autopilot-decision.js.map +1 -0
- package/dist/commands/autopilot.d.ts +33 -0
- package/dist/commands/autopilot.d.ts.map +1 -0
- package/dist/commands/autopilot.js +1539 -0
- package/dist/commands/autopilot.js.map +1 -0
- package/dist/commands/baseline.d.ts.map +1 -1
- package/dist/commands/baseline.js.map +1 -1
- package/dist/commands/cache.d.ts.map +1 -1
- package/dist/commands/cache.js +3 -1
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +340 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/debug.d.ts +78 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +381 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/evidence.d.ts.map +1 -1
- package/dist/commands/evidence.js +23 -7
- package/dist/commands/evidence.js.map +1 -1
- package/dist/commands/index.d.ts +5 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +16 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/preview.d.ts +54 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +352 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/quality/check.d.ts +31 -0
- package/dist/commands/quality/check.d.ts.map +1 -0
- package/dist/commands/quality/check.js +242 -0
- package/dist/commands/quality/check.js.map +1 -0
- package/dist/commands/quality/index.d.ts +8 -0
- package/dist/commands/quality/index.d.ts.map +1 -0
- package/dist/commands/quality/index.js +14 -0
- package/dist/commands/quality/index.js.map +1 -0
- package/dist/commands/quality/setup-quality.d.ts +23 -0
- package/dist/commands/quality/setup-quality.d.ts.map +1 -0
- package/dist/commands/quality/setup-quality.js +452 -0
- package/dist/commands/quality/setup-quality.js.map +1 -0
- package/dist/commands/quality/tidy.d.ts +41 -0
- package/dist/commands/quality/tidy.d.ts.map +1 -0
- package/dist/commands/quality/tidy.js +466 -0
- package/dist/commands/quality/tidy.js.map +1 -0
- package/dist/commands/quality/utils.d.ts +73 -0
- package/dist/commands/quality/utils.d.ts.map +1 -0
- package/dist/commands/quality/utils.js +158 -0
- package/dist/commands/quality/utils.js.map +1 -0
- package/dist/commands/scan-secrets.d.ts.map +1 -1
- package/dist/commands/scan-secrets.js +35 -18
- package/dist/commands/scan-secrets.js.map +1 -1
- package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +1 -1
- package/dist/commands/scan-vulnerabilities-enhanced.js +40 -14
- package/dist/commands/scan-vulnerabilities-enhanced.js.map +1 -1
- package/dist/commands/scan-vulnerabilities-osv.d.ts.map +1 -1
- package/dist/commands/scan-vulnerabilities-osv.js +74 -43
- package/dist/commands/scan-vulnerabilities-osv.js.map +1 -1
- package/dist/commands/scan-vulnerabilities.d.ts.map +1 -1
- package/dist/commands/scan-vulnerabilities.js +82 -21
- package/dist/commands/scan-vulnerabilities.js.map +1 -1
- package/dist/commands/secrets-allowlist.d.ts.map +1 -1
- package/dist/commands/secrets-allowlist.js.map +1 -1
- package/dist/fix/analytics.d.ts +121 -0
- package/dist/fix/analytics.d.ts.map +1 -0
- package/dist/fix/analytics.js +289 -0
- package/dist/fix/analytics.js.map +1 -0
- package/dist/fix/applicator.d.ts +21 -2
- package/dist/fix/applicator.d.ts.map +1 -1
- package/dist/fix/applicator.js +109 -6
- package/dist/fix/applicator.js.map +1 -1
- package/dist/fix/audit.d.ts +61 -0
- package/dist/fix/audit.d.ts.map +1 -0
- package/dist/fix/audit.js +149 -0
- package/dist/fix/audit.js.map +1 -0
- package/dist/fix/backup.d.ts +12 -2
- package/dist/fix/backup.d.ts.map +1 -1
- package/dist/fix/backup.js +53 -4
- package/dist/fix/backup.js.map +1 -1
- package/dist/fix/config.d.ts +78 -0
- package/dist/fix/config.d.ts.map +1 -0
- package/dist/fix/config.js +200 -0
- package/dist/fix/config.js.map +1 -0
- package/dist/fix/engine.d.ts.map +1 -1
- package/dist/fix/engine.js +5 -5
- package/dist/fix/engine.js.map +1 -1
- package/dist/fix/impact.d.ts +74 -0
- package/dist/fix/impact.d.ts.map +1 -0
- package/dist/fix/impact.js +281 -0
- package/dist/fix/impact.js.map +1 -0
- package/dist/fix/index.d.ts +3 -0
- package/dist/fix/index.d.ts.map +1 -1
- package/dist/fix/index.js +7 -1
- package/dist/fix/index.js.map +1 -1
- package/dist/fix/interactive.d.ts.map +1 -1
- package/dist/fix/interactive.js +9 -4
- package/dist/fix/interactive.js.map +1 -1
- package/dist/fix/learning.d.ts +109 -0
- package/dist/fix/learning.d.ts.map +1 -0
- package/dist/fix/learning.js +296 -0
- package/dist/fix/learning.js.map +1 -0
- package/dist/fix/metrics.d.ts +106 -0
- package/dist/fix/metrics.d.ts.map +1 -0
- package/dist/fix/metrics.js +138 -0
- package/dist/fix/metrics.js.map +1 -0
- package/dist/fix/parallel.d.ts +69 -0
- package/dist/fix/parallel.d.ts.map +1 -0
- package/dist/fix/parallel.js +203 -0
- package/dist/fix/parallel.js.map +1 -0
- package/dist/fix/report.d.ts +40 -0
- package/dist/fix/report.d.ts.map +1 -0
- package/dist/fix/report.js +212 -0
- package/dist/fix/report.js.map +1 -0
- package/dist/fix/strategy.d.ts +53 -0
- package/dist/fix/strategy.d.ts.map +1 -0
- package/dist/fix/strategy.js +143 -0
- package/dist/fix/strategy.js.map +1 -0
- package/dist/fix/templates.d.ts +58 -0
- package/dist/fix/templates.d.ts.map +1 -0
- package/dist/fix/templates.js +259 -0
- package/dist/fix/templates.js.map +1 -0
- package/dist/fix/testing.d.ts +68 -0
- package/dist/fix/testing.d.ts.map +1 -0
- package/dist/fix/testing.js +245 -0
- package/dist/fix/testing.js.map +1 -0
- package/dist/fix/validation.d.ts +71 -0
- package/dist/fix/validation.d.ts.map +1 -0
- package/dist/fix/validation.js +267 -0
- package/dist/fix/validation.js.map +1 -0
- package/dist/fix/visualization.d.ts +73 -0
- package/dist/fix/visualization.d.ts.map +1 -0
- package/dist/fix/visualization.js +243 -0
- package/dist/fix/visualization.js.map +1 -0
- package/dist/formatters/sarif-enhanced.d.ts.map +1 -1
- package/dist/formatters/sarif-enhanced.js +15 -7
- package/dist/formatters/sarif-enhanced.js.map +1 -1
- package/dist/formatters/sarif-v2.d.ts.map +1 -1
- package/dist/formatters/sarif-v2.js +82 -46
- package/dist/formatters/sarif-v2.js.map +1 -1
- package/dist/formatters/sarif.d.ts.map +1 -1
- package/dist/formatters/sarif.js +49 -22
- package/dist/formatters/sarif.js.map +1 -1
- package/dist/index.js +2175 -482
- package/dist/index.js.map +1 -1
- package/dist/init/ci-generator.d.ts.map +1 -1
- package/dist/init/ci-generator.js +186 -180
- package/dist/init/ci-generator.js.map +1 -1
- package/dist/init/detect-framework.d.ts.map +1 -1
- package/dist/init/detect-framework.js +19 -9
- package/dist/init/detect-framework.js.map +1 -1
- package/dist/init/hooks-installer.d.ts.map +1 -1
- package/dist/init/hooks-installer.js +74 -65
- package/dist/init/hooks-installer.js.map +1 -1
- package/dist/init/index.d.ts +3 -3
- package/dist/init/index.d.ts.map +1 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/templates.d.ts +10 -10
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +9 -4
- package/dist/init/templates.js.map +1 -1
- package/dist/reality/reality-runner.d.ts.map +1 -1
- package/dist/reality/reality-runner.js +23 -7
- package/dist/reality/reality-runner.js.map +1 -1
- package/dist/runtime/auth-utils.d.ts.map +1 -1
- package/dist/runtime/auth-utils.js.map +1 -1
- package/dist/runtime/cli-errors.d.ts +38 -0
- package/dist/runtime/cli-errors.d.ts.map +1 -0
- package/dist/runtime/cli-errors.js +354 -0
- package/dist/runtime/cli-errors.js.map +1 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +27 -10
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/creds.d.ts +5 -0
- package/dist/runtime/creds.d.ts.map +1 -1
- package/dist/runtime/creds.js +6 -1
- package/dist/runtime/creds.js.map +1 -1
- package/dist/runtime/exit-codes.d.ts +30 -4
- package/dist/runtime/exit-codes.d.ts.map +1 -1
- package/dist/runtime/exit-codes.js +40 -14
- package/dist/runtime/exit-codes.js.map +1 -1
- package/dist/runtime/owner-mode.d.ts +48 -0
- package/dist/runtime/owner-mode.d.ts.map +1 -0
- package/dist/runtime/owner-mode.js +284 -0
- package/dist/runtime/owner-mode.js.map +1 -0
- package/dist/runtime/semver.d.ts.map +1 -1
- package/dist/runtime/semver.js +5 -2
- package/dist/runtime/semver.js.map +1 -1
- package/dist/scanner/baseline.d.ts.map +1 -1
- package/dist/scanner/baseline.js +3 -3
- package/dist/scanner/baseline.js.map +1 -1
- package/dist/scanner/incremental.d.ts.map +1 -1
- package/dist/scanner/incremental.js +3 -3
- package/dist/scanner/incremental.js.map +1 -1
- package/dist/scanner/index.d.ts +8 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +15 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/parallel.d.ts.map +1 -1
- package/dist/scanner/parallel.js +28 -7
- package/dist/scanner/parallel.js.map +1 -1
- package/dist/scanner/placeholder-detector.d.ts +56 -0
- package/dist/scanner/placeholder-detector.d.ts.map +1 -0
- package/dist/scanner/placeholder-detector.js +220 -0
- package/dist/scanner/placeholder-detector.js.map +1 -0
- package/dist/scanner/route-detector.d.ts +100 -0
- package/dist/scanner/route-detector.d.ts.map +1 -0
- package/dist/scanner/route-detector.js +455 -0
- package/dist/scanner/route-detector.js.map +1 -0
- package/dist/scanner/scoring.d.ts +67 -0
- package/dist/scanner/scoring.d.ts.map +1 -0
- package/dist/scanner/scoring.js +284 -0
- package/dist/scanner/scoring.js.map +1 -0
- package/dist/ship-baseline.d.ts +56 -0
- package/dist/ship-baseline.d.ts.map +1 -0
- package/dist/ship-baseline.js +194 -0
- package/dist/ship-baseline.js.map +1 -0
- package/dist/ship-config.d.ts +91 -0
- package/dist/ship-config.d.ts.map +1 -0
- package/dist/ship-config.js +133 -0
- package/dist/ship-config.js.map +1 -0
- package/dist/ship-data-loader.d.ts +70 -0
- package/dist/ship-data-loader.d.ts.map +1 -0
- package/dist/ship-data-loader.js +301 -0
- package/dist/ship-data-loader.js.map +1 -0
- package/dist/ui/frame.d.ts.map +1 -1
- package/dist/ui/frame.js +3 -1
- package/dist/ui/frame.js.map +1 -1
- package/dist/utils/ai-helpers.d.ts +72 -0
- package/dist/utils/ai-helpers.d.ts.map +1 -0
- package/dist/utils/ai-helpers.js +339 -0
- package/dist/utils/ai-helpers.js.map +1 -0
- package/dist/utils/validation.d.ts +34 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +160 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +5 -4
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared CLI error formatting utilities
|
|
4
|
+
* Provides user-friendly, actionable error messages with optional debug information
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.isDebugEnabled = isDebugEnabled;
|
|
8
|
+
exports.redactSecrets = redactSecrets;
|
|
9
|
+
exports.formatCliError = formatCliError;
|
|
10
|
+
exports.classifyError = classifyError;
|
|
11
|
+
const colors = {
|
|
12
|
+
reset: '\x1b[0m',
|
|
13
|
+
red: '\x1b[31m',
|
|
14
|
+
yellow: '\x1b[33m',
|
|
15
|
+
cyan: '\x1b[36m',
|
|
16
|
+
green: '\x1b[32m',
|
|
17
|
+
bold: '\x1b[1m',
|
|
18
|
+
dim: '\x1b[2m',
|
|
19
|
+
};
|
|
20
|
+
const c = {
|
|
21
|
+
red: (text) => `${colors.red}${text}${colors.reset}`,
|
|
22
|
+
yellow: (text) => `${colors.yellow}${text}${colors.reset}`,
|
|
23
|
+
cyan: (text) => `${colors.cyan}${text}${colors.reset}`,
|
|
24
|
+
green: (text) => `${colors.green}${text}${colors.reset}`,
|
|
25
|
+
bold: (text) => `${colors.bold}${text}${colors.reset}`,
|
|
26
|
+
dim: (text) => `${colors.dim}${text}${colors.reset}`,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Check if debug mode is enabled from argv or environment
|
|
30
|
+
*/
|
|
31
|
+
function isDebugEnabled(argv) {
|
|
32
|
+
// Support both array (process.argv) and object (parsed args)
|
|
33
|
+
if (Array.isArray(argv)) {
|
|
34
|
+
return argv.includes('--debug');
|
|
35
|
+
}
|
|
36
|
+
if (argv && typeof argv === 'object' && !Array.isArray(argv)) {
|
|
37
|
+
return !!argv.debug || !!argv.verbose;
|
|
38
|
+
}
|
|
39
|
+
return !!(process.env.DEBUG ||
|
|
40
|
+
process.env.GUARDRAIL_DEBUG ||
|
|
41
|
+
process.argv.includes('--debug'));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Redact secrets from text to prevent leaking API keys, tokens, etc.
|
|
45
|
+
*/
|
|
46
|
+
function redactSecrets(text) {
|
|
47
|
+
if (!text || typeof text !== 'string') {
|
|
48
|
+
return String(text || '');
|
|
49
|
+
}
|
|
50
|
+
let redacted = text;
|
|
51
|
+
// Redact API keys (apikey=, api_key=, apiKey=)
|
|
52
|
+
redacted = redacted.replace(/(?:apikey|api_key|apiKey)\s*=\s*([^\s"'&;]+)/gi, (match, key) => {
|
|
53
|
+
if (key.length > 8) {
|
|
54
|
+
return match.replace(key, key.substring(0, 4) + '***' + key.substring(key.length - 4));
|
|
55
|
+
}
|
|
56
|
+
return match.replace(key, '***');
|
|
57
|
+
});
|
|
58
|
+
// Redact tokens (token=, access_token=, bearer tokens)
|
|
59
|
+
redacted = redacted.replace(/(?:token|access_token|refresh_token)\s*=\s*([^\s"'&;]+)/gi, (match, token) => {
|
|
60
|
+
if (token.length > 8) {
|
|
61
|
+
return match.replace(token, token.substring(0, 4) + '***' + token.substring(token.length - 4));
|
|
62
|
+
}
|
|
63
|
+
return match.replace(token, '***');
|
|
64
|
+
});
|
|
65
|
+
// Redact Authorization headers (Authorization: Bearer, Authorization: Basic)
|
|
66
|
+
redacted = redacted.replace(/Authorization:\s*(?:Bearer|Basic)\s+([^\s"'&;]+)/gi, (match, auth) => {
|
|
67
|
+
if (auth.length > 8) {
|
|
68
|
+
return match.replace(auth, auth.substring(0, 4) + '***' + auth.substring(auth.length - 4));
|
|
69
|
+
}
|
|
70
|
+
return match.replace(auth, '***');
|
|
71
|
+
});
|
|
72
|
+
// Redact common secret patterns
|
|
73
|
+
const secretPatterns = [
|
|
74
|
+
/(?:password|pwd|passwd)\s*=\s*([^\s"'&;]+)/gi,
|
|
75
|
+
/(?:secret|secret_key)\s*=\s*([^\s"'&;]+)/gi,
|
|
76
|
+
/(?:private[_-]?key)\s*=\s*([^\s"'&;]+)/gi,
|
|
77
|
+
];
|
|
78
|
+
for (const pattern of secretPatterns) {
|
|
79
|
+
redacted = redacted.replace(pattern, (match, secret) => {
|
|
80
|
+
return match.replace(secret, '***REDACTED***');
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return redacted;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Extract file path from error message
|
|
87
|
+
*/
|
|
88
|
+
function extractPathFromMessage(message) {
|
|
89
|
+
const pathMatch = message.match(/['"]([^'"]+)['"]/);
|
|
90
|
+
return pathMatch ? pathMatch[1] : null;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Determine error type and extract context
|
|
94
|
+
*/
|
|
95
|
+
function classifyError(err) {
|
|
96
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
97
|
+
const message = error.message || String(err);
|
|
98
|
+
const code = error.code || error.statusCode || error.name;
|
|
99
|
+
// API connection errors
|
|
100
|
+
if (code === 'ECONNREFUSED' ||
|
|
101
|
+
code === 'ECONNRESET' ||
|
|
102
|
+
code === 'ETIMEDOUT' ||
|
|
103
|
+
code === 'ENOTFOUND' ||
|
|
104
|
+
code === 'ENETUNREACH' ||
|
|
105
|
+
error.name === 'NetworkError' ||
|
|
106
|
+
message.includes('connect') ||
|
|
107
|
+
message.includes('network') ||
|
|
108
|
+
message.includes('timeout') ||
|
|
109
|
+
message.includes('ECONN')) {
|
|
110
|
+
return {
|
|
111
|
+
type: 'API_CONNECTION',
|
|
112
|
+
headline: 'Cannot connect to Guardrail API',
|
|
113
|
+
whatHappened: 'Failed to establish connection to the Guardrail service',
|
|
114
|
+
why: [
|
|
115
|
+
'Your internet connection may be down',
|
|
116
|
+
'The Guardrail service may be temporarily unavailable',
|
|
117
|
+
'A firewall or proxy may be blocking the connection',
|
|
118
|
+
],
|
|
119
|
+
whatToDo: [
|
|
120
|
+
'Check your internet connection',
|
|
121
|
+
'Verify the service status at https://status.getguardrail.io',
|
|
122
|
+
'Check firewall/proxy settings if behind a corporate network',
|
|
123
|
+
'Try again in a few moments',
|
|
124
|
+
],
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// File not found errors
|
|
128
|
+
if (code === 'ENOENT' ||
|
|
129
|
+
message.includes('not found') ||
|
|
130
|
+
message.includes('Cannot find') ||
|
|
131
|
+
message.includes('does not exist')) {
|
|
132
|
+
const path = error.path || extractPathFromMessage(message);
|
|
133
|
+
return {
|
|
134
|
+
type: 'FILE_NOT_FOUND',
|
|
135
|
+
headline: 'File or directory not found',
|
|
136
|
+
whatHappened: `The requested file or directory could not be located${path ? `: ${path}` : ''}`,
|
|
137
|
+
why: [
|
|
138
|
+
'The file may have been moved or deleted',
|
|
139
|
+
'The path may be incorrect',
|
|
140
|
+
'You may not have the required files in your project',
|
|
141
|
+
],
|
|
142
|
+
whatToDo: [
|
|
143
|
+
`Verify the path is correct${path ? `: ${path}` : ''}`,
|
|
144
|
+
'Check if the file exists in your project',
|
|
145
|
+
'Ensure you are running the command from the correct directory',
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// Permission errors
|
|
150
|
+
if (code === 'EACCES' ||
|
|
151
|
+
code === 'EPERM' ||
|
|
152
|
+
message.includes('permission') ||
|
|
153
|
+
message.includes('access denied') ||
|
|
154
|
+
message.includes('Permission denied')) {
|
|
155
|
+
return {
|
|
156
|
+
type: 'PERMISSION',
|
|
157
|
+
headline: 'Permission denied',
|
|
158
|
+
whatHappened: 'You do not have permission to perform this operation',
|
|
159
|
+
why: [
|
|
160
|
+
'The file or directory may be owned by another user',
|
|
161
|
+
'Your user account may not have the required privileges',
|
|
162
|
+
'The file system may have restricted access',
|
|
163
|
+
],
|
|
164
|
+
whatToDo: [
|
|
165
|
+
'Check file permissions: `ls -la` (Unix) or check Properties (Windows)',
|
|
166
|
+
'Run with appropriate user privileges',
|
|
167
|
+
'Contact your system administrator if needed',
|
|
168
|
+
],
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
// Configuration errors
|
|
172
|
+
if (code === 'EINVAL' ||
|
|
173
|
+
message.includes('invalid') ||
|
|
174
|
+
message.includes('configuration') ||
|
|
175
|
+
message.includes('config') ||
|
|
176
|
+
message.includes('missing') ||
|
|
177
|
+
error.name === 'ValidationError') {
|
|
178
|
+
return {
|
|
179
|
+
type: 'CONFIGURATION',
|
|
180
|
+
headline: 'Configuration error',
|
|
181
|
+
whatHappened: 'The configuration is invalid or missing required settings',
|
|
182
|
+
why: [
|
|
183
|
+
'Required configuration values may be missing',
|
|
184
|
+
'The configuration file may be malformed',
|
|
185
|
+
'Environment variables may not be set correctly',
|
|
186
|
+
],
|
|
187
|
+
whatToDo: [
|
|
188
|
+
'Check your .env file or configuration file',
|
|
189
|
+
'Verify all required environment variables are set',
|
|
190
|
+
'Run `guardrail login` if authentication is required',
|
|
191
|
+
'See documentation: https://docs.getguardrail.io',
|
|
192
|
+
],
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// Authentication/Authorization errors
|
|
196
|
+
if (code === 401 ||
|
|
197
|
+
code === 'UNAUTHORIZED' ||
|
|
198
|
+
code === 403 ||
|
|
199
|
+
code === 'FORBIDDEN' ||
|
|
200
|
+
error.name === 'AuthenticationError' ||
|
|
201
|
+
message.includes('authentication') ||
|
|
202
|
+
message.includes('unauthorized') ||
|
|
203
|
+
message.includes('forbidden')) {
|
|
204
|
+
return {
|
|
205
|
+
type: 'AUTHENTICATION',
|
|
206
|
+
headline: code === 403 || code === 'FORBIDDEN' ? 'Access denied' : 'Authentication failed',
|
|
207
|
+
whatHappened: code === 403 || code === 'FORBIDDEN'
|
|
208
|
+
? 'You do not have permission to access this resource'
|
|
209
|
+
: 'Your authentication credentials are invalid or expired',
|
|
210
|
+
why: [
|
|
211
|
+
code === 403 || code === 'FORBIDDEN'
|
|
212
|
+
? 'Your account may not have the required permissions'
|
|
213
|
+
: 'Your API key may be missing, invalid, or expired',
|
|
214
|
+
'You may need to upgrade your plan for this feature',
|
|
215
|
+
],
|
|
216
|
+
whatToDo: [
|
|
217
|
+
code === 403 || code === 'FORBIDDEN'
|
|
218
|
+
? 'Check your account permissions and plan tier'
|
|
219
|
+
: 'Run `guardrail login` to authenticate',
|
|
220
|
+
'Verify your API key at https://getguardrail.io/settings/keys',
|
|
221
|
+
'Check if this feature requires a premium plan',
|
|
222
|
+
],
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
// Tier restriction errors
|
|
226
|
+
if (code === 'LIMIT_EXCEEDED' ||
|
|
227
|
+
code === 'FEATURE_NOT_AVAILABLE' ||
|
|
228
|
+
code === 'TIER_RESTRICTION' ||
|
|
229
|
+
message.includes('tier') ||
|
|
230
|
+
message.includes('upgrade') ||
|
|
231
|
+
message.includes('premium') ||
|
|
232
|
+
message.includes('limit')) {
|
|
233
|
+
return {
|
|
234
|
+
type: 'TIER_RESTRICTION',
|
|
235
|
+
headline: 'Feature not available on your plan',
|
|
236
|
+
whatHappened: 'This feature requires a higher tier subscription',
|
|
237
|
+
why: [
|
|
238
|
+
'Your current plan does not include this feature',
|
|
239
|
+
'You may have exceeded your usage limits',
|
|
240
|
+
],
|
|
241
|
+
whatToDo: [
|
|
242
|
+
'Visit https://getguardrail.io/pricing to upgrade',
|
|
243
|
+
'Check your usage limits: `guardrail status`',
|
|
244
|
+
'Contact support if you believe this is an error',
|
|
245
|
+
],
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
// Generic error
|
|
249
|
+
return {
|
|
250
|
+
type: 'UNKNOWN',
|
|
251
|
+
headline: 'An error occurred',
|
|
252
|
+
whatHappened: message || 'An unexpected error occurred',
|
|
253
|
+
why: ['An unexpected error occurred during execution'],
|
|
254
|
+
whatToDo: [
|
|
255
|
+
'Check the error message above for details',
|
|
256
|
+
'Run with --debug for more information',
|
|
257
|
+
'If the issue persists, contact support',
|
|
258
|
+
],
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Format a CLI error with user-friendly structure
|
|
263
|
+
*/
|
|
264
|
+
function formatCliError(err, options = {}) {
|
|
265
|
+
const { debug = false, context = '' } = options;
|
|
266
|
+
const debugMode = isDebugEnabled(debug !== false ? debug : process.argv);
|
|
267
|
+
const classification = classifyError(err);
|
|
268
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
269
|
+
// Build the error message
|
|
270
|
+
const lines = [];
|
|
271
|
+
// Headline
|
|
272
|
+
lines.push(c.red(c.bold(`✗ ${classification.headline}`)));
|
|
273
|
+
lines.push('');
|
|
274
|
+
// What happened
|
|
275
|
+
lines.push(c.bold('What happened:'));
|
|
276
|
+
lines.push(` ${classification.whatHappened}`);
|
|
277
|
+
if (context) {
|
|
278
|
+
lines.push(` ${c.dim(`Context: ${context}`)}`);
|
|
279
|
+
}
|
|
280
|
+
lines.push('');
|
|
281
|
+
// Why it happened
|
|
282
|
+
if (classification.why && classification.why.length > 0) {
|
|
283
|
+
lines.push(c.bold('Why it happened:'));
|
|
284
|
+
classification.why.forEach((reason) => {
|
|
285
|
+
lines.push(` • ${reason}`);
|
|
286
|
+
});
|
|
287
|
+
lines.push('');
|
|
288
|
+
}
|
|
289
|
+
// What to do next
|
|
290
|
+
if (classification.whatToDo && classification.whatToDo.length > 0) {
|
|
291
|
+
lines.push(c.bold('What to do next:'));
|
|
292
|
+
classification.whatToDo.slice(0, 3).forEach((action) => {
|
|
293
|
+
lines.push(` • ${action}`);
|
|
294
|
+
});
|
|
295
|
+
lines.push('');
|
|
296
|
+
}
|
|
297
|
+
// Debug information
|
|
298
|
+
if (debugMode) {
|
|
299
|
+
lines.push(c.dim('─'.repeat(60)));
|
|
300
|
+
lines.push(c.dim(c.bold('Debug Information:')));
|
|
301
|
+
lines.push('');
|
|
302
|
+
// Stack trace
|
|
303
|
+
if (error.stack) {
|
|
304
|
+
lines.push(c.dim('Stack trace:'));
|
|
305
|
+
const redactedStack = redactSecrets(error.stack);
|
|
306
|
+
lines.push(c.dim(redactedStack));
|
|
307
|
+
lines.push('');
|
|
308
|
+
}
|
|
309
|
+
// Raw error details
|
|
310
|
+
lines.push(c.dim('Error details:'));
|
|
311
|
+
const errorDetails = {
|
|
312
|
+
name: error.name,
|
|
313
|
+
code: error.code || error.statusCode,
|
|
314
|
+
message: error.message,
|
|
315
|
+
};
|
|
316
|
+
if (error.response) {
|
|
317
|
+
errorDetails.response = {
|
|
318
|
+
status: error.response.status,
|
|
319
|
+
statusText: error.response.statusText,
|
|
320
|
+
body: redactSecrets(typeof error.response.body === 'string'
|
|
321
|
+
? error.response.body
|
|
322
|
+
: JSON.stringify(error.response.body || {})),
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
if (error.body) {
|
|
326
|
+
errorDetails.body = redactSecrets(typeof error.body === 'string' ? error.body : JSON.stringify(error.body || {}));
|
|
327
|
+
}
|
|
328
|
+
const redactedDetails = redactSecrets(JSON.stringify(errorDetails, null, 2));
|
|
329
|
+
lines.push(c.dim(redactedDetails));
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
lines.push(c.dim('💡 Run with --debug for detailed error information'));
|
|
333
|
+
}
|
|
334
|
+
// Determine exit code based on error type
|
|
335
|
+
let exitCode = 1; // Default: verification failed
|
|
336
|
+
if (classification.type === 'FILE_NOT_FOUND' ||
|
|
337
|
+
classification.type === 'CONFIGURATION' ||
|
|
338
|
+
classification.type === 'PERMISSION' ||
|
|
339
|
+
classification.type === 'AUTHENTICATION') {
|
|
340
|
+
exitCode = 2; // User error
|
|
341
|
+
}
|
|
342
|
+
else if (classification.type === 'TIER_RESTRICTION') {
|
|
343
|
+
exitCode = 2; // User error (need to upgrade)
|
|
344
|
+
}
|
|
345
|
+
else if (classification.type === 'API_CONNECTION') {
|
|
346
|
+
exitCode = 1; // Verification failed (couldn't complete check)
|
|
347
|
+
}
|
|
348
|
+
return {
|
|
349
|
+
exitCode,
|
|
350
|
+
message: lines.join('\n'),
|
|
351
|
+
type: classification.type,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=cli-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-errors.js","sourceRoot":"","sources":["../../src/runtime/cli-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsH5B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsD5B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BxE;AAcD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAW,GAAG,MAAM,CAI3D"}
|
package/dist/runtime/client.js
CHANGED
|
@@ -20,7 +20,7 @@ const RETRY_DELAYS = [1000, 2000, 4000]; // Exponential backoff
|
|
|
20
20
|
* Sleep utility for retry delays
|
|
21
21
|
*/
|
|
22
22
|
function sleep(ms) {
|
|
23
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
23
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Validate API key against the enterprise auth endpoint
|
|
@@ -56,16 +56,28 @@ async function validateApiKey(opts) {
|
|
|
56
56
|
let errorMessage;
|
|
57
57
|
try {
|
|
58
58
|
const errorJson = JSON.parse(errorBody);
|
|
59
|
-
errorMessage =
|
|
59
|
+
errorMessage =
|
|
60
|
+
errorJson.reason ||
|
|
61
|
+
errorJson.message ||
|
|
62
|
+
errorJson.error ||
|
|
63
|
+
`HTTP ${res.status}`;
|
|
60
64
|
}
|
|
61
65
|
catch {
|
|
62
66
|
errorMessage = `HTTP ${res.status}: ${res.statusText}`;
|
|
63
67
|
}
|
|
64
68
|
if (res.status === 401) {
|
|
65
|
-
return {
|
|
69
|
+
return {
|
|
70
|
+
ok: false,
|
|
71
|
+
tier: 'free',
|
|
72
|
+
error: 'Invalid or expired API key',
|
|
73
|
+
};
|
|
66
74
|
}
|
|
67
75
|
if (res.status === 403) {
|
|
68
|
-
return {
|
|
76
|
+
return {
|
|
77
|
+
ok: false,
|
|
78
|
+
tier: 'free',
|
|
79
|
+
error: 'Access denied - API key revoked or suspended',
|
|
80
|
+
};
|
|
69
81
|
}
|
|
70
82
|
if (res.status === 429) {
|
|
71
83
|
lastError = 'Rate limited - please try again later';
|
|
@@ -85,12 +97,12 @@ async function validateApiKey(opts) {
|
|
|
85
97
|
}
|
|
86
98
|
return { ok: false, tier: 'free', error: errorMessage };
|
|
87
99
|
}
|
|
88
|
-
const data = await res.json();
|
|
100
|
+
const data = (await res.json());
|
|
89
101
|
if (!data.ok) {
|
|
90
102
|
return {
|
|
91
103
|
ok: false,
|
|
92
104
|
tier: 'free',
|
|
93
|
-
error: data.reason || 'Validation failed'
|
|
105
|
+
error: data.reason || 'Validation failed',
|
|
94
106
|
};
|
|
95
107
|
}
|
|
96
108
|
return {
|
|
@@ -108,7 +120,8 @@ async function validateApiKey(opts) {
|
|
|
108
120
|
lastError = 'Request timed out';
|
|
109
121
|
}
|
|
110
122
|
else if (err.code === 'ECONNREFUSED' || err.code === 'ENOTFOUND') {
|
|
111
|
-
lastError =
|
|
123
|
+
lastError =
|
|
124
|
+
'Unable to reach Guardrail API - check your network connection';
|
|
112
125
|
}
|
|
113
126
|
else {
|
|
114
127
|
lastError = `Network error: ${err.message}`;
|
|
@@ -146,7 +159,7 @@ async function validateCredentials(opts) {
|
|
|
146
159
|
method: 'POST',
|
|
147
160
|
headers: {
|
|
148
161
|
'content-type': 'application/json',
|
|
149
|
-
|
|
162
|
+
authorization: `Bearer ${opts.accessToken}`,
|
|
150
163
|
'user-agent': `guardrail-cli/${clientMeta.version} (node ${process.version})`,
|
|
151
164
|
},
|
|
152
165
|
body: JSON.stringify({ ts: new Date().toISOString() }),
|
|
@@ -155,11 +168,15 @@ async function validateCredentials(opts) {
|
|
|
155
168
|
clearTimeout(timeoutId);
|
|
156
169
|
if (!res.ok) {
|
|
157
170
|
if (res.status === 401) {
|
|
158
|
-
return {
|
|
171
|
+
return {
|
|
172
|
+
ok: false,
|
|
173
|
+
tier: 'free',
|
|
174
|
+
error: 'Invalid or expired credentials',
|
|
175
|
+
};
|
|
159
176
|
}
|
|
160
177
|
return { ok: false, tier: 'free', error: `API error: ${res.status}` };
|
|
161
178
|
}
|
|
162
|
-
const data = await res.json();
|
|
179
|
+
const data = (await res.json());
|
|
163
180
|
return { ...data, ok: true };
|
|
164
181
|
}
|
|
165
182
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/creds.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface AuthState {
|
|
|
17
17
|
expiresAt?: string;
|
|
18
18
|
issuedAt?: string;
|
|
19
19
|
}
|
|
20
|
+
declare function getConfigDir(): string;
|
|
20
21
|
/**
|
|
21
22
|
* Load authentication state
|
|
22
23
|
* Prefers keychain for sensitive tokens, falls back to disk
|
|
@@ -45,4 +46,8 @@ export declare function shouldUseCachedEntitlements(state: AuthState): boolean;
|
|
|
45
46
|
* Get config directory path (for display purposes)
|
|
46
47
|
*/
|
|
47
48
|
export declare function getConfigPath(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Get config directory (exported for owner mode)
|
|
51
|
+
*/
|
|
52
|
+
export { getConfigDir };
|
|
48
53
|
//# sourceMappingURL=creds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creds.d.ts","sourceRoot":"","sources":["../../src/runtime/creds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"creds.d.ts","sourceRoot":"","sources":["../../src/runtime/creds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,iBAAS,YAAY,IAAI,MAAM,CAmB9B;AA6DD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAwBxD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BlE;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAmBtD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAoBrE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/runtime/creds.js
CHANGED
|
@@ -48,6 +48,7 @@ exports.clearAuthState = clearAuthState;
|
|
|
48
48
|
exports.isCacheValid = isCacheValid;
|
|
49
49
|
exports.shouldUseCachedEntitlements = shouldUseCachedEntitlements;
|
|
50
50
|
exports.getConfigPath = getConfigPath;
|
|
51
|
+
exports.getConfigDir = getConfigDir;
|
|
51
52
|
const os_1 = __importDefault(require("os"));
|
|
52
53
|
const path_1 = __importDefault(require("path"));
|
|
53
54
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
@@ -156,7 +157,11 @@ async function saveAuthState(next) {
|
|
|
156
157
|
const keytar = await tryKeytar();
|
|
157
158
|
if (keytar) {
|
|
158
159
|
try {
|
|
159
|
-
const secretPayload = {
|
|
160
|
+
const secretPayload = {
|
|
161
|
+
accessToken,
|
|
162
|
+
refreshToken,
|
|
163
|
+
apiKey,
|
|
164
|
+
};
|
|
160
165
|
await keytar.setPassword(SERVICE, ACCOUNT, JSON.stringify(secretPayload));
|
|
161
166
|
}
|
|
162
167
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creds.js","sourceRoot":"","sources":["../../src/runtime/creds.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"creds.js","sourceRoot":"","sources":["../../src/runtime/creds.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,8 @@ export declare enum ExitCode {
|
|
|
17
17
|
INVALID_INPUT = 2,
|
|
18
18
|
/** System error: crash, filesystem issues, unexpected exceptions */
|
|
19
19
|
SYSTEM_ERROR = 3,
|
|
20
|
-
/** Auth/
|
|
21
|
-
AUTH_FAILURE = 4
|
|
22
|
-
/** Network/backend failure: API unreachable, timeout */
|
|
23
|
-
NETWORK_FAILURE = 5
|
|
20
|
+
/** Auth/network failure: invalid key, expired token, insufficient tier, API unreachable, timeout */
|
|
21
|
+
AUTH_FAILURE = 4
|
|
24
22
|
}
|
|
25
23
|
export declare const EXIT_CODE_DESCRIPTIONS: Record<ExitCode, string>;
|
|
26
24
|
/**
|
|
@@ -46,4 +44,32 @@ export declare function getExitCodeForFindings(findings: {
|
|
|
46
44
|
failOnMedium?: boolean;
|
|
47
45
|
failOnAny?: boolean;
|
|
48
46
|
}): ExitCode;
|
|
47
|
+
/**
|
|
48
|
+
* JSON Error Format
|
|
49
|
+
* Standardized error output for automation
|
|
50
|
+
*/
|
|
51
|
+
export interface JsonError {
|
|
52
|
+
code: number;
|
|
53
|
+
message: string;
|
|
54
|
+
hint?: string;
|
|
55
|
+
docs?: string;
|
|
56
|
+
retryable: boolean;
|
|
57
|
+
exitCode: ExitCode;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create JSON error object
|
|
61
|
+
*/
|
|
62
|
+
export declare function createJsonError(code: ExitCode, message: string, options?: {
|
|
63
|
+
hint?: string;
|
|
64
|
+
docs?: string;
|
|
65
|
+
retryable?: boolean;
|
|
66
|
+
}): JsonError;
|
|
67
|
+
/**
|
|
68
|
+
* Exit with JSON error format
|
|
69
|
+
*/
|
|
70
|
+
export declare function exitWithJsonError(code: ExitCode, message: string, options?: {
|
|
71
|
+
hint?: string;
|
|
72
|
+
docs?: string;
|
|
73
|
+
retryable?: boolean;
|
|
74
|
+
}): never;
|
|
49
75
|
//# sourceMappingURL=exit-codes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/runtime/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oBAAY,QAAQ;IAClB,wCAAwC;IACxC,OAAO,IAAI;IAEX,kEAAkE;IAClE,WAAW,IAAI;IAEf,qEAAqE;IACrE,UAAU,IAAI;IAEd,yDAAyD;IACzD,aAAa,IAAI;IAEjB,oEAAoE;IACpE,YAAY,IAAI;IAEhB,
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/runtime/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oBAAY,QAAQ;IAClB,wCAAwC;IACxC,OAAO,IAAI;IAEX,kEAAkE;IAClE,WAAW,IAAI;IAEf,qEAAqE;IACrE,UAAU,IAAI;IAEd,yDAAyD;IACzD,aAAa,IAAI;IAEjB,oEAAoE;IACpE,YAAY,IAAI;IAEhB,oGAAoG;IACpG,YAAY,IAAI;CACjB;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAM3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAShE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,CA6BxD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,EACD,MAAM,EAAE;IACN,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACA,QAAQ,CAiBV;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,SAAS,CASX;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,KAAK,CAIP"}
|