@storm-software/config-tools 1.176.23 → 1.177.3

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 (74) hide show
  1. package/README.md +1 -2
  2. package/bin/config.cjs +304 -260
  3. package/bin/config.js +307 -263
  4. package/dist/{chunk-3H56XJD4.js → chunk-2FH55GER.js} +30 -2
  5. package/dist/{chunk-SHD7ZUSQ.js → chunk-5BZL5JNY.js} +1 -30
  6. package/dist/{chunk-7MBEC23I.js → chunk-5WYSI634.js} +1 -1
  7. package/dist/{chunk-EVOHJKUO.cjs → chunk-AKMWVY6J.cjs} +10 -10
  8. package/dist/{chunk-2IFNLLUL.cjs → chunk-BWNFZH2S.cjs} +6 -6
  9. package/dist/{chunk-INZ6GCPT.cjs → chunk-CG3ZPQSH.cjs} +2 -2
  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-5DA26BV4.js → chunk-FNCPJCRZ.js} +4 -4
  13. package/dist/{chunk-LKCXHEY6.cjs → chunk-GVHRCPKH.cjs} +21 -21
  14. package/dist/{chunk-ENEFXS5D.js → chunk-HRYS4NSW.js} +1 -1
  15. package/dist/{chunk-C5L7VSBR.js → chunk-HUE33BQZ.js} +10 -10
  16. package/dist/{chunk-QLJYCKMD.cjs → chunk-J7BFGUIX.cjs} +2 -2
  17. package/dist/{chunk-YEFBKZON.js → chunk-KHLQU66A.js} +10 -10
  18. package/dist/{chunk-KH5SONKW.cjs → chunk-MBEJXPRQ.cjs} +3 -32
  19. package/dist/{chunk-UHSAPVE4.js → chunk-NAULCOC3.js} +1 -1
  20. package/dist/{chunk-U436743U.cjs → chunk-NOTWBXXM.cjs} +0 -1
  21. package/dist/{chunk-J2LN5PAX.cjs → chunk-QPNEQJUQ.cjs} +6 -6
  22. package/dist/{chunk-UCO4HZFN.cjs → chunk-R4QJBJ5S.cjs} +40 -9
  23. package/dist/{chunk-BEFQ5B4E.js → chunk-R4UCFEO2.js} +2 -2
  24. package/dist/{chunk-PTHGOJU6.js → chunk-SZXSPLS6.js} +0 -1
  25. package/dist/{chunk-W4C4Y3CW.js → chunk-UMSUK27E.js} +12 -1
  26. package/dist/{chunk-CL6NTH3D.js → chunk-VLS3MDSR.js} +35 -4
  27. package/dist/{chunk-YNDGTWLY.cjs → chunk-WUZAZNK3.cjs} +9 -9
  28. package/dist/{chunk-ZNODVZNQ.cjs → chunk-Z62ZL5WE.cjs} +9 -9
  29. package/dist/{chunk-HYJVQZYZ.js → chunk-ZVT775K3.js} +1 -1
  30. package/dist/config-file/get-config-file.cjs +11 -11
  31. package/dist/config-file/get-config-file.js +10 -10
  32. package/dist/config-file/index.cjs +11 -11
  33. package/dist/config-file/index.js +10 -10
  34. package/dist/create-storm-config.cjs +14 -14
  35. package/dist/create-storm-config.js +13 -13
  36. package/dist/env/get-env.cjs +2 -2
  37. package/dist/env/get-env.js +1 -1
  38. package/dist/env/index.cjs +3 -3
  39. package/dist/env/index.js +2 -2
  40. package/dist/env/set-env.cjs +2 -2
  41. package/dist/env/set-env.js +1 -1
  42. package/dist/get-config.cjs +15 -15
  43. package/dist/get-config.js +14 -14
  44. package/dist/index.cjs +17 -17
  45. package/dist/index.d.cts +2 -2
  46. package/dist/index.d.ts +2 -2
  47. package/dist/index.js +22 -22
  48. package/dist/logger/console.cjs +3 -6
  49. package/dist/logger/console.js +2 -5
  50. package/dist/logger/create-logger.cjs +4 -7
  51. package/dist/logger/create-logger.js +3 -6
  52. package/dist/logger/index.cjs +4 -7
  53. package/dist/logger/index.js +3 -6
  54. package/dist/utilities/apply-workspace-tokens.cjs +3 -3
  55. package/dist/utilities/apply-workspace-tokens.js +2 -2
  56. package/dist/utilities/colors.cjs +4 -6
  57. package/dist/utilities/colors.d.cts +38 -1
  58. package/dist/utilities/colors.d.ts +38 -1
  59. package/dist/utilities/colors.js +3 -5
  60. package/dist/utilities/find-workspace-root.cjs +2 -2
  61. package/dist/utilities/find-workspace-root.js +1 -1
  62. package/dist/utilities/get-default-config.cjs +3 -5
  63. package/dist/utilities/get-default-config.d.cts +2 -6
  64. package/dist/utilities/get-default-config.d.ts +2 -6
  65. package/dist/utilities/get-default-config.js +2 -4
  66. package/dist/utilities/index.cjs +12 -12
  67. package/dist/utilities/index.d.cts +2 -2
  68. package/dist/utilities/index.d.ts +2 -2
  69. package/dist/utilities/index.js +13 -13
  70. package/dist/utilities/process-handler.cjs +4 -7
  71. package/dist/utilities/process-handler.js +3 -6
  72. package/dist/utilities/toml.cjs +5 -8
  73. package/dist/utilities/toml.js +4 -7
  74. 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.21-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.1-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 -->
