binary-collections 2.0.12 → 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 (231) 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.cjs +89 -13
  14. package/binaries/submodule-token.cjs +89 -13
  15. package/binaries/test-cjs.cjs +89 -13
  16. package/binaries/test-esm.cjs +89 -13
  17. package/binaries/yarn-clean.cjs +89 -13
  18. package/binaries/yc +22 -1
  19. package/binaries/yc.cjs +89 -13
  20. package/binaries/ycw +256 -0
  21. package/binaries/ycw.cjs +254 -0
  22. package/docs-src/binary-collections.md +34 -0
  23. package/docs-src/changelog.md +26 -0
  24. package/docs-src/clean-github-actions-caches.md +115 -0
  25. package/docs-src/copy-move-file.md +59 -0
  26. package/docs-src/del-gradle.md +17 -0
  27. package/docs-src/del-ps.md +28 -0
  28. package/docs-src/downloader.md +62 -0
  29. package/docs-src/env-helpers.md +29 -0
  30. package/docs-src/find-node-modules.md +17 -0
  31. package/docs-src/free-chatgpt.md +26 -0
  32. package/docs-src/git-diff.md +33 -0
  33. package/docs-src/git-fix.md +34 -0
  34. package/docs-src/git-purge.md +17 -0
  35. package/docs-src/git-reduce-size.md +17 -0
  36. package/docs-src/git-undo.md +21 -0
  37. package/docs-src/kill-night-crows.md +26 -0
  38. package/docs-src/node-cache-cleaner.md +182 -0
  39. package/docs-src/node-executor.md +50 -0
  40. package/docs-src/node-package-packer.md +48 -0
  41. package/docs-src/npm-run-series.md +43 -0
  42. package/docs-src/package-resolutions-updater.md +22 -0
  43. package/docs-src/php-cs-fixer-staged.md +19 -0
  44. package/docs-src/print-directory-tree.md +35 -0
  45. package/docs-src/print-tarball-tree.md +55 -0
  46. package/docs-src/py.md +19 -0
  47. package/docs-src/remove-module.md +32 -0
  48. package/docs-src/rmfind-rmx.md +21 -0
  49. package/docs-src/rmpath.md +38 -0
  50. package/docs-src/run-by-checksum.md +87 -0
  51. package/docs-src/submodule-install.md +31 -0
  52. package/docs-src/submodule-remove.md +22 -0
  53. package/docs-src/submodule-token.md +17 -0
  54. package/docs-src/test-runners.md +21 -0
  55. package/docs-src/yarn-install.md +31 -0
  56. package/docs-src/yarn-reinstall.md +27 -0
  57. package/lib/binary-collections/config.cjs +1 -1
  58. package/lib/binary-collections/config.mjs +1 -1
  59. package/lib/binary-collections/findScript.cjs +35 -10
  60. package/lib/binary-collections/findScript.mjs +2 -2
  61. package/lib/binary-collections/listScript.cjs +35 -10
  62. package/lib/binary-collections/listScript.mjs +2 -2
  63. package/lib/binary-collections.cjs +45 -25
  64. package/lib/binary-collections.mjs +11 -11
  65. package/lib/changelog.cjs +7 -12
  66. package/lib/changelog.mjs +2 -2
  67. package/lib/{chunk-SPTECFE5.mjs → chunk-2MN4VPV2.mjs} +86 -20
  68. package/lib/{chunk-V2IBPCEV.mjs → chunk-6C7KTYGZ.mjs} +3 -1
  69. package/lib/{chunk-5RTXZVCW.mjs → chunk-6RK5UCTP.mjs} +5 -10
  70. package/lib/{chunk-FB2WKVJD.mjs → chunk-CD3HF3LK.mjs} +67 -35
  71. package/lib/{chunk-6PU7BAHB.mjs → chunk-FLYSZFLW.mjs} +1 -1
  72. package/lib/chunk-KLKAIFKI.mjs +40 -0
  73. package/lib/chunk-LVSPEFU2.mjs +86 -0
  74. package/lib/{chunk-2LSRSEXF.mjs → chunk-MGPYPKIE.mjs} +2 -2
  75. package/lib/{chunk-ZOWVMII3.mjs → chunk-NQXUYO67.mjs} +35 -10
  76. package/lib/{chunk-C6D2TTYU.mjs → chunk-OBXLTXFJ.mjs} +4 -2
  77. package/lib/chunk-QD4T255Z.mjs +40 -0
  78. package/lib/{chunk-XPJGCDOD.mjs → chunk-QII2EKCS.mjs} +14 -2
  79. package/lib/chunk-RDGDLSPD.mjs +76 -0
  80. package/lib/{chunk-NCZPTKDV.mjs → chunk-RDN6HF5Z.mjs} +1 -1
  81. package/lib/chunk-RJKTSUAX.mjs +123 -0
  82. package/lib/{chunk-66KDU4TX.mjs → chunk-TBWXE7ST.mjs} +36 -61
  83. package/lib/{chunk-M3YIYRHT.mjs → chunk-UY5VUEA3.mjs} +1 -1
  84. package/lib/chunk-WSHVPGNM.mjs +44 -0
  85. package/lib/{chunk-G5UUEWUO.mjs → chunk-X2B3X7D4.mjs} +1 -1
  86. package/lib/clean-github-actions-caches-cli.cjs +255 -213
  87. package/lib/clean-github-actions-caches-cli.mjs +25 -7
  88. package/lib/clean-github-actions-caches.cjs +231 -35
  89. package/lib/clean-github-actions-caches.d.cts +39 -1
  90. package/lib/clean-github-actions-caches.mjs +2 -1
  91. package/lib/cross-env/command.cjs +2 -2
  92. package/lib/cross-env/command.js +2 -2
  93. package/lib/cross-env/command.mjs +2 -2
  94. package/lib/cross-env/index.cjs +2 -2
  95. package/lib/cross-env/index.mjs +3 -3
  96. package/lib/cross-env/variable.mjs +2 -2
  97. package/lib/del-gradle.cjs +6 -11
  98. package/lib/del-gradle.mjs +1 -1
  99. package/lib/del-node-modules.cjs +185 -3
  100. package/lib/del-node-modules.js +3 -3
  101. package/lib/del-node-modules.mjs +6 -3
  102. package/lib/{del-ps.cjs → del-ps-cli.cjs} +36 -41
  103. package/lib/del-ps-cli.mjs +44 -0
  104. package/lib/del-yarn-caches.cjs +6 -11
  105. package/lib/del-yarn-caches.mjs +1 -1
  106. package/lib/downloader-cli.cjs +256 -0
  107. package/lib/downloader-cli.d.cts +2 -0
  108. package/lib/downloader-cli.mjs +90 -0
  109. package/lib/file/copy-cli.cjs +183 -2
  110. package/lib/file/copy-cli.mjs +6 -2
  111. package/lib/file/move-cli.cjs +183 -2
  112. package/lib/file/move-cli.mjs +6 -2
  113. package/lib/find-node-modules-cli.cjs +1 -1
  114. package/lib/find-node-modules-cli.mjs +1 -1
  115. package/lib/find-node-modules.cjs +1 -1
  116. package/lib/find-node-modules.mjs +1 -1
  117. package/lib/free-chatgpt.cjs +6 -11
  118. package/lib/free-chatgpt.mjs +1 -1
  119. package/lib/git/user-config.cjs +7 -12
  120. package/lib/git/user-config.mjs +2 -2
  121. package/lib/git-diff-cli.cjs +91 -30
  122. package/lib/git-diff-cli.mjs +3 -3
  123. package/lib/git-diff.cjs +91 -30
  124. package/lib/git-diff.js +85 -28
  125. package/lib/git-diff.mjs +3 -3
  126. package/lib/git-fix.cjs +7 -12
  127. package/lib/git-fix.mjs +2 -2
  128. package/lib/git-purge.cjs +7 -12
  129. package/lib/git-purge.mjs +2 -2
  130. package/lib/index.cjs +1 -1
  131. package/lib/index.mjs +1 -1
  132. package/lib/node-cache-cleaner-cli.cjs +185 -2
  133. package/lib/node-cache-cleaner-cli.js +2 -5
  134. package/lib/node-cache-cleaner-cli.mjs +8 -4
  135. package/lib/node-executor.cjs +183 -2
  136. package/lib/node-executor.mjs +5 -2
  137. package/lib/node-package-packer/build-readme.cjs +150 -0
  138. package/lib/node-package-packer/build-readme.d.mts +10 -0
  139. package/lib/node-package-packer/build-readme.mjs +10 -0
  140. package/lib/node-package-packer/build-tarball.cjs +495 -0
  141. package/lib/node-package-packer/build-tarball.d.mts +33 -0
  142. package/lib/node-package-packer/build-tarball.mjs +175 -0
  143. package/lib/node-package-packer-cli.cjs +525 -0
  144. package/lib/node-package-packer-cli.d.mts +1 -0
  145. package/lib/node-package-packer-cli.mjs +34 -0
  146. package/lib/npm-run-series.cjs +7 -12
  147. package/lib/npm-run-series.mjs +2 -2
  148. package/lib/package-resolutions-updater-cli.cjs +73 -76
  149. package/lib/package-resolutions-updater-cli.mjs +4 -3
  150. package/lib/package-resolutions-updater.cjs +71 -74
  151. package/lib/package-resolutions-updater.d.mts +34 -0
  152. package/lib/package-resolutions-updater.mjs +3 -2
  153. package/lib/php-cs-fixer-staged.cjs +1 -1
  154. package/lib/php-cs-fixer-staged.mjs +1 -1
  155. package/lib/print-directory-tree.cjs +16 -18
  156. package/lib/print-directory-tree.mjs +11 -8
  157. package/lib/print-tarball-tree.cjs +262 -0
  158. package/lib/print-tarball-tree.d.mts +1 -0
  159. package/lib/print-tarball-tree.mjs +68 -0
  160. package/lib/ps/index.cjs +10 -10
  161. package/lib/ps/index.mjs +4 -4
  162. package/lib/ps/table-parser.d.ts +3 -4
  163. package/lib/ps/table-parser.js +9 -16
  164. package/lib/remove-module.cjs +17 -22
  165. package/lib/remove-module.mjs +2 -2
  166. package/lib/rm-node-module-cli.cjs +171 -4
  167. package/lib/rm-node-module-cli.mjs +7 -4
  168. package/lib/rmpath-cli.cjs +285 -0
  169. package/lib/rmpath-cli.d.mts +1 -0
  170. package/lib/rmpath-cli.mjs +23 -0
  171. package/lib/rmpath.cjs +6 -217
  172. package/lib/rmpath.mjs +5 -101
  173. package/lib/run-by-checksum/cache.cjs +69 -0
  174. package/lib/run-by-checksum/cache.d.ts +19 -0
  175. package/lib/run-by-checksum/cache.js +50 -0
  176. package/lib/run-by-checksum/cache.mjs +12 -0
  177. package/lib/run-by-checksum/hash.cjs +72 -0
  178. package/lib/run-by-checksum/hash.d.ts +14 -0
  179. package/lib/run-by-checksum/hash.js +85 -0
  180. package/lib/{ps/isWin.mjs → run-by-checksum/hash.mjs} +5 -5
  181. package/lib/run-by-checksum/run.cjs +169 -0
  182. package/lib/run-by-checksum/run.d.ts +22 -0
  183. package/lib/run-by-checksum/run.js +93 -0
  184. package/lib/run-by-checksum/run.mjs +10 -0
  185. package/lib/run-by-checksum-cli.cjs +382 -0
  186. package/lib/run-by-checksum-cli.d.ts +2 -0
  187. package/lib/run-by-checksum-cli.js +43 -0
  188. package/lib/run-by-checksum-cli.mjs +56 -0
  189. package/lib/submodule-install.cjs +8 -13
  190. package/lib/submodule-install.mjs +3 -3
  191. package/lib/submodule-remove-cli.cjs +169 -2
  192. package/lib/submodule-remove-cli.js +2 -2
  193. package/lib/submodule-remove-cli.mjs +5 -2
  194. package/lib/utils/fetchResponse.cjs +24 -0
  195. package/lib/utils/fetchResponse.d.cts +25 -0
  196. package/lib/utils/fetchResponse.mjs +6 -0
  197. package/lib/utils/index.cjs +5 -10
  198. package/lib/utils/index.d.cts +2 -9
  199. package/lib/utils/index.mjs +1 -1
  200. package/lib/utils/isWindows.mjs +3 -1
  201. package/lib/utils/runBash.cjs +1 -1
  202. package/lib/utils/runBash.mjs +1 -1
  203. package/lib/yarn-per-branch-lock-installer.cjs +202 -11
  204. package/lib/yarn-per-branch-lock-installer.mjs +24 -11
  205. package/lib/yarn-reinstall.cjs +6 -11
  206. package/lib/yarn-reinstall.mjs +1 -1
  207. package/package.json +35 -10
  208. package/readme.html +2 -2
  209. package/readme.md +5 -5
  210. package/releases/readme.md +6 -3
  211. package/tmp/test-repo-runChecksum/test-complex-glob/README.md +1 -0
  212. package/tmp/test-repo-runChecksum/test-mixed-args/README.md +1 -0
  213. package/.opencode/package.json +0 -5
  214. package/lib/chunk-6S4NXESK.mjs +0 -26
  215. package/lib/del-ps.js +0 -32
  216. package/lib/del-ps.mjs +0 -43
  217. package/lib/ps/isWin.cjs +0 -26
  218. package/lib/ps/isWin.d.ts +0 -2
  219. package/lib/ps/isWin.js +0 -4
  220. package/test/package.json +0 -20
  221. package/test-project/package.json +0 -22
  222. package/test-project/workspaces/workspace-a/package.json +0 -135
  223. package/test-project/workspaces/workspace-a/test/demo/package.json +0 -25
  224. package/test-project/workspaces/workspace-b/package.json +0 -139
  225. package/test-project/workspaces/workspace-b/test/sample-project/package.json +0 -7
  226. package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/package.json +0 -96
  227. package/tmp/rm-node-modules-test-project/package.json +0 -17
  228. package/tmp/rm-node-modules-test-project/packages/workspace-a/package.json +0 -16
  229. package/tmp/rm-node-modules-test-project/packages/workspace-b/package.json +0 -16
  230. package/tmp/test-repo/package.json +0 -17
  231. /package/lib/{del-ps.d.ts → del-ps-cli.d.mts} +0 -0
