@storm-software/pnpm-tools 0.7.148 → 0.7.150

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 (40) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/bin/pnpm.cjs +43 -6
  3. package/bin/pnpm.js +43 -6
  4. package/dist/{chunk-I3CX5PSA.js → chunk-B2XEYHOF.js} +17 -17
  5. package/dist/{chunk-O6SS6P3Y.cjs → chunk-DIZITLVX.cjs} +1 -1
  6. package/dist/{chunk-DCCUOXBC.cjs → chunk-GPEVYA4Z.cjs} +17 -17
  7. package/dist/chunk-HWXKHHSJ.js +1 -0
  8. package/dist/{chunk-N2BUDGF7.js → chunk-JKN4PJKR.js} +1 -1
  9. package/dist/chunk-K3SCUKQU.js +2 -0
  10. package/dist/chunk-RHS7YLK3.js +1 -0
  11. package/dist/chunk-S3XHZ3IV.cjs +2 -0
  12. package/dist/chunk-S54KSJC2.cjs +1 -0
  13. package/dist/chunk-TO3DOAPW.cjs +1 -0
  14. package/dist/chunk-V6F2T4U6.js +2 -0
  15. package/dist/chunk-VDMRS6ZA.cjs +2 -0
  16. package/dist/helpers/catalog.cjs +1 -1
  17. package/dist/helpers/catalog.d.cts +6 -0
  18. package/dist/helpers/catalog.d.ts +6 -0
  19. package/dist/helpers/catalog.js +1 -1
  20. package/dist/helpers/index.cjs +1 -1
  21. package/dist/helpers/index.d.cts +1 -0
  22. package/dist/helpers/index.d.ts +1 -0
  23. package/dist/helpers/index.js +1 -1
  24. package/dist/helpers/pnpm-workspace.cjs +1 -1
  25. package/dist/helpers/pnpm-workspace.js +1 -1
  26. package/dist/helpers/replace-deps-aliases.cjs +1 -1
  27. package/dist/helpers/replace-deps-aliases.js +1 -1
  28. package/dist/helpers/version-cache.cjs +1 -0
  29. package/dist/helpers/version-cache.d.cts +10 -0
  30. package/dist/helpers/version-cache.d.ts +10 -0
  31. package/dist/helpers/version-cache.js +1 -0
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.d.cts +1 -0
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.js +1 -1
  36. package/package.json +8 -6
  37. package/dist/chunk-IO6HZNAO.js +0 -3
  38. package/dist/chunk-R7G6VIBE.cjs +0 -3
  39. /package/dist/{chunk-QNTSKZUU.cjs → chunk-3CHW2FOO.cjs} +0 -0
  40. /package/dist/{chunk-GV6YH6UO.js → chunk-PJBAL7AE.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  # Changelog for Storm Ops - Pnpm Tools
4
4
 
5
+ ## [0.7.150](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.7.150) (09/08/2026)
6
+
7
+ ### Features
8
+
9
+ - **pnpm-tools:** Updaters now use local cache to reduce network calls ([f468bf4b4](https://github.com/storm-software/storm-ops/commit/f468bf4b4))
10
+
11
+ ### Updated Dependencies
12
+
13
+ - Updated **config** to **v1.138.72**
14
+ - Updated **config-tools** to **v1.190.136**
15
+ - Updated **npm-tools** to **v0.6.256**
16
+ - Updated **package-constants** to **v0.1.148**
17
+ - Updated **testing-tools** to **v1.119.288**
18
+
19
+ ## [0.7.149](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.7.149) (09/06/2026)
20
+
21
+ ### Updated Dependencies
22
+
23
+ - Updated **config** to **v1.138.71**
24
+ - Updated **config-tools** to **v1.190.135**
25
+ - Updated **npm-tools** to **v0.6.255**
26
+ - Updated **package-constants** to **v0.1.147**
27
+ - Updated **testing-tools** to **v1.119.287**
28
+
5
29
  ## [0.7.148](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.7.148) (08/22/2026)
6
30
 
7
31
  ### Updated Dependencies
package/bin/pnpm.cjs CHANGED
@@ -2182,6 +2182,10 @@ var INTERNAL_PACKAGES = [
2182
2182
  "aftershock",
2183
2183
  "@telepathic/*",
2184
2184
  "telepathic",
2185
+ "@questgiver/*",
2186
+ "questgiver",
2187
+ "@mindctl/*",
2188
+ "mindctl",
2185
2189
  "@power-plant/*",
2186
2190
  "power-plant",
2187
2191
  "@razorwind/*",
@@ -2205,7 +2209,7 @@ var import_commander = require("commander");
2205
2209
  // package.json
2206
2210
  var package_default = {
2207
2211
  name: "@storm-software/pnpm-tools",
2208
- version: "0.7.148",
2212
+ version: "0.7.150",
2209
2213
  private: false,
2210
2214
  description: "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
2211
2215
  repository: {
@@ -2305,7 +2309,9 @@ var package_default = {
2305
2309
  defu: "catalog:",
2306
2310
  prettier: "catalog:",
2307
2311
  "prettier-plugin-packagejson": "catalog:",
2312
+ "env-paths": "^4.0.0",
2308
2313
  semver: "catalog:",
2314
+ unstorage: "^1.17.5",
2309
2315
  yaml: "catalog:"
2310
2316
  },
2311
2317
  devDependencies: {
@@ -2384,7 +2390,7 @@ function extractPackageVersion(stdout) {
2384
2390
  async function getVersion(packageName, tag = DEFAULT_NPM_TAG, options = {}) {
2385
2391
  const executable = options.executable || "npm";
2386
2392
  const retries = options.retries ?? 3;
2387
- const timeout = options.timeout ?? 1e4;
2393
+ const timeout = options.timeout ?? 12e4;
2388
2394
  const registry2 = options.registry || await getRegistry(executable);
2389
2395
  let lastError;
2390
2396
  for (let attempt = 0; attempt <= retries; attempt++) {
@@ -2545,9 +2551,7 @@ async function upgradeCatalog(catalog, packageName, options = {}) {
2545
2551
  workspaceConfig
2546
2552
  );
2547
2553
  }
2548
- const origVersion = await getVersion(packageName, tag, {
2549
- executable: "pnpm"
2550
- });
2554
+ const origVersion = await (options.versionResolver ?? ((name, versionTag) => getVersion(name, versionTag, { executable: "pnpm" })))(packageName, tag);
2551
2555
  if (!origVersion) {
2552
2556
  throw new Error(
2553
2557
  `Failed to fetch version for package "${packageName}" with tag "${tag}"`
@@ -2585,6 +2589,34 @@ async function upgradeCatalog(catalog, packageName, options = {}) {
2585
2589
  return { catalog, updated };
2586
2590
  }
2587
2591
 
2592
+ // src/helpers/version-cache.ts
2593
+ var import_env_paths = __toESM(require("env-paths"), 1);
2594
+ var import_unstorage = require("unstorage");
2595
+ var import_fs = __toESM(require("unstorage/drivers/fs"), 1);
2596
+ var VERSION_CACHE_TTL = 1e3 * 60 * 60 * 2;
2597
+ var storage = (0, import_unstorage.createStorage)({
2598
+ driver: (0, import_fs.default)({ base: (0, import_env_paths.default)("storm-pnpm").cache })
2599
+ });
2600
+ function getCacheKey(packageName, tag) {
2601
+ return `versions/${encodeURIComponent(tag)}/${encodeURIComponent(packageName)}`;
2602
+ }
2603
+ async function getCachedVersion(packageName, tag) {
2604
+ const cacheKey = getCacheKey(packageName, tag);
2605
+ try {
2606
+ const cached = await storage.getItem(cacheKey);
2607
+ if (cached && typeof cached.checkedAt === "number" && typeof cached.version === "string" && Date.now() - cached.checkedAt < VERSION_CACHE_TTL) {
2608
+ return cached.version;
2609
+ }
2610
+ } catch {
2611
+ }
2612
+ const version = await getVersion(packageName, tag, { executable: "pnpm" });
2613
+ try {
2614
+ await storage.setItem(cacheKey, { checkedAt: Date.now(), version });
2615
+ } catch {
2616
+ }
2617
+ return version;
2618
+ }
2619
+
2588
2620
  // src/cli/index.ts
2589
2621
  var _config = {};
2590
2622
  function createProgram(config) {
@@ -2660,11 +2692,15 @@ async function updateAction(packages, options) {
2660
2692
  verbose = false
2661
2693
  } = options || {};
2662
2694
  let packagesFound = false;
2663
- let pkgs = packages && Array.isArray(packages) ? packages : [];
2695
+ const requestedPackages = Array.isArray(packages) ? packages.filter(Boolean).map((pkg) => pkg.trim().replaceAll("*", "")) : [];
2696
+ let pkgs = [...requestedPackages];
2664
2697
  if (internal || pkgs.length === 0 || all) {
2665
2698
  pkgs.push(...INTERNAL_PACKAGES);
2666
2699
  }
2667
2700
  pkgs = pkgs.filter(Boolean).map((pkg) => pkg.trim().replaceAll("*", ""));
2701
+ const isExplicitlyRequested = (packageName) => requestedPackages.some(
2702
+ (pkg) => pkg.endsWith("/") ? packageName.startsWith(pkg) : packageName === pkg
2703
+ );
2668
2704
  let changed = [];
2669
2705
  if (pkgs.length > 0) {
2670
2706
  writeDebug(
@@ -2707,6 +2743,7 @@ async function updateAction(packages, options) {
2707
2743
  tag,
2708
2744
  prefix,
2709
2745
  workspaceRoot: _config.workspaceRoot,
2746
+ versionResolver: isExplicitlyRequested(matchedPackage) ? getCachedVersion : void 0,
2710
2747
  verbose
2711
2748
  });
2712
2749
  if (result.updated && result.catalog[matchedPackage]) {
package/bin/pnpm.js CHANGED
@@ -2160,6 +2160,10 @@ var INTERNAL_PACKAGES = [
2160
2160
  "aftershock",
2161
2161
  "@telepathic/*",
2162
2162
  "telepathic",
2163
+ "@questgiver/*",
2164
+ "questgiver",
2165
+ "@mindctl/*",
2166
+ "mindctl",
2163
2167
  "@power-plant/*",
2164
2168
  "power-plant",
2165
2169
  "@razorwind/*",
@@ -2183,7 +2187,7 @@ import { Command } from "commander";
2183
2187
  // package.json
2184
2188
  var package_default = {
2185
2189
  name: "@storm-software/pnpm-tools",
2186
- version: "0.7.148",
2190
+ version: "0.7.150",
2187
2191
  private: false,
2188
2192
  description: "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
2189
2193
  repository: {
@@ -2283,7 +2287,9 @@ var package_default = {
2283
2287
  defu: "catalog:",
2284
2288
  prettier: "catalog:",
2285
2289
  "prettier-plugin-packagejson": "catalog:",
2290
+ "env-paths": "^4.0.0",
2286
2291
  semver: "catalog:",
2292
+ unstorage: "^1.17.5",
2287
2293
  yaml: "catalog:"
2288
2294
  },
2289
2295
  devDependencies: {
@@ -2362,7 +2368,7 @@ function extractPackageVersion(stdout) {
2362
2368
  async function getVersion(packageName, tag = DEFAULT_NPM_TAG, options = {}) {
2363
2369
  const executable = options.executable || "npm";
2364
2370
  const retries = options.retries ?? 3;
2365
- const timeout = options.timeout ?? 1e4;
2371
+ const timeout = options.timeout ?? 12e4;
2366
2372
  const registry2 = options.registry || await getRegistry(executable);
2367
2373
  let lastError;
2368
2374
  for (let attempt = 0; attempt <= retries; attempt++) {
@@ -2523,9 +2529,7 @@ async function upgradeCatalog(catalog, packageName, options = {}) {
2523
2529
  workspaceConfig
2524
2530
  );
2525
2531
  }
2526
- const origVersion = await getVersion(packageName, tag, {
2527
- executable: "pnpm"
2528
- });
2532
+ const origVersion = await (options.versionResolver ?? ((name, versionTag) => getVersion(name, versionTag, { executable: "pnpm" })))(packageName, tag);
2529
2533
  if (!origVersion) {
2530
2534
  throw new Error(
2531
2535
  `Failed to fetch version for package "${packageName}" with tag "${tag}"`
@@ -2563,6 +2567,34 @@ async function upgradeCatalog(catalog, packageName, options = {}) {
2563
2567
  return { catalog, updated };
2564
2568
  }
2565
2569
 
2570
+ // src/helpers/version-cache.ts
2571
+ import envPaths from "env-paths";
2572
+ import { createStorage } from "unstorage";
2573
+ import fsDriver from "unstorage/drivers/fs";
2574
+ var VERSION_CACHE_TTL = 1e3 * 60 * 60 * 2;
2575
+ var storage = createStorage({
2576
+ driver: fsDriver({ base: envPaths("storm-pnpm").cache })
2577
+ });
2578
+ function getCacheKey(packageName, tag) {
2579
+ return `versions/${encodeURIComponent(tag)}/${encodeURIComponent(packageName)}`;
2580
+ }
2581
+ async function getCachedVersion(packageName, tag) {
2582
+ const cacheKey = getCacheKey(packageName, tag);
2583
+ try {
2584
+ const cached = await storage.getItem(cacheKey);
2585
+ if (cached && typeof cached.checkedAt === "number" && typeof cached.version === "string" && Date.now() - cached.checkedAt < VERSION_CACHE_TTL) {
2586
+ return cached.version;
2587
+ }
2588
+ } catch {
2589
+ }
2590
+ const version = await getVersion(packageName, tag, { executable: "pnpm" });
2591
+ try {
2592
+ await storage.setItem(cacheKey, { checkedAt: Date.now(), version });
2593
+ } catch {
2594
+ }
2595
+ return version;
2596
+ }
2597
+
2566
2598
  // src/cli/index.ts
2567
2599
  var _config = {};
2568
2600
  function createProgram(config) {
@@ -2638,11 +2670,15 @@ async function updateAction(packages, options) {
2638
2670
  verbose = false
2639
2671
  } = options || {};
2640
2672
  let packagesFound = false;
2641
- let pkgs = packages && Array.isArray(packages) ? packages : [];
2673
+ const requestedPackages = Array.isArray(packages) ? packages.filter(Boolean).map((pkg) => pkg.trim().replaceAll("*", "")) : [];
2674
+ let pkgs = [...requestedPackages];
2642
2675
  if (internal || pkgs.length === 0 || all) {
2643
2676
  pkgs.push(...INTERNAL_PACKAGES);
2644
2677
  }
2645
2678
  pkgs = pkgs.filter(Boolean).map((pkg) => pkg.trim().replaceAll("*", ""));
2679
+ const isExplicitlyRequested = (packageName) => requestedPackages.some(
2680
+ (pkg) => pkg.endsWith("/") ? packageName.startsWith(pkg) : packageName === pkg
2681
+ );
2646
2682
  let changed = [];
2647
2683
  if (pkgs.length > 0) {
2648
2684
  writeDebug(
@@ -2685,6 +2721,7 @@ async function updateAction(packages, options) {
2685
2721
  tag,
2686
2722
  prefix,
2687
2723
  workspaceRoot: _config.workspaceRoot,
2724
+ versionResolver: isExplicitlyRequested(matchedPackage) ? getCachedVersion : void 0,
2688
2725
  verbose
2689
2726
  });
2690
2727
  if (result.updated && result.catalog[matchedPackage]) {
@@ -1,29 +1,29 @@
1
- import {loadConfig}from'c12';import _o from'defu';import'date-fns/formatDistanceToNow';import Fo from'chalk';import {existsSync}from'node:fs';import {join}from'node:path';import*as r from'zod/v4/mini';import {readFile,writeFile}from'node:fs/promises';import {parse,stringify}from'yaml';var d={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,PERFORMANCE:50,DEBUG:60,TRACE:70,ALL:100},l={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",PERFORMANCE:"performance",DEBUG:"debug",TRACE:"trace",ALL:"all"};var v={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",debug:"#8afafc",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26",performance:"#80fd74"}};var Mo={hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),white:e=>e,whiteBright:e=>e,gray:e=>e,bold:{hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),whiteBright:e=>e,white:e=>e},dim:{hex:e=>o=>o,gray:e=>e}},se=()=>{let e=Fo;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Mo),e};function te(){return process.platform!=="win32"?process.env.TERM!=="linux":!!process.env.WT_SESSION||!!process.env.TERMINUS_SUBLIME||process.env.ConEmuTask==="{cmd::Cmder}"||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"}var O=(e,o)=>te()?e:o,S={[l.ERROR]:O("\u2718","\xD7"),[l.FATAL]:O("\u{1F571}","\xD7"),[l.WARN]:O("\u26A0","\u203C"),[l.INFO]:O("\u2139","i"),[l.PERFORMANCE]:O("\u23F1","\u23F1"),[l.SUCCESS]:O("\u2714","\u221A"),[l.DEBUG]:O("\u{1F6E0}","D"),[l.TRACE]:O("\u2699","T"),[l.ALL]:O("\u2709","\u2192")};var k=(e=false,o=new Date)=>e?`${o.toLocaleDateString()} ${o.toLocaleTimeString()}`:`${o.toLocaleTimeString()}`;var $=e=>{switch(e){case "all":return d.ALL;case "trace":return d.TRACE;case "debug":return d.DEBUG;case "performance":return d.PERFORMANCE;case "info":return d.INFO;case "warn":return d.WARN;case "error":return d.ERROR;case "fatal":return d.FATAL;case "silent":return d.SILENT;default:return d.INFO}},ne=(e=d.INFO)=>e>=d.ALL?l.ALL:e>=d.TRACE?l.TRACE:e>=d.DEBUG?l.DEBUG:e>=d.PERFORMANCE?l.PERFORMANCE:e>=d.INFO?l.INFO:e>=d.WARN?l.WARN:e>=d.ERROR?l.ERROR:e>=d.FATAL?l.FATAL:e<=d.SILENT?l.SILENT:l.INFO;var X=(e=d.INFO,o={},s={})=>{let{chalk:t=se(),fullDateTime:a=false,hideDateTime:i=false}=s,c=!o.colors?.dark&&!o.colors?.base&&!o.colors?.base?.dark?v:o.colors?.dark&&typeof o.colors.dark=="string"?o.colors:o.colors?.base?.dark&&typeof o.colors.base.dark=="string"?o.colors.base.dark:o.colors?.base?o.colors?.base:v,p=o.logLevel||process.env.STORM_LOG_LEVEL||l.INFO;return e>$(p)||e<=d.SILENT||$(p)<=d.SILENT?u=>{}:typeof e=="number"&&d.FATAL>=e?u=>{console.error(`
2
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.fatal??v.dark.fatal)(`[${S[l.FATAL]} Fatal] `)}${t.bold.whiteBright(R(u))}
1
+ import'date-fns/formatDistanceToNow';import Go from'chalk';import {existsSync}from'node:fs';import {join}from'node:path';import*as r from'zod/v4/mini';import _o from'defu';import {loadConfig}from'c12';import {readFile}from'node:fs/promises';var d={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,PERFORMANCE:50,DEBUG:60,TRACE:70,ALL:100},l={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",PERFORMANCE:"performance",DEBUG:"debug",TRACE:"trace",ALL:"all"};var T={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",debug:"#8afafc",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26",performance:"#80fd74"}};var Po={hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),white:e=>e,whiteBright:e=>e,gray:e=>e,bold:{hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),whiteBright:e=>e,white:e=>e},dim:{hex:e=>o=>o,gray:e=>e}},se=()=>{let e=Go;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Po),e};function te(){return process.platform!=="win32"?process.env.TERM!=="linux":!!process.env.WT_SESSION||!!process.env.TERMINUS_SUBLIME||process.env.ConEmuTask==="{cmd::Cmder}"||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"}var k=(e,o)=>te()?e:o,C={[l.ERROR]:k("\u2718","\xD7"),[l.FATAL]:k("\u{1F571}","\xD7"),[l.WARN]:k("\u26A0","\u203C"),[l.INFO]:k("\u2139","i"),[l.PERFORMANCE]:k("\u23F1","\u23F1"),[l.SUCCESS]:k("\u2714","\u221A"),[l.DEBUG]:k("\u{1F6E0}","D"),[l.TRACE]:k("\u2699","T"),[l.ALL]:k("\u2709","\u2192")};var v=(e=false,o=new Date)=>e?`${o.toLocaleDateString()} ${o.toLocaleTimeString()}`:`${o.toLocaleTimeString()}`;var A=e=>{switch(e){case "all":return d.ALL;case "trace":return d.TRACE;case "debug":return d.DEBUG;case "performance":return d.PERFORMANCE;case "info":return d.INFO;case "warn":return d.WARN;case "error":return d.ERROR;case "fatal":return d.FATAL;case "silent":return d.SILENT;default:return d.INFO}},ne=(e=d.INFO)=>e>=d.ALL?l.ALL:e>=d.TRACE?l.TRACE:e>=d.DEBUG?l.DEBUG:e>=d.PERFORMANCE?l.PERFORMANCE:e>=d.INFO?l.INFO:e>=d.WARN?l.WARN:e>=d.ERROR?l.ERROR:e>=d.FATAL?l.FATAL:e<=d.SILENT?l.SILENT:l.INFO;var X=(e=d.INFO,o={},s={})=>{let{chalk:n=se(),fullDateTime:a=false,hideDateTime:i=false}=s,c=!o.colors?.dark&&!o.colors?.base&&!o.colors?.base?.dark?T:o.colors?.dark&&typeof o.colors.dark=="string"?o.colors:o.colors?.base?.dark&&typeof o.colors.base.dark=="string"?o.colors.base.dark:o.colors?.base?o.colors?.base:T,p=o.logLevel||process.env.STORM_LOG_LEVEL||l.INFO;return e>A(p)||e<=d.SILENT||A(p)<=d.SILENT?u=>{}:typeof e=="number"&&d.FATAL>=e?u=>{console.error(`
2
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.fatal??T.dark.fatal)(`[${C[l.FATAL]} Fatal] `)}${n.bold.whiteBright(R(u))}
3
3
  `);}:typeof e=="number"&&d.ERROR>=e?u=>{console.error(`
4
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.danger??v.dark.danger)(`[${S[l.ERROR]} Error] `)}${t.bold.whiteBright(R(u))}
4
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.danger??T.dark.danger)(`[${C[l.ERROR]} Error] `)}${n.bold.whiteBright(R(u))}
5
5
  `);}:typeof e=="number"&&d.WARN>=e?u=>{console.warn(`
6
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.warning??v.dark.warning)(`[${S[l.WARN]} Warn] `)}${t.bold.whiteBright(R(u))}
6
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.warning??T.dark.warning)(`[${C[l.WARN]} Warn] `)}${n.bold.whiteBright(R(u))}
7
7
  `);}:typeof e=="number"&&d.SUCCESS>=e?u=>{console.info(`
8
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.success??v.dark.success)(`[${S[l.SUCCESS]} Success] `)}${t.bold.whiteBright(R(u))}
8
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.success??T.dark.success)(`[${C[l.SUCCESS]} Success] `)}${n.bold.whiteBright(R(u))}
9
9
  `);}:typeof e=="number"&&d.INFO>=e?u=>{console.info(`
10
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.info??v.dark.info)(`[${S[l.INFO]} Info] `)}${t.bold.whiteBright(R(u))}
10
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.info??T.dark.info)(`[${C[l.INFO]} Info] `)}${n.bold.whiteBright(R(u))}
11
11
  `);}:typeof e=="number"&&d.PERFORMANCE>=e?u=>{console.debug(`
12
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.performance??v.dark.performance)(`[${S[l.PERFORMANCE]} Performance] `)}${t.bold.whiteBright(R(u))}
12
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.performance??T.dark.performance)(`[${C[l.PERFORMANCE]} Performance] `)}${n.bold.whiteBright(R(u))}
13
13
  `);}:typeof e=="number"&&d.DEBUG>=e?u=>{console.debug(`
14
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.debug??v.dark.debug)(`[${S[l.DEBUG]} Debug] `)}${t.bold.whiteBright(R(u))}
14
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.debug??T.dark.debug)(`[${C[l.DEBUG]} Debug] `)}${n.bold.whiteBright(R(u))}
15
15
  `);}:typeof e=="number"&&d.TRACE>=e?u=>{console.debug(`
16
- ${i?"":`${t.gray(k(a))} `}${t.hex("#bbbbbb")(`[${S[l.TRACE]} Trace] `)}${t.bold.whiteBright(R(u))}
16
+ ${i?"":`${n.gray(v(a))} `}${n.hex("#bbbbbb")(`[${C[l.TRACE]} Trace] `)}${n.bold.whiteBright(R(u))}
17
17
  `);}:u=>{console.log(`
