@cenk1cenk2/oclif-common 1.0.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/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +232 -0
- package/dist/hooks/index.mjs +200 -0
- package/dist/hooks/not-found.hook.d.ts +5 -0
- package/dist/hooks/not-found.hook.js +230 -0
- package/dist/hooks/not-found.hook.mjs +200 -0
- package/dist/index.d.ts +259 -0
- package/dist/index.js +972 -0
- package/dist/index.mjs +974 -0
- package/package.json +80 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
|
|
25
|
+
// src/hooks/index.ts
|
|
26
|
+
var hooks_exports = {};
|
|
27
|
+
__export(hooks_exports, {
|
|
28
|
+
notFoundHook: () => notFoundHook
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(hooks_exports);
|
|
31
|
+
|
|
32
|
+
// src/hooks/not-found.hook.ts
|
|
33
|
+
var import_core = require("@oclif/core");
|
|
34
|
+
|
|
35
|
+
// src/utils/logger/pipe/pipe-process-to-listr.ts
|
|
36
|
+
var import_through = __toESM(require("through"));
|
|
37
|
+
|
|
38
|
+
// src/utils/logger/pipe/pipe-process-to-logger.ts
|
|
39
|
+
var import_through2 = __toESM(require("through"));
|
|
40
|
+
|
|
41
|
+
// src/utils/logger/logger.constants.ts
|
|
42
|
+
var LogLevels = /* @__PURE__ */ ((LogLevels2) => {
|
|
43
|
+
LogLevels2["SILENT"] = "SILENT";
|
|
44
|
+
LogLevels2["DIRECT"] = "DIRECT";
|
|
45
|
+
LogLevels2["FATAL"] = "FATAL";
|
|
46
|
+
LogLevels2["ERROR"] = "ERROR";
|
|
47
|
+
LogLevels2["WARN"] = "WARN";
|
|
48
|
+
LogLevels2["INFO"] = "INFO";
|
|
49
|
+
LogLevels2["VERBOSE"] = "VERBOSE";
|
|
50
|
+
LogLevels2["DEBUG"] = "DEBUG";
|
|
51
|
+
LogLevels2["TRACE"] = "TRACE";
|
|
52
|
+
return LogLevels2;
|
|
53
|
+
})(LogLevels || {});
|
|
54
|
+
|
|
55
|
+
// src/utils/logger/logger.interface.ts
|
|
56
|
+
var WINSTON_INSTANCE = "WINSTON_DEFAULT_LOGGER";
|
|
57
|
+
|
|
58
|
+
// src/utils/logger/logger.ts
|
|
59
|
+
var import_os = require("os");
|
|
60
|
+
var import_winston = __toESM(require("winston"));
|
|
61
|
+
|
|
62
|
+
// src/utils/color.ts
|
|
63
|
+
var colorette = __toESM(require("colorette"));
|
|
64
|
+
var color = colorette.createColors({ useColor: true });
|
|
65
|
+
|
|
66
|
+
// src/utils/figures.ts
|
|
67
|
+
var import_figures = __toESM(require("figures"));
|
|
68
|
+
|
|
69
|
+
// src/utils/logger/logger.ts
|
|
70
|
+
var Logger = class {
|
|
71
|
+
constructor(context, options) {
|
|
72
|
+
this.context = context;
|
|
73
|
+
this.options = options;
|
|
74
|
+
const level = options?.level.toUpperCase();
|
|
75
|
+
this.options = {
|
|
76
|
+
useIcons: true,
|
|
77
|
+
...options,
|
|
78
|
+
level: Object.values(LogLevels).includes(level) ? level : "INFO" /* INFO */
|
|
79
|
+
};
|
|
80
|
+
if (Logger.instance) {
|
|
81
|
+
this.logger = Logger.instance;
|
|
82
|
+
} else {
|
|
83
|
+
this.logger = this.initiateLogger();
|
|
84
|
+
Logger.instance = this.logger;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
log(level, data, ...args) {
|
|
88
|
+
return this.parseMessage(level, data, args);
|
|
89
|
+
}
|
|
90
|
+
direct(data, ...args) {
|
|
91
|
+
return this.parseMessage("DIRECT" /* DIRECT */, data, args);
|
|
92
|
+
}
|
|
93
|
+
fatal(data, ...args) {
|
|
94
|
+
return this.parseMessage("FATAL" /* FATAL */, data, args);
|
|
95
|
+
}
|
|
96
|
+
error(data, ...args) {
|
|
97
|
+
return this.parseMessage("ERROR" /* ERROR */, data, args);
|
|
98
|
+
}
|
|
99
|
+
warn(data, ...args) {
|
|
100
|
+
return this.parseMessage("WARN" /* WARN */, data, args);
|
|
101
|
+
}
|
|
102
|
+
info(data, ...args) {
|
|
103
|
+
return this.parseMessage("INFO" /* INFO */, data, args);
|
|
104
|
+
}
|
|
105
|
+
debug(data, ...args) {
|
|
106
|
+
return this.parseMessage("DEBUG" /* DEBUG */, data, args);
|
|
107
|
+
}
|
|
108
|
+
verbose(data, ...args) {
|
|
109
|
+
return this.parseMessage("VERBOSE" /* VERBOSE */, data, args);
|
|
110
|
+
}
|
|
111
|
+
trace(data, ...args) {
|
|
112
|
+
return this.parseMessage("TRACE" /* TRACE */, data, args);
|
|
113
|
+
}
|
|
114
|
+
run(data, ...args) {
|
|
115
|
+
return this.parseMessage("INFO" /* INFO */, data, args, { status: "RUN" /* RUN */ });
|
|
116
|
+
}
|
|
117
|
+
end(data, ...args) {
|
|
118
|
+
return this.parseMessage("INFO" /* INFO */, data, args, { status: "END" /* END */ });
|
|
119
|
+
}
|
|
120
|
+
initiateLogger() {
|
|
121
|
+
const logFormat = import_winston.format.printf(({ level, message, context, status }) => {
|
|
122
|
+
let multiLineMessage;
|
|
123
|
+
multiLineMessage = message.split(import_os.EOL);
|
|
124
|
+
multiLineMessage = multiLineMessage.filter((msg) => msg.trim() !== "").filter(Boolean);
|
|
125
|
+
multiLineMessage = multiLineMessage.map((msg) => {
|
|
126
|
+
return this.logColoring({
|
|
127
|
+
level,
|
|
128
|
+
message: msg,
|
|
129
|
+
context,
|
|
130
|
+
status
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
return multiLineMessage.join(import_os.EOL);
|
|
134
|
+
});
|
|
135
|
+
const logger = import_winston.default.loggers.add(WINSTON_INSTANCE, {
|
|
136
|
+
level: this.options.level,
|
|
137
|
+
format: import_winston.format.combine(import_winston.format.splat(), import_winston.format.json({ space: 2 }), import_winston.format.prettyPrint(), logFormat),
|
|
138
|
+
levels: Object.values(LogLevels).reduce((o, level, i) => {
|
|
139
|
+
return {
|
|
140
|
+
...o,
|
|
141
|
+
[level]: i
|
|
142
|
+
};
|
|
143
|
+
}, {}),
|
|
144
|
+
silent: this.options.level === "SILENT" /* SILENT */,
|
|
145
|
+
transports: [
|
|
146
|
+
new import_winston.transports.Console({
|
|
147
|
+
stderrLevels: ["FATAL" /* FATAL */, "ERROR" /* ERROR */]
|
|
148
|
+
})
|
|
149
|
+
]
|
|
150
|
+
});
|
|
151
|
+
logger.log("TRACE" /* TRACE */, "Initiated new logger with level: %s", this.options.level, { context: this.constructor.name });
|
|
152
|
+
return logger;
|
|
153
|
+
}
|
|
154
|
+
parseMessage(level, data, args, format2) {
|
|
155
|
+
this.logger.log(level, data.toString(), ...args ?? [], { context: this.context, ...format2 ?? {} });
|
|
156
|
+
}
|
|
157
|
+
logColoring({ level, message, context, status }) {
|
|
158
|
+
let icon;
|
|
159
|
+
let coloring = (input) => {
|
|
160
|
+
return input;
|
|
161
|
+
};
|
|
162
|
+
let msgColoring = (input) => {
|
|
163
|
+
return input;
|
|
164
|
+
};
|
|
165
|
+
switch (level) {
|
|
166
|
+
case "DIRECT" /* DIRECT */:
|
|
167
|
+
return message;
|
|
168
|
+
case "FATAL" /* FATAL */:
|
|
169
|
+
coloring = (input) => color.bgRed(color.white(input));
|
|
170
|
+
if (this.options?.useIcons) {
|
|
171
|
+
icon = import_figures.default.cross;
|
|
172
|
+
}
|
|
173
|
+
break;
|
|
174
|
+
case "ERROR" /* ERROR */:
|
|
175
|
+
coloring = color.red;
|
|
176
|
+
if (this.options?.useIcons) {
|
|
177
|
+
icon = import_figures.default.cross;
|
|
178
|
+
}
|
|
179
|
+
break;
|
|
180
|
+
case "WARN" /* WARN */:
|
|
181
|
+
coloring = color.yellow;
|
|
182
|
+
if (this.options?.useIcons) {
|
|
183
|
+
icon = import_figures.default.warning;
|
|
184
|
+
}
|
|
185
|
+
break;
|
|
186
|
+
case "INFO" /* INFO */:
|
|
187
|
+
coloring = color.green;
|
|
188
|
+
if (this.options?.useIcons) {
|
|
189
|
+
icon = import_figures.default.pointerSmall;
|
|
190
|
+
}
|
|
191
|
+
break;
|
|
192
|
+
case "VERBOSE" /* VERBOSE */:
|
|
193
|
+
coloring = color.dim;
|
|
194
|
+
if (this.options?.useIcons) {
|
|
195
|
+
icon = import_figures.default.circleQuestionMark;
|
|
196
|
+
}
|
|
197
|
+
break;
|
|
198
|
+
case "DEBUG" /* DEBUG */:
|
|
199
|
+
coloring = color.cyan;
|
|
200
|
+
msgColoring = color.dim;
|
|
201
|
+
if (this.options?.useIcons) {
|
|
202
|
+
icon = "\uF188";
|
|
203
|
+
}
|
|
204
|
+
break;
|
|
205
|
+
case "TRACE" /* TRACE */:
|
|
206
|
+
coloring = color.magenta;
|
|
207
|
+
msgColoring = color.dim;
|
|
208
|
+
if (this.options?.useIcons) {
|
|
209
|
+
icon = "\uF188";
|
|
210
|
+
}
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
if (!icon) {
|
|
214
|
+
icon = `[${level.at(0).toUpperCase()}]`;
|
|
215
|
+
}
|
|
216
|
+
return `${coloring(icon)}${context ? " " + coloring(`[${context}]`) : ""}${status ? " " + coloring(`[${status}]`) : ""} ${msgColoring(message)}`;
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
// src/hooks/not-found.hook.ts
|
|
221
|
+
var notFoundHook = async (opts) => {
|
|
222
|
+
const logger = new Logger(opts.config.name);
|
|
223
|
+
logger.fatal("Command not found. Take a look at help. You can also use --[h]elp flag for subcommands.", { custom: opts.config.name });
|
|
224
|
+
logger.direct("");
|
|
225
|
+
const help = new import_core.Help(opts.config);
|
|
226
|
+
await help.showHelp(["--all"]);
|
|
227
|
+
process.exit(127);
|
|
228
|
+
};
|
|
229
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
230
|
+
0 && (module.exports = {
|
|
231
|
+
notFoundHook
|
|
232
|
+
});
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
// src/hooks/not-found.hook.ts
|
|
2
|
+
import { Help } from "@oclif/core";
|
|
3
|
+
|
|
4
|
+
// src/utils/logger/pipe/pipe-process-to-listr.ts
|
|
5
|
+
import through from "through";
|
|
6
|
+
|
|
7
|
+
// src/utils/logger/pipe/pipe-process-to-logger.ts
|
|
8
|
+
import through2 from "through";
|
|
9
|
+
|
|
10
|
+
// src/utils/logger/logger.constants.ts
|
|
11
|
+
var LogLevels = /* @__PURE__ */ ((LogLevels2) => {
|
|
12
|
+
LogLevels2["SILENT"] = "SILENT";
|
|
13
|
+
LogLevels2["DIRECT"] = "DIRECT";
|
|
14
|
+
LogLevels2["FATAL"] = "FATAL";
|
|
15
|
+
LogLevels2["ERROR"] = "ERROR";
|
|
16
|
+
LogLevels2["WARN"] = "WARN";
|
|
17
|
+
LogLevels2["INFO"] = "INFO";
|
|
18
|
+
LogLevels2["VERBOSE"] = "VERBOSE";
|
|
19
|
+
LogLevels2["DEBUG"] = "DEBUG";
|
|
20
|
+
LogLevels2["TRACE"] = "TRACE";
|
|
21
|
+
return LogLevels2;
|
|
22
|
+
})(LogLevels || {});
|
|
23
|
+
|
|
24
|
+
// src/utils/logger/logger.interface.ts
|
|
25
|
+
var WINSTON_INSTANCE = "WINSTON_DEFAULT_LOGGER";
|
|
26
|
+
|
|
27
|
+
// src/utils/logger/logger.ts
|
|
28
|
+
import { EOL } from "os";
|
|
29
|
+
import winston, { format, transports } from "winston";
|
|
30
|
+
|
|
31
|
+
// src/utils/color.ts
|
|
32
|
+
import * as colorette from "colorette";
|
|
33
|
+
var color = colorette.createColors({ useColor: true });
|
|
34
|
+
|
|
35
|
+
// src/utils/figures.ts
|
|
36
|
+
import figures from "figures";
|
|
37
|
+
|
|
38
|
+
// src/utils/logger/logger.ts
|
|
39
|
+
var Logger = class {
|
|
40
|
+
constructor(context, options) {
|
|
41
|
+
this.context = context;
|
|
42
|
+
this.options = options;
|
|
43
|
+
const level = options?.level.toUpperCase();
|
|
44
|
+
this.options = {
|
|
45
|
+
useIcons: true,
|
|
46
|
+
...options,
|
|
47
|
+
level: Object.values(LogLevels).includes(level) ? level : "INFO" /* INFO */
|
|
48
|
+
};
|
|
49
|
+
if (Logger.instance) {
|
|
50
|
+
this.logger = Logger.instance;
|
|
51
|
+
} else {
|
|
52
|
+
this.logger = this.initiateLogger();
|
|
53
|
+
Logger.instance = this.logger;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
log(level, data, ...args) {
|
|
57
|
+
return this.parseMessage(level, data, args);
|
|
58
|
+
}
|
|
59
|
+
direct(data, ...args) {
|
|
60
|
+
return this.parseMessage("DIRECT" /* DIRECT */, data, args);
|
|
61
|
+
}
|
|
62
|
+
fatal(data, ...args) {
|
|
63
|
+
return this.parseMessage("FATAL" /* FATAL */, data, args);
|
|
64
|
+
}
|
|
65
|
+
error(data, ...args) {
|
|
66
|
+
return this.parseMessage("ERROR" /* ERROR */, data, args);
|
|
67
|
+
}
|
|
68
|
+
warn(data, ...args) {
|
|
69
|
+
return this.parseMessage("WARN" /* WARN */, data, args);
|
|
70
|
+
}
|
|
71
|
+
info(data, ...args) {
|
|
72
|
+
return this.parseMessage("INFO" /* INFO */, data, args);
|
|
73
|
+
}
|
|
74
|
+
debug(data, ...args) {
|
|
75
|
+
return this.parseMessage("DEBUG" /* DEBUG */, data, args);
|
|
76
|
+
}
|
|
77
|
+
verbose(data, ...args) {
|
|
78
|
+
return this.parseMessage("VERBOSE" /* VERBOSE */, data, args);
|
|
79
|
+
}
|
|
80
|
+
trace(data, ...args) {
|
|
81
|
+
return this.parseMessage("TRACE" /* TRACE */, data, args);
|
|
82
|
+
}
|
|
83
|
+
run(data, ...args) {
|
|
84
|
+
return this.parseMessage("INFO" /* INFO */, data, args, { status: "RUN" /* RUN */ });
|
|
85
|
+
}
|
|
86
|
+
end(data, ...args) {
|
|
87
|
+
return this.parseMessage("INFO" /* INFO */, data, args, { status: "END" /* END */ });
|
|
88
|
+
}
|
|
89
|
+
initiateLogger() {
|
|
90
|
+
const logFormat = format.printf(({ level, message, context, status }) => {
|
|
91
|
+
let multiLineMessage;
|
|
92
|
+
multiLineMessage = message.split(EOL);
|
|
93
|
+
multiLineMessage = multiLineMessage.filter((msg) => msg.trim() !== "").filter(Boolean);
|
|
94
|
+
multiLineMessage = multiLineMessage.map((msg) => {
|
|
95
|
+
return this.logColoring({
|
|
96
|
+
level,
|
|
97
|
+
message: msg,
|
|
98
|
+
context,
|
|
99
|
+
status
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
return multiLineMessage.join(EOL);
|
|
103
|
+
});
|
|
104
|
+
const logger = winston.loggers.add(WINSTON_INSTANCE, {
|
|
105
|
+
level: this.options.level,
|
|
106
|
+
format: format.combine(format.splat(), format.json({ space: 2 }), format.prettyPrint(), logFormat),
|
|
107
|
+
levels: Object.values(LogLevels).reduce((o, level, i) => {
|
|
108
|
+
return {
|
|
109
|
+
...o,
|
|
110
|
+
[level]: i
|
|
111
|
+
};
|
|
112
|
+
}, {}),
|
|
113
|
+
silent: this.options.level === "SILENT" /* SILENT */,
|
|
114
|
+
transports: [
|
|
115
|
+
new transports.Console({
|
|
116
|
+
stderrLevels: ["FATAL" /* FATAL */, "ERROR" /* ERROR */]
|
|
117
|
+
})
|
|
118
|
+
]
|
|
119
|
+
});
|
|
120
|
+
logger.log("TRACE" /* TRACE */, "Initiated new logger with level: %s", this.options.level, { context: this.constructor.name });
|
|
121
|
+
return logger;
|
|
122
|
+
}
|
|
123
|
+
parseMessage(level, data, args, format2) {
|
|
124
|
+
this.logger.log(level, data.toString(), ...args ?? [], { context: this.context, ...format2 ?? {} });
|
|
125
|
+
}
|
|
126
|
+
logColoring({ level, message, context, status }) {
|
|
127
|
+
let icon;
|
|
128
|
+
let coloring = (input) => {
|
|
129
|
+
return input;
|
|
130
|
+
};
|
|
131
|
+
let msgColoring = (input) => {
|
|
132
|
+
return input;
|
|
133
|
+
};
|
|
134
|
+
switch (level) {
|
|
135
|
+
case "DIRECT" /* DIRECT */:
|
|
136
|
+
return message;
|
|
137
|
+
case "FATAL" /* FATAL */:
|
|
138
|
+
coloring = (input) => color.bgRed(color.white(input));
|
|
139
|
+
if (this.options?.useIcons) {
|
|
140
|
+
icon = figures.cross;
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
case "ERROR" /* ERROR */:
|
|
144
|
+
coloring = color.red;
|
|
145
|
+
if (this.options?.useIcons) {
|
|
146
|
+
icon = figures.cross;
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case "WARN" /* WARN */:
|
|
150
|
+
coloring = color.yellow;
|
|
151
|
+
if (this.options?.useIcons) {
|
|
152
|
+
icon = figures.warning;
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
case "INFO" /* INFO */:
|
|
156
|
+
coloring = color.green;
|
|
157
|
+
if (this.options?.useIcons) {
|
|
158
|
+
icon = figures.pointerSmall;
|
|
159
|
+
}
|
|
160
|
+
break;
|
|
161
|
+
case "VERBOSE" /* VERBOSE */:
|
|
162
|
+
coloring = color.dim;
|
|
163
|
+
if (this.options?.useIcons) {
|
|
164
|
+
icon = figures.circleQuestionMark;
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
case "DEBUG" /* DEBUG */:
|
|
168
|
+
coloring = color.cyan;
|
|
169
|
+
msgColoring = color.dim;
|
|
170
|
+
if (this.options?.useIcons) {
|
|
171
|
+
icon = "\uF188";
|
|
172
|
+
}
|
|
173
|
+
break;
|
|
174
|
+
case "TRACE" /* TRACE */:
|
|
175
|
+
coloring = color.magenta;
|
|
176
|
+
msgColoring = color.dim;
|
|
177
|
+
if (this.options?.useIcons) {
|
|
178
|
+
icon = "\uF188";
|
|
179
|
+
}
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
if (!icon) {
|
|
183
|
+
icon = `[${level.at(0).toUpperCase()}]`;
|
|
184
|
+
}
|
|
185
|
+
return `${coloring(icon)}${context ? " " + coloring(`[${context}]`) : ""}${status ? " " + coloring(`[${status}]`) : ""} ${msgColoring(message)}`;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
// src/hooks/not-found.hook.ts
|
|
190
|
+
var notFoundHook = async (opts) => {
|
|
191
|
+
const logger = new Logger(opts.config.name);
|
|
192
|
+
logger.fatal("Command not found. Take a look at help. You can also use --[h]elp flag for subcommands.", { custom: opts.config.name });
|
|
193
|
+
logger.direct("");
|
|
194
|
+
const help = new Help(opts.config);
|
|
195
|
+
await help.showHelp(["--all"]);
|
|
196
|
+
process.exit(127);
|
|
197
|
+
};
|
|
198
|
+
export {
|
|
199
|
+
notFoundHook
|
|
200
|
+
};
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
|
|
25
|
+
// src/hooks/not-found.hook.ts
|
|
26
|
+
var not_found_hook_exports = {};
|
|
27
|
+
__export(not_found_hook_exports, {
|
|
28
|
+
notFoundHook: () => notFoundHook
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(not_found_hook_exports);
|
|
31
|
+
var import_core = require("@oclif/core");
|
|
32
|
+
|
|
33
|
+
// src/utils/logger/pipe/pipe-process-to-listr.ts
|
|
34
|
+
var import_through = __toESM(require("through"));
|
|
35
|
+
|
|
36
|
+
// src/utils/logger/pipe/pipe-process-to-logger.ts
|
|
37
|
+
var import_through2 = __toESM(require("through"));
|
|
38
|
+
|
|
39
|
+
// src/utils/logger/logger.constants.ts
|
|
40
|
+
var LogLevels = /* @__PURE__ */ ((LogLevels2) => {
|
|
41
|
+
LogLevels2["SILENT"] = "SILENT";
|
|
42
|
+
LogLevels2["DIRECT"] = "DIRECT";
|
|
43
|
+
LogLevels2["FATAL"] = "FATAL";
|
|
44
|
+
LogLevels2["ERROR"] = "ERROR";
|
|
45
|
+
LogLevels2["WARN"] = "WARN";
|
|
46
|
+
LogLevels2["INFO"] = "INFO";
|
|
47
|
+
LogLevels2["VERBOSE"] = "VERBOSE";
|
|
48
|
+
LogLevels2["DEBUG"] = "DEBUG";
|
|
49
|
+
LogLevels2["TRACE"] = "TRACE";
|
|
50
|
+
return LogLevels2;
|
|
51
|
+
})(LogLevels || {});
|
|
52
|
+
|
|
53
|
+
// src/utils/logger/logger.interface.ts
|
|
54
|
+
var WINSTON_INSTANCE = "WINSTON_DEFAULT_LOGGER";
|
|
55
|
+
|
|
56
|
+
// src/utils/logger/logger.ts
|
|
57
|
+
var import_os = require("os");
|
|
58
|
+
var import_winston = __toESM(require("winston"));
|
|
59
|
+
|
|
60
|
+
// src/utils/color.ts
|
|
61
|
+
var colorette = __toESM(require("colorette"));
|
|
62
|
+
var color = colorette.createColors({ useColor: true });
|
|
63
|
+
|
|
64
|
+
// src/utils/figures.ts
|
|
65
|
+
var import_figures = __toESM(require("figures"));
|
|
66
|
+
|
|
67
|
+
// src/utils/logger/logger.ts
|
|
68
|
+
var Logger = class {
|
|
69
|
+
constructor(context, options) {
|
|
70
|
+
this.context = context;
|
|
71
|
+
this.options = options;
|
|
72
|
+
const level = options?.level.toUpperCase();
|
|
73
|
+
this.options = {
|
|
74
|
+
useIcons: true,
|
|
75
|
+
...options,
|
|
76
|
+
level: Object.values(LogLevels).includes(level) ? level : "INFO" /* INFO */
|
|
77
|
+
};
|
|
78
|
+
if (Logger.instance) {
|
|
79
|
+
this.logger = Logger.instance;
|
|
80
|
+
} else {
|
|
81
|
+
this.logger = this.initiateLogger();
|
|
82
|
+
Logger.instance = this.logger;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
log(level, data, ...args) {
|
|
86
|
+
return this.parseMessage(level, data, args);
|
|
87
|
+
}
|
|
88
|
+
direct(data, ...args) {
|
|
89
|
+
return this.parseMessage("DIRECT" /* DIRECT */, data, args);
|
|
90
|
+
}
|
|
91
|
+
fatal(data, ...args) {
|
|
92
|
+
return this.parseMessage("FATAL" /* FATAL */, data, args);
|
|
93
|
+
}
|
|
94
|
+
error(data, ...args) {
|
|
95
|
+
return this.parseMessage("ERROR" /* ERROR */, data, args);
|
|
96
|
+
}
|
|
97
|
+
warn(data, ...args) {
|
|
98
|
+
return this.parseMessage("WARN" /* WARN */, data, args);
|
|
99
|
+
}
|
|
100
|
+
info(data, ...args) {
|
|
101
|
+
return this.parseMessage("INFO" /* INFO */, data, args);
|
|
102
|
+
}
|
|
103
|
+
debug(data, ...args) {
|
|
104
|
+
return this.parseMessage("DEBUG" /* DEBUG */, data, args);
|
|
105
|
+
}
|
|
106
|
+
verbose(data, ...args) {
|
|
107
|
+
return this.parseMessage("VERBOSE" /* VERBOSE */, data, args);
|
|
108
|
+
}
|
|
109
|
+
trace(data, ...args) {
|
|
110
|
+
return this.parseMessage("TRACE" /* TRACE */, data, args);
|
|
111
|
+
}
|
|
112
|
+
run(data, ...args) {
|
|
113
|
+
return this.parseMessage("INFO" /* INFO */, data, args, { status: "RUN" /* RUN */ });
|
|
114
|
+
}
|
|
115
|
+
end(data, ...args) {
|
|
116
|
+
return this.parseMessage("INFO" /* INFO */, data, args, { status: "END" /* END */ });
|
|
117
|
+
}
|
|
118
|
+
initiateLogger() {
|
|
119
|
+
const logFormat = import_winston.format.printf(({ level, message, context, status }) => {
|
|
120
|
+
let multiLineMessage;
|
|
121
|
+
multiLineMessage = message.split(import_os.EOL);
|
|
122
|
+
multiLineMessage = multiLineMessage.filter((msg) => msg.trim() !== "").filter(Boolean);
|
|
123
|
+
multiLineMessage = multiLineMessage.map((msg) => {
|
|
124
|
+
return this.logColoring({
|
|
125
|
+
level,
|
|
126
|
+
message: msg,
|
|
127
|
+
context,
|
|
128
|
+
status
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
return multiLineMessage.join(import_os.EOL);
|
|
132
|
+
});
|
|
133
|
+
const logger = import_winston.default.loggers.add(WINSTON_INSTANCE, {
|
|
134
|
+
level: this.options.level,
|
|
135
|
+
format: import_winston.format.combine(import_winston.format.splat(), import_winston.format.json({ space: 2 }), import_winston.format.prettyPrint(), logFormat),
|
|
136
|
+
levels: Object.values(LogLevels).reduce((o, level, i) => {
|
|
137
|
+
return {
|
|
138
|
+
...o,
|
|
139
|
+
[level]: i
|
|
140
|
+
};
|
|
141
|
+
}, {}),
|
|
142
|
+
silent: this.options.level === "SILENT" /* SILENT */,
|
|
143
|
+
transports: [
|
|
144
|
+
new import_winston.transports.Console({
|
|
145
|
+
stderrLevels: ["FATAL" /* FATAL */, "ERROR" /* ERROR */]
|
|
146
|
+
})
|
|
147
|
+
]
|
|
148
|
+
});
|
|
149
|
+
logger.log("TRACE" /* TRACE */, "Initiated new logger with level: %s", this.options.level, { context: this.constructor.name });
|
|
150
|
+
return logger;
|
|
151
|
+
}
|
|
152
|
+
parseMessage(level, data, args, format2) {
|
|
153
|
+
this.logger.log(level, data.toString(), ...args ?? [], { context: this.context, ...format2 ?? {} });
|
|
154
|
+
}
|
|
155
|
+
logColoring({ level, message, context, status }) {
|
|
156
|
+
let icon;
|
|
157
|
+
let coloring = (input) => {
|
|
158
|
+
return input;
|
|
159
|
+
};
|
|
160
|
+
let msgColoring = (input) => {
|
|
161
|
+
return input;
|
|
162
|
+
};
|
|
163
|
+
switch (level) {
|
|
164
|
+
case "DIRECT" /* DIRECT */:
|
|
165
|
+
return message;
|
|
166
|
+
case "FATAL" /* FATAL */:
|
|
167
|
+
coloring = (input) => color.bgRed(color.white(input));
|
|
168
|
+
if (this.options?.useIcons) {
|
|
169
|
+
icon = import_figures.default.cross;
|
|
170
|
+
}
|
|
171
|
+
break;
|
|
172
|
+
case "ERROR" /* ERROR */:
|
|
173
|
+
coloring = color.red;
|
|
174
|
+
if (this.options?.useIcons) {
|
|
175
|
+
icon = import_figures.default.cross;
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
case "WARN" /* WARN */:
|
|
179
|
+
coloring = color.yellow;
|
|
180
|
+
if (this.options?.useIcons) {
|
|
181
|
+
icon = import_figures.default.warning;
|
|
182
|
+
}
|
|
183
|
+
break;
|
|
184
|
+
case "INFO" /* INFO */:
|
|
185
|
+
coloring = color.green;
|
|
186
|
+
if (this.options?.useIcons) {
|
|
187
|
+
icon = import_figures.default.pointerSmall;
|
|
188
|
+
}
|
|
189
|
+
break;
|
|
190
|
+
case "VERBOSE" /* VERBOSE */:
|
|
191
|
+
coloring = color.dim;
|
|
192
|
+
if (this.options?.useIcons) {
|
|
193
|
+
icon = import_figures.default.circleQuestionMark;
|
|
194
|
+
}
|
|
195
|
+
break;
|
|
196
|
+
case "DEBUG" /* DEBUG */:
|
|
197
|
+
coloring = color.cyan;
|
|
198
|
+
msgColoring = color.dim;
|
|
199
|
+
if (this.options?.useIcons) {
|
|
200
|
+
icon = "\uF188";
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
case "TRACE" /* TRACE */:
|
|
204
|
+
coloring = color.magenta;
|
|
205
|
+
msgColoring = color.dim;
|
|
206
|
+
if (this.options?.useIcons) {
|
|
207
|
+
icon = "\uF188";
|
|
208
|
+
}
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
if (!icon) {
|
|
212
|
+
icon = `[${level.at(0).toUpperCase()}]`;
|
|
213
|
+
}
|
|
214
|
+
return `${coloring(icon)}${context ? " " + coloring(`[${context}]`) : ""}${status ? " " + coloring(`[${status}]`) : ""} ${msgColoring(message)}`;
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
// src/hooks/not-found.hook.ts
|
|
219
|
+
var notFoundHook = async (opts) => {
|
|
220
|
+
const logger = new Logger(opts.config.name);
|
|
221
|
+
logger.fatal("Command not found. Take a look at help. You can also use --[h]elp flag for subcommands.", { custom: opts.config.name });
|
|
222
|
+
logger.direct("");
|
|
223
|
+
const help = new import_core.Help(opts.config);
|
|
224
|
+
await help.showHelp(["--all"]);
|
|
225
|
+
process.exit(127);
|
|
226
|
+
};
|
|
227
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
228
|
+
0 && (module.exports = {
|
|
229
|
+
notFoundHook
|
|
230
|
+
});
|