@storm-software/workspace-tools 1.72.3 → 1.73.1

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.
@@ -48787,8 +48787,8 @@ var require_pax = __commonJS({
48787
48787
  return len + s2;
48788
48788
  }
48789
48789
  };
48790
- Pax.parse = (string, ex, g4) => new Pax(merge2(parseKV(string), ex), g4);
48791
- var merge2 = (a2, b6) => b6 ? Object.keys(a2).reduce((s2, k4) => (s2[k4] = a2[k4], s2), b6) : a2;
48790
+ Pax.parse = (string, ex, g4) => new Pax(merge3(parseKV(string), ex), g4);
48791
+ var merge3 = (a2, b6) => b6 ? Object.keys(a2).reduce((s2, k4) => (s2[k4] = a2[k4], s2), b6) : a2;
48792
48792
  var parseKV = (string) => string.replace(/\n$/, "").split("\n").reduce(parseKVLine, /* @__PURE__ */ Object.create(null));
48793
48793
  var parseKVLine = (set, line) => {
48794
48794
  const n = parseInt(line, 10);
@@ -69007,64 +69007,6 @@ var require_cjs = __commonJS({
69007
69007
  }
69008
69008
  });
69009
69009
 
69010
- // packages/config-tools/src/config-file/get-config-file.ts
69011
- var import_deepmerge, getConfigFileByName, getConfigFile;
69012
- var init_get_config_file = __esm({
69013
- "packages/config-tools/src/config-file/get-config-file.ts"() {
69014
- init_find_workspace_root();
69015
- init_dist10();
69016
- import_deepmerge = __toESM(require_cjs());
69017
- getConfigFileByName = async (fileName, filePath) => {
69018
- const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
69019
- return loadConfig({
69020
- cwd: workspacePath,
69021
- packageJson: true,
69022
- name: fileName,
69023
- envName: fileName?.toUpperCase(),
69024
- jitiOptions: {
69025
- debug: true,
69026
- cache: process.env.STORM_CACHE ? process.env.STORM_CACHE_DIRECTORY : false
69027
- }
69028
- });
69029
- };
69030
- getConfigFile = async (filePath, additionalFileNames = []) => {
69031
- const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
69032
- let { config, configFile } = await loadConfig({
69033
- cwd: workspacePath,
69034
- name: "storm"
69035
- });
69036
- if (additionalFileNames && additionalFileNames.length > 0) {
69037
- const results = await Promise.all(
69038
- additionalFileNames.map(
69039
- (fileName) => loadConfig({
69040
- cwd: workspacePath,
69041
- name: fileName
69042
- })
69043
- )
69044
- );
69045
- for (const result of results) {
69046
- if (result) {
69047
- config = (0, import_deepmerge.default)(config ?? {}, result.config ?? {});
69048
- }
69049
- }
69050
- }
69051
- if (!config) {
69052
- return void 0;
69053
- }
69054
- config.configFile = configFile;
69055
- config.runtimeVersion = "0.0.1";
69056
- return config;
69057
- };
69058
- }
69059
- });
69060
-
69061
- // packages/config-tools/src/config-file/index.ts
69062
- var init_config_file = __esm({
69063
- "packages/config-tools/src/config-file/index.ts"() {
69064
- init_get_config_file();
69065
- }
69066
- });
69067
-
69068
69010
  // node_modules/.pnpm/zod@3.22.4/node_modules/zod/lib/index.mjs
