binary-collections 2.0.9 → 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 (306) hide show
  1. package/.puppeterrc.cjs +25 -0
  2. package/binaries/binary-executor.cjs +178 -0
  3. package/{bin → binaries}/clean-nodemodule +0 -0
  4. package/binaries/clean-nodemodule.cjs +178 -0
  5. package/binaries/clean-nodemodule.cmd +4 -0
  6. package/{bin → binaries}/clean-nodemodules +0 -0
  7. package/binaries/clean-nodemodules.cjs +178 -0
  8. package/binaries/clean-nodemodules.cmd +5 -0
  9. package/{bin → binaries}/dev +0 -0
  10. package/binaries/dev.cjs +178 -0
  11. package/{bin → binaries}/empty +0 -0
  12. package/binaries/empty.cjs +178 -0
  13. package/{bin → binaries}/git-reduce-size +0 -0
  14. package/binaries/git-reduce-size.cjs +178 -0
  15. package/binaries/javakill.cjs +178 -0
  16. package/{bin → binaries}/javakill.cmd +0 -0
  17. package/binaries/kill-night-crows.bat +7 -0
  18. package/binaries/kill-night-crows.ps1 +172 -0
  19. package/{bin → binaries}/kill-process +0 -0
  20. package/binaries/kill-process.cjs +178 -0
  21. package/binaries/nodekill.cjs +178 -0
  22. package/{bin → binaries}/nodekill.ps1 +0 -0
  23. package/{bin → binaries}/prod +0 -0
  24. package/binaries/prod.cjs +178 -0
  25. package/binaries/py +111 -0
  26. package/binaries/py.cjs +178 -0
  27. package/binaries/py.cmd +49 -0
  28. package/{bin → binaries}/rmfind +0 -0
  29. package/binaries/rmfind.cjs +178 -0
  30. package/{bin → binaries}/rmx +0 -0
  31. package/binaries/rmx.cjs +178 -0
  32. package/{bin → binaries}/submodule-token +0 -0
  33. package/binaries/submodule-token.cjs +178 -0
  34. package/binaries/test-cjs +10 -0
  35. package/binaries/test-cjs.cjs +178 -0
  36. package/binaries/test-cjs.cmd +11 -0
  37. package/binaries/yarn-clean +32 -0
  38. package/binaries/yarn-clean.cjs +178 -0
  39. package/binaries/yarn-clean.cmd +30 -0
  40. package/binaries/yarn-clean.py +148 -0
  41. package/docs-src/clean-github-actions-caches.md +26 -0
  42. package/docs-src/free-chatgpt.md +26 -0
  43. package/lib/binary-collections-config.cjs +3 -2
  44. package/lib/binary-collections-config.mjs +2 -2
  45. package/lib/binary-collections.cjs +513 -105
  46. package/lib/binary-collections.mjs +178 -117
  47. package/lib/changelog.cjs +64 -16
  48. package/lib/changelog.mjs +177 -171
  49. package/lib/{chunk-VVEZVNIV.mjs → chunk-2CBJCW7E.mjs} +3 -3
  50. package/lib/chunk-34IQDTLZ.mjs +27 -0
  51. package/lib/chunk-3HFFECCI.mjs +27 -0
  52. package/lib/chunk-4UHL4WVN.mjs +136 -0
  53. package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
  54. package/lib/chunk-6HHJRKFB.mjs +59 -0
  55. package/lib/chunk-6S4NXESK.mjs +26 -0
  56. package/lib/chunk-7XTEJHOE.mjs +193 -0
  57. package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
  58. package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
  59. package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
  60. package/lib/chunk-AJDD5DZM.mjs +109 -0
  61. package/lib/chunk-BZWVHODJ.mjs +62 -0
  62. package/lib/chunk-FCDQGYBF.mjs +136 -0
  63. package/lib/chunk-FKI7IEB5.mjs +172 -0
  64. package/lib/chunk-GEYA2USY.mjs +207 -0
  65. package/lib/chunk-GJTGHXRA.mjs +356 -0
  66. package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
  67. package/lib/chunk-ID2WBTE2.mjs +80 -0
  68. package/lib/chunk-JXFOHKDM.mjs +239 -0
  69. package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
  70. package/lib/chunk-N436BNBK.mjs +514 -0
  71. package/lib/chunk-NCXAP7AA.mjs +31 -0
  72. package/lib/chunk-PDN26I7O.mjs +188 -0
  73. package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
  74. package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
  75. package/lib/{chunk-ONIBBBQ3.mjs → chunk-RWLXRTYP.mjs} +4 -3
  76. package/lib/chunk-TOIVAQF7.mjs +136 -0
  77. package/lib/chunk-V5SKYJUB.mjs +136 -0
  78. package/lib/chunk-WSRETQCA.mjs +59 -0
  79. package/lib/chunk-XA3SNBPA.mjs +184 -0
  80. package/lib/chunk-XVBFFVCJ.mjs +209 -0
  81. package/lib/chunk-YYLIQQKF.mjs +31 -0
  82. package/lib/{chunk-APBWENF6.mjs → chunk-Z6JLYU2J.mjs} +63 -16
  83. package/lib/chunk-ZDMWBSYF.mjs +81 -0
  84. package/lib/clean-github-actions-caches.cjs +291 -148
  85. package/lib/clean-github-actions-caches.mjs +4 -3
  86. package/lib/del-gradle.cjs +63 -15
  87. package/lib/del-gradle.js +2 -1
  88. package/lib/del-gradle.mjs +2 -2
  89. package/lib/del-node-modules.cjs +143 -148
  90. package/lib/del-node-modules.js +210 -14
  91. package/lib/del-node-modules.mjs +149 -18
  92. package/lib/del-ps.cjs +90 -21
  93. package/lib/del-ps.js +3 -2
  94. package/lib/del-ps.mjs +7 -5
  95. package/lib/del-yarn-caches.cjs +87 -18
  96. package/lib/del-yarn-caches.js +38 -3
  97. package/lib/del-yarn-caches.mjs +6 -6
  98. package/lib/find-node-modules-cli.cjs +5 -4
  99. package/lib/find-node-modules-cli.js +2 -1
  100. package/lib/find-node-modules-cli.mjs +2 -2
  101. package/lib/find-node-modules.cjs +4 -3
  102. package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
  103. package/lib/find-node-modules.mjs +2 -2
  104. package/lib/free-chatgpt.cjs +754 -0
  105. package/lib/free-chatgpt.js +51 -0
  106. package/lib/free-chatgpt.mjs +50 -0
  107. package/lib/git/gitattributes.cjs +2 -1
  108. package/lib/git/{gitattributes.d.ts → gitattributes.d.cts} +7 -2
  109. package/lib/git/gitattributes.mjs +2 -2
  110. package/lib/git/line-endings.cjs +298 -64
  111. package/lib/git/line-endings.mjs +4 -4
  112. package/lib/git/normalize.cjs +26 -36
  113. package/lib/git/normalize.mjs +2 -2
  114. package/lib/git/permissions.cjs +77 -11
  115. package/lib/git/permissions.mjs +3 -3
  116. package/lib/git/pull-strategy.cjs +76 -9
  117. package/lib/git/pull-strategy.mjs +3 -3
  118. package/lib/git/undo-commit-cli.cjs +110 -0
  119. package/lib/git/undo-commit-cli.d.ts +1 -0
  120. package/lib/git/undo-commit-cli.js +4 -0
  121. package/lib/git/undo-commit-cli.mjs +14 -0
  122. package/lib/git/undo-commit.cjs +81 -0
  123. package/lib/git/undo-commit.d.cts +1 -0
  124. package/lib/git/undo-commit.mjs +7 -0
  125. package/lib/git/undo-staged-cli.cjs +110 -0
  126. package/lib/git/undo-staged-cli.d.ts +1 -0
  127. package/lib/git/undo-staged-cli.js +4 -0
  128. package/lib/git/undo-staged-cli.mjs +14 -0
  129. package/lib/git/undo-staged.cjs +81 -0
  130. package/lib/git/undo-staged.d.cts +1 -0
  131. package/lib/git/undo-staged.mjs +7 -0
  132. package/lib/git/user-config.cjs +313 -83
  133. package/lib/git/user-config.mjs +4 -4
  134. package/lib/git/utils.cjs +40 -60
  135. package/lib/git/utils.mjs +2 -2
  136. package/lib/git-diff-cli.cjs +857 -0
  137. package/lib/git-diff-cli.js +16 -0
  138. package/lib/git-diff-cli.mjs +17 -0
  139. package/lib/git-diff.cjs +862 -58
  140. package/lib/git-diff.d.ts +38 -83
  141. package/lib/git-diff.js +152 -0
  142. package/lib/git-diff.mjs +23 -85
  143. package/lib/git-fix.cjs +733 -97
  144. package/lib/git-fix.mjs +10 -9
  145. package/lib/git-purge.cjs +64 -16
  146. package/lib/git-purge.d.cts +1 -0
  147. package/lib/git-purge.mjs +43 -37
  148. package/lib/index.cjs +7 -6
  149. package/lib/index.d.ts +1 -1
  150. package/lib/index.js +2 -5
  151. package/lib/index.mjs +4 -4
  152. package/lib/kill-night-crows.cjs +87 -0
  153. package/lib/kill-night-crows.d.mts +1 -0
  154. package/lib/kill-night-crows.mjs +65 -0
  155. package/lib/npm-run-series.cjs +63 -16
  156. package/lib/npm-run-series.mjs +42 -36
  157. package/lib/package-resolutions-updater-cli.cjs +560 -0
  158. package/lib/package-resolutions-updater-cli.d.mts +1 -0
  159. package/lib/package-resolutions-updater-cli.mjs +124 -0
  160. package/lib/package-resolutions-updater.cjs +178 -158
  161. package/lib/package-resolutions-updater.d.mts +32 -1
  162. package/lib/package-resolutions-updater.mjs +17 -338
  163. package/lib/php-cs-fixer-staged.cjs +105 -0
  164. package/lib/php-cs-fixer-staged.d.cts +2 -0
  165. package/lib/php-cs-fixer-staged.mjs +117 -0
  166. package/lib/print-directory-tree.cjs +320 -207
  167. package/lib/print-directory-tree.mjs +3 -3
  168. package/lib/ps/connected-domain.cjs +25 -2
  169. package/lib/ps/connected-domain.d.ts +10 -2
  170. package/lib/ps/connected-domain.js +5 -2
  171. package/lib/ps/connected-domain.mjs +8 -4
  172. package/lib/ps/index.cjs +345 -322
  173. package/lib/ps/index.d.mjs +1 -1
  174. package/lib/ps/index.js +2 -1
  175. package/lib/ps/index.mjs +179 -182
  176. package/lib/ps/isWin.cjs +24 -1
  177. package/lib/ps/isWin.d.ts +1 -1
  178. package/lib/ps/isWin.js +3 -1
  179. package/lib/ps/isWin.mjs +8 -4
  180. package/lib/ps/table-parser.cjs +167 -159
  181. package/lib/ps/table-parser.d.ts +5 -0
  182. package/lib/ps/table-parser.js +10 -4
  183. package/lib/ps/table-parser.mjs +9 -5
  184. package/lib/remove-module.cjs +310 -0
  185. package/lib/remove-module.d.mts +1 -0
  186. package/lib/remove-module.mjs +111 -0
  187. package/lib/rmpath.cjs +322 -0
  188. package/lib/rmpath.d.mts +3 -0
  189. package/lib/rmpath.mjs +108 -0
  190. package/lib/submodule-install.cjs +311 -86
  191. package/lib/submodule-install.mjs +53 -5
  192. package/lib/submodule-remove-cli.cjs +107 -0
  193. package/lib/submodule-remove-cli.d.ts +1 -0
  194. package/lib/submodule-remove-cli.js +31 -0
  195. package/lib/submodule-remove-cli.mjs +28 -0
  196. package/lib/submodule-remove.cjs +46 -0
  197. package/lib/submodule-remove.d.cts +2 -0
  198. package/lib/submodule-remove.mjs +6 -0
  199. package/lib/utils/chatgpt.cjs +541 -0
  200. package/lib/utils/chatgpt.d.ts +31 -0
  201. package/lib/utils/chatgpt.js +708 -0
  202. package/lib/utils/chatgpt.mjs +8 -0
  203. package/lib/utils/findEnvFiles.cjs +107 -0
  204. package/lib/utils/findEnvFiles.d.ts +8 -0
  205. package/lib/utils/findEnvFiles.js +121 -0
  206. package/lib/utils/findEnvFiles.mjs +8 -0
  207. package/lib/utils/findWorkspaceRoot.cjs +70 -0
  208. package/lib/utils/findWorkspaceRoot.d.ts +9 -0
  209. package/lib/utils/findWorkspaceRoot.js +57 -0
  210. package/lib/utils/findWorkspaceRoot.mjs +40 -0
  211. package/lib/{utils.cjs → utils/index.cjs} +61 -14
  212. package/lib/{utils.mjs → utils/index.mjs} +2 -2
  213. package/lib/utils/isGithubTokenValid.cjs +64 -0
  214. package/lib/utils/isGithubTokenValid.d.ts +7 -0
  215. package/lib/utils/isGithubTokenValid.js +48 -0
  216. package/lib/utils/isGithubTokenValid.mjs +36 -0
  217. package/lib/yarn-reinstall.cjs +220 -38
  218. package/lib/yarn-reinstall.mjs +2 -2
  219. package/package.json +138 -104
  220. package/readme.md +48 -75
  221. package/releases/readme.md +36 -0
  222. package/requirements.txt +1 -0
  223. package/test/README.md +101 -0
  224. package/test/package.json +2 -1
  225. package/test-project/readme.md +26 -0
  226. package/tmp/test-repo/README.md +35 -0
  227. package/tmp/test-repo/package.json +1 -1
  228. package/tmp/typedoc/readme.md +320 -0
  229. package/bin/bash-dummy +0 -56
  230. package/bin/bash-dummy.cmd +0 -25
  231. package/bin/dir-tree.cmd +0 -7
  232. package/bin/git-diff +0 -4
  233. package/bin/git-diff.cmd +0 -7
  234. package/bin/git-fix +0 -36
  235. package/bin/git-fix.cmd +0 -7
  236. package/bin/rmpath +0 -70
  237. package/bin/submodule-install.txt +0 -118
  238. package/bin/submodule-remove +0 -46
  239. package/bin/submodule.txt +0 -172
  240. package/lib/binary-collections-config.d.mts +0 -18
  241. package/lib/binary-collections-config.js +0 -39
  242. package/lib/binary-collections.d.mts +0 -137
  243. package/lib/binary-collections.d.ts +0 -137
  244. package/lib/changelog.d.mts +0 -2
  245. package/lib/changelog.js +0 -226
  246. package/lib/chunk-DPKAJKFO.mjs +0 -171
  247. package/lib/chunk-G3THLIDT.mjs +0 -200
  248. package/lib/chunk-W3ENOM53.mjs +0 -18
  249. package/lib/clean-github-actions-caches.d.mts +0 -169
  250. package/lib/clean-github-actions-caches.d.ts +0 -169
  251. package/lib/del-gradle.d.mts +0 -2
  252. package/lib/del-node-modules.d.mts +0 -2
  253. package/lib/del-ps.d.mts +0 -2
  254. package/lib/del-yarn-caches.d.mts +0 -2
  255. package/lib/find-node-modules-cli.d.mts +0 -1
  256. package/lib/find-node-modules.d.mts +0 -13
  257. package/lib/find-node-modules.js +0 -53
  258. package/lib/git/gitattributes.d.mts +0 -35
  259. package/lib/git/gitattributes.js +0 -223
  260. package/lib/git/line-endings.d.mts +0 -83
  261. package/lib/git/line-endings.d.ts +0 -83
  262. package/lib/git/normalize.d.mts +0 -43
  263. package/lib/git/normalize.d.ts +0 -43
  264. package/lib/git/permissions.d.mts +0 -17
  265. package/lib/git/permissions.d.ts +0 -17
  266. package/lib/git/pull-strategy.d.mts +0 -15
  267. package/lib/git/pull-strategy.d.ts +0 -15
  268. package/lib/git/user-config.d.mts +0 -105
  269. package/lib/git/user-config.d.ts +0 -105
  270. package/lib/git/utils.d.mts +0 -69
  271. package/lib/git/utils.d.ts +0 -69
  272. package/lib/git-diff.d.mts +0 -84
  273. package/lib/git-fix.d.mts +0 -141
  274. package/lib/git-fix.d.ts +0 -141
  275. package/lib/git-purge.d.mts +0 -2
  276. package/lib/git-purge.js +0 -59
  277. package/lib/index.d.mts +0 -1
  278. package/lib/npm-run-series.d.mts +0 -1
  279. package/lib/npm-run-series.js +0 -86
  280. package/lib/package-resolutions-updater.d.ts +0 -352
  281. package/lib/print-directory-tree.d.mts +0 -234
  282. package/lib/print-directory-tree.d.ts +0 -234
  283. package/lib/ps/connected-domain.d.mts +0 -3
  284. package/lib/ps/index.d.d.mts +0 -26
  285. package/lib/ps/index.d.d.ts +0 -26
  286. package/lib/ps/index.d.mts +0 -26
  287. package/lib/ps/isWin.d.mts +0 -3
  288. package/lib/ps/table-parser.d.mts +0 -3
  289. package/lib/submodule-install.d.mts +0 -121
  290. package/lib/submodule-install.d.ts +0 -121
  291. package/lib/utils.d.mts +0 -40
  292. package/lib/utils.js +0 -181
  293. package/lib/yarn-reinstall.d.mts +0 -49
  294. package/lib/yarn-reinstall.d.ts +0 -49
  295. package/src/package-resolutions-updater.mjs +0 -350
  296. package/src/print-directory-tree.cjs +0 -234
  297. package/src/ps/index.js +0 -286
  298. package/src/yarn-reinstall.cjs +0 -49
  299. /package/{bin → binaries}/nodekill +0 -0
  300. /package/{bin → binaries}/nodekill.cmd +0 -0
  301. /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
  302. /package/lib/{changelog.d.ts → changelog.d.cts} +0 -0
  303. /package/lib/{git-purge.d.ts → free-chatgpt.d.ts} +0 -0
  304. /package/lib/{git-diff.d.cts → git-diff-cli.d.ts} +0 -0
  305. /package/lib/{npm-run-series.d.ts → npm-run-series.d.cts} +0 -0
  306. /package/lib/{utils.d.ts → utils/index.d.cts} +0 -0
