binary-collections 2.0.11 → 2.0.13
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 +89 -13
- package/binaries/clean-nodemodule.cjs +89 -13
- package/binaries/clean-nodemodules.cjs +89 -13
- package/binaries/dev.cjs +89 -13
- package/binaries/empty.cjs +89 -13
- package/binaries/git-reduce-size.cjs +89 -13
- package/binaries/javakill.cjs +89 -13
- package/binaries/kill-process.cjs +89 -13
- package/binaries/nodekill.cjs +89 -13
- package/binaries/prod.cjs +89 -13
- package/binaries/py.cjs +89 -13
- package/binaries/rmfind.cjs +89 -13
- package/binaries/rmx +15 -1
- package/binaries/rmx.cjs +89 -13
- package/binaries/rmx.cmd +12 -0
- package/binaries/submodule-token.cjs +89 -13
- package/binaries/test-cjs +9 -1
- package/binaries/test-cjs.cjs +89 -13
- package/binaries/test-cjs.cmd +16 -1
- package/binaries/test-esm +16 -0
- package/binaries/test-esm.cjs +254 -0
- package/binaries/test-esm.cmd +23 -0
- package/binaries/yarn-clean +1 -1
- package/binaries/yarn-clean.cjs +89 -13
- package/binaries/yarn-clean.cmd +1 -1
- package/binaries/yarn-clean.py +33 -15
- package/binaries/yc +131 -0
- package/binaries/yc.cjs +254 -0
- package/binaries/ycw +256 -0
- package/binaries/ycw.cjs +254 -0
- package/docs-src/binary-collections.md +34 -0
- package/docs-src/changelog.md +26 -0
- package/docs-src/clean-github-actions-caches.md +91 -2
- package/docs-src/copy-move-file.md +59 -0
- package/docs-src/del-gradle.md +17 -0
- package/docs-src/del-ps.md +28 -0
- package/docs-src/downloader.md +62 -0
- package/docs-src/env-helpers.md +29 -0
- package/docs-src/find-node-modules.md +17 -0
- package/docs-src/git-diff.md +33 -0
- package/docs-src/git-fix.md +34 -0
- package/docs-src/git-purge.md +17 -0
- package/docs-src/git-reduce-size.md +17 -0
- package/docs-src/git-undo.md +21 -0
- package/docs-src/kill-night-crows.md +26 -0
- package/docs-src/node-cache-cleaner.md +182 -0
- package/docs-src/node-executor.md +50 -0
- package/docs-src/node-package-packer.md +48 -0
- package/docs-src/npm-run-series.md +43 -0
- package/docs-src/package-resolutions-updater.md +22 -0
- package/docs-src/php-cs-fixer-staged.md +19 -0
- package/docs-src/print-directory-tree.md +35 -0
- package/docs-src/print-tarball-tree.md +55 -0
- package/docs-src/py.md +19 -0
- package/docs-src/remove-module.md +32 -0
- package/docs-src/rmfind-rmx.md +21 -0
- package/docs-src/rmpath.md +38 -0
- package/docs-src/run-by-checksum.md +87 -0
- package/docs-src/submodule-install.md +31 -0
- package/docs-src/submodule-remove.md +22 -0
- package/docs-src/submodule-token.md +17 -0
- package/docs-src/test-runners.md +21 -0
- package/docs-src/yarn-install.md +31 -0
- package/docs-src/yarn-reinstall.md +27 -0
- package/lib/binary-collections/config.cjs +126 -0
- package/lib/binary-collections/config.mjs +7 -0
- package/lib/binary-collections/executeScript.cjs +19 -0
- package/lib/binary-collections/executeScript.d.cts +12 -0
- package/lib/binary-collections/executeScript.mjs +6 -0
- package/lib/binary-collections/findScript.cjs +309 -0
- package/lib/binary-collections/findScript.d.cts +12 -0
- package/lib/binary-collections/findScript.mjs +7 -0
- package/lib/binary-collections/listScript.cjs +291 -0
- package/lib/binary-collections/listScript.d.cts +19 -0
- package/lib/binary-collections/listScript.mjs +7 -0
- package/lib/binary-collections.cjs +264 -157
- package/lib/binary-collections.mjs +26 -286
- package/lib/changelog.cjs +9 -14
- package/lib/changelog.mjs +2 -2
- package/lib/chunk-2MN4VPV2.mjs +246 -0
- package/lib/chunk-6C7KTYGZ.mjs +41 -0
- package/lib/{chunk-Z6JLYU2J.mjs → chunk-6RK5UCTP.mjs} +7 -12
- package/lib/chunk-CD3HF3LK.mjs +190 -0
- package/lib/chunk-FLYSZFLW.mjs +61 -0
- package/lib/{chunk-N436BNBK.mjs → chunk-GAGABICI.mjs} +19 -13
- package/lib/chunk-H44UWUFY.mjs +105 -0
- package/lib/chunk-KLKAIFKI.mjs +40 -0
- package/lib/chunk-LVSPEFU2.mjs +86 -0
- package/lib/{chunk-RWLXRTYP.mjs → chunk-MGPYPKIE.mjs} +2 -2
- package/lib/chunk-NGFK3EYW.mjs +28 -0
- package/lib/chunk-NQXUYO67.mjs +253 -0
- package/lib/chunk-NVEG3LEZ.mjs +143 -0
- package/lib/chunk-OBXLTXFJ.mjs +34 -0
- package/lib/chunk-OGXVGBRI.mjs +29 -0
- package/lib/chunk-OXV52GD5.mjs +62 -0
- package/lib/chunk-PXBMHE7O.mjs +35 -0
- package/lib/chunk-QD4T255Z.mjs +40 -0
- package/lib/chunk-QII2EKCS.mjs +26 -0
- package/lib/chunk-R5FJOR63.mjs +47 -0
- package/lib/chunk-RDGDLSPD.mjs +76 -0
- package/lib/chunk-RDN6HF5Z.mjs +79 -0
- package/lib/chunk-RJKTSUAX.mjs +123 -0
- package/lib/{chunk-XA3SNBPA.mjs → chunk-TBWXE7ST.mjs} +97 -38
- package/lib/chunk-UXCFNAR6.mjs +55 -0
- package/lib/{chunk-M3YIYRHT.mjs → chunk-UY5VUEA3.mjs} +1 -1
- package/lib/chunk-WSHVPGNM.mjs +44 -0
- package/lib/{chunk-66PAU5PS.mjs → chunk-X2B3X7D4.mjs} +10 -6
- package/lib/clean-github-actions-caches-cli.cjs +507 -0
- package/lib/clean-github-actions-caches-cli.mjs +74 -0
- package/lib/clean-github-actions-caches.cjs +246 -106
- package/lib/clean-github-actions-caches.d.cts +53 -1
- package/lib/clean-github-actions-caches.mjs +5 -130
- package/lib/cross-env/command.cjs +63 -0
- package/lib/cross-env/command.d.ts +8 -0
- package/lib/cross-env/command.js +45 -0
- package/lib/{ps/isWin.mjs → cross-env/command.mjs} +4 -5
- package/lib/cross-env/index.cjs +178 -0
- package/lib/cross-env/index.d.ts +8 -0
- package/lib/cross-env/index.js +102 -0
- package/lib/cross-env/index.mjs +101 -0
- package/lib/cross-env/variable.cjs +60 -0
- package/lib/cross-env/variable.d.ts +7 -0
- package/lib/cross-env/variable.js +59 -0
- package/lib/cross-env/variable.mjs +9 -0
- package/lib/del-gradle.cjs +8 -13
- package/lib/del-gradle.js +8 -8
- package/lib/del-gradle.mjs +1 -1
- package/lib/del-node-modules.cjs +185 -3
- package/lib/del-node-modules.js +25 -25
- package/lib/del-node-modules.mjs +6 -3
- package/lib/{del-ps.cjs → del-ps-cli.cjs} +38 -43
- package/lib/del-ps-cli.d.mts +1 -0
- package/lib/del-ps-cli.mjs +44 -0
- package/lib/del-yarn-caches.cjs +8 -13
- package/lib/del-yarn-caches.js +2 -2
- package/lib/del-yarn-caches.mjs +1 -1
- package/lib/downloader-cli.cjs +256 -0
- package/lib/downloader-cli.d.cts +2 -0
- package/lib/downloader-cli.mjs +90 -0
- package/lib/file/copy-cli.cjs +273 -0
- package/lib/file/copy-cli.d.mts +1 -0
- package/lib/file/copy-cli.mjs +59 -0
- package/lib/file/copy.cjs +56 -0
- package/lib/file/copy.d.mts +1 -0
- package/lib/file/copy.mjs +8 -0
- package/lib/file/move-cli.cjs +272 -0
- package/lib/file/move-cli.d.mts +1 -0
- package/lib/file/move-cli.mjs +59 -0
- package/lib/file/move.cjs +55 -0
- package/lib/file/move.d.mts +1 -0
- package/lib/file/move.mjs +8 -0
- package/lib/find-node-modules-cli.cjs +1 -1
- package/lib/find-node-modules-cli.js +1 -1
- package/lib/find-node-modules-cli.mjs +1 -1
- package/lib/find-node-modules.cjs +1 -1
- package/lib/find-node-modules.mjs +1 -1
- package/lib/free-chatgpt.cjs +27 -26
- package/lib/free-chatgpt.js +10 -10
- package/lib/free-chatgpt.mjs +2 -2
- package/lib/git/user-config.cjs +9 -14
- package/lib/git/user-config.mjs +2 -2
- package/lib/git-diff-cli.cjs +273 -66
- package/lib/git-diff-cli.mjs +5 -4
- package/lib/git-diff.cjs +273 -66
- package/lib/git-diff.d.ts +2 -1
- package/lib/git-diff.js +153 -39
- package/lib/git-diff.mjs +5 -4
- package/lib/git-fix.cjs +9 -14
- package/lib/git-fix.mjs +2 -2
- package/lib/git-purge.cjs +9 -14
- package/lib/git-purge.mjs +2 -2
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.mjs +1 -1
- package/lib/kill-night-crows.cjs +7 -7
- package/lib/kill-night-crows.mjs +7 -7
- package/lib/node-cache-cleaner/npm.cjs +65 -0
- package/lib/node-cache-cleaner/npm.d.ts +2 -0
- package/lib/node-cache-cleaner/npm.js +41 -0
- package/lib/node-cache-cleaner/npm.mjs +10 -0
- package/lib/node-cache-cleaner/npx.cjs +89 -0
- package/lib/node-cache-cleaner/npx.d.ts +4 -0
- package/lib/node-cache-cleaner/npx.js +82 -0
- package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
- package/lib/node-cache-cleaner/yarn.cjs +73 -0
- package/lib/node-cache-cleaner/yarn.d.ts +2 -0
- package/lib/node-cache-cleaner/yarn.js +62 -0
- package/lib/node-cache-cleaner/yarn.mjs +10 -0
- package/lib/node-cache-cleaner-cli.cjs +365 -0
- package/lib/node-cache-cleaner-cli.d.ts +2 -0
- package/lib/node-cache-cleaner-cli.js +57 -0
- package/lib/node-cache-cleaner-cli.mjs +60 -0
- package/lib/node-executor.cjs +272 -0
- package/lib/node-executor.d.cts +2 -0
- package/lib/node-executor.mjs +106 -0
- package/lib/node-package-packer/build-readme.cjs +150 -0
- package/lib/node-package-packer/build-readme.d.mts +10 -0
- package/lib/node-package-packer/build-readme.mjs +10 -0
- package/lib/node-package-packer/build-tarball.cjs +495 -0
- package/lib/node-package-packer/build-tarball.d.mts +33 -0
- package/lib/node-package-packer/build-tarball.mjs +175 -0
- package/lib/node-package-packer-cli.cjs +525 -0
- package/lib/node-package-packer-cli.d.mts +1 -0
- package/lib/node-package-packer-cli.mjs +34 -0
- package/lib/npm-run-series.cjs +28 -40
- package/lib/npm-run-series.mjs +21 -7
- package/lib/package-resolutions-updater-cli.cjs +255 -173
- package/lib/package-resolutions-updater-cli.mjs +19 -40
- package/lib/package-resolutions-updater.cjs +244 -141
- package/lib/package-resolutions-updater.d.mts +54 -1
- package/lib/package-resolutions-updater.mjs +8 -5
- package/lib/php-cs-fixer-staged.cjs +1 -1
- package/lib/php-cs-fixer-staged.mjs +1 -1
- package/lib/print-directory-tree.cjs +18 -20
- package/lib/print-directory-tree.mjs +11 -8
- package/lib/print-tarball-tree.cjs +262 -0
- package/lib/print-tarball-tree.d.mts +1 -0
- package/lib/print-tarball-tree.mjs +68 -0
- package/lib/ps/connected-domain.js +10 -10
- package/lib/ps/index.cjs +11 -11
- package/lib/ps/index.mjs +180 -174
- package/lib/ps/table-parser.d.ts +3 -4
- package/lib/ps/table-parser.js +15 -22
- package/lib/remove-module.cjs +19 -24
- package/lib/remove-module.mjs +2 -2
- package/lib/rm-node-module-cli.cjs +389 -0
- package/lib/rm-node-module-cli.d.cts +1 -0
- package/lib/rm-node-module-cli.mjs +92 -0
- package/lib/rm-node-modules.cjs +127 -0
- package/lib/rm-node-modules.d.cts +35 -0
- package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
- package/lib/rmpath-cli.cjs +285 -0
- package/lib/rmpath-cli.d.mts +1 -0
- package/lib/rmpath-cli.mjs +23 -0
- package/lib/rmpath.cjs +6 -217
- package/lib/rmpath.mjs +5 -101
- package/lib/run-by-checksum/cache.cjs +69 -0
- package/lib/run-by-checksum/cache.d.ts +19 -0
- package/lib/run-by-checksum/cache.js +50 -0
- package/lib/run-by-checksum/cache.mjs +12 -0
- package/lib/run-by-checksum/hash.cjs +72 -0
- package/lib/run-by-checksum/hash.d.ts +14 -0
- package/lib/run-by-checksum/hash.js +85 -0
- package/lib/run-by-checksum/hash.mjs +10 -0
- package/lib/run-by-checksum/run.cjs +169 -0
- package/lib/run-by-checksum/run.d.ts +22 -0
- package/lib/run-by-checksum/run.js +93 -0
- package/lib/run-by-checksum/run.mjs +10 -0
- package/lib/run-by-checksum-cli.cjs +382 -0
- package/lib/run-by-checksum-cli.d.ts +2 -0
- package/lib/run-by-checksum-cli.js +43 -0
- package/lib/run-by-checksum-cli.mjs +56 -0
- package/lib/submodule-install.cjs +55 -47
- package/lib/submodule-install.mjs +48 -35
- package/lib/submodule-remove-cli.cjs +170 -4
- package/lib/submodule-remove-cli.js +5 -5
- package/lib/submodule-remove-cli.mjs +6 -4
- package/lib/utils/chatgpt.cjs +19 -13
- package/lib/utils/chatgpt.js +94 -94
- package/lib/utils/chatgpt.mjs +1 -1
- package/lib/utils/fetchResponse.cjs +24 -0
- package/lib/utils/fetchResponse.d.cts +25 -0
- package/lib/utils/fetchResponse.mjs +6 -0
- package/lib/utils/findEnvFiles.cjs +28 -46
- package/lib/utils/findEnvFiles.d.cts +19 -0
- package/lib/utils/findEnvFiles.mjs +3 -5
- package/lib/utils/findWorkspaceRoot.js +4 -4
- package/lib/utils/index.cjs +7 -12
- package/lib/utils/index.d.cts +2 -9
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/isGithubTokenValid.js +7 -7
- package/lib/{ps/isWin.cjs → utils/isWindows.cjs} +12 -7
- package/lib/utils/isWindows.d.ts +5 -0
- package/lib/utils/isWindows.js +10 -0
- package/lib/utils/isWindows.mjs +10 -0
- package/lib/utils/runBash.cjs +53 -0
- package/lib/utils/runBash.d.cts +12 -0
- package/lib/utils/runBash.mjs +66 -0
- package/lib/yarn-per-branch-lock-installer.cjs +288 -0
- package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
- package/lib/yarn-per-branch-lock-installer.mjs +122 -0
- package/lib/yarn-reinstall.cjs +8 -13
- package/lib/yarn-reinstall.mjs +1 -1
- package/package.json +91 -57
- package/readme.html +784 -0
- package/readme.md +107 -219
- package/releases/readme.md +6 -3
- package/test/README.md +2 -2
- package/test-project/workspaces/workspace-a/readme.md +20 -0
- package/test-project/workspaces/workspace-a/release/readme.md +42 -0
- package/test-project/workspaces/workspace-a/test/readme.md +12 -0
- package/test-project/workspaces/workspace-b/readme.md +94 -0
- package/test-project/workspaces/workspace-b/requirements.txt +1 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
- package/tmp/test-repo/README.md +2 -35
- package/tmp/test-repo-runChecksum/test-complex-glob/README.md +1 -0
- package/tmp/test-repo-runChecksum/test-mixed-args/README.md +1 -0
- package/lib/binary-collections-config.cjs +0 -15
- package/lib/chunk-2CBJCW7E.mjs +0 -81
- package/lib/chunk-4UHL4WVN.mjs +0 -136
- package/lib/chunk-6HHJRKFB.mjs +0 -59
- package/lib/chunk-6S4NXESK.mjs +0 -26
- package/lib/chunk-7XTEJHOE.mjs +0 -193
- package/lib/chunk-AJDD5DZM.mjs +0 -109
- package/lib/chunk-FCDQGYBF.mjs +0 -136
- package/lib/chunk-GEYA2USY.mjs +0 -207
- package/lib/chunk-GJTGHXRA.mjs +0 -356
- package/lib/chunk-ID2WBTE2.mjs +0 -80
- package/lib/chunk-JXFOHKDM.mjs +0 -239
- package/lib/chunk-NCXAP7AA.mjs +0 -31
- package/lib/chunk-PDSXF5HY.mjs +0 -187
- package/lib/chunk-TOIVAQF7.mjs +0 -136
- package/lib/chunk-V5SKYJUB.mjs +0 -136
- package/lib/chunk-WSRETQCA.mjs +0 -59
- package/lib/chunk-YYLIQQKF.mjs +0 -31
- package/lib/del-ps.js +0 -32
- package/lib/del-ps.mjs +0 -43
- package/lib/ps/index.d.cjs +0 -17
- package/lib/ps/index.d.ts +0 -2
- package/lib/ps/index.js +0 -254
- package/lib/ps/isWin.d.ts +0 -2
- package/lib/ps/isWin.js +0 -4
- package/lib/utils/findEnvFiles.d.ts +0 -8
- package/lib/utils/findEnvFiles.js +0 -121
- package/test/package.json +0 -20
- package/test-project/package.json +0 -16
- package/tmp/test-repo/package.json +0 -7
- package/tmp/typedoc/readme.md +0 -320
- /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
- /package/lib/{del-ps.d.ts → clean-github-actions-caches-cli.d.cts} +0 -0
package/lib/git-diff.cjs
CHANGED
|
@@ -42,12 +42,108 @@ var init_cjs_shims = __esm({
|
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
-
// src/
|
|
46
|
-
var
|
|
47
|
-
"src/
|
|
45
|
+
// src/utils/findEnvFiles.cjs
|
|
46
|
+
var require_findEnvFiles = __commonJS({
|
|
47
|
+
"src/utils/findEnvFiles.cjs"(exports2, module2) {
|
|
48
48
|
init_cjs_shims();
|
|
49
|
+
var fs3 = require("fs");
|
|
49
50
|
var path3 = require("path");
|
|
50
|
-
|
|
51
|
+
var glob = require("glob");
|
|
52
|
+
var DEFAULT_IGNORES = [
|
|
53
|
+
"**/node_modules/**",
|
|
54
|
+
"**/.git/**",
|
|
55
|
+
"**/.yarn/**",
|
|
56
|
+
"**/.pnpm/**",
|
|
57
|
+
"**/dist/**",
|
|
58
|
+
"**/build/**",
|
|
59
|
+
"**/coverage/**",
|
|
60
|
+
"**/vendor/**",
|
|
61
|
+
"**/tmp/**",
|
|
62
|
+
"**/.cache/**",
|
|
63
|
+
"**/assets/**",
|
|
64
|
+
"**/logs/**",
|
|
65
|
+
"**/output/**",
|
|
66
|
+
"**/public/**",
|
|
67
|
+
"**/static/**",
|
|
68
|
+
"**/temp/**",
|
|
69
|
+
"**/backup/**",
|
|
70
|
+
"**/backups/**",
|
|
71
|
+
"**/examples/**",
|
|
72
|
+
"**/docs/**",
|
|
73
|
+
"**/tests/**",
|
|
74
|
+
"**/__tests__/**",
|
|
75
|
+
"**/spec/**",
|
|
76
|
+
"**/__specs__/**",
|
|
77
|
+
"**/scripts/**",
|
|
78
|
+
"**/bin/**",
|
|
79
|
+
"**/hooks/**",
|
|
80
|
+
"**/config/**",
|
|
81
|
+
"**/configs/**",
|
|
82
|
+
"**/settings/**",
|
|
83
|
+
"**/.vscode/**",
|
|
84
|
+
"**/.idea/**"
|
|
85
|
+
];
|
|
86
|
+
function findEnvFiles(startDir = process.cwd(), filter) {
|
|
87
|
+
const found = /* @__PURE__ */ new Set();
|
|
88
|
+
function addFile(file) {
|
|
89
|
+
const normalized = path3.normalize(file);
|
|
90
|
+
if (typeof filter === "function" && !filter(normalized)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
found.add(normalized);
|
|
94
|
+
}
|
|
95
|
+
let current = path3.resolve(startDir);
|
|
96
|
+
while (true) {
|
|
97
|
+
const envPath = path3.join(current, ".env");
|
|
98
|
+
if (fs3.existsSync(envPath)) {
|
|
99
|
+
addFile(envPath);
|
|
100
|
+
}
|
|
101
|
+
const parent = path3.dirname(current);
|
|
102
|
+
if (parent === current) {
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
current = parent;
|
|
106
|
+
}
|
|
107
|
+
const files = glob.globSync("**/.env*", {
|
|
108
|
+
cwd: startDir,
|
|
109
|
+
absolute: true,
|
|
110
|
+
nodir: true,
|
|
111
|
+
ignore: DEFAULT_IGNORES
|
|
112
|
+
});
|
|
113
|
+
for (const file of files) {
|
|
114
|
+
addFile(file);
|
|
115
|
+
}
|
|
116
|
+
return [...found];
|
|
117
|
+
}
|
|
118
|
+
function findEnvWithToken(startDir = process.cwd(), tokenName = "GITHUB_TOKEN") {
|
|
119
|
+
const envFiles = findEnvFiles(startDir);
|
|
120
|
+
return envFiles.find((file) => {
|
|
121
|
+
try {
|
|
122
|
+
const content = fs3.readFileSync(file, "utf-8");
|
|
123
|
+
const regex = new RegExp(`^\\s*${tokenName}\\s*=`, "m");
|
|
124
|
+
return regex.test(content);
|
|
125
|
+
} catch (err) {
|
|
126
|
+
console.warn(`Failed to read ${file}: ${err instanceof Error ? err.message : String(err)}`);
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
module2.exports = {
|
|
132
|
+
DEFAULT_IGNORES,
|
|
133
|
+
findEnvFiles,
|
|
134
|
+
findEnvWithToken,
|
|
135
|
+
default: findEnvFiles
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// src/binary-collections/config.cjs
|
|
141
|
+
var require_config = __commonJS({
|
|
142
|
+
"src/binary-collections/config.cjs"(exports2, module2) {
|
|
143
|
+
init_cjs_shims();
|
|
144
|
+
var path3 = require("upath");
|
|
145
|
+
var { findEnvWithToken } = require_findEnvFiles();
|
|
146
|
+
require("dotenv").config({ path: findEnvWithToken(), quiet: true, overwrite: true });
|
|
51
147
|
function getTempDir() {
|
|
52
148
|
return process.env.TEMP_DIR || path3.join(process.cwd(), "tmp");
|
|
53
149
|
}
|
|
@@ -69,9 +165,9 @@ var require_utils = __commonJS({
|
|
|
69
165
|
init_cjs_shims();
|
|
70
166
|
var fs3 = require("fs");
|
|
71
167
|
var path3 = require("upath");
|
|
72
|
-
var
|
|
168
|
+
var minimistLib = require("minimist");
|
|
169
|
+
var argv = minimistLib(process.argv.slice(2));
|
|
73
170
|
var { exec } = require("child_process");
|
|
74
|
-
var { URL: URL2 } = require("url");
|
|
75
171
|
var { promisify } = require("util");
|
|
76
172
|
var execAsync = promisify(exec);
|
|
77
173
|
async function parseGitRemotes() {
|
|
@@ -84,7 +180,7 @@ var require_utils = __commonJS({
|
|
|
84
180
|
if (name && url) {
|
|
85
181
|
const [repoUrl] = url.split(" ");
|
|
86
182
|
try {
|
|
87
|
-
const parsedUrl = new
|
|
183
|
+
const parsedUrl = new URL(repoUrl);
|
|
88
184
|
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
89
185
|
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
90
186
|
let repoPath = pathParts.join("/");
|
|
@@ -105,15 +201,10 @@ var require_utils = __commonJS({
|
|
|
105
201
|
}
|
|
106
202
|
}
|
|
107
203
|
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
108
|
-
function
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
fullPath = fullPath.charAt(0).toUpperCase() + fullPath.slice(1);
|
|
204
|
+
function getArgs2(opts) {
|
|
205
|
+
if (opts) {
|
|
206
|
+
return minimistLib(process.argv.slice(2), opts);
|
|
112
207
|
}
|
|
113
|
-
return fullPath;
|
|
114
|
-
}
|
|
115
|
-
module2.exports.joinPathPreserveDriveLetter = joinPathPreserveDriveLetter;
|
|
116
|
-
function getArgs2() {
|
|
117
208
|
return argv;
|
|
118
209
|
}
|
|
119
210
|
module2.exports.getArgs = getArgs2;
|
|
@@ -138,7 +229,7 @@ var require_utils = __commonJS({
|
|
|
138
229
|
try {
|
|
139
230
|
fs3.rmdirSync(fullPath);
|
|
140
231
|
console.log("deleted", fullPath);
|
|
141
|
-
} catch (
|
|
232
|
+
} catch (_e) {
|
|
142
233
|
try {
|
|
143
234
|
fs3.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
144
235
|
console.log("deleted", fullPath);
|
|
@@ -151,7 +242,7 @@ var require_utils = __commonJS({
|
|
|
151
242
|
try {
|
|
152
243
|
fs3.unlinkSync(fullPath);
|
|
153
244
|
console.log("deleted", fullPath);
|
|
154
|
-
} catch (
|
|
245
|
+
} catch (_e) {
|
|
155
246
|
try {
|
|
156
247
|
fs3.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
157
248
|
console.log("deleted", fullPath);
|
|
@@ -249,11 +340,13 @@ __export(git_diff_exports, {
|
|
|
249
340
|
});
|
|
250
341
|
module.exports = __toCommonJS(git_diff_exports);
|
|
251
342
|
init_cjs_shims();
|
|
343
|
+
var import_ansi_colors = __toESM(require("ansi-colors"), 1);
|
|
252
344
|
var import_child_process = require("child_process");
|
|
253
345
|
var import_fs_extra2 = __toESM(require("fs-extra"), 1);
|
|
346
|
+
var import_sbg_utility = require("sbg-utility");
|
|
254
347
|
var import_upath2 = __toESM(require("upath"), 1);
|
|
255
348
|
var import_url = require("url");
|
|
256
|
-
var
|
|
349
|
+
var import_config = __toESM(require_config(), 1);
|
|
257
350
|
|
|
258
351
|
// src/utils/chatgpt.js
|
|
259
352
|
init_cjs_shims();
|
|
@@ -372,7 +465,10 @@ async function writeQuestion(page, question) {
|
|
|
372
465
|
async function clickSubmitButton(page) {
|
|
373
466
|
console.log("Attempting to click the submit button...");
|
|
374
467
|
try {
|
|
375
|
-
const userMessageCountBefore = await page.$$eval(
|
|
468
|
+
const userMessageCountBefore = await page.$$eval(
|
|
469
|
+
'[data-message-author-role="user"]',
|
|
470
|
+
(elements) => elements.length
|
|
471
|
+
);
|
|
376
472
|
const waitForSubmit = async (timeout = 5e3) => {
|
|
377
473
|
try {
|
|
378
474
|
await page.waitForFunction(
|
|
@@ -388,18 +484,21 @@ async function clickSubmitButton(page) {
|
|
|
388
484
|
return false;
|
|
389
485
|
}
|
|
390
486
|
};
|
|
391
|
-
await page.waitForFunction(
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
487
|
+
await page.waitForFunction(
|
|
488
|
+
() => {
|
|
489
|
+
const candidates = [
|
|
490
|
+
document.querySelector('[data-testid="fruitjuice-send-button"]'),
|
|
491
|
+
document.querySelector("#composer-submit-button"),
|
|
492
|
+
document.querySelector('[data-testid="send-button"]')
|
|
493
|
+
].filter(Boolean);
|
|
494
|
+
return candidates.some((button) => {
|
|
495
|
+
const isDisabled = button.disabled || button.getAttribute("aria-disabled") === "true";
|
|
496
|
+
const isVisible = button.offsetParent !== null;
|
|
497
|
+
return !isDisabled && isVisible;
|
|
498
|
+
});
|
|
499
|
+
},
|
|
500
|
+
{ timeout: 5e3 }
|
|
501
|
+
).catch(() => {
|
|
403
502
|
});
|
|
404
503
|
const buttonDetails = await page.evaluate(() => {
|
|
405
504
|
const selectors = [
|
|
@@ -765,22 +864,26 @@ async function runChatGpt(chatgptOptions = {}) {
|
|
|
765
864
|
var import_utils = __toESM(require_utils(), 1);
|
|
766
865
|
var __filename2 = (0, import_url.fileURLToPath)(importMetaUrl);
|
|
767
866
|
var __dirname = import_upath2.default.dirname(__filename2);
|
|
768
|
-
var
|
|
769
|
-
var
|
|
867
|
+
var args = (0, import_utils.getArgs)();
|
|
868
|
+
var positional = args._ || [];
|
|
869
|
+
var FILENAME = (0, import_sbg_utility.md5)((positional[0] || "default") + JSON.stringify(args));
|
|
870
|
+
var DIFF_OUTPUT = (0, import_config.getTempPath)(`git-diff/${FILENAME}.txt`);
|
|
871
|
+
var GPT_DIFF_OUTPUT = (0, import_config.getTempPath)(`git-diff/gpt-${FILENAME}.txt`);
|
|
770
872
|
var CACHE_DIR = import_upath2.default.dirname(DIFF_OUTPUT);
|
|
771
873
|
var DIFF_OUTPUT_RELATIVE = import_upath2.default.relative(process.cwd(), DIFF_OUTPUT);
|
|
772
874
|
var GPT_DIFF_OUTPUT_RELATIVE = import_upath2.default.relative(process.cwd(), GPT_DIFF_OUTPUT);
|
|
773
|
-
|
|
774
|
-
import_fs_extra2.default.mkdirSync(CACHE_DIR, { recursive: true });
|
|
775
|
-
}
|
|
875
|
+
import_fs_extra2.default.ensureDirSync(CACHE_DIR, { mode: 493 });
|
|
776
876
|
function showHelp() {
|
|
777
|
-
console.log("\u{
|
|
778
|
-
console.log("
|
|
779
|
-
console.log("
|
|
780
|
-
console.log("
|
|
781
|
-
console.log("
|
|
782
|
-
console.log("
|
|
783
|
-
console.log("
|
|
877
|
+
console.log("\u{1F4CB} Git Diff Helper");
|
|
878
|
+
console.log("Usage:");
|
|
879
|
+
console.log(" git-diff FILE Show staged diff of specified file");
|
|
880
|
+
console.log(" git-diff --staged-only Show staged diff of all files");
|
|
881
|
+
console.log(" git-diff -s | -S Same as --staged-only");
|
|
882
|
+
console.log(" git-diff --unstaged FILE Show unstaged diff of specified file");
|
|
883
|
+
console.log(" git-diff --unstaged Show unstaged diff of all files");
|
|
884
|
+
console.log(" git-diff -u Same as --unstaged");
|
|
885
|
+
console.log(" git-diff --ai Run ChatGPT automation for commit message");
|
|
886
|
+
console.log(" git-diff --help | -h Show this help message");
|
|
784
887
|
console.log("");
|
|
785
888
|
console.log(`\u{1F4BE} Output is saved to: ${DIFF_OUTPUT_RELATIVE}`);
|
|
786
889
|
console.log(`\u{1F916} GPT prompt is saved to: ${GPT_DIFF_OUTPUT_RELATIVE}`);
|
|
@@ -788,22 +891,22 @@ function showHelp() {
|
|
|
788
891
|
}
|
|
789
892
|
function runGitDiff(command, successMessage, errorMessage) {
|
|
790
893
|
try {
|
|
791
|
-
console.log(`\
|
|
894
|
+
console.log(`\u2139\uFE0F Running command: ${command}`);
|
|
792
895
|
const result = (0, import_child_process.execSync)(command, {
|
|
793
896
|
encoding: "utf8",
|
|
794
897
|
maxBuffer: 1024 * 1024 * 10
|
|
795
898
|
// 10MB buffer to handle large diffs
|
|
796
899
|
});
|
|
797
900
|
if (!result || result.trim() === "") {
|
|
798
|
-
console.log(`\u2139\uFE0F
|
|
799
|
-
|
|
901
|
+
console.log(`\u2139\uFE0F No changes found for the specified criteria`);
|
|
902
|
+
(0, import_sbg_utility.writefile)(DIFF_OUTPUT, "# No changes found\n");
|
|
800
903
|
console.log(`\u2705 Empty diff saved to "${DIFF_OUTPUT_RELATIVE}"`);
|
|
801
|
-
return;
|
|
904
|
+
return false;
|
|
802
905
|
}
|
|
803
|
-
|
|
804
|
-
|
|
906
|
+
(0, import_sbg_utility.writefile)(DIFF_OUTPUT, result);
|
|
907
|
+
(0, import_sbg_utility.writefile)(
|
|
805
908
|
GPT_DIFF_OUTPUT,
|
|
806
|
-
`Hello
|
|
909
|
+
`Hello!
|
|
807
910
|
Can you create a conventional commit message by diff content below:
|
|
808
911
|
|
|
809
912
|
\`\`\`${result}
|
|
@@ -814,45 +917,149 @@ Give me result as codeblock with language "text" only.
|
|
|
814
917
|
Thank you!`
|
|
815
918
|
);
|
|
816
919
|
console.log(`\u2705 ${successMessage}`);
|
|
817
|
-
console.log(`\u{1F4BE} GPT diff prompt saved to "${GPT_DIFF_OUTPUT_RELATIVE}"`);
|
|
920
|
+
console.log(`\u{1F4BE} GPT diff prompt saved to "${import_ansi_colors.default.green(GPT_DIFF_OUTPUT_RELATIVE)}"`);
|
|
921
|
+
return true;
|
|
818
922
|
} catch (error) {
|
|
819
923
|
console.error(`\u274C ${errorMessage}`);
|
|
820
|
-
console.error(`\
|
|
821
|
-
console.error(`\
|
|
924
|
+
console.error(`\u274C Command: ${command}`);
|
|
925
|
+
console.error(`\u274C Error: ${error.message}`);
|
|
822
926
|
if (error.message.includes("not a git repository")) {
|
|
823
|
-
console.error("\
|
|
927
|
+
console.error("\u274C Make sure you are in a git repository");
|
|
824
928
|
}
|
|
825
929
|
process.exit(1);
|
|
826
930
|
}
|
|
827
931
|
}
|
|
932
|
+
function getUntrackedDiff() {
|
|
933
|
+
try {
|
|
934
|
+
const untrackedStr = (0, import_child_process.execSync)("git ls-files --others --exclude-standard", {
|
|
935
|
+
encoding: "utf8",
|
|
936
|
+
maxBuffer: 1024 * 1024 * 10
|
|
937
|
+
}).trim();
|
|
938
|
+
if (!untrackedStr) return "";
|
|
939
|
+
const untrackedFiles = untrackedStr.split("\n").filter(function(f) {
|
|
940
|
+
return f;
|
|
941
|
+
});
|
|
942
|
+
if (untrackedFiles.length === 0) return "";
|
|
943
|
+
var result = "\n# Untracked files:\n";
|
|
944
|
+
for (var i = 0; i < untrackedFiles.length; i++) {
|
|
945
|
+
var file = untrackedFiles[i];
|
|
946
|
+
if (!import_fs_extra2.default.existsSync(file)) continue;
|
|
947
|
+
var stat = import_fs_extra2.default.statSync(file);
|
|
948
|
+
if (!stat.isFile()) continue;
|
|
949
|
+
var content;
|
|
950
|
+
try {
|
|
951
|
+
content = import_fs_extra2.default.readFileSync(file, "utf8");
|
|
952
|
+
} catch (_a) {
|
|
953
|
+
continue;
|
|
954
|
+
}
|
|
955
|
+
var lines = content.split("\n");
|
|
956
|
+
if (lines.length > 0 && lines[lines.length - 1] === "") {
|
|
957
|
+
lines.pop();
|
|
958
|
+
}
|
|
959
|
+
result += "diff --git a/" + file + " b/" + file + "\n";
|
|
960
|
+
result += "new file mode 100644\n";
|
|
961
|
+
result += "index 0000000..0000000\n";
|
|
962
|
+
result += "--- /dev/null\n";
|
|
963
|
+
result += "+++ b/" + file + "\n";
|
|
964
|
+
result += "@@ -0,0 +1," + (lines.length || 0) + " @@\n";
|
|
965
|
+
for (var j = 0; j < lines.length; j++) {
|
|
966
|
+
result += "+" + lines[j] + "\n";
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
return result;
|
|
970
|
+
} catch (_b) {
|
|
971
|
+
return "";
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
function fileHasChanges(file, mode) {
|
|
975
|
+
const command = mode === "staged" ? `git diff --cached --quiet -- "${file}"` : `git diff --quiet -- "${file}"`;
|
|
976
|
+
try {
|
|
977
|
+
(0, import_child_process.execSync)(command, { stdio: "ignore" });
|
|
978
|
+
return false;
|
|
979
|
+
} catch (error) {
|
|
980
|
+
if (error.status === 1) {
|
|
981
|
+
return true;
|
|
982
|
+
}
|
|
983
|
+
throw error;
|
|
984
|
+
}
|
|
985
|
+
}
|
|
828
986
|
async function mainGitDiff() {
|
|
829
|
-
const args = (0, import_utils.getArgs)();
|
|
830
|
-
const positional = args._ || [];
|
|
831
987
|
if (args.help || args.h) {
|
|
832
988
|
showHelp();
|
|
833
989
|
}
|
|
990
|
+
const useUnstaged = args.unstaged || args.u;
|
|
991
|
+
const fileFromFlag = typeof args.unstaged === "string" ? args.unstaged : typeof args.u === "string" ? args.u : null;
|
|
992
|
+
let hasDiff = false;
|
|
834
993
|
if (args["staged-only"] || args.s || args.S) {
|
|
835
|
-
runGitDiff(
|
|
994
|
+
hasDiff = runGitDiff(
|
|
836
995
|
"git --no-pager diff --staged",
|
|
837
|
-
`Full staged diff saved to "${DIFF_OUTPUT_RELATIVE}"`,
|
|
996
|
+
`Full staged diff saved to "${import_ansi_colors.default.green(DIFF_OUTPUT_RELATIVE)}"`,
|
|
838
997
|
"Failed to save staged diff"
|
|
839
998
|
);
|
|
840
999
|
} else {
|
|
841
|
-
const file = positional[0];
|
|
1000
|
+
const file = positional[0] || fileFromFlag;
|
|
842
1001
|
if (!file) {
|
|
843
|
-
|
|
1002
|
+
const fullDiffModeLabel = useUnstaged ? "unstaged" : "unstaged";
|
|
1003
|
+
hasDiff = runGitDiff(
|
|
844
1004
|
"git --no-pager diff",
|
|
845
|
-
`Full
|
|
1005
|
+
`Full ${fullDiffModeLabel} diff saved to "${import_ansi_colors.default.green(DIFF_OUTPUT_RELATIVE)}"`,
|
|
846
1006
|
"Failed to save all diff's"
|
|
847
1007
|
);
|
|
1008
|
+
const untrackedDiff = getUntrackedDiff();
|
|
1009
|
+
if (untrackedDiff) {
|
|
1010
|
+
const UNTRACKED_DIFF_OUTPUT = (0, import_config.getTempPath)(`git-diff/untracked-${FILENAME}.txt`);
|
|
1011
|
+
const UNTRACKED_GPT_DIFF_OUTPUT = (0, import_config.getTempPath)(`git-diff/gpt-untracked-${FILENAME}.txt`);
|
|
1012
|
+
const UNTRACKED_DIFF_OUTPUT_RELATIVE = import_upath2.default.relative(process.cwd(), UNTRACKED_DIFF_OUTPUT);
|
|
1013
|
+
(0, import_sbg_utility.writefile)(UNTRACKED_DIFF_OUTPUT, untrackedDiff);
|
|
1014
|
+
(0, import_sbg_utility.writefile)(
|
|
1015
|
+
UNTRACKED_GPT_DIFF_OUTPUT,
|
|
1016
|
+
`Hello!
|
|
1017
|
+
Can you create a conventional commit message by diff content below:
|
|
1018
|
+
|
|
1019
|
+
\`\`\`${untrackedDiff}
|
|
1020
|
+
\`\`\`
|
|
1021
|
+
|
|
1022
|
+
Give me result as codeblock with language "text" only.
|
|
1023
|
+
|
|
1024
|
+
Thank you!`
|
|
1025
|
+
);
|
|
1026
|
+
console.log(`\u2705 Untracked file diff saved to "${import_ansi_colors.default.green(UNTRACKED_DIFF_OUTPUT_RELATIVE)}"`);
|
|
1027
|
+
console.log(
|
|
1028
|
+
`\u{1F4BE} AI diff prompt saved to "${import_ansi_colors.default.green(import_upath2.default.relative(process.cwd(), UNTRACKED_GPT_DIFF_OUTPUT))}"`
|
|
1029
|
+
);
|
|
1030
|
+
hasDiff = true;
|
|
1031
|
+
}
|
|
848
1032
|
} else {
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
1033
|
+
let fileDiffMode = useUnstaged ? "unstaged" : "staged";
|
|
1034
|
+
if (!useUnstaged && !fileHasChanges(file, "staged") && fileHasChanges(file, "unstaged")) {
|
|
1035
|
+
fileDiffMode = "unstaged";
|
|
1036
|
+
}
|
|
1037
|
+
hasDiff = runGitDiff(
|
|
1038
|
+
fileDiffMode === "unstaged" ? `git --no-pager diff -- "${file}"` : `git --no-pager diff --cached -- "${file}"`,
|
|
1039
|
+
`${fileDiffMode[0].toUpperCase() + fileDiffMode.slice(1)} diff of "${file}" saved to "${import_ansi_colors.default.green(
|
|
1040
|
+
DIFF_OUTPUT_RELATIVE
|
|
1041
|
+
)}"`,
|
|
1042
|
+
`Failed to generate ${fileDiffMode} diff for "${file}"`
|
|
853
1043
|
);
|
|
854
1044
|
}
|
|
855
1045
|
}
|
|
1046
|
+
if (hasDiff) {
|
|
1047
|
+
const opencodePrompt = [
|
|
1048
|
+
"",
|
|
1049
|
+
"\u{1F916} OpenCode Prompt Helper",
|
|
1050
|
+
"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
1051
|
+
"",
|
|
1052
|
+
"\u{1F4C4} App Prompt:",
|
|
1053
|
+
` Generate a conventional commit message from diff file: ${DIFF_OUTPUT}`,
|
|
1054
|
+
"",
|
|
1055
|
+
"\u{1F4BB} CLI Command:",
|
|
1056
|
+
` opencode run "Generate a conventional commit message from diff file ${DIFF_OUTPUT}"`,
|
|
1057
|
+
""
|
|
1058
|
+
];
|
|
1059
|
+
const opencodePromptPath = (0, import_config.getTempPath)(`git-diff/opencode-${FILENAME}.txt`);
|
|
1060
|
+
(0, import_sbg_utility.writefile)(opencodePromptPath, opencodePrompt.join("\n"));
|
|
1061
|
+
console.log(`\u2705 OpenCode prompt saved to "${import_ansi_colors.default.green(import_upath2.default.relative(process.cwd(), opencodePromptPath))}"`);
|
|
1062
|
+
}
|
|
856
1063
|
if (args.ai) {
|
|
857
1064
|
try {
|
|
858
1065
|
await runChatGpt({ headless: true, questionFile: GPT_DIFF_OUTPUT });
|
|
@@ -861,7 +1068,7 @@ async function mainGitDiff() {
|
|
|
861
1068
|
console.error("\u{1F4A1} Try running with visible browser mode or check if Chrome is installed");
|
|
862
1069
|
}
|
|
863
1070
|
} else {
|
|
864
|
-
console.log("\u{1F4A1}
|
|
1071
|
+
console.log("\u{1F4A1} Use --ai flag to generate commit message with ChatGPT");
|
|
865
1072
|
}
|
|
866
1073
|
}
|
|
867
1074
|
var git_diff_default = runGitDiff;
|
package/lib/git-diff.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export default runGitDiff;
|
|
|
10
10
|
* @param {string} command - The git command to execute (e.g., "git --no-pager diff --staged")
|
|
11
11
|
* @param {string} successMessage - Message to display when the command executes successfully
|
|
12
12
|
* @param {string} errorMessage - Message to display when the command fails
|
|
13
|
+
* @returns {boolean} True when diff content exists, false when no changes were found
|
|
13
14
|
*
|
|
14
15
|
* @throws {Error} Exits the process with code 1 if the git command fails
|
|
15
16
|
*
|
|
@@ -29,7 +30,7 @@ export default runGitDiff;
|
|
|
29
30
|
* 'Failed to generate file diff'
|
|
30
31
|
* );
|
|
31
32
|
*/
|
|
32
|
-
declare function runGitDiff(command: string, successMessage: string, errorMessage: string):
|
|
33
|
+
declare function runGitDiff(command: string, successMessage: string, errorMessage: string): boolean;
|
|
33
34
|
export const CACHE_DIR: string;
|
|
34
35
|
export const DIFF_OUTPUT: string;
|
|
35
36
|
export const DIFF_OUTPUT_RELATIVE: string;
|