@mediaproc/core 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors/errorTypes.d.ts +63 -13
- package/dist/errors/errorTypes.d.ts.map +1 -1
- package/dist/errors/errorTypes.js +191 -18
- package/dist/errors/errorTypes.js.map +1 -1
- package/dist/errors/exitCodes.d.ts +23 -7
- package/dist/errors/exitCodes.d.ts.map +1 -1
- package/dist/errors/exitCodes.js +24 -7
- package/dist/errors/exitCodes.js.map +1 -1
- package/dist/explain/explainFlag.d.ts.map +1 -1
- package/dist/explain/explainFlag.js +25 -3
- package/dist/explain/explainFlag.js.map +1 -1
- package/dist/explain/templates/explainDetailsTemplate.d.ts.map +1 -1
- package/dist/explain/templates/explainDetailsTemplate.js +86 -44
- package/dist/explain/templates/explainDetailsTemplate.js.map +1 -1
- package/dist/explain/templates/explainHumanTemplate.d.ts.map +1 -1
- package/dist/explain/templates/explainHumanTemplate.js +89 -19
- package/dist/explain/templates/explainHumanTemplate.js.map +1 -1
- package/dist/handlers/globalErrorHandler.d.ts +10 -0
- package/dist/handlers/globalErrorHandler.d.ts.map +1 -0
- package/dist/handlers/globalErrorHandler.js +45 -0
- package/dist/handlers/globalErrorHandler.js.map +1 -0
- package/dist/handlers/index.d.ts +2 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +2 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/types/explainTypes.d.ts +5 -0
- package/dist/types/explainTypes.d.ts.map +1 -1
- package/dist/utils/constants/supportedExtensions.d.ts.map +1 -0
- package/dist/utils/constants/supportedExtensions.js.map +1 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/validators/pathValidator.js +1 -1
- package/dist/validators/pathValidator.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/explainFlag.test.d.ts +0 -2
- package/dist/__tests__/explainFlag.test.d.ts.map +0 -1
- package/dist/__tests__/explainFlag.test.js +0 -44
- package/dist/__tests__/explainFlag.test.js.map +0 -1
- package/dist/__tests__/explainTemplates.test.d.ts +0 -2
- package/dist/__tests__/explainTemplates.test.d.ts.map +0 -1
- package/dist/__tests__/explainTemplates.test.js +0 -43
- package/dist/__tests__/explainTemplates.test.js.map +0 -1
- package/dist/utils/supportedExtensions.d.ts.map +0 -1
- package/dist/utils/supportedExtensions.js.map +0 -1
- /package/dist/utils/{supportedExtensions.d.ts → constants/supportedExtensions.d.ts} +0 -0
- /package/dist/utils/{supportedExtensions.js → constants/supportedExtensions.js} +0 -0
|
@@ -1,33 +1,83 @@
|
|
|
1
1
|
export declare enum ErrorType {
|
|
2
2
|
UserInput = "UserInput",
|
|
3
|
+
Validation = "Validation",
|
|
4
|
+
Config = "Config",
|
|
5
|
+
Unsupported = "Unsupported",
|
|
6
|
+
NotImplemented = "NotImplemented",
|
|
3
7
|
FileSystem = "FileSystem",
|
|
4
8
|
Tool = "Tool",
|
|
5
|
-
|
|
9
|
+
Dependency = "Dependency",
|
|
6
10
|
Plugin = "Plugin",
|
|
7
|
-
Internal = "Internal"
|
|
11
|
+
Internal = "Internal",
|
|
12
|
+
Cancelled = "Cancelled"
|
|
13
|
+
}
|
|
14
|
+
export declare enum ErrorSeverity {
|
|
15
|
+
Info = "Info",
|
|
16
|
+
Warning = "Warning",
|
|
17
|
+
Error = "Error",
|
|
18
|
+
Fatal = "Fatal"
|
|
19
|
+
}
|
|
20
|
+
export declare enum ErrorSource {
|
|
21
|
+
User = "User",
|
|
22
|
+
MediaProc = "MediaProc",
|
|
23
|
+
Plugin = "Plugin",
|
|
24
|
+
ExternalTool = "ExternalTool",
|
|
25
|
+
System = "System"
|
|
8
26
|
}
|
|
9
27
|
export declare class MediaProcError extends Error {
|
|
10
|
-
type: ErrorType;
|
|
11
|
-
exitCode: number;
|
|
12
|
-
|
|
13
|
-
|
|
28
|
+
readonly type: ErrorType;
|
|
29
|
+
readonly exitCode: number;
|
|
30
|
+
readonly severity: ErrorSeverity;
|
|
31
|
+
readonly source: ErrorSource;
|
|
32
|
+
readonly retryable?: boolean;
|
|
33
|
+
readonly details?: unknown;
|
|
34
|
+
readonly hint?: string;
|
|
35
|
+
constructor(options: {
|
|
36
|
+
message: string;
|
|
37
|
+
type: ErrorType;
|
|
38
|
+
exitCode: number;
|
|
39
|
+
severity?: ErrorSeverity;
|
|
40
|
+
source?: ErrorSource;
|
|
41
|
+
retryable?: boolean;
|
|
42
|
+
details?: unknown;
|
|
43
|
+
hint?: string;
|
|
44
|
+
});
|
|
14
45
|
}
|
|
15
46
|
export declare class UserInputError extends MediaProcError {
|
|
16
|
-
constructor(message: string, details?:
|
|
47
|
+
constructor(message: string, details?: unknown, hint?: string);
|
|
48
|
+
}
|
|
49
|
+
export declare class ValidationError extends MediaProcError {
|
|
50
|
+
constructor(message: string, details?: unknown, hint?: string);
|
|
51
|
+
}
|
|
52
|
+
export declare class ConfigError extends MediaProcError {
|
|
53
|
+
constructor(message: string, details?: unknown, hint?: string);
|
|
54
|
+
}
|
|
55
|
+
export declare class UnsupportedError extends MediaProcError {
|
|
56
|
+
constructor(message: string, details?: unknown, hint?: string);
|
|
57
|
+
}
|
|
58
|
+
export declare class NotImplementedError extends MediaProcError {
|
|
59
|
+
constructor(message?: string, details?: unknown);
|
|
17
60
|
}
|
|
18
61
|
export declare class FileSystemError extends MediaProcError {
|
|
19
|
-
constructor(message: string, details?:
|
|
62
|
+
constructor(message: string, details?: unknown, retryable?: boolean);
|
|
20
63
|
}
|
|
21
64
|
export declare class ToolError extends MediaProcError {
|
|
22
|
-
constructor(message: string, details?:
|
|
65
|
+
constructor(message: string, details?: unknown, retryable?: boolean);
|
|
23
66
|
}
|
|
24
|
-
export declare class
|
|
25
|
-
constructor(message: string, details?:
|
|
67
|
+
export declare class DependencyError extends MediaProcError {
|
|
68
|
+
constructor(message: string, details?: unknown, hint?: string);
|
|
26
69
|
}
|
|
27
70
|
export declare class PluginError extends MediaProcError {
|
|
28
|
-
constructor(message: string, details?:
|
|
71
|
+
constructor(message: string, details?: unknown);
|
|
72
|
+
}
|
|
73
|
+
export declare class PluginNotFoundError extends MediaProcError {
|
|
74
|
+
constructor(message: string, details?: unknown);
|
|
75
|
+
}
|
|
76
|
+
export declare class CancelledError extends MediaProcError {
|
|
77
|
+
constructor(message?: string);
|
|
29
78
|
}
|
|
30
79
|
export declare class InternalError extends MediaProcError {
|
|
31
|
-
constructor(message: string, details?:
|
|
80
|
+
constructor(message: string, details?: unknown);
|
|
32
81
|
}
|
|
82
|
+
export declare function isMediaProcError(err: unknown): err is MediaProcError;
|
|
33
83
|
//# sourceMappingURL=errorTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorTypes.d.ts","sourceRoot":"","sources":["../../src/errors/errorTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errorTypes.d.ts","sourceRoot":"","sources":["../../src/errors/errorTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +1,232 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
* MediaProc Error System (v1.0-ready)
|
|
3
|
+
* ============================================================
|
|
4
|
+
*/
|
|
5
|
+
import { EXIT_CODES } from "./exitCodes.js";
|
|
6
|
+
/* -------------------- Error Type -------------------- */
|
|
1
7
|
export var ErrorType;
|
|
2
8
|
(function (ErrorType) {
|
|
3
9
|
ErrorType["UserInput"] = "UserInput";
|
|
10
|
+
ErrorType["Validation"] = "Validation";
|
|
11
|
+
ErrorType["Config"] = "Config";
|
|
12
|
+
ErrorType["Unsupported"] = "Unsupported";
|
|
13
|
+
ErrorType["NotImplemented"] = "NotImplemented";
|
|
4
14
|
ErrorType["FileSystem"] = "FileSystem";
|
|
5
15
|
ErrorType["Tool"] = "Tool";
|
|
6
|
-
ErrorType["
|
|
16
|
+
ErrorType["Dependency"] = "Dependency";
|
|
7
17
|
ErrorType["Plugin"] = "Plugin";
|
|
8
18
|
ErrorType["Internal"] = "Internal";
|
|
19
|
+
ErrorType["Cancelled"] = "Cancelled";
|
|
9
20
|
})(ErrorType || (ErrorType = {}));
|
|
21
|
+
/* -------------------- Error Severity -------------------- */
|
|
22
|
+
export var ErrorSeverity;
|
|
23
|
+
(function (ErrorSeverity) {
|
|
24
|
+
ErrorSeverity["Info"] = "Info";
|
|
25
|
+
ErrorSeverity["Warning"] = "Warning";
|
|
26
|
+
ErrorSeverity["Error"] = "Error";
|
|
27
|
+
ErrorSeverity["Fatal"] = "Fatal";
|
|
28
|
+
})(ErrorSeverity || (ErrorSeverity = {}));
|
|
29
|
+
/* -------------------- Error Source -------------------- */
|
|
30
|
+
export var ErrorSource;
|
|
31
|
+
(function (ErrorSource) {
|
|
32
|
+
ErrorSource["User"] = "User";
|
|
33
|
+
ErrorSource["MediaProc"] = "MediaProc";
|
|
34
|
+
ErrorSource["Plugin"] = "Plugin";
|
|
35
|
+
ErrorSource["ExternalTool"] = "ExternalTool";
|
|
36
|
+
ErrorSource["System"] = "System";
|
|
37
|
+
})(ErrorSource || (ErrorSource = {}));
|
|
38
|
+
/* -------------------- Base Error -------------------- */
|
|
10
39
|
export class MediaProcError extends Error {
|
|
11
40
|
type;
|
|
12
41
|
exitCode;
|
|
42
|
+
severity;
|
|
43
|
+
source;
|
|
44
|
+
retryable;
|
|
13
45
|
details;
|
|
14
|
-
|
|
15
|
-
|
|
46
|
+
hint;
|
|
47
|
+
constructor(options) {
|
|
48
|
+
super(options.message);
|
|
16
49
|
this.name = 'MediaProcError';
|
|
17
|
-
this.type = type;
|
|
18
|
-
this.exitCode = exitCode;
|
|
19
|
-
this.
|
|
50
|
+
this.type = options.type;
|
|
51
|
+
this.exitCode = options.exitCode;
|
|
52
|
+
this.severity = options.severity ?? ErrorSeverity.Error;
|
|
53
|
+
this.source = options.source ?? ErrorSource.MediaProc;
|
|
54
|
+
this.retryable = options.retryable;
|
|
55
|
+
this.details = options.details;
|
|
56
|
+
this.hint = options.hint;
|
|
20
57
|
Error.captureStackTrace?.(this, MediaProcError);
|
|
21
58
|
}
|
|
22
59
|
}
|
|
60
|
+
/* -------------------- User / Validation -------------------- */
|
|
23
61
|
export class UserInputError extends MediaProcError {
|
|
24
|
-
constructor(message, details) {
|
|
25
|
-
super(
|
|
62
|
+
constructor(message, details, hint) {
|
|
63
|
+
super({
|
|
64
|
+
message,
|
|
65
|
+
type: ErrorType.UserInput,
|
|
66
|
+
exitCode: EXIT_CODES.USER_INPUT,
|
|
67
|
+
severity: ErrorSeverity.Warning,
|
|
68
|
+
source: ErrorSource.User,
|
|
69
|
+
details,
|
|
70
|
+
hint,
|
|
71
|
+
});
|
|
26
72
|
this.name = 'UserInputError';
|
|
27
73
|
}
|
|
28
74
|
}
|
|
75
|
+
export class ValidationError extends MediaProcError {
|
|
76
|
+
constructor(message, details, hint) {
|
|
77
|
+
super({
|
|
78
|
+
message,
|
|
79
|
+
type: ErrorType.Validation,
|
|
80
|
+
exitCode: EXIT_CODES.VALIDATION,
|
|
81
|
+
severity: ErrorSeverity.Warning,
|
|
82
|
+
source: ErrorSource.User,
|
|
83
|
+
details,
|
|
84
|
+
hint,
|
|
85
|
+
});
|
|
86
|
+
this.name = 'ValidationError';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export class ConfigError extends MediaProcError {
|
|
90
|
+
constructor(message, details, hint) {
|
|
91
|
+
super({
|
|
92
|
+
message,
|
|
93
|
+
type: ErrorType.Config,
|
|
94
|
+
exitCode: EXIT_CODES.CONFIG,
|
|
95
|
+
severity: ErrorSeverity.Error,
|
|
96
|
+
source: ErrorSource.User,
|
|
97
|
+
details,
|
|
98
|
+
hint,
|
|
99
|
+
});
|
|
100
|
+
this.name = 'ConfigError';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export class UnsupportedError extends MediaProcError {
|
|
104
|
+
constructor(message, details, hint) {
|
|
105
|
+
super({
|
|
106
|
+
message,
|
|
107
|
+
type: ErrorType.Unsupported,
|
|
108
|
+
exitCode: EXIT_CODES.UNSUPPORTED,
|
|
109
|
+
severity: ErrorSeverity.Error,
|
|
110
|
+
source: ErrorSource.User,
|
|
111
|
+
details,
|
|
112
|
+
hint,
|
|
113
|
+
});
|
|
114
|
+
this.name = 'UnsupportedError';
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export class NotImplementedError extends MediaProcError {
|
|
118
|
+
constructor(message = 'This feature is not implemented yet', details) {
|
|
119
|
+
super({
|
|
120
|
+
message,
|
|
121
|
+
type: ErrorType.NotImplemented,
|
|
122
|
+
exitCode: EXIT_CODES.NOT_IMPLEMENTED,
|
|
123
|
+
severity: ErrorSeverity.Info,
|
|
124
|
+
source: ErrorSource.MediaProc,
|
|
125
|
+
details,
|
|
126
|
+
});
|
|
127
|
+
this.name = 'NotImplementedError';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/* -------------------- File System -------------------- */
|
|
29
131
|
export class FileSystemError extends MediaProcError {
|
|
30
|
-
constructor(message, details) {
|
|
31
|
-
super(
|
|
132
|
+
constructor(message, details, retryable = false) {
|
|
133
|
+
super({
|
|
134
|
+
message,
|
|
135
|
+
type: ErrorType.FileSystem,
|
|
136
|
+
exitCode: EXIT_CODES.FS_ERROR,
|
|
137
|
+
severity: ErrorSeverity.Error,
|
|
138
|
+
source: ErrorSource.System,
|
|
139
|
+
retryable,
|
|
140
|
+
details,
|
|
141
|
+
});
|
|
32
142
|
this.name = 'FileSystemError';
|
|
33
143
|
}
|
|
34
144
|
}
|
|
145
|
+
/* -------------------- External Tools -------------------- */
|
|
35
146
|
export class ToolError extends MediaProcError {
|
|
36
|
-
constructor(message, details) {
|
|
37
|
-
super(
|
|
147
|
+
constructor(message, details, retryable = false) {
|
|
148
|
+
super({
|
|
149
|
+
message,
|
|
150
|
+
type: ErrorType.Tool,
|
|
151
|
+
exitCode: EXIT_CODES.TOOL_ERROR,
|
|
152
|
+
severity: ErrorSeverity.Fatal,
|
|
153
|
+
source: ErrorSource.ExternalTool,
|
|
154
|
+
retryable,
|
|
155
|
+
details,
|
|
156
|
+
});
|
|
38
157
|
this.name = 'ToolError';
|
|
39
158
|
}
|
|
40
159
|
}
|
|
41
|
-
export class
|
|
42
|
-
constructor(message, details) {
|
|
43
|
-
super(
|
|
44
|
-
|
|
160
|
+
export class DependencyError extends MediaProcError {
|
|
161
|
+
constructor(message, details, hint) {
|
|
162
|
+
super({
|
|
163
|
+
message,
|
|
164
|
+
type: ErrorType.Dependency,
|
|
165
|
+
exitCode: EXIT_CODES.DEPENDENCY_MISSING,
|
|
166
|
+
severity: ErrorSeverity.Fatal,
|
|
167
|
+
source: ErrorSource.ExternalTool,
|
|
168
|
+
details,
|
|
169
|
+
hint,
|
|
170
|
+
});
|
|
171
|
+
this.name = 'DependencyError';
|
|
45
172
|
}
|
|
46
173
|
}
|
|
174
|
+
/* -------------------- Plugin -------------------- */
|
|
47
175
|
export class PluginError extends MediaProcError {
|
|
48
176
|
constructor(message, details) {
|
|
49
|
-
super(
|
|
177
|
+
super({
|
|
178
|
+
message,
|
|
179
|
+
type: ErrorType.Plugin,
|
|
180
|
+
exitCode: EXIT_CODES.PLUGIN_ERROR,
|
|
181
|
+
severity: ErrorSeverity.Error,
|
|
182
|
+
source: ErrorSource.Plugin,
|
|
183
|
+
details,
|
|
184
|
+
});
|
|
50
185
|
this.name = 'PluginError';
|
|
51
186
|
}
|
|
52
187
|
}
|
|
188
|
+
export class PluginNotFoundError extends MediaProcError {
|
|
189
|
+
constructor(message, details) {
|
|
190
|
+
super({
|
|
191
|
+
message,
|
|
192
|
+
type: ErrorType.Plugin,
|
|
193
|
+
exitCode: EXIT_CODES.PLUGIN_NOT_FOUND,
|
|
194
|
+
severity: ErrorSeverity.Fatal,
|
|
195
|
+
source: ErrorSource.Plugin,
|
|
196
|
+
details,
|
|
197
|
+
});
|
|
198
|
+
this.name = 'PluginNotFoundError';
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/* -------------------- Cancelled -------------------- */
|
|
202
|
+
export class CancelledError extends MediaProcError {
|
|
203
|
+
constructor(message = 'Operation cancelled by user') {
|
|
204
|
+
super({
|
|
205
|
+
message,
|
|
206
|
+
type: ErrorType.Cancelled,
|
|
207
|
+
exitCode: EXIT_CODES.INTERRUPTED,
|
|
208
|
+
severity: ErrorSeverity.Info,
|
|
209
|
+
source: ErrorSource.User,
|
|
210
|
+
});
|
|
211
|
+
this.name = 'CancelledError';
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/* -------------------- Internal -------------------- */
|
|
53
215
|
export class InternalError extends MediaProcError {
|
|
54
216
|
constructor(message, details) {
|
|
55
|
-
super(
|
|
217
|
+
super({
|
|
218
|
+
message,
|
|
219
|
+
type: ErrorType.Internal,
|
|
220
|
+
exitCode: EXIT_CODES.INTERNAL,
|
|
221
|
+
severity: ErrorSeverity.Fatal,
|
|
222
|
+
source: ErrorSource.MediaProc,
|
|
223
|
+
details,
|
|
224
|
+
});
|
|
56
225
|
this.name = 'InternalError';
|
|
57
226
|
}
|
|
58
227
|
}
|
|
228
|
+
/* -------------------- Type Guard -------------------- */
|
|
229
|
+
export function isMediaProcError(err) {
|
|
230
|
+
return err instanceof MediaProcError;
|
|
231
|
+
}
|
|
59
232
|
//# sourceMappingURL=errorTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorTypes.js","sourceRoot":"","sources":["../../src/errors/errorTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errorTypes.js","sourceRoot":"","sources":["../../src/errors/errorTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exit code ranges (documented contract):
|
|
3
|
+
* * 0 → success
|
|
4
|
+
* * 1–9 → user input / config / validation
|
|
5
|
+
* * 10–19 → filesystem
|
|
6
|
+
* * 20–29 → external tools (ffmpeg, sharp, etc.)
|
|
7
|
+
* * 30–39 → plugin system
|
|
8
|
+
* * 40–49 → internal errors
|
|
9
|
+
* * 130 → user interruption (SIGINT)
|
|
10
|
+
*/
|
|
1
11
|
export declare const EXIT_CODES: {
|
|
2
|
-
SUCCESS:
|
|
3
|
-
USER_INPUT:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
UNSUPPORTED:
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
readonly SUCCESS: 0;
|
|
13
|
+
readonly USER_INPUT: 1;
|
|
14
|
+
readonly VALIDATION: 2;
|
|
15
|
+
readonly CONFIG: 3;
|
|
16
|
+
readonly UNSUPPORTED: 4;
|
|
17
|
+
readonly NOT_IMPLEMENTED: 5;
|
|
18
|
+
readonly FS_ERROR: 10;
|
|
19
|
+
readonly TOOL_ERROR: 20;
|
|
20
|
+
readonly DEPENDENCY_MISSING: 21;
|
|
21
|
+
readonly PLUGIN_ERROR: 30;
|
|
22
|
+
readonly PLUGIN_NOT_FOUND: 31;
|
|
23
|
+
readonly INTERNAL: 40;
|
|
24
|
+
readonly INTERRUPTED: 130;
|
|
9
25
|
};
|
|
10
26
|
//# sourceMappingURL=exitCodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exitCodes.d.ts","sourceRoot":"","sources":["../../src/errors/exitCodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exitCodes.d.ts","sourceRoot":"","sources":["../../src/errors/exitCodes.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAoBb,CAAC"}
|
package/dist/errors/exitCodes.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
|
+
/* -------------------- Exit Codes -------------------- */
|
|
2
|
+
/**
|
|
3
|
+
* Exit code ranges (documented contract):
|
|
4
|
+
* * 0 → success
|
|
5
|
+
* * 1–9 → user input / config / validation
|
|
6
|
+
* * 10–19 → filesystem
|
|
7
|
+
* * 20–29 → external tools (ffmpeg, sharp, etc.)
|
|
8
|
+
* * 30–39 → plugin system
|
|
9
|
+
* * 40–49 → internal errors
|
|
10
|
+
* * 130 → user interruption (SIGINT)
|
|
11
|
+
*/
|
|
1
12
|
export const EXIT_CODES = {
|
|
2
|
-
SUCCESS: 0,
|
|
3
|
-
USER_INPUT: 1,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
UNSUPPORTED: 4,
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
SUCCESS: 0,
|
|
14
|
+
USER_INPUT: 1,
|
|
15
|
+
VALIDATION: 2,
|
|
16
|
+
CONFIG: 3,
|
|
17
|
+
UNSUPPORTED: 4,
|
|
18
|
+
NOT_IMPLEMENTED: 5,
|
|
19
|
+
FS_ERROR: 10,
|
|
20
|
+
TOOL_ERROR: 20,
|
|
21
|
+
DEPENDENCY_MISSING: 21,
|
|
22
|
+
PLUGIN_ERROR: 30,
|
|
23
|
+
PLUGIN_NOT_FOUND: 31,
|
|
24
|
+
INTERNAL: 40,
|
|
25
|
+
INTERRUPTED: 130,
|
|
9
26
|
};
|
|
10
27
|
//# sourceMappingURL=exitCodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../../src/errors/exitCodes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;
|
|
1
|
+
{"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../../src/errors/exitCodes.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IAEV,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,CAAC;IAElB,QAAQ,EAAE,EAAE;IAEZ,UAAU,EAAE,EAAE;IACd,kBAAkB,EAAE,EAAE;IAEtB,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IAEpB,QAAQ,EAAE,EAAE;IAEZ,WAAW,EAAE,GAAG;CACR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainFlag.d.ts","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explainFlag.d.ts","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMvE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,IAAS,EACT,OAAY,EACZ,SAAkC,EAClC,UAA0C,EAC1C,IAAwB,GACzB,EAAE;IACD,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,QAoLA"}
|
|
@@ -3,6 +3,8 @@ import { explainFormatter } from '../formatters/explainFormatter.js';
|
|
|
3
3
|
import { getCliVersion, getVersion } from '../branding/branding.js';
|
|
4
4
|
import { ExplainMode } from '../types/explainTypes.js';
|
|
5
5
|
import os from 'os';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
6
8
|
/**
|
|
7
9
|
* explainFlag - Automatically gathers command context, prints explanation, then runs the handler.
|
|
8
10
|
* @param params - { commandName, args, options, handler }
|
|
@@ -69,7 +71,7 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
|
|
|
69
71
|
}
|
|
70
72
|
else if (explainValue) {
|
|
71
73
|
// fallback for unknown explain values
|
|
72
|
-
console.warn(chalk.yellow(`
|
|
74
|
+
console.warn(chalk.yellow(`warn: unknown explain mode "${explainValue}", falling back to "human"`));
|
|
73
75
|
mode = ExplainMode.Human;
|
|
74
76
|
}
|
|
75
77
|
// Gather all possible flags from command (Commander.js API)
|
|
@@ -134,6 +136,7 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
|
|
|
134
136
|
console.error(chalk.red('Error retrieving version information:'), error);
|
|
135
137
|
}
|
|
136
138
|
const context = {
|
|
139
|
+
schemaVersion: '1.0', // Tier 3 placeholder
|
|
137
140
|
command: commandName,
|
|
138
141
|
plugin: command?.parent?.name?.() || undefined,
|
|
139
142
|
cliVersion,
|
|
@@ -143,6 +146,9 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
|
|
|
143
146
|
user: process.env.USER || process.env.USERNAME || 'unknown',
|
|
144
147
|
platform: `${os.platform()} ${os.arch()}`,
|
|
145
148
|
mode,
|
|
149
|
+
summary: outputPath
|
|
150
|
+
? `Resize/Process file(s) and write result to ${outputPath}`
|
|
151
|
+
: `Operation will complete (no output path specified)`,
|
|
146
152
|
inputs: { inputPath, outputPath, ...allInputs },
|
|
147
153
|
outputs: Object.keys(allOutputs).length > 0 ? allOutputs : undefined,
|
|
148
154
|
usedFlags,
|
|
@@ -151,6 +157,7 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
|
|
|
151
157
|
key,
|
|
152
158
|
value: v.value,
|
|
153
159
|
reason: v.source === 'user' ? 'user specified' : (v.source === 'default' ? 'default' : 'system'),
|
|
160
|
+
provenance: v.source,
|
|
154
161
|
})),
|
|
155
162
|
outcome: {
|
|
156
163
|
result: outputPath ? `A new file will be created at ${outputPath}` : 'Operation will complete',
|
|
@@ -162,6 +169,11 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
|
|
|
162
169
|
],
|
|
163
170
|
errors: [], // Placeholder for error reporting
|
|
164
171
|
warnings: [], // Placeholder for warning reporting
|
|
172
|
+
confidence: 'high', // Tier 4 placeholder
|
|
173
|
+
whatWillNotHappen: [
|
|
174
|
+
'Original files will not be modified',
|
|
175
|
+
'No network requests will be made'
|
|
176
|
+
]
|
|
165
177
|
},
|
|
166
178
|
explainFlow: [
|
|
167
179
|
'1. Parse and validate all user-provided flags and arguments.',
|
|
@@ -182,14 +194,24 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
|
|
|
182
194
|
estimatedTime: 'depends on input size and options',
|
|
183
195
|
memoryUsage: 'depends on batch size and image dimensions',
|
|
184
196
|
},
|
|
197
|
+
exitCode: 0, // Tier 3 placeholder
|
|
185
198
|
};
|
|
186
199
|
// Print explanation only
|
|
187
200
|
const explanation = explainFormatter(context, mode);
|
|
188
201
|
if (mode === ExplainMode.Json) {
|
|
189
202
|
// Add a styled header for JSON output
|
|
190
|
-
// Print JSON with a clear header
|
|
191
203
|
console.log(chalk.bold.bgBlueBright.white(' EXPLANATION (JSON) '));
|
|
192
|
-
|
|
204
|
+
// Write JSON to file in output/explain/
|
|
205
|
+
const timestamp = context.timestamp?.replace(/[:.]/g, '-') || Date.now().toString();
|
|
206
|
+
const outDir = path.resolve(process.cwd(), 'output', 'explain');
|
|
207
|
+
if (!fs.existsSync(outDir)) {
|
|
208
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
209
|
+
}
|
|
210
|
+
const outFile = path.join(outDir, `explain-${timestamp}.json`);
|
|
211
|
+
fs.writeFileSync(outFile, JSON.stringify(context, null, 2), 'utf-8');
|
|
212
|
+
console.log(chalk.green(`Explanation JSON written to: ${outFile}`));
|
|
213
|
+
// Also print a preview to the console
|
|
214
|
+
console.log(chalk.gray(JSON.stringify(context, null, 2)));
|
|
193
215
|
}
|
|
194
216
|
else {
|
|
195
217
|
console.log(explanation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainFlag.js","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explainFlag.js","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainDetailsTemplate.d.ts","sourceRoot":"","sources":["../../../src/explain/templates/explainDetailsTemplate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explainDetailsTemplate.d.ts","sourceRoot":"","sources":["../../../src/explain/templates/explainDetailsTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA6JtE"}
|