package/readme.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # Binary Collections
2
-
3
- A comprehensive collection of Node.js CLI tools designed to streamline common development workflows. This toolkit provides utilities for git operations, dependency management, build processes, and various development automation tasks.
2
+ A comprehensive toolkit of Node.js CLI utilities for streamlining development workflows. Includes tools for git operations, dependency management, build processes, automation, and more.
4
3
 
5
4
  ## Features
6
5
 
@@ -28,7 +27,17 @@ npm install binary-collections -g
28
27
  npm install binary-collections@https://github.com/dimaslanjaka/bin/raw/master/releases/bin.tgz
29
28
  ```
30
29
 
31
- ## VS Code Setup
30
+ ### Direct run
31
+
32
+ ```bash
33
+ # Yarn berry
34
+ yarn dlx binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
35
+
36
+ # NPX
37
+ npx -y binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
38
+ ```
39
+
40
+ ## VSCode Setup
32
41
 
33
42
  Create `.vscode/settings.json` to add binary tools to your PATH:
34
43
 
@@ -72,8 +81,8 @@ Create `.vscode/settings.json` to add binary tools to your PATH:
72
81
 
73
82
  ### Quick Reference
74
83
 
75
- | Category | Tools | Description |
76
- |----------|-------|-------------|
84
+ | Category | Commands | Description |
85
+ |---|---|---|
77
86
  | **Git** | `git-purge`, `git-diff`, `git-fix`, `git-reduce-size` | Git repository management and optimization |
78
87
  | **Submodules** | `submodule`, `submodule-install`, `submodule-remove`, `submodule-token` | Git submodule operations |
79
88
  | **NPM Scripts** | `nrs`, `run-s`, `run-series`, `npm-run-series` | Run npm scripts in series with pattern matching |
@@ -82,51 +91,25 @@ Create `.vscode/settings.json` to add binary tools to your PATH:
82
91
  | **Process Mgmt** | `kill-process`, `nodekill`, `javakill`, `del-ps` | Process management and termination |
83
92
  | **File System** | `rmfind`, `rmpath`, `rmx`, `print-tree`, `dir-tree` | File system operations |
84
93
  | **Cleanup** | `del-nodemodules`, `del-yarncaches`, `del-gradle` | Cache and build directory cleanup |
85
- | **GitHub Actions** | `clean-github-actions-caches`, `clean-github-actions-cache`, `clear-github-actions-cache`, `clear-github-actions-caches`, `clear-gh-caches` | Remove old GitHub Actions caches, keep only the latest |
86
-
87
-
88
- ---
89
- #### Binary List Generation & Source Code
90
-
91
- The list of available binaries and utilities is automatically generated by the build script (`build.js`).
92
- All CLI tools and binaries are collected from the `bin/`, `lib/`, and other relevant folders. The build process updates the `bin` field in `package.json` to reflect all available executables.
93
-
94
- Source code for utilities is located in the [`src/`](./src/) folder. To update the binary list, run:
95
-
96
- ```bash
97
- yarn run build
98
- # or
99
- node build.js
100
- ```
101
-
102
- This will scan the project and update `package.json` with all available binaries. The list may change as files are added or removed from the project.
103
-
104
- For a complete list of available binaries and utilities, see:
105
- - [Binary executables](https://github.com/dimaslanjaka/bin/tree/master/bin)
106
- - [Library modules](https://github.com/dimaslanjaka/bin/tree/master/lib)
107
- - [Package configuration](https://github.com/dimaslanjaka/bin/blob/master/package.json)
94
+ | **GitHub Actions** | `clean-github-actions-caches`, `clean-github-actions-cache`, `clear-github-actions-cache`, `clear-github-actions-caches`, `clear-gh-caches` | Remove old GitHub Actions caches, keep only latest |
108
95
 
109
96
  ### Git Tools
110
97
 
111
98
  #### Git Repository Purge
112
99
  Clean and optimize git repositories by pruning reflogs:
113
-
114
100
  ```bash
