binary-collections 2.0.10 → 2.0.11

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 (165) hide show
  1. package/.puppeterrc.cjs +25 -0
  2. package/binaries/binary-executor.cjs +138 -3
  3. package/binaries/clean-nodemodule.cjs +138 -3
  4. package/binaries/clean-nodemodules.cjs +138 -3
  5. package/binaries/dev.cjs +138 -3
  6. package/binaries/empty.cjs +138 -3
  7. package/binaries/git-reduce-size.cjs +138 -3
  8. package/binaries/javakill.cjs +138 -3
  9. package/binaries/kill-night-crows.bat +7 -0
  10. package/binaries/kill-night-crows.ps1 +172 -0
  11. package/binaries/kill-process.cjs +138 -3
  12. package/binaries/nodekill.cjs +138 -3
  13. package/binaries/prod.cjs +138 -3
  14. package/binaries/py +111 -0
  15. package/binaries/py.cjs +178 -0
  16. package/binaries/py.cmd +49 -0
  17. package/binaries/rmfind.cjs +138 -3
  18. package/binaries/rmx.cjs +138 -3
  19. package/binaries/submodule-token.cjs +138 -3
  20. package/binaries/test-cjs +10 -0
  21. package/binaries/test-cjs.cjs +178 -0
  22. package/binaries/test-cjs.cmd +11 -0
  23. package/binaries/yarn-clean +32 -0
  24. package/binaries/yarn-clean.cjs +178 -0
  25. package/binaries/yarn-clean.cmd +30 -0
  26. package/binaries/yarn-clean.py +148 -0
  27. package/lib/binary-collections-config.cjs +1 -1
  28. package/lib/binary-collections-config.mjs +1 -1
  29. package/lib/binary-collections.cjs +167 -106
  30. package/lib/binary-collections.mjs +108 -94
  31. package/lib/changelog.cjs +61 -13
  32. package/lib/changelog.mjs +1 -1
  33. package/lib/{chunk-AI4CVPJ7.mjs → chunk-2CBJCW7E.mjs} +4 -4
  34. package/lib/chunk-34IQDTLZ.mjs +27 -0
  35. package/lib/chunk-3HFFECCI.mjs +27 -0
  36. package/lib/{chunk-SBNDSKG5.mjs → chunk-4UHL4WVN.mjs} +1 -1
  37. package/lib/chunk-7XTEJHOE.mjs +193 -0
  38. package/lib/chunk-AJDD5DZM.mjs +109 -0
  39. package/lib/chunk-BZWVHODJ.mjs +62 -0
  40. package/lib/{chunk-BEZKJ25G.mjs → chunk-FCDQGYBF.mjs} +5 -9
  41. package/lib/chunk-GEYA2USY.mjs +207 -0
  42. package/lib/chunk-ID2WBTE2.mjs +80 -0
  43. package/lib/chunk-JXFOHKDM.mjs +239 -0
  44. package/lib/{chunk-DI5MDPSN.mjs → chunk-N436BNBK.mjs} +192 -64
  45. package/lib/chunk-NCXAP7AA.mjs +31 -0
  46. package/lib/chunk-PDN26I7O.mjs +188 -0
  47. package/lib/{chunk-E6FDDAOO.mjs → chunk-RWLXRTYP.mjs} +1 -1
  48. package/lib/{chunk-BDCHCWHD.mjs → chunk-TOIVAQF7.mjs} +4 -4
  49. package/lib/chunk-V5SKYJUB.mjs +136 -0
  50. package/lib/{chunk-HMRMTYZM.mjs → chunk-WSRETQCA.mjs} +21 -2
  51. package/lib/chunk-XA3SNBPA.mjs +184 -0
  52. package/lib/chunk-YYLIQQKF.mjs +31 -0
  53. package/lib/{chunk-V3N3JEUF.mjs → chunk-Z6JLYU2J.mjs} +60 -13
  54. package/lib/{chunk-O6SWBEOQ.mjs → chunk-ZDMWBSYF.mjs} +2 -2
  55. package/lib/clean-github-actions-caches.cjs +63 -15
  56. package/lib/clean-github-actions-caches.mjs +3 -3
  57. package/lib/del-gradle.cjs +61 -13
  58. package/lib/del-gradle.js +1 -0
  59. package/lib/del-gradle.mjs +1 -1
  60. package/lib/del-node-modules.cjs +143 -148
  61. package/lib/del-node-modules.js +210 -14
  62. package/lib/del-node-modules.mjs +148 -17
  63. package/lib/del-ps.cjs +61 -13
  64. package/lib/del-ps.js +1 -0
  65. package/lib/del-ps.mjs +1 -1
  66. package/lib/del-yarn-caches.cjs +61 -13
  67. package/lib/del-yarn-caches.mjs +1 -1
  68. package/lib/find-node-modules-cli.js +1 -0
  69. package/lib/free-chatgpt.cjs +253 -47
  70. package/lib/free-chatgpt.mjs +2 -2
  71. package/lib/git/gitattributes.cjs +1 -0
  72. package/lib/git/gitattributes.d.cts +7 -2
  73. package/lib/git/gitattributes.mjs +1 -1
  74. package/lib/git/line-endings.cjs +2 -1
  75. package/lib/git/line-endings.mjs +2 -2
  76. package/lib/git/undo-commit-cli.cjs +110 -0
  77. package/lib/git/undo-commit-cli.d.ts +1 -0
  78. package/lib/git/undo-commit-cli.js +4 -0
  79. package/lib/git/undo-commit-cli.mjs +14 -0
  80. package/lib/git/undo-commit.cjs +81 -0
  81. package/lib/git/undo-commit.d.cts +1 -0
  82. package/lib/git/undo-commit.mjs +7 -0
  83. package/lib/git/undo-staged-cli.cjs +110 -0
  84. package/lib/git/undo-staged-cli.d.ts +1 -0
  85. package/lib/git/undo-staged-cli.js +4 -0
  86. package/lib/git/undo-staged-cli.mjs +14 -0
  87. package/lib/git/undo-staged.cjs +81 -0
  88. package/lib/git/undo-staged.d.cts +1 -0
  89. package/lib/git/undo-staged.mjs +7 -0
  90. package/lib/git/user-config.cjs +61 -14
  91. package/lib/git/user-config.mjs +2 -2
  92. package/lib/git-diff-cli.cjs +255 -49
  93. package/lib/git-diff-cli.d.ts +1 -0
  94. package/lib/git-diff-cli.js +1 -0
  95. package/lib/git-diff-cli.mjs +5 -4
  96. package/lib/git-diff.cjs +254 -49
  97. package/lib/git-diff.mjs +4 -4
  98. package/lib/git-fix.cjs +64 -16
  99. package/lib/git-fix.mjs +10 -10
  100. package/lib/git-purge.cjs +61 -13
  101. package/lib/git-purge.mjs +1 -1
  102. package/lib/kill-night-crows.cjs +87 -0
  103. package/lib/kill-night-crows.d.mts +1 -0
  104. package/lib/kill-night-crows.mjs +65 -0
  105. package/lib/npm-run-series.cjs +60 -13
  106. package/lib/npm-run-series.mjs +1 -1
  107. package/lib/package-resolutions-updater-cli.cjs +560 -0
  108. package/lib/package-resolutions-updater-cli.d.mts +1 -0
  109. package/lib/package-resolutions-updater-cli.mjs +124 -0
  110. package/lib/package-resolutions-updater.cjs +174 -154
  111. package/lib/package-resolutions-updater.d.mts +32 -1
  112. package/lib/package-resolutions-updater.mjs +16 -294
  113. package/lib/php-cs-fixer-staged.cjs +105 -0
  114. package/lib/php-cs-fixer-staged.d.cts +2 -0
  115. package/lib/php-cs-fixer-staged.mjs +117 -0
  116. package/lib/print-directory-tree.cjs +62 -14
  117. package/lib/print-directory-tree.mjs +2 -2
  118. package/lib/ps/connected-domain.d.ts +1 -1
  119. package/lib/ps/index.js +1 -0
  120. package/lib/remove-module.cjs +61 -13
  121. package/lib/remove-module.mjs +1 -1
  122. package/lib/rmpath.cjs +63 -15
  123. package/lib/rmpath.mjs +2 -2
  124. package/lib/submodule-install.cjs +62 -15
  125. package/lib/submodule-install.mjs +3 -3
  126. package/lib/submodule-remove-cli.cjs +5 -1
  127. package/lib/submodule-remove-cli.mjs +1 -1
  128. package/lib/submodule-remove.cjs +4 -1
  129. package/lib/submodule-remove.mjs +1 -1
  130. package/lib/utils/chatgpt.cjs +192 -34
  131. package/lib/utils/chatgpt.js +210 -43
  132. package/lib/utils/chatgpt.mjs +1 -1
  133. package/lib/utils/findEnvFiles.cjs +107 -0
  134. package/lib/utils/findEnvFiles.d.ts +8 -0
  135. package/lib/utils/findEnvFiles.js +121 -0
  136. package/lib/utils/findEnvFiles.mjs +8 -0
  137. package/lib/utils/findWorkspaceRoot.cjs +70 -0
  138. package/lib/utils/findWorkspaceRoot.d.ts +9 -0
  139. package/lib/utils/findWorkspaceRoot.js +57 -0
  140. package/lib/utils/findWorkspaceRoot.mjs +40 -0
  141. package/lib/utils/index.cjs +60 -13
  142. package/lib/utils/index.mjs +1 -1
  143. package/lib/utils/isGithubTokenValid.cjs +64 -0
  144. package/lib/utils/isGithubTokenValid.d.ts +7 -0
  145. package/lib/utils/isGithubTokenValid.js +48 -0
  146. package/lib/utils/isGithubTokenValid.mjs +36 -0
  147. package/lib/yarn-reinstall.cjs +61 -13
  148. package/lib/yarn-reinstall.mjs +1 -1
  149. package/package.json +107 -93
  150. package/readme.md +33 -34
  151. package/releases/readme.md +1 -1
  152. package/requirements.txt +1 -0
  153. package/lib/chunk-4EWQC6GZ.mjs +0 -382
  154. package/lib/chunk-4ZI7BQKQ.mjs +0 -381
  155. package/lib/chunk-5J2BEPY5.mjs +0 -83
  156. package/lib/chunk-AGZYRDC2.mjs +0 -323
  157. package/lib/chunk-HN52G2YL.mjs +0 -305
  158. package/lib/chunk-HO6GHCOB.mjs +0 -385
  159. package/lib/chunk-LEM5OMRP.mjs +0 -384
  160. package/lib/chunk-RCP7DHVY.mjs +0 -190
  161. package/lib/chunk-U6SO4QEV.mjs +0 -320
  162. package/lib/chunk-XD6BJK6Q.mjs +0 -351
  163. package/lib/chunk-YXSFGA2D.mjs +0 -383
  164. package/lib/git/gitattributes.d.ts +0 -33
  165. package/lib/git/gitattributes.js +0 -223
