@storm-software/config-tools 1.176.24 → 1.178.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.
Files changed (66) hide show
  1. package/README.md +1 -1
  2. package/bin/config.cjs +304 -259
  3. package/bin/config.js +307 -262
  4. package/dist/{chunk-3H56XJD4.js → chunk-2FH55GER.js} +30 -2
  5. package/dist/{chunk-SS4HVVIZ.cjs → chunk-2LK4ZGLW.cjs} +2 -2
  6. package/dist/{chunk-MFDE3ORO.cjs → chunk-3235YC2J.cjs} +9 -9
  7. package/dist/{chunk-TGJMLB3M.js → chunk-3TO7MEJT.js} +45 -5
  8. package/dist/{chunk-5OGHC7QD.js → chunk-5BZL5JNY.js} +0 -29
  9. package/dist/{chunk-TIGZFOWR.js → chunk-BTZVY4J2.js} +1 -1
  10. package/dist/{chunk-QGASWRUN.cjs → chunk-CLT4IIBS.cjs} +30 -2
  11. package/dist/{chunk-7GRIRHUQ.cjs → chunk-CO4ZADWX.cjs} +12 -1
  12. package/dist/{chunk-S6WB7DH2.cjs → chunk-EDQ2BMIV.cjs} +3 -3
  13. package/dist/{chunk-6NBMHDNI.js → chunk-EK7IXIHA.js} +10 -10
  14. package/dist/{chunk-QH3GLANP.js → chunk-FBMPJNMM.js} +9 -9
  15. package/dist/{chunk-GHZFMAKY.cjs → chunk-GJ7QM6FN.cjs} +9 -9
  16. package/dist/{chunk-AAV6DBHX.cjs → chunk-MBEJXPRQ.cjs} +1 -30
  17. package/dist/{chunk-XKVIMZJJ.js → chunk-NYDB5GIZ.js} +3 -3
  18. package/dist/{chunk-ACB64AEV.cjs → chunk-PQATN7O6.cjs} +20 -20
  19. package/dist/{chunk-KUXWZKYD.js → chunk-TFYMXKIT.js} +1 -1
  20. package/dist/{chunk-3MKAYQRF.js → chunk-TTT5G3NU.js} +1 -1
  21. package/dist/{chunk-W4C4Y3CW.js → chunk-UMSUK27E.js} +12 -1
  22. package/dist/{chunk-CVKKSYV5.js → chunk-X56PD6LB.js} +1 -1
  23. package/dist/{chunk-2MJFF2QM.cjs → chunk-XA4G3MSV.cjs} +10 -10
  24. package/dist/{chunk-OGHIEGOH.cjs → chunk-YGJGYNZL.cjs} +49 -9
  25. package/dist/{chunk-SONG2DAJ.cjs → chunk-ZTCEXE7T.cjs} +4 -4
  26. package/dist/config-file/get-config-file.cjs +9 -9
  27. package/dist/config-file/get-config-file.js +8 -8
  28. package/dist/config-file/index.cjs +9 -9
  29. package/dist/config-file/index.js +8 -8
  30. package/dist/create-storm-config.cjs +12 -12
  31. package/dist/create-storm-config.js +11 -11
  32. package/dist/env/get-env.cjs +2 -2
  33. package/dist/env/get-env.js +1 -1
  34. package/dist/env/index.cjs +3 -3
  35. package/dist/env/index.js +2 -2
  36. package/dist/env/set-env.cjs +2 -2
  37. package/dist/env/set-env.js +1 -1
  38. package/dist/get-config.cjs +13 -13
  39. package/dist/get-config.js +12 -12
  40. package/dist/index.cjs +18 -16
  41. package/dist/index.d.cts +2 -2
  42. package/dist/index.d.ts +2 -2
  43. package/dist/index.js +23 -21
  44. package/dist/logger/console.cjs +3 -6
  45. package/dist/logger/console.js +2 -5
  46. package/dist/logger/create-logger.cjs +4 -7
  47. package/dist/logger/create-logger.js +3 -6
  48. package/dist/logger/index.cjs +4 -7
  49. package/dist/logger/index.js +3 -6
  50. package/dist/utilities/colors.cjs +6 -6
  51. package/dist/utilities/colors.d.cts +53 -1
  52. package/dist/utilities/colors.d.ts +53 -1
  53. package/dist/utilities/colors.js +7 -7
  54. package/dist/utilities/get-default-config.cjs +2 -4
  55. package/dist/utilities/get-default-config.d.cts +2 -6
  56. package/dist/utilities/get-default-config.d.ts +2 -6
  57. package/dist/utilities/get-default-config.js +1 -3
  58. package/dist/utilities/index.cjs +13 -11
  59. package/dist/utilities/index.d.cts +3 -2
  60. package/dist/utilities/index.d.ts +3 -2
  61. package/dist/utilities/index.js +13 -11
  62. package/dist/utilities/process-handler.cjs +4 -7
  63. package/dist/utilities/process-handler.js +3 -6
  64. package/dist/utilities/toml.cjs +5 -8
  65. package/dist/utilities/toml.js +4 -7
  66. package/package.json +3 -3
