binary-collections 2.0.8 → 2.0.10

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 (250) hide show
  1. package/binaries/binary-executor.cjs +43 -0
  2. package/{bin → binaries}/clean-nodemodule +0 -0
  3. package/binaries/clean-nodemodule.cjs +43 -0
  4. package/binaries/clean-nodemodule.cmd +4 -0
  5. package/{bin → binaries}/clean-nodemodules +0 -0
  6. package/binaries/clean-nodemodules.cjs +43 -0
  7. package/binaries/clean-nodemodules.cmd +5 -0
  8. package/{bin → binaries}/dev +0 -0
  9. package/binaries/dev.cjs +43 -0
  10. package/{bin → binaries}/empty +0 -0
  11. package/binaries/empty.cjs +43 -0
  12. package/{bin → binaries}/git-reduce-size +0 -0
  13. package/binaries/git-reduce-size.cjs +43 -0
  14. package/binaries/javakill.cjs +43 -0
  15. package/{bin → binaries}/javakill.cmd +0 -0
  16. package/{bin → binaries}/kill-process +0 -0
  17. package/binaries/kill-process.cjs +43 -0
  18. package/binaries/nodekill.cjs +43 -0
  19. package/{bin → binaries}/nodekill.ps1 +0 -0
  20. package/{bin → binaries}/prod +0 -0
  21. package/binaries/prod.cjs +43 -0
  22. package/{bin → binaries}/rmfind +0 -0
  23. package/binaries/rmfind.cjs +43 -0
  24. package/{bin → binaries}/rmx +0 -0
  25. package/binaries/rmx.cjs +43 -0
  26. package/{bin → binaries}/submodule-token +0 -0
  27. package/binaries/submodule-token.cjs +43 -0
  28. package/docs-src/clean-github-actions-caches.md +26 -0
  29. package/docs-src/free-chatgpt.md +26 -0
  30. package/lib/binary-collections-config.cjs +3 -2
  31. package/lib/binary-collections-config.mjs +2 -2
  32. package/lib/binary-collections.cjs +452 -87
  33. package/lib/binary-collections.mjs +247 -8
  34. package/lib/changelog.cjs +328 -0
  35. package/lib/changelog.mjs +205 -0
  36. package/lib/chunk-4EWQC6GZ.mjs +382 -0
  37. package/lib/chunk-4ZI7BQKQ.mjs +381 -0
  38. package/lib/chunk-5J2BEPY5.mjs +83 -0
  39. package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
  40. package/lib/chunk-6HHJRKFB.mjs +59 -0
  41. package/lib/chunk-6S4NXESK.mjs +26 -0
  42. package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
  43. package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
  44. package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
  45. package/lib/chunk-AGZYRDC2.mjs +323 -0
  46. package/lib/{chunk-VVEZVNIV.mjs → chunk-AI4CVPJ7.mjs} +6 -6
  47. package/lib/chunk-BDCHCWHD.mjs +136 -0
  48. package/lib/chunk-BEZKJ25G.mjs +140 -0
  49. package/lib/chunk-DI5MDPSN.mjs +386 -0
  50. package/lib/{chunk-ONIBBBQ3.mjs → chunk-E6FDDAOO.mjs} +4 -3
  51. package/lib/chunk-FKI7IEB5.mjs +172 -0
  52. package/lib/chunk-GJTGHXRA.mjs +356 -0
  53. package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
  54. package/lib/chunk-HMRMTYZM.mjs +40 -0
  55. package/lib/chunk-HN52G2YL.mjs +305 -0
  56. package/lib/chunk-HO6GHCOB.mjs +385 -0
  57. package/lib/chunk-LEM5OMRP.mjs +384 -0
  58. package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
  59. package/lib/chunk-O6SWBEOQ.mjs +81 -0
  60. package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
  61. package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
  62. package/lib/chunk-RCP7DHVY.mjs +190 -0
  63. package/lib/chunk-SBNDSKG5.mjs +136 -0
  64. package/lib/chunk-U6SO4QEV.mjs +320 -0
  65. package/lib/{chunk-APBWENF6.mjs → chunk-V3N3JEUF.mjs} +3 -3
  66. package/lib/chunk-XD6BJK6Q.mjs +351 -0
  67. package/lib/chunk-XVBFFVCJ.mjs +209 -0
  68. package/lib/chunk-YXSFGA2D.mjs +383 -0
  69. package/lib/clean-github-actions-caches.cjs +243 -148
  70. package/lib/clean-github-actions-caches.mjs +4 -3
  71. package/lib/del-gradle.cjs +2 -2
  72. package/lib/del-gradle.js +1 -1
  73. package/lib/del-gradle.mjs +2 -2
  74. package/lib/del-node-modules.cjs +2 -2
  75. package/lib/del-node-modules.js +1 -1
  76. package/lib/del-node-modules.mjs +2 -2
  77. package/lib/del-ps.cjs +29 -8
  78. package/lib/del-ps.js +2 -2
  79. package/lib/del-ps.mjs +7 -5
  80. package/lib/del-yarn-caches.cjs +26 -5
  81. package/lib/del-yarn-caches.js +38 -3
  82. package/lib/del-yarn-caches.mjs +6 -6
  83. package/lib/find-node-modules-cli.cjs +5 -4
  84. package/lib/find-node-modules-cli.js +1 -1
  85. package/lib/find-node-modules-cli.mjs +2 -2
  86. package/lib/find-node-modules.cjs +4 -3
  87. package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
  88. package/lib/find-node-modules.mjs +2 -2
  89. package/lib/free-chatgpt.cjs +548 -0
  90. package/lib/free-chatgpt.d.ts +1 -0
  91. package/lib/free-chatgpt.js +51 -0
  92. package/lib/free-chatgpt.mjs +50 -0
  93. package/lib/git/gitattributes.cjs +1 -1
  94. package/lib/git/{gitattributes.d.mts → gitattributes.d.cts} +5 -7
  95. package/lib/git/gitattributes.mjs +2 -2
  96. package/lib/git/line-endings.cjs +297 -64
  97. package/lib/git/line-endings.mjs +4 -4
  98. package/lib/git/normalize.cjs +26 -36
  99. package/lib/git/normalize.mjs +2 -2
  100. package/lib/git/permissions.cjs +77 -11
  101. package/lib/git/permissions.mjs +3 -3
  102. package/lib/git/pull-strategy.cjs +76 -9
  103. package/lib/git/pull-strategy.mjs +3 -3
  104. package/lib/git/user-config.cjs +266 -83
  105. package/lib/git/user-config.mjs +4 -4
  106. package/lib/git/utils.cjs +40 -60
  107. package/lib/git/utils.mjs +2 -2
  108. package/lib/git-diff-cli.cjs +651 -0
  109. package/lib/git-diff-cli.d.ts +1 -0
  110. package/lib/git-diff-cli.js +15 -0
  111. package/lib/git-diff-cli.mjs +16 -0
  112. package/lib/git-diff.cjs +657 -58
  113. package/lib/git-diff.d.ts +38 -83
  114. package/lib/git-diff.js +152 -0
  115. package/lib/git-diff.mjs +23 -85
  116. package/lib/git-fix.cjs +685 -97
  117. package/lib/git-fix.mjs +12 -11
  118. package/lib/git-purge.cjs +3 -3
  119. package/lib/git-purge.d.cts +1 -0
  120. package/lib/git-purge.mjs +43 -37
  121. package/lib/index.cjs +7 -6
  122. package/lib/index.d.ts +1 -1
  123. package/lib/index.js +2 -5
  124. package/lib/index.mjs +4 -4
  125. package/lib/npm-run-series.cjs +3 -3
  126. package/lib/npm-run-series.mjs +42 -36
  127. package/lib/package-resolutions-updater.cjs +174 -1
  128. package/lib/package-resolutions-updater.mjs +270 -290
  129. package/lib/print-directory-tree.cjs +275 -210
  130. package/lib/print-directory-tree.mjs +2 -2
  131. package/lib/ps/connected-domain.cjs +25 -2
  132. package/lib/ps/connected-domain.d.ts +10 -2
  133. package/lib/ps/connected-domain.js +5 -2
  134. package/lib/ps/connected-domain.mjs +8 -4
  135. package/lib/ps/index.cjs +345 -322
  136. package/lib/ps/index.d.mjs +1 -1
  137. package/lib/ps/index.js +1 -1
  138. package/lib/ps/index.mjs +179 -182
  139. package/lib/ps/isWin.cjs +24 -1
  140. package/lib/ps/isWin.d.ts +1 -1
  141. package/lib/ps/isWin.js +3 -1
  142. package/lib/ps/isWin.mjs +8 -4
  143. package/lib/ps/table-parser.cjs +167 -159
  144. package/lib/ps/table-parser.d.ts +5 -0
  145. package/lib/ps/table-parser.js +10 -4
  146. package/lib/ps/table-parser.mjs +9 -5
  147. package/lib/remove-module.cjs +262 -0
  148. package/lib/remove-module.d.mts +1 -0
  149. package/lib/remove-module.mjs +111 -0
  150. package/lib/rmpath.cjs +274 -0
  151. package/lib/rmpath.d.mts +3 -0
  152. package/lib/rmpath.mjs +108 -0
  153. package/lib/submodule-install.cjs +264 -85
  154. package/lib/submodule-install.mjs +56 -7
  155. package/lib/submodule-remove-cli.cjs +103 -0
  156. package/lib/submodule-remove-cli.d.ts +1 -0
  157. package/lib/submodule-remove-cli.js +31 -0
  158. package/lib/submodule-remove-cli.mjs +28 -0
  159. package/lib/submodule-remove.cjs +43 -0
  160. package/lib/submodule-remove.d.cts +2 -0
  161. package/lib/submodule-remove.mjs +6 -0
  162. package/lib/utils/chatgpt.cjs +383 -0
  163. package/lib/utils/chatgpt.d.ts +31 -0
  164. package/lib/utils/chatgpt.js +541 -0
  165. package/lib/utils/chatgpt.mjs +8 -0
  166. package/lib/{utils.cjs → utils/index.cjs} +1 -1
  167. package/lib/{utils.mjs → utils/index.mjs} +2 -2
  168. package/lib/yarn-reinstall.cjs +172 -38
  169. package/lib/yarn-reinstall.mjs +2 -2
  170. package/package.json +91 -71
  171. package/readme.md +43 -69
  172. package/releases/readme.md +36 -0
  173. package/test/README.md +101 -0
  174. package/test/package.json +2 -1
  175. package/test-project/readme.md +26 -0
  176. package/tmp/test-repo/README.md +35 -0
  177. package/tmp/typedoc/readme.md +320 -0
  178. package/bin/bash-dummy +0 -56
  179. package/bin/bash-dummy.cmd +0 -25
  180. package/bin/dir-tree.cmd +0 -7
  181. package/bin/git-diff +0 -4
  182. package/bin/git-diff.cmd +0 -7
  183. package/bin/git-fix +0 -36
  184. package/bin/git-fix.cmd +0 -7
  185. package/bin/rmpath +0 -70
  186. package/bin/submodule-install.txt +0 -118
  187. package/bin/submodule-remove +0 -46
  188. package/bin/submodule.txt +0 -172
  189. package/lib/binary-collections-config.d.mts +0 -18
  190. package/lib/binary-collections-config.js +0 -39
  191. package/lib/binary-collections.d.mts +0 -121
  192. package/lib/binary-collections.d.ts +0 -121
  193. package/lib/chunk-DPKAJKFO.mjs +0 -171
  194. package/lib/chunk-G3THLIDT.mjs +0 -200
  195. package/lib/chunk-W3ENOM53.mjs +0 -18
  196. package/lib/clean-github-actions-caches.d.mts +0 -169
  197. package/lib/clean-github-actions-caches.d.ts +0 -169
  198. package/lib/del-gradle.d.mts +0 -2
  199. package/lib/del-node-modules.d.mts +0 -2
  200. package/lib/del-ps.d.mts +0 -2
  201. package/lib/del-yarn-caches.d.mts +0 -2
  202. package/lib/find-node-modules-cli.d.mts +0 -1
  203. package/lib/find-node-modules.d.mts +0 -13
  204. package/lib/find-node-modules.js +0 -53
  205. package/lib/git/line-endings.d.mts +0 -83
  206. package/lib/git/line-endings.d.ts +0 -83
  207. package/lib/git/normalize.d.mts +0 -43
  208. package/lib/git/normalize.d.ts +0 -43
  209. package/lib/git/permissions.d.mts +0 -17
  210. package/lib/git/permissions.d.ts +0 -17
  211. package/lib/git/pull-strategy.d.mts +0 -15
  212. package/lib/git/pull-strategy.d.ts +0 -15
  213. package/lib/git/user-config.d.mts +0 -105
  214. package/lib/git/user-config.d.ts +0 -105
  215. package/lib/git/utils.d.mts +0 -69
  216. package/lib/git/utils.d.ts +0 -69
  217. package/lib/git-diff.d.mts +0 -84
  218. package/lib/git-fix.d.mts +0 -141
  219. package/lib/git-fix.d.ts +0 -141
  220. package/lib/git-purge.d.mts +0 -2
  221. package/lib/git-purge.js +0 -59
  222. package/lib/index.d.mts +0 -1
  223. package/lib/npm-run-series.d.mts +0 -1
  224. package/lib/npm-run-series.d.ts +0 -2
  225. package/lib/npm-run-series.js +0 -86
  226. package/lib/package-resolutions-updater.d.ts +0 -326
  227. package/lib/print-directory-tree.d.mts +0 -234
  228. package/lib/print-directory-tree.d.ts +0 -234
  229. package/lib/ps/connected-domain.d.mts +0 -3
  230. package/lib/ps/index.d.d.mts +0 -26
  231. package/lib/ps/index.d.d.ts +0 -26
  232. package/lib/ps/index.d.mts +0 -26
  233. package/lib/ps/isWin.d.mts +0 -3
  234. package/lib/ps/table-parser.d.mts +0 -3
  235. package/lib/submodule-install.d.mts +0 -121
  236. package/lib/submodule-install.d.ts +0 -121
  237. package/lib/utils.d.mts +0 -40
  238. package/lib/utils.js +0 -181
  239. package/lib/yarn-reinstall.d.mts +0 -49
  240. package/lib/yarn-reinstall.d.ts +0 -49
  241. package/src/package-resolutions-updater.mjs +0 -325
  242. package/src/print-directory-tree.cjs +0 -234
  243. package/src/ps/index.js +0 -286
  244. package/src/yarn-reinstall.cjs +0 -49
  245. /package/{bin → binaries}/nodekill +0 -0
  246. /package/{bin → binaries}/nodekill.cmd +0 -0
  247. /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
  248. /package/lib/{git-purge.d.ts → changelog.d.cts} +0 -0
  249. /package/lib/{git-diff.d.cts → npm-run-series.d.cts} +0 -0
  250. /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,6 +27,16 @@ 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
 
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 binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
38
+ ```
39
+
31
40
  ## VS Code Setup
32
41
 
33
42
  Create `.vscode/settings.json` to add binary tools to your PATH:
@@ -72,36 +81,35 @@ Create `.vscode/settings.json` to add binary tools to your PATH:
72
81
 
73
82
  ### Quick Reference
74
83
 
75
- | Category | Tools | Description |
76
- |----------|-------|-------------|
77
- | **Git** | `git-purge`, `git-diff`, `git-fix`, `git-reduce-size` | Git repository management and optimization |
78
- | **Submodules** | `submodule`, `submodule-install`, `submodule-remove`, `submodule-token` | Git submodule operations |
79
- | **NPM Scripts** | `nrs`, `run-s`, `run-series`, `npm-run-series` | Run npm scripts in series with pattern matching |
80
- | **Package Mgmt** | `yarn-reinstall`, `pkg-resolutions-updater`, `pkg-res-updater` | Yarn/package resolutions management utilities |
81
- | **Node.js Dev** | `find-node-modules`, `find-nodemodules`, `dev`, `prod`, `empty` | Node.js development helpers |
82
- | **Process Mgmt** | `kill-process`, `nodekill`, `javakill`, `del-ps` | Process management and termination |
83
- | **File System** | `rmfind`, `rmpath`, `rmx`, `print-tree`, `dir-tree` | File system operations |
84
- | **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
-
84
+ | Category | Commands | Description |
85
+ |------------------|-------------------------------------------------------------------------|--------------------------------------------------|
86
+ | **Git** | `git-purge`, `git-diff`, `git-fix`, `git-reduce-size` | Git repository management and optimization |
87
+ | **Submodules** | `submodule`, `submodule-install`, `submodule-remove`, `submodule-token` | Git submodule operations |
88
+ | **NPM Scripts** | `nrs`, `run-s`, `run-series`, `npm-run-series` | Run npm scripts in series with pattern matching |
89
+ | **Package Mgmt** | `yarn-reinstall`, `pkg-resolutions-updater`, `pkg-res-updater` | Yarn/package resolutions management utilities |
90
+ | **Node.js Dev** | `find-node-modules`, `find-nodemodules`, `dev`, `prod`, `empty` | Node.js development helpers |
91
+ | **Process Mgmt** | `kill-process`, `nodekill`, `javakill`, `del-ps` | Process management and termination |
92
+ | **File System** | `rmfind`, `rmpath`, `rmx`, `print-tree`, `dir-tree` | File system operations |
93
+ | **Cleanup** | `del-nodemodules`, `del-yarncaches`, `del-gradle` | Cache and build directory cleanup |
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 |
87
95
 
88
96
  ---
89
97
  #### Binary List Generation & Source Code
90
98
 
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:
99
+ The list of available binaries and utilities is auto-generated by the build script ([`build.mjs`](./build.mjs)).
100
+ - All CLI tools and binaries are collected from the `bin/`, `lib/`, and other relevant folders.
101
+ - The build process updates the `bin` field in `package.json` to reflect all available executables.
102
+ - Source code for utilities is located in the `src/` folder.
95
103
 
104
+ To update the binary list, run:
96
105
  ```bash
