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
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const chatgpt_js_1 = require("./utils/chatgpt.js");
13
+ const index_cjs_1 = require("./utils/index.cjs");
14
+ const argv = (0, index_cjs_1.getArgs)();
15
+ if (argv.help || argv.h) {
16
+ console.log();
17
+ console.log("Usage: free-chatgpt.js [--question <text> | -q <text>] [--qfile <file> | -qf <file>] [--help | -h]");
18
+ console.log();
19
+ console.log("Options:");
20
+ console.log(' --question, -q The question to ask ChatGPT (default: "Hello, ChatGPT!")');
21
+ console.log(" --qfile, -qf Path to a file containing the question text");
22
+ console.log(" --help, -h Show this help message");
23
+ console.log();
24
+ console.log("Description:");
25
+ console.log(" Automates browser interaction with ChatGPT, including login, question submission, and response retrieval.");
26
+ console.log(" - Questions can be provided directly or loaded from a file.");
27
+ console.log(" - Cookies are saved to ./tmp/cookies for session persistence.");
28
+ console.log(" - Requires browser access to chat.openai.com and chatgpt.com (firewall must allow connection).");
29
+ console.log();
30
+ process.exit(0);
31
+ }
32
+ /** @type {string|undefined} */
33
+ let question = argv.question || argv.q;
34
+ /** @type {string|undefined} */
35
+ const questionFile = argv.qfile || argv.qf;
36
+ function main() {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ try {
39
+ yield (0, chatgpt_js_1.runChatGpt)({
40
+ headless: false,
41
+ question,
42
+ questionFile
43
+ });
44
+ }
45
+ catch (error) {
46
+ console.error("Error running ChatGPT:", error);
47
+ process.exit(1);
48
+ }
49
+ });
50
+ }
51
+ main();
@@ -0,0 +1,50 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ runChatGpt
4
+ } from "./chunk-N436BNBK.mjs";
5
+ import {
6
+ require_utils
7
+ } from "./chunk-Z6JLYU2J.mjs";
8
+ import {
9
+ __toESM,
10
+ init_esm_shims
11
+ } from "./chunk-QQ4A6DLD.mjs";
12
+
13
+ // src/free-chatgpt.js
14
+ init_esm_shims();
15
+ var import_utils = __toESM(require_utils(), 1);
16
+ var argv = (0, import_utils.getArgs)();
17
+ if (argv.help || argv.h) {
18
+ console.log();
19
+ console.log("Usage: free-chatgpt.js [--question <text> | -q <text>] [--qfile <file> | -qf <file>] [--help | -h]");
20
+ console.log();
21
+ console.log("Options:");
22
+ console.log(' --question, -q The question to ask ChatGPT (default: "Hello, ChatGPT!")');
23
+ console.log(" --qfile, -qf Path to a file containing the question text");
24
+ console.log(" --help, -h Show this help message");
25
+ console.log();
26
+ console.log("Description:");
27
+ console.log(
28
+ " Automates browser interaction with ChatGPT, including login, question submission, and response retrieval."
29
+ );
30
+ console.log(" - Questions can be provided directly or loaded from a file.");
31
+ console.log(" - Cookies are saved to ./tmp/cookies for session persistence.");
32
+ console.log(" - Requires browser access to chat.openai.com and chatgpt.com (firewall must allow connection).");
33
+ console.log();
34
+ process.exit(0);
35
+ }
36
+ var question = argv.question || argv.q;
37
+ var questionFile = argv.qfile || argv.qf;
38
+ async function main() {
39
+ try {
40
+ await runChatGpt({
41
+ headless: false,
42
+ question,
43
+ questionFile
44
+ });
45
+ } catch (error) {
46
+ console.error("Error running ChatGPT:", error);
47
+ process.exit(1);
48
+ }
49
+ }
50
+ main();
@@ -1,4 +1,4 @@
1
- // src/git/gitattributes.js
1
+ // src/git/gitattributes.cjs
2
2
  var fs = require("fs");