@@ -0,0 +1,148 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import shutil
5
+ from concurrent.futures import ThreadPoolExecutor, as_completed
6
+ from pathlib import Path
7
+ import json
8
+ import glob
9
+ from typing import Union
10
+
11
+
12
+ def delete_dir(path: Path) -> tuple[str, Path]:
13
+ shutil.rmtree(path, ignore_errors=True)
14
+ return ("dir", path)
15
+
16
+
17
+ def delete_file(path: Path) -> tuple[str, Path]:
18
+ path.unlink(missing_ok=True)
19
+ return ("file", path)
20
+
21
+
22
+ def clean(base_dir: Union[str, Path]) -> None:
23
+ root = Path(base_dir).resolve()
24
+
25
+ node_modules_dirs: list[Path] = []
26
+ yarn_lock_files: list[Path] = []
27
+
28
+ print(f"Scanning: {root}")
29
+
30
+ # Collect targets
31
+ for current_root, dirs, files in os.walk(root, topdown=True):
32
+ current = Path(current_root)
33
+
34
+ if "node_modules" in dirs:
35
+ node_modules_dirs.append(current / "node_modules")
36
+
37
+ # Prevent recursive scan into node_modules
38
+ dirs.remove("node_modules")
39
+
40
+ if "yarn.lock" in files:
41
+ yarn_lock_files.append(current / "yarn.lock")
42
+
43
+ print(f"Found node_modules: {len(node_modules_dirs)}")
44
+ print(f"Found yarn.lock: {len(yarn_lock_files)}")
45
+ print()
46
+
47
+ deleted_dirs = 0
48
+ deleted_files = 0
49
+
50
+ max_workers = min(32, (os.cpu_count() or 1) * 4)
51
+
52
+ with ThreadPoolExecutor(max_workers=max_workers) as executor:
53
+ futures = [
54
+ *(executor.submit(delete_dir, path) for path in node_modules_dirs),
55
+ *(executor.submit(delete_file, path) for path in yarn_lock_files),
56
+ ]
57
+
58
+ for future in as_completed(futures):
59
+ kind, path = future.result()
60
+
61
+ if kind == "dir":
62
+ deleted_dirs += 1
63
+ print(f"[DIR ] Deleted: {path}")
64
+ else:
65
+ deleted_files += 1
66
+ print(f"[FILE] Deleted: {path}")
67
+
68
+ print()
69
+ print("Done.")
70
+ print(f"Deleted node_modules: {deleted_dirs}")
71
+ print(f"Deleted yarn.lock: {deleted_files}")
72
+
73
+
74
+ def collect_workspace_dirs(
75
+ start_root: Union[str, Path],
76
+ include_start_root: bool = False,
77
+ ) -> list[Path]:
78
+ """Return workspace package directories sorted by longest path first.
79
+
80
+ This walks workspace globs declared in each package.json it finds,
81
+ recursively, stopping at directories already visited to avoid cycles.
82
+ """
83
+ visited = set()
84
+ results = set()
85
+
86
+ start_root = Path(start_root).resolve()
87
+ stack = [start_root]
88
+
89
+ while stack:
90
+ pkg_dir = stack.pop()
91
+
92
+ if pkg_dir in visited:
93
+ continue
94
+
95
+ visited.add(pkg_dir)
96
+
97
+ pkg_file = pkg_dir / "package.json"
98
+ if not pkg_file.is_file():
99
+ continue
100
+
101
+ if include_start_root or pkg_dir != start_root:
102
+ results.add(pkg_dir)
103
+
104
+ try:
105
+ data = json.loads(pkg_file.read_text(encoding="utf-8"))
106
+ except Exception:
107
+ continue
108
+
109
+ ws_field = data.get("workspaces")
110
+ patterns = []
111
+
112
+ if isinstance(ws_field, dict):
113
+ patterns = ws_field.get("packages", [])
114
+ elif isinstance(ws_field, list):
115
+ patterns = ws_field
116
+
117
+ for pattern in patterns:
118
+ matches = glob.glob(str(pkg_dir / pattern), recursive=True)
119
+
120
+ for m in matches:
121
+ p = Path(m)
122
+
123
+ # Skip symlinked package directories; do not follow them
124
+ if p.is_symlink():
125
+ continue
126
+
127
+ p_res = p.resolve()
128
+
129
+ if p_res.is_dir() and p_res not in visited:
130
+ stack.append(p_res)
131
+
132
+ return sorted(
133
+ results,
134
+ key=lambda p: (len(p.parts), str(p)),
135
+ reverse=True,
136
+ )
137
+
138
+
139
+ if __name__ == "__main__":
140
+ workspace_dirs = collect_workspace_dirs(Path("."))
141
+ for d in workspace_dirs:
142
+ if Path(d / "node_modules").is_dir() or (d / "yarn.lock").is_file():
143
+ print(f"Cleaning workspace package: {d}")
144
+ clean(d)
145
+ else:
146
+ print(f"Skipping workspace package (no node_modules or yarn.lock): {d}")
147
+ shutil.rmtree(Path(".") / "node_modules", ignore_errors=True)
148
+ (Path(".") / "yarn.lock").unlink(missing_ok=True)
@@ -1,6 +1,6 @@
1
1
  // src/binary-collections-config.cjs