18
- ${i?"":`${t.gray(k(a))} `}${t.hex(c.brand??v.dark.brand)(`[${S[l.ALL]} System] `)}${t.bold.whiteBright(R(u))}
19
- `);}};var ae=(e,o)=>X(d.WARN,o)(e);var Jr=(e,o)=>X(d.DEBUG,o)(e),A=(e,o)=>X(d.TRACE,o)(e);var Wo=10,R=(e,o={},s=0)=>{if(s>Wo)return "<max depth>";let t=o.prefix??"",a=o.skip??[],i=o.sort??true;return typeof e>"u"||e===null?"<empty>":typeof e=="string"?e||"<empty string>":Array.isArray(e)?`
20
- ${e.sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map((c,p)=>` ${t}> #${p} = ${R(c,{prefix:`${t}--`,skip:a,sort:i},s+1)}`).join(`
18
+ ${i?"":`${n.gray(v(a))} `}${n.hex(c.brand??T.dark.brand)(`[${C[l.ALL]} System] `)}${n.bold.whiteBright(R(u))}
19
+ `);}};var ae=(e,o)=>X(d.WARN,o)(e);var Br=(e,o)=>X(d.DEBUG,o)(e),L=(e,o)=>X(d.TRACE,o)(e);var Mo=10,R=(e,o={},s=0)=>{if(s>Mo)return "<max depth>";let n=o.prefix??"",a=o.skip??[],i=o.sort??true;return typeof e>"u"||e===null?"<empty>":typeof e=="string"?e||"<empty string>":Array.isArray(e)?`
20
+ ${e.sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map((c,p)=>` ${n}> #${p} = ${R(c,{prefix:`${n}--`,skip:a,sort:i},s+1)}`).join(`
21
21
  `)}`:typeof e=="object"&&e?`
22
- ${Object.keys(e).filter(c=>typeof c!="string"||!a.map(p=>p.toLowerCase().trim()).includes(c.toLowerCase().trim())).sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map(c=>` ${t}> ${c} = ${Uo(e[c])?"<function>":typeof e[c]=="object"&&e[c]?Object.keys(e[c]).filter(p=>typeof p!="string"||!a.map(u=>u.toLowerCase().trim()).includes(p.toLowerCase().trim())).length===0?"{}":R(e[c],{prefix:`${t}--`,skip:a,sort:i},s+1):e[c]}`).join(`
23
- `)}`:String(e)},Uo=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var jo=/^[A-Za-z]:\//;function Bo(e=""){return e&&e.replace(/\\/g,"/").replace(jo,o=>o.toUpperCase())}var Ho=/^[/\\]{2}/,Ko=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,Yo=/^[A-Za-z]:$/;var m=function(e){if(!e||e.length===0)return ".";e=Bo(e);let o=e?.match(Ho),s=ie(e),t=e[e.length-1]==="/";return e=Zo(e,!s),e.length===0?s?"/":t?"./":".":(t&&(e+="/"),Yo.test(e)&&(e+="/"),o?s?`//${e}`:`//./${e}`:s&&!ie(e)?`/${e}`:e)},C=function(...e){let o="";for(let s of e)if(s)if(o.length>0){let t=o[o.length-1]==="/",a=s[0]==="/";t&&a?o+=s.slice(1):o+=t||a?s:`/${s}`;}else o+=s;return m(o)};function Zo(e,o){let s="",t=0,a=-1,i=0,c=null;for(let p=0;p<=e.length;++p){if(p<e.length)c=e[p];else {if(c==="/")break;c="/";}if(c==="/"){if(!(a===p-1||i===1))if(i===2){if(s.length<2||t!==2||s[s.length-1]!=="."||s[s.length-2]!=="."){if(s.length>2){let u=s.lastIndexOf("/");u===-1?(s="",t=0):(s=s.slice(0,u),t=s.length-1-s.lastIndexOf("/")),a=p,i=0;continue}else if(s.length>0){s="",t=0,a=p,i=0;continue}}o&&(s+=s.length>0?"/..":"..",t=2);}else s.length>0?s+=`/${e.slice(a+1,p)}`:s=e.slice(a+1,p),t=p-a-1;a=p,i=0;}else c==="."&&i!==-1?++i:i=-1;}return s}var ie=function(e){return Ko.test(e)};var Vo=30,Jo=0;function Q(e,o=[],s=[]){let t=e??process.cwd();if(s.some(a=>existsSync(join(t,a)))||o.some(a=>existsSync(join(t,a))))return t;if(t!=="/"&&Jo++<Vo){let a=join(t,"..");return Q(a,o,s)}}var pe=["storm-workspace.json","storm-workspace.yaml","storm-workspace.yml","storm-workspace.js","storm-workspace.ts",".storm-workspace.json",".storm-workspace.yaml",".storm-workspace.yml",".storm-workspace.js",".storm-workspace.ts","lerna.json","nx.json","turbo.json","npm-workspace.json","yarn-workspace.json","pnpm-workspace.json","npm-workspace.yaml","yarn-workspace.yaml","pnpm-workspace.yaml","npm-workspace.yml","yarn-workspace.yml","pnpm-workspace.yml","npm-lock.json","yarn-lock.json","pnpm-lock.json","npm-lock.yaml","yarn-lock.yaml","pnpm-lock.yaml","npm-lock.yml","yarn-lock.yml","pnpm-lock.yml","bun.lockb","bun.lock","bunfig.toml"],Xo=[".storm-workspace",".nx",".git",".github",".vscode",".verdaccio"];function qo(e){return process.env.STORM_WORKSPACE_ROOT||process.env.NX_WORKSPACE_ROOT_PATH?m(process.env.STORM_WORKSPACE_ROOT??process.env.NX_WORKSPACE_ROOT_PATH):m(Q(e??process.cwd(),pe,Xo))}function T(e){let o=qo(e);if(!o)throw new Error(`Cannot find workspace root upwards from known path. Files search list includes:
22
+ ${Object.keys(e).filter(c=>typeof c!="string"||!a.map(p=>p.toLowerCase().trim()).includes(c.toLowerCase().trim())).sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map(c=>` ${n}> ${c} = ${Fo(e[c])?"<function>":typeof e[c]=="object"&&e[c]?Object.keys(e[c]).filter(p=>typeof p!="string"||!a.map(u=>u.toLowerCase().trim()).includes(p.toLowerCase().trim())).length===0?"{}":R(e[c],{prefix:`${n}--`,skip:a,sort:i},s+1):e[c]}`).join(`
23
+ `)}`:String(e)},Fo=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Uo=/^[A-Za-z]:\//;function Wo(e=""){return e&&e.replace(/\\/g,"/").replace(Uo,o=>o.toUpperCase())}var Bo=/^[/\\]{2}/,jo=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,Ho=/^[A-Za-z]:$/;var m=function(e){if(!e||e.length===0)return ".";e=Wo(e);let o=e?.match(Bo),s=ie(e),n=e[e.length-1]==="/";return e=Ko(e,!s),e.length===0?s?"/":n?"./":".":(n&&(e+="/"),Ho.test(e)&&(e+="/"),o?s?`//${e}`:`//./${e}`:s&&!ie(e)?`/${e}`:e)},S=function(...e){let o="";for(let s of e)if(s)if(o.length>0){let n=o[o.length-1]==="/",a=s[0]==="/";n&&a?o+=s.slice(1):o+=n||a?s:`/${s}`;}else o+=s;return m(o)};function Ko(e,o){let s="",n=0,a=-1,i=0,c=null;for(let p=0;p<=e.length;++p){if(p<e.length)c=e[p];else {if(c==="/")break;c="/";}if(c==="/"){if(!(a===p-1||i===1))if(i===2){if(s.length<2||n!==2||s[s.length-1]!=="."||s[s.length-2]!=="."){if(s.length>2){let u=s.lastIndexOf("/");u===-1?(s="",n=0):(s=s.slice(0,u),n=s.length-1-s.lastIndexOf("/")),a=p,i=0;continue}else if(s.length>0){s="",n=0,a=p,i=0;continue}}o&&(s+=s.length>0?"/..":"..",n=2);}else s.length>0?s+=`/${e.slice(a+1,p)}`:s=e.slice(a+1,p),n=p-a-1;a=p,i=0;}else c==="."&&i!==-1?++i:i=-1;}return s}var ie=function(e){return jo.test(e)};var Yo=30,Zo=0;function Q(e,o=[],s=[]){let n=e??process.cwd();if(s.some(a=>existsSync(join(n,a)))||o.some(a=>existsSync(join(n,a))))return n;if(n!=="/"&&Zo++<Yo){let a=join(n,"..");return Q(a,o,s)}}var pe=["storm-workspace.json","storm-workspace.yaml","storm-workspace.yml","storm-workspace.js","storm-workspace.ts",".storm-workspace.json",".storm-workspace.yaml",".storm-workspace.yml",".storm-workspace.js",".storm-workspace.ts","lerna.json","nx.json","turbo.json","npm-workspace.json","yarn-workspace.json","pnpm-workspace.json","npm-workspace.yaml","yarn-workspace.yaml","pnpm-workspace.yaml","npm-workspace.yml","yarn-workspace.yml","pnpm-workspace.yml","npm-lock.json","yarn-lock.json","pnpm-lock.json","npm-lock.yaml","yarn-lock.yaml","pnpm-lock.yaml","npm-lock.yml","yarn-lock.yml","pnpm-lock.yml","bun.lockb","bun.lock","bunfig.toml"],Vo=[".storm-workspace",".nx",".git",".github",".vscode",".verdaccio"];function Jo(e){return process.env.STORM_WORKSPACE_ROOT||process.env.NX_WORKSPACE_ROOT_PATH?m(process.env.STORM_WORKSPACE_ROOT??process.env.NX_WORKSPACE_ROOT_PATH):m(Q(e??process.cwd(),pe,Vo))}function O(e){let o=Jo(e);if(!o)throw new Error(`Cannot find workspace root upwards from known path. Files search list includes:
24
24
  ${pe.join(`
25
25
  `)}
