@storm-software/projen 0.15.26 → 0.15.28

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,20 @@
2
2
 
3
3
  # Changelog for Storm Ops - Projen
4
4
 
5
+ ## [0.15.27](https://github.com/storm-software/storm-ops/releases/tag/projen%400.15.27) (2025-06-20)
6
+
7
+ ### Miscellaneous
8
+
9
+ - **monorepo:** Regenerate README markdown files
10
+ ([0bdc8a84e](https://github.com/storm-software/storm-ops/commit/0bdc8a84e))
11
+
12
+ ## [0.15.26](https://github.com/storm-software/storm-ops/releases/tag/projen%400.15.26) (2025-06-18)
13
+
14
+ ### Miscellaneous
15
+
16
+ - **monorepo:** Regenerate README markdown files
17
+ ([0975b603d](https://github.com/storm-software/storm-ops/commit/0975b603d))
18
+
5
19
  ## [0.15.25](https://github.com/storm-software/storm-ops/releases/tag/projen%400.15.25) (2025-06-18)
6
20
 
7
21
  ### Miscellaneous
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.15.25-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.15.27-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 -->
@@ -96,7 +96,7 @@ init_esm_shims();
96
96
 
97
97
  // ../config/src/schema.ts
98
98
  init_esm_shims();
99
- import z from "zod";
99
+ import * as z from "zod/v4";
100
100
  var DarkColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1d1e22").describe("The dark background color of the workspace");
101
101
  var LightColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#f4f4f5").describe("The light background color of the workspace");
102
102
  var BrandColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1fb2a6").describe("The primary brand specific color of the workspace");
@@ -237,6 +237,15 @@ var errorConfigSchema = z.object({
237
237
  "A URL to a page that looks up the workspace's error messages given a specific error code"
238
238
  )
239
239
  }).describe("The workspace's error config used during the error process");
240
+ var organizationConfigSchema = z.object({
241
+ name: z.string().trim().describe("The name of the organization"),
242
+ description: z.string().trim().optional().describe("A description of the organization"),
243
+ logo: z.string().trim().url().optional().describe("A URL to the organization's logo image"),
244
+ icon: z.string().trim().url().optional().describe("A URL to the organization's icon image"),
245
+ url: z.string().trim().url().optional().describe(
246
+ "A URL to a page that provides more information about the organization"
247
+ )
248
+ }).describe("The workspace's organization details");
240
249
  var stormWorkspaceConfigSchema = z.object({
241
250
  $schema: z.string().trim().default(
242
251
  "https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm-workspace.schema.json"
@@ -248,7 +257,9 @@ var stormWorkspaceConfigSchema = z.object({
248
257
  "The name of the service/package/scope using this configuration"
249
258
  ),
250
259
  namespace: z.string().trim().toLowerCase().optional().describe("The namespace of the package"),
251
- organization: z.string().trim().default("storm-software").describe("The organization of the workspace"),
260
+ organization: organizationConfigSchema.or(z.string().trim().describe("The organization of the workspace")).optional().describe(
261
+ "The organization of the workspace. This can be a string or an object containing the organization's details"
262
+ ),
252
263
  repository: z.string().trim().optional().describe("The repo URL of the workspace (i.e. GitHub)"),
253
264
  license: z.string().trim().default("Apache-2.0").describe("The license type of the package"),
254
265
  homepage: z.string().trim().url().optional().describe("The homepage of the workspace"),
@@ -301,7 +312,7 @@ var stormWorkspaceConfigSchema = z.object({
301
312
  colors: ColorConfigSchema.or(ColorConfigMapSchema).describe(
302
313
  "Storm theme config values used for styling various package elements"
303
314
  ),
304
- extensions: z.record(z.any()).optional().default({}).describe("Configuration of each used extension")
315
+ extensions: z.record(z.string(), z.any()).optional().default({}).describe("Configuration of each used extension")
305
316
  }).describe(
306
317
  "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."
307
318
  );
@@ -977,7 +988,13 @@ var getConfigEnv = () => {
977
988
  medium: process.env[`${prefix}ACCOUNT_MEDIUM`] || void 0,
978
989
  github: process.env[`${prefix}ACCOUNT_GITHUB`] || void 0
979
990
  },
980
- organization: process.env[`${prefix}ORGANIZATION`] || void 0,
991
+ organization: process.env[`${prefix}ORG`] || process.env[`${prefix}ORGANIZATION`] || process.env[`${prefix}ORG_NAME`] || process.env[`${prefix}ORGANIZATION_NAME`] ? process.env[`${prefix}ORG_DESCRIPTION`] || process.env[`${prefix}ORGANIZATION_DESCRIPTION`] || process.env[`${prefix}ORG_URL`] || process.env[`${prefix}ORGANIZATION_URL`] || process.env[`${prefix}ORG_LOGO`] || process.env[`${prefix}ORGANIZATION_LOGO`] ? {
992
+ name: process.env[`${prefix}ORG`] || process.env[`${prefix}ORGANIZATION`] || process.env[`${prefix}ORG_NAME`] || process.env[`${prefix}ORGANIZATION_NAME`],
993
+ description: process.env[`${prefix}ORG_DESCRIPTION`] || process.env[`${prefix}ORGANIZATION_DESCRIPTION`] || void 0,
994
+ url: process.env[`${prefix}ORG_URL`] || process.env[`${prefix}ORGANIZATION_URL`] || void 0,
995
+ logo: process.env[`${prefix}ORG_LOGO`] || process.env[`${prefix}ORGANIZATION_LOGO`] || void 0,
996
+ icon: process.env[`${prefix}ORG_ICON`] || process.env[`${prefix}ORGANIZATION_ICON`] || void 0
997
+ } : process.env[`${prefix}ORG`] || process.env[`${prefix}ORGANIZATION`] || process.env[`${prefix}ORG_NAME`] || process.env[`${prefix}ORGANIZATION_NAME`] : void 0,
981
998
  packageManager: process.env[`${prefix}PACKAGE_MANAGER`] || void 0,
982
999
  license: process.env[`${prefix}LICENSE`] || void 0,
983
1000
  homepage: process.env[`${prefix}HOMEPAGE`] || void 0,
@@ -1185,7 +1202,33 @@ var setConfigEnv = (config) => {
1185
1202
  }
1186
1203
  }
1187
1204
  if (config.organization) {
1188
- process.env[`${prefix}ORGANIZATION`] = config.organization;
1205
+ if (typeof config.organization === "string") {
1206
+ process.env[`${prefix}ORG`] = config.organization;
1207
+ process.env[`${prefix}ORG_NAME`] = config.organization;
1208
+ process.env[`${prefix}ORGANIZATION`] = config.organization;
1209
+ process.env[`${prefix}ORGANIZATION_NAME`] = config.organization;
1210
+ } else {
1211
+ process.env[`${prefix}ORG`] = config.organization.name;
1212
+ process.env[`${prefix}ORG_NAME`] = config.organization.name;
1213
+ process.env[`${prefix}ORGANIZATION`] = config.organization.name;
1214
+ process.env[`${prefix}ORGANIZATION_NAME`] = config.organization.name;
1215
+ if (config.organization.url) {
1216
+ process.env[`${prefix}ORG_URL`] = config.organization.url;
1217
+ process.env[`${prefix}ORGANIZATION_URL`] = config.organization.url;
1218
+ }
1219
+ if (config.organization.description) {
1220
+ process.env[`${prefix}ORG_DESCRIPTION`] = config.organization.description;
1221
+ process.env[`${prefix}ORGANIZATION_DESCRIPTION`] = config.organization.description;
1222
+ }
1223
+ if (config.organization.logo) {
1224
+ process.env[`${prefix}ORG_LOGO`] = config.organization.logo;
1225
+ process.env[`${prefix}ORGANIZATION_LOGO`] = config.organization.logo;
1226
+ }
1227
+ if (config.organization.icon) {
1228
+ process.env[`${prefix}ORG_ICON`] = config.organization.icon;
1229
+ process.env[`${prefix}ORGANIZATION_ICON`] = config.organization.icon;
1230
+ }
1231
+ }
1189
1232
  }
1190
1233
  if (config.packageManager) {
1191
1234
  process.env[`${prefix}PACKAGE_MANAGER`] = config.packageManager;
@@ -3193,7 +3236,7 @@ async function typeScriptLibraryGeneratorFn(tree, options, config) {
3193
3236
  addProjectConfiguration(tree, normalized.name, projectConfig);
3194
3237
  let repository = {
3195
3238
  type: "github",
3196
- url: config?.repository || `https://github.com/${config?.organization || "storm-software"}/${config?.namespace || config?.name || "repository"}.git`
3239
+ url: config?.repository || `https://github.com/${(typeof config?.organization === "string" ? config?.organization : config?.organization?.name) || "storm-software"}/${config?.namespace || config?.name || "repository"}.git`
3197
3240
  };
3198
3241
  let description = options.description || "A package developed by Storm Software used to create modern, scalable web applications.";
3199
3242
  if (tree.exists("package.json")) {
@@ -3484,7 +3527,7 @@ var generator_default = withRunGenerator(
3484
3527
  // ../workspace-tools/src/generators/config-schema/generator.ts
3485
3528
  init_esm_shims();
3486
3529
  import { formatFiles as formatFiles3, writeJson as writeJson2 } from "@nx/devkit";
3487
- import { zodToJsonSchema } from "zod-to-json-schema";
3530
+ import * as z2 from "zod/v4";
3488
3531
  async function configSchemaGeneratorFn(tree, options, config) {
3489
3532
  writeInfo(
3490
3533
  "\u{1F4E6} Running Storm Workspace Configuration JSON Schema generator",
@@ -3494,13 +3537,16 @@ async function configSchemaGeneratorFn(tree, options, config) {
3494
3537
  `Determining the Storm Workspace Configuration JSON Schema...`,
3495
3538
  config
3496
3539
  );
3497
- const jsonSchema = zodToJsonSchema(stormWorkspaceConfigSchema, {
3498
- name: "StormWorkspaceConfiguration"
3499
- });
3540
+ const jsonSchema = z2.toJSONSchema(stormWorkspaceConfigSchema);
3500
3541
  writeTrace(jsonSchema, config);
3542
+ if (!options.outputFile) {
3543
+ throw new Error(
3544
+ "The `outputFile` option is required. Please specify the output file path."
3545
+ );
3546
+ }
3501
3547
  const outputPath = options.outputFile.replaceAll("{workspaceRoot}", "").replaceAll(
3502
3548
  config?.workspaceRoot ?? findWorkspaceRoot(),
3503
- options.outputFile?.startsWith("./") ? "" : "./"
3549
+ options.outputFile.startsWith("./") ? "" : "./"
3504
3550
  );
3505
3551
  writeTrace(
3506
3552
  `\u{1F4DD} Writing Storm Configuration JSON Schema to "${outputPath}"`,
@@ -95,22 +95,22 @@ _chunkMWIFWHR4js.init_cjs_shims.call(void 0, );
95
95
 
96
96
  // ../config/src/schema.ts
97
97
  _chunkMWIFWHR4js.init_cjs_shims.call(void 0, );
98
- var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);
99
- var DarkColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1d1e22").describe("The dark background color of the workspace");
100
- var LightColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#f4f4f5").describe("The light background color of the workspace");
101
- var BrandColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1fb2a6").describe("The primary brand specific color of the workspace");
102
- var AlternateColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The alternate brand specific color of the workspace");
103
- var AccentColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The secondary brand specific color of the workspace");
104
- var LinkColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The color used to display hyperlink text");
105
- var HelpColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#8256D0").describe("The second brand specific color of the workspace");
106
- var SuccessColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#12B66A").describe("The success color of the workspace");
107
- var InfoColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#0070E0").describe("The informational color of the workspace");
108
- var WarningColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#fcc419").describe("The warning color of the workspace");
109
- var DangerColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#D8314A").describe("The danger color of the workspace");
110
- var FatalColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The fatal color of the workspace");
111
- var PositiveColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#4ade80").describe("The positive number color of the workspace");
112
- var NegativeColorSchema = _zod2.default.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#ef4444").describe("The negative number color of the workspace");
113
- var DarkThemeColorConfigSchema = _zod2.default.object({
98
+ var _v4 = require('zod/v4'); var z = _interopRequireWildcard(_v4); var z2 = _interopRequireWildcard(_v4);
99
+ var DarkColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1d1e22").describe("The dark background color of the workspace");
100
+ var LightColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#f4f4f5").describe("The light background color of the workspace");
101
+ var BrandColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#1fb2a6").describe("The primary brand specific color of the workspace");
102
+ var AlternateColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The alternate brand specific color of the workspace");
103
+ var AccentColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The secondary brand specific color of the workspace");
104
+ var LinkColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The color used to display hyperlink text");
105
+ var HelpColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#8256D0").describe("The second brand specific color of the workspace");
106
+ var SuccessColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#12B66A").describe("The success color of the workspace");
107
+ var InfoColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#0070E0").describe("The informational color of the workspace");
108
+ var WarningColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#fcc419").describe("The warning color of the workspace");
109
+ var DangerColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#D8314A").describe("The danger color of the workspace");
110
+ var FatalColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).optional().describe("The fatal color of the workspace");
111
+ var PositiveColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#4ade80").describe("The positive number color of the workspace");
112
+ var NegativeColorSchema = z.string().trim().toLowerCase().regex(/^#([0-9a-f]{3}){1,2}$/i).length(7).default("#ef4444").describe("The negative number color of the workspace");
113
+ var DarkThemeColorConfigSchema = z.object({
114
114
  foreground: LightColorSchema,
115
115
  background: DarkColorSchema,
116
116
  brand: BrandColorSchema,
@@ -126,7 +126,7 @@ var DarkThemeColorConfigSchema = _zod2.default.object({
126
126
  positive: PositiveColorSchema,
127
127
  negative: NegativeColorSchema
128
128
  });
129
- var LightThemeColorConfigSchema = _zod2.default.object({
129
+ var LightThemeColorConfigSchema = z.object({
130
130
  foreground: DarkColorSchema,
131
131
  background: LightColorSchema,
132
132
  brand: BrandColorSchema,
@@ -142,11 +142,11 @@ var LightThemeColorConfigSchema = _zod2.default.object({
142
142
  positive: PositiveColorSchema,
143
143
  negative: NegativeColorSchema
144
144
  });
145
- var MultiThemeColorConfigSchema = _zod2.default.object({
145
+ var MultiThemeColorConfigSchema = z.object({
146
146
  dark: DarkThemeColorConfigSchema,
147
147
  light: LightThemeColorConfigSchema
148
148
  });
149
- var SingleThemeColorConfigSchema = _zod2.default.object({
149
+ var SingleThemeColorConfigSchema = z.object({
150
150
  dark: DarkColorSchema,
151
151
  light: LightColorSchema,
152
152
  brand: BrandColorSchema,
@@ -162,8 +162,8 @@ var SingleThemeColorConfigSchema = _zod2.default.object({
162
162
  positive: PositiveColorSchema,
163
163
  negative: NegativeColorSchema
164
164
  });
165
- var RegistryUrlConfigSchema = _zod2.default.string().trim().toLowerCase().url().optional().describe("A remote registry URL used to publish distributable packages");
166
- var RegistryConfigSchema = _zod2.default.object({
165
+ var RegistryUrlConfigSchema = z.string().trim().toLowerCase().url().optional().describe("A remote registry URL used to publish distributable packages");
166
+ var RegistryConfigSchema = z.object({
167
167
  github: RegistryUrlConfigSchema,
168
168
  npm: RegistryUrlConfigSchema,
169
169
  cargo: RegistryUrlConfigSchema,
@@ -173,111 +173,122 @@ var RegistryConfigSchema = _zod2.default.object({
173
173
  var ColorConfigSchema = SingleThemeColorConfigSchema.or(
174
174
  MultiThemeColorConfigSchema
175
175
  ).describe("Colors used for various workspace elements");
176
- var ColorConfigMapSchema = _zod2.default.union([
177
- _zod2.default.object({ base: ColorConfigSchema }),
178
- _zod2.default.record(_zod2.default.string(), ColorConfigSchema)
176
+ var ColorConfigMapSchema = z.union([
177
+ z.object({ base: ColorConfigSchema }),
178
+ z.record(z.string(), ColorConfigSchema)
179
179
  ]);
180
- var ExtendsItemSchema = _zod2.default.string().trim().describe(
180
+ var ExtendsItemSchema = z.string().trim().describe(
181
181
  "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."
182
182
  );
183
183
  var ExtendsSchema = ExtendsItemSchema.or(
184
- _zod2.default.array(ExtendsItemSchema)
184
+ z.array(ExtendsItemSchema)
185
185
  ).describe(
186
186
  "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."
187
187
  );
188
- var WorkspaceBotConfigSchema = _zod2.default.object({
189
- name: _zod2.default.string().trim().default("stormie-bot").describe(
188
+ var WorkspaceBotConfigSchema = z.object({
189
+ name: z.string().trim().default("stormie-bot").describe(
190
190
  "The workspace bot user's name (this is the bot that will be used to perform various tasks)"
191
191
  ),
192
- email: _zod2.default.string().trim().email().default("bot@stormsoftware.com").describe("The email of the workspace bot")
192
+ email: z.string().trim().email().default("bot@stormsoftware.com").describe("The email of the workspace bot")
193
193
  }).describe(
194
194
  "The workspace's bot user's config used to automated various operations tasks"
195
195
  );
196
- var WorkspaceReleaseConfigSchema = _zod2.default.object({
197
- banner: _zod2.default.string().trim().default(STORM_DEFAULT_RELEASE_BANNER).describe(
196
+ var WorkspaceReleaseConfigSchema = z.object({
197
+ banner: z.string().trim().default(STORM_DEFAULT_RELEASE_BANNER).describe(
198
198
  "A URL to a banner image used to display the workspace's release"
199
199
  ),
200
- header: _zod2.default.string().trim().optional().describe(
200
+ header: z.string().trim().optional().describe(
201
201
  "A header message appended to the start of the workspace's release notes"
202
202
  ),
203
- footer: _zod2.default.string().trim().default(STORM_DEFAULT_RELEASE_FOOTER).describe(
203
+ footer: z.string().trim().default(STORM_DEFAULT_RELEASE_FOOTER).describe(
204
204
  "A footer message appended to the end of the workspace's release notes"
205
205
  )
206
206
  }).describe("The workspace's release config used during the release process");
207
- var WorkspaceAccountConfigSchema = _zod2.default.object({
208
- twitter: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_TWITTER).describe("A Twitter/X account associated with the organization/project"),
209
- discord: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_DISCORD).describe("A Discord account associated with the organization/project"),
210
- telegram: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_TELEGRAM).describe("A Telegram account associated with the organization/project"),
211
- slack: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_SLACK).describe("A Slack account associated with the organization/project"),
212
- medium: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_MEDIUM).describe("A Medium account associated with the organization/project"),
213
- github: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_GITHUB).describe("A GitHub account associated with the organization/project")
207
+ var WorkspaceAccountConfigSchema = z.object({
208
+ twitter: z.string().trim().default(STORM_DEFAULT_ACCOUNT_TWITTER).describe("A Twitter/X account associated with the organization/project"),
209
+ discord: z.string().trim().default(STORM_DEFAULT_ACCOUNT_DISCORD).describe("A Discord account associated with the organization/project"),
210
+ telegram: z.string().trim().default(STORM_DEFAULT_ACCOUNT_TELEGRAM).describe("A Telegram account associated with the organization/project"),
211
+ slack: z.string().trim().default(STORM_DEFAULT_ACCOUNT_SLACK).describe("A Slack account associated with the organization/project"),
212
+ medium: z.string().trim().default(STORM_DEFAULT_ACCOUNT_MEDIUM).describe("A Medium account associated with the organization/project"),
213
+ github: z.string().trim().default(STORM_DEFAULT_ACCOUNT_GITHUB).describe("A GitHub account associated with the organization/project")
214
214
  }).describe(
215
215
  "The workspace's account config used to store various social media links"
216
216
  );
217
- var WorkspaceDirectoryConfigSchema = _zod2.default.object({
218
- cache: _zod2.default.string().trim().optional().describe(
217
+ var WorkspaceDirectoryConfigSchema = z.object({
218
+ cache: z.string().trim().optional().describe(
219
219
  "The directory used to store the environment's cached file data"
220
220
  ),
221
- data: _zod2.default.string().trim().optional().describe("The directory used to store the environment's data files"),
222
- config: _zod2.default.string().trim().optional().describe(
221
+ data: z.string().trim().optional().describe("The directory used to store the environment's data files"),
222
+ config: z.string().trim().optional().describe(
223
223
  "The directory used to store the environment's configuration files"
224
224
  ),
225
- temp: _zod2.default.string().trim().optional().describe("The directory used to store the environment's temp files"),
226
- log: _zod2.default.string().trim().optional().describe("The directory used to store the environment's temp files"),
227
- build: _zod2.default.string().trim().default("dist").describe(
225
+ temp: z.string().trim().optional().describe("The directory used to store the environment's temp files"),
226
+ log: z.string().trim().optional().describe("The directory used to store the environment's temp files"),
227
+ build: z.string().trim().default("dist").describe(
228
228
  "The directory used to store the workspace's distributable files after a build (relative to the workspace root)"
229
229
  )
230
230
  }).describe(
231
231
  "Various directories used by the workspace to store data, cache, and configuration files"
232
232
  );
233
- var errorConfigSchema = _zod2.default.object({
234
- codesFile: _zod2.default.string().trim().default(STORM_DEFAULT_ERROR_CODES_FILE).describe("The path to the workspace's error codes JSON file"),
235
- url: _zod2.default.string().trim().url().optional().describe(
233
+ var errorConfigSchema = z.object({
234
+ codesFile: z.string().trim().default(STORM_DEFAULT_ERROR_CODES_FILE).describe("The path to the workspace's error codes JSON file"),
235
+ url: z.string().trim().url().optional().describe(
236
236
  "A URL to a page that looks up the workspace's error messages given a specific error code"
237
237
  )
238
238
  }).describe("The workspace's error config used during the error process");
239
- var stormWorkspaceConfigSchema = _zod2.default.object({
240
- $schema: _zod2.default.string().trim().default(
239
+ var organizationConfigSchema = z.object({
240
+ name: z.string().trim().describe("The name of the organization"),
241
+ description: z.string().trim().optional().describe("A description of the organization"),
242
+ logo: z.string().trim().url().optional().describe("A URL to the organization's logo image"),
243
+ icon: z.string().trim().url().optional().describe("A URL to the organization's icon image"),
244
+ url: z.string().trim().url().optional().describe(
245
+ "A URL to a page that provides more information about the organization"
246
+ )
247
+ }).describe("The workspace's organization details");
248
+ var stormWorkspaceConfigSchema = z.object({
249
+ $schema: z.string().trim().default(
241
250
  "https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm-workspace.schema.json"
242
251
  ).optional().nullish().describe(
243
252
  "The URL to the JSON schema file that describes the Storm configuration file"
244
253
  ),
245
254
  extends: ExtendsSchema.optional(),
246
- name: _zod2.default.string().trim().toLowerCase().optional().describe(
255
+ name: z.string().trim().toLowerCase().optional().describe(
247
256
  "The name of the service/package/scope using this configuration"
248
257
  ),
249
- namespace: _zod2.default.string().trim().toLowerCase().optional().describe("The namespace of the package"),
250
- organization: _zod2.default.string().trim().default("storm-software").describe("The organization of the workspace"),
251
- repository: _zod2.default.string().trim().optional().describe("The repo URL of the workspace (i.e. GitHub)"),
252
- license: _zod2.default.string().trim().default("Apache-2.0").describe("The license type of the package"),
253
- homepage: _zod2.default.string().trim().url().optional().describe("The homepage of the workspace"),
254
- docs: _zod2.default.string().trim().url().optional().describe("The documentation site for the workspace"),
255
- portal: _zod2.default.string().trim().url().optional().describe("The development portal site for the workspace"),
256
- licensing: _zod2.default.string().trim().url().optional().describe("The licensing site for the workspace"),
257
- contact: _zod2.default.string().trim().url().optional().describe("The contact site for the workspace"),
258
- support: _zod2.default.string().trim().url().optional().describe(
258
+ namespace: z.string().trim().toLowerCase().optional().describe("The namespace of the package"),
259
+ organization: organizationConfigSchema.or(z.string().trim().describe("The organization of the workspace")).optional().describe(
260
+ "The organization of the workspace. This can be a string or an object containing the organization's details"
261
+ ),
262
+ repository: z.string().trim().optional().describe("The repo URL of the workspace (i.e. GitHub)"),
263
+ license: z.string().trim().default("Apache-2.0").describe("The license type of the package"),
264
+ homepage: z.string().trim().url().optional().describe("The homepage of the workspace"),
265
+ docs: z.string().trim().url().optional().describe("The documentation site for the workspace"),
266
+ portal: z.string().trim().url().optional().describe("The development portal site for the workspace"),
267
+ licensing: z.string().trim().url().optional().describe("The licensing site for the workspace"),
268
+ contact: z.string().trim().url().optional().describe("The contact site for the workspace"),
269
+ support: z.string().trim().url().optional().describe(
259
270
  "The support site for the workspace. If not provided, this is defaulted to the `contact` config value"
260
271
  ),
261
- branch: _zod2.default.string().trim().default("main").describe("The branch of the workspace"),
262
- preid: _zod2.default.string().optional().describe("A tag specifying the version pre-release identifier"),
263
- owner: _zod2.default.string().trim().default("@storm-software/admin").describe("The owner of the package"),
272
+ branch: z.string().trim().default("main").describe("The branch of the workspace"),
273
+ preid: z.string().optional().describe("A tag specifying the version pre-release identifier"),
274
+ owner: z.string().trim().default("@storm-software/admin").describe("The owner of the package"),
264
275
  bot: WorkspaceBotConfigSchema,
265
276
  release: WorkspaceReleaseConfigSchema,
266
277
  account: WorkspaceAccountConfigSchema,
267
278
  error: errorConfigSchema,
268
- mode: _zod2.default.enum(["development", "staging", "production"]).default("production").describe("The current runtime environment mode for the package"),
269
- workspaceRoot: _zod2.default.string().trim().describe("The root directory of the workspace"),
270
- externalPackagePatterns: _zod2.default.array(_zod2.default.string()).default([]).describe(
279
+ mode: z.enum(["development", "staging", "production"]).default("production").describe("The current runtime environment mode for the package"),
280
+ workspaceRoot: z.string().trim().describe("The root directory of the workspace"),
281
+ externalPackagePatterns: z.array(z.string()).default([]).describe(
271
282
  "The build will use these package patterns to determine if they should be external to the bundle"
272
283
  ),
273
- skipCache: _zod2.default.boolean().default(false).describe("Should all known types of workspace caching be skipped?"),
284
+ skipCache: z.boolean().default(false).describe("Should all known types of workspace caching be skipped?"),
274
285
  directories: WorkspaceDirectoryConfigSchema,
275
- packageManager: _zod2.default.enum(["npm", "yarn", "pnpm", "bun"]).default("npm").describe(
286
+ packageManager: z.enum(["npm", "yarn", "pnpm", "bun"]).default("npm").describe(
276
287
  "The JavaScript/TypeScript package manager used by the repository"
277
288
  ),
278
- timezone: _zod2.default.string().trim().default("America/New_York").describe("The default timezone of the workspace"),
279
- locale: _zod2.default.string().trim().default("en-US").describe("The default locale of the workspace"),
280
- logLevel: _zod2.default.enum([
289
+ timezone: z.string().trim().default("America/New_York").describe("The default timezone of the workspace"),
290
+ locale: z.string().trim().default("en-US").describe("The default locale of the workspace"),
291
+ logLevel: z.enum([
281
292
  "silent",
282
293
  "fatal",
283
294
  "error",
@@ -290,17 +301,17 @@ var stormWorkspaceConfigSchema = _zod2.default.object({
290
301
  ]).default("info").describe(
291
302
  "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`)."
292
303
  ),
293
- skipConfigLogging: _zod2.default.boolean().optional().describe(
304
+ skipConfigLogging: z.boolean().optional().describe(
294
305
  "Should the logging of the current Storm Workspace configuration be skipped?"
295
306
  ),
296
307
  registry: RegistryConfigSchema,
297
- configFile: _zod2.default.string().trim().nullable().default(null).describe(
308
+ configFile: z.string().trim().nullable().default(null).describe(
298
309
  "The filepath of the Storm config. When this field is null, no config file was found in the current workspace."
299
310
  ),
300
311
  colors: ColorConfigSchema.or(ColorConfigMapSchema).describe(
301
312
  "Storm theme config values used for styling various package elements"
302
313
  ),
303
- extensions: _zod2.default.record(_zod2.default.any()).optional().default({}).describe("Configuration of each used extension")
314
+ extensions: z.record(z.string(), z.any()).optional().default({}).describe("Configuration of each used extension")
304
315
  }).describe(
305
316
  "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."
306
317
  );
@@ -976,7 +987,13 @@ var getConfigEnv = () => {
976
987
  medium: process.env[`${prefix}ACCOUNT_MEDIUM`] || void 0,
977
988
  github: process.env[`${prefix}ACCOUNT_GITHUB`] || void 0
978
989
  },
979
- organization: process.env[`${prefix}ORGANIZATION`] || void 0,
990
+ organization: process.env[`${prefix}ORG`] || process.env[`${prefix}ORGANIZATION`] || process.env[`${prefix}ORG_NAME`] || process.env[`${prefix}ORGANIZATION_NAME`] ? process.env[`${prefix}ORG_DESCRIPTION`] || process.env[`${prefix}ORGANIZATION_DESCRIPTION`] || process.env[`${prefix}ORG_URL`] || process.env[`${prefix}ORGANIZATION_URL`] || process.env[`${prefix}ORG_LOGO`] || process.env[`${prefix}ORGANIZATION_LOGO`] ? {
991
+ name: process.env[`${prefix}ORG`] || process.env[`${prefix}ORGANIZATION`] || process.env[`${prefix}ORG_NAME`] || process.env[`${prefix}ORGANIZATION_NAME`],
992
+ description: process.env[`${prefix}ORG_DESCRIPTION`] || process.env[`${prefix}ORGANIZATION_DESCRIPTION`] || void 0,
993
+ url: process.env[`${prefix}ORG_URL`] || process.env[`${prefix}ORGANIZATION_URL`] || void 0,
994
+ logo: process.env[`${prefix}ORG_LOGO`] || process.env[`${prefix}ORGANIZATION_LOGO`] || void 0,
995
+ icon: process.env[`${prefix}ORG_ICON`] || process.env[`${prefix}ORGANIZATION_ICON`] || void 0
996
+ } : process.env[`${prefix}ORG`] || process.env[`${prefix}ORGANIZATION`] || process.env[`${prefix}ORG_NAME`] || process.env[`${prefix}ORGANIZATION_NAME`] : void 0,
980
997
  packageManager: process.env[`${prefix}PACKAGE_MANAGER`] || void 0,
981
998
  license: process.env[`${prefix}LICENSE`] || void 0,
982
999
  homepage: process.env[`${prefix}HOMEPAGE`] || void 0,
@@ -1184,7 +1201,33 @@ var setConfigEnv = (config) => {
1184
1201
  }
1185
1202
  }
1186
1203
  if (config.organization) {
1187
- process.env[`${prefix}ORGANIZATION`] = config.organization;
1204
+ if (typeof config.organization === "string") {
1205
+ process.env[`${prefix}ORG`] = config.organization;
1206
+ process.env[`${prefix}ORG_NAME`] = config.organization;
1207
+ process.env[`${prefix}ORGANIZATION`] = config.organization;
1208
+ process.env[`${prefix}ORGANIZATION_NAME`] = config.organization;
1209
+ } else {
1210
+ process.env[`${prefix}ORG`] = config.organization.name;
1211
+ process.env[`${prefix}ORG_NAME`] = config.organization.name;
1212
+ process.env[`${prefix}ORGANIZATION`] = config.organization.name;
1213
+ process.env[`${prefix}ORGANIZATION_NAME`] = config.organization.name;
1214
+ if (config.organization.url) {
1215
+ process.env[`${prefix}ORG_URL`] = config.organization.url;
1216
+ process.env[`${prefix}ORGANIZATION_URL`] = config.organization.url;
1217
+ }
1218
+ if (config.organization.description) {
1219
+ process.env[`${prefix}ORG_DESCRIPTION`] = config.organization.description;
1220
+ process.env[`${prefix}ORGANIZATION_DESCRIPTION`] = config.organization.description;
1221
+ }
1222
+ if (config.organization.logo) {
1223
+ process.env[`${prefix}ORG_LOGO`] = config.organization.logo;
1224
+ process.env[`${prefix}ORGANIZATION_LOGO`] = config.organization.logo;
1225
+ }
1226
+ if (config.organization.icon) {
1227
+ process.env[`${prefix}ORG_ICON`] = config.organization.icon;
1228
+ process.env[`${prefix}ORGANIZATION_ICON`] = config.organization.icon;
1229
+ }
1230
+ }
1188
1231
  }
1189
1232
  if (config.packageManager) {
1190
1233
  process.env[`${prefix}PACKAGE_MANAGER`] = config.packageManager;
@@ -3192,15 +3235,15 @@ async function typeScriptLibraryGeneratorFn(tree, options, config) {
3192
3235
  _devkit.addProjectConfiguration.call(void 0, tree, normalized.name, projectConfig);
3193
3236
  let repository = {
3194
3237
  type: "github",
3195
- url: _optionalChain([config, 'optionalAccess', _168 => _168.repository]) || `https://github.com/${_optionalChain([config, 'optionalAccess', _169 => _169.organization]) || "storm-software"}/${_optionalChain([config, 'optionalAccess', _170 => _170.namespace]) || _optionalChain([config, 'optionalAccess', _171 => _171.name]) || "repository"}.git`
3238
+ url: _optionalChain([config, 'optionalAccess', _168 => _168.repository]) || `https://github.com/${(typeof _optionalChain([config, 'optionalAccess', _169 => _169.organization]) === "string" ? _optionalChain([config, 'optionalAccess', _170 => _170.organization]) : _optionalChain([config, 'optionalAccess', _171 => _171.organization, 'optionalAccess', _172 => _172.name])) || "storm-software"}/${_optionalChain([config, 'optionalAccess', _173 => _173.namespace]) || _optionalChain([config, 'optionalAccess', _174 => _174.name]) || "repository"}.git`
3196
3239
  };
3197
3240
  let description = options.description || "A package developed by Storm Software used to create modern, scalable web applications.";
3198
3241
  if (tree.exists("package.json")) {
3199
3242
  const packageJson = _devkit.readJson.call(void 0, tree, "package.json");
3200
- if (_optionalChain([packageJson, 'optionalAccess', _172 => _172.repository])) {
3243
+ if (_optionalChain([packageJson, 'optionalAccess', _175 => _175.repository])) {
3201
3244
  repository = packageJson.repository;
3202
3245
  }
3203
- if (_optionalChain([packageJson, 'optionalAccess', _173 => _173.description])) {
3246
+ if (_optionalChain([packageJson, 'optionalAccess', _176 => _176.description])) {
3204
3247
  description = packageJson.description;
3205
3248
  }
3206
3249
  }
@@ -3255,9 +3298,9 @@ async function typeScriptLibraryGeneratorFn(tree, options, config) {
3255
3298
  _devkit.updateJson.call(void 0, tree, "package.json", (json) => ({
3256
3299
  ...json,
3257
3300
  pnpm: {
3258
- ..._optionalChain([json, 'optionalAccess', _174 => _174.pnpm]),
3301
+ ..._optionalChain([json, 'optionalAccess', _177 => _177.pnpm]),
3259
3302
  overrides: {
3260
- ..._optionalChain([json, 'optionalAccess', _175 => _175.pnpm, 'optionalAccess', _176 => _176.overrides]),
3303
+ ..._optionalChain([json, 'optionalAccess', _178 => _178.pnpm, 'optionalAccess', _179 => _179.overrides]),
3261
3304
  [_nullishCoalesce(normalized.importPath, () => ( ""))]: "workspace:*"
3262
3305
  }
3263
3306
  }
@@ -3275,10 +3318,10 @@ async function typeScriptLibraryGeneratorFn(tree, options, config) {
3275
3318
  ]);
3276
3319
  if (tree.exists("package.json")) {
3277
3320
  const packageJson = _devkit.readJson.call(void 0, tree, "package.json");
3278
- if (_optionalChain([packageJson, 'optionalAccess', _177 => _177.repository])) {
3321
+ if (_optionalChain([packageJson, 'optionalAccess', _180 => _180.repository])) {
3279
3322
  repository = packageJson.repository;
3280
3323
  }
3281
- if (_optionalChain([packageJson, 'optionalAccess', _178 => _178.description])) {
3324
+ if (_optionalChain([packageJson, 'optionalAccess', _181 => _181.description])) {
3282
3325
  description = packageJson.description;
3283
3326
  }
3284
3327
  }
@@ -3315,22 +3358,22 @@ function getOutputPath(options) {
3315
3358
  function createProjectTsConfigJson(tree, options) {
3316
3359
  const tsconfig = {
3317
3360
  extends: options.rootProject ? void 0 : _js.getRelativePathToRootTsConfig.call(void 0, tree, options.projectRoot),
3318
- ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _179 => _179.tsconfigOptions]), () => ( {})),
3361
+ ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _182 => _182.tsconfigOptions]), () => ( {})),
3319
3362
  compilerOptions: {
3320
3363
  ...options.rootProject ? _js.tsConfigBaseOptions : {},
3321
3364
  outDir: _chunkLP4I3FEYjs.joinPaths.call(void 0, _devkit.offsetFromRoot.call(void 0, options.projectRoot), "dist/out-tsc"),
3322
3365
  noEmit: true,
3323
- ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _180 => _180.tsconfigOptions, 'optionalAccess', _181 => _181.compilerOptions]), () => ( {}))
3366
+ ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _183 => _183.tsconfigOptions, 'optionalAccess', _184 => _184.compilerOptions]), () => ( {}))
3324
3367
  },
3325
- files: [..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _182 => _182.tsconfigOptions, 'optionalAccess', _183 => _183.files]), () => ( []))],
3368
+ files: [..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _185 => _185.tsconfigOptions, 'optionalAccess', _186 => _186.files]), () => ( []))],
3326
3369
  include: [
3327
- ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _184 => _184.tsconfigOptions, 'optionalAccess', _185 => _185.include]), () => ( [])),
3370
+ ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _187 => _187.tsconfigOptions, 'optionalAccess', _188 => _188.include]), () => ( [])),
3328
3371
  "src/**/*.ts",
3329
3372
  "src/**/*.js",
3330
3373
  "bin/**/*"
3331
3374
  ],
3332
3375
  exclude: [
3333
- ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _186 => _186.tsconfigOptions, 'optionalAccess', _187 => _187.exclude]), () => ( [])),
3376
+ ..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _189 => _189.tsconfigOptions, 'optionalAccess', _190 => _190.exclude]), () => ( [])),
3334
3377
  "jest.config.ts",
3335
3378
  "src/**/*.spec.ts",
3336
3379
  "src/**/*.test.ts"
@@ -3340,8 +3383,8 @@ function createProjectTsConfigJson(tree, options) {
3340
3383
  }
3341
3384
  async function normalizeOptions(tree, options, config) {
3342
3385
  let importPath = options.importPath;
3343
- if (!importPath && _optionalChain([config, 'optionalAccess', _188 => _188.namespace])) {
3344
- importPath = `@${_optionalChain([config, 'optionalAccess', _189 => _189.namespace])}/${options.name}`;
3386
+ if (!importPath && _optionalChain([config, 'optionalAccess', _191 => _191.namespace])) {
3387
+ importPath = `@${_optionalChain([config, 'optionalAccess', _192 => _192.namespace])}/${options.name}`;
3345
3388
  }
3346
3389
  if (options.publishable) {
3347
3390
  if (!importPath) {
@@ -3483,7 +3526,7 @@ var generator_default = withRunGenerator(
3483
3526
  // ../workspace-tools/src/generators/config-schema/generator.ts
3484
3527
  _chunkMWIFWHR4js.init_cjs_shims.call(void 0, );
3485
3528
 
3486
- var _zodtojsonschema = require('zod-to-json-schema');
3529
+
3487
3530
  async function configSchemaGeneratorFn(tree, options, config) {
3488
3531
  writeInfo(
3489
3532
  "\u{1F4E6} Running Storm Workspace Configuration JSON Schema generator",
@@ -3493,13 +3536,16 @@ async function configSchemaGeneratorFn(tree, options, config) {
3493
3536
  `Determining the Storm Workspace Configuration JSON Schema...`,
3494
3537
  config
3495
3538
  );
3496
- const jsonSchema = _zodtojsonschema.zodToJsonSchema.call(void 0, stormWorkspaceConfigSchema, {
3497
- name: "StormWorkspaceConfiguration"
3498
- });
3539
+ const jsonSchema = z2.toJSONSchema(stormWorkspaceConfigSchema);
3499
3540
  writeTrace(jsonSchema, config);
3541
+ if (!options.outputFile) {
3542
+ throw new Error(
3543
+ "The `outputFile` option is required. Please specify the output file path."
3544
+ );
3545
+ }
3500
3546
  const outputPath = options.outputFile.replaceAll("{workspaceRoot}", "").replaceAll(
3501
- _nullishCoalesce(_optionalChain([config, 'optionalAccess', _190 => _190.workspaceRoot]), () => ( findWorkspaceRoot())),
3502
- _optionalChain([options, 'access', _191 => _191.outputFile, 'optionalAccess', _192 => _192.startsWith, 'call', _193 => _193("./")]) ? "" : "./"
3547
+ _nullishCoalesce(_optionalChain([config, 'optionalAccess', _193 => _193.workspaceRoot]), () => ( findWorkspaceRoot())),
3548
+ options.outputFile.startsWith("./") ? "" : "./"
3503
3549
  );
3504
3550
  writeTrace(
3505
3551
  `\u{1F4DD} Writing Storm Configuration JSON Schema to "${outputPath}"`,
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-3MCIDYYV.js');
2
2
 
3
3
 
4
- var _chunkX4UW6KTZjs = require('./chunk-X4UW6KTZ.js');
4
+ var _chunkLWINONZTjs = require('./chunk-LWINONZT.js');
5
5
  require('./chunk-LP4I3FEY.js');
6
6
  require('./chunk-MWIFWHR4.js');
7
7
 
8
8
 
9
- exports.initGeneratorFn = _chunkX4UW6KTZjs.initGeneratorFn;
9
+ exports.initGeneratorFn = _chunkLWINONZTjs.initGeneratorFn;
@@ -1,7 +1,7 @@
1
1
  import "./chunk-5UXDEQBC.mjs";
2
2
  import {
3
3
  initGeneratorFn
4
- } from "./chunk-UWFMHGH3.mjs";
4
+ } from "./chunk-GPPLEZ5J.mjs";
5
5
  import "./chunk-IYQFGVQK.mjs";
6
6
  import "./chunk-ULH77QLV.mjs";
7
7
  export {
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  var _chunkKFR27Y3Kjs = require('./chunk-KFR27Y3K.js');
5
5
 
6
6
 
7
- var _chunkX4UW6KTZjs = require('./chunk-X4UW6KTZ.js');
7
+ var _chunkLWINONZTjs = require('./chunk-LWINONZT.js');
8
8
  require('./chunk-LP4I3FEY.js');
9
9
 
10
10
 
@@ -16,10 +16,10 @@ var _chunkMWIFWHR4js = require('./chunk-MWIFWHR4.js');
16
16
  // index.ts
17
17
  var index_exports = {};
18
18
  _chunkMWIFWHR4js.__export.call(void 0, index_exports, {
19
- initGeneratorFn: () => _chunkX4UW6KTZjs.initGeneratorFn
19
+ initGeneratorFn: () => _chunkLWINONZTjs.initGeneratorFn
20
20
  });
21
21
  _chunkMWIFWHR4js.init_cjs_shims.call(void 0, );
22
22
  _chunkMWIFWHR4js.__reExport.call(void 0, index_exports, _chunkMWIFWHR4js.__toESM.call(void 0, _chunkKFR27Y3Kjs.require_components.call(void 0, )));
23
23
 
24
24
 
25
- exports.initGeneratorFn = _chunkX4UW6KTZjs.initGeneratorFn;
25
+ exports.initGeneratorFn = _chunkLWINONZTjs.initGeneratorFn;
package/dist/index.mjs CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-PQKN2KBC.mjs";
5
5
  import {
6
6
  initGeneratorFn
7
- } from "./chunk-UWFMHGH3.mjs";
7
+ } from "./chunk-GPPLEZ5J.mjs";
8
8
  import "./chunk-IYQFGVQK.mjs";
9
9
  import {
10
10
  __export,
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkX4UW6KTZjs = require('../../../chunk-X4UW6KTZ.js');
4
+ var _chunkLWINONZTjs = require('../../../chunk-LWINONZT.js');
5
5
  require('../../../chunk-LP4I3FEY.js');
6
6
  require('../../../chunk-MWIFWHR4.js');
7
7
 
8
8
 
9
9
 
10
- exports.default = _chunkX4UW6KTZjs.generator_default; exports.initGeneratorFn = _chunkX4UW6KTZjs.initGeneratorFn;
10
+ exports.default = _chunkLWINONZTjs.generator_default; exports.initGeneratorFn = _chunkLWINONZTjs.initGeneratorFn;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generator_default,
3
3
  initGeneratorFn
4
- } from "../../../chunk-UWFMHGH3.mjs";
4
+ } from "../../../chunk-GPPLEZ5J.mjs";
5
5
  import "../../../chunk-IYQFGVQK.mjs";
6
6
  import "../../../chunk-ULH77QLV.mjs";
7
7
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/projen",
3
- "version": "0.15.26",
3
+ "version": "0.15.28",
4
4
  "type": "commonjs",
5
5
  "description": "Tools for managing Projen configuration automation within a Nx workspace.",
6
6
  "repository": {