binary-collections 2.0.9 → 2.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/.puppeterrc.cjs +25 -0
  2. package/binaries/binary-executor.cjs +178 -0
  3. package/{bin → binaries}/clean-nodemodule +0 -0
  4. package/binaries/clean-nodemodule.cjs +178 -0
  5. package/binaries/clean-nodemodule.cmd +4 -0
  6. package/{bin → binaries}/clean-nodemodules +0 -0
  7. package/binaries/clean-nodemodules.cjs +178 -0
  8. package/binaries/clean-nodemodules.cmd +5 -0
  9. package/{bin → binaries}/dev +0 -0
  10. package/binaries/dev.cjs +178 -0
  11. package/{bin → binaries}/empty +0 -0
  12. package/binaries/empty.cjs +178 -0
  13. package/{bin → binaries}/git-reduce-size +0 -0
  14. package/binaries/git-reduce-size.cjs +178 -0
  15. package/binaries/javakill.cjs +178 -0
  16. package/{bin → binaries}/javakill.cmd +0 -0
  17. package/binaries/kill-night-crows.bat +7 -0
  18. package/binaries/kill-night-crows.ps1 +172 -0
  19. package/{bin → binaries}/kill-process +0 -0
  20. package/binaries/kill-process.cjs +178 -0
  21. package/binaries/nodekill.cjs +178 -0
  22. package/{bin → binaries}/nodekill.ps1 +0 -0
  23. package/{bin → binaries}/prod +0 -0
  24. package/binaries/prod.cjs +178 -0
  25. package/binaries/py +111 -0
  26. package/binaries/py.cjs +178 -0
  27. package/binaries/py.cmd +49 -0
  28. package/{bin → binaries}/rmfind +0 -0
  29. package/binaries/rmfind.cjs +178 -0
  30. package/{bin → binaries}/rmx +0 -0
  31. package/binaries/rmx.cjs +178 -0
  32. package/{bin → binaries}/submodule-token +0 -0
  33. package/binaries/submodule-token.cjs +178 -0
  34. package/binaries/test-cjs +10 -0
  35. package/binaries/test-cjs.cjs +178 -0
  36. package/binaries/test-cjs.cmd +11 -0
  37. package/binaries/yarn-clean +32 -0
  38. package/binaries/yarn-clean.cjs +178 -0
  39. package/binaries/yarn-clean.cmd +30 -0
  40. package/binaries/yarn-clean.py +148 -0
  41. package/docs-src/clean-github-actions-caches.md +26 -0
  42. package/docs-src/free-chatgpt.md +26 -0
  43. package/lib/binary-collections-config.cjs +3 -2
  44. package/lib/binary-collections-config.mjs +2 -2
  45. package/lib/binary-collections.cjs +513 -105
  46. package/lib/binary-collections.mjs +178 -117
  47. package/lib/changelog.cjs +64 -16
  48. package/lib/changelog.mjs +177 -171
  49. package/lib/{chunk-VVEZVNIV.mjs → chunk-2CBJCW7E.mjs} +3 -3
  50. package/lib/chunk-34IQDTLZ.mjs +27 -0
  51. package/lib/chunk-3HFFECCI.mjs +27 -0
  52. package/lib/chunk-4UHL4WVN.mjs +136 -0
  53. package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
  54. package/lib/chunk-6HHJRKFB.mjs +59 -0
  55. package/lib/chunk-6S4NXESK.mjs +26 -0
  56. package/lib/chunk-7XTEJHOE.mjs +193 -0
  57. package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
  58. package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
  59. package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
  60. package/lib/chunk-AJDD5DZM.mjs +109 -0
  61. package/lib/chunk-BZWVHODJ.mjs +62 -0
  62. package/lib/chunk-FCDQGYBF.mjs +136 -0
  63. package/lib/chunk-FKI7IEB5.mjs +172 -0
  64. package/lib/chunk-GEYA2USY.mjs +207 -0
  65. package/lib/chunk-GJTGHXRA.mjs +356 -0
  66. package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
  67. package/lib/chunk-ID2WBTE2.mjs +80 -0
  68. package/lib/chunk-JXFOHKDM.mjs +239 -0
  69. package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
  70. package/lib/chunk-N436BNBK.mjs +514 -0
  71. package/lib/chunk-NCXAP7AA.mjs +31 -0
  72. package/lib/chunk-PDN26I7O.mjs +188 -0
  73. package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
  74. package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
  75. package/lib/{chunk-ONIBBBQ3.mjs → chunk-RWLXRTYP.mjs} +4 -3
  76. package/lib/chunk-TOIVAQF7.mjs +136 -0
  77. package/lib/chunk-V5SKYJUB.mjs +136 -0
  78. package/lib/chunk-WSRETQCA.mjs +59 -0
  79. package/lib/chunk-XA3SNBPA.mjs +184 -0
  80. package/lib/chunk-XVBFFVCJ.mjs +209 -0
  81. package/lib/chunk-YYLIQQKF.mjs +31 -0
  82. package/lib/{chunk-APBWENF6.mjs → chunk-Z6JLYU2J.mjs} +63 -16
  83. package/lib/chunk-ZDMWBSYF.mjs +81 -0
  84. package/lib/clean-github-actions-caches.cjs +291 -148
  85. package/lib/clean-github-actions-caches.mjs +4 -3
  86. package/lib/del-gradle.cjs +63 -15
  87. package/lib/del-gradle.js +2 -1
  88. package/lib/del-gradle.mjs +2 -2
  89. package/lib/del-node-modules.cjs +143 -148
  90. package/lib/del-node-modules.js +210 -14
  91. package/lib/del-node-modules.mjs +149 -18
  92. package/lib/del-ps.cjs +90 -21
  93. package/lib/del-ps.js +3 -2
  94. package/lib/del-ps.mjs +7 -5
  95. package/lib/del-yarn-caches.cjs +87 -18
  96. package/lib/del-yarn-caches.js +38 -3
  97. package/lib/del-yarn-caches.mjs +6 -6
  98. package/lib/find-node-modules-cli.cjs +5 -4
  99. package/lib/find-node-modules-cli.js +2 -1
  100. package/lib/find-node-modules-cli.mjs +2 -2
  101. package/lib/find-node-modules.cjs +4 -3
  102. package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
  103. package/lib/find-node-modules.mjs +2 -2
  104. package/lib/free-chatgpt.cjs +754 -0
  105. package/lib/free-chatgpt.js +51 -0
  106. package/lib/free-chatgpt.mjs +50 -0
  107. package/lib/git/gitattributes.cjs +2 -1
  108. package/lib/git/{gitattributes.d.ts → gitattributes.d.cts} +7 -2
  109. package/lib/git/gitattributes.mjs +2 -2
  110. package/lib/git/line-endings.cjs +298 -64
  111. package/lib/git/line-endings.mjs +4 -4
  112. package/lib/git/normalize.cjs +26 -36
  113. package/lib/git/normalize.mjs +2 -2
  114. package/lib/git/permissions.cjs +77 -11
  115. package/lib/git/permissions.mjs +3 -3
  116. package/lib/git/pull-strategy.cjs +76 -9
  117. package/lib/git/pull-strategy.mjs +3 -3
  118. package/lib/git/undo-commit-cli.cjs +110 -0
  119. package/lib/git/undo-commit-cli.d.ts +1 -0
  120. package/lib/git/undo-commit-cli.js +4 -0
  121. package/lib/git/undo-commit-cli.mjs +14 -0
  122. package/lib/git/undo-commit.cjs +81 -0
  123. package/lib/git/undo-commit.d.cts +1 -0
  124. package/lib/git/undo-commit.mjs +7 -0
  125. package/lib/git/undo-staged-cli.cjs +110 -0
  126. package/lib/git/undo-staged-cli.d.ts +1 -0
  127. package/lib/git/undo-staged-cli.js +4 -0
  128. package/lib/git/undo-staged-cli.mjs +14 -0
  129. package/lib/git/undo-staged.cjs +81 -0
  130. package/lib/git/undo-staged.d.cts +1 -0
  131. package/lib/git/undo-staged.mjs +7 -0
  132. package/lib/git/user-config.cjs +313 -83
  133. package/lib/git/user-config.mjs +4 -4
  134. package/lib/git/utils.cjs +40 -60
  135. package/lib/git/utils.mjs +2 -2
  136. package/lib/git-diff-cli.cjs +857 -0
  137. package/lib/git-diff-cli.js +16 -0
  138. package/lib/git-diff-cli.mjs +17 -0
  139. package/lib/git-diff.cjs +862 -58
  140. package/lib/git-diff.d.ts +38 -83
  141. package/lib/git-diff.js +152 -0
  142. package/lib/git-diff.mjs +23 -85
  143. package/lib/git-fix.cjs +733 -97
  144. package/lib/git-fix.mjs +10 -9
  145. package/lib/git-purge.cjs +64 -16
  146. package/lib/git-purge.d.cts +1 -0
  147. package/lib/git-purge.mjs +43 -37
  148. package/lib/index.cjs +7 -6
  149. package/lib/index.d.ts +1 -1
  150. package/lib/index.js +2 -5
  151. package/lib/index.mjs +4 -4
  152. package/lib/kill-night-crows.cjs +87 -0
  153. package/lib/kill-night-crows.d.mts +1 -0
  154. package/lib/kill-night-crows.mjs +65 -0
  155. package/lib/npm-run-series.cjs +63 -16
  156. package/lib/npm-run-series.mjs +42 -36
  157. package/lib/package-resolutions-updater-cli.cjs +560 -0
  158. package/lib/package-resolutions-updater-cli.d.mts +1 -0
  159. package/lib/package-resolutions-updater-cli.mjs +124 -0
  160. package/lib/package-resolutions-updater.cjs +178 -158
  161. package/lib/package-resolutions-updater.d.mts +32 -1
  162. package/lib/package-resolutions-updater.mjs +17 -338
  163. package/lib/php-cs-fixer-staged.cjs +105 -0
  164. package/lib/php-cs-fixer-staged.d.cts +2 -0
  165. package/lib/php-cs-fixer-staged.mjs +117 -0
  166. package/lib/print-directory-tree.cjs +320 -207
  167. package/lib/print-directory-tree.mjs +3 -3
  168. package/lib/ps/connected-domain.cjs +25 -2
  169. package/lib/ps/connected-domain.d.ts +10 -2
  170. package/lib/ps/connected-domain.js +5 -2
  171. package/lib/ps/connected-domain.mjs +8 -4
  172. package/lib/ps/index.cjs +345 -322
  173. package/lib/ps/index.d.mjs +1 -1
  174. package/lib/ps/index.js +2 -1
  175. package/lib/ps/index.mjs +179 -182
  176. package/lib/ps/isWin.cjs +24 -1
  177. package/lib/ps/isWin.d.ts +1 -1
  178. package/lib/ps/isWin.js +3 -1
  179. package/lib/ps/isWin.mjs +8 -4
  180. package/lib/ps/table-parser.cjs +167 -159
  181. package/lib/ps/table-parser.d.ts +5 -0
  182. package/lib/ps/table-parser.js +10 -4
  183. package/lib/ps/table-parser.mjs +9 -5
  184. package/lib/remove-module.cjs +310 -0
  185. package/lib/remove-module.d.mts +1 -0
  186. package/lib/remove-module.mjs +111 -0
  187. package/lib/rmpath.cjs +322 -0
  188. package/lib/rmpath.d.mts +3 -0
  189. package/lib/rmpath.mjs +108 -0
  190. package/lib/submodule-install.cjs +311 -86
  191. package/lib/submodule-install.mjs +53 -5
  192. package/lib/submodule-remove-cli.cjs +107 -0
  193. package/lib/submodule-remove-cli.d.ts +1 -0
  194. package/lib/submodule-remove-cli.js +31 -0
  195. package/lib/submodule-remove-cli.mjs +28 -0
  196. package/lib/submodule-remove.cjs +46 -0
  197. package/lib/submodule-remove.d.cts +2 -0
  198. package/lib/submodule-remove.mjs +6 -0
  199. package/lib/utils/chatgpt.cjs +541 -0
  200. package/lib/utils/chatgpt.d.ts +31 -0
  201. package/lib/utils/chatgpt.js +708 -0
  202. package/lib/utils/chatgpt.mjs +8 -0
  203. package/lib/utils/findEnvFiles.cjs +107 -0
  204. package/lib/utils/findEnvFiles.d.ts +8 -0
  205. package/lib/utils/findEnvFiles.js +121 -0
  206. package/lib/utils/findEnvFiles.mjs +8 -0
  207. package/lib/utils/findWorkspaceRoot.cjs +70 -0
  208. package/lib/utils/findWorkspaceRoot.d.ts +9 -0
  209. package/lib/utils/findWorkspaceRoot.js +57 -0
  210. package/lib/utils/findWorkspaceRoot.mjs +40 -0
  211. package/lib/{utils.cjs → utils/index.cjs} +61 -14
  212. package/lib/{utils.mjs → utils/index.mjs} +2 -2
  213. package/lib/utils/isGithubTokenValid.cjs +64 -0
  214. package/lib/utils/isGithubTokenValid.d.ts +7 -0
  215. package/lib/utils/isGithubTokenValid.js +48 -0
  216. package/lib/utils/isGithubTokenValid.mjs +36 -0
  217. package/lib/yarn-reinstall.cjs +220 -38
  218. package/lib/yarn-reinstall.mjs +2 -2
  219. package/package.json +138 -104
  220. package/readme.md +48 -75
  221. package/releases/readme.md +36 -0
  222. package/requirements.txt +1 -0
  223. package/test/README.md +101 -0
  224. package/test/package.json +2 -1
  225. package/test-project/readme.md +26 -0
  226. package/tmp/test-repo/README.md +35 -0
  227. package/tmp/test-repo/package.json +1 -1
  228. package/tmp/typedoc/readme.md +320 -0
  229. package/bin/bash-dummy +0 -56
  230. package/bin/bash-dummy.cmd +0 -25
  231. package/bin/dir-tree.cmd +0 -7
  232. package/bin/git-diff +0 -4
  233. package/bin/git-diff.cmd +0 -7
  234. package/bin/git-fix +0 -36
  235. package/bin/git-fix.cmd +0 -7
  236. package/bin/rmpath +0 -70
  237. package/bin/submodule-install.txt +0 -118
  238. package/bin/submodule-remove +0 -46
  239. package/bin/submodule.txt +0 -172
  240. package/lib/binary-collections-config.d.mts +0 -18
  241. package/lib/binary-collections-config.js +0 -39
  242. package/lib/binary-collections.d.mts +0 -137
  243. package/lib/binary-collections.d.ts +0 -137
  244. package/lib/changelog.d.mts +0 -2
  245. package/lib/changelog.js +0 -226
  246. package/lib/chunk-DPKAJKFO.mjs +0 -171
  247. package/lib/chunk-G3THLIDT.mjs +0 -200
  248. package/lib/chunk-W3ENOM53.mjs +0 -18
  249. package/lib/clean-github-actions-caches.d.mts +0 -169
  250. package/lib/clean-github-actions-caches.d.ts +0 -169
  251. package/lib/del-gradle.d.mts +0 -2
  252. package/lib/del-node-modules.d.mts +0 -2
  253. package/lib/del-ps.d.mts +0 -2
  254. package/lib/del-yarn-caches.d.mts +0 -2
  255. package/lib/find-node-modules-cli.d.mts +0 -1
  256. package/lib/find-node-modules.d.mts +0 -13
  257. package/lib/find-node-modules.js +0 -53
  258. package/lib/git/gitattributes.d.mts +0 -35
  259. package/lib/git/gitattributes.js +0 -223
  260. package/lib/git/line-endings.d.mts +0 -83
  261. package/lib/git/line-endings.d.ts +0 -83
  262. package/lib/git/normalize.d.mts +0 -43
  263. package/lib/git/normalize.d.ts +0 -43
  264. package/lib/git/permissions.d.mts +0 -17
  265. package/lib/git/permissions.d.ts +0 -17
  266. package/lib/git/pull-strategy.d.mts +0 -15
  267. package/lib/git/pull-strategy.d.ts +0 -15
  268. package/lib/git/user-config.d.mts +0 -105
  269. package/lib/git/user-config.d.ts +0 -105
  270. package/lib/git/utils.d.mts +0 -69
  271. package/lib/git/utils.d.ts +0 -69
  272. package/lib/git-diff.d.mts +0 -84
  273. package/lib/git-fix.d.mts +0 -141
  274. package/lib/git-fix.d.ts +0 -141
  275. package/lib/git-purge.d.mts +0 -2
  276. package/lib/git-purge.js +0 -59
  277. package/lib/index.d.mts +0 -1
  278. package/lib/npm-run-series.d.mts +0 -1
  279. package/lib/npm-run-series.js +0 -86
  280. package/lib/package-resolutions-updater.d.ts +0 -352
  281. package/lib/print-directory-tree.d.mts +0 -234
  282. package/lib/print-directory-tree.d.ts +0 -234
  283. package/lib/ps/connected-domain.d.mts +0 -3
  284. package/lib/ps/index.d.d.mts +0 -26
  285. package/lib/ps/index.d.d.ts +0 -26
  286. package/lib/ps/index.d.mts +0 -26
  287. package/lib/ps/isWin.d.mts +0 -3
  288. package/lib/ps/table-parser.d.mts +0 -3
  289. package/lib/submodule-install.d.mts +0 -121
  290. package/lib/submodule-install.d.ts +0 -121
  291. package/lib/utils.d.mts +0 -40
  292. package/lib/utils.js +0 -181
  293. package/lib/yarn-reinstall.d.mts +0 -49
  294. package/lib/yarn-reinstall.d.ts +0 -49
  295. package/src/package-resolutions-updater.mjs +0 -350
  296. package/src/print-directory-tree.cjs +0 -234
  297. package/src/ps/index.js +0 -286
  298. package/src/yarn-reinstall.cjs +0 -49
  299. /package/{bin → binaries}/nodekill +0 -0
  300. /package/{bin → binaries}/nodekill.cmd +0 -0
  301. /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
  302. /package/lib/{changelog.d.ts → changelog.d.cts} +0 -0
  303. /package/lib/{git-purge.d.ts → free-chatgpt.d.ts} +0 -0
  304. /package/lib/{git-diff.d.cts → git-diff-cli.d.ts} +0 -0
  305. /package/lib/{npm-run-series.d.ts → npm-run-series.d.cts} +0 -0
  306. /package/lib/{utils.d.ts → utils/index.d.cts} +0 -0