2
2
  var path = require("path");
3
- require("dotenv").config({ path: path.join(process.cwd(), ".env") });
3
+ require("dotenv").config({ path: path.join(process.cwd(), ".env"), quiet: true, override: true });
4
4
  function getTempDir() {
5
5
  return process.env.TEMP_DIR || path.join(process.cwd(), "tmp");
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_binary_collections_config
4
- } from "./chunk-66PAU5PS.mjs";
4
+ } from "./chunk-YYLIQQKF.mjs";
5
5
  import "./chunk-QQ4A6DLD.mjs";
6
6
  export default require_binary_collections_config();
@@ -68,31 +68,78 @@ var require_utils = __commonJS({
68
68
  }
69
69
  module2.exports.getArgs = getArgs2;
70
70
  function del(fullPath) {
71
- if (fs2.statSync(fullPath).isDirectory()) {
72
- const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
73
- for (let i = 0; i < subdir.length; i++) {
74
- del(subdir[i]);
71
+ try {
72
+ if (!fs2.existsSync(fullPath)) return;
73
+ const stat = fs2.lstatSync(fullPath);
74
+ if (stat.isSymbolicLink()) {
75
+ try {
76
+ fs2.unlinkSync(fullPath);
77
+ console.log("deleted symlink", fullPath);
78
+ } catch (e) {
79
+ console.log("failed delete symlink", fullPath, e && e.message);
80
+ }
81
+ return;
82
+ }
83
+ if (stat.isDirectory()) {
84
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
85
+ for (let i = 0; i < subdir.length; i++) {
86
+ del(subdir[i]);
87
+ }
88
+ try {
89
+ fs2.rmdirSync(fullPath);
90
+ console.log("deleted", fullPath);
91
+ } catch (e) {
92
+ try {
93
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
94
+ console.log("deleted", fullPath);
95
+ } catch (ee) {
96
+ console.log("failed delete", fullPath, ee && ee.message);
97
+ }
98
+ }
99
+ return;
75
100
  }
76
- } else {
77
101
  try {
78
- fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
102
+ fs2.unlinkSync(fullPath);
79
103
  console.log("deleted", fullPath);
80
- } catch (_) {
81
- console.log("failed delete", fullPath);
104
+ } catch (e) {
105
+ try {
106
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
107
+ console.log("deleted", fullPath);
108
+ } catch (ee) {
109
+ console.log("failed delete", fullPath, ee && ee.message);
110
+ }
82
111
  }
112
+ } catch (err) {
113
+ console.log("failed delete", fullPath, err && err.message);
83
114
  }
84
115
  }
85
116
  module2.exports.del = del;
86
117
  function delStream(globStream) {
87
118
  globStream.stream().on("data", (result) => {
88
119
  const fullPath = path2.resolve(process.cwd(), result);
89
- if (fs2.statSync(fullPath).isDirectory()) {
90
- const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
91
- for (let i = 0; i < subdir.length; i++) {
92
- del(subdir[i]);
120
+ try {
121
+ if (fs2.existsSync(fullPath)) {
122
+ const stat = fs2.lstatSync(fullPath);
123
+ if (stat.isSymbolicLink()) {
124
+ try {
125
+ fs2.unlinkSync(fullPath);
126
+ console.log("deleted symlink", fullPath);
127
+ } catch (e) {
128
+ console.log("failed delete symlink", fullPath, e && e.message);
129
+ }
130
+ return;
131
+ }
132
+ if (stat.isDirectory()) {
133
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
134
+ for (let i = 0; i < subdir.length; i++) {
135
+ del(subdir[i]);
136
+ }
137
+ }
93
138
  }
139
+ del(fullPath);
140
+ } catch (err) {
141
+ console.log("failed processing", fullPath, err && err.message);
94
142
  }
95
- del(fullPath);
96
143
  });
97
144
  }
98
145
  module2.exports.delStream = delStream;
@@ -143,7 +190,7 @@ var require_package = __commonJS({
143
190
  "package.json"(exports2, module2) {
144
191
  module2.exports = {
145
192
  name: "binary-collections",
146
- version: "2.0.10",
193
+ version: "2.0.11",
147
194
  description: "Utility to clean any programming caches and more",
148
195
  keywords: [
149
196
  "cache",
@@ -181,57 +228,10 @@ var require_package = __commonJS({
181
228
  "lib",
182
229
  "package.json",
183
230
  "docs-src/**/*.md",
184
- "readme.md"
231
+ "readme.md",
232
+ ".puppeterrc.*",
233
+ "requirements.txt"
185
234
  ],
186
- bin: {
187
- "binary-collections": "lib/binary-collections.cjs",
188
- "binary-executor": "binaries/binary-executor.cjs",
189
- changelog: "lib/changelog.cjs",
190
- chatgpt: "lib/free-chatgpt.cjs",
191
- "clean-github-actions-cache": "lib/clean-github-actions-caches.cjs",
192
- "clean-github-actions-caches": "lib/clean-github-actions-caches.cjs",
193
- "clean-nodemodule": "binaries/clean-nodemodule.cjs",
194
- "clean-nodemodules": "binaries/clean-nodemodules.cjs",
195
- "clear-gh-caches": "lib/clean-github-actions-caches.cjs",
196
- "clear-github-actions-cache": "lib/clean-github-actions-caches.cjs",
197
- "clear-github-actions-caches": "lib/clean-github-actions-caches.cjs",
198
- "del-gradle": "lib/del-gradle.cjs",
199
- "del-node-modules": "lib/del-node-modules.cjs",
200
- "del-nodemodules": "lib/del-node-modules.cjs",
201
- "del-ps": "lib/del-ps.cjs",
202
- "del-yarn-caches": "lib/del-yarn-caches.cjs",
203
- "del-yarncaches": "lib/del-yarn-caches.cjs",
204
- dev: "binaries/dev.cjs",
205
- "dir-tree": "lib/print-directory-tree.cjs",
206
- empty: "binaries/empty.cjs",
207
- "find-node-modules": "lib/find-node-modules-cli.cjs",
208
- "free-chatgpt": "lib/free-chatgpt.cjs",
209
- "git-diff": "lib/git-diff-cli.cjs",
210
- "git-fix": "lib/git-fix.cjs",
211
- "git-purge": "lib/git-purge.cjs",
212
- "git-reduce-size": "binaries/git-reduce-size.cjs",
213
- javakill: "binaries/javakill.cjs",
214
- "kill-process": "binaries/kill-process.cjs",
215
- nodekill: "binaries/nodekill.cjs",
216
- "npm-run-series": "lib/npm-run-series.cjs",
217
- nrs: "lib/npm-run-series.cjs",
218
- "package-resolutions-updater": "lib/package-resolutions-updater.cjs",
219
- "pkg-res-updater": "lib/package-resolutions-updater.cjs",
220
- "pkg-resolutions-updater": "lib/package-resolutions-updater.cjs",
221
- "print-directory-tree": "lib/print-directory-tree.cjs",
222
- "print-tree": "lib/print-directory-tree.cjs",
223
- prod: "binaries/prod.cjs",
224
- "remove-module": "lib/remove-module.cjs",
225
- rmfind: "binaries/rmfind.cjs",
226
- rmpath: "lib/rmpath.cjs",
227
- rmx: "binaries/rmx.cjs",
228
- "run-s": "lib/npm-run-series.cjs",
229
- "run-series": "lib/npm-run-series.cjs",
230
- "submodule-install": "lib/submodule-install.cjs",
231
- "submodule-remove": "lib/submodule-remove-cli.cjs",
232
- "submodule-token": "binaries/submodule-token.cjs",
233
- "yarn-reinstall": "lib/yarn-reinstall.cjs"
234
- },
235
235
  scripts: {
236
236
  build: "tsc -b tsconfig.build.json && npm run build:tsup && npm run postbuild",
237
237
  "build:packages": "yarn workspaces foreach --worktree --exclude=binary-collections --no-private run build",
@@ -247,76 +247,78 @@ var require_package = __commonJS({
247
247
  "test:nrs": "npm test -- nrs build:**",
248
248
  "test:watch": "npm test --watch",
249
249
  "update:ncu": "npx npm-check-updates -u -x jsdom,chalk,hexo,deepmerge-ts --enginesNode --root",
250
- "update:packer": "curl -L https://github.com/dimaslanjaka/nodejs-package-types/raw/main/packer.js > packer.cjs"
250
+ "update:packer": "curl -L https://github.com/dimaslanjaka/nodejs-package-types/raw/main/packer.js > packer.cjs",
251
+ "puppeteer:browser": "npx -y puppeteer browsers install chrome"
251
252
  },
252
253
  repository: {
253
254
  type: "git",
254
255
  url: "git+https://github.com/dimaslanjaka/bin"
255
256
  },
256
257
  dependencies: {
258
+ "@yarnpkg/core": "^4.7.0",
257
259
  "ansi-colors": "^4.1.3",
258
- axios: "^1.11.0",
259
- dotenv: "^17.2.1",
260
- execa: "^9.6.0",
261
- "fs-extra": "^11.3.1",
262
- "git-command-helper": "^2.1.0",
263
- glob: "^11.0.3",
264
- minimatch: "^10.0.3",
260
+ axios: "^1.15.2",
261
+ dotenv: "^17.4.2",
262
+ execa: "^9.6.1",
263
+ "fs-extra": "^11.3.4",
264
+ "git-command-helper": "https://github.com/dimaslanjaka/git-command-helper/raw/refs/heads/pre-release/release/git-command-helper.tgz",
265
+ glob: "^13.0.6",
266
+ minimatch: "^10.2.5",
265
267
  minimist: "^1.2.8",
266
268
  "ps-node": "^0.1.6",
267
- puppeteer: "^24.17.0",
269
+ puppeteer: "^24.42.0",
268
270
  "puppeteer-extra": "^3.3.6",
269
271
  "puppeteer-extra-plugin-stealth": "^2.11.2",
270
272
  remove: "^0.1.5",
271
- "sbg-utility": "^2.0.10",
272
- upath: "^2.0.1",
273
- yaml: "^2.8.1",
273
+ "sbg-utility": "^2.0.11",
274
+ upath: "^3.0.7",
275
+ yaml: "^2.8.3",
274
276
  yarn: "^1.22.22"
275
277
  },
276
278
  devDependencies: {
277
- "@babel/core": "^7.28.3",
278
- "@babel/preset-env": "^7.28.3",
279
- "@babel/preset-typescript": "^7.27.1",
280
- "@eslint/eslintrc": "^3.3.1",
281
- "@eslint/js": "^9.34.0",
282
- "@rollup/plugin-babel": "^6.0.4",
283
- "@rollup/plugin-commonjs": "^28.0.6",
279
+ "@babel/core": "^7.29.0",
280
+ "@babel/preset-env": "^7.29.2",
281
+ "@babel/preset-typescript": "^7.28.5",
282
+ "@eslint/eslintrc": "^3.3.5",
283
+ "@eslint/js": "^10.0.1",
284
+ "@rollup/plugin-babel": "^7.0.0",
285
+ "@rollup/plugin-commonjs": "^29.0.2",
284
286
  "@rollup/plugin-json": "^6.1.0",
285
- "@rollup/plugin-node-resolve": "^16.0.1",
287
+ "@rollup/plugin-node-resolve": "^16.0.3",
286
288
  "@types/babel__core": "^7",
287
289
  "@types/babel__preset-env": "^7",
288
290
  "@types/eslint": "^9",
289
291
  "@types/fs-extra": "^11",
290
292
  "@types/jest": "^30.0.0",
291
293
  "@types/minimist": "^1",
292
- "@types/node": "^24.3.0",
294
+ "@types/node": "^25.6.0",
293
295
  "@types/prettier": "^3",
294
296
  "@types/ps-node": "^0",
295
297
  "@types/yargs": "^17",
296
- "@typescript-eslint/eslint-plugin": "^8.40.0",
297
- "@typescript-eslint/parser": "^8.40.0",
298
- "babel-jest": "^30.0.5",
298
+ "@typescript-eslint/eslint-plugin": "^8.59.0",
299
+ "@typescript-eslint/parser": "^8.59.0",
300
+ "babel-jest": "^30.4.1",
299
301
  "browser-sync": "^3.0.4",
300
- "cross-env": "^10.0.0",
301
- "cross-spawn": "https://github.com/dimaslanjaka/node-cross-spawn/raw/private/release/cross-spawn.tgz",
302
- eslint: "^9.34.0",
302
+ "cross-env": "^10.1.0",
303
+ "cross-spawn": "https://github.com/dimaslanjaka/node-cross-spawn/raw/80999ac7a7031a81e11ddb5fab0f8ba433041c98/release/cross-spawn.tgz",
304
+ eslint: "^10.2.1",
303
305
  "eslint-config-prettier": "^10.1.8",
304
- "eslint-plugin-prettier": "^5.5.4",
305
- globals: "^16.3.0",
306
+ "eslint-plugin-prettier": "^5.5.5",
307
+ globals: "^17.5.0",
306
308
  gulp: "^5.0.1",
307
309
  husky: "^9.1.7",
308
- jest: "^30.0.5",
309
- "lint-staged": "^16.1.5",
310
- marked: "^16.2.0",
311
- prettier: "^3.6.2",
312
- rimraf: "^6.0.1",
313
- rollup: "^4.48.1",
314
- "ts-jest": "^29.4.1",
310
+ jest: "^30.4.2",
311
+ "lint-staged": "^16.4.0",
312
+ marked: "^18.0.3",
313
+ prettier: "^3.8.3",
314
+ rimraf: "^6.1.3",
315
+ rollup: "^4.60.2",
316
+ "ts-jest": "^29.4.9",
315
317
  "ts-node": "^10.9.2",
316
- tsup: "^8.5.0",
317
- typedoc: "^0.28.11",
318
- "typedoc-plugin-ga": "^1.0.5",
319
- typescript: "^5.9.2"
318
+ tsup: "^8.5.1",
319
+ typedoc: "^0.28.19",
320
+ "typedoc-plugin-ga": "^1.1.1",
321
+ typescript: "^6.0.3"
320
322
  },
321
323
  directories: {
322
324
  lib: "lib",
@@ -328,8 +330,67 @@ var require_package = __commonJS({
328
330
  packageManager: "yarn@4.9.2",
329
331
  resolutions: {
330
332
  "cross-spawn": "https://github.com/dimaslanjaka/node-cross-spawn/raw/80999ac7a7031a81e11ddb5fab0f8ba433041c98/release/cross-spawn.tgz",
331
- "git-command-helper": "https://github.com/dimaslanjaka/git-command-helper/raw/47133aa918c1292c15949c7f190be9cb302cd6f4/release/git-command-helper.tgz",
332
- "sbg-utility": "https://github.com/dimaslanjaka/static-blog-generator/raw/f58af787eab404891d8394fe0570ce603e0d7308/packages/sbg-utility/release/sbg-utility.tgz"
333
+ "git-command-helper": "https://github.com/dimaslanjaka/git-command-helper/raw/0ec870a451241af4f7e16acee5474afe38918c77/release/git-command-helper.tgz",
334
+ "sbg-utility": "https://github.com/dimaslanjaka/static-blog-generator/raw/1c6327117ab66a6ac7bac6df2b5c4f1cd9ef2785/packages/sbg-utility/release/sbg-utility.tgz"
335
+ },
336
+ bin: {
337
+ "binary-collections": "lib/binary-collections.cjs",
338
+ "binary-executor": "binaries/binary-executor.cjs",
339
+ changelog: "lib/changelog.cjs",
340
+ chatgpt: "lib/free-chatgpt.cjs",
341
+ "clean-github-actions-cache": "lib/clean-github-actions-caches.cjs",
342
+ "clean-github-actions-caches": "lib/clean-github-actions-caches.cjs",
343
+ "clean-nodemodule": "binaries/clean-nodemodule.cjs",
344
+ "clean-nodemodules": "binaries/clean-nodemodules.cjs",
345
+ "clear-gh-caches": "lib/clean-github-actions-caches.cjs",
346
+ "clear-github-actions-cache": "lib/clean-github-actions-caches.cjs",
347
+ "clear-github-actions-caches": "lib/clean-github-actions-caches.cjs",
348
+ "del-gradle": "lib/del-gradle.cjs",
349
+ "del-node-modules": "lib/del-node-modules.cjs",
350
+ "del-nodemodules": "lib/del-node-modules.cjs",
351
+ "del-ps": "lib/del-ps.cjs",
352
+ "del-yarn-caches": "lib/del-yarn-caches.cjs",
353
+ "del-yarncaches": "lib/del-yarn-caches.cjs",
354
+ dev: "binaries/dev.cjs",
355
+ "dir-tree": "lib/print-directory-tree.cjs",
356
+ empty: "binaries/empty.cjs",
357
+ "find-node-modules": "lib/find-node-modules-cli.cjs",
358
+ "free-chatgpt": "lib/free-chatgpt.cjs",
359
+ "git-diff": "lib/git-diff-cli.cjs",
360
+ "git-fix": "lib/git-fix.cjs",
361
+ "git-purge": "lib/git-purge.cjs",
362
+ "git-reduce-size": "binaries/git-reduce-size.cjs",
363
+ "git-undo-commit": "lib/git/undo-commit.cjs",
364
+ "git-undo-staged": "lib/git/undo-staged.cjs",
365
+ javakill: "binaries/javakill.cjs",
366
+ "kill-night-crows": "lib/kill-night-crows.cjs",
367
+ "kill-process": "binaries/kill-process.cjs",
368
+ nodekill: "binaries/nodekill.cjs",
369
+ "npm-run-series": "lib/npm-run-series.cjs",
370
+ nrs: "lib/npm-run-series.cjs",
371
+ "package-resolutions-updater": "lib/package-resolutions-updater-cli.cjs",
372
+ "php-cs-fixer-staged": "lib/php-cs-fixer-staged.cjs",
373
+ "pkg-res-updater": "lib/package-resolutions-updater-cli.cjs",
374
+ "pkg-resolutions-updater": "lib/package-resolutions-updater-cli.cjs",
375
+ "print-directory-tree": "lib/print-directory-tree.cjs",
376
+ "print-tree": "lib/print-directory-tree.cjs",
377
+ prod: "binaries/prod.cjs",
378
+ py: "binaries/py.cjs",
379
+ "remove-module": "lib/remove-module.cjs",
380
+ rmfind: "binaries/rmfind.cjs",
381
+ rmpath: "lib/rmpath.cjs",
382
+ rmx: "binaries/rmx.cjs",
383
+ "run-s": "lib/npm-run-series.cjs",
384
+ "run-series": "lib/npm-run-series.cjs",
385
+ "submodule-install": "lib/submodule-install.cjs",
386
+ "submodule-remove": "lib/submodule-remove-cli.cjs",
387
+ "submodule-token": "binaries/submodule-token.cjs",
388
+ "test-cjs": "binaries/test-cjs.cjs",
389
+ "undo-commit": "lib/git/undo-commit.cjs",
390
+ "undo-last-commit": "lib/git/undo-commit.cjs",
391
+ "undo-staged": "lib/git/undo-staged.cjs",
392
+ "yarn-clean": "binaries/yarn-clean.cjs",
393
+ "yarn-reinstall": "lib/yarn-reinstall.cjs"
333
394
  }
334
395
  };
335
396
  }