@@ -40,7 +40,6 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
40
40
 
41
41
  <!-- START doctoc -->
42
42
  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
43
-
44
43
  ## Table of Contents
45
44
 
46
45
  - [Storm Configuration Tools](#storm-configuration-tools)
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]:\//;
@@ -226,7 +479,6 @@ function findFolderUp(startPath, endFileNames = [], endDirectoryNames = []) {
226
479
 
227
480
  // src/utilities/find-workspace-root.ts
228
481
  var rootFiles = [
229
- "storm-workspace.json",
230
482
  "storm-workspace.json",
231
483
  "storm-workspace.yaml",
232
484
  "storm-workspace.yml",
@@ -296,34 +548,10 @@ Path: ${pathInsideMonorepo ? pathInsideMonorepo : process.cwd()}`
296
548
  }
297
549
 
298
550
  // src/utilities/get-default-config.ts
299
- var DEFAULT_COLOR_CONFIG = {
300
- light: {
301
- background: "#fafafa",
302
- foreground: "#1d1e22",
303
- brand: "#1fb2a6",
304
- alternate: "#db2777",
305
- help: "#5C4EE5",
306
- success: "#087f5b",
307
- info: "#0550ae",
308
- warning: "#e3b341",
309
- danger: "#D8314A",
310
- positive: "#22c55e",
311
- negative: "#dc2626"
312
- },
313
- dark: {
314
- background: "#1d1e22",
315
- foreground: "#cbd5e1",
316
- brand: "#2dd4bf",
317
- alternate: "#db2777",
318
- help: "#818cf8",
319
- success: "#10b981",
320
- info: "#58a6ff",
321
- warning: "#f3d371",
322
- danger: "#D8314A",
323
- positive: "#22c55e",
324
- negative: "#dc2626"
325
- }
326
- };
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");
327
555
  async function getPackageJsonConfig(root) {
328
556
  let license = import_config.STORM_DEFAULT_LICENSE;
329
557
  let homepage = void 0;
@@ -407,229 +635,6 @@ function applyDefaultConfig(config) {
407
635
  return config;
408
636
  }
409
637
 
410
- // src/logger/chalk.ts
411
- var import_chalk = __toESM(require("chalk"), 1);
412
- var chalkDefault = {
413
- hex: (_) => (message) => message,
414
- bgHex: (_) => ({
415
- whiteBright: (message) => message,
416
- white: (message) => message
417
- }),
418
- white: (message) => message,
419
- whiteBright: (message) => message,
420
- gray: (message) => message,
421
- bold: {
422
- hex: (_) => (message) => message,
423
- bgHex: (_) => ({
424
- whiteBright: (message) => message,
425
- white: (message) => message
426
- }),
427
- whiteBright: (message) => message,
428
- white: (message) => message
429
- },
430
- dim: {
431
- hex: (_) => (message) => message,
432
- gray: (message) => message
433
- }
434
- };
435
- var getChalk = () => {
436
- let _chalk = import_chalk.default;
437
- if (!_chalk?.hex || !_chalk?.bold?.hex || !_chalk?.bgHex || !_chalk?.whiteBright || !_chalk?.white) {
438
- _chalk = chalkDefault;
439
- }
440
- return _chalk;
441
- };
442
-
443
- // src/logger/is-unicode-supported.ts
444
- function isUnicodeSupported() {
445
- if (process.platform !== "win32") {
446
- return process.env.TERM !== "linux";
447
- }
448
- return Boolean(process.env.WT_SESSION) || // Windows Terminal
449
- Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
450
- process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
451
- 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";
452
- }
453
-
454
- // src/logger/console-icons.ts
455
- var useIcon = (c, fallback) => isUnicodeSupported() ? c : fallback;
456
- var CONSOLE_ICONS = {
457
- [LogLevelLabel.ERROR]: useIcon("\u2718", "\xD7"),
458
- [LogLevelLabel.FATAL]: useIcon("\u{1F480}", "\xD7"),
459
- [LogLevelLabel.WARN]: useIcon("\u26A0", "\u203C"),
460
- [LogLevelLabel.INFO]: useIcon("\u2139", "i"),
461
- [LogLevelLabel.SUCCESS]: useIcon("\u2714", "\u221A"),
462
- [LogLevelLabel.DEBUG]: useIcon("\u{1F6E0}", "D"),
463
- [LogLevelLabel.TRACE]: useIcon("\u{1F6E0}", "T"),
464
- [LogLevelLabel.ALL]: useIcon("\u2709", "\u2192")
465
- };
466
-
467
- // src/logger/format-timestamp.ts
468
- var formatTimestamp = (date = /* @__PURE__ */ new Date()) => {
469
- return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
470
- };
471
-
472
- // src/logger/get-log-level.ts
473
- var getLogLevel = (label) => {
474
- switch (label) {
475
- case "all":
476
- return LogLevel.ALL;
477
- case "trace":
478
- return LogLevel.TRACE;
479
- case "debug":
480
- return LogLevel.DEBUG;
481
- case "info":
482
- return LogLevel.INFO;
483
- case "warn":
484
- return LogLevel.WARN;
485
- case "error":
486
- return LogLevel.ERROR;
487
- case "fatal":
488
- return LogLevel.FATAL;
489
- case "silent":
490
- return LogLevel.SILENT;
491
- default:
492
- return LogLevel.INFO;
493
- }
494
- };
495
- var getLogLevelLabel = (logLevel = LogLevel.INFO) => {
496
- if (logLevel >= LogLevel.ALL) {
497
- return LogLevelLabel.ALL;
498
- }
499
- if (logLevel >= LogLevel.TRACE) {
500
- return LogLevelLabel.TRACE;
501
- }
502
- if (logLevel >= LogLevel.DEBUG) {
503
- return LogLevelLabel.DEBUG;
504
- }
505
- if (logLevel >= LogLevel.INFO) {
506
- return LogLevelLabel.INFO;
507
- }
508
- if (logLevel >= LogLevel.WARN) {
509
- return LogLevelLabel.WARN;
510
- }
511
- if (logLevel >= LogLevel.ERROR) {
512
- return LogLevelLabel.ERROR;
513
- }
514
- if (logLevel >= LogLevel.FATAL) {
515
- return LogLevelLabel.FATAL;
516
- }
517
- if (logLevel <= LogLevel.SILENT) {
518
- return LogLevelLabel.SILENT;
519
- }
520
- return LogLevelLabel.INFO;
521
- };
522
-
523
- // src/logger/console.ts
524
- var getLogFn = (logLevel = LogLevel.INFO, config = {}, _chalk = getChalk()) => {
525
- 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;
526
- const configLogLevel = config.logLevel || process.env.STORM_LOG_LEVEL || LogLevelLabel.INFO;
527
- if (logLevel > getLogLevel(configLogLevel) || logLevel <= LogLevel.SILENT || getLogLevel(configLogLevel) <= LogLevel.SILENT) {
528
- return (_) => {
529
- };
530
- }
531
- if (typeof logLevel === "number" && LogLevel.FATAL >= logLevel) {
532
- return (message) => {
533
- console.error(
534
- `
535
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.fatal ?? "#7d1a1a")(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
536
- `
537
- );
538
- };
539
- }
540
- if (typeof logLevel === "number" && LogLevel.ERROR >= logLevel) {
541
- return (message) => {
542
- console.error(
543
- `
544
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.danger ?? "#f85149")(`[${CONSOLE_ICONS[LogLevelLabel.ERROR]} Error] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
545
- `
546
- );
547
- };
548
- }
549
- if (typeof logLevel === "number" && LogLevel.WARN >= logLevel) {
550
- return (message) => {
551
- console.warn(
552
- `
553
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.warning ?? "#e3b341")(`[${CONSOLE_ICONS[LogLevelLabel.WARN]} Warn] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
554
- `
555
- );
556
- };
557
- }
558
- if (typeof logLevel === "number" && LogLevel.SUCCESS >= logLevel) {
559
- return (message) => {
560
- console.info(
561
- `
562
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.success ?? "#56d364")(`[${CONSOLE_ICONS[LogLevelLabel.SUCCESS]} Success] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
563
- `
564
- );
565
- };
566
- }
567
- if (typeof logLevel === "number" && LogLevel.INFO >= logLevel) {
568
- return (message) => {
569
- console.info(
570
- `
571
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.info ?? "#58a6ff")(`[${CONSOLE_ICONS[LogLevelLabel.INFO]} Info] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
572
- `
573
- );
574
- };
575
- }
576
- if (typeof logLevel === "number" && LogLevel.DEBUG >= logLevel) {
577
- return (message) => {
578
- console.debug(
579
- `
580
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex("#3e9eff")(`[${CONSOLE_ICONS[LogLevelLabel.DEBUG]} Debug] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
581
- `
582
- );
583
- };
584
- }
585
- if (typeof logLevel === "number" && LogLevel.TRACE >= logLevel) {
586
- return (message) => {
587
- console.debug(
588
- `
589
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex("#0070E0")(`[${CONSOLE_ICONS[LogLevelLabel.TRACE]} Trace] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
590
- `
591
- );
592
- };
593
- }
594
- return (message) => {
595
- console.log(
596
- `
597
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex("#0356a8")(`[${CONSOLE_ICONS[LogLevelLabel.ALL]} System] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
598
- `
599
- );
600
- };
601
- };
602
- var writeFatal = (message, config) => getLogFn(LogLevel.FATAL, config)(message);
603
- var writeError = (message, config) => getLogFn(LogLevel.ERROR, config)(message);
604
- var writeWarning = (message, config) => getLogFn(LogLevel.WARN, config)(message);
605
- var writeInfo = (message, config) => getLogFn(LogLevel.INFO, config)(message);
606
- var writeSuccess = (message, config) => getLogFn(LogLevel.SUCCESS, config)(message);
607
- var writeTrace = (message, config) => getLogFn(LogLevel.TRACE, config)(message);
608
- var MAX_DEPTH = 4;
609
- var formatLogMessage = (message, options = {}, depth2 = 0) => {
610
- if (depth2 > MAX_DEPTH) {
611
- return "<max depth>";
612
- }
613
- const prefix = options.prefix ?? "-";
614
- const skip = options.skip ?? [];
615
- return typeof message === "undefined" || message === null || !message && typeof message !== "boolean" ? "<none>" : typeof message === "string" ? message : Array.isArray(message) ? `
616
- ${message.map((item, index) => ` ${prefix}> #${index} = ${formatLogMessage(item, { prefix: `${prefix}-`, skip }, depth2 + 1)}`).join("\n")}` : typeof message === "object" ? `
617
- ${Object.keys(message).filter((key) => !skip.includes(key)).map(
618
- (key) => ` ${prefix}> ${key} = ${_isFunction(message[key]) ? "<function>" : typeof message[key] === "object" ? formatLogMessage(
619
- message[key],
620
- { prefix: `${prefix}-`, skip },
621
- depth2 + 1
622
- ) : message[key]}`
623
- ).join("\n")}` : message;
624
- };
625
- var _isFunction = (value) => {
626
- try {
627
- return value instanceof Function || typeof value === "function" || !!(value?.constructor && value?.call && value?.apply);
628
- } catch (e) {
629
- return false;
630
- }
631
- };
632
-
633
638
  // src/utilities/process-handler.ts
634
639
  var exitWithError = (config) => {
635
640
  writeFatal("Exiting script with an error status...", config);
@@ -888,6 +893,19 @@ var getThemeColorConfigEnv = (prefix, theme) => {
888
893
  return process.env[`${prefix}${themeName}LIGHT_BRAND`] || process.env[`${prefix}${themeName}DARK_BRAND`] ? getMultiThemeColorConfigEnv(prefix + themeName) : getSingleThemeColorConfigEnv(prefix + themeName);
889
894
  };
890
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
+ }
891
909
  return {
892
910
  dark: process.env[`${prefix}DARK`],
893
911
  light: process.env[`${prefix}LIGHT`],
@@ -902,7 +920,8 @@ var getSingleThemeColorConfigEnv = (prefix) => {
902
920
  danger: process.env[`${prefix}DANGER`],
903
921
  fatal: process.env[`${prefix}FATAL`],
904
922
  positive: process.env[`${prefix}POSITIVE`],
905
- negative: process.env[`${prefix}NEGATIVE`]
923
+ negative: process.env[`${prefix}NEGATIVE`],
924
+ gradient
906
925
  };
907
926
  };
908
927
  var getMultiThemeColorConfigEnv = (prefix) => {
@@ -914,6 +933,19 @@ var getMultiThemeColorConfigEnv = (prefix) => {
914
933
  };
915
934
  };
916
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
+ }
917
949
  return {
918
950
  foreground: process.env[`${prefix}FOREGROUND`],
919
951
  background: process.env[`${prefix}BACKGROUND`],
@@ -928,7 +960,8 @@ var getBaseThemeColorConfigEnv = (prefix) => {
928
960
  danger: process.env[`${prefix}DANGER`],
929
961
  fatal: process.env[`${prefix}FATAL`],
930
962
  positive: process.env[`${prefix}POSITIVE`],
931
- negative: process.env[`${prefix}NEGATIVE`]
963
+ negative: process.env[`${prefix}NEGATIVE`],
964
+ gradient
932
965
  };
933
966
  };
934
967
 
@@ -1059,11 +1092,12 @@ var setConfigEnv = (config) => {
1059
1092
  process.env[`${prefix}TIMEZONE`] = config.timezone;
1060
1093
  process.env.TZ = config.timezone;
1061
1094
  process.env.DEFAULT_TIMEZONE = config.timezone;
1095
+ process.env.TIMEZONE = config.timezone;
1062
1096
  }
1063
1097
  if (config.locale) {
1064
1098
  process.env[`${prefix}LOCALE`] = config.locale;
1065
- process.env.LOCALE = config.locale;
1066
1099
  process.env.DEFAULT_LOCALE = config.locale;
1100
+ process.env.LOCALE = config.locale;
1067
1101
  process.env.LANG = config.locale ? `${config.locale.replaceAll("-", "_")}.UTF-8` : "en_US.UTF-8";
1068
1102
  }
1069
1103
  if (config.configFile) {
@@ -1224,6 +1258,11 @@ var setSingleThemeColorConfigEnv = (prefix, config) => {
1224
1258
  if (config.negative) {
1225
1259
  process.env[`${prefix}NEGATIVE`] = config.negative;
1226
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
+ }
1227
1266
  };
1228
1267
  var setMultiThemeColorConfigEnv = (prefix, config) => {
1229
1268
  return {
@@ -1274,6 +1313,11 @@ var setBaseThemeColorConfigEnv = (prefix, config) => {
1274
1313
  if (config.negative) {
1275
1314
  process.env[`${prefix}NEGATIVE`] = config.negative;
1276
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
+ }
1277
1321
  };
1278
1322
 
1279
1323
  // src/create-storm-config.ts