binary-collections 2.0.6 → 2.0.8

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 (183) hide show
  1. package/bin/dir-tree.cmd +7 -0
  2. package/bin/git-diff +4 -0
  3. package/bin/git-diff.cmd +7 -0
  4. package/bin/{git-fix-encoding → git-fix} +1 -4
  5. package/bin/git-fix.cmd +7 -0
  6. package/bin/nodekill +0 -0
  7. package/bin/nodekill.cmd +0 -0
  8. package/bin/{submodule-install → submodule-install.txt} +0 -0
  9. package/bin/{submodule → submodule.txt} +0 -0
  10. package/lib/binary-collections-config.cjs +14 -0
  11. package/lib/binary-collections-config.d.mts +18 -0
  12. package/lib/binary-collections-config.d.ts +16 -0
  13. package/lib/binary-collections-config.js +39 -0
  14. package/lib/binary-collections-config.mjs +6 -0
  15. package/lib/binary-collections.cjs +105 -0
  16. package/lib/binary-collections.d.cts +2 -0
  17. package/lib/binary-collections.d.mts +121 -0
  18. package/lib/binary-collections.d.ts +121 -0
  19. package/lib/binary-collections.mjs +108 -0
  20. package/lib/chunk-4BYBVEYC.mjs +30 -0
  21. package/lib/chunk-AASHBCRW.mjs +57 -0
  22. package/lib/chunk-APBWENF6.mjs +135 -0
  23. package/lib/{chunk-M4IBUK4H.mjs → chunk-DPKAJKFO.mjs} +2 -4
  24. package/lib/chunk-EGSSKVDH.mjs +66 -0
  25. package/lib/{chunk-GA4DDV65.mjs → chunk-G3THLIDT.mjs} +3 -5
  26. package/lib/chunk-JGR2NW6D.mjs +187 -0
  27. package/lib/chunk-ONIBBBQ3.mjs +108 -0
  28. package/lib/chunk-SH3L6HHV.mjs +27 -0
  29. package/lib/chunk-VVEZVNIV.mjs +81 -0
  30. package/lib/{chunk-E75HJFJO.mjs → chunk-W3ENOM53.mjs} +2 -4
  31. package/lib/chunk-YV7DO3YV.mjs +48 -0
  32. package/lib/chunk-YX5U7XDR.mjs +58 -0
  33. package/lib/chunk-ZYAQRPUL.mjs +28 -0
  34. package/lib/clean-github-actions-caches.cjs +162 -0
  35. package/lib/clean-github-actions-caches.d.cts +1 -0
  36. package/lib/clean-github-actions-caches.d.mts +169 -0
  37. package/lib/clean-github-actions-caches.d.ts +169 -0
  38. package/lib/clean-github-actions-caches.mjs +132 -0
  39. package/lib/del-gradle.cjs +99 -15
  40. package/lib/del-gradle.d.ts +1 -2
  41. package/lib/del-gradle.js +12 -69
  42. package/lib/del-gradle.mjs +4 -6
  43. package/lib/del-node-modules.cjs +98 -14
  44. package/lib/del-node-modules.d.ts +1 -2
  45. package/lib/del-node-modules.js +11 -68
  46. package/lib/del-node-modules.mjs +3 -5
  47. package/lib/del-ps.cjs +98 -627
  48. package/lib/del-ps.d.ts +1 -2
  49. package/lib/del-ps.js +27 -702
  50. package/lib/del-ps.mjs +7 -12
  51. package/lib/del-yarn-caches.cjs +98 -14
  52. package/lib/del-yarn-caches.d.ts +1 -2
  53. package/lib/del-yarn-caches.js +6 -63
  54. package/lib/del-yarn-caches.mjs +3 -5
  55. package/lib/find-node-modules-cli.cjs +67 -0
  56. package/lib/find-node-modules-cli.d.mts +1 -0
  57. package/lib/find-node-modules-cli.d.ts +2 -0
  58. package/lib/find-node-modules-cli.js +3 -0
  59. package/lib/find-node-modules-cli.mjs +13 -0
  60. package/lib/find-node-modules.cjs +39 -9
  61. package/lib/find-node-modules.d.mts +12 -1
  62. package/lib/find-node-modules.d.ts +12 -2
  63. package/lib/find-node-modules.js +53 -12
  64. package/lib/find-node-modules.mjs +4 -19
  65. package/lib/git/gitattributes.cjs +171 -0
  66. package/lib/git/gitattributes.d.mts +35 -0
  67. package/lib/git/gitattributes.d.ts +33 -0
  68. package/lib/git/gitattributes.js +223 -0
  69. package/lib/git/gitattributes.mjs +6 -0
  70. package/lib/git/line-endings.cjs +74 -0
  71. package/lib/git/line-endings.d.cts +7 -0
  72. package/lib/git/line-endings.d.mts +83 -0
  73. package/lib/git/line-endings.d.ts +83 -0
  74. package/lib/git/line-endings.mjs +8 -0
  75. package/lib/git/normalize.cjs +42 -0
  76. package/lib/git/normalize.d.cts +6 -0
  77. package/lib/git/normalize.d.mts +43 -0
  78. package/lib/git/normalize.d.ts +43 -0
  79. package/lib/git/normalize.mjs +6 -0
  80. package/lib/git/permissions.cjs +15 -0
  81. package/lib/git/permissions.d.cts +6 -0
  82. package/lib/git/permissions.d.mts +17 -0
  83. package/lib/git/permissions.d.ts +17 -0
  84. package/lib/git/permissions.mjs +7 -0
  85. package/lib/git/pull-strategy.cjs +13 -0
  86. package/lib/git/pull-strategy.d.cts +5 -0
  87. package/lib/git/pull-strategy.d.mts +15 -0
  88. package/lib/git/pull-strategy.d.ts +15 -0
  89. package/lib/git/pull-strategy.mjs +7 -0
  90. package/lib/git/user-config.cjs +100 -0
  91. package/lib/git/user-config.d.cts +10 -0
  92. package/lib/git/user-config.d.mts +105 -0
  93. package/lib/git/user-config.d.ts +105 -0
  94. package/lib/git/user-config.mjs +8 -0
  95. package/lib/git/utils.cjs +70 -0
  96. package/lib/git/utils.d.cts +20 -0
  97. package/lib/git/utils.d.mts +69 -0
  98. package/lib/git/utils.d.ts +69 -0
  99. package/lib/git/utils.mjs +6 -0
  100. package/lib/git-diff.cjs +73 -0
  101. package/lib/git-diff.d.cts +2 -0
  102. package/lib/git-diff.d.mts +84 -0
  103. package/lib/git-diff.d.ts +84 -0
  104. package/lib/git-diff.mjs +88 -0
  105. package/lib/git-fix.cjs +129 -0
  106. package/lib/git-fix.d.cts +2 -0
  107. package/lib/git-fix.d.mts +141 -0
  108. package/lib/git-fix.d.ts +141 -0
  109. package/lib/git-fix.mjs +151 -0
  110. package/lib/git-purge.cjs +92 -621
  111. package/lib/git-purge.d.ts +1 -2
  112. package/lib/git-purge.js +53 -698
  113. package/lib/git-purge.mjs +4 -9
  114. package/lib/index.cjs +99 -1
  115. package/lib/index.d.mts +1 -2
  116. package/lib/index.d.ts +2 -2
  117. package/lib/index.js +8 -2
  118. package/lib/index.mjs +10 -3
  119. package/lib/npm-run-series.cjs +140 -1
  120. package/lib/npm-run-series.d.ts +1 -0
  121. package/lib/npm-run-series.js +81 -56
  122. package/lib/npm-run-series.mjs +7 -5
  123. package/lib/package-resolutions-updater.cjs +274 -0
  124. package/lib/package-resolutions-updater.d.mts +1 -0
  125. package/lib/package-resolutions-updater.d.ts +326 -0
  126. package/lib/package-resolutions-updater.mjs +316 -0
  127. package/lib/print-directory-tree.cjs +241 -0
  128. package/lib/print-directory-tree.d.cts +1 -0
  129. package/lib/print-directory-tree.d.mts +234 -0
  130. package/lib/print-directory-tree.d.ts +234 -0
  131. package/lib/print-directory-tree.mjs +182 -0
  132. package/lib/ps/connected-domain.cjs +0 -0
  133. package/lib/ps/connected-domain.d.ts +1 -2
  134. package/lib/ps/connected-domain.js +196 -150
  135. package/lib/ps/connected-domain.mjs +2 -3
  136. package/lib/ps/index.cjs +3 -3
  137. package/lib/ps/index.d.mjs +1 -2
  138. package/lib/ps/index.d.ts +2 -26
  139. package/lib/ps/index.js +233 -535
  140. package/lib/ps/index.mjs +9 -11
  141. package/lib/ps/isWin.cjs +0 -0
  142. package/lib/ps/isWin.d.ts +1 -2
  143. package/lib/ps/isWin.js +1 -2
  144. package/lib/ps/isWin.mjs +2 -3
  145. package/lib/ps/table-parser.cjs +0 -0
  146. package/lib/ps/table-parser.d.ts +1 -3
  147. package/lib/ps/table-parser.js +254 -345
  148. package/lib/ps/table-parser.mjs +3 -4
  149. package/lib/submodule-install.cjs +100 -0
  150. package/lib/submodule-install.d.cts +2 -0
  151. package/lib/submodule-install.d.mts +121 -0
  152. package/lib/submodule-install.d.ts +121 -0
  153. package/lib/submodule-install.mjs +107 -0
  154. package/lib/utils.cjs +98 -14
  155. package/lib/utils.d.mts +29 -9
  156. package/lib/utils.d.ts +30 -14
  157. package/lib/utils.js +173 -27
  158. package/lib/utils.mjs +2 -3
  159. package/lib/yarn-reinstall.cjs +44 -0
  160. package/lib/yarn-reinstall.d.cts +1 -0
  161. package/lib/yarn-reinstall.d.mts +49 -0
  162. package/lib/yarn-reinstall.d.ts +49 -0
  163. package/lib/yarn-reinstall.mjs +54 -0
  164. package/package.json +126 -99
  165. package/readme.md +238 -50
  166. package/src/package-resolutions-updater.mjs +325 -0
  167. package/src/print-directory-tree.cjs +234 -0
  168. package/src/ps/index.js +4 -3
  169. package/src/yarn-reinstall.cjs +49 -0
  170. package/test-project/package.json +16 -0
  171. package/tmp/test-repo/package.json +7 -0
  172. package/bin/git-fix-encoding.cmd +0 -6
  173. package/eslint.config.cjs +0 -97
  174. package/lib/chunk-7MSZ52XC.mjs +0 -14
  175. package/lib/chunk-AVDT32AY.mjs +0 -20
  176. package/lib/chunk-LPLPQBYP.mjs +0 -53
  177. package/lib/chunk-S4SJ7SDW.mjs +0 -625
  178. package/lib/package-resolutions.cjs +0 -28
  179. package/lib/package-resolutions.d.mts +0 -25
  180. package/lib/package-resolutions.d.ts +0 -25
  181. package/lib/package-resolutions.js +0 -28
  182. package/lib/package-resolutions.mjs +0 -31
  183. package/lib/ps/index.d.js +0 -17
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var _a, _b;
4
+ const { isGitRepository } = require("./git/utils.cjs");
5
+ const { forceLfLineEndings } = require("./git/line-endings.cjs");
6
+ const { ignoreFilePermissions } = require("./git/permissions.cjs");
7
+ const { setPullStrategy } = require("./git/pull-strategy.cjs");
8
+ const { configureGitUser } = require("./git/user-config.cjs");
9
+ const { normalizeLineEndings } = require("./git/normalize.cjs");
10
+ const { getArgs } = require("./utils.js");
11
+ const path = require("upath");
12
+ function showHelp() {
13
+ console.log("Git Fix Utility");
14
+ console.log("----------------------------");
15
+ console.log("Fixes common Git configuration issues:");
16
+ console.log("• Forces LF line endings (core.autocrlf = false)");
17
+ console.log("• Ignores file permission changes (core.filemode = false)");
18
+ console.log("• Sets pull strategy to false (prevents auto-rebase)");
19
+ console.log("• Normalizes existing line endings");
20
+ console.log("• Configures Git user from environment variables");
21
+ console.log("");
22
+ console.log("Usage:");
23
+ console.log(" git-fix Apply all fixes");
24
+ console.log(" git-fix --lf-only Force LF line endings only");
25
+ console.log(" git-fix --permissions Ignore file permissions only");
26
+ console.log(" git-fix --normalize Normalize existing files only");
27
+ console.log(" git-fix --user Configure Git user from environment");
28
+ console.log(" git-fix --user NAME EMAIL Configure Git user with specified name and email");
29
+ console.log(" git-fix --help | -h Show this help message");
30
+ console.log("");
31
+ console.log("Options can be combined: git-fix --lf-only --permissions");
32
+ console.log("");
33
+ console.log("User configuration precedence:");
34
+ console.log(" 1. CLI arguments (--user NAME EMAIL)");
35
+ console.log(" 2. Environment variables (GITHUB_USER, GITHUB_EMAIL)");
36
+ console.log(" 3. Skip if neither provided");
37
+ console.log("");
38
+ console.log("Environment variables for --user option:");
39
+ console.log(" GITHUB_USER - Git username (for user.name)");
40
+ console.log(" GITHUB_EMAIL - Git email (for user.email)");
41
+ process.exit(0);
42
+ }
43
+ const args = getArgs();
44
+ let userConfig = { hasUserFlag: false, cliUser: null, cliEmail: null };
45
+ if (Object.prototype.hasOwnProperty.call(args, "user")) {
46
+ userConfig.hasUserFlag = true;
47
+ // args.user can be string, array, or boolean
48
+ if (Array.isArray(args.user)) {
49
+ if (args.user.length === 2) {
50
+ userConfig.cliUser = args.user[0];
51
+ userConfig.cliEmail = args.user[1];
52
+ }
53
+ else if (args.user.length === 1) {
54
+ // Only one value provided, error
55
+ console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
56
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
57
+ process.exit(1);
58
+ }
59
+ // If length === 0, treat as env
60
+ }
61
+ else if (typeof args.user === "string") {
62
+ // Only one value provided, error
63
+ console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
64
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
65
+ process.exit(1);
66
+ }
67
+ }
68
+ // Show help if requested
69
+ if (args.help || args.h) {
70
+ showHelp();
71
+ process.exit(0); // Exit after showing help
72
+ }
73
+ console.log("[i] Current working directory:", path.toUnix(process.cwd()));
74
+ // Check if we're in a git repository
75
+ if (!isGitRepository(process.cwd())) {
76
+ console.error("[✗] Error: Not in a git repository");
77
+ console.error("Please run this command from within a git repository");
78
+ process.exit(1);
79
+ }
80
+ else {
81
+ console.log("[✓] Detected git repository");
82
+ }
83
+ console.log("Git Fix Utility");
84
+ console.log("===============");
85
+ // Parse options
86
+ const options = {
87
+ lfOnly: args["lf-only"] === true,
88
+ permissions: args["permissions"] === true,
89
+ normalize: args["normalize"] === true,
90
+ user: userConfig.hasUserFlag,
91
+ updateRemote: args["update-remote"] === true,
92
+ all: Object.keys(args).filter((k) => k !== "_" && args[k] === true).length === 0 && !userConfig.hasUserFlag
93
+ };
94
+ // Execute requested fixes
95
+ if (options.all || options.lfOnly) {
96
+ forceLfLineEndings();
97
+ }
98
+ if (options.all || options.permissions) {
99
+ ignoreFilePermissions();
100
+ }
101
+ if (options.all) {
102
+ setPullStrategy();
103
+ }
104
+ if (options.all || options.user) {
105
+ configureGitUser(userConfig.cliUser, userConfig.cliEmail, { updateRemote: options.updateRemote });
106
+ }
107
+ else if (options.updateRemote) {
108
+ // If --update-remote is present without --user or --all, still call configureGitUser
109
+ configureGitUser(null, null, { updateRemote: true });
110
+ }
111
+ if (options.all || options.normalize) {
112
+ normalizeLineEndings();
113
+ }
114
+ console.log("\n=== Summary ===");
115
+ console.log("[✓] Git fix utility completed successfully");
116
+ if (options.all || options.lfOnly || options.normalize) {
117
+ console.log("[i] Line endings are now configured for LF");
118
+ }
119
+ if (options.all || options.permissions) {
120
+ console.log("[i] File permission changes will be ignored");
121
+ }
122
+ if (options.all || options.user) {
123
+ const username = userConfig.cliUser || ((_a = process.env.GITHUB_USER) === null || _a === void 0 ? void 0 : _a.trim());
124
+ const email = userConfig.cliEmail || ((_b = process.env.GITHUB_EMAIL) === null || _b === void 0 ? void 0 : _b.trim());
125
+ if (username || email) {
126
+ console.log("[i] Git user configuration has been applied");
127
+ }
128
+ }
129
+ console.log("[i] Repository is ready for cross-platform development");
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env node
2
+ const { isGitRepository } = require("./git/utils.cjs");
3
+ const { forceLfLineEndings } = require("./git/line-endings.cjs");
4
+ const { ignoreFilePermissions } = require("./git/permissions.cjs");
5
+ const { setPullStrategy } = require("./git/pull-strategy.cjs");
6
+ const { configureGitUser } = require("./git/user-config.cjs");
7
+ const { normalizeLineEndings } = require("./git/normalize.cjs");
8
+ const { getArgs } = require("./utils.js");
9
+ const path = require("upath");
10
+
11
+ function showHelp() {
12
+ console.log("Git Fix Utility");
13
+ console.log("----------------------------");
14
+ console.log("Fixes common Git configuration issues:");
15
+ console.log("• Forces LF line endings (core.autocrlf = false)");
16
+ console.log("• Ignores file permission changes (core.filemode = false)");
17
+ console.log("• Sets pull strategy to false (prevents auto-rebase)");
18
+ console.log("• Normalizes existing line endings");
19
+ console.log("• Configures Git user from environment variables");
20
+ console.log("");
21
+ console.log("Usage:");
22
+ console.log(" git-fix Apply all fixes");
23
+ console.log(" git-fix --lf-only Force LF line endings only");
24
+ console.log(" git-fix --permissions Ignore file permissions only");
25
+ console.log(" git-fix --normalize Normalize existing files only");
26
+ console.log(" git-fix --user Configure Git user from environment");
27
+ console.log(" git-fix --user NAME EMAIL Configure Git user with specified name and email");
28
+ console.log(" git-fix --help | -h Show this help message");
29
+ console.log("");
30
+ console.log("Options can be combined: git-fix --lf-only --permissions");
31
+ console.log("");
32
+ console.log("User configuration precedence:");
33
+ console.log(" 1. CLI arguments (--user NAME EMAIL)");
34
+ console.log(" 2. Environment variables (GITHUB_USER, GITHUB_EMAIL)");
35
+ console.log(" 3. Skip if neither provided");
36
+ console.log("");
37
+ console.log("Environment variables for --user option:");
38
+ console.log(" GITHUB_USER - Git username (for user.name)");
39
+ console.log(" GITHUB_EMAIL - Git email (for user.email)");
40
+ process.exit(0);
41
+ }
42
+
43
+ const args = getArgs();
44
+
45
+ let userConfig = { hasUserFlag: false, cliUser: null, cliEmail: null };
46
+ if (Object.prototype.hasOwnProperty.call(args, "user")) {
47
+ userConfig.hasUserFlag = true;
48
+ // args.user can be string, array, or boolean
49
+ if (Array.isArray(args.user)) {
50
+ if (args.user.length === 2) {
51
+ userConfig.cliUser = args.user[0];
52
+ userConfig.cliEmail = args.user[1];
53
+ } else if (args.user.length === 1) {
54
+ // Only one value provided, error
55
+ console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
56
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
57
+ process.exit(1);
58
+ }
59
+ // If length === 0, treat as env
60
+ } else if (typeof args.user === "string") {
61
+ // Only one value provided, error
62
+ console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
63
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
64
+ process.exit(1);
65
+ }
66
+ }
67
+
68
+ // Show help if requested
69
+ if (args.help || args.h) {
70
+ showHelp();
71
+ process.exit(0); // Exit after showing help
72
+ }
73
+
74
+ console.log("[i] Current working directory:", path.toUnix(process.cwd()));
75
+
76
+ // Check if we're in a git repository
77
+ if (!isGitRepository(process.cwd())) {
78
+ console.error("[✗] Error: Not in a git repository");
79
+ console.error("Please run this command from within a git repository");
80
+ process.exit(1);
81
+ } else {
82
+ console.log("[✓] Detected git repository");
83
+ }
84
+
85
+ console.log("Git Fix Utility");
86
+ console.log("===============");
87
+
88
+ // Parse options
89
+ const options = {
90
+ lfOnly: args["lf-only"] === true,
91
+ permissions: args["permissions"] === true,
92
+ normalize: args["normalize"] === true,
93
+ user: userConfig.hasUserFlag,
94
+ updateRemote: args["update-remote"] === true,
95
+ all: Object.keys(args).filter((k) => k !== "_" && args[k] === true).length === 0 && !userConfig.hasUserFlag
96
+ };
97
+
98
+ // Execute requested fixes
99
+ if (options.all || options.lfOnly) {
100
+ forceLfLineEndings();
101
+ }
102
+
103
+ if (options.all || options.permissions) {
104
+ ignoreFilePermissions();
105
+ }
106
+
107
+ if (options.all) {
108
+ setPullStrategy();
109
+ }
110
+
111
+ if (options.all || options.user) {
112
+ configureGitUser(userConfig.cliUser, userConfig.cliEmail, { updateRemote: options.updateRemote });
113
+ } else if (options.updateRemote) {
114
+ // If --update-remote is present without --user or --all, still call configureGitUser
115
+ configureGitUser(null, null, { updateRemote: true });
116
+ }
117
+
118
+ if (options.all || options.normalize) {
119
+ normalizeLineEndings();
120
+ }
121
+
122
+ console.log("\n=== Summary ===");
123
+ console.log("[✓] Git fix utility completed successfully");
124
+
125
+ if (options.all || options.lfOnly || options.normalize) {
126
+ console.log("[i] Line endings are now configured for LF");
127
+ }
128
+
129
+ if (options.all || options.permissions) {
130
+ console.log("[i] File permission changes will be ignored");
131
+ }
132
+
133
+ if (options.all || options.user) {
134
+ const username = userConfig.cliUser || process.env.GITHUB_USER?.trim();
135
+ const email = userConfig.cliEmail || process.env.GITHUB_EMAIL?.trim();
136
+ if (username || email) {
137
+ console.log("[i] Git user configuration has been applied");
138
+ }
139
+ }
140
+
141
+ console.log("[i] Repository is ready for cross-platform development");
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env node
2
+ const { isGitRepository } = require("./git/utils.cjs");
3
+ const { forceLfLineEndings } = require("./git/line-endings.cjs");
4
+ const { ignoreFilePermissions } = require("./git/permissions.cjs");
5
+ const { setPullStrategy } = require("./git/pull-strategy.cjs");
6
+ const { configureGitUser } = require("./git/user-config.cjs");
7
+ const { normalizeLineEndings } = require("./git/normalize.cjs");
8
+ const { getArgs } = require("./utils.js");
9
+ const path = require("upath");
10
+
11
+ function showHelp() {
12
+ console.log("Git Fix Utility");
13
+ console.log("----------------------------");
14
+ console.log("Fixes common Git configuration issues:");
15
+ console.log("• Forces LF line endings (core.autocrlf = false)");
16
+ console.log("• Ignores file permission changes (core.filemode = false)");
17
+ console.log("• Sets pull strategy to false (prevents auto-rebase)");
18
+ console.log("• Normalizes existing line endings");
19
+ console.log("• Configures Git user from environment variables");
20
+ console.log("");
21
+ console.log("Usage:");
22
+ console.log(" git-fix Apply all fixes");
23
+ console.log(" git-fix --lf-only Force LF line endings only");
24
+ console.log(" git-fix --permissions Ignore file permissions only");
25
+ console.log(" git-fix --normalize Normalize existing files only");
26
+ console.log(" git-fix --user Configure Git user from environment");
27
+ console.log(" git-fix --user NAME EMAIL Configure Git user with specified name and email");
28
+ console.log(" git-fix --help | -h Show this help message");
29
+ console.log("");
30
+ console.log("Options can be combined: git-fix --lf-only --permissions");
31
+ console.log("");
32
+ console.log("User configuration precedence:");
33
+ console.log(" 1. CLI arguments (--user NAME EMAIL)");
34
+ console.log(" 2. Environment variables (GITHUB_USER, GITHUB_EMAIL)");
35
+ console.log(" 3. Skip if neither provided");
36
+ console.log("");
37
+ console.log("Environment variables for --user option:");
38
+ console.log(" GITHUB_USER - Git username (for user.name)");
39
+ console.log(" GITHUB_EMAIL - Git email (for user.email)");
40
+ process.exit(0);
41
+ }
42
+
43
+ const args = getArgs();
44
+
45
+ let userConfig = { hasUserFlag: false, cliUser: null, cliEmail: null };
46
+ if (Object.prototype.hasOwnProperty.call(args, "user")) {
47
+ userConfig.hasUserFlag = true;
48
+ // args.user can be string, array, or boolean
49
+ if (Array.isArray(args.user)) {
50
+ if (args.user.length === 2) {
51
+ userConfig.cliUser = args.user[0];
52
+ userConfig.cliEmail = args.user[1];
53
+ } else if (args.user.length === 1) {
54
+ // Only one value provided, error
55
+ console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
56
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
57
+ process.exit(1);
58
+ }
59
+ // If length === 0, treat as env
60
+ } else if (typeof args.user === "string") {
61
+ // Only one value provided, error
62
+ console.error("[✗] Error: --user requires both NAME and EMAIL or no arguments");
63
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
64
+ process.exit(1);
65
+ }
66
+ }
67
+
68
+ // Show help if requested
69
+ if (args.help || args.h) {
70
+ showHelp();
71
+ process.exit(0); // Exit after showing help
72
+ }
73
+
74
+ console.log("[i] Current working directory:", path.toUnix(process.cwd()));
75
+
76
+ // Check if we're in a git repository
77
+ if (!isGitRepository(process.cwd())) {
78
+ console.error("[✗] Error: Not in a git repository");
79
+ console.error("Please run this command from within a git repository");
80
+ process.exit(1);
81
+ } else {
82
+ console.log("[✓] Detected git repository");
83
+ }
84
+
85
+ console.log("Git Fix Utility");
86
+ console.log("===============");
87
+
88
+ // Parse options
89
+ const options = {
90
+ lfOnly: args["lf-only"] === true,
91
+ permissions: args["permissions"] === true,
92
+ normalize: args["normalize"] === true,
93
+ user: userConfig.hasUserFlag,
94
+ updateRemote: args["update-remote"] === true,
95
+ all: Object.keys(args).filter((k) => k !== "_" && args[k] === true).length === 0 && !userConfig.hasUserFlag
96
+ };
97
+
98
+ // Execute requested fixes
99
+ if (options.all || options.lfOnly) {
100
+ forceLfLineEndings();
101
+ }
102
+
103
+ if (options.all || options.permissions) {
104
+ ignoreFilePermissions();
105
+ }
106
+
107
+ if (options.all) {
108
+ setPullStrategy();
109
+ }
110
+
111
+ if (options.all || options.user) {
112
+ configureGitUser(userConfig.cliUser, userConfig.cliEmail, { updateRemote: options.updateRemote });
113
+ } else if (options.updateRemote) {
114
+ // If --update-remote is present without --user or --all, still call configureGitUser
115
+ configureGitUser(null, null, { updateRemote: true });
116
+ }
117
+
118
+ if (options.all || options.normalize) {
119
+ normalizeLineEndings();
120
+ }
121
+
122
+ console.log("\n=== Summary ===");
123
+ console.log("[✓] Git fix utility completed successfully");
124
+
125
+ if (options.all || options.lfOnly || options.normalize) {
126
+ console.log("[i] Line endings are now configured for LF");
127
+ }
128
+
129
+ if (options.all || options.permissions) {
130
+ console.log("[i] File permission changes will be ignored");
131
+ }
132
+
133
+ if (options.all || options.user) {
134
+ const username = userConfig.cliUser || process.env.GITHUB_USER?.trim();
135
+ const email = userConfig.cliEmail || process.env.GITHUB_EMAIL?.trim();
136
+ if (username || email) {
137
+ console.log("[i] Git user configuration has been applied");
138
+ }
139
+ }
140
+
141
+ console.log("[i] Repository is ready for cross-platform development");
@@ -0,0 +1,151 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
3
+ import {
4
+ require_user_config
5
+ } from "./chunk-ONIBBBQ3.mjs";
6
+ import {
7
+ require_line_endings
8
+ } from "./chunk-VVEZVNIV.mjs";
9
+ import "./chunk-JGR2NW6D.mjs";
10
+ import {
11
+ require_normalize
12
+ } from "./chunk-YV7DO3YV.mjs";
13
+ import {
14
+ require_permissions
15
+ } from "./chunk-ZYAQRPUL.mjs";
16
+ import {
17
+ require_pull_strategy
18
+ } from "./chunk-SH3L6HHV.mjs";
19
+ import {
20
+ require_utils as require_utils2
21
+ } from "./chunk-EGSSKVDH.mjs";
22
+ import {
23
+ require_utils
24
+ } from "./chunk-APBWENF6.mjs";
25
+ import {
26
+ __commonJS,
27
+ __require,
28
+ init_esm_shims
29
+ } from "./chunk-AASHBCRW.mjs";
30
+
31
+ // src/git-fix.cjs
32
+ var require_git_fix = __commonJS({
33
+ "src/git-fix.cjs"() {
34
+ init_esm_shims();
35
+ var { isGitRepository } = require_utils2();
36
+ var { forceLfLineEndings } = require_line_endings();
37
+ var { ignoreFilePermissions } = require_permissions();
38
+ var { setPullStrategy } = require_pull_strategy();
39
+ var { configureGitUser } = require_user_config();
40
+ var { normalizeLineEndings } = require_normalize();
41
+ var { getArgs } = require_utils();
42
+ var path = __require("upath");
43
+ function showHelp() {
44
+ console.log("Git Fix Utility");
45
+ console.log("----------------------------");
46
+ console.log("Fixes common Git configuration issues:");
47
+ console.log("\u2022 Forces LF line endings (core.autocrlf = false)");
48
+ console.log("\u2022 Ignores file permission changes (core.filemode = false)");
49
+ console.log("\u2022 Sets pull strategy to false (prevents auto-rebase)");
50
+ console.log("\u2022 Normalizes existing line endings");
51
+ console.log("\u2022 Configures Git user from environment variables");
52
+ console.log("");
53
+ console.log("Usage:");
54
+ console.log(" git-fix Apply all fixes");
55
+ console.log(" git-fix --lf-only Force LF line endings only");
56
+ console.log(" git-fix --permissions Ignore file permissions only");
57
+ console.log(" git-fix --normalize Normalize existing files only");
58
+ console.log(" git-fix --user Configure Git user from environment");
59
+ console.log(" git-fix --user NAME EMAIL Configure Git user with specified name and email");
60
+ console.log(" git-fix --help | -h Show this help message");
61
+ console.log("");
62
+ console.log("Options can be combined: git-fix --lf-only --permissions");
63
+ console.log("");
64
+ console.log("User configuration precedence:");
65
+ console.log(" 1. CLI arguments (--user NAME EMAIL)");
66
+ console.log(" 2. Environment variables (GITHUB_USER, GITHUB_EMAIL)");
67
+ console.log(" 3. Skip if neither provided");
68
+ console.log("");
69
+ console.log("Environment variables for --user option:");
70
+ console.log(" GITHUB_USER - Git username (for user.name)");
71
+ console.log(" GITHUB_EMAIL - Git email (for user.email)");
72
+ process.exit(0);
73
+ }
74
+ var args = getArgs();
75
+ var userConfig = { hasUserFlag: false, cliUser: null, cliEmail: null };
76
+ if (Object.prototype.hasOwnProperty.call(args, "user")) {
77
+ userConfig.hasUserFlag = true;
78
+ if (Array.isArray(args.user)) {
79
+ if (args.user.length === 2) {
80
+ userConfig.cliUser = args.user[0];
81
+ userConfig.cliEmail = args.user[1];
82
+ } else if (args.user.length === 1) {
83
+ console.error("[\u2717] Error: --user requires both NAME and EMAIL or no arguments");
84
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
85
+ process.exit(1);
86
+ }
87
+ } else if (typeof args.user === "string") {
88
+ console.error("[\u2717] Error: --user requires both NAME and EMAIL or no arguments");
89
+ console.error("Usage: --user (uses environment variables) or --user NAME EMAIL");
90
+ process.exit(1);
91
+ }
92
+ }
93
+ if (args.help || args.h) {
94
+ showHelp();
95
+ process.exit(0);
96
+ }
97
+ console.log("[i] Current working directory:", path.toUnix(process.cwd()));
98
+ if (!isGitRepository(process.cwd())) {
99
+ console.error("[\u2717] Error: Not in a git repository");
100
+ console.error("Please run this command from within a git repository");
101
+ process.exit(1);
102
+ } else {
103
+ console.log("[\u2713] Detected git repository");
104
+ }
105
+ console.log("Git Fix Utility");
106
+ console.log("===============");
107
+ var options = {
108
+ lfOnly: args["lf-only"] === true,
109
+ permissions: args["permissions"] === true,
110
+ normalize: args["normalize"] === true,
111
+ user: userConfig.hasUserFlag,
112
+ updateRemote: args["update-remote"] === true,
113
+ all: Object.keys(args).filter((k) => k !== "_" && args[k] === true).length === 0 && !userConfig.hasUserFlag
114
+ };
115
+ if (options.all || options.lfOnly) {
116
+ forceLfLineEndings();
117
+ }
118
+ if (options.all || options.permissions) {
119
+ ignoreFilePermissions();
120
+ }
121
+ if (options.all) {
122
+ setPullStrategy();
123
+ }
124
+ if (options.all || options.user) {
125
+ configureGitUser(userConfig.cliUser, userConfig.cliEmail, { updateRemote: options.updateRemote });
126
+ } else if (options.updateRemote) {
127
+ configureGitUser(null, null, { updateRemote: true });
128
+ }
129
+ if (options.all || options.normalize) {
130
+ normalizeLineEndings();
131
+ }
132
+ console.log("\n=== Summary ===");
133
+ console.log("[\u2713] Git fix utility completed successfully");
134
+ if (options.all || options.lfOnly || options.normalize) {
135
+ console.log("[i] Line endings are now configured for LF");
136
+ }
137
+ if (options.all || options.permissions) {
138
+ console.log("[i] File permission changes will be ignored");
139
+ }
140
+ var _a, _b;
141
+ if (options.all || options.user) {
142
+ const username = userConfig.cliUser || ((_a = process.env.GITHUB_USER) == null ? void 0 : _a.trim());
143
+ const email = userConfig.cliEmail || ((_b = process.env.GITHUB_EMAIL) == null ? void 0 : _b.trim());
144
+ if (username || email) {
145
+ console.log("[i] Git user configuration has been applied");
146
+ }
147
+ }
148
+ console.log("[i] Repository is ready for cross-platform development");
149
+ }
150
+ });
151
+ export default require_git_fix();