@storm-software/cloudflare-tools 0.71.90 → 0.71.92

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 (37) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/dist/{chunk-P42MQNVF.mjs → chunk-536H3WK5.mjs} +18 -1
  4. package/dist/{chunk-YQIWTBN7.mjs → chunk-54ORU46C.mjs} +3 -3
  5. package/dist/{chunk-IH7USDLX.js → chunk-COUZEHRU.js} +18 -18
  6. package/dist/{chunk-52X4GPEN.mjs → chunk-EXZP5MWY.mjs} +28 -7
  7. package/dist/{chunk-MDOQR5IS.js → chunk-FPW225FM.js} +4 -4
  8. package/dist/{chunk-QWSTQIUA.js → chunk-GBAVURC4.js} +51 -34
  9. package/dist/{chunk-6JVDTXHT.js → chunk-JCQYTCUM.js} +5 -5
  10. package/dist/{chunk-2KWRE5Y5.js → chunk-PVCPJUY2.js} +28 -7
  11. package/dist/{chunk-E7SXH3BE.js → chunk-QY2K3DFK.js} +168 -168
  12. package/dist/{chunk-S2GBNGKD.js → chunk-RJCPRCNG.js} +13 -13
  13. package/dist/{chunk-3SX7VAO7.mjs → chunk-XVKPJL76.mjs} +3 -3
  14. package/dist/{chunk-C6CPSE5U.mjs → chunk-YQSDJFL7.mjs} +3 -3
  15. package/dist/{chunk-YIXC7QU5.mjs → chunk-Z6NBDGWC.mjs} +4 -4
  16. package/dist/{chunk-OPXJUL5V.mjs → chunk-Z7TZ4UY6.mjs} +1 -1
  17. package/dist/executors.js +5 -5
  18. package/dist/executors.mjs +5 -5
  19. package/dist/generators.js +5 -5
  20. package/dist/generators.mjs +4 -4
  21. package/dist/index.js +8 -8
  22. package/dist/index.mjs +7 -7
  23. package/dist/src/executors/cloudflare-publish/executor.js +3 -3
  24. package/dist/src/executors/cloudflare-publish/executor.mjs +3 -3
  25. package/dist/src/executors/r2-upload-publish/executor.js +5 -5
  26. package/dist/src/executors/r2-upload-publish/executor.mjs +4 -4
  27. package/dist/src/executors/serve/executor.js +4 -4
  28. package/dist/src/executors/serve/executor.mjs +3 -3
  29. package/dist/src/generators/init/generator.js +2 -2
  30. package/dist/src/generators/init/generator.mjs +1 -1
  31. package/dist/src/generators/worker/generator.js +5 -5
  32. package/dist/src/generators/worker/generator.mjs +4 -4
  33. package/dist/src/utils/index.js +3 -3
  34. package/dist/src/utils/index.mjs +2 -2
  35. package/dist/src/utils/r2-bucket-helpers.js +3 -3
  36. package/dist/src/utils/r2-bucket-helpers.mjs +2 -2
  37. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  # Changelog for Storm Ops - Cloudflare Tools
4
4
 
