@xylabs/ts-scripts-yarn3 7.4.18 → 7.4.19

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 (187) hide show
  1. package/README.body.md +86 -0
  2. package/README.md +108 -0
  3. package/dist/actions/claude-commands.mjs +1 -1
  4. package/dist/actions/claude-commands.mjs.map +1 -1
  5. package/dist/actions/claude-rules.mjs +1 -1
  6. package/dist/actions/claude-rules.mjs.map +1 -1
  7. package/dist/actions/compile.mjs.map +1 -1
  8. package/dist/actions/cycle.mjs.map +1 -1
  9. package/dist/actions/dead.mjs.map +1 -1
  10. package/dist/actions/deploy-major.mjs.map +1 -1
  11. package/dist/actions/deploy-minor.mjs.map +1 -1
  12. package/dist/actions/deploy-next.mjs.map +1 -1
  13. package/dist/actions/deploy.mjs.map +1 -1
  14. package/dist/actions/fix.mjs.map +1 -1
  15. package/dist/actions/gen-docs.mjs.map +1 -1
  16. package/dist/actions/index.mjs +146 -41
  17. package/dist/actions/index.mjs.map +1 -1
  18. package/dist/actions/knip.mjs.map +1 -1
  19. package/dist/actions/lint.mjs.map +1 -1
  20. package/dist/actions/publint.mjs.map +1 -1
  21. package/dist/actions/publish.mjs.map +1 -1
  22. package/dist/actions/readme-gen.mjs +136 -20
  23. package/dist/actions/readme-gen.mjs.map +1 -1
  24. package/dist/actions/readme-init.mjs +83 -0
  25. package/dist/actions/readme-init.mjs.map +1 -0
  26. package/dist/actions/rebuild.mjs.map +1 -1
  27. package/dist/actions/reinstall.mjs.map +1 -1
  28. package/dist/actions/relint.mjs.map +1 -1
  29. package/dist/actions/retest.mjs +2 -2
  30. package/dist/actions/retest.mjs.map +1 -1
  31. package/dist/actions/sonar.mjs.map +1 -1
  32. package/dist/actions/test.mjs.map +1 -1
  33. package/dist/actions/up.mjs.map +1 -1
  34. package/dist/actions/updo.mjs.map +1 -1
  35. package/dist/actions/upplug.mjs.map +1 -1
  36. package/dist/actions/upyarn.mjs.map +1 -1
  37. package/dist/bin/xy.mjs +817 -576
  38. package/dist/bin/xy.mjs.map +1 -1
  39. package/dist/index.d.ts +42 -13
  40. package/dist/index.mjs +820 -573
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/lib/claudeMdTemplate.mjs +1 -1
  43. package/dist/lib/claudeMdTemplate.mjs.map +1 -1
  44. package/dist/lib/generateReadmeFiles.mjs +118 -21
  45. package/dist/lib/generateReadmeFiles.mjs.map +1 -1
  46. package/dist/lib/index.mjs +120 -23
  47. package/dist/lib/index.mjs.map +1 -1
  48. package/dist/lib/runSteps.mjs.map +1 -1
  49. package/dist/lib/runXy.mjs.map +1 -1
  50. package/dist/xy/build/buildCommand.mjs +161 -0
  51. package/dist/xy/build/buildCommand.mjs.map +1 -0
  52. package/dist/xy/build/compileCommand.mjs +174 -0
  53. package/dist/xy/build/compileCommand.mjs.map +1 -0
  54. package/dist/xy/build/compileOnlyCommand.mjs +175 -0
  55. package/dist/xy/build/compileOnlyCommand.mjs.map +1 -0
  56. package/dist/xy/build/copyAssetsCommand.mjs +84 -0
  57. package/dist/xy/build/copyAssetsCommand.mjs.map +1 -0
  58. package/dist/xy/{xyBuildCommands.mjs → build/index.mjs} +111 -93
  59. package/dist/xy/build/index.mjs.map +1 -0
  60. package/dist/xy/build/rebuildCommand.mjs +114 -0
  61. package/dist/xy/build/rebuildCommand.mjs.map +1 -0
  62. package/dist/xy/build/recompileCommand.mjs +204 -0
  63. package/dist/xy/build/recompileCommand.mjs.map +1 -0
  64. package/dist/xy/common/claude/commandsCommand.mjs +107 -0
  65. package/dist/xy/common/claude/commandsCommand.mjs.map +1 -0
  66. package/dist/xy/common/claude/index.mjs +332 -0
  67. package/dist/xy/common/claude/index.mjs.map +1 -0
  68. package/dist/xy/common/claude/initCommand.mjs +283 -0
  69. package/dist/xy/common/claude/initCommand.mjs.map +1 -0
  70. package/dist/xy/common/claude/rulesCommand.mjs +129 -0
  71. package/dist/xy/common/claude/rulesCommand.mjs.map +1 -0
  72. package/dist/xy/common/claude/settingsCommand.mjs +90 -0
  73. package/dist/xy/common/claude/settingsCommand.mjs.map +1 -0
  74. package/dist/xy/common/cleanDocsCommand.mjs +45 -0
  75. package/dist/xy/common/cleanDocsCommand.mjs.map +1 -0
  76. package/dist/xy/common/deadCommand.mjs +116 -0
  77. package/dist/xy/common/deadCommand.mjs.map +1 -0
  78. package/dist/xy/common/genDocsCommand.mjs +125 -0
  79. package/dist/xy/common/genDocsCommand.mjs.map +1 -0
  80. package/dist/xy/common/gitignoreGenCommand.mjs +98 -0
  81. package/dist/xy/common/gitignoreGenCommand.mjs.map +1 -0
  82. package/dist/xy/common/gitlintCommand.mjs +82 -0
  83. package/dist/xy/common/gitlintCommand.mjs.map +1 -0
  84. package/dist/xy/{xyCommonCommands.mjs → common/index.mjs} +451 -241
  85. package/dist/xy/common/index.mjs.map +1 -0
  86. package/dist/xy/common/licenseCommand.mjs +100 -0
  87. package/dist/xy/common/licenseCommand.mjs.map +1 -0
  88. package/dist/xy/common/npmignoreGenCommand.mjs +98 -0
  89. package/dist/xy/common/npmignoreGenCommand.mjs.map +1 -0
  90. package/dist/xy/common/readme/genCommand.mjs +321 -0
  91. package/dist/xy/common/readme/genCommand.mjs.map +1 -0
  92. package/dist/xy/common/readme/index.mjs +361 -0
  93. package/dist/xy/common/readme/index.mjs.map +1 -0
  94. package/dist/xy/common/readme/initCommand.mjs +103 -0
  95. package/dist/xy/common/readme/initCommand.mjs.map +1 -0
  96. package/dist/xy/common/retestCommand.mjs +111 -0
  97. package/dist/xy/common/retestCommand.mjs.map +1 -0
  98. package/dist/xy/common/testCommand.mjs +108 -0
  99. package/dist/xy/common/testCommand.mjs.map +1 -0
  100. package/dist/xy/common/upplugCommand.mjs +113 -0
  101. package/dist/xy/common/upplugCommand.mjs.map +1 -0
  102. package/dist/xy/common/upyarnCommand.mjs +108 -0
  103. package/dist/xy/common/upyarnCommand.mjs.map +1 -0
  104. package/dist/xy/common/yarn3OnlyCommand.mjs +70 -0
  105. package/dist/xy/common/yarn3OnlyCommand.mjs.map +1 -0
  106. package/dist/xy/deploy/deployCommand.mjs +139 -0
  107. package/dist/xy/deploy/deployCommand.mjs.map +1 -0
  108. package/dist/xy/deploy/deployMajorCommand.mjs +139 -0
  109. package/dist/xy/deploy/deployMajorCommand.mjs.map +1 -0
  110. package/dist/xy/deploy/deployMinorCommand.mjs +139 -0
  111. package/dist/xy/deploy/deployMinorCommand.mjs.map +1 -0
  112. package/dist/xy/deploy/deployNextCommand.mjs +139 -0
  113. package/dist/xy/deploy/deployNextCommand.mjs.map +1 -0
  114. package/dist/xy/{xyDeployCommands.mjs → deploy/index.mjs} +53 -53
  115. package/dist/xy/deploy/index.mjs.map +1 -0
  116. package/dist/xy/deploy/publishCommand.mjs +108 -0
  117. package/dist/xy/deploy/publishCommand.mjs.map +1 -0
  118. package/dist/xy/index.mjs +817 -576
  119. package/dist/xy/index.mjs.map +1 -1
  120. package/dist/xy/install/cleanCommand.mjs +140 -0
  121. package/dist/xy/install/cleanCommand.mjs.map +1 -0
  122. package/dist/xy/install/dupdepsCommand.mjs +191 -0
  123. package/dist/xy/install/dupdepsCommand.mjs.map +1 -0
  124. package/dist/xy/{xyInstallCommands.mjs → install/index.mjs} +71 -68
  125. package/dist/xy/install/index.mjs.map +1 -0
  126. package/dist/xy/install/reinstallCommand.mjs +140 -0
  127. package/dist/xy/install/reinstallCommand.mjs.map +1 -0
  128. package/dist/xy/install/staticsCommand.mjs +191 -0
  129. package/dist/xy/install/staticsCommand.mjs.map +1 -0
  130. package/dist/{actions/clean-jest.mjs → xy/install/upCommand.mjs} +15 -6
  131. package/dist/xy/install/upCommand.mjs.map +1 -0
  132. package/dist/xy/install/updoCommand.mjs +112 -0
  133. package/dist/xy/install/updoCommand.mjs.map +1 -0
  134. package/dist/xy/lint/cycleCommand.mjs +163 -0
  135. package/dist/xy/lint/cycleCommand.mjs.map +1 -0
  136. package/dist/xy/lint/deplintCommand.mjs +814 -0
  137. package/dist/xy/lint/deplintCommand.mjs.map +1 -0
  138. package/dist/xy/lint/fixCommand.mjs +168 -0
  139. package/dist/xy/lint/fixCommand.mjs.map +1 -0
  140. package/dist/xy/{xyLintCommands.mjs → lint/index.mjs} +176 -145
  141. package/dist/xy/lint/index.mjs.map +1 -0
  142. package/dist/xy/lint/knipCommand.mjs +121 -0
  143. package/dist/xy/lint/knipCommand.mjs.map +1 -0
  144. package/dist/xy/lint/lintCommand.mjs +186 -0
  145. package/dist/xy/lint/lintCommand.mjs.map +1 -0
  146. package/dist/xy/lint/publintCommand.mjs +187 -0
  147. package/dist/xy/lint/publintCommand.mjs.map +1 -0
  148. package/dist/xy/lint/relintCommand.mjs +163 -0
  149. package/dist/xy/lint/relintCommand.mjs.map +1 -0
  150. package/dist/xy/lint/sonarCommand.mjs +121 -0
  151. package/dist/xy/lint/sonarCommand.mjs.map +1 -0
  152. package/dist/xy/xy.mjs +815 -574
  153. package/dist/xy/xy.mjs.map +1 -1
  154. package/package.json +2 -2
  155. package/templates/readme/README.body.md +11 -0
  156. package/templates/readme/README.template.md +22 -0
  157. package/dist/actions/clean-jest.mjs.map +0 -1
  158. package/dist/xy/xyBuildCommands.mjs.map +0 -1
  159. package/dist/xy/xyCommonCommands.mjs.map +0 -1
  160. package/dist/xy/xyDeployCommands.mjs.map +0 -1
  161. package/dist/xy/xyInstallCommands.mjs.map +0 -1
  162. package/dist/xy/xyLintCommands.mjs.map +0 -1
  163. /package/templates/{CLAUDE-project.md → claude/CLAUDE-project.md} +0 -0
  164. /package/templates/{commands → claude/commands}/xylabs-build.md +0 -0
  165. /package/templates/{commands → claude/commands}/xylabs-clean.md +0 -0
  166. /package/templates/{commands → claude/commands}/xylabs-compile.md +0 -0
  167. /package/templates/{commands → claude/commands}/xylabs-cycle.md +0 -0
  168. /package/templates/{commands → claude/commands}/xylabs-deplint.md +0 -0
  169. /package/templates/{commands → claude/commands}/xylabs-deploy-major.md +0 -0
  170. /package/templates/{commands → claude/commands}/xylabs-deploy-minor.md +0 -0
  171. /package/templates/{commands → claude/commands}/xylabs-deploy.md +0 -0
  172. /package/templates/{commands → claude/commands}/xylabs-fix.md +0 -0
  173. /package/templates/{commands → claude/commands}/xylabs-knip.md +0 -0
  174. /package/templates/{commands → claude/commands}/xylabs-lint.md +0 -0
  175. /package/templates/{commands → claude/commands}/xylabs-publint.md +0 -0
  176. /package/templates/{commands → claude/commands}/xylabs-rebuild.md +0 -0
  177. /package/templates/{commands → claude/commands}/xylabs-test.md +0 -0
  178. /package/templates/{rules → claude/rules}/xylabs-architecture.md +0 -0
  179. /package/templates/{rules → claude/rules}/xylabs-build.md +0 -0
  180. /package/templates/{rules → claude/rules}/xylabs-dependencies.md +0 -0
  181. /package/templates/{rules → claude/rules}/xylabs-error-handling.md +0 -0
  182. /package/templates/{rules → claude/rules}/xylabs-frameworks.md +0 -0
  183. /package/templates/{rules → claude/rules}/xylabs-git-workflow.md +0 -0
  184. /package/templates/{rules → claude/rules}/xylabs-linting.md +0 -0
  185. /package/templates/{rules → claude/rules}/xylabs-naming.md +0 -0
  186. /package/templates/{rules → claude/rules}/xylabs-style.md +0 -0
  187. /package/templates/{rules → claude/rules}/xylabs-typescript.md +0 -0
