binary-collections 2.0.11 → 2.0.12

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 (225) hide show
  1. package/.opencode/package.json +5 -0
  2. package/binaries/rmx +15 -1
  3. package/binaries/rmx.cmd +12 -0
  4. package/binaries/test-cjs +9 -1
  5. package/binaries/test-cjs.cmd +16 -1
  6. package/binaries/test-esm +16 -0
  7. package/binaries/test-esm.cjs +178 -0
  8. package/binaries/test-esm.cmd +23 -0
  9. package/binaries/yarn-clean +1 -1
  10. package/binaries/yarn-clean.cmd +1 -1
  11. package/binaries/yarn-clean.py +33 -15
  12. package/binaries/yc +110 -0
  13. package/binaries/yc.cjs +178 -0
  14. package/lib/binary-collections/config.cjs +126 -0
  15. package/lib/binary-collections/config.mjs +7 -0
  16. package/lib/binary-collections/executeScript.cjs +19 -0
  17. package/lib/binary-collections/executeScript.d.cts +12 -0
  18. package/lib/binary-collections/executeScript.mjs +6 -0
  19. package/lib/binary-collections/findScript.cjs +284 -0
  20. package/lib/binary-collections/findScript.d.cts +12 -0
  21. package/lib/binary-collections/findScript.mjs +7 -0
  22. package/lib/binary-collections/listScript.cjs +266 -0
  23. package/lib/binary-collections/listScript.d.cts +19 -0
  24. package/lib/binary-collections/listScript.mjs +7 -0
  25. package/lib/binary-collections.cjs +224 -137
  26. package/lib/binary-collections.mjs +22 -282
  27. package/lib/changelog.cjs +2 -2
  28. package/lib/changelog.mjs +1 -1
  29. package/lib/{chunk-AJDD5DZM.mjs → chunk-2LSRSEXF.mjs} +1 -1
  30. package/lib/{chunk-Z6JLYU2J.mjs → chunk-5RTXZVCW.mjs} +2 -2
  31. package/lib/{chunk-XA3SNBPA.mjs → chunk-66KDU4TX.mjs} +93 -9
  32. package/lib/chunk-6PU7BAHB.mjs +61 -0
  33. package/lib/chunk-C6D2TTYU.mjs +32 -0
  34. package/lib/chunk-FB2WKVJD.mjs +158 -0
  35. package/lib/{chunk-NCXAP7AA.mjs → chunk-G5UUEWUO.mjs} +9 -5
  36. package/lib/{chunk-N436BNBK.mjs → chunk-GAGABICI.mjs} +19 -13
  37. package/lib/chunk-H44UWUFY.mjs +105 -0
  38. package/lib/chunk-NCZPTKDV.mjs +79 -0
  39. package/lib/chunk-NGFK3EYW.mjs +28 -0
  40. package/lib/chunk-NVEG3LEZ.mjs +143 -0
  41. package/lib/chunk-OGXVGBRI.mjs +29 -0
  42. package/lib/chunk-OXV52GD5.mjs +62 -0
  43. package/lib/chunk-PXBMHE7O.mjs +35 -0
  44. package/lib/chunk-R5FJOR63.mjs +47 -0
  45. package/lib/chunk-SPTECFE5.mjs +180 -0
  46. package/lib/chunk-UXCFNAR6.mjs +55 -0
  47. package/lib/chunk-V2IBPCEV.mjs +39 -0
  48. package/lib/chunk-XPJGCDOD.mjs +14 -0
  49. package/lib/chunk-ZOWVMII3.mjs +228 -0
  50. package/lib/clean-github-actions-caches-cli.cjs +465 -0
  51. package/lib/clean-github-actions-caches-cli.d.cts +1 -0
  52. package/lib/clean-github-actions-caches-cli.mjs +56 -0
  53. package/lib/clean-github-actions-caches.cjs +149 -205
  54. package/lib/clean-github-actions-caches.d.cts +15 -1
  55. package/lib/clean-github-actions-caches.mjs +4 -130
  56. package/lib/cross-env/command.cjs +63 -0
  57. package/lib/cross-env/command.d.ts +8 -0
  58. package/lib/cross-env/command.js +45 -0
  59. package/lib/cross-env/command.mjs +9 -0
  60. package/lib/cross-env/index.cjs +178 -0
  61. package/lib/cross-env/index.d.ts +8 -0
  62. package/lib/cross-env/index.js +102 -0
  63. package/lib/cross-env/index.mjs +101 -0
  64. package/lib/cross-env/variable.cjs +60 -0
  65. package/lib/cross-env/variable.d.ts +7 -0
  66. package/lib/cross-env/variable.js +59 -0
  67. package/lib/cross-env/variable.mjs +9 -0
  68. package/lib/del-gradle.cjs +2 -2
  69. package/lib/del-gradle.js +8 -8
  70. package/lib/del-gradle.mjs +1 -1
  71. package/lib/del-node-modules.js +24 -24
  72. package/lib/del-ps.cjs +2 -2
  73. package/lib/del-ps.js +8 -8
  74. package/lib/del-ps.mjs +1 -1
  75. package/lib/del-yarn-caches.cjs +2 -2
  76. package/lib/del-yarn-caches.js +2 -2
  77. package/lib/del-yarn-caches.mjs +1 -1
  78. package/lib/file/copy-cli.cjs +92 -0
  79. package/lib/file/copy-cli.d.mts +1 -0
  80. package/lib/file/copy-cli.mjs +55 -0
  81. package/lib/file/copy.cjs +56 -0
  82. package/lib/file/copy.d.mts +1 -0
  83. package/lib/file/copy.mjs +8 -0
  84. package/lib/file/move-cli.cjs +91 -0
  85. package/lib/file/move-cli.d.mts +1 -0
  86. package/lib/file/move-cli.mjs +55 -0
  87. package/lib/file/move.cjs +55 -0
  88. package/lib/file/move.d.mts +1 -0
  89. package/lib/file/move.mjs +8 -0
  90. package/lib/find-node-modules-cli.js +1 -1
  91. package/lib/free-chatgpt.cjs +21 -15
  92. package/lib/free-chatgpt.js +10 -10
  93. package/lib/free-chatgpt.mjs +2 -2
  94. package/lib/git/user-config.cjs +2 -2
  95. package/lib/git/user-config.mjs +2 -2
  96. package/lib/git-diff-cli.cjs +188 -42
  97. package/lib/git-diff-cli.mjs +5 -4
  98. package/lib/git-diff.cjs +188 -42
  99. package/lib/git-diff.d.ts +2 -1
  100. package/lib/git-diff.js +91 -34
  101. package/lib/git-diff.mjs +5 -4
  102. package/lib/git-fix.cjs +2 -2
  103. package/lib/git-fix.mjs +2 -2
  104. package/lib/git-purge.cjs +2 -2
  105. package/lib/git-purge.mjs +1 -1
  106. package/lib/index.d.ts +1 -1
  107. package/lib/kill-night-crows.cjs +7 -7
  108. package/lib/kill-night-crows.mjs +7 -7
  109. package/lib/node-cache-cleaner/npm.cjs +65 -0
  110. package/lib/node-cache-cleaner/npm.d.ts +2 -0
  111. package/lib/node-cache-cleaner/npm.js +41 -0
  112. package/lib/node-cache-cleaner/npm.mjs +10 -0
  113. package/lib/node-cache-cleaner/npx.cjs +89 -0
  114. package/lib/node-cache-cleaner/npx.d.ts +4 -0
  115. package/lib/node-cache-cleaner/npx.js +82 -0
  116. package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
  117. package/lib/node-cache-cleaner/yarn.cjs +73 -0
  118. package/lib/node-cache-cleaner/yarn.d.ts +2 -0
  119. package/lib/node-cache-cleaner/yarn.js +62 -0
  120. package/lib/node-cache-cleaner/yarn.mjs +10 -0
  121. package/lib/node-cache-cleaner-cli.cjs +182 -0
  122. package/lib/node-cache-cleaner-cli.d.ts +2 -0
  123. package/lib/node-cache-cleaner-cli.js +60 -0
  124. package/lib/node-cache-cleaner-cli.mjs +56 -0
  125. package/lib/node-executor.cjs +91 -0
  126. package/lib/node-executor.d.cts +2 -0
  127. package/lib/node-executor.mjs +103 -0
  128. package/lib/npm-run-series.cjs +21 -28
  129. package/lib/npm-run-series.mjs +20 -6
  130. package/lib/package-resolutions-updater-cli.cjs +213 -128
  131. package/lib/package-resolutions-updater-cli.mjs +17 -39
  132. package/lib/package-resolutions-updater.cjs +204 -98
  133. package/lib/package-resolutions-updater.d.mts +20 -1
  134. package/lib/package-resolutions-updater.mjs +7 -5
  135. package/lib/print-directory-tree.cjs +2 -2
  136. package/lib/print-directory-tree.mjs +1 -1
  137. package/lib/ps/connected-domain.js +10 -10
  138. package/lib/ps/index.cjs +1 -1
  139. package/lib/ps/index.mjs +177 -171
  140. package/lib/ps/isWin.js +1 -1
  141. package/lib/ps/table-parser.js +6 -6
  142. package/lib/remove-module.cjs +2 -2
  143. package/lib/remove-module.mjs +1 -1
  144. package/lib/rm-node-module-cli.cjs +222 -0
  145. package/lib/rm-node-module-cli.d.cts +1 -0
  146. package/lib/rm-node-module-cli.mjs +89 -0
  147. package/lib/rm-node-modules.cjs +127 -0
  148. package/lib/rm-node-modules.d.cts +35 -0
  149. package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
  150. package/lib/rmpath.cjs +2 -2
  151. package/lib/rmpath.mjs +1 -1
  152. package/lib/submodule-install.cjs +47 -34
  153. package/lib/submodule-install.mjs +46 -33
  154. package/lib/submodule-remove-cli.cjs +1 -2
  155. package/lib/submodule-remove-cli.js +3 -3
  156. package/lib/submodule-remove-cli.mjs +1 -2
  157. package/lib/utils/chatgpt.cjs +19 -13
  158. package/lib/utils/chatgpt.js +94 -94
  159. package/lib/utils/chatgpt.mjs +1 -1
  160. package/lib/utils/findEnvFiles.cjs +28 -46
  161. package/lib/utils/findEnvFiles.d.cts +19 -0
  162. package/lib/utils/findEnvFiles.mjs +3 -5
  163. package/lib/utils/findWorkspaceRoot.js +4 -4
  164. package/lib/utils/index.cjs +2 -2
  165. package/lib/utils/index.mjs +1 -1
  166. package/lib/utils/isGithubTokenValid.js +7 -7
  167. package/lib/{ps/index.d.cjs → utils/isWindows.cjs} +17 -3
  168. package/lib/utils/isWindows.d.ts +5 -0
  169. package/lib/utils/isWindows.js +10 -0
  170. package/lib/utils/isWindows.mjs +8 -0
  171. package/lib/utils/runBash.cjs +53 -0
  172. package/lib/utils/runBash.d.cts +12 -0
  173. package/lib/utils/runBash.mjs +66 -0
  174. package/lib/yarn-per-branch-lock-installer.cjs +97 -0
  175. package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
  176. package/lib/yarn-per-branch-lock-installer.mjs +109 -0
  177. package/lib/yarn-reinstall.cjs +2 -2
  178. package/lib/yarn-reinstall.mjs +1 -1
  179. package/package.json +61 -52
  180. package/readme.html +784 -0
  181. package/readme.md +106 -218
  182. package/releases/readme.md +1 -1
  183. package/test/README.md +2 -2
  184. package/test-project/package.json +8 -2
  185. package/test-project/workspaces/workspace-a/package.json +135 -0
  186. package/test-project/workspaces/workspace-a/readme.md +20 -0
  187. package/test-project/workspaces/workspace-a/release/readme.md +42 -0
  188. package/test-project/workspaces/workspace-a/test/demo/package.json +25 -0
  189. package/test-project/workspaces/workspace-a/test/readme.md +12 -0
  190. package/test-project/workspaces/workspace-b/package.json +139 -0
  191. package/test-project/workspaces/workspace-b/readme.md +94 -0
  192. package/test-project/workspaces/workspace-b/requirements.txt +1 -0
  193. package/test-project/workspaces/workspace-b/test/sample-project/package.json +7 -0
  194. package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/package.json +96 -0
  195. package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
  196. package/tmp/rm-node-modules-test-project/package.json +17 -0
  197. package/tmp/rm-node-modules-test-project/packages/workspace-a/package.json +16 -0
  198. package/tmp/rm-node-modules-test-project/packages/workspace-b/package.json +16 -0
  199. package/tmp/test-repo/README.md +2 -35
  200. package/tmp/test-repo/package.json +13 -3
  201. package/docs-src/clean-github-actions-caches.md +0 -26
  202. package/docs-src/free-chatgpt.md +0 -26
  203. package/lib/binary-collections-config.cjs +0 -15
  204. package/lib/chunk-2CBJCW7E.mjs +0 -81
  205. package/lib/chunk-4UHL4WVN.mjs +0 -136
  206. package/lib/chunk-66PAU5PS.mjs +0 -31
  207. package/lib/chunk-6HHJRKFB.mjs +0 -59
  208. package/lib/chunk-7XTEJHOE.mjs +0 -193
  209. package/lib/chunk-FCDQGYBF.mjs +0 -136
  210. package/lib/chunk-GEYA2USY.mjs +0 -207
  211. package/lib/chunk-GJTGHXRA.mjs +0 -356
  212. package/lib/chunk-ID2WBTE2.mjs +0 -80
  213. package/lib/chunk-JXFOHKDM.mjs +0 -239
  214. package/lib/chunk-PDSXF5HY.mjs +0 -187
  215. package/lib/chunk-RWLXRTYP.mjs +0 -109
  216. package/lib/chunk-TOIVAQF7.mjs +0 -136
  217. package/lib/chunk-V5SKYJUB.mjs +0 -136
  218. package/lib/chunk-WSRETQCA.mjs +0 -59
  219. package/lib/chunk-YYLIQQKF.mjs +0 -31
  220. package/lib/ps/index.d.ts +0 -2
  221. package/lib/ps/index.js +0 -254
  222. package/lib/utils/findEnvFiles.d.ts +0 -8
  223. package/lib/utils/findEnvFiles.js +0 -121
  224. package/tmp/typedoc/readme.md +0 -320
  225. /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env node
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+
25
+ // src/node-cache-cleaner-cli.ts
26
+ var import_minimist = __toESM(require("minimist"), 1);
27
+
28
+ // src/node-cache-cleaner/npm.ts
29
+ var import_cross_spawn = require("cross-spawn");
30
+ function cleanNpmCache() {
31
+ return new Promise((resolve, reject) => {
32
+ const process2 = (0, import_cross_spawn.spawn)("npm", ["cache", "clean", "--force"], {
33
+ stdio: "inherit",
34
+ shell: true
35
+ });
36
+ process2.on("close", (code) => {
37
+ if (code === 0) {
38
+ resolve(true);
39
+ } else {
40
+ reject(new Error(`NPM cache clean failed with exit code ${code}`));
41
+ }
42
+ });
43
+ });
44
+ }
45
+
46
+ // src/node-cache-cleaner/npx.ts
47
+ var import_fs_extra = __toESM(require("fs-extra"), 1);
48
+ var import_upath = __toESM(require("upath"), 1);
49
+ var import_os = __toESM(require("os"), 1);
50
+ var import_cross_spawn2 = require("cross-spawn");
51
+ function getNpmCacheDir() {
52
+ return new Promise((resolve, reject) => {
53
+ var _a, _b;
54
+ const child = (0, import_cross_spawn2.spawn)("npm", ["config", "get", "cache"], {
55
+ stdio: ["ignore", "pipe", "pipe"],
56
+ shell: true
57
+ });
58
+ let output = "";
59
+ let error = "";
60
+ (_a = child.stdout) == null ? void 0 : _a.on("data", (data) => {
61
+ output += data.toString();
62
+ });
63
+ (_b = child.stderr) == null ? void 0 : _b.on("data", (data) => {
64
+ error += data.toString();
65
+ });
66
+ child.on("close", (code) => {
67
+ if (code === 0) {
68
+ resolve(output.trim());
69
+ } else {
70
+ reject(new Error(`Failed to get npm cache directory (code ${code}): ${error}`));
71
+ }
72
+ });
73
+ });
74
+ }
75
+ async function removeDir(target) {
76
+ try {
77
+ const exists = await import_fs_extra.default.pathExists(target);
78
+ if (exists) {
79
+ console.log(`Removing: ${target}`);
80
+ await import_fs_extra.default.remove(target);
81
+ } else {
82
+ console.log(`Not found: ${target}`);
83
+ }
84
+ } catch (err) {
85
+ console.error(`Failed to remove ${target}:`, err);
86
+ }
87
+ }
88
+ async function cleanNpxCache() {
89
+ const cacheDir = await getNpmCacheDir();
90
+ console.log("Detected npm cache:", cacheDir);
91
+ console.log("\nCleaning npm/npx cache...\n");
92
+ const npxCache = import_upath.default.join(cacheDir, "_npx");
93
+ const npmCache = import_upath.default.join(cacheDir, "_cacache");
94
+ const altNpxLinux = import_upath.default.join(import_os.default.homedir(), ".cache", "npx");
95
+ await Promise.all([removeDir(npxCache), removeDir(npmCache), removeDir(altNpxLinux)]);
96
+ console.log("\nDone \u2714\uFE0F");
97
+ }
98
+
99
+ // src/node-cache-cleaner/yarn.ts
100
+ var import_cross_spawn3 = require("cross-spawn");
101
+ function yarnVersion() {
102
+ return new Promise((resolve, reject) => {
103
+ const process2 = (0, import_cross_spawn3.spawn)("yarn", ["--version"], {
104
+ stdio: "pipe",
105
+ shell: true
106
+ });
107
+ let version = "";
108
+ process2.stdout.on("data", (data) => {
109
+ version += data.toString();
110
+ });
111
+ process2.on("close", (code) => {
112
+ if (code === 0) {
113
+ resolve(version.trim());
114
+ } else {
115
+ reject(new Error(`Yarn version check failed with exit code ${code}`));
116
+ }
117
+ });
118
+ });
119
+ }
120
+ async function cleanYarnCache() {
121
+ let version = "";
122
+ try {
123
+ version = await yarnVersion();
124
+ } catch {
125
+ }
126
+ const major = parseInt(version.split(".")[0], 10);
127
+ const isClassic = major === 1 || version === "";
128
+ const args = isClassic ? ["cache", "clean"] : ["cache", "clean", "--all"];
129
+ return new Promise((resolve, reject) => {
130
+ const process2 = (0, import_cross_spawn3.spawn)("yarn", args, {
131
+ stdio: "inherit",
132
+ shell: true
133
+ });
134
+ process2.on("close", (code) => {
135
+ if (code === 0) {
136
+ resolve(true);
137
+ } else {
138
+ reject(new Error(`Yarn cache clean failed with exit code ${code}`));
139
+ }
140
+ });
141
+ });
142
+ }
143
+
144
+ // src/node-cache-cleaner-cli.ts
145
+ function printHelp() {
146
+ console.log(`
147
+ Usage: cache-cleaner [options]
148
+
149
+ Options:
150
+ -h, --help Show this help message
151
+
152
+ Description:
153
+ Cleans NPM, Yarn, and NPX caches in parallel.
154
+ `);
155
+ }
156
+ async function run() {
157
+ const argv = (0, import_minimist.default)(process.argv.slice(2), {
158
+ boolean: ["help"],
159
+ alias: {
160
+ h: "help"
161
+ },
162
+ default: {
163
+ help: false
164
+ }
165
+ });
166
+ if (argv.help) {
167
+ printHelp();
168
+ process.exit(0);
169
+ }
170
+ const results = await Promise.allSettled([cleanNpmCache(), cleanYarnCache(), cleanNpxCache()]);
171
+ const labels = ["NPM", "Yarn", "NPX"];
172
+ results.forEach((result, i) => {
173
+ if (result.status === "fulfilled") {
174
+ console.log(`${labels[i]} cache cleaned successfully.`);
175
+ } else {
176
+ console.error(`Error cleaning ${labels[i]} cache:`, result.reason);
177
+ }
178
+ });
179
+ const hasError = results.some((r) => r.status === "rejected");
180
+ process.exit(hasError ? 1 : 0);
181
+ }
182
+ run();
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const minimist_1 = __importDefault(require("minimist"));
17
+ const npm_1 = require("./node-cache-cleaner/npm");
18
+ const npx_1 = require("./node-cache-cleaner/npx");
19
+ const yarn_1 = require("./node-cache-cleaner/yarn");
20
+ function printHelp() {
21
+ console.log(`
22
+ Usage: cache-cleaner [options]
23
+
24
+ Options:
25
+ -h, --help Show this help message
26
+
27
+ Description:
28
+ Cleans NPM, Yarn, and NPX caches in parallel.
29
+ `);
30
+ }
31
+ function run() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const argv = (0, minimist_1.default)(process.argv.slice(2), {
34
+ boolean: ['help'],
35
+ alias: {
36
+ h: 'help'
37
+ },
38
+ default: {
39
+ help: false
40
+ }
41
+ });
42
+ if (argv.help) {
43
+ printHelp();
44
+ process.exit(0);
45
+ }
46
+ const results = yield Promise.allSettled([(0, npm_1.cleanNpmCache)(), (0, yarn_1.cleanYarnCache)(), (0, npx_1.cleanNpxCache)()]);
47
+ const labels = ['NPM', 'Yarn', 'NPX'];
48
+ results.forEach((result, i) => {
49
+ if (result.status === 'fulfilled') {
50
+ console.log(`${labels[i]} cache cleaned successfully.`);
51
+ }
52
+ else {
53
+ console.error(`Error cleaning ${labels[i]} cache:`, result.reason);
54
+ }
55
+ });
56
+ const hasError = results.some((r) => r.status === 'rejected');
57
+ process.exit(hasError ? 1 : 0);
58
+ });
59
+ }
60
+ run();
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
3
+ import {
4
+ cleanNpxCache
5
+ } from "./chunk-OXV52GD5.mjs";
6
+ import {
7
+ cleanYarnCache
8
+ } from "./chunk-UXCFNAR6.mjs";
9
+ import {
10
+ cleanNpmCache
11
+ } from "./chunk-R5FJOR63.mjs";
12
+ import {
13
+ init_esm_shims
14
+ } from "./chunk-QQ4A6DLD.mjs";
15
+
16
+ // src/node-cache-cleaner-cli.ts
17
+ init_esm_shims();
18
+ import minimist from "minimist";
19
+ function printHelp() {
20
+ console.log(`
21
+ Usage: cache-cleaner [options]
22
+
23
+ Options:
24
+ -h, --help Show this help message
25
+
26
+ Description:
27
+ Cleans NPM, Yarn, and NPX caches in parallel.
28
+ `);
29
+ }
30
+ async function run() {
31
+ const argv = minimist(process.argv.slice(2), {
32
+ boolean: ["help"],
33
+ alias: {
34
+ h: "help"
35
+ },
36
+ default: {
37
+ help: false
38
+ }
39
+ });
40
+ if (argv.help) {
41
+ printHelp();
42
+ process.exit(0);
43
+ }
44
+ const results = await Promise.allSettled([cleanNpmCache(), cleanYarnCache(), cleanNpxCache()]);
45
+ const labels = ["NPM", "Yarn", "NPX"];
46
+ results.forEach((result, i) => {
47
+ if (result.status === "fulfilled") {
48
+ console.log(`${labels[i]} cache cleaned successfully.`);
49
+ } else {
50
+ console.error(`Error cleaning ${labels[i]} cache:`, result.reason);
51
+ }
52
+ });
53
+ const hasError = results.some((r) => r.status === "rejected");
54
+ process.exit(hasError ? 1 : 0);
55
+ }
56
+ run();
@@ -0,0 +1,91 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/node-executor.cjs
4
+ var fs = require("fs-extra");
5
+ var path = require("upath");
6
+ var minimist = require("minimist");
7
+ var { spawn } = require("child_process");
8
+ var argv = minimist(process.argv.slice(2), {
9
+ boolean: ["help", "h"],
10
+ string: ["exit-code"],
11
+ alias: {
12
+ h: "help"
13
+ },
14
+ default: {
15
+ "exit-code": "1"
16
+ }
17
+ });
18
+ function getExitCode() {
19
+ const code = argv["exit-code"];
20
+ if (code === void 0) return 1;
21
+ const num = Number(code);
22
+ return Number.isNaN(num) ? 1 : num;
23
+ }
24
+ if (argv.help) {
25
+ console.log(`
26
+ Usage:
27
+ node run.js [options] <file>
28
+
29
+ Options:
30
+ -h, --help Show help
31
+ --exit-code=<code> Exit code when file not found or invalid (default: 1)
32
+
33
+ Examples:
34
+ node run.js test.php
35
+ node run.js script.js
36
+ node run.js --exit-code=0 missing.php
37
+
38
+ Supported extensions:
39
+ .php -> php
40
+ .js -> node
41
+ .mjs -> node
42
+ .cjs -> node
43
+ .py -> python
44
+ .rb -> ruby
45
+ .sh -> bash
46
+ .bat -> cmd
47
+ `);
48
+ process.exit(0);
49
+ }
50
+ var filename = argv._[0];
51
+ if (!filename) {
52
+ console.error("No file specified. Use --help for usage.");
53
+ process.exit(getExitCode());
54
+ }
55
+ var filepath = path.resolve(filename);
56
+ if (!fs.existsSync(filepath)) {
57
+ console.error(`File not found: ${filepath}`);
58
+ process.exit(getExitCode());
59
+ }
60
+ var ext = path.extname(filepath).toLowerCase();
61
+ var executors = {
62
+ ".php": "php",
63
+ ".js": "node",
64
+ ".mjs": "node",
65
+ ".cjs": "node",
66
+ ".py": "python",
67
+ ".rb": "ruby",
68
+ ".sh": "bash",
69
+ ".bat": "cmd"
70
+ };
71
+ var executor = executors[ext];
72
+ if (!executor) {
73
+ console.error(`No executor registered for extension: ${ext}`);
74
+ process.exit(1);
75
+ }
76
+ var command = executor;
77
+ var args = [filepath];
78
+ if (ext === ".bat") {
79
+ args = ["/c", filepath];
80
+ }
81
+ var child = spawn(command, args, {
82
+ stdio: "inherit",
83
+ shell: process.platform === "win32"
84
+ });
85
+ child.on("exit", (code) => {
86
+ process.exit(code ?? 0);
87
+ });
88
+ child.on("error", (error) => {
89
+ console.error(error.message);
90
+ process.exit(1);
91
+ });
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
3
+ import {
4
+ __commonJS,
5
+ __require,
6
+ init_esm_shims
7
+ } from "./chunk-QQ4A6DLD.mjs";
8
+
9
+ // src/node-executor.cjs
10
+ var require_node_executor = __commonJS({
11
+ "src/node-executor.cjs"() {
12
+ init_esm_shims();
13
+ var fs = __require("fs-extra");
14
+ var path = __require("upath");
15
+ var minimist = __require("minimist");
16
+ var { spawn } = __require("child_process");
17
+ var argv = minimist(process.argv.slice(2), {
18
+ boolean: ["help", "h"],
19
+ string: ["exit-code"],
20
+ alias: {
21
+ h: "help"
22
+ },
23
+ default: {
24
+ "exit-code": "1"
25
+ }
26
+ });
27
+ function getExitCode() {
28
+ const code = argv["exit-code"];
29
+ if (code === void 0) return 1;
30
+ const num = Number(code);
31
+ return Number.isNaN(num) ? 1 : num;
32
+ }
33
+ if (argv.help) {
34
+ console.log(`
35
+ Usage:
36
+ node run.js [options] <file>
37
+
38
+ Options:
39
+ -h, --help Show help
40
+ --exit-code=<code> Exit code when file not found or invalid (default: 1)
41
+
42
+ Examples:
43
+ node run.js test.php
44
+ node run.js script.js
45
+ node run.js --exit-code=0 missing.php
46
+
47
+ Supported extensions:
48
+ .php -> php
49
+ .js -> node
50
+ .mjs -> node
51
+ .cjs -> node
52
+ .py -> python
53
+ .rb -> ruby
54
+ .sh -> bash
55
+ .bat -> cmd
56
+ `);
57
+ process.exit(0);
58
+ }
59
+ var filename = argv._[0];
60
+ if (!filename) {
61
+ console.error("No file specified. Use --help for usage.");
62
+ process.exit(getExitCode());
63
+ }
64
+ var filepath = path.resolve(filename);
65
+ if (!fs.existsSync(filepath)) {
66
+ console.error(`File not found: ${filepath}`);
67
+ process.exit(getExitCode());
68
+ }
69
+ var ext = path.extname(filepath).toLowerCase();
70
+ var executors = {
71
+ ".php": "php",
72
+ ".js": "node",
73
+ ".mjs": "node",
74
+ ".cjs": "node",
75
+ ".py": "python",
76
+ ".rb": "ruby",
77
+ ".sh": "bash",
78
+ ".bat": "cmd"
79
+ };
80
+ var executor = executors[ext];
81
+ if (!executor) {
82
+ console.error(`No executor registered for extension: ${ext}`);
83
+ process.exit(1);
84
+ }
85
+ var command = executor;
86
+ var args = [filepath];
87
+ if (ext === ".bat") {
88
+ args = ["/c", filepath];
89
+ }
90
+ var child = spawn(command, args, {
91
+ stdio: "inherit",
92
+ shell: process.platform === "win32"
93
+ });
94
+ child.on("exit", (code) => {
95
+ process.exit(code ?? 0);
96
+ });
97
+ child.on("error", (error) => {
98
+ console.error(error.message);
99
+ process.exit(1);
100
+ });
101
+ }
102
+ });
103
+ export default require_node_executor();
@@ -1,32 +1,11 @@
1
1
  #!/usr/bin/env node
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
3
  var __esm = (fn, res) => function __init() {
9
4
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
5
  };