97
106
  yarn run build
98
107
  # or
99
- node build.js
108
+ node build.mjs
100
109
  ```
110
+ This scans the project and updates `package.json` with all available binaries. The list may change as files are added or removed.
101
111
 
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:
112
+ See also:
105
113
  - [Binary executables](https://github.com/dimaslanjaka/bin/tree/master/bin)
106
114
  - [Library modules](https://github.com/dimaslanjaka/bin/tree/master/lib)
107
115
  - [Package configuration](https://github.com/dimaslanjaka/bin/blob/master/package.json)
@@ -110,23 +118,19 @@ For a complete list of available binaries and utilities, see:
110
118
 
111
119
  #### Git Repository Purge
112
120
  Clean and optimize git repositories by pruning reflogs:
113
-
114
121
  ```bash
115
122
  git-purge
116
123
  ```
117
-
118
124
  ![Git purge screenshot](https://github.com/dimaslanjaka/bin/assets/12471057/2805c54e-28a7-491d-b381-de2593a854b3)
119
125
 
120
126
  #### Git Diff Utility
121
127
  Enhanced git diff functionality:
122
-
123
128
  ```bash
124
129
  git-diff
125
130
  ```
126
131
 
127
132
  #### Git Fix Utility
128
- Comprehensive Git configuration fixer for cross-platform development (replaces the old `git-fix-encoding`):
129
-
133
+ Comprehensive Git configuration fixer for cross-platform development (replaces `git-fix-encoding`):
130
134
  ```bash