115
101
  git-purge
116
102
  ```
117
-
118
103
  ![Git purge screenshot](https://github.com/dimaslanjaka/bin/assets/12471057/2805c54e-28a7-491d-b381-de2593a854b3)
119
104
 
120
105
  #### Git Diff Utility
121
106
  Enhanced git diff functionality:
122
-
123
107
  ```bash
124
108
  git-diff
125
109
  ```
126
110
 
127
111
  #### Git Fix Utility
128
- Comprehensive Git configuration fixer for cross-platform development (replaces the old `git-fix-encoding`):
129
-
112
+ Comprehensive Git configuration fixer for cross-platform development (replaces `git-fix-encoding`):
130
113
  ```bash
131
114
  git-fix # Apply all fixes
132
115
  git-fix --lf-only # Force LF line endings only
@@ -137,7 +120,6 @@ git-fix --user NAME EMAIL # Configure Git user with specific values
137
120
  git-fix --user --update-remote # Also update remote URL to match user
138
121
  git-fix --user NAME EMAIL --update-remote # Configure user and update remote URL
139
122
  ```
140
-
141
123
  Features:
142
124
  - Forces LF line endings (`core.autocrlf = false`)
143
125
  - Ignores file permission changes (`core.filemode = false`)
@@ -162,7 +144,6 @@ User Configuration:
162
144
 
163
145
  #### Git Repository Size Reducer
164
146
  Reduce git repository size by cleaning up history:
165
-
166
147
  ```bash
