@storm-software/cloudflare-tools 0.55.39 → 0.55.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +165 -75
  2. package/README.md +6 -6
  3. package/dist/{chunk-Y3XZCCPP.mjs → chunk-3HMZSKJD.mjs} +1 -1
  4. package/dist/{chunk-FSZS6NDT.js → chunk-3SY45SUU.js} +12 -12
  5. package/dist/{chunk-J22YL4DC.mjs → chunk-4QFFFPC5.mjs} +2 -2
  6. package/dist/{chunk-XYJVYVYX.js → chunk-5KLP7KFL.js} +484 -571
  7. package/dist/{chunk-HZON5W3G.js → chunk-FK6PN2T3.js} +42 -14
  8. package/dist/{chunk-ZBM3I5Z7.mjs → chunk-FQEGSK6L.mjs} +4 -4
  9. package/dist/{chunk-KLCTLDIH.js → chunk-H2ML72QF.js} +91 -47
  10. package/dist/{chunk-I6XBWBZN.js → chunk-HF5FM2V2.js} +3 -3
  11. package/dist/{chunk-HWRWRM5W.mjs → chunk-LEXIFHU6.mjs} +2 -2
  12. package/dist/{chunk-B6ZQTLTY.js → chunk-LZLR3HJU.js} +1 -1
  13. package/dist/{chunk-QD7ZKWKB.mjs → chunk-M4FHQYTZ.mjs} +43 -15
  14. package/dist/{chunk-MVGAJ7Q4.js → chunk-MCQ4YOON.js} +16 -16
  15. package/dist/{chunk-VAVNPHSE.mjs → chunk-MESLYSHV.mjs} +52 -8
  16. package/dist/{chunk-MBAVTLIK.mjs → chunk-RHCFLN3R.mjs} +323 -410
  17. package/dist/{chunk-5OCPVWBL.mjs → chunk-S3S7EN37.mjs} +5 -5
  18. package/dist/{chunk-PDHMNSTI.mjs → chunk-VNLZQQ5C.mjs} +2 -2
  19. package/dist/{chunk-KFNKJP2U.mjs → chunk-YYEF6TFG.mjs} +1 -1
  20. package/dist/executors.js +5 -5
  21. package/dist/executors.mjs +8 -8
  22. package/dist/generators.js +5 -5
  23. package/dist/generators.mjs +5 -5
  24. package/dist/index.js +8 -8
  25. package/dist/index.mjs +10 -10
  26. package/dist/src/executors/cloudflare-publish/executor.js +3 -3
  27. package/dist/src/executors/cloudflare-publish/executor.mjs +6 -6
  28. package/dist/src/executors/r2-upload-publish/executor.js +5 -5
  29. package/dist/src/executors/r2-upload-publish/executor.mjs +6 -6
  30. package/dist/src/executors/serve/executor.d.mts +67 -3
  31. package/dist/src/executors/serve/executor.d.ts +67 -3
  32. package/dist/src/executors/serve/executor.js +4 -4
  33. package/dist/src/executors/serve/executor.mjs +5 -5
  34. package/dist/src/generators/init/generator.js +2 -2
  35. package/dist/src/generators/init/generator.mjs +2 -2
  36. package/dist/src/generators/worker/generator.js +5 -5
  37. package/dist/src/generators/worker/generator.mjs +5 -5
  38. package/dist/src/utils/index.js +3 -3
  39. package/dist/src/utils/index.mjs +3 -3
  40. package/dist/src/utils/r2-bucket-helpers.js +3 -3
  41. package/dist/src/utils/r2-bucket-helpers.mjs +3 -3
  42. package/dist/tsup.config.mjs +1 -1
  43. package/package.json +11 -11
@@ -238,8 +238,23 @@ var LogLevelLabel = {
238
238
  // ../config/src/constants.ts
239
239
  var STORM_DEFAULT_DOCS = "https://docs.stormsoftware.com";
240
240
  var STORM_DEFAULT_HOMEPAGE = "https://stormsoftware.com";
241
+ var STORM_DEFAULT_CONTACT = "https://stormsoftware.com/contact";
241
242
  var STORM_DEFAULT_LICENSING = "https://license.stormsoftware.com";
242
243
  var STORM_DEFAULT_LICENSE = "Apache-2.0";
244
+ var STORM_DEFAULT_RELEASE_BANNER = "https://public.storm-cdn.com/brand-banner.png";
245
+ var STORM_DEFAULT_ACCOUNT_TWITTER = "StormSoftwareHQ";
246
+ var STORM_DEFAULT_ACCOUNT_DISCORD = "https://discord.gg/MQ6YVzakM5";
247
+ var STORM_DEFAULT_ACCOUNT_TELEGRAM = "https://t.me/storm_software";
248
+ var STORM_DEFAULT_ACCOUNT_SLACK = "https://join.slack.com/t/storm-software/shared_invite/zt-2gsmk04hs-i6yhK_r6urq0dkZYAwq2pA";
249
+ var STORM_DEFAULT_ACCOUNT_MEDIUM = "https://medium.com/storm-software";
250
+ var STORM_DEFAULT_ACCOUNT_GITHUB = "https://github.com/storm-software";
251
+ var STORM_DEFAULT_RELEASE_FOOTER = `
252
+ Storm Software is an open source software development organization with the mission is to make software development more accessible. Our ideal future is one where anyone can create software without years of prior development experience serving as a barrier to entry. We hope to achieve this via LLMs, Generative AI, and intuitive, high-level data modeling/programming languages.
253
+
254
+ Join us on [Discord](${STORM_DEFAULT_ACCOUNT_DISCORD}) to chat with the team, receive release notifications, ask questions, and get involved.
255
+
256
+ If this sounds interesting, and you would like to help us in creating the next generation of development tools, please reach out on our [website](${STORM_DEFAULT_CONTACT}) or join our [Slack](${STORM_DEFAULT_ACCOUNT_SLACK}) channel!
257
+ `;
243
258
 
244
259
  // ../config/src/schema.ts
245
260
  var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);
