binary-collections 2.0.11 → 2.0.13

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 (330) hide show
  1. package/binaries/binary-executor.cjs +89 -13
  2. package/binaries/clean-nodemodule.cjs +89 -13
  3. package/binaries/clean-nodemodules.cjs +89 -13
  4. package/binaries/dev.cjs +89 -13
  5. package/binaries/empty.cjs +89 -13
  6. package/binaries/git-reduce-size.cjs +89 -13
  7. package/binaries/javakill.cjs +89 -13
  8. package/binaries/kill-process.cjs +89 -13
  9. package/binaries/nodekill.cjs +89 -13
  10. package/binaries/prod.cjs +89 -13
  11. package/binaries/py.cjs +89 -13
  12. package/binaries/rmfind.cjs +89 -13
  13. package/binaries/rmx +15 -1
  14. package/binaries/rmx.cjs +89 -13
  15. package/binaries/rmx.cmd +12 -0
  16. package/binaries/submodule-token.cjs +89 -13
  17. package/binaries/test-cjs +9 -1
  18. package/binaries/test-cjs.cjs +89 -13
  19. package/binaries/test-cjs.cmd +16 -1
  20. package/binaries/test-esm +16 -0
  21. package/binaries/test-esm.cjs +254 -0
  22. package/binaries/test-esm.cmd +23 -0
  23. package/binaries/yarn-clean +1 -1
  24. package/binaries/yarn-clean.cjs +89 -13
  25. package/binaries/yarn-clean.cmd +1 -1
  26. package/binaries/yarn-clean.py +33 -15
  27. package/binaries/yc +131 -0
  28. package/binaries/yc.cjs +254 -0
  29. package/binaries/ycw +256 -0
  30. package/binaries/ycw.cjs +254 -0
  31. package/docs-src/binary-collections.md +34 -0
  32. package/docs-src/changelog.md +26 -0
  33. package/docs-src/clean-github-actions-caches.md +91 -2
  34. package/docs-src/copy-move-file.md +59 -0
  35. package/docs-src/del-gradle.md +17 -0
  36. package/docs-src/del-ps.md +28 -0
  37. package/docs-src/downloader.md +62 -0
  38. package/docs-src/env-helpers.md +29 -0
  39. package/docs-src/find-node-modules.md +17 -0
  40. package/docs-src/git-diff.md +33 -0
  41. package/docs-src/git-fix.md +34 -0
  42. package/docs-src/git-purge.md +17 -0
  43. package/docs-src/git-reduce-size.md +17 -0
  44. package/docs-src/git-undo.md +21 -0
  45. package/docs-src/kill-night-crows.md +26 -0
  46. package/docs-src/node-cache-cleaner.md +182 -0
  47. package/docs-src/node-executor.md +50 -0
  48. package/docs-src/node-package-packer.md +48 -0
  49. package/docs-src/npm-run-series.md +43 -0
  50. package/docs-src/package-resolutions-updater.md +22 -0
  51. package/docs-src/php-cs-fixer-staged.md +19 -0
  52. package/docs-src/print-directory-tree.md +35 -0
  53. package/docs-src/print-tarball-tree.md +55 -0
  54. package/docs-src/py.md +19 -0
  55. package/docs-src/remove-module.md +32 -0
  56. package/docs-src/rmfind-rmx.md +21 -0
  57. package/docs-src/rmpath.md +38 -0
  58. package/docs-src/run-by-checksum.md +87 -0
  59. package/docs-src/submodule-install.md +31 -0
  60. package/docs-src/submodule-remove.md +22 -0
  61. package/docs-src/submodule-token.md +17 -0
  62. package/docs-src/test-runners.md +21 -0
  63. package/docs-src/yarn-install.md +31 -0
  64. package/docs-src/yarn-reinstall.md +27 -0
  65. package/lib/binary-collections/config.cjs +126 -0
  66. package/lib/binary-collections/config.mjs +7 -0
  67. package/lib/binary-collections/executeScript.cjs +19 -0
  68. package/lib/binary-collections/executeScript.d.cts +12 -0
  69. package/lib/binary-collections/executeScript.mjs +6 -0
  70. package/lib/binary-collections/findScript.cjs +309 -0
  71. package/lib/binary-collections/findScript.d.cts +12 -0
  72. package/lib/binary-collections/findScript.mjs +7 -0
  73. package/lib/binary-collections/listScript.cjs +291 -0
  74. package/lib/binary-collections/listScript.d.cts +19 -0
  75. package/lib/binary-collections/listScript.mjs +7 -0
  76. package/lib/binary-collections.cjs +264 -157
  77. package/lib/binary-collections.mjs +26 -286
  78. package/lib/changelog.cjs +9 -14
  79. package/lib/changelog.mjs +2 -2
  80. package/lib/chunk-2MN4VPV2.mjs +246 -0
  81. package/lib/chunk-6C7KTYGZ.mjs +41 -0
  82. package/lib/{chunk-Z6JLYU2J.mjs → chunk-6RK5UCTP.mjs} +7 -12
  83. package/lib/chunk-CD3HF3LK.mjs +190 -0
  84. package/lib/chunk-FLYSZFLW.mjs +61 -0
  85. package/lib/{chunk-N436BNBK.mjs → chunk-GAGABICI.mjs} +19 -13
  86. package/lib/chunk-H44UWUFY.mjs +105 -0
  87. package/lib/chunk-KLKAIFKI.mjs +40 -0
  88. package/lib/chunk-LVSPEFU2.mjs +86 -0
  89. package/lib/{chunk-RWLXRTYP.mjs → chunk-MGPYPKIE.mjs} +2 -2
  90. package/lib/chunk-NGFK3EYW.mjs +28 -0
  91. package/lib/chunk-NQXUYO67.mjs +253 -0
  92. package/lib/chunk-NVEG3LEZ.mjs +143 -0
  93. package/lib/chunk-OBXLTXFJ.mjs +34 -0
  94. package/lib/chunk-OGXVGBRI.mjs +29 -0
  95. package/lib/chunk-OXV52GD5.mjs +62 -0
  96. package/lib/chunk-PXBMHE7O.mjs +35 -0
  97. package/lib/chunk-QD4T255Z.mjs +40 -0
  98. package/lib/chunk-QII2EKCS.mjs +26 -0
  99. package/lib/chunk-R5FJOR63.mjs +47 -0
  100. package/lib/chunk-RDGDLSPD.mjs +76 -0
  101. package/lib/chunk-RDN6HF5Z.mjs +79 -0
  102. package/lib/chunk-RJKTSUAX.mjs +123 -0
  103. package/lib/{chunk-XA3SNBPA.mjs → chunk-TBWXE7ST.mjs} +97 -38
  104. package/lib/chunk-UXCFNAR6.mjs +55 -0
  105. package/lib/{chunk-M3YIYRHT.mjs → chunk-UY5VUEA3.mjs} +1 -1
  106. package/lib/chunk-WSHVPGNM.mjs +44 -0
  107. package/lib/{chunk-66PAU5PS.mjs → chunk-X2B3X7D4.mjs} +10 -6
  108. package/lib/clean-github-actions-caches-cli.cjs +507 -0
  109. package/lib/clean-github-actions-caches-cli.mjs +74 -0
  110. package/lib/clean-github-actions-caches.cjs +246 -106
  111. package/lib/clean-github-actions-caches.d.cts +53 -1
  112. package/lib/clean-github-actions-caches.mjs +5 -130
  113. package/lib/cross-env/command.cjs +63 -0
  114. package/lib/cross-env/command.d.ts +8 -0
  115. package/lib/cross-env/command.js +45 -0
  116. package/lib/{ps/isWin.mjs → cross-env/command.mjs} +4 -5
  117. package/lib/cross-env/index.cjs +178 -0
  118. package/lib/cross-env/index.d.ts +8 -0
  119. package/lib/cross-env/index.js +102 -0
  120. package/lib/cross-env/index.mjs +101 -0
  121. package/lib/cross-env/variable.cjs +60 -0
  122. package/lib/cross-env/variable.d.ts +7 -0
  123. package/lib/cross-env/variable.js +59 -0
  124. package/lib/cross-env/variable.mjs +9 -0
  125. package/lib/del-gradle.cjs +8 -13
  126. package/lib/del-gradle.js +8 -8
  127. package/lib/del-gradle.mjs +1 -1
  128. package/lib/del-node-modules.cjs +185 -3
  129. package/lib/del-node-modules.js +25 -25
  130. package/lib/del-node-modules.mjs +6 -3
  131. package/lib/{del-ps.cjs → del-ps-cli.cjs} +38 -43
  132. package/lib/del-ps-cli.d.mts +1 -0
  133. package/lib/del-ps-cli.mjs +44 -0
  134. package/lib/del-yarn-caches.cjs +8 -13
  135. package/lib/del-yarn-caches.js +2 -2
  136. package/lib/del-yarn-caches.mjs +1 -1
  137. package/lib/downloader-cli.cjs +256 -0
  138. package/lib/downloader-cli.d.cts +2 -0
  139. package/lib/downloader-cli.mjs +90 -0
  140. package/lib/file/copy-cli.cjs +273 -0
  141. package/lib/file/copy-cli.d.mts +1 -0
  142. package/lib/file/copy-cli.mjs +59 -0
  143. package/lib/file/copy.cjs +56 -0
  144. package/lib/file/copy.d.mts +1 -0
  145. package/lib/file/copy.mjs +8 -0
  146. package/lib/file/move-cli.cjs +272 -0
  147. package/lib/file/move-cli.d.mts +1 -0
  148. package/lib/file/move-cli.mjs +59 -0
  149. package/lib/file/move.cjs +55 -0
  150. package/lib/file/move.d.mts +1 -0
  151. package/lib/file/move.mjs +8 -0
  152. package/lib/find-node-modules-cli.cjs +1 -1
  153. package/lib/find-node-modules-cli.js +1 -1
  154. package/lib/find-node-modules-cli.mjs +1 -1
  155. package/lib/find-node-modules.cjs +1 -1
  156. package/lib/find-node-modules.mjs +1 -1
  157. package/lib/free-chatgpt.cjs +27 -26
  158. package/lib/free-chatgpt.js +10 -10
  159. package/lib/free-chatgpt.mjs +2 -2
  160. package/lib/git/user-config.cjs +9 -14
  161. package/lib/git/user-config.mjs +2 -2
  162. package/lib/git-diff-cli.cjs +273 -66
  163. package/lib/git-diff-cli.mjs +5 -4
  164. package/lib/git-diff.cjs +273 -66
  165. package/lib/git-diff.d.ts +2 -1
  166. package/lib/git-diff.js +153 -39
  167. package/lib/git-diff.mjs +5 -4
  168. package/lib/git-fix.cjs +9 -14
  169. package/lib/git-fix.mjs +2 -2
  170. package/lib/git-purge.cjs +9 -14
  171. package/lib/git-purge.mjs +2 -2
  172. package/lib/index.cjs +1 -1
  173. package/lib/index.d.ts +1 -1
  174. package/lib/index.mjs +1 -1
  175. package/lib/kill-night-crows.cjs +7 -7
  176. package/lib/kill-night-crows.mjs +7 -7
  177. package/lib/node-cache-cleaner/npm.cjs +65 -0
  178. package/lib/node-cache-cleaner/npm.d.ts +2 -0
  179. package/lib/node-cache-cleaner/npm.js +41 -0
  180. package/lib/node-cache-cleaner/npm.mjs +10 -0
  181. package/lib/node-cache-cleaner/npx.cjs +89 -0
  182. package/lib/node-cache-cleaner/npx.d.ts +4 -0
  183. package/lib/node-cache-cleaner/npx.js +82 -0
  184. package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
  185. package/lib/node-cache-cleaner/yarn.cjs +73 -0
  186. package/lib/node-cache-cleaner/yarn.d.ts +2 -0
  187. package/lib/node-cache-cleaner/yarn.js +62 -0
  188. package/lib/node-cache-cleaner/yarn.mjs +10 -0
  189. package/lib/node-cache-cleaner-cli.cjs +365 -0
  190. package/lib/node-cache-cleaner-cli.d.ts +2 -0
  191. package/lib/node-cache-cleaner-cli.js +57 -0
  192. package/lib/node-cache-cleaner-cli.mjs +60 -0
  193. package/lib/node-executor.cjs +272 -0
  194. package/lib/node-executor.d.cts +2 -0
  195. package/lib/node-executor.mjs +106 -0
  196. package/lib/node-package-packer/build-readme.cjs +150 -0
  197. package/lib/node-package-packer/build-readme.d.mts +10 -0
  198. package/lib/node-package-packer/build-readme.mjs +10 -0
  199. package/lib/node-package-packer/build-tarball.cjs +495 -0
  200. package/lib/node-package-packer/build-tarball.d.mts +33 -0
  201. package/lib/node-package-packer/build-tarball.mjs +175 -0
  202. package/lib/node-package-packer-cli.cjs +525 -0
  203. package/lib/node-package-packer-cli.d.mts +1 -0
  204. package/lib/node-package-packer-cli.mjs +34 -0
  205. package/lib/npm-run-series.cjs +28 -40
  206. package/lib/npm-run-series.mjs +21 -7
  207. package/lib/package-resolutions-updater-cli.cjs +255 -173
  208. package/lib/package-resolutions-updater-cli.mjs +19 -40
  209. package/lib/package-resolutions-updater.cjs +244 -141
  210. package/lib/package-resolutions-updater.d.mts +54 -1
  211. package/lib/package-resolutions-updater.mjs +8 -5
  212. package/lib/php-cs-fixer-staged.cjs +1 -1
  213. package/lib/php-cs-fixer-staged.mjs +1 -1
  214. package/lib/print-directory-tree.cjs +18 -20
  215. package/lib/print-directory-tree.mjs +11 -8
  216. package/lib/print-tarball-tree.cjs +262 -0
  217. package/lib/print-tarball-tree.d.mts +1 -0
  218. package/lib/print-tarball-tree.mjs +68 -0
  219. package/lib/ps/connected-domain.js +10 -10
  220. package/lib/ps/index.cjs +11 -11
  221. package/lib/ps/index.mjs +180 -174
  222. package/lib/ps/table-parser.d.ts +3 -4
  223. package/lib/ps/table-parser.js +15 -22
  224. package/lib/remove-module.cjs +19 -24
  225. package/lib/remove-module.mjs +2 -2
  226. package/lib/rm-node-module-cli.cjs +389 -0
  227. package/lib/rm-node-module-cli.d.cts +1 -0
  228. package/lib/rm-node-module-cli.mjs +92 -0
  229. package/lib/rm-node-modules.cjs +127 -0
  230. package/lib/rm-node-modules.d.cts +35 -0
  231. package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
  232. package/lib/rmpath-cli.cjs +285 -0
  233. package/lib/rmpath-cli.d.mts +1 -0
  234. package/lib/rmpath-cli.mjs +23 -0
  235. package/lib/rmpath.cjs +6 -217
  236. package/lib/rmpath.mjs +5 -101
  237. package/lib/run-by-checksum/cache.cjs +69 -0
  238. package/lib/run-by-checksum/cache.d.ts +19 -0
  239. package/lib/run-by-checksum/cache.js +50 -0
  240. package/lib/run-by-checksum/cache.mjs +12 -0
  241. package/lib/run-by-checksum/hash.cjs +72 -0
  242. package/lib/run-by-checksum/hash.d.ts +14 -0
  243. package/lib/run-by-checksum/hash.js +85 -0
  244. package/lib/run-by-checksum/hash.mjs +10 -0
  245. package/lib/run-by-checksum/run.cjs +169 -0
  246. package/lib/run-by-checksum/run.d.ts +22 -0
  247. package/lib/run-by-checksum/run.js +93 -0
  248. package/lib/run-by-checksum/run.mjs +10 -0
  249. package/lib/run-by-checksum-cli.cjs +382 -0
  250. package/lib/run-by-checksum-cli.d.ts +2 -0
  251. package/lib/run-by-checksum-cli.js +43 -0
  252. package/lib/run-by-checksum-cli.mjs +56 -0
  253. package/lib/submodule-install.cjs +55 -47
  254. package/lib/submodule-install.mjs +48 -35
  255. package/lib/submodule-remove-cli.cjs +170 -4
  256. package/lib/submodule-remove-cli.js +5 -5
  257. package/lib/submodule-remove-cli.mjs +6 -4
  258. package/lib/utils/chatgpt.cjs +19 -13
  259. package/lib/utils/chatgpt.js +94 -94
  260. package/lib/utils/chatgpt.mjs +1 -1
  261. package/lib/utils/fetchResponse.cjs +24 -0
  262. package/lib/utils/fetchResponse.d.cts +25 -0
  263. package/lib/utils/fetchResponse.mjs +6 -0
  264. package/lib/utils/findEnvFiles.cjs +28 -46
  265. package/lib/utils/findEnvFiles.d.cts +19 -0
  266. package/lib/utils/findEnvFiles.mjs +3 -5
  267. package/lib/utils/findWorkspaceRoot.js +4 -4
  268. package/lib/utils/index.cjs +7 -12
  269. package/lib/utils/index.d.cts +2 -9
  270. package/lib/utils/index.mjs +1 -1
  271. package/lib/utils/isGithubTokenValid.js +7 -7
  272. package/lib/{ps/isWin.cjs → utils/isWindows.cjs} +12 -7
  273. package/lib/utils/isWindows.d.ts +5 -0
  274. package/lib/utils/isWindows.js +10 -0
  275. package/lib/utils/isWindows.mjs +10 -0
  276. package/lib/utils/runBash.cjs +53 -0
  277. package/lib/utils/runBash.d.cts +12 -0
  278. package/lib/utils/runBash.mjs +66 -0
  279. package/lib/yarn-per-branch-lock-installer.cjs +288 -0
  280. package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
  281. package/lib/yarn-per-branch-lock-installer.mjs +122 -0
  282. package/lib/yarn-reinstall.cjs +8 -13
  283. package/lib/yarn-reinstall.mjs +1 -1
  284. package/package.json +91 -57
  285. package/readme.html +784 -0
  286. package/readme.md +107 -219
  287. package/releases/readme.md +6 -3
  288. package/test/README.md +2 -2
  289. package/test-project/workspaces/workspace-a/readme.md +20 -0
  290. package/test-project/workspaces/workspace-a/release/readme.md +42 -0
  291. package/test-project/workspaces/workspace-a/test/readme.md +12 -0
  292. package/test-project/workspaces/workspace-b/readme.md +94 -0
  293. package/test-project/workspaces/workspace-b/requirements.txt +1 -0
  294. package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
  295. package/tmp/test-repo/README.md +2 -35
  296. package/tmp/test-repo-runChecksum/test-complex-glob/README.md +1 -0
  297. package/tmp/test-repo-runChecksum/test-mixed-args/README.md +1 -0
  298. package/lib/binary-collections-config.cjs +0 -15
  299. package/lib/chunk-2CBJCW7E.mjs +0 -81
  300. package/lib/chunk-4UHL4WVN.mjs +0 -136
  301. package/lib/chunk-6HHJRKFB.mjs +0 -59
  302. package/lib/chunk-6S4NXESK.mjs +0 -26
  303. package/lib/chunk-7XTEJHOE.mjs +0 -193
  304. package/lib/chunk-AJDD5DZM.mjs +0 -109
  305. package/lib/chunk-FCDQGYBF.mjs +0 -136
  306. package/lib/chunk-GEYA2USY.mjs +0 -207
  307. package/lib/chunk-GJTGHXRA.mjs +0 -356
  308. package/lib/chunk-ID2WBTE2.mjs +0 -80
  309. package/lib/chunk-JXFOHKDM.mjs +0 -239
  310. package/lib/chunk-NCXAP7AA.mjs +0 -31
  311. package/lib/chunk-PDSXF5HY.mjs +0 -187
  312. package/lib/chunk-TOIVAQF7.mjs +0 -136
  313. package/lib/chunk-V5SKYJUB.mjs +0 -136
  314. package/lib/chunk-WSRETQCA.mjs +0 -59
  315. package/lib/chunk-YYLIQQKF.mjs +0 -31
  316. package/lib/del-ps.js +0 -32
  317. package/lib/del-ps.mjs +0 -43
  318. package/lib/ps/index.d.cjs +0 -17
  319. package/lib/ps/index.d.ts +0 -2
  320. package/lib/ps/index.js +0 -254
  321. package/lib/ps/isWin.d.ts +0 -2
  322. package/lib/ps/isWin.js +0 -4
  323. package/lib/utils/findEnvFiles.d.ts +0 -8
  324. package/lib/utils/findEnvFiles.js +0 -121
  325. package/test/package.json +0 -20
  326. package/test-project/package.json +0 -16
  327. package/tmp/test-repo/package.json +0 -7
  328. package/tmp/typedoc/readme.md +0 -320
  329. /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
  330. /package/lib/{del-ps.d.ts → clean-github-actions-caches-cli.d.cts} +0 -0
