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
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env node
2
- const { execSync } = require("child_process");
3
- const fs = require("fs");
4
- const path = require("path");
5
- const { getTempPath } = require("./binary-collections-config");
6
-
7
- // Output path using centralized temp directory configuration
8
- const OUTPUT = getTempPath("git-diff.txt");
9
- const CACHE_DIR = path.dirname(OUTPUT);
10
-
11
- // Ensure output directory exists
12
- if (!fs.existsSync(CACHE_DIR)) {
13
- fs.mkdirSync(CACHE_DIR, { recursive: true });
14
- }
15
-
16
- function showHelp() {
17
- console.log("Git Diff Helper");
18
- console.log("----------------------------");
19
- console.log("Usage:");
20
- console.log(" git-diff FILE Show staged diff of specified file");
21
- console.log(" git-diff --staged-only Show staged diff of all files");
22
- console.log(" git-diff -s | -S Same as --staged-only");
23
- console.log(" git-diff --help | -h Show this help message");
24
- console.log("");
25
- console.log(`Output is saved to: ${OUTPUT}`);
26
- process.exit(0);
27
- }
28
-
29
- function runGitDiff(command, successMessage, errorMessage) {
30
- try {
31
- console.log(`[i] Running command: ${command}`);
32
- const result = execSync(command, {
33
- encoding: "utf8",
34
- maxBuffer: 1024 * 1024 * 10 // 10MB buffer to handle large diffs
35
- });
36
-
37
- // If result is empty, inform user but don't treat as error
38
- if (!result || result.trim() === "") {
39
- console.log(`[i] No changes found for the specified criteria`);
40
- fs.writeFileSync(OUTPUT, "# No changes found\n");
41
- console.log(`[✓] Empty diff saved to "${OUTPUT}"`);
42
- return;
43
- }
44
-
45
- fs.writeFileSync(OUTPUT, result);
46
- console.log(`[✓] ${successMessage}`);
47
- } catch (error) {
48
- console.error(`[✗] ${errorMessage}`);
49
- console.error(`Command: ${command}`);
50
- console.error(`Error: ${error.message}`);
51
-
52
- // Check if it's a git-related error
53
- if (error.message.includes("not a git repository")) {
54
- console.error("Make sure you are in a git repository");
55
- }
56
-
57
- process.exit(1);
58
- }
59
- }
60
-
61
- const { getArgs } = require("./utils.js");
62
- const args = getArgs();
63
- const positional = args._ || [];
64
-
65
- // Show help if no arguments or --help/-h is passed
66
- if (args.help || args.h) {
67
- showHelp();
68
- }
69
-
70
- if (args["staged-only"] || args.s || args.S) {
71
- runGitDiff("git --no-pager diff --staged", `Full staged diff saved to "${OUTPUT}"`, "Failed to save staged diff");
72
- } else {
73
- // Handle specific file diff
74
- const file = positional[0];
75
- if (!file) {
76
- runGitDiff("git --no-pager diff", `Full staged diff saved to "${OUTPUT}"`, "Failed to save all diff's");
77
- } else {
78
- runGitDiff(
79
- `git --no-pager diff --cached -- "${file}"`,
80
- `Staged diff of "${file}" saved to "${OUTPUT}"`,
81
- `Failed to generate diff for "${file}"`
82
- );
83
- }
84
- }
package/lib/git-fix.d.mts DELETED
@@ -1,141 +0,0 @@
1
- #!/usr/bin/env node
2
- const { isGitRepository } = require("./git/utils.cjs");
3
- const { forceLfLineEndings } = require("./git/line-endings.cjs");
4
- const { ignoreFilePermissions } = require("./git/permissions.cjs");
5
- const { setPullStrategy } = require("./git/pull-strategy.cjs");
6
- const { configureGitUser } = require("./git/user-config.cjs");
7
- const { normalizeLineEndings } = require("./git/normalize.cjs");
8
- const { getArgs } = require("./utils.js");
9
- const path = require("upath");
10
-
11
- function showHelp() {
12
- console.log("Git Fix Utility");
13
- console.log("----------------------------");
14
- console.log("Fixes common Git configuration issues:");
15
- console.log("• Forces LF line endings (core.autocrlf = false)");
16
- console.log("• Ignores file permission changes (core.filemode = false)");
17
- console.log("• Sets pull strategy to false (prevents auto-rebase)");
18
- console.log("• Normalizes existing line endings");
19
- console.log("• Configures Git user from environment variables");
20
- console.log("");
21
- console.log("Usage:");
22
- console.log(" git-fix Apply all fixes");
23
- console.log(" git-fix --lf-only Force LF line endings only");
24
- console.log(" git-fix --permissions Ignore file permissions only");
25
- console.log(" git-fix --normalize Normalize existing files only");
26
- console.log(" git-fix --user Configure Git user from environment");
27
- console.log(" git-fix --user NAME EMAIL Configure Git user with specified name and email");
28
- console.log(" git-fix --help | -h Show this help message");
29
- console.log("");
30
- console.log("Options can be combined: git-fix --lf-only --permissions");
31
- console.log("");
32
- console.log("User configuration precedence:");
33
- console.log(" 1. CLI arguments (--user NAME EMAIL)");
34
- console.log(" 2. Environment variables (GITHUB_USER, GITHUB_EMAIL)");
35
- console.log(" 3. Skip if neither provided");
36
- console.log("");
37
- console.log("Environment variables for --user option:");
38
- console.log(" GITHUB_USER - Git username (for user.name)");
39
- console.log(" GITHUB_EMAIL - Git email (for user.email)");
40
- process.exit(0);
41
- }
42
-
43
- const args = getArgs();
44
-
45
- let userConfig = { hasUserFlag: false, cliUser: null, cliEmail: null };
46
- if (Object.prototype.hasOwnProperty.call(args, "user")) {
47
- userConfig.hasUserFlag = true;
48
- // args.user can be string, array, or boolean
49
- if (Array.isArray(args.user)) {
50
- if (args.user.length === 2) {
51
- userConfig.cliUser = args.user[0];
52
- userConfig.cliEmail = args.user[1];
53
- } else if (args.user.length === 1) {
54
- // Only one value provided, error
55
- console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
56
- console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
57
- process.exit(1);
58
- }
59
- // If length === 0, treat as env
60
- } else if (typeof args.user === "string") {
61
- // Only one value provided, error
62
- console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
63
- console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
64
- process.exit(1);
65
- }
66
- }
67
-
68
- // Show help if requested
69
- if (args.help || args.h) {
70
- showHelp();
71
- process.exit(0); // Exit after showing help
72
- }
73
-
74
- console.log("[i] Current working directory:", path.toUnix(process.cwd()));
75
-
76
- // Check if we're in a git repository
77
- if (!isGitRepository(process.cwd())) {
78
- console.error("[✗] Error: Not in a git repository");
79
- console.error("Please run this command from within a git repository");
80
- process.exit(1);
81
- } else {
82
- console.log("[✓] Detected git repository");
83
- }
84
-
85
- console.log("Git Fix Utility");
86
- console.log("===============");
87
-
88
- // Parse options
89
- const options = {
90
- lfOnly: args["lf-only"] === true,
91
- permissions: args["permissions"] === true,
92
- normalize: args["normalize"] === true,
93
- user: userConfig.hasUserFlag,
94
- updateRemote: args["update-remote"] === true,
95
- all: Object.keys(args).filter((k) => k !== "_" && args[k] === true).length === 0 && !userConfig.hasUserFlag
96
- };
97
-
98
- // Execute requested fixes
99
- if (options.all || options.lfOnly) {
100
- forceLfLineEndings();
101
- }
102
-
103
- if (options.all || options.permissions) {
104
- ignoreFilePermissions();
105
- }
106
-
107
- if (options.all) {
108
- setPullStrategy();
109
- }
110
-
111
- if (options.all || options.user) {
112
- configureGitUser(userConfig.cliUser, userConfig.cliEmail, { updateRemote: options.updateRemote });
113
- } else if (options.updateRemote) {
114
- // If --update-remote is present without --user or --all, still call configureGitUser
115
- configureGitUser(null, null, { updateRemote: true });
116
- }
117
-
118
- if (options.all || options.normalize) {
119
- normalizeLineEndings();
120
- }
121
-
122
- console.log("\n=== Summary ===");
123
- console.log("[✓] Git fix utility completed successfully");
124
-
125
- if (options.all || options.lfOnly || options.normalize) {
126
- console.log("[i] Line endings are now configured for LF");
127
- }
128
-
129
- if (options.all || options.permissions) {
130
- console.log("[i] File permission changes will be ignored");
131
- }
132
-
133
- if (options.all || options.user) {
134
- const username = userConfig.cliUser || process.env.GITHUB_USER?.trim();
135
- const email = userConfig.cliEmail || process.env.GITHUB_EMAIL?.trim();
136
- if (username || email) {
137
- console.log("[i] Git user configuration has been applied");
138
- }
139
- }
140
-
141
- console.log("[i] Repository is ready for cross-platform development");
package/lib/git-fix.d.ts DELETED
@@ -1,141 +0,0 @@
1
- #!/usr/bin/env node
2
- const { isGitRepository } = require("./git/utils.cjs");
3
- const { forceLfLineEndings } = require("./git/line-endings.cjs");
4
- const { ignoreFilePermissions } = require("./git/permissions.cjs");
5
- const { setPullStrategy } = require("./git/pull-strategy.cjs");
6
- const { configureGitUser } = require("./git/user-config.cjs");
7
- const { normalizeLineEndings } = require("./git/normalize.cjs");
8
- const { getArgs } = require("./utils.js");
9
- const path = require("upath");
10
-
11
- function showHelp() {
12
- console.log("Git Fix Utility");
13
- console.log("----------------------------");
14
- console.log("Fixes common Git configuration issues:");
15
- console.log("• Forces LF line endings (core.autocrlf = false)");
16
- console.log("• Ignores file permission changes (core.filemode = false)");
17
- console.log("• Sets pull strategy to false (prevents auto-rebase)");
18
- console.log("• Normalizes existing line endings");
19
- console.log("• Configures Git user from environment variables");
20
- console.log("");
21
- console.log("Usage:");
22
- console.log(" git-fix Apply all fixes");
23
- console.log(" git-fix --lf-only Force LF line endings only");
24
- console.log(" git-fix --permissions Ignore file permissions only");
25
- console.log(" git-fix --normalize Normalize existing files only");
26
- console.log(" git-fix --user Configure Git user from environment");
27
- console.log(" git-fix --user NAME EMAIL Configure Git user with specified name and email");
28
- console.log(" git-fix --help | -h Show this help message");
29
- console.log("");
30
- console.log("Options can be combined: git-fix --lf-only --permissions");
31
- console.log("");
32
- console.log("User configuration precedence:");
33
- console.log(" 1. CLI arguments (--user NAME EMAIL)");
34
- console.log(" 2. Environment variables (GITHUB_USER, GITHUB_EMAIL)");
35
- console.log(" 3. Skip if neither provided");
36
- console.log("");
37
- console.log("Environment variables for --user option:");
38
- console.log(" GITHUB_USER - Git username (for user.name)");
39
- console.log(" GITHUB_EMAIL - Git email (for user.email)");
40
- process.exit(0);
41
- }
42
-
43
- const args = getArgs();
44
-
45
- let userConfig = { hasUserFlag: false, cliUser: null, cliEmail: null };
46
- if (Object.prototype.hasOwnProperty.call(args, "user")) {
47
- userConfig.hasUserFlag = true;
48
- // args.user can be string, array, or boolean
49
- if (Array.isArray(args.user)) {
50
- if (args.user.length === 2) {
51
- userConfig.cliUser = args.user[0];
52
- userConfig.cliEmail = args.user[1];
53
- } else if (args.user.length === 1) {
54
- // Only one value provided, error
55
- console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
56
- console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
57
- process.exit(1);
58
- }
59
- // If length === 0, treat as env
60
- } else if (typeof args.user === "string") {
61
- // Only one value provided, error
62
- console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
63
- console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
64
- process.exit(1);
65
- }
66
- }
67
-
68
- // Show help if requested
69
- if (args.help || args.h) {
70
- showHelp();
71
- process.exit(0); // Exit after showing help
72
- }
73
-
74
- console.log("[i] Current working directory:", path.toUnix(process.cwd()));
75
-
76
- // Check if we're in a git repository
77
- if (!isGitRepository(process.cwd())) {
78
- console.error("[✗] Error: Not in a git repository");
79
- console.error("Please run this command from within a git repository");
80
- process.exit(1);
81
- } else {
82
- console.log("[✓] Detected git repository");
83
- }
84
-
85
- console.log("Git Fix Utility");
86
- console.log("===============");
87
-
88
- // Parse options
89
- const options = {
90
- lfOnly: args["lf-only"] === true,
91
- permissions: args["permissions"] === true,
92
- normalize: args["normalize"] === true,
93
- user: userConfig.hasUserFlag,
94
- updateRemote: args["update-remote"] === true,
95
- all: Object.keys(args).filter((k) => k !== "_" && args[k] === true).length === 0 && !userConfig.hasUserFlag
96
- };
97
-
98
- // Execute requested fixes
99
- if (options.all || options.lfOnly) {
100
- forceLfLineEndings();
101
- }
102
-
103
- if (options.all || options.permissions) {
104
- ignoreFilePermissions();
105
- }
106
-
107
- if (options.all) {
108
- setPullStrategy();
109
- }
110
-
111
- if (options.all || options.user) {
112
- configureGitUser(userConfig.cliUser, userConfig.cliEmail, { updateRemote: options.updateRemote });
113
- } else if (options.updateRemote) {
114
- // If --update-remote is present without --user or --all, still call configureGitUser
115
- configureGitUser(null, null, { updateRemote: true });
116
- }
117
-
118
- if (options.all || options.normalize) {
119
- normalizeLineEndings();
120
- }
121
-
122
- console.log("\n=== Summary ===");
123
- console.log("[✓] Git fix utility completed successfully");
124
-
125
- if (options.all || options.lfOnly || options.normalize) {
126
- console.log("[i] Line endings are now configured for LF");
127
- }
128
-
129
- if (options.all || options.permissions) {
130
- console.log("[i] File permission changes will be ignored");
131
- }
132
-
133
- if (options.all || options.user) {
134
- const username = userConfig.cliUser || process.env.GITHUB_USER?.trim();
135
- const email = userConfig.cliEmail || process.env.GITHUB_EMAIL?.trim();
136
- if (username || email) {
137
- console.log("[i] Git user configuration has been applied");
138
- }
139
- }
140
-
141
- console.log("[i] Repository is ready for cross-platform development");
@@ -1,2 +0,0 @@
1
-
2
- export { }
package/lib/git-purge.js DELETED
@@ -1,59 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- const { spawnAsync } = require("cross-spawn");
11
- const glob = require("glob");
12
- const path = require("path");
13
- const { delay } = require("./utils");
14
- /** @type {string[]} */
15
- const dirs = [];
16
- /**
17
- * fetch directories
18
- * @param {string|string[]} pattern
19
- * @param {(filePath: string) => any} callback
20
- */
21
- const fetchDirs = (pattern, callback) => {
22
- const globStream = new glob.Glob(pattern, {
23
- withFileTypes: false,
24
- cwd: process.cwd(),
25
- ignore: ["**/node_modules/**", "**/vendor/**"]
26
- });
27
- globStream.stream().on("data", (result) => {
28
- const fullPath = path.resolve(process.cwd(), result);
29
- if (typeof callback == "function")
30
- callback(fullPath);
31
- const base = path.dirname(fullPath);
32
- // push directory when not exist
33
- if (!dirs.includes(base))
34
- dirs.push(base);
35
- start();
36
- });
37
- };
38
- let running = false;
39
- function start() {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- // skip run when still running
42
- if (running)
43
- return;
44
- while (dirs.length > 0) {
45
- // start
46
- running = true;
47
- const cwd = dirs.shift();
48
- console.log("pruning reflog", cwd);
49
- yield spawnAsync("git", ["reflog", "expire", "--expire=all", "--all"], { cwd, stdio: "pipe", shell: true }).catch((e) => console.log("failed prune reflog", e.message));
50
- // git gc --prune=now --aggressive
51
- // delay 3s
52
- yield delay(3);
53
- // stop
54
- running = false;
55
- }
56
- });
57
- }
58
- // script starts here
59
- fetchDirs("**/.git");
package/lib/index.d.mts DELETED
@@ -1 +0,0 @@
1
- export { default as findNodeModules } from './find-node-modules.mjs';
@@ -1 +0,0 @@
1
- #!/usr/bin/env node
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,86 +0,0 @@
1
- #!/usr/bin/env node
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- const fs = require("fs");
45
- const path = require("path");
46
- const { Minimatch } = require("minimatch");
47
- const { getArgs } = require("./utils.js");
48
- const args = getArgs();
49
- const cwd = process.cwd();
50
- const packagejson = path.join(cwd, "package.json");
51
- const verbose = args["v"] || args["verbose"];
52
- const usingYarn = args["yarn"];
53
- (function npmRunSeries() {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- const { execa } = yield Promise.resolve().then(() => __importStar(require("execa")));
56
- if (fs.existsSync(packagejson)) {
57
- /**
58
- * @type {import('../package.json')}
59
- */
60
- const parse = JSON.parse(fs.readFileSync(packagejson, "utf-8"));
61
- if (parse !== null && typeof parse === "object") {
62
- if ("scripts" in parse) {
63
- const patterns = args._;
64
- const scripts = parse.scripts;
65
- const scriptNames = Object.keys(scripts);
66
- for (let i = 0; i < patterns.length; i++) {
67
- const pattern = patterns[i];
68
- const matcher = new Minimatch(pattern, { nonegate: true });
69
- for (let ii = 0; ii < scriptNames.length; ii++) {
70
- const scriptName = scriptNames[ii];
71
- const match = matcher.match(scriptName);
72
- if (verbose)
73
- console.log({ pattern, scriptName, match });
74
- if (match === true) {
75
- yield execa(usingYarn ? "yarn" : "npm", ["run", scriptName], {
76
- cwd,
77
- stdio: "inherit"
78
- });
79
- }
80
- }
81
- }
82
- }
83
- }
84
- }
85
- });
86
- })();