package/dist/xy/xy.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/xy/xy.ts
2
- import chalk31 from "chalk";
2
+ import chalk38 from "chalk";
3
3
 
4
4
  // src/actions/build.ts
5
5
  import chalk9 from "chalk";
@@ -23,7 +23,7 @@ import { createRequire } from "module";
23
23
  import PATH from "path";
24
24
  var require2 = createRequire(import.meta.url);
25
25
  var packageRoot = PATH.dirname(require2.resolve("@xylabs/ts-scripts-yarn3/package.json"));
26
- var templatesDir = PATH.resolve(packageRoot, "templates");
26
+ var templatesDir = PATH.resolve(packageRoot, "templates", "claude");
27
27
  var XYLABS_RULES_PREFIX = "xylabs-";
28
28
  var XYLABS_COMMANDS_PREFIX = "xylabs-";
29
29
  var claudeMdRuleTemplates = () => {
@@ -326,10 +326,19 @@ var generateIgnoreFiles = (filename3, pkg) => {
326
326
 
327
327
  // src/lib/generateReadmeFiles.ts
328
328
  import { execSync as execSync2 } from "child_process";
329
- import FS from "fs";
330
- import { readFile, writeFile } from "fs/promises";
329
+ import FS, { readFileSync as readFileSync3 } from "fs";
330
+ import {
331
+ mkdir,
332
+ readFile,
333
+ writeFile
334
+ } from "fs/promises";
335
+ import { createRequire as createRequire2 } from "module";
331
336
  import PATH2 from "path";
337
+ import { createInterface } from "readline";
332
338
  import chalk5 from "chalk";
339
+ var require3 = createRequire2(import.meta.url);
340
+ var packageRoot2 = PATH2.dirname(require3.resolve("@xylabs/ts-scripts-yarn3/package.json"));
341
+ var readmeTemplatesDir = PATH2.resolve(packageRoot2, "templates", "readme");
333
342
  function fillTemplate(template, data) {
334
343
  const additionalData = { ...data, safeName: data.name.replaceAll("/", "__").replaceAll("@", "") };
335
344
  return template.replaceAll(/\{\{(.*?)\}\}/g, (_, key) => additionalData[key.trim()] ?? "");
@@ -419,37 +428,120 @@ ${indent}### ${item.name}
419
428
  }
420
429
  return content;
421
430
  }
431
+ function askConfirmation(question) {
432
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
433
+ return new Promise((resolve) => {
434
+ rl.question(question, (answer) => {
435
+ rl.close();
436
+ resolve(answer.toLowerCase() === "y" || answer.toLowerCase() === "yes");
437
+ });
438
+ });
439
+ }
440
+ var DEFAULT_README_TEMPLATE = readFileSync3(PATH2.resolve(readmeTemplatesDir, "README.template.md"), "utf8");
441
+ var DEFAULT_README_BODY = readFileSync3(PATH2.resolve(readmeTemplatesDir, "README.body.md"), "utf8");
442
+ function applyLogoConfig(template, logoUrl, logoLinkUrl) {
443
+ let result = template;
444
+ if (logoUrl) {
445
+ result = result.replace(/\[logo]: .+/, `[logo]: ${logoUrl}`);
446
+ if (logoLinkUrl) {
447
+ result = result.replace(/\[!\[logo]\[]][^)]*\)/, `[![logo][]](${logoLinkUrl})`);
448
+ }
449
+ } else {
450
+ result = result.replace(/\[!\[logo]\[]][^\n]*\n*/, "");
451
+ result = result.replace(/\[logo]: [^\n]*\n?/, "");
452
+ }
453
+ return result;
454
+ }
455
+ function resolveTemplatePath(templatePath) {
456
+ const cwd = INIT_CWD() ?? ".";
457
+ return templatePath ?? PATH2.join(cwd, ".xy", "README.template.md");
458
+ }
459
+ async function loadOrCreateTemplate(resolvedTemplatePath) {
460
+ try {
461
+ const template = await readFile(resolvedTemplatePath, "utf8");
462
+ return { created: false, template };
463
+ } catch {
464
+ console.log(chalk5.yellow(`Template not found: ${resolvedTemplatePath}`));
465
+ const shouldCreate = await askConfirmation("Would you like to create a stock template? (y/N) ");
466
+ if (!shouldCreate) {
467
+ throw new Error("Template creation declined");
468
+ }
469
+ const template = DEFAULT_README_TEMPLATE;
470
+ await scaffoldTemplate(resolvedTemplatePath, template);
471
+ return { created: true, template };
472
+ }
473
+ }
474
+ async function scaffoldTemplate(resolvedTemplatePath, template) {
475
+ const xyDir = PATH2.dirname(resolvedTemplatePath);
476
+ await mkdir(xyDir, { recursive: true });
477
+ await writeFile(resolvedTemplatePath, template);
478
+ console.log(chalk5.green(`Created template: ${resolvedTemplatePath}`));
479
+ const bodyPath = PATH2.join(xyDir, "README.body.md");
480
+ await writeFile(bodyPath, DEFAULT_README_BODY);
481
+ console.log(chalk5.green(`Created body template: ${bodyPath}`));
482
+ }
483
+ async function resolveBody(location, defaultBody) {
484
+ const localBodyPath = PATH2.join(location, "README.body.md");
485
+ try {
486
+ return await readFile(localBodyPath, "utf8");
487
+ } catch {
488
+ return defaultBody;
489
+ }
490
+ }
491
+ async function generateReadmeForWorkspace(location, name, template, defaultBody, typedoc, verbose) {
492
+ try {
493
+ const pkgJsonPath = PATH2.join(location, "package.json");
494
+ const pkgJson = JSON.parse(await readFile(pkgJsonPath, "utf8"));
495
+ const body = await resolveBody(location, defaultBody);
496
+ const typedocContent = typedoc ? generateTypedoc(location, ["src/index*.ts"]) : "";
497
+ const readmeContent = fillTemplate(template, {
498
+ ...pkgJson,
499
+ body,
500
+ typedoc: typedocContent
501
+ });
502
+ await writeFile(PATH2.join(location, "README.md"), readmeContent);
503
+ if (verbose) console.log(chalk5.green(` ${name}`));
504
+ return true;
505
+ } catch (ex) {
506
+ const error = ex;
507
+ console.warn(chalk5.yellow(` Skipped ${location}: ${error.message}`));
508
+ return false;
509
+ }
510
+ }
422
511
  async function generateReadmeFiles({
512
+ logoLinkUrl,
513
+ logoUrl,
423
514
  pkg,
424
515
  templatePath,
425
516
  typedoc = false,
426
- verbose
517
+ verbose = false
427
518
  }) {
428
519
  console.log(chalk5.green("Generate README Files"));
429
- const cwd = INIT_CWD() ?? ".";
430
- const resolvedTemplatePath = templatePath ?? PATH2.join(cwd, "scripts", "README.template.md");
520
+ const resolvedTemplatePath = resolveTemplatePath(templatePath);
431
521
  let template;
522
+ let templateCreated;
432
523
  try {
433
- template = await readFile(resolvedTemplatePath, "utf8");
524
+ ({ template, created: templateCreated } = await loadOrCreateTemplate(resolvedTemplatePath));
434
525
  } catch {
435
- console.error(chalk5.red(`Template not found: ${resolvedTemplatePath}`));
436
526
  return 1;
437
527
  }
438
- const workspaces = pkg ? [yarnWorkspace(pkg)] : yarnWorkspaces();
528
+ template = applyLogoConfig(template, logoUrl, logoLinkUrl);
529
+ if (templateCreated) {
530
+ console.log(chalk5.green("Generating README files for all packages..."));
531
+ }
532
+ const xyDir = PATH2.dirname(resolvedTemplatePath);
533
+ const xyBodyPath = PATH2.join(xyDir, "README.body.md");
534
+ let defaultBody;
535
+ try {
536
+ defaultBody = await readFile(xyBodyPath, "utf8");
537
+ } catch {
538
+ defaultBody = DEFAULT_README_BODY;
539
+ }
540
+ const workspaces = pkg && !templateCreated ? [yarnWorkspace(pkg)] : yarnWorkspaces();
439
541
  let failed = false;
440
542
  for (const { location, name } of workspaces) {
441
- try {
442
- const pkgJsonPath = PATH2.join(location, "package.json");
443
- const pkgJson = JSON.parse(await readFile(pkgJsonPath, "utf8"));
444
- const typedocContent = typedoc ? generateTypedoc(location, ["src/index*.ts"]) : "";
445
- const readmeContent = fillTemplate(template, { ...pkgJson, typedoc: typedocContent });
446
- await writeFile(PATH2.join(location, "README.md"), readmeContent);
447
- if (verbose) console.log(chalk5.green(` ${name}`));
448
- } catch (ex) {
449
- const error = ex;
450
- console.warn(chalk5.yellow(` Skipped ${location}: ${error.message}`));
451
- failed = true;
452
- }
543
+ const success = await generateReadmeForWorkspace(location, name, template, defaultBody, typedoc, verbose);
544
+ if (!success) failed = true;
453
545
  }
454
546
  return failed ? 1 : 0;
455
547
  }
