@xylabs/ts-scripts-yarn3 7.4.28 → 7.5.1

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 (412) hide show
  1. package/dist/actions/deploy-major.mjs +1 -90
  2. package/dist/actions/deploy-major.mjs.map +1 -1
  3. package/dist/actions/deploy-minor.mjs +1 -90
  4. package/dist/actions/deploy-minor.mjs.map +1 -1
  5. package/dist/actions/deploy-next.mjs +1 -90
  6. package/dist/actions/deploy-next.mjs.map +1 -1
  7. package/dist/actions/deploy.mjs +1 -90
  8. package/dist/actions/deploy.mjs.map +1 -1
  9. package/dist/actions/index.mjs +128 -3840
  10. package/dist/actions/index.mjs.map +1 -1
  11. package/dist/actions/publish.mjs +1 -90
  12. package/dist/actions/publish.mjs.map +1 -1
  13. package/dist/actions/reinstall.mjs +1 -90
  14. package/dist/actions/reinstall.mjs.map +1 -1
  15. package/dist/actions/up.mjs +1 -90
  16. package/dist/actions/up.mjs.map +1 -1
  17. package/dist/actions/updo.mjs +1 -90
  18. package/dist/actions/updo.mjs.map +1 -1
  19. package/dist/actions/upplug.mjs +1 -90
  20. package/dist/actions/upplug.mjs.map +1 -1
  21. package/dist/actions/upyarn.mjs +1 -90
  22. package/dist/actions/upyarn.mjs.map +1 -1
  23. package/dist/actions/yarn3only.mjs +2 -32
  24. package/dist/actions/yarn3only.mjs.map +1 -1
  25. package/dist/bin/xy.mjs +222 -3684
  26. package/dist/bin/xy.mjs.map +1 -1
  27. package/dist/index.d.ts +24 -502
  28. package/dist/index.mjs +224 -4659
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/lib/index.mjs +0 -804
  31. package/dist/lib/index.mjs.map +1 -1
  32. package/dist/lib/yarn/index.mjs +0 -7
  33. package/dist/lib/yarn/index.mjs.map +1 -1
  34. package/dist/pm/index.mjs +82 -0
  35. package/dist/pm/index.mjs.map +1 -0
  36. package/dist/pm/yarnPackageManager.mjs +82 -0
  37. package/dist/pm/yarnPackageManager.mjs.map +1 -0
  38. package/dist/xy/common/index.mjs +7 -1459
  39. package/dist/xy/common/index.mjs.map +1 -1
  40. package/dist/xy/common/upplugCommand.mjs +1 -90
  41. package/dist/xy/common/upplugCommand.mjs.map +1 -1
  42. package/dist/xy/common/upyarnCommand.mjs +1 -90
  43. package/dist/xy/common/upyarnCommand.mjs.map +1 -1
  44. package/dist/xy/common/yarn3OnlyCommand.mjs +1 -33
  45. package/dist/xy/common/yarn3OnlyCommand.mjs.map +1 -1
  46. package/dist/xy/deploy/deployCommand.mjs +3 -90
  47. package/dist/xy/deploy/deployCommand.mjs.map +1 -1
  48. package/dist/xy/deploy/deployMajorCommand.mjs +1 -90
  49. package/dist/xy/deploy/deployMajorCommand.mjs.map +1 -1
  50. package/dist/xy/deploy/deployMinorCommand.mjs +1 -90
  51. package/dist/xy/deploy/deployMinorCommand.mjs.map +1 -1
  52. package/dist/xy/deploy/deployNextCommand.mjs +1 -90
  53. package/dist/xy/deploy/deployNextCommand.mjs.map +1 -1
  54. package/dist/xy/deploy/index.mjs +11 -94
  55. package/dist/xy/deploy/index.mjs.map +1 -1
  56. package/dist/xy/deploy/publishCommand.mjs +1 -90
  57. package/dist/xy/deploy/publishCommand.mjs.map +1 -1
  58. package/dist/xy/index.mjs +183 -3717
  59. package/dist/xy/index.mjs.map +1 -1
  60. package/dist/xy/install/cleanCommand.mjs +6 -118
  61. package/dist/xy/install/cleanCommand.mjs.map +1 -1
  62. package/dist/xy/install/dupdepsCommand.mjs +6 -178
  63. package/dist/xy/install/dupdepsCommand.mjs.map +1 -1
  64. package/dist/xy/install/index.mjs +12 -305
  65. package/dist/xy/install/index.mjs.map +1 -1
  66. package/dist/xy/install/reinstallCommand.mjs +1 -90
  67. package/dist/xy/install/reinstallCommand.mjs.map +1 -1
  68. package/dist/xy/install/staticsCommand.mjs +6 -177
  69. package/dist/xy/install/staticsCommand.mjs.map +1 -1
  70. package/dist/xy/install/upCommand.mjs +1 -90
  71. package/dist/xy/install/upCommand.mjs.map +1 -1
  72. package/dist/xy/install/updoCommand.mjs +1 -90
  73. package/dist/xy/install/updoCommand.mjs.map +1 -1
  74. package/dist/xy/xy.mjs +64 -3595
  75. package/dist/xy/xy.mjs.map +1 -1
  76. package/dist/xy/yarnCommands.mjs +80 -0
  77. package/dist/xy/yarnCommands.mjs.map +1 -0
  78. package/package.json +5 -47
  79. package/dist/actions/build.mjs +0 -140
  80. package/dist/actions/build.mjs.map +0 -1
  81. package/dist/actions/claude-clean.mjs +0 -71
  82. package/dist/actions/claude-clean.mjs.map +0 -1
  83. package/dist/actions/claude-commands.mjs +0 -112
  84. package/dist/actions/claude-commands.mjs.map +0 -1
  85. package/dist/actions/claude-rules.mjs +0 -137
  86. package/dist/actions/claude-rules.mjs.map +0 -1
  87. package/dist/actions/claude-settings.mjs +0 -85
  88. package/dist/actions/claude-settings.mjs.map +0 -1
  89. package/dist/actions/claude-skills.mjs +0 -120
  90. package/dist/actions/claude-skills.mjs.map +0 -1
  91. package/dist/actions/clean-docs.mjs +0 -37
  92. package/dist/actions/clean-docs.mjs.map +0 -1
  93. package/dist/actions/clean-eslint.mjs +0 -26
  94. package/dist/actions/clean-eslint.mjs.map +0 -1
  95. package/dist/actions/clean.mjs +0 -124
  96. package/dist/actions/clean.mjs.map +0 -1
  97. package/dist/actions/compile.mjs +0 -157
  98. package/dist/actions/compile.mjs.map +0 -1
  99. package/dist/actions/copy-assets.mjs +0 -73
  100. package/dist/actions/copy-assets.mjs.map +0 -1
  101. package/dist/actions/cycle.mjs +0 -144
  102. package/dist/actions/cycle.mjs.map +0 -1
  103. package/dist/actions/dead.mjs +0 -98
  104. package/dist/actions/dead.mjs.map +0 -1
  105. package/dist/actions/deplint/checkPackage/checkPackage.mjs +0 -672
  106. package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +0 -1
  107. package/dist/actions/deplint/checkPackage/checkPackageTypes.mjs +0 -1
  108. package/dist/actions/deplint/checkPackage/checkPackageTypes.mjs.map +0 -1
  109. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs +0 -48
  110. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs.map +0 -1
  111. package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs +0 -33
  112. package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs.map +0 -1
  113. package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs +0 -30
  114. package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs.map +0 -1
  115. package/dist/actions/deplint/checkPackage/getUnusedDevDependencies.mjs +0 -309
  116. package/dist/actions/deplint/checkPackage/getUnusedDevDependencies.mjs.map +0 -1
  117. package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs +0 -26
  118. package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs.map +0 -1
  119. package/dist/actions/deplint/checkPackage/index.mjs +0 -672
  120. package/dist/actions/deplint/checkPackage/index.mjs.map +0 -1
  121. package/dist/actions/deplint/deplint.mjs +0 -764
  122. package/dist/actions/deplint/deplint.mjs.map +0 -1
  123. package/dist/actions/deplint/findFiles.mjs +0 -39
  124. package/dist/actions/deplint/findFiles.mjs.map +0 -1
  125. package/dist/actions/deplint/findFilesByGlob.mjs +0 -14
  126. package/dist/actions/deplint/findFilesByGlob.mjs.map +0 -1
  127. package/dist/actions/deplint/getBasePackageName.mjs +0 -13
  128. package/dist/actions/deplint/getBasePackageName.mjs.map +0 -1
  129. package/dist/actions/deplint/getCliReferencedPackagesFromFiles.mjs +0 -140
  130. package/dist/actions/deplint/getCliReferencedPackagesFromFiles.mjs.map +0 -1
  131. package/dist/actions/deplint/getDependenciesFromPackageJson.mjs +0 -20
  132. package/dist/actions/deplint/getDependenciesFromPackageJson.mjs.map +0 -1
  133. package/dist/actions/deplint/getExtendsFromTsconfigs.mjs +0 -44
  134. package/dist/actions/deplint/getExtendsFromTsconfigs.mjs.map +0 -1
  135. package/dist/actions/deplint/getExternalImportsFromFiles.mjs +0 -122
  136. package/dist/actions/deplint/getExternalImportsFromFiles.mjs.map +0 -1
  137. package/dist/actions/deplint/getImportsFromFile.mjs +0 -85
  138. package/dist/actions/deplint/getImportsFromFile.mjs.map +0 -1
  139. package/dist/actions/deplint/getRequiredPeerDependencies.mjs +0 -36
  140. package/dist/actions/deplint/getRequiredPeerDependencies.mjs.map +0 -1
  141. package/dist/actions/deplint/getScriptReferencedPackages.mjs +0 -83
  142. package/dist/actions/deplint/getScriptReferencedPackages.mjs.map +0 -1
  143. package/dist/actions/deplint/implicitDevDependencies.mjs +0 -80
  144. package/dist/actions/deplint/implicitDevDependencies.mjs.map +0 -1
  145. package/dist/actions/deplint/index.mjs +0 -764
  146. package/dist/actions/deplint/index.mjs.map +0 -1
  147. package/dist/actions/dupdeps.mjs +0 -184
  148. package/dist/actions/dupdeps.mjs.map +0 -1
  149. package/dist/actions/fix.mjs +0 -147
  150. package/dist/actions/fix.mjs.map +0 -1
  151. package/dist/actions/gen-docs.mjs +0 -109
  152. package/dist/actions/gen-docs.mjs.map +0 -1
  153. package/dist/actions/gitignore.mjs +0 -152
  154. package/dist/actions/gitignore.mjs.map +0 -1
  155. package/dist/actions/gitlint-fix.mjs +0 -27
  156. package/dist/actions/gitlint-fix.mjs.map +0 -1
  157. package/dist/actions/gitlint.mjs +0 -48
  158. package/dist/actions/gitlint.mjs.map +0 -1
  159. package/dist/actions/knip.mjs +0 -98
  160. package/dist/actions/knip.mjs.map +0 -1
  161. package/dist/actions/license.mjs +0 -84
  162. package/dist/actions/license.mjs.map +0 -1
  163. package/dist/actions/lint.mjs +0 -144
  164. package/dist/actions/lint.mjs.map +0 -1
  165. package/dist/actions/lintlint.mjs +0 -230
  166. package/dist/actions/lintlint.mjs.map +0 -1
  167. package/dist/actions/npmignore-gen.mjs +0 -88
  168. package/dist/actions/npmignore-gen.mjs.map +0 -1
  169. package/dist/actions/package/clean-outputs.mjs +0 -29
  170. package/dist/actions/package/clean-outputs.mjs.map +0 -1
  171. package/dist/actions/package/clean-typescript.mjs +0 -29
  172. package/dist/actions/package/clean-typescript.mjs.map +0 -1
  173. package/dist/actions/package/clean.mjs +0 -48
  174. package/dist/actions/package/clean.mjs.map +0 -1
  175. package/dist/actions/package/compile/XyConfig.mjs +0 -1
  176. package/dist/actions/package/compile/XyConfig.mjs.map +0 -1
  177. package/dist/actions/package/compile/buildEntries.mjs +0 -53
  178. package/dist/actions/package/compile/buildEntries.mjs.map +0 -1
  179. package/dist/actions/package/compile/compile.mjs +0 -433
  180. package/dist/actions/package/compile/compile.mjs.map +0 -1
  181. package/dist/actions/package/compile/copyTypeFiles.mjs +0 -34
  182. package/dist/actions/package/compile/copyTypeFiles.mjs.map +0 -1
  183. package/dist/actions/package/compile/deepMerge.mjs +0 -26
  184. package/dist/actions/package/compile/deepMerge.mjs.map +0 -1
  185. package/dist/actions/package/compile/getCompilerOptions.mjs +0 -12
  186. package/dist/actions/package/compile/getCompilerOptions.mjs.map +0 -1
  187. package/dist/actions/package/compile/index.mjs +0 -436
  188. package/dist/actions/package/compile/index.mjs.map +0 -1
  189. package/dist/actions/package/compile/inputs.mjs +0 -22
  190. package/dist/actions/package/compile/inputs.mjs.map +0 -1
  191. package/dist/actions/package/compile/packageCompileTsc.mjs +0 -94
  192. package/dist/actions/package/compile/packageCompileTsc.mjs.map +0 -1
  193. package/dist/actions/package/compile/packageCompileTscTypes.mjs +0 -92
  194. package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +0 -1
  195. package/dist/actions/package/compile/packageCompileTsup.mjs +0 -402
  196. package/dist/actions/package/compile/packageCompileTsup.mjs.map +0 -1
  197. package/dist/actions/package/copy-assets.mjs +0 -46
  198. package/dist/actions/package/copy-assets.mjs.map +0 -1
  199. package/dist/actions/package/cycle.mjs +0 -39
  200. package/dist/actions/package/cycle.mjs.map +0 -1
  201. package/dist/actions/package/gen-docs.mjs +0 -114
  202. package/dist/actions/package/gen-docs.mjs.map +0 -1
  203. package/dist/actions/package/index.mjs +0 -825
  204. package/dist/actions/package/index.mjs.map +0 -1
  205. package/dist/actions/package/lint.mjs +0 -80
  206. package/dist/actions/package/lint.mjs.map +0 -1
  207. package/dist/actions/package/publint.mjs +0 -66
  208. package/dist/actions/package/publint.mjs.map +0 -1
  209. package/dist/actions/package/recompile.mjs +0 -483
  210. package/dist/actions/package/recompile.mjs.map +0 -1
  211. package/dist/actions/package-lint.mjs +0 -178
  212. package/dist/actions/package-lint.mjs.map +0 -1
  213. package/dist/actions/publint.mjs +0 -166
  214. package/dist/actions/publint.mjs.map +0 -1
  215. package/dist/actions/readme-gen.mjs +0 -289
  216. package/dist/actions/readme-gen.mjs.map +0 -1
  217. package/dist/actions/readme-init.mjs +0 -83
  218. package/dist/actions/readme-init.mjs.map +0 -1
  219. package/dist/actions/rebuild.mjs +0 -101
  220. package/dist/actions/rebuild.mjs.map +0 -1
  221. package/dist/actions/recompile.mjs +0 -187
  222. package/dist/actions/recompile.mjs.map +0 -1
  223. package/dist/actions/relint.mjs +0 -144
  224. package/dist/actions/relint.mjs.map +0 -1
  225. package/dist/actions/retest.mjs +0 -123
  226. package/dist/actions/retest.mjs.map +0 -1
  227. package/dist/actions/sonar.mjs +0 -98
  228. package/dist/actions/sonar.mjs.map +0 -1
  229. package/dist/actions/statics.mjs +0 -183
  230. package/dist/actions/statics.mjs.map +0 -1
  231. package/dist/actions/test.mjs +0 -117
  232. package/dist/actions/test.mjs.map +0 -1
  233. package/dist/bin/package/build-only.mjs +0 -445
  234. package/dist/bin/package/build-only.mjs.map +0 -1
  235. package/dist/bin/package/build.mjs +0 -445
  236. package/dist/bin/package/build.mjs.map +0 -1
  237. package/dist/bin/package/clean-outputs.mjs +0 -29
  238. package/dist/bin/package/clean-outputs.mjs.map +0 -1
  239. package/dist/bin/package/clean-typescript.mjs +0 -29
  240. package/dist/bin/package/clean-typescript.mjs.map +0 -1
  241. package/dist/bin/package/clean.mjs +0 -53
  242. package/dist/bin/package/clean.mjs.map +0 -1
  243. package/dist/bin/package/compile-only.mjs +0 -441
  244. package/dist/bin/package/compile-only.mjs.map +0 -1
  245. package/dist/bin/package/compile-tsup.mjs +0 -409
  246. package/dist/bin/package/compile-tsup.mjs.map +0 -1
  247. package/dist/bin/package/compile.mjs +0 -445
  248. package/dist/bin/package/compile.mjs.map +0 -1
  249. package/dist/bin/package/copy-assets-cjs.mjs +0 -54
  250. package/dist/bin/package/copy-assets-cjs.mjs.map +0 -1
  251. package/dist/bin/package/copy-assets-esm.mjs +0 -54
  252. package/dist/bin/package/copy-assets-esm.mjs.map +0 -1
  253. package/dist/bin/package/cycle.mjs +0 -51
  254. package/dist/bin/package/cycle.mjs.map +0 -1
  255. package/dist/bin/package/fix.mjs +0 -92
  256. package/dist/bin/package/fix.mjs.map +0 -1
  257. package/dist/bin/package/gen-docs.mjs +0 -121
  258. package/dist/bin/package/gen-docs.mjs.map +0 -1
  259. package/dist/bin/package/lint-verbose.mjs +0 -92
  260. package/dist/bin/package/lint-verbose.mjs.map +0 -1
  261. package/dist/bin/package/lint.mjs +0 -92
  262. package/dist/bin/package/lint.mjs.map +0 -1
  263. package/dist/bin/package/publint.mjs +0 -75
  264. package/dist/bin/package/publint.mjs.map +0 -1
  265. package/dist/bin/package/recompile.mjs +0 -489
  266. package/dist/bin/package/recompile.mjs.map +0 -1
  267. package/dist/bin/package/relint.mjs +0 -92
  268. package/dist/bin/package/relint.mjs.map +0 -1
  269. package/dist/lib/checkResult.mjs +0 -16
  270. package/dist/lib/checkResult.mjs.map +0 -1
  271. package/dist/lib/claudeMdTemplate.mjs +0 -65
  272. package/dist/lib/claudeMdTemplate.mjs.map +0 -1
  273. package/dist/lib/createBuildConfig.mjs +0 -55
  274. package/dist/lib/createBuildConfig.mjs.map +0 -1
  275. package/dist/lib/defaultBuildConfig.mjs +0 -23
  276. package/dist/lib/defaultBuildConfig.mjs.map +0 -1
  277. package/dist/lib/deleteGlob.mjs +0 -13
  278. package/dist/lib/deleteGlob.mjs.map +0 -1
  279. package/dist/lib/dependencies/DuplicateDetector.mjs +0 -81
  280. package/dist/lib/dependencies/DuplicateDetector.mjs.map +0 -1
  281. package/dist/lib/dependencies/detectDuplicateDependencies.mjs +0 -164
  282. package/dist/lib/dependencies/detectDuplicateDependencies.mjs.map +0 -1
  283. package/dist/lib/dependencies/index.mjs +0 -165
  284. package/dist/lib/dependencies/index.mjs.map +0 -1
  285. package/dist/lib/file/ReadFileSyncOptions.mjs +0 -6
  286. package/dist/lib/file/ReadFileSyncOptions.mjs.map +0 -1
  287. package/dist/lib/file/constants.mjs +0 -8
  288. package/dist/lib/file/constants.mjs.map +0 -1
  289. package/dist/lib/file/fileLines.mjs +0 -32
  290. package/dist/lib/file/fileLines.mjs.map +0 -1
  291. package/dist/lib/file/index.mjs +0 -42
  292. package/dist/lib/file/index.mjs.map +0 -1
  293. package/dist/lib/file/tryReadFileSync.mjs +0 -14
  294. package/dist/lib/file/tryReadFileSync.mjs.map +0 -1
  295. package/dist/lib/generateIgnoreFiles.mjs +0 -84
  296. package/dist/lib/generateIgnoreFiles.mjs.map +0 -1
  297. package/dist/lib/generateReadmeFiles.mjs +0 -257
  298. package/dist/lib/generateReadmeFiles.mjs.map +0 -1
  299. package/dist/lib/gitignoreTemplate.mjs +0 -12
  300. package/dist/lib/gitignoreTemplate.mjs.map +0 -1
  301. package/dist/lib/jsonFormatters.mjs +0 -11
  302. package/dist/lib/jsonFormatters.mjs.map +0 -1
  303. package/dist/lib/loadConfig.mjs +0 -24
  304. package/dist/lib/loadConfig.mjs.map +0 -1
  305. package/dist/lib/parsedPackageJSON.mjs +0 -11
  306. package/dist/lib/parsedPackageJSON.mjs.map +0 -1
  307. package/dist/lib/processEx.mjs +0 -36
  308. package/dist/lib/processEx.mjs.map +0 -1
  309. package/dist/lib/runSteps.mjs +0 -95
  310. package/dist/lib/runSteps.mjs.map +0 -1
  311. package/dist/lib/runStepsAsync.mjs +0 -113
  312. package/dist/lib/runStepsAsync.mjs.map +0 -1
  313. package/dist/lib/runXy.mjs +0 -103
  314. package/dist/lib/runXy.mjs.map +0 -1
  315. package/dist/lib/runXyWithWarning.mjs +0 -13
  316. package/dist/lib/runXyWithWarning.mjs.map +0 -1
  317. package/dist/lib/safeExit.mjs +0 -61
  318. package/dist/lib/safeExit.mjs.map +0 -1
  319. package/dist/lib/string/empty.mjs +0 -8
  320. package/dist/lib/string/empty.mjs.map +0 -1
  321. package/dist/lib/string/index.mjs +0 -12
  322. package/dist/lib/string/index.mjs.map +0 -1
  323. package/dist/lib/string/union.mjs +0 -6
  324. package/dist/lib/string/union.mjs.map +0 -1
  325. package/dist/lib/tryRunLocalScript.mjs +0 -33
  326. package/dist/lib/tryRunLocalScript.mjs.map +0 -1
  327. package/dist/lib/withErrnoException.mjs +0 -13
  328. package/dist/lib/withErrnoException.mjs.map +0 -1
  329. package/dist/lib/withError.mjs +0 -8
  330. package/dist/lib/withError.mjs.map +0 -1
  331. package/dist/loadPackageConfig.mjs +0 -11
  332. package/dist/loadPackageConfig.mjs.map +0 -1
  333. package/dist/types.d.mjs +0 -1
  334. package/dist/types.d.mjs.map +0 -1
  335. package/dist/xy/build/buildCommand.mjs +0 -161
  336. package/dist/xy/build/buildCommand.mjs.map +0 -1
  337. package/dist/xy/build/compileCommand.mjs +0 -174
  338. package/dist/xy/build/compileCommand.mjs.map +0 -1
  339. package/dist/xy/build/compileOnlyCommand.mjs +0 -175
  340. package/dist/xy/build/compileOnlyCommand.mjs.map +0 -1
  341. package/dist/xy/build/copyAssetsCommand.mjs +0 -84
  342. package/dist/xy/build/copyAssetsCommand.mjs.map +0 -1
  343. package/dist/xy/build/index.mjs +0 -507
  344. package/dist/xy/build/index.mjs.map +0 -1
  345. package/dist/xy/build/rebuildCommand.mjs +0 -114
  346. package/dist/xy/build/rebuildCommand.mjs.map +0 -1
  347. package/dist/xy/build/recompileCommand.mjs +0 -204
  348. package/dist/xy/build/recompileCommand.mjs.map +0 -1
  349. package/dist/xy/common/claude/cleanCommand.mjs +0 -79
  350. package/dist/xy/common/claude/cleanCommand.mjs.map +0 -1
  351. package/dist/xy/common/claude/commandsCommand.mjs +0 -120
  352. package/dist/xy/common/claude/commandsCommand.mjs.map +0 -1
  353. package/dist/xy/common/claude/index.mjs +0 -546
  354. package/dist/xy/common/claude/index.mjs.map +0 -1
  355. package/dist/xy/common/claude/initCommand.mjs +0 -319
  356. package/dist/xy/common/claude/initCommand.mjs.map +0 -1
  357. package/dist/xy/common/claude/rulesCommand.mjs +0 -153
  358. package/dist/xy/common/claude/rulesCommand.mjs.map +0 -1
  359. package/dist/xy/common/claude/settingsCommand.mjs +0 -93
  360. package/dist/xy/common/claude/settingsCommand.mjs.map +0 -1
  361. package/dist/xy/common/claude/skillsCommand.mjs +0 -129
  362. package/dist/xy/common/claude/skillsCommand.mjs.map +0 -1
  363. package/dist/xy/common/cleanDocsCommand.mjs +0 -45
  364. package/dist/xy/common/cleanDocsCommand.mjs.map +0 -1
  365. package/dist/xy/common/deadCommand.mjs +0 -116
  366. package/dist/xy/common/deadCommand.mjs.map +0 -1
  367. package/dist/xy/common/genDocsCommand.mjs +0 -125
  368. package/dist/xy/common/genDocsCommand.mjs.map +0 -1
  369. package/dist/xy/common/gitignoreCommand.mjs +0 -158
  370. package/dist/xy/common/gitignoreCommand.mjs.map +0 -1
  371. package/dist/xy/common/gitlintCommand.mjs +0 -82
  372. package/dist/xy/common/gitlintCommand.mjs.map +0 -1
  373. package/dist/xy/common/licenseCommand.mjs +0 -100
  374. package/dist/xy/common/licenseCommand.mjs.map +0 -1
  375. package/dist/xy/common/npmignoreGenCommand.mjs +0 -98
  376. package/dist/xy/common/npmignoreGenCommand.mjs.map +0 -1
  377. package/dist/xy/common/readme/genCommand.mjs +0 -321
  378. package/dist/xy/common/readme/genCommand.mjs.map +0 -1
  379. package/dist/xy/common/readme/index.mjs +0 -361
  380. package/dist/xy/common/readme/index.mjs.map +0 -1
  381. package/dist/xy/common/readme/initCommand.mjs +0 -103
  382. package/dist/xy/common/readme/initCommand.mjs.map +0 -1
  383. package/dist/xy/common/retestCommand.mjs +0 -136
  384. package/dist/xy/common/retestCommand.mjs.map +0 -1
  385. package/dist/xy/common/testCommand.mjs +0 -130
  386. package/dist/xy/common/testCommand.mjs.map +0 -1
  387. package/dist/xy/lint/cycleCommand.mjs +0 -163
  388. package/dist/xy/lint/cycleCommand.mjs.map +0 -1
  389. package/dist/xy/lint/deplintCommand.mjs +0 -814
  390. package/dist/xy/lint/deplintCommand.mjs.map +0 -1
  391. package/dist/xy/lint/fixCommand.mjs +0 -168
  392. package/dist/xy/lint/fixCommand.mjs.map +0 -1
  393. package/dist/xy/lint/index.mjs +0 -1691
  394. package/dist/xy/lint/index.mjs.map +0 -1
  395. package/dist/xy/lint/knipCommand.mjs +0 -121
  396. package/dist/xy/lint/knipCommand.mjs.map +0 -1
  397. package/dist/xy/lint/lintCommand.mjs +0 -186
  398. package/dist/xy/lint/lintCommand.mjs.map +0 -1
  399. package/dist/xy/lint/lintlintCommand.mjs +0 -250
  400. package/dist/xy/lint/lintlintCommand.mjs.map +0 -1
  401. package/dist/xy/lint/packageLintCommand.mjs +0 -193
  402. package/dist/xy/lint/packageLintCommand.mjs.map +0 -1
  403. package/dist/xy/lint/publintCommand.mjs +0 -187
  404. package/dist/xy/lint/publintCommand.mjs.map +0 -1
  405. package/dist/xy/lint/relintCommand.mjs +0 -163
  406. package/dist/xy/lint/relintCommand.mjs.map +0 -1
  407. package/dist/xy/lint/sonarCommand.mjs +0 -121
  408. package/dist/xy/lint/sonarCommand.mjs.map +0 -1
  409. package/dist/xy/param.mjs +0 -8
  410. package/dist/xy/param.mjs.map +0 -1
  411. package/dist/xy/xyParseOptions.mjs +0 -70
  412. package/dist/xy/xyParseOptions.mjs.map +0 -1
