alex-c-line 2.0.1 → 2.0.2

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/dist/index.cjs CHANGED
@@ -7,16 +7,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
- key = keys[i];
13
- if (!__hasOwnProp.call(to, key) && key !== except) {
14
- __defProp(to, key, {
15
- get: ((k) => from[k]).bind(null, key),
16
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
- });
18
- }
19
- }
10
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
+ get: ((k) => from[k]).bind(null, key),
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
20
16
  }
21
17
  return to;
22
18
  };
@@ -24,7 +20,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
20
  value: mod,
25
21
  enumerable: true
26
22
  }) : target, mod));
27
-
28
23
  //#endregion
29
24
  let _alextheman_utility = require("@alextheman/utility");
30
25
  let commander = require("commander");
@@ -55,7 +50,6 @@ let supports_color = require("supports-color");
55
50
  supports_color = __toESM(supports_color);
56
51
  let node_crypto = require("node:crypto");
57
52
  let semver = require("semver");
58
-
59
53
  //#region src/utility/miscellaneous/centerLine.ts
60
54
  function centerLine(text, width) {
61
55
  const padding = Math.max(0, width - text.length);
@@ -63,7 +57,6 @@ function centerLine(text, width) {
63
57
  const right = padding - left;
64
58
  return " ".repeat(left) + text + " ".repeat(right);
65
59
  }
66
-
67
60
  //#endregion
68
61
  //#region src/utility/miscellaneous/createAlexCLineArtwork.ts
69
62
  async function createAlexCLineArtwork(options) {
@@ -84,7 +77,6 @@ async function createAlexCLineArtwork(options) {
84
77
  borderColor: "cyanBright"
85
78
  }) : output;
86
79
  }
87
-
88
80
  //#endregion
89
81
  //#region src/cli/commands/artwork/log.ts
90
82
  function artworkLog(program) {
@@ -102,7 +94,6 @@ function artworkLog(program) {
102
94
  }));
103
95
  });
104
96
  }
105
-
106
97
  //#endregion
107
98
  //#region src/utility/miscellaneous/asciiToPng.ts
108
99
  async function asciiToPng(ascii, options) {
@@ -135,7 +126,6 @@ async function asciiToPng(ascii, options) {
135
126
  await (0, node_fs_promises.mkdir)(node_path.default.dirname(outputPath), { recursive: true });
136
127
  await (0, node_fs_promises.writeFile)(outputPath, canvas$1.toBuffer("image/png"));
137
128
  }
138
-
139
129
  //#endregion
140
130
  //#region src/cli/commands/artwork/save.ts
141
131
  function artworkSave(program) {
@@ -154,13 +144,11 @@ function artworkSave(program) {
154
144
  console.info(`Artwork saved successfully to ${node_path.default.resolve(filePath.endsWith(".png") ? filePath : `${filePath}.png`)}`);
155
145
  });
156
146
  }
157
-
158
147
  //#endregion
159
148
  //#region src/utility/miscellaneous/loadCommands.ts
160
149
  function loadCommands(program, commandMap) {
161
150
  for (const loader of Object.values(commandMap)) loader(program);
162
151
  }
163
-
164
152
  //#endregion
165
153
  //#region src/cli/commands/artwork/index.ts
166
154
  function artwork(program) {
@@ -169,13 +157,8 @@ function artwork(program) {
169
157
  artworkSave
170
158
  });
171
159
  }
172
-
173
- //#endregion
174
- //#region src/cache/global/envPaths.ts
175
- const alexCLineEnvPaths = (0, env_paths.default)("alex-c-line");
176
- const { cache: ALEX_C_LINE_GLOBAL_CACHE_DIRECTORY } = alexCLineEnvPaths;
160
+ const { cache: ALEX_C_LINE_GLOBAL_CACHE_DIRECTORY } = (0, env_paths.default)("alex-c-line");
177
161
  const ALEX_C_LINE_GLOBAL_CACHE_PATH = node_path.default.join(ALEX_C_LINE_GLOBAL_CACHE_DIRECTORY, "cache.json");
178
-
179
162
  //#endregion
180
163
  //#region src/cli/commands/cache/path.ts
181
164
  function cachePath(program) {
@@ -183,23 +166,19 @@ function cachePath(program) {
183
166
  console.info(ALEX_C_LINE_GLOBAL_CACHE_PATH);
184
167
  });
185
168
  }
186
-
187
169
  //#endregion
188
170
  //#region src/cli/commands/cache/index.ts
189
171
  function cache(program) {
190
172
  loadCommands(program.command("cache").description("Commands related to the alex-c-line cache"), { cachePath });
191
173
  }
192
-
193
174
  //#endregion
194
175
  //#region src/utility/constants/errorPrefix.ts
195
176
  const errorPrefix = "❌ ERROR:";
196
-
197
177
  //#endregion
198
178
  //#region src/utility/envFile/upsertDotenvFile.ts