@@ -0,0 +1,389 @@
1
+ #!/usr/bin/env node
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __esm = (fn, res) => function __init() {
4
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5
+ };
6
+ var __commonJS = (cb, mod) => function __require() {
7
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
8
+ };
9
+
10
+ // node_modules/tsup/assets/cjs_shims.js
11
+ var init_cjs_shims = __esm({
12
+ "node_modules/tsup/assets/cjs_shims.js"() {
13
+ }
14
+ });
15
+
16
+ // src/utils/index.cjs
17
+ var require_utils = __commonJS({
18
+ "src/utils/index.cjs"(exports2, module2) {
19
+ init_cjs_shims();
20
+ var fs2 = require("fs");
21
+ var path2 = require("upath");
22
+ var minimistLib = require("minimist");
23
+ var argv2 = minimistLib(process.argv.slice(2));
24
+ var { exec } = require("child_process");
25
+ var { promisify } = require("util");
26
+ var execAsync = promisify(exec);
27
+ async function parseGitRemotes() {
28
+ try {
29
+ const { stdout } = await execAsync("git remote -v");
30
+ const lines = stdout.split("\n");
31
+ const remotes = {};
32
+ lines.forEach((line) => {
33
+ const [name, url] = line.split(" ");
34
+ if (name && url) {
35
+ const [repoUrl] = url.split(" ");
36
+ try {
37
+ const parsedUrl = new URL(repoUrl);
38
+ const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
39
+ if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
40
+ let repoPath = pathParts.join("/");
41
+ if (repoPath.endsWith(".git")) {
42
+ repoPath = repoPath.slice(0, -4);
43
+ }
44
+ remotes[name] = repoPath;
45
+ }
46
+ } catch (e) {
47
+ console.error("URL Parsing Error:", e.message);
48
+ }
49
+ }
50
+ });
51
+ return remotes;
52
+ } catch (error) {
53
+ console.error("Error:", error.message);
54
+ return {};
55
+ }
56
+ }
57
+ module2.exports.parseGitRemotes = parseGitRemotes;
58
+ function getArgs2(opts) {
59
+ if (opts) {
60
+ return minimistLib(process.argv.slice(2), opts);
61
+ }
62
+ return argv2;
63
+ }
64
+ module2.exports.getArgs = getArgs2;
65
+ function del(fullPath) {
66
+ try {
67
+ if (!fs2.existsSync(fullPath)) return;
68
+ const stat = fs2.lstatSync(fullPath);
69
+ if (stat.isSymbolicLink()) {
70
+ try {
71
+ fs2.unlinkSync(fullPath);
72
+ console.log("deleted symlink", fullPath);
73
+ } catch (e) {
74
+ console.log("failed delete symlink", fullPath, e && e.message);
75
+ }
76
+ return;
77
+ }
78
+ if (stat.isDirectory()) {
79
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
80
+ for (let i = 0; i < subdir.length; i++) {
81
+ del(subdir[i]);
82
+ }
83
+ try {
84
+ fs2.rmdirSync(fullPath);
85
+ console.log("deleted", fullPath);
86
+ } catch (_e) {
87
+ try {
88
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
89
+ console.log("deleted", fullPath);
90
+ } catch (ee) {
91
+ console.log("failed delete", fullPath, ee && ee.message);
92
+ }
93
+ }
94
+ return;
95
+ }
96
+ try {
97
+ fs2.unlinkSync(fullPath);
98
+ console.log("deleted", fullPath);
99
+ } catch (_e) {
100
+ try {
101
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
102
+ console.log("deleted", fullPath);
103
+ } catch (ee) {
104
+ console.log("failed delete", fullPath, ee && ee.message);
105
+ }
106
+ }
107
+ } catch (err) {
108
+ console.log("failed delete", fullPath, err && err.message);
109
+ }
110
+ }
111
+ module2.exports.del = del;
112
+ function delStream(globStream) {
113
+ globStream.stream().on("data", (result) => {
114
+ const fullPath = path2.resolve(process.cwd(), result);
115
+ try {
116
+ if (fs2.existsSync(fullPath)) {
117
+ const stat = fs2.lstatSync(fullPath);
118
+ if (stat.isSymbolicLink()) {
119
+ try {
120
+ fs2.unlinkSync(fullPath);
121
+ console.log("deleted symlink", fullPath);
122
+ } catch (e) {
123
+ console.log("failed delete symlink", fullPath, e && e.message);
124
+ }
125
+ return;
126
+ }
127
+ if (stat.isDirectory()) {
128
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
129
+ for (let i = 0; i < subdir.length; i++) {
130
+ del(subdir[i]);
131
+ }
132
+ }
133
+ }
134
+ del(fullPath);
135
+ } catch (err) {
136
+ console.log("failed processing", fullPath, err && err.message);
137
+ }
138
+ });
139
+ }
140
+ module2.exports.delStream = delStream;
141
+ function getFileTreeString(hashArray) {
142
+ const tree = {};
143
+ const hashMap = {};
144
+ for (const entry of hashArray) {
145
+ const [filePath, hash] = entry.split(" ");
146
+ hashMap[filePath] = hash;
147
+ const parts = filePath.split("/");
148
+ let current = tree;
149
+ for (let i = 0; i < parts.length; i++) {
150
+ const part = parts[i];
151
+ if (i === parts.length - 1) {
152
+ current[part] = null;
153
+ } else {
154
+ current[part] = current[part] || {};
155
+ current = current[part];
156
+ }
157
+ }
158
+ }
159
+ function printNode(node, prefix = "", parentPath = "") {
160
+ const keys = Object.keys(node).sort();
161
+ let lines = [];
162
+ keys.forEach((key, idx) => {
163
+ const isLast = idx === keys.length - 1;
164
+ const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
165
+ const currentPath = parentPath ? parentPath + "/" + key : key;
166
+ if (node[key] === null) {
167
+ lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
168
+ } else {
169
+ lines.push(prefix + branch + key + "/");
170
+ lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
171
+ }
172
+ });
173
+ return lines;
174
+ }
175
+ return printNode(tree, "", "").join("\n");
176
+ }
177
+ module2.exports.getFileTreeString = getFileTreeString;
178
+ var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
179
+ module2.exports.delay = delay;
180
+ }
181
+ });
182
+
183
+ // src/rm-node-modules.cjs
184
+ var require_rm_node_modules = __commonJS({
185
+ "src/rm-node-modules.cjs"(exports2, module2) {
186
+ init_cjs_shims();
187
+ var fs2 = require("fs-extra");
188
+ var path2 = require("upath");
189
+ var ansiColors2 = require("ansi-colors");
190
+ var child_process = require("child_process");
191
+ var os = require("os");
192
+ function generateBashScript(options = {}) {
193
+ const { dryRun = true } = options;
194
+ return `
195
+ #!/bin/bash
196
+
197
+ set -u
198
+
199
+ cwd="$(pwd)"
200
+ max_jobs=4
201
+ DRY_RUN=${dryRun ? "true" : "false"}
202
+
203
+ cleanup_letter() {
204
+ local letter="$1"
205
+
206
+ if [ "$DRY_RUN" = "true" ]; then
207
+ echo "Would remove: node_modules/\${letter}*"
208
+ echo "Would remove: node_modules/@types/\${letter}*"
209
+ echo "Would remove: node_modules/@\${letter}*"
210
+ else
211
+ rm -rf "\${cwd}/node_modules/\${letter}"*
212
+ echo "Removed: node_modules/\${letter}*"
213
+
214
+ rm -rf "\${cwd}/node_modules/@types/\${letter}"*
215
+ echo "Removed: node_modules/@types/\${letter}*"
216
+
217
+ rm -rf "\${cwd}/node_modules/@\${letter}"*
218
+ echo "Removed: node_modules/@\${letter}*"
219
+ fi
220
+ }
221
+
222
+ export -f cleanup_letter
223
+ export cwd
224
+ export DRY_RUN
225
+
226
+ if [ "$DRY_RUN" = "true" ]; then
227
+ echo "Dry-run mode (pass --force to actually delete)"
228
+ fi
229
+
230
+ echo "Cleaning \${cwd}/node_modules..."
231
+
232
+ running=0
233
+
234
+ for letter in {a..z}; do
235
+ cleanup_letter "$letter" &
236
+
237
+ ((running++))
238
+
239
+ # limit concurrent jobs
240
+ if (( running >= max_jobs )); then
241
+ wait -n
242
+ ((running--))
243
+ fi
244
+ done
245
+
246
+ wait
247
+
248
+ # final full cleanup (ensure nothing left behind)
249
+ if [ "$DRY_RUN" = "true" ]; then
250
+ echo "Would remove: node_modules (final cleanup)"
251
+ else
252
+ rm -rf "\${cwd}/node_modules"
253
+ echo "Removed: node_modules (final cleanup)"
254
+ fi
255
+
256
+ if [ "$DRY_RUN" = "true" ]; then
257
+ echo "Done (dry-run). Run with --force to delete for real."
258
+ else
259
+ echo "Done cleaning node_modules."
260
+ fi
261
+ `.trim();
262
+ }
263
+ async function cleanUp2(rootDir, options = {}) {
264
+ const { dryRun = true } = options;
265
+ const nodeModulesDir = path2.join(rootDir, "node_modules");
266
+ const script = generateBashScript({ dryRun });
267
+ const tmpDir = os.tmpdir();
268
+ const name = `rm-node-modules-${Date.now()}-${Math.random().toString(36).slice(2)}.sh`;
269
+ const scriptPath = path2.join(tmpDir, name);
270
+ try {
271
+ fs2.writeFileSync(scriptPath, script, { encoding: "utf8" });
272
+ try {
273
+ fs2.chmodSync(scriptPath, 493);
274
+ } catch {
275
+ }
276
+ const result = child_process.spawnSync("bash", [scriptPath], {
277
+ cwd: rootDir,
278
+ env: process.env,
279
+ encoding: "utf8",
280
+ shell: false
281
+ });
282
+ if (result.stdout) process.stdout.write(result.stdout);
283
+ if (result.stderr) process.stderr.write(result.stderr);
284
+ if (result.error) {
285
+ try {
286
+ console.warn(
287
+ ansiColors2.yellow(`bash execution failed: ${result.error.message}. Falling back to Node removal.`)
288
+ );
289
+ console.log(`Cleaning ${ansiColors2.cyan(nodeModulesDir)}...`);
290
+ fs2.rmSync(nodeModulesDir, { recursive: true, force: true });
291
+ console.log(`Removed: ${ansiColors2.green("node_modules (final cleanup)")}`);
292
+ console.log("Done cleaning node_modules.");
293
+ return {
294
+ code: 0,
295
+ stdout: result.stdout || "",
296
+ stderr: (result.stderr || "") + `
297
+ ${result.error.stack || result.error.message}`
298
+ };
299
+ } catch (e) {
300
+ return { code: 1, stdout: result.stdout || "", stderr: (result.stderr || "") + `
301
+ ${e.stack || e.message}` };
302
+ }
303
+ }
304
+ return { code: result.status ?? 0, stdout: result.stdout ?? "", stderr: result.stderr ?? "" };
305
+ } finally {
306
+ try {
307
+ if (fs2.existsSync(scriptPath)) fs2.unlinkSync(scriptPath);
308
+ } catch {
309
+ }
310
+ }
311
+ }
312
+ module2.exports = { generateBashScript, cleanUp: cleanUp2 };
313
+ }
314
+ });
315
+
316
+ // src/rm-node-module-cli.cjs
317
+ init_cjs_shims();
318
+ var path = require("upath");
319
+ var fs = require("fs-extra");
320
+ var { getArgs } = require_utils();
321
+ var glob = require("glob");
322
+ var ansiColors = require("ansi-colors");
323
+ var { cleanUp } = require_rm_node_modules();
324
+ var argv = getArgs({
325
+ boolean: ["h", "help", "force"],
326
+ alias: {
327
+ h: "help"
328
+ }
329
+ });
330
+ if (argv.help) {
331
+ console.log(`
332
+ rm-node-modules
333
+
334
+ Usage:
335
+ rm-node-modules [options]
336
+
337
+ Examples:
338
+ node src/rm-node-module-cli.cjs
339
+ node src/rm-node-module-cli.cjs --force
340
+ npx --legacy-peer-deps -y binary-collections rm-node-modules
341
+ npx --legacy-peer-deps -y binary-collections rm-node-modules --force
342
+
343
+ Options:
344
+ -h, --help Show this help message
345
+ --force Actually delete node_modules (default is dry-run mode)
346
+
347
+ Description:
348
+ Removes node_modules subfolders by first-letter in parallel to speed up
349
+ deletions. By default runs in dry-run mode (shows what would be deleted).
350
+ Pass --force to actually perform deletion.
351
+ The script writes a temporary shell script and executes it; the
352
+ temporary script is removed after completion. On Windows, this requires a
353
+ Unix-compatible shell in PATH (e.g., Git Bash or WSL).
354
+ `);
355
+ process.exit(0);
356
+ }
357
+ async function main() {
358
+ if (!argv.workspace) {
359
+ await cleanUp(process.cwd(), { dryRun: !argv.force });
360
+ return;
361
+ }
362
+ const pkgJsonPath = path.resolve(process.cwd(), argv.workspace, "package.json");
363
+ if (!fs.existsSync(pkgJsonPath)) {
364
+ console.error(`Error: package.json not found in workspace directory: ${ansiColors.red(argv.workspace)}`);
365
+ process.exitCode = 1;
366
+ return;
367
+ }
368
+ const workspaces = (JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8")).workspaces || []).flatMap((workspace) => {
369
+ return glob.sync(workspace, {
370
+ cwd: process.cwd(),
371
+ absolute: true,
372
+ ignore: ["**/node_modules/**", "**/dist/**", "**/build/**"]
373
+ });
374
+ });
375
+ for (const workspacePath of workspaces) {
376
+ if (fs.existsSync(path.join(workspacePath, "package.json"))) {
377
+ console.log(`Cleaning node_modules in workspace: ${ansiColors.cyan(workspacePath)}`);
378
+ await cleanUp(workspacePath, { dryRun: !argv.force });
379
+ } else {
380
+ console.warn(
381
+ `Warning: No package.json found in workspace path: ${ansiColors.yellow(workspacePath)}, skipping...`
382
+ );
383
+ }
384
+ }
385
+ }
386
+ main().catch((e) => {
387
+ console.error(ansiColors.red(e instanceof Error ? e.stack || e.message : String(e)));
388
+ process.exitCode = 1;
389
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,92 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ require_rm_node_modules
4
+ } from "./chunk-NVEG3LEZ.mjs";
5
+ import {
6
+ require_utils
7
+ } from "./chunk-6RK5UCTP.mjs";
8
+ import {
9
+ __commonJS,
10
+ __require,
11
+ init_esm_shims
12
+ } from "./chunk-QQ4A6DLD.mjs";
13
+
14
+ // src/rm-node-module-cli.cjs
15
+ var require_rm_node_module_cli = __commonJS({
16
+ "src/rm-node-module-cli.cjs"() {
17
+ init_esm_shims();
18
+ var path = __require("upath");
19
+ var fs = __require("fs-extra");
20
+ var { getArgs } = require_utils();
21
+ var glob = __require("glob");
22
+ var ansiColors = __require("ansi-colors");
23
+ var { cleanUp } = require_rm_node_modules();
24
+ var argv = getArgs({
25
+ boolean: ["h", "help", "force"],
26
+ alias: {
27
+ h: "help"
28
+ }
29
+ });
30
+ if (argv.help) {
31
+ console.log(`
32
+ rm-node-modules
33
+
34
+ Usage:
35
+ rm-node-modules [options]
36
+
37
+ Examples:
38
+ node src/rm-node-module-cli.cjs
39
+ node src/rm-node-module-cli.cjs --force
40
+ npx --legacy-peer-deps -y binary-collections rm-node-modules
41
+ npx --legacy-peer-deps -y binary-collections rm-node-modules --force
42
+
43
+ Options:
44
+ -h, --help Show this help message
45
+ --force Actually delete node_modules (default is dry-run mode)
46
+
47
+ Description:
48
+ Removes node_modules subfolders by first-letter in parallel to speed up
49
+ deletions. By default runs in dry-run mode (shows what would be deleted).
50
+ Pass --force to actually perform deletion.
51
+ The script writes a temporary shell script and executes it; the
52
+ temporary script is removed after completion. On Windows, this requires a
53
+ Unix-compatible shell in PATH (e.g., Git Bash or WSL).
54
+ `);
55
+ process.exit(0);
56
+ }
57
+ async function main() {
58
+ if (!argv.workspace) {
59
+ await cleanUp(process.cwd(), { dryRun: !argv.force });
60
+ return;
61
+ }
62
+ const pkgJsonPath = path.resolve(process.cwd(), argv.workspace, "package.json");
63
+ if (!fs.existsSync(pkgJsonPath)) {
64
+ console.error(`Error: package.json not found in workspace directory: ${ansiColors.red(argv.workspace)}`);
65
+ process.exitCode = 1;
66
+ return;
67
+ }
68
+ const workspaces = (JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8")).workspaces || []).flatMap((workspace) => {
69
+ return glob.sync(workspace, {
70
+ cwd: process.cwd(),
71
+ absolute: true,
72
+ ignore: ["**/node_modules/**", "**/dist/**", "**/build/**"]
73
+ });
74
+ });
75
+ for (const workspacePath of workspaces) {
76
+ if (fs.existsSync(path.join(workspacePath, "package.json"))) {
77
+ console.log(`Cleaning node_modules in workspace: ${ansiColors.cyan(workspacePath)}`);
78
+ await cleanUp(workspacePath, { dryRun: !argv.force });
79
+ } else {
80
+ console.warn(
81
+ `Warning: No package.json found in workspace path: ${ansiColors.yellow(workspacePath)}, skipping...`
82
+ );
83
+ }
84
+ }
85
+ }
86
+ main().catch((e) => {
87
+ console.error(ansiColors.red(e instanceof Error ? e.stack || e.message : String(e)));
88
+ process.exitCode = 1;
89
+ });
90
+ }
91
+ });
92
+ export default require_rm_node_module_cli();
@@ -0,0 +1,127 @@
1
+ // src/rm-node-modules.cjs
2
+ var fs = require("fs-extra");
3
+ var path = require("upath");
4
+ var ansiColors = require("ansi-colors");
5
+ var child_process = require("child_process");
6
+ var os = require("os");
7
+ function generateBashScript(options = {}) {
8
+ const { dryRun = true } = options;
9
+ return `
10
+ #!/bin/bash
11
+
12
+ set -u
13
+
14
+ cwd="$(pwd)"
15
+ max_jobs=4
16
+ DRY_RUN=${dryRun ? "true" : "false"}
17
+
18
+ cleanup_letter() {
19
+ local letter="$1"
20
+
21
+ if [ "$DRY_RUN" = "true" ]; then
22
+ echo "Would remove: node_modules/\${letter}*"
23
+ echo "Would remove: node_modules/@types/\${letter}*"
24
+ echo "Would remove: node_modules/@\${letter}*"
25
+ else
26
+ rm -rf "\${cwd}/node_modules/\${letter}"*
27
+ echo "Removed: node_modules/\${letter}*"
28
+
29
+ rm -rf "\${cwd}/node_modules/@types/\${letter}"*
30
+ echo "Removed: node_modules/@types/\${letter}*"
31
+
32
+ rm -rf "\${cwd}/node_modules/@\${letter}"*
33
+ echo "Removed: node_modules/@\${letter}*"
34
+ fi
35
+ }
36
+
37
+ export -f cleanup_letter
38
+ export cwd
39
+ export DRY_RUN
40
+
41
+ if [ "$DRY_RUN" = "true" ]; then
42
+ echo "Dry-run mode (pass --force to actually delete)"
43
+ fi
44
+
45
+ echo "Cleaning \${cwd}/node_modules..."
46
+
47
+ running=0
48
+
49
+ for letter in {a..z}; do
50
+ cleanup_letter "$letter" &
51
+
52
+ ((running++))
53
+
54
+ # limit concurrent jobs
55
+ if (( running >= max_jobs )); then
56
+ wait -n
57
+ ((running--))
58
+ fi
59
+ done
60
+
61
+ wait
62
+
63
+ # final full cleanup (ensure nothing left behind)
64
+ if [ "$DRY_RUN" = "true" ]; then
65
+ echo "Would remove: node_modules (final cleanup)"
66
+ else
67
+ rm -rf "\${cwd}/node_modules"
68
+ echo "Removed: node_modules (final cleanup)"
69
+ fi
70
+
71
+ if [ "$DRY_RUN" = "true" ]; then
72
+ echo "Done (dry-run). Run with --force to delete for real."
73
+ else
74
+ echo "Done cleaning node_modules."
75
+ fi
76
+ `.trim();
77
+ }
78
+ async function cleanUp(rootDir, options = {}) {
79
+ const { dryRun = true } = options;
80
+ const nodeModulesDir = path.join(rootDir, "node_modules");
81
+ const script = generateBashScript({ dryRun });
82
+ const tmpDir = os.tmpdir();
83
+ const name = `rm-node-modules-${Date.now()}-${Math.random().toString(36).slice(2)}.sh`;
84
+ const scriptPath = path.join(tmpDir, name);
85
+ try {
86
+ fs.writeFileSync(scriptPath, script, { encoding: "utf8" });
87
+ try {
88
+ fs.chmodSync(scriptPath, 493);
89
+ } catch {
90
+ }
91
+ const result = child_process.spawnSync("bash", [scriptPath], {
92
+ cwd: rootDir,
93
+ env: process.env,
94
+ encoding: "utf8",
95
+ shell: false
96
+ });
97
+ if (result.stdout) process.stdout.write(result.stdout);
98
+ if (result.stderr) process.stderr.write(result.stderr);
99
+ if (result.error) {
100
+ try {
101
+ console.warn(
102
+ ansiColors.yellow(`bash execution failed: ${result.error.message}. Falling back to Node removal.`)
103
+ );
104
+ console.log(`Cleaning ${ansiColors.cyan(nodeModulesDir)}...`);
105
+ fs.rmSync(nodeModulesDir, { recursive: true, force: true });
106
+ console.log(`Removed: ${ansiColors.green("node_modules (final cleanup)")}`);
107
+ console.log("Done cleaning node_modules.");
108
+ return {
109
+ code: 0,
110
+ stdout: result.stdout || "",
111
+ stderr: (result.stderr || "") + `
112
+ ${result.error.stack || result.error.message}`
113
+ };
114
+ } catch (e) {
115
+ return { code: 1, stdout: result.stdout || "", stderr: (result.stderr || "") + `
116
+ ${e.stack || e.message}` };
117
+ }
118
+ }
119
+ return { code: result.status ?? 0, stdout: result.stdout ?? "", stderr: result.stderr ?? "" };
120
+ } finally {
121
+ try {
122
+ if (fs.existsSync(scriptPath)) fs.unlinkSync(scriptPath);
123
+ } catch {
124
+ }
125
+ }
126
+ }
127
+ module.exports = { generateBashScript, cleanUp };
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Generate bash script for node_modules cleanup
3
+ * @param {Object} options
4
+ * @param {boolean} options.dryRun - If true, only print what would be deleted
5
+ * @returns {string} - The bash script
6
+ */
7
+ export function generateBashScript(options?: {
8
+ dryRun: boolean;
9
+ }): string;
10
+ /**
11
+ * Create and run a temporary bash script to remove `node_modules` contents.
12
+ *
13
+ * The script is written into `rootDir` and executed via `runBash`. A list of
14
+ * created temporary scripts is stored in a cache file under the OS temp
15
+ * directory so they can be removed after execution. When running with
16
+ * `spawnOptions.stdio === 'inherit'`, the child process uses the parent's
17
+ * stdio and the returned `stdout`/`stderr` may be empty; prefer `'pipe'` in
18
+ * tests when you need to assert against output.
19
+ *
20
+ * @async
21
+ * @param {string} rootDir - Directory where the cleanup script will be created and executed.
22
+ * @param {Object} [options]
23
+ * @param {boolean} [options.dryRun=true] - If true, the generated script will only print what would be deleted.
24
+ * @param {import('child_process').SpawnOptions} [options.spawnOptions] - Options forwarded to the underlying `spawn` call (via `runBash`).
25
+ * @returns {Promise<{code: number, stdout: string, stderr: string}>} Resolves with the result object returned by `runBash`.
26
+ * @throws {Error|Object} Throws for internal failures or rejects with the `runBash` result when the process exits non-zero.
27
+ */
28
+ export function cleanUp(rootDir: string, options?: {
29
+ dryRun?: boolean;
30
+ spawnOptions?: import("child_process").SpawnOptions;
31
+ }): Promise<{
32
+ code: number;
33
+ stdout: string;
34
+ stderr: string;
35
+ }>;
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
- require_binary_collections_config
4
- } from "./chunk-YYLIQQKF.mjs";
3
+ require_rm_node_modules
4
+ } from "./chunk-NVEG3LEZ.mjs";
5
5
  import "./chunk-QQ4A6DLD.mjs";
6
- export default require_binary_collections_config();
6
+ export default require_rm_node_modules();