@@ -327,9 +342,22 @@ var ColorConfigMapSchema = _zod2.default.union([
327
342
  var ExtendsItemSchema = _zod2.default.string().trim().describe("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.");
328
343
  var ExtendsSchema = ExtendsItemSchema.or(_zod2.default.array(ExtendsItemSchema)).describe("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.");
329
344
  var WorkspaceBotConfigSchema = _zod2.default.object({
330
- name: _zod2.default.string().trim().default("Stormie-Bot").describe("The workspace bot user's name (this is the bot that will be used to perform various tasks)"),
345
+ name: _zod2.default.string().trim().default("stormie-bot").describe("The workspace bot user's name (this is the bot that will be used to perform various tasks)"),
331
346
  email: _zod2.default.string().trim().email().default("bot@stormsoftware.com").describe("The email of the workspace bot")
332
347
  }).describe("The workspace's bot user's config used to automated various operations tasks");
348
+ var WorkspaceReleaseConfigSchema = _zod2.default.object({
349
+ banner: _zod2.default.string().trim().default(STORM_DEFAULT_RELEASE_BANNER).describe("A URL to a banner image used to display the workspace's release"),
350
+ header: _zod2.default.string().trim().optional().describe("A header message appended to the start of the workspace's release notes"),
351
+ footer: _zod2.default.string().trim().default(STORM_DEFAULT_RELEASE_FOOTER).describe("A footer message appended to the end of the workspace's release notes")
352
+ }).describe("The workspace's release config used during the release process");
353
+ var WorkspaceAccountConfigSchema = _zod2.default.object({
354
+ twitter: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_TWITTER).describe("A Twitter/X account associated with the organization/project"),
355
+ discord: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_DISCORD).describe("A Discord account associated with the organization/project"),
356
+ telegram: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_TELEGRAM).describe("A Telegram account associated with the organization/project"),
357
+ slack: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_SLACK).describe("A Slack account associated with the organization/project"),
358
+ medium: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_MEDIUM).describe("A Medium account associated with the organization/project"),
359
+ github: _zod2.default.string().trim().default(STORM_DEFAULT_ACCOUNT_GITHUB).describe("A GitHub account associated with the organization/project")
360
+ }).describe("The workspace's account config used to store various social media links");
333
361
  var WorkspaceDirectoryConfigSchema = _zod2.default.object({
334
362
  cache: _zod2.default.string().trim().optional().describe("The directory used to store the environment's cached file data"),
335
363
  data: _zod2.default.string().trim().optional().describe("The directory used to store the environment's data files"),
@@ -349,15 +377,18 @@ var StormConfigSchema = _zod2.default.object({
349
377
  homepage: _zod2.default.string().trim().url().default(STORM_DEFAULT_HOMEPAGE).describe("The homepage of the workspace"),
350
378
  docs: _zod2.default.string().trim().url().default(STORM_DEFAULT_DOCS).describe("The base documentation site for the workspace"),
351
379
  licensing: _zod2.default.string().trim().url().default(STORM_DEFAULT_LICENSING).describe("The base licensing site for the workspace"),
380
+ contact: _zod2.default.string().trim().url().default(STORM_DEFAULT_CONTACT).describe("The base contact site for the workspace"),
352
381
  branch: _zod2.default.string().trim().default("main").describe("The branch of the workspace"),
353
382
  preid: _zod2.default.string().optional().describe("A tag specifying the version pre-release identifier"),
354
383
  owner: _zod2.default.string().trim().default("@storm-software/admin").describe("The owner of the package"),
355
384
  bot: WorkspaceBotConfigSchema,
356
- env: _zod2.default.enum([
385
+ release: WorkspaceReleaseConfigSchema,
386
+ account: WorkspaceAccountConfigSchema,
387
+ mode: _zod2.default.enum([
357
388
  "development",
358
389
  "staging",
359
390
  "production"
360
- ]).default("production").describe("The current runtime environment name for the package"),
391
+ ]).default("production").describe("The current runtime environment mode for the package"),
361
392
  workspaceRoot: _zod2.default.string().trim().default("").describe("The root directory of the workspace"),
362
393
  externalPackagePatterns: _zod2.default.array(_zod2.default.string()).default([]).describe("The build will use these package patterns to determine if they should be external to the bundle"),
363
394
  skipCache: _zod2.default.boolean().default(false).describe("Should all known types of workspace caching be skipped?"),
@@ -513,17 +544,14 @@ var getChalk = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, () => {
513
544
  }, "getChalk");
514
545
 
515
546
  // ../config-tools/src/logger/is-unicode-supported.ts
516
- var _process = require('process'); var _process2 = _interopRequireDefault(_process);
517
547
  function isUnicodeSupported() {
518
- const { env } = _process2.default;
519
- const { TERM, TERM_PROGRAM } = env;
520
- if (_process2.default.platform !== "win32") {
521
- return TERM !== "linux";
522
- }
523
- return Boolean(env.WT_SESSION) || // Windows Terminal
524
- Boolean(env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
525
- env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
526
- TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
548
+ if (process.platform !== "win32") {
549
+ return process.env.TERM !== "linux";
550
+ }
551
+ return Boolean(process.env.WT_SESSION) || // Windows Terminal
552
+ Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
553
+ process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
554
+ 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";
527
555
  }
528
556
  _chunkJ5SB6L2Ljs.__name.call(void 0, isUnicodeSupported, "isUnicodeSupported");
529
557
 
@@ -611,7 +639,7 @@ var getLogFn = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (logLevel =
611
639
  if (typeof logLevel === "number" && LogLevel.FATAL >= logLevel) {
612
640
  return (message) => {
613
641
  console.error(`
614
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(_nullishCoalesce(colors.fatal, () => ( "#7d1a1a")))(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
642
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(_nullishCoalesce(colors.fatal, () => ( "#7d1a1a")))(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
615
643
  `);
616
644
  };
617
645
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  generator_default
3
- } from "./chunk-J22YL4DC.mjs";
3
+ } from "./chunk-4QFFFPC5.mjs";
4
4
  import {
5
5
  getConfig
6
- } from "./chunk-VAVNPHSE.mjs";
6
+ } from "./chunk-MESLYSHV.mjs";
7
7
  import {
8
8
  findWorkspaceRoot,
9
9
  getStopwatch,
@@ -12,11 +12,11 @@ import {
12
12
  writeFatal,
13
13
  writeInfo,
14
14
  writeTrace
15
- } from "./chunk-QD7ZKWKB.mjs";
15
+ } from "./chunk-M4FHQYTZ.mjs";
16
16
  import {
17
17
  __dirname,
18
18
  __name
19
- } from "./chunk-Y3XZCCPP.mjs";
19
+ } from "./chunk-3HMZSKJD.mjs";
20
20
 
21
21
  // src/generators/worker/generator.ts
22
22
  import { convertNxGenerator, ensurePackage, formatFiles, generateFiles, joinPathFragments, names, readProjectConfiguration, runTasksInSerial, updateJson, updateProjectConfiguration } from "@nx/devkit";
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkHZON5W3Gjs = require('./chunk-HZON5W3G.js');
17
+ var _chunkFK6PN2T3js = require('./chunk-FK6PN2T3.js');
18
18
 
19
19
 
20
20
  var _chunkJ5SB6L2Ljs = require('./chunk-J5SB6L2L.js');
@@ -26,7 +26,7 @@ var _defu = require('defu'); var _defu2 = _interopRequireDefault(_defu);
26
26
  var _c12 = require('c12');
27
27
 
28
28
  var getConfigFileByName = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, async (fileName, filePath, options = {}) => {
29
- const workspacePath = filePath || _chunkHZON5W3Gjs.findWorkspaceRoot.call(void 0, filePath);
29
+ const workspacePath = filePath || _chunkFK6PN2T3js.findWorkspaceRoot.call(void 0, filePath);
30
30
  const configs = await Promise.all([
31
31
  _c12.loadConfig.call(void 0, {
32
32
  cwd: workspacePath,
@@ -35,7 +35,7 @@ var getConfigFileByName = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, a
35
35
  envName: _optionalChain([fileName, 'optionalAccess', _ => _.toUpperCase, 'call', _2 => _2()]),
36
36
  jitiOptions: {
37
37
  debug: false,
38
- fsCache: process.env.STORM_SKIP_CACHE === "true" ? false : _chunkHZON5W3Gjs.joinPaths.call(void 0, process.env.STORM_CACHE_DIR || "node_modules/.cache/storm", "jiti")
38
+ fsCache: process.env.STORM_SKIP_CACHE === "true" ? false : _chunkFK6PN2T3js.joinPaths.call(void 0, process.env.STORM_CACHE_DIR || "node_modules/.cache/storm", "jiti")
39
39
  },
40
40
  ...options
41
41
  }),
@@ -46,7 +46,7 @@ var getConfigFileByName = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, a
46
46
  envName: _optionalChain([fileName, 'optionalAccess', _3 => _3.toUpperCase, 'call', _4 => _4()]),
47
47
  jitiOptions: {
48
48
  debug: false,
49
- fsCache: process.env.STORM_SKIP_CACHE === "true" ? false : _chunkHZON5W3Gjs.joinPaths.call(void 0, process.env.STORM_CACHE_DIR || "node_modules/.cache/storm", "jiti")
49
+ fsCache: process.env.STORM_SKIP_CACHE === "true" ? false : _chunkFK6PN2T3js.joinPaths.call(void 0, process.env.STORM_CACHE_DIR || "node_modules/.cache/storm", "jiti")
50
50
  },
51
51
  configFile: fileName,
52
52
  ...options
@@ -55,12 +55,12 @@ var getConfigFileByName = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, a
55
55
  return _defu2.default.call(void 0, _nullishCoalesce(configs[0], () => ( {})), _nullishCoalesce(configs[1], () => ( {})));
56
56
  }, "getConfigFileByName");
57
57
  var getConfigFile = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, async (filePath, additionalFileNames = []) => {
58
- const workspacePath = filePath ? filePath : _chunkHZON5W3Gjs.findWorkspaceRoot.call(void 0, filePath);
58
+ const workspacePath = filePath ? filePath : _chunkFK6PN2T3js.findWorkspaceRoot.call(void 0, filePath);
59
59
  const result = await getConfigFileByName("storm-workspace", workspacePath);
60
60
  let config = result.config;
61
61
  const configFile = result.configFile;
62
62
  if (config && configFile && Object.keys(config).length > 0 && !config.skipConfigLogging) {
63
- _chunkHZON5W3Gjs.writeTrace.call(void 0, `Found Storm configuration file "${configFile.includes(`${workspacePath}/`) ? configFile.replace(`${workspacePath}/`, "") : configFile}" at "${workspacePath}"`, {
63
+ _chunkFK6PN2T3js.writeTrace.call(void 0, `Found Storm configuration file "${configFile.includes(`${workspacePath}/`) ? configFile.replace(`${workspacePath}/`, "") : configFile}" at "${workspacePath}"`, {
64
64
  logLevel: "all"
65
65
  });
66
66
  }
@@ -69,7 +69,7 @@ var getConfigFile = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, async (
69
69
  for (const result2 of results) {
70
70
  if (_optionalChain([result2, 'optionalAccess', _5 => _5.config]) && _optionalChain([result2, 'optionalAccess', _6 => _6.configFile]) && Object.keys(result2.config).length > 0) {
71
71
  if (!config.skipConfigLogging && !result2.config.skipConfigLogging) {
72
- _chunkHZON5W3Gjs.writeTrace.call(void 0, `Found alternative configuration file "${result2.configFile.includes(`${workspacePath}/`) ? result2.configFile.replace(`${workspacePath}/`, "") : result2.configFile}" at "${workspacePath}"`, {
72
+ _chunkFK6PN2T3js.writeTrace.call(void 0, `Found alternative configuration file "${result2.configFile.includes(`${workspacePath}/`) ? result2.configFile.replace(`${workspacePath}/`, "") : result2.configFile}" at "${workspacePath}"`, {
73
73
  logLevel: "all"
74
74
  });
75
75
  }
@@ -106,26 +106,40 @@ var getConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, () => {
106
106
  name: process.env[`${prefix}BOT_NAME`] || void 0,
107
107
  email: process.env[`${prefix}BOT_EMAIL`] || void 0
108
108
  },
109
+ release: {
110
+ banner: process.env[`${prefix}RELEASE_BANNER`] || void 0,
111
+ header: process.env[`${prefix}RELEASE_HEADER`] || void 0,
112
+ footer: process.env[`${prefix}RELEASE_FOOTER`] || void 0
113
+ },
114
+ account: {
115
+ twitter: process.env[`${prefix}ACCOUNT_TWITTER`] || void 0,
116
+ discord: process.env[`${prefix}ACCOUNT_DISCORD`] || void 0,
117
+ telegram: process.env[`${prefix}ACCOUNT_TELEGRAM`] || void 0,
118
+ slack: process.env[`${prefix}ACCOUNT_SLACK`] || void 0,
119
+ medium: process.env[`${prefix}ACCOUNT_MEDIUM`] || void 0,
120
+ github: process.env[`${prefix}ACCOUNT_GITHUB`] || void 0
121
+ },
109
122
  organization: process.env[`${prefix}ORGANIZATION`] || void 0,
110
123
  packageManager: process.env[`${prefix}PACKAGE_MANAGER`] || void 0,
111
124
  license: process.env[`${prefix}LICENSE`] || void 0,
112
125
  homepage: process.env[`${prefix}HOMEPAGE`] || void 0,
113
126
  docs: process.env[`${prefix}DOCS`] || void 0,
114
127
  licensing: process.env[`${prefix}LICENSING`] || void 0,
128
+ contact: process.env[`${prefix}CONTACT`] || void 0,
115
129
  timezone: process.env[`${prefix}TIMEZONE`] || process.env.TZ || void 0,
116
130
  locale: process.env[`${prefix}LOCALE`] || process.env.LOCALE || void 0,
117
- configFile: process.env[`${prefix}CONFIG_FILE`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}CONFIG_FILE`]) : void 0,
118
- workspaceRoot: process.env[`${prefix}WORKSPACE_ROOT`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}WORKSPACE_ROOT`]) : void 0,
131
+ configFile: process.env[`${prefix}CONFIG_FILE`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}CONFIG_FILE`]) : void 0,
132
+ workspaceRoot: process.env[`${prefix}WORKSPACE_ROOT`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}WORKSPACE_ROOT`]) : void 0,
119
133
  directories: {
120
- cache: process.env[`${prefix}CACHE_DIR`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}CACHE_DIR`]) : void 0,
121
- data: process.env[`${prefix}DATA_DIR`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}DATA_DIR`]) : void 0,
122
- config: process.env[`${prefix}CONFIG_DIR`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}CONFIG_DIR`]) : void 0,
123
- temp: process.env[`${prefix}TEMP_DIR`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}TEMP_DIR`]) : void 0,
124
- log: process.env[`${prefix}LOG_DIR`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}LOG_DIR`]) : void 0,
125
- build: process.env[`${prefix}BUILD_DIR`] ? _chunkHZON5W3Gjs.correctPaths.call(void 0, process.env[`${prefix}BUILD_DIR`]) : void 0
134
+ cache: process.env[`${prefix}CACHE_DIR`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}CACHE_DIR`]) : void 0,
135
+ data: process.env[`${prefix}DATA_DIR`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}DATA_DIR`]) : void 0,
136
+ config: process.env[`${prefix}CONFIG_DIR`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}CONFIG_DIR`]) : void 0,
137
+ temp: process.env[`${prefix}TEMP_DIR`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}TEMP_DIR`]) : void 0,
138
+ log: process.env[`${prefix}LOG_DIR`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}LOG_DIR`]) : void 0,
139
+ build: process.env[`${prefix}BUILD_DIR`] ? _chunkFK6PN2T3js.correctPaths.call(void 0, process.env[`${prefix}BUILD_DIR`]) : void 0
126
140
  },
127
141
  skipCache: process.env[`${prefix}SKIP_CACHE`] !== void 0 ? Boolean(process.env[`${prefix}SKIP_CACHE`]) : void 0,
128
- env: (_nullishCoalesce(_nullishCoalesce(process.env[`${prefix}ENV`], () => ( process.env.NODE_ENV)), () => ( process.env.ENVIRONMENT))) || void 0,
142
+ mode: (_nullishCoalesce(_nullishCoalesce(process.env[`${prefix}MODE`], () => ( process.env.NODE_ENV)), () => ( process.env.ENVIRONMENT))) || void 0,
129
143
  // ci:
130
144
  // process.env[`${prefix}CI`] !== undefined
131
145
  // ? Boolean(
@@ -145,24 +159,24 @@ var getConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, () => {
145
159
  cyclone: process.env[`${prefix}REGISTRY_CYCLONE`] || void 0,
146
160
  container: process.env[`${prefix}REGISTRY_CONTAINER`] || void 0
147
161
  },
148
- logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? _chunkHZON5W3Gjs.getLogLevelLabel.call(void 0, Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0,
162
+ logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? _chunkFK6PN2T3js.getLogLevelLabel.call(void 0, Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0,
149
163
  skipConfigLogging: process.env[`${prefix}SKIP_CONFIG_LOGGING`] !== void 0 ? Boolean(process.env[`${prefix}SKIP_CONFIG_LOGGING`]) : void 0
150
164
  };
151
- const themeNames = Object.keys(process.env).filter((envKey) => envKey.startsWith(`${prefix}COLOR_`) && _chunkHZON5W3Gjs.COLOR_KEYS.every((colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)));
165
+ const themeNames = Object.keys(process.env).filter((envKey) => envKey.startsWith(`${prefix}COLOR_`) && _chunkFK6PN2T3js.COLOR_KEYS.every((colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)));
152
166
  config.colors = themeNames.length > 0 ? themeNames.reduce((ret, themeName) => {
153
167
  ret[themeName] = getThemeColorConfigEnv(prefix, themeName);
154
168
  return ret;
155
169
  }, {}) : getThemeColorConfigEnv(prefix);
156
- if (config.docs === _chunkHZON5W3Gjs.STORM_DEFAULT_DOCS) {
157
- if (config.homepage === _chunkHZON5W3Gjs.STORM_DEFAULT_HOMEPAGE) {
158
- config.docs = `${_chunkHZON5W3Gjs.STORM_DEFAULT_HOMEPAGE}/projects/${config.name}/docs`;
170
+ if (config.docs === _chunkFK6PN2T3js.STORM_DEFAULT_DOCS) {
171
+ if (config.homepage === _chunkFK6PN2T3js.STORM_DEFAULT_HOMEPAGE) {
172
+ config.docs = `${_chunkFK6PN2T3js.STORM_DEFAULT_HOMEPAGE}/projects/${config.name}/docs`;
159
173
  } else {
160
174
  config.docs = `${config.homepage}/docs`;
161
175
  }
162
176
  }
163
- if (config.licensing === _chunkHZON5W3Gjs.STORM_DEFAULT_LICENSING) {
164
- if (config.homepage === _chunkHZON5W3Gjs.STORM_DEFAULT_HOMEPAGE) {
165
- config.licensing = `${_chunkHZON5W3Gjs.STORM_DEFAULT_HOMEPAGE}/projects/${config.name}/licensing`;
177
+ if (config.licensing === _chunkFK6PN2T3js.STORM_DEFAULT_LICENSING) {
178
+ if (config.homepage === _chunkFK6PN2T3js.STORM_DEFAULT_HOMEPAGE) {
179
+ config.licensing = `${_chunkFK6PN2T3js.STORM_DEFAULT_HOMEPAGE}/projects/${config.name}/licensing`;
166
180
  } else {
167
181
  config.licensing = `${config.homepage}/docs`;
168
182
  }
@@ -270,6 +284,31 @@ var setConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (config)
270
284
  process.env[`${prefix}BOT_NAME`] = config.bot.name;
271
285
  process.env[`${prefix}BOT_EMAIL`] = config.bot.email;
272
286
  }
287
+ if (config.release) {
288
+ process.env[`${prefix}RELEASE_BANNER`] = config.release.banner;
289
+ process.env[`${prefix}RELEASE_HEADER`] = config.release.header;
290
+ process.env[`${prefix}RELEASE_FOOTER`] = config.release.footer;
291
+ }
292
+ if (config.account) {
293
+ if (config.account.twitter) {
294
+ process.env[`${prefix}ACCOUNT_TWITTER`] = config.account.twitter;
295
+ }
296
+ if (config.account.discord) {
297
+ process.env[`${prefix}ACCOUNT_DISCORD`] = config.account.discord;
298
+ }
299
+ if (config.account.telegram) {
300
+ process.env[`${prefix}ACCOUNT_TELEGRAM`] = config.account.telegram;
301
+ }
302
+ if (config.account.slack) {
303
+ process.env[`${prefix}ACCOUNT_SLACK`] = config.account.slack;
304
+ }
305
+ if (config.account.medium) {
306
+ process.env[`${prefix}ACCOUNT_MEDIUM`] = config.account.medium;
307
+ }
308
+ if (config.account.github) {
309
+ process.env[`${prefix}ACCOUNT_GITHUB`] = config.account.github;
310
+ }
311
+ }
273
312
  if (config.organization) {
274
313
  process.env[`${prefix}ORGANIZATION`] = config.organization;
275
314
  }
@@ -288,6 +327,9 @@ var setConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (config)
288
327
  if (config.licensing) {
289
328
  process.env[`${prefix}LICENSING`] = config.licensing;
290
329
  }
330
+ if (config.contact) {
331
+ process.env[`${prefix}CONTACT`] = config.contact;
332
+ }
291
333
  if (config.timezone) {
292
334
  process.env[`${prefix}TIMEZONE`] = config.timezone;
293
335
  process.env.TZ = config.timezone;
@@ -300,31 +342,31 @@ var setConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (config)
300
342
  process.env.LANG = config.locale ? `${config.locale.replaceAll("-", "_")}.UTF-8` : "en_US.UTF-8";
301
343
  }
302
344
  if (config.configFile) {
303
- process.env[`${prefix}CONFIG_FILE`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.configFile);
345
+ process.env[`${prefix}CONFIG_FILE`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.configFile);
304
346
  }
305
347
  if (config.workspaceRoot) {
306
- process.env[`${prefix}WORKSPACE_ROOT`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.workspaceRoot);
307
- process.env.NX_WORKSPACE_ROOT = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.workspaceRoot);
308
- process.env.NX_WORKSPACE_ROOT_PATH = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.workspaceRoot);
348
+ process.env[`${prefix}WORKSPACE_ROOT`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.workspaceRoot);
349
+ process.env.NX_WORKSPACE_ROOT = _chunkFK6PN2T3js.correctPaths.call(void 0, config.workspaceRoot);
350
+ process.env.NX_WORKSPACE_ROOT_PATH = _chunkFK6PN2T3js.correctPaths.call(void 0, config.workspaceRoot);
309
351
  }
310
352
  if (config.directories) {
311
353
  if (!config.skipCache && config.directories.cache) {
312
- process.env[`${prefix}CACHE_DIR`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.directories.cache);
354
+ process.env[`${prefix}CACHE_DIR`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.directories.cache);
313
355
  }
314
356
  if (config.directories.data) {
315
- process.env[`${prefix}DATA_DIR`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.directories.data);
357
+ process.env[`${prefix}DATA_DIR`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.directories.data);
316
358
  }
317
359
  if (config.directories.config) {
318
- process.env[`${prefix}CONFIG_DIR`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.directories.config);
360
+ process.env[`${prefix}CONFIG_DIR`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.directories.config);
319
361
  }
320
362
  if (config.directories.temp) {
321
- process.env[`${prefix}TEMP_DIR`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.directories.temp);
363
+ process.env[`${prefix}TEMP_DIR`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.directories.temp);
322
364
  }
323
365
  if (config.directories.log) {
324
- process.env[`${prefix}LOG_DIR`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.directories.log);
366
+ process.env[`${prefix}LOG_DIR`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.directories.log);
325
367
  }
326
368
  if (config.directories.build) {
327
- process.env[`${prefix}BUILD_DIR`] = _chunkHZON5W3Gjs.correctPaths.call(void 0, config.directories.build);
369
+ process.env[`${prefix}BUILD_DIR`] = _chunkFK6PN2T3js.correctPaths.call(void 0, config.directories.build);
328
370
  }
329
371
  }
330
372
  if (config.skipCache !== void 0) {
@@ -334,10 +376,10 @@ var setConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (config)
334
376
  process.env.NX_CACHE_PROJECT_GRAPH ??= String(config.skipCache);
335
377
  }
336
378
  }
337
- if (config.env) {
338
- process.env[`${prefix}ENV`] = config.env;
339
- process.env.NODE_ENV = config.env;
340
- process.env.ENVIRONMENT = config.env;
379
+ if (config.mode) {
380
+ process.env[`${prefix}MODE`] = config.mode;
381
+ process.env.NODE_ENV = config.mode;
382
+ process.env.ENVIRONMENT = config.mode;
341
383
  }
342
384
  if (_optionalChain([config, 'access', _19 => _19.colors, 'optionalAccess', _20 => _20.base, 'optionalAccess', _21 => _21.light]) || _optionalChain([config, 'access', _22 => _22.colors, 'optionalAccess', _23 => _23.base, 'optionalAccess', _24 => _24.dark])) {
343
385
  for (const key of Object.keys(config.colors)) {
@@ -378,15 +420,17 @@ var setConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (config)
378
420
  if (config.logLevel) {
379
421
  process.env[`${prefix}LOG_LEVEL`] = String(config.logLevel);
380
422
  process.env.LOG_LEVEL = String(config.logLevel);
381
- process.env.NX_VERBOSE_LOGGING = String(_chunkHZON5W3Gjs.getLogLevel.call(void 0, config.logLevel) >= _chunkHZON5W3Gjs.LogLevel.DEBUG ? true : false);
382
- process.env.RUST_BACKTRACE = _chunkHZON5W3Gjs.getLogLevel.call(void 0, config.logLevel) >= _chunkHZON5W3Gjs.LogLevel.DEBUG ? "full" : "none";
423
+ process.env.NX_VERBOSE_LOGGING = String(_chunkFK6PN2T3js.getLogLevel.call(void 0, config.logLevel) >= _chunkFK6PN2T3js.LogLevel.DEBUG ? true : false);
424
+ process.env.RUST_BACKTRACE = _chunkFK6PN2T3js.getLogLevel.call(void 0, config.logLevel) >= _chunkFK6PN2T3js.LogLevel.DEBUG ? "full" : "none";
383
425
  }
384
426
  if (config.skipConfigLogging !== void 0) {
385
427
  process.env[`${prefix}SKIP_CONFIG_LOGGING`] = String(config.skipConfigLogging);
386
428
  }
387
429
  process.env[`${prefix}CONFIG`] = JSON.stringify(config);
388
430
  for (const key of Object.keys(_nullishCoalesce(config.extensions, () => ( {})))) {
389
- config.extensions[key] && Object.keys(config.extensions[key]) && setExtensionEnv(key, config.extensions[key]);
431
+ if (config.extensions[key] && Object.keys(config.extensions[key])) {
432
+ setExtensionEnv(key, config.extensions[key]);
433
+ }
390
434
  }
391
435
  }, "setConfigEnv");
392
436
  var setThemeColorConfigEnv = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (prefix, config) => {
@@ -495,17 +539,17 @@ var createStormConfig = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, asy
495
539
  if (!_optionalChain([_static_cache, 'optionalAccess', _29 => _29.data]) || !_optionalChain([_static_cache, 'optionalAccess', _30 => _30.timestamp]) || _static_cache.timestamp < Date.now() - 8e3) {
496
540
  let _workspaceRoot = workspaceRoot;
497
541
  if (!_workspaceRoot) {
498
- _workspaceRoot = _chunkHZON5W3Gjs.findWorkspaceRoot.call(void 0, );
542
+ _workspaceRoot = _chunkFK6PN2T3js.findWorkspaceRoot.call(void 0, );
499
543
  }
500
544
  const configEnv = getConfigEnv();
501
- const defaultConfig = await _chunkHZON5W3Gjs.getDefaultConfig.call(void 0, _workspaceRoot);
545
+ const defaultConfig = await _chunkFK6PN2T3js.getDefaultConfig.call(void 0, _workspaceRoot);
502
546
  const configFile = await getConfigFile(_workspaceRoot);
503
547
  if (!configFile && !skipLogs) {
504
- _chunkHZON5W3Gjs.writeWarning.call(void 0, "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", {
548
+ _chunkFK6PN2T3js.writeWarning.call(void 0, "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", {
505
549
  logLevel: "all"
506
550
  });
507
551
  }
508
- result = await _chunkHZON5W3Gjs.StormConfigSchema.parseAsync(_defu2.default.call(void 0, configEnv, configFile, defaultConfig));
552
+ result = await _chunkFK6PN2T3js.StormConfigSchema.parseAsync(_defu2.default.call(void 0, configEnv, configFile, defaultConfig));
509
553
  result.workspaceRoot ??= _workspaceRoot;
510
554
  } else {
511
555
  result = _static_cache.data;
@@ -540,8 +584,8 @@ var loadStormConfig = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, async
540
584
  const config = await createStormConfig(void 0, void 0, workspaceRoot, skipLogs);
541
585
  setConfigEnv(config);
542
586
  if (!skipLogs && !config.skipConfigLogging) {
543
- _chunkHZON5W3Gjs.writeTrace.call(void 0, `\u2699\uFE0F Using Storm Workspace configuration:
544
- ${_chunkHZON5W3Gjs.formatLogMessage.call(void 0, config)}`, config);
587
+ _chunkFK6PN2T3js.writeTrace.call(void 0, `\u2699\uFE0F Using Storm Workspace configuration:
588
+ ${_chunkFK6PN2T3js.formatLogMessage.call(void 0, config)}`, config);
545
589
  }
546
590
  return config;
547
591
  }, "loadStormConfig");
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
3
 
4
- var _chunkHZON5W3Gjs = require('./chunk-HZON5W3G.js');
4
+ var _chunkFK6PN2T3js = require('./chunk-FK6PN2T3.js');
5
5
 
6
6
 
7
7
  var _chunkJ5SB6L2Ljs = require('./chunk-J5SB6L2L.js');
@@ -11,7 +11,7 @@ var _crypto = require('crypto');
11
11
  var r2UploadFile = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, async (client, bucketName, projectPath, fileName, version, fileContent, contentType = "text/plain", isDryRun = false) => {
12
12
  const checksum = _crypto.createHash.call(void 0, "sha256").update(fileContent).digest("base64");
13
13
  const fileKey = `${projectPath}/${fileName.startsWith("/") ? fileName.substring(1) : fileName}`;
14
- _chunkHZON5W3Gjs.writeDebug.call(void 0, `Uploading file: ${fileKey}`);
14
+ _chunkFK6PN2T3js.writeDebug.call(void 0, `Uploading file: ${fileKey}`);
15
15
  if (!isDryRun) {
16
16
  await client.putObject({
17
17
  Bucket: bucketName,
@@ -24,7 +24,7 @@ var r2UploadFile = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, async (c
24
24
  }
25
25
  });
26
26
  } else {
27
- _chunkHZON5W3Gjs.writeWarning.call(void 0, "[Dry run]: skipping upload to the Cyclone Registry.");
27
+ _chunkFK6PN2T3js.writeWarning.call(void 0, "[Dry run]: skipping upload to the Cyclone Registry.");
28
28
  }
29
29
  }, "r2UploadFile");
30
30
  var getInternalDependencies = /* @__PURE__ */ _chunkJ5SB6L2Ljs.__name.call(void 0, (projectName, graph) => {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  writeDebug,
3
3
  writeWarning
4
- } from "./chunk-QD7ZKWKB.mjs";
4
+ } from "./chunk-M4FHQYTZ.mjs";
5
5
  import {
6
6
  __name
7
- } from "./chunk-Y3XZCCPP.mjs";
7
+ } from "./chunk-3HMZSKJD.mjs";
8
8
 
9
9
  // src/utils/r2-bucket-helpers.ts
10
10
  import { createHash } from "node:crypto";
@@ -8,7 +8,7 @@ var require_package = _chunkJ5SB6L2Ljs.__commonJS.call(void 0, {
8
8
  "package.json"(exports, module) {
9
9
  module.exports = {
10
10
  name: "@storm-software/cloudflare-tools",
11
- version: "0.55.39",
11
+ version: "0.55.40",
12
12
  description: "A Nx plugin package that contains various executors, generators, and utilities that assist in managing Cloudflare services.",
13
13
  repository: {
14
14
  type: "github",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __name
3
- } from "./chunk-Y3XZCCPP.mjs";
3
+ } from "./chunk-3HMZSKJD.mjs";
4
4
 
5
5
  // ../config-tools/src/utilities/correct-paths.ts
6
6
  var _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
@@ -238,8 +238,23 @@ var LogLevelLabel = {
238
238
  // ../config/src/constants.ts
239
239
  var STORM_DEFAULT_DOCS = "https://docs.stormsoftware.com";
240
240
  var STORM_DEFAULT_HOMEPAGE = "https://stormsoftware.com";
241
+ var STORM_DEFAULT_CONTACT = "https://stormsoftware.com/contact";
241
242
  var STORM_DEFAULT_LICENSING = "https://license.stormsoftware.com";
242
243
  var STORM_DEFAULT_LICENSE = "Apache-2.0";
244
+ var STORM_DEFAULT_RELEASE_BANNER = "https://public.storm-cdn.com/brand-banner.png";
245
+ var STORM_DEFAULT_ACCOUNT_TWITTER = "StormSoftwareHQ";
246
+ var STORM_DEFAULT_ACCOUNT_DISCORD = "https://discord.gg/MQ6YVzakM5";
247
+ var STORM_DEFAULT_ACCOUNT_TELEGRAM = "https://t.me/storm_software";
248
+ var STORM_DEFAULT_ACCOUNT_SLACK = "https://join.slack.com/t/storm-software/shared_invite/zt-2gsmk04hs-i6yhK_r6urq0dkZYAwq2pA";
249
+ var STORM_DEFAULT_ACCOUNT_MEDIUM = "https://medium.com/storm-software";
250
+ var STORM_DEFAULT_ACCOUNT_GITHUB = "https://github.com/storm-software";
251
+ var STORM_DEFAULT_RELEASE_FOOTER = `
252
+ Storm Software is an open source software development organization with the mission is to make software development more accessible. Our ideal future is one where anyone can create software without years of prior development experience serving as a barrier to entry. We hope to achieve this via LLMs, Generative AI, and intuitive, high-level data modeling/programming languages.
253
+
254
+ Join us on [Discord](${STORM_DEFAULT_ACCOUNT_DISCORD}) to chat with the team, receive release notifications, ask questions, and get involved.
255
+
256
+ If this sounds interesting, and you would like to help us in creating the next generation of development tools, please reach out on our [website](${STORM_DEFAULT_CONTACT}) or join our [Slack](${STORM_DEFAULT_ACCOUNT_SLACK}) channel!
257
+ `;
243
258
 
244
259
  // ../config/src/schema.ts
245
260
  import z from "zod";
@@ -327,9 +342,22 @@ var ColorConfigMapSchema = z.union([
327
342
  var ExtendsItemSchema = z.string().trim().describe("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.");
328
343
  var ExtendsSchema = ExtendsItemSchema.or(z.array(ExtendsItemSchema)).describe("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.");
329
344
  var WorkspaceBotConfigSchema = z.object({
330
- name: z.string().trim().default("Stormie-Bot").describe("The workspace bot user's name (this is the bot that will be used to perform various tasks)"),
345
+ name: z.string().trim().default("stormie-bot").describe("The workspace bot user's name (this is the bot that will be used to perform various tasks)"),
331
346
  email: z.string().trim().email().default("bot@stormsoftware.com").describe("The email of the workspace bot")
332
347
  }).describe("The workspace's bot user's config used to automated various operations tasks");
348
+ var WorkspaceReleaseConfigSchema = z.object({
349
+ banner: z.string().trim().default(STORM_DEFAULT_RELEASE_BANNER).describe("A URL to a banner image used to display the workspace's release"),
350
+ header: z.string().trim().optional().describe("A header message appended to the start of the workspace's release notes"),
351
+ footer: z.string().trim().default(STORM_DEFAULT_RELEASE_FOOTER).describe("A footer message appended to the end of the workspace's release notes")
352
+ }).describe("The workspace's release config used during the release process");
353
+ var WorkspaceAccountConfigSchema = z.object({
354
+ twitter: z.string().trim().default(STORM_DEFAULT_ACCOUNT_TWITTER).describe("A Twitter/X account associated with the organization/project"),
355
+ discord: z.string().trim().default(STORM_DEFAULT_ACCOUNT_DISCORD).describe("A Discord account associated with the organization/project"),
356
+ telegram: z.string().trim().default(STORM_DEFAULT_ACCOUNT_TELEGRAM).describe("A Telegram account associated with the organization/project"),
357
+ slack: z.string().trim().default(STORM_DEFAULT_ACCOUNT_SLACK).describe("A Slack account associated with the organization/project"),
358
+ medium: z.string().trim().default(STORM_DEFAULT_ACCOUNT_MEDIUM).describe("A Medium account associated with the organization/project"),
359
+ github: z.string().trim().default(STORM_DEFAULT_ACCOUNT_GITHUB).describe("A GitHub account associated with the organization/project")
360
+ }).describe("The workspace's account config used to store various social media links");
333
361
  var WorkspaceDirectoryConfigSchema = z.object({
334
362
  cache: z.string().trim().optional().describe("The directory used to store the environment's cached file data"),
335
363
  data: z.string().trim().optional().describe("The directory used to store the environment's data files"),
@@ -349,15 +377,18 @@ var StormConfigSchema = z.object({
349
377
  homepage: z.string().trim().url().default(STORM_DEFAULT_HOMEPAGE).describe("The homepage of the workspace"),
350
378
  docs: z.string().trim().url().default(STORM_DEFAULT_DOCS).describe("The base documentation site for the workspace"),
351
379
  licensing: z.string().trim().url().default(STORM_DEFAULT_LICENSING).describe("The base licensing site for the workspace"),
380
+ contact: z.string().trim().url().default(STORM_DEFAULT_CONTACT).describe("The base contact site for the workspace"),
352
381
  branch: z.string().trim().default("main").describe("The branch of the workspace"),
353
382
  preid: z.string().optional().describe("A tag specifying the version pre-release identifier"),
354
383
  owner: z.string().trim().default("@storm-software/admin").describe("The owner of the package"),
355
384
  bot: WorkspaceBotConfigSchema,
356
- env: z.enum([
385
+ release: WorkspaceReleaseConfigSchema,
386
+ account: WorkspaceAccountConfigSchema,
387
+ mode: z.enum([
357
388
  "development",
358
389
  "staging",
359
390
  "production"
360
- ]).default("production").describe("The current runtime environment name for the package"),
391
+ ]).default("production").describe("The current runtime environment mode for the package"),
361
392
  workspaceRoot: z.string().trim().default("").describe("The root directory of the workspace"),
362
393
  externalPackagePatterns: z.array(z.string()).default([]).describe("The build will use these package patterns to determine if they should be external to the bundle"),
363
394
  skipCache: z.boolean().default(false).describe("Should all known types of workspace caching be skipped?"),
@@ -513,17 +544,14 @@ var getChalk = /* @__PURE__ */ __name(() => {
513
544
  }, "getChalk");
514
545
 
515
546
  // ../config-tools/src/logger/is-unicode-supported.ts
516
- import process2 from "node:process";
517
547
  function isUnicodeSupported() {
518
- const { env } = process2;
519
- const { TERM, TERM_PROGRAM } = env;
520
- if (process2.platform !== "win32") {
521
- return TERM !== "linux";
522
- }
523
- return Boolean(env.WT_SESSION) || // Windows Terminal
524
- Boolean(env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
525
- env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
526
- TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
548
+ if (process.platform !== "win32") {
549
+ return process.env.TERM !== "linux";
550
+ }
551
+ return Boolean(process.env.WT_SESSION) || // Windows Terminal
552
+ Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
553
+ process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder
554
+ 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";
527
555
  }
528
556
  __name(isUnicodeSupported, "isUnicodeSupported");
529
557
 
@@ -611,7 +639,7 @@ var getLogFn = /* @__PURE__ */ __name((logLevel = LogLevel.INFO, config = {}, _c
611
639
  if (typeof logLevel === "number" && LogLevel.FATAL >= logLevel) {
612
640
  return (message) => {
613
641
  console.error(`
614
- ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.fatal ?? "#7d1a1a")(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
642
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(colors.fatal ?? "#7d1a1a")(`[${CONSOLE_ICONS[LogLevelLabel.FATAL]} Fatal] `)}${_chalk.bold.whiteBright(formatLogMessage(message))}
615
643
  `);
616
644
  };
617
645
  }