69069
69011
  function setErrorMap(map) {
69070
69012
  overrideErrorMap = map;
@@ -72799,23 +72741,71 @@ var init_lib = __esm({
72799
72741
  });
72800
72742
 
72801
72743
  // packages/config/src/schema.ts
72802
- var ColorConfigSchema, StormConfigSchema;
72744
+ var DarkColorSchema, LightColorSchema, PrimaryColorSchema, SecondaryColorSchema, TertiaryColorSchema, AccentColorSchema, SuccessColorSchema, InfoColorSchema, WarningColorSchema, ErrorColorSchema, FatalColorSchema, DarkThemeColorConfigSchema, LightThemeColorConfigSchema, MultiThemeColorConfigSchema, SingleThemeColorConfigSchema, ColorConfigSchema, ColorConfigMapSchema, StormConfigSchema;
72803
72745
  var init_schema = __esm({
72804
72746
  "packages/config/src/schema.ts"() {
72805
72747
  init_lib();
72806
- ColorConfigSchema = z2.object({
72807
- dark: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1d232a").describe("The dark background color of the workspace"),
72808
- light: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#f4f4f5").describe("The light background color of the workspace"),
72809
- primary: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1fb2a6").describe("The primary color of the workspace"),
72810
- secondary: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#0ea5e9").describe("The secondary color of the workspace"),
72811
- tertiary: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#ec5990").describe("The tertiary color of the workspace"),
72812
- accent: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#6366f1").describe("The accent color of the workspace"),
72813
- success: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#087f5b").describe("The success color of the workspace"),
72814
- info: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#0ea5e9").describe("The informational color of the workspace"),
72815
- warning: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#fcc419").describe("The warning color of the workspace"),
72816
- error: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#990000").describe("The error color of the workspace"),
72817
- fatal: z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#7d1a1a").describe("The fatal color of the workspace")
72818
- }).describe("Colors used for various workspace elements");
72748
+ DarkColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1d232a").describe("The dark background color of the workspace");
72749
+ LightColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#f4f4f5").describe("The light background color of the workspace");
72750
+ PrimaryColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1fb2a6").describe("The primary color of the workspace");
72751
+ SecondaryColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#0ea5e9").describe("The secondary color of the workspace");
72752
+ TertiaryColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#ec5990").describe("The tertiary color of the workspace");
72753
+ AccentColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#6366f1").describe("The accent color of the workspace");
72754
+ SuccessColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#087f5b").describe("The success color of the workspace");
72755
+ InfoColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#0ea5e9").describe("The informational color of the workspace");
72756
+ WarningColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#fcc419").describe("The warning color of the workspace");
72757
+ ErrorColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#990000").describe("The error color of the workspace");
72758
+ FatalColorSchema = z2.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#7d1a1a").describe("The fatal color of the workspace");
72759
+ DarkThemeColorConfigSchema = z2.object({
72760
+ foreground: LightColorSchema,
72761
+ background: DarkColorSchema,
72762
+ primary: PrimaryColorSchema,
72763
+ secondary: SecondaryColorSchema,
72764
+ tertiary: TertiaryColorSchema,
72765
+ accent: AccentColorSchema,
72766
+ success: SuccessColorSchema,
72767
+ info: InfoColorSchema,
72768
+ warning: WarningColorSchema,
72769
+ error: ErrorColorSchema,
72770
+ fatal: FatalColorSchema
72771
+ });
72772
+ LightThemeColorConfigSchema = z2.object({
72773
+ foreground: DarkColorSchema,
72774
+ background: LightColorSchema,
72775
+ primary: PrimaryColorSchema,
72776
+ secondary: SecondaryColorSchema,
72777
+ tertiary: TertiaryColorSchema,
72778
+ accent: AccentColorSchema,
72779
+ success: SuccessColorSchema,
72780
+ info: InfoColorSchema,
72781
+ warning: WarningColorSchema,
72782
+ error: ErrorColorSchema,
72783
+ fatal: FatalColorSchema
72784
+ });
72785
+ MultiThemeColorConfigSchema = z2.object({
72786
+ dark: DarkThemeColorConfigSchema,
72787
+ light: LightThemeColorConfigSchema
72788
+ });
72789
+ SingleThemeColorConfigSchema = z2.object({
72790
+ dark: DarkColorSchema,
72791
+ light: LightColorSchema,
72792
+ primary: PrimaryColorSchema,
72793
+ secondary: SecondaryColorSchema,
72794
+ tertiary: TertiaryColorSchema,
72795
+ accent: AccentColorSchema,
72796
+ success: SuccessColorSchema,
72797
+ info: InfoColorSchema,
72798
+ warning: WarningColorSchema,
72799
+ error: ErrorColorSchema,
72800
+ fatal: FatalColorSchema
72801
+ });
72802
+ ColorConfigSchema = SingleThemeColorConfigSchema.or(
72803
+ MultiThemeColorConfigSchema
72804
+ ).describe("Colors used for various workspace elements");
72805
+ ColorConfigMapSchema = z2.union([
72806
+ z2.object({ "base": ColorConfigSchema }),
72807
+ z2.record(z2.string(), ColorConfigSchema)
72808
+ ]);
72819
72809
  StormConfigSchema = z2.object({
72820
72810
  extends: z2.string().trim().optional().describe(
72821
72811
  "The path to a base JSON file to use as a configuration preset file"
@@ -72866,7 +72856,7 @@ var init_schema = __esm({
72866
72856
  configFile: z2.string().trim().nullable().default(null).describe(
72867
72857
  "The filepath of the Storm config. When this field is null, no config file was found in the current workspace."
72868
72858
  ),
72869
- colors: ColorConfigSchema.describe(
72859
+ colors: ColorConfigSchema.or(ColorConfigMapSchema).describe(
72870
72860
  "Storm theme config values used for styling various package elements"
72871
72861
  ),
72872
72862
  extensions: z2.record(z2.any()).optional().default({}).describe("Configuration of each used extension")
@@ -72877,8 +72867,22 @@ var init_schema = __esm({
72877
72867
  });
72878
72868
 
72879
72869
  // packages/config/src/types.ts
72870
+ var COLOR_KEYS;
72880
72871
  var init_types = __esm({
72881
72872
  "packages/config/src/types.ts"() {
72873
+ COLOR_KEYS = [
72874
+ "dark",
72875
+ "light",
72876
+ "primary",
72877
+ "secondary",
72878
+ "tertiary",
72879
+ "accent",
72880
+ "success",
72881
+ "info",
72882
+ "warning",
72883
+ "error",
72884
+ "fatal"
72885
+ ];
72882
72886
  }
72883
72887
  });
72884
72888
 
@@ -74650,14 +74654,16 @@ var init_chalk = __esm({
74650
74654
  });
74651
74655
 
74652
74656
  // packages/config-tools/src/utilities/logger.ts
74653
- var getLogFn, writeFatal, writeError, writeWarning, writeInfo, writeSuccess, writeDebug, writeTrace, writeSystem, getStopwatch;
74657
+ var getLogFn, writeFatal, writeError, writeWarning, writeInfo, writeSuccess, writeDebug, writeTrace, writeSystem, getStopwatch, formatLogMessage, _isFunction;
74654
74658
  var init_logger = __esm({
74655
74659
  "packages/config-tools/src/utilities/logger.ts"() {
74656
74660
  init_types2();
74657
74661
  init_get_log_level();
74658
74662
  init_chalk();
74663
+ init_get_default_config();
74659
74664
  getLogFn = (logLevel = LogLevel.INFO, config = {}) => {
74660
74665
  let _chalk = getChalk();
74666
+ 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;
74661
74667
  const configLogLevel = config.logLevel ?? process.env?.STORM_LOG_LEVEL ?? LogLevelLabel.INFO;
74662
74668
  if (typeof logLevel === "number" && (logLevel >= getLogLevel(configLogLevel) || logLevel <= LogLevel.SILENT) || typeof logLevel === "string" && getLogLevel(logLevel) >= getLogLevel(configLogLevel)) {
74663
74669
  return (_6) => {
@@ -74667,9 +74673,9 @@ var init_logger = __esm({
74667
74673
  return (message) => {
74668
74674
  console.error(
74669
74675
  `
74670
- ${_chalk.bold.hex(config?.colors?.error ? config.colors.error : "#7d1a1a")(">")} ${_chalk.bold.bgHex(config?.colors?.fatal ? config.colors.fatal : "#7d1a1a").whiteBright(" \u{1F480} Fatal ")} ${_chalk.hex(
74671
- config?.colors?.error ? config.colors.error : "#1fb2a6"
74672
- )(message)}
74676
+ ${_chalk.bold.hex(colors.error ?? "#f85149")(">")} ${_chalk.bold.bgHex(colors.fatal ?? "#b62324").whiteBright(
74677
+ " \u{1F480} Fatal "
74678
+ )} ${_chalk.hex(colors.error ?? "#f85149")(formatLogMessage(message))}
74673
74679
 
74674
74680
  `
74675
74681
  );
@@ -74679,9 +74685,9 @@ ${_chalk.bold.hex(config?.colors?.error ? config.colors.error : "#7d1a1a")(">")}
74679
74685
  return (message) => {
74680
74686
  console.error(
74681
74687
  `
74682
- ${_chalk.bold.hex(config?.colors?.error ? config.colors.error : "#7d1a1a")(">")} ${_chalk.bold.bgHex(config?.colors?.error ? config.colors.error : "#7d1a1a").whiteBright(" \u2718 Error ")} ${_chalk.hex(
74683
- config?.colors?.error ? config.colors.error : "#7d1a1a"
74684
- )(message)}
74688
+ ${_chalk.bold.hex(colors.error ?? "#f85149")(">")} ${_chalk.bold.bgHex(colors.error ?? "#f85149").whiteBright(
74689
+ " \u2718 Error "
74690
+ )} ${_chalk.hex(colors.error ?? "#f85149")(formatLogMessage(message))}
74685
74691
  `
74686
74692
  );
74687
74693
  };
@@ -74690,9 +74696,9 @@ ${_chalk.bold.hex(config?.colors?.error ? config.colors.error : "#7d1a1a")(">")}
74690
74696
  return (message) => {
74691
74697
  console.warn(
74692
74698
  `
74693
- ${_chalk.bold.hex(config?.colors?.warning ? config.colors.warning : "#fcc419")("> ")} ${_chalk.bold.bgHex(config?.colors?.warning ? config.colors.warning : "#fcc419").whiteBright(" \u26A0 Warn ")} ${_chalk.hex(
74694
- config?.colors?.warning ? config.colors.warning : "#fcc419"
74695
- )(message)}
74699
+ ${_chalk.bold.hex(colors.warning ?? "#e3b341")("> ")} ${_chalk.bold.bgHex(colors.warning ?? "#e3b341").whiteBright(
74700
+ " \u26A0 Warn "
74701
+ )} ${_chalk.hex(colors.warning ?? "#e3b341")(formatLogMessage(message))}
74696
74702
  `
74697
74703
  );
74698
74704
  };
@@ -74701,9 +74707,9 @@ ${_chalk.bold.hex(config?.colors?.warning ? config.colors.warning : "#fcc419")("
74701
74707
  return (message) => {
74702
74708
  console.info(
74703
74709
  `
74704
- ${_chalk.bold.hex(config?.colors?.success ? config.colors.success : "#087f5b")(">")} ${_chalk.bold.bgHex(config?.colors?.success ? config.colors.success : "#087f5b").whiteBright(" \u2713 Success ")} ${_chalk.hex(
74705
- config?.colors?.success ? config.colors.success : "#087f5b"
74706
- )(message)}
74710
+ ${_chalk.bold.hex(colors.success ?? "#56d364")(">")} ${_chalk.bold.bgHex(colors.success ?? "#56d364").whiteBright(
74711
+ " \u2713 Success "
74712
+ )} ${_chalk.hex(colors.success ?? "#56d364")(formatLogMessage(message))}
74707
74713
  `
74708
74714
  );
74709
74715
  };
@@ -74712,9 +74718,9 @@ ${_chalk.bold.hex(config?.colors?.success ? config.colors.success : "#087f5b")("
74712
74718
  return (message) => {
74713
74719
  console.info(
74714
74720
  `
74715
- ${_chalk.bold.hex(config?.colors?.info ? config.colors.info : "#0ea5e9")(">")} ${_chalk.bold.bgHex(config?.colors?.info ? config.colors.info : "#0ea5e9").whiteBright(" \u2139 Info ")} ${_chalk.hex(
74716
- config?.colors?.info ? config.colors.info : "#0ea5e9"
74717
- )(message)}
74721
+ ${_chalk.bold.hex(colors.info ?? "#58a6ff")(">")} ${_chalk.bold.bgHex(colors.info ?? "#58a6ff").whiteBright(
74722
+ " \u2139 Info "
74723
+ )} ${_chalk.hex(colors.info ?? "#58a6ff")(formatLogMessage(message))}
74718
74724
  `
74719
74725
  );
74720
74726
  };
@@ -74723,9 +74729,9 @@ ${_chalk.bold.hex(config?.colors?.info ? config.colors.info : "#0ea5e9")(">")} $
74723
74729
  return (message) => {
74724
74730
  console.debug(
74725
74731
  `
74726
- ${_chalk.bold.hex(config?.colors?.primary ? config.colors.primary : "#1fb2a6")(">")} ${_chalk.bold.bgHex(config?.colors?.primary ? config.colors.primary : "#1fb2a6").whiteBright(" \u{1F6E0} Debug ")} ${_chalk.hex(
74727
- config?.colors?.primary ? config.colors.primary : "#1fb2a6"
74728
- )(message)}
74732
+ ${_chalk.bold.hex(colors.primary ?? "#1fb2a6")(">")} ${_chalk.bold.bgHex(colors.primary ?? "#1fb2a6").whiteBright(
74733
+ " \u{1F6E0} Debug "
74734
+ )} ${_chalk.hex(colors.primary ?? "#1fb2a6")(formatLogMessage(message))}
74729
74735
  `
74730
74736
  );
74731
74737
  };
@@ -74733,9 +74739,9 @@ ${_chalk.bold.hex(config?.colors?.primary ? config.colors.primary : "#1fb2a6")("
74733
74739
  return (message) => {
74734
74740
  console.log(
74735
74741
  `
74736
- ${_chalk.bold.hex(config?.colors?.primary ? config.colors.primary : "#1fb2a6")(">")} ${_chalk.bold.bgHex(config?.colors?.primary ? config.colors.primary : "#1fb2a6").whiteBright(" \u2709 System ")} ${_chalk.hex(
74737
- config?.colors?.primary ? config.colors.primary : "#1fb2a6"
74738
- )(message)}
74742
+ ${_chalk.bold.hex(colors.primary ?? "#1fb2a6")(">")} ${_chalk.bold.bgHex(colors.primary ?? "#1fb2a6").whiteBright(
74743
+ " \u2709 System "
74744
+ )} ${_chalk.hex(colors.primary ?? "#1fb2a6")(formatLogMessage(message))}
74739
74745
  `
74740
74746
  );
74741
74747
  };
@@ -74762,6 +74768,19 @@ ${_chalk.bold.hex(config?.colors?.primary ? config.colors.primary : "#1fb2a6")("
74762
74768
  );
74763
74769
  };
74764
74770
  };
74771
+ formatLogMessage = (message, prefix = "-") => {
74772
+ return typeof message === "string" ? message : typeof message === "object" ? Object.keys(message).map(
74773
+ (key) => ` ${prefix} ${key} = ${_isFunction(message[key]) ? "<function>" : typeof message[key] === "object" ? `
74774
+ ${formatLogMessage(message[key], `${prefix}-`)}` : message[key]}`
74775
+ ).join("\n") : message;
74776
+ };
74777
+ _isFunction = (value2) => {
74778
+ try {
74779
+ return value2 instanceof Function || typeof value2 === "function" || !!(value2?.constructor && value2?.call && value2?.apply);
74780
+ } catch (e2) {
74781
+ return false;
74782
+ }
74783
+ };
74765
74784
  }
74766
74785
  });
74767
74786
 
@@ -74938,10 +74957,99 @@ var init_utilities = __esm({
74938
74957
  }
74939
74958
  });
74940
74959
 
74960
+ // packages/config-tools/src/config-file/get-config-file.ts
74961
+ var import_deepmerge, getConfigFileByName, getConfigFile;
74962
+ var init_get_config_file = __esm({
74963
+ "packages/config-tools/src/config-file/get-config-file.ts"() {
74964
+ init_find_workspace_root();
74965
+ init_dist10();
74966
+ import_deepmerge = __toESM(require_cjs());
74967
+ init_utilities();
74968
+ getConfigFileByName = async (fileName, filePath, options = {}) => {
74969
+ const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
74970
+ let config = loadConfig({
74971
+ cwd: workspacePath,
74972
+ packageJson: true,
74973
+ name: fileName,
74974
+ envName: fileName?.toUpperCase(),
74975
+ jitiOptions: {
74976
+ debug: true,
74977
+ cache: process.env.STORM_CACHE ? process.env.STORM_CACHE_DIRECTORY : false
74978
+ },
74979
+ ...options
74980
+ });
74981
+ if (!config || Object.keys(config).length === 0) {
74982
+ config = loadConfig({
74983
+ cwd: workspacePath,
74984
+ packageJson: true,
74985
+ name: fileName,
74986
+ envName: fileName?.toUpperCase(),
74987
+ jitiOptions: {
74988
+ debug: true,
74989
+ cache: process.env.STORM_CACHE ? process.env.STORM_CACHE_DIRECTORY : false
74990
+ },
74991
+ configFile: fileName,
74992
+ ...options
74993
+ });
74994
+ }
74995
+ return config;
74996
+ };
74997
+ getConfigFile = async (filePath, additionalFileNames = []) => {
74998
+ const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
74999
+ let { config, configFile } = await getConfigFileByName(
75000
+ "storm",
75001
+ workspacePath
75002
+ );
75003
+ if (config && Object.keys(config).length > 0) {
75004
+ writeTrace(
75005
+ `Found Storm configuration file "${configFile}" at "${workspacePath}"`,
75006
+ {
75007
+ logLevel: "all"
75008
+ }
75009
+ );
75010
+ writeTrace(config, { logLevel: "all" });
75011
+ }
75012
+ if (additionalFileNames && additionalFileNames.length > 0) {
75013
+ const results = await Promise.all(
75014
+ additionalFileNames.map(
75015
+ (fileName) => getConfigFileByName(fileName, workspacePath)
75016
+ )
75017
+ );
75018
+ for (const result of results) {
75019
+ if (result?.config && Object.keys(result.config).length > 0) {
75020
+ writeTrace(
75021
+ `Found additional configuration file "${result.configFile}" at "${workspacePath}"`,
75022
+ {
75023
+ logLevel: "all"
75024
+ }
75025
+ );
75026
+ writeTrace(result.config, { logLevel: "all" });
75027
+ config = (0, import_deepmerge.default)(config ?? {}, result.config ?? {});
75028
+ }
75029
+ }
75030
+ }
75031
+ if (!config) {
75032
+ return void 0;
75033
+ }
75034
+ config.configFile = configFile;
75035
+ config.runtimeVersion = "0.0.1";
75036
+ return config;
75037
+ };
75038
+ }
75039
+ });
75040
+
75041
+ // packages/config-tools/src/config-file/index.ts
75042
+ var init_config_file = __esm({
75043
+ "packages/config-tools/src/config-file/index.ts"() {
75044
+ init_get_config_file();
75045
+ }
75046
+ });
75047
+
74941
75048
  // packages/config-tools/src/env/get-env.ts
74942
- var getExtensionEnv, getConfigEnv;
75049
+ var getExtensionEnv, getConfigEnv, getThemeColorConfigEnv, getSingleThemeColorConfigEnv, getMultiThemeColorConfigEnv, getBaseThemeColorConfigEnv;
74943
75050
  var init_get_env = __esm({
74944
75051
  "packages/config-tools/src/env/get-env.ts"() {
75052
+ init_src();
74945
75053
  init_utilities();
74946
75054
  init_correct_paths();
74947
75055
  getExtensionEnv = (extensionName) => {
@@ -74982,16 +75090,6 @@ var init_get_env = __esm({
74982
75090
  ci: process.env[`${prefix}CI`] !== void 0 ? Boolean(
74983
75091
  process.env[`${prefix}CI`] ?? process.env.CI ?? process.env.CONTINUOUS_INTEGRATION
74984
75092
  ) : void 0,
74985
- colors: {
74986
- primary: process.env[`${prefix}COLOR_PRIMARY`],
74987
- dark: process.env[`${prefix}COLOR_DARK`],
74988
- light: process.env[`${prefix}COLOR_LIGHT`],
74989
- success: process.env[`${prefix}COLOR_SUCCESS`],
74990
- info: process.env[`${prefix}COLOR_INFO`],
74991
- warning: process.env[`${prefix}COLOR_WARNING`],
74992
- error: process.env[`${prefix}COLOR_ERROR`],
74993
- fatal: process.env[`${prefix}COLOR_FATAL`]
74994
- },
74995
75093
  repository: process.env[`${prefix}REPOSITORY`],
74996
75094
  branch: process.env[`${prefix}BRANCH`],
74997
75095
  preid: process.env[`${prefix}PRE_ID`],
@@ -75002,6 +75100,18 @@ var init_get_env = __esm({
75002
75100
  Number.parseInt(process.env[`${prefix}LOG_LEVEL`])
75003
75101
  ) : process.env[`${prefix}LOG_LEVEL`] : void 0
75004
75102
  };
75103
+ const themeNames = Object.keys(process.env).filter(
75104
+ (envKey) => envKey.startsWith(`${prefix}COLOR_`) && COLOR_KEYS.every(
75105
+ (colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)
75106
+ )
75107
+ );
75108
+ config.colors = themeNames.length > 0 ? themeNames.reduce(
75109
+ (ret, themeName) => {
75110
+ ret[themeName] = getThemeColorConfigEnv(prefix, themeName);
75111
+ return ret;
75112
+ },
75113
+ {}
75114
+ ) : getThemeColorConfigEnv(prefix);
75005
75115
  const serializedConfig = process.env[`${prefix}CONFIG`];
75006
75116
  if (serializedConfig) {
75007
75117
  const parsed = JSON.parse(serializedConfig);
@@ -75014,11 +75124,53 @@ var init_get_env = __esm({
75014
75124
  }
75015
75125
  return config;
75016
75126
  };
75127
+ getThemeColorConfigEnv = (prefix, theme) => {
75128
+ const themeName = `COLOR_${theme && theme !== "base" ? `${theme}_` : ""}`.toUpperCase();
75129
+ return process.env[`${prefix}${themeName}LIGHT_PRIMARY`] || process.env[`${prefix}${themeName}DARK_PRIMARY`] ? getMultiThemeColorConfigEnv(prefix + themeName) : getSingleThemeColorConfigEnv(prefix + themeName);
75130
+ };
75131
+ getSingleThemeColorConfigEnv = (prefix) => {
75132
+ return {
75133
+ dark: process.env[`${prefix}DARK`],
75134
+ light: process.env[`${prefix}LIGHT`],
75135
+ primary: process.env[`${prefix}PRIMARY`],
75136
+ secondary: process.env[`${prefix}SECONDARY`],
75137
+ tertiary: process.env[`${prefix}TERTIARY`],
75138
+ accent: process.env[`${prefix}ACCENT`],
75139
+ success: process.env[`${prefix}SUCCESS`],
75140
+ info: process.env[`${prefix}INFO`],
75141
+ warning: process.env[`${prefix}WARNING`],
75142
+ error: process.env[`${prefix}ERROR`],
75143
+ fatal: process.env[`${prefix}FATAL`]
75144
+ };
75145
+ };
75146
+ getMultiThemeColorConfigEnv = (prefix) => {
75147
+ return {
75148
+ light: getBaseThemeColorConfigEnv(
75149
+ `${prefix}_LIGHT_`
75150
+ ),
75151
+ dark: getBaseThemeColorConfigEnv(`${prefix}_DARK_`)
75152
+ };
75153
+ };
75154
+ getBaseThemeColorConfigEnv = (prefix) => {
75155
+ return {
75156
+ foreground: process.env[`${prefix}FOREGROUND`],
75157
+ background: process.env[`${prefix}BACKGROUND`],
75158
+ primary: process.env[`${prefix}PRIMARY`],
75159
+ secondary: process.env[`${prefix}SECONDARY`],
75160
+ tertiary: process.env[`${prefix}TERTIARY`],
75161
+ accent: process.env[`${prefix}ACCENT`],
75162
+ success: process.env[`${prefix}SUCCESS`],
75163
+ info: process.env[`${prefix}INFO`],
75164
+ warning: process.env[`${prefix}WARNING`],
75165
+ error: process.env[`${prefix}ERROR`],
75166
+ fatal: process.env[`${prefix}FATAL`]
75167
+ };
75168
+ };
75017
75169
  }
75018
75170
  });
75019
75171
 
75020
75172
  // packages/config-tools/src/env/set-env.ts
75021
- var setExtensionEnv, setConfigEnv;
75173
+ var setExtensionEnv, setConfigEnv, setThemeColorConfigEnv, setSingleThemeColorConfigEnv, setMultiThemeColorConfigEnv, setBaseThemeColorConfigEnv;
75022
75174
  var init_set_env = __esm({
75023
75175
  "packages/config-tools/src/env/set-env.ts"() {
75024
75176
  init_types2();
@@ -75134,29 +75286,15 @@ var init_set_env = __esm({
75134
75286
  process.env.CI = String(config.ci);
75135
75287
  process.env.CONTINUOUS_INTEGRATION = String(config.ci);
75136
75288
  }
75137
- if (config.colors.primary) {
75138
- process.env[`${prefix}COLOR_PRIMARY`] = config.colors.primary;
75139
- }
75140
- if (config.colors.dark) {
75141
- process.env[`${prefix}COLOR_DARK`] = config.colors.dark;
75142
- }
75143
- if (config.colors.light) {
75144
- process.env[`${prefix}COLOR_LIGHT`] = config.colors.light;
75145
- }
75146
- if (config.colors.success) {
75147
- process.env[`${prefix}COLOR_SUCCESS`] = config.colors.success;
75148
- }
75149
- if (config.colors.info) {
75150
- process.env[`${prefix}COLOR_INFO`] = config.colors.info;
75151
- }
75152
- if (config.colors.warning) {
75153
- process.env[`${prefix}COLOR_WARNING`] = config.colors.warning;
75154
- }
75155
- if (config.colors.error) {
75156
- process.env[`${prefix}COLOR_ERROR`] = config.colors.error;
75157
- }
75158
- if (config.colors.fatal) {
75159
- process.env[`${prefix}COLOR_FATAL`] = config.colors.fatal;
75289
+ if (config.colors?.base?.light || config.colors?.base?.dark) {
75290
+ for (const key of Object.keys(config.colors)) {
75291
+ setThemeColorConfigEnv(`${prefix}COLOR_${key}_`, config.colors[key]);
75292
+ }
75293
+ } else {
75294
+ setThemeColorConfigEnv(
75295
+ `${prefix}COLOR_`,
75296
+ config.colors
75297
+ );
75160
75298
  }
75161
75299
  if (config.repository) {
75162
75300
  process.env[`${prefix}REPOSITORY`] = config.repository;
@@ -75185,11 +75323,90 @@ var init_set_env = __esm({
75185
75323
  config.extensions[key] && Object.keys(config.extensions[key]) && setExtensionEnv(key, config.extensions[key]);
75186
75324
  }
75187
75325
  };
75326
+ setThemeColorConfigEnv = (prefix, config) => {
75327
+ return config?.light?.primary || config?.dark?.primary ? setMultiThemeColorConfigEnv(prefix, config) : setSingleThemeColorConfigEnv(prefix, config);
75328
+ };
75329
+ setSingleThemeColorConfigEnv = (prefix, config) => {
75330
+ if (config.dark) {
75331
+ process.env[`${prefix}DARK`] = config.dark;
75332
+ }
75333
+ if (config.light) {
75334
+ process.env[`${prefix}LIGHT`] = config.light;
75335
+ }
75336
+ if (config.primary) {
75337
+ process.env[`${prefix}PRIMARY`] = config.primary;
75338
+ }
75339
+ if (config.secondary) {
75340
+ process.env[`${prefix}SECONDARY`] = config.secondary;
75341
+ }
75342
+ if (config.tertiary) {
75343
+ process.env[`${prefix}TERTIARY`] = config.tertiary;
75344
+ }
75345
+ if (config.accent) {
75346
+ process.env[`${prefix}ACCENT`] = config.accent;
75347
+ }
75348
+ if (config.success) {
75349
+ process.env[`${prefix}SUCCESS`] = config.success;
75350
+ }
75351
+ if (config.info) {
75352
+ process.env[`${prefix}INFO`] = config.info;
75353
+ }
75354
+ if (config.warning) {
75355
+ process.env[`${prefix}WARNING`] = config.warning;
75356
+ }
75357
+ if (config.error) {
75358
+ process.env[`${prefix}ERROR`] = config.error;
75359
+ }
75360
+ if (config.fatal) {
75361
+ process.env[`${prefix}FATAL`] = config.fatal;
75362
+ }
75363
+ };
75364
+ setMultiThemeColorConfigEnv = (prefix, config) => {
75365
+ return {
75366
+ light: setBaseThemeColorConfigEnv(`${prefix}_LIGHT_`, config.light),
75367
+ dark: setBaseThemeColorConfigEnv(`${prefix}_DARK_`, config.dark)
75368
+ };
75369
+ };
75370
+ setBaseThemeColorConfigEnv = (prefix, config) => {
75371
+ if (config.foreground) {
75372
+ process.env[`${prefix}FOREGROUND`] = config.foreground;
75373
+ }
75374
+ if (config.background) {
75375
+ process.env[`${prefix}BACKGROUND`] = config.background;
75376
+ }
75377
+ if (config.primary) {
75378
+ process.env[`${prefix}PRIMARY`] = config.primary;
75379
+ }
75380
+ if (config.secondary) {
75381
+ process.env[`${prefix}SECONDARY`] = config.secondary;
75382
+ }
75383
+ if (config.tertiary) {
75384
+ process.env[`${prefix}TERTIARY`] = config.tertiary;
75385
+ }
75386
+ if (config.accent) {
75387
+ process.env[`${prefix}ACCENT`] = config.accent;
75388
+ }
75389
+ if (config.success) {
75390
+ process.env[`${prefix}SUCCESS`] = config.success;
75391
+ }
75392
+ if (config.info) {
75393
+ process.env[`${prefix}INFO`] = config.info;
75394
+ }
75395
+ if (config.warning) {
75396
+ process.env[`${prefix}WARNING`] = config.warning;
75397
+ }
75398
+ if (config.error) {
75399
+ process.env[`${prefix}ERROR`] = config.error;
75400
+ }
75401
+ if (config.fatal) {
75402
+ process.env[`${prefix}FATAL`] = config.fatal;
75403
+ }
75404
+ };
75188
75405
  }
75189
75406
  });
75190
75407
 
75191
75408
  // packages/config-tools/src/create-storm-config.ts
75192
- var _extension_cache, _static_cache, createConfig, createStormConfig, createConfigExtension, loadStormConfig;
75409
+ var import_deepmerge2, _extension_cache, _static_cache, createConfig, createStormConfig, createConfigExtension, loadStormConfig;
75193
75410
  var init_create_storm_config = __esm({
75194
75411
  "packages/config-tools/src/create-storm-config.ts"() {
75195
75412
  init_get_config_file();
@@ -75198,6 +75415,7 @@ var init_create_storm_config = __esm({
75198
75415
  init_schema();
75199
75416
  init_utilities();
75200
75417
  init_get_default_config();
75418
+ import_deepmerge2 = __toESM(require_cjs());
75201
75419
  _extension_cache = /* @__PURE__ */ new WeakMap();
75202
75420
  _static_cache = void 0;
75203
75421
  createConfig = (workspaceRoot) => {
@@ -75246,7 +75464,9 @@ var init_create_storm_config = __esm({
75246
75464
  if (!_workspaceRoot) {
75247
75465
  _workspaceRoot = findWorkspaceRoot();
75248
75466
  }
75249
- const configFile = await getConfigFile(_workspaceRoot);
75467
+ let configFile = await getConfigFile(
75468
+ _workspaceRoot
75469
+ );
75250
75470
  if (!configFile) {
75251
75471
  writeWarning(
75252
75472
  "No Storm config file found in the current workspace. Please ensure this is the expected behavior - you can add a `storm.json` file to the root of your workspace if it is not.\n",
@@ -75255,10 +75475,7 @@ var init_create_storm_config = __esm({
75255
75475
  }
75256
75476
  config = StormConfigSchema.parse(
75257
75477
  await getDefaultConfig(
75258
- {
75259
- ...getConfigEnv(),
75260
- ...configFile
75261
- },
75478
+ (0, import_deepmerge2.default)(getConfigEnv(), configFile, {}),
75262
75479
  _workspaceRoot
75263
75480
  )
75264
75481
  );
@@ -75296,6 +75513,7 @@ __export(src_exports, {
75296
75513
  findFileName: () => findFileName,
75297
75514
  findWorkspaceRoot: () => findWorkspaceRoot,
75298
75515
  findWorkspaceRootSafe: () => findWorkspaceRootSafe,
75516
+ formatLogMessage: () => formatLogMessage,
75299
75517
  getChalk: () => getChalk,
75300
75518
  getConfigEnv: () => getConfigEnv,
75301
75519
  getConfigFile: () => getConfigFile,
@@ -224614,7 +224832,7 @@ ${lanes.join("\n")}
224614
224832
  return true;
224615
224833
  }
224616
224834
  if (shouldReallyMerge(a2.node, b6.node, parent2)) {
224617
- merge2(a2, b6);
224835
+ merge3(a2, b6);
224618
224836
  return true;
224619
224837
  }
224620
224838
  return false;
@@ -224648,7 +224866,7 @@ ${lanes.join("\n")}
224648
224866
  }
224649
224867
  return a2.body.kind === b6.body.kind && (a2.body.kind !== 267 || areSameModule(a2.body, b6.body));
224650
224868
  }
224651
- function merge2(target, source) {
224869
+ function merge3(target, source) {
224652
224870
  target.additionalNodes = target.additionalNodes || [];
224653
224871
  target.additionalNodes.push(source.node);
224654
224872
  if (source.additionalNodes) {
@@ -305393,7 +305611,7 @@ var withRunExecutor = (name, executorFn, executorOptions) => async (_options, co
305393
305611
  writeTrace2(
305394
305612
  `Loaded Storm config into env:
305395
305613
  ${Object.keys(process.env).filter((key) => key.startsWith("STORM_")).map(
305396
- (key) => ` - ${key}=${_isFunction(process.env[key]) ? "<function>" : JSON.stringify(process.env[key])}`
305614
+ (key) => ` - ${key}=${_isFunction2(process.env[key]) ? "<function>" : JSON.stringify(process.env[key])}`
305397
305615
  ).join("\n")}`,
305398
305616
  config
305399
305617
  );
@@ -305408,7 +305626,7 @@ ${Object.keys(process.env).filter((key) => key.startsWith("STORM_")).map(
305408
305626
  writeTrace2(
305409
305627
  `Executor schema options \u2699\uFE0F
305410
305628
  ${Object.keys(options).map(
305411
- (key) => ` - ${key}=${_isFunction(options[key]) ? "<function>" : JSON.stringify(options[key])}`
305629
+ (key) => ` - ${key}=${_isFunction2(options[key]) ? "<function>" : JSON.stringify(options[key])}`
305412
305630
  ).join("\n")}`,
305413
305631
  config
305414
305632
  );
@@ -305433,7 +305651,7 @@ ${Object.keys(options).map(
305433
305651
  writeDebug2("Completed the preProcess hook", config);
305434
305652
  }
305435
305653
  const ret = executorFn(tokenized, context, config);
305436
- if (_isFunction(ret?.next)) {
305654
+ if (_isFunction2(ret?.next)) {
305437
305655
  const asyncGen = ret;
305438
305656
  for await (const iter of asyncGen) {
305439
305657
  }
@@ -305474,7 +305692,7 @@ ${Object.keys(options).map(
305474
305692
  stopwatch();
305475
305693
  }
305476
305694
  };
305477
- var _isFunction = (value2) => {
305695
+ var _isFunction2 = (value2) => {
305478
305696
  try {
305479
305697
  return value2 instanceof Function || typeof value2 === "function" || !!(value2?.constructor && value2?.call && value2?.apply);
305480
305698
  } catch (e2) {