199
179
  async function upsertDotenvFile(contents, envFilePath) {
200
180
  await (0, node_fs_promises.writeFile)(node_path.default.join(process.cwd(), envFilePath), (0, _alextheman_utility.stringifyDotenv)(contents));
201
181
  }
202
-
203
182
  //#endregion
204
183
  //#region src/cli/commands/env-file/edit/addVariable.ts
205
184
  async function addVariable(program, envFileContents, file) {
@@ -225,7 +204,6 @@ async function addVariable(program, envFileContents, file) {
225
204
  }, file);
226
205
  console.info(`${newVariableName} successfully added.`);
227
206
  }
228
-
229
207
  //#endregion
230
208
  //#region src/cli/commands/env-file/edit/deleteVariable.ts
231
209
  async function deleteVariable(envFileContents, variableToEdit, file) {
@@ -236,7 +214,6 @@ async function deleteVariable(envFileContents, variableToEdit, file) {
236
214
  await upsertDotenvFile((0, _alextheman_utility.omitProperties)(envFileContents, variableToEdit), file);
237
215
  console.info(`${String(variableToEdit)} successfully deleted.`);
238
216
  }
239
-
240
217
  //#endregion
241
218
  //#region src/cli/commands/env-file/edit/editVariable.ts
242
219
  async function editVariable(envFileContents, variableToEdit, file) {
@@ -247,7 +224,6 @@ async function editVariable(envFileContents, variableToEdit, file) {
247
224
  }, file);
248
225
  console.info(`${String(variableToEdit)} successfully updated.`);
249
226
  }
250
-
251
227
  //#endregion
252
228
  //#region src/utility/envFile/redact.ts
