@storm-software/pnpm-tools 0.4.6 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,46 @@
2
2
 
3
3
  # Changelog for Storm Ops - Pnpm Tools
4
4
 
5
+ ## [0.5.0](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.5.0) (2025-09-20)
6
+
7
+ ### Features
8
+
9
+ - **pnpm-tools:** Added `install`, `prefix`, and variadic arguments
10
+ ([eb53de496](https://github.com/storm-software/storm-ops/commit/eb53de496))
11
+
12
+ ### Bug Fixes
13
+
14
+ - **pnpm-tools:** Resolve issue with rendering `stdout` from command processing
15
+ ([4d442d1a7](https://github.com/storm-software/storm-ops/commit/4d442d1a7))
16
+
17
+ ### Miscellaneous
18
+
19
+ - **monorepo:** Update workspace package links
20
+ ([fb19259a0](https://github.com/storm-software/storm-ops/commit/fb19259a0))
21
+
22
+ ### Updated Dependencies
23
+
24
+ - Updated config-tools to 1.187.2
25
+ - Updated npm-tools to 0.4.7
26
+ - Updated config to 1.133.1
27
+
28
+ ## [0.4.6](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.4.6) (2025-09-20)
29
+
30
+ ### Bug Fixes
31
+
32
+ - **pnpm-tools:** Resolve issue with quotes added to catalog version values
33
+ ([150d4d63c](https://github.com/storm-software/storm-ops/commit/150d4d63c))
34
+
35
+ ### Miscellaneous
36
+
37
+ - **monorepo:** Update workspace package links
38
+ ([4c92c3fff](https://github.com/storm-software/storm-ops/commit/4c92c3fff))
39
+
40
+ ### Updated Dependencies
41
+
42
+ - Updated config-tools to 1.187.1
43
+ - Updated npm-tools to 0.4.6
44
+
5
45
  ## [0.4.5](https://github.com/storm-software/storm-ops/releases/tag/pnpm-tools%400.4.5) (2025-09-20)
6
46
 
7
47
  ### Bug Fixes
package/README.md CHANGED
@@ -21,7 +21,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
21
21
 
22
22
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
23
23
 
24
- [![Version](https://img.shields.io/badge/version-0.4.4-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
24
+ [![Version](https://img.shields.io/badge/version-0.4.6-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
25
25
 
26
26
  <!-- prettier-ignore-start -->
27
27
  <!-- markdownlint-disable -->
package/bin/pnpm.cjs CHANGED
@@ -8,7 +8,6 @@ var import_process_handler = require("@storm-software/config-tools/utilities/pro
8
8
  // src/cli/index.ts
9
9
  var import_config_tools = require("@storm-software/config-tools");
10
10
  var import_commander = require("commander");
11
- var import_node_child_process = require("child_process");
12
11
 
13
12
  // src/helpers/catalog.ts
14
13
  var import_get_config = require("@storm-software/config-tools/get-config");
@@ -96,6 +95,7 @@ async function setCatalog(catalog, workspaceRoot = (0, import_find_workspace_roo
96
95
  async function upgradeCatalogPackage(packageName, options = {}) {
97
96
  const {
98
97
  tag = import_constants.DEFAULT_NPM_TAG,
98
+ prefix = "^",
99
99
  throwIfMissingInCatalog = false,
100
100
  workspaceRoot = (0, import_find_workspace_root2.findWorkspaceRoot)()
101
101
  } = options;
@@ -120,13 +120,18 @@ async function upgradeCatalogPackage(packageName, options = {}) {
120
120
  const version = await (0, import_get_version.getVersion)(packageName, tag);
121
121
  if (!(0, import_semver.valid)((0, import_semver.coerce)(catalog[packageName])) || (0, import_semver.coerce)(catalog[packageName]) && (0, import_semver.coerce)(version) && // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
122
122
  (0, import_semver.gt)((0, import_semver.coerce)(version), (0, import_semver.coerce)(catalog[packageName]))) {
123
- catalog[packageName] = version;
123
+ catalog[packageName] = `${prefix || ""}${version}`;
124
+ (0, import_console.writeDebug)(
125
+ `Writing version ${version} to catalog for "${packageName}" package`,
126
+ workspaceConfig
127
+ );
128
+ await setCatalog(catalog, workspaceRoot);
129
+ } else {
130
+ (0, import_console.writeWarning)(
131
+ `The current version "${catalog[packageName]}" for package "${packageName}" is greater than or equal to the version "${version}" fetched from the npm registry with tag "${tag}". No update performed.`,
132
+ workspaceConfig
133
+ );
124
134
  }
125
- (0, import_console.writeDebug)(
126
- `Writing version ${version} to catalog for "${packageName}" package`,
127
- workspaceConfig
128
- );
129
- await setCatalog(catalog, workspaceRoot);
130
135
  }
131
136
 
132
137
  // src/cli/index.ts
@@ -142,24 +147,39 @@ function createProgram(config) {
142
147
  }
143
148
  const program = new import_commander.Command("storm-pnpm");
144
149
  program.version("1.0.0", "-v --version", "display CLI version");
145
- program.command("update").description("Update pnpm catalog dependency package version.").addArgument(
146
- new import_commander.Argument(
147
- "<package-name>",
148
- "The package name/pattern to update the version for (e.g., @storm-software/config or @storm-software/ for all Storm packages)."
149
- )
150
- ).option(
151
- "--tag <tag>",
152
- 'The npm tag to use when fetching the latest version of the package (e.g., "latest", "next", etc.). Defaults to "latest".',
153
- "latest"
154
- ).action(updateAction);
150
+ const packageNames = new import_commander.Argument(
151
+ "<package-names...>",
152
+ "The package name/pattern to update the version for (e.g., @storm-software/config or @storm-software/ for all Storm packages)."
153
+ );
154
+ const prefix = new import_commander.Option(
155
+ "-p, --prefix <string>",
156
+ `The version prefix to use when updating the package (e.g., "^", "~", or "1.2.3"). Defaults to "^".
157
+ - Caret (^): The default prefix. It allows updates to the latest minor or patch version while staying within the same major version. Example: \u201C^1.2.3" allows updates to 1.3.0 or 1.2.4, but not 2.0.0.
158
+ - Tilde (~): Allows updates to the latest patch version while staying within the same minor version. Example: \u201C~1.2.3" allows updates to 1.2.4 but not 1.3.0.
159
+ - Exact (no prefix): Locks the dependency to a specific version. No updates are allowed. Example: 1.2.3 will only use 1.2.3.
160
+ - Greater/Less Than (>, <, >=, <=): Specifies a range of acceptable versions. Example: \u201C>=1.2.3 <2.0.0" allows any version from 1.2.3 to 1.9.x.
161
+ - Wildcard (*): Allows the most flexibility by accepting any version. Example: \u201C*2.4.6" allows any version.`
162
+ ).choices(["^", "~", ">", "<", ">=", "<=", "*"]).default("^");
163
+ const tag = new import_commander.Option(
164
+ "-t, --tag <string>",
165
+ `The npm tag to use when fetching the latest version of the package (e.g., "latest", "next", etc.). Defaults to "latest".`
166
+ ).default("latest");
167
+ const install = new import_commander.Option(
168
+ "-i, --install",
169
+ "Whether to install the package after updating the version."
170
+ ).default(false);
171
+ program.command("update").description("Update pnpm catalog dependency package version.").addArgument(packageNames).addOption(tag).addOption(install).addOption(prefix).action(updateAction);
155
172
  return program;
156
173
  }
157
- async function updateAction(packageName, {
158
- tag
174
+ async function updateAction(packageNames, {
175
+ tag,
176
+ install = false,
177
+ prefix = "^"
159
178
  }) {
160
179
  try {
180
+ const packages = (Array.isArray(packageNames) ? packageNames : [packageNames.split(",")].flat()).map((p) => p.trim().replaceAll("*", ""));
161
181
  (0, import_config_tools.writeInfo)(
162
- `\u26A1 Preparing to update the package version for ${packageName}.`,
182
+ `\u26A1 Preparing to update the package version for ${packages.join(", ")}.`,
163
183
  _config
164
184
  );
165
185
  const catalog = await getCatalog();
@@ -168,52 +188,41 @@ async function updateAction(packageName, {
168
188
  "No catalog found in the pnpm-workspace.yaml file of the current workspace."
169
189
  );
170
190
  }
171
- (0, import_config_tools.writeTrace)(
172
- `Found catalog file with the following details:
191
+ for (const pkg of packages) {
192
+ const matchedPackages = Object.keys(catalog).filter(
193
+ (p) => pkg.endsWith("/") ? p.startsWith(pkg) : p === pkg
194
+ );
195
+ if (matchedPackages.length === 0) {
196
+ throw new Error(
197
+ `No packages found in the catalog matching the name/pattern "${pkg}".`
198
+ );
199
+ }
200
+ (0, import_config_tools.writeDebug)(
201
+ `Found ${matchedPackages.length} matching packages in the catalog file:
173
202
 
174
- ${JSON.stringify(
175
- catalog
176
- )}`,
177
- _config
178
- );
179
- const matchedPackages = Object.keys(catalog).filter(
180
- (pkg) => packageName.endsWith("/") ? pkg.startsWith(packageName) : pkg === packageName
181
- );
182
- if (matchedPackages.length === 0) {
183
- throw new Error(
184
- `No packages found in the catalog matching the name/pattern "${packageName}".`
203
+ - ${matchedPackages.map((p) => `${p} (${catalog[p] || "unknown"})`).join("\n- ")}`,
204
+ _config
205
+ );
206
+ await Promise.all(
207
+ matchedPackages.map(
208
+ (p) => upgradeCatalogPackage(p, {
209
+ tag,
210
+ throwIfMissingInCatalog: true,
211
+ prefix
212
+ })
213
+ )
185
214
  );
186
215
  }
187
- (0, import_config_tools.writeDebug)(
188
- `Found ${matchedPackages.length} matching packages in the catalog file:
189
-
190
- - ${matchedPackages.map((pkg) => `${pkg} (${catalog[pkg] || "unknown"})`).join("\n- ")}`,
191
- _config
192
- );
193
- await Promise.all(
194
- matchedPackages.map(
195
- (pkg) => upgradeCatalogPackage(pkg, { tag, throwIfMissingInCatalog: true })
196
- )
197
- );
198
- (0, import_config_tools.writeTrace)(
199
- "Running `pnpm dedupe` to update local dependency versions",
200
- _config
201
- );
202
- await new Promise((resolve, reject) => {
203
- (0, import_node_child_process.exec)("pnpm dedupe", (error, stdout, stderr) => {
204
- if (error) {
205
- return reject(error);
206
- }
207
- if (stderr) {
208
- return reject(stderr);
209
- }
210
- return resolve(stdout.trim());
216
+ if (install) {
217
+ (0, import_config_tools.writeTrace)(
218
+ "Running `pnpm install --no-frozen-lockfile` to update local dependency versions",
219
+ _config
220
+ );
221
+ const proc = await (0, import_config_tools.runAsync)(_config, "pnpm install --no-frozen-lockfile");
222
+ proc.stdout?.on("data", (data) => {
223
+ console.log(data.toString());
211
224
  });
212
- });
213
- (0, import_config_tools.writeSuccess)(
214
- `\u{1F389} Storm pnpm update processing completed successfully!`,
215
- _config
216
- );
225
+ }
217
226
  } catch (error) {
218
227
  (0, import_config_tools.writeFatal)(
219
228
  `A fatal error occurred while running Storm pnpm update:
package/bin/pnpm.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // bin/pnpm.ts
4
4
  import { getWorkspaceConfig as getWorkspaceConfig2 } from "@storm-software/config-tools/get-config";
5
- import { writeSuccess as writeSuccess2 } from "@storm-software/config-tools/logger/console";
5
+ import { writeSuccess } from "@storm-software/config-tools/logger/console";
6
6
  import {
7
7
  exitWithError,
8
8
  exitWithSuccess,
@@ -12,20 +12,20 @@ import {
12
12
  // src/cli/index.ts
13
13
  import {
14
14
  findWorkspaceRootSafe,
15
+ runAsync,
15
16
  writeDebug as writeDebug2,
16
17
  writeFatal,
17
18
  writeInfo,
18
- writeSuccess,
19
19
  writeTrace as writeTrace2
20
20
  } from "@storm-software/config-tools";
21
- import { Argument, Command } from "commander";
22
- import { exec } from "node:child_process";
21
+ import { Argument, Command, Option } from "commander";
23
22
 
24
23
  // src/helpers/catalog.ts
25
24
  import { getWorkspaceConfig } from "@storm-software/config-tools/get-config";
26
25
  import {
27
26
  writeDebug,
28
- writeTrace
27
+ writeTrace,
28
+ writeWarning
29
29
  } from "@storm-software/config-tools/logger/console";
30
30
  import { findWorkspaceRoot as findWorkspaceRoot2 } from "@storm-software/config-tools/utilities/find-workspace-root";
31
31
  import { DEFAULT_NPM_TAG } from "@storm-software/npm-tools/constants";
@@ -110,6 +110,7 @@ async function setCatalog(catalog, workspaceRoot = findWorkspaceRoot2(process.cw
110
110
  async function upgradeCatalogPackage(packageName, options = {}) {
111
111
  const {
112
112
  tag = DEFAULT_NPM_TAG,
113
+ prefix = "^",
113
114
  throwIfMissingInCatalog = false,
114
115
  workspaceRoot = findWorkspaceRoot2()
115
116
  } = options;
@@ -134,13 +135,18 @@ async function upgradeCatalogPackage(packageName, options = {}) {
134
135
  const version = await getVersion(packageName, tag);
135
136
  if (!valid(coerce(catalog[packageName])) || coerce(catalog[packageName]) && coerce(version) && // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
136
137
  gt(coerce(version), coerce(catalog[packageName]))) {
137
- catalog[packageName] = version;
138
+ catalog[packageName] = `${prefix || ""}${version}`;
139
+ writeDebug(
140
+ `Writing version ${version} to catalog for "${packageName}" package`,
141
+ workspaceConfig
142
+ );
143
+ await setCatalog(catalog, workspaceRoot);
144
+ } else {
145
+ writeWarning(
146
+ `The current version "${catalog[packageName]}" for package "${packageName}" is greater than or equal to the version "${version}" fetched from the npm registry with tag "${tag}". No update performed.`,
147
+ workspaceConfig
148
+ );
138
149
  }
139
- writeDebug(
140
- `Writing version ${version} to catalog for "${packageName}" package`,
141
- workspaceConfig
142
- );
143
- await setCatalog(catalog, workspaceRoot);
144
150
  }
145
151
 
146
152
  // src/cli/index.ts
@@ -156,24 +162,39 @@ function createProgram(config) {
156
162
  }
157
163
  const program = new Command("storm-pnpm");
158
164
  program.version("1.0.0", "-v --version", "display CLI version");
159
- program.command("update").description("Update pnpm catalog dependency package version.").addArgument(
160
- new Argument(
161
- "<package-name>",
162
- "The package name/pattern to update the version for (e.g., @storm-software/config or @storm-software/ for all Storm packages)."
163
- )
164
- ).option(
165
- "--tag <tag>",
166
- 'The npm tag to use when fetching the latest version of the package (e.g., "latest", "next", etc.). Defaults to "latest".',
167
- "latest"
168
- ).action(updateAction);
165
+ const packageNames = new Argument(
166
+ "<package-names...>",
167
+ "The package name/pattern to update the version for (e.g., @storm-software/config or @storm-software/ for all Storm packages)."
168
+ );
169
+ const prefix = new Option(
170
+ "-p, --prefix <string>",
171
+ `The version prefix to use when updating the package (e.g., "^", "~", or "1.2.3"). Defaults to "^".
172
+ - Caret (^): The default prefix. It allows updates to the latest minor or patch version while staying within the same major version. Example: \u201C^1.2.3" allows updates to 1.3.0 or 1.2.4, but not 2.0.0.
173
+ - Tilde (~): Allows updates to the latest patch version while staying within the same minor version. Example: \u201C~1.2.3" allows updates to 1.2.4 but not 1.3.0.
174
+ - Exact (no prefix): Locks the dependency to a specific version. No updates are allowed. Example: 1.2.3 will only use 1.2.3.
175
+ - Greater/Less Than (>, <, >=, <=): Specifies a range of acceptable versions. Example: \u201C>=1.2.3 <2.0.0" allows any version from 1.2.3 to 1.9.x.
176
+ - Wildcard (*): Allows the most flexibility by accepting any version. Example: \u201C*2.4.6" allows any version.`
177
+ ).choices(["^", "~", ">", "<", ">=", "<=", "*"]).default("^");
178
+ const tag = new Option(
179
+ "-t, --tag <string>",
180
+ `The npm tag to use when fetching the latest version of the package (e.g., "latest", "next", etc.). Defaults to "latest".`
181
+ ).default("latest");
182
+ const install = new Option(
183
+ "-i, --install",
184
+ "Whether to install the package after updating the version."
185
+ ).default(false);
186
+ program.command("update").description("Update pnpm catalog dependency package version.").addArgument(packageNames).addOption(tag).addOption(install).addOption(prefix).action(updateAction);
169
187
  return program;
170
188
  }
171
- async function updateAction(packageName, {
172
- tag
189
+ async function updateAction(packageNames, {
190
+ tag,
191
+ install = false,
192
+ prefix = "^"
173
193
  }) {
174
194
  try {
195
+ const packages = (Array.isArray(packageNames) ? packageNames : [packageNames.split(",")].flat()).map((p) => p.trim().replaceAll("*", ""));
175
196
  writeInfo(
176
- `\u26A1 Preparing to update the package version for ${packageName}.`,
197
+ `\u26A1 Preparing to update the package version for ${packages.join(", ")}.`,
177
198
  _config
178
199
  );
179
200
  const catalog = await getCatalog();
@@ -182,52 +203,41 @@ async function updateAction(packageName, {
182
203
  "No catalog found in the pnpm-workspace.yaml file of the current workspace."
183
204
  );
184
205
  }
185
- writeTrace2(
186
- `Found catalog file with the following details:
206
+ for (const pkg of packages) {
207
+ const matchedPackages = Object.keys(catalog).filter(
208
+ (p) => pkg.endsWith("/") ? p.startsWith(pkg) : p === pkg
209
+ );
210
+ if (matchedPackages.length === 0) {
211
+ throw new Error(
212
+ `No packages found in the catalog matching the name/pattern "${pkg}".`
213
+ );
214
+ }
215
+ writeDebug2(
216
+ `Found ${matchedPackages.length} matching packages in the catalog file:
187
217
 
188
- ${JSON.stringify(
189
- catalog
190
- )}`,
191
- _config
192
- );
193
- const matchedPackages = Object.keys(catalog).filter(
194
- (pkg) => packageName.endsWith("/") ? pkg.startsWith(packageName) : pkg === packageName
195
- );
196
- if (matchedPackages.length === 0) {
197
- throw new Error(
198
- `No packages found in the catalog matching the name/pattern "${packageName}".`
218
+ - ${matchedPackages.map((p) => `${p} (${catalog[p] || "unknown"})`).join("\n- ")}`,
219
+ _config
220
+ );
221
+ await Promise.all(
222
+ matchedPackages.map(
223
+ (p) => upgradeCatalogPackage(p, {
224
+ tag,
225
+ throwIfMissingInCatalog: true,
226
+ prefix
227
+ })
228
+ )
199
229
  );
200
230
  }
201
- writeDebug2(
202
- `Found ${matchedPackages.length} matching packages in the catalog file:
203
-
204
- - ${matchedPackages.map((pkg) => `${pkg} (${catalog[pkg] || "unknown"})`).join("\n- ")}`,
205
- _config
206
- );
207
- await Promise.all(
208
- matchedPackages.map(
209
- (pkg) => upgradeCatalogPackage(pkg, { tag, throwIfMissingInCatalog: true })
210
- )
211
- );
212
- writeTrace2(
213
- "Running `pnpm dedupe` to update local dependency versions",
214
- _config
215
- );
216
- await new Promise((resolve, reject) => {
217
- exec("pnpm dedupe", (error, stdout, stderr) => {
218
- if (error) {
219
- return reject(error);
220
- }
221
- if (stderr) {
222
- return reject(stderr);
223
- }
224
- return resolve(stdout.trim());
231
+ if (install) {
232
+ writeTrace2(
233
+ "Running `pnpm install --no-frozen-lockfile` to update local dependency versions",
234
+ _config
235
+ );
236
+ const proc = await runAsync(_config, "pnpm install --no-frozen-lockfile");
237
+ proc.stdout?.on("data", (data) => {
238
+ console.log(data.toString());
225
239
  });
226
- });
227
- writeSuccess(
228
- `\u{1F389} Storm pnpm update processing completed successfully!`,
229
- _config
230
- );
240
+ }
231
241
  } catch (error) {
232
242
  writeFatal(
233
243
  `A fatal error occurred while running Storm pnpm update:
@@ -250,7 +260,7 @@ void (async () => {
250
260
  handleProcess(config);
251
261
  const program = createProgram(config);
252
262
  await program.parseAsync(process.argv);
253
- writeSuccess2(
263
+ writeSuccess(
254
264
  `\u{1F389} Storm pnpm ${process.argv && process.argv.length >= 3 && process.argv[2] ? process.argv[2] : "tool"} processing completed successfully!`,
255
265
  config
256
266
  );
@@ -1 +1 @@
1
- import {b as b$1}from'./chunk-IRDZWJUO.js';import {c,b}from'./chunk-LGDN3UHN.js';import {readCachedProjectGraph,createProjectGraphAsync}from'@nx/devkit';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {format}from'prettier';async function $(c$1=process.cwd(),i=c(c$1)){let l=b(c$1,"package.json"),m=await readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c$1);let p=await b$1(i),r=JSON.parse(m),g=b(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.`),r;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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={};n&&await Promise.all(Object.keys(n.nodes).map(async a=>{let o=n.nodes[a];if(o?.data.root){let e=b(i,o.data.root,"package.json");if(existsSync(e)){let t=await readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d[f.name]=f.version);}}}));for(let a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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 writeFile(l,await format(JSON.stringify(r),{parser:"json",proseWrap:"always",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-pkg"]}))}export{$ as a};
1
+ import {b as b$1}from'./chunk-IMQTDNZI.js';import {c,b}from'./chunk-LGDN3UHN.js';import {readCachedProjectGraph,createProjectGraphAsync}from'@nx/devkit';import {existsSync}from'node:fs';import {readFile,writeFile}from'node:fs/promises';import {format}from'prettier';async function $(c$1=process.cwd(),i=c(c$1)){let l=b(c$1,"package.json"),m=await readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c$1);let p=await b$1(i),r=JSON.parse(m),g=b(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.`),r;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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={};n&&await Promise.all(Object.keys(n.nodes).map(async a=>{let o=n.nodes[a];if(o?.data.root){let e=b(i,o.data.root,"package.json");if(existsSync(e)){let t=await readFile(e,"utf8"),f=JSON.parse(t);f.private!==true&&(d[f.name]=f.version);}}}));for(let a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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 writeFile(l,await format(JSON.stringify(r),{parser:"json",proseWrap:"always",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-pkg"]}))}export{$ as a};
@@ -1,25 +1,25 @@
1
- import {c as c$1,e,f,b as b$1,a}from'./chunk-LGDN3UHN.js';import*as r from'zod/mini';import Oo from'defu';import {existsSync}from'node:fs';import {loadConfig}from'c12';import Yo from'chalk';import {readFile}from'node:fs/promises';import {join}from'node:path';import {exec}from'node:child_process';import {valid,coerce,gt}from'semver';var te="https://docs.stormsoftware.com",_="https://stormsoftware.com";var se="https://stormsoftware.com/license",ne="Apache-2.0";var w="tools/errors/codes.json",ae="The workspace's banner image";var s=r.registry(),h=r.string().check(r.length(7),r.toLowerCase(),r.regex(/^#([0-9a-f]{3}){1,2}$/i),r.trim());s.add(h,{description:"A base schema for describing the format of colors"});var z=r._default(h,"#151718");s.add(z,{description:"The dark background color of the workspace"});var b=r._default(h,"#cbd5e1");s.add(b,{description:"The light background color of the workspace"});var x=r._default(h,"#1fb2a6");s.add(x,{description:"The primary brand specific color of the workspace"});var D=r.optional(h);s.add(D,{description:"The alternate brand specific color of the workspace"});var G=r.optional(h);s.add(G,{description:"The secondary brand specific color of the workspace"});var M=r._default(h,"#3fa6ff");s.add(M,{description:"The color used to display hyperlink text"});var P=r._default(h,"#818cf8");s.add(P,{description:"The second brand specific color of the workspace"});var F=r._default(h,"#45b27e");s.add(F,{description:"The success color of the workspace"});var U=r._default(h,"#38bdf8");s.add(U,{description:"The informational color of the workspace"});var W=r._default(h,"#f3d371");s.add(W,{description:"The warning color of the workspace"});var B=r._default(h,"#d8314a");s.add(B,{description:"The danger color of the workspace"});var j=r.optional(h);s.add(j,{description:"The fatal color of the workspace"});var H=r._default(h,"#4ade80");s.add(H,{description:"The positive number color of the workspace"});var Y=r._default(h,"#ef4444");s.add(Y,{description:"The negative number color of the workspace"});var V=r.optional(r.array(h));s.add(V,{description:"The color stops for the base gradient color pattern used in the workspace"});var Wo=r.object({foreground:b,background:z,brand:x,alternate:D,accent:G,link:M,help:P,success:F,info:U,warning:W,danger:B,fatal:j,positive:H,negative:Y,gradient:V}),Bo=r.object({foreground:z,background:b,brand:x,alternate:D,accent:G,link:M,help:P,success:F,info:U,warning:W,danger:B,fatal:j,positive:H,negative:Y,gradient:V}),jo=r.object({dark:Wo,light:Bo}),Ho=r.object({dark:z,light:b,brand:x,alternate:D,accent:G,link:M,help:P,success:F,info:U,warning:W,danger:B,fatal:j,positive:H,negative:Y,gradient:V}),L=r.optional(r.url());s.add(L,{description:"A remote registry URL used to publish distributable packages"});var ie=r._default(r.object({github:L,npm:L,cargo:L,cyclone:L,container:L}),{});s.add(ie,{description:"A list of remote registry URLs used by Storm Software"});var q=r.union([Ho,jo]);s.add(q,{description:"Colors used for various workspace elements"});var ce=r.record(r.union([r.union([r.literal("base"),r.string()]),r.string()]),q);s.add(ce,{description:"Storm theme config values used for styling various package elements"});var pe=r.optional(r.union([r.string().check(r.trim()),r.array(r.string().check(r.trim()))]));s.add(pe,{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 de=r.string().check(r.trim());s.add(de,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var le=r.string().check(r.trim());s.add(le,{description:"The email of the workspace bot"});var me=r.object({name:de,email:le});s.add(me,{description:"The workspace's bot user's config used to automated various operations tasks"});var ge=r.optional(r.string().check(r.trim(),r.url()));s.add(ge,{description:"A URL to a banner image used to display the workspace's release"});var ue=r._default(r.string().check(r.trim()),ae);s.add(ue,{description:"The alt text for the workspace's release banner image"});var fe=r.object({url:ge,alt:ue});s.add(fe,{description:"The workspace's banner image used during the release process"});var he=r.optional(r.string().check(r.trim()));s.add(he,{description:"A header message appended to the start of the workspace's release notes"});var Te=r.optional(r.string().check(r.trim()));s.add(Te,{description:"A footer message appended to the end of the workspace's release notes"});var Ce=r.object({banner:r.union([fe,r.string().check(r.trim(),r.url())]),header:he,footer:Te});s.add(Ce,{description:"The workspace's release config used during the release process"});var Ee=r.optional(r.string().check(r.trim()));s.add(Ee,{description:"A Twitter/X account associated with the organization/project"});var Re=r.optional(r.string().check(r.trim()));s.add(Re,{description:"A Discord account associated with the organization/project"});var Se=r.optional(r.string().check(r.trim()));s.add(Se,{description:"A Telegram account associated with the organization/project"});var ve=r.optional(r.string().check(r.trim()));s.add(ve,{description:"A Slack account associated with the organization/project"});var Ae=r.optional(r.string().check(r.trim()));s.add(Ae,{description:"A Medium account associated with the organization/project"});var ke=r.optional(r.string().check(r.trim()));s.add(ke,{description:"A GitHub account associated with the organization/project"});var Oe=r.object({twitter:Ee,discord:Re,telegram:Se,slack:ve,medium:Ae,github:ke});s.add(Oe,{description:"The workspace's account config used to store various social media links"});var Le=r.optional(r.string().check(r.trim()));s.add(Le,{description:"The directory used to store the environment's cached file data"});var $e=r.optional(r.string().check(r.trim()));s.add($e,{description:"The directory used to store the environment's data files"});var _e=r.optional(r.string().check(r.trim()));s.add(_e,{description:"The directory used to store the environment's configuration files"});var Ie=r.optional(r.string().check(r.trim()));s.add(Ie,{description:"The directory used to store the environment's temp files"});var Ne=r.optional(r.string().check(r.trim()));s.add(Ne,{description:"The directory used to store the environment's log files"});var ye=r._default(r.string().check(r.trim()),"dist");s.add(ye,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var we=r.object({cache:Le,data:$e,config:_e,temp:Ie,log:Ne,build:ye});s.add(we,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var ze=r._default(r.enum(["minimal","monorepo"]),"monorepo");s.add(ze,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var be=r._default(r.string().check(r.trim()),w);s.add(be,{description:"The path to the workspace's error codes JSON file"});var xe=r.optional(r.url());s.add(xe,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var De=r.object({codesFile:be,url:xe});s.add(De,{description:"The workspace's error config used when creating error details during a system error"});var Ge=r.optional(r.string().check(r.trim(),r.toLowerCase()));s.add(Ge,{description:"The name of the organization"});var Me=r.optional(r.string().check(r.trim()));s.add(Me,{description:"A description of the organization"});var Pe=r.optional(r.url());s.add(Pe,{description:"A URL to the organization's logo image"});var Fe=r.optional(r.url());s.add(Fe,{description:"A URL to the organization's icon image"});var Ue=r.optional(r.url());s.add(Ue,{description:"A URL to a page that provides more information about the organization"});var We=r.object({name:Ge,description:Me,logo:Pe,icon:Fe,url:Ue});s.add(We,{description:"The workspace's organization details"});var Be=r._default(r.string().check(r.trim(),r.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");s.add(Be,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var je=r.string().check(r.trim(),r.toLowerCase());s.add(je,{description:"The name of the workspace/project/service/package/scope using this configuration"});var He=r.string().check(r.trim(),r.toLowerCase());s.add(He,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var Ye=r.union([We,r.string().check(r.trim(),r.toLowerCase())]);s.add(Ye,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var Ve=r.string().check(r.trim(),r.toLowerCase());s.add(Ve,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var Ke=r._default(r.string().check(r.trim()),"Apache-2.0");s.add(Ke,{description:"The license type of the package"});var Ze=r.optional(r.url());s.add(Ze,{description:"The homepage of the workspace"});var Je=r.optional(r.url());s.add(Je,{description:"The documentation site for the workspace"});var Xe=r.optional(r.url());s.add(Xe,{description:"The development portal site for the workspace"});var qe=r.optional(r.url());s.add(qe,{description:"The licensing site for the workspace"});var Qe=r.optional(r.url());s.add(Qe,{description:"The contact site for the workspace"});var eo=r.optional(r.url());s.add(eo,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var oo=r._default(r.string().check(r.trim(),r.toLowerCase()),"main");s.add(oo,{description:"The branch of the workspace"});var ro=r.optional(r.string().check(r.trim(),r.toLowerCase()));s.add(ro,{description:"A tag specifying the version pre-release identifier"});var to=r.optional(r.string().check(r.trim(),r.toLowerCase()));s.add(to,{description:"The owner of the package"});var so=r._default(r.enum(["development","staging","production"]).check(r.trim(),r.toLowerCase()),"production");s.add(so,{description:"The current runtime environment mode for the package"});var no=r.string().check(r.trim(),r.toLowerCase());s.add(no,{description:"The root directory of the workspace"});var ao=r._default(r.boolean(),false);s.add(ao,{description:"Should all known types of workspace caching be skipped?"});var io=r._default(r.enum(["npm","yarn","pnpm","bun"]),"npm");s.add(io,{description:"The JavaScript/TypeScript package manager used by the repository"});var co=r._default(r.string().check(r.trim()),"America/New_York");s.add(co,{description:"The default timezone of the workspace"});var po=r._default(r.string().check(r.trim()),"en-US");s.add(po,{description:"The default locale of the workspace"});var lo=r._default(r.enum(["silent","fatal","error","warn","success","info","debug","trace","all"]),"info");s.add(lo,{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 mo=r._default(r.boolean(),true);s.add(mo,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var go=r._default(r.nullable(r.string().check(r.trim())),null);s.add(go,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var Q=r._default(r.record(r.string(),r.any()),{});s.add(Q,{description:"Configuration of each used extension"});var uo=r.object({$schema:Be,extends:pe,name:je,variant:ze,namespace:He,organization:Ye,repository:Ve,license:Ke,homepage:Ze,docs:Je,portal:Xe,licensing:qe,contact:Qe,support:eo,branch:oo,preid:ro,owner:to,bot:me,release:Ce,socials:Oe,error:De,mode:so,workspaceRoot:no,skipCache:ao,directories:we,packageManager:io,timezone:co,locale:po,logLevel:lo,skipConfigLogging:mo,registry:ie,configFile:go,colors:r.union([q,ce]),extensions:Q});s.add(Q,{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."});var c={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,DEBUG:60,TRACE:70,ALL:100},d={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",DEBUG:"debug",TRACE:"trace",ALL:"all"};var E={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26"}};var Vo={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}},fo=()=>{let e=Yo;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Vo),e};function ho(){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)=>ho()?e:o,S={[d.ERROR]:k("\u2718","\xD7"),[d.FATAL]:k("\u{1F480}","\xD7"),[d.WARN]:k("\u26A0","\u203C"),[d.INFO]:k("\u2139","i"),[d.SUCCESS]:k("\u2714","\u221A"),[d.DEBUG]:k("\u{1F6E0}","D"),[d.TRACE]:k("\u{1F6E0}","T"),[d.ALL]:k("\u2709","\u2192")};var v=(e=new Date)=>`${e.toLocaleDateString()} ${e.toLocaleTimeString()}`;var $=e=>{switch(e){case "all":return c.ALL;case "trace":return c.TRACE;case "debug":return c.DEBUG;case "info":return c.INFO;case "warn":return c.WARN;case "error":return c.ERROR;case "fatal":return c.FATAL;case "silent":return c.SILENT;default:return c.INFO}},To=(e=c.INFO)=>e>=c.ALL?d.ALL:e>=c.TRACE?d.TRACE:e>=c.DEBUG?d.DEBUG:e>=c.INFO?d.INFO:e>=c.WARN?d.WARN:e>=c.ERROR?d.ERROR:e>=c.FATAL?d.FATAL:e<=c.SILENT?d.SILENT:d.INFO;var ee=(e=c.INFO,o={},t=fo())=>{let i=!o.colors?.dark&&!o.colors?.base&&!o.colors?.base?.dark?E: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:E,a=o.logLevel||process.env.STORM_LOG_LEVEL||d.INFO;return e>$(a)||e<=c.SILENT||$(a)<=c.SILENT?n=>{}:typeof e=="number"&&c.FATAL>=e?n=>{console.error(`
2
- ${t.gray(v())} ${t.hex(i.fatal??E.dark.fatal)(`[${S[d.FATAL]} Fatal] `)}${t.bold.whiteBright(C(n))}
1
+ import {c as c$1,e,f,b as b$1,a}from'./chunk-LGDN3UHN.js';import*as r from'zod/mini';import Oo from'defu';import {existsSync}from'node:fs';import {loadConfig}from'c12';import Yo from'chalk';import {readFile}from'node:fs/promises';import {join}from'node:path';import {exec}from'node:child_process';import {valid,coerce,gt}from'semver';var se="https://docs.stormsoftware.com",_="https://stormsoftware.com";var ne="https://stormsoftware.com/license",ae="Apache-2.0";var w="tools/errors/codes.json",ie="The workspace's banner image";var s=r.registry(),h=r.string().check(r.length(7),r.toLowerCase(),r.regex(/^#([0-9a-f]{3}){1,2}$/i),r.trim());s.add(h,{description:"A base schema for describing the format of colors"});var z=r._default(h,"#151718");s.add(z,{description:"The dark background color of the workspace"});var b=r._default(h,"#cbd5e1");s.add(b,{description:"The light background color of the workspace"});var x=r._default(h,"#1fb2a6");s.add(x,{description:"The primary brand specific color of the workspace"});var D=r.optional(h);s.add(D,{description:"The alternate brand specific color of the workspace"});var G=r.optional(h);s.add(G,{description:"The secondary brand specific color of the workspace"});var M=r._default(h,"#3fa6ff");s.add(M,{description:"The color used to display hyperlink text"});var P=r._default(h,"#818cf8");s.add(P,{description:"The second brand specific color of the workspace"});var F=r._default(h,"#45b27e");s.add(F,{description:"The success color of the workspace"});var U=r._default(h,"#38bdf8");s.add(U,{description:"The informational color of the workspace"});var W=r._default(h,"#f3d371");s.add(W,{description:"The warning color of the workspace"});var B=r._default(h,"#d8314a");s.add(B,{description:"The danger color of the workspace"});var j=r.optional(h);s.add(j,{description:"The fatal color of the workspace"});var H=r._default(h,"#4ade80");s.add(H,{description:"The positive number color of the workspace"});var Y=r._default(h,"#ef4444");s.add(Y,{description:"The negative number color of the workspace"});var V=r.optional(r.array(h));s.add(V,{description:"The color stops for the base gradient color pattern used in the workspace"});var Wo=r.object({foreground:b,background:z,brand:x,alternate:D,accent:G,link:M,help:P,success:F,info:U,warning:W,danger:B,fatal:j,positive:H,negative:Y,gradient:V}),Bo=r.object({foreground:z,background:b,brand:x,alternate:D,accent:G,link:M,help:P,success:F,info:U,warning:W,danger:B,fatal:j,positive:H,negative:Y,gradient:V}),jo=r.object({dark:Wo,light:Bo}),Ho=r.object({dark:z,light:b,brand:x,alternate:D,accent:G,link:M,help:P,success:F,info:U,warning:W,danger:B,fatal:j,positive:H,negative:Y,gradient:V}),L=r.optional(r.url());s.add(L,{description:"A remote registry URL used to publish distributable packages"});var ce=r._default(r.object({github:L,npm:L,cargo:L,cyclone:L,container:L}),{});s.add(ce,{description:"A list of remote registry URLs used by Storm Software"});var Q=r.union([Ho,jo]);s.add(Q,{description:"Colors used for various workspace elements"});var pe=r.record(r.union([r.union([r.literal("base"),r.string()]),r.string()]),Q);s.add(pe,{description:"Storm theme config values used for styling various package elements"});var de=r.optional(r.union([r.string().check(r.trim()),r.array(r.string().check(r.trim()))]));s.add(de,{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 le=r.string().check(r.trim());s.add(le,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var me=r.string().check(r.trim());s.add(me,{description:"The email of the workspace bot"});var ge=r.object({name:le,email:me});s.add(ge,{description:"The workspace's bot user's config used to automated various operations tasks"});var ue=r.optional(r.string().check(r.trim(),r.url()));s.add(ue,{description:"A URL to a banner image used to display the workspace's release"});var fe=r._default(r.string().check(r.trim()),ie);s.add(fe,{description:"The alt text for the workspace's release banner image"});var he=r.object({url:ue,alt:fe});s.add(he,{description:"The workspace's banner image used during the release process"});var Te=r.optional(r.string().check(r.trim()));s.add(Te,{description:"A header message appended to the start of the workspace's release notes"});var Ce=r.optional(r.string().check(r.trim()));s.add(Ce,{description:"A footer message appended to the end of the workspace's release notes"});var Ee=r.object({banner:r.union([he,r.string().check(r.trim(),r.url())]),header:Te,footer:Ce});s.add(Ee,{description:"The workspace's release config used during the release process"});var Re=r.optional(r.string().check(r.trim()));s.add(Re,{description:"A Twitter/X account associated with the organization/project"});var Se=r.optional(r.string().check(r.trim()));s.add(Se,{description:"A Discord account associated with the organization/project"});var ve=r.optional(r.string().check(r.trim()));s.add(ve,{description:"A Telegram account associated with the organization/project"});var Ae=r.optional(r.string().check(r.trim()));s.add(Ae,{description:"A Slack account associated with the organization/project"});var ke=r.optional(r.string().check(r.trim()));s.add(ke,{description:"A Medium account associated with the organization/project"});var Oe=r.optional(r.string().check(r.trim()));s.add(Oe,{description:"A GitHub account associated with the organization/project"});var Le=r.object({twitter:Re,discord:Se,telegram:ve,slack:Ae,medium:ke,github:Oe});s.add(Le,{description:"The workspace's account config used to store various social media links"});var $e=r.optional(r.string().check(r.trim()));s.add($e,{description:"The directory used to store the environment's cached file data"});var _e=r.optional(r.string().check(r.trim()));s.add(_e,{description:"The directory used to store the environment's data files"});var Ie=r.optional(r.string().check(r.trim()));s.add(Ie,{description:"The directory used to store the environment's configuration files"});var Ne=r.optional(r.string().check(r.trim()));s.add(Ne,{description:"The directory used to store the environment's temp files"});var ye=r.optional(r.string().check(r.trim()));s.add(ye,{description:"The directory used to store the environment's log files"});var we=r._default(r.string().check(r.trim()),"dist");s.add(we,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var ze=r.object({cache:$e,data:_e,config:Ie,temp:Ne,log:ye,build:we});s.add(ze,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var be=r._default(r.enum(["minimal","monorepo"]),"monorepo");s.add(be,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var xe=r._default(r.string().check(r.trim()),w);s.add(xe,{description:"The path to the workspace's error codes JSON file"});var De=r.optional(r.url());s.add(De,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var Ge=r.object({codesFile:xe,url:De});s.add(Ge,{description:"The workspace's error config used when creating error details during a system error"});var Me=r.optional(r.string().check(r.trim(),r.toLowerCase()));s.add(Me,{description:"The name of the organization"});var Pe=r.optional(r.string().check(r.trim()));s.add(Pe,{description:"A description of the organization"});var Fe=r.optional(r.url());s.add(Fe,{description:"A URL to the organization's logo image"});var Ue=r.optional(r.url());s.add(Ue,{description:"A URL to the organization's icon image"});var We=r.optional(r.url());s.add(We,{description:"A URL to a page that provides more information about the organization"});var Be=r.object({name:Me,description:Pe,logo:Fe,icon:Ue,url:We});s.add(Be,{description:"The workspace's organization details"});var je=r._default(r.string().check(r.trim(),r.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");s.add(je,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var He=r.string().check(r.trim(),r.toLowerCase());s.add(He,{description:"The name of the workspace/project/service/package/scope using this configuration"});var Ye=r.string().check(r.trim(),r.toLowerCase());s.add(Ye,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var Ve=r.union([Be,r.string().check(r.trim(),r.toLowerCase())]);s.add(Ve,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var Ke=r.string().check(r.trim(),r.toLowerCase());s.add(Ke,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var Ze=r._default(r.string().check(r.trim()),"Apache-2.0");s.add(Ze,{description:"The license type of the package"});var Je=r.optional(r.url());s.add(Je,{description:"The homepage of the workspace"});var Xe=r.optional(r.url());s.add(Xe,{description:"The documentation site for the workspace"});var qe=r.optional(r.url());s.add(qe,{description:"The development portal site for the workspace"});var Qe=r.optional(r.url());s.add(Qe,{description:"The licensing site for the workspace"});var eo=r.optional(r.url());s.add(eo,{description:"The contact site for the workspace"});var oo=r.optional(r.url());s.add(oo,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var ro=r._default(r.string().check(r.trim(),r.toLowerCase()),"main");s.add(ro,{description:"The branch of the workspace"});var to=r.optional(r.string().check(r.trim(),r.toLowerCase()));s.add(to,{description:"A tag specifying the version pre-release identifier"});var so=r.optional(r.string().check(r.trim(),r.toLowerCase()));s.add(so,{description:"The owner of the package"});var no=r._default(r.enum(["development","staging","production"]).check(r.trim(),r.toLowerCase()),"production");s.add(no,{description:"The current runtime environment mode for the package"});var ao=r.string().check(r.trim(),r.toLowerCase());s.add(ao,{description:"The root directory of the workspace"});var io=r._default(r.boolean(),false);s.add(io,{description:"Should all known types of workspace caching be skipped?"});var co=r._default(r.enum(["npm","yarn","pnpm","bun"]),"npm");s.add(co,{description:"The JavaScript/TypeScript package manager used by the repository"});var po=r._default(r.string().check(r.trim()),"America/New_York");s.add(po,{description:"The default timezone of the workspace"});var lo=r._default(r.string().check(r.trim()),"en-US");s.add(lo,{description:"The default locale of the workspace"});var mo=r._default(r.enum(["silent","fatal","error","warn","success","info","debug","trace","all"]),"info");s.add(mo,{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 go=r._default(r.boolean(),true);s.add(go,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var uo=r._default(r.nullable(r.string().check(r.trim())),null);s.add(uo,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var ee=r._default(r.record(r.string(),r.any()),{});s.add(ee,{description:"Configuration of each used extension"});var fo=r.object({$schema:je,extends:de,name:He,variant:be,namespace:Ye,organization:Ve,repository:Ke,license:Ze,homepage:Je,docs:Xe,portal:qe,licensing:Qe,contact:eo,support:oo,branch:ro,preid:to,owner:so,bot:ge,release:Ee,socials:Le,error:Ge,mode:no,workspaceRoot:ao,skipCache:io,directories:ze,packageManager:co,timezone:po,locale:lo,logLevel:mo,skipConfigLogging:go,registry:ce,configFile:uo,colors:r.union([Q,pe]),extensions:ee});s.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."});var c={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,DEBUG:60,TRACE:70,ALL:100},p={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",DEBUG:"debug",TRACE:"trace",ALL:"all"};var R={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26"}};var Vo={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}},ho=()=>{let e=Yo;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Vo),e};function To(){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)=>To()?e:o,v={[p.ERROR]:k("\u2718","\xD7"),[p.FATAL]:k("\u{1F480}","\xD7"),[p.WARN]:k("\u26A0","\u203C"),[p.INFO]:k("\u2139","i"),[p.SUCCESS]:k("\u2714","\u221A"),[p.DEBUG]:k("\u{1F6E0}","D"),[p.TRACE]:k("\u{1F6E0}","T"),[p.ALL]:k("\u2709","\u2192")};var A=(e=new Date)=>`${e.toLocaleDateString()} ${e.toLocaleTimeString()}`;var $=e=>{switch(e){case "all":return c.ALL;case "trace":return c.TRACE;case "debug":return c.DEBUG;case "info":return c.INFO;case "warn":return c.WARN;case "error":return c.ERROR;case "fatal":return c.FATAL;case "silent":return c.SILENT;default:return c.INFO}},Co=(e=c.INFO)=>e>=c.ALL?p.ALL:e>=c.TRACE?p.TRACE:e>=c.DEBUG?p.DEBUG:e>=c.INFO?p.INFO:e>=c.WARN?p.WARN:e>=c.ERROR?p.ERROR:e>=c.FATAL?p.FATAL:e<=c.SILENT?p.SILENT:p.INFO;var oe=(e=c.INFO,o={},t=ho())=>{let i=!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,a=o.logLevel||process.env.STORM_LOG_LEVEL||p.INFO;return e>$(a)||e<=c.SILENT||$(a)<=c.SILENT?n=>{}:typeof e=="number"&&c.FATAL>=e?n=>{console.error(`
2
+ ${t.gray(A())} ${t.hex(i.fatal??R.dark.fatal)(`[${v[p.FATAL]} Fatal] `)}${t.bold.whiteBright(E(n))}
3
3
  `);}:typeof e=="number"&&c.ERROR>=e?n=>{console.error(`
4
- ${t.gray(v())} ${t.hex(i.danger??E.dark.danger)(`[${S[d.ERROR]} Error] `)}${t.bold.whiteBright(C(n))}
4
+ ${t.gray(A())} ${t.hex(i.danger??R.dark.danger)(`[${v[p.ERROR]} Error] `)}${t.bold.whiteBright(E(n))}
5
5
  `);}:typeof e=="number"&&c.WARN>=e?n=>{console.warn(`
6
- ${t.gray(v())} ${t.hex(i.warning??E.dark.warning)(`[${S[d.WARN]} Warn] `)}${t.bold.whiteBright(C(n))}
6
+ ${t.gray(A())} ${t.hex(i.warning??R.dark.warning)(`[${v[p.WARN]} Warn] `)}${t.bold.whiteBright(E(n))}
7
7
  `);}:typeof e=="number"&&c.SUCCESS>=e?n=>{console.info(`
8
- ${t.gray(v())} ${t.hex(i.success??E.dark.success)(`[${S[d.SUCCESS]} Success] `)}${t.bold.whiteBright(C(n))}
8
+ ${t.gray(A())} ${t.hex(i.success??R.dark.success)(`[${v[p.SUCCESS]} Success] `)}${t.bold.whiteBright(E(n))}
9
9
  `);}:typeof e=="number"&&c.INFO>=e?n=>{console.info(`
10
- ${t.gray(v())} ${t.hex(i.info??E.dark.info)(`[${S[d.INFO]} Info] `)}${t.bold.whiteBright(C(n))}
10
+ ${t.gray(A())} ${t.hex(i.info??R.dark.info)(`[${v[p.INFO]} Info] `)}${t.bold.whiteBright(E(n))}
11
11
  `);}:typeof e=="number"&&c.DEBUG>=e?n=>{console.debug(`
12
- ${t.gray(v())} ${t.hex(i.info??E.dark.info)(`[${S[d.DEBUG]} Debug] `)}${t.bold.whiteBright(C(n))}
12
+ ${t.gray(A())} ${t.hex(i.info??R.dark.info)(`[${v[p.DEBUG]} Debug] `)}${t.bold.whiteBright(E(n))}
13
13
  `);}:typeof e=="number"&&c.TRACE>=e?n=>{console.debug(`
14
- ${t.gray(v())} ${t.hex(i.info??E.dark.info)(`[${S[d.TRACE]} Trace] `)}${t.bold.whiteBright(C(n))}
14
+ ${t.gray(A())} ${t.hex(i.info??R.dark.info)(`[${v[p.TRACE]} Trace] `)}${t.bold.whiteBright(E(n))}
15
15
  `);}:n=>{console.log(`
16
- ${t.gray(v())} ${t.hex(i.brand??E.dark.brand)(`[${S[d.ALL]} System] `)}${t.bold.whiteBright(C(n))}
17
- `);}};var Co=(e,o)=>ee(c.WARN,o)(e);var Eo=(e,o)=>ee(c.DEBUG,o)(e),O=(e,o)=>ee(c.TRACE,o)(e);var Ko=4,C=(e,o={},t=0)=>{if(t>Ko)return "<max depth>";let i=o.prefix??"-",a=o.skip??[];return typeof e>"u"||e===null||!e&&typeof e!="boolean"?"<none>":typeof e=="string"?e:Array.isArray(e)?`
18
- ${e.map((n,p)=>` ${i}> #${p} = ${C(n,{prefix:`${i}-`,skip:a},t+1)}`).join(`
16
+ ${t.gray(A())} ${t.hex(i.brand??R.dark.brand)(`[${v[p.ALL]} System] `)}${t.bold.whiteBright(E(n))}
17
+ `);}};var K=(e,o)=>oe(c.WARN,o)(e);var Eo=(e,o)=>oe(c.DEBUG,o)(e),O=(e,o)=>oe(c.TRACE,o)(e);var Ko=4,E=(e,o={},t=0)=>{if(t>Ko)return "<max depth>";let i=o.prefix??"-",a=o.skip??[];return typeof e>"u"||e===null||!e&&typeof e!="boolean"?"<none>":typeof e=="string"?e:Array.isArray(e)?`
18
+ ${e.map((n,l)=>` ${i}> #${l} = ${E(n,{prefix:`${i}-`,skip:a},t+1)}`).join(`
19
19
  `)}`:typeof e=="object"?`
20
- ${Object.keys(e).filter(n=>!a.includes(n)).map(n=>` ${i}> ${n} = ${Zo(e[n])?"<function>":typeof e[n]=="object"?C(e[n],{prefix:`${i}-`,skip:a},t+1):e[n]}`).join(`
21
- `)}`:e},Zo=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Ro=["dark","light","base","brand","alternate","accent","link","success","help","info","warning","danger","fatal","positive","negative"];async function So(e){let o=ne,t,i,a,n,p,m=c$1(e);if(existsSync(join(m,"package.json"))){let A=await readFile(b$1(m,"package.json"),"utf8");if(A){let f=JSON.parse(A);f.name&&(a=f.name),f.namespace&&(n=f.namespace),f.repository&&(typeof f.repository=="string"?p=f.repository:f.repository.url&&(p=f.repository.url)),f.license&&(o=f.license),f.homepage&&(t=f.homepage),f.bugs&&(typeof f.bugs=="string"?i=f.bugs:f.bugs.url&&(i=f.bugs.url));}}return {workspaceRoot:m,name:a,namespace:n,repository:p,license:o,homepage:t,support:i}}function vo(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 ko=async(e,o,t={})=>{let i=o||c$1(o),a=await Promise.all([loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:b$1(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...t}),loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:b$1(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...t})]);return Oo(a[0]??{},a[1]??{})},Lo=async(e,o=[])=>{let t=e||c$1(e),i=await ko("storm-workspace",t),a=i.config,n=i.configFile;if(a&&n&&Object.keys(a).length>0&&!a.skipConfigLogging&&O(`Found Storm configuration file "${n.includes(`${t}/`)?n.replace(`${t}/`,""):n}" at "${t}"`,{logLevel:"all"}),o&&o.length>0){let p=await Promise.all(o.map(m=>ko(m,t)));for(let m of p)m?.config&&m?.configFile&&Object.keys(m.config).length>0&&(!a.skipConfigLogging&&!m.config.skipConfigLogging&&O(`Found alternative configuration file "${m.configFile.includes(`${t}/`)?m.configFile.replace(`${t}/`,""):m.configFile}" at "${t}"`,{logLevel:"all"}),a=Oo(m.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=n,a};var No=()=>{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`]?a(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?a(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?a(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?a(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?a(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?a(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?a(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?a(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?a(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?a(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?a(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?a(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?a(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?a(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`]))?To(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},t=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&Ro.every(n=>!a.startsWith(`${e}COLOR_LIGHT_${n}`)&&!a.startsWith(`${e}COLOR_DARK_${n}`)));o.colors=t.length>0?t.reduce((a,n)=>(a[n]=$o(e,n),a),{}):$o(e),o.docs===te&&(o.homepage===_?o.docs=`${_}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===se&&(o.homepage===_?o.licensing=`${_}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let i=process.env[`${e}WORKSPACE_CONFIG`];if(i){let a=JSON.parse(i);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},$o=(e,o)=>{let t=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${t}LIGHT_BRAND`]||process.env[`${e}${t}DARK_BRAND`]?er(e+t):Qo(e+t)},Qo=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},er=e=>({light:_o(`${e}_LIGHT_`),dark:_o(`${e}_DARK_`)}),_o=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var or=(e,o)=>{for(let t of Object.keys(o??{}))if(o[t]){let i=t?.replace(/([A-Z])+/g,n=>n?n[0]?.toUpperCase()+n.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(n=>n.toLowerCase())??[],a;if(i.length===0)return;i.length===1?a=i[0]?.toUpperCase()??"":a=i.reduce((n,p)=>`${n}_${p.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[t];}},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`]=a(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=a(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=a(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=a(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=a(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=a(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=a(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=a(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 t of Object.keys(e.colors))yo(`${o}COLOR_${t}_`,e.colors[t]);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)>=c.DEBUG),process.env.RUST_BACKTRACE=$(e.logLevel)>=c.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 t of Object.keys(e.extensions??{}))e.extensions[t]&&Object.keys(e.extensions[t])&&or(t,e.extensions[t]);},yo=(e,o)=>o?.light?.brand||o?.dark?.brand?tr(e,o):rr(e,o),rr=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];},tr=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];};var I,nr=async(e,o,t,i=false,a=true)=>{let n;if(!I?.data||!I?.timestamp||I.timestamp<Date.now()-8e3){let p=t;p||(p=c$1());let m=No(),A=await Lo(p);if(!A&&(i||Co("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(p),y=Oo(m,A,f);y.variant||(y.variant=existsSync(b$1(p,"nx.json"))||existsSync(b$1(p,".nx"))||existsSync(b$1(p,"lerna.json"))||existsSync(b$1(p,"turbo.json"))?"monorepo":"minimal");try{n=vo(await uo.parseAsync(y)),n.workspaceRoot??=p;}catch(J){throw new Error(`Failed to parse Storm Workspace configuration${J?.message?`: ${J.message}`:""}
20
+ ${Object.keys(e).filter(n=>!a.includes(n)).map(n=>` ${i}> ${n} = ${Zo(e[n])?"<function>":typeof e[n]=="object"?E(e[n],{prefix:`${i}-`,skip:a},t+1):e[n]}`).join(`
21
+ `)}`:e},Zo=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Ro=["dark","light","base","brand","alternate","accent","link","success","help","info","warning","danger","fatal","positive","negative"];async function So(e){let o=ae,t,i,a,n,l,d=c$1(e);if(existsSync(join(d,"package.json"))){let T=await readFile(b$1(d,"package.json"),"utf8");if(T){let f=JSON.parse(T);f.name&&(a=f.name),f.namespace&&(n=f.namespace),f.repository&&(typeof f.repository=="string"?l=f.repository:f.repository.url&&(l=f.repository.url)),f.license&&(o=f.license),f.homepage&&(t=f.homepage),f.bugs&&(typeof f.bugs=="string"?i=f.bugs:f.bugs.url&&(i=f.bugs.url));}}return {workspaceRoot:d,name:a,namespace:n,repository:l,license:o,homepage:t,support:i}}function vo(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 ko=async(e,o,t={})=>{let i=o||c$1(o),a=await Promise.all([loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:b$1(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...t}),loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:b$1(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...t})]);return Oo(a[0]??{},a[1]??{})},Lo=async(e,o=[])=>{let t=e||c$1(e),i=await ko("storm-workspace",t),a=i.config,n=i.configFile;if(a&&n&&Object.keys(a).length>0&&!a.skipConfigLogging&&O(`Found Storm configuration file "${n.includes(`${t}/`)?n.replace(`${t}/`,""):n}" at "${t}"`,{logLevel:"all"}),o&&o.length>0){let l=await Promise.all(o.map(d=>ko(d,t)));for(let d of l)d?.config&&d?.configFile&&Object.keys(d.config).length>0&&(!a.skipConfigLogging&&!d.config.skipConfigLogging&&O(`Found alternative configuration file "${d.configFile.includes(`${t}/`)?d.configFile.replace(`${t}/`,""):d.configFile}" at "${t}"`,{logLevel:"all"}),a=Oo(d.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=n,a};var No=()=>{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`]?a(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?a(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?a(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?a(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?a(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?a(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?a(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?a(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?a(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?a(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?a(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?a(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?a(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?a(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`]))?Co(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},t=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&Ro.every(n=>!a.startsWith(`${e}COLOR_LIGHT_${n}`)&&!a.startsWith(`${e}COLOR_DARK_${n}`)));o.colors=t.length>0?t.reduce((a,n)=>(a[n]=$o(e,n),a),{}):$o(e),o.docs===se&&(o.homepage===_?o.docs=`${_}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===ne&&(o.homepage===_?o.licensing=`${_}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let i=process.env[`${e}WORKSPACE_CONFIG`];if(i){let a=JSON.parse(i);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},$o=(e,o)=>{let t=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${t}LIGHT_BRAND`]||process.env[`${e}${t}DARK_BRAND`]?er(e+t):Qo(e+t)},Qo=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},er=e=>({light:_o(`${e}_LIGHT_`),dark:_o(`${e}_DARK_`)}),_o=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var or=(e,o)=>{for(let t of Object.keys(o??{}))if(o[t]){let i=t?.replace(/([A-Z])+/g,n=>n?n[0]?.toUpperCase()+n.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(n=>n.toLowerCase())??[],a;if(i.length===0)return;i.length===1?a=i[0]?.toUpperCase()??"":a=i.reduce((n,l)=>`${n}_${l.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[t];}},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`]=a(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=a(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=a(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=a(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=a(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=a(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=a(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=a(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 t of Object.keys(e.colors))yo(`${o}COLOR_${t}_`,e.colors[t]);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)>=c.DEBUG),process.env.RUST_BACKTRACE=$(e.logLevel)>=c.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 t of Object.keys(e.extensions??{}))e.extensions[t]&&Object.keys(e.extensions[t])&&or(t,e.extensions[t]);},yo=(e,o)=>o?.light?.brand||o?.dark?.brand?tr(e,o):rr(e,o),rr=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];},tr=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];};var I,nr=async(e,o,t,i=false,a=true)=>{let n;if(!I?.data||!I?.timestamp||I.timestamp<Date.now()-8e3){let l=t;l||(l=c$1());let d=No(),T=await Lo(l);if(!T&&(i||K("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(l),y=Oo(d,T,f);y.variant||(y.variant=existsSync(b$1(l,"nx.json"))||existsSync(b$1(l,".nx"))||existsSync(b$1(l,"lerna.json"))||existsSync(b$1(l,"turbo.json"))?"monorepo":"minimal");try{n=vo(await fo.parseAsync(y)),n.workspaceRoot??=l;}catch(X){throw new Error(`Failed to parse Storm Workspace configuration${X?.message?`: ${X.message}`:""}
22
22
 
23
- Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${C(y)}`,{cause:J})}}else n=I.data;return I={timestamp:Date.now(),data:n},n},bo=async(e,o=false)=>{let t=await nr(void 0,void 0,e,o,true);return zo(t),!o&&!t.skipConfigLogging&&O(`\u2699\uFE0F Using Storm Workspace configuration:
24
- ${C(t)}`,t),t};var ir=(e,o=false)=>bo(e,o),xo=(e=true,o={})=>{let t=o.workspaceRoot;return t||(t=c$1(o.cwd)),ir(t,e)};var Do="latest";var Z=Do;async function Go(){return new Promise((e,o)=>{exec("npm config get registry",(t,i,a)=>t?o(t):a?o(a):e(i.trim()));})}async function Mo(e,o=Z,t={}){let{registry:i=await Go()}=t;return new Promise((a,n)=>{exec(`npm view ${e} version --registry=${i} --tag=${o}`,(p,m,A)=>p?n(p):A?n(A):a(m.trim()));})}async function mr(e$1=c$1(process.cwd())){let o=await e(e$1);if(!o)throw new Error("No pnpm-workspace.yaml file found");if(o?.catalog)return Object.fromEntries(Object.entries(o.catalog).map(([t,i])=>[t,i.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${e$1}
25
- File content: ${JSON.stringify(o,null,2)}`);}async function gr(e=c$1(process.cwd())){let o=await mr(e);if(!o)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return o}async function ur(e$1,o=c$1(process.cwd())){let t=await e(o);if(!t)throw new Error("No pnpm-workspace.yaml file found");t.catalog=Object.fromEntries(Object.entries(e$1).map(([i,a])=>[i,a.replaceAll('"',"").replaceAll("'","")])),await f(t,o);}async function fs(e,o={}){let{tag:t=Z,throwIfMissingInCatalog:i=false,workspaceRoot:a=c$1()}=o,n=await xo(true,{workspaceRoot:a}),p=await gr(a);if(!p)throw new Error("No catalog found");if(i===true&&!p[e])throw new Error(`Package "${e}" not found in catalog: ${JSON.stringify(p,null,2)}`);O(`Upgrading catalog entry for package "${e}" with tag "${t}"`,n);let m=await Mo(e,t);(!valid(coerce(p[e]))||coerce(p[e])&&coerce(m)&&gt(coerce(m),coerce(p[e])))&&(p[e]=m),Eo(`Writing version ${m} to catalog for "${e}" package`,n),await ur(p,a);}export{mr as a,gr as b,ur as c,fs as d};
23
+ Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${E(y)}`,{cause:X})}}else n=I.data;return I={timestamp:Date.now(),data:n},n},bo=async(e,o=false)=>{let t=await nr(void 0,void 0,e,o,true);return zo(t),!o&&!t.skipConfigLogging&&O(`\u2699\uFE0F Using Storm Workspace configuration:
24
+ ${E(t)}`,t),t};var ir=(e,o=false)=>bo(e,o),xo=(e=true,o={})=>{let t=o.workspaceRoot;return t||(t=c$1(o.cwd)),ir(t,e)};var Do="latest";var J=Do;async function Go(){return new Promise((e,o)=>{exec("npm config get registry",(t,i,a)=>t?o(t):a?o(a):e(i.trim()));})}async function Mo(e,o=J,t={}){let{registry:i=await Go()}=t;return new Promise((a,n)=>{exec(`npm view ${e} version --registry=${i} --tag=${o}`,(l,d,T)=>l?n(l):T?n(T):a(d.trim()));})}async function mr(e$1=c$1(process.cwd())){let o=await e(e$1);if(!o)throw new Error("No pnpm-workspace.yaml file found");if(o?.catalog)return Object.fromEntries(Object.entries(o.catalog).map(([t,i])=>[t,i.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${e$1}
25
+ File content: ${JSON.stringify(o,null,2)}`);}async function gr(e=c$1(process.cwd())){let o=await mr(e);if(!o)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return o}async function ur(e$1,o=c$1(process.cwd())){let t=await e(o);if(!t)throw new Error("No pnpm-workspace.yaml file found");t.catalog=Object.fromEntries(Object.entries(e$1).map(([i,a])=>[i,a.replaceAll('"',"").replaceAll("'","")])),await f(t,o);}async function fs(e,o={}){let{tag:t=J,prefix:i="^",throwIfMissingInCatalog:a=false,workspaceRoot:n=c$1()}=o,l=await xo(true,{workspaceRoot:n}),d=await gr(n);if(!d)throw new Error("No catalog found");if(a===true&&!d[e])throw new Error(`Package "${e}" not found in catalog: ${JSON.stringify(d,null,2)}`);O(`Upgrading catalog entry for package "${e}" with tag "${t}"`,l);let T=await Mo(e,t);!valid(coerce(d[e]))||coerce(d[e])&&coerce(T)&&gt(coerce(T),coerce(d[e]))?(d[e]=`${i||""}${T}`,Eo(`Writing version ${T} to catalog for "${e}" package`,l),await ur(d,n)):K(`The current version "${d[e]}" for package "${e}" is greater than or equal to the version "${T}" fetched from the npm registry with tag "${t}". No update performed.`,l);}export{mr as a,gr as b,ur as c,fs as d};
@@ -1 +1 @@
1
- 'use strict';var chunk3AMGJZOB_cjs=require('./chunk-3AMGJZOB.cjs'),chunkCZ7PAWK2_cjs=require('./chunk-CZ7PAWK2.cjs'),devkit=require('@nx/devkit'),fs=require('fs'),promises=require('fs/promises'),prettier=require('prettier');async function C(c=process.cwd(),i=chunkCZ7PAWK2_cjs.c(c)){let l=chunkCZ7PAWK2_cjs.b(c,"package.json"),m=await promises.readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c);let p=await chunk3AMGJZOB_cjs.b(i),r=JSON.parse(m),g=chunkCZ7PAWK2_cjs.b(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.`),r;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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 a=>{let o=n.nodes[a];if(o?.data.root){let e=chunkCZ7PAWK2_cjs.b(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 a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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(l,await prettier.format(JSON.stringify(r),{parser:"json",proseWrap:"always",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-pkg"]}))}exports.a=C;
1
+ 'use strict';var chunkZZOQH7Z4_cjs=require('./chunk-ZZOQH7Z4.cjs'),chunkCZ7PAWK2_cjs=require('./chunk-CZ7PAWK2.cjs'),devkit=require('@nx/devkit'),fs=require('fs'),promises=require('fs/promises'),prettier=require('prettier');async function C(c=process.cwd(),i=chunkCZ7PAWK2_cjs.c(c)){let l=chunkCZ7PAWK2_cjs.b(c,"package.json"),m=await promises.readFile(l,"utf8");if(!m)throw new Error("No package.json file found in package root: "+c);let p=await chunkZZOQH7Z4_cjs.b(i),r=JSON.parse(m),g=chunkCZ7PAWK2_cjs.b(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.`),r;if(!p){console.warn("No pnpm catalog found. Skipping dependencies replacement for now.");return}for(let a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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 a=>{let o=n.nodes[a];if(o?.data.root){let e=chunkCZ7PAWK2_cjs.b(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 a of ["dependencies","devDependencies","peerDependencies"]){let o=r[a];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(l,await prettier.format(JSON.stringify(r),{parser:"json",proseWrap:"always",trailingComma:"none",tabWidth:2,semi:true,singleQuote:false,quoteProps:"as-needed",insertPragma:false,bracketSameLine:true,printWidth:80,bracketSpacing:true,arrowParens:"avoid",endOfLine:"lf",plugins:["prettier-plugin-pkg"]}))}exports.a=C;
@@ -1,25 +1,25 @@
1
- 'use strict';var chunkCZ7PAWK2_cjs=require('./chunk-CZ7PAWK2.cjs'),r=require('zod/mini'),ko=require('defu'),fs=require('fs'),c12=require('c12'),Ho=require('chalk'),promises=require('fs/promises'),path=require('path'),child_process=require('child_process'),semver=require('semver');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 r__namespace=/*#__PURE__*/_interopNamespace(r);var ko__default=/*#__PURE__*/_interopDefault(ko);var Ho__default=/*#__PURE__*/_interopDefault(Ho);var re="https://docs.stormsoftware.com",$="https://stormsoftware.com";var te="https://stormsoftware.com/license",se="Apache-2.0";var y="tools/errors/codes.json",ne="The workspace's banner image";var s=r__namespace.registry(),f=r__namespace.string().check(r__namespace.length(7),r__namespace.toLowerCase(),r__namespace.regex(/^#([0-9a-f]{3}){1,2}$/i),r__namespace.trim());s.add(f,{description:"A base schema for describing the format of colors"});var w=r__namespace._default(f,"#151718");s.add(w,{description:"The dark background color of the workspace"});var z=r__namespace._default(f,"#cbd5e1");s.add(z,{description:"The light background color of the workspace"});var b=r__namespace._default(f,"#1fb2a6");s.add(b,{description:"The primary brand specific color of the workspace"});var x=r__namespace.optional(f);s.add(x,{description:"The alternate brand specific color of the workspace"});var D=r__namespace.optional(f);s.add(D,{description:"The secondary brand specific color of the workspace"});var G=r__namespace._default(f,"#3fa6ff");s.add(G,{description:"The color used to display hyperlink text"});var M=r__namespace._default(f,"#818cf8");s.add(M,{description:"The second brand specific color of the workspace"});var P=r__namespace._default(f,"#45b27e");s.add(P,{description:"The success color of the workspace"});var F=r__namespace._default(f,"#38bdf8");s.add(F,{description:"The informational color of the workspace"});var U=r__namespace._default(f,"#f3d371");s.add(U,{description:"The warning color of the workspace"});var W=r__namespace._default(f,"#d8314a");s.add(W,{description:"The danger color of the workspace"});var B=r__namespace.optional(f);s.add(B,{description:"The fatal color of the workspace"});var j=r__namespace._default(f,"#4ade80");s.add(j,{description:"The positive number color of the workspace"});var H=r__namespace._default(f,"#ef4444");s.add(H,{description:"The negative number color of the workspace"});var Y=r__namespace.optional(r__namespace.array(f));s.add(Y,{description:"The color stops for the base gradient color pattern used in the workspace"});var Uo=r__namespace.object({foreground:z,background:w,brand:b,alternate:x,accent:D,link:G,help:M,success:P,info:F,warning:U,danger:W,fatal:B,positive:j,negative:H,gradient:Y}),Wo=r__namespace.object({foreground:w,background:z,brand:b,alternate:x,accent:D,link:G,help:M,success:P,info:F,warning:U,danger:W,fatal:B,positive:j,negative:H,gradient:Y}),Bo=r__namespace.object({dark:Uo,light:Wo}),jo=r__namespace.object({dark:w,light:z,brand:b,alternate:x,accent:D,link:G,help:M,success:P,info:F,warning:U,danger:W,fatal:B,positive:j,negative:H,gradient:Y}),O=r__namespace.optional(r__namespace.url());s.add(O,{description:"A remote registry URL used to publish distributable packages"});var ae=r__namespace._default(r__namespace.object({github:O,npm:O,cargo:O,cyclone:O,container:O}),{});s.add(ae,{description:"A list of remote registry URLs used by Storm Software"});var X=r__namespace.union([jo,Bo]);s.add(X,{description:"Colors used for various workspace elements"});var ie=r__namespace.record(r__namespace.union([r__namespace.union([r__namespace.literal("base"),r__namespace.string()]),r__namespace.string()]),X);s.add(ie,{description:"Storm theme config values used for styling various package elements"});var ce=r__namespace.optional(r__namespace.union([r__namespace.string().check(r__namespace.trim()),r__namespace.array(r__namespace.string().check(r__namespace.trim()))]));s.add(ce,{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 pe=r__namespace.string().check(r__namespace.trim());s.add(pe,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var de=r__namespace.string().check(r__namespace.trim());s.add(de,{description:"The email of the workspace bot"});var le=r__namespace.object({name:pe,email:de});s.add(le,{description:"The workspace's bot user's config used to automated various operations tasks"});var me=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.url()));s.add(me,{description:"A URL to a banner image used to display the workspace's release"});var ge=r__namespace._default(r__namespace.string().check(r__namespace.trim()),ne);s.add(ge,{description:"The alt text for the workspace's release banner image"});var ue=r__namespace.object({url:me,alt:ge});s.add(ue,{description:"The workspace's banner image used during the release process"});var fe=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(fe,{description:"A header message appended to the start of the workspace's release notes"});var he=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(he,{description:"A footer message appended to the end of the workspace's release notes"});var Te=r__namespace.object({banner:r__namespace.union([ue,r__namespace.string().check(r__namespace.trim(),r__namespace.url())]),header:fe,footer:he});s.add(Te,{description:"The workspace's release config used during the release process"});var Ce=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ce,{description:"A Twitter/X account associated with the organization/project"});var Ee=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ee,{description:"A Discord account associated with the organization/project"});var Re=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Re,{description:"A Telegram account associated with the organization/project"});var Se=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Se,{description:"A Slack account associated with the organization/project"});var ve=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(ve,{description:"A Medium account associated with the organization/project"});var Ae=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ae,{description:"A GitHub account associated with the organization/project"});var ke=r__namespace.object({twitter:Ce,discord:Ee,telegram:Re,slack:Se,medium:ve,github:Ae});s.add(ke,{description:"The workspace's account config used to store various social media links"});var Oe=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Oe,{description:"The directory used to store the environment's cached file data"});var Le=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Le,{description:"The directory used to store the environment's data files"});var $e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add($e,{description:"The directory used to store the environment's configuration files"});var _e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(_e,{description:"The directory used to store the environment's temp files"});var Ie=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ie,{description:"The directory used to store the environment's log files"});var Ne=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"dist");s.add(Ne,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var ye=r__namespace.object({cache:Oe,data:Le,config:$e,temp:_e,log:Ie,build:Ne});s.add(ye,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var we=r__namespace._default(r__namespace.enum(["minimal","monorepo"]),"monorepo");s.add(we,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var ze=r__namespace._default(r__namespace.string().check(r__namespace.trim()),y);s.add(ze,{description:"The path to the workspace's error codes JSON file"});var be=r__namespace.optional(r__namespace.url());s.add(be,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var xe=r__namespace.object({codesFile:ze,url:be});s.add(xe,{description:"The workspace's error config used when creating error details during a system error"});var De=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));s.add(De,{description:"The name of the organization"});var Ge=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ge,{description:"A description of the organization"});var Me=r__namespace.optional(r__namespace.url());s.add(Me,{description:"A URL to the organization's logo image"});var Pe=r__namespace.optional(r__namespace.url());s.add(Pe,{description:"A URL to the organization's icon image"});var Fe=r__namespace.optional(r__namespace.url());s.add(Fe,{description:"A URL to a page that provides more information about the organization"});var Ue=r__namespace.object({name:De,description:Ge,logo:Me,icon:Pe,url:Fe});s.add(Ue,{description:"The workspace's organization details"});var We=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");s.add(We,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var Be=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(Be,{description:"The name of the workspace/project/service/package/scope using this configuration"});var je=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(je,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var He=r__namespace.union([Ue,r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase())]);s.add(He,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var Ye=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(Ye,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var Ve=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"Apache-2.0");s.add(Ve,{description:"The license type of the package"});var Ke=r__namespace.optional(r__namespace.url());s.add(Ke,{description:"The homepage of the workspace"});var Ze=r__namespace.optional(r__namespace.url());s.add(Ze,{description:"The documentation site for the workspace"});var Je=r__namespace.optional(r__namespace.url());s.add(Je,{description:"The development portal site for the workspace"});var Xe=r__namespace.optional(r__namespace.url());s.add(Xe,{description:"The licensing site for the workspace"});var qe=r__namespace.optional(r__namespace.url());s.add(qe,{description:"The contact site for the workspace"});var Qe=r__namespace.optional(r__namespace.url());s.add(Qe,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var eo=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"main");s.add(eo,{description:"The branch of the workspace"});var oo=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));s.add(oo,{description:"A tag specifying the version pre-release identifier"});var ro=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));s.add(ro,{description:"The owner of the package"});var to=r__namespace._default(r__namespace.enum(["development","staging","production"]).check(r__namespace.trim(),r__namespace.toLowerCase()),"production");s.add(to,{description:"The current runtime environment mode for the package"});var so=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(so,{description:"The root directory of the workspace"});var no=r__namespace._default(r__namespace.boolean(),false);s.add(no,{description:"Should all known types of workspace caching be skipped?"});var ao=r__namespace._default(r__namespace.enum(["npm","yarn","pnpm","bun"]),"npm");s.add(ao,{description:"The JavaScript/TypeScript package manager used by the repository"});var io=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"America/New_York");s.add(io,{description:"The default timezone of the workspace"});var co=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"en-US");s.add(co,{description:"The default locale of the workspace"});var po=r__namespace._default(r__namespace.enum(["silent","fatal","error","warn","success","info","debug","trace","all"]),"info");s.add(po,{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 lo=r__namespace._default(r__namespace.boolean(),true);s.add(lo,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var mo=r__namespace._default(r__namespace.nullable(r__namespace.string().check(r__namespace.trim())),null);s.add(mo,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var q=r__namespace._default(r__namespace.record(r__namespace.string(),r__namespace.any()),{});s.add(q,{description:"Configuration of each used extension"});var go=r__namespace.object({$schema:We,extends:ce,name:Be,variant:we,namespace:je,organization:He,repository:Ye,license:Ve,homepage:Ke,docs:Ze,portal:Je,licensing:Xe,contact:qe,support:Qe,branch:eo,preid:oo,owner:ro,bot:le,release:Te,socials:ke,error:xe,mode:to,workspaceRoot:so,skipCache:no,directories:ye,packageManager:ao,timezone:io,locale:co,logLevel:po,skipConfigLogging:lo,registry:ae,configFile:mo,colors:r__namespace.union([X,ie]),extensions:q});s.add(q,{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."});var c={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,DEBUG:60,TRACE:70,ALL:100},d={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",DEBUG:"debug",TRACE:"trace",ALL:"all"};var C={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26"}};var Yo={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}},uo=()=>{let e=Ho__default.default;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Yo),e};function fo(){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 A=(e,o)=>fo()?e:o,R={[d.ERROR]:A("\u2718","\xD7"),[d.FATAL]:A("\u{1F480}","\xD7"),[d.WARN]:A("\u26A0","\u203C"),[d.INFO]:A("\u2139","i"),[d.SUCCESS]:A("\u2714","\u221A"),[d.DEBUG]:A("\u{1F6E0}","D"),[d.TRACE]:A("\u{1F6E0}","T"),[d.ALL]:A("\u2709","\u2192")};var S=(e=new Date)=>`${e.toLocaleDateString()} ${e.toLocaleTimeString()}`;var L=e=>{switch(e){case "all":return c.ALL;case "trace":return c.TRACE;case "debug":return c.DEBUG;case "info":return c.INFO;case "warn":return c.WARN;case "error":return c.ERROR;case "fatal":return c.FATAL;case "silent":return c.SILENT;default:return c.INFO}},ho=(e=c.INFO)=>e>=c.ALL?d.ALL:e>=c.TRACE?d.TRACE:e>=c.DEBUG?d.DEBUG:e>=c.INFO?d.INFO:e>=c.WARN?d.WARN:e>=c.ERROR?d.ERROR:e>=c.FATAL?d.FATAL:e<=c.SILENT?d.SILENT:d.INFO;var Q=(e=c.INFO,o={},t=uo())=>{let i=!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,a=o.logLevel||process.env.STORM_LOG_LEVEL||d.INFO;return e>L(a)||e<=c.SILENT||L(a)<=c.SILENT?n=>{}:typeof e=="number"&&c.FATAL>=e?n=>{console.error(`
2
- ${t.gray(S())} ${t.hex(i.fatal??C.dark.fatal)(`[${R[d.FATAL]} Fatal] `)}${t.bold.whiteBright(T(n))}
1
+ 'use strict';var chunkCZ7PAWK2_cjs=require('./chunk-CZ7PAWK2.cjs'),r=require('zod/mini'),ko=require('defu'),fs=require('fs'),c12=require('c12'),Ho=require('chalk'),promises=require('fs/promises'),path=require('path'),child_process=require('child_process'),semver=require('semver');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 r__namespace=/*#__PURE__*/_interopNamespace(r);var ko__default=/*#__PURE__*/_interopDefault(ko);var Ho__default=/*#__PURE__*/_interopDefault(Ho);var te="https://docs.stormsoftware.com",$="https://stormsoftware.com";var se="https://stormsoftware.com/license",ne="Apache-2.0";var y="tools/errors/codes.json",ae="The workspace's banner image";var s=r__namespace.registry(),f=r__namespace.string().check(r__namespace.length(7),r__namespace.toLowerCase(),r__namespace.regex(/^#([0-9a-f]{3}){1,2}$/i),r__namespace.trim());s.add(f,{description:"A base schema for describing the format of colors"});var w=r__namespace._default(f,"#151718");s.add(w,{description:"The dark background color of the workspace"});var z=r__namespace._default(f,"#cbd5e1");s.add(z,{description:"The light background color of the workspace"});var b=r__namespace._default(f,"#1fb2a6");s.add(b,{description:"The primary brand specific color of the workspace"});var x=r__namespace.optional(f);s.add(x,{description:"The alternate brand specific color of the workspace"});var D=r__namespace.optional(f);s.add(D,{description:"The secondary brand specific color of the workspace"});var G=r__namespace._default(f,"#3fa6ff");s.add(G,{description:"The color used to display hyperlink text"});var M=r__namespace._default(f,"#818cf8");s.add(M,{description:"The second brand specific color of the workspace"});var P=r__namespace._default(f,"#45b27e");s.add(P,{description:"The success color of the workspace"});var F=r__namespace._default(f,"#38bdf8");s.add(F,{description:"The informational color of the workspace"});var U=r__namespace._default(f,"#f3d371");s.add(U,{description:"The warning color of the workspace"});var W=r__namespace._default(f,"#d8314a");s.add(W,{description:"The danger color of the workspace"});var B=r__namespace.optional(f);s.add(B,{description:"The fatal color of the workspace"});var j=r__namespace._default(f,"#4ade80");s.add(j,{description:"The positive number color of the workspace"});var H=r__namespace._default(f,"#ef4444");s.add(H,{description:"The negative number color of the workspace"});var Y=r__namespace.optional(r__namespace.array(f));s.add(Y,{description:"The color stops for the base gradient color pattern used in the workspace"});var Uo=r__namespace.object({foreground:z,background:w,brand:b,alternate:x,accent:D,link:G,help:M,success:P,info:F,warning:U,danger:W,fatal:B,positive:j,negative:H,gradient:Y}),Wo=r__namespace.object({foreground:w,background:z,brand:b,alternate:x,accent:D,link:G,help:M,success:P,info:F,warning:U,danger:W,fatal:B,positive:j,negative:H,gradient:Y}),Bo=r__namespace.object({dark:Uo,light:Wo}),jo=r__namespace.object({dark:w,light:z,brand:b,alternate:x,accent:D,link:G,help:M,success:P,info:F,warning:U,danger:W,fatal:B,positive:j,negative:H,gradient:Y}),O=r__namespace.optional(r__namespace.url());s.add(O,{description:"A remote registry URL used to publish distributable packages"});var ie=r__namespace._default(r__namespace.object({github:O,npm:O,cargo:O,cyclone:O,container:O}),{});s.add(ie,{description:"A list of remote registry URLs used by Storm Software"});var q=r__namespace.union([jo,Bo]);s.add(q,{description:"Colors used for various workspace elements"});var ce=r__namespace.record(r__namespace.union([r__namespace.union([r__namespace.literal("base"),r__namespace.string()]),r__namespace.string()]),q);s.add(ce,{description:"Storm theme config values used for styling various package elements"});var pe=r__namespace.optional(r__namespace.union([r__namespace.string().check(r__namespace.trim()),r__namespace.array(r__namespace.string().check(r__namespace.trim()))]));s.add(pe,{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 de=r__namespace.string().check(r__namespace.trim());s.add(de,{description:"The workspace bot user's name (this is the bot that will be used to perform various tasks)"});var le=r__namespace.string().check(r__namespace.trim());s.add(le,{description:"The email of the workspace bot"});var me=r__namespace.object({name:de,email:le});s.add(me,{description:"The workspace's bot user's config used to automated various operations tasks"});var ge=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.url()));s.add(ge,{description:"A URL to a banner image used to display the workspace's release"});var ue=r__namespace._default(r__namespace.string().check(r__namespace.trim()),ae);s.add(ue,{description:"The alt text for the workspace's release banner image"});var fe=r__namespace.object({url:ge,alt:ue});s.add(fe,{description:"The workspace's banner image used during the release process"});var he=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(he,{description:"A header message appended to the start of the workspace's release notes"});var Te=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Te,{description:"A footer message appended to the end of the workspace's release notes"});var Ce=r__namespace.object({banner:r__namespace.union([fe,r__namespace.string().check(r__namespace.trim(),r__namespace.url())]),header:he,footer:Te});s.add(Ce,{description:"The workspace's release config used during the release process"});var Ee=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ee,{description:"A Twitter/X account associated with the organization/project"});var Re=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Re,{description:"A Discord account associated with the organization/project"});var Se=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Se,{description:"A Telegram account associated with the organization/project"});var ve=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(ve,{description:"A Slack account associated with the organization/project"});var Ae=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ae,{description:"A Medium account associated with the organization/project"});var ke=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(ke,{description:"A GitHub account associated with the organization/project"});var Oe=r__namespace.object({twitter:Ee,discord:Re,telegram:Se,slack:ve,medium:Ae,github:ke});s.add(Oe,{description:"The workspace's account config used to store various social media links"});var Le=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Le,{description:"The directory used to store the environment's cached file data"});var $e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add($e,{description:"The directory used to store the environment's data files"});var _e=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(_e,{description:"The directory used to store the environment's configuration files"});var Ie=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ie,{description:"The directory used to store the environment's temp files"});var Ne=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Ne,{description:"The directory used to store the environment's log files"});var ye=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"dist");s.add(ye,{description:"The directory used to store the workspace's distributable files after a build (relative to the workspace root)"});var we=r__namespace.object({cache:Le,data:$e,config:_e,temp:Ie,log:Ne,build:ye});s.add(we,{description:"Various directories used by the workspace to store data, cache, and configuration files"});var ze=r__namespace._default(r__namespace.enum(["minimal","monorepo"]),"monorepo");s.add(ze,{description:"The variant of the workspace. This can be used to enable or disable certain features or configurations."});var be=r__namespace._default(r__namespace.string().check(r__namespace.trim()),y);s.add(be,{description:"The path to the workspace's error codes JSON file"});var xe=r__namespace.optional(r__namespace.url());s.add(xe,{description:"A URL to a page that looks up the workspace's error messages given a specific error code"});var De=r__namespace.object({codesFile:be,url:xe});s.add(De,{description:"The workspace's error config used when creating error details during a system error"});var Ge=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));s.add(Ge,{description:"The name of the organization"});var Me=r__namespace.optional(r__namespace.string().check(r__namespace.trim()));s.add(Me,{description:"A description of the organization"});var Pe=r__namespace.optional(r__namespace.url());s.add(Pe,{description:"A URL to the organization's logo image"});var Fe=r__namespace.optional(r__namespace.url());s.add(Fe,{description:"A URL to the organization's icon image"});var Ue=r__namespace.optional(r__namespace.url());s.add(Ue,{description:"A URL to a page that provides more information about the organization"});var We=r__namespace.object({name:Ge,description:Me,logo:Pe,icon:Fe,url:Ue});s.add(We,{description:"The workspace's organization details"});var Be=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"https://public.storm-cdn.com/schemas/storm-workspace.schema.json");s.add(Be,{description:"The URL or file path to the JSON schema file that describes the Storm configuration file"});var je=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(je,{description:"The name of the workspace/project/service/package/scope using this configuration"});var He=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(He,{description:"The namespace of the workspace/project/service/package/scope using this configuration"});var Ye=r__namespace.union([We,r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase())]);s.add(Ye,{description:"The organization of the workspace. This can be a string or an object containing the organization's details"});var Ve=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(Ve,{description:"The repo URL of the workspace (i.e. the GitHub repository URL)"});var Ke=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"Apache-2.0");s.add(Ke,{description:"The license type of the package"});var Ze=r__namespace.optional(r__namespace.url());s.add(Ze,{description:"The homepage of the workspace"});var Je=r__namespace.optional(r__namespace.url());s.add(Je,{description:"The documentation site for the workspace"});var Xe=r__namespace.optional(r__namespace.url());s.add(Xe,{description:"The development portal site for the workspace"});var qe=r__namespace.optional(r__namespace.url());s.add(qe,{description:"The licensing site for the workspace"});var Qe=r__namespace.optional(r__namespace.url());s.add(Qe,{description:"The contact site for the workspace"});var eo=r__namespace.optional(r__namespace.url());s.add(eo,{description:"The support site for the workspace. If not provided, this is defaulted to the `contact` config value"});var oo=r__namespace._default(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()),"main");s.add(oo,{description:"The branch of the workspace"});var ro=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));s.add(ro,{description:"A tag specifying the version pre-release identifier"});var to=r__namespace.optional(r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase()));s.add(to,{description:"The owner of the package"});var so=r__namespace._default(r__namespace.enum(["development","staging","production"]).check(r__namespace.trim(),r__namespace.toLowerCase()),"production");s.add(so,{description:"The current runtime environment mode for the package"});var no=r__namespace.string().check(r__namespace.trim(),r__namespace.toLowerCase());s.add(no,{description:"The root directory of the workspace"});var ao=r__namespace._default(r__namespace.boolean(),false);s.add(ao,{description:"Should all known types of workspace caching be skipped?"});var io=r__namespace._default(r__namespace.enum(["npm","yarn","pnpm","bun"]),"npm");s.add(io,{description:"The JavaScript/TypeScript package manager used by the repository"});var co=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"America/New_York");s.add(co,{description:"The default timezone of the workspace"});var po=r__namespace._default(r__namespace.string().check(r__namespace.trim()),"en-US");s.add(po,{description:"The default locale of the workspace"});var lo=r__namespace._default(r__namespace.enum(["silent","fatal","error","warn","success","info","debug","trace","all"]),"info");s.add(lo,{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 mo=r__namespace._default(r__namespace.boolean(),true);s.add(mo,{description:"Should the logging of the current Storm Workspace configuration be skipped?"});var go=r__namespace._default(r__namespace.nullable(r__namespace.string().check(r__namespace.trim())),null);s.add(go,{description:"The filepath of the Storm config. When this field is null, no config file was found in the current workspace."});var Q=r__namespace._default(r__namespace.record(r__namespace.string(),r__namespace.any()),{});s.add(Q,{description:"Configuration of each used extension"});var uo=r__namespace.object({$schema:Be,extends:pe,name:je,variant:ze,namespace:He,organization:Ye,repository:Ve,license:Ke,homepage:Ze,docs:Je,portal:Xe,licensing:qe,contact:Qe,support:eo,branch:oo,preid:ro,owner:to,bot:me,release:Ce,socials:Oe,error:De,mode:so,workspaceRoot:no,skipCache:ao,directories:we,packageManager:io,timezone:co,locale:po,logLevel:lo,skipConfigLogging:mo,registry:ie,configFile:go,colors:r__namespace.union([q,ce]),extensions:Q});s.add(Q,{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."});var c={SILENT:0,FATAL:10,ERROR:20,WARN:30,SUCCESS:35,INFO:40,DEBUG:60,TRACE:70,ALL:100},p={SILENT:"silent",FATAL:"fatal",ERROR:"error",WARN:"warn",SUCCESS:"success",INFO:"info",DEBUG:"debug",TRACE:"trace",ALL:"all"};var E={dark:{brand:"#2dd4bf",success:"#10b981",info:"#58a6ff",warning:"#f3d371",danger:"#D8314A",fatal:"#a40e26"}};var Yo={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}},fo=()=>{let e=Ho__default.default;return (!e?.hex||!e?.bold?.hex||!e?.bgHex||!e?.whiteBright||!e?.white)&&(e=Yo),e};function ho(){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 A=(e,o)=>ho()?e:o,S={[p.ERROR]:A("\u2718","\xD7"),[p.FATAL]:A("\u{1F480}","\xD7"),[p.WARN]:A("\u26A0","\u203C"),[p.INFO]:A("\u2139","i"),[p.SUCCESS]:A("\u2714","\u221A"),[p.DEBUG]:A("\u{1F6E0}","D"),[p.TRACE]:A("\u{1F6E0}","T"),[p.ALL]:A("\u2709","\u2192")};var v=(e=new Date)=>`${e.toLocaleDateString()} ${e.toLocaleTimeString()}`;var L=e=>{switch(e){case "all":return c.ALL;case "trace":return c.TRACE;case "debug":return c.DEBUG;case "info":return c.INFO;case "warn":return c.WARN;case "error":return c.ERROR;case "fatal":return c.FATAL;case "silent":return c.SILENT;default:return c.INFO}},To=(e=c.INFO)=>e>=c.ALL?p.ALL:e>=c.TRACE?p.TRACE:e>=c.DEBUG?p.DEBUG:e>=c.INFO?p.INFO:e>=c.WARN?p.WARN:e>=c.ERROR?p.ERROR:e>=c.FATAL?p.FATAL:e<=c.SILENT?p.SILENT:p.INFO;var ee=(e=c.INFO,o={},t=fo())=>{let i=!o.colors?.dark&&!o.colors?.base&&!o.colors?.base?.dark?E: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:E,a=o.logLevel||process.env.STORM_LOG_LEVEL||p.INFO;return e>L(a)||e<=c.SILENT||L(a)<=c.SILENT?n=>{}:typeof e=="number"&&c.FATAL>=e?n=>{console.error(`
2
+ ${t.gray(v())} ${t.hex(i.fatal??E.dark.fatal)(`[${S[p.FATAL]} Fatal] `)}${t.bold.whiteBright(C(n))}
3
3
  `);}:typeof e=="number"&&c.ERROR>=e?n=>{console.error(`
4
- ${t.gray(S())} ${t.hex(i.danger??C.dark.danger)(`[${R[d.ERROR]} Error] `)}${t.bold.whiteBright(T(n))}
4
+ ${t.gray(v())} ${t.hex(i.danger??E.dark.danger)(`[${S[p.ERROR]} Error] `)}${t.bold.whiteBright(C(n))}
5
5
  `);}:typeof e=="number"&&c.WARN>=e?n=>{console.warn(`
6
- ${t.gray(S())} ${t.hex(i.warning??C.dark.warning)(`[${R[d.WARN]} Warn] `)}${t.bold.whiteBright(T(n))}
6
+ ${t.gray(v())} ${t.hex(i.warning??E.dark.warning)(`[${S[p.WARN]} Warn] `)}${t.bold.whiteBright(C(n))}
7
7
  `);}:typeof e=="number"&&c.SUCCESS>=e?n=>{console.info(`
8
- ${t.gray(S())} ${t.hex(i.success??C.dark.success)(`[${R[d.SUCCESS]} Success] `)}${t.bold.whiteBright(T(n))}
8
+ ${t.gray(v())} ${t.hex(i.success??E.dark.success)(`[${S[p.SUCCESS]} Success] `)}${t.bold.whiteBright(C(n))}
9
9
  `);}:typeof e=="number"&&c.INFO>=e?n=>{console.info(`
10
- ${t.gray(S())} ${t.hex(i.info??C.dark.info)(`[${R[d.INFO]} Info] `)}${t.bold.whiteBright(T(n))}
10
+ ${t.gray(v())} ${t.hex(i.info??E.dark.info)(`[${S[p.INFO]} Info] `)}${t.bold.whiteBright(C(n))}
11
11
  `);}:typeof e=="number"&&c.DEBUG>=e?n=>{console.debug(`
12
- ${t.gray(S())} ${t.hex(i.info??C.dark.info)(`[${R[d.DEBUG]} Debug] `)}${t.bold.whiteBright(T(n))}
12
+ ${t.gray(v())} ${t.hex(i.info??E.dark.info)(`[${S[p.DEBUG]} Debug] `)}${t.bold.whiteBright(C(n))}
13
13
  `);}:typeof e=="number"&&c.TRACE>=e?n=>{console.debug(`
14
- ${t.gray(S())} ${t.hex(i.info??C.dark.info)(`[${R[d.TRACE]} Trace] `)}${t.bold.whiteBright(T(n))}
14
+ ${t.gray(v())} ${t.hex(i.info??E.dark.info)(`[${S[p.TRACE]} Trace] `)}${t.bold.whiteBright(C(n))}
15
15
  `);}:n=>{console.log(`
16
- ${t.gray(S())} ${t.hex(i.brand??C.dark.brand)(`[${R[d.ALL]} System] `)}${t.bold.whiteBright(T(n))}
17
- `);}};var To=(e,o)=>Q(c.WARN,o)(e);var Co=(e,o)=>Q(c.DEBUG,o)(e),k=(e,o)=>Q(c.TRACE,o)(e);var Vo=4,T=(e,o={},t=0)=>{if(t>Vo)return "<max depth>";let i=o.prefix??"-",a=o.skip??[];return typeof e>"u"||e===null||!e&&typeof e!="boolean"?"<none>":typeof e=="string"?e:Array.isArray(e)?`
18
- ${e.map((n,p)=>` ${i}> #${p} = ${T(n,{prefix:`${i}-`,skip:a},t+1)}`).join(`
16
+ ${t.gray(v())} ${t.hex(i.brand??E.dark.brand)(`[${S[p.ALL]} System] `)}${t.bold.whiteBright(C(n))}
17
+ `);}};var V=(e,o)=>ee(c.WARN,o)(e);var Co=(e,o)=>ee(c.DEBUG,o)(e),k=(e,o)=>ee(c.TRACE,o)(e);var Vo=4,C=(e,o={},t=0)=>{if(t>Vo)return "<max depth>";let i=o.prefix??"-",a=o.skip??[];return typeof e>"u"||e===null||!e&&typeof e!="boolean"?"<none>":typeof e=="string"?e:Array.isArray(e)?`
18
+ ${e.map((n,l)=>` ${i}> #${l} = ${C(n,{prefix:`${i}-`,skip:a},t+1)}`).join(`
19
19
  `)}`:typeof e=="object"?`
20
- ${Object.keys(e).filter(n=>!a.includes(n)).map(n=>` ${i}> ${n} = ${Ko(e[n])?"<function>":typeof e[n]=="object"?T(e[n],{prefix:`${i}-`,skip:a},t+1):e[n]}`).join(`
21
- `)}`:e},Ko=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Eo=["dark","light","base","brand","alternate","accent","link","success","help","info","warning","danger","fatal","positive","negative"];async function Ro(e){let o=se,t,i,a,n,p,m=chunkCZ7PAWK2_cjs.c(e);if(fs.existsSync(path.join(m,"package.json"))){let v=await promises.readFile(chunkCZ7PAWK2_cjs.b(m,"package.json"),"utf8");if(v){let u=JSON.parse(v);u.name&&(a=u.name),u.namespace&&(n=u.namespace),u.repository&&(typeof u.repository=="string"?p=u.repository:u.repository.url&&(p=u.repository.url)),u.license&&(o=u.license),u.homepage&&(t=u.homepage),u.bugs&&(typeof u.bugs=="string"?i=u.bugs:u.bugs.url&&(i=u.bugs.url));}}return {workspaceRoot:m,name:a,namespace:n,repository:p,license:o,homepage:t,support:i}}function So(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 Ao=async(e,o,t={})=>{let i=o||chunkCZ7PAWK2_cjs.c(o),a=await Promise.all([c12.loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:chunkCZ7PAWK2_cjs.b(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...t}),c12.loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:chunkCZ7PAWK2_cjs.b(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...t})]);return ko__default.default(a[0]??{},a[1]??{})},Oo=async(e,o=[])=>{let t=e||chunkCZ7PAWK2_cjs.c(e),i=await Ao("storm-workspace",t),a=i.config,n=i.configFile;if(a&&n&&Object.keys(a).length>0&&!a.skipConfigLogging&&k(`Found Storm configuration file "${n.includes(`${t}/`)?n.replace(`${t}/`,""):n}" at "${t}"`,{logLevel:"all"}),o&&o.length>0){let p=await Promise.all(o.map(m=>Ao(m,t)));for(let m of p)m?.config&&m?.configFile&&Object.keys(m.config).length>0&&(!a.skipConfigLogging&&!m.config.skipConfigLogging&&k(`Found alternative configuration file "${m.configFile.includes(`${t}/`)?m.configFile.replace(`${t}/`,""):m.configFile}" at "${t}"`,{logLevel:"all"}),a=ko__default.default(m.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=n,a};var Io=()=>{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`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(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`]))?ho(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},t=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&Eo.every(n=>!a.startsWith(`${e}COLOR_LIGHT_${n}`)&&!a.startsWith(`${e}COLOR_DARK_${n}`)));o.colors=t.length>0?t.reduce((a,n)=>(a[n]=Lo(e,n),a),{}):Lo(e),o.docs===re&&(o.homepage===$?o.docs=`${$}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===te&&(o.homepage===$?o.licensing=`${$}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let i=process.env[`${e}WORKSPACE_CONFIG`];if(i){let a=JSON.parse(i);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},Lo=(e,o)=>{let t=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${t}LIGHT_BRAND`]||process.env[`${e}${t}DARK_BRAND`]?Qo(e+t):qo(e+t)},qo=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},Qo=e=>({light:$o(`${e}_LIGHT_`),dark:$o(`${e}_DARK_`)}),$o=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var er=(e,o)=>{for(let t of Object.keys(o??{}))if(o[t]){let i=t?.replace(/([A-Z])+/g,n=>n?n[0]?.toUpperCase()+n.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(n=>n.toLowerCase())??[],a;if(i.length===0)return;i.length===1?a=i[0]?.toUpperCase()??"":a=i.reduce((n,p)=>`${n}_${p.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[t];}},wo=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`]=chunkCZ7PAWK2_cjs.a(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=chunkCZ7PAWK2_cjs.a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=chunkCZ7PAWK2_cjs.a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=chunkCZ7PAWK2_cjs.a(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=chunkCZ7PAWK2_cjs.a(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 t of Object.keys(e.colors))No(`${o}COLOR_${t}_`,e.colors[t]);else No(`${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(L(e.logLevel)>=c.DEBUG),process.env.RUST_BACKTRACE=L(e.logLevel)>=c.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 t of Object.keys(e.extensions??{}))e.extensions[t]&&Object.keys(e.extensions[t])&&er(t,e.extensions[t]);},No=(e,o)=>o?.light?.brand||o?.dark?.brand?rr(e,o):or(e,o),or=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];},rr=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];};var _,sr=async(e,o,t,i=false,a=true)=>{let n;if(!_?.data||!_?.timestamp||_.timestamp<Date.now()-8e3){let p=t;p||(p=chunkCZ7PAWK2_cjs.c());let m=Io(),v=await Oo(p);if(!v&&(i||To("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 u=await Ro(p),N=ko__default.default(m,v,u);N.variant||(N.variant=fs.existsSync(chunkCZ7PAWK2_cjs.b(p,"nx.json"))||fs.existsSync(chunkCZ7PAWK2_cjs.b(p,".nx"))||fs.existsSync(chunkCZ7PAWK2_cjs.b(p,"lerna.json"))||fs.existsSync(chunkCZ7PAWK2_cjs.b(p,"turbo.json"))?"monorepo":"minimal");try{n=So(await go.parseAsync(N)),n.workspaceRoot??=p;}catch(Z){throw new Error(`Failed to parse Storm Workspace configuration${Z?.message?`: ${Z.message}`:""}
20
+ ${Object.keys(e).filter(n=>!a.includes(n)).map(n=>` ${i}> ${n} = ${Ko(e[n])?"<function>":typeof e[n]=="object"?C(e[n],{prefix:`${i}-`,skip:a},t+1):e[n]}`).join(`
21
+ `)}`:e},Ko=e=>{try{return e instanceof Function||typeof e=="function"||!!(e?.constructor&&e?.call&&e?.apply)}catch{return false}};var Eo=["dark","light","base","brand","alternate","accent","link","success","help","info","warning","danger","fatal","positive","negative"];async function Ro(e){let o=ne,t,i,a,n,l,d=chunkCZ7PAWK2_cjs.c(e);if(fs.existsSync(path.join(d,"package.json"))){let h=await promises.readFile(chunkCZ7PAWK2_cjs.b(d,"package.json"),"utf8");if(h){let u=JSON.parse(h);u.name&&(a=u.name),u.namespace&&(n=u.namespace),u.repository&&(typeof u.repository=="string"?l=u.repository:u.repository.url&&(l=u.repository.url)),u.license&&(o=u.license),u.homepage&&(t=u.homepage),u.bugs&&(typeof u.bugs=="string"?i=u.bugs:u.bugs.url&&(i=u.bugs.url));}}return {workspaceRoot:d,name:a,namespace:n,repository:l,license:o,homepage:t,support:i}}function So(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 Ao=async(e,o,t={})=>{let i=o||chunkCZ7PAWK2_cjs.c(o),a=await Promise.all([c12.loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:chunkCZ7PAWK2_cjs.b(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},...t}),c12.loadConfig({cwd:i,packageJson:true,name:e,envName:e?.toUpperCase(),jitiOptions:{debug:false,fsCache:process.env.STORM_SKIP_CACHE==="true"?false:chunkCZ7PAWK2_cjs.b(process.env.STORM_CACHE_DIR||"node_modules/.cache/storm","jiti")},configFile:e,...t})]);return ko__default.default(a[0]??{},a[1]??{})},Oo=async(e,o=[])=>{let t=e||chunkCZ7PAWK2_cjs.c(e),i=await Ao("storm-workspace",t),a=i.config,n=i.configFile;if(a&&n&&Object.keys(a).length>0&&!a.skipConfigLogging&&k(`Found Storm configuration file "${n.includes(`${t}/`)?n.replace(`${t}/`,""):n}" at "${t}"`,{logLevel:"all"}),o&&o.length>0){let l=await Promise.all(o.map(d=>Ao(d,t)));for(let d of l)d?.config&&d?.configFile&&Object.keys(d.config).length>0&&(!a.skipConfigLogging&&!d.config.skipConfigLogging&&k(`Found alternative configuration file "${d.configFile.includes(`${t}/`)?d.configFile.replace(`${t}/`,""):d.configFile}" at "${t}"`,{logLevel:"all"}),a=ko__default.default(d.config??{},a??{}));}if(!(!a||Object.keys(a).length===0))return a.configFile=n,a};var Io=()=>{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`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}WORKSPACE_CONFIG_FILE`]):void 0,workspaceRoot:process.env[`${e}WORKSPACE_ROOT`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}WORKSPACE_ROOT`]):void 0,directories:{cache:process.env[`${e}CACHE_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CACHE_DIR`]):process.env[`${e}CACHE_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CACHE_DIRECTORY`]):void 0,data:process.env[`${e}DATA_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}DATA_DIR`]):process.env[`${e}DATA_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}DATA_DIRECTORY`]):void 0,config:process.env[`${e}CONFIG_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CONFIG_DIR`]):process.env[`${e}CONFIG_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}CONFIG_DIRECTORY`]):void 0,temp:process.env[`${e}TEMP_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}TEMP_DIR`]):process.env[`${e}TEMP_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}TEMP_DIRECTORY`]):void 0,log:process.env[`${e}LOG_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}LOG_DIR`]):process.env[`${e}LOG_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}LOG_DIRECTORY`]):void 0,build:process.env[`${e}BUILD_DIR`]?chunkCZ7PAWK2_cjs.a(process.env[`${e}BUILD_DIR`]):process.env[`${e}BUILD_DIRECTORY`]?chunkCZ7PAWK2_cjs.a(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`]))?To(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},t=Object.keys(process.env).filter(a=>a.startsWith(`${e}COLOR_`)&&Eo.every(n=>!a.startsWith(`${e}COLOR_LIGHT_${n}`)&&!a.startsWith(`${e}COLOR_DARK_${n}`)));o.colors=t.length>0?t.reduce((a,n)=>(a[n]=Lo(e,n),a),{}):Lo(e),o.docs===te&&(o.homepage===$?o.docs=`${$}/projects/${o.name}/docs`:o.docs=`${o.homepage}/docs`),o.licensing===se&&(o.homepage===$?o.licensing=`${$}/projects/${o.name}/licensing`:o.licensing=`${o.homepage}/docs`);let i=process.env[`${e}WORKSPACE_CONFIG`];if(i){let a=JSON.parse(i);o={...o,...a,colors:{...o.colors,...a.colors},extensions:{...o.extensions,...a.extensions}};}return o},Lo=(e,o)=>{let t=`COLOR_${o&&o!=="base"?`${o}_`:""}`.toUpperCase();return process.env[`${e}${t}LIGHT_BRAND`]||process.env[`${e}${t}DARK_BRAND`]?Qo(e+t):qo(e+t)},qo=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}},Qo=e=>({light:$o(`${e}_LIGHT_`),dark:$o(`${e}_DARK_`)}),$o=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 t=process.env[`${e}GRADIENT_0`]?0:1;for(;process.env[`${e}GRADIENT_${t}`];)o.push(process.env[`${e}GRADIENT_${t}`]),t++;}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`],help:process.env[`${e}HELP`],success:process.env[`${e}SUCCESS`],info:process.env[`${e}INFO`],warning:process.env[`${e}WARNING`],danger:process.env[`${e}DANGER`],fatal:process.env[`${e}FATAL`],positive:process.env[`${e}POSITIVE`],negative:process.env[`${e}NEGATIVE`],gradient:o}};var er=(e,o)=>{for(let t of Object.keys(o??{}))if(o[t]){let i=t?.replace(/([A-Z])+/g,n=>n?n[0]?.toUpperCase()+n.slice(1):"").split(/(?=[A-Z])|[.\-\s_]/).map(n=>n.toLowerCase())??[],a;if(i.length===0)return;i.length===1?a=i[0]?.toUpperCase()??"":a=i.reduce((n,l)=>`${n}_${l.toLowerCase()}`),process.env[`STORM_EXTENSION_${e.toUpperCase()}_${a.toUpperCase()}`]=o[t];}},wo=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`]=chunkCZ7PAWK2_cjs.a(e.configFile)),e.workspaceRoot&&(process.env[`${o}WORKSPACE_ROOT`]=chunkCZ7PAWK2_cjs.a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT=chunkCZ7PAWK2_cjs.a(e.workspaceRoot),process.env.NX_WORKSPACE_ROOT_PATH=chunkCZ7PAWK2_cjs.a(e.workspaceRoot)),e.directories&&(!e.skipCache&&e.directories.cache&&(process.env[`${o}CACHE_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.cache),process.env[`${o}CACHE_DIRECTORY`]=process.env[`${o}CACHE_DIR`]),e.directories.data&&(process.env[`${o}DATA_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.data),process.env[`${o}DATA_DIRECTORY`]=process.env[`${o}DATA_DIR`]),e.directories.config&&(process.env[`${o}CONFIG_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.config),process.env[`${o}CONFIG_DIRECTORY`]=process.env[`${o}CONFIG_DIR`]),e.directories.temp&&(process.env[`${o}TEMP_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.temp),process.env[`${o}TEMP_DIRECTORY`]=process.env[`${o}TEMP_DIR`]),e.directories.log&&(process.env[`${o}LOG_DIR`]=chunkCZ7PAWK2_cjs.a(e.directories.log),process.env[`${o}LOG_DIRECTORY`]=process.env[`${o}LOG_DIR`]),e.directories.build&&(process.env[`${o}BUILD_DIR`]=chunkCZ7PAWK2_cjs.a(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 t of Object.keys(e.colors))No(`${o}COLOR_${t}_`,e.colors[t]);else No(`${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(L(e.logLevel)>=c.DEBUG),process.env.RUST_BACKTRACE=L(e.logLevel)>=c.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 t of Object.keys(e.extensions??{}))e.extensions[t]&&Object.keys(e.extensions[t])&&er(t,e.extensions[t]);},No=(e,o)=>o?.light?.brand||o?.dark?.brand?rr(e,o):or(e,o),or=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];},rr=(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.help&&(process.env[`${e}HELP`]=o.help),o.success&&(process.env[`${e}SUCCESS`]=o.success),o.info&&(process.env[`${e}INFO`]=o.info),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.positive&&(process.env[`${e}POSITIVE`]=o.positive),o.negative&&(process.env[`${e}NEGATIVE`]=o.negative),o.gradient)for(let t=0;t<o.gradient.length;t++)process.env[`${e}GRADIENT_${t}`]=o.gradient[t];};var _,sr=async(e,o,t,i=false,a=true)=>{let n;if(!_?.data||!_?.timestamp||_.timestamp<Date.now()-8e3){let l=t;l||(l=chunkCZ7PAWK2_cjs.c());let d=Io(),h=await Oo(l);if(!h&&(i||V("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 u=await Ro(l),N=ko__default.default(d,h,u);N.variant||(N.variant=fs.existsSync(chunkCZ7PAWK2_cjs.b(l,"nx.json"))||fs.existsSync(chunkCZ7PAWK2_cjs.b(l,".nx"))||fs.existsSync(chunkCZ7PAWK2_cjs.b(l,"lerna.json"))||fs.existsSync(chunkCZ7PAWK2_cjs.b(l,"turbo.json"))?"monorepo":"minimal");try{n=So(await uo.parseAsync(N)),n.workspaceRoot??=l;}catch(J){throw new Error(`Failed to parse Storm Workspace configuration${J?.message?`: ${J.message}`:""}
22
22
 
23
- Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${T(N)}`,{cause:Z})}}else n=_.data;return _={timestamp:Date.now(),data:n},n},zo=async(e,o=false)=>{let t=await sr(void 0,void 0,e,o,true);return wo(t),!o&&!t.skipConfigLogging&&k(`\u2699\uFE0F Using Storm Workspace configuration:
24
- ${T(t)}`,t),t};var ar=(e,o=false)=>zo(e,o),bo=(e=true,o={})=>{let t=o.workspaceRoot;return t||(t=chunkCZ7PAWK2_cjs.c(o.cwd)),ar(t,e)};var xo="latest";var K=xo;async function Do(){return new Promise((e,o)=>{child_process.exec("npm config get registry",(t,i,a)=>t?o(t):a?o(a):e(i.trim()));})}async function Go(e,o=K,t={}){let{registry:i=await Do()}=t;return new Promise((a,n)=>{child_process.exec(`npm view ${e} version --registry=${i} --tag=${o}`,(p,m,v)=>p?n(p):v?n(v):a(m.trim()));})}async function lr(e=chunkCZ7PAWK2_cjs.c(process.cwd())){let o=await chunkCZ7PAWK2_cjs.e(e);if(!o)throw new Error("No pnpm-workspace.yaml file found");if(o?.catalog)return Object.fromEntries(Object.entries(o.catalog).map(([t,i])=>[t,i.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${e}
25
- File content: ${JSON.stringify(o,null,2)}`);}async function mr(e=chunkCZ7PAWK2_cjs.c(process.cwd())){let o=await lr(e);if(!o)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return o}async function gr(e,o=chunkCZ7PAWK2_cjs.c(process.cwd())){let t=await chunkCZ7PAWK2_cjs.e(o);if(!t)throw new Error("No pnpm-workspace.yaml file found");t.catalog=Object.fromEntries(Object.entries(e).map(([i,a])=>[i,a.replaceAll('"',"").replaceAll("'","")])),await chunkCZ7PAWK2_cjs.f(t,o);}async function us(e,o={}){let{tag:t=K,throwIfMissingInCatalog:i=false,workspaceRoot:a=chunkCZ7PAWK2_cjs.c()}=o,n=await bo(true,{workspaceRoot:a}),p=await mr(a);if(!p)throw new Error("No catalog found");if(i===true&&!p[e])throw new Error(`Package "${e}" not found in catalog: ${JSON.stringify(p,null,2)}`);k(`Upgrading catalog entry for package "${e}" with tag "${t}"`,n);let m=await Go(e,t);(!semver.valid(semver.coerce(p[e]))||semver.coerce(p[e])&&semver.coerce(m)&&semver.gt(semver.coerce(m),semver.coerce(p[e])))&&(p[e]=m),Co(`Writing version ${m} to catalog for "${e}" package`,n),await gr(p,a);}exports.a=lr;exports.b=mr;exports.c=gr;exports.d=us;
23
+ Please ensure your configuration file is valid JSON and matches the expected schema. The current workspace configuration input is: ${C(N)}`,{cause:J})}}else n=_.data;return _={timestamp:Date.now(),data:n},n},zo=async(e,o=false)=>{let t=await sr(void 0,void 0,e,o,true);return wo(t),!o&&!t.skipConfigLogging&&k(`\u2699\uFE0F Using Storm Workspace configuration:
24
+ ${C(t)}`,t),t};var ar=(e,o=false)=>zo(e,o),bo=(e=true,o={})=>{let t=o.workspaceRoot;return t||(t=chunkCZ7PAWK2_cjs.c(o.cwd)),ar(t,e)};var xo="latest";var Z=xo;async function Do(){return new Promise((e,o)=>{child_process.exec("npm config get registry",(t,i,a)=>t?o(t):a?o(a):e(i.trim()));})}async function Go(e,o=Z,t={}){let{registry:i=await Do()}=t;return new Promise((a,n)=>{child_process.exec(`npm view ${e} version --registry=${i} --tag=${o}`,(l,d,h)=>l?n(l):h?n(h):a(d.trim()));})}async function lr(e=chunkCZ7PAWK2_cjs.c(process.cwd())){let o=await chunkCZ7PAWK2_cjs.e(e);if(!o)throw new Error("No pnpm-workspace.yaml file found");if(o?.catalog)return Object.fromEntries(Object.entries(o.catalog).map(([t,i])=>[t,i.replaceAll('"',"").replaceAll("'","")]));console.warn(`No catalog found in pnpm-workspace.yaml file located in workspace root: ${e}
25
+ File content: ${JSON.stringify(o,null,2)}`);}async function mr(e=chunkCZ7PAWK2_cjs.c(process.cwd())){let o=await lr(e);if(!o)throw new Error("No catalog entries found in pnpm-workspace.yaml file");return o}async function gr(e,o=chunkCZ7PAWK2_cjs.c(process.cwd())){let t=await chunkCZ7PAWK2_cjs.e(o);if(!t)throw new Error("No pnpm-workspace.yaml file found");t.catalog=Object.fromEntries(Object.entries(e).map(([i,a])=>[i,a.replaceAll('"',"").replaceAll("'","")])),await chunkCZ7PAWK2_cjs.f(t,o);}async function us(e,o={}){let{tag:t=Z,prefix:i="^",throwIfMissingInCatalog:a=false,workspaceRoot:n=chunkCZ7PAWK2_cjs.c()}=o,l=await bo(true,{workspaceRoot:n}),d=await mr(n);if(!d)throw new Error("No catalog found");if(a===true&&!d[e])throw new Error(`Package "${e}" not found in catalog: ${JSON.stringify(d,null,2)}`);k(`Upgrading catalog entry for package "${e}" with tag "${t}"`,l);let h=await Go(e,t);!semver.valid(semver.coerce(d[e]))||semver.coerce(d[e])&&semver.coerce(h)&&semver.gt(semver.coerce(h),semver.coerce(d[e]))?(d[e]=`${i||""}${h}`,Co(`Writing version ${h} to catalog for "${e}" package`,l),await gr(d,n)):V(`The current version "${d[e]}" for package "${e}" is greater than or equal to the version "${h}" fetched from the npm registry with tag "${t}". No update performed.`,l);}exports.a=lr;exports.b=mr;exports.c=gr;exports.d=us;
@@ -1 +1 @@
1
- 'use strict';var chunk3AMGJZOB_cjs=require('../chunk-3AMGJZOB.cjs');require('../chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.a}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.c}});Object.defineProperty(exports,"upgradeCatalogPackage",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.d}});
1
+ 'use strict';var chunkZZOQH7Z4_cjs=require('../chunk-ZZOQH7Z4.cjs');require('../chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.a}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.c}});Object.defineProperty(exports,"upgradeCatalogPackage",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.d}});
@@ -39,6 +39,18 @@ interface UpgradeCatalogPackageOptions {
39
39
  * @defaultValue `false`
40
40
  */
41
41
  throwIfMissingInCatalog?: boolean;
42
+ /**
43
+ * The version prefix to use when updating the package (e.g., "^", "~", or "1.2.3"). Defaults to "^".
44
+ *
45
+ * - Caret (^): The default prefix. It allows updates to the latest minor or patch version while staying within the same major version. Example: “^1.2.3" allows updates to 1.3.0 or 1.2.4, but not 2.0.0.
46
+ * - Tilde (~): Allows updates to the latest patch version while staying within the same minor version. Example: “~1.2.3" allows updates to 1.2.4 but not 1.3.0.
47
+ * - Exact (no prefix): Locks the dependency to a specific version. No updates are allowed. Example: 1.2.3 will only use 1.2.3.
48
+ * - Greater/Less Than (>, <, >=, <=): Specifies a range of acceptable versions. Example: “>=1.2.3 <2.0.0" allows any version from 1.2.3 to 1.9.x.
49
+ * - Wildcard (*): Allows the most flexibility by accepting any version. Example: “*2.4.6" allows any version.
50
+ *
51
+ * @defaultValue `"^"`
52
+ */
53
+ prefix?: "^" | "~" | ">" | "<" | ">=" | "<=" | "*";
42
54
  }
43
55
  /**
44
56
  * Update package.json dependencies currently using `catalog:` or `workspace:*` to use the pnpm catalog dependencies actual versions and the local workspace versions respectively.
@@ -39,6 +39,18 @@ interface UpgradeCatalogPackageOptions {
39
39
  * @defaultValue `false`
40
40
  */
41
41
  throwIfMissingInCatalog?: boolean;
42
+ /**
43
+ * The version prefix to use when updating the package (e.g., "^", "~", or "1.2.3"). Defaults to "^".
44
+ *
45
+ * - Caret (^): The default prefix. It allows updates to the latest minor or patch version while staying within the same major version. Example: “^1.2.3" allows updates to 1.3.0 or 1.2.4, but not 2.0.0.
46
+ * - Tilde (~): Allows updates to the latest patch version while staying within the same minor version. Example: “~1.2.3" allows updates to 1.2.4 but not 1.3.0.
47
+ * - Exact (no prefix): Locks the dependency to a specific version. No updates are allowed. Example: 1.2.3 will only use 1.2.3.
48
+ * - Greater/Less Than (>, <, >=, <=): Specifies a range of acceptable versions. Example: “>=1.2.3 <2.0.0" allows any version from 1.2.3 to 1.9.x.
49
+ * - Wildcard (*): Allows the most flexibility by accepting any version. Example: “*2.4.6" allows any version.
50
+ *
51
+ * @defaultValue `"^"`
52
+ */
53
+ prefix?: "^" | "~" | ">" | "<" | ">=" | "<=" | "*";
42
54
  }
43
55
  /**
44
56
  * Update package.json dependencies currently using `catalog:` or `workspace:*` to use the pnpm catalog dependencies actual versions and the local workspace versions respectively.
@@ -1 +1 @@
1
- export{b as getCatalog,a as getCatalogSafe,c as setCatalog,d as upgradeCatalogPackage}from'../chunk-IRDZWJUO.js';import'../chunk-LGDN3UHN.js';
1
+ export{b as getCatalog,a as getCatalogSafe,c as setCatalog,d as upgradeCatalogPackage}from'../chunk-IMQTDNZI.js';import'../chunk-LGDN3UHN.js';
@@ -1 +1 @@
1
- 'use strict';require('../chunk-QNTSKZUU.cjs');var chunk63WRYQQA_cjs=require('../chunk-63WRYQQA.cjs'),chunk3AMGJZOB_cjs=require('../chunk-3AMGJZOB.cjs'),chunkCZ7PAWK2_cjs=require('../chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunk63WRYQQA_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.a}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.c}});Object.defineProperty(exports,"upgradeCatalogPackage",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.d}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.e}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.f}});
1
+ 'use strict';require('../chunk-QNTSKZUU.cjs');var chunkYXTQCEU6_cjs=require('../chunk-YXTQCEU6.cjs'),chunkZZOQH7Z4_cjs=require('../chunk-ZZOQH7Z4.cjs'),chunkCZ7PAWK2_cjs=require('../chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkYXTQCEU6_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.a}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.c}});Object.defineProperty(exports,"upgradeCatalogPackage",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.d}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.e}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.f}});
@@ -1 +1 @@
1
- import'../chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'../chunk-EZWVVW7F.js';export{b as getCatalog,a as getCatalogSafe,c as setCatalog,d as upgradeCatalogPackage}from'../chunk-IRDZWJUO.js';export{d as getPnpmWorkspaceFilePath,e as readPnpmWorkspaceFile,f as writePnpmWorkspaceFile}from'../chunk-LGDN3UHN.js';
1
+ import'../chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'../chunk-IHDHOPTD.js';export{b as getCatalog,a as getCatalogSafe,c as setCatalog,d as upgradeCatalogPackage}from'../chunk-IMQTDNZI.js';export{d as getPnpmWorkspaceFilePath,e as readPnpmWorkspaceFile,f as writePnpmWorkspaceFile}from'../chunk-LGDN3UHN.js';
@@ -1 +1 @@
1
- 'use strict';var chunk63WRYQQA_cjs=require('../chunk-63WRYQQA.cjs');require('../chunk-3AMGJZOB.cjs'),require('../chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunk63WRYQQA_cjs.a}});
1
+ 'use strict';var chunkYXTQCEU6_cjs=require('../chunk-YXTQCEU6.cjs');require('../chunk-ZZOQH7Z4.cjs'),require('../chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkYXTQCEU6_cjs.a}});
@@ -1 +1 @@
1
- export{a as replaceDepsAliases}from'../chunk-EZWVVW7F.js';import'../chunk-IRDZWJUO.js';import'../chunk-LGDN3UHN.js';
1
+ export{a as replaceDepsAliases}from'../chunk-IHDHOPTD.js';import'../chunk-IMQTDNZI.js';import'../chunk-LGDN3UHN.js';
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';require('./chunk-SFZRYJZ2.cjs'),require('./chunk-QNTSKZUU.cjs');var chunk63WRYQQA_cjs=require('./chunk-63WRYQQA.cjs'),chunk3AMGJZOB_cjs=require('./chunk-3AMGJZOB.cjs'),chunkCZ7PAWK2_cjs=require('./chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunk63WRYQQA_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.a}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.c}});Object.defineProperty(exports,"upgradeCatalogPackage",{enumerable:true,get:function(){return chunk3AMGJZOB_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.d}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.e}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.f}});
1
+ 'use strict';require('./chunk-SFZRYJZ2.cjs'),require('./chunk-QNTSKZUU.cjs');var chunkYXTQCEU6_cjs=require('./chunk-YXTQCEU6.cjs'),chunkZZOQH7Z4_cjs=require('./chunk-ZZOQH7Z4.cjs'),chunkCZ7PAWK2_cjs=require('./chunk-CZ7PAWK2.cjs');Object.defineProperty(exports,"replaceDepsAliases",{enumerable:true,get:function(){return chunkYXTQCEU6_cjs.a}});Object.defineProperty(exports,"getCatalog",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.b}});Object.defineProperty(exports,"getCatalogSafe",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.a}});Object.defineProperty(exports,"setCatalog",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.c}});Object.defineProperty(exports,"upgradeCatalogPackage",{enumerable:true,get:function(){return chunkZZOQH7Z4_cjs.d}});Object.defineProperty(exports,"getPnpmWorkspaceFilePath",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.d}});Object.defineProperty(exports,"readPnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.e}});Object.defineProperty(exports,"writePnpmWorkspaceFile",{enumerable:true,get:function(){return chunkCZ7PAWK2_cjs.f}});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-GGNOJ77I.js';import'./chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'./chunk-EZWVVW7F.js';export{b as getCatalog,a as getCatalogSafe,c as setCatalog,d as upgradeCatalogPackage}from'./chunk-IRDZWJUO.js';export{d as getPnpmWorkspaceFilePath,e as readPnpmWorkspaceFile,f as writePnpmWorkspaceFile}from'./chunk-LGDN3UHN.js';
1
+ import'./chunk-GGNOJ77I.js';import'./chunk-GV6YH6UO.js';export{a as replaceDepsAliases}from'./chunk-IHDHOPTD.js';export{b as getCatalog,a as getCatalogSafe,c as setCatalog,d as upgradeCatalogPackage}from'./chunk-IMQTDNZI.js';export{d as getPnpmWorkspaceFilePath,e as readPnpmWorkspaceFile,f as writePnpmWorkspaceFile}from'./chunk-LGDN3UHN.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/pnpm-tools",
3
- "version": "0.4.6",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "description": "A set of [pnpm](https://pnpm.io/) plugins and utilities for managing workspace packages/dependencies.",
6
6
  "repository": {
@@ -89,9 +89,9 @@
89
89
  "dependencies": {
90
90
  "@pnpm/plugin-better-defaults": "^0.2.1",
91
91
  "@pnpm/plugin-esm-node-path": "^0.1.2",
92
- "@storm-software/config": "^1.133.0",
93
- "@storm-software/config-tools": "^1.187.1",
94
- "@storm-software/npm-tools": "^0.4.6",
92
+ "@storm-software/config": "^1.133.1",
93
+ "@storm-software/config-tools": "^1.187.3",
94
+ "@storm-software/npm-tools": "^0.4.8",
95
95
  "commander": "^12.1.0",
96
96
  "defu": "6.1.4",
97
97
  "prettier": "^3.5.1",
@@ -105,5 +105,5 @@
105
105
  "tsup": "8.4.0"
106
106
  },
107
107
  "publishConfig": { "access": "public" },
108
- "gitHead": "6928556be32247f000a29f9aa3e3aa14f83149c3"
108
+ "gitHead": "0c4750390a9eff41a44b6326d0d4beeda4ce92e5"
109
109
  }