@@ -1,343 +1,3 @@
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/claudeMdTemplate.ts
15
- import {
16
- readdirSync,
17
- readFileSync,
18
- statSync
19
- } from "fs";
20
- import { createRequire } from "module";
21
- import PATH from "path";
22
- var require2 = createRequire(import.meta.url);
23
- var packageRoot = PATH.dirname(require2.resolve("@xylabs/ts-scripts-yarn3/package.json"));
24
- var templatesDir = PATH.resolve(packageRoot, "templates", "claude");
25
- var XYLABS_RULES_PREFIX = "xylabs-";
26
- var XYLABS_COMMANDS_PREFIX = "xy-";
27
- var LEGACY_COMMANDS_PREFIX = "xylabs-";
28
- var XYLABS_SKILLS_PREFIX = "xylabs-";
29
- var claudeMdRuleTemplates = () => {
30
- const rulesDir = PATH.resolve(templatesDir, "rules");
31
- const files = readdirSync(rulesDir).filter((f) => f.startsWith(XYLABS_RULES_PREFIX) && f.endsWith(".md"));
32
- const result = {};
33
- for (const file of files) {
34
- result[file] = readFileSync(PATH.resolve(rulesDir, file), "utf8");
35
- }
36
- return result;
37
- };
38
- var claudeCommandTemplates = () => {
39
- const commandsDir = PATH.resolve(templatesDir, "commands");
40
- const files = readdirSync(commandsDir).filter((f) => f.startsWith(XYLABS_COMMANDS_PREFIX) && f.endsWith(".md"));
41
- const result = {};
42
- for (const file of files) {
43
- result[file] = readFileSync(PATH.resolve(commandsDir, file), "utf8");
44
- }
45
- return result;
46
- };
47
- var claudeSkillTemplates = () => {
48
- const skillsDir = PATH.resolve(templatesDir, "skills");
49
- const dirs = readdirSync(skillsDir).filter(
50
- (f) => f.startsWith(XYLABS_SKILLS_PREFIX) && statSync(PATH.resolve(skillsDir, f)).isDirectory()
51
- );
52
- const result = {};
53
- for (const dir of dirs) {
54
- const dirPath = PATH.resolve(skillsDir, dir);
55
- const files = readdirSync(dirPath, { recursive: true, encoding: "utf8" });
56
- result[dir] = {};
57
- for (const file of files) {
58
- if (statSync(PATH.resolve(dirPath, file)).isFile()) {
59
- result[dir][file] = readFileSync(PATH.resolve(dirPath, file), "utf8");
60
- }
61
- }
62
- }
63
- return result;
64
- };
65
- var claudeMdProjectTemplate = () => readFileSync(PATH.resolve(templatesDir, "CLAUDE-project.md"), "utf8");
66
- var claudeMdLocalTemplate = () => readFileSync(PATH.resolve(templatesDir, "CLAUDE-local.md"), "utf8");
67
-
68
- // src/lib/createBuildConfig.ts
69
- import { readFileSync as readFileSync2 } from "fs";
70
-
71
- // src/lib/defaultBuildConfig.ts
72
- var defaultBuildConfig = {
73
- compilerOptions: {
74
- rootDir: "src",
75
- rootDirs: ["package.json"]
76
- },
77
- exclude: [
78
- "**/build",
79
- "**/dist",
80
- "**/node_modules",
81
- "**/*.spec.*",
82
- "**/*.spec",
83
- "**/*.stories.*",
84
- "**/*.example.*",
85
- "**/spec/*",
86
- "**/stories/*"
87
- ],
88
- include: ["src"]
89
- };
90
-
91
- // src/lib/createBuildConfig.ts
92
- var getGeneralTypescriptConfig = (location) => {
93
- let generalConfig;
94
- try {
95
- generalConfig = readFileSync2(`${location}/tsconfig.json`, { encoding: "utf8" });
96
- } catch {
97
- return false;
98
- }
99
- return JSON.parse(generalConfig);
100
- };
101
- var createBuildConfig = (location, module, target, outDirSuffix) => {
102
- const generalConfigObject = getGeneralTypescriptConfig(location);
103
- if (generalConfigObject === false) {
104
- return void 0;
105
- }
106
- return {
107
- ...generalConfigObject,
108
- compilerOptions: {
109
- ...defaultBuildConfig.compilerOptions,
110
- ...generalConfigObject.compilerOptions,
111
- module,
112
- outDir: `./${generalConfigObject.compilerOptions?.outDir ?? "dist"}/${outDirSuffix}`,
113
- target
114
- },
115
- exclude: [...generalConfigObject.exclude ?? [], ...defaultBuildConfig.exclude],
116
- include: [...generalConfigObject.include ?? [], ...defaultBuildConfig.include]
117
- };
118
- };
119
-
120
- // src/lib/deleteGlob.ts
121
- import fs from "fs";
122
- import { glob } from "glob";
123
- var deleteGlob = (globPath) => {
124
- const files = glob.sync(globPath);
125
- for (const file of files) {
126
- fs.rmSync(file, { recursive: true, force: true });
127
- }
128
- };
129
-
130
- // src/lib/dependencies/detectDuplicateDependencies.ts
131
- import { execSync } from "child_process";
132
-
133
- // src/lib/processEx.ts
134
- import chalk2 from "chalk";
135
-
136
- // src/lib/withError.ts
137
- var withError = (ex, closure, predicate = (ex2) => !!ex2.name && !!ex2.message) => {
138
- return predicate(ex) ? closure(ex) : void 0;
139
- };
140
-
141
- // src/lib/withErrnoException.ts
142
- var withErrnoException = (ex, closure) => {
143
- return withError(ex, closure, (ex2) => ex2.errno !== void 0);
144
- };
145
-
146
- // src/lib/processEx.ts
147
- var processEx = (ex) => {
148
- const error = typeof ex === "string" ? new Error(ex) : ex;
149
- const exitCode = withErrnoException(error, (error2) => {
150
- if (error2.code === "ENOENT") {
151
- console.error(chalk2.red(`'${error2.path}' not found.`));
152
- } else {
153
- console.error(chalk2.red(`Errno: ${error2.code}`));
154
- }
155
- return error2.errno ?? -1;
156
- }) ?? withError(error, (error2) => {
157
- console.error(chalk2.red(`${error2.name}: ${error2.message}`));
158
- return -1;
159
- }) ?? (() => {
160
- console.error(chalk2.red(`Unexpected Error: ${JSON.stringify(ex, null, 2)}`));
161
- return -1;
162
- })();
163
- process.exit(process.exitCode ?? exitCode);
164
- };
165
-
166
- // src/lib/safeExit.ts
167
- var safeExit = (func, exitOnFail = true) => {
168
- try {
169
- const result = func();
170
- if (result && exitOnFail) {
171
- process.exit(result);
172
- }
173
- return result;
174
- } catch (ex) {
175
- return processEx(ex);
176
- }
177
- };
178
- var safeExitAsync = async (func, exitOnFail = true) => {
179
- try {
180
- const result = await func();
181
- if (result && exitOnFail) {
182
- process.exit(result);
183
- }
184
- return result;
185
- } catch (ex) {
186
- return processEx(ex);
187
- }
188
- };
189
-
190
- // src/lib/dependencies/DuplicateDetector.ts
191
- import { EOL } from "os";
192
- import chalk3 from "chalk";
193
-
194
- // src/lib/jsonFormatters.ts
195
- var multiLineToJSONArray = (output) => {
196
- const withCommas = output.replaceAll("\r\n", "").replaceAll("\n", ",");
197
- const cleanCollection = withCommas.slice(0, Math.max(0, withCommas.length - 1));
198
- const collection = `[${cleanCollection}]`;
199
- return JSON.parse(collection);
200
- };
201
-
202
- // src/lib/dependencies/DuplicateDetector.ts
203
- var trimVirtualMeta = (value) => {
204
- const virtualParts = value.split("virtual:");
205
- if (virtualParts.length > 1) {
206
- const hashParts = virtualParts[1].split("#");
207
- return virtualParts[0] + hashParts[1];
208
- } else {
209
- return value;
210
- }
211
- };
212
- var trimObjectDependencyVirtualMeta = (obj) => {
213
- const resultObj = {};
214
- for (const [key, value] of Object.entries(obj)) {
215
- resultObj[trimVirtualMeta(key)] = {
216
- descriptor: trimVirtualMeta(value.descriptor),
217
- locator: trimVirtualMeta(value.locator)
218
- };
219
- }
220
- return resultObj;
221
- };
222
- var trimDependencyVirtualMeta = (dependencies) => {
223
- return dependencies.map((dependency) => {
224
- return { children: trimObjectDependencyVirtualMeta(dependency.children), value: trimVirtualMeta(dependency.value) };
225
- });
226
- };
227
- var DuplicateDetector = class {
228
- dependency;
229
- dependencyEntries;
230
- constructor(output, dependency) {
231
- this.dependency = dependency;
232
- this.dependencyEntries = trimDependencyVirtualMeta(multiLineToJSONArray(output));
233
- }
234
- detect() {
235
- const result = this.dependencyEntries.reduce(this.detectReducer, this.resultsFactory(this.dependency));
236
- if (result.duplicateVersions.length > 0) {
237
- console.log(chalk3.yellow(`${EOL}Duplicates found for: ${this.dependency}`));
238
- const duplicateVersions = result.duplicateVersions.toString().replaceAll(",", `${EOL} `);
239
- console.log(chalk3.grey(` ${duplicateVersions}`, EOL));
240
- return 1;
241
- } else {
242
- console.log(`${this.dependency} - OK`);
243
- return 0;
244
- }
245
- }
246
- detectReducer(acc, entry) {
247
- const version = Object.entries(entry.children).map(([k]) => k)[0];
248
- if (!acc.currentVersion) {
249
- acc.currentVersion = version;
250
- return acc;
251
- }
252
- if (acc.currentVersion && acc.currentVersion !== version && !version.includes("@virtual:")) {
253
- if (acc.duplicateVersions.length === 0) {
254
- acc.duplicateVersions.push(acc.currentVersion);
255
- }
256
- acc.duplicateVersions.push(version);
257
- acc.duplicateVersions = [...new Set(acc.duplicateVersions)];
258
- }
259
- return acc;
260
- }
261
- resultsFactory = (dependency) => ({
262
- currentVersion: void 0,
263
- dependency,
264
- duplicateVersions: []
265
- });
266
- };
267
-
268
- // src/lib/dependencies/detectDuplicateDependencies.ts
269
- var detectDuplicateDependencies = (depsFromPackageJSON, DefaultDependencies) => {
270
- let exitCode = 0;
271
- const dependencies = depsFromPackageJSON?.length ? depsFromPackageJSON : DefaultDependencies;
272
- return safeExit(() => {
273
- if (dependencies) {
274
- for (const dependency of dependencies) {
275
- let output;
276
- try {
277
- const cmd = `yarn why ${dependency} --json`;
278
- output = execSync(cmd).toString();
279
- } catch (e) {
280
- console.error(`Error running yarn why: ${e}`);
281
- exitCode = 1;
282
- continue;
283
- }
284
- if (output) {
285
- exitCode = new DuplicateDetector(output, dependency).detect();
286
- } else {
287
- console.log(`${dependency} - N/A`);
288
- if (depsFromPackageJSON) {
289
- exitCode = 1;
290
- console.log(`\u{1F6A8} Library ${dependency} was requested in package.json but not found`);
291
- }
292
- }
293
- }
294
- return exitCode;
295
- } else {
296
- console.log("\u{1F6A8} No dependencies where passed");
297
- return exitCode;
298
- }
299
- });
300
- };
301
-
302
- // src/lib/file/constants.ts
303
- var WINDOWS_NEWLINE_REGEX = /\r\n/g;
304
- var CROSS_PLATFORM_NEWLINE = "\n";
305
-
306
- // src/lib/file/fileLines.ts
307
- import {
308
- existsSync,
309
- readFileSync as readFileSync3,
310
- writeFileSync
311
- } from "fs";
312
-
313
- // src/lib/string/empty.ts
314
- var empty = (value) => value?.trim().length === 0;
315
- var notEmpty = (value) => !empty(value);
316
-
317
- // src/lib/string/union.ts
318
- var union = (a, b) => /* @__PURE__ */ new Set([...new Set(a), ...new Set(b)]);
319
-
320
- // src/lib/file/ReadFileSyncOptions.ts
321
- var defaultReadFileSyncOptions = { encoding: "utf8" };
322
-
323
- // src/lib/file/fileLines.ts
324
- var readLines = (uri, options = defaultReadFileSyncOptions) => existsSync(uri) ? readFileSync3(uri, options).replace(WINDOWS_NEWLINE_REGEX, CROSS_PLATFORM_NEWLINE).split(CROSS_PLATFORM_NEWLINE) : [];
325
- var readNonEmptyLines = (uri, options = defaultReadFileSyncOptions) => readLines(uri, options).filter(notEmpty);
326
- var writeLines = (uri, lines, options = defaultReadFileSyncOptions) => {
327
- const existing = existsSync(uri) ? readFileSync3(uri, options) : void 0;
328
- const desired = lines.join(CROSS_PLATFORM_NEWLINE);
329
- if (existing !== desired) writeFileSync(uri, desired, options);
330
- };
331
-
332
- // src/lib/file/tryReadFileSync.ts
333
- import { existsSync as existsSync2, readFileSync as readFileSync4 } from "fs";
334
- var tryReadFileSync = (uri, options = defaultReadFileSyncOptions) => {
335
- return existsSync2(uri) ? readFileSync4(uri, options) : void 0;
336
- };
337
-
338
- // src/lib/generateIgnoreFiles.ts
339
- import chalk4 from "chalk";
340
-
341
1
  // src/lib/yarn/isYarnVersionOrGreater.ts
