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
@@ -19,9 +19,9 @@ var require_utils = __commonJS({
19
19
  init_cjs_shims();
20
20
  var fs2 = require("fs");
21
21
  var path2 = require("upath");
22
- var argv2 = require("minimist")(process.argv.slice(2));
22
+ var minimistLib = require("minimist");
23
+ var argv2 = minimistLib(process.argv.slice(2));
23
24
  var { exec } = require("child_process");
24
- var { URL: URL2 } = require("url");
25
25
  var { promisify } = require("util");
26
26
  var execAsync = promisify(exec);
27
27
  async function parseGitRemotes() {
@@ -34,7 +34,7 @@ var require_utils = __commonJS({
34
34
  if (name && url) {
35
35
  const [repoUrl] = url.split(" ");
36
36
  try {
37
- const parsedUrl = new URL2(repoUrl);
37
+ const parsedUrl = new URL(repoUrl);
38
38
  const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
39
39
  if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
40
40
  let repoPath = pathParts.join("/");
@@ -55,15 +55,10 @@ var require_utils = __commonJS({
55
55
  }
56
56
  }
57
57
  module2.exports.parseGitRemotes = parseGitRemotes;
58
- function joinPathPreserveDriveLetter(...segments) {
59
- let fullPath = require("path").join(...segments);
60
- if (/^[a-z]:\\/.test(fullPath)) {
61
- fullPath = fullPath.charAt(0).toUpperCase() + fullPath.slice(1);
58
+ function getArgs2(opts) {
59
+ if (opts) {
60
+ return minimistLib(process.argv.slice(2), opts);
62
61
  }
63
- return fullPath;
64
- }
65
- module2.exports.joinPathPreserveDriveLetter = joinPathPreserveDriveLetter;
66
- function getArgs2() {
67
62
  return argv2;
68
63
  }
69
64
  module2.exports.getArgs = getArgs2;
@@ -187,9 +182,10 @@ var require_utils = __commonJS({
187
182
 
188
183
  // src/print-directory-tree.cjs
189
184
  init_cjs_shims();
190
- var fs = require("fs").promises;
191
- var path = require("path");
192
- var crypto = require("crypto");
185
+ var fs = require("fs");
186
+ var fsp = require("fs").promises;
187
+ var path = require("upath");
188
+ var CryptoJS = require("crypto-js");
193
189
  var { execSync } = require("child_process");
194
190
  var glob = require("glob");
195
191
  var { getArgs } = require_utils();
@@ -243,9 +239,9 @@ async function main() {
243
239
  let relativePath = path.relative(projectDir, file);
244
240
  relativePath = relativePath.split(path.sep).join("/");
245
241
  try {
246
- const stats = await fs.stat(file);
242
+ const stats = await fsp.stat(file);
247
243
  const pseudoHash = `${stats.size}-${stats.mtimeMs}`;
248
- const hash = crypto.createHash("sha256").update(pseudoHash).digest("hex");
244
+ const hash = CryptoJS.SHA256(pseudoHash).toString(CryptoJS.enc.Hex);
249
245
  hashArray.push(`${relativePath} ${hash.slice(0, 8)}`);
250
246
  } catch (err) {
251
247
  console.error(`Error processing file: ${file}`, err instanceof Error ? err.message : "<unknown error>");
@@ -280,7 +276,9 @@ async function main() {
280
276
  nodir: true
281
277
  });
282
278
  const allFiles = /* @__PURE__ */ new Set([...initialFiles, ...globFiles]);
283
- await Promise.all(Array.from(allFiles).map(hashAndPush));
279
+ await Promise.all(
280
+ Array.from(allFiles).filter((p) => fs.existsSync(p)).map(hashAndPush)
281
+ );
284
282
  hashArray.sort((a, b) => a.localeCompare(b));
285
283
  function getFileTreeString(hashArray2) {
286
284
  const tree = {};
@@ -319,7 +317,7 @@ async function main() {
319
317
  return printNode(tree, "", "").join("\n");
320
318
  }
321
319
  const fileTreeString = getFileTreeString(hashArray);
322
- await fs.writeFile(outputFile, fileTreeString + "\n", "utf-8");
320
+ await fsp.writeFile(outputFile, fileTreeString + "\n", "utf-8");
323
321
  if (argv["git-add"]) {
324
322
  execSync(`git add ${relativeOutputFile}`);
325
323
  console.log(`Directory tree written to ${relativeOutputFile} and staged for git.`);
@@ -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
  __commonJS,
7
7
  __require,
@@ -12,9 +12,10 @@ import {
12
12
  var require_print_directory_tree = __commonJS({
13
13
  "src/print-directory-tree.cjs"() {
14
14
  init_esm_shims();
15
- var fs = __require("fs").promises;
16
- var path = __require("path");
17
- var crypto = __require("crypto");
15
+ var fs = __require("fs");
16
+ var fsp = __require("fs").promises;
17
+ var path = __require("upath");
18
+ var CryptoJS = __require("crypto-js");
18
19
  var { execSync } = __require("child_process");
19
20
  var glob = __require("glob");
20
21
  var { getArgs } = require_utils();
@@ -68,9 +69,9 @@ var require_print_directory_tree = __commonJS({
68
69
  let relativePath = path.relative(projectDir, file);
69
70
  relativePath = relativePath.split(path.sep).join("/");
70
71
  try {
71
- const stats = await fs.stat(file);
72
+ const stats = await fsp.stat(file);
72
73
  const pseudoHash = `${stats.size}-${stats.mtimeMs}`;
73
- const hash = crypto.createHash("sha256").update(pseudoHash).digest("hex");
74
+ const hash = CryptoJS.SHA256(pseudoHash).toString(CryptoJS.enc.Hex);
74
75
  hashArray.push(`${relativePath} ${hash.slice(0, 8)}`);
75
76
  } catch (err) {
76
77
  console.error(`Error processing file: ${file}`, err instanceof Error ? err.message : "<unknown error>");
@@ -105,7 +106,9 @@ var require_print_directory_tree = __commonJS({
105
106
  nodir: true
106
107
  });
107
108
  const allFiles = /* @__PURE__ */ new Set([...initialFiles, ...globFiles]);
108
- await Promise.all(Array.from(allFiles).map(hashAndPush));
109
+ await Promise.all(
110
+ Array.from(allFiles).filter((p) => fs.existsSync(p)).map(hashAndPush)
111
+ );
109
112
  hashArray.sort((a, b) => a.localeCompare(b));
110
113
  function getFileTreeString(hashArray2) {
111
114
  const tree = {};
@@ -144,7 +147,7 @@ var require_print_directory_tree = __commonJS({
144
147
  return printNode(tree, "", "").join("\n");
145
148
  }
146
149
  const fileTreeString = getFileTreeString(hashArray);
147
- await fs.writeFile(outputFile, fileTreeString + "\n", "utf-8");
150
+ await fsp.writeFile(outputFile, fileTreeString + "\n", "utf-8");
148
151
  if (argv["git-add"]) {
149
152
  execSync(`git add ${relativeOutputFile}`);
150
153
  console.log(`Directory tree written to ${relativeOutputFile} and staged for git.`);
@@ -0,0 +1,262 @@
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 init_cjs_shims = __esm({
33
+ "node_modules/tsup/assets/cjs_shims.js"() {
34
+ }
35
+ });
36
+
37
+ // src/utils/index.cjs
38
+ var require_utils = __commonJS({
39
+ "src/utils/index.cjs"(exports2, module2) {
40
+ init_cjs_shims();
41
+ var fs2 = require("fs");
42
+ var path2 = require("upath");
43
+ var minimistLib = require("minimist");
44
+ var argv2 = minimistLib(process.argv.slice(2));
45
+ var { exec } = require("child_process");
46
+ var { promisify } = require("util");
47
+ var execAsync = promisify(exec);
48
+ async function parseGitRemotes() {
49
+ try {
50
+ const { stdout } = await execAsync("git remote -v");
51
+ const lines = stdout.split("\n");
52
+ const remotes = {};
53
+ lines.forEach((line) => {
54
+ const [name, url] = line.split(" ");
55
+ if (name && url) {
56
+ const [repoUrl] = url.split(" ");
57
+ try {
58
+ const parsedUrl = new URL(repoUrl);
59
+ const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
60
+ if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
61
+ let repoPath = pathParts.join("/");
62
+ if (repoPath.endsWith(".git")) {
63
+ repoPath = repoPath.slice(0, -4);
64
+ }
65
+ remotes[name] = repoPath;
66
+ }
67
+ } catch (e) {
68
+ console.error("URL Parsing Error:", e.message);
69
+ }
70
+ }
71
+ });
72
+ return remotes;
73
+ } catch (error) {
74
+ console.error("Error:", error.message);
75
+ return {};
76
+ }
77
+ }
78
+ module2.exports.parseGitRemotes = parseGitRemotes;
79
+ function getArgs2(opts) {
80
+ if (opts) {
81
+ return minimistLib(process.argv.slice(2), opts);
82
+ }
83
+ return argv2;
84
+ }
85
+ module2.exports.getArgs = getArgs2;
86
+ function del(fullPath) {
87
+ try {
88
+ if (!fs2.existsSync(fullPath)) return;
89
+ const stat = fs2.lstatSync(fullPath);
90
+ if (stat.isSymbolicLink()) {
91
+ try {
92
+ fs2.unlinkSync(fullPath);
93
+ console.log("deleted symlink", fullPath);
94
+ } catch (e) {
95
+ console.log("failed delete symlink", fullPath, e && e.message);
96
+ }
97
+ return;
98
+ }
99
+ if (stat.isDirectory()) {
100
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
101
+ for (let i = 0; i < subdir.length; i++) {
102
+ del(subdir[i]);
103
+ }
104
+ try {
105
+ fs2.rmdirSync(fullPath);
106
+ console.log("deleted", fullPath);
107
+ } catch (_e) {
108
+ try {
109
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
110
+ console.log("deleted", fullPath);
111
+ } catch (ee) {
112
+ console.log("failed delete", fullPath, ee && ee.message);
113
+ }
114
+ }
115
+ return;
116
+ }
117
+ try {
118
+ fs2.unlinkSync(fullPath);
119
+ console.log("deleted", fullPath);
120
+ } catch (_e) {
121
+ try {
122
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
123
+ console.log("deleted", fullPath);
124
+ } catch (ee) {
125
+ console.log("failed delete", fullPath, ee && ee.message);
126
+ }
127
+ }
128
+ } catch (err) {
129
+ console.log("failed delete", fullPath, err && err.message);
130
+ }
131
+ }
132
+ module2.exports.del = del;
133
+ function delStream(globStream) {
134
+ globStream.stream().on("data", (result) => {
135
+ const fullPath = path2.resolve(process.cwd(), result);
136
+ try {
137
+ if (fs2.existsSync(fullPath)) {
138
+ const stat = fs2.lstatSync(fullPath);
139
+ if (stat.isSymbolicLink()) {
140
+ try {
141
+ fs2.unlinkSync(fullPath);
142
+ console.log("deleted symlink", fullPath);
143
+ } catch (e) {
144
+ console.log("failed delete symlink", fullPath, e && e.message);
145
+ }
146
+ return;
147
+ }
148
+ if (stat.isDirectory()) {
149
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
150
+ for (let i = 0; i < subdir.length; i++) {
151
+ del(subdir[i]);
152
+ }
153
+ }
154
+ }
155
+ del(fullPath);
156
+ } catch (err) {
157
+ console.log("failed processing", fullPath, err && err.message);
158
+ }
159
+ });
160
+ }
161
+ module2.exports.delStream = delStream;
162
+ function getFileTreeString(hashArray) {
163
+ const tree = {};
164
+ const hashMap = {};
165
+ for (const entry of hashArray) {
166
+ const [filePath2, hash] = entry.split(" ");
167
+ hashMap[filePath2] = hash;
168
+ const parts = filePath2.split("/");
169
+ let current = tree;
170
+ for (let i = 0; i < parts.length; i++) {
171
+ const part = parts[i];
172
+ if (i === parts.length - 1) {
173
+ current[part] = null;
174
+ } else {
175
+ current[part] = current[part] || {};
176
+ current = current[part];
177
+ }
178
+ }
179
+ }
180
+ function printNode(node, prefix = "", parentPath = "") {
181
+ const keys = Object.keys(node).sort();
182
+ let lines = [];
183
+ keys.forEach((key, idx) => {
184
+ const isLast = idx === keys.length - 1;
185
+ const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
186
+ const currentPath = parentPath ? parentPath + "/" + key : key;
187
+ if (node[key] === null) {
188
+ lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
189
+ } else {
190
+ lines.push(prefix + branch + key + "/");
191
+ lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
192
+ }
193
+ });
194
+ return lines;
195
+ }
196
+ return printNode(tree, "", "").join("\n");
197
+ }
198
+ module2.exports.getFileTreeString = getFileTreeString;
199
+ var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
200
+ module2.exports.delay = delay;
201
+ }
202
+ });
203
+
204
+ // src/print-tarball-tree.mjs
205
+ init_cjs_shims();
206
+ var import_fs = __toESM(require("fs"), 1);
207
+ var import_zlib = __toESM(require("zlib"), 1);
208
+ var import_tar_stream = __toESM(require("tar-stream"), 1);
209
+ var import_upath = __toESM(require("upath"), 1);
210
+ var import_utils = __toESM(require_utils(), 1);
211
+ function addToTree(tree, parts) {
212
+ let node = tree;
213
+ for (const part of parts) {
214
+ if (!node[part]) node[part] = {};
215
+ node = node[part];
216
+ }
217
+ }
218
+ function printTree(node, prefix = "") {
219
+ const entries = Object.keys(node).sort();
220
+ entries.forEach((key, index) => {
221
+ const isLast = index === entries.length - 1;
222
+ console.log(prefix + (isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ") + key);
223
+ const child = node[key];
224
+ const newPrefix = prefix + (isLast ? " " : "\u2502 ");
225
+ printTree(child, newPrefix);
226
+ });
227
+ }
228
+ function printTgzTree(filePath2) {
229
+ const extract = import_tar_stream.default.extract();
230
+ const tree = {};
231
+ extract.on("entry", (header, stream, next) => {
232
+ const parts = header.name.split("/").filter(Boolean);
233
+ if (parts.length) addToTree(tree, parts);
234
+ stream.on("end", next);
235
+ stream.resume();
236
+ });
237
+ extract.on("finish", () => {
238
+ printTree(tree);
239
+ });
240
+ import_fs.default.createReadStream(filePath2).pipe(import_zlib.default.createGunzip()).pipe(extract);
241
+ }
242
+ var argv = (0, import_utils.getArgs)({ string: ["file"], alias: { f: "file", h: "help" } });
243
+ if (argv.help) {
244
+ console.log(`
245
+ Usage: node src/print-tarball-tree.mjs [options]
246
+
247
+ Options:
248
+ -f, --file <path> Path to the tarball file (default: package.tgz)
249
+ -h, --help Show this help message
250
+ `);
251
+ process.exit(0);
252
+ }
253
+ var filePath = argv.file ? import_upath.default.isAbsolute(argv.file) ? argv.file : import_upath.default.resolve(process.cwd(), argv.file) : null;
254
+ if (!filePath) {
255
+ console.error("Error: No file specified");
256
+ process.exit(1);
257
+ }
258
+ if (!import_fs.default.existsSync(filePath)) {
259
+ console.error(`Error: File not found at ${filePath}`);
260
+ process.exit(1);
261
+ }
262
+ printTgzTree(filePath);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,68 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ require_utils
4
+ } from "./chunk-6RK5UCTP.mjs";
5
+ import {
6
+ __toESM,
7
+ init_esm_shims
8
+ } from "./chunk-QQ4A6DLD.mjs";
9
+
10
+ // src/print-tarball-tree.mjs
11
+ init_esm_shims();
12
+ var import_utils = __toESM(require_utils(), 1);
13
+ import fs from "fs";
14
+ import zlib from "zlib";
15
+ import tar from "tar-stream";
16
+ import path from "upath";
17
+ function addToTree(tree, parts) {
18
+ let node = tree;
19
+ for (const part of parts) {
20
+ if (!node[part]) node[part] = {};
21
+ node = node[part];
22
+ }
23
+ }
24
+ function printTree(node, prefix = "") {
25
+ const entries = Object.keys(node).sort();
26
+ entries.forEach((key, index) => {
27
+ const isLast = index === entries.length - 1;
28
+ console.log(prefix + (isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ") + key);
29
+ const child = node[key];
30
+ const newPrefix = prefix + (isLast ? " " : "\u2502 ");
31
+ printTree(child, newPrefix);
32
+ });
33
+ }
34
+ function printTgzTree(filePath2) {
35
+ const extract = tar.extract();
36
+ const tree = {};
37
+ extract.on("entry", (header, stream, next) => {
38
+ const parts = header.name.split("/").filter(Boolean);
39
+ if (parts.length) addToTree(tree, parts);
40
+ stream.on("end", next);
41
+ stream.resume();
42
+ });
43
+ extract.on("finish", () => {
44
+ printTree(tree);
45
+ });
46
+ fs.createReadStream(filePath2).pipe(zlib.createGunzip()).pipe(extract);
47
+ }
48
+ var argv = (0, import_utils.getArgs)({ string: ["file"], alias: { f: "file", h: "help" } });
49
+ if (argv.help) {
50
+ console.log(`
51
+ Usage: node src/print-tarball-tree.mjs [options]
52
+
53
+ Options:
54
+ -f, --file <path> Path to the tarball file (default: package.tgz)
55
+ -h, --help Show this help message
56
+ `);
57
+ process.exit(0);
58
+ }
59
+ var filePath = argv.file ? path.isAbsolute(argv.file) ? argv.file : path.resolve(process.cwd(), argv.file) : null;
60
+ if (!filePath) {
61
+ console.error("Error: No file specified");
62
+ process.exit(1);
63
+ }
64
+ if (!fs.existsSync(filePath)) {
65
+ console.error(`Error: File not found at ${filePath}`);
66
+ process.exit(1);
67
+ }
68
+ printTgzTree(filePath);
package/lib/ps/index.cjs CHANGED
@@ -25,17 +25,17 @@ var init_cjs_shims = __esm({
25
25
  }
26
26
  });
27
27
 
28
- // src/ps/isWin.js
29
- var isWin_exports = {};
30
- __export(isWin_exports, {
31
- default: () => isWin_default
28
+ // src/utils/isWindows.js
29
+ var isWindows_exports = {};
30
+ __export(isWindows_exports, {
31
+ isWindows: () => isWindows
32
32
  });
33
- var isWin, isWin_default;
34
- var init_isWin = __esm({
35
- "src/ps/isWin.js"() {
33
+ function isWindows() {
34
+ return process.platform === "win32" || /^(msys|cygwin)$/.test(process.env.OSTYPE || "");
35
+ }
36
+ var init_isWindows = __esm({
37
+ "src/utils/isWindows.js"() {
36
38
  init_cjs_shims();
37
- isWin = process.platform === "win32";
38
- isWin_default = isWin;
39
39
  }
40
40
  });
41
41
 
@@ -397,7 +397,7 @@ var init_table_parser = __esm({
397
397
  // src/ps/index.cjs
398
398
  init_cjs_shims();
399
399
  var ChildProcess = require("child_process");
400
- var IS_WIN = (init_isWin(), __toCommonJS(isWin_exports)).default;
400
+ var IS_WIN = (init_isWindows(), __toCommonJS(isWindows_exports)).isWindows();
401
401
  var TableParser = (init_table_parser(), __toCommonJS(table_parser_exports));
402
402
  var EOL = /(\r\n)|(\n\r)|\n|\r/;
403
403
  var SystemEOL = require("os").EOL;
package/lib/ps/index.mjs CHANGED
@@ -5,9 +5,9 @@ import {
5
5
  } from "../chunk-XVBFFVCJ.mjs";
6
6
  import "../chunk-FKI7IEB5.mjs";
7
7
  import {
8
- init_isWin,
9
- isWin_exports
10
- } from "../chunk-6S4NXESK.mjs";
8
+ init_isWindows,
9
+ isWindows_exports
10
+ } from "../chunk-QII2EKCS.mjs";
11
11
  import {
12
12
  __commonJS,
13
13
  __require,
@@ -20,7 +20,7 @@ var require_ps = __commonJS({
20
20
  "src/ps/index.cjs"(exports, module) {
21
21
  init_esm_shims();
22
22
  var ChildProcess = __require("child_process");
23
- var IS_WIN = (init_isWin(), __toCommonJS(isWin_exports)).default;
23
+ var IS_WIN = (init_isWindows(), __toCommonJS(isWindows_exports)).isWindows();
24
24
  var TableParser = (init_table_parser(), __toCommonJS(table_parser_exports));
25
25
  var EOL = /(\r\n)|(\n\r)|\n|\r/;
26
26
  var SystemEOL = __require("os").EOL;
@@ -1,6 +1,5 @@
1
1
  /**
2
- * The output sting of cmd to parse
3
- * @param output
4
- * @returns {Array}
2
+ * @param {string} output
3
+ * @returns {Array<Object>}
5
4
  */
6
- export function parse(output: any): any[];
5
+ export function parse(output: string): Array<Object>;
@@ -4,8 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.parse = parse;
7
- /**
8
- *
7
+ /*
9
8
  * 1, define the edge ( begin and end ) of every title field
10
9
  * 2, parse all the lines except the title line, get all the connected-domains
11
10
  * 3, group all the connected-domains vertically overlapped.
@@ -15,9 +14,8 @@ exports.parse = parse;
15
14
  const connected_domain_1 = __importDefault(require("./connected-domain"));
16
15
  var EMPTY_EX = /\s/;
17
16
  /**
18
- * The output sting of cmd to parse
19
- * @param output
20
- * @returns {Array}
17
+ * @param {string} output
18
+ * @returns {Array<Object>}
21
19
  */
22
20
  function parse(output) {
23
21
  // Split into lines
@@ -175,11 +173,10 @@ function parse(output) {
175
173
  return result;
176
174
  }
177
175
  /**
178
- * Test if two bounding overlapped vertically
179
- * @param begin1
180
- * @param end1
181
- * @param begin2
182
- * @param end2
176
+ * @param {number} begin1
177
+ * @param {number} end1
178
+ * @param {number} begin2
179
+ * @param {number} end2
183
180
  * @returns {boolean}
184
181
  */
185
182
  function overlap(begin1, end1, begin2, end2) {
@@ -188,12 +185,8 @@ function overlap(begin1, end1, begin2, end2) {
188
185
  (begin1 <= begin2 && end1 >= end2)); // 21--12 or 1--2--2--1
189
186
  }
190
187
  /**
191
- * transform a string value into array. It's not just split(), but also to consider some chunk that wrapped with `"`, like below:
192
- * "C:\Program Files\Google\Chrome\Application\chrome.exe" --type=renderer --lang=zh-CN, `C:\Program Files\Google\Chrome\Application\chrome.exe` should be treated as a whole,
193
- * also, be careful don't be mislead by format like `--name="neekey"`, even more complicated: `--name="Neekey Ni"`
194
- * so, `"C:\Program Files\Internet Explorer\iexplore.exe" --name="Jack Neekey"` should split into:
195
- * - C:\Program Files\Internet Explorer\iexplore.exe // without `"`
196
- * - --name="Jack Neekey" // with `"`
188
+ * @param {string} value
189
+ * @returns {string[]}
197
190
  */
198
191
  function splitValue(value) {
199
192
  var match = value.match(/"/g);