11
6
  var __commonJS = (cb, mod) => function __require() {
12
7
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13
8
  };
14
- var __copyProps = (to, from, except, desc) => {
15
- if (from && typeof from === "object" || typeof from === "function") {
16
- for (let key of __getOwnPropNames(from))
17
- if (!__hasOwnProp.call(to, key) && key !== except)
18
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
- mod
29
- ));
30
9
 
31
10
  // node_modules/tsup/assets/cjs_shims.js
32
11
  var init_cjs_shims = __esm({
@@ -109,7 +88,7 @@ var require_utils = __commonJS({
109
88
  try {
110
89
  fs2.rmdirSync(fullPath);
111
90
  console.log("deleted", fullPath);
112
- } catch (e) {
91
+ } catch (_e) {
113
92
  try {
114
93
  fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
115
94
  console.log("deleted", fullPath);
@@ -122,7 +101,7 @@ var require_utils = __commonJS({
122
101
  try {
123
102
  fs2.unlinkSync(fullPath);
124
103
  console.log("deleted", fullPath);
125
- } catch (e) {
104
+ } catch (_e) {
126
105
  try {
127
106
  fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
128
107
  console.log("deleted", fullPath);
@@ -208,6 +187,7 @@ var require_utils = __commonJS({
208
187
 
209
188
  // src/npm-run-series.cjs
210
189
  init_cjs_shims();
190
+ var { spawnSync } = require("child_process");
211
191
  var fs = require("fs");
212
192
  var path = require("path");
213
193
  var { Minimatch } = require("minimatch");
@@ -217,8 +197,22 @@ var cwd = process.cwd();
217
197
  var packagejson = path.join(cwd, "package.json");
218
198
  var verbose = args["v"] || args["verbose"];
219
199
  var usingYarn = args["yarn"];
200
+ function runCommand(command, commandArgs) {
201
+ const result = spawnSync(command, commandArgs, {
202
+ cwd,
203
+ shell: true,
204
+ stdio: "inherit"
205
+ });
206
+ if (result.error) {
207
+ throw result.error;
208
+ }
209
+ if (result.status !== 0) {
210
+ process.exitCode = result.status ?? 1;
211
+ return false;
212
+ }
213
+ return true;
214
+ }
220
215
  (async function npmRunSeries() {
221
- const { execa } = await import("execa");
222
216
  if (fs.existsSync(packagejson)) {
223
217
  const parse = JSON.parse(fs.readFileSync(packagejson, "utf-8"));
224
218
  if (parse !== null && typeof parse === "object") {
@@ -234,10 +228,9 @@ var usingYarn = args["yarn"];
234
228
  const match = matcher.match(scriptName);
235
229
  if (verbose) console.log({ pattern, scriptName, match });
236
230
  if (match === true) {
237
- await execa(usingYarn ? "yarn" : "npm", ["run", scriptName], {
238
- cwd,
239
- stdio: "inherit"
240
- });
231
+ const command = usingYarn ? "yarn" : "npm";
232
+ const completed = runCommand(command, ["run", scriptName]);
233
+ if (!completed) return;
241
234
  }
242
235
  }
243
236
  }
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
3
3
  import {
4
4
  require_utils
5
- } from "./chunk-Z6JLYU2J.mjs";
5
+ } from "./chunk-5RTXZVCW.mjs";
6
6
  import {
7
7
  __commonJS,
8
8
  __require,
@@ -13,6 +13,7 @@ import {
13
13
  var require_npm_run_series = __commonJS({
14
14
  "src/npm-run-series.cjs"() {
15
15
  init_esm_shims();
16
+ var { spawnSync } = __require("child_process");
16
17
  var fs = __require("fs");
17
18
  var path = __require("path");
18
19
  var { Minimatch } = __require("minimatch");
@@ -22,8 +23,22 @@ var require_npm_run_series = __commonJS({
22
23
  var packagejson = path.join(cwd, "package.json");
23
24
  var verbose = args["v"] || args["verbose"];
24
25
  var usingYarn = args["yarn"];
26
+ function runCommand(command, commandArgs) {
27
+ const result = spawnSync(command, commandArgs, {
28
+ cwd,
29
+ shell: true,
30
+ stdio: "inherit"
31
+ });
32
+ if (result.error) {
33
+ throw result.error;
34
+ }
35
+ if (result.status !== 0) {
36
+ process.exitCode = result.status ?? 1;
37
+ return false;
38
+ }
39
+ return true;
40
+ }
25
41
  (async function npmRunSeries() {
26
- const { execa } = await import("execa");
27
42
  if (fs.existsSync(packagejson)) {
28
43
  const parse = JSON.parse(fs.readFileSync(packagejson, "utf-8"));
29
44
  if (parse !== null && typeof parse === "object") {
@@ -39,10 +54,9 @@ var require_npm_run_series = __commonJS({
39
54
  const match = matcher.match(scriptName);
40
55
  if (verbose) console.log({ pattern, scriptName, match });
41
56
  if (match === true) {
42
- await execa(usingYarn ? "yarn" : "npm", ["run", scriptName], {
43
- cwd,
44
- stdio: "inherit"
45
- });
57
+ const command = usingYarn ? "yarn" : "npm";
58
+ const completed = runCommand(command, ["run", scriptName]);
59
+ if (!completed) return;
46
60
  }
47
61
  }
48
62
  }