167
148
  git-reduce-size
168
149
  ```
@@ -183,16 +164,13 @@ git-reduce-size
183
164
  Run multiple npm scripts in series with pattern matching support.
184
165
 
185
166
  #### Options
186
-
187
- | Flag | Description |
188
- |------|-------------|
189
- | `--yarn` | Use `yarn run <script-name>` instead of npm |
190
- | `--verbose`, `-v` | Enable verbose output |
167
+ | Flag | Description |
168
+ |---------------------|---------------------------------------------|
169
+ | `--yarn` | Use `yarn run <script-name>` instead of npm |
170
+ | `--verbose`, `-v` | Enable verbose output |
191
171
 
192
172
  #### Example
193
-
194
173
  Execute all scripts matching the pattern `namescript:**`:
195
-
196
174
  ```json
197
175
  {
198
176
  "name": "package-name",
@@ -213,14 +191,12 @@ Execute all scripts matching the pattern `namescript:**`:
213
191
 
214
192
  #### Yarn Package Reinstaller
215
193
  Reinstall yarn packages with dependency type flags:
216
-
217
194
  ```bash
218
195
  yarn-reinstall <packageName> [--dev|-D|--peer|-P|--optional|-O]
219
196
  ```
220
197
 
221
198
  #### Package Resolutions Manager
222
199
  Manage package resolutions in package.json (aliases: `pkg-resolutions-updater`, `pkg-res-updater`):
223
-
224
200
  ```bash
225
201
  pkg-resolutions-updater
226
202
  pkg-res-updater
@@ -230,7 +206,6 @@ pkg-res-updater
230
206
 
231
207
  #### Node Modules Finder
232
208
  Find all node_modules directories in a project:
233
-
234
209
  ```bash
235
210
  find-node-modules # Library function
236
211
  find-node-modules-cli # CLI tool
@@ -246,7 +221,6 @@ find-nodemodules # Alias
246
221
 
247
222
  #### Process Killers
248
223
  Kill processes by name or pattern:
249
-
250
224
  ```bash
251
225
  kill-process # General process killer
252
226
  nodekill # Kill Node.js processes
@@ -261,39 +235,21 @@ del-ps # Kill processes by command name
261
235
 
262
236
  ### Cleanup Tools
263
237
 
264
- ### GitHub Actions Cache Cleaner
265
-
266
- Remove old GitHub Actions caches, keeping only the most recent cache for each prefix:
267
-
268
- ```bash
269
- clean-github-actions-caches
270
- ```
271
-
272
- Features:
273
- - Authenticates using `ACCESS_TOKEN` or `GITHUB_TOKEN` from your `.env` file
274
- - Automatically groups and deletes caches by prefix, keeping only the latest
275
- - Works for the current repository (origin remote)
276
-
277
- Environment setup:
278
- - Ensure your `.env` file contains `ACCESS_TOKEN` or `GITHUB_TOKEN`
279
-
280
- Source: [`src/clean-github-actions-caches.cjs`](./src/clean-github-actions-caches.cjs)
238
+ #### GitHub Actions Cache Cleaner
239
+ [See full documentation](./docs-src/clean-github-actions-caches.md).
281
240
 
282
241
  #### Node Modules Cleaner
283
242
  Remove node_modules directories recursively:
284
-
285
243
  ```bash
286
244
  del-nodemodules # Primary command
287
245
  del-node-modules # Alternative
288
246
  clean-nodemodule # Legacy
289
247
  clean-nodemodules # Legacy
290
248
  ```
291
-
292
249
  ![Node modules cleaner screenshot](https://github.com/dimaslanjaka/bin/assets/12471057/f03e5b51-1808-4e82-a474-0dd3c7eab5fe)
293
250
 
294
251
  #### Yarn Cache Cleaner
295
252
  Clear yarn cache directories:
296
-
297
253
  ```bash
298
254
  del-yarncaches # Primary command
299
255
  del-yarn-caches # Alternative
@@ -301,26 +257,25 @@ del-yarn-caches # Alternative
301
257
 
302
258
  #### Gradle Build Cleaner
303
259
  Delete gradle build folders:
304
-
305
260
  ```bash
306
261
  del-gradle
307
262
  ```
308
263
 
264
+ #### Free ChatGPT automation tool
265
+
266
+ [See full documentation](./docs-src/free-chatgpt.md)
267
+
309
268
  ## Troubleshooting
310
269
 
311
270
  ### Submodule Installation Issues
312
-
313
271
  If you encounter the following error:
314
-
315
272
  ```log
316
273
  fatal: 'origin/<branch>' is not a commit and a branch '<branch>' cannot be created from it
317
274
  fatal: unable to checkout submodule '<folder>/<submodule>'
318
275
  ```
319
-
320
276
  **Solution**: Delete `.git/modules` directory before running `submodule-install`.
321
277
 
322
278
  #### Complete Submodule Setup Example
323
-
324
279
  ```bash
325
280
  echo "Initializing submodules..."
326
281
  git submodule init
@@ -331,12 +286,30 @@ git submodule sync
331
286
  git submodule foreach "git submodule sync"
332
287
 
333
288
  echo "Updating submodules..."
334
- mkdir -p bin >/dev/null 2>&1
335
- curl -L https://github.com/dimaslanjaka/bin/raw/master/bin/submodule-install > bin/submodule-install
336
- rm -rf .git/modules
337
- bash ./bin/submodule-install
289
+ npx --yes rimraf .git/modules
290
+ npx --yes binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz submodule-install
338
291
  ```
339
292
 
293
+ ## Binary List Generation & Source Code (Development)
294
+
295
+ The list of available binaries and utilities is auto-generated by the build script ([`build.mjs`](./build.mjs)).
296
+ - All CLI tools and binaries are collected from the `bin/`, `lib/`, and other relevant folders.
297
+ - The build process updates the `bin` field in `package.json` to reflect all available executables.
298
+ - Source code for utilities is located in the `src/` folder.
299
+
300
+ To update the binary list, run:
301
+ ```bash
302
+ yarn run build
303
+ # or
304
+ node build.mjs
305
+ ```
306
+ This scans the project and updates `package.json` with all available binaries. The list may change as files are added or removed.
307
+
308
+ See also:
309
+ - [Binary executables](https://github.com/dimaslanjaka/bin/tree/master/bin)
310
+ - [Library modules](https://github.com/dimaslanjaka/bin/tree/master/lib)
311
+ - [Package configuration](https://github.com/dimaslanjaka/bin/blob/master/package.json)
312
+
340
313
  ## Contributing
341
314
 
342
315
  Contributions are welcome! Please feel free to submit a Pull Request.
@@ -0,0 +1,36 @@
1
+ # Release `binary-collections` tarball
2
+ ## Releases
3
+ | version | tarball url |
4
+ | :--- | :--- |
5
+ | latest | https://github.com/dimaslanjaka/bin/raw/6b683c8/releases/bin.tgz |
6
+ | latest | https://github.com/dimaslanjaka/bin/raw/master/releases/bin.tgz |
7
+
8
+ use this tarball with `resolutions`:
9
+ ```json
10
+ {
11
+ "resolutions": {
12
+ "binary-collections": "<url of tarball>"
13
+ }
14
+ }
15
+ ```
16
+
17
+ ## Releases
18
+
19
+ ## Get URL of `binary-collections` Release Tarball
20
+ - select tarball file
21
+ ![gambar](https://user-images.githubusercontent.com/12471057/203216375-8af4b5d9-00c2-40fb-8d3d-d220beaabd46.png)
22
+ - copy raw url
23
+ ![gambar](https://user-images.githubusercontent.com/12471057/203216508-7590cbb9-a1ce-47d6-96ca-8d82149f0762.png)
24
+ - or copy download url
25
+ ![gambar](https://user-images.githubusercontent.com/12471057/203216541-3807d2c3-5213-49f3-b93d-c626dbae3b2e.png)
26
+ - then run installation from command line
27
+ ```bash
28
+ npm i https://....url-tgz
29
+ ```
30
+ for example
31
+ ```bash
32
+ npm i https://github.com/dimaslanjaka/nodejs-package-types/raw/main/release/nodejs-package-types.tgz
33
+ ```
34
+
35
+ ## URL Parts Explanations
36
+ > https://github.com/github-username/github-repo-name/raw/github-branch-name/path-to-file-with-extension
@@ -0,0 +1 @@
1
+ psutil
package/test/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # Git-Fix Test Suite
2
+
3
+ This directory contains comprehensive tests for the `git-fix` utility and its related modules.
4
+
5
+ ## Environment Configuration
6
+
7
+ The test suite properly reads the `.env` file from the project root to load environment variables:
8
+ - `GITHUB_USER` - Used for git user.name configuration
9
+ - `GITHUB_EMAIL` - Used for git user.email configuration
10
+
11
+ This ensures tests run with the same environment as the actual application.
12
+
13
+ ## Test Files
14
+
15
+ ### 1. `git-fix.test.js`
16
+ **Main unit tests for the git-fix CLI utility**
17
+ - Tests command-line argument parsing (`--help`, `-h`, `--user`, etc.)
18
+ - Tests option combinations (`--lf-only`, `--permissions`, `--normalize`)
19
+ - Tests user configuration with CLI arguments and environment variables
20
+ - Tests error handling for invalid arguments and non-git repositories
21
+ - Tests summary message output
22
+ - Uses extensive mocking to isolate the CLI logic
23
+
24
+ ### 2. `git-utils.test.js`
25
+ **Unit tests for the git utility functions**
26
+ - Tests `runGitCommand()` function with success/failure scenarios
27
+ - Tests `isGitRepository()` function
28
+ - Tests error handling and console output
29
+ - Mocks `child_process` functions
30
+
31
+ ### 3. `git-user-config.test.js`
32
+ **Unit tests for the git user configuration module**
33
+ - Tests user configuration with CLI arguments vs environment variables
34
+ - Tests precedence (CLI args override environment variables)
35
+ - Tests partial configuration (username only, email only)
36
+ - Tests whitespace handling and trimming
37
+ - Tests error scenarios when git commands fail
38
+
39
+ ### 4. `git-fix-integration.test.js`
40
+ **Integration tests using real git repositories**
41
+ - Creates temporary git repositories for testing
42
+ - Tests actual git configuration changes
43
+ - Tests `.gitattributes` file creation and modification
44
+ - Tests real git config values (`core.autocrlf`, `core.eol`, etc.)
45
+ - Tests console output and error handling
46
+ - More realistic testing but slower than unit tests
47
+
48
+ ### 5. `test-helpers.js`
49
+ **Test utility functions**
50
+ - `createTempGitRepo()` - Creates temporary git repositories for testing
51
+ - `cleanupTempDir()` - Cleans up test directories
52
+ - `getGitConfig()` - Reads actual git configuration values
53
+ - `gitAttributesContains()` - Checks .gitattributes file content
54
+ - Helper functions for mocking `process.argv`
55
+
56
+ ## Running Tests
57
+
58
+ ```bash
59
+ # Run all git-related tests
60
+ yarn test --testNamePattern="git"
61
+
62
+ # Run specific test files
63
+ yarn test git-fix.test.js
64
+ yarn test git-utils.test.js
65
+ yarn test git-user-config.test.js
66
+ yarn test git-fix-integration.test.js
67
+
68
+ # Run with coverage
69
+ yarn test:coverage
70
+
71
+ # Run in watch mode
72
+ yarn test:watch
73
+ ```
74
+
75
+ ## Test Coverage
76
+
77
+ The test suite covers:
78
+ - ✅ Command-line argument parsing
79
+ - ✅ Help system (`--help`, `-h`)
80
+ - ✅ All CLI options and combinations
81
+ - ✅ User configuration (CLI args + environment variables)
82
+ - ✅ Git repository detection
83
+ - ✅ Error handling and edge cases
84
+ - ✅ Console output and logging
85
+ - ✅ Real git configuration changes (integration tests)
86
+ - ✅ File system operations (.gitattributes creation)
87
+
88
+ ## Test Structure
89
+
90
+ - **Unit tests** use extensive mocking to test logic in isolation
91
+ - **Integration tests** use real git repositories to test actual functionality
92
+ - **Helper functions** provide reusable utilities for test setup and cleanup
93
+ - All tests use Jest with proper setup/teardown for clean testing environment
94
+
95
+ ## Notes
96
+
97
+ - Integration tests create temporary directories in the system temp folder
98
+ - All tests clean up after themselves (no leftover files or directories)
99
+ - Console output is mocked in tests to avoid cluttered test output
100
+ - Environment variables are properly reset between tests
101
+ - Tests work on both Windows and Unix-like systems
package/test/package.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
- "name": "test",
2
+ "name": "binary-collections-test",
3
+ "private": true,
3
4
  "version": "1.0.0",
4
5
  "description": "",
5
6
  "main": "index.js",
@@ -0,0 +1,26 @@
1
+ # Test Project
2
+
3
+ This project is intended to be run separately from the parent project. To set up an isolated environment with Yarn, follow these steps:
4
+
5
+ ## Steps
6
+
7
+ 1. **Create an empty `yarn.lock` file:**
8
+
9
+ ```sh
10
+ cd /d:/Repositories/binary-collections/test-project
11
+ type nul > yarn.lock
12
+ ```
13
+
14
+ 2. **Initialize a new Yarn project:**
15
+
16
+ ```sh
17
+ yarn init -y
18
+ ```
19
+
20
+ 3. **Install dependencies as needed:**
21
+
22
+ ```sh
23
+ yarn add <package-name>
24
+ ```
25
+
26
+ This ensures the `test-project` has its own dependency tree, separate from the parent project.
@@ -0,0 +1,35 @@
1
+ # A Git(Hub) Test Repository
2
+
3
+ Hey! This is my personal Git(Hub) Test Repository where I experiment with Git and GitHub.
4
+
5
+ If you are new to Git and GitHub and found this repository through Google: feel free to clone the repository and experiment with it! You will not be able to push back to the repository, as it is *my* repository and I cannot let everybody push to it. The right way to do it on GitHub is:
6
+
7
+ 1. fork the repository in your own account,
8
+ 2. make changes and push them in a branch of your own fork,
9
+ 3. create a Pull Request in my repository.
10
+
11
+ I will get notified, will review the changes that you propose, and eventually will either merge the changes, or reject them. This *may* take some time as I am not actively monitoring nor maintaining this repository, as you can guess, but I try to be helpful ;)
12
+
13
+ > NOTE
14
+ > If you want your PR to have a chance to get merged, please propose additions or changes to neutral files such as text files or small images. If you propose changes to the GitHub workflow files, to `.gitignore`, etc. they will quite probably be rejected.
15
+
16
+ Don't expect to find anything meaningful nor useful in the repository. Also, I happen to force-push a reset of everything from time to time. This means that I reset all history, including changes that you may have submitted. In theory, noone ever does this to a repository. But hey, this is a *test* repository after all.
17
+
18
+ The rest of this README file is mostly random stuff.
19
+
20
+ Clone the repository with: `git clone https://github.com/zpqrtbnk/test-repo.git .`
21
+
22
+ We have test GitHUb pages (from the `gh-pages` branch) at: http://zpqrtbnk.github.io/test-repo/
23
+
24
+ We have an image in the README (markdown)
25
+ ![Image](https://raw.github.com/zpqrtbnk/test-repo/master/wtf.jpg)
26
+
27
+ We have an image in the README (html)
28
+ <img src="./wtf.jpg" />
29
+
30
+ We have an image in the README (more html)
31
+ <p align="center" style="background:#000;padding:5px;color:#fff;font-size:150%;margin-bottom:64px">
32
+ <img src="./wtf.jpg" />
33
+ <span style="margin-left:48px;">wubble</span>
34
+ </p>
35
+
@@ -2,6 +2,6 @@
2
2
  "name": "test-repo",
3
3
  "packageManager": "yarn@4.9.2",
4
4
  "dependencies": {
5
- "binary-collections": "D:\\Repositories\\binary-collections\\releases\\bin.tgz"
5
+ "binary-collections": "D:/Repositories/binary-collections/releases/bin.tgz"
6
6
  }
7
7
  }