342
2
  import { spawnSync } from "child_process";
343
3
  var isYarnVersionOrGreater = (major, minor, patch) => {
@@ -371,472 +31,8 @@ var yarnWorkspace = (pkg) => {
371
31
  if (!workspace) throw new Error(`Workspace ${pkg} not found`);
372
32
  return workspace;
373
33
  };
374
-
375
- // src/lib/yarn/yarnInitCwd.ts
376
- var INIT_CWD = () => {
377
- if (!process.env.INIT_CWD) console.error("Missing INIT_CWD");
378
- return process.env.INIT_CWD;
379
- };
380
-
381
- // src/lib/generateIgnoreFiles.ts
382
- var localeCompare = (a, b) => a.localeCompare(b);
383
- var mergeEntries = (a, b) => [...union(a, b)].toSorted(localeCompare);
384
- var generateIgnoreFiles = (filename, pkg) => {
385
- console.log(chalk4.green(`Generate ${filename} Files`));
386
- const cwd = INIT_CWD() ?? ".";
387
- const workspaces = pkg ? [yarnWorkspace(pkg)] : yarnWorkspaces();
388
- const readEntries = (location) => readNonEmptyLines(`${location}/${filename}`);
389
- const writeEntries = (location, entries) => writeLines(`${location}/${filename}`, entries);
390
- const results = workspaces.map(({ location, name }) => {
391
- try {
392
- writeEntries(location, mergeEntries(readEntries(cwd), readEntries(location)));
393
- return 0;
394
- } catch (ex) {
395
- const error = ex;
396
- console.error(`Generate ${filename} Files [${name}] [${error.message}]`);
397
- return 1;
398
- }
399
- });
400
- const succeeded = results.every((result) => result === 0);
401
- return succeeded ? 0 : 1;
402
- };
403
-
404
- // src/lib/generateReadmeFiles.ts
405
- import { execSync as execSync2 } from "child_process";
406
- import FS, { readFileSync as readFileSync5 } from "fs";
407
- import {
408
- mkdir,
409
- readFile,
410
- writeFile
411
- } from "fs/promises";
412
- import { createRequire as createRequire2 } from "module";
413
- import PATH2 from "path";
414
- import { createInterface } from "readline";
415
- import chalk5 from "chalk";
416
- var require3 = createRequire2(import.meta.url);
417
- var packageRoot2 = PATH2.dirname(require3.resolve("@xylabs/ts-scripts-yarn3/package.json"));
418
- var readmeTemplatesDir = PATH2.resolve(packageRoot2, "templates", "readme");
419
- function fillTemplate(template, data) {
420
- const additionalData = { ...data, safeName: data.name.replaceAll("/", "__").replaceAll("@", "") };
421
- return template.replaceAll(/\{\{(.*?)\}\}/g, (_, key) => additionalData[key.trim()] ?? "");
422
- }
423
- function generateTypedoc(packageLocation, entryPoints) {
424
- const tempDir = PATH2.join(packageLocation, ".temp-typedoc");
425
- try {
426
- if (!FS.existsSync(tempDir)) {
427
- FS.mkdirSync(tempDir, { recursive: true });
428
- }
429
- const typedocConfig = {
430
- disableSources: true,
431
- entryPointStrategy: "expand",
432
- entryPoints: entryPoints.map((ep) => PATH2.resolve(packageLocation, ep)),
433
- excludeExternals: true,
434
- excludeInternal: true,
435
- excludePrivate: true,
436
- githubPages: false,
437
- hideBreadcrumbs: true,
438
- hideGenerator: true,
439
- hidePageTitle: true,
440
- out: tempDir,
441
- plugin: ["typedoc-plugin-markdown"],
442
- readme: "none",
443
- skipErrorChecking: true,
444
- sort: ["source-order"],
445
- theme: "markdown",
446
- useCodeBlocks: true
447
- };
448
- const typedocJsonPath = PATH2.join(tempDir, "typedoc.json");
449
- FS.writeFileSync(typedocJsonPath, JSON.stringify(typedocConfig, null, 2));
450
- try {
451
- execSync2(`npx typedoc --options ${typedocJsonPath}`, {
452
- cwd: process.cwd(),
453
- stdio: ["ignore", "pipe", "pipe"]
454
- });
455
- } catch {
456
- return "";
457
- }
458
- return consolidateMarkdown(tempDir);
459
- } catch {
460
- return "";
461
- } finally {
462
- try {
463
- FS.rmSync(tempDir, { force: true, recursive: true });
464
- } catch {
465
- }
466
- }
467
- }
468
- function consolidateMarkdown(tempDir) {
469
- let consolidated = "## Reference\n\n";
470
- const mainReadmePath = PATH2.join(tempDir, "README.md");
471
- if (FS.existsSync(mainReadmePath)) {
472
- const mainContent = FS.readFileSync(mainReadmePath, "utf8").replace(/^---(.|\n)*?---\n/, "").replace(/^# .+\n/, "").replaceAll(/\]\((.+?)\.md\)/g, "](#$1)");
473
- consolidated += mainContent + "\n\n";
474
- }
475
- consolidated += processDirectory(tempDir);
476
- return consolidated.replaceAll(/\n\n\n+/g, "\n\n").replaceAll(/^#### /gm, "### ").replaceAll(/^##### /gm, "#### ").replaceAll(/^###### /gm, "##### ");
477
- }
478
- function processDirectory(dir, level = 0) {
479
- const indent = " ".repeat(level);
480
- let content = "";
481
- try {
482
- const items = FS.readdirSync(dir, { withFileTypes: true });
483
- for (const item of items) {
484
- if (item.isDirectory()) continue;
485
- if (item.name === "README.md" || !item.name.endsWith(".md")) continue;
486
- const fileContent = FS.readFileSync(PATH2.join(dir, item.name), "utf8").replace(/^---(.|\n)*?---\n/, "");
487
- const moduleName = item.name.replace(".md", "");
488
- content += `
489
-
490
- ${indent}### <a id="${moduleName}"></a>${moduleName}
491
-
492
- `;
493
- content += fileContent.replace(/^# .+\n/, "").replaceAll(/\]\((.+?)\.md\)/g, "](#$1)");
494
- }
495
- for (const item of items) {
496
- if (!item.isDirectory()) continue;
497
- if (item.name === "spec" || item.name.includes(".spec")) continue;
498
- content += `
499
-
500
- ${indent}### ${item.name}
501
- `;
502
- content += processDirectory(PATH2.join(dir, item.name), level + 1);
503
- }
504
- } catch {
505
- }
506
- return content;
507
- }
508
- function askConfirmation(question) {
509
- const rl = createInterface({ input: process.stdin, output: process.stdout });
510
- return new Promise((resolve) => {
511
- rl.question(question, (answer) => {
512
- rl.close();
513
- resolve(answer.toLowerCase() === "y" || answer.toLowerCase() === "yes");
514
- });
515
- });
516
- }
517
- var DEFAULT_README_TEMPLATE = readFileSync5(PATH2.resolve(readmeTemplatesDir, "README.template.md"), "utf8");
518
- var DEFAULT_README_BODY = readFileSync5(PATH2.resolve(readmeTemplatesDir, "README.body.md"), "utf8");
519
- function applyLogoConfig(template, logoUrl, logoLinkUrl) {
520
- let result = template;
521
- if (logoUrl) {
522
- result = result.replace(/\[logo]: .+/, `[logo]: ${logoUrl}`);
523
- if (logoLinkUrl) {
524
- result = result.replace(/\[!\[logo]\[]][^)]*\)/, `[![logo][]](${logoLinkUrl})`);
525
- }
526
- } else {
527
- result = result.replace(/\[!\[logo]\[]][^\n]*\n*/, "");
528
- result = result.replace(/\[logo]: [^\n]*\n?/, "");
529
- }
530
- return result;
531
- }
532
- function resolveTemplatePath(templatePath) {
533
- const cwd = INIT_CWD() ?? ".";
534
- return templatePath ?? PATH2.join(cwd, ".xy", "README.template.md");
535
- }
536
- async function loadOrCreateTemplate(resolvedTemplatePath) {
537
- try {
538
- const template = await readFile(resolvedTemplatePath, "utf8");
539
- return { created: false, template };
540
- } catch {
541
- console.log(chalk5.yellow(`Template not found: ${resolvedTemplatePath}`));
542
- const shouldCreate = await askConfirmation("Would you like to create a stock template? (y/N) ");
543
- if (!shouldCreate) {
544
- throw new Error("Template creation declined");
545
- }
546
- const template = DEFAULT_README_TEMPLATE;
547
- await scaffoldTemplate(resolvedTemplatePath, template);
548
- return { created: true, template };
549
- }
550
- }
551
- async function scaffoldTemplate(resolvedTemplatePath, template) {
552
- const xyDir = PATH2.dirname(resolvedTemplatePath);
553
- await mkdir(xyDir, { recursive: true });
554
- await writeFile(resolvedTemplatePath, template);
555
- console.log(chalk5.green(`Created template: ${resolvedTemplatePath}`));
556
- const bodyPath = PATH2.join(xyDir, "README.body.md");
557
- await writeFile(bodyPath, DEFAULT_README_BODY);
558
- console.log(chalk5.green(`Created body template: ${bodyPath}`));
559
- }
560
- async function resolveBody(location, defaultBody) {
561
- const localBodyPath = PATH2.join(location, "README.body.md");
562
- try {
563
- return await readFile(localBodyPath, "utf8");
564
- } catch {
565
- return defaultBody;
566
- }
567
- }
568
- async function generateReadmeForWorkspace(location, name, template, defaultBody, typedoc, verbose) {
569
- try {
570
- const pkgJsonPath = PATH2.join(location, "package.json");
571
- const pkgJson = JSON.parse(await readFile(pkgJsonPath, "utf8"));
572
- const body = await resolveBody(location, defaultBody);
573
- const typedocContent = typedoc ? generateTypedoc(location, ["src/index*.ts"]) : "";
574
- const readmeContent = fillTemplate(template, {
575
- ...pkgJson,
576
- body,
577
- typedoc: typedocContent
578
- });
579
- await writeFile(PATH2.join(location, "README.md"), readmeContent);
580
- if (verbose) console.log(chalk5.green(` ${name}`));
581
- return true;
582
- } catch (ex) {
583
- const error = ex;
584
- console.warn(chalk5.yellow(` Skipped ${location}: ${error.message}`));
585
- return false;
586
- }
587
- }
588
- async function generateReadmeFiles({
589
- logoLinkUrl,
590
- logoUrl,
591
- pkg,
592
- templatePath,
593
- typedoc = false,
594
- verbose = false
595
- }) {
596
- console.log(chalk5.green("Generate README Files"));
597
- const resolvedTemplatePath = resolveTemplatePath(templatePath);
598
- let template;
599
- let templateCreated;
600
- try {
601
- ({ template, created: templateCreated } = await loadOrCreateTemplate(resolvedTemplatePath));
602
- } catch {
603
- return 1;
604
- }
605
- template = applyLogoConfig(template, logoUrl, logoLinkUrl);
606
- if (templateCreated) {
607
- console.log(chalk5.green("Generating README files for all packages..."));
608
- }
609
- const xyDir = PATH2.dirname(resolvedTemplatePath);
610
- const xyBodyPath = PATH2.join(xyDir, "README.body.md");
611
- let defaultBody;
612
- try {
613
- defaultBody = await readFile(xyBodyPath, "utf8");
614
- } catch {
615
- defaultBody = DEFAULT_README_BODY;
616
- }
617
- const workspaces = pkg && !templateCreated ? [yarnWorkspace(pkg)] : yarnWorkspaces();
618
- let failed = false;
619
- for (const { location, name } of workspaces) {
620
- const success = await generateReadmeForWorkspace(location, name, template, defaultBody, typedoc, verbose);
621
- if (!success) failed = true;
622
- }
623
- return failed ? 1 : 0;
624
- }
625
-
626
- // src/lib/gitignoreTemplate.ts
627
- import { readFileSync as readFileSync6 } from "fs";
628
- import { createRequire as createRequire3 } from "module";
629
- import PATH3 from "path";
630
- var require4 = createRequire3(import.meta.url);
631
- var packageRoot3 = PATH3.dirname(require4.resolve("@xylabs/ts-scripts-yarn3/package.json"));
632
- var templatesDir2 = PATH3.resolve(packageRoot3, "templates", "gitignore");
633
- var gitignoreTemplate = () => readFileSync6(PATH3.resolve(templatesDir2, "template.gitignore"), "utf8");
634
-
635
- // src/lib/loadConfig.ts
636
- import chalk6 from "chalk";
637
- import { cosmiconfig } from "cosmiconfig";
638
- import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
639
- import deepmerge from "deepmerge";
640
- var config;
641
- var loadConfig = async (params) => {
642
- if (config === void 0) {
643
- const cosmicConfigResult = await cosmiconfig("xy", { cache: true, loaders: { ".ts": TypeScriptLoader() } }).search();
644
- config = cosmicConfigResult?.config;
645
- const configFilePath = cosmicConfigResult?.filepath;
646
- if (configFilePath !== void 0) {
647
- console.log(chalk6.green(`Loaded config from ${configFilePath}`));
648
- if (config.verbose) {
649
- console.log(chalk6.gray(`${JSON.stringify(config, null, 2)}`));
650
- }
651
- }
652
- }
653
- return deepmerge(config, params ?? {});
654
- };
655
-
656
- // src/lib/parsedPackageJSON.ts
657
- import { readFileSync as readFileSync7 } from "fs";
658
- var parsedPackageJSON = (path) => {
659
- const pathToPackageJSON = path ?? process.env.npm_package_json ?? "";
660
- const packageJSON = readFileSync7(pathToPackageJSON).toString();
661
- return JSON.parse(packageJSON);
662
- };
663
-
664
- // src/lib/runSteps.ts
665
- import { spawnSync as spawnSync3 } from "child_process";
666
- import { existsSync as existsSync3 } from "fs";
667
- import chalk7 from "chalk";
668
- var runSteps = (name, steps, exitOnFail = true, messages) => {
669
- return safeExit(() => {
670
- const pkgName = process.env.npm_package_name;
671
- console.log(chalk7.green(`${name} [${pkgName}]`));
672
- let totalStatus = 0;
673
- for (const [i, [command, args, config2]] of steps.entries()) {
674
- if (messages?.[i]) {
675
- console.log(chalk7.gray(messages?.[i]));
676
- }
677
- const argList = Array.isArray(args) ? args : args.split(" ");
678
- if (command === "node" && !existsSync3(argList[0])) {
679
- throw new Error(`File not found [${argList[0]}]`);
680
- }
681
- const status = spawnSync3(command, Array.isArray(args) ? args : args.split(" "), {
682
- ...config2,
683
- encoding: "utf8",
684
- env: { FORCE_COLOR: "3", ...process.env },
685
- shell: true,
686
- stdio: "inherit"
687
- }).status ?? 0;
688
- checkResult(name, status, "error", exitOnFail);
689
- totalStatus += status ?? 0;
690
- }
691
- return totalStatus;
692
- }, !!exitOnFail);
693
- };
694
-
695
- // src/lib/runStepsAsync.ts
696
- import { spawn } from "child_process";
697
- import { existsSync as existsSync4 } from "fs";
698
- import chalk8 from "chalk";
699
- var runStepAsync = (name, step, exitOnFail = true, message) => {
700
- return new Promise((resolve) => {
701
- const [command, args, config2] = step;
702
- if (message) {
703
- console.log(chalk8.gray(message));
704
- }
705
- const argList = Array.isArray(args) ? args : args.split(" ");
706
- if (command === "node" && !existsSync4(argList[0])) {
707
- throw new Error(`File not found [${argList[0]}]`);
708
- }
709
- spawn(command, Array.isArray(args) ? args : args.split(" "), {
710
- ...config2,
711
- env: { FORCE_COLOR: "3", ...process.env },
712
- shell: true,
713
- stdio: "inherit"
714
- }).on("close", (code) => {
715
- if (code) {
716
- console.error(
717
- chalk8.red(
718
- `Command Exited With Non-Zero Result [${chalk8.gray(code)}] | ${chalk8.yellow(command)} ${chalk8.white(
719
- Array.isArray(args) ? args.join(" ") : args
720
- )}`
721
- )
722
- );
723
- checkResult(name, code, "error", exitOnFail);
724
- resolve(code);
725
- } else {
726
- resolve(0);
727
- }
728
- });
729
- });
730
- };
731
- var runStepsAsync = async (name, steps, exitOnFail = true, messages) => {
732
- return await safeExitAsync(async () => {
733
- const pkgName = process.env.npm_package_name;
734
- console.log(chalk8.green(`${name} [${pkgName}]`));
735
- let result = 0;
736
- for (const [i, step] of steps.entries()) {
737
- result += await runStepAsync(name, step, exitOnFail, messages?.[i]);
738
- }
739
- return result;
740
- });
741
- };
742
-
743
- // src/lib/runXy.ts
744
- var runXy = (command) => {
745
- return runSteps(
746
- `XY [${command}]`,
747
- [["yarn", ["xy", command, ...process.argv.filter((value, index) => index > 1 ? value : void 0)]]]
748
- );
749
- };
750
-
751
- // src/lib/runXyWithWarning.ts
752
- import chalk9 from "chalk";
753
- var runXyWithWarning = (command) => {
754
- const commandString = `yarn ${command}`;
755
- const commandXyString = `yarn xy ${command}`;
756
- console.warn(chalk9.yellow(`WARNING: [${chalk9.white(commandString)}] is deprecated for XY Labs Scripts.`));
757
- console.warn(chalk9.gray(`Did you mean [${chalk9.magenta(commandXyString)}]?`));
758
- return 1;
759
- };
760
-
761
- // src/lib/tryRunLocalScript.ts
762
- import { spawnSync as spawnSync4 } from "child_process";
763
- import { readFileSync as readFileSync8 } from "fs";
764
- import PATH4 from "path";
765
- import chalk10 from "chalk";
766
- function tryRunLocalScript(commandName) {
767
- if (process.env.XY_LOCAL_SCRIPT === "1") return void 0;
768
- const rootPkgPath = PATH4.resolve(process.cwd(), "package.json");
769
- let rootPkg;
770
- try {
771
- rootPkg = JSON.parse(readFileSync8(rootPkgPath, "utf8"));
772
- } catch {
773
- return void 0;
774
- }
775
- if (!rootPkg.scripts?.[commandName]) return void 0;
776
- console.log(chalk10.blue(`Delegating "${commandName}" to local script`));
777
- const result = spawnSync4("yarn", ["run", commandName], {
778
- cwd: process.cwd(),
779
- encoding: "utf8",
780
- env: {
781
- FORCE_COLOR: "3",
782
- ...process.env,
783
- XY_LOCAL_SCRIPT: "1"
784
- },
785
- shell: true,
786
- stdio: "inherit"
787
- });
788
- return result.status ?? 1;
789
- }
790
34
  export {
791
- CROSS_PLATFORM_NEWLINE,
792
- DEFAULT_README_BODY,
793
- DEFAULT_README_TEMPLATE,
794
- DuplicateDetector,
795
- INIT_CWD,
796
- LEGACY_COMMANDS_PREFIX,
797
- WINDOWS_NEWLINE_REGEX,
798
- XYLABS_COMMANDS_PREFIX,
799
- XYLABS_RULES_PREFIX,
800
- XYLABS_SKILLS_PREFIX,
801
- applyLogoConfig,
802
- checkResult,
803
- claudeCommandTemplates,
804
- claudeMdLocalTemplate,
805
- claudeMdProjectTemplate,
806
- claudeMdRuleTemplates,
807
- claudeSkillTemplates,
808
- createBuildConfig,
809
- defaultBuildConfig,
810
- defaultReadFileSyncOptions,
811
- deleteGlob,
812
- detectDuplicateDependencies,
813
- empty,
814
- generateIgnoreFiles,
815
- generateReadmeFiles,
816
- gitignoreTemplate,
817
35
  isYarnVersionOrGreater,
818
- loadConfig,
819
- multiLineToJSONArray,
820
- notEmpty,
821
- parsedPackageJSON,
822
- processEx,
823
- readLines,
824
- readNonEmptyLines,
825
- resolveTemplatePath,
826
- runStepAsync,
827
- runSteps,
828
- runStepsAsync,
829
- runXy,
830
- runXyWithWarning,
831
- safeExit,
832
- safeExitAsync,
833
- scaffoldTemplate,
834
- tryReadFileSync,
835
- tryRunLocalScript,
836
- union,
837
- withErrnoException,
838
- withError,
839
- writeLines,
840
36
  yarnWorkspace,
841
37
  yarnWorkspaces
842
38
  };