binary-collections 2.0.9 → 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.
- package/binaries/binary-executor.cjs +43 -0
- package/{bin → binaries}/clean-nodemodule +0 -0
- package/binaries/clean-nodemodule.cjs +43 -0
- package/binaries/clean-nodemodule.cmd +4 -0
- package/{bin → binaries}/clean-nodemodules +0 -0
- package/binaries/clean-nodemodules.cjs +43 -0
- package/binaries/clean-nodemodules.cmd +5 -0
- package/{bin → binaries}/dev +0 -0
- package/binaries/dev.cjs +43 -0
- package/{bin → binaries}/empty +0 -0
- package/binaries/empty.cjs +43 -0
- package/{bin → binaries}/git-reduce-size +0 -0
- package/binaries/git-reduce-size.cjs +43 -0
- package/binaries/javakill.cjs +43 -0
- package/{bin → binaries}/javakill.cmd +0 -0
- package/{bin → binaries}/kill-process +0 -0
- package/binaries/kill-process.cjs +43 -0
- package/binaries/nodekill.cjs +43 -0
- package/{bin → binaries}/nodekill.ps1 +0 -0
- package/{bin → binaries}/prod +0 -0
- package/binaries/prod.cjs +43 -0
- package/{bin → binaries}/rmfind +0 -0
- package/binaries/rmfind.cjs +43 -0
- package/{bin → binaries}/rmx +0 -0
- package/binaries/rmx.cjs +43 -0
- package/{bin → binaries}/submodule-token +0 -0
- package/binaries/submodule-token.cjs +43 -0
- package/docs-src/clean-github-actions-caches.md +26 -0
- package/docs-src/free-chatgpt.md +26 -0
- package/lib/binary-collections-config.cjs +3 -2
- package/lib/binary-collections-config.mjs +2 -2
- package/lib/binary-collections.cjs +452 -105
- package/lib/binary-collections.mjs +131 -84
- package/lib/changelog.cjs +3 -3
- package/lib/changelog.mjs +177 -171
- package/lib/chunk-4EWQC6GZ.mjs +382 -0
- package/lib/chunk-4ZI7BQKQ.mjs +381 -0
- package/lib/chunk-5J2BEPY5.mjs +83 -0
- package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
- package/lib/chunk-6HHJRKFB.mjs +59 -0
- package/lib/chunk-6S4NXESK.mjs +26 -0
- package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
- package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
- package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
- package/lib/chunk-AGZYRDC2.mjs +323 -0
- package/lib/{chunk-VVEZVNIV.mjs → chunk-AI4CVPJ7.mjs} +6 -6
- package/lib/chunk-BDCHCWHD.mjs +136 -0
- package/lib/chunk-BEZKJ25G.mjs +140 -0
- package/lib/chunk-DI5MDPSN.mjs +386 -0
- package/lib/{chunk-ONIBBBQ3.mjs → chunk-E6FDDAOO.mjs} +4 -3
- package/lib/chunk-FKI7IEB5.mjs +172 -0
- package/lib/chunk-GJTGHXRA.mjs +356 -0
- package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
- package/lib/chunk-HMRMTYZM.mjs +40 -0
- package/lib/chunk-HN52G2YL.mjs +305 -0
- package/lib/chunk-HO6GHCOB.mjs +385 -0
- package/lib/chunk-LEM5OMRP.mjs +384 -0
- package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
- package/lib/chunk-O6SWBEOQ.mjs +81 -0
- package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
- package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
- package/lib/chunk-RCP7DHVY.mjs +190 -0
- package/lib/chunk-SBNDSKG5.mjs +136 -0
- package/lib/chunk-U6SO4QEV.mjs +320 -0
- package/lib/{chunk-APBWENF6.mjs → chunk-V3N3JEUF.mjs} +3 -3
- package/lib/chunk-XD6BJK6Q.mjs +351 -0
- package/lib/chunk-XVBFFVCJ.mjs +209 -0
- package/lib/chunk-YXSFGA2D.mjs +383 -0
- package/lib/clean-github-actions-caches.cjs +243 -148
- package/lib/clean-github-actions-caches.mjs +3 -2
- package/lib/del-gradle.cjs +2 -2
- package/lib/del-gradle.js +1 -1
- package/lib/del-gradle.mjs +2 -2
- package/lib/del-node-modules.cjs +2 -2
- package/lib/del-node-modules.js +1 -1
- package/lib/del-node-modules.mjs +2 -2
- package/lib/del-ps.cjs +29 -8
- package/lib/del-ps.js +2 -2
- package/lib/del-ps.mjs +7 -5
- package/lib/del-yarn-caches.cjs +26 -5
- package/lib/del-yarn-caches.js +38 -3
- package/lib/del-yarn-caches.mjs +6 -6
- package/lib/find-node-modules-cli.cjs +5 -4
- package/lib/find-node-modules-cli.js +1 -1
- package/lib/find-node-modules-cli.mjs +2 -2
- package/lib/find-node-modules.cjs +4 -3
- package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
- package/lib/find-node-modules.mjs +2 -2
- package/lib/free-chatgpt.cjs +548 -0
- package/lib/free-chatgpt.js +51 -0
- package/lib/free-chatgpt.mjs +50 -0
- package/lib/git/gitattributes.cjs +1 -1
- package/lib/git/{gitattributes.d.mts → gitattributes.d.cts} +5 -7
- package/lib/git/gitattributes.mjs +2 -2
- package/lib/git/line-endings.cjs +297 -64
- package/lib/git/line-endings.mjs +4 -4
- package/lib/git/normalize.cjs +26 -36
- package/lib/git/normalize.mjs +2 -2
- package/lib/git/permissions.cjs +77 -11
- package/lib/git/permissions.mjs +3 -3
- package/lib/git/pull-strategy.cjs +76 -9
- package/lib/git/pull-strategy.mjs +3 -3
- package/lib/git/user-config.cjs +266 -83
- package/lib/git/user-config.mjs +4 -4
- package/lib/git/utils.cjs +40 -60
- package/lib/git/utils.mjs +2 -2
- package/lib/git-diff-cli.cjs +651 -0
- package/lib/git-diff-cli.d.ts +1 -0
- package/lib/git-diff-cli.js +15 -0
- package/lib/git-diff-cli.mjs +16 -0
- package/lib/git-diff.cjs +657 -58
- package/lib/git-diff.d.ts +38 -83
- package/lib/git-diff.js +152 -0
- package/lib/git-diff.mjs +23 -85
- package/lib/git-fix.cjs +685 -97
- package/lib/git-fix.mjs +14 -13
- package/lib/git-purge.cjs +3 -3
- package/lib/git-purge.d.cts +1 -0
- package/lib/git-purge.mjs +43 -37
- package/lib/index.cjs +7 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -5
- package/lib/index.mjs +4 -4
- package/lib/npm-run-series.cjs +3 -3
- package/lib/npm-run-series.mjs +42 -36
- package/lib/package-resolutions-updater.cjs +5 -5
- package/lib/package-resolutions-updater.mjs +266 -309
- package/lib/print-directory-tree.cjs +275 -210
- package/lib/print-directory-tree.mjs +2 -2
- package/lib/ps/connected-domain.cjs +25 -2
- package/lib/ps/connected-domain.d.ts +10 -2
- package/lib/ps/connected-domain.js +5 -2
- package/lib/ps/connected-domain.mjs +8 -4
- package/lib/ps/index.cjs +345 -322
- package/lib/ps/index.d.mjs +1 -1
- package/lib/ps/index.js +1 -1
- package/lib/ps/index.mjs +179 -182
- package/lib/ps/isWin.cjs +24 -1
- package/lib/ps/isWin.d.ts +1 -1
- package/lib/ps/isWin.js +3 -1
- package/lib/ps/isWin.mjs +8 -4
- package/lib/ps/table-parser.cjs +167 -159
- package/lib/ps/table-parser.d.ts +5 -0
- package/lib/ps/table-parser.js +10 -4
- package/lib/ps/table-parser.mjs +9 -5
- package/lib/remove-module.cjs +262 -0
- package/lib/remove-module.d.mts +1 -0
- package/lib/remove-module.mjs +111 -0
- package/lib/rmpath.cjs +274 -0
- package/lib/rmpath.d.mts +3 -0
- package/lib/rmpath.mjs +108 -0
- package/lib/submodule-install.cjs +264 -86
- package/lib/submodule-install.mjs +51 -3
- package/lib/submodule-remove-cli.cjs +103 -0
- package/lib/submodule-remove-cli.d.ts +1 -0
- package/lib/submodule-remove-cli.js +31 -0
- package/lib/submodule-remove-cli.mjs +28 -0
- package/lib/submodule-remove.cjs +43 -0
- package/lib/submodule-remove.d.cts +2 -0
- package/lib/submodule-remove.mjs +6 -0
- package/lib/utils/chatgpt.cjs +383 -0
- package/lib/utils/chatgpt.d.ts +31 -0
- package/lib/utils/chatgpt.js +541 -0
- package/lib/utils/chatgpt.mjs +8 -0
- package/lib/{utils.cjs → utils/index.cjs} +1 -1
- package/lib/{utils.mjs → utils/index.mjs} +2 -2
- package/lib/yarn-reinstall.cjs +172 -38
- package/lib/yarn-reinstall.mjs +2 -2
- package/package.json +91 -71
- package/readme.md +43 -69
- package/releases/readme.md +36 -0
- package/test/README.md +101 -0
- package/test/package.json +2 -1
- package/test-project/readme.md +26 -0
- package/tmp/test-repo/README.md +35 -0
- package/tmp/test-repo/package.json +1 -1
- package/tmp/typedoc/readme.md +320 -0
- package/bin/bash-dummy +0 -56
- package/bin/bash-dummy.cmd +0 -25
- package/bin/dir-tree.cmd +0 -7
- package/bin/git-diff +0 -4
- package/bin/git-diff.cmd +0 -7
- package/bin/git-fix +0 -36
- package/bin/git-fix.cmd +0 -7
- package/bin/rmpath +0 -70
- package/bin/submodule-install.txt +0 -118
- package/bin/submodule-remove +0 -46
- package/bin/submodule.txt +0 -172
- package/lib/binary-collections-config.d.mts +0 -18
- package/lib/binary-collections-config.js +0 -39
- package/lib/binary-collections.d.mts +0 -137
- package/lib/binary-collections.d.ts +0 -137
- package/lib/changelog.d.mts +0 -2
- package/lib/changelog.js +0 -226
- package/lib/chunk-DPKAJKFO.mjs +0 -171
- package/lib/chunk-G3THLIDT.mjs +0 -200
- package/lib/chunk-W3ENOM53.mjs +0 -18
- package/lib/clean-github-actions-caches.d.mts +0 -169
- package/lib/clean-github-actions-caches.d.ts +0 -169
- package/lib/del-gradle.d.mts +0 -2
- package/lib/del-node-modules.d.mts +0 -2
- package/lib/del-ps.d.mts +0 -2
- package/lib/del-yarn-caches.d.mts +0 -2
- package/lib/find-node-modules-cli.d.mts +0 -1
- package/lib/find-node-modules.d.mts +0 -13
- package/lib/find-node-modules.js +0 -53
- package/lib/git/line-endings.d.mts +0 -83
- package/lib/git/line-endings.d.ts +0 -83
- package/lib/git/normalize.d.mts +0 -43
- package/lib/git/normalize.d.ts +0 -43
- package/lib/git/permissions.d.mts +0 -17
- package/lib/git/permissions.d.ts +0 -17
- package/lib/git/pull-strategy.d.mts +0 -15
- package/lib/git/pull-strategy.d.ts +0 -15
- package/lib/git/user-config.d.mts +0 -105
- package/lib/git/user-config.d.ts +0 -105
- package/lib/git/utils.d.mts +0 -69
- package/lib/git/utils.d.ts +0 -69
- package/lib/git-diff.d.mts +0 -84
- package/lib/git-fix.d.mts +0 -141
- package/lib/git-fix.d.ts +0 -141
- package/lib/git-purge.d.mts +0 -2
- package/lib/git-purge.js +0 -59
- package/lib/index.d.mts +0 -1
- package/lib/npm-run-series.d.mts +0 -1
- package/lib/npm-run-series.d.ts +0 -2
- package/lib/npm-run-series.js +0 -86
- package/lib/package-resolutions-updater.d.ts +0 -352
- package/lib/print-directory-tree.d.mts +0 -234
- package/lib/print-directory-tree.d.ts +0 -234
- package/lib/ps/connected-domain.d.mts +0 -3
- package/lib/ps/index.d.d.mts +0 -26
- package/lib/ps/index.d.d.ts +0 -26
- package/lib/ps/index.d.mts +0 -26
- package/lib/ps/isWin.d.mts +0 -3
- package/lib/ps/table-parser.d.mts +0 -3
- package/lib/submodule-install.d.mts +0 -121
- package/lib/submodule-install.d.ts +0 -121
- package/lib/utils.d.mts +0 -40
- package/lib/utils.js +0 -181
- package/lib/yarn-reinstall.d.mts +0 -49
- package/lib/yarn-reinstall.d.ts +0 -49
- package/src/package-resolutions-updater.mjs +0 -350
- package/src/print-directory-tree.cjs +0 -234
- package/src/ps/index.js +0 -286
- package/src/yarn-reinstall.cjs +0 -49
- /package/{bin → binaries}/nodekill +0 -0
- /package/{bin → binaries}/nodekill.cmd +0 -0
- /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
- /package/lib/{changelog.d.ts → changelog.d.cts} +0 -0
- /package/lib/{git-purge.d.ts → free-chatgpt.d.ts} +0 -0
- /package/lib/{git-diff.d.cts → npm-run-series.d.cts} +0 -0
- /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
|
|
76
|
-
|
|
77
|
-
| **Git**
|
|
78
|
-
| **Submodules**
|
|
79
|
-
| **NPM Scripts**
|
|
80
|
-
| **Package Mgmt** | `yarn-reinstall`, `pkg-resolutions-updater`, `pkg-res-updater`
|
|
81
|
-
| **Node.js Dev**
|
|
82
|
-
| **Process Mgmt** | `kill-process`, `nodekill`, `javakill`, `del-ps`
|
|
83
|
-
| **File System**
|
|
84
|
-
| **Cleanup**
|
|
85
|
-
| **GitHub Actions
|
|
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
|
|
92
|
-
All CLI tools and binaries are collected from the `bin/`, `lib/`, and other relevant folders.
|
|
93
|
-
|
|
94
|
-
Source code for utilities is located in the
|
|
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.
|
|
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
|
-
|
|
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
|

|
|
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
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
| `--
|
|
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
|
-
|
|
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
|

|
|
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
|
-
|
|
335
|
-
|
|
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
|
+

|
|
22
|
+
- copy raw url
|
|
23
|
+

|
|
24
|
+
- or copy download url
|
|
25
|
+

|
|
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
|
@@ -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
|
+

|
|
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
|
+
|