@@ -40,9 +40,9 @@ var require_utils = __commonJS({
40
40
  init_cjs_shims();
41
41
  var fs2 = require("fs");
42
42
  var path2 = require("upath");
43
- var argv2 = require("minimist")(process.argv.slice(2));
43
+ var minimistLib = require("minimist");
44
+ var argv2 = minimistLib(process.argv.slice(2));
44
45
  var { exec } = require("child_process");
45
- var { URL: URL2 } = require("url");
46
46
  var { promisify } = require("util");
47
47
  var execAsync = promisify(exec);
48
48
  async function parseGitRemotes() {
@@ -55,7 +55,7 @@ var require_utils = __commonJS({
55
55
  if (name && url) {
56
56
  const [repoUrl] = url.split(" ");
57
57
  try {
58
- const parsedUrl = new URL2(repoUrl);
58
+ const parsedUrl = new URL(repoUrl);
59
59
  const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
60
60
  if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
61
61
  let repoPath = pathParts.join("/");
@@ -76,15 +76,10 @@ var require_utils = __commonJS({
76
76
  }
77
77
  }
78
78
  module2.exports.parseGitRemotes = parseGitRemotes;
79
- function joinPathPreserveDriveLetter(...segments) {
80
- let fullPath = require("path").join(...segments);
81
- if (/^[a-z]:\\/.test(fullPath)) {
82
- fullPath = fullPath.charAt(0).toUpperCase() + fullPath.slice(1);
79
+ function getArgs2(opts) {
80
+ if (opts) {
81
+ return minimistLib(process.argv.slice(2), opts);
83
82
  }
84
- return fullPath;
85
- }
86
- module2.exports.joinPathPreserveDriveLetter = joinPathPreserveDriveLetter;
87
- function getArgs2() {
88
83
  return argv2;
89
84
  }
90
85
  module2.exports.getArgs = getArgs2;
@@ -210,7 +205,7 @@ var require_utils = __commonJS({
210
205
  init_cjs_shims();
211
206
  var import_utils = __toESM(require_utils(), 1);
212
207
  var import_fs = __toESM(require("fs"), 1);
213
- var import_path = __toESM(require("path"), 1);
208
+ var import_upath = __toESM(require("upath"), 1);
214
209
  var glob = __toESM(require("glob"), 1);
215
210
  var argv = (0, import_utils.getArgs)();
216
211
  var positional = argv._ || [];
@@ -243,7 +238,7 @@ if (positional.length === 0) {
243
238
  }
244
239
  for (const moduleName of positional) {
245
240
  if (argv.node) {
246
- const modulePath = import_path.default.resolve("node_modules", moduleName);
241
+ const modulePath = import_upath.default.resolve("node_modules", moduleName);
247
242
  if (import_fs.default.existsSync(modulePath)) {
248
243
  try {
249
244
  import_fs.default.rmSync(modulePath, { recursive: true, force: true });
@@ -258,7 +253,7 @@ for (const moduleName of positional) {
258
253
  }
259
254
  }
260
255
  if (argv.composer) {
261
- const vendorPath = import_path.default.resolve("vendor", "composer", moduleName);
256
+ const vendorPath = import_upath.default.resolve("vendor", "composer", moduleName);
262
257
  if (import_fs.default.existsSync(vendorPath)) {
263
258
  try {
264
259
  import_fs.default.rmSync(vendorPath, { recursive: true, force: true });
@@ -275,21 +270,21 @@ for (const moduleName of positional) {
275
270
  if (argv.venv) {
276
271
  const venvs = [".venv", "venv"];
277
272
  for (const venv of venvs) {
278
- const sitePackages = import_path.default.resolve(venv, "Lib", "site-packages");
273
+ const sitePackages = import_upath.default.resolve(venv, "Lib", "site-packages");
279
274
  const venvModulePaths = [
280
275
  // main package directory (for packages)
281
- import_path.default.resolve(sitePackages, moduleName),
276
+ import_upath.default.resolve(sitePackages, moduleName),
282
277
  // main module file (for single-file modules)
283
- import_path.default.resolve(sitePackages, moduleName + ".py"),
278
+ import_upath.default.resolve(sitePackages, moduleName + ".py"),
284
279
  // dist-info metadata directories
285
- ...glob.sync(`${moduleName}-*.dist-info`, { cwd: sitePackages }).map((p) => import_path.default.resolve(sitePackages, p)),
280
+ ...glob.sync(`${moduleName}-*.dist-info`, { cwd: sitePackages }).map((p) => import_upath.default.resolve(sitePackages, p)),
286
281
  // egg-info metadata directories
287
- ...glob.sync(`${moduleName}-*.egg-info`, { cwd: sitePackages }).map((p) => import_path.default.resolve(sitePackages, p)),
282
+ ...glob.sync(`${moduleName}-*.egg-info`, { cwd: sitePackages }).map((p) => import_upath.default.resolve(sitePackages, p)),
288
283
  // compiled extension files (.pyd for Windows, .so for Linux)
289
- ...glob.sync(`${moduleName}*.pyd`, { cwd: sitePackages }).map((p) => import_path.default.resolve(sitePackages, p)),
290
- ...glob.sync(`${moduleName}*.so`, { cwd: sitePackages }).map((p) => import_path.default.resolve(sitePackages, p)),
284
+ ...glob.sync(`${moduleName}*.pyd`, { cwd: sitePackages }).map((p) => import_upath.default.resolve(sitePackages, p)),
285
+ ...glob.sync(`${moduleName}*.so`, { cwd: sitePackages }).map((p) => import_upath.default.resolve(sitePackages, p)),
291
286
  // editable install directories (legacy pattern)
292
- ...glob.sync(`_*editable_*${moduleName}*`, { cwd: sitePackages }).map((p) => import_path.default.resolve(sitePackages, p))
287
+ ...glob.sync(`_*editable_*${moduleName}*`, { cwd: sitePackages }).map((p) => import_upath.default.resolve(sitePackages, p))
293
288
  ];
294
289
  for (const venvModulePath of venvModulePaths) {
295
290
  if (import_fs.default.existsSync(venvModulePath)) {
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_utils
4
- } from "./chunk-5RTXZVCW.mjs";
4
+ } from "./chunk-6RK5UCTP.mjs";
5
5
  import {
6
6
  __toESM,
7
7
  init_esm_shims
@@ -11,7 +11,7 @@ import {
11
11
  init_esm_shims();
12
12
  var import_utils = __toESM(require_utils(), 1);
13
13
  import fs from "fs";
14
- import path from "path";
14
+ import path from "upath";
15
15
  import * as glob from "glob";
16
16
  var argv = (0, import_utils.getArgs)();
17
17
  var positional = argv._ || [];
@@ -13,6 +13,173 @@ var init_cjs_shims = __esm({
13
13
  }
14
14
  });
15
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
+
16
183
  // src/rm-node-modules.cjs
17
184
  var require_rm_node_modules = __commonJS({
18
185
  "src/rm-node-modules.cjs"(exports2, module2) {
@@ -150,11 +317,11 @@ ${e.stack || e.message}` };
150
317
  init_cjs_shims();
151
318
  var path = require("upath");
152
319
  var fs = require("fs-extra");
153
- var minimist = require("minimist");
320
+ var { getArgs } = require_utils();
154
321
  var glob = require("glob");
155
322
  var ansiColors = require("ansi-colors");
156
323
  var { cleanUp } = require_rm_node_modules();
157
- var argv = minimist(process.argv.slice(2), {
324
+ var argv = getArgs({
158
325
  boolean: ["h", "help", "force"],
159
326
  alias: {
160
327
  h: "help"
@@ -170,8 +337,8 @@ Usage:
170
337
  Examples:
171
338
  node src/rm-node-module-cli.cjs
172
339
  node src/rm-node-module-cli.cjs --force
173
- npx binary-collections rm-node-modules
174
- npx binary-collections rm-node-modules --force
340
+ npx --legacy-peer-deps -y binary-collections rm-node-modules
341
+ npx --legacy-peer-deps -y binary-collections rm-node-modules --force
175
342
 
176
343
  Options:
177
344
  -h, --help Show this help message
@@ -2,6 +2,9 @@ import { createRequire } from 'module'; const require = createRequire(import.met
2
2
  import {
3
3
  require_rm_node_modules
4
4
  } from "./chunk-NVEG3LEZ.mjs";
5
+ import {
6
+ require_utils
7
+ } from "./chunk-6RK5UCTP.mjs";
5
8
  import {
6
9
  __commonJS,
7
10
  __require,
@@ -14,11 +17,11 @@ var require_rm_node_module_cli = __commonJS({
14
17
  init_esm_shims();
15
18
  var path = __require("upath");
16
19
  var fs = __require("fs-extra");
17
- var minimist = __require("minimist");
20
+ var { getArgs } = require_utils();
18
21
  var glob = __require("glob");
19
22
  var ansiColors = __require("ansi-colors");
20
23
  var { cleanUp } = require_rm_node_modules();
21
- var argv = minimist(process.argv.slice(2), {
24
+ var argv = getArgs({
22
25
  boolean: ["h", "help", "force"],
23
26
  alias: {
24
27
  h: "help"
@@ -34,8 +37,8 @@ Usage:
34
37
  Examples:
35
38
  node src/rm-node-module-cli.cjs
36
39
  node src/rm-node-module-cli.cjs --force
37
- npx binary-collections rm-node-modules
38
- npx binary-collections rm-node-modules --force
40
+ npx --legacy-peer-deps -y binary-collections rm-node-modules
41
+ npx --legacy-peer-deps -y binary-collections rm-node-modules --force
39
42
 
40
43
  Options:
41
44
  -h, --help Show this help message
@@ -0,0 +1,285 @@
1
+ #!/usr/bin/env node
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __esm = (fn, res) => function __init() {
9
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
+ };
11
+ var __commonJS = (cb, mod) => function __require() {
12
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+
31
+ // node_modules/tsup/assets/cjs_shims.js
32
+ var getImportMetaUrl, importMetaUrl;
33
+ var init_cjs_shims = __esm({
34
+ "node_modules/tsup/assets/cjs_shims.js"() {
35
+ getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
36
+ importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
37
+ }
38
+ });
39
+
40
+ // src/utils/index.cjs
41
+ var require_utils = __commonJS({
42
+ "src/utils/index.cjs"(exports2, module2) {
43
+ init_cjs_shims();
44
+ var fs2 = require("fs");
45
+ var path2 = require("upath");
46
+ var minimistLib = require("minimist");
47
+ var argv2 = minimistLib(process.argv.slice(2));
48
+ var { exec } = require("child_process");
49
+ var { promisify } = require("util");
50
+ var execAsync = promisify(exec);
51
+ async function parseGitRemotes() {
52
+ try {
53
+ const { stdout } = await execAsync("git remote -v");
54
+ const lines = stdout.split("\n");
55
+ const remotes = {};
56
+ lines.forEach((line) => {
57
+ const [name, url] = line.split(" ");
58
+ if (name && url) {
59
+ const [repoUrl] = url.split(" ");
60
+ try {
61
+ const parsedUrl = new URL(repoUrl);
62
+ const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
63
+ if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
64
+ let repoPath = pathParts.join("/");
65
+ if (repoPath.endsWith(".git")) {
66
+ repoPath = repoPath.slice(0, -4);
67
+ }
68
+ remotes[name] = repoPath;
69
+ }
70
+ } catch (e) {
71
+ console.error("URL Parsing Error:", e.message);
72
+ }
73
+ }
74
+ });
75
+ return remotes;
76
+ } catch (error) {
77
+ console.error("Error:", error.message);
78
+ return {};
79
+ }
80
+ }
81
+ module2.exports.parseGitRemotes = parseGitRemotes;
82
+ function getArgs2(opts) {
83
+ if (opts) {
84
+ return minimistLib(process.argv.slice(2), opts);
85
+ }
86
+ return argv2;
87
+ }
88
+ module2.exports.getArgs = getArgs2;
89
+ function del(fullPath) {
90
+ try {
91
+ if (!fs2.existsSync(fullPath)) return;
92
+ const stat = fs2.lstatSync(fullPath);
93
+ if (stat.isSymbolicLink()) {
94
+ try {
95
+ fs2.unlinkSync(fullPath);
96
+ console.log("deleted symlink", fullPath);
97
+ } catch (e) {
98
+ console.log("failed delete symlink", fullPath, e && e.message);
99
+ }
100
+ return;
101
+ }
102
+ if (stat.isDirectory()) {
103
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
104
+ for (let i = 0; i < subdir.length; i++) {
105
+ del(subdir[i]);
106
+ }
107
+ try {
108
+ fs2.rmdirSync(fullPath);
109
+ console.log("deleted", fullPath);
110
+ } catch (_e) {
111
+ try {
112
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
113
+ console.log("deleted", fullPath);
114
+ } catch (ee) {
115
+ console.log("failed delete", fullPath, ee && ee.message);
116
+ }
117
+ }
118
+ return;
119
+ }
120
+ try {
121
+ fs2.unlinkSync(fullPath);
122
+ console.log("deleted", fullPath);
123
+ } catch (_e) {
124
+ try {
125
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
126
+ console.log("deleted", fullPath);
127
+ } catch (ee) {
128
+ console.log("failed delete", fullPath, ee && ee.message);
129
+ }
130
+ }
131
+ } catch (err) {
132
+ console.log("failed delete", fullPath, err && err.message);
133
+ }
134
+ }
135
+ module2.exports.del = del;
136
+ function delStream(globStream) {
137
+ globStream.stream().on("data", (result) => {
138
+ const fullPath = path2.resolve(process.cwd(), result);
139
+ try {
140
+ if (fs2.existsSync(fullPath)) {
141
+ const stat = fs2.lstatSync(fullPath);
142
+ if (stat.isSymbolicLink()) {
143
+ try {
144
+ fs2.unlinkSync(fullPath);
145
+ console.log("deleted symlink", fullPath);
146
+ } catch (e) {
147
+ console.log("failed delete symlink", fullPath, e && e.message);
148
+ }
149
+ return;
150
+ }
151
+ if (stat.isDirectory()) {
152
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
153
+ for (let i = 0; i < subdir.length; i++) {
154
+ del(subdir[i]);
155
+ }
156
+ }
157
+ }
158
+ del(fullPath);
159
+ } catch (err) {
160
+ console.log("failed processing", fullPath, err && err.message);
161
+ }
162
+ });
163
+ }
164
+ module2.exports.delStream = delStream;
165
+ function getFileTreeString(hashArray) {
166
+ const tree = {};
167
+ const hashMap = {};
168
+ for (const entry of hashArray) {
169
+ const [filePath, hash] = entry.split(" ");
170
+ hashMap[filePath] = hash;
171
+ const parts = filePath.split("/");
172
+ let current = tree;
173
+ for (let i = 0; i < parts.length; i++) {
174
+ const part = parts[i];
175
+ if (i === parts.length - 1) {
176
+ current[part] = null;
177
+ } else {
178
+ current[part] = current[part] || {};
179
+ current = current[part];
180
+ }
181
+ }
182
+ }
183
+ function printNode(node, prefix = "", parentPath = "") {
184
+ const keys = Object.keys(node).sort();
185
+ let lines = [];
186
+ keys.forEach((key, idx) => {
187
+ const isLast = idx === keys.length - 1;
188
+ const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
189
+ const currentPath = parentPath ? parentPath + "/" + key : key;
190
+ if (node[key] === null) {
191
+ lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
192
+ } else {
193
+ lines.push(prefix + branch + key + "/");
194
+ lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
195
+ }
196
+ });
197
+ return lines;
198
+ }
199
+ return printNode(tree, "", "").join("\n");
200
+ }
201
+ module2.exports.getFileTreeString = getFileTreeString;
202
+ var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
203
+ module2.exports.delay = delay;
204
+ }
205
+ });
206
+
207
+ // src/rmpath-cli.mjs
208
+ init_cjs_shims();
209
+
210
+ // src/rmpath.mjs
211
+ init_cjs_shims();
212
+ var import_dotenv = __toESM(require("dotenv"), 1);
213
+ var import_fs_extra = __toESM(require("fs-extra"), 1);
214
+ var glob = __toESM(require("glob"), 1);
215
+ var import_upath = __toESM(require("upath"), 1);
216
+ var import_url = require("url");
217
+ var __filename2 = (0, import_url.fileURLToPath)(importMetaUrl);
218
+ var __dirname = import_upath.default.dirname(__filename2);
219
+ var dotenvPath = import_upath.default.resolve(process.cwd(), ".env");
220
+ if (import_fs_extra.default.existsSync(dotenvPath)) {
221
+ import_dotenv.default.config({ path: dotenvPath, override: true, quiet: true });
222
+ }
223
+ var deletePatterns = [];
224
+ function resolveDeletePatterns(targetPath) {
225
+ if (import_fs_extra.default.existsSync(targetPath) && import_fs_extra.default.lstatSync(targetPath).isFile()) {
226
+ deletePatterns.push(targetPath);
227
+ return;
228
+ }
229
+ const vowels = ["a", "i", "u", "e", "o", "A", "I", "U", "E", "O"];
230
+ const letters = [];
231
+ for (let i = 97; i <= 122; i++) letters.push(String.fromCharCode(i));
232
+ for (let i = 65; i <= 90; i++) letters.push(String.fromCharCode(i));
233
+ for (const letter of letters) {
234
+ for (const vowel of vowels) {
235
+ deletePatterns.push(
236
+ `.${letter}*`,
237
+ `@${letter}*`,
238
+ `${letter}*`,
239
+ `@${letter}${vowel}*`,
240
+ `.${letter}${vowel}*`,
241
+ `${letter}${vowel}*`
242
+ );
243
+ }
244
+ }
245
+ }
246
+ async function deleteMatchingFiles(baseDir) {
247
+ for (const pattern of deletePatterns) {
248
+ if (import_fs_extra.default.existsSync(pattern)) {
249
+ import_fs_extra.default.rmSync(pattern, { recursive: true, force: true });
250
+ continue;
251
+ }
252
+ const matches = glob.sync(import_upath.default.join(baseDir, pattern), { dot: true, nocase: true });
253
+ for (const fpath of matches) {
254
+ try {
255
+ console.log(`deleting ${fpath}`);
256
+ import_fs_extra.default.rmSync(fpath, { recursive: true, force: true });
257
+ } catch (_e) {
258
+ console.error(`cannot delete ${fpath}`);
259
+ }
260
+ }
261
+ }
262
+ }
263
+ async function deleteMainScript(targetPath) {
264
+ if (!import_fs_extra.default.existsSync(targetPath)) {
265
+ targetPath = import_upath.default.resolve(process.cwd(), targetPath);
266
+ }
267
+ resolveDeletePatterns(targetPath);
268
+ await deleteMatchingFiles(targetPath);
269
+ console.log(`cleaning ${targetPath}`);
270
+ try {
271
+ import_fs_extra.default.rmSync(targetPath, { recursive: true, force: true });
272
+ } catch (_e) {
273
+ }
274
+ }
275
+
276
+ // src/rmpath-cli.mjs
277
+ var import_utils = __toESM(require_utils(), 1);
278
+ var argv = (0, import_utils.getArgs)();
279
+ var positional = argv._ || [];
280
+ if (positional.length === 0) {
281
+ console.error("You need to provide a file or folder path");
282
+ process.exit(1);
283
+ } else {
284
+ deleteMainScript(positional[0]);
285
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ deleteMainScript
4
+ } from "./chunk-RDGDLSPD.mjs";
5
+ import {
6
+ require_utils
7
+ } from "./chunk-6RK5UCTP.mjs";
8
+ import {
9
+ __toESM,
10
+ init_esm_shims
11
+ } from "./chunk-QQ4A6DLD.mjs";
12
+
13
+ // src/rmpath-cli.mjs
14
+ init_esm_shims();
15
+ var import_utils = __toESM(require_utils(), 1);
16
+ var argv = (0, import_utils.getArgs)();
17
+ var positional = argv._ || [];
18
+ if (positional.length === 0) {
19
+ console.error("You need to provide a file or folder path");
20
+ process.exit(1);
21
+ } else {
22
+ deleteMainScript(positional[0]);
23
+ }