26
- Path: ${e||process.cwd()}`);return o}var de="https://docs.stormsoftware.com",I="https://stormsoftware.com";var le="https://stormsoftware.com/license",me="Apache-2.0";var b="tools/errors/codes.json",ue="The workspace's banner image",ge=["dark","light","base","brand","alternate","accent","link","success","discovery","info","warning","danger","fatal","performance","positive","negative"];var n=r.registry(),E=r.string().check(r.length(7),r.toLowerCase(),r.regex(/^#([0-9a-f]{3}){1,2}$/i),r.trim());n.add(E,{description:"A base schema for describing the format of colors"});var y=r._default(E,"#1e2124");n.add(y,{description:"The dark background color of the workspace"});var z=r._default(E,"#cbd5e1");n.add(z,{description:"The light background color of the workspace"});var x=r._default(E,"#1fb2a6");n.add(x,{description:"The primary brand specific color of the workspace"});var D=r.optional(E);n.add(D,{description:"The alternate brand specific color of the workspace"});var G=r.optional(E);n.add(G,{description:"The secondary brand specific color of the workspace"});var P=r._default(E,"#3fa6ff");n.add(P,{description:"The color used to display hyperlink text"});var F=r._default(E,"#818cf8");n.add(F,{description:"The second brand specific color of the workspace"});var M=r._default(E,"#45b27e");n.add(M,{description:"The success color of the workspace"});var W=r._default(E,"#38bdf8");n.add(W,{description:"The informational color of the workspace"});var U=r._default(E,"#8afafc");n.add(U,{description:"The debug color of the workspace"});var j=r._default(E,"#f3d371");n.add(j,{description:"The warning color of the workspace"});var B=r._default(E,"#d8314a");n.add(B,{description:"The danger color of the workspace"});var H=r.optional(E);n.add(H,{description:"The fatal color of the workspace"});var K=r._default(E,"#80fd74");n.add(K,{description:"The performance color of the workspace"});var Y=r._default(E,"#4ade80");n.add(Y,{description:"The positive number color of the workspace"});var Z=r._default(E,"#ef4444");n.add(Z,{description:"The negative number color of the workspace"});var V=r.optional(r.array(E));n.add(V,{description:"The color stops for the base gradient color pattern used in the workspace"});var rr=r.object({foreground:z,background:y,brand:x,alternate:D,accent:G,link:P,discovery:F,success:M,info:W,debug:U,warning:j,danger:B,fatal:H,performance:K,positive:Y,negative:Z,gradient:V}),sr=r.object({foreground:y,background:z,brand:x,alternate:D,accent:G,link:P,discovery:F,success:M,info:W,debug:U,warning:j,danger:B,fatal:H,performance:K,positive:Y,negative:Z,gradient:V}),tr=r.object({dark:rr,light:sr}),nr=r.object({dark:y,light:z,brand:x,alternate:D,accent:G,link:P,discovery:F,success:M,info:W,debug:U,warning:j,danger:B,fatal:H,performance:K,positive:Y,negative:Z,gradient:V}),_=r.optional(r.url());n.add(_,{description:"A remote registry URL used to publish distributable packages"});var fe=r._default(r.object({github:_,npm:_,cargo:_,cyclone:_,container:_}),{});n.add(fe,{description:"A list of remote registry URLs used by Storm Software"});var ee=r.union([nr,tr]);n.add(ee,{description:"Colors used for various workspace elements"});var he=r.record(r.union([r.union([r.literal("base"),r.string()]),r.string()]),ee);n.add(he,{description:"Storm theme config values used for styling various package elements"});var Ee=r.optional(r.union([r.string().check(r.trim()),r.array(r.string().check(r.trim()))]));n.add(Ee,{description:"The path to a base config file to use as a configuration preset file. Documentation can be found at https://github.com/unjs/c12#extending-configuration."});var Re=r.string().check(r.trim());n.add(Re,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var Te=r.string().check(r.trim());n.add(Te,{description:"The email of the workspace bot"});var Ce=r.object({name:Re,email:Te});n.add(Ce,{description:"The workspace's bot user's config used to automated various operations tasks"});var ve=r.optional(r.string().check(r.trim(),r.url()));n.add(ve,{description:"A URL to a banner image used to display the workspace's release"});var Se=r._default(r.string().check(r.trim()),ue);n.add(Se,{description:"The alt text for the workspace's release banner image"});var ke=r.object({url:ve,alt:Se});n.add(ke,{description:"The workspace's banner image used during the release process"});var Oe=r.optional(r.string().check(r.trim()));n.add(Oe,{description:"A header message appended to the start of the workspace's release notes"});var Ae=r.optional(r.string().check(r.trim()));n.add(Ae,{description:"A footer message appended to the end of the workspace's release notes"});var $e=r.object({banner:r.union([ke,r.string().check(r.trim(),r.url())]),header:Oe,footer:Ae});n.add($e,{description:"The workspace's release config used during the release process"});var _e=r.optional(r.string().check(r.trim()));n.add(_e,{description:"A Twitter/X account associated with the organization/project"});var Le=r.optional(r.string().check(r.trim()));n.add(Le,{description:"A Discord account associated with the organization/project"});var Ie=r.optional(r.string().check(r.trim()));n.add(Ie,{description:"A Telegram account associated with the organization/project"});var Ne=r.optional(r.string().check(r.trim()));n.add(Ne,{description:"A Slack account associated with the organization/project"});var we=r.optional(r.string().check(r.trim()));n.add(we,{description:"A Medium account associated with the organization/project"});var be=r.optional(r.string().check(r.trim()));n.add(be,{description:"A GitHub account associated with the organization/project"});var ye=r.object({twitter:_e,discord:Le,telegram:Ie,slack:Ne,medium:we,github:be});n.add(ye,{description:"The workspace's account config used to store various social media links"});var ze=r.optional(r.string().check(r.trim()));n.add(ze,{description:"The directory used to store the environment's cached file data"});var xe=r.optional(r.string().check(r.trim()));n.add(xe,{description:"The directory used to store the environment's data files"});var De=r.optional(r.string().check(r.trim()));n.add(De,{description:"The directory used to store the environment's configuration files"});var Ge=r.optional(r.string().check(r.trim()));n.add(Ge,{description:"The directory used to store the environment's temp files"});var Pe=r.optional(r.string().check(r.trim()));n.add(Pe,{description:"The directory used to store the environment's log files"});var Fe=r._default(r.string().check(r.trim()),"dist");n.add(Fe,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var Me=r.object({cache:ze,data:xe,config:De,temp:Ge,log:Pe,build:Fe});n.add(Me,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var We=r._default(r.enum(["minimal","monorepo"]),"monorepo");n.add(We,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var Ue=r._default(r.string().check(r.trim()),b);n.add(Ue,{description:"The path to the workspace's error codes JSON file"});var je=r.optional(r.url());n.add(je,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var Be=r.object({codesFile:Ue,url:je});n.add(Be,{description:"The workspace's error config used when creating error details during a system error"});var He=r.optional(r.string().check(r.trim(),r.toLowerCase()));n.add(He,{description:"The name of the organization"});var Ke=r.optional(r.string().check(r.trim()));n.add(Ke,{description:"A description of the organization"});var Ye=r.optional(r.url());n.add(Ye,{description:"A URL to the organization's logo image"});var Ze=r.optional(r.url());n.add(Ze,{description:"A URL to the organization's icon image"});var Ve=r.optional(r.url());n.add(Ve,{description:"A URL to a page that provides more information about the organization"});var Je=r.object({name:He,description:Ke,logo:Ye,icon:Ze,url:Ve});n.add(Je,{description:"The workspace's organization details"});var Xe=r._default(r.string().check(r.trim(),r.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");n.add(Xe,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var qe=r.string().check(r.trim(),r.toLowerCase());n.add(qe,{description:"The name of the workspace/project/service/package/scope using this configuration"});var Qe=r.string().check(r.trim(),r.toLowerCase());n.add(Qe,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var eo=r.union([Je,r.string().check(r.trim(),r.toLowerCase())]);n.add(eo,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var oo=r.string().check(r.trim(),r.toLowerCase());n.add(oo,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var ro=r._default(r.string().check(r.trim()),"Apache-2.0");n.add(ro,{description:"The license type of the package"});var so=r.optional(r.url());n.add(so,{description:"The homepage of the workspace"});var to=r.optional(r.url());n.add(to,{description:"The documentation site for the workspace"});var no=r.optional(r.url());n.add(no,{description:"The development portal site for the workspace"});var ao=r.optional(r.url());n.add(ao,{description:"The licensing site for the workspace"});var io=r.optional(r.url());n.add(io,{description:"The contact site for the workspace"});var co=r.optional(r.url());n.add(co,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var po=r._default(r.string().check(r.trim(),r.toLowerCase()),"main");n.add(po,{description:"The branch of the workspace"});var lo=r.optional(r.string().check(r.trim(),r.toLowerCase()));n.add(lo,{description:"A tag specifying the version pre-release identifier"});var mo=r.optional(r.string().check(r.trim(),r.toLowerCase()));n.add(mo,{description:"The owner of the package"});var uo=r._default(r.enum(["development","test","production"]).check(r.trim(),r.toLowerCase()),"production");n.add(uo,{description:"The current runtime environment mode for the package"});var go=r.string().check(r.trim(),r.toLowerCase());n.add(go,{description:"The root directory of the workspace"});var fo=r._default(r.boolean(),false);n.add(fo,{description:"Should all known types of workspace caching be skipped?"});var ho=r._default(r.enum(["npm","yarn","pnpm","bun"]),"npm");n.add(ho,{description:"The JavaScript/TypeScript package manager used by the repository"});var Eo=r._default(r.string().check(r.trim()),"America/New_York");n.add(Eo,{description:"The default timezone of the workspace"});var Ro=r._default(r.string().check(r.trim()),"en-US");n.add(Ro,{description:"The default locale of the workspace"});var To=r._default(r.enum(["silent","fatal","error","warn","success","info","performance","debug","trace","all"]),"info");n.add(To,{description:"The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."});var Co=r._default(r.boolean(),true);n.add(Co,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var vo=r._default(r.nullable(r.string().check(r.trim())),null);n.add(vo,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var oe=r._default(r.record(r.string(),r.any()),{});n.add(oe,{description:"Configuration of each used extension"});var So=r.object({$schema:Xe,extends:Ee,name:qe,variant:We,namespace:Qe,organization:eo,repository:oo,license:ro,homepage:so,docs:to,portal:no,licensing:ao,contact:io,support:co,branch:po,preid:lo,owner:mo,bot:Ce,release:$e,socials:ye,error:Be,mode:uo,workspaceRoot:go,skipCache:fo,directories:Me,packageManager:ho,timezone:Eo,locale:Ro,logLevel:To,skipConfigLogging:Co,registry:fe,configFile:vo,colors:r.union([ee,he]),extensions:oe});n.add(oe,{description:"Storm Workspace config values used during various dev-ops processes. This type is a combination of the StormPackageConfig and StormProject types. It represents the config of the entire monorepo."});async function ko(e){let o=me,s,t,a,i,c,p=T(e);if(existsSync(join(p,"package.json"))){let u=await readFile(C(p,"package.json"),"utf8");if(u){let h=JSON.parse(u);h.name&&(a=h.name),h.namespace&&(i=h.namespace),h.repository&&(typeof h.repository=="string"?c=h.repository:h.repository.url&&(c=h.repository.url)),h.license&&(o=h.license),h.homepage&&(s=h.homepage),h.bugs&&(typeof h.bugs=="string"?t=h.bugs:h.bugs.url&&(t=h.bugs.url));}}return {workspaceRoot:p,name:a,namespace:i,repository:c,license:o,homepage:s,support:t}}function Oo(e){return !e.support&&e.contact&&(e.support=e.contact),!e.contact&&e.support&&(e.contact=e.support),e.homepage&&(e.docs||(e.docs=`${e.homepage}/docs`),e.license||(e.license=`${e.homepage}/license`),e.support||(e.support=`${e.homepage}/support`),e.contact||(e.contact=`${e.homepage}/contact`),(!e.error?.codesFile||!e?.error?.url)&&(e.error??={codesFile:b},e.homepage&&(e.error.url??=`${e.homepage}/errors`))),e}var $o=async(e,o,s={})=>{let t=o||T(o),a=await Promise.all([loadConfig({cwd:t,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:C(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...s}),loadConfig({cwd:t,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:C(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...s})]);return _o(a[0]??{},a[1]??{})},Lo=async(e,o=[])=>{let s=e||T(e),t=await $o("storm-workspace",s),a=t.config,i=t.configFile;if(a&&i&&Object.keys(a).length>0&&!a.skipConfigLogging&&A(`Found Storm configuration file "${i.includes(`${s}/`)?i.replace(`${s}/`,""):i}" at "${s}"`,{logLevel:"all"}),o&&o.length>0){let c=await Promise.all(o.map(p=>$o(p,s)));for(let p of c)p?.config&&p?.configFile&&Object.keys(p.config).length>0&&(!a.skipConfigLogging&&!p.config.skipConfigLogging&&A(`Found alternative configuration file "${p.configFile.includes(`${s}/`)?p.configFile.replace(`${s}/`,""):p.configFile}" at "${s}"`,{logLevel:"all"}),a=_o(p.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=i,a};var bo=()=>{let e="STORM_",o={extends:process.env[`${e}EXTENDS`]||void 0,name:process.env[`${e}NAME`]||void 0,variant:process.env[`${e}VARIANT`]||void 0,namespace:process.env[`${e}NAMESPACE`]||void 0,owner:process.env[`${e}OWNER`]||void 0,bot:{name:process.env[`${e}BOT_NAME`]||void 0,email:process.env[`${e}BOT_EMAIL`]||void 0},release:{banner:{url:process.env[`${e}RELEASE_BANNER_URL`]||void 0,alt:process.env[`${e}RELEASE_BANNER_ALT`]||void 0},header:process.env[`${e}RELEASE_HEADER`]||void 0,footer:process.env[`${e}RELEASE_FOOTER`]||void 0},error:{codesFile:process.env[`${e}ERROR_CODES_FILE`]||void 0,url:process.env[`${e}ERROR_URL`]||void 0},socials:{twitter:process.env[`${e}SOCIAL_TWITTER`]||void 0,discord:process.env[`${e}SOCIAL_DISCORD`]||void 0,telegram:process.env[`${e}SOCIAL_TELEGRAM`]||void 0,slack:process.env[`${e}SOCIAL_SLACK`]||void 0,medium:process.env[`${e}SOCIAL_MEDIUM`]||void 0,github:process.env[`${e}SOCIAL_GITHUB`]||void 0},organization:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]?process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]?{name:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`],description:process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||void 0,url:process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||void 0,logo:process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]||void 0,icon:process.env[`${e}ORG_ICON`]||process.env[`${e}ORGANIZATION_ICON`]||void 0}:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]:void 0,packageManager:process.env[`${e}PACKAGE_MANAGER`]||void 0,license:process.env[`${e}LICENSE`]||void 0,homepage:process.env[`${e}HOMEPAGE`]||void 0,docs:process.env[`${e}DOCS`]||void 0,portal:process.env[`${e}PORTAL`]||void 0,licensing:process.env[`${e}LICENSING`]||void 0,contact:process.env[`${e}CONTACT`]||void 0,support:process.env[`${e}SUPPORT`]||void 0,timezone:process.env[`${e}TIMEZONE`]||process.env.TZ||void 0,locale:process.env[`${e}LOCALE`]||process.env.LOCALE||void 0,configFile:process.env[`${e}WORKSPACE_CONFIG_FILE`]?m(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?m(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?m(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?m(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?m(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?m(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?m(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?m(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?m(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?m(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?m(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?m(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?m(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?m(process.env[`${e}BUILD_DIRECTORY`]):void 0},skipCache:process.env[`${e}SKIP_CACHE`]!==void 0?!!process.env[`${e}SKIP_CACHE`]:void 0,mode:(process.env[`${e}MODE`]??process.env.NODE_ENV??process.env.ENVIRONMENT)||void 0,repository:process.env[`${e}REPOSITORY`]||void 0,branch:process.env[`${e}BRANCH`]||void 0,preid:process.env[`${e}PRE_ID`]||void 0,registry:{github:process.env[`${e}REGISTRY_GITHUB`]||void 0,npm:process.env[`${e}REGISTRY_NPM`]||void 0,cargo:process.env[`${e}REGISTRY_CARGO`]||void 0,cyclone:process.env[`${e}REGISTRY_CYCLONE`]||void 0,container:process.env[`${e}REGISTRY_CONTAINER`]||void 0},logLevel:process.env[`${e}LOG_LEVEL`]!==null&&process.env[`${e}LOG_LEVEL`]!==void 0?process.env[`${e}LOG_LEVEL`]&&Number.isSafeInteger(Number.parseInt(process.env[`${e}LOG_LEVEL`]))?ne(Number.parseInt(process.env[`${e}LOG_LEVEL`])):process.env[`${e}LOG_LEVEL`]:void 0,skipConfigLogging:process.env[`${e}SKIP_CONFIG_LOGGING`]!==void 0?!!process.env[`${e}SKIP_CONFIG_LOGGING`]:void 0},s=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&ge.every(i=>!a.startsWith(`${e}COLOR_LIGHT_${i}`)&&!a.startsWith(`${e}COLOR_DARK_${i}`)));o.colors=s.length>0?s.reduce((a,i)=>(a[i]=Io(e,i),a),{}):Io(e),o.docs===de&&(o.homepage===I?o.docs=`${I}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===le&&(o.homepage===I?o.licensing=`${I}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let t=process.env[`${e}WORKSPACE_CONFIG`];if(t){let a=JSON.parse(t);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},Io=(e,o)=>{let s=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${s}LIGHT_BRAND`]||process.env[`${e}${s}DARK_BRAND`]?dr(e+s):pr(e+s)},pr=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {dark:process.env[`${e}DARK`],light:process.env[`${e}LIGHT`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},dr=e=>({light:No(`${e}_LIGHT_`),dark:No(`${e}_DARK_`)}),No=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {foreground:process.env[`${e}FOREGROUND`],background:process.env[`${e}BACKGROUND`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var lr=(e,o)=>{for(let s of Object.keys(o??{}))if(o[s]){let t=s?.replace(/([A-Z])+/g,i=>i?i[0]?.toUpperCase()+i.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(i=>i.toLowerCase())??[],a;if(t.length===0)return;t.length===1?a=t[0]?.toUpperCase()??"":a=t.reduce((i,c)=>`${i}_${c.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[s];}},xo=e=>{let o="STORM_";if(e.extends&&(process.env[`${o}EXTENDS`]=Array.isArray(e.extends)?JSON.stringify(e.extends):e.extends),e.name&&(process.env[`${o}NAME`]=e.name),e.variant&&(process.env[`${o}VARIANT`]=e.variant),e.namespace&&(process.env[`${o}NAMESPACE`]=e.namespace),e.owner&&(process.env[`${o}OWNER`]=e.owner),e.bot&&(process.env[`${o}BOT_NAME`]=e.bot.name,process.env[`${o}BOT_EMAIL`]=e.bot.email),e.error&&(process.env[`${o}ERROR_CODES_FILE`]=e.error.codesFile,process.env[`${o}ERROR_URL`]=e.error.url),e.release&&(e.release.banner&&(typeof e.release.banner=="string"?(process.env[`${o}RELEASE_BANNER`]=e.release.banner,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner):(process.env[`${o}RELEASE_BANNER`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_ALT`]=e.release.banner.alt)),process.env[`${o}RELEASE_HEADER`]=e.release.header,process.env[`${o}RELEASE_FOOTER`]=e.release.footer),e.socials&&(e.socials.twitter&&(process.env[`${o}SOCIAL_TWITTER`]=e.socials.twitter),e.socials.discord&&(process.env[`${o}SOCIAL_DISCORD`]=e.socials.discord),e.socials.telegram&&(process.env[`${o}SOCIAL_TELEGRAM`]=e.socials.telegram),e.socials.slack&&(process.env[`${o}SOCIAL_SLACK`]=e.socials.slack),e.socials.medium&&(process.env[`${o}SOCIAL_MEDIUM`]=e.socials.medium),e.socials.github&&(process.env[`${o}SOCIAL_GITHUB`]=e.socials.github)),e.organization&&(typeof e.organization=="string"?(process.env[`${o}ORG`]=e.organization,process.env[`${o}ORG_NAME`]=e.organization,process.env[`${o}ORGANIZATION`]=e.organization,process.env[`${o}ORGANIZATION_NAME`]=e.organization):(process.env[`${o}ORG`]=e.organization.name,process.env[`${o}ORG_NAME`]=e.organization.name,process.env[`${o}ORGANIZATION`]=e.organization.name,process.env[`${o}ORGANIZATION_NAME`]=e.organization.name,e.organization.url&&(process.env[`${o}ORG_URL`]=e.organization.url,process.env[`${o}ORGANIZATION_URL`]=e.organization.url),e.organization.description&&(process.env[`${o}ORG_DESCRIPTION`]=e.organization.description,process.env[`${o}ORGANIZATION_DESCRIPTION`]=e.organization.description),e.organization.logo&&(process.env[`${o}ORG_LOGO`]=e.organization.logo,process.env[`${o}ORGANIZATION_LOGO`]=e.organization.logo),e.organization.icon&&(process.env[`${o}ORG_ICON`]=e.organization.icon,process.env[`${o}ORGANIZATION_ICON`]=e.organization.icon))),e.packageManager&&(process.env[`${o}PACKAGE_MANAGER`]=e.packageManager),e.license&&(process.env[`${o}LICENSE`]=e.license),e.homepage&&(process.env[`${o}HOMEPAGE`]=e.homepage),e.docs&&(process.env[`${o}DOCS`]=e.docs),e.portal&&(process.env[`${o}PORTAL`]=e.portal),e.licensing&&(process.env[`${o}LICENSING`]=e.licensing),e.contact&&(process.env[`${o}CONTACT`]=e.contact),e.support&&(process.env[`${o}SUPPORT`]=e.support),e.timezone&&(process.env[`${o}TIMEZONE`]=e.timezone,process.env.TZ=e.timezone,process.env.DEFAULT_TIMEZONE=e.timezone,process.env.TIMEZONE=e.timezone),e.locale&&(process.env[`${o}LOCALE`]=e.locale,process.env.DEFAULT_LOCALE=e.locale,process.env.LOCALE=e.locale,process.env.LANG=e.locale?`${e.locale.replaceAll("-","_")}.UTF-8`:"en_US.UTF-8"),e.configFile&&(process.env[`${o}WORKSPACE_CONFIG_FILE`]=m(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=m(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=m(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=m(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=m(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=m(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=m(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=m(e.directories.build),process.env[`${o}BUILD_DIRECTORY`]=process.env[`${o}BUILD_DIR`])),e.skipCache!==void 0&&(process.env[`${o}SKIP_CACHE`]=String(e.skipCache),e.skipCache&&(process.env.NX_SKIP_NX_CACHE??=String(e.skipCache),process.env.NX_CACHE_PROJECT_GRAPH??=String(e.skipCache))),e.mode&&(process.env[`${o}MODE`]=e.mode,process.env.NODE_ENV=e.mode,process.env.ENVIRONMENT=e.mode),e.colors?.base?.light||e.colors?.base?.dark)for(let s of Object.keys(e.colors))yo(`${o}COLOR_${s}_`,e.colors[s]);else yo(`${o}COLOR_`,e.colors);e.repository&&(process.env[`${o}REPOSITORY`]=e.repository),e.branch&&(process.env[`${o}BRANCH`]=e.branch),e.preid&&(process.env[`${o}PRE_ID`]=String(e.preid)),e.registry&&(e.registry.github&&(process.env[`${o}REGISTRY_GITHUB`]=String(e.registry.github)),e.registry.npm&&(process.env[`${o}REGISTRY_NPM`]=String(e.registry.npm)),e.registry.cargo&&(process.env[`${o}REGISTRY_CARGO`]=String(e.registry.cargo)),e.registry.cyclone&&(process.env[`${o}REGISTRY_CYCLONE`]=String(e.registry.cyclone)),e.registry.container&&(process.env[`${o}REGISTRY_CONTAINER`]=String(e.registry.container))),e.logLevel&&(process.env[`${o}LOG_LEVEL`]=String(e.logLevel),process.env.LOG_LEVEL=String(e.logLevel),process.env.NX_VERBOSE_LOGGING=String($(e.logLevel)>=d.DEBUG),process.env.RUST_BACKTRACE=$(e.logLevel)>=d.DEBUG?"full":"none"),e.skipConfigLogging!==void 0&&(process.env[`${o}SKIP_CONFIG_LOGGING`]=String(e.skipConfigLogging)),process.env[`${o}WORKSPACE_CONFIG`]=JSON.stringify(e);for(let s of Object.keys(e.extensions??{}))e.extensions[s]&&Object.keys(e.extensions[s])&&lr(s,e.extensions[s]);},yo=(e,o)=>o?.light?.brand||o?.dark?.brand?ur(e,o):mr(e,o),mr=(e,o)=>{if(o.dark&&(process.env[`${e}DARK`]=o.dark),o.light&&(process.env[`${e}LIGHT`]=o.light),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];},ur=(e,o)=>({light:zo(`${e}LIGHT_`,o.light),dark:zo(`${e}DARK_`,o.dark)}),zo=(e,o)=>{if(o.foreground&&(process.env[`${e}FOREGROUND`]=o.foreground),o.background&&(process.env[`${e}BACKGROUND`]=o.background),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];};var N,fr=async(e,o,s,t=false,a=true)=>{let i;if(!N?.data||!N?.timestamp||N.timestamp<Date.now()-8e3){let c=s;c||(c=T());let p=bo(),u=await Lo(c);if(!u&&(t||ae("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n",{logLevel:"all"}),a===false))return;let h=await ko(c),w=_o(p,u,h);w.variant||(w.variant=existsSync(C(c,"nx.json"))||existsSync(C(c,".nx"))||existsSync(C(c,"lerna.json"))||existsSync(C(c,"turbo.json"))?"monorepo":"minimal");try{let L=await Promise.resolve(So._zod.parse({value:w,issues:[]},{async:!0}));i=Oo(L.value),i.workspaceRoot??=c;}catch(L){throw new Error(`Failed to parse Storm Workspace configuration${L?.message?`: ${L.message}`:""}
26
+ Path: ${e||process.cwd()}`);return o}var de="https://docs.stormsoftware.com",I="https://stormsoftware.com";var le="https://stormsoftware.com/license",me="Apache-2.0";var y="tools/errors/codes.json",ue="The workspace's banner image",ge=["dark","light","base","brand","alternate","accent","link","success","discovery","info","warning","danger","fatal","performance","positive","negative"];var t=r.registry(),E=r.string().check(r.length(7),r.toLowerCase(),r.regex(/^#([0-9a-f]{3}){1,2}$/i),r.trim());t.add(E,{description:"A base schema for describing the format of colors"});var w=r._default(E,"#1e2124");t.add(w,{description:"The dark background color of the workspace"});var z=r._default(E,"#cbd5e1");t.add(z,{description:"The light background color of the workspace"});var D=r._default(E,"#1fb2a6");t.add(D,{description:"The primary brand specific color of the workspace"});var x=r.optional(E);t.add(x,{description:"The alternate brand specific color of the workspace"});var G=r.optional(E);t.add(G,{description:"The secondary brand specific color of the workspace"});var P=r._default(E,"#3fa6ff");t.add(P,{description:"The color used to display hyperlink text"});var M=r._default(E,"#818cf8");t.add(M,{description:"The second brand specific color of the workspace"});var F=r._default(E,"#45b27e");t.add(F,{description:"The success color of the workspace"});var U=r._default(E,"#38bdf8");t.add(U,{description:"The informational color of the workspace"});var W=r._default(E,"#8afafc");t.add(W,{description:"The debug color of the workspace"});var B=r._default(E,"#f3d371");t.add(B,{description:"The warning color of the workspace"});var j=r._default(E,"#d8314a");t.add(j,{description:"The danger color of the workspace"});var H=r.optional(E);t.add(H,{description:"The fatal color of the workspace"});var K=r._default(E,"#80fd74");t.add(K,{description:"The performance color of the workspace"});var Y=r._default(E,"#4ade80");t.add(Y,{description:"The positive number color of the workspace"});var Z=r._default(E,"#ef4444");t.add(Z,{description:"The negative number color of the workspace"});var V=r.optional(r.array(E));t.add(V,{description:"The color stops for the base gradient color pattern used in the workspace"});var er=r.object({foreground:z,background:w,brand:D,alternate:x,accent:G,link:P,discovery:M,success:F,info:U,debug:W,warning:B,danger:j,fatal:H,performance:K,positive:Y,negative:Z,gradient:V}),or=r.object({foreground:w,background:z,brand:D,alternate:x,accent:G,link:P,discovery:M,success:F,info:U,debug:W,warning:B,danger:j,fatal:H,performance:K,positive:Y,negative:Z,gradient:V}),rr=r.object({dark:er,light:or}),sr=r.object({dark:w,light:z,brand:D,alternate:x,accent:G,link:P,discovery:M,success:F,info:U,debug:W,warning:B,danger:j,fatal:H,performance:K,positive:Y,negative:Z,gradient:V}),$=r.optional(r.url());t.add($,{description:"A remote registry URL used to publish distributable packages"});var fe=r._default(r.object({github:$,npm:$,cargo:$,cyclone:$,container:$}),{});t.add(fe,{description:"A list of remote registry URLs used by Storm Software"});var ee=r.union([sr,rr]);t.add(ee,{description:"Colors used for various workspace elements"});var he=r.record(r.union([r.union([r.literal("base"),r.string()]),r.string()]),ee);t.add(he,{description:"Storm theme config values used for styling various package elements"});var Ee=r.optional(r.union([r.string().check(r.trim()),r.array(r.string().check(r.trim()))]));t.add(Ee,{description:"The path to a base config file to use as a configuration preset file. Documentation can be found at https://github.com/unjs/c12#extending-configuration."});var Re=r.string().check(r.trim());t.add(Re,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var Te=r.string().check(r.trim());t.add(Te,{description:"The email of the workspace bot"});var Ce=r.object({name:Re,email:Te});t.add(Ce,{description:"The workspace's bot user's config used to automated various operations tasks"});var ve=r.optional(r.string().check(r.trim(),r.url()));t.add(ve,{description:"A URL to a banner image used to display the workspace's release"});var Se=r._default(r.string().check(r.trim()),ue);t.add(Se,{description:"The alt text for the workspace's release banner image"});var ke=r.object({url:ve,alt:Se});t.add(ke,{description:"The workspace's banner image used during the release process"});var Oe=r.optional(r.string().check(r.trim()));t.add(Oe,{description:"A header message appended to the start of the workspace's release notes"});var Ae=r.optional(r.string().check(r.trim()));t.add(Ae,{description:"A footer message appended to the end of the workspace's release notes"});var $e=r.object({banner:r.union([ke,r.string().check(r.trim(),r.url())]),header:Oe,footer:Ae});t.add($e,{description:"The workspace's release config used during the release process"});var _e=r.optional(r.string().check(r.trim()));t.add(_e,{description:"A Twitter/X account associated with the organization/project"});var Le=r.optional(r.string().check(r.trim()));t.add(Le,{description:"A Discord account associated with the organization/project"});var Ie=r.optional(r.string().check(r.trim()));t.add(Ie,{description:"A Telegram account associated with the organization/project"});var Ne=r.optional(r.string().check(r.trim()));t.add(Ne,{description:"A Slack account associated with the organization/project"});var be=r.optional(r.string().check(r.trim()));t.add(be,{description:"A Medium account associated with the organization/project"});var ye=r.optional(r.string().check(r.trim()));t.add(ye,{description:"A GitHub account associated with the organization/project"});var we=r.object({twitter:_e,discord:Le,telegram:Ie,slack:Ne,medium:be,github:ye});t.add(we,{description:"The workspace's account config used to store various social media links"});var ze=r.optional(r.string().check(r.trim()));t.add(ze,{description:"The directory used to store the environment's cached file data"});var De=r.optional(r.string().check(r.trim()));t.add(De,{description:"The directory used to store the environment's data files"});var xe=r.optional(r.string().check(r.trim()));t.add(xe,{description:"The directory used to store the environment's configuration files"});var Ge=r.optional(r.string().check(r.trim()));t.add(Ge,{description:"The directory used to store the environment's temp files"});var Pe=r.optional(r.string().check(r.trim()));t.add(Pe,{description:"The directory used to store the environment's log files"});var Me=r._default(r.string().check(r.trim()),"dist");t.add(Me,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var Fe=r.object({cache:ze,data:De,config:xe,temp:Ge,log:Pe,build:Me});t.add(Fe,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var Ue=r._default(r.enum(["minimal","monorepo"]),"monorepo");t.add(Ue,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var We=r._default(r.string().check(r.trim()),y);t.add(We,{description:"The path to the workspace's error codes JSON file"});var Be=r.optional(r.url());t.add(Be,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var je=r.object({codesFile:We,url:Be});t.add(je,{description:"The workspace's error config used when creating error details during a system error"});var He=r.optional(r.string().check(r.trim(),r.toLowerCase()));t.add(He,{description:"The name of the organization"});var Ke=r.optional(r.string().check(r.trim()));t.add(Ke,{description:"A description of the organization"});var Ye=r.optional(r.url());t.add(Ye,{description:"A URL to the organization's logo image"});var Ze=r.optional(r.url());t.add(Ze,{description:"A URL to the organization's icon image"});var Ve=r.optional(r.url());t.add(Ve,{description:"A URL to a page that provides more information about the organization"});var Je=r.object({name:He,description:Ke,logo:Ye,icon:Ze,url:Ve});t.add(Je,{description:"The workspace's organization details"});var Xe=r._default(r.string().check(r.trim(),r.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");t.add(Xe,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var qe=r.string().check(r.trim(),r.toLowerCase());t.add(qe,{description:"The name of the workspace/project/service/package/scope using this configuration"});var Qe=r.string().check(r.trim(),r.toLowerCase());t.add(Qe,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var eo=r.union([Je,r.string().check(r.trim(),r.toLowerCase())]);t.add(eo,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var oo=r.string().check(r.trim(),r.toLowerCase());t.add(oo,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var ro=r._default(r.string().check(r.trim()),"Apache-2.0");t.add(ro,{description:"The license type of the package"});var so=r.optional(r.url());t.add(so,{description:"The homepage of the workspace"});var to=r.optional(r.url());t.add(to,{description:"The documentation site for the workspace"});var no=r.optional(r.url());t.add(no,{description:"The development portal site for the workspace"});var ao=r.optional(r.url());t.add(ao,{description:"The licensing site for the workspace"});var io=r.optional(r.url());t.add(io,{description:"The contact site for the workspace"});var co=r.optional(r.url());t.add(co,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var po=r._default(r.string().check(r.trim(),r.toLowerCase()),"main");t.add(po,{description:"The branch of the workspace"});var lo=r.optional(r.string().check(r.trim(),r.toLowerCase()));t.add(lo,{description:"A tag specifying the version pre-release identifier"});var mo=r.optional(r.string().check(r.trim(),r.toLowerCase()));t.add(mo,{description:"The owner of the package"});var uo=r._default(r.enum(["development","test","production"]).check(r.trim(),r.toLowerCase()),"production");t.add(uo,{description:"The current runtime environment mode for the package"});var go=r.string().check(r.trim(),r.toLowerCase());t.add(go,{description:"The root directory of the workspace"});var fo=r._default(r.boolean(),false);t.add(fo,{description:"Should all known types of workspace caching be skipped?"});var ho=r._default(r.enum(["npm","yarn","pnpm","bun"]),"npm");t.add(ho,{description:"The JavaScript/TypeScript package manager used by the repository"});var Eo=r._default(r.string().check(r.trim()),"America/New_York");t.add(Eo,{description:"The default timezone of the workspace"});var Ro=r._default(r.string().check(r.trim()),"en-US");t.add(Ro,{description:"The default locale of the workspace"});var To=r._default(r.enum(["silent","fatal","error","warn","success","info","performance","debug","trace","all"]),"info");t.add(To,{description:"The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."});var Co=r._default(r.boolean(),true);t.add(Co,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var vo=r._default(r.nullable(r.string().check(r.trim())),null);t.add(vo,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var oe=r._default(r.record(r.string(),r.any()),{});t.add(oe,{description:"Configuration of each used extension"});var So=r.object({$schema:Xe,extends:Ee,name:qe,variant:Ue,namespace:Qe,organization:eo,repository:oo,license:ro,homepage:so,docs:to,portal:no,licensing:ao,contact:io,support:co,branch:po,preid:lo,owner:mo,bot:Ce,release:$e,socials:we,error:je,mode:uo,workspaceRoot:go,skipCache:fo,directories:Fe,packageManager:ho,timezone:Eo,locale:Ro,logLevel:To,skipConfigLogging:Co,registry:fe,configFile:vo,colors:r.union([ee,he]),extensions:oe});t.add(oe,{description:"Storm Workspace config values used during various dev-ops processes. This type is a combination of the StormPackageConfig and StormProject types. It represents the config of the entire monorepo."});async function ko(e){let o=me,s,n,a,i,c,p=O(e);if(existsSync(join(p,"package.json"))){let u=await readFile(S(p,"package.json"),"utf8");if(u){let g=JSON.parse(u);g.name&&(a=g.name),g.namespace&&(i=g.namespace),g.repository&&(typeof g.repository=="string"?c=g.repository:g.repository.url&&(c=g.repository.url)),g.license&&(o=g.license),g.homepage&&(s=g.homepage),g.bugs&&(typeof g.bugs=="string"?n=g.bugs:g.bugs.url&&(n=g.bugs.url));}}return {workspaceRoot:p,name:a,namespace:i,repository:c,license:o,homepage:s,support:n}}function Oo(e){return !e.support&&e.contact&&(e.support=e.contact),!e.contact&&e.support&&(e.contact=e.support),e.homepage&&(e.docs||(e.docs=`${e.homepage}/docs`),e.license||(e.license=`${e.homepage}/license`),e.support||(e.support=`${e.homepage}/support`),e.contact||(e.contact=`${e.homepage}/contact`),(!e.error?.codesFile||!e?.error?.url)&&(e.error??={codesFile:y},e.homepage&&(e.error.url??=`${e.homepage}/errors`))),e}var $o=async(e,o,s={})=>{let n=o||O(o),a=await Promise.all([loadConfig({cwd:n,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:S(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...s}),loadConfig({cwd:n,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:S(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...s})]);return _o(a[0]??{},a[1]??{})},Lo=async(e,o=[])=>{let s=e||O(e),n=await $o("storm-workspace",s),a=n.config,i=n.configFile;if(a&&i&&Object.keys(a).length>0&&!a.skipConfigLogging&&L(`Found Storm configuration file "${i.includes(`${s}/`)?i.replace(`${s}/`,""):i}" at "${s}"`,{logLevel:"all"}),o&&o.length>0){let c=await Promise.all(o.map(p=>$o(p,s)));for(let p of c)p?.config&&p?.configFile&&Object.keys(p.config).length>0&&(!a.skipConfigLogging&&!p.config.skipConfigLogging&&L(`Found alternative configuration file "${p.configFile.includes(`${s}/`)?p.configFile.replace(`${s}/`,""):p.configFile}" at "${s}"`,{logLevel:"all"}),a=_o(p.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=i,a};var yo=()=>{let e="STORM_",o={extends:process.env[`${e}EXTENDS`]||void 0,name:process.env[`${e}NAME`]||void 0,variant:process.env[`${e}VARIANT`]||void 0,namespace:process.env[`${e}NAMESPACE`]||void 0,owner:process.env[`${e}OWNER`]||void 0,bot:{name:process.env[`${e}BOT_NAME`]||void 0,email:process.env[`${e}BOT_EMAIL`]||void 0},release:{banner:{url:process.env[`${e}RELEASE_BANNER_URL`]||void 0,alt:process.env[`${e}RELEASE_BANNER_ALT`]||void 0},header:process.env[`${e}RELEASE_HEADER`]||void 0,footer:process.env[`${e}RELEASE_FOOTER`]||void 0},error:{codesFile:process.env[`${e}ERROR_CODES_FILE`]||void 0,url:process.env[`${e}ERROR_URL`]||void 0},socials:{twitter:process.env[`${e}SOCIAL_TWITTER`]||void 0,discord:process.env[`${e}SOCIAL_DISCORD`]||void 0,telegram:process.env[`${e}SOCIAL_TELEGRAM`]||void 0,slack:process.env[`${e}SOCIAL_SLACK`]||void 0,medium:process.env[`${e}SOCIAL_MEDIUM`]||void 0,github:process.env[`${e}SOCIAL_GITHUB`]||void 0},organization:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]?process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]?{name:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`],description:process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||void 0,url:process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||void 0,logo:process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]||void 0,icon:process.env[`${e}ORG_ICON`]||process.env[`${e}ORGANIZATION_ICON`]||void 0}:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]:void 0,packageManager:process.env[`${e}PACKAGE_MANAGER`]||void 0,license:process.env[`${e}LICENSE`]||void 0,homepage:process.env[`${e}HOMEPAGE`]||void 0,docs:process.env[`${e}DOCS`]||void 0,portal:process.env[`${e}PORTAL`]||void 0,licensing:process.env[`${e}LICENSING`]||void 0,contact:process.env[`${e}CONTACT`]||void 0,support:process.env[`${e}SUPPORT`]||void 0,timezone:process.env[`${e}TIMEZONE`]||process.env.TZ||void 0,locale:process.env[`${e}LOCALE`]||process.env.LOCALE||void 0,configFile:process.env[`${e}WORKSPACE_CONFIG_FILE`]?m(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?m(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?m(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?m(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?m(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?m(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?m(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?m(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?m(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?m(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?m(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?m(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?m(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?m(process.env[`${e}BUILD_DIRECTORY`]):void 0},skipCache:process.env[`${e}SKIP_CACHE`]!==void 0?!!process.env[`${e}SKIP_CACHE`]:void 0,mode:(process.env[`${e}MODE`]??process.env.NODE_ENV??process.env.ENVIRONMENT)||void 0,repository:process.env[`${e}REPOSITORY`]||void 0,branch:process.env[`${e}BRANCH`]||void 0,preid:process.env[`${e}PRE_ID`]||void 0,registry:{github:process.env[`${e}REGISTRY_GITHUB`]||void 0,npm:process.env[`${e}REGISTRY_NPM`]||void 0,cargo:process.env[`${e}REGISTRY_CARGO`]||void 0,cyclone:process.env[`${e}REGISTRY_CYCLONE`]||void 0,container:process.env[`${e}REGISTRY_CONTAINER`]||void 0},logLevel:process.env[`${e}LOG_LEVEL`]!==null&&process.env[`${e}LOG_LEVEL`]!==void 0?process.env[`${e}LOG_LEVEL`]&&Number.isSafeInteger(Number.parseInt(process.env[`${e}LOG_LEVEL`]))?ne(Number.parseInt(process.env[`${e}LOG_LEVEL`])):process.env[`${e}LOG_LEVEL`]:void 0,skipConfigLogging:process.env[`${e}SKIP_CONFIG_LOGGING`]!==void 0?!!process.env[`${e}SKIP_CONFIG_LOGGING`]:void 0},s=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&ge.every(i=>!a.startsWith(`${e}COLOR_LIGHT_${i}`)&&!a.startsWith(`${e}COLOR_DARK_${i}`)));o.colors=s.length>0?s.reduce((a,i)=>(a[i]=Io(e,i),a),{}):Io(e),o.docs===de&&(o.homepage===I?o.docs=`${I}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===le&&(o.homepage===I?o.licensing=`${I}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let n=process.env[`${e}WORKSPACE_CONFIG`];if(n){let a=JSON.parse(n);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},Io=(e,o)=>{let s=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${s}LIGHT_BRAND`]||process.env[`${e}${s}DARK_BRAND`]?cr(e+s):ir(e+s)},ir=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {dark:process.env[`${e}DARK`],light:process.env[`${e}LIGHT`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},cr=e=>({light:No(`${e}_LIGHT_`),dark:No(`${e}_DARK_`)}),No=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {foreground:process.env[`${e}FOREGROUND`],background:process.env[`${e}BACKGROUND`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var pr=(e,o)=>{for(let s of Object.keys(o??{}))if(o[s]){let n=s?.replace(/([A-Z])+/g,i=>i?i[0]?.toUpperCase()+i.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(i=>i.toLowerCase())??[],a;if(n.length===0)return;n.length===1?a=n[0]?.toUpperCase()??"":a=n.reduce((i,c)=>`${i}_${c.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[s];}},Do=e=>{let o="STORM_";if(e.extends&&(process.env[`${o}EXTENDS`]=Array.isArray(e.extends)?JSON.stringify(e.extends):e.extends),e.name&&(process.env[`${o}NAME`]=e.name),e.variant&&(process.env[`${o}VARIANT`]=e.variant),e.namespace&&(process.env[`${o}NAMESPACE`]=e.namespace),e.owner&&(process.env[`${o}OWNER`]=e.owner),e.bot&&(process.env[`${o}BOT_NAME`]=e.bot.name,process.env[`${o}BOT_EMAIL`]=e.bot.email),e.error&&(process.env[`${o}ERROR_CODES_FILE`]=e.error.codesFile,process.env[`${o}ERROR_URL`]=e.error.url),e.release&&(e.release.banner&&(typeof e.release.banner=="string"?(process.env[`${o}RELEASE_BANNER`]=e.release.banner,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner):(process.env[`${o}RELEASE_BANNER`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_ALT`]=e.release.banner.alt)),process.env[`${o}RELEASE_HEADER`]=e.release.header,process.env[`${o}RELEASE_FOOTER`]=e.release.footer),e.socials&&(e.socials.twitter&&(process.env[`${o}SOCIAL_TWITTER`]=e.socials.twitter),e.socials.discord&&(process.env[`${o}SOCIAL_DISCORD`]=e.socials.discord),e.socials.telegram&&(process.env[`${o}SOCIAL_TELEGRAM`]=e.socials.telegram),e.socials.slack&&(process.env[`${o}SOCIAL_SLACK`]=e.socials.slack),e.socials.medium&&(process.env[`${o}SOCIAL_MEDIUM`]=e.socials.medium),e.socials.github&&(process.env[`${o}SOCIAL_GITHUB`]=e.socials.github)),e.organization&&(typeof e.organization=="string"?(process.env[`${o}ORG`]=e.organization,process.env[`${o}ORG_NAME`]=e.organization,process.env[`${o}ORGANIZATION`]=e.organization,process.env[`${o}ORGANIZATION_NAME`]=e.organization):(process.env[`${o}ORG`]=e.organization.name,process.env[`${o}ORG_NAME`]=e.organization.name,process.env[`${o}ORGANIZATION`]=e.organization.name,process.env[`${o}ORGANIZATION_NAME`]=e.organization.name,e.organization.url&&(process.env[`${o}ORG_URL`]=e.organization.url,process.env[`${o}ORGANIZATION_URL`]=e.organization.url),e.organization.description&&(process.env[`${o}ORG_DESCRIPTION`]=e.organization.description,process.env[`${o}ORGANIZATION_DESCRIPTION`]=e.organization.description),e.organization.logo&&(process.env[`${o}ORG_LOGO`]=e.organization.logo,process.env[`${o}ORGANIZATION_LOGO`]=e.organization.logo),e.organization.icon&&(process.env[`${o}ORG_ICON`]=e.organization.icon,process.env[`${o}ORGANIZATION_ICON`]=e.organization.icon))),e.packageManager&&(process.env[`${o}PACKAGE_MANAGER`]=e.packageManager),e.license&&(process.env[`${o}LICENSE`]=e.license),e.homepage&&(process.env[`${o}HOMEPAGE`]=e.homepage),e.docs&&(process.env[`${o}DOCS`]=e.docs),e.portal&&(process.env[`${o}PORTAL`]=e.portal),e.licensing&&(process.env[`${o}LICENSING`]=e.licensing),e.contact&&(process.env[`${o}CONTACT`]=e.contact),e.support&&(process.env[`${o}SUPPORT`]=e.support),e.timezone&&(process.env[`${o}TIMEZONE`]=e.timezone,process.env.TZ=e.timezone,process.env.DEFAULT_TIMEZONE=e.timezone,process.env.TIMEZONE=e.timezone),e.locale&&(process.env[`${o}LOCALE`]=e.locale,process.env.DEFAULT_LOCALE=e.locale,process.env.LOCALE=e.locale,process.env.LANG=e.locale?`${e.locale.replaceAll("-","_")}.UTF-8`:"en_US.UTF-8"),e.configFile&&(process.env[`${o}WORKSPACE_CONFIG_FILE`]=m(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=m(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=m(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=m(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=m(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=m(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=m(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=m(e.directories.build),process.env[`${o}BUILD_DIRECTORY`]=process.env[`${o}BUILD_DIR`])),e.skipCache!==void 0&&(process.env[`${o}SKIP_CACHE`]=String(e.skipCache),e.skipCache&&(process.env.NX_SKIP_NX_CACHE??=String(e.skipCache),process.env.NX_CACHE_PROJECT_GRAPH??=String(e.skipCache))),e.mode&&(process.env[`${o}MODE`]=e.mode,process.env.NODE_ENV=e.mode,process.env.ENVIRONMENT=e.mode),e.colors?.base?.light||e.colors?.base?.dark)for(let s of Object.keys(e.colors))wo(`${o}COLOR_${s}_`,e.colors[s]);else wo(`${o}COLOR_`,e.colors);e.repository&&(process.env[`${o}REPOSITORY`]=e.repository),e.branch&&(process.env[`${o}BRANCH`]=e.branch),e.preid&&(process.env[`${o}PRE_ID`]=String(e.preid)),e.registry&&(e.registry.github&&(process.env[`${o}REGISTRY_GITHUB`]=String(e.registry.github)),e.registry.npm&&(process.env[`${o}REGISTRY_NPM`]=String(e.registry.npm)),e.registry.cargo&&(process.env[`${o}REGISTRY_CARGO`]=String(e.registry.cargo)),e.registry.cyclone&&(process.env[`${o}REGISTRY_CYCLONE`]=String(e.registry.cyclone)),e.registry.container&&(process.env[`${o}REGISTRY_CONTAINER`]=String(e.registry.container))),e.logLevel&&(process.env[`${o}LOG_LEVEL`]=String(e.logLevel),process.env.LOG_LEVEL=String(e.logLevel),process.env.NX_VERBOSE_LOGGING=String(A(e.logLevel)>=d.DEBUG),process.env.RUST_BACKTRACE=A(e.logLevel)>=d.DEBUG?"full":"none"),e.skipConfigLogging!==void 0&&(process.env[`${o}SKIP_CONFIG_LOGGING`]=String(e.skipConfigLogging)),process.env[`${o}WORKSPACE_CONFIG`]=JSON.stringify(e);for(let s of Object.keys(e.extensions??{}))e.extensions[s]&&Object.keys(e.extensions[s])&&pr(s,e.extensions[s]);},wo=(e,o)=>o?.light?.brand||o?.dark?.brand?lr(e,o):dr(e,o),dr=(e,o)=>{if(o.dark&&(process.env[`${e}DARK`]=o.dark),o.light&&(process.env[`${e}LIGHT`]=o.light),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];},lr=(e,o)=>({light:zo(`${e}LIGHT_`,o.light),dark:zo(`${e}DARK_`,o.dark)}),zo=(e,o)=>{if(o.foreground&&(process.env[`${e}FOREGROUND`]=o.foreground),o.background&&(process.env[`${e}BACKGROUND`]=o.background),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];};var N,ur=async(e,o,s,n=false,a=true)=>{let i;if(!N?.data||!N?.timestamp||N.timestamp<Date.now()-8e3){let c=s;c||(c=O());let p=yo(),u=await Lo(c);if(!u&&(n||ae("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n",{logLevel:"all"}),a===false))return;let g=await ko(c),b=_o(p,u,g);b.variant||(b.variant=existsSync(S(c,"nx.json"))||existsSync(S(c,".nx"))||existsSync(S(c,"lerna.json"))||existsSync(S(c,"turbo.json"))?"monorepo":"minimal");try{let _=await Promise.resolve(So._zod.parse({value:b,issues:[]},{async:!0}));i=Oo(_.value),i.workspaceRoot??=c;}catch(_){throw new Error(`Failed to parse Storm Workspace configuration${_?.message?`: ${_.message}`:""}
27
27
 
28
- Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${R(w)}`,{cause:L})}}else i=N.data;return N={timestamp:Date.now(),data:i},i},Do=async(e,o=false)=>{let s=await fr(void 0,void 0,e,o,true);return xo(s),!o&&!s.skipConfigLogging&&A(`\u2699\uFE0F Using Storm Workspace configuration:
29
- ${R(s)}`,s),s};function Er(e,o=false){return Do(e,o)}function Go(e=true,o={}){let s=o.workspaceRoot;return s||(s=T(o.cwd)),Er(s,e)}function Po(e=T(process.cwd())){let o=C(e,"pnpm-workspace.yaml");if(!existsSync(o))throw new Error(`No \`pnpm-workspace.yaml\` file found in workspace root (searched in: ${o}).`);return o}async function Rt(e=T(process.cwd())){let o=await readFile(Po(e),"utf8");if(o)return parse(o)}async function Tt(e,o=T(process.cwd())){let s=await Go(),t=stringify(e);A(`Writing updated pnpm-workspace.yaml file to workspace root: ${t}`,s),await writeFile(Po(o),t);}export{ae as a,Jr as b,A as c,C as d,T as e,Go as f,Po as g,Rt as h,Tt as i};
28
+ Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${R(b)}`,{cause:_})}}else i=N.data;return N={timestamp:Date.now(),data:i},i},xo=async(e,o=false)=>{let s=await ur(void 0,void 0,e,o,true);return Do(s),!o&&!s.skipConfigLogging&&L(`\u2699\uFE0F Using Storm Workspace configuration:
29
+ ${R(s)}`,s),s};function fr(e,o=false){return xo(e,o)}function st(e=true,o={}){let s=o.workspaceRoot;return s||(s=O(o.cwd)),fr(s,e)}export{ae as a,Br as b,L as c,S as d,O as e,st as f};
@@ -1 +1 @@
1
- 'use strict';var chunkR7G6VIBE_cjs=require('./chunk-R7G6VIBE.cjs'),chunkDCCUOXBC_cjs=require('./chunk-DCCUOXBC.cjs'),devkit=require('@nx/devkit'),fs=require('fs'),promises=require('fs/promises'),prettier=require('prettier'),N=require('prettier-plugin-packagejson');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var N__default=/*#__PURE__*/_interopDefault(N);async function x(c=process.cwd(),i=chunkDCCUOXBC_cjs.e(c)){let m=chunkDCCUOXBC_cjs.d(c,"package.json"),l=await promises.readFile(m,"utf8");if(!l)throw new Error("No package.json file found in package root: "+c);let p=await chunkR7G6VIBE_cjs.b(i),a=JSON.parse(l),g=chunkDCCUOXBC_cjs.d(i,"pnpm-workspace.yaml");if(!fs.existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=devkit.readCachedProjectGraph();}catch{await devkit.createProjectGraphAsync(),n=devkit.readCachedProjectGraph();}let d={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=chunkDCCUOXBC_cjs.d(i,o.data.root,"package.json");if(fs.existsSync(e)){let t=await promises.readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d[e])o[e]=`^${d[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return promises.writeFile(m,await prettier.format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:[N__default.default]}))}exports.a=x;
1
+ 'use strict';var chunkVDMRS6ZA_cjs=require('./chunk-VDMRS6ZA.cjs'),chunkGPEVYA4Z_cjs=require('./chunk-GPEVYA4Z.cjs'),devkit=require('@nx/devkit'),fs=require('fs'),promises=require('fs/promises'),prettier=require('prettier'),N=require('prettier-plugin-packagejson');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var N__default=/*#__PURE__*/_interopDefault(N);async function x(c=process.cwd(),i=chunkGPEVYA4Z_cjs.e(c)){let m=chunkGPEVYA4Z_cjs.d(c,"package.json"),l=await promises.readFile(m,"utf8");if(!l)throw new Error("No package.json file found in package root: "+c);let p=await chunkVDMRS6ZA_cjs.b(i),a=JSON.parse(l),g=chunkGPEVYA4Z_cjs.d(i,"pnpm-workspace.yaml");if(!fs.existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=devkit.readCachedProjectGraph();}catch{await devkit.createProjectGraphAsync(),n=devkit.readCachedProjectGraph();}let d={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=chunkGPEVYA4Z_cjs.d(i,o.data.root,"package.json");if(fs.existsSync(e)){let t=await promises.readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d[e])o[e]=`^${d[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return promises.writeFile(m,await prettier.format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:[N__default.default]}))}exports.a=x;
@@ -1,29 +1,29 @@
1
- 'use strict';var c12=require('c12'),$o=require('defu');require('date-fns/formatDistanceToNow');var Po=require('chalk'),fs=require('fs'),path=require('path'),r=require('zod/v4/mini'),promises=require('fs/promises'),yaml=require('yaml');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var $o__default=/*#__PURE__*/_interopDefault($o);var Po__default=/*#__PURE__*/_interopDefault(Po);var r__namespace=/*#__PURE__*/_interopNamespace(r);var d={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,PERFORMANCE:50,DEBUG:60,TRACE:70,ALL:100},l={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",PERFORMANCE:"performance",DEBUG:"debug",TRACE:"trace",ALL:"all"};var C={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",debug:"#8afafc",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26",performance:"#80fd74"}};var Fo={hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),white:e=>e,whiteBright:e=>e,gray:e=>e,bold:{hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),whiteBright:e=>e,white:e=>e},dim:{hex:e=>o=>o,gray:e=>e}},re=()=>{let e=Po__default.default;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Fo),e};function se(){return process.platform!=="win32"?process.env.TERM!=="linux":!!process.env.WT_SESSION||!!process.env.TERMINUS_SUBLIME||process.env.ConEmuTask==="{cmd::Cmder}"||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"}var k=(e,o)=>se()?e:o,v={[l.ERROR]:k("\u2718","\xD7"),[l.FATAL]:k("\u{1F571}","\xD7"),[l.WARN]:k("\u26A0","\u203C"),[l.INFO]:k("\u2139","i"),[l.PERFORMANCE]:k("\u23F1","\u23F1"),[l.SUCCESS]:k("\u2714","\u221A"),[l.DEBUG]:k("\u{1F6E0}","D"),[l.TRACE]:k("\u2699","T"),[l.ALL]:k("\u2709","\u2192")};var S=(e=false,o=new Date)=>e?`${o.toLocaleDateString()} ${o.toLocaleTimeString()}`:`${o.toLocaleTimeString()}`;var A=e=>{switch(e){case "all":return d.ALL;case "trace":return d.TRACE;case "debug":return d.DEBUG;case "performance":return d.PERFORMANCE;case "info":return d.INFO;case "warn":return d.WARN;case "error":return d.ERROR;case "fatal":return d.FATAL;case "silent":return d.SILENT;default:return d.INFO}},te=(e=d.INFO)=>e>=d.ALL?l.ALL:e>=d.TRACE?l.TRACE:e>=d.DEBUG?l.DEBUG:e>=d.PERFORMANCE?l.PERFORMANCE:e>=d.INFO?l.INFO:e>=d.WARN?l.WARN:e>=d.ERROR?l.ERROR:e>=d.FATAL?l.FATAL:e<=d.SILENT?l.SILENT:l.INFO;var J=(e=d.INFO,o={},s={})=>{let{chalk:t=re(),fullDateTime:a=false,hideDateTime:i=false}=s,c=!o.colors?.dark&&!o.colors?.base&&!o.colors?.base?.dark?C:o.colors?.dark&&typeof o.colors.dark=="string"?o.colors:o.colors?.base?.dark&&typeof o.colors.base.dark=="string"?o.colors.base.dark:o.colors?.base?o.colors?.base:C,p=o.logLevel||process.env.STORM_LOG_LEVEL||l.INFO;return e>A(p)||e<=d.SILENT||A(p)<=d.SILENT?u=>{}:typeof e=="number"&&d.FATAL>=e?u=>{console.error(`
2
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.fatal??C.dark.fatal)(`[${v[l.FATAL]} Fatal] `)}${t.bold.whiteBright(E(u))}
1
+ 'use strict';require('date-fns/formatDistanceToNow');var xo=require('chalk'),fs=require('fs'),path=require('path'),r=require('zod/v4/mini'),$o=require('defu'),c12=require('c12'),promises=require('fs/promises');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var xo__default=/*#__PURE__*/_interopDefault(xo);var r__namespace=/*#__PURE__*/_interopNamespace(r);var $o__default=/*#__PURE__*/_interopDefault($o);var d={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,PERFORMANCE:50,DEBUG:60,TRACE:70,ALL:100},l={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",PERFORMANCE:"performance",DEBUG:"debug",TRACE:"trace",ALL:"all"};var R={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",debug:"#8afafc",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26",performance:"#80fd74"}};var Go={hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),white:e=>e,whiteBright:e=>e,gray:e=>e,bold:{hex:e=>o=>o,bgHex:e=>({whiteBright:o=>o,white:o=>o}),whiteBright:e=>e,white:e=>e},dim:{hex:e=>o=>o,gray:e=>e}},re=()=>{let e=xo__default.default;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Go),e};function se(){return process.platform!=="win32"?process.env.TERM!=="linux":!!process.env.WT_SESSION||!!process.env.TERMINUS_SUBLIME||process.env.ConEmuTask==="{cmd::Cmder}"||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"}var S=(e,o)=>se()?e:o,T={[l.ERROR]:S("\u2718","\xD7"),[l.FATAL]:S("\u{1F571}","\xD7"),[l.WARN]:S("\u26A0","\u203C"),[l.INFO]:S("\u2139","i"),[l.PERFORMANCE]:S("\u23F1","\u23F1"),[l.SUCCESS]:S("\u2714","\u221A"),[l.DEBUG]:S("\u{1F6E0}","D"),[l.TRACE]:S("\u2699","T"),[l.ALL]:S("\u2709","\u2192")};var C=(e=false,o=new Date)=>e?`${o.toLocaleDateString()} ${o.toLocaleTimeString()}`:`${o.toLocaleTimeString()}`;var O=e=>{switch(e){case "all":return d.ALL;case "trace":return d.TRACE;case "debug":return d.DEBUG;case "performance":return d.PERFORMANCE;case "info":return d.INFO;case "warn":return d.WARN;case "error":return d.ERROR;case "fatal":return d.FATAL;case "silent":return d.SILENT;default:return d.INFO}},te=(e=d.INFO)=>e>=d.ALL?l.ALL:e>=d.TRACE?l.TRACE:e>=d.DEBUG?l.DEBUG:e>=d.PERFORMANCE?l.PERFORMANCE:e>=d.INFO?l.INFO:e>=d.WARN?l.WARN:e>=d.ERROR?l.ERROR:e>=d.FATAL?l.FATAL:e<=d.SILENT?l.SILENT:l.INFO;var J=(e=d.INFO,o={},s={})=>{let{chalk:n=re(),fullDateTime:a=false,hideDateTime:i=false}=s,c=!o.colors?.dark&&!o.colors?.base&&!o.colors?.base?.dark?R:o.colors?.dark&&typeof o.colors.dark=="string"?o.colors:o.colors?.base?.dark&&typeof o.colors.base.dark=="string"?o.colors.base.dark:o.colors?.base?o.colors?.base:R,p=o.logLevel||process.env.STORM_LOG_LEVEL||l.INFO;return e>O(p)||e<=d.SILENT||O(p)<=d.SILENT?u=>{}:typeof e=="number"&&d.FATAL>=e?u=>{console.error(`
2
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.fatal??R.dark.fatal)(`[${T[l.FATAL]} Fatal] `)}${n.bold.whiteBright(E(u))}
3
3
  `);}:typeof e=="number"&&d.ERROR>=e?u=>{console.error(`
4
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.danger??C.dark.danger)(`[${v[l.ERROR]} Error] `)}${t.bold.whiteBright(E(u))}
4
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.danger??R.dark.danger)(`[${T[l.ERROR]} Error] `)}${n.bold.whiteBright(E(u))}
5
5
  `);}:typeof e=="number"&&d.WARN>=e?u=>{console.warn(`
6
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.warning??C.dark.warning)(`[${v[l.WARN]} Warn] `)}${t.bold.whiteBright(E(u))}
6
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.warning??R.dark.warning)(`[${T[l.WARN]} Warn] `)}${n.bold.whiteBright(E(u))}
7
7
  `);}:typeof e=="number"&&d.SUCCESS>=e?u=>{console.info(`
8
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.success??C.dark.success)(`[${v[l.SUCCESS]} Success] `)}${t.bold.whiteBright(E(u))}
8
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.success??R.dark.success)(`[${T[l.SUCCESS]} Success] `)}${n.bold.whiteBright(E(u))}
9
9
  `);}:typeof e=="number"&&d.INFO>=e?u=>{console.info(`
10
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.info??C.dark.info)(`[${v[l.INFO]} Info] `)}${t.bold.whiteBright(E(u))}
10
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.info??R.dark.info)(`[${T[l.INFO]} Info] `)}${n.bold.whiteBright(E(u))}
11
11
  `);}:typeof e=="number"&&d.PERFORMANCE>=e?u=>{console.debug(`
12
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.performance??C.dark.performance)(`[${v[l.PERFORMANCE]} Performance] `)}${t.bold.whiteBright(E(u))}
12
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.performance??R.dark.performance)(`[${T[l.PERFORMANCE]} Performance] `)}${n.bold.whiteBright(E(u))}
13
13
  `);}:typeof e=="number"&&d.DEBUG>=e?u=>{console.debug(`
14
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.debug??C.dark.debug)(`[${v[l.DEBUG]} Debug] `)}${t.bold.whiteBright(E(u))}
14
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.debug??R.dark.debug)(`[${T[l.DEBUG]} Debug] `)}${n.bold.whiteBright(E(u))}
15
15
  `);}:typeof e=="number"&&d.TRACE>=e?u=>{console.debug(`
16
- ${i?"":`${t.gray(S(a))} `}${t.hex("#bbbbbb")(`[${v[l.TRACE]} Trace] `)}${t.bold.whiteBright(E(u))}
16
+ ${i?"":`${n.gray(C(a))} `}${n.hex("#bbbbbb")(`[${T[l.TRACE]} Trace] `)}${n.bold.whiteBright(E(u))}
17
17
  `);}:u=>{console.log(`
18
- ${i?"":`${t.gray(S(a))} `}${t.hex(c.brand??C.dark.brand)(`[${v[l.ALL]} System] `)}${t.bold.whiteBright(E(u))}
19
- `);}};var ne=(e,o)=>J(d.WARN,o)(e);var Vr=(e,o)=>J(d.DEBUG,o)(e),O=(e,o)=>J(d.TRACE,o)(e);var Mo=10,E=(e,o={},s=0)=>{if(s>Mo)return "<max depth>";let t=o.prefix??"",a=o.skip??[],i=o.sort??true;return typeof e>"u"||e===null?"<empty>":typeof e=="string"?e||"<empty string>":Array.isArray(e)?`
20
- ${e.sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map((c,p)=>` ${t}> #${p} = ${E(c,{prefix:`${t}--`,skip:a,sort:i},s+1)}`).join(`
18
+ ${i?"":`${n.gray(C(a))} `}${n.hex(c.brand??R.dark.brand)(`[${T[l.ALL]} System] `)}${n.bold.whiteBright(E(u))}
19
+ `);}};var ne=(e,o)=>J(d.WARN,o)(e);var Wr=(e,o)=>J(d.DEBUG,o)(e),_=(e,o)=>J(d.TRACE,o)(e);var Po=10,E=(e,o={},s=0)=>{if(s>Po)return "<max depth>";let n=o.prefix??"",a=o.skip??[],i=o.sort??true;return typeof e>"u"||e===null?"<empty>":typeof e=="string"?e||"<empty string>":Array.isArray(e)?`
20
+ ${e.sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map((c,p)=>` ${n}> #${p} = ${E(c,{prefix:`${n}--`,skip:a,sort:i},s+1)}`).join(`
21
21
  `)}`:typeof e=="object"&&e?`
22
- ${Object.keys(e).filter(c=>typeof c!="string"||!a.map(p=>p.toLowerCase().trim()).includes(c.toLowerCase().trim())).sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map(c=>` ${t}> ${c} = ${Wo(e[c])?"<function>":typeof e[c]=="object"&&e[c]?Object.keys(e[c]).filter(p=>typeof p!="string"||!a.map(u=>u.toLowerCase().trim()).includes(p.toLowerCase().trim())).length===0?"{}":E(e[c],{prefix:`${t}--`,skip:a,sort:i},s+1):e[c]}`).join(`
23
- `)}`:String(e)},Wo=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Uo=/^[A-Za-z]:\//;function jo(e=""){return e&&e.replace(/\\/g,"/").replace(Uo,o=>o.toUpperCase())}var Bo=/^[/\\]{2}/,Ho=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,Ko=/^[A-Za-z]:$/;var m=function(e){if(!e||e.length===0)return ".";e=jo(e);let o=e?.match(Bo),s=ae(e),t=e[e.length-1]==="/";return e=Yo(e,!s),e.length===0?s?"/":t?"./":".":(t&&(e+="/"),Ko.test(e)&&(e+="/"),o?s?`//${e}`:`//./${e}`:s&&!ae(e)?`/${e}`:e)},T=function(...e){let o="";for(let s of e)if(s)if(o.length>0){let t=o[o.length-1]==="/",a=s[0]==="/";t&&a?o+=s.slice(1):o+=t||a?s:`/${s}`;}else o+=s;return m(o)};function Yo(e,o){let s="",t=0,a=-1,i=0,c=null;for(let p=0;p<=e.length;++p){if(p<e.length)c=e[p];else {if(c==="/")break;c="/";}if(c==="/"){if(!(a===p-1||i===1))if(i===2){if(s.length<2||t!==2||s[s.length-1]!=="."||s[s.length-2]!=="."){if(s.length>2){let u=s.lastIndexOf("/");u===-1?(s="",t=0):(s=s.slice(0,u),t=s.length-1-s.lastIndexOf("/")),a=p,i=0;continue}else if(s.length>0){s="",t=0,a=p,i=0;continue}}o&&(s+=s.length>0?"/..":"..",t=2);}else s.length>0?s+=`/${e.slice(a+1,p)}`:s=e.slice(a+1,p),t=p-a-1;a=p,i=0;}else c==="."&&i!==-1?++i:i=-1;}return s}var ae=function(e){return Ho.test(e)};var Zo=30,Vo=0;function q(e,o=[],s=[]){let t=e??process.cwd();if(s.some(a=>fs.existsSync(path.join(t,a)))||o.some(a=>fs.existsSync(path.join(t,a))))return t;if(t!=="/"&&Vo++<Zo){let a=path.join(t,"..");return q(a,o,s)}}var ce=["storm-workspace.json","storm-workspace.yaml","storm-workspace.yml","storm-workspace.js","storm-workspace.ts",".storm-workspace.json",".storm-workspace.yaml",".storm-workspace.yml",".storm-workspace.js",".storm-workspace.ts","lerna.json","nx.json","turbo.json","npm-workspace.json","yarn-workspace.json","pnpm-workspace.json","npm-workspace.yaml","yarn-workspace.yaml","pnpm-workspace.yaml","npm-workspace.yml","yarn-workspace.yml","pnpm-workspace.yml","npm-lock.json","yarn-lock.json","pnpm-lock.json","npm-lock.yaml","yarn-lock.yaml","pnpm-lock.yaml","npm-lock.yml","yarn-lock.yml","pnpm-lock.yml","bun.lockb","bun.lock","bunfig.toml"],Jo=[".storm-workspace",".nx",".git",".github",".vscode",".verdaccio"];function Xo(e){return process.env.STORM_WORKSPACE_ROOT||process.env.NX_WORKSPACE_ROOT_PATH?m(process.env.STORM_WORKSPACE_ROOT??process.env.NX_WORKSPACE_ROOT_PATH):m(q(e??process.cwd(),ce,Jo))}function R(e){let o=Xo(e);if(!o)throw new Error(`Cannot find workspace root upwards from known path. Files search list includes:
22
+ ${Object.keys(e).filter(c=>typeof c!="string"||!a.map(p=>p.toLowerCase().trim()).includes(c.toLowerCase().trim())).sort(i?(c,p)=>!c&&!p?0:c?p?String(c).localeCompare(String(p)):-1:1:void 0).map(c=>` ${n}> ${c} = ${Mo(e[c])?"<function>":typeof e[c]=="object"&&e[c]?Object.keys(e[c]).filter(p=>typeof p!="string"||!a.map(u=>u.toLowerCase().trim()).includes(p.toLowerCase().trim())).length===0?"{}":E(e[c],{prefix:`${n}--`,skip:a,sort:i},s+1):e[c]}`).join(`
23
+ `)}`:String(e)},Mo=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Fo=/^[A-Za-z]:\//;function Uo(e=""){return e&&e.replace(/\\/g,"/").replace(Fo,o=>o.toUpperCase())}var Wo=/^[/\\]{2}/,Bo=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,jo=/^[A-Za-z]:$/;var m=function(e){if(!e||e.length===0)return ".";e=Uo(e);let o=e?.match(Wo),s=ae(e),n=e[e.length-1]==="/";return e=Ho(e,!s),e.length===0?s?"/":n?"./":".":(n&&(e+="/"),jo.test(e)&&(e+="/"),o?s?`//${e}`:`//./${e}`:s&&!ae(e)?`/${e}`:e)},v=function(...e){let o="";for(let s of e)if(s)if(o.length>0){let n=o[o.length-1]==="/",a=s[0]==="/";n&&a?o+=s.slice(1):o+=n||a?s:`/${s}`;}else o+=s;return m(o)};function Ho(e,o){let s="",n=0,a=-1,i=0,c=null;for(let p=0;p<=e.length;++p){if(p<e.length)c=e[p];else {if(c==="/")break;c="/";}if(c==="/"){if(!(a===p-1||i===1))if(i===2){if(s.length<2||n!==2||s[s.length-1]!=="."||s[s.length-2]!=="."){if(s.length>2){let u=s.lastIndexOf("/");u===-1?(s="",n=0):(s=s.slice(0,u),n=s.length-1-s.lastIndexOf("/")),a=p,i=0;continue}else if(s.length>0){s="",n=0,a=p,i=0;continue}}o&&(s+=s.length>0?"/..":"..",n=2);}else s.length>0?s+=`/${e.slice(a+1,p)}`:s=e.slice(a+1,p),n=p-a-1;a=p,i=0;}else c==="."&&i!==-1?++i:i=-1;}return s}var ae=function(e){return Bo.test(e)};var Ko=30,Yo=0;function q(e,o=[],s=[]){let n=e??process.cwd();if(s.some(a=>fs.existsSync(path.join(n,a)))||o.some(a=>fs.existsSync(path.join(n,a))))return n;if(n!=="/"&&Yo++<Ko){let a=path.join(n,"..");return q(a,o,s)}}var ce=["storm-workspace.json","storm-workspace.yaml","storm-workspace.yml","storm-workspace.js","storm-workspace.ts",".storm-workspace.json",".storm-workspace.yaml",".storm-workspace.yml",".storm-workspace.js",".storm-workspace.ts","lerna.json","nx.json","turbo.json","npm-workspace.json","yarn-workspace.json","pnpm-workspace.json","npm-workspace.yaml","yarn-workspace.yaml","pnpm-workspace.yaml","npm-workspace.yml","yarn-workspace.yml","pnpm-workspace.yml","npm-lock.json","yarn-lock.json","pnpm-lock.json","npm-lock.yaml","yarn-lock.yaml","pnpm-lock.yaml","npm-lock.yml","yarn-lock.yml","pnpm-lock.yml","bun.lockb","bun.lock","bunfig.toml"],Zo=[".storm-workspace",".nx",".git",".github",".vscode",".verdaccio"];function Vo(e){return process.env.STORM_WORKSPACE_ROOT||process.env.NX_WORKSPACE_ROOT_PATH?m(process.env.STORM_WORKSPACE_ROOT??process.env.NX_WORKSPACE_ROOT_PATH):m(q(e??process.cwd(),ce,Zo))}function k(e){let o=Vo(e);if(!o)throw new Error(`Cannot find workspace root upwards from known path. Files search list includes:
24
24
  ${ce.join(`
25
25
  `)}
26
- Path: ${e||process.cwd()}`);return o}var pe="https://docs.stormsoftware.com",L="https://stormsoftware.com";var de="https://stormsoftware.com/license",le="Apache-2.0";var w="tools/errors/codes.json",me="The workspace's banner image",ue=["dark","light","base","brand","alternate","accent","link","success","discovery","info","warning","danger","fatal","performance","positive","negative"];var n=r__namespace.registry(),h=r__namespace.string().check(r__namespace.length(7),r__namespace.toLowerCase(),r__namespace.regex(/^#([0-9a-f]{3}){1,2}$/i),r__namespace.trim());n.add(h,{description:"A base schema for describing the format of colors"});var b=r__namespace._default(h,"#1e2124");n.add(b,{description:"The dark background color of the workspace"});var y=r__namespace._default(h,"#cbd5e1");n.add(y,{description:"The light background color of the workspace"});var z=r__namespace._default(h,"#1fb2a6");n.add(z,{description:"The primary brand specific color of the workspace"});var x=r__namespace.optional(h);n.add(x,{description:"The alternate brand specific color of the workspace"});var D=r__namespace.optional(h);n.add(D,{description:"The secondary brand specific color of the workspace"});var G=r__namespace._default(h,"#3fa6ff");n.add(G,{description:"The color used to display hyperlink text"});var P=r__namespace._default(h,"#818cf8");n.add(P,{description:"The second brand specific color of the workspace"});var F=r__namespace._default(h,"#45b27e");n.add(F,{description:"The success color of the workspace"});var M=r__namespace._default(h,"#38bdf8");n.add(M,{description:"The informational color of the workspace"});var W=r__namespace._default(h,"#8afafc");n.add(W,{description:"The debug color of the workspace"});var U=r__namespace._default(h,"#f3d371");n.add(U,{description:"The warning color of the workspace"});var j=r__namespace._default(h,"#d8314a");n.add(j,{description:"The danger color of the workspace"});var B=r__namespace.optional(h);n.add(B,{description:"The fatal color of the workspace"});var H=r__namespace._default(h,"#80fd74");n.add(H,{description:"The performance color of the workspace"});var K=r__namespace._default(h,"#4ade80");n.add(K,{description:"The positive number color of the workspace"});var Y=r__namespace._default(h,"#ef4444");n.add(Y,{description:"The negative number color of the workspace"});var Z=r__namespace.optional(r__namespace.array(h));n.add(Z,{description:"The color stops for the base gradient color pattern used in the workspace"});var or=r__namespace.object({foreground:y,background:b,brand:z,alternate:x,accent:D,link:G,discovery:P,success:F,info:M,debug:W,warning:U,danger:j,fatal:B,performance:H,positive:K,negative:Y,gradient:Z}),rr=r__namespace.object({foreground:b,background:y,brand:z,alternate:x,accent:D,link:G,discovery:P,success:F,info:M,debug:W,warning:U,danger:j,fatal:B,performance:H,positive:K,negative:Y,gradient:Z}),sr=r__namespace.object({dark:or,light:rr}),tr=r__namespace.object({dark:b,light:y,brand:z,alternate:x,accent:D,link:G,discovery:P,success:F,info:M,debug:W,warning:U,danger:j,fatal:B,performance:H,positive:K,negative:Y,gradient:Z}),$=r__namespace.optional(r__namespace.url());n.add($,{description:"A remote registry URL used to publish distributable packages"});var ge=r__namespace._default(r__namespace.object({github:$,npm:$,cargo:$,cyclone:$,container:$}),{});n.add(ge,{description:"A list of remote registry URLs used by Storm Software"});var Q=r__namespace.union([tr,sr]);n.add(Q,{description:"Colors used for various workspace elements"});var fe=r__namespace.record(r__namespace.union([r__namespace.union([r__namespace.literal("base"),r__namespace.string()]),r__namespace.string()]),Q);n.add(fe,{description:"Storm theme config values used for styling various package elements"});var he=r__namespace.optional(r__namespace.union([r__namespace.string().check(r__namespace.trim()),r__namespace.array(r__namespace.string().check(r__namespace.trim()))]));n.add(he,{description:"The path to a base config file to use as a configuration preset file. Documentation can be found at https://github.com/unjs/c12#extending-configuration."});var Ee=r__namespace.string().check(r__namespace.trim());n.add(Ee,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var Re=r__namespace.string().check(r__namespace.trim());n.add(Re,{description:"The email of the workspace bot"});var Te=r__namespace.object({name:Ee,email:Re});n.add(Te,{description:"The workspace's bot user's config used to automated various operations tasks"});var Ce=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.url()));n.add(Ce,{description:"A URL to a banner image used to display the workspace's release"});var ve=r__namespace._default(r__namespace.string().check(r__namespace.trim()),me);n.add(ve,{description:"The alt text for the workspace's release banner image"});var Se=r__namespace.object({url:Ce,alt:ve});n.add(Se,{description:"The workspace's banner image used during the release process"});var ke=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(ke,{description:"A header message appended to the start of the workspace's release notes"});var Oe=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(Oe,{description:"A footer message appended to the end of the workspace's release notes"});var Ae=r__namespace.object({banner:r__namespace.union([Se,r__namespace.string().check(r__namespace.trim(),r__namespace.url())]),header:ke,footer:Oe});n.add(Ae,{description:"The workspace's release config used during the release process"});var $e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add($e,{description:"A Twitter/X account associated with the organization/project"});var _e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(_e,{description:"A Discord account associated with the organization/project"});var Le=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(Le,{description:"A Telegram account associated with the organization/project"});var Ie=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(Ie,{description:"A Slack account associated with the organization/project"});var Ne=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(Ne,{description:"A Medium account associated with the organization/project"});var we=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(we,{description:"A GitHub account associated with the organization/project"});var be=r__namespace.object({twitter:$e,discord:_e,telegram:Le,slack:Ie,medium:Ne,github:we});n.add(be,{description:"The workspace's account config used to store various social media links"});var ye=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(ye,{description:"The directory used to store the environment's cached file data"});var ze=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(ze,{description:"The directory used to store the environment's data files"});var xe=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(xe,{description:"The directory used to store the environment's configuration files"});var De=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(De,{description:"The directory used to store the environment's temp files"});var Ge=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(Ge,{description:"The directory used to store the environment's log files"});var Pe=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"dist");n.add(Pe,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var Fe=r__namespace.object({cache:ye,data:ze,config:xe,temp:De,log:Ge,build:Pe});n.add(Fe,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var Me=r__namespace._default(r__namespace.enum(["minimal","monorepo"]),"monorepo");n.add(Me,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var We=r__namespace._default(r__namespace.string().check(r__namespace.trim()),w);n.add(We,{description:"The path to the workspace's error codes JSON file"});var Ue=r__namespace.optional(r__namespace.url());n.add(Ue,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var je=r__namespace.object({codesFile:We,url:Ue});n.add(je,{description:"The workspace's error config used when creating error details during a system error"});var Be=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));n.add(Be,{description:"The name of the organization"});var He=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));n.add(He,{description:"A description of the organization"});var Ke=r__namespace.optional(r__namespace.url());n.add(Ke,{description:"A URL to the organization's logo image"});var Ye=r__namespace.optional(r__namespace.url());n.add(Ye,{description:"A URL to the organization's icon image"});var Ze=r__namespace.optional(r__namespace.url());n.add(Ze,{description:"A URL to a page that provides more information about the organization"});var Ve=r__namespace.object({name:Be,description:He,logo:Ke,icon:Ye,url:Ze});n.add(Ve,{description:"The workspace's organization details"});var Je=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");n.add(Je,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var Xe=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());n.add(Xe,{description:"The name of the workspace/project/service/package/scope using this configuration"});var qe=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());n.add(qe,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var Qe=r__namespace.union([Ve,r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase())]);n.add(Qe,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var eo=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());n.add(eo,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var oo=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"Apache-2.0");n.add(oo,{description:"The license type of the package"});var ro=r__namespace.optional(r__namespace.url());n.add(ro,{description:"The homepage of the workspace"});var so=r__namespace.optional(r__namespace.url());n.add(so,{description:"The documentation site for the workspace"});var to=r__namespace.optional(r__namespace.url());n.add(to,{description:"The development portal site for the workspace"});var no=r__namespace.optional(r__namespace.url());n.add(no,{description:"The licensing site for the workspace"});var ao=r__namespace.optional(r__namespace.url());n.add(ao,{description:"The contact site for the workspace"});var io=r__namespace.optional(r__namespace.url());n.add(io,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var co=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"main");n.add(co,{description:"The branch of the workspace"});var po=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));n.add(po,{description:"A tag specifying the version pre-release identifier"});var lo=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));n.add(lo,{description:"The owner of the package"});var mo=r__namespace._default(r__namespace.enum(["development","test","production"]).check(r__namespace.trim(),r__namespace.toLowerCase()),"production");n.add(mo,{description:"The current runtime environment mode for the package"});var uo=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());n.add(uo,{description:"The root directory of the workspace"});var go=r__namespace._default(r__namespace.boolean(),false);n.add(go,{description:"Should all known types of workspace caching be skipped?"});var fo=r__namespace._default(r__namespace.enum(["npm","yarn","pnpm","bun"]),"npm");n.add(fo,{description:"The JavaScript/TypeScript package manager used by the repository"});var ho=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"America/New_York");n.add(ho,{description:"The default timezone of the workspace"});var Eo=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"en-US");n.add(Eo,{description:"The default locale of the workspace"});var Ro=r__namespace._default(r__namespace.enum(["silent","fatal","error","warn","success","info","performance","debug","trace","all"]),"info");n.add(Ro,{description:"The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."});var To=r__namespace._default(r__namespace.boolean(),true);n.add(To,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var Co=r__namespace._default(r__namespace.nullable(r__namespace.string().check(r__namespace.trim())),null);n.add(Co,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var ee=r__namespace._default(r__namespace.record(r__namespace.string(),r__namespace.any()),{});n.add(ee,{description:"Configuration of each used extension"});var vo=r__namespace.object({$schema:Je,extends:he,name:Xe,variant:Me,namespace:qe,organization:Qe,repository:eo,license:oo,homepage:ro,docs:so,portal:to,licensing:no,contact:ao,support:io,branch:co,preid:po,owner:lo,bot:Te,release:Ae,socials:be,error:je,mode:mo,workspaceRoot:uo,skipCache:go,directories:Fe,packageManager:fo,timezone:ho,locale:Eo,logLevel:Ro,skipConfigLogging:To,registry:ge,configFile:Co,colors:r__namespace.union([Q,fe]),extensions:ee});n.add(ee,{description:"Storm Workspace config values used during various dev-ops processes. This type is a combination of the StormPackageConfig and StormProject types. It represents the config of the entire monorepo."});async function So(e){let o=le,s,t,a,i,c,p=R(e);if(fs.existsSync(path.join(p,"package.json"))){let u=await promises.readFile(T(p,"package.json"),"utf8");if(u){let f=JSON.parse(u);f.name&&(a=f.name),f.namespace&&(i=f.namespace),f.repository&&(typeof f.repository=="string"?c=f.repository:f.repository.url&&(c=f.repository.url)),f.license&&(o=f.license),f.homepage&&(s=f.homepage),f.bugs&&(typeof f.bugs=="string"?t=f.bugs:f.bugs.url&&(t=f.bugs.url));}}return {workspaceRoot:p,name:a,namespace:i,repository:c,license:o,homepage:s,support:t}}function ko(e){return !e.support&&e.contact&&(e.support=e.contact),!e.contact&&e.support&&(e.contact=e.support),e.homepage&&(e.docs||(e.docs=`${e.homepage}/docs`),e.license||(e.license=`${e.homepage}/license`),e.support||(e.support=`${e.homepage}/support`),e.contact||(e.contact=`${e.homepage}/contact`),(!e.error?.codesFile||!e?.error?.url)&&(e.error??={codesFile:w},e.homepage&&(e.error.url??=`${e.homepage}/errors`))),e}var Ao=async(e,o,s={})=>{let t=o||R(o),a=await Promise.all([c12.loadConfig({cwd:t,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:T(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...s}),c12.loadConfig({cwd:t,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:T(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...s})]);return $o__default.default(a[0]??{},a[1]??{})},_o=async(e,o=[])=>{let s=e||R(e),t=await Ao("storm-workspace",s),a=t.config,i=t.configFile;if(a&&i&&Object.keys(a).length>0&&!a.skipConfigLogging&&O(`Found Storm configuration file "${i.includes(`${s}/`)?i.replace(`${s}/`,""):i}" at "${s}"`,{logLevel:"all"}),o&&o.length>0){let c=await Promise.all(o.map(p=>Ao(p,s)));for(let p of c)p?.config&&p?.configFile&&Object.keys(p.config).length>0&&(!a.skipConfigLogging&&!p.config.skipConfigLogging&&O(`Found alternative configuration file "${p.configFile.includes(`${s}/`)?p.configFile.replace(`${s}/`,""):p.configFile}" at "${s}"`,{logLevel:"all"}),a=$o__default.default(p.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=i,a};var wo=()=>{let e="STORM_",o={extends:process.env[`${e}EXTENDS`]||void 0,name:process.env[`${e}NAME`]||void 0,variant:process.env[`${e}VARIANT`]||void 0,namespace:process.env[`${e}NAMESPACE`]||void 0,owner:process.env[`${e}OWNER`]||void 0,bot:{name:process.env[`${e}BOT_NAME`]||void 0,email:process.env[`${e}BOT_EMAIL`]||void 0},release:{banner:{url:process.env[`${e}RELEASE_BANNER_URL`]||void 0,alt:process.env[`${e}RELEASE_BANNER_ALT`]||void 0},header:process.env[`${e}RELEASE_HEADER`]||void 0,footer:process.env[`${e}RELEASE_FOOTER`]||void 0},error:{codesFile:process.env[`${e}ERROR_CODES_FILE`]||void 0,url:process.env[`${e}ERROR_URL`]||void 0},socials:{twitter:process.env[`${e}SOCIAL_TWITTER`]||void 0,discord:process.env[`${e}SOCIAL_DISCORD`]||void 0,telegram:process.env[`${e}SOCIAL_TELEGRAM`]||void 0,slack:process.env[`${e}SOCIAL_SLACK`]||void 0,medium:process.env[`${e}SOCIAL_MEDIUM`]||void 0,github:process.env[`${e}SOCIAL_GITHUB`]||void 0},organization:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]?process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]?{name:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`],description:process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||void 0,url:process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||void 0,logo:process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]||void 0,icon:process.env[`${e}ORG_ICON`]||process.env[`${e}ORGANIZATION_ICON`]||void 0}:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]:void 0,packageManager:process.env[`${e}PACKAGE_MANAGER`]||void 0,license:process.env[`${e}LICENSE`]||void 0,homepage:process.env[`${e}HOMEPAGE`]||void 0,docs:process.env[`${e}DOCS`]||void 0,portal:process.env[`${e}PORTAL`]||void 0,licensing:process.env[`${e}LICENSING`]||void 0,contact:process.env[`${e}CONTACT`]||void 0,support:process.env[`${e}SUPPORT`]||void 0,timezone:process.env[`${e}TIMEZONE`]||process.env.TZ||void 0,locale:process.env[`${e}LOCALE`]||process.env.LOCALE||void 0,configFile:process.env[`${e}WORKSPACE_CONFIG_FILE`]?m(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?m(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?m(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?m(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?m(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?m(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?m(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?m(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?m(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?m(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?m(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?m(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?m(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?m(process.env[`${e}BUILD_DIRECTORY`]):void 0},skipCache:process.env[`${e}SKIP_CACHE`]!==void 0?!!process.env[`${e}SKIP_CACHE`]:void 0,mode:(process.env[`${e}MODE`]??process.env.NODE_ENV??process.env.ENVIRONMENT)||void 0,repository:process.env[`${e}REPOSITORY`]||void 0,branch:process.env[`${e}BRANCH`]||void 0,preid:process.env[`${e}PRE_ID`]||void 0,registry:{github:process.env[`${e}REGISTRY_GITHUB`]||void 0,npm:process.env[`${e}REGISTRY_NPM`]||void 0,cargo:process.env[`${e}REGISTRY_CARGO`]||void 0,cyclone:process.env[`${e}REGISTRY_CYCLONE`]||void 0,container:process.env[`${e}REGISTRY_CONTAINER`]||void 0},logLevel:process.env[`${e}LOG_LEVEL`]!==null&&process.env[`${e}LOG_LEVEL`]!==void 0?process.env[`${e}LOG_LEVEL`]&&Number.isSafeInteger(Number.parseInt(process.env[`${e}LOG_LEVEL`]))?te(Number.parseInt(process.env[`${e}LOG_LEVEL`])):process.env[`${e}LOG_LEVEL`]:void 0,skipConfigLogging:process.env[`${e}SKIP_CONFIG_LOGGING`]!==void 0?!!process.env[`${e}SKIP_CONFIG_LOGGING`]:void 0},s=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&ue.every(i=>!a.startsWith(`${e}COLOR_LIGHT_${i}`)&&!a.startsWith(`${e}COLOR_DARK_${i}`)));o.colors=s.length>0?s.reduce((a,i)=>(a[i]=Lo(e,i),a),{}):Lo(e),o.docs===pe&&(o.homepage===L?o.docs=`${L}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===de&&(o.homepage===L?o.licensing=`${L}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let t=process.env[`${e}WORKSPACE_CONFIG`];if(t){let a=JSON.parse(t);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},Lo=(e,o)=>{let s=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${s}LIGHT_BRAND`]||process.env[`${e}${s}DARK_BRAND`]?pr(e+s):cr(e+s)},cr=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {dark:process.env[`${e}DARK`],light:process.env[`${e}LIGHT`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},pr=e=>({light:Io(`${e}_LIGHT_`),dark:Io(`${e}_DARK_`)}),Io=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {foreground:process.env[`${e}FOREGROUND`],background:process.env[`${e}BACKGROUND`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var dr=(e,o)=>{for(let s of Object.keys(o??{}))if(o[s]){let t=s?.replace(/([A-Z])+/g,i=>i?i[0]?.toUpperCase()+i.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(i=>i.toLowerCase())??[],a;if(t.length===0)return;t.length===1?a=t[0]?.toUpperCase()??"":a=t.reduce((i,c)=>`${i}_${c.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[s];}},zo=e=>{let o="STORM_";if(e.extends&&(process.env[`${o}EXTENDS`]=Array.isArray(e.extends)?JSON.stringify(e.extends):e.extends),e.name&&(process.env[`${o}NAME`]=e.name),e.variant&&(process.env[`${o}VARIANT`]=e.variant),e.namespace&&(process.env[`${o}NAMESPACE`]=e.namespace),e.owner&&(process.env[`${o}OWNER`]=e.owner),e.bot&&(process.env[`${o}BOT_NAME`]=e.bot.name,process.env[`${o}BOT_EMAIL`]=e.bot.email),e.error&&(process.env[`${o}ERROR_CODES_FILE`]=e.error.codesFile,process.env[`${o}ERROR_URL`]=e.error.url),e.release&&(e.release.banner&&(typeof e.release.banner=="string"?(process.env[`${o}RELEASE_BANNER`]=e.release.banner,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner):(process.env[`${o}RELEASE_BANNER`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_ALT`]=e.release.banner.alt)),process.env[`${o}RELEASE_HEADER`]=e.release.header,process.env[`${o}RELEASE_FOOTER`]=e.release.footer),e.socials&&(e.socials.twitter&&(process.env[`${o}SOCIAL_TWITTER`]=e.socials.twitter),e.socials.discord&&(process.env[`${o}SOCIAL_DISCORD`]=e.socials.discord),e.socials.telegram&&(process.env[`${o}SOCIAL_TELEGRAM`]=e.socials.telegram),e.socials.slack&&(process.env[`${o}SOCIAL_SLACK`]=e.socials.slack),e.socials.medium&&(process.env[`${o}SOCIAL_MEDIUM`]=e.socials.medium),e.socials.github&&(process.env[`${o}SOCIAL_GITHUB`]=e.socials.github)),e.organization&&(typeof e.organization=="string"?(process.env[`${o}ORG`]=e.organization,process.env[`${o}ORG_NAME`]=e.organization,process.env[`${o}ORGANIZATION`]=e.organization,process.env[`${o}ORGANIZATION_NAME`]=e.organization):(process.env[`${o}ORG`]=e.organization.name,process.env[`${o}ORG_NAME`]=e.organization.name,process.env[`${o}ORGANIZATION`]=e.organization.name,process.env[`${o}ORGANIZATION_NAME`]=e.organization.name,e.organization.url&&(process.env[`${o}ORG_URL`]=e.organization.url,process.env[`${o}ORGANIZATION_URL`]=e.organization.url),e.organization.description&&(process.env[`${o}ORG_DESCRIPTION`]=e.organization.description,process.env[`${o}ORGANIZATION_DESCRIPTION`]=e.organization.description),e.organization.logo&&(process.env[`${o}ORG_LOGO`]=e.organization.logo,process.env[`${o}ORGANIZATION_LOGO`]=e.organization.logo),e.organization.icon&&(process.env[`${o}ORG_ICON`]=e.organization.icon,process.env[`${o}ORGANIZATION_ICON`]=e.organization.icon))),e.packageManager&&(process.env[`${o}PACKAGE_MANAGER`]=e.packageManager),e.license&&(process.env[`${o}LICENSE`]=e.license),e.homepage&&(process.env[`${o}HOMEPAGE`]=e.homepage),e.docs&&(process.env[`${o}DOCS`]=e.docs),e.portal&&(process.env[`${o}PORTAL`]=e.portal),e.licensing&&(process.env[`${o}LICENSING`]=e.licensing),e.contact&&(process.env[`${o}CONTACT`]=e.contact),e.support&&(process.env[`${o}SUPPORT`]=e.support),e.timezone&&(process.env[`${o}TIMEZONE`]=e.timezone,process.env.TZ=e.timezone,process.env.DEFAULT_TIMEZONE=e.timezone,process.env.TIMEZONE=e.timezone),e.locale&&(process.env[`${o}LOCALE`]=e.locale,process.env.DEFAULT_LOCALE=e.locale,process.env.LOCALE=e.locale,process.env.LANG=e.locale?`${e.locale.replaceAll("-","_")}.UTF-8`:"en_US.UTF-8"),e.configFile&&(process.env[`${o}WORKSPACE_CONFIG_FILE`]=m(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=m(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=m(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=m(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=m(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=m(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=m(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=m(e.directories.build),process.env[`${o}BUILD_DIRECTORY`]=process.env[`${o}BUILD_DIR`])),e.skipCache!==void 0&&(process.env[`${o}SKIP_CACHE`]=String(e.skipCache),e.skipCache&&(process.env.NX_SKIP_NX_CACHE??=String(e.skipCache),process.env.NX_CACHE_PROJECT_GRAPH??=String(e.skipCache))),e.mode&&(process.env[`${o}MODE`]=e.mode,process.env.NODE_ENV=e.mode,process.env.ENVIRONMENT=e.mode),e.colors?.base?.light||e.colors?.base?.dark)for(let s of Object.keys(e.colors))bo(`${o}COLOR_${s}_`,e.colors[s]);else bo(`${o}COLOR_`,e.colors);e.repository&&(process.env[`${o}REPOSITORY`]=e.repository),e.branch&&(process.env[`${o}BRANCH`]=e.branch),e.preid&&(process.env[`${o}PRE_ID`]=String(e.preid)),e.registry&&(e.registry.github&&(process.env[`${o}REGISTRY_GITHUB`]=String(e.registry.github)),e.registry.npm&&(process.env[`${o}REGISTRY_NPM`]=String(e.registry.npm)),e.registry.cargo&&(process.env[`${o}REGISTRY_CARGO`]=String(e.registry.cargo)),e.registry.cyclone&&(process.env[`${o}REGISTRY_CYCLONE`]=String(e.registry.cyclone)),e.registry.container&&(process.env[`${o}REGISTRY_CONTAINER`]=String(e.registry.container))),e.logLevel&&(process.env[`${o}LOG_LEVEL`]=String(e.logLevel),process.env.LOG_LEVEL=String(e.logLevel),process.env.NX_VERBOSE_LOGGING=String(A(e.logLevel)>=d.DEBUG),process.env.RUST_BACKTRACE=A(e.logLevel)>=d.DEBUG?"full":"none"),e.skipConfigLogging!==void 0&&(process.env[`${o}SKIP_CONFIG_LOGGING`]=String(e.skipConfigLogging)),process.env[`${o}WORKSPACE_CONFIG`]=JSON.stringify(e);for(let s of Object.keys(e.extensions??{}))e.extensions[s]&&Object.keys(e.extensions[s])&&dr(s,e.extensions[s]);},bo=(e,o)=>o?.light?.brand||o?.dark?.brand?mr(e,o):lr(e,o),lr=(e,o)=>{if(o.dark&&(process.env[`${e}DARK`]=o.dark),o.light&&(process.env[`${e}LIGHT`]=o.light),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];},mr=(e,o)=>({light:yo(`${e}LIGHT_`,o.light),dark:yo(`${e}DARK_`,o.dark)}),yo=(e,o)=>{if(o.foreground&&(process.env[`${e}FOREGROUND`]=o.foreground),o.background&&(process.env[`${e}BACKGROUND`]=o.background),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];};var I,gr=async(e,o,s,t=false,a=true)=>{let i;if(!I?.data||!I?.timestamp||I.timestamp<Date.now()-8e3){let c=s;c||(c=R());let p=wo(),u=await _o(c);if(!u&&(t||ne("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n",{logLevel:"all"}),a===false))return;let f=await So(c),N=$o__default.default(p,u,f);N.variant||(N.variant=fs.existsSync(T(c,"nx.json"))||fs.existsSync(T(c,".nx"))||fs.existsSync(T(c,"lerna.json"))||fs.existsSync(T(c,"turbo.json"))?"monorepo":"minimal");try{let _=await Promise.resolve(vo._zod.parse({value:N,issues:[]},{async:!0}));i=ko(_.value),i.workspaceRoot??=c;}catch(_){throw new Error(`Failed to parse Storm Workspace configuration${_?.message?`: ${_.message}`:""}
26
+ Path: ${e||process.cwd()}`);return o}var pe="https://docs.stormsoftware.com",L="https://stormsoftware.com";var de="https://stormsoftware.com/license",le="Apache-2.0";var b="tools/errors/codes.json",me="The workspace's banner image",ue=["dark","light","base","brand","alternate","accent","link","success","discovery","info","warning","danger","fatal","performance","positive","negative"];var t=r__namespace.registry(),h=r__namespace.string().check(r__namespace.length(7),r__namespace.toLowerCase(),r__namespace.regex(/^#([0-9a-f]{3}){1,2}$/i),r__namespace.trim());t.add(h,{description:"A base schema for describing the format of colors"});var y=r__namespace._default(h,"#1e2124");t.add(y,{description:"The dark background color of the workspace"});var w=r__namespace._default(h,"#cbd5e1");t.add(w,{description:"The light background color of the workspace"});var z=r__namespace._default(h,"#1fb2a6");t.add(z,{description:"The primary brand specific color of the workspace"});var D=r__namespace.optional(h);t.add(D,{description:"The alternate brand specific color of the workspace"});var x=r__namespace.optional(h);t.add(x,{description:"The secondary brand specific color of the workspace"});var G=r__namespace._default(h,"#3fa6ff");t.add(G,{description:"The color used to display hyperlink text"});var P=r__namespace._default(h,"#818cf8");t.add(P,{description:"The second brand specific color of the workspace"});var M=r__namespace._default(h,"#45b27e");t.add(M,{description:"The success color of the workspace"});var F=r__namespace._default(h,"#38bdf8");t.add(F,{description:"The informational color of the workspace"});var U=r__namespace._default(h,"#8afafc");t.add(U,{description:"The debug color of the workspace"});var W=r__namespace._default(h,"#f3d371");t.add(W,{description:"The warning color of the workspace"});var B=r__namespace._default(h,"#d8314a");t.add(B,{description:"The danger color of the workspace"});var j=r__namespace.optional(h);t.add(j,{description:"The fatal color of the workspace"});var H=r__namespace._default(h,"#80fd74");t.add(H,{description:"The performance color of the workspace"});var K=r__namespace._default(h,"#4ade80");t.add(K,{description:"The positive number color of the workspace"});var Y=r__namespace._default(h,"#ef4444");t.add(Y,{description:"The negative number color of the workspace"});var Z=r__namespace.optional(r__namespace.array(h));t.add(Z,{description:"The color stops for the base gradient color pattern used in the workspace"});var Qo=r__namespace.object({foreground:w,background:y,brand:z,alternate:D,accent:x,link:G,discovery:P,success:M,info:F,debug:U,warning:W,danger:B,fatal:j,performance:H,positive:K,negative:Y,gradient:Z}),er=r__namespace.object({foreground:y,background:w,brand:z,alternate:D,accent:x,link:G,discovery:P,success:M,info:F,debug:U,warning:W,danger:B,fatal:j,performance:H,positive:K,negative:Y,gradient:Z}),or=r__namespace.object({dark:Qo,light:er}),rr=r__namespace.object({dark:y,light:w,brand:z,alternate:D,accent:x,link:G,discovery:P,success:M,info:F,debug:U,warning:W,danger:B,fatal:j,performance:H,positive:K,negative:Y,gradient:Z}),A=r__namespace.optional(r__namespace.url());t.add(A,{description:"A remote registry URL used to publish distributable packages"});var ge=r__namespace._default(r__namespace.object({github:A,npm:A,cargo:A,cyclone:A,container:A}),{});t.add(ge,{description:"A list of remote registry URLs used by Storm Software"});var Q=r__namespace.union([rr,or]);t.add(Q,{description:"Colors used for various workspace elements"});var fe=r__namespace.record(r__namespace.union([r__namespace.union([r__namespace.literal("base"),r__namespace.string()]),r__namespace.string()]),Q);t.add(fe,{description:"Storm theme config values used for styling various package elements"});var he=r__namespace.optional(r__namespace.union([r__namespace.string().check(r__namespace.trim()),r__namespace.array(r__namespace.string().check(r__namespace.trim()))]));t.add(he,{description:"The path to a base config file to use as a configuration preset file. Documentation can be found at https://github.com/unjs/c12#extending-configuration."});var Ee=r__namespace.string().check(r__namespace.trim());t.add(Ee,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var Re=r__namespace.string().check(r__namespace.trim());t.add(Re,{description:"The email of the workspace bot"});var Te=r__namespace.object({name:Ee,email:Re});t.add(Te,{description:"The workspace's bot user's config used to automated various operations tasks"});var Ce=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.url()));t.add(Ce,{description:"A URL to a banner image used to display the workspace's release"});var ve=r__namespace._default(r__namespace.string().check(r__namespace.trim()),me);t.add(ve,{description:"The alt text for the workspace's release banner image"});var Se=r__namespace.object({url:Ce,alt:ve});t.add(Se,{description:"The workspace's banner image used during the release process"});var ke=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(ke,{description:"A header message appended to the start of the workspace's release notes"});var Oe=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(Oe,{description:"A footer message appended to the end of the workspace's release notes"});var Ae=r__namespace.object({banner:r__namespace.union([Se,r__namespace.string().check(r__namespace.trim(),r__namespace.url())]),header:ke,footer:Oe});t.add(Ae,{description:"The workspace's release config used during the release process"});var $e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add($e,{description:"A Twitter/X account associated with the organization/project"});var _e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(_e,{description:"A Discord account associated with the organization/project"});var Le=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(Le,{description:"A Telegram account associated with the organization/project"});var Ie=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(Ie,{description:"A Slack account associated with the organization/project"});var Ne=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(Ne,{description:"A Medium account associated with the organization/project"});var be=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(be,{description:"A GitHub account associated with the organization/project"});var ye=r__namespace.object({twitter:$e,discord:_e,telegram:Le,slack:Ie,medium:Ne,github:be});t.add(ye,{description:"The workspace's account config used to store various social media links"});var we=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(we,{description:"The directory used to store the environment's cached file data"});var ze=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(ze,{description:"The directory used to store the environment's data files"});var De=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(De,{description:"The directory used to store the environment's configuration files"});var xe=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(xe,{description:"The directory used to store the environment's temp files"});var Ge=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(Ge,{description:"The directory used to store the environment's log files"});var Pe=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"dist");t.add(Pe,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var Me=r__namespace.object({cache:we,data:ze,config:De,temp:xe,log:Ge,build:Pe});t.add(Me,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var Fe=r__namespace._default(r__namespace.enum(["minimal","monorepo"]),"monorepo");t.add(Fe,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var Ue=r__namespace._default(r__namespace.string().check(r__namespace.trim()),b);t.add(Ue,{description:"The path to the workspace's error codes JSON file"});var We=r__namespace.optional(r__namespace.url());t.add(We,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var Be=r__namespace.object({codesFile:Ue,url:We});t.add(Be,{description:"The workspace's error config used when creating error details during a system error"});var je=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));t.add(je,{description:"The name of the organization"});var He=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));t.add(He,{description:"A description of the organization"});var Ke=r__namespace.optional(r__namespace.url());t.add(Ke,{description:"A URL to the organization's logo image"});var Ye=r__namespace.optional(r__namespace.url());t.add(Ye,{description:"A URL to the organization's icon image"});var Ze=r__namespace.optional(r__namespace.url());t.add(Ze,{description:"A URL to a page that provides more information about the organization"});var Ve=r__namespace.object({name:je,description:He,logo:Ke,icon:Ye,url:Ze});t.add(Ve,{description:"The workspace's organization details"});var Je=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");t.add(Je,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var Xe=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());t.add(Xe,{description:"The name of the workspace/project/service/package/scope using this configuration"});var qe=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());t.add(qe,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var Qe=r__namespace.union([Ve,r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase())]);t.add(Qe,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var eo=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());t.add(eo,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var oo=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"Apache-2.0");t.add(oo,{description:"The license type of the package"});var ro=r__namespace.optional(r__namespace.url());t.add(ro,{description:"The homepage of the workspace"});var so=r__namespace.optional(r__namespace.url());t.add(so,{description:"The documentation site for the workspace"});var to=r__namespace.optional(r__namespace.url());t.add(to,{description:"The development portal site for the workspace"});var no=r__namespace.optional(r__namespace.url());t.add(no,{description:"The licensing site for the workspace"});var ao=r__namespace.optional(r__namespace.url());t.add(ao,{description:"The contact site for the workspace"});var io=r__namespace.optional(r__namespace.url());t.add(io,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var co=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"main");t.add(co,{description:"The branch of the workspace"});var po=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));t.add(po,{description:"A tag specifying the version pre-release identifier"});var lo=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));t.add(lo,{description:"The owner of the package"});var mo=r__namespace._default(r__namespace.enum(["development","test","production"]).check(r__namespace.trim(),r__namespace.toLowerCase()),"production");t.add(mo,{description:"The current runtime environment mode for the package"});var uo=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());t.add(uo,{description:"The root directory of the workspace"});var go=r__namespace._default(r__namespace.boolean(),false);t.add(go,{description:"Should all known types of workspace caching be skipped?"});var fo=r__namespace._default(r__namespace.enum(["npm","yarn","pnpm","bun"]),"npm");t.add(fo,{description:"The JavaScript/TypeScript package manager used by the repository"});var ho=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"America/New_York");t.add(ho,{description:"The default timezone of the workspace"});var Eo=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"en-US");t.add(Eo,{description:"The default locale of the workspace"});var Ro=r__namespace._default(r__namespace.enum(["silent","fatal","error","warn","success","info","performance","debug","trace","all"]),"info");t.add(Ro,{description:"The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."});var To=r__namespace._default(r__namespace.boolean(),true);t.add(To,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var Co=r__namespace._default(r__namespace.nullable(r__namespace.string().check(r__namespace.trim())),null);t.add(Co,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var ee=r__namespace._default(r__namespace.record(r__namespace.string(),r__namespace.any()),{});t.add(ee,{description:"Configuration of each used extension"});var vo=r__namespace.object({$schema:Je,extends:he,name:Xe,variant:Fe,namespace:qe,organization:Qe,repository:eo,license:oo,homepage:ro,docs:so,portal:to,licensing:no,contact:ao,support:io,branch:co,preid:po,owner:lo,bot:Te,release:Ae,socials:ye,error:Be,mode:mo,workspaceRoot:uo,skipCache:go,directories:Me,packageManager:fo,timezone:ho,locale:Eo,logLevel:Ro,skipConfigLogging:To,registry:ge,configFile:Co,colors:r__namespace.union([Q,fe]),extensions:ee});t.add(ee,{description:"Storm Workspace config values used during various dev-ops processes. This type is a combination of the StormPackageConfig and StormProject types. It represents the config of the entire monorepo."});async function So(e){let o=le,s,n,a,i,c,p=k(e);if(fs.existsSync(path.join(p,"package.json"))){let u=await promises.readFile(v(p,"package.json"),"utf8");if(u){let g=JSON.parse(u);g.name&&(a=g.name),g.namespace&&(i=g.namespace),g.repository&&(typeof g.repository=="string"?c=g.repository:g.repository.url&&(c=g.repository.url)),g.license&&(o=g.license),g.homepage&&(s=g.homepage),g.bugs&&(typeof g.bugs=="string"?n=g.bugs:g.bugs.url&&(n=g.bugs.url));}}return {workspaceRoot:p,name:a,namespace:i,repository:c,license:o,homepage:s,support:n}}function ko(e){return !e.support&&e.contact&&(e.support=e.contact),!e.contact&&e.support&&(e.contact=e.support),e.homepage&&(e.docs||(e.docs=`${e.homepage}/docs`),e.license||(e.license=`${e.homepage}/license`),e.support||(e.support=`${e.homepage}/support`),e.contact||(e.contact=`${e.homepage}/contact`),(!e.error?.codesFile||!e?.error?.url)&&(e.error??={codesFile:b},e.homepage&&(e.error.url??=`${e.homepage}/errors`))),e}var Ao=async(e,o,s={})=>{let n=o||k(o),a=await Promise.all([c12.loadConfig({cwd:n,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:v(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...s}),c12.loadConfig({cwd:n,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:v(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...s})]);return $o__default.default(a[0]??{},a[1]??{})},_o=async(e,o=[])=>{let s=e||k(e),n=await Ao("storm-workspace",s),a=n.config,i=n.configFile;if(a&&i&&Object.keys(a).length>0&&!a.skipConfigLogging&&_(`Found Storm configuration file "${i.includes(`${s}/`)?i.replace(`${s}/`,""):i}" at "${s}"`,{logLevel:"all"}),o&&o.length>0){let c=await Promise.all(o.map(p=>Ao(p,s)));for(let p of c)p?.config&&p?.configFile&&Object.keys(p.config).length>0&&(!a.skipConfigLogging&&!p.config.skipConfigLogging&&_(`Found alternative configuration file "${p.configFile.includes(`${s}/`)?p.configFile.replace(`${s}/`,""):p.configFile}" at "${s}"`,{logLevel:"all"}),a=$o__default.default(p.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=i,a};var bo=()=>{let e="STORM_",o={extends:process.env[`${e}EXTENDS`]||void 0,name:process.env[`${e}NAME`]||void 0,variant:process.env[`${e}VARIANT`]||void 0,namespace:process.env[`${e}NAMESPACE`]||void 0,owner:process.env[`${e}OWNER`]||void 0,bot:{name:process.env[`${e}BOT_NAME`]||void 0,email:process.env[`${e}BOT_EMAIL`]||void 0},release:{banner:{url:process.env[`${e}RELEASE_BANNER_URL`]||void 0,alt:process.env[`${e}RELEASE_BANNER_ALT`]||void 0},header:process.env[`${e}RELEASE_HEADER`]||void 0,footer:process.env[`${e}RELEASE_FOOTER`]||void 0},error:{codesFile:process.env[`${e}ERROR_CODES_FILE`]||void 0,url:process.env[`${e}ERROR_URL`]||void 0},socials:{twitter:process.env[`${e}SOCIAL_TWITTER`]||void 0,discord:process.env[`${e}SOCIAL_DISCORD`]||void 0,telegram:process.env[`${e}SOCIAL_TELEGRAM`]||void 0,slack:process.env[`${e}SOCIAL_SLACK`]||void 0,medium:process.env[`${e}SOCIAL_MEDIUM`]||void 0,github:process.env[`${e}SOCIAL_GITHUB`]||void 0},organization:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]?process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]?{name:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`],description:process.env[`${e}ORG_DESCRIPTION`]||process.env[`${e}ORGANIZATION_DESCRIPTION`]||void 0,url:process.env[`${e}ORG_URL`]||process.env[`${e}ORGANIZATION_URL`]||void 0,logo:process.env[`${e}ORG_LOGO`]||process.env[`${e}ORGANIZATION_LOGO`]||void 0,icon:process.env[`${e}ORG_ICON`]||process.env[`${e}ORGANIZATION_ICON`]||void 0}:process.env[`${e}ORG`]||process.env[`${e}ORGANIZATION`]||process.env[`${e}ORG_NAME`]||process.env[`${e}ORGANIZATION_NAME`]:void 0,packageManager:process.env[`${e}PACKAGE_MANAGER`]||void 0,license:process.env[`${e}LICENSE`]||void 0,homepage:process.env[`${e}HOMEPAGE`]||void 0,docs:process.env[`${e}DOCS`]||void 0,portal:process.env[`${e}PORTAL`]||void 0,licensing:process.env[`${e}LICENSING`]||void 0,contact:process.env[`${e}CONTACT`]||void 0,support:process.env[`${e}SUPPORT`]||void 0,timezone:process.env[`${e}TIMEZONE`]||process.env.TZ||void 0,locale:process.env[`${e}LOCALE`]||process.env.LOCALE||void 0,configFile:process.env[`${e}WORKSPACE_CONFIG_FILE`]?m(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?m(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?m(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?m(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?m(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?m(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?m(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?m(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?m(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?m(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?m(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?m(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?m(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?m(process.env[`${e}BUILD_DIRECTORY`]):void 0},skipCache:process.env[`${e}SKIP_CACHE`]!==void 0?!!process.env[`${e}SKIP_CACHE`]:void 0,mode:(process.env[`${e}MODE`]??process.env.NODE_ENV??process.env.ENVIRONMENT)||void 0,repository:process.env[`${e}REPOSITORY`]||void 0,branch:process.env[`${e}BRANCH`]||void 0,preid:process.env[`${e}PRE_ID`]||void 0,registry:{github:process.env[`${e}REGISTRY_GITHUB`]||void 0,npm:process.env[`${e}REGISTRY_NPM`]||void 0,cargo:process.env[`${e}REGISTRY_CARGO`]||void 0,cyclone:process.env[`${e}REGISTRY_CYCLONE`]||void 0,container:process.env[`${e}REGISTRY_CONTAINER`]||void 0},logLevel:process.env[`${e}LOG_LEVEL`]!==null&&process.env[`${e}LOG_LEVEL`]!==void 0?process.env[`${e}LOG_LEVEL`]&&Number.isSafeInteger(Number.parseInt(process.env[`${e}LOG_LEVEL`]))?te(Number.parseInt(process.env[`${e}LOG_LEVEL`])):process.env[`${e}LOG_LEVEL`]:void 0,skipConfigLogging:process.env[`${e}SKIP_CONFIG_LOGGING`]!==void 0?!!process.env[`${e}SKIP_CONFIG_LOGGING`]:void 0},s=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&ue.every(i=>!a.startsWith(`${e}COLOR_LIGHT_${i}`)&&!a.startsWith(`${e}COLOR_DARK_${i}`)));o.colors=s.length>0?s.reduce((a,i)=>(a[i]=Lo(e,i),a),{}):Lo(e),o.docs===pe&&(o.homepage===L?o.docs=`${L}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===de&&(o.homepage===L?o.licensing=`${L}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let n=process.env[`${e}WORKSPACE_CONFIG`];if(n){let a=JSON.parse(n);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},Lo=(e,o)=>{let s=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${s}LIGHT_BRAND`]||process.env[`${e}${s}DARK_BRAND`]?ir(e+s):ar(e+s)},ar=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {dark:process.env[`${e}DARK`],light:process.env[`${e}LIGHT`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},ir=e=>({light:Io(`${e}_LIGHT_`),dark:Io(`${e}_DARK_`)}),Io=e=>{let o=[];if(process.env[`${e}GRADIENT_START`]&&process.env[`${e}GRADIENT_END`])o.push(process.env[`${e}GRADIENT_START`],process.env[`${e}GRADIENT_END`]);else if(process.env[`${e}GRADIENT_0`]||process.env[`${e}GRADIENT_1`]){let s=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${s}`];)o.push(process.env[`${e}GRADIENT_${s}`]),s++;}return {foreground:process.env[`${e}FOREGROUND`],background:process.env[`${e}BACKGROUND`],brand:process.env[`${e}BRAND`],alternate:process.env[`${e}ALTERNATE`],accent:process.env[`${e}ACCENT`],link:process.env[`${e}LINK`],discovery:process.env[`${e}DISCOVERY`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],debug:process.env[`${e}DEBUG`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],performance:process.env[`${e}PERFORMANCE`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var cr=(e,o)=>{for(let s of Object.keys(o??{}))if(o[s]){let n=s?.replace(/([A-Z])+/g,i=>i?i[0]?.toUpperCase()+i.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(i=>i.toLowerCase())??[],a;if(n.length===0)return;n.length===1?a=n[0]?.toUpperCase()??"":a=n.reduce((i,c)=>`${i}_${c.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[s];}},zo=e=>{let o="STORM_";if(e.extends&&(process.env[`${o}EXTENDS`]=Array.isArray(e.extends)?JSON.stringify(e.extends):e.extends),e.name&&(process.env[`${o}NAME`]=e.name),e.variant&&(process.env[`${o}VARIANT`]=e.variant),e.namespace&&(process.env[`${o}NAMESPACE`]=e.namespace),e.owner&&(process.env[`${o}OWNER`]=e.owner),e.bot&&(process.env[`${o}BOT_NAME`]=e.bot.name,process.env[`${o}BOT_EMAIL`]=e.bot.email),e.error&&(process.env[`${o}ERROR_CODES_FILE`]=e.error.codesFile,process.env[`${o}ERROR_URL`]=e.error.url),e.release&&(e.release.banner&&(typeof e.release.banner=="string"?(process.env[`${o}RELEASE_BANNER`]=e.release.banner,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner):(process.env[`${o}RELEASE_BANNER`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_URL`]=e.release.banner.url,process.env[`${o}RELEASE_BANNER_ALT`]=e.release.banner.alt)),process.env[`${o}RELEASE_HEADER`]=e.release.header,process.env[`${o}RELEASE_FOOTER`]=e.release.footer),e.socials&&(e.socials.twitter&&(process.env[`${o}SOCIAL_TWITTER`]=e.socials.twitter),e.socials.discord&&(process.env[`${o}SOCIAL_DISCORD`]=e.socials.discord),e.socials.telegram&&(process.env[`${o}SOCIAL_TELEGRAM`]=e.socials.telegram),e.socials.slack&&(process.env[`${o}SOCIAL_SLACK`]=e.socials.slack),e.socials.medium&&(process.env[`${o}SOCIAL_MEDIUM`]=e.socials.medium),e.socials.github&&(process.env[`${o}SOCIAL_GITHUB`]=e.socials.github)),e.organization&&(typeof e.organization=="string"?(process.env[`${o}ORG`]=e.organization,process.env[`${o}ORG_NAME`]=e.organization,process.env[`${o}ORGANIZATION`]=e.organization,process.env[`${o}ORGANIZATION_NAME`]=e.organization):(process.env[`${o}ORG`]=e.organization.name,process.env[`${o}ORG_NAME`]=e.organization.name,process.env[`${o}ORGANIZATION`]=e.organization.name,process.env[`${o}ORGANIZATION_NAME`]=e.organization.name,e.organization.url&&(process.env[`${o}ORG_URL`]=e.organization.url,process.env[`${o}ORGANIZATION_URL`]=e.organization.url),e.organization.description&&(process.env[`${o}ORG_DESCRIPTION`]=e.organization.description,process.env[`${o}ORGANIZATION_DESCRIPTION`]=e.organization.description),e.organization.logo&&(process.env[`${o}ORG_LOGO`]=e.organization.logo,process.env[`${o}ORGANIZATION_LOGO`]=e.organization.logo),e.organization.icon&&(process.env[`${o}ORG_ICON`]=e.organization.icon,process.env[`${o}ORGANIZATION_ICON`]=e.organization.icon))),e.packageManager&&(process.env[`${o}PACKAGE_MANAGER`]=e.packageManager),e.license&&(process.env[`${o}LICENSE`]=e.license),e.homepage&&(process.env[`${o}HOMEPAGE`]=e.homepage),e.docs&&(process.env[`${o}DOCS`]=e.docs),e.portal&&(process.env[`${o}PORTAL`]=e.portal),e.licensing&&(process.env[`${o}LICENSING`]=e.licensing),e.contact&&(process.env[`${o}CONTACT`]=e.contact),e.support&&(process.env[`${o}SUPPORT`]=e.support),e.timezone&&(process.env[`${o}TIMEZONE`]=e.timezone,process.env.TZ=e.timezone,process.env.DEFAULT_TIMEZONE=e.timezone,process.env.TIMEZONE=e.timezone),e.locale&&(process.env[`${o}LOCALE`]=e.locale,process.env.DEFAULT_LOCALE=e.locale,process.env.LOCALE=e.locale,process.env.LANG=e.locale?`${e.locale.replaceAll("-","_")}.UTF-8`:"en_US.UTF-8"),e.configFile&&(process.env[`${o}WORKSPACE_CONFIG_FILE`]=m(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=m(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=m(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=m(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=m(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=m(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=m(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=m(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=m(e.directories.build),process.env[`${o}BUILD_DIRECTORY`]=process.env[`${o}BUILD_DIR`])),e.skipCache!==void 0&&(process.env[`${o}SKIP_CACHE`]=String(e.skipCache),e.skipCache&&(process.env.NX_SKIP_NX_CACHE??=String(e.skipCache),process.env.NX_CACHE_PROJECT_GRAPH??=String(e.skipCache))),e.mode&&(process.env[`${o}MODE`]=e.mode,process.env.NODE_ENV=e.mode,process.env.ENVIRONMENT=e.mode),e.colors?.base?.light||e.colors?.base?.dark)for(let s of Object.keys(e.colors))yo(`${o}COLOR_${s}_`,e.colors[s]);else yo(`${o}COLOR_`,e.colors);e.repository&&(process.env[`${o}REPOSITORY`]=e.repository),e.branch&&(process.env[`${o}BRANCH`]=e.branch),e.preid&&(process.env[`${o}PRE_ID`]=String(e.preid)),e.registry&&(e.registry.github&&(process.env[`${o}REGISTRY_GITHUB`]=String(e.registry.github)),e.registry.npm&&(process.env[`${o}REGISTRY_NPM`]=String(e.registry.npm)),e.registry.cargo&&(process.env[`${o}REGISTRY_CARGO`]=String(e.registry.cargo)),e.registry.cyclone&&(process.env[`${o}REGISTRY_CYCLONE`]=String(e.registry.cyclone)),e.registry.container&&(process.env[`${o}REGISTRY_CONTAINER`]=String(e.registry.container))),e.logLevel&&(process.env[`${o}LOG_LEVEL`]=String(e.logLevel),process.env.LOG_LEVEL=String(e.logLevel),process.env.NX_VERBOSE_LOGGING=String(O(e.logLevel)>=d.DEBUG),process.env.RUST_BACKTRACE=O(e.logLevel)>=d.DEBUG?"full":"none"),e.skipConfigLogging!==void 0&&(process.env[`${o}SKIP_CONFIG_LOGGING`]=String(e.skipConfigLogging)),process.env[`${o}WORKSPACE_CONFIG`]=JSON.stringify(e);for(let s of Object.keys(e.extensions??{}))e.extensions[s]&&Object.keys(e.extensions[s])&&cr(s,e.extensions[s]);},yo=(e,o)=>o?.light?.brand||o?.dark?.brand?dr(e,o):pr(e,o),pr=(e,o)=>{if(o.dark&&(process.env[`${e}DARK`]=o.dark),o.light&&(process.env[`${e}LIGHT`]=o.light),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];},dr=(e,o)=>({light:wo(`${e}LIGHT_`,o.light),dark:wo(`${e}DARK_`,o.dark)}),wo=(e,o)=>{if(o.foreground&&(process.env[`${e}FOREGROUND`]=o.foreground),o.background&&(process.env[`${e}BACKGROUND`]=o.background),o.brand&&(process.env[`${e}BRAND`]=o.brand),o.alternate&&(process.env[`${e}ALTERNATE`]=o.alternate),o.accent&&(process.env[`${e}ACCENT`]=o.accent),o.link&&(process.env[`${e}LINK`]=o.link),o.discovery&&(process.env[`${e}DISCOVERY`]=o.discovery),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),o.debug&&(process.env[`${e}DEBUG`]=o.debug),o.warning&&(process.env[`${e}WARNING`]=o.warning),o.danger&&(process.env[`${e}DANGER`]=o.danger),o.fatal&&(process.env[`${e}FATAL`]=o.fatal),o.performance&&(process.env[`${e}PERFORMANCE`]=o.performance),o.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let s=0;s<o.gradient.length;s++)process.env[`${e}GRADIENT_${s}`]=o.gradient[s];};var I,mr=async(e,o,s,n=false,a=true)=>{let i;if(!I?.data||!I?.timestamp||I.timestamp<Date.now()-8e3){let c=s;c||(c=k());let p=bo(),u=await _o(c);if(!u&&(n||ne("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n",{logLevel:"all"}),a===false))return;let g=await So(c),N=$o__default.default(p,u,g);N.variant||(N.variant=fs.existsSync(v(c,"nx.json"))||fs.existsSync(v(c,".nx"))||fs.existsSync(v(c,"lerna.json"))||fs.existsSync(v(c,"turbo.json"))?"monorepo":"minimal");try{let $=await Promise.resolve(vo._zod.parse({value:N,issues:[]},{async:!0}));i=ko($.value),i.workspaceRoot??=c;}catch($){throw new Error(`Failed to parse Storm Workspace configuration${$?.message?`: ${$.message}`:""}
27
27
 
28
- Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${E(N)}`,{cause:_})}}else i=I.data;return I={timestamp:Date.now(),data:i},i},xo=async(e,o=false)=>{let s=await gr(void 0,void 0,e,o,true);return zo(s),!o&&!s.skipConfigLogging&&O(`\u2699\uFE0F Using Storm Workspace configuration:
29
- ${E(s)}`,s),s};function hr(e,o=false){return xo(e,o)}function Do(e=true,o={}){let s=o.workspaceRoot;return s||(s=R(o.cwd)),hr(s,e)}function Go(e=R(process.cwd())){let o=T(e,"pnpm-workspace.yaml");if(!fs.existsSync(o))throw new Error(`No \`pnpm-workspace.yaml\` file found in workspace root (searched in: ${o}).`);return o}async function Et(e=R(process.cwd())){let o=await promises.readFile(Go(e),"utf8");if(o)return yaml.parse(o)}async function Rt(e,o=R(process.cwd())){let s=await Do(),t=yaml.stringify(e);O(`Writing updated pnpm-workspace.yaml file to workspace root: ${t}`,s),await promises.writeFile(Go(o),t);}exports.a=ne;exports.b=Vr;exports.c=O;exports.d=T;exports.e=R;exports.f=Do;exports.g=Go;exports.h=Et;exports.i=Rt;
28
+ Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${E(N)}`,{cause:$})}}else i=I.data;return I={timestamp:Date.now(),data:i},i},Do=async(e,o=false)=>{let s=await mr(void 0,void 0,e,o,true);return zo(s),!o&&!s.skipConfigLogging&&_(`\u2699\uFE0F Using Storm Workspace configuration:
29
+ ${E(s)}`,s),s};function gr(e,o=false){return Do(e,o)}function rt(e=true,o={}){let s=o.workspaceRoot;return s||(s=k(o.cwd)),gr(s,e)}exports.a=ne;exports.b=Wr;exports.c=_;exports.d=v;exports.e=k;exports.f=rt;
@@ -0,0 +1 @@
1
+ import {d,e,f,c}from'./chunk-B2XEYHOF.js';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {parse,stringify}from'yaml';function s(o=e(process.cwd())){let r=d(o,"pnpm-workspace.yaml");if(!existsSync(r))throw new Error(`No \`pnpm-workspace.yaml\` file found in workspace root (searched in: ${r}).`);return r}async function h(o=e(process.cwd())){let r=await readFile(s(o),"utf8");if(r)return parse(r)}async function x(o,r=e(process.cwd())){let a=await f(),i=stringify(o);c(`Writing updated pnpm-workspace.yaml file to workspace root: ${i}`,a),await writeFile(s(r),i);}export{s as a,h as b,x as c};
@@ -1 +1 @@
1
- import {b}from'./chunk-IO6HZNAO.js';import {d,e}from'./chunk-I3CX5PSA.js';import {readCachedProjectGraph,createProjectGraphAsync}from'@nx/devkit';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {format}from'prettier';import N from'prettier-plugin-packagejson';async function F(c=process.cwd(),i=e(c)){let m=d(c,"package.json"),l=await readFile(m,"utf8");if(!l)throw new Error("No package.json file found in package root: "+c);let p=await b(i),a=JSON.parse(l),g=d(i,"pnpm-workspace.yaml");if(!existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=readCachedProjectGraph();}catch{await createProjectGraphAsync(),n=readCachedProjectGraph();}let d$1={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=d(i,o.data.root,"package.json");if(existsSync(e)){let t=await readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d$1[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d$1[e])o[e]=`^${d$1[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return writeFile(m,await format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:[N]}))}export{F as a};
1
+ import {b}from'./chunk-V6F2T4U6.js';import {d,e}from'./chunk-B2XEYHOF.js';import {readCachedProjectGraph,createProjectGraphAsync}from'@nx/devkit';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {format}from'prettier';import N from'prettier-plugin-packagejson';async function F(c=process.cwd(),i=e(c)){let m=d(c,"package.json"),l=await readFile(m,"utf8");if(!l)throw new Error("No package.json file found in package root: "+c);let p=await b(i),a=JSON.parse(l),g=d(i,"pnpm-workspace.yaml");if(!existsSync(g))return console.warn(`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${g}). Skipping pnpm catalog read for now.`),a;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e]==="catalog:"){if(!p)throw new Error(`Dependency ${e} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`);let t=p[e];if(!t)throw new Error("Missing pnpm catalog version for "+e);o[e]=t;}else if(o[e].startsWith("catalog:"))throw new Error("multiple named catalogs not supported")}}let n;try{n=readCachedProjectGraph();}catch{await createProjectGraphAsync(),n=readCachedProjectGraph();}let d$1={};n&&await Promise.all(Object.keys(n.nodes).map(async r=>{let o=n.nodes[r];if(o?.data.root){let e=d(i,o.data.root,"package.json");if(existsSync(e)){let t=await readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d$1[f.name]=f.version);}}}));for(let r of ["dependencies","devDependencies","peerDependencies"]){let o=a[r];if(o){for(let e of Object.keys(o))if(o[e].startsWith("workspace:"))if(d$1[e])o[e]=`^${d$1[e]}`;else throw new Error(`Workspace dependency ${e} not found in workspace packages.`)}}return writeFile(m,await format(JSON.stringify(a),{parser:"json",proseWrap:"preserve",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:[N]}))}export{F as a};
@@ -0,0 +1,2 @@
1
+ import {exec}from'node:child_process';import {valid}from'semver';import o from'strip-ansi';var x="latest";var P=x;async function y(n="npm"){return new Promise((t,e)=>{exec(`${n} config get registry`,(r,u,a)=>r&&!r.message.toLowerCase().trim().startsWith("npm warn")?e(r):a&&!a.toLowerCase().trim().startsWith("npm warn")?e(a):t(u.trim()));})}var v=/^(npm warn|\[[\d.]+ms\]|\[sys\]|\[warn\] request took)/i,L=/^\[[\d.]+ms\].*(?:\.env(?:\.local)?|"\.env)/i;function M(n){let t=n.trim();return t?[t,o(t)].some(r=>!r||v.test(r)||L.test(r)||/ms\].*\.env/i.test(r)?true:/\[[\d.]+ms\].*\.env/i.test(t)):true}function d(n){return n.split(/\r?\n/).map(t=>o(t).trim()).filter(t=>t.length>0).filter(t=>!M(t)).join(`
2
+ `).trim()}function V(n){let t=o(n).split(/\r?\n/).map(e=>e.trim()).filter(Boolean);for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r&&valid(r,true))return r}return o(n).trim()}async function Q(n,t=P,e={}){let r=e.executable||"npm",u=e.retries??3,a=e.timeout??12e4,N=e.registry||await y(r),l;for(let c=0;c<=u;c++)try{let g=new AbortController,m=setTimeout(()=>{g.abort();},a),s=await Promise.resolve(new Promise((A,f)=>{exec(`${r} view ${n} version --registry=${N}`,{signal:g.signal,maxBuffer:1024*1024*10},(i,h,R)=>{let p=R?d(R):"",T=V(h);if(valid(T,!0))return A(T);let _=i?.message?o(i.message).trim():"";return i&&_&&!_.toLowerCase().startsWith("npm warn")&&!M(_)?f(p?new Error(p,{cause:i}):i):p?f(new Error(p)):i?f(i):A(T)});}));if(!valid(s,!0))throw clearTimeout(m),new Error(o(s).startsWith("[WARN] Request took")?`A timeout occurred while fetching the version for package "${n}" with tag "${t}".`:`Invalid version "${s}" fetched for package "${n}" with tag "${t}"`);return clearTimeout(m),s}catch(g){if(l=g,c<u){let m=Math.pow(2,c)*100;await new Promise(s=>setTimeout(s,m));}}throw l}export{P as a,Q as b};
@@ -0,0 +1 @@
1
+ import {b}from'./chunk-K3SCUKQU.js';import s from'env-paths';import {createStorage}from'unstorage';import m from'unstorage/drivers/fs';var h=1e3*60*60*2,i=createStorage({driver:m({base:s("storm-pnpm").cache})});function p(t,r){return `versions/${encodeURIComponent(r)}/${encodeURIComponent(t)}`}async function y(t,r){let n=p(t,r);try{let e=await i.getItem(n);if(e&&typeof e.checkedAt=="number"&&typeof e.version=="string"&&Date.now()-e.checkedAt<h)return e.version}catch{}let o=await b(t,r,{executable:"pnpm"});try{await i.setItem(n,{checkedAt:Date.now(),version:o});}catch{}return o}export{y as a};
@@ -0,0 +1,2 @@
1
+ 'use strict';var child_process=require('child_process'),semver=require('semver'),o=require('strip-ansi');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var o__default=/*#__PURE__*/_interopDefault(o);var w="latest";var x=w;async function P(n="npm"){return new Promise((t,e)=>{child_process.exec(`${n} config get registry`,(r,u,a)=>r&&!r.message.toLowerCase().trim().startsWith("npm warn")?e(r):a&&!a.toLowerCase().trim().startsWith("npm warn")?e(a):t(u.trim()));})}var S=/^(npm warn|\[[\d.]+ms\]|\[sys\]|\[warn\] request took)/i,v=/^\[[\d.]+ms\].*(?:\.env(?:\.local)?|"\.env)/i;function y(n){let t=n.trim();return t?[t,o__default.default(t)].some(r=>!r||S.test(r)||v.test(r)||/ms\].*\.env/i.test(r)?true:/\[[\d.]+ms\].*\.env/i.test(t)):true}function L(n){return n.split(/\r?\n/).map(t=>o__default.default(t).trim()).filter(t=>t.length>0).filter(t=>!y(t)).join(`
2
+ `).trim()}function d(n){let t=o__default.default(n).split(/\r?\n/).map(e=>e.trim()).filter(Boolean);for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r&&semver.valid(r,true))return r}return o__default.default(n).trim()}async function J(n,t=x,e={}){let r=e.executable||"npm",u=e.retries??3,a=e.timeout??12e4,M=e.registry||await P(r),l;for(let c=0;c<=u;c++)try{let g=new AbortController,m=setTimeout(()=>{g.abort();},a),s=await Promise.resolve(new Promise((A,f)=>{child_process.exec(`${r} view ${n} version --registry=${M}`,{signal:g.signal,maxBuffer:1024*1024*10},(i,N,R)=>{let p=R?L(R):"",T=d(N);if(semver.valid(T,!0))return A(T);let _=i?.message?o__default.default(i.message).trim():"";return i&&_&&!_.toLowerCase().startsWith("npm warn")&&!y(_)?f(p?new Error(p,{cause:i}):i):p?f(new Error(p)):i?f(i):A(T)});}));if(!semver.valid(s,!0))throw clearTimeout(m),new Error(o__default.default(s).startsWith("[WARN] Request took")?`A timeout occurred while fetching the version for package "${n}" with tag "${t}".`:`Invalid version "${s}" fetched for package "${n}" with tag "${t}"`);return clearTimeout(m),s}catch(g){if(l=g,c<u){let m=Math.pow(2,c)*100;await new Promise(s=>setTimeout(s,m));}}throw l}exports.a=x;exports.b=J;
@@ -0,0 +1 @@
1
+ 'use strict';var chunkGPEVYA4Z_cjs=require('./chunk-GPEVYA4Z.cjs'),fs=require('fs'),promises=require('fs/promises'),yaml=require('yaml');function s(o=chunkGPEVYA4Z_cjs.e(process.cwd())){let r=chunkGPEVYA4Z_cjs.d(o,"pnpm-workspace.yaml");if(!fs.existsSync(r))throw new Error(`No \`pnpm-workspace.yaml\` file found in workspace root (searched in: ${r}).`);return r}async function y(o=chunkGPEVYA4Z_cjs.e(process.cwd())){let r=await promises.readFile(s(o),"utf8");if(r)return yaml.parse(r)}async function h(o,r=chunkGPEVYA4Z_cjs.e(process.cwd())){let a=await chunkGPEVYA4Z_cjs.f(),i=yaml.stringify(o);chunkGPEVYA4Z_cjs.c(`Writing updated pnpm-workspace.yaml file to workspace root: ${i}`,a),await promises.writeFile(s(r),i);}exports.a=s;exports.b=y;exports.c=h;
@@ -0,0 +1 @@
1
+ 'use strict';var chunkS3XHZ3IV_cjs=require('./chunk-S3XHZ3IV.cjs'),s=require('env-paths'),unstorage=require('unstorage'),m=require('unstorage/drivers/fs');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var s__default=/*#__PURE__*/_interopDefault(s);var m__default=/*#__PURE__*/_interopDefault(m);var h=1e3*60*60*2,i=unstorage.createStorage({driver:m__default.default({base:s__default.default("storm-pnpm").cache})});function p(t,r){return `versions/${encodeURIComponent(r)}/${encodeURIComponent(t)}`}async function C(t,r){let n=p(t,r);try{let e=await i.getItem(n);if(e&&typeof e.checkedAt=="number"&&typeof e.version=="string"&&Date.now()-e.checkedAt<h)return e.version}catch{}let o=await chunkS3XHZ3IV_cjs.b(t,r,{executable:"pnpm"});try{await i.setItem(n,{checkedAt:Date.now(),version:o});}catch{}return o}exports.a=C;
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-7QKHH2VM.js';import {b,c}from'./chunk-HWXKHHSJ.js';import {a as a$1,b as b$1}from'./chunk-K3SCUKQU.js';import {e,f,c as c$1,b as b$2,a as a$2}from'./chunk-B2XEYHOF.js';import {valid,coerce,gt}from'semver';async function W(r=e(process.cwd())){let t=await b(r);if(!t)throw new Error("No pnpm-workspace.yaml file found");if(t?.catalog)return Object.fromEntries(Object.entries(t.catalog).map(([i,o])=>[i,o.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${r}
2
+ File content: ${JSON.stringify(t,null,2)}`);}async function R(r=e(process.cwd())){let t=await W(r);if(!t)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return t}async function O(r,t=e(process.cwd())){let i=await b(t);if(!i)throw new Error("No pnpm-workspace.yaml file found");i.catalog=Object.fromEntries(Object.entries(r).filter(([,o])=>o&&(o.startsWith("npm:")||valid(a(o),true))).map(([o,c])=>[o,c.replaceAll('"',"").replaceAll("'","")])),await c(i,t);}async function D(r,t,i={}){let{tag:o=a$1,prefix:c="^",workspaceRoot:w=e(),verbose:g=false}=i,a$2=await f(true,{workspaceRoot:w});g&&c$1(`Upgrading catalog entry for package "${t}" with tag "${o}"`,a$2);let e$1=await(i.versionResolver??((E,P)=>b$1(E,P,{executable:"pnpm"})))(t,o);if(!e$1)throw new Error(`Failed to fetch version for package "${t}" with tag "${o}"`);if(!valid(a(e$1),true))throw new Error(`Invalid version "${e$1}" fetched for package "${t}" with tag "${o}"`);let n=`${c||""}${a(e$1)}`,f$1=false;return r[t]?.startsWith("npm:")?(r[t]=n,b$2(`Writing version ${r[t]} to catalog for "${t}" package`,a$2)):!valid(coerce(r[t]))||coerce(r[t])&&coerce(n)&&gt(coerce(n),coerce(r[t]))?(r[t]=`${c||""}${a(n)}`,b$2(`Writing version ${r[t]} to catalog for "${t}" package`,a$2),f$1=true):g&&b$2(`The current version ${r[t]} for package "${t}" is greater than or equal to the version ${a(n)} fetched from the npm registry with tag "${o}". No update performed.`,a$2),{catalog:r,updated:f$1}}async function J(r,t={}){let{tag:i=a$1,prefix:o="^",throwIfMissingInCatalog:c=false,workspaceRoot:w=e(),verbose:g=false}=t,a$3=await f(true,{workspaceRoot:w}),e$1=await R(w);if(!e$1)throw new Error("No catalog found");if(c===true&&!e$1[r])throw new Error(`Package "${r}" not found in catalog: ${JSON.stringify(e$1,null,2)}`);g&&c$1(`Upgrading catalog entry for package "${r}" with tag "${i}"`,a$3);let n=await b$1(r,i,{executable:"pnpm"});if(!n)throw new Error(`Failed to fetch version for package "${r}" with tag "${i}"`);if(!valid(a(n),true))throw new Error(`Invalid version "${n}" fetched for package "${r}" with tag "${i}"`);let f$1=`${o||""}${a(n)}`;f$1===e$1[r]?g&&c$1(`The version for package "${r}" is already up to date in the catalog: ${f$1}`,a$3):!valid(a(e$1[r]),true)||coerce(e$1[r])&&coerce(f$1)&&gt(coerce(f$1),coerce(e$1[r]))?(e$1[r]=`${o||""}${a(f$1)}`,b$2(`Writing version ${e$1[r]} to catalog for "${r}" package`,a$3),await O(e$1,w)):g&&a$2(`The current version "${e$1[r]}" for package "${r}" is greater than or equal to the version "${f$1}" fetched from the npm registry with tag "${i}". No update performed.`,a$3);}export{W as a,R as b,O as c,D as d,J as e};
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkWAL5SD4G_cjs=require('./chunk-WAL5SD4G.cjs'),chunkS54KSJC2_cjs=require('./chunk-S54KSJC2.cjs'),chunkS3XHZ3IV_cjs=require('./chunk-S3XHZ3IV.cjs'),chunkGPEVYA4Z_cjs=require('./chunk-GPEVYA4Z.cjs'),semver=require('semver');async function W(r=chunkGPEVYA4Z_cjs.e(process.cwd())){let t=await chunkS54KSJC2_cjs.b(r);if(!t)throw new Error("No pnpm-workspace.yaml file found");if(t?.catalog)return Object.fromEntries(Object.entries(t.catalog).map(([i,o])=>[i,o.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${r}
2
+ File content: ${JSON.stringify(t,null,2)}`);}async function R(r=chunkGPEVYA4Z_cjs.e(process.cwd())){let t=await W(r);if(!t)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return t}async function O(r,t=chunkGPEVYA4Z_cjs.e(process.cwd())){let i=await chunkS54KSJC2_cjs.b(t);if(!i)throw new Error("No pnpm-workspace.yaml file found");i.catalog=Object.fromEntries(Object.entries(r).filter(([,o])=>o&&(o.startsWith("npm:")||semver.valid(chunkWAL5SD4G_cjs.a(o),true))).map(([o,c])=>[o,c.replaceAll('"',"").replaceAll("'","")])),await chunkS54KSJC2_cjs.c(i,t);}async function q(r,t,i={}){let{tag:o=chunkS3XHZ3IV_cjs.a,prefix:c="^",workspaceRoot:w=chunkGPEVYA4Z_cjs.e(),verbose:g=false}=i,a=await chunkGPEVYA4Z_cjs.f(true,{workspaceRoot:w});g&&chunkGPEVYA4Z_cjs.c(`Upgrading catalog entry for package "${t}" with tag "${o}"`,a);let e=await(i.versionResolver??((E,P)=>chunkS3XHZ3IV_cjs.b(E,P,{executable:"pnpm"})))(t,o);if(!e)throw new Error(`Failed to fetch version for package "${t}" with tag "${o}"`);if(!semver.valid(chunkWAL5SD4G_cjs.a(e),true))throw new Error(`Invalid version "${e}" fetched for package "${t}" with tag "${o}"`);let n=`${c||""}${chunkWAL5SD4G_cjs.a(e)}`,f=false;return r[t]?.startsWith("npm:")?(r[t]=n,chunkGPEVYA4Z_cjs.b(`Writing version ${r[t]} to catalog for "${t}" package`,a)):!semver.valid(semver.coerce(r[t]))||semver.coerce(r[t])&&semver.coerce(n)&&semver.gt(semver.coerce(n),semver.coerce(r[t]))?(r[t]=`${c||""}${chunkWAL5SD4G_cjs.a(n)}`,chunkGPEVYA4Z_cjs.b(`Writing version ${r[t]} to catalog for "${t}" package`,a),f=true):g&&chunkGPEVYA4Z_cjs.b(`The current version ${r[t]} for package "${t}" is greater than or equal to the version ${chunkWAL5SD4G_cjs.a(n)} fetched from the npm registry with tag "${o}". No update performed.`,a),{catalog:r,updated:f}}async function D(r,t={}){let{tag:i=chunkS3XHZ3IV_cjs.a,prefix:o="^",throwIfMissingInCatalog:c=false,workspaceRoot:w=chunkGPEVYA4Z_cjs.e(),verbose:g=false}=t,a=await chunkGPEVYA4Z_cjs.f(true,{workspaceRoot:w}),e=await R(w);if(!e)throw new Error("No catalog found");if(c===true&&!e[r])throw new Error(`Package "${r}" not found in catalog: ${JSON.stringify(e,null,2)}`);g&&chunkGPEVYA4Z_cjs.c(`Upgrading catalog entry for package "${r}" with tag "${i}"`,a);let n=await chunkS3XHZ3IV_cjs.b(r,i,{executable:"pnpm"});if(!n)throw new Error(`Failed to fetch version for package "${r}" with tag "${i}"`);if(!semver.valid(chunkWAL5SD4G_cjs.a(n),true))throw new Error(`Invalid version "${n}" fetched for package "${r}" with tag "${i}"`);let f=`${o||""}${chunkWAL5SD4G_cjs.a(n)}`;f===e[r]?g&&chunkGPEVYA4Z_cjs.c(`The version for package "${r}" is already up to date in the catalog: ${f}`,a):!semver.valid(chunkWAL5SD4G_cjs.a(e[r]),true)||semver.coerce(e[r])&&semver.coerce(f)&&semver.gt(semver.coerce(f),semver.coerce(e[r]))?(e[r]=`${o||""}${chunkWAL5SD4G_cjs.a(f)}`,chunkGPEVYA4Z_cjs.b(`Writing version ${e[r]} to catalog for "${r}" package`,a),await O(e,w)):g&&chunkGPEVYA4Z_cjs.a(`The current version "${e[r]}" for package "${r}" is greater than or equal to the version "${f}" fetched from the npm registry with tag "${i}". No update performed.`,a);}exports.a=W;exports.b=R;exports.c=O;exports.d=q;exports.e=D;
@@ -1 +1 @@
1
- 'use strict';var chunkR7G6VIBE_cjs=require('../chunk-R7G6VIBE.cjs');require('../chunk-WAL5SD4G.cjs'),require('../chunk-DCCUOXBC.cjs');Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.d}});
1
+ 'use strict';var chunkVDMRS6ZA_cjs=require('../chunk-VDMRS6ZA.cjs');require('../chunk-WAL5SD4G.cjs'),require('../chunk-S54KSJC2.cjs'),require('../chunk-S3XHZ3IV.cjs'),require('../chunk-GPEVYA4Z.cjs');Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.d}});
@@ -21,6 +21,12 @@ declare function getCatalog(workspaceRoot?: string): Promise<Record<string, stri
21
21
  */
22
22
  declare function setCatalog(catalog: Record<string, string>, workspaceRoot?: string): Promise<void>;
23
23
  interface UpgradeCatalogPackageOptions {
24
+ /**
25
+ * Resolve the npm version to use for the package.
26
+ *
27
+ * @defaultValue `getVersion(packageName, tag, { executable: "pnpm" })`
28
+ */
29
+ versionResolver?: (packageName: string, tag: string) => Promise<string>;
24
30
  /**
25
31
  * The npm tag to use when fetching the latest version of the package.
26
32
  *
@@ -21,6 +21,12 @@ declare function getCatalog(workspaceRoot?: string): Promise<Record<string, stri
21
21
  */
22
22
  declare function setCatalog(catalog: Record<string, string>, workspaceRoot?: string): Promise<void>;
23
23
  interface UpgradeCatalogPackageOptions {
24
+ /**
25
+ * Resolve the npm version to use for the package.
26
+ *
27
+ * @defaultValue `getVersion(packageName, tag, { executable: "pnpm" })`
28
+ */
29
+ versionResolver?: (packageName: string, tag: string) => Promise<string>;
24
30
  /**
25
31
  * The npm tag to use when fetching the latest version of the package.
26
32
  *
@@ -1 +1 @@
1
- export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-IO6HZNAO.js';import'../chunk-7QKHH2VM.js';import'../chunk-I3CX5PSA.js';
1
+ export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-V6F2T4U6.js';import'../chunk-7QKHH2VM.js';import'../chunk-HWXKHHSJ.js';import'../chunk-K3SCUKQU.js';import'../chunk-B2XEYHOF.js';
@@ -1 +1 @@
1
- 'use strict';require('../chunk-QNTSKZUU.cjs');var chunkO6SS6P3Y_cjs=require('../chunk-O6SS6P3Y.cjs'),chunkR7G6VIBE_cjs=require('../chunk-R7G6VIBE.cjs');require('../chunk-WAL5SD4G.cjs');var chunkDCCUOXBC_cjs=require('../chunk-DCCUOXBC.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkO6SS6P3Y_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.i}});
1
+ 'use strict';require('../chunk-3CHW2FOO.cjs');var chunkDIZITLVX_cjs=require('../chunk-DIZITLVX.cjs'),chunkVDMRS6ZA_cjs=require('../chunk-VDMRS6ZA.cjs');require('../chunk-WAL5SD4G.cjs');var chunkS54KSJC2_cjs=require('../chunk-S54KSJC2.cjs'),chunkTO3DOAPW_cjs=require('../chunk-TO3DOAPW.cjs');require('../chunk-S3XHZ3IV.cjs'),require('../chunk-GPEVYA4Z.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkDIZITLVX_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.a}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.b}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.c}});Object.defineProperty(exports,"getCachedVersion",{enumerable:true,get:function(){return chunkTO3DOAPW_cjs.a}});
@@ -1,4 +1,5 @@
1
1
  export { UpgradeCatalogPackageOptions, UpgradeCatalogResult, getCatalog, getCatalogSafe, saveCatalog, setCatalog, upgradeCatalog } from './catalog.cjs';
2
2
  export { getPnpmWorkspaceFilePath, readPnpmWorkspaceFile, writePnpmWorkspaceFile } from './pnpm-workspace.cjs';
3
3
  export { replaceDepsAliases } from './replace-deps-aliases.cjs';
4
+ export { getCachedVersion } from './version-cache.cjs';
4
5
  import '../types.cjs';
@@ -1,4 +1,5 @@
1
1
  export { UpgradeCatalogPackageOptions, UpgradeCatalogResult, getCatalog, getCatalogSafe, saveCatalog, setCatalog, upgradeCatalog } from './catalog.js';
2
2
  export { getPnpmWorkspaceFilePath, readPnpmWorkspaceFile, writePnpmWorkspaceFile } from './pnpm-workspace.js';
3
3
  export { replaceDepsAliases } from './replace-deps-aliases.js';
4
+ export { getCachedVersion } from './version-cache.js';
4
5
  import '../types.js';
@@ -1 +1 @@
1
- import'../chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'../chunk-N2BUDGF7.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-IO6HZNAO.js';import'../chunk-7QKHH2VM.js';export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'../chunk-I3CX5PSA.js';
1
+ import'../chunk-PJBAL7AE.js';export{a as replaceDepsAliases}from'../chunk-JKN4PJKR.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'../chunk-V6F2T4U6.js';import'../chunk-7QKHH2VM.js';export{a as getPnpmWorkspaceFilePath,b as readPnpmWorkspaceFile,c as writePnpmWorkspaceFile}from'../chunk-HWXKHHSJ.js';export{a as getCachedVersion}from'../chunk-RHS7YLK3.js';import'../chunk-K3SCUKQU.js';import'../chunk-B2XEYHOF.js';
@@ -1 +1 @@
1
- 'use strict';var chunkDCCUOXBC_cjs=require('../chunk-DCCUOXBC.cjs');Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.i}});
1
+ 'use strict';var chunkS54KSJC2_cjs=require('../chunk-S54KSJC2.cjs');require('../chunk-GPEVYA4Z.cjs');Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.a}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.b}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.c}});
@@ -1 +1 @@
1
- export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'../chunk-I3CX5PSA.js';
1
+ export{a as getPnpmWorkspaceFilePath,b as readPnpmWorkspaceFile,c as writePnpmWorkspaceFile}from'../chunk-HWXKHHSJ.js';import'../chunk-B2XEYHOF.js';
@@ -1 +1 @@
1
- 'use strict';var chunkO6SS6P3Y_cjs=require('../chunk-O6SS6P3Y.cjs');require('../chunk-R7G6VIBE.cjs'),require('../chunk-WAL5SD4G.cjs'),require('../chunk-DCCUOXBC.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkO6SS6P3Y_cjs.a}});
1
+ 'use strict';var chunkDIZITLVX_cjs=require('../chunk-DIZITLVX.cjs');require('../chunk-VDMRS6ZA.cjs'),require('../chunk-WAL5SD4G.cjs'),require('../chunk-S54KSJC2.cjs'),require('../chunk-S3XHZ3IV.cjs'),require('../chunk-GPEVYA4Z.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkDIZITLVX_cjs.a}});
@@ -1 +1 @@
1
- export{a as replaceDepsAliases}from'../chunk-N2BUDGF7.js';import'../chunk-IO6HZNAO.js';import'../chunk-7QKHH2VM.js';import'../chunk-I3CX5PSA.js';
1
+ export{a as replaceDepsAliases}from'../chunk-JKN4PJKR.js';import'../chunk-V6F2T4U6.js';import'../chunk-7QKHH2VM.js';import'../chunk-HWXKHHSJ.js';import'../chunk-K3SCUKQU.js';import'../chunk-B2XEYHOF.js';
@@ -0,0 +1 @@
1
+ 'use strict';var chunkTO3DOAPW_cjs=require('../chunk-TO3DOAPW.cjs');require('../chunk-S3XHZ3IV.cjs'),require('../chunk-GPEVYA4Z.cjs');Object.defineProperty(exports,"getCachedVersion",{enumerable:true,get:function(){return chunkTO3DOAPW_cjs.a}});
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get an npm package version, using the Storm pnpm user cache for one day.
3
+ *
4
+ * @param packageName The npm package to query.
5
+ * @param tag The npm dist-tag to query.
6
+ * @returns The cached or freshly fetched package version.
7
+ */
8
+ declare function getCachedVersion(packageName: string, tag: string): Promise<string>;
9
+
10
+ export { getCachedVersion };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get an npm package version, using the Storm pnpm user cache for one day.
3
+ *
4
+ * @param packageName The npm package to query.
5
+ * @param tag The npm dist-tag to query.
6
+ * @returns The cached or freshly fetched package version.
7
+ */
8
+ declare function getCachedVersion(packageName: string, tag: string): Promise<string>;
9
+
10
+ export { getCachedVersion };
@@ -0,0 +1 @@
1
+ export{a as getCachedVersion}from'../chunk-RHS7YLK3.js';import'../chunk-K3SCUKQU.js';import'../chunk-B2XEYHOF.js';
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';require('./chunk-SFZRYJZ2.cjs'),require('./chunk-QNTSKZUU.cjs');var chunkO6SS6P3Y_cjs=require('./chunk-O6SS6P3Y.cjs'),chunkR7G6VIBE_cjs=require('./chunk-R7G6VIBE.cjs');require('./chunk-WAL5SD4G.cjs');var chunkDCCUOXBC_cjs=require('./chunk-DCCUOXBC.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkO6SS6P3Y_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkR7G6VIBE_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.g}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.h}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkDCCUOXBC_cjs.i}});
1
+ 'use strict';require('./chunk-SFZRYJZ2.cjs'),require('./chunk-3CHW2FOO.cjs');var chunkDIZITLVX_cjs=require('./chunk-DIZITLVX.cjs'),chunkVDMRS6ZA_cjs=require('./chunk-VDMRS6ZA.cjs');require('./chunk-WAL5SD4G.cjs');var chunkS54KSJC2_cjs=require('./chunk-S54KSJC2.cjs'),chunkTO3DOAPW_cjs=require('./chunk-TO3DOAPW.cjs');require('./chunk-S3XHZ3IV.cjs'),require('./chunk-GPEVYA4Z.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkDIZITLVX_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.a}});Object.defineProperty(exports,"saveCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.e}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.c}});Object.defineProperty(exports,"upgradeCatalog",{enumerable:true,get:function(){return chunkVDMRS6ZA_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.a}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.b}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkS54KSJC2_cjs.c}});Object.defineProperty(exports,"getCachedVersion",{enumerable:true,get:function(){return chunkTO3DOAPW_cjs.a}});
package/dist/index.d.cts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { UpgradeCatalogPackageOptions, UpgradeCatalogResult, getCatalog, getCatalogSafe, saveCatalog, setCatalog, upgradeCatalog } from './helpers/catalog.cjs';
2
2
  export { getPnpmWorkspaceFilePath, readPnpmWorkspaceFile, writePnpmWorkspaceFile } from './helpers/pnpm-workspace.cjs';
3
3
  export { replaceDepsAliases } from './helpers/replace-deps-aliases.cjs';
4
+ export { getCachedVersion } from './helpers/version-cache.cjs';
4
5
  export { PnpmWorkspaceFile } from './types.cjs';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { UpgradeCatalogPackageOptions, UpgradeCatalogResult, getCatalog, getCatalogSafe, saveCatalog, setCatalog, upgradeCatalog } from './helpers/catalog.js';
2
2
  export { getPnpmWorkspaceFilePath, readPnpmWorkspaceFile, writePnpmWorkspaceFile } from './helpers/pnpm-workspace.js';
3
3
  export { replaceDepsAliases } from './helpers/replace-deps-aliases.js';
4
+ export { getCachedVersion } from './helpers/version-cache.js';
4
5
  export { PnpmWorkspaceFile } from './types.js';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-GGNOJ77I.js';import'./chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'./chunk-N2BUDGF7.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'./chunk-IO6HZNAO.js';import'./chunk-7QKHH2VM.js';export{g as getPnpmWorkspaceFilePath,h as readPnpmWorkspaceFile,i as writePnpmWorkspaceFile}from'./chunk-I3CX5PSA.js';
1
+ import'./chunk-GGNOJ77I.js';import'./chunk-PJBAL7AE.js';export{a as replaceDepsAliases}from'./chunk-JKN4PJKR.js';export{b as getCatalog,a as getCatalogSafe,e as saveCatalog,c as setCatalog,d as upgradeCatalog}from'./chunk-V6F2T4U6.js';import'./chunk-7QKHH2VM.js';export{a as getPnpmWorkspaceFilePath,b as readPnpmWorkspaceFile,c as writePnpmWorkspaceFile}from'./chunk-HWXKHHSJ.js';export{a as getCachedVersion}from'./chunk-RHS7YLK3.js';import'./chunk-K3SCUKQU.js';import'./chunk-B2XEYHOF.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/pnpm-tools",
3
- "version": "0.7.148",
3
+ "version": "0.7.150",
4
4
  "private": false,
5
5
  "description": "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
6
6
  "repository": {
@@ -73,16 +73,18 @@
73
73
  "storm-pnpm-esm": "./bin/pnpm.js"
74
74
  },
75
75
  "dependencies": {
76
- "@storm-software/config": "1.138.70",
77
- "@storm-software/config-tools": "1.190.134",
78
- "@storm-software/npm-tools": "0.6.254",
79
- "@storm-software/package-constants": "0.1.146",
76
+ "@storm-software/config": "1.138.72",
77
+ "@storm-software/config-tools": "1.190.136",
78
+ "@storm-software/npm-tools": "0.6.256",
79
+ "@storm-software/package-constants": "0.1.148",
80
80
  "chalk": "^4.1.2",
81
81
  "commander": "^12.1.0",
82
82
  "defu": "^6.1.7",
83
83
  "prettier": "^3.9.6",
84
84
  "prettier-plugin-packagejson": "^3.0.2",
85
+ "env-paths": "^4.0.0",
85
86
  "semver": "^7.8.5",
87
+ "unstorage": "^1.17.5",
86
88
  "yaml": "^2.9.0"
87
89
  },
88
90
  "devDependencies": {
@@ -91,5 +93,5 @@
91
93
  "tsup": "8.4.0"
92
94
  },
93
95
  "publishConfig": { "access": "public" },
94
- "gitHead": "e4eade114ec82c06a4f237c140c5d92caa6baede"
96
+ "gitHead": "650ae28d2c0392b41bd84818fabb88469c10c892"
95
97
  }
@@ -1,3 +0,0 @@
1
- import {a}from'./chunk-7QKHH2VM.js';import {h,e,i,f,c,b,a as a$1}from'./chunk-I3CX5PSA.js';import {exec}from'node:child_process';import {valid,coerce,gt}from'semver';import d from'strip-ansi';var U="latest";var $=U;async function V(r="npm"){return new Promise((t,n)=>{exec(`${r} config get registry`,(e,f,c)=>e&&!e.message.toLowerCase().trim().startsWith("npm warn")?n(e):c&&!c.toLowerCase().trim().startsWith("npm warn")?n(c):t(f.trim()));})}var D=/^(npm warn|\[[\d.]+ms\]|\[sys\]|\[warn\] request took)/i,k=/^\[[\d.]+ms\].*(?:\.env(?:\.local)?|"\.env)/i;function L(r){let t=r.trim();return t?[t,d(t)].some(e=>!e||D.test(e)||k.test(e)||/ms\].*\.env/i.test(e)?true:/\[[\d.]+ms\].*\.env/i.test(t)):true}function H(r){return r.split(/\r?\n/).map(t=>d(t).trim()).filter(t=>t.length>0).filter(t=>!L(t)).join(`
2
- `).trim()}function N(r){let t=d(r).split(/\r?\n/).map(n=>n.trim()).filter(Boolean);for(let n=t.length-1;n>=0;n-=1){let e=t[n];if(e&&valid(e,true))return e}return d(r).trim()}async function M(r,t=$,n={}){let e=n.executable||"npm",f=n.retries??3,c=n.timeout??1e4,u=n.registry||await V(e),a;for(let o=0;o<=f;o++)try{let i=new AbortController,s=setTimeout(()=>{i.abort();},c),m=await Promise.resolve(new Promise((b,_)=>{exec(`${e} view ${r} version --registry=${u}`,{signal:i.signal,maxBuffer:1024*1024*10},(l,F,I)=>{let T=I?H(I):"",x=N(F);if(valid(x,!0))return b(x);let y=l?.message?d(l.message).trim():"";return l&&y&&!y.toLowerCase().startsWith("npm warn")&&!L(y)?_(T?new Error(T,{cause:l}):l):T?_(new Error(T)):l?_(l):b(x)});}));if(!valid(m,!0))throw clearTimeout(s),new Error(d(m).startsWith("[WARN] Request took")?`A timeout occurred while fetching the version for package "${r}" with tag "${t}".`:`Invalid version "${m}" fetched for package "${r}" with tag "${t}"`);return clearTimeout(s),m}catch(i){if(a=i,o<f){let s=Math.pow(2,o)*100;await new Promise(m=>setTimeout(m,s));}}throw a}async function q(r=e(process.cwd())){let t=await h(r);if(!t)throw new Error("No pnpm-workspace.yaml file found");if(t?.catalog)return Object.fromEntries(Object.entries(t.catalog).map(([n,e])=>[n,e.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${r}
3
- File content: ${JSON.stringify(t,null,2)}`);}async function j(r=e(process.cwd())){let t=await q(r);if(!t)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return t}async function J(r,t=e(process.cwd())){let n=await h(t);if(!n)throw new Error("No pnpm-workspace.yaml file found");n.catalog=Object.fromEntries(Object.entries(r).filter(([,e])=>e&&(e.startsWith("npm:")||valid(a(e),true))).map(([e,f])=>[e,f.replaceAll('"',"").replaceAll("'","")])),await i(n,t);}async function Rt(r,t,n={}){let{tag:e$1=$,prefix:f$1="^",workspaceRoot:c$1=e(),verbose:u=false}=n,a$1=await f(true,{workspaceRoot:c$1});u&&c(`Upgrading catalog entry for package "${t}" with tag "${e$1}"`,a$1);let o=await M(t,e$1,{executable:"pnpm"});if(!o)throw new Error(`Failed to fetch version for package "${t}" with tag "${e$1}"`);if(!valid(a(o),true))throw new Error(`Invalid version "${o}" fetched for package "${t}" with tag "${e$1}"`);let i=`${f$1||""}${a(o)}`,s=false;return r[t]?.startsWith("npm:")?(r[t]=i,b(`Writing version ${r[t]} to catalog for "${t}" package`,a$1)):!valid(coerce(r[t]))||coerce(r[t])&&coerce(i)&&gt(coerce(i),coerce(r[t]))?(r[t]=`${f$1||""}${a(i)}`,b(`Writing version ${r[t]} to catalog for "${t}" package`,a$1),s=true):u&&b(`The current version ${r[t]} for package "${t}" is greater than or equal to the version ${a(i)} fetched from the npm registry with tag "${e$1}". No update performed.`,a$1),{catalog:r,updated:s}}async function _t(r,t={}){let{tag:n=$,prefix:e$1="^",throwIfMissingInCatalog:f$1=false,workspaceRoot:c$1=e(),verbose:u=false}=t,a$2=await f(true,{workspaceRoot:c$1}),o=await j(c$1);if(!o)throw new Error("No catalog found");if(f$1===true&&!o[r])throw new Error(`Package "${r}" not found in catalog: ${JSON.stringify(o,null,2)}`);u&&c(`Upgrading catalog entry for package "${r}" with tag "${n}"`,a$2);let i=await M(r,n,{executable:"pnpm"});if(!i)throw new Error(`Failed to fetch version for package "${r}" with tag "${n}"`);if(!valid(a(i),true))throw new Error(`Invalid version "${i}" fetched for package "${r}" with tag "${n}"`);let s=`${e$1||""}${a(i)}`;s===o[r]?u&&c(`The version for package "${r}" is already up to date in the catalog: ${s}`,a$2):!valid(a(o[r]),true)||coerce(o[r])&&coerce(s)&&gt(coerce(s),coerce(o[r]))?(o[r]=`${e$1||""}${a(s)}`,b(`Writing version ${o[r]} to catalog for "${r}" package`,a$2),await J(o,c$1)):u&&a$1(`The current version "${o[r]}" for package "${r}" is greater than or equal to the version "${s}" fetched from the npm registry with tag "${n}". No update performed.`,a$2);}export{q as a,j as b,J as c,Rt as d,_t as e};
@@ -1,3 +0,0 @@
1
- 'use strict';var chunkWAL5SD4G_cjs=require('./chunk-WAL5SD4G.cjs'),chunkDCCUOXBC_cjs=require('./chunk-DCCUOXBC.cjs'),child_process=require('child_process'),semver=require('semver'),d=require('strip-ansi');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var O="latest";var $=O;async function U(r="npm"){return new Promise((t,n)=>{child_process.exec(`${r} config get registry`,(e,f,c)=>e&&!e.message.toLowerCase().trim().startsWith("npm warn")?n(e):c&&!c.toLowerCase().trim().startsWith("npm warn")?n(c):t(f.trim()));})}var Y=/^(npm warn|\[[\d.]+ms\]|\[sys\]|\[warn\] request took)/i,D=/^\[[\d.]+ms\].*(?:\.env(?:\.local)?|"\.env)/i;function V(r){let t=r.trim();return t?[t,d__default.default(t)].some(e=>!e||Y.test(e)||D.test(e)||/ms\].*\.env/i.test(e)?true:/\[[\d.]+ms\].*\.env/i.test(t)):true}function k(r){return r.split(/\r?\n/).map(t=>d__default.default(t).trim()).filter(t=>t.length>0).filter(t=>!V(t)).join(`
2
- `).trim()}function H(r){let t=d__default.default(r).split(/\r?\n/).map(n=>n.trim()).filter(Boolean);for(let n=t.length-1;n>=0;n-=1){let e=t[n];if(e&&semver.valid(e,true))return e}return d__default.default(r).trim()}async function C(r,t=$,n={}){let e=n.executable||"npm",f=n.retries??3,c=n.timeout??1e4,u=n.registry||await U(e),a;for(let o=0;o<=f;o++)try{let i=new AbortController,s=setTimeout(()=>{i.abort();},c),m=await Promise.resolve(new Promise((M,_)=>{child_process.exec(`${e} view ${r} version --registry=${u}`,{signal:i.signal,maxBuffer:1024*1024*10},(l,W,b)=>{let T=b?k(b):"",x=H(W);if(semver.valid(x,!0))return M(x);let y=l?.message?d__default.default(l.message).trim():"";return l&&y&&!y.toLowerCase().startsWith("npm warn")&&!V(y)?_(T?new Error(T,{cause:l}):l):T?_(new Error(T)):l?_(l):M(x)});}));if(!semver.valid(m,!0))throw clearTimeout(s),new Error(d__default.default(m).startsWith("[WARN] Request took")?`A timeout occurred while fetching the version for package "${r}" with tag "${t}".`:`Invalid version "${m}" fetched for package "${r}" with tag "${t}"`);return clearTimeout(s),m}catch(i){if(a=i,o<f){let s=Math.pow(2,o)*100;await new Promise(m=>setTimeout(m,s));}}throw a}async function N(r=chunkDCCUOXBC_cjs.e(process.cwd())){let t=await chunkDCCUOXBC_cjs.h(r);if(!t)throw new Error("No pnpm-workspace.yaml file found");if(t?.catalog)return Object.fromEntries(Object.entries(t.catalog).map(([n,e])=>[n,e.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${r}
3
- File content: ${JSON.stringify(t,null,2)}`);}async function q(r=chunkDCCUOXBC_cjs.e(process.cwd())){let t=await N(r);if(!t)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return t}async function j(r,t=chunkDCCUOXBC_cjs.e(process.cwd())){let n=await chunkDCCUOXBC_cjs.h(t);if(!n)throw new Error("No pnpm-workspace.yaml file found");n.catalog=Object.fromEntries(Object.entries(r).filter(([,e])=>e&&(e.startsWith("npm:")||semver.valid(chunkWAL5SD4G_cjs.a(e),true))).map(([e,f])=>[e,f.replaceAll('"',"").replaceAll("'","")])),await chunkDCCUOXBC_cjs.i(n,t);}async function Tt(r,t,n={}){let{tag:e=$,prefix:f="^",workspaceRoot:c=chunkDCCUOXBC_cjs.e(),verbose:u=false}=n,a=await chunkDCCUOXBC_cjs.f(true,{workspaceRoot:c});u&&chunkDCCUOXBC_cjs.c(`Upgrading catalog entry for package "${t}" with tag "${e}"`,a);let o=await C(t,e,{executable:"pnpm"});if(!o)throw new Error(`Failed to fetch version for package "${t}" with tag "${e}"`);if(!semver.valid(chunkWAL5SD4G_cjs.a(o),true))throw new Error(`Invalid version "${o}" fetched for package "${t}" with tag "${e}"`);let i=`${f||""}${chunkWAL5SD4G_cjs.a(o)}`,s=false;return r[t]?.startsWith("npm:")?(r[t]=i,chunkDCCUOXBC_cjs.b(`Writing version ${r[t]} to catalog for "${t}" package`,a)):!semver.valid(semver.coerce(r[t]))||semver.coerce(r[t])&&semver.coerce(i)&&semver.gt(semver.coerce(i),semver.coerce(r[t]))?(r[t]=`${f||""}${chunkWAL5SD4G_cjs.a(i)}`,chunkDCCUOXBC_cjs.b(`Writing version ${r[t]} to catalog for "${t}" package`,a),s=true):u&&chunkDCCUOXBC_cjs.b(`The current version ${r[t]} for package "${t}" is greater than or equal to the version ${chunkWAL5SD4G_cjs.a(i)} fetched from the npm registry with tag "${e}". No update performed.`,a),{catalog:r,updated:s}}async function Rt(r,t={}){let{tag:n=$,prefix:e="^",throwIfMissingInCatalog:f=false,workspaceRoot:c=chunkDCCUOXBC_cjs.e(),verbose:u=false}=t,a=await chunkDCCUOXBC_cjs.f(true,{workspaceRoot:c}),o=await q(c);if(!o)throw new Error("No catalog found");if(f===true&&!o[r])throw new Error(`Package "${r}" not found in catalog: ${JSON.stringify(o,null,2)}`);u&&chunkDCCUOXBC_cjs.c(`Upgrading catalog entry for package "${r}" with tag "${n}"`,a);let i=await C(r,n,{executable:"pnpm"});if(!i)throw new Error(`Failed to fetch version for package "${r}" with tag "${n}"`);if(!semver.valid(chunkWAL5SD4G_cjs.a(i),true))throw new Error(`Invalid version "${i}" fetched for package "${r}" with tag "${n}"`);let s=`${e||""}${chunkWAL5SD4G_cjs.a(i)}`;s===o[r]?u&&chunkDCCUOXBC_cjs.c(`The version for package "${r}" is already up to date in the catalog: ${s}`,a):!semver.valid(chunkWAL5SD4G_cjs.a(o[r]),true)||semver.coerce(o[r])&&semver.coerce(s)&&semver.gt(semver.coerce(s),semver.coerce(o[r]))?(o[r]=`${e||""}${chunkWAL5SD4G_cjs.a(s)}`,chunkDCCUOXBC_cjs.b(`Writing version ${o[r]} to catalog for "${r}" package`,a),await j(o,c)):u&&chunkDCCUOXBC_cjs.a(`The current version "${o[r]}" for package "${r}" is greater than or equal to the version "${s}" fetched from the npm registry with tag "${n}". No update performed.`,a);}exports.a=N;exports.b=q;exports.c=j;exports.d=Tt;exports.e=Rt;
File without changes
File without changes