253
229
  function redact(secretString) {
@@ -255,7 +231,6 @@ function redact(secretString) {
255
231
  return "*";
256
232
  }, secretString.length).join("")} (redacted for security)>`;
257
233
  }
258
-
259
234
  //#endregion
260
235
  //#region src/cli/commands/env-file/edit/changeExistingVariable.ts
261
236
  async function changeExistingVariable(envFileContents, variableToEdit, file) {
@@ -282,7 +257,6 @@ async function changeExistingVariable(envFileContents, variableToEdit, file) {
282
257
  default: console.error("Unrecognised option");
283
258
  }
284
259
  }
285
-
286
260
  //#endregion
287
261
  //#region src/utility/envFile/parseDotenvFile.ts
288
262
  async function parseDotenvFile(envFilePath) {
@@ -293,7 +267,6 @@ async function parseDotenvFile(envFilePath) {
293
267
  throw error;
294
268
  }
295
269
  }
296
-
297
270
  //#endregion
298
271
  //#region src/cli/commands/env-file/edit/index.ts
299
272
  function envFileEdit(program) {
@@ -340,13 +313,11 @@ function envFileEdit(program) {
340
313
  }
341
314
  });
342
315
  }
343
-
344
316
  //#endregion
345
317
  //#region src/cli/commands/env-file/index.ts
346
318
  function envFile(program) {
347
319
  loadCommands(program.command("env-file").description("Interact with a .env file"), { envFileEdit });
348
320
  }
349
-
350
321
  //#endregion
351
322
  //#region src/cli/commands/internal/check-lockfile-version-discrepancy.ts
352
323
  function checkLockfileVersionDiscrepancy(program) {
@@ -362,7 +333,6 @@ function checkLockfileVersionDiscrepancy(program) {
362
333
  console.info("package.json and package-lock.json versions in sync.");
363
334
  });
364
335
  }
365
-
366
336
  //#endregion
367
337
  //#region src/cli/commands/internal/git-post-merge-cleanup.ts
368
338
  function gitPostMergeCleanup(program) {
@@ -404,7 +374,6 @@ function gitPostMergeCleanup(program) {
404
374
  }
405
375
  });
406
376
  }
407
-
408
377
  //#endregion
409
378
  //#region src/utility/fileSystem/findPackageRoot.ts
410
379
  async function findPackageRoot(startDirectory, packageName) {
@@ -420,12 +389,10 @@ async function findPackageRoot(startDirectory, packageName) {
420
389
  }
421
390
  throw new _alextheman_utility.DataError({ packageName }, "PACKAGE_ROOT_NOT_FOUND", `Could not find package root for ${packageName}`);
422
391
  }
423
-
424
392
  //#endregion
425
393
  //#region src/utility/constants/alexCLinePackageRoot.ts
426
394
  const __filename$3 = (0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href);
427
395
  const ALEX_C_LINE_PACKAGE_ROOT = findPackageRoot(node_path.default.dirname(__filename$3), "alex-c-line");
428
-
429
396
  //#endregion
430
397
  //#region src/cli/commands/internal/outdated-dependencies.ts
431
398
  function outdatedDependencies(program) {
@@ -448,7 +415,6 @@ function outdatedDependencies(program) {
448
415
  }).join("\n")));
449
416
  });
450
417
  }
451
-
452
418
  //#endregion
453
419
  //#region src/cli/commands/internal/index.ts
454
420
  function internal(program) {
@@ -458,7 +424,6 @@ function internal(program) {
458
424
  outdatedDependencies
459
425
  });
460
426
  }
461
-
462
427
  //#endregion
463
428
  //#region src/cache/project/createAlexCLineProjectCache.ts
464
429
  async function createAlexCLineProjectCache(cacheContents) {
@@ -466,7 +431,6 @@ async function createAlexCLineProjectCache(cacheContents) {
466
431
  await (0, node_fs_promises.mkdir)(node_path.default.dirname(cacheFilePath), { recursive: true });
467
432
  await (0, node_fs_promises.writeFile)(cacheFilePath, JSON.stringify(cacheContents, void 0, 2));
468
433
  }
469
-
470
434
  //#endregion
471
435
  //#region src/configs/helpers/preCommit/definePreCommitConfig.ts
472
436
  const preCommitStepOptionsSchema = zod.default.strictObject({ arguments: zod.default.array(zod.default.string()).optional() });
@@ -483,7 +447,6 @@ const preCommitConfigSchema = zod.default.strictObject({
483
447
  ])),
484
448
  updateIndex: zod.default.boolean().optional()
485
449
  });
486
-
487
450
  //#endregion
488
451
  //#region src/configs/helpers/template/pullRequest/defineTemplatePullRequestSchema.ts
489
452
  const templatePullRequestBaseSchema = zod.default.strictObject({ projectName: zod.default.string().optional() });
@@ -498,7 +461,6 @@ const templatePullRequestSchema = zod.default.discriminatedUnion("category", [te
498
461
  function parseTemplatePullRequestConfig(input) {
499
462
  return (0, _alextheman_utility.parseZodSchema)(templatePullRequestSchema, input);
500
463
  }
501
-
502
464
  //#endregion
503
465
  //#region src/configs/helpers/defineAlexCLineConfig.ts
504
466
  const alexCLineConfigSchema = zod.default.strictObject({
@@ -508,7 +470,6 @@ const alexCLineConfigSchema = zod.default.strictObject({
508
470
  async function parseAlexCLineConfig(input) {
509
471
  return await (0, _alextheman_utility.parseZodSchemaAsync)(alexCLineConfigSchema, input);
510
472
  }
511
-
512
473
  //#endregion
513
474
  //#region src/configs/types/ConfigFileName.ts
514
475
  const ConfigFileName = {
@@ -521,14 +482,12 @@ const PrivateConfigFileName = {
521
482
  ES_MODULES_JAVASCRIPT: ".alex-c-line.private.config.mjs",
522
483
  COMMON_JS_JAVASCRIPT: ".alex-c-line.private.config.cjs"
523
484
  };
524
-
525
485
  //#endregion
526
486
  //#region src/configs/types/template/pullRequest/PullRequestTemplateCategory.ts
527
487
  const PullRequestTemplateCategory = {
528
488
  GENERAL: "general",
529
489
  INFRASTRUCTURE: "infrastructure"
530
490
  };
531
-
532
491
  //#endregion
533
492
  //#region src/configs/helpers/defineAlexCLinePrivateConfig.ts
534
493
  const alexCLinePrivateConfigSchema = zod.default.object({ localPackage: zod.default.strictObject({
@@ -544,7 +503,6 @@ const alexCLinePrivateConfigSchema = zod.default.object({ localPackage: zod.defa
544
503
  function parseAlexCLinePrivateConfig(data) {
545
504
  return (0, _alextheman_utility.parseZodSchema)(alexCLinePrivateConfigSchema, data);
546
505
  }
547
-
548
506
  //#endregion
549
507
  //#region src/cache/project/types/AlexCLineProjectCache.ts
550
508
  const alexCLineProjectCacheSchema = zod.default.object({ useLocalPackage: zod.default.object({ dependencies: zod.default.record(zod.default.string(), zod.default.object({
@@ -554,13 +512,11 @@ const alexCLineProjectCacheSchema = zod.default.object({ useLocalPackage: zod.de
554
512
  }),
555
513
  dependencyGroup: zod.default.enum(_alextheman_utility_internal.DependencyGroup)
556
514
  })) }).partial() }).partial();
557
-
558
515
  //#endregion
559
516
  //#region src/cache/project/parseAlexCLineProjectCache.ts
560
517
  function parseAlexCLineProjectCache(data) {
561
518
  return (0, _alextheman_utility.parseZodSchema)(alexCLineProjectCacheSchema, data);
562
519
  }
563
-
564
520
  //#endregion
565
521
  //#region src/cache/project/loadAlexCLineProjectCache.ts
566
522
  async function loadAlexCLineProjectCache(cachePath = node_path.default.join(".alex-c-line", "cache.json")) {
@@ -572,7 +528,6 @@ async function loadAlexCLineProjectCache(cachePath = node_path.default.join(".al
572
528
  throw error;
573
529
  }
574
530
  }
575
-
576
531
  //#endregion
577
532
  //#region src/utility/fileSystem/doesFileExist.ts
578
533
  async function doesFileExist(filePath) {
@@ -584,7 +539,6 @@ async function doesFileExist(filePath) {
584
539
  throw error;
585
540
  }
586
541
  }
587
-
588
542
  //#endregion
589
543
  //#region src/utility/configs/findAlexCLineConfig.ts
590
544
  async function findAlexCLineConfig(cwd, validConfigFileNames = [
@@ -597,7 +551,6 @@ async function findAlexCLineConfig(cwd, validConfigFileNames = [
597
551
  if (await doesFileExist(fullPath)) return fullPath;
598
552
  }
599
553
  }
600
-
601
554
  //#endregion
602
555
  //#region src/utility/configs/loadAlexCLinePrivateConfig.ts
603
556
  const require$2 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
@@ -609,7 +562,6 @@ async function loadAlexCLinePrivateConfig(filePath) {
609
562
  const module = await import((0, node_url.pathToFileURL)(filePath).href);
610
563
  return parseAlexCLinePrivateConfig(module.default ?? module);
611
564
  }
612
-
613
565
  //#endregion
614
566
  //#region src/utility/fileSystem/findTgzFile.ts
615
567
  async function findTgzFile(packagePath, packageManager) {
@@ -631,7 +583,6 @@ async function findTgzFile(packagePath, packageManager) {
631
583
  }, "AMBIGUOUS_RESOLUTION", "There are too many .tgz files with the expected file name.");
632
584
  return expectedTgzFileName;
633
585
  }
634
-
635
586
  //#endregion
636
587
  //#region src/utility/miscellaneous/removeAllTarballs.ts
637
588
  async function removeAllTarballs(packagePath, packageName) {
@@ -643,7 +594,6 @@ async function removeAllTarballs(packagePath, packageName) {
643
594
  return (0, node_fs_promises.rm)(node_path.default.join(packagePath, file), { force: true });
644
595
  }));
645
596
  }
646
-
647
597
  //#endregion
648
598
  //#region src/cli/commands/local-package/use.ts
649
599
  function localPackageUse(program) {
@@ -747,13 +697,11 @@ function localPackageUse(program) {
747
697
  }
748
698
  });
749
699
  }
750
-
751
700
  //#endregion
752
701
  //#region src/cli/commands/local-package/index.ts
753
702
  function localPackage(program) {
754
703
  loadCommands(program.command("local-package").description("Manage the use of local packages in your JavaScript project."), { localPackageUse });
755
704
  }
756
-
757
705
  //#endregion
758
706
  //#region src/cli/commands/root/encrypt-with-key.ts
759
707
  function encryptWithKey(program) {
@@ -768,16 +716,15 @@ function encryptWithKey(program) {
768
716
  }
769
717
  });
770
718
  }
771
-
772
719
  //#endregion
773
720
  //#region src/cli/commands/root/pre-commit/createStepRunner.ts
774
721
  const runCommandAndLogToConsole = (0, execa.execa)({
775
722
  stdio: "inherit",
776
723
  reject: false
777
724
  });
778
- async function evaluateResult(program, promisedResult, failedCommand) {
725
+ async function evaluateResult(program, promisedResult, failedCommand, boundOptions) {
779
726
  const result = await promisedResult;
780
- if (result.exitCode !== 0) program.error(`Command failed: ${failedCommand}`, {
727
+ if (result.exitCode !== 0 && (boundOptions.reject ?? true)) program.error(`Command failed: ${failedCommand}`, {
781
728
  exitCode: result.exitCode ?? 1,
782
729
  code: "PRE_COMMIT_FAILED"
783
730
  });
@@ -788,11 +735,11 @@ function bindStepRunner(program, boundOptions) {
788
735
  if (typeof first === "string") {
789
736
  const command = first;
790
737
  const args = second[0] ?? [];
791
- return evaluateResult(program, runCommandAndLogToConsole(boundOptions)(command, args), `${command}${args.length ? ` ${args.join(" ")}` : ""}`);
738
+ return evaluateResult(program, runCommandAndLogToConsole(boundOptions)(command, args), `${command}${args.length ? ` ${args.join(" ")}` : ""}`, boundOptions);
792
739
  }
793
740
  if ((0, _alextheman_utility.isTemplateStringsArray)(first)) {
794
741
  const args = (0, _alextheman_utility.getStringsAndInterpolations)(first, ...second);
795
- return evaluateResult(program, runCommandAndLogToConsole(boundOptions)(...args), (0, _alextheman_utility.interpolate)(...args));
742
+ return evaluateResult(program, runCommandAndLogToConsole(boundOptions)(...args), (0, _alextheman_utility.interpolate)(...args), boundOptions);
796
743
  }
797
744
  return bindStepRunner(program, {
798
745
  ...boundOptions,
@@ -804,7 +751,6 @@ function bindStepRunner(program, boundOptions) {
804
751
  function createStepRunner(program) {
805
752
  return bindStepRunner(program, {});
806
753
  }
807
-
808
754
  //#endregion
809
755
  //#region src/cli/commands/root/pre-commit/getCommandArguments.ts
810
756
  function getCommandArguments(program, script, scripts, args) {
@@ -816,7 +762,6 @@ function getCommandArguments(program, script, scripts, args) {
816
762
  if (args) result.push(...args);
817
763
  return result;
818
764
  }
819
-
820
765
  //#endregion
821
766
  //#region src/utility/configs/loadAlexCLineConfig.ts
822
767
  const require$1 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
@@ -828,7 +773,6 @@ async function loadAlexCLineConfig(filePath) {
828
773
  const module = await import((0, node_url.pathToFileURL)(filePath).href);
829
774
  return await parseAlexCLineConfig(module.default ?? module);
830
775
  }
831
-
832
776
  //#endregion
833
777
  //#region src/cli/commands/root/pre-commit/pre-commit.ts
834
778
  function preCommit(program) {
@@ -865,7 +809,6 @@ function preCommit(program) {
865
809
  if (updateIndex) await stepRunner`git update-index --again`;
866
810
  });
867
811
  }
868
-
869
812
  //#endregion
870
813
  //#region src/cli/commands/root/say-hello.ts
871
814
  function sayHello(program) {
@@ -873,7 +816,6 @@ function sayHello(program) {
873
816
  console.info("Hello!");
874
817
  });
875
818
  }
876
-
877
819
  //#endregion
878
820
  //#region src/cli/commands/root/index.ts
879
821
  function root(program) {
@@ -883,7 +825,6 @@ function root(program) {
883
825
  sayHello
884
826
  });
885
827
  }
886
-
887
828
  //#endregion
888
829
  //#region src/utility/markdownTemplates/pullRequest/getPullRequestTemplatesFromMarkdown.ts
889
830
  const __filename$2 = (0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href);
@@ -921,7 +862,6 @@ async function getPullRequestTemplatesFromMarkdown(config) {
921
862
  }
922
863
  return allTemplates;
923
864
  }
924
-
925
865
  //#endregion
926
866
  //#region src/cli/commands/template/pullRequest/create.ts
927
867
  function templatePullRequestCreate(program) {
@@ -954,17 +894,14 @@ function templatePullRequestCreate(program) {
954
894
  console.info("Pull request templates created.");
955
895
  });
956
896
  }
957
-
958
897
  //#endregion
959
898
  //#region src/cli/commands/template/pullRequest/index.ts
960
899
  function templatePullRequest(program) {
961
900
  loadCommands(program.command("pull-request").description("Manage the pull request templates."), { templatePullRequestCreate });
962
901
  }
963
-
964
902
  //#endregion
965
903
  //#region src/utility/constants/successPrefix.ts
966
904
  const successPrefix = chalk.default.green("✓");
967
-
968
905
  //#endregion
969
906
  //#region src/utility/errors/convertDataErrorToProgramError.ts
970
907
  function convertDataErrorToProgramError(dataError, program, options) {
@@ -973,14 +910,12 @@ function convertDataErrorToProgramError(dataError, program, options) {
973
910
  code: dataError.code
974
911
  });
975
912
  }
976
-
977
913
  //#endregion
978
914
  //#region src/utility/markdownTemplates/releaseNote/types/ReleaseStatus.ts
979
915
  const ReleaseStatus = {
980
916
  IN_PROGRESS: "In progress",
981
917
  RELEASED: "Released"
982
918
  };
983
-
984
919
  //#endregion
985
920
  //#region src/utility/markdownTemplates/releaseNote/parseReleaseStatus.ts
986
921
  function parseReleaseStatus(data) {
@@ -988,20 +923,17 @@ function parseReleaseStatus(data) {
988
923
  if (!Object.keys(ReleaseStatus).includes(normalisedStringifiedData)) new _alextheman_utility.DataError({ data }, "INVALID_RELEASE_STATUS", "Invalid release status. The release status must be one of \"In progress\" or \"Released\"");
989
924
  return ReleaseStatus[normalisedStringifiedData];
990
925
  }
991
-
992
926
  //#endregion
993
927
  //#region src/utility/markdownTemplates/createMarkdownComment.ts
994
928
  function createMarkdownComment(comment) {
995
929
  if (comment.startsWith("<!--") && comment.endsWith("-->")) return comment;
996
930
  return `<!-- ${comment} -->`;
997
931
  }
998
-
999
932
  //#endregion
1000
933
  //#region src/utility/markdownTemplates/createMarkdownCommentPair.ts
1001
934
  function createMarkdownCommentPair(comment) {
1002
935
  return [createMarkdownComment(`${comment}-start`), createMarkdownComment(`${comment}-end`)];
1003
936
  }
1004
-
1005
937
  //#endregion
1006
938
  //#region src/utility/markdownTemplates/getMarkdownBlock.ts
1007
939
  function getMarkdownBlock(content, startMarker, endMarker) {
@@ -1010,7 +942,6 @@ function getMarkdownBlock(content, startMarker, endMarker) {
1010
942
  if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) return null;
1011
943
  return content.slice(startIndex + startMarker.length, endIndex).trim();
1012
944
  }
1013
-
1014
945
  //#endregion
1015
946
  //#region src/utility/markdownTemplates/normaliseMarkdown.ts
1016
947
  function normaliseMarkdown(markdownString) {
@@ -1018,7 +949,6 @@ function normaliseMarkdown(markdownString) {
1018
949
  return line.trim();
1019
950
  }).filter(Boolean).join(" ").trim();
1020
951
  }
1021
-
1022
952
  //#endregion
1023
953
  //#region src/utility/markdownTemplates/releaseNote/getReleaseStatus.ts
1024
954
  function getReleaseStatus(content) {
@@ -1026,7 +956,6 @@ function getReleaseStatus(content) {
1026
956
  if (releaseStatus === null) throw new _alextheman_utility.DataError({ releaseStatus }, "RELEASE_STATUS_NOT_FOUND", "Could not find release status in document.");
1027
957
  return (0, _alextheman_utility.parseZodSchema)(zod.default.enum(ReleaseStatus), normaliseMarkdown(releaseStatus.split(":")[1]));
1028
958
  }
1029
-
1030
959
  //#endregion
1031
960
  //#region src/utility/markdownTemplates/releaseNote/validateReleaseDocument.ts
1032
961
  const __filename$1 = (0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href);
@@ -1064,7 +993,6 @@ async function validateReleaseDocument(projectName, version, content, allowedRel
1064
993
  if (!content.includes("## Description of Changes")) throw new _alextheman_utility.DataError({ content }, "DESCRIPTION_NOT_FOUND", "Expected to find a description of changes but it was not found.");
1065
994
  if (version.type === "major" && !content.includes("## Migration Notes")) throw new _alextheman_utility.DataError({ content }, "MIGRATION_NOTES_NOT_FOUND", "Major version notes must have migration notes as major versions are expected to be breaking changes that require users to migrate and refactor their code.");
1066
995
  }
1067
-
1068
996
  //#endregion
1069
997
  //#region src/cli/commands/template/releaseNote/check.ts
1070
998
  function templateReleaseNoteCheck(program) {
@@ -1085,26 +1013,22 @@ function templateReleaseNoteCheck(program) {
1085
1013
  }
1086
1014
  });
1087
1015
  }
1088
-
1089
1016
  //#endregion
1090
1017
  //#region src/utility/markdownTemplates/releaseNote/getReleaseNotePath.ts
1091
1018
  function getReleaseNotePath(versionNumber) {
1092
1019
  return node_path.default.join("docs", "releases", versionNumber.format({ omitMinor: true }), versionNumber.format({ omitPatch: true }), `${versionNumber}.md`);
1093
1020
  }
1094
-
1095
1021
  //#endregion
1096
1022
  //#region src/utility/markdownTemplates/getReleaseNoteTemplatesPath.ts
1097
1023
  async function getReleaseNoteTemplatesPath() {
1098
1024
  return node_path.default.join(await ALEX_C_LINE_PACKAGE_ROOT, "templates", "releases");
1099
1025
  }
1100
-
1101
1026
  //#endregion
1102
1027
  //#region src/utility/markdownTemplates/getEditableSectionFromTemplate.ts
1103
1028
  async function getEditableSectionFromTemplate(version) {
1104
1029
  const templatesPath = await getReleaseNoteTemplatesPath();
1105
1030
  return await (0, node_fs_promises.readFile)(node_path.default.join(templatesPath, version.type === "major" ? "editableSectionMajor.md" : "editableSection.md"), "utf-8");
1106
1031
  }
1107
-
1108
1032
  //#endregion
1109
1033
  //#region src/utility/markdownTemplates/replaceMarkdownPlaceholders.ts
1110
1034
  function replaceMarkdownPlaceholders(rawContent, templateVariables) {
@@ -1117,7 +1041,6 @@ function replaceMarkdownPlaceholders(rawContent, templateVariables) {
1117
1041
  }
1118
1042
  return finalContent;
1119
1043
  }
1120
-
1121
1044
  //#endregion
1122
1045
  //#region src/utility/markdownTemplates/releaseNote/getReleaseNoteTemplateFromMarkdown.ts
1123
1046
  async function getTemplateVariables(projectName, version, templateVariables) {
@@ -1148,7 +1071,6 @@ async function getReleaseNoteTemplateFromMarkdown(projectName, version, metadata
1148
1071
  const templatesPath = node_path.default.join(await ALEX_C_LINE_PACKAGE_ROOT, "templates", "releases");
1149
1072
  return replaceMarkdownPlaceholders(await (0, node_fs_promises.readFile)(node_path.default.join(templatesPath, `${version.type}.md`), "utf-8"), templateVariables);
1150
1073
  }
1151
-
1152
1074
  //#endregion
1153
1075
  //#region src/cli/commands/template/releaseNote/create.ts
1154
1076
  function templateReleaseNoteCreate(program) {
@@ -1185,7 +1107,6 @@ function templateReleaseNoteCreate(program) {
1185
1107
  console.info(`Release notes for ${versionNumber} have been created in ${node_path.default.relative(process.cwd(), releaseNotePath)}`);
1186
1108
  });
1187
1109
  }
1188
-
1189
1110
  //#endregion
1190
1111
  //#region src/cli/commands/template/releaseNote/migrate.ts
1191
1112
  function templateReleaseNoteMigrate(program) {
@@ -1241,7 +1162,6 @@ function templateReleaseNoteMigrate(program) {
1241
1162
  console.info(dryRun ? `Dry run complete! ${filesMovedCount} files would be moved.` : `Migration complete! ${filesMovedCount} files moved.`);
1242
1163
  });
1243
1164
  }
1244
-
1245
1165
  //#endregion
1246
1166
  //#region src/cli/commands/template/releaseNote/path.ts
1247
1167
  function templateReleaseNotePath(program) {
@@ -1256,7 +1176,6 @@ function templateReleaseNotePath(program) {
1256
1176
  console.info(getReleaseNotePath(version));
1257
1177
  });
1258
1178
  }
1259
-
1260
1179
  //#endregion
1261
1180
  //#region src/cli/commands/template/releaseNote/set-status.ts
1262
1181
  function templateReleaseNoteSetStatus(program) {
@@ -1283,7 +1202,6 @@ function templateReleaseNoteSetStatus(program) {
1283
1202
  console.info(`Setting the status of ${documentPath} to "${status}"`);
1284
1203
  });
1285
1204
  }
1286
-
1287
1205
  //#endregion
1288
1206
  //#region src/cli/commands/template/releaseNote/index.ts
1289
1207
  function templateReleaseNote(program) {
@@ -1295,7 +1213,6 @@ function templateReleaseNote(program) {
1295
1213
  templateReleaseNoteSetStatus
1296
1214
  });
1297
1215
  }
1298
-
1299
1216
  //#endregion
1300
1217
  //#region src/cli/commands/template/index.ts
1301
1218
  function template(program) {
@@ -1304,13 +1221,11 @@ function template(program) {
1304
1221
  templateReleaseNote
1305
1222
  });
1306
1223
  }
1307
-
1308
1224
  //#endregion
1309
1225
  //#region package.json
1310
1226
  var name = "alex-c-line";
1311
- var version$1 = "2.0.1";
1227
+ var version$1 = "2.0.2";
1312
1228
  var description = "Command-line tool with commands to streamline the developer workflow.";
1313
-
1314
1229
  //#endregion
1315
1230
  //#region src/utility/updates/checkUpdate.ts
1316
1231
  async function checkUpdate(options) {
@@ -1342,7 +1257,6 @@ async function checkUpdate(options) {
1342
1257
  } else console.info(messageWithArtwork);
1343
1258
  } else if (options?.logNoUpdates) console.info(`alex-c-line is up to date (${currentVersion}).`);
1344
1259
  }
1345
-
1346
1260
  //#endregion
1347
1261
  //#region src/cli/commands/update/check.ts
1348
1262
  function checkUpdateCommand(program) {
@@ -1353,13 +1267,11 @@ function checkUpdateCommand(program) {
1353
1267
  });
1354
1268
  });
1355
1269
  }
1356
-
1357
1270
  //#endregion
1358
1271
  //#region src/cli/commands/update/index.ts
1359
1272
  function update(program) {
1360
1273
  loadCommands(program.command("update").description("Handle updates of the currently installed alex-c-line"), { checkUpdateCommand });
1361
1274
  }
1362
-
1363
1275
  //#endregion
1364
1276
  //#region src/cli/commands/uuid/generate.ts
1365
1277
  function generateUUID(program) {
@@ -1367,13 +1279,11 @@ function generateUUID(program) {
1367
1279
  console.info((0, node_crypto.randomUUID)());
1368
1280
  });
1369
1281
  }
1370
-
1371
1282
  //#endregion
1372
1283
  //#region src/cli/commands/uuid/index.ts
1373
1284
  function uuid(program) {
1374
1285
  loadCommands(program.command("uuid").description("Commands to help manage UUIDs"), { generateUUID });
1375
1286
  }
1376
-
1377
1287
  //#endregion
1378
1288
  //#region src/utility/miscellaneous/parseZodSchemaForProgram.ts
1379
1289
  function parseZodSchemaForProgram(program, schema, data) {
@@ -1384,7 +1294,6 @@ function parseZodSchemaForProgram(program, schema, data) {
1384
1294
  throw error;
1385
1295
  }
1386
1296
  }
1387
-
1388
1297
  //#endregion
1389
1298
  //#region src/cli/commands/version/format.ts
1390
1299
  const versionFormatOptionsBaseSchema = zod.default.object({ prefix: zod.default.boolean().optional() });
@@ -1409,7 +1318,6 @@ function versionFormat(program) {
1409
1318
  }));
1410
1319
  });
1411
1320
  }
1412
-
1413
1321
  //#endregion
1414
1322
  //#region src/cli/commands/version/increment.ts
1415
1323
  function versionIncrement(program) {
@@ -1425,7 +1333,6 @@ function versionIncrement(program) {
1425
1333
  console.info(version.increment(incrementType).format({ omitPrefix: !prefix }));
1426
1334
  });
1427
1335
  }
1428
-
1429
1336
  //#endregion
1430
1337
  //#region src/cli/commands/version/type.ts
1431
1338
  function versionType(program) {
@@ -1435,7 +1342,6 @@ function versionType(program) {
1435
1342
  console.info(version.type);
1436
1343
  });
1437
1344
  }
1438
-
1439
1345
  //#endregion
1440
1346
  //#region src/cli/commands/version/index.ts
1441
1347
  function version(program) {
@@ -1445,7 +1351,6 @@ function version(program) {
1445
1351
  versionType
1446
1352
  });
1447
1353
  }
1448
-
1449
1354
  //#endregion
1450
1355
  //#region src/cli/commands/package-json/check/noFileDependencies.ts
1451
1356
  function findFileDependencies(dependencies) {
@@ -1472,7 +1377,6 @@ async function noFileDependencies(program) {
1472
1377
  });
1473
1378
  console.info(`${successPrefix} No file dependencies found!`);
1474
1379
  }
1475
-
1476
1380
  //#endregion
1477
1381
  //#region src/cli/commands/package-json/check/noPreReleaseDependencies.ts
1478
1382
  function isPreRelease(dependencyVersionRange) {
@@ -1500,7 +1404,6 @@ async function noPreReleaseDependencies(program) {
1500
1404
  });
1501
1405
  console.info(`${successPrefix} No pre-release versions found!`);
1502
1406
  }
1503
-
1504
1407
  //#endregion
1505
1408
  //#region src/cli/commands/package-json/check/index.ts
1506
1409
  const RuleName = {
@@ -1517,13 +1420,11 @@ function packageJsonCheck(program) {
1517
1420
  console.info(`${successPrefix} Success! All checks passed!`);
1518
1421
  });
1519
1422
  }
1520
-
1521
1423
  //#endregion
1522
1424
  //#region src/cli/commands/package-json/index.ts
1523
1425
  function packageJson(program) {
1524
1426
  loadCommands(program.command("package-json").description("Manage the package.json file"), { packageJsonCheck });
1525
1427
  }
1526
-
1527
1428
  //#endregion
1528
1429
  //#region src/cli/commands/index.ts
1529
1430
  function createCommands(program) {
@@ -1541,7 +1442,6 @@ function createCommands(program) {
1541
1442
  version
1542
1443
  });
1543
1444
  }
1544
-
1545
1445
  //#endregion
1546
1446
  //#region src/utility/errors/formatError.ts
1547
1447
  function formatError(error) {
@@ -1564,24 +1464,20 @@ function formatError(error) {
1564
1464
  }
1565
1465
  throw error;
1566
1466
  }
1567
-
1568
1467
  //#endregion
1569
1468
  //#region src/cache/global/createAlexCLineGlobalCache.ts
1570
1469
  async function createAlexCLineGlobalCache(cacheData) {
1571
1470
  await (0, node_fs_promises.mkdir)(ALEX_C_LINE_GLOBAL_CACHE_DIRECTORY, { recursive: true });
1572
1471
  await (0, node_fs_promises.writeFile)(ALEX_C_LINE_GLOBAL_CACHE_PATH, `${JSON.stringify(cacheData, null, 2)}\n`);
1573
1472
  }
1574
-
1575
1473
  //#endregion
1576
1474
  //#region src/cache/global/types/AlexCLineGlobalCache.ts
1577
1475
  const alexCLineGlobalCacheSchema = zod.default.looseObject({ updateChecks: zod.default.record(zod.default.string(), zod.default.string()).optional() });
1578
-
1579
1476
  //#endregion
1580
1477
  //#region src/cache/global/parseAlexCLineGlobalCache.ts
1581
1478
  function parseAlexCLineGlobalCache(input) {
1582
1479
  return (0, _alextheman_utility.parseZodSchema)(alexCLineGlobalCacheSchema, input);
1583
1480
  }
1584
-
1585
1481
  //#endregion
1586
1482
  //#region src/cache/global/loadAlexCLineGlobalCache.ts
1587
1483
  async function loadAlexCLineGlobalCache() {
@@ -1592,7 +1488,6 @@ async function loadAlexCLineGlobalCache() {
1592
1488
  throw error;
1593
1489
  }
1594
1490
  }
1595
-
1596
1491
  //#endregion
1597
1492
  //#region src/utility/updates/runAutomatedUpdateCheck.ts
1598
1493
  async function runAutomatedUpdateCheck() {
@@ -1612,7 +1507,6 @@ async function runAutomatedUpdateCheck() {
1612
1507
  }
1613
1508
  } catch {}
1614
1509
  }
1615
-
1616
1510
  //#endregion
1617
1511
  //#region src/cli/index.ts
1618
1512
  (async () => {
@@ -1626,5 +1520,4 @@ async function runAutomatedUpdateCheck() {
1626
1520
  formatError(error);
1627
1521
  }
1628
1522
  })();
1629
-
1630
- //#endregion
1523
+ //#endregion