3
3
  function parseGitAttributes(gitattributesPath) {
4
4
  const rules = [];
@@ -169,3 +169,4 @@ module.exports = {
169
169
  formatGitAttributes,
170
170
  updateGitAttributes
171
171
  };
172
+ module.exports.default = module.exports;
@@ -1,3 +1,4 @@
1
+ export default module.exports;
1
2
  /**
2
3
  * Parse existing .gitattributes file into structured rules
3
4
  * @param {string} gitattributesPath - Path to .gitattributes file
@@ -17,7 +18,7 @@ export function patternsConflict(pattern1: string, pattern2: string): boolean;
17
18
  * @param {Array} desiredRules - Desired rules to add
18
19
  * @returns {Object} Result with mergedRules, conflicts, and changes
19
20
  */
20
- export function mergeGitAttributeRules(existingRules: any[], desiredRules: any[]): any;
21
+ export function mergeGitAttributeRules(existingRules: any[], desiredRules: any[]): Object;
21
22
  /**
22
23
  * Format merged rules back into .gitattributes content
23
24
  * @param {Array} rules - Merged rules array
@@ -30,4 +31,8 @@ export function formatGitAttributes(rules: any[]): string;
30
31
  * @param {Array} desiredRules - Array of desired rules to add/merge
31
32
  * @returns {Object} Result with success status, conflicts, and changes
32
33
  */
33
- export function updateGitAttributes(gitattributesPath: string, desiredRules: any[]): any;
34
+ export function updateGitAttributes(gitattributesPath: string, desiredRules: any[]): Object;
35
+ declare namespace exports {
36
+ export { parseGitAttributes, patternsConflict, mergeGitAttributeRules, formatGitAttributes, updateGitAttributes, exports as default };
37
+ }
38
+ declare namespace module { }
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_gitattributes
4
- } from "../chunk-JGR2NW6D.mjs";
5
- import "../chunk-AASHBCRW.mjs";
4
+ } from "../chunk-PDN26I7O.mjs";
5
+ import "../chunk-QQ4A6DLD.mjs";
6
6
  export default require_gitattributes();
