@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
@@ -0,0 +1,108 @@
1
+ // src/lib/checkResult.ts
2
+ import chalk from "chalk";
3
+ var checkResult = (name, result, level = "error", exitOnFail = false) => {
4
+ if (result) {
5
+ const exiting = exitOnFail ? "[Exiting Process]" : "[Continuing]";
6
+ const chalkFunc = level === "error" ? chalk.red : chalk.yellow;
7
+ console[level](chalkFunc(`${name} had ${result} failures ${exiting}`));
8
+ if (exitOnFail) {
9
+ process.exit(result);
10
+ }
11
+ }
12
+ };
13
+
14
+ // src/lib/processEx.ts
15
+ import chalk2 from "chalk";
16
+
17
+ // src/lib/withError.ts
18
+ var withError = (ex, closure, predicate = (ex2) => !!ex2.name && !!ex2.message) => {
19
+ return predicate(ex) ? closure(ex) : void 0;
20
+ };
21
+
22
+ // src/lib/withErrnoException.ts
23
+ var withErrnoException = (ex, closure) => {
24
+ return withError(ex, closure, (ex2) => ex2.errno !== void 0);
25
+ };
26
+
27
+ // src/lib/processEx.ts
28
+ var processEx = (ex) => {
29
+ const error = typeof ex === "string" ? new Error(ex) : ex;
30
+ const exitCode = withErrnoException(error, (error2) => {
31
+ if (error2.code === "ENOENT") {
32
+ console.error(chalk2.red(`'${error2.path}' not found.`));
33
+ } else {
34
+ console.error(chalk2.red(`Errno: ${error2.code}`));
35
+ }
36
+ return error2.errno ?? -1;
37
+ }) ?? withError(error, (error2) => {
38
+ console.error(chalk2.red(`${error2.name}: ${error2.message}`));
39
+ return -1;
40
+ }) ?? (() => {
41
+ console.error(chalk2.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`));
42
+ return -1;
43
+ })();
44
+ process.exit(process.exitCode ?? exitCode);
45
+ };
46
+
47
+ // src/lib/safeExit.ts
48
+ var safeExit = (func, exitOnFail = true) => {
49
+ try {
50
+ const result = func();
51
+ if (result && exitOnFail) {
52
+ process.exit(result);
53
+ }
54
+ return result;
55
+ } catch (ex) {
56
+ return processEx(ex);
57
+ }
58
+ };
59
+
60
+ // src/lib/runSteps.ts
61
+ import { spawnSync } from "child_process";
62
+ import { existsSync } from "fs";
63
+ import chalk3 from "chalk";
64
+ var runSteps = (name, steps, exitOnFail = true, messages) => {
65
+ return safeExit(() => {
66
+ const pkgName = process.env.npm_package_name;
67
+ console.log(chalk3.green(`${name} [${pkgName}]`));
68
+ let totalStatus = 0;
69
+ for (const [i, [command, args, config]] of steps.entries()) {
70
+ if (messages?.[i]) {
71
+ console.log(chalk3.gray(messages?.[i]));
72
+ }
73
+ const argList = Array.isArray(args) ? args : args.split(" ");
74
+ if (command === "node" && !existsSync(argList[0])) {
75
+ throw new Error(`File not found [${argList[0]}]`);
76
+ }
77
+ const status = spawnSync(command, Array.isArray(args) ? args : args.split(" "), {
78
+ ...config,
79
+ encoding: "utf8",
80
+ env: { FORCE_COLOR: "3", ...process.env },
81
+ shell: true,
82
+ stdio: "inherit"
83
+ }).status ?? 0;
84
+ checkResult(name, status, "error", exitOnFail);
85
+ totalStatus += status ?? 0;
86
+ }
87
+ return totalStatus;
88
+ }, !!exitOnFail);
89
+ };
90
+
91
+ // src/actions/publish.ts
92
+ var publish = () => {
93
+ return runSteps("Publish", [["npm", ["publish", "--workspaces"]]]);
94
+ };
95
+
96
+ // src/xy/deploy/publishCommand.ts
97
+ var publishCommand = {
98
+ command: "publish",
99
+ describe: "Publish - Publish packages to npmjs",
100
+ handler: (argv) => {
101
+ if (argv.verbose) console.log("Publish packages to npmjs");
102
+ process.exitCode = publish();
103
+ }
104
+ };
105
+ export {
106
+ publishCommand
107
+ };
108
+ //# sourceMappingURL=publishCommand.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/checkResult.ts","../../../src/lib/processEx.ts","../../../src/lib/withError.ts","../../../src/lib/withErrnoException.ts","../../../src/lib/safeExit.ts","../../../src/lib/runSteps.ts","../../../src/actions/publish.ts","../../../src/xy/deploy/publishCommand.ts"],"sourcesContent":["import chalk from 'chalk'\n\nexport const checkResult = (name: string, result: number, level: 'error' | 'warn' = 'error', exitOnFail = false) => {\n if (result) {\n const exiting = exitOnFail ? '[Exiting Process]' : '[Continuing]'\n const chalkFunc = level === 'error' ? chalk.red : chalk.yellow\n console[level](chalkFunc(`${name} had ${result} failures ${exiting}`))\n if (exitOnFail) {\n process.exit(result)\n }\n }\n}\n","import chalk from 'chalk'\n\nimport { withErrnoException } from './withErrnoException.ts'\nimport { withError } from './withError.ts'\n\nexport const processEx = (ex: unknown) => {\n const error = typeof ex === 'string' ? new Error(ex) : ex\n const exitCode\n = withErrnoException(error, (error) => {\n if (error.code === 'ENOENT') {\n console.error(chalk.red(`'${error.path}' not found.`))\n } else {\n console.error(chalk.red(`Errno: ${error.code}`))\n }\n return error.errno ?? -1\n })\n ?? withError(error, (error) => {\n console.error(chalk.red(`${error.name}: ${error.message}`))\n return -1\n })\n ?? (() => {\n console.error(chalk.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`))\n return -1\n })()\n // This allows us to use a previously set exit code\n process.exit(process.exitCode ?? exitCode)\n}\n","export const withError = <T extends Error = Error>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ex: any,\n closure: (error: T) => number,\n predicate = (ex: T) => (!!ex.name && !!ex.message),\n) => {\n return predicate(ex as T) ? closure(ex as T) : undefined\n}\n","import { withError } from './withError.ts'\n\nexport const withErrnoException = <T extends NodeJS.ErrnoException = NodeJS.ErrnoException>(\n ex: unknown, closure: (error: T) => number,\n) => {\n return withError<T>(ex, closure, (ex: unknown) => (ex as NodeJS.ErrnoException).errno !== undefined)\n}\n","/** Catch child process a crash and returns the code */\n\nimport { processEx } from './processEx.ts'\n\nconst safeExit = (func: () => number, exitOnFail = true): number => {\n try {\n const result = func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nconst safeExitAsync = async (func: () => Promise<number>, exitOnFail = true): Promise<number> => {\n try {\n const result = await func()\n if (result && exitOnFail) {\n process.exit(result)\n }\n return result\n } catch (ex) {\n return processEx(ex)\n }\n}\n\nexport { safeExit, safeExitAsync }\n","import type { SpawnSyncOptionsWithBufferEncoding } from 'node:child_process'\nimport { spawnSync } from 'node:child_process'\nimport { existsSync } from 'node:fs'\n\nimport chalk from 'chalk'\n\nimport { checkResult } from './checkResult.ts'\nimport { safeExit } from './safeExit.ts'\n\nexport type ScriptStep\n = | [/* command */ 'yarn' | 'node' | 'ts-node-script' | 'tsc' | 'npm' | 'vitest', /* arg */ string | string[]]\n | [/* command */ string, /* arg */ string | string[], /* config */ SpawnSyncOptionsWithBufferEncoding]\n\nexport const runSteps = (name: string, steps: ScriptStep[], exitOnFail = true, messages?: string[]): number => {\n return safeExit(() => {\n const pkgName = process.env.npm_package_name\n console.log(chalk.green(`${name} [${pkgName}]`))\n let totalStatus = 0\n for (const [i, [command, args, config]] of steps.entries()) {\n if (messages?.[i]) {\n console.log(chalk.gray(messages?.[i]))\n }\n const argList = Array.isArray(args) ? args : args.split(' ')\n if (command === 'node' && !existsSync(argList[0])) {\n throw new Error(`File not found [${argList[0]}]`)\n }\n const status\n = spawnSync(command, Array.isArray(args) ? args : args.split(' '), {\n ...config,\n encoding: 'utf8',\n env: { FORCE_COLOR: '3', ...process.env },\n shell: true,\n stdio: 'inherit',\n }).status ?? 0\n checkResult(name, status, 'error', exitOnFail)\n totalStatus += status ?? 0\n }\n return totalStatus\n }, !!exitOnFail)\n}\n","import { runSteps } from '../lib/index.ts'\n\nexport const publish = () => {\n return runSteps('Publish', [['npm', ['publish', '--workspaces']]])\n}\n","import type { CommandModule } from 'yargs'\n\nimport { publish } from '../../actions/index.ts'\n\nexport const publishCommand: CommandModule = {\n command: 'publish',\n describe: 'Publish - Publish packages to npmjs',\n handler: (argv) => {\n if (argv.verbose) console.log('Publish packages to npmjs')\n process.exitCode = publish()\n },\n}\n"],"mappings":"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","names":["chalk","ex","ex","error","chalk","chalk","chalk"]}