@@ -476,10 +568,10 @@ var loadConfig = async (params) => {
476
568
  };
477
569
 
478
570
  // src/lib/parsedPackageJSON.ts
479
- import { readFileSync as readFileSync3 } from "fs";
571
+ import { readFileSync as readFileSync4 } from "fs";
480
572
  var parsedPackageJSON = (path8) => {
481
573
  const pathToPackageJSON = path8 ?? process.env.npm_package_json ?? "";
482
- const packageJSON = readFileSync3(pathToPackageJSON).toString();
574
+ const packageJSON = readFileSync4(pathToPackageJSON).toString();
483
575
  return JSON.parse(packageJSON);
484
576
  };
485
577
 
@@ -594,7 +686,7 @@ import {
594
686
  existsSync as existsSync4,
595
687
  mkdirSync,
596
688
  readdirSync as readdirSync2,
597
- readFileSync as readFileSync4,
689
+ readFileSync as readFileSync5,
598
690
  unlinkSync,
599
691
  writeFileSync as writeFileSync2
600
692
  } from "fs";
@@ -607,7 +699,7 @@ var syncCommandFiles = (commandsDir) => {
607
699
  let created = 0;
608
700
  for (const [filename3, content] of Object.entries(templates)) {
609
701
  const targetPath = PATH3.resolve(commandsDir, filename3);
610
- const existing = existsSync4(targetPath) ? readFileSync4(targetPath, "utf8") : void 0;
702
+ const existing = existsSync4(targetPath) ? readFileSync5(targetPath, "utf8") : void 0;
611
703
  if (existing === content) continue;
612
704
  writeFileSync2(targetPath, content, "utf8");
613
705
  if (existing) {
@@ -664,7 +756,7 @@ import {
664
756
  existsSync as existsSync5,
665
757
  mkdirSync as mkdirSync2,
666
758
  readdirSync as readdirSync3,
667
- readFileSync as readFileSync5,
759
+ readFileSync as readFileSync6,
668
760
  unlinkSync as unlinkSync2,
669
761
  writeFileSync as writeFileSync3
670
762
  } from "fs";
@@ -677,7 +769,7 @@ var syncRuleFiles = (rulesDir) => {
677
769
  let created = 0;
678
770
  for (const [filename3, content] of Object.entries(templates)) {
679
771
  const targetPath = PATH4.resolve(rulesDir, filename3);
680
- const existing = existsSync5(targetPath) ? readFileSync5(targetPath, "utf8") : void 0;
772
+ const existing = existsSync5(targetPath) ? readFileSync6(targetPath, "utf8") : void 0;
681
773
  if (existing === content) continue;
682
774
  writeFileSync3(targetPath, content, "utf8");
683
775
  if (existing) {
@@ -749,7 +841,7 @@ import {
749
841
  writeFileSync as writeFileSync4
750
842
  } from "fs";
751
843
  import PATH5 from "path";
752
- import { createInterface } from "readline";
844
+ import { createInterface as createInterface2 } from "readline";
753
845
  import chalk12 from "chalk";
754
846
  var DEFAULT_SETTINGS = {
755
847
  permissions: {
@@ -784,8 +876,8 @@ var DEFAULT_SETTINGS = {
784
876
  ]
785
877
  }
786
878
  };
787
- function askConfirmation(question) {
788
- const rl = createInterface({ input: process.stdin, output: process.stdout });
879
+ function askConfirmation2(question) {
880
+ const rl = createInterface2({ input: process.stdin, output: process.stdout });
789
881
  return new Promise((resolve) => {
790
882
  rl.question(question, (answer) => {
791
883
  rl.close();
@@ -799,7 +891,7 @@ async function claudeSettings() {
799
891
  const settingsPath = PATH5.resolve(claudeDir, "settings.local.json");
800
892
  mkdirSync3(claudeDir, { recursive: true });
801
893
  if (existsSync6(settingsPath)) {
802
- const confirmed = await askConfirmation(
894
+ const confirmed = await askConfirmation2(
803
895
  chalk12.yellow(`${settingsPath} already exists. Replace it? (y/N) `)
804
896
  );
805
897
  if (!confirmed) {
@@ -1725,11 +1817,11 @@ var deplint = async ({
1725
1817
  };
1726
1818
 
1727
1819
  // src/actions/deploy.ts
1728
- import { readFileSync as readFileSync6 } from "fs";
1820
+ import { readFileSync as readFileSync7 } from "fs";
1729
1821
  var privatePackageExcludeList = () => {
1730
1822
  const possibleDeployablePackages = yarnWorkspaces().map((workspace) => [
1731
1823
  workspace,
1732
- JSON.parse(readFileSync6(`${workspace.location}/package.json`, { encoding: "utf8" }))
1824
+ JSON.parse(readFileSync7(`${workspace.location}/package.json`, { encoding: "utf8" }))
1733
1825
  ]);
1734
1826
  const privatePackages = possibleDeployablePackages.filter(([_, pkg]) => pkg.private).map(([workspace]) => workspace);
1735
1827
  const excludeList = privatePackages.map((workspace) => `--exclude ${workspace.name}`);
@@ -1749,11 +1841,11 @@ var deploy = () => {
1749
1841
  };
1750
1842
 
1751
1843
  // src/actions/deploy-major.ts
1752
- import { readFileSync as readFileSync7 } from "fs";
1844
+ import { readFileSync as readFileSync8 } from "fs";
1753
1845
  var privatePackageExcludeList2 = () => {
1754
1846
  const possibleDeployablePackages = yarnWorkspaces().map((workspace) => [
1755
1847
  workspace,
1756
- JSON.parse(readFileSync7(`${workspace.location}/package.json`, { encoding: "utf8" }))
1848
+ JSON.parse(readFileSync8(`${workspace.location}/package.json`, { encoding: "utf8" }))
1757
1849
  ]);
1758
1850
  const privatePackages = possibleDeployablePackages.filter(([_, pkg]) => pkg.private).map(([workspace]) => workspace);
1759
1851
  const excludeList = privatePackages.map((workspace) => `--exclude ${workspace.name}`);
@@ -1773,11 +1865,11 @@ var deployMajor = () => {
1773
1865
  };
1774
1866
 
1775
1867
  // src/actions/deploy-minor.ts
1776
- import { readFileSync as readFileSync8 } from "fs";
1868
+ import { readFileSync as readFileSync9 } from "fs";
1777
1869
  var privatePackageExcludeList3 = () => {
1778
1870
  const possibleDeployablePackages = yarnWorkspaces().map((workspace) => [
1779
1871
  workspace,
1780
- JSON.parse(readFileSync8(`${workspace.location}/package.json`, { encoding: "utf8" }))
1872
+ JSON.parse(readFileSync9(`${workspace.location}/package.json`, { encoding: "utf8" }))
1781
1873
  ]);
1782
1874
  const privatePackages = possibleDeployablePackages.filter(([_, pkg]) => pkg.private).map(([workspace]) => workspace);
1783
1875
  const excludeList = privatePackages.map((workspace) => `--exclude ${workspace.name}`);
@@ -1797,11 +1889,11 @@ var deployMinor = () => {
1797
1889
  };
1798
1890
 
1799
1891
  // src/actions/deploy-next.ts
1800
- import { readFileSync as readFileSync9 } from "fs";
1892
+ import { readFileSync as readFileSync10 } from "fs";
1801
1893
  var privatePackageExcludeList4 = () => {
1802
1894
  const possibleDeployablePackages = yarnWorkspaces().map((workspace) => [
1803
1895
  workspace,
1804
- JSON.parse(readFileSync9(`${workspace.location}/package.json`, { encoding: "utf8" }))
1896
+ JSON.parse(readFileSync10(`${workspace.location}/package.json`, { encoding: "utf8" }))
1805
1897
  ]);
1806
1898
  const privatePackages = possibleDeployablePackages.filter(([_, pkg]) => pkg.private).map(([workspace]) => workspace);
1807
1899
  const excludeList = privatePackages.map((workspace) => `--exclude ${workspace.name}`);
@@ -2068,7 +2160,10 @@ async function readmeGen({
2068
2160
  typedoc,
2069
2161
  verbose
2070
2162
  }) {
2163
+ const config2 = await loadConfig();
2071
2164
  return await generateReadmeFiles({
2165
+ logoLinkUrl: config2.readme?.logoLinkUrl,
2166
+ logoUrl: config2.readme?.logoUrl,
2072
2167
  pkg,
2073
2168
  templatePath,
2074
2169
  typedoc,
@@ -2076,6 +2171,15 @@ async function readmeGen({
2076
2171
  });
2077
2172
  }
2078
2173
 
2174
+ // src/actions/readme-init.ts
2175
+ async function readmeInit({ templatePath }) {
2176
+ const config2 = await loadConfig();
2177
+ const template = applyLogoConfig(DEFAULT_README_TEMPLATE, config2.readme?.logoUrl, config2.readme?.logoLinkUrl);
2178
+ const resolvedTemplatePath = resolveTemplatePath(templatePath);
2179
+ await scaffoldTemplate(resolvedTemplatePath, template);
2180
+ return 0;
2181
+ }
2182
+
2079
2183
  // src/actions/rebuild.ts
2080
2184
  var rebuild = ({ target }) => {
2081
2185
  return runSteps("Rebuild", [
@@ -2232,8 +2336,8 @@ var relintAllPackages = ({ fix: fix2 = false } = {}) => {
2232
2336
  // src/actions/retest.ts
2233
2337
  var retest = () => {
2234
2338
  return runSteps("Test", [
2235
- ["yarn", ["jest", "--clearCache"]],
2236
- ["yarn", ["jest", "."]]
2339
+ ["yarn", ["vitest", "--clearCache"]],
2340
+ ["yarn", ["vitest", "."]]
2237
2341
  ]);
2238
2342
  };
2239
2343
 
@@ -2294,102 +2398,200 @@ var yarn3Only = () => {
2294
2398
  return 0;
2295
2399
  };
2296
2400
 
2297
- // src/xy/xyBuildCommands.ts
2401
+ // src/xy/build/buildCommand.ts
2402
+ var buildCommand = {
2403
+ command: "build [package]",
2404
+ describe: "Build - Compile & Lint",
2405
+ builder: (yargs2) => {
2406
+ return yargs2.positional("package", { describe: "Specific package to build" });
2407
+ },
2408
+ handler: async (argv) => {
2409
+ if (argv.verbose) {
2410
+ console.log(`Building: ${argv.package ?? "all"}`);
2411
+ }
2412
+ process.exitCode = await build({
2413
+ incremental: !!argv.incremental,
2414
+ jobs: argv.jobs,
2415
+ pkg: argv.package,
2416
+ target: argv.target,
2417
+ verbose: !!argv.verbose
2418
+ });
2419
+ }
2420
+ };
2421
+
2422
+ // src/xy/build/compileCommand.ts
2423
+ var compileCommand = {
2424
+ command: "compile [package]",
2425
+ describe: "Compile with Typescript & Copy Images",
2426
+ builder: (yargs2) => {
2427
+ return yargs2.positional("package", { describe: "Specific package to compile" });
2428
+ },
2429
+ handler: (argv) => {
2430
+ if (argv.verbose) {
2431
+ console.log(`Compiling: ${argv.package ?? "all"}`);
2432
+ }
2433
+ process.exitCode = compile({
2434
+ incremental: !!argv.incremental,
2435
+ jobs: argv.jobs,
2436
+ pkg: argv.package,
2437
+ target: argv.target,
2438
+ verbose: !!argv.verbose
2439
+ });
2440
+ }
2441
+ };
2442
+
2443
+ // src/xy/build/compileOnlyCommand.ts
2444
+ var compileOnlyCommand = {
2445
+ command: "compile-only [package]",
2446
+ describe: "Compile with Typescript & Copy Images (No Publint)",
2447
+ builder: (yargs2) => {
2448
+ return yargs2.positional("package", { describe: "Specific package to compile" });
2449
+ },
2450
+ handler: (argv) => {
2451
+ if (argv.verbose) {
2452
+ console.log(`Compiling: ${argv.package ?? "all"}`);
2453
+ }
2454
+ process.exitCode = compile({
2455
+ incremental: !!argv.incremental,
2456
+ jobs: argv.jobs,
2457
+ pkg: argv.package,
2458
+ publint: false,
2459
+ target: argv.target,
2460
+ verbose: !!argv.verbose
2461
+ });
2462
+ }
2463
+ };
2464
+
2465
+ // src/xy/build/copyAssetsCommand.ts
2466
+ var copyAssetsCommand = {
2467
+ command: "copy-assets [package]",
2468
+ describe: "Copy Assets - Copy the assets from src to dist",
2469
+ builder: (yargs2) => {
2470
+ return yargs2.positional("package", { describe: "Specific package to copy assets" });
2471
+ },
2472
+ handler: async (argv) => {
2473
+ if (argv.verbose) console.log(`Copying Assets: ${argv.package ?? "all"}`);
2474
+ process.exitCode = await copyAssets({ target: argv.target });
2475
+ }
2476
+ };
2477
+
2478
+ // src/xy/build/rebuildCommand.ts
2479
+ var rebuildCommand = {
2480
+ command: "rebuild [package]",
2481
+ describe: "Rebuild - Clean, Compile & Lint",
2482
+ builder: (yargs2) => {
2483
+ return yargs2.positional("package", { describe: "Specific package to rebuild" });
2484
+ },
2485
+ handler: (argv) => {
2486
+ if (argv.verbose) console.log(`Rebuilding: ${argv.package ?? "all"}`);
2487
+ process.exitCode = rebuild({ target: argv.target });
2488
+ }
2489
+ };
2490
+
2491
+ // src/xy/build/recompileCommand.ts
2492
+ var recompileCommand = {
2493
+ command: "recompile [package]",
2494
+ describe: "Re-compile with Typescript & Copy Images",
2495
+ builder: (yargs2) => {
2496
+ return yargs2.positional("package", { describe: "Specific package to re-compile" });
2497
+ },
2498
+ handler: async (argv) => {
2499
+ if (argv.verbose) {
2500
+ console.log(`Re-compiling: ${argv.package ?? "all"}`);
2501
+ }
2502
+ process.exitCode = await recompile({
2503
+ incremental: !!argv.incremental,
2504
+ jobs: argv.jobs,
2505
+ pkg: argv.package,
2506
+ target: argv.target,
2507
+ verbose: !!argv.verbose
2508
+ });
2509
+ }
2510
+ };
2511
+
2512
+ // src/xy/build/index.ts
2298
2513
  var xyBuildCommands = (args) => {
2299
- return args.command(
2300
- "build [package]",
2301
- "Build - Compile & Lint",
2302
- (yargs2) => {
2303
- return yargs2.positional("package", { describe: "Specific package to build" });
2304
- },
2305
- async (argv) => {
2306
- if (argv.verbose) {
2307
- console.log(`Building: ${argv.package ?? "all"}`);
2308
- }
2309
- process.exitCode = await build({
2310
- incremental: !!argv.incremental,
2311
- jobs: argv.jobs,
2312
- pkg: argv.package,
2313
- target: argv.target,
2314
- verbose: !!argv.verbose
2315
- });
2316
- }
2317
- ).command(
2318
- "compile [package]",
2319
- "Compile with Typescript & Copy Images",
2320
- (yargs2) => {
2321
- return yargs2.positional("package", { describe: "Specific package to compile" });
2322
- },
2323
- (argv) => {
2324
- if (argv.verbose) {
2325
- console.log(`Compiling: ${argv.package ?? "all"}`);
2326
- }
2327
- process.exitCode = compile({
2328
- incremental: !!argv.incremental,
2329
- jobs: argv.jobs,
2330
- pkg: argv.package,
2331
- target: argv.target,
2332
- verbose: !!argv.verbose
2333
- });
2334
- }
2335
- ).command(
2336
- "compile-only [package]",
2337
- "Compile with Typescript & Copy Images (No Publint)",
2338
- (yargs2) => {
2339
- return yargs2.positional("package", { describe: "Specific package to compile" });
2340
- },
2341
- (argv) => {
2342
- if (argv.verbose) {
2343
- console.log(`Compiling: ${argv.package ?? "all"}`);
2344
- }
2345
- process.exitCode = compile({
2346
- incremental: !!argv.incremental,
2347
- jobs: argv.jobs,
2348
- pkg: argv.package,
2349
- publint: false,
2350
- target: argv.target,
2351
- verbose: !!argv.verbose
2352
- });
2353
- }
2354
- ).command(
2355
- "recompile [package]",
2356
- "Re-compile with Typescript & Copy Images",
2357
- (yargs2) => {
2358
- return yargs2.positional("package", { describe: "Specific package to re-compile" });
2359
- },
2360
- async (argv) => {
2361
- if (argv.verbose) {
2362
- console.log(`Re-compiling: ${argv.package ?? "all"}`);
2363
- }
2364
- process.exitCode = await recompile({
2365
- incremental: !!argv.incremental,
2366
- jobs: argv.jobs,
2367
- pkg: argv.package,
2368
- target: argv.target,
2369
- verbose: !!argv.verbose
2370
- });
2371
- }
2372
- ).command(
2373
- "rebuild [package]",
2374
- "Rebuild - Clean, Compile & Lint",
2375
- (yargs2) => {
2376
- return yargs2.positional("package", { describe: "Specific package to rebuild" });
2377
- },
2378
- (argv) => {
2379
- if (argv.verbose) console.log(`Rebuilding: ${argv.package ?? "all"}`);
2380
- process.exitCode = rebuild({ target: argv.target });
2381
- }
2382
- ).command(
2383
- "copy-assets [package]",
2384
- "Copy Assets - Copy the assets from src to dist",
2385
- (yargs2) => {
2386
- return yargs2.positional("package", { describe: "Specific package to copy assets" });
2387
- },
2388
- async (argv) => {
2389
- if (argv.verbose) console.log(`Copying Assets: ${argv.package ?? "all"}`);
2390
- process.exitCode = await copyAssets({ target: argv.target });
2391
- }
2392
- );
2514
+ return args.command(buildCommand).command(compileCommand).command(compileOnlyCommand).command(recompileCommand).command(rebuildCommand).command(copyAssetsCommand);
2515
+ };
2516
+
2517
+ // src/xy/common/claude/commandsCommand.ts
2518
+ var commandsCommand = {
2519
+ command: "commands",
2520
+ describe: "Sync XY Labs standard Claude slash commands to .claude/commands/",
2521
+ handler: (argv) => {
2522
+ if (argv.verbose) console.log("Claude Commands");
2523
+ process.exitCode = claudeCommands();
2524
+ }
2525
+ };
2526
+
2527
+ // src/xy/common/claude/initCommand.ts
2528
+ var initCommand = {
2529
+ builder: (yargs2) => {
2530
+ return yargs2.option("force", {
2531
+ alias: "f",
2532
+ default: false,
2533
+ description: "Overwrite existing CLAUDE.md",
2534
+ type: "boolean"
2535
+ });
2536
+ },
2537
+ command: "init",
2538
+ describe: "Initialize all Claude configuration (commands, rules, settings)",
2539
+ handler: async (argv) => {
2540
+ if (argv.verbose) console.log("Claude Init");
2541
+ const commandsResult = claudeCommands();
2542
+ const rulesResult = claudeRules({ force: argv.force });
2543
+ const settingsResult = await claudeSettings();
2544
+ process.exitCode = commandsResult || rulesResult || settingsResult;
2545
+ }
2546
+ };
2547
+
2548
+ // src/xy/common/claude/rulesCommand.ts
2549
+ var rulesCommand = {
2550
+ builder: (yargs2) => {
2551
+ return yargs2.option("force", {
2552
+ alias: "f",
2553
+ default: false,
2554
+ description: "Overwrite existing CLAUDE.md",
2555
+ type: "boolean"
2556
+ });
2557
+ },
2558
+ command: "rules",
2559
+ describe: "Sync XY Labs standard Claude rules to .claude/rules/",
2560
+ handler: (argv) => {
2561
+ if (argv.verbose) console.log("Claude Rules");
2562
+ process.exitCode = claudeRules({ force: argv.force });
2563
+ }
2564
+ };
2565
+
2566
+ // src/xy/common/claude/settingsCommand.ts
2567
+ var settingsCommand = {
2568
+ command: "settings",
2569
+ describe: "Initialize .claude/settings.local.json with XY Labs defaults",
2570
+ handler: async (argv) => {
2571
+ if (argv.verbose) console.log("Claude Settings");
2572
+ process.exitCode = await claudeSettings();
2573
+ }
2574
+ };
2575
+
2576
+ // src/xy/common/claude/index.ts
2577
+ var claudeCommand = {
2578
+ builder: (yargs2) => {
2579
+ return yargs2.command(commandsCommand).command(initCommand).command(rulesCommand).command(settingsCommand).demandCommand(1, "Please specify a claude subcommand");
2580
+ },
2581
+ command: "claude",
2582
+ describe: "Claude - Claude Code configuration utilities",
2583
+ handler: () => {
2584
+ }
2585
+ };
2586
+
2587
+ // src/xy/common/cleanDocsCommand.ts
2588
+ var cleanDocsCommand = {
2589
+ command: "clean-docs",
2590
+ describe: "CleanDocs - Clean TypeDocs",
2591
+ handler: (argv) => {
2592
+ if (argv.verbose) console.log("Cleaning TypeDocs: all");
2593
+ process.exitCode = cleanDocs();
2594
+ }
2393
2595
  };
2394
2596
 
2395
2597
  // src/xy/param.ts
@@ -2397,453 +2599,492 @@ var packagePositionalParam = (yargs2) => {
2397
2599
  return yargs2.positional("package", { describe: "Specific package to target", type: "string" });
2398
2600
  };
2399
2601
 
2400
- // src/xy/xyCommonCommands.ts
2602
+ // src/xy/common/deadCommand.ts
2603
+ var deadCommand = {
2604
+ builder: (yargs2) => {
2605
+ return packagePositionalParam(yargs2);
2606
+ },
2607
+ command: "dead [package]",
2608
+ describe: "Dead - Check for dead code",
2609
+ handler: (argv) => {
2610
+ if (argv.verbose) console.log("Dead");
2611
+ process.exitCode = dead();
2612
+ }
2613
+ };
2614
+
2615
+ // src/xy/common/genDocsCommand.ts
2616
+ var genDocsCommand = {
2617
+ builder: (yargs2) => {
2618
+ return packagePositionalParam(yargs2);
2619
+ },
2620
+ command: "gen-docs [package]",
2621
+ describe: "GenDocs - Generate TypeDocs",
2622
+ handler: (argv) => {
2623
+ if (argv.verbose) console.log(`Generating TypeDocs: ${argv.package ?? "all"}`);
2624
+ process.exitCode = genDocs({ incremental: !!argv.incremental, pkg: argv.package });
2625
+ }
2626
+ };
2627
+
2628
+ // src/xy/common/gitignoreGenCommand.ts
2629
+ var gitignoreGenCommand = {
2630
+ command: "gitignore-gen",
2631
+ describe: "GitIgnore Gen - Generate .gitignore files",
2632
+ handler: (argv) => {
2633
+ if (argv.verbose) console.log("GitIgnore Gen");
2634
+ process.exitCode = gitignoreGen();
2635
+ }
2636
+ };
2637
+
2638
+ // src/xy/common/gitlintCommand.ts
2639
+ var gitlintCommand = {
2640
+ command: "gitlint [package]",
2641
+ describe: "Gitlint - Lint your git config",
2642
+ handler: (argv) => {
2643
+ if (argv.verbose) console.log("Gitlint");
2644
+ process.exitCode = argv.fix ? gitlintFix() : gitlint();
2645
+ }
2646
+ };
2647
+
2648
+ // src/xy/common/licenseCommand.ts
2649
+ var licenseCommand = {
2650
+ builder: (yargs2) => {
2651
+ return packagePositionalParam(yargs2);
2652
+ },
2653
+ command: "license [package]",
2654
+ describe: "License - Check licenses of dependencies",
2655
+ handler: async (argv) => {
2656
+ if (argv.verbose) console.log(`License: ${argv.package ?? "all"}`);
2657
+ process.exitCode = await license();
2658
+ }
2659
+ };
2660
+
2661
+ // src/xy/common/npmignoreGenCommand.ts
2662
+ var npmignoreGenCommand = {
2663
+ command: "npmignore-gen",
2664
+ describe: "NpmIgnore Gen - Generate .npmignore files",
2665
+ handler: (argv) => {
2666
+ if (argv.verbose) console.log("NpmIgnore Gen");
2667
+ process.exitCode = npmignoreGen();
2668
+ }
2669
+ };
2670
+
2671
+ // src/xy/common/readme/genCommand.ts
2672
+ var genCommand = {
2673
+ builder: (yargs2) => {
2674
+ return packagePositionalParam(yargs2).option("template", {
2675
+ alias: "t",
2676
+ description: "Path to README.template.md",
2677
+ type: "string"
2678
+ }).option("typedoc", {
2679
+ default: false,
2680
+ description: "Generate TypeDoc reference sections",
2681
+ type: "boolean"
2682
+ });
2683
+ },
2684
+ aliases: ["$0"],
2685
+ command: "gen [package]",
2686
+ describe: "Generate README.md files from template",
2687
+ handler: async (argv) => {
2688
+ if (argv.verbose) console.log("Readme Gen");
2689
+ process.exitCode = await readmeGen({
2690
+ pkg: argv.package,
2691
+ templatePath: argv.template,
2692
+ typedoc: argv.typedoc,
2693
+ verbose: !!argv.verbose
2694
+ });
2695
+ }
2696
+ };
2697
+
2698
+ // src/xy/common/readme/initCommand.ts
2699
+ var initCommand2 = {
2700
+ builder: (yargs2) => {
2701
+ return yargs2.option("template", {
2702
+ alias: "t",
2703
+ description: "Path to README.template.md",
2704
+ type: "string"
2705
+ });
2706
+ },
2707
+ command: "init",
2708
+ describe: "Initialize README template and logo files",
2709
+ handler: async (argv) => {
2710
+ if (argv.verbose) console.log("Readme Init");
2711
+ process.exitCode = await readmeInit({
2712
+ templatePath: argv.template,
2713
+ verbose: !!argv.verbose
2714
+ });
2715
+ }
2716
+ };
2717
+
2718
+ // src/xy/common/readme/index.ts
2719
+ var readmeCommand = {
2720
+ builder: (yargs2) => {
2721
+ return yargs2.command(genCommand).command(initCommand2);
2722
+ },
2723
+ command: "readme",
2724
+ describe: "Readme - README file utilities",
2725
+ handler: () => {
2726
+ }
2727
+ };
2728
+
2729
+ // src/xy/common/retestCommand.ts
2730
+ var retestCommand = {
2731
+ command: "retest",
2732
+ describe: "Re-Test - Run Jest Tests with cleaned cache",
2733
+ handler: (argv) => {
2734
+ if (argv.verbose) console.log("Re-Testing");
2735
+ process.exitCode = retest();
2736
+ }
2737
+ };
2738
+
2739
+ // src/xy/common/testCommand.ts
2740
+ var testCommand = {
2741
+ command: "test",
2742
+ describe: "Test - Run Jest Tests",
2743
+ handler: (argv) => {
2744
+ if (argv.verbose) console.log("Testing");
2745
+ process.exitCode = test();
2746
+ }
2747
+ };
2748
+
2749
+ // src/xy/common/upplugCommand.ts
2750
+ var upplugCommand = {
2751
+ command: "upplug",
2752
+ describe: "UpPlug - Update Yarn Plugins",
2753
+ handler: (argv) => {
2754
+ if (argv.verbose) console.log("UpPlug");
2755
+ process.exitCode = updateYarnPlugins();
2756
+ }
2757
+ };
2758
+
2759
+ // src/xy/common/upyarnCommand.ts
2760
+ var upyarnCommand = {
2761
+ command: "upyarn",
2762
+ describe: "UpYarn - Update Yarn Version",
2763
+ handler: (argv) => {
2764
+ if (argv.verbose) console.log("UpYarn");
2765
+ process.exitCode = updateYarnVersion();
2766
+ }
2767
+ };
2768
+
2769
+ // src/xy/common/yarn3OnlyCommand.ts
2770
+ var yarn3OnlyCommand = {
2771
+ command: "yarn3only",
2772
+ describe: "Yarn3Only - Check if using Yarn v3",
2773
+ handler: (argv) => {
2774
+ if (argv.verbose) console.log("Yarn 3 Check");
2775
+ process.exitCode = yarn3Only();
2776
+ }
2777
+ };
2778
+
2779
+ // src/xy/common/index.ts
2401
2780
  var xyCommonCommands = (args) => {
2402
- return args.command(
2403
- "claude-commands",
2404
- "Claude Commands - Sync XY Labs standard Claude slash commands to .claude/commands/",
2405
- (yargs2) => yargs2,
2406
- (argv) => {
2407
- if (argv.verbose) console.log("Claude Commands");
2408
- process.exitCode = claudeCommands();
2409
- }
2410
- ).command(
2411
- "claude-settings",
2412
- "Claude Settings - Initialize .claude/settings.local.json with XY Labs defaults",
2413
- (yargs2) => yargs2,
2414
- async (argv) => {
2415
- if (argv.verbose) console.log("Claude Settings");
2416
- process.exitCode = await claudeSettings();
2417
- }
2418
- ).command(
2419
- "claude-rules",
2420
- "Claude Rules - Sync XY Labs standard Claude rules to .claude/rules/",
2421
- (yargs2) => {
2422
- return yargs2.option("force", {
2423
- alias: "f",
2424
- default: false,
2425
- description: "Overwrite existing CLAUDE.md",
2426
- type: "boolean"
2427
- });
2428
- },
2429
- (argv) => {
2430
- if (argv.verbose) console.log("Claude Rules");
2431
- process.exitCode = claudeRules({ force: argv.force });
2432
- }
2433
- ).command(
2434
- "license [package]",
2435
- "License - Check licenses of dependencies",
2436
- (yargs2) => {
2437
- return packagePositionalParam(yargs2);
2438
- },
2439
- async (argv) => {
2440
- if (argv.verbose) console.log(`License: ${argv.package ?? "all"}`);
2441
- process.exitCode = await license();
2442
- }
2443
- ).command(
2444
- "dead [package]",
2445
- "Dead - Check for dead code",
2446
- (yargs2) => {
2447
- return packagePositionalParam(yargs2);
2448
- },
2449
- (argv) => {
2450
- if (argv.verbose) console.log("Dead");
2451
- process.exitCode = dead();
2452
- }
2453
- ).command(
2454
- "gen-docs [package]",
2455
- "GenDocs - Generate TypeDocs",
2456
- (yargs2) => {
2457
- return packagePositionalParam(yargs2);
2458
- },
2459
- (argv) => {
2460
- if (argv.verbose) console.log(`Generating TypeDocs: ${argv.package ?? "all"}`);
2461
- process.exitCode = genDocs({ incremental: !!argv.incremental, pkg: argv.package });
2462
- }
2463
- ).command(
2464
- "clean-docs",
2465
- "CleanDocs - Clean TypeDocs",
2466
- (yargs2) => yargs2,
2467
- (argv) => {
2468
- if (argv.verbose) console.log("Cleaning TypeDocs: all");
2469
- process.exitCode = cleanDocs();
2470
- }
2471
- ).command(
2472
- "gitlint [package]",
2473
- "Gitlint - Lint your git config",
2474
- (yargs2) => {
2475
- return yargs2;
2476
- },
2477
- (argv) => {
2478
- if (argv.verbose) console.log("Gitlint");
2479
- process.exitCode = argv.fix ? gitlintFix() : gitlint();
2480
- }
2481
- ).command(
2482
- "gitignore-gen",
2483
- "GitIgnore Gen - Generate .gitignore files",
2484
- (yargs2) => {
2485
- return yargs2;
2486
- },
2487
- (argv) => {
2488
- if (argv.verbose) console.log("GitIgnore Gen");
2489
- process.exitCode = gitignoreGen();
2490
- }
2491
- ).command(
2492
- "npmignore-gen",
2493
- "NpmIgnore Gen - Generate .npmignore files",
2494
- (yargs2) => {
2495
- return yargs2;
2496
- },
2497
- (argv) => {
2498
- if (argv.verbose) console.log("NpmIgnore Gen");
2499
- process.exitCode = npmignoreGen();
2500
- }
2501
- ).command(
2502
- "readme-gen [package]",
2503
- "Readme Gen - Generate README.md files from template",
2504
- (yargs2) => {
2505
- return packagePositionalParam(yargs2).option("template", {
2506
- alias: "t",
2507
- description: "Path to README.template.md",
2508
- type: "string"
2509
- }).option("typedoc", {
2510
- default: false,
2511
- description: "Generate TypeDoc reference sections",
2512
- type: "boolean"
2513
- });
2514
- },
2515
- async (argv) => {
2516
- if (argv.verbose) console.log("Readme Gen");
2517
- process.exitCode = await readmeGen({
2518
- pkg: argv.package,
2519
- templatePath: argv.template,
2520
- typedoc: argv.typedoc,
2521
- verbose: !!argv.verbose
2522
- });
2523
- }
2524
- ).command(
2525
- "retest",
2526
- "Re-Test - Run Jest Tests with cleaned cache",
2527
- (yargs2) => {
2528
- return yargs2;
2529
- },
2530
- (argv) => {
2531
- if (argv.verbose) console.log("Re-Testing");
2532
- process.exitCode = retest();
2533
- }
2534
- ).command(
2535
- "test",
2536
- "Test - Run Jest Tests",
2537
- (yargs2) => {
2538
- return yargs2;
2539
- },
2540
- (argv) => {
2541
- if (argv.verbose) console.log("Testing");
2542
- process.exitCode = test();
2543
- }
2544
- ).command(
2545
- "upplug",
2546
- "UpPlug - Update Yarn Plugins",
2547
- (yargs2) => {
2548
- return yargs2;
2549
- },
2550
- (argv) => {
2551
- if (argv.verbose) console.log("UpPlug");
2552
- process.exitCode = updateYarnPlugins();
2553
- }
2554
- ).command(
2555
- "upyarn",
2556
- "UpYarn - Update Yarn Version",
2557
- (yargs2) => {
2558
- return yargs2;
2559
- },
2560
- (argv) => {
2561
- if (argv.verbose) console.log("UpYarn");
2562
- process.exitCode = updateYarnVersion();
2563
- }
2564
- ).command(
2565
- "yarn3only",
2566
- "Yarn3Only - Check if using Yarn v3",
2567
- (yargs2) => {
2568
- return yargs2;
2569
- },
2570
- (argv) => {
2571
- if (argv.verbose) console.log("Yarn 3 Check");
2572
- process.exitCode = yarn3Only();
2573
- }
2574
- );
2781
+ return args.command(claudeCommand).command(licenseCommand).command(deadCommand).command(genDocsCommand).command(cleanDocsCommand).command(gitlintCommand).command(gitignoreGenCommand).command(npmignoreGenCommand).command(readmeCommand).command(retestCommand).command(testCommand).command(upplugCommand).command(upyarnCommand).command(yarn3OnlyCommand);
2782
+ };
2783
+
2784
+ // src/xy/deploy/deployCommand.ts
2785
+ var deployCommand = {
2786
+ command: "deploy",
2787
+ describe: "Deploy - Deploy patch",
2788
+ handler: (argv) => {
2789
+ if (argv.verbose) console.log("Deploy patch");
2790
+ process.exitCode = deploy();
2791
+ }
2792
+ };
2793
+
2794
+ // src/xy/deploy/deployMajorCommand.ts
2795
+ var deployMajorCommand = {
2796
+ command: "deploy-major",
2797
+ describe: "Deploy - Deploy major",
2798
+ handler: (argv) => {
2799
+ if (argv.verbose) console.log("Deploy major");
2800
+ process.exitCode = deployMajor();
2801
+ }
2802
+ };
2803
+
2804
+ // src/xy/deploy/deployMinorCommand.ts
2805
+ var deployMinorCommand = {
2806
+ command: "deploy-minor",
2807
+ describe: "Deploy - Deploy minor",
2808
+ handler: (argv) => {
2809
+ if (argv.verbose) console.log("Deploy minor");
2810
+ process.exitCode = deployMinor();
2811
+ }
2812
+ };
2813
+
2814
+ // src/xy/deploy/deployNextCommand.ts
2815
+ var deployNextCommand = {
2816
+ command: "deploy-next",
2817
+ describe: "Deploy - Deploy next",
2818
+ handler: (argv) => {
2819
+ if (argv.verbose) console.log("Deploy next");
2820
+ process.exitCode = deployNext();
2821
+ }
2575
2822
  };
2576
2823
 
2577
- // src/xy/xyDeployCommands.ts
2824
+ // src/xy/deploy/publishCommand.ts
2825
+ var publishCommand = {
2826
+ command: "publish",
2827
+ describe: "Publish - Publish packages to npmjs",
2828
+ handler: (argv) => {
2829
+ if (argv.verbose) console.log("Publish packages to npmjs");
2830
+ process.exitCode = publish();
2831
+ }
2832
+ };
2833
+
2834
+ // src/xy/deploy/index.ts
2578
2835
  var xyDeployCommands = (args) => {
2579
- return args.command(
2580
- "deploy",
2581
- "Deploy - Deploy patch",
2582
- (yargs2) => {
2583
- return yargs2;
2584
- },
2585
- (argv) => {
2586
- if (argv.verbose) console.log("Deploy patch");
2587
- process.exitCode = deploy();
2588
- }
2589
- ).command(
2590
- "deploy-minor",
2591
- "Deploy - Deploy minor",
2592
- (yargs2) => {
2593
- return yargs2;
2594
- },
2595
- (argv) => {
2596
- if (argv.verbose) console.log("Deploy minor");
2597
- process.exitCode = deployMinor();
2598
- }
2599
- ).command(
2600
- "deploy-major",
2601
- "Deploy - Deploy major",
2602
- (yargs2) => {
2603
- return yargs2;
2604
- },
2605
- (argv) => {
2606
- if (argv.verbose) console.log("Deploy major");
2607
- process.exitCode = deployMajor();
2608
- }
2609
- ).command(
2610
- "deploy-next",
2611
- "Deploy - Deploy next",
2612
- (yargs2) => {
2613
- return yargs2;
2614
- },
2615
- (argv) => {
2616
- if (argv.verbose) console.log("Deploy next");
2617
- process.exitCode = deployNext();
2618
- }
2619
- ).command(
2620
- "publish",
2621
- "Publish - Publish packages to npmjs",
2622
- (yargs2) => {
2623
- return yargs2;
2624
- },
2625
- (argv) => {
2626
- if (argv.verbose) console.log("Publish packages to npmjs");
2627
- process.exitCode = publish();
2836
+ return args.command(deployCommand).command(deployMinorCommand).command(deployMajorCommand).command(deployNextCommand).command(publishCommand);
2837
+ };
2838
+
2839
+ // src/xy/install/cleanCommand.ts
2840
+ var cleanCommand = {
2841
+ command: "clean [package]",
2842
+ describe: "Clean",
2843
+ builder: (yargs2) => {
2844
+ return yargs2.positional("package", { describe: "Specific package to clean" });
2845
+ },
2846
+ handler: async (argv) => {
2847
+ if (argv.verbose) {
2848
+ console.log(`Cleaning: ${argv.package ?? "all"}`);
2628
2849
  }
2629
- );
2850
+ process.exitCode = await clean({
2851
+ pkg: argv.package,
2852
+ verbose: !!argv.verbose
2853
+ });
2854
+ }
2855
+ };
2856
+
2857
+ // src/xy/install/dupdepsCommand.ts
2858
+ var dupdepsCommand = {
2859
+ command: "dupdeps",
2860
+ describe: "Dupdeps - Duplicate Dependencies in package.json",
2861
+ handler: (argv) => {
2862
+ if (argv.verbose) console.log("Dupdeps");
2863
+ process.exitCode = dupdeps();
2864
+ }
2865
+ };
2866
+
2867
+ // src/xy/install/reinstallCommand.ts
2868
+ var reinstallCommand = {
2869
+ command: "reinstall",
2870
+ describe: "Reinstall - Clean & Install",
2871
+ handler: (argv) => {
2872
+ if (argv.verbose) console.log("Reinstalling");
2873
+ process.exitCode = reinstall();
2874
+ }
2630
2875
  };
2631
2876
 
2632
- // src/xy/xyInstallCommands.ts
2877
+ // src/xy/install/staticsCommand.ts
2878
+ var staticsCommand = {
2879
+ command: "statics",
2880
+ describe: "Statics - Confirming Static Packages",
2881
+ handler: (argv) => {
2882
+ if (argv.verbose) console.log("Statics");
2883
+ process.exitCode = statics();
2884
+ }
2885
+ };
2886
+
2887
+ // src/xy/install/upCommand.ts
2888
+ var upCommand = {
2889
+ command: "up",
2890
+ describe: "Up - Update dependencies",
2891
+ handler: (argv) => {
2892
+ if (argv.verbose) console.log("Up");
2893
+ process.exitCode = up();
2894
+ }
2895
+ };
2896
+
2897
+ // src/xy/install/updoCommand.ts
2898
+ var updoCommand = {
2899
+ command: "updo",
2900
+ describe: "Updo - Update dependencies [Interactive]",
2901
+ handler: (argv) => {
2902
+ if (argv.verbose) console.log("Updo");
2903
+ process.exitCode = updo();
2904
+ }
2905
+ };
2906
+
2907
+ // src/xy/install/index.ts
2633
2908
  var xyInstallCommands = (args) => {
2634
- return args.command(
2635
- "clean [package]",
2636
- "Clean",
2637
- (yargs2) => {
2638
- return yargs2.positional("package", { describe: "Specific package to clean" });
2639
- },
2640
- async (argv) => {
2641
- if (argv.verbose) {
2642
- console.log(`Cleaning: ${argv.package ?? "all"}`);
2643
- }
2644
- process.exitCode = await clean({
2645
- pkg: argv.package,
2646
- verbose: !!argv.verbose
2647
- });
2648
- }
2649
- ).command(
2650
- "reinstall",
2651
- "Reinstall - Clean & Install",
2652
- (yargs2) => {
2653
- return yargs2;
2654
- },
2655
- (argv) => {
2656
- if (argv.verbose) console.log("Reinstalling");
2657
- process.exitCode = reinstall();
2658
- }
2659
- ).command(
2660
- "up",
2661
- "Up - Update dependencies",
2662
- (yargs2) => {
2663
- return yargs2;
2664
- },
2665
- (argv) => {
2666
- if (argv.verbose) console.log("Up");
2667
- process.exitCode = up();
2668
- }
2669
- ).command(
2670
- "updo",
2671
- "Updo - Update dependencies [Interactive]",
2672
- (yargs2) => {
2673
- return yargs2;
2674
- },
2675
- (argv) => {
2676
- if (argv.verbose) console.log("Updo");
2677
- process.exitCode = updo();
2678
- }
2679
- ).command(
2680
- "statics",
2681
- "Statics - Confirming Static Packages",
2682
- (yargs2) => {
2683
- return yargs2;
2684
- },
2685
- (argv) => {
2686
- if (argv.verbose) console.log("Statics");
2687
- process.exitCode = statics();
2688
- }
2689
- ).command(
2690
- "dupdeps",
2691
- "Dupdeps - Duplicate Dependencies in package.json",
2692
- (yargs2) => {
2693
- return yargs2;
2694
- },
2695
- (argv) => {
2696
- if (argv.verbose) console.log("Dupdeps");
2697
- process.exitCode = dupdeps();
2698
- }
2699
- );
2909
+ return args.command(cleanCommand).command(reinstallCommand).command(upCommand).command(updoCommand).command(staticsCommand).command(dupdepsCommand);
2700
2910
  };
2701
2911
 
2702
- // src/xy/xyLintCommands.ts
2912
+ // src/xy/lint/cycleCommand.ts
2703
2913
  import chalk30 from "chalk";
2914
+ var cycleCommand = {
2915
+ command: "cycle [package]",
2916
+ describe: "Cycle - Check for dependency cycles",
2917
+ builder: (yargs2) => {
2918
+ return packagePositionalParam(yargs2);
2919
+ },
2920
+ handler: async (argv) => {
2921
+ const start = Date.now();
2922
+ if (argv.verbose) console.log("Cycle");
2923
+ process.exitCode = await cycle({ pkg: argv.package });
2924
+ console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2925
+ }
2926
+ };
2927
+
2928
+ // src/xy/lint/deplintCommand.ts
2929
+ import chalk31 from "chalk";
2930
+ var deplintCommand = {
2931
+ command: "deplint [package]",
2932
+ describe: "Deplint - Run Deplint",
2933
+ builder: (yargs2) => {
2934
+ return packagePositionalParam(yargs2).option("deps", {
2935
+ alias: "d",
2936
+ default: false,
2937
+ description: "Check dependencies",
2938
+ type: "boolean"
2939
+ }).option("devDeps", {
2940
+ alias: "v",
2941
+ default: false,
2942
+ description: "Check devDependencies",
2943
+ type: "boolean"
2944
+ }).option("peerDeps", {
2945
+ alias: "p",
2946
+ default: false,
2947
+ description: "Check peerDependencies",
2948
+ type: "boolean"
2949
+ }).option("exclude", {
2950
+ alias: "e",
2951
+ description: "Package names to exclude from unused checks (comma-separated or repeated)",
2952
+ type: "array"
2953
+ });
2954
+ },
2955
+ handler: async (argv) => {
2956
+ if (argv.verbose) console.log("Deplint");
2957
+ const start = Date.now();
2958
+ const cliExclude = argv.exclude?.flatMap((v) => String(v).split(",")).map((v) => v.trim()).filter(Boolean);
2959
+ process.exitCode = await deplint({
2960
+ cliExclude,
2961
+ pkg: argv.package,
2962
+ deps: !!argv.deps,
2963
+ devDeps: !!argv.devDeps,
2964
+ peerDeps: !!argv.peerDeps,
2965
+ verbose: !!argv.verbose
2966
+ });
2967
+ console.log(chalk31.blue(`Finished in ${Date.now() - start}ms`));
2968
+ }
2969
+ };
2970
+
2971
+ // src/xy/lint/fixCommand.ts
2972
+ import chalk32 from "chalk";
2973
+ var fixCommand = {
2974
+ command: "fix [package]",
2975
+ describe: "Fix - Run Eslint w/fix",
2976
+ builder: (yargs2) => {
2977
+ return packagePositionalParam(yargs2);
2978
+ },
2979
+ handler: (argv) => {
2980
+ const start = Date.now();
2981
+ if (argv.verbose) console.log("Fix");
2982
+ process.exitCode = fix();
2983
+ console.log(chalk32.blue(`Finished in ${Date.now() - start}ms`));
2984
+ }
2985
+ };
2986
+
2987
+ // src/xy/lint/knipCommand.ts
2988
+ import chalk33 from "chalk";
2989
+ var knipCommand = {
2990
+ command: "knip",
2991
+ describe: "Knip - Run Knip",
2992
+ builder: (yargs2) => {
2993
+ return packagePositionalParam(yargs2);
2994
+ },
2995
+ handler: (argv) => {
2996
+ if (argv.verbose) console.log("Knip");
2997
+ const start = Date.now();
2998
+ process.exitCode = knip();
2999
+ console.log(chalk33.blue(`Knip finished in ${Date.now() - start}ms`));
3000
+ }
3001
+ };
3002
+
3003
+ // src/xy/lint/lintCommand.ts
3004
+ import chalk34 from "chalk";
3005
+ var lintCommand = {
3006
+ command: "lint [package]",
3007
+ describe: "Lint - Run Eslint",
3008
+ builder: (yargs2) => {
3009
+ return packagePositionalParam(yargs2).option("fix", {
3010
+ alias: "f",
3011
+ default: false,
3012
+ description: "Fix fixable issues",
3013
+ type: "boolean"
3014
+ }).option("cache", {
3015
+ alias: "c",
3016
+ default: false,
3017
+ description: "Use caching for performance",
3018
+ type: "boolean"
3019
+ });
3020
+ },
3021
+ handler: (argv) => {
3022
+ if (argv.verbose) console.log("Lint");
3023
+ const start = Date.now();
3024
+ process.exitCode = argv.fix ? fix({
3025
+ pkg: argv.package,
3026
+ cache: argv.cache,
3027
+ verbose: !!argv.verbose
3028
+ }) : lint({
3029
+ pkg: argv.package,
3030
+ cache: argv.cache,
3031
+ verbose: !!argv.verbose
3032
+ });
3033
+ console.log(chalk34.blue(`Finished in ${Date.now() - start}ms`));
3034
+ }
3035
+ };
3036
+
3037
+ // src/xy/lint/publintCommand.ts
3038
+ import chalk35 from "chalk";
3039
+ var publintCommand = {
3040
+ command: "publint [package]",
3041
+ describe: "Publint - Run Publint",
3042
+ builder: (yargs2) => {
3043
+ return packagePositionalParam(yargs2);
3044
+ },
3045
+ handler: async (argv) => {
3046
+ if (argv.verbose) console.log("Publint");
3047
+ const start = Date.now();
3048
+ process.exitCode = await publint({ pkg: argv.package, verbose: !!argv.verbose });
3049
+ console.log(chalk35.blue(`Finished in ${Date.now() - start}ms`));
3050
+ }
3051
+ };
3052
+
3053
+ // src/xy/lint/relintCommand.ts
3054
+ import chalk36 from "chalk";
3055
+ var relintCommand = {
3056
+ command: "relint [package]",
3057
+ describe: "Relint - Clean & Lint",
3058
+ builder: (yargs2) => {
3059
+ return packagePositionalParam(yargs2);
3060
+ },
3061
+ handler: (argv) => {
3062
+ if (argv.verbose) console.log("Relinting");
3063
+ const start = Date.now();
3064
+ process.exitCode = relint();
3065
+ console.log(chalk36.blue(`Finished in ${Date.now() - start}ms`));
3066
+ }
3067
+ };
3068
+
3069
+ // src/xy/lint/sonarCommand.ts
3070
+ import chalk37 from "chalk";
3071
+ var sonarCommand = {
3072
+ command: "sonar",
3073
+ describe: "Sonar - Run Sonar Check",
3074
+ builder: (yargs2) => {
3075
+ return packagePositionalParam(yargs2);
3076
+ },
3077
+ handler: (argv) => {
3078
+ const start = Date.now();
3079
+ if (argv.verbose) console.log("Sonar Check");
3080
+ process.exitCode = sonar();
3081
+ console.log(chalk37.blue(`Finished in ${Date.now() - start}ms`));
3082
+ }
3083
+ };
3084
+
3085
+ // src/xy/lint/index.ts
2704
3086
  var xyLintCommands = (args) => {
2705
- return args.command(
2706
- "cycle [package]",
2707
- "Cycle - Check for dependency cycles",
2708
- (yargs2) => {
2709
- return packagePositionalParam(yargs2);
2710
- },
2711
- async (argv) => {
2712
- const start = Date.now();
2713
- if (argv.verbose) console.log("Cycle");
2714
- process.exitCode = await cycle({ pkg: argv.package });
2715
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2716
- }
2717
- ).command(
2718
- "lint [package]",
2719
- "Lint - Run Eslint",
2720
- (yargs2) => {
2721
- return packagePositionalParam(yargs2).option("fix", {
2722
- alias: "f",
2723
- default: false,
2724
- description: "Fix fixable issues",
2725
- type: "boolean"
2726
- }).option("cache", {
2727
- alias: "c",
2728
- default: false,
2729
- description: "Use caching for performance",
2730
- type: "boolean"
2731
- });
2732
- },
2733
- (argv) => {
2734
- if (argv.verbose) console.log("Lint");
2735
- const start = Date.now();
2736
- process.exitCode = argv.fix ? fix({
2737
- pkg: argv.package,
2738
- cache: argv.cache,
2739
- verbose: !!argv.verbose
2740
- }) : lint({
2741
- pkg: argv.package,
2742
- cache: argv.cache,
2743
- verbose: !!argv.verbose
2744
- });
2745
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2746
- }
2747
- ).command(
2748
- "deplint [package]",
2749
- "Deplint - Run Deplint",
2750
- (yargs2) => {
2751
- return packagePositionalParam(yargs2).option("deps", {
2752
- alias: "d",
2753
- default: false,
2754
- description: "Check dependencies",
2755
- type: "boolean"
2756
- }).option("devDeps", {
2757
- alias: "v",
2758
- default: false,
2759
- description: "Check devDependencies",
2760
- type: "boolean"
2761
- }).option("peerDeps", {
2762
- alias: "p",
2763
- default: false,
2764
- description: "Check peerDependencies",
2765
- type: "boolean"
2766
- }).option("exclude", {
2767
- alias: "e",
2768
- description: "Package names to exclude from unused checks (comma-separated or repeated)",
2769
- type: "array"
2770
- });
2771
- },
2772
- async (argv) => {
2773
- if (argv.verbose) console.log("Deplint");
2774
- const start = Date.now();
2775
- const cliExclude = argv.exclude?.flatMap((v) => String(v).split(",")).map((v) => v.trim()).filter(Boolean);
2776
- process.exitCode = await deplint({
2777
- cliExclude,
2778
- pkg: argv.package,
2779
- deps: !!argv.deps,
2780
- devDeps: !!argv.devDeps,
2781
- peerDeps: !!argv.peerDeps,
2782
- verbose: !!argv.verbose
2783
- });
2784
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2785
- }
2786
- ).command(
2787
- "fix [package]",
2788
- "Fix - Run Eslint w/fix",
2789
- (yargs2) => {
2790
- return packagePositionalParam(yargs2);
2791
- },
2792
- (argv) => {
2793
- const start = Date.now();
2794
- if (argv.verbose) console.log("Fix");
2795
- process.exitCode = fix();
2796
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2797
- }
2798
- ).command(
2799
- "relint [package]",
2800
- "Relint - Clean & Lint",
2801
- (yargs2) => {
2802
- return packagePositionalParam(yargs2);
2803
- },
2804
- (argv) => {
2805
- if (argv.verbose) console.log("Relinting");
2806
- const start = Date.now();
2807
- process.exitCode = relint();
2808
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2809
- }
2810
- ).command(
2811
- "publint [package]",
2812
- "Publint - Run Publint",
2813
- (yargs2) => {
2814
- return packagePositionalParam(yargs2);
2815
- },
2816
- async (argv) => {
2817
- if (argv.verbose) console.log("Publint");
2818
- const start = Date.now();
2819
- process.exitCode = await publint({ pkg: argv.package, verbose: !!argv.verbose });
2820
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2821
- }
2822
- ).command(
2823
- "knip",
2824
- "Knip - Run Knip",
2825
- (yargs2) => {
2826
- return packagePositionalParam(yargs2);
2827
- },
2828
- (argv) => {
2829
- if (argv.verbose) console.log("Knip");
2830
- const start = Date.now();
2831
- process.exitCode = knip();
2832
- console.log(chalk30.blue(`Knip finished in ${Date.now() - start}ms`));
2833
- }
2834
- ).command(
2835
- "sonar",
2836
- "Sonar - Run Sonar Check",
2837
- (yargs2) => {
2838
- return packagePositionalParam(yargs2);
2839
- },
2840
- (argv) => {
2841
- const start = Date.now();
2842
- if (argv.verbose) console.log("Sonar Check");
2843
- process.exitCode = sonar();
2844
- console.log(chalk30.blue(`Finished in ${Date.now() - start}ms`));
2845
- }
2846
- );
3087
+ return args.command(cycleCommand).command(lintCommand).command(deplintCommand).command(fixCommand).command(relintCommand).command(publintCommand).command(knipCommand).command(sonarCommand);
2847
3088
  };
2848
3089
 
2849
3090
  // src/xy/xyParseOptions.ts
@@ -2877,8 +3118,8 @@ var xyParseOptions = () => {
2877
3118
  var xy = async () => {
2878
3119
  const options = xyParseOptions();
2879
3120
  return await xyBuildCommands(xyCommonCommands(xyInstallCommands(xyDeployCommands(xyLintCommands(options))))).demandCommand(1).command("*", "", () => {
2880
- console.error(chalk31.yellow(`Command not found [${chalk31.magenta(process.argv[2])}]`));
2881
- console.log(chalk31.gray("Try 'yarn xy --help' for list of commands"));
3121
+ console.error(chalk38.yellow(`Command not found [${chalk38.magenta(process.argv[2])}]`));
3122
+ console.log(chalk38.gray("Try 'yarn xy --help' for list of commands"));
2882
3123
  }).version().help().argv;
2883
3124
  };
2884
3125
  export {