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.
- 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 -87
- package/lib/binary-collections.mjs +247 -8
- package/lib/changelog.cjs +328 -0
- package/lib/changelog.mjs +205 -0
- 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 +4 -3
- 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.d.ts +1 -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 +12 -11
- 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 +174 -1
- package/lib/package-resolutions-updater.mjs +270 -290
- 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 -85
- package/lib/submodule-install.mjs +56 -7
- 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/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 -121
- package/lib/binary-collections.d.ts +0 -121
- 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 -326
- 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 -325
- 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/{git-purge.d.ts → changelog.d.cts} +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/lib/git-diff.d.ts
CHANGED
|
@@ -1,84 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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 };
|
package/lib/git-diff.js
ADDED
|
@@ -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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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-SBNDSKG5.mjs";
|
|
13
|
+
import "./chunk-GJTGHXRA.mjs";
|
|
14
|
+
import "./chunk-66PAU5PS.mjs";
|
|
15
|
+
import "./chunk-V3N3JEUF.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
|
+
};
|