package/lib/git-diff.d.ts CHANGED
@@ -1,84 +1,39 @@
1
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
- }
2
+ export default runGitDiff;
3
+ /**
4
+ * Executes a git diff command and saves the output to configured temp files.
5
+ *
6
+ * This function runs the specified git command, captures its output, and saves it to two files:
7
+ * - A standard diff output file for manual inspection
8
+ * - A GPT-formatted prompt file for generating conventional commit messages
9
+ *
10
+ * @param {string} command - The git command to execute (e.g., "git --no-pager diff --staged")
11
+ * @param {string} successMessage - Message to display when the command executes successfully
12
+ * @param {string} errorMessage - Message to display when the command fails
13
+ *
14
+ * @throws {Error} Exits the process with code 1 if the git command fails
15
+ *
16
+ * @example
17
+ * // Generate staged diff for all files
18
+ * runGitDiff(
19
+ * "git --no-pager diff --staged",
20
+ * "Staged diff saved successfully",
21
+ * "Failed to generate staged diff"
22
+ * );
23
+ *
24
+ * @example
25
+ * // Generate diff for a specific file
26
+ * runGitDiff(
27
+ * 'git --no-pager diff --cached -- "src/file.js"',
28
+ * 'File diff saved successfully',
29
+ * 'Failed to generate file diff'
30
+ * );
31
+ */
32
+ declare function runGitDiff(command: string, successMessage: string, errorMessage: string): void;
33
+ export const CACHE_DIR: string;
34
+ export const DIFF_OUTPUT: string;
35
+ export const DIFF_OUTPUT_RELATIVE: string;
36
+ export const GPT_DIFF_OUTPUT: string;
37
+ export const GPT_DIFF_OUTPUT_RELATIVE: string;
38
+ export function mainGitDiff(): Promise<void>;
39
+ export { runGitDiff as gitDiff };
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.GPT_DIFF_OUTPUT_RELATIVE = exports.GPT_DIFF_OUTPUT = exports.DIFF_OUTPUT_RELATIVE = exports.DIFF_OUTPUT = exports.CACHE_DIR = void 0;
17
+ exports.gitDiff = runGitDiff;
18
+ exports.mainGitDiff = mainGitDiff;
19
+ const child_process_1 = require("child_process");
20
+ const fs_extra_1 = __importDefault(require("fs-extra"));
21
+ const upath_1 = __importDefault(require("upath"));
22
+ const url_1 = require("url");
23
+ const binary_collections_config_cjs_1 = require("./binary-collections-config.cjs");
24
+ const chatgpt_js_1 = require("./utils/chatgpt.js");
25
+ const index_cjs_1 = require("./utils/index.cjs");
26
+ const __filename = (0, url_1.fileURLToPath)(import.meta.url);
27
+ const __dirname = upath_1.default.dirname(__filename);
28
+ // Output path using centralized temp directory configuration
29
+ const DIFF_OUTPUT = (0, binary_collections_config_cjs_1.getTempPath)("git-diff.txt");
30
+ exports.DIFF_OUTPUT = DIFF_OUTPUT;
31
+ const GPT_DIFF_OUTPUT = (0, binary_collections_config_cjs_1.getTempPath)("gpt-question.txt");
32
+ exports.GPT_DIFF_OUTPUT = GPT_DIFF_OUTPUT;
33
+ const CACHE_DIR = upath_1.default.dirname(DIFF_OUTPUT);
34
+ exports.CACHE_DIR = CACHE_DIR;
35
+ // Relative paths for display in logs
36
+ const DIFF_OUTPUT_RELATIVE = upath_1.default.relative(process.cwd(), DIFF_OUTPUT);
37
+ exports.DIFF_OUTPUT_RELATIVE = DIFF_OUTPUT_RELATIVE;
38
+ const GPT_DIFF_OUTPUT_RELATIVE = upath_1.default.relative(process.cwd(), GPT_DIFF_OUTPUT);
39
+ exports.GPT_DIFF_OUTPUT_RELATIVE = GPT_DIFF_OUTPUT_RELATIVE;
40
+ // Ensure output directory exists
41
+ if (!fs_extra_1.default.existsSync(CACHE_DIR)) {
42
+ fs_extra_1.default.mkdirSync(CACHE_DIR, { recursive: true });
43
+ }
44
+ function showHelp() {
45
+ console.log("\u{1F4DD} Git Diff Helper");
46
+ console.log("\u{1F4C4} Usage:");
47
+ console.log(" \u{1F4C2} git-diff FILE Show staged diff of specified file");
48
+ console.log(" \u{1F4C2} git-diff --staged-only Show staged diff of all files");
49
+ console.log(" \u{1F4C2} git-diff -s | -S Same as --staged-only");
50
+ console.log(" \u{1F4C2} git-diff --ai Run ChatGPT automation for commit message");
51
+ console.log(" \u{1F4C2} git-diff --help | -h Show this help message");
52
+ console.log("");
53
+ console.log(`\u{1F4BE} Output is saved to: ${DIFF_OUTPUT_RELATIVE}`);
54
+ console.log(`\u{1F916} GPT prompt is saved to: ${GPT_DIFF_OUTPUT_RELATIVE}`);
55
+ process.exit(0);
56
+ }
57
+ /**
58
+ * Executes a git diff command and saves the output to configured temp files.
59
+ *
60
+ * This function runs the specified git command, captures its output, and saves it to two files:
61
+ * - A standard diff output file for manual inspection
62
+ * - A GPT-formatted prompt file for generating conventional commit messages
63
+ *
64
+ * @param {string} command - The git command to execute (e.g., "git --no-pager diff --staged")
65
+ * @param {string} successMessage - Message to display when the command executes successfully
66
+ * @param {string} errorMessage - Message to display when the command fails
67
+ *
68
+ * @throws {Error} Exits the process with code 1 if the git command fails
69
+ *
70
+ * @example
71
+ * // Generate staged diff for all files
72
+ * runGitDiff(
73
+ * "git --no-pager diff --staged",
74
+ * "Staged diff saved successfully",
75
+ * "Failed to generate staged diff"
76
+ * );
77
+ *
78
+ * @example
79
+ * // Generate diff for a specific file
80
+ * runGitDiff(
81
+ * 'git --no-pager diff --cached -- "src/file.js"',
82
+ * 'File diff saved successfully',
83
+ * 'Failed to generate file diff'
84
+ * );
85
+ */
86
+ function runGitDiff(command, successMessage, errorMessage) {
87
+ try {
88
+ console.log(`🔍 [i] Running command: ${command}`);
89
+ const result = (0, child_process_1.execSync)(command, {
90
+ encoding: "utf8",
91
+ maxBuffer: 1024 * 1024 * 10 // 10MB buffer to handle large diffs
92
+ });
93
+ // If result is empty, inform user but don't treat as error
94
+ if (!result || result.trim() === "") {
95
+ console.log(`ℹ️ [i] No changes found for the specified criteria`);
96
+ fs_extra_1.default.writeFileSync(DIFF_OUTPUT, "# No changes found\n");
97
+ console.log(`✅ Empty diff saved to "${DIFF_OUTPUT_RELATIVE}"`);
98
+ return;
99
+ }
100
+ fs_extra_1.default.writeFileSync(DIFF_OUTPUT, result);
101
+ fs_extra_1.default.writeFileSync(GPT_DIFF_OUTPUT, `Hello, ChatGPT!\nCan you create a conventional commit message by diff content below:\n\n\`\`\`${result}\n\`\`\`\n\nGive me result as codeblock with language "text" only.\n\nThank you!`);
102
+ console.log(`✅ ${successMessage}`);
103
+ console.log(`💾 GPT diff prompt saved to "${GPT_DIFF_OUTPUT_RELATIVE}"`);
104
+ }
105
+ catch (error) {
106
+ console.error(`❌ ${errorMessage}`);
107
+ console.error(`📝 Command: ${command}`);
108
+ console.error(`⚠️ Error: ${error.message}`);
109
+ // Check if it's a git-related error
110
+ if (error.message.includes("not a git repository")) {
111
+ console.error("🚧 Make sure you are in a git repository");
112
+ }
113
+ process.exit(1);
114
+ }
115
+ }
116
+ function mainGitDiff() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ const args = (0, index_cjs_1.getArgs)();
119
+ const positional = args._ || [];
120
+ // Show help if no arguments or --help/-h is passed
121
+ if (args.help || args.h) {
122
+ showHelp();
123
+ }
124
+ if (args["staged-only"] || args.s || args.S) {
125
+ runGitDiff("git --no-pager diff --staged", `Full staged diff saved to "${DIFF_OUTPUT_RELATIVE}"`, "Failed to save staged diff");
126
+ }
127
+ else {
128
+ // Handle specific file diff
129
+ const file = positional[0];
130
+ if (!file) {
131
+ runGitDiff("git --no-pager diff", `Full staged diff saved to "${DIFF_OUTPUT_RELATIVE}"`, "Failed to save all diff's");
132
+ }
133
+ else {
134
+ runGitDiff(`git --no-pager diff --cached -- "${file}"`, `Staged diff of "${file}" saved to "${DIFF_OUTPUT_RELATIVE}"`, `Failed to generate diff for "${file}"`);
135
+ }
136
+ }
137
+ // Generate commit message prompt from ChatGPT (only if --ai is specified)
138
+ if (args.ai) {
139
+ try {
140
+ yield (0, chatgpt_js_1.runChatGpt)({ headless: true, questionFile: GPT_DIFF_OUTPUT });
141
+ }
142
+ catch (error) {
143
+ console.error("❌ Error running ChatGPT:", error.message);
144
+ console.error("💡 Try running with visible browser mode or check if Chrome is installed");
145
+ }
146
+ }
147
+ else {
148
+ console.log("💡 Tip: Use --ai flag to generate commit message with ChatGPT");
149
+ }
150
+ });
151
+ }
152
+ exports.default = runGitDiff;
package/lib/git-diff.mjs CHANGED
@@ -1,88 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
3
3
  import {
4
- require_binary_collections_config
5
- } from "./chunk-4BYBVEYC.mjs";
6
- import {
7
- require_utils
8
- } from "./chunk-APBWENF6.mjs";
9
- import {
10
- __commonJS,
11
- __require,
12
- init_esm_shims
13
- } from "./chunk-AASHBCRW.mjs";
14
-
15
- // src/git-diff.cjs
16
- var require_git_diff = __commonJS({
17
- "src/git-diff.cjs"() {
18
- init_esm_shims();
19
- var { execSync } = __require("child_process");
20
- var fs = __require("fs");
21
- var path = __require("path");
22
- var { getTempPath } = require_binary_collections_config();
23
- var OUTPUT = getTempPath("git-diff.txt");
24
- var CACHE_DIR = path.dirname(OUTPUT);
25
- if (!fs.existsSync(CACHE_DIR)) {
26
- fs.mkdirSync(CACHE_DIR, { recursive: true });
27
- }
28
- function showHelp() {
29
- console.log("Git Diff Helper");
30
- console.log("----------------------------");
31
- console.log("Usage:");
32
- console.log(" git-diff FILE Show staged diff of specified file");
33
- console.log(" git-diff --staged-only Show staged diff of all files");
34
- console.log(" git-diff -s | -S Same as --staged-only");
35
- console.log(" git-diff --help | -h Show this help message");
36
- console.log("");
37
- console.log(`Output is saved to: ${OUTPUT}`);
38
- process.exit(0);
39
- }
40
- function runGitDiff(command, successMessage, errorMessage) {
41
- try {
42
- console.log(`[i] Running command: ${command}`);
43
- const result = execSync(command, {
44
- encoding: "utf8",
45
- maxBuffer: 1024 * 1024 * 10
46
- // 10MB buffer to handle large diffs
47
- });
48
- if (!result || result.trim() === "") {
49
- console.log(`[i] No changes found for the specified criteria`);
50
- fs.writeFileSync(OUTPUT, "# No changes found\n");
51
- console.log(`[\u2713] Empty diff saved to "${OUTPUT}"`);
52
- return;
53
- }
54
- fs.writeFileSync(OUTPUT, result);
55
- console.log(`[\u2713] ${successMessage}`);
56
- } catch (error) {
57
- console.error(`[\u2717] ${errorMessage}`);
58
- console.error(`Command: ${command}`);
59
- console.error(`Error: ${error.message}`);
60
- if (error.message.includes("not a git repository")) {
61
- console.error("Make sure you are in a git repository");
62
- }
63
- process.exit(1);
64
- }
65
- }
66
- var { getArgs } = require_utils();
67
- var args = getArgs();
68
- var positional = args._ || [];
69
- if (args.help || args.h) {
70
- showHelp();
71
- }
72
- if (args["staged-only"] || args.s || args.S) {
73
- runGitDiff("git --no-pager diff --staged", `Full staged diff saved to "${OUTPUT}"`, "Failed to save staged diff");
74
- } else {
75
- const file = positional[0];
76
- if (!file) {
77
- runGitDiff("git --no-pager diff", `Full staged diff saved to "${OUTPUT}"`, "Failed to save all diff's");
78
- } else {
79
- runGitDiff(
80
- `git --no-pager diff --cached -- "${file}"`,
81
- `Staged diff of "${file}" saved to "${OUTPUT}"`,
82
- `Failed to generate diff for "${file}"`
83
- );
84
- }
85
- }
86
- }
87
- });
88
- export default require_git_diff();
4
+ CACHE_DIR,
5
+ DIFF_OUTPUT,
6
+ DIFF_OUTPUT_RELATIVE,
7
+ GPT_DIFF_OUTPUT,
8
+ GPT_DIFF_OUTPUT_RELATIVE,
9
+ git_diff_default,
10
+ mainGitDiff,
11
+ runGitDiff
12
+ } from "./chunk-FCDQGYBF.mjs";
13
+ import "./chunk-N436BNBK.mjs";
14
+ import "./chunk-YYLIQQKF.mjs";
15
+ import "./chunk-Z6JLYU2J.mjs";
16
+ import "./chunk-QQ4A6DLD.mjs";
17
+ export {
18
+ CACHE_DIR,
19
+ DIFF_OUTPUT,
20
+ DIFF_OUTPUT_RELATIVE,
21
+ GPT_DIFF_OUTPUT,
22
+ GPT_DIFF_OUTPUT_RELATIVE,
23
+ git_diff_default as default,
24
+ runGitDiff as gitDiff,
25
+ mainGitDiff
26
+ };