131
135
  git-fix # Apply all fixes
132
136
  git-fix --lf-only # Force LF line endings only
@@ -137,7 +141,6 @@ git-fix --user NAME EMAIL # Configure Git user with specific values
137
141
  git-fix --user --update-remote # Also update remote URL to match user
138
142
  git-fix --user NAME EMAIL --update-remote # Configure user and update remote URL
139
143
  ```
140
-
141
144
  Features:
142
145
  - Forces LF line endings (`core.autocrlf = false`)
143
146
  - Ignores file permission changes (`core.filemode = false`)
@@ -162,7 +165,6 @@ User Configuration:
162
165
 
163
166
  #### Git Repository Size Reducer
164
167
  Reduce git repository size by cleaning up history:
165
-
166
168
  ```bash
167
169
  git-reduce-size
168
170
  ```
@@ -183,16 +185,13 @@ git-reduce-size
183
185
  Run multiple npm scripts in series with pattern matching support.
184
186
 
185
187
  #### Options
186
-
187
- | Flag | Description |
188
- |------|-------------|
189
- | `--yarn` | Use `yarn run <script-name>` instead of npm |
190
- | `--verbose`, `-v` | Enable verbose output |
188
+ | Flag | Description |
189
+ |---------------------|---------------------------------------------|
190
+ | `--yarn` | Use `yarn run <script-name>` instead of npm |
191
+ | `--verbose`, `-v` | Enable verbose output |
191
192
 
192
193
  #### Example
193
-
194
194
  Execute all scripts matching the pattern `namescript:**`:
195
-
196
195
  ```json