@@ -1,74 +1,308 @@
1
- "use strict";
2
- const path = require("upath");
3
- const fs = require("fs");
4
- const { runGitCommand } = require("./utils.cjs");
5
- const { updateGitAttributes } = require("./gitattributes.js");
6
- /**
7
- * Force LF line endings configuration
8
- * - Sets core.autocrlf = false
9
- * - Sets core.eol = lf
10
- * - Creates/updates .gitattributes with proper line ending rules
11
- */
12
- function forceLfLineEndings() {
13
- console.log("\n=== Configuring LF Line Endings ===");
14
- // Force LF line endings
15
- runGitCommand(["config", "core.autocrlf", "false"], "Disable automatic CRLF conversion");
16
- runGitCommand(["config", "core.eol", "lf"], "Set end-of-line to LF");
17
- // Create or update .gitattributes
18
- const gitattributesPath = path.join(process.cwd(), ".gitattributes");
19
- // Always ensure the universal LF rule is present, even if file exists
20
- if (fs.existsSync(gitattributesPath)) {
21
- let content = fs.readFileSync(gitattributesPath, "utf8");
22
- // Match * text=auto eol=lf with any whitespace (space or tab) between tokens
23
- if (!/^\*\s+text=auto\s+eol=lf/m.test(content)) {
24
- content = `* text=auto eol=lf\n` + content;
25
- fs.writeFileSync(gitattributesPath, content);
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __esm = (fn, res) => function __init() {
3
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
4
+ };
5
+ var __commonJS = (cb, mod) => function __require() {
6
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
7
+ };
8
+
9
+ // node_modules/tsup/assets/cjs_shims.js
10
+ var init_cjs_shims = __esm({
11
+ "node_modules/tsup/assets/cjs_shims.js"() {
12
+ }
13
+ });
14
+
15
+ // src/git/utils.cjs
16
+ var require_utils = __commonJS({
17
+ "src/git/utils.cjs"(exports2, module2) {
18
+ init_cjs_shims();
19
+ var { execSync, spawnSync } = require("child_process");
20
+ function runGitCommand2(args, description) {
21
+ try {
22
+ console.log(`[i] ${description}`);
23
+ const result = spawnSync("git", args, { encoding: "utf-8" });
24
+ if (result.status !== 0) {
25
+ console.error(`[\u2717] Failed: ${description}`);
26
+ console.error(`Error: ${result.stderr || result.stdout}`);
27
+ return false;
28
+ }
29
+ console.log(`[\u2713] ${description}`);
30
+ return true;
31
+ } catch (error) {
32
+ console.error(`[\u2717] Failed: ${description}`);
33
+ console.error(`Error: ${error.message}`);
34
+ return false;
35
+ }
36
+ }
37
+ function isGitRepository(cwd) {
38
+ const dir = typeof cwd === "string" ? cwd : process.cwd();
39
+ try {
40
+ execSync("git rev-parse --git-dir", { stdio: "pipe", cwd: dir });
41
+ return true;
42
+ } catch {
43
+ return false;
44
+ }
45
+ }
46
+ function runGitCommandOutput(args, description) {
47
+ try {
48
+ console.log(`[i] ${description}`);
49
+ const result = spawnSync("git", args, { encoding: "utf-8" });
50
+ if (result.status !== 0) {
51
+ console.error(`[\u2717] Failed: ${description}`);
52
+ console.error(`Error: ${result.stderr || result.stdout}`);
53
+ return null;
54
+ }
55
+ console.log(`[\u2713] ${description}`);
56
+ return result.stdout.trim();
57
+ } catch (error) {
58
+ console.error(`[\u2717] Failed: ${description}`);
59
+ console.error(`Error: ${error.message}`);
60
+ return null;
61
+ }
62
+ }
63
+ module2.exports = {
64
+ runGitCommand: runGitCommand2,
65
+ runGitCommandOutput,
66
+ isGitRepository
67
+ };
68
+ }
69
+ });
70
+
71
+ // src/git/gitattributes.cjs
72
+ var require_gitattributes = __commonJS({
73
+ "src/git/gitattributes.cjs"(exports2, module2) {
74
+ init_cjs_shims();
75
+ var fs2 = require("fs");
76
+ function parseGitAttributes(gitattributesPath) {
77
+ const rules = [];
78
+ if (!fs2.existsSync(gitattributesPath)) {
79
+ return rules;
80
+ }
81
+ const content = fs2.readFileSync(gitattributesPath, "utf8");
82
+ const lines = content.split("\n");
83
+ lines.forEach((line, index) => {
84
+ const trimmedLine = line.trim();
85
+ if (!trimmedLine || trimmedLine.startsWith("#")) {
86
+ rules.push({
87
+ type: trimmedLine.startsWith("#") ? "comment" : "empty",
88
+ content: line,
89
+ lineNumber: index + 1
90
+ });
91
+ return;
92
+ }
93
+ const parts = trimmedLine.split(/\s+/);
94
+ if (parts.length >= 2) {
95
+ const pattern = parts[0];
96
+ const attributes = parts.slice(1).join(" ");
97
+ rules.push({
98
+ type: "rule",
99
+ pattern,
100
+ attributes,
101
+ content: line,
102
+ lineNumber: index + 1
103
+ });
104
+ } else {
105
+ rules.push({
106
+ type: "invalid",
107
+ content: line,
108
+ lineNumber: index + 1
109
+ });
26
110
  }
111
+ });
112
+ return rules;
27
113
  }
28
- // Define desired rules with priorities
29
- const desiredRules = [
30
- { pattern: "*", attributes: "text=auto eol=lf", priority: 1 },
31
- {
32
- pattern: "*.{cmd,bat,ps1,sh,cmd1,cmd2,bat1,bat2,vbs}",
33
- attributes: "text eol=crlf",
34
- priority: 2
35
- },
36
- {
37
- pattern: "*.{png,jpg,jpeg,gif,ico,svg,bmp,webp,avif,tiff,tif,psd,ai,eps,raw}",
38
- attributes: "binary",
39
- priority: 3
40
- },
41
- {
42
- pattern: "*.{zip,tar,gz,7z,rar,exe,dll,so,bin,jar,war,ear,apk,msi,deb,rpm,iso,img,dmg,pdf,mp3,mp4,mov,avi,mkv,flv,wmv,ogg,webm,wav,aac,m4a,otf,ttf,woff,woff2,eot}",
43
- attributes: "binary",
44
- priority: 3
114
+ function patternsConflict(pattern1, pattern2) {
115
+ if (pattern1 === pattern2) {
116
+ return true;
117
+ }
118
+ if (pattern1 === "*" || pattern2 === "*") {
119
+ return pattern1 !== pattern2;
120
+ }
121
+ const normalize = (p) => p.replace(/\{[^}]+\}/g, "*").replace(/\*+/g, "*");
122
+ const norm1 = normalize(pattern1);
123
+ const norm2 = normalize(pattern2);
124
+ return norm1 === norm2;
125
+ }
126
+ function mergeGitAttributeRules(existingRules, desiredRules) {
127
+ let mergedRules;
128
+ if (existingRules.length === 0) {
129
+ mergedRules = desiredRules.map((desired, idx) => ({
130
+ type: "rule",
131
+ pattern: desired.pattern,
132
+ attributes: desired.attributes,
133
+ content: `${desired.pattern} ${desired.attributes}`,
134
+ lineNumber: idx + 1,
135
+ added: true
136
+ }));
137
+ return {
138
+ mergedRules,
139
+ conflicts: [],
140
+ changes: desiredRules.map((rule) => ({ action: "added", pattern: rule.pattern, attributes: rule.attributes }))
141
+ };
142
+ } else {
143
+ mergedRules = [...existingRules];
144
+ }
145
+ const conflicts = [];
146
+ const changes = [];
147
+ desiredRules.forEach((desired) => {
148
+ const existingIdx = mergedRules.findIndex((r) => r.type === "rule" && r.pattern === desired.pattern);
149
+ if (existingIdx !== -1) {
150
+ const existing = mergedRules[existingIdx];
151
+ if (existing.attributes === desired.attributes) {
152
+ conflicts.push({
153
+ pattern: desired.pattern,
154
+ existing: existing.attributes,
155
+ proposed: desired.attributes,
156
+ action: "kept existing (identical)"
157
+ });
158
+ } else if (desired.priority > (existing.priority || 0)) {
159
+ mergedRules[existingIdx] = {
160
+ type: "rule",
161
+ pattern: desired.pattern,
162
+ attributes: desired.attributes,
163
+ content: `${desired.pattern} ${desired.attributes}`,
164
+ lineNumber: existing.lineNumber,
165
+ replaced: true
166
+ };
167
+ conflicts.push({
168
+ pattern: desired.pattern,
169
+ existing: existing.attributes,
170
+ proposed: desired.attributes,
171
+ action: "replaced (higher priority)"
172
+ });
173
+ changes.push({
174
+ action: "replaced",
175
+ pattern: desired.pattern,
176
+ attributes: desired.attributes,
177
+ oldAttributes: existing.attributes
178
+ });
179
+ } else {
180
+ conflicts.push({
181
+ pattern: desired.pattern,
182
+ existing: existing.attributes,
183
+ proposed: desired.attributes,
184
+ action: "kept existing (lower priority)"
185
+ });
186
+ }
187
+ } else {
188
+ mergedRules.push({
189
+ type: "rule",
190
+ pattern: desired.pattern,
191
+ attributes: desired.attributes,
192
+ content: `${desired.pattern} ${desired.attributes}`,
193
+ lineNumber: mergedRules.length + 1,
194
+ added: true
195
+ });
196
+ changes.push({
197
+ action: "added",
198
+ pattern: desired.pattern,
199
+ attributes: desired.attributes
200
+ });
45
201
  }
46
- ];
47
- // Update .gitattributes using the dedicated module
48
- const result = updateGitAttributes(gitattributesPath, desiredRules);
49
- // Report results
50
- if (result.error) {
51
- console.log(`[✗] Error updating .gitattributes: ${result.error}`);
52
- return;
202
+ });
203
+ return { mergedRules, conflicts, changes };
53
204
  }
54
- // Report conflicts if any
55
- if (result.conflicts.length > 0) {
56
- console.log("\n[!] Detected conflicts in .gitattributes:");
57
- result.conflicts.forEach((conflict) => {
58
- console.log(` ${conflict.pattern}: ${conflict.existing} -> ${conflict.proposed} (${conflict.action})`);
59
- });
205
+ function formatGitAttributes(rules) {
206
+ return rules.map((rule) => {
207
+ if (rule.type === "rule") {
208
+ return `${rule.pattern} ${rule.attributes}`;
209
+ }
210
+ return rule.content;
211
+ }).join("\n") + "\n";
60
212
  }
61
- // Report changes
62
- if (result.success) {
63
- console.log(`[✓] ${result.message}:`);
64
- result.changes.forEach((change) => {
65
- console.log(` ${change.action}: ${change.pattern} ${change.attributes}`);
66
- });
213
+ function updateGitAttributes2(gitattributesPath, desiredRules) {
214
+ try {
215
+ const existingRules = parseGitAttributes(gitattributesPath);
216
+ const { mergedRules, conflicts, changes } = mergeGitAttributeRules(existingRules, desiredRules);
217
+ let success = false;
218
+ if (changes.length > 0) {
219
+ const newContent = formatGitAttributes(mergedRules);
220
+ fs2.writeFileSync(gitattributesPath, newContent);
221
+ success = true;
222
+ }
223
+ return {
224
+ success,
225
+ conflicts,
226
+ changes,
227
+ message: success ? `Updated .gitattributes with ${changes.length} changes` : "No changes needed - all rules already present"
228
+ };
229
+ } catch (error) {
230
+ return {
231
+ success: false,
232
+ error: error.message,
233
+ conflicts: [],
234
+ changes: []
235
+ };
236
+ }
237
+ }
238
+ module2.exports = {
239
+ parseGitAttributes,
240
+ patternsConflict,
241
+ mergeGitAttributeRules,
242
+ formatGitAttributes,
243
+ updateGitAttributes: updateGitAttributes2
244
+ };
245
+ module2.exports.default = module2.exports;
246
+ }
247
+ });
248
+
249
+ // src/git/line-endings.cjs
250
+ init_cjs_shims();
251
+ var path = require("upath");
252
+ var fs = require("fs");
253
+ var { runGitCommand } = require_utils();
254
+ var { updateGitAttributes } = require_gitattributes();
255
+ function forceLfLineEndings() {
256
+ console.log("\n=== Configuring LF Line Endings ===");
257
+ runGitCommand(["config", "core.autocrlf", "false"], "Disable automatic CRLF conversion");
258
+ runGitCommand(["config", "core.eol", "lf"], "Set end-of-line to LF");
259
+ const gitattributesPath = path.join(process.cwd(), ".gitattributes");
260
+ if (fs.existsSync(gitattributesPath)) {
261
+ let content = fs.readFileSync(gitattributesPath, "utf8");
262
+ if (!/^\*\s+text=auto\s+eol=lf/m.test(content)) {
263
+ content = `* text=auto eol=lf
264
+ ` + content;
265
+ fs.writeFileSync(gitattributesPath, content);
67
266
  }
68
- else {
69
- console.log(`[i] ${result.message}`);
267
+ }
268
+ const desiredRules = [
269
+ { pattern: "*", attributes: "text=auto eol=lf", priority: 1 },
270
+ {
271
+ pattern: "*.{cmd,bat,ps1,sh,cmd1,cmd2,bat1,bat2,vbs}",
272
+ attributes: "text eol=crlf",
273
+ priority: 2
274
+ },
275
+ {
276
+ pattern: "*.{png,jpg,jpeg,gif,ico,svg,bmp,webp,avif,tiff,tif,psd,ai,eps,raw}",
277
+ attributes: "binary",
278
+ priority: 3
279
+ },
280
+ {
281
+ pattern: "*.{zip,tar,gz,7z,rar,exe,dll,so,bin,jar,war,ear,apk,msi,deb,rpm,iso,img,dmg,pdf,mp3,mp4,mov,avi,mkv,flv,wmv,ogg,webm,wav,aac,m4a,otf,ttf,woff,woff2,eot}",
282
+ attributes: "binary",
283
+ priority: 3
70
284
  }
285
+ ];
286
+ const result = updateGitAttributes(gitattributesPath, desiredRules);
287
+ if (result.error) {
288
+ console.log(`[\u2717] Error updating .gitattributes: ${result.error}`);
289
+ return;
290
+ }
291
+ if (result.conflicts.length > 0) {
292
+ console.log("\n[!] Detected conflicts in .gitattributes:");
293
+ result.conflicts.forEach((conflict) => {
294
+ console.log(` ${conflict.pattern}: ${conflict.existing} -> ${conflict.proposed} (${conflict.action})`);
295
+ });
296
+ }
297
+ if (result.success) {
298
+ console.log(`[\u2713] ${result.message}:`);
299
+ result.changes.forEach((change) => {
300
+ console.log(` ${change.action}: ${change.pattern} ${change.attributes}`);
301
+ });
302
+ } else {
303
+ console.log(`[i] ${result.message}`);
304
+ }
71
305
  }
72
306
  module.exports = {
73
- forceLfLineEndings
307
+ forceLfLineEndings
74
308
  };
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_line_endings
4
- } from "../chunk-VVEZVNIV.mjs";
5
- import "../chunk-JGR2NW6D.mjs";
6
- import "../chunk-EGSSKVDH.mjs";
7
- import "../chunk-AASHBCRW.mjs";
4
+ } from "../chunk-ZDMWBSYF.mjs";
5
+ import "../chunk-PDN26I7O.mjs";
6
+ import "../chunk-A3VUZEJK.mjs";
7
+ import "../chunk-QQ4A6DLD.mjs";
8
8
  export default require_line_endings();
@@ -1,42 +1,32 @@
1
- "use strict";
2
- const { execSync } = require("child_process");
3
- /**
4
- * Normalize line endings in existing tracked files
5
- * - Refreshes the git index to detect line ending changes
6
- * - Applies renormalization to all tracked files
7
- */
1
+ // src/git/normalize.cjs
2
+ var { execSync } = require("child_process");
8
3
  function normalizeLineEndings() {
9
- console.log("\n=== Normalizing Existing Files ===");
10
- try {
11
- // Check if there are any tracked files
12
- const result = execSync("git ls-files", { encoding: "utf-8", stdio: "pipe" });
13
- if (!result.trim()) {
14
- console.log("[i] No tracked files to normalize");
15
- return;
16
- }
17
- console.log("[i] Refreshing index to detect line ending changes...");
18
- execSync("git add --renormalize .", { stdio: "pipe" });
19
- // Check if there are changes after normalization
20
- try {
21
- const statusResult = execSync("git status --porcelain", { encoding: "utf-8", stdio: "pipe" });
22
- if (statusResult.trim()) {
23
- console.log("[✓] Line endings normalized for tracked files");
24
- console.log("[i] Files with updated line endings are now staged");
25
- console.log("[i] Run 'git status' to see the changes");
26
- }
27
- else {
28
- console.log("[✓] All files already have correct line endings");
29
- }
30
- }
31
- catch (_a) {
32
- console.log("[✓] Line ending normalization completed");
33
- }
4
+ console.log("\n=== Normalizing Existing Files ===");
5
+ try {
6
+ const result = execSync("git ls-files", { encoding: "utf-8", stdio: "pipe" });
7
+ if (!result.trim()) {
8
+ console.log("[i] No tracked files to normalize");
9
+ return;
34
10
  }
35
- catch (error) {
36
- console.error("[✗] Failed to normalize line endings");
37
- console.error(`Error: ${error.message}`);
11
+ console.log("[i] Refreshing index to detect line ending changes...");
12
+ execSync("git add --renormalize .", { stdio: "pipe" });
13
+ try {
14
+ const statusResult = execSync("git status --porcelain", { encoding: "utf-8", stdio: "pipe" });
15
+ if (statusResult.trim()) {
16
+ console.log("[\u2713] Line endings normalized for tracked files");
17
+ console.log("[i] Files with updated line endings are now staged");
18
+ console.log("[i] Run 'git status' to see the changes");
19
+ } else {
20
+ console.log("[\u2713] All files already have correct line endings");
21
+ }
22
+ } catch {
23
+ console.log("[\u2713] Line ending normalization completed");
38
24
  }
25
+ } catch (error) {
26
+ console.error("[\u2717] Failed to normalize line endings");
27
+ console.error(`Error: ${error.message}`);
28
+ }
39
29
  }
40
30
  module.exports = {
41
- normalizeLineEndings
31
+ normalizeLineEndings
42
32
  };
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_normalize
4
- } from "../chunk-YV7DO3YV.mjs";
5
- import "../chunk-AASHBCRW.mjs";
4
+ } from "../chunk-HLGOWBEO.mjs";
5
+ import "../chunk-QQ4A6DLD.mjs";
6
6
  export default require_normalize();