package/README.md CHANGED
@@ -21,7 +21,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
21
21
 
22
22
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
23
23
 
24
- [![Version](https://img.shields.io/badge/version-1.176.22-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
24
+ [![Version](https://img.shields.io/badge/version-1.177.2-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
25
25
 
26
26
  <!-- prettier-ignore-start -->
27
27
  <!-- markdownlint-disable -->
package/bin/config.cjs CHANGED
@@ -69,11 +69,264 @@ var LogLevelLabel = {
69
69
  ALL: "all"
70
70
  };
71
71
 
72
- // src/utilities/get-default-config.ts
73
- var import_config = require("@storm-software/config");
74
- var import_node_fs2 = require("fs");
75
- var import_promises = require("fs/promises");
76
- var import_node_path2 = require("path");
72
+ // src/utilities/colors.ts
73
+ var DEFAULT_COLOR_CONFIG = {
74
+ light: {
75
+ background: "#fafafa",
76
+ foreground: "#1d1e22",
77
+ brand: "#1fb2a6",
78
+ alternate: "#db2777",
79
+ help: "#5C4EE5",
80
+ success: "#087f5b",
81
+ info: "#0550ae",
82
+ warning: "#e3b341",
83
+ danger: "#D8314A",
84
+ fatal: "#51070f",
85
+ link: "#3fa6ff",
86
+ positive: "#22c55e",
87
+ negative: "#dc2626",
88
+ gradient: ["#1fb2a6", "#db2777", "#5C4EE5"]
89
+ },
90
+ dark: {
91
+ background: "#1d1e22",
92
+ foreground: "#cbd5e1",
93
+ brand: "#2dd4bf",
94
+ alternate: "#db2777",
95
+ help: "#818cf8",
96
+ success: "#10b981",
97
+ info: "#58a6ff",
98
+ warning: "#f3d371",
99
+ danger: "#D8314A",
100
+ fatal: "#a40e26",
101
+ link: "#3fa6ff",
102
+ positive: "#22c55e",
103
+ negative: "#dc2626",
104
+ gradient: ["#1fb2a6", "#db2777", "#818cf8"]
105
+ }
106
+ };
107
+
108
+ // src/logger/chalk.ts
109
+ var import_chalk = __toESM(require("chalk"), 1);
110
+ var chalkDefault = {
111
+ hex: (_) => (message) => message,
112
+ bgHex: (_) => ({
113
+ whiteBright: (message) => message,
114
+ white: (message) => message
115
+ }),
116
+ white: (message) => message,
117
+ whiteBright: (message) => message,
118
+ gray: (message) => message,
119
+ bold: {
120
+ hex: (_) => (message) => message,
121
+ bgHex: (_) => ({
122
+ whiteBright: (message) => message,
123
+ white: (message) => message
124
+ }),
125
+ whiteBright: (message) => message,
126
+ white: (message) => message
127
+ },
128
+ dim: {
129
+ hex: (_) => (message) => message,
130
+ gray: (message) => message
131
+ }
132
+ };
133
+ var getChalk = () => {
134
+ let _chalk = import_chalk.default;
135
+ if (!_chalk?.hex || !_chalk?.bold?.hex || !_chalk?.bgHex || !_chalk?.whiteBright || !_chalk?.white) {
136
+ _chalk = chalkDefault;
137
+ }
138
+ return _chalk;
139
+ };
140
+
141
+ // src/logger/is-unicode-supported.ts
142
+ function isUnicodeSupported() {
143
+ if (process.platform !== "win32") {
144
+ return process.env.TERM !== "linux";
145
+ }
146
+ return Boolean(process.env.WT_SESSION) || // Windows Terminal
147
+ Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
148
+ process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
149
+ process.env.TERM_PROGRAM === "Terminus-Sublime" || process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty" || process.env.TERM === "rxvt-unicode" || process.env.TERM === "rxvt-unicode-256color" || process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
150
+ }
151
+
152
+ // src/logger/console-icons.ts
153
+ var useIcon = (c, fallback) => isUnicodeSupported() ? c : fallback;
154
+ var CONSOLE_ICONS = {
155
+ [LogLevelLabel.ERROR]: useIcon("\u2718", "\xD7"),
156
+ [LogLevelLabel.FATAL]: useIcon("\u{1F480}", "\xD7"),
157
+ [LogLevelLabel.WARN]: useIcon("\u26A0", "\u203C"),
158
+ [LogLevelLabel.INFO]: useIcon("\u2139", "i"),
159
+ [LogLevelLabel.SUCCESS]: useIcon("\u2714", "\u221A"),
160
+ [LogLevelLabel.DEBUG]: useIcon("\u{1F6E0}", "D"),
161
+ [LogLevelLabel.TRACE]: useIcon("\u{1F6E0}", "T"),
162
+ [LogLevelLabel.ALL]: useIcon("\u2709", "\u2192")
163
+ };
164
+
165
+ // src/logger/format-timestamp.ts
166
+ var formatTimestamp = (date = /* @__PURE__ */ new Date()) => {
167
+ return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
168
+ };
169
+
170
+ // src/logger/get-log-level.ts
171
+ var getLogLevel = (label) => {
172
+ switch (label) {
173
+ case "all":
174
+ return LogLevel.ALL;
175
+ case "trace":
176
+ return LogLevel.TRACE;
177
+ case "debug":
178
+ return LogLevel.DEBUG;
179
+ case "info":
180
+ return LogLevel.INFO;
181
+ case "warn":
182
+ return LogLevel.WARN;
183
+ case "error":
184
+ return LogLevel.ERROR;
185
+ case "fatal":
186
+ return LogLevel.FATAL;
187
+ case "silent":
188
+ return LogLevel.SILENT;
189
+ default:
190
+ return LogLevel.INFO;
191
+ }
192
+ };
193
+ var getLogLevelLabel = (logLevel = LogLevel.INFO) => {
194
+ if (logLevel >= LogLevel.ALL) {
195
+ return LogLevelLabel.ALL;
196
+ }
197
+ if (logLevel >= LogLevel.TRACE) {
198
+ return LogLevelLabel.TRACE;
199
+ }
200
+ if (logLevel >= LogLevel.DEBUG) {
201
+ return LogLevelLabel.DEBUG;
202
+ }
203
+ if (logLevel >= LogLevel.INFO) {
204
+ return LogLevelLabel.INFO;
205
+ }
206
+ if (logLevel >= LogLevel.WARN) {
207
+ return LogLevelLabel.WARN;
208
+ }
209
+ if (logLevel >= LogLevel.ERROR) {
210
+ return LogLevelLabel.ERROR;
211
+ }
212
+ if (logLevel >= LogLevel.FATAL) {
213
+ return LogLevelLabel.FATAL;
214
+ }
215
+ if (logLevel <= LogLevel.SILENT) {
216
+ return LogLevelLabel.SILENT;
217
+ }
218
+ return LogLevelLabel.INFO;
219
+ };
220
+
221
+ // src/logger/console.ts
222
+ var getLogFn = (logLevel = LogLevel.INFO, config = {}, _chalk = getChalk()) => {
223
+ const colors = !config.colors?.dark && !config.colors?.["base"] && !config.colors?.["base"]?.dark ? DEFAULT_COLOR_CONFIG : config.colors?.dark && typeof config.colors.dark === "string" ? config.colors : config.colors?.["base"]?.dark && typeof config.colors["base"].dark === "string" ? config.colors["base"].dark : config.colors?.["base"] ? config.colors?.["base"] : DEFAULT_COLOR_CONFIG;
224
+ const configLogLevel = config.logLevel || process.env.STORM_LOG_LEVEL || LogLevelLabel.INFO;
225
+ if (logLevel > getLogLevel(configLogLevel) || logLevel <= LogLevel.SILENT || getLogLevel(configLogLevel) <= LogLevel.SILENT) {
226
+ return (_) => {
227
+ };
228
+ }
229
+ if (typeof logLevel === "number" && LogLevel.FATAL >= logLevel) {
230
+ return (message) => {
231
+ console.error(
232
+ `
233
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.fatal ?? DEFAULT_COLOR_CONFIG.dark.fatal)(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
234
+ `
235
+ );
236
+ };
237
+ }
238
+ if (typeof logLevel === "number" && LogLevel.ERROR >= logLevel) {
239
+ return (message) => {
240
+ console.error(
241
+ `
242
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.danger ?? DEFAULT_COLOR_CONFIG.dark.danger)(`[${CONSOLE_ICONS[LogLevelLabel.ERROR]} Error] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
243
+ `
244
+ );
245
+ };
246
+ }
247
+ if (typeof logLevel === "number" && LogLevel.WARN >= logLevel) {
248
+ return (message) => {
249
+ console.warn(
250
+ `
251
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.warning ?? DEFAULT_COLOR_CONFIG.dark.warning)(`[${CONSOLE_ICONS[LogLevelLabel.WARN]} Warn] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
252
+ `
253
+ );
254
+ };
255
+ }
256
+ if (typeof logLevel === "number" && LogLevel.SUCCESS >= logLevel) {
257
+ return (message) => {
258
+ console.info(
259
+ `
260
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.success ?? DEFAULT_COLOR_CONFIG.dark.success)(`[${CONSOLE_ICONS[LogLevelLabel.SUCCESS]} Success] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
261
+ `
262
+ );
263
+ };
264
+ }
265
+ if (typeof logLevel === "number" && LogLevel.INFO >= logLevel) {
266
+ return (message) => {
267
+ console.info(
268
+ `
269
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.info ?? DEFAULT_COLOR_CONFIG.dark.info)(`[${CONSOLE_ICONS[LogLevelLabel.INFO]} Info] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
270
+ `
271
+ );
272
+ };
273
+ }
274
+ if (typeof logLevel === "number" && LogLevel.DEBUG >= logLevel) {
275
+ return (message) => {
276
+ console.debug(
277
+ `
278
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.info ?? DEFAULT_COLOR_CONFIG.dark.info)(`[${CONSOLE_ICONS[LogLevelLabel.DEBUG]} Debug] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
279
+ `
280
+ );
281
+ };
282
+ }
283
+ if (typeof logLevel === "number" && LogLevel.TRACE >= logLevel) {
284
+ return (message) => {
285
+ console.debug(
286
+ `
287
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.info ?? DEFAULT_COLOR_CONFIG.dark.info)(`[${CONSOLE_ICONS[LogLevelLabel.TRACE]} Trace] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
288
+ `
289
+ );
290
+ };
291
+ }
292
+ return (message) => {
293
+ console.log(
294
+ `
295
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.brand ?? DEFAULT_COLOR_CONFIG.dark.brand)(`[${CONSOLE_ICONS[LogLevelLabel.ALL]} System] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
296
+ `
297
+ );
298
+ };
299
+ };
300
+ var writeFatal = (message, config) => getLogFn(LogLevel.FATAL, config)(message);
301
+ var writeError = (message, config) => getLogFn(LogLevel.ERROR, config)(message);
302
+ var writeWarning = (message, config) => getLogFn(LogLevel.WARN, config)(message);
303
+ var writeInfo = (message, config) => getLogFn(LogLevel.INFO, config)(message);
304
+ var writeSuccess = (message, config) => getLogFn(LogLevel.SUCCESS, config)(message);
305
+ var writeTrace = (message, config) => getLogFn(LogLevel.TRACE, config)(message);
306
+ var MAX_DEPTH = 4;
307
+ var formatLogMessage = (message, options = {}, depth2 = 0) => {
308
+ if (depth2 > MAX_DEPTH) {
309
+ return "<max depth>";
310
+ }
311
+ const prefix = options.prefix ?? "-";
312
+ const skip = options.skip ?? [];
313
+ return typeof message === "undefined" || message === null || !message && typeof message !== "boolean" ? "<none>" : typeof message === "string" ? message : Array.isArray(message) ? `
314
+ ${message.map((item, index) => ` ${prefix}> #${index} = ${formatLogMessage(item, { prefix: `${prefix}-`, skip }, depth2 + 1)}`).join("\n")}` : typeof message === "object" ? `
315
+ ${Object.keys(message).filter((key) => !skip.includes(key)).map(
316
+ (key) => ` ${prefix}> ${key} = ${_isFunction(message[key]) ? "<function>" : typeof message[key] === "object" ? formatLogMessage(
317
+ message[key],
318
+ { prefix: `${prefix}-`, skip },
319
+ depth2 + 1
320
+ ) : message[key]}`
321
+ ).join("\n")}` : message;
322
+ };
323
+ var _isFunction = (value) => {
324
+ try {
325
+ return value instanceof Function || typeof value === "function" || !!(value?.constructor && value?.call && value?.apply);
326
+ } catch {
327
+ return false;
328
+ }
329
+ };
77
330
 
78
331
  // src/utilities/correct-paths.ts
79
332
  var _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
@@ -295,34 +548,10 @@ Path: ${pathInsideMonorepo ? pathInsideMonorepo : process.cwd()}`
295
548
  }
296
549
 
297
550
  // src/utilities/get-default-config.ts
298
- var DEFAULT_COLOR_CONFIG = {
299
- light: {
300
- background: "#fafafa",
301
- foreground: "#1d1e22",
302
- brand: "#1fb2a6",
303
- alternate: "#db2777",
304
- help: "#5C4EE5",
305
- success: "#087f5b",
306
- info: "#0550ae",
307
- warning: "#e3b341",
308
- danger: "#D8314A",
309
- positive: "#22c55e",
310
- negative: "#dc2626"
311
- },
312
- dark: {
313
- background: "#1d1e22",
314
- foreground: "#cbd5e1",
315
- brand: "#2dd4bf",
316
- alternate: "#db2777",
317
- help: "#818cf8",
318
- success: "#10b981",
319
- info: "#58a6ff",
320
- warning: "#f3d371",
321
- danger: "#D8314A",
322
- positive: "#22c55e",
323
- negative: "#dc2626"
324
- }
325
- };
551
+ var import_config = require("@storm-software/config");
552
+ var import_node_fs2 = require("fs");
553
+ var import_promises = require("fs/promises");
554
+ var import_node_path2 = require("path");
326
555
  async function getPackageJsonConfig(root) {
327
556
  let license = import_config.STORM_DEFAULT_LICENSE;
328
557
  let homepage = void 0;
@@ -406,229 +635,6 @@ function applyDefaultConfig(config) {
406
635
  return config;
407
636
  }
408
637
 
409
- // src/logger/chalk.ts
410
- var import_chalk = __toESM(require("chalk"), 1);
411
- var chalkDefault = {
412
- hex: (_) => (message) => message,
413
- bgHex: (_) => ({
414
- whiteBright: (message) => message,
415
- white: (message) => message
416
- }),
417
- white: (message) => message,
418
- whiteBright: (message) => message,
419
- gray: (message) => message,
420
- bold: {
421
- hex: (_) => (message) => message,
422
- bgHex: (_) => ({
423
- whiteBright: (message) => message,
424
- white: (message) => message
425
- }),
426
- whiteBright: (message) => message,
427
- white: (message) => message
428
- },
429
- dim: {
430
- hex: (_) => (message) => message,
431
- gray: (message) => message
432
- }
433
- };
434
- var getChalk = () => {
435
- let _chalk = import_chalk.default;
436
- if (!_chalk?.hex || !_chalk?.bold?.hex || !_chalk?.bgHex || !_chalk?.whiteBright || !_chalk?.white) {
437
- _chalk = chalkDefault;
438
- }
439
- return _chalk;
440
- };
441
-
442
- // src/logger/is-unicode-supported.ts
443
- function isUnicodeSupported() {
444
- if (process.platform !== "win32") {
445
- return process.env.TERM !== "linux";
446
- }
447
- return Boolean(process.env.WT_SESSION) || // Windows Terminal
448
- Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
449
- process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
450
- process.env.TERM_PROGRAM === "Terminus-Sublime" || process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty" || process.env.TERM === "rxvt-unicode" || process.env.TERM === "rxvt-unicode-256color" || process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
451
- }
452
-
453
- // src/logger/console-icons.ts
454
- var useIcon = (c, fallback) => isUnicodeSupported() ? c : fallback;
455
- var CONSOLE_ICONS = {
456
- [LogLevelLabel.ERROR]: useIcon("\u2718", "\xD7"),
457
- [LogLevelLabel.FATAL]: useIcon("\u{1F480}", "\xD7"),
458
- [LogLevelLabel.WARN]: useIcon("\u26A0", "\u203C"),
459
- [LogLevelLabel.INFO]: useIcon("\u2139", "i"),
460
- [LogLevelLabel.SUCCESS]: useIcon("\u2714", "\u221A"),
461
- [LogLevelLabel.DEBUG]: useIcon("\u{1F6E0}", "D"),
462
- [LogLevelLabel.TRACE]: useIcon("\u{1F6E0}", "T"),
463
- [LogLevelLabel.ALL]: useIcon("\u2709", "\u2192")
464
- };
465
-
466
- // src/logger/format-timestamp.ts
467
- var formatTimestamp = (date = /* @__PURE__ */ new Date()) => {
468
- return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
469
- };
470
-
471
- // src/logger/get-log-level.ts
472
- var getLogLevel = (label) => {
473
- switch (label) {
474
- case "all":
475
- return LogLevel.ALL;
476
- case "trace":
477
- return LogLevel.TRACE;
478
- case "debug":
479
- return LogLevel.DEBUG;
480
- case "info":
481
- return LogLevel.INFO;
482
- case "warn":
483
- return LogLevel.WARN;
484
- case "error":
485
- return LogLevel.ERROR;
486
- case "fatal":
487
- return LogLevel.FATAL;
488
- case "silent":
489
- return LogLevel.SILENT;
490
- default:
491
- return LogLevel.INFO;
492
- }
493
- };
494
- var getLogLevelLabel = (logLevel = LogLevel.INFO) => {
495
- if (logLevel >= LogLevel.ALL) {
496
- return LogLevelLabel.ALL;
497
- }
498
- if (logLevel >= LogLevel.TRACE) {
499
- return LogLevelLabel.TRACE;
500
- }
501
- if (logLevel >= LogLevel.DEBUG) {
502
- return LogLevelLabel.DEBUG;
503
- }
504
- if (logLevel >= LogLevel.INFO) {
505
- return LogLevelLabel.INFO;
506
- }
507
- if (logLevel >= LogLevel.WARN) {
508
- return LogLevelLabel.WARN;
509
- }
510
- if (logLevel >= LogLevel.ERROR) {
511
- return LogLevelLabel.ERROR;
512
- }
513
- if (logLevel >= LogLevel.FATAL) {
514
- return LogLevelLabel.FATAL;
515
- }
516
- if (logLevel <= LogLevel.SILENT) {
517
- return LogLevelLabel.SILENT;
518
- }
519
- return LogLevelLabel.INFO;
520
- };
521
-
522
- // src/logger/console.ts
523
- var getLogFn = (logLevel = LogLevel.INFO, config = {}, _chalk = getChalk()) => {
524
- const colors = !config.colors?.dark && !config.colors?.["base"] && !config.colors?.["base"]?.dark ? DEFAULT_COLOR_CONFIG : config.colors?.dark && typeof config.colors.dark === "string" ? config.colors : config.colors?.["base"]?.dark && typeof config.colors["base"].dark === "string" ? config.colors["base"].dark : config.colors?.["base"] ? config.colors?.["base"] : DEFAULT_COLOR_CONFIG;
525
- const configLogLevel = config.logLevel || process.env.STORM_LOG_LEVEL || LogLevelLabel.INFO;
526
- if (logLevel > getLogLevel(configLogLevel) || logLevel <= LogLevel.SILENT || getLogLevel(configLogLevel) <= LogLevel.SILENT) {
527
- return (_) => {
528
- };
529
- }
530
- if (typeof logLevel === "number" && LogLevel.FATAL >= logLevel) {
531
- return (message) => {
532
- console.error(
533
- `
534
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.fatal ?? "#7d1a1a")(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
535
- `
536
- );
537
- };
538
- }
539
- if (typeof logLevel === "number" && LogLevel.ERROR >= logLevel) {
540
- return (message) => {
541
- console.error(
542
- `
543
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.danger ?? "#f85149")(`[${CONSOLE_ICONS[LogLevelLabel.ERROR]} Error] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
544
- `
545
- );
546
- };
547
- }
548
- if (typeof logLevel === "number" && LogLevel.WARN >= logLevel) {
549
- return (message) => {
550
- console.warn(
551
- `
552
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.warning ?? "#e3b341")(`[${CONSOLE_ICONS[LogLevelLabel.WARN]} Warn] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
553
- `
554
- );
555
- };
556
- }
557
- if (typeof logLevel === "number" && LogLevel.SUCCESS >= logLevel) {
558
- return (message) => {
559
- console.info(
560
- `
561
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.success ?? "#56d364")(`[${CONSOLE_ICONS[LogLevelLabel.SUCCESS]} Success] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
562
- `
563
- );
564
- };
565
- }
566
- if (typeof logLevel === "number" && LogLevel.INFO >= logLevel) {
567
- return (message) => {
568
- console.info(
569
- `
570
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.info ?? "#58a6ff")(`[${CONSOLE_ICONS[LogLevelLabel.INFO]} Info] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
571
- `
572
- );
573
- };
574
- }
575
- if (typeof logLevel === "number" && LogLevel.DEBUG >= logLevel) {
576
- return (message) => {
577
- console.debug(
578
- `
579
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex("#3e9eff")(`[${CONSOLE_ICONS[LogLevelLabel.DEBUG]} Debug] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
580
- `
581
- );
582
- };
583
- }
584
- if (typeof logLevel === "number" && LogLevel.TRACE >= logLevel) {
585
- return (message) => {
586
- console.debug(
587
- `
588
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex("#0070E0")(`[${CONSOLE_ICONS[LogLevelLabel.TRACE]} Trace] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
589
- `
590
- );
591
- };
592
- }
593
- return (message) => {
594
- console.log(
595
- `
596
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex("#0356a8")(`[${CONSOLE_ICONS[LogLevelLabel.ALL]} System] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
597
- `
598
- );
599
- };
600
- };
601
- var writeFatal = (message, config) => getLogFn(LogLevel.FATAL, config)(message);
602
- var writeError = (message, config) => getLogFn(LogLevel.ERROR, config)(message);
603
- var writeWarning = (message, config) => getLogFn(LogLevel.WARN, config)(message);
604
- var writeInfo = (message, config) => getLogFn(LogLevel.INFO, config)(message);
605
- var writeSuccess = (message, config) => getLogFn(LogLevel.SUCCESS, config)(message);
606
- var writeTrace = (message, config) => getLogFn(LogLevel.TRACE, config)(message);
607
- var MAX_DEPTH = 4;
608
- var formatLogMessage = (message, options = {}, depth2 = 0) => {
609
- if (depth2 > MAX_DEPTH) {
610
- return "<max depth>";
611
- }
612
- const prefix = options.prefix ?? "-";
613
- const skip = options.skip ?? [];
614
- return typeof message === "undefined" || message === null || !message && typeof message !== "boolean" ? "<none>" : typeof message === "string" ? message : Array.isArray(message) ? `
615
- ${message.map((item, index) => ` ${prefix}> #${index} = ${formatLogMessage(item, { prefix: `${prefix}-`, skip }, depth2 + 1)}`).join("\n")}` : typeof message === "object" ? `
616
- ${Object.keys(message).filter((key) => !skip.includes(key)).map(
617
- (key) => ` ${prefix}> ${key} = ${_isFunction(message[key]) ? "<function>" : typeof message[key] === "object" ? formatLogMessage(
618
- message[key],
619
- { prefix: `${prefix}-`, skip },
620
- depth2 + 1
621
- ) : message[key]}`
622
- ).join("\n")}` : message;
623
- };
624
- var _isFunction = (value) => {
625
- try {
626
- return value instanceof Function || typeof value === "function" || !!(value?.constructor && value?.call && value?.apply);
627
- } catch (e) {
628
- return false;
629
- }
630
- };
631
-
632
638
  // src/utilities/process-handler.ts
633
639
  var exitWithError = (config) => {
634
640
  writeFatal("Exiting script with an error status...", config);
@@ -887,6 +893,19 @@ var getThemeColorConfigEnv = (prefix, theme) => {
887
893
  return process.env[`${prefix}${themeName}LIGHT_BRAND`] || process.env[`${prefix}${themeName}DARK_BRAND`] ? getMultiThemeColorConfigEnv(prefix + themeName) : getSingleThemeColorConfigEnv(prefix + themeName);
888
894
  };
889
895
  var getSingleThemeColorConfigEnv = (prefix) => {
896
+ const gradient = [];
897
+ if (process.env[`${prefix}GRADIENT_START`] && process.env[`${prefix}GRADIENT_END`]) {
898
+ gradient.push(
899
+ process.env[`${prefix}GRADIENT_START`],
900
+ process.env[`${prefix}GRADIENT_END`]
901
+ );
902
+ } else if (process.env[`${prefix}GRADIENT_0`] || process.env[`${prefix}GRADIENT_1`]) {
903
+ let index = process.env[`${prefix}GRADIENT_0`] ? 0 : 1;
904
+ while (process.env[`${prefix}GRADIENT_${index}`]) {
905
+ gradient.push(process.env[`${prefix}GRADIENT_${index}`]);
906
+ index++;
907
+ }
908
+ }
890
909
  return {
891
910
  dark: process.env[`${prefix}DARK`],
892
911
  light: process.env[`${prefix}LIGHT`],
@@ -901,7 +920,8 @@ var getSingleThemeColorConfigEnv = (prefix) => {
901
920
  danger: process.env[`${prefix}DANGER`],
902
921
  fatal: process.env[`${prefix}FATAL`],
903
922
  positive: process.env[`${prefix}POSITIVE`],
904
- negative: process.env[`${prefix}NEGATIVE`]
923
+ negative: process.env[`${prefix}NEGATIVE`],
924
+ gradient
905
925
  };
906
926
  };
907
927
  var getMultiThemeColorConfigEnv = (prefix) => {
@@ -913,6 +933,19 @@ var getMultiThemeColorConfigEnv = (prefix) => {
913
933
  };
914
934
  };
915
935
  var getBaseThemeColorConfigEnv = (prefix) => {
936
+ const gradient = [];
937
+ if (process.env[`${prefix}GRADIENT_START`] && process.env[`${prefix}GRADIENT_END`]) {
938
+ gradient.push(
939
+ process.env[`${prefix}GRADIENT_START`],
940
+ process.env[`${prefix}GRADIENT_END`]
941
+ );
942
+ } else if (process.env[`${prefix}GRADIENT_0`] || process.env[`${prefix}GRADIENT_1`]) {
943
+ let index = process.env[`${prefix}GRADIENT_0`] ? 0 : 1;
944
+ while (process.env[`${prefix}GRADIENT_${index}`]) {
945
+ gradient.push(process.env[`${prefix}GRADIENT_${index}`]);
946
+ index++;
947
+ }
948
+ }
916
949
  return {
917
950
  foreground: process.env[`${prefix}FOREGROUND`],
918
951
  background: process.env[`${prefix}BACKGROUND`],
@@ -927,7 +960,8 @@ var getBaseThemeColorConfigEnv = (prefix) => {
927
960
  danger: process.env[`${prefix}DANGER`],
928
961
  fatal: process.env[`${prefix}FATAL`],
929
962
  positive: process.env[`${prefix}POSITIVE`],
930
- negative: process.env[`${prefix}NEGATIVE`]
963
+ negative: process.env[`${prefix}NEGATIVE`],
964
+ gradient
931
965
  };
932
966
  };
933
967
 
@@ -1058,11 +1092,12 @@ var setConfigEnv = (config) => {
1058
1092
  process.env[`${prefix}TIMEZONE`] = config.timezone;
1059
1093
  process.env.TZ = config.timezone;
1060
1094
  process.env.DEFAULT_TIMEZONE = config.timezone;
1095
+ process.env.TIMEZONE = config.timezone;
1061
1096
  }
1062
1097
  if (config.locale) {
1063
1098
  process.env[`${prefix}LOCALE`] = config.locale;
1064
- process.env.LOCALE = config.locale;
1065
1099
  process.env.DEFAULT_LOCALE = config.locale;
1100
+ process.env.LOCALE = config.locale;
1066
1101
  process.env.LANG = config.locale ? `${config.locale.replaceAll("-", "_")}.UTF-8` : "en_US.UTF-8";
1067
1102
  }
1068
1103
  if (config.configFile) {
@@ -1223,6 +1258,11 @@ var setSingleThemeColorConfigEnv = (prefix, config) => {
1223
1258
  if (config.negative) {
1224
1259
  process.env[`${prefix}NEGATIVE`] = config.negative;
1225
1260
  }
1261
+ if (config.gradient) {
1262
+ for (let i = 0; i < config.gradient.length; i++) {
1263
+ process.env[`${prefix}GRADIENT_${i}`] = config.gradient[i];
1264
+ }
1265
+ }
1226
1266
  };
1227
1267
  var setMultiThemeColorConfigEnv = (prefix, config) => {
1228
1268
  return {
@@ -1273,6 +1313,11 @@ var setBaseThemeColorConfigEnv = (prefix, config) => {
1273
1313
  if (config.negative) {
1274
1314
  process.env[`${prefix}NEGATIVE`] = config.negative;
1275
1315
  }
1316
+ if (config.gradient) {
1317
+ for (let i = 0; i < config.gradient.length; i++) {
1318
+ process.env[`${prefix}GRADIENT_${i}`] = config.gradient[i];
1319
+ }
1320
+ }
1276
1321
  };
1277
1322
 
1278
1323
  // src/create-storm-config.ts