197
196
  {
198
197
  "name": "package-name",
@@ -213,14 +212,12 @@ Execute all scripts matching the pattern `namescript:**`:
213
212
 
214
213
  #### Yarn Package Reinstaller
215
214
  Reinstall yarn packages with dependency type flags:
216
-
217
215
  ```bash
218
216
  yarn-reinstall <packageName> [--dev|-D|--peer|-P|--optional|-O]
219
217
  ```
220
218
 
221
219
  #### Package Resolutions Manager
222
220
  Manage package resolutions in package.json (aliases: `pkg-resolutions-updater`, `pkg-res-updater`):
223
-
224
221
  ```bash
225
222
  pkg-resolutions-updater
226
223
  pkg-res-updater
@@ -230,7 +227,6 @@ pkg-res-updater
230
227
 
231
228
  #### Node Modules Finder
232
229
  Find all node_modules directories in a project:
233
-
234
230
  ```bash
235
231
  find-node-modules # Library function
236
232
  find-node-modules-cli # CLI tool
@@ -246,7 +242,6 @@ find-nodemodules # Alias
246
242
 
247
243
  #### Process Killers
248
244
  Kill processes by name or pattern:
249
-
250
245
  ```bash
251
246
  kill-process # General process killer
252
247
  nodekill # Kill Node.js processes
@@ -261,39 +256,21 @@ del-ps # Kill processes by command name
261
256
 
262
257
  ### Cleanup Tools
263
258
 
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)
259
+ #### GitHub Actions Cache Cleaner
260
+ [See full documentation](./docs-src/clean-github-actions-caches.md).
281
261
 
282
262
  #### Node Modules Cleaner
283
263
  Remove node_modules directories recursively:
284
-
285
264
  ```bash
286
265
  del-nodemodules # Primary command
287
266
  del-node-modules # Alternative
288
267
  clean-nodemodule # Legacy
289
268
  clean-nodemodules # Legacy
290
269
  ```
291
-
292
270
  ![Node modules cleaner screenshot](https://github.com/dimaslanjaka/bin/assets/12471057/f03e5b51-1808-4e82-a474-0dd3c7eab5fe)
293
271
 
294
272
  #### Yarn Cache Cleaner
295
273
  Clear yarn cache directories:
296
-
297
274
  ```bash
298
275
  del-yarncaches # Primary command
299
276
  del-yarn-caches # Alternative
@@ -301,26 +278,25 @@ del-yarn-caches # Alternative
301
278
 
302
279
  #### Gradle Build Cleaner
303
280
  Delete gradle build folders:
304
-
305
281
  ```bash
306
282
  del-gradle
307
283
  ```
308
284
 
285
+ #### Free ChatGPT automation tool
286
+
287
+ [See full documentation](./docs-src/free-chatgpt.md)
288
+
309
289
  ## Troubleshooting
310
290
 
311
291
  ### Submodule Installation Issues
312
-
313
292
  If you encounter the following error:
314
-
315
293
  ```log
316
294
  fatal: 'origin/<branch>' is not a commit and a branch '<branch>' cannot be created from it
317
295
  fatal: unable to checkout submodule '<folder>/<submodule>'
318
296
  ```
319
-
320
297
  **Solution**: Delete `.git/modules` directory before running `submodule-install`.
321
298
 
322
299
  #### Complete Submodule Setup Example
323
-
324
300
  ```bash
325
301
  echo "Initializing submodules..."
326
302
  git submodule init
@@ -331,10 +307,8 @@ git submodule sync
331
307
  git submodule foreach "git submodule sync"
332
308
 
333
309
  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
310
+ npx --yes rimraf .git/modules
311
+ npx --yes binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz submodule-install
338
312
  ```
339
313
 
340
314
  ## Contributing
@@ -0,0 +1,36 @@
1
+ # Release `binary-collections` tarball
2
+ ## Releases
3
+ | version | tarball url |
4
+ | :--- | :--- |
5
+ | latest | https://github.com/dimaslanjaka/bin/raw/742c8ff/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
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
+