5
+ ## [0.71.91](https://github.com/storm-software/storm-ops/releases/tag/cloudflare-tools%400.71.91) (03/18/2026)
6
+
7
+ ### Features
8
+
9
+ - **config:** Added the `performance` color configuration and logLevel ([02e67c64e](https://github.com/storm-software/storm-ops/commit/02e67c64e))
10
+
11
+ ### Updated Dependencies
12
+
13
+ - Updated **workspace-tools** to **v1.295.17**
14
+ - Updated **config-tools** to **v1.189.41**
15
+ - Updated **config** to **v1.136.0**
16
+
17
+ ## [0.71.90](https://github.com/storm-software/storm-ops/releases/tag/cloudflare-tools%400.71.90) (03/18/2026)
18
+
19
+ ### Miscellaneous
20
+
21
+ - **devenv-modules:** Update tasks for devenv modules ([7e9677f2e](https://github.com/storm-software/storm-ops/commit/7e9677f2e))
22
+
23
+ ### Updated Dependencies
24
+
25
+ - Updated **workspace-tools** to **v1.295.16**
26
+ - Updated **config-tools** to **v1.189.40**
27
+ - Updated **config** to **v1.135.41**
28
+
5
29
  ## [0.71.89](https://github.com/storm-software/storm-ops/releases/tag/cloudflare-tools%400.71.89) (03/16/2026)
6
30
 
7
31
  ### Miscellaneous
package/README.md CHANGED
@@ -27,7 +27,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
27
27
 
28
28
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
29
29
 
30
- [![Version](https://img.shields.io/badge/version-0.71.88-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)
30
+ [![Version](https://img.shields.io/badge/version-0.71.90-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)
31
31
 
32
32
  <!-- prettier-ignore-start -->
33
33
  <!-- markdownlint-disable -->
@@ -7,7 +7,7 @@ import {
7
7
  joinPaths,
8
8
  writeTrace,
9
9
  writeWarning
10
- } from "./chunk-52X4GPEN.mjs";
10
+ } from "./chunk-EXZP5MWY.mjs";
11
11
 
12
12
  // ../config-tools/src/utilities/find-up.ts
13
13
  import { existsSync } from "node:fs";
@@ -186,6 +186,10 @@ var fatalColorSchema = z.optional(colorSchema);
186
186
  schemaRegistry.add(fatalColorSchema, {
187
187
  description: "The fatal color of the workspace"
188
188
  });
189
+ var performanceColorSchema = z._default(colorSchema, "#00ff00");
190
+ schemaRegistry.add(performanceColorSchema, {
191
+ description: "The performance color of the workspace"
192
+ });
189
193
  var positiveColorSchema = z._default(colorSchema, "#4ade80");
190
194
  schemaRegistry.add(positiveColorSchema, {
191
195
  description: "The positive number color of the workspace"
@@ -212,6 +216,7 @@ var darkColorsSchema = z.object({
212
216
  warning: warningColorSchema,
213
217
  danger: dangerColorSchema,
214
218
  fatal: fatalColorSchema,
219
+ performance: performanceColorSchema,
215
220
  positive: positiveColorSchema,
216
221
  negative: negativeColorSchema,
217
222
  gradient: gradientStopsSchema
@@ -230,6 +235,7 @@ var lightColorsSchema = z.object({
230
235
  warning: warningColorSchema,
231
236
  danger: dangerColorSchema,
232
237
  fatal: fatalColorSchema,
238
+ performance: performanceColorSchema,
233
239
  positive: positiveColorSchema,
234
240
  negative: negativeColorSchema,
235
241
  gradient: gradientStopsSchema
@@ -252,6 +258,7 @@ var singleColorsSchema = z.object({
252
258
  warning: warningColorSchema,
253
259
  danger: dangerColorSchema,
254
260
  fatal: fatalColorSchema,
261
+ performance: performanceColorSchema,
255
262
  positive: positiveColorSchema,
256
263
  negative: negativeColorSchema,
257
264
  gradient: gradientStopsSchema
@@ -619,6 +626,7 @@ var logLevelSchema = z._default(
619
626
  "warn",
620
627
  "success",
621
628
  "info",
629
+ "performance",
622
630
  "debug",
623
631
  "trace",
624
632
  "all"
@@ -706,6 +714,7 @@ var COLOR_KEYS = [
706
714
  "warning",
707
715
  "danger",
708
716
  "fatal",
717
+ "performance",
709
718
  "positive",
710
719
  "negative"
711
720
  ];
@@ -1042,6 +1051,7 @@ var getSingleThemeColorsEnv = (prefix) => {
1042
1051
  warning: process.env[`${prefix}WARNING`],
1043
1052
  danger: process.env[`${prefix}DANGER`],
1044
1053
  fatal: process.env[`${prefix}FATAL`],
1054
+ performance: process.env[`${prefix}PERFORMANCE`],
1045
1055
  positive: process.env[`${prefix}POSITIVE`],
1046
1056
  negative: process.env[`${prefix}NEGATIVE`],
1047
1057
  gradient
@@ -1081,6 +1091,7 @@ var getBaseThemeColorsEnv = (prefix) => {
1081
1091
  warning: process.env[`${prefix}WARNING`],
1082
1092
  danger: process.env[`${prefix}DANGER`],
1083
1093
  fatal: process.env[`${prefix}FATAL`],
1094
+ performance: process.env[`${prefix}PERFORMANCE`],
1084
1095
  positive: process.env[`${prefix}POSITIVE`],
1085
1096
  negative: process.env[`${prefix}NEGATIVE`],
1086
1097
  gradient
@@ -1391,6 +1402,9 @@ var setSingleThemeColorsEnv = (prefix, config) => {
1391
1402
  if (config.fatal) {
1392
1403
  process.env[`${prefix}FATAL`] = config.fatal;
1393
1404
  }
1405
+ if (config.performance) {
1406
+ process.env[`${prefix}PERFORMANCE`] = config.performance;
1407
+ }
1394
1408
  if (config.positive) {
1395
1409
  process.env[`${prefix}POSITIVE`] = config.positive;
1396
1410
  }
@@ -1449,6 +1463,9 @@ var setBaseThemeColorsEnv = (prefix, config) => {
1449
1463
  if (config.fatal) {
1450
1464
  process.env[`${prefix}FATAL`] = config.fatal;
1451
1465
  }
1466
+ if (config.performance) {
1467
+ process.env[`${prefix}PERFORMANCE`] = config.performance;
1468
+ }
1452
1469
  if (config.positive) {
1453
1470
  process.env[`${prefix}POSITIVE`] = config.positive;
1454
1471
  }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  generator_default
3
- } from "./chunk-YIXC7QU5.mjs";
3
+ } from "./chunk-Z6NBDGWC.mjs";
4
4
  import {
5
5
  findWorkspaceRoot,
6
6
  getConfig
7
- } from "./chunk-P42MQNVF.mjs";
7
+ } from "./chunk-536H3WK5.mjs";
8
8
  import {
9
9
  brandIcon,
10
10
  getStopwatch,
@@ -13,7 +13,7 @@ import {
13
13
  writeFatal,
14
14
  writeInfo,
15
15
  writeTrace
16
- } from "./chunk-52X4GPEN.mjs";
16
+ } from "./chunk-EXZP5MWY.mjs";
17
17
  import {
18
18
  __dirname
19
19
  } from "./chunk-FVRCPE3R.mjs";
@@ -5,7 +5,7 @@ var _chunkKUGEZPUOjs = require('./chunk-KUGEZPUO.js');
5
5
 
6
6
 
7
7
 
8
- var _chunk6JVDTXHTjs = require('./chunk-6JVDTXHT.js');
8
+ var _chunkJCQYTCUMjs = require('./chunk-JCQYTCUM.js');
9
9
 
10
10
 
11
11
 
@@ -13,7 +13,7 @@ var _chunkN7FW365Qjs = require('./chunk-N7FW365Q.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkQWSTQIUAjs = require('./chunk-QWSTQIUA.js');
16
+ var _chunkGBAVURC4js = require('./chunk-GBAVURC4.js');
17
17
 
18
18
 
19
19
 
@@ -21,7 +21,7 @@ var _chunkQWSTQIUAjs = require('./chunk-QWSTQIUA.js');
21
21
 
22
22
 
23
23
 
24
- var _chunk2KWRE5Y5js = require('./chunk-2KWRE5Y5.js');
24
+ var _chunkPVCPJUY2js = require('./chunk-PVCPJUY2.js');
25
25
 
26
26
  // src/executors/r2-upload-publish/executor.ts
27
27
 
@@ -53,8 +53,8 @@ async function runExecutor(options, context) {
53
53
  throw new Error("The executor requires projectsConfigurations.");
54
54
  }
55
55
  try {
56
- const workspaceRoot = _chunkQWSTQIUAjs.findWorkspaceRoot.call(void 0, );
57
- const config = await _chunkQWSTQIUAjs.getConfig.call(void 0, workspaceRoot);
56
+ const workspaceRoot = _chunkGBAVURC4js.findWorkspaceRoot.call(void 0, );
57
+ const config = await _chunkGBAVURC4js.getConfig.call(void 0, workspaceRoot);
58
58
  const projectName = _nullishCoalesce(_optionalChain([context, 'access', _7 => _7.projectsConfigurations, 'access', _8 => _8.projects, 'access', _9 => _9[context.projectName], 'optionalAccess', _10 => _10.name]), () => ( context.projectName));
59
59
  const projectDetails = _chunkN7FW365Qjs.getPackageInfo.call(void 0,
60
60
  context.projectsConfigurations.projects[context.projectName]
@@ -92,7 +92,7 @@ async function runExecutor(options, context) {
92
92
  "The executor failed because the project graph is not available. Please run the build command again."
93
93
  );
94
94
  }
95
- _chunk2KWRE5Y5js.writeDebug.call(void 0,
95
+ _chunkPVCPJUY2js.writeDebug.call(void 0,
96
96
  `Publishing ${context.projectName} to the ${bucketId} R2 Bucket (at ${registry})`
97
97
  );
98
98
  const client = new (0, _clients3.S3Client)({
@@ -108,13 +108,13 @@ async function runExecutor(options, context) {
108
108
  });
109
109
  const version = _optionalChain([projectDetails, 'optionalAccess', _13 => _13.content, 'optionalAccess', _14 => _14.version]);
110
110
  if (version) {
111
- _chunk2KWRE5Y5js.writeDebug.call(void 0, `Starting upload version ${version}`);
111
+ _chunkPVCPJUY2js.writeDebug.call(void 0, `Starting upload version ${version}`);
112
112
  }
113
113
  const basePath = options.path;
114
- const files = await _glob.glob.call(void 0, _chunk2KWRE5Y5js.joinPaths.call(void 0, basePath, "**/*"), {
114
+ const files = await _glob.glob.call(void 0, _chunkPVCPJUY2js.joinPaths.call(void 0, basePath, "**/*"), {
115
115
  ignore: "**/{*.stories.tsx,*.stories.ts,*.spec.tsx,*.spec.ts}"
116
116
  });
117
- const internalDependencies = await _chunk6JVDTXHTjs.getInternalDependencies.call(void 0,
117
+ const internalDependencies = await _chunkJCQYTCUMjs.getInternalDependencies.call(void 0,
118
118
  context.projectName,
119
119
  projectGraph
120
120
  );
@@ -128,7 +128,7 @@ async function runExecutor(options, context) {
128
128
  }, _nullishCoalesce(_optionalChain([projectDetails, 'optionalAccess', _15 => _15.content, 'access', _16 => _16.dependencies]), () => ( {})));
129
129
  const release = _nullishCoalesce(options.tag, () => ( _child_process.execSync.call(void 0, "npm config get tag").toString().trim()));
130
130
  if (options.clean === true) {
131
- _chunk2KWRE5Y5js.writeDebug.call(void 0, `Clearing out existing items in ${bucketPath}`);
131
+ _chunkPVCPJUY2js.writeDebug.call(void 0, `Clearing out existing items in ${bucketPath}`);
132
132
  if (!isDryRun) {
133
133
  const response = await client.send(
134
134
  new (0, _clients3.ListObjectsCommand)({
@@ -137,7 +137,7 @@ async function runExecutor(options, context) {
137
137
  })
138
138
  );
139
139
  if (_optionalChain([response, 'optionalAccess', _17 => _17.Contents]) && response.Contents.length > 0) {
140
- _chunk2KWRE5Y5js.writeTrace.call(void 0,
140
+ _chunkPVCPJUY2js.writeTrace.call(void 0,
141
141
  `Deleting the following existing items from the R2 bucket path ${bucketPath}: ${response.Contents.map((item) => item.Key).join(", ")}`
142
142
  );
143
143
  await client.send(
@@ -152,12 +152,12 @@ async function runExecutor(options, context) {
152
152
  })
153
153
  );
154
154
  } else {
155
- _chunk2KWRE5Y5js.writeDebug.call(void 0,
155
+ _chunkPVCPJUY2js.writeDebug.call(void 0,
156
156
  `No existing items to delete in the R2 bucket path ${bucketPath}`
157
157
  );
158
158
  }
159
159
  } else {
160
- _chunk2KWRE5Y5js.writeWarning.call(void 0, "[Dry run]: Skipping R2 bucket clean.");
160
+ _chunkPVCPJUY2js.writeWarning.call(void 0, "[Dry run]: Skipping R2 bucket clean.");
161
161
  }
162
162
  }
163
163
  if (options.writeMetaJson === true) {
@@ -178,7 +178,7 @@ async function runExecutor(options, context) {
178
178
  if (_optionalChain([projectDetails, 'optionalAccess', _22 => _22.type]) === "package.json") {
179
179
  meta.devDependencies = _optionalChain([projectDetails, 'optionalAccess', _23 => _23.content, 'optionalAccess', _24 => _24.devDependencies]);
180
180
  }
181
- await _chunk6JVDTXHTjs.uploadFile.call(void 0,
181
+ await _chunkJCQYTCUMjs.uploadFile.call(void 0,
182
182
  client,
183
183
  bucketId,
184
184
  bucketPath,
@@ -194,22 +194,22 @@ async function runExecutor(options, context) {
194
194
  if (_optionalChain([_fs.statSync.call(void 0, file, {
195
195
  throwIfNoEntry: false
196
196
  }), 'optionalAccess', _25 => _25.isFile, 'call', _26 => _26()])) {
197
- const name = _chunk2KWRE5Y5js.correctPaths.call(void 0, file).replace(_chunk2KWRE5Y5js.correctPaths.call(void 0, basePath), "");
197
+ const name = _chunkPVCPJUY2js.correctPaths.call(void 0, file).replace(_chunkPVCPJUY2js.correctPaths.call(void 0, basePath), "");
198
198
  const type = _mimetypes2.default.lookup(name) || "application/octet-stream";
199
- await _chunk6JVDTXHTjs.uploadFile.call(void 0,
199
+ await _chunkJCQYTCUMjs.uploadFile.call(void 0,
200
200
  client,
201
201
  bucketId,
202
202
  bucketPath,
203
203
  name,
204
204
  version,
205
- await _promises.readFile.call(void 0, file, _chunk6JVDTXHTjs.getEncoding.call(void 0, type)),
205
+ await _promises.readFile.call(void 0, file, _chunkJCQYTCUMjs.getEncoding.call(void 0, type)),
206
206
  type,
207
207
  isDryRun
208
208
  );
209
209
  }
210
210
  })
211
211
  );
212
- _chunk2KWRE5Y5js.writeSuccess.call(void 0,
212
+ _chunkPVCPJUY2js.writeSuccess.call(void 0,
213
213
  `Successfully uploaded the ${projectName} project to the Cloudflare R2 bucket.`,
214
214
  config
215
215
  );
@@ -9,6 +9,7 @@ var LogLevel = {
9
9
  WARN: 30,
10
10
  SUCCESS: 35,
11
11
  INFO: 40,
12
+ PERFORMANCE: 50,
12
13
  DEBUG: 60,
13
14
  TRACE: 70,
14
15
  ALL: 100
@@ -20,6 +21,7 @@ var LogLevelLabel = {
20
21
  WARN: "warn",
21
22
  SUCCESS: "success",
22
23
  INFO: "info",
24
+ PERFORMANCE: "performance",
23
25
  DEBUG: "debug",
24
26
  TRACE: "trace",
25
27
  ALL: "all"
@@ -39,6 +41,7 @@ var DEFAULT_COLOR_CONFIG = {
39
41
  warning: "#e3b341",
40
42
  danger: "#D8314A",
41
43
  fatal: "#51070f",
44
+ performance: "#83ff83",
42
45
  link: "#3fa6ff",
43
46
  positive: "#22c55e",
44
47
  negative: "#dc2626",
@@ -56,6 +59,7 @@ var DEFAULT_COLOR_CONFIG = {
56
59
  warning: "#f3d371",
57
60
  danger: "#D8314A",
58
61
  fatal: "#a40e26",
62
+ performance: "#00ff00",
59
63
  link: "#3fa6ff",
60
64
  positive: "#22c55e",
61
65
  negative: "#dc2626",
@@ -143,6 +147,7 @@ var CONSOLE_ICONS = {
143
147
  [LogLevelLabel.FATAL]: useIcon("\u{1F571}", "\xD7"),
144
148
  [LogLevelLabel.WARN]: useIcon("\u26A0", "\u203C"),
145
149
  [LogLevelLabel.INFO]: useIcon("\u2139", "i"),
150
+ [LogLevelLabel.PERFORMANCE]: useIcon("\u23F1", "\u23F1"),
146
151
  [LogLevelLabel.SUCCESS]: useIcon("\u2714", "\u221A"),
147
152
  [LogLevelLabel.DEBUG]: useIcon("\u{1F6E0}", "D"),
148
153
  [LogLevelLabel.TRACE]: useIcon("\u2699", "T"),
@@ -163,6 +168,8 @@ var getLogLevel = (label) => {
163
168
  return LogLevel.TRACE;
164
169
  case "debug":
165
170
  return LogLevel.DEBUG;
171
+ case "performance":
172
+ return LogLevel.PERFORMANCE;
166
173
  case "info":
167
174
  return LogLevel.INFO;
168
175
  case "warn":
@@ -187,6 +194,9 @@ var getLogLevelLabel = (logLevel = LogLevel.INFO) => {
187
194
  if (logLevel >= LogLevel.DEBUG) {
188
195
  return LogLevelLabel.DEBUG;
189
196
  }
197
+ if (logLevel >= LogLevel.PERFORMANCE) {
198
+ return LogLevelLabel.PERFORMANCE;
199
+ }
190
200
  if (logLevel >= LogLevel.INFO) {
191
201
  return LogLevelLabel.INFO;
192
202
  }
@@ -274,6 +284,19 @@ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(
274
284
  )(
275
285
  `[${CONSOLE_ICONS[LogLevelLabel.INFO]} Info] `
276
286
  )}${_chalk.bold.whiteBright(formatLogMessage(message))}
287
+ `
288
+ );
289
+ };
290
+ }
291
+ if (typeof logLevel === "number" && LogLevel.PERFORMANCE >= logLevel) {
292
+ return (message) => {
293
+ console.debug(
294
+ `
295
+ ${_chalk.gray(formatTimestamp())} ${_chalk.hex(
296
+ colors.performance ?? DEFAULT_COLOR_CONFIG.dark.performance
297
+ )(
298
+ `[${CONSOLE_ICONS[LogLevelLabel.PERFORMANCE]} Performance] `
299
+ )}${_chalk.bold.whiteBright(formatLogMessage(message))}
277
300
  `
278
301
  );
279
302
  };
@@ -319,18 +342,16 @@ var writeError = (message, config) => getLogFn(LogLevel.ERROR, config)(message);
319
342
  var writeWarning = (message, config) => getLogFn(LogLevel.WARN, config)(message);
320
343
  var writeInfo = (message, config) => getLogFn(LogLevel.INFO, config)(message);
321
344
  var writeSuccess = (message, config) => getLogFn(LogLevel.SUCCESS, config)(message);
345
+ var writePerformance = (message, config) => getLogFn(LogLevel.PERFORMANCE, config)(message);
322
346
  var writeDebug = (message, config) => getLogFn(LogLevel.DEBUG, config)(message);
323
347
  var writeTrace = (message, config) => getLogFn(LogLevel.TRACE, config)(message);
324
348
  var getStopwatch = (name) => {
325
349
  const start = /* @__PURE__ */ new Date();
326
350
  return () => {
327
- console.info(
328
- `> \u23F1 The${name ? ` ${name}` : ""} process took ${formatDistanceToNow(
329
- start,
330
- {
331
- includeSeconds: true
332
- }
333
- )} to complete`
351
+ writePerformance(
352
+ `The${name ? ` ${name}` : ""} process took ${formatDistanceToNow(start, {
353
+ includeSeconds: true
354
+ })} to complete`
334
355
  );
335
356
  };
336
357
  };
@@ -7,7 +7,7 @@ var require_package = _chunkMCKGQKYUjs.__commonJS.call(void 0, {
7
7
  "package.json"(exports, module) {
8
8
  module.exports = {
9
9
  name: "@storm-software/cloudflare-tools",
10
- version: "0.71.89",
10
+ version: "0.71.91",
11
11
  private: false,
12
12
  description: "A Nx plugin package that contains various executors, generators, and utilities that assist in managing Cloudflare services.",
13
13
  keywords: [
@@ -156,9 +156,9 @@ var require_package = _chunkMCKGQKYUjs.__commonJS.call(void 0, {
156
156
  "@nx/js": "catalog:",
157
157
  "@nx/node": "catalog:",
158
158
  "@nx/web": "catalog:",
159
- "@storm-software/config": "1.135.40",
160
- "@storm-software/config-tools": "1.189.39",
161
- "@storm-software/workspace-tools": "1.295.15",
159
+ "@storm-software/config": "1.136.0",
160
+ "@storm-software/config-tools": "1.189.41",
161
+ "@storm-software/workspace-tools": "1.295.17",
162
162
  nx: "catalog:",
163
163
  tsup: "catalog:",
164
164
  wrangler: ">=3.58.0"