binary-collections 2.0.10 → 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.
- package/.opencode/package.json +5 -0
- package/.puppeterrc.cjs +25 -0
- package/binaries/binary-executor.cjs +138 -3
- package/binaries/clean-nodemodule.cjs +138 -3
- package/binaries/clean-nodemodules.cjs +138 -3
- package/binaries/dev.cjs +138 -3
- package/binaries/empty.cjs +138 -3
- package/binaries/git-reduce-size.cjs +138 -3
- package/binaries/javakill.cjs +138 -3
- package/binaries/kill-night-crows.bat +7 -0
- package/binaries/kill-night-crows.ps1 +172 -0
- package/binaries/kill-process.cjs +138 -3
- package/binaries/nodekill.cjs +138 -3
- package/binaries/prod.cjs +138 -3
- package/binaries/py +111 -0
- package/binaries/py.cjs +178 -0
- package/binaries/py.cmd +49 -0
- package/binaries/rmfind.cjs +138 -3
- package/binaries/rmx +15 -1
- package/binaries/rmx.cjs +138 -3
- package/binaries/rmx.cmd +12 -0
- package/binaries/submodule-token.cjs +138 -3
- package/binaries/test-cjs +18 -0
- package/binaries/test-cjs.cjs +178 -0
- package/binaries/test-cjs.cmd +26 -0
- package/binaries/test-esm +16 -0
- package/binaries/test-esm.cjs +178 -0
- package/binaries/test-esm.cmd +23 -0
- package/binaries/yarn-clean +32 -0
- package/binaries/yarn-clean.cjs +178 -0
- package/binaries/yarn-clean.cmd +30 -0
- package/binaries/yarn-clean.py +166 -0
- package/binaries/yc +110 -0
- package/binaries/yc.cjs +178 -0
- package/lib/binary-collections/config.cjs +126 -0
- package/lib/binary-collections/config.mjs +7 -0
- package/lib/binary-collections/executeScript.cjs +19 -0
- package/lib/binary-collections/executeScript.d.cts +12 -0
- package/lib/binary-collections/executeScript.mjs +6 -0
- package/lib/binary-collections/findScript.cjs +284 -0
- package/lib/binary-collections/findScript.d.cts +12 -0
- package/lib/binary-collections/findScript.mjs +7 -0
- package/lib/binary-collections/listScript.cjs +266 -0
- package/lib/binary-collections/listScript.d.cts +19 -0
- package/lib/binary-collections/listScript.mjs +7 -0
- package/lib/binary-collections.cjs +342 -194
- package/lib/binary-collections.mjs +22 -268
- package/lib/changelog.cjs +61 -13
- package/lib/changelog.mjs +1 -1
- package/lib/{chunk-E6FDDAOO.mjs → chunk-2LSRSEXF.mjs} +2 -2
- package/lib/chunk-34IQDTLZ.mjs +27 -0
- package/lib/chunk-3HFFECCI.mjs +27 -0
- package/lib/{chunk-V3N3JEUF.mjs → chunk-5RTXZVCW.mjs} +60 -13
- package/lib/chunk-66KDU4TX.mjs +268 -0
- package/lib/chunk-6PU7BAHB.mjs +61 -0
- package/lib/{chunk-6HHJRKFB.mjs → chunk-BZWVHODJ.mjs} +4 -1
- package/lib/chunk-C6D2TTYU.mjs +32 -0
- package/lib/chunk-FB2WKVJD.mjs +158 -0
- package/lib/{chunk-66PAU5PS.mjs → chunk-G5UUEWUO.mjs} +9 -5
- package/lib/{chunk-HO6GHCOB.mjs → chunk-GAGABICI.mjs} +198 -63
- package/lib/chunk-H44UWUFY.mjs +105 -0
- package/lib/chunk-NCZPTKDV.mjs +79 -0
- package/lib/chunk-NGFK3EYW.mjs +28 -0
- package/lib/chunk-NVEG3LEZ.mjs +143 -0
- package/lib/chunk-OGXVGBRI.mjs +29 -0
- package/lib/chunk-OXV52GD5.mjs +62 -0
- package/lib/{chunk-PDSXF5HY.mjs → chunk-PDN26I7O.mjs} +1 -0
- package/lib/chunk-PXBMHE7O.mjs +35 -0
- package/lib/chunk-R5FJOR63.mjs +47 -0
- package/lib/chunk-SPTECFE5.mjs +180 -0
- package/lib/chunk-UXCFNAR6.mjs +55 -0
- package/lib/chunk-V2IBPCEV.mjs +39 -0
- package/lib/chunk-XPJGCDOD.mjs +14 -0
- package/lib/{chunk-AI4CVPJ7.mjs → chunk-ZDMWBSYF.mjs} +4 -4
- package/lib/chunk-ZOWVMII3.mjs +228 -0
- package/lib/clean-github-actions-caches-cli.cjs +465 -0
- package/lib/clean-github-actions-caches-cli.d.cts +1 -0
- package/lib/clean-github-actions-caches-cli.mjs +56 -0
- package/lib/clean-github-actions-caches.cjs +152 -160
- package/lib/clean-github-actions-caches.d.cts +15 -1
- package/lib/clean-github-actions-caches.mjs +4 -130
- package/lib/cross-env/command.cjs +63 -0
- package/lib/cross-env/command.d.ts +8 -0
- package/lib/cross-env/command.js +45 -0
- package/lib/cross-env/command.mjs +9 -0
- package/lib/cross-env/index.cjs +178 -0
- package/lib/cross-env/index.d.ts +8 -0
- package/lib/cross-env/index.js +102 -0
- package/lib/cross-env/index.mjs +101 -0
- package/lib/cross-env/variable.cjs +60 -0
- package/lib/cross-env/variable.d.ts +7 -0
- package/lib/cross-env/variable.js +59 -0
- package/lib/cross-env/variable.mjs +9 -0
- package/lib/del-gradle.cjs +61 -13
- package/lib/del-gradle.js +9 -8
- package/lib/del-gradle.mjs +1 -1
- package/lib/del-node-modules.cjs +143 -148
- package/lib/del-node-modules.js +210 -14
- package/lib/del-node-modules.mjs +148 -17
- package/lib/del-ps.cjs +61 -13
- package/lib/del-ps.js +9 -8
- package/lib/del-ps.mjs +1 -1
- package/lib/del-yarn-caches.cjs +61 -13
- package/lib/del-yarn-caches.js +2 -2
- package/lib/del-yarn-caches.mjs +1 -1
- package/lib/file/copy-cli.cjs +92 -0
- package/lib/file/copy-cli.d.mts +1 -0
- package/lib/file/copy-cli.mjs +55 -0
- package/lib/file/copy.cjs +56 -0
- package/lib/file/copy.d.mts +1 -0
- package/lib/file/copy.mjs +8 -0
- package/lib/file/move-cli.cjs +91 -0
- package/lib/file/move-cli.d.mts +1 -0
- package/lib/file/move-cli.mjs +55 -0
- package/lib/file/move.cjs +55 -0
- package/lib/file/move.d.mts +1 -0
- package/lib/file/move.mjs +8 -0
- package/lib/find-node-modules-cli.js +2 -1
- package/lib/free-chatgpt.cjs +259 -47
- package/lib/free-chatgpt.js +10 -10
- package/lib/free-chatgpt.mjs +2 -2
- package/lib/git/gitattributes.cjs +1 -0
- package/lib/git/gitattributes.d.cts +7 -2
- package/lib/git/gitattributes.mjs +1 -1
- package/lib/git/line-endings.cjs +2 -1
- package/lib/git/line-endings.mjs +2 -2
- package/lib/git/undo-commit-cli.cjs +110 -0
- package/lib/git/undo-commit-cli.d.ts +1 -0
- package/lib/git/undo-commit-cli.js +4 -0
- package/lib/git/undo-commit-cli.mjs +14 -0
- package/lib/git/undo-commit.cjs +81 -0
- package/lib/git/undo-commit.d.cts +1 -0
- package/lib/git/undo-commit.mjs +7 -0
- package/lib/git/undo-staged-cli.cjs +110 -0
- package/lib/git/undo-staged-cli.d.ts +1 -0
- package/lib/git/undo-staged-cli.js +4 -0
- package/lib/git/undo-staged-cli.mjs +14 -0
- package/lib/git/undo-staged.cjs +81 -0
- package/lib/git/undo-staged.d.cts +1 -0
- package/lib/git/undo-staged.mjs +7 -0
- package/lib/git/user-config.cjs +61 -14
- package/lib/git/user-config.mjs +2 -2
- package/lib/git-diff-cli.cjs +427 -75
- package/lib/git-diff-cli.d.ts +1 -0
- package/lib/git-diff-cli.js +1 -0
- package/lib/git-diff-cli.mjs +6 -4
- package/lib/git-diff.cjs +426 -75
- package/lib/git-diff.d.ts +2 -1
- package/lib/git-diff.js +91 -34
- package/lib/git-diff.mjs +5 -4
- package/lib/git-fix.cjs +64 -16
- package/lib/git-fix.mjs +10 -10
- package/lib/git-purge.cjs +61 -13
- package/lib/git-purge.mjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/kill-night-crows.cjs +87 -0
- package/lib/kill-night-crows.d.mts +1 -0
- package/lib/kill-night-crows.mjs +65 -0
- package/lib/node-cache-cleaner/npm.cjs +65 -0
- package/lib/node-cache-cleaner/npm.d.ts +2 -0
- package/lib/node-cache-cleaner/npm.js +41 -0
- package/lib/node-cache-cleaner/npm.mjs +10 -0
- package/lib/node-cache-cleaner/npx.cjs +89 -0
- package/lib/node-cache-cleaner/npx.d.ts +4 -0
- package/lib/node-cache-cleaner/npx.js +82 -0
- package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
- package/lib/node-cache-cleaner/yarn.cjs +73 -0
- package/lib/node-cache-cleaner/yarn.d.ts +2 -0
- package/lib/node-cache-cleaner/yarn.js +62 -0
- package/lib/node-cache-cleaner/yarn.mjs +10 -0
- package/lib/node-cache-cleaner-cli.cjs +182 -0
- package/lib/node-cache-cleaner-cli.d.ts +2 -0
- package/lib/node-cache-cleaner-cli.js +60 -0
- package/lib/node-cache-cleaner-cli.mjs +56 -0
- package/lib/node-executor.cjs +91 -0
- package/lib/node-executor.d.cts +2 -0
- package/lib/node-executor.mjs +103 -0
- package/lib/npm-run-series.cjs +79 -39
- package/lib/npm-run-series.mjs +20 -6
- package/lib/package-resolutions-updater-cli.cjs +645 -0
- package/lib/package-resolutions-updater-cli.d.mts +1 -0
- package/lib/package-resolutions-updater-cli.mjs +102 -0
- package/lib/package-resolutions-updater.cjs +259 -133
- package/lib/package-resolutions-updater.d.mts +51 -1
- package/lib/package-resolutions-updater.mjs +18 -294
- package/lib/php-cs-fixer-staged.cjs +105 -0
- package/lib/php-cs-fixer-staged.d.cts +2 -0
- package/lib/php-cs-fixer-staged.mjs +117 -0
- package/lib/print-directory-tree.cjs +62 -14
- package/lib/print-directory-tree.mjs +2 -2
- package/lib/ps/connected-domain.d.ts +1 -1
- package/lib/ps/connected-domain.js +10 -10
- package/lib/ps/index.cjs +1 -1
- package/lib/ps/index.mjs +177 -171
- package/lib/ps/isWin.js +1 -1
- package/lib/ps/table-parser.js +6 -6
- package/lib/remove-module.cjs +61 -13
- package/lib/remove-module.mjs +1 -1
- package/lib/rm-node-module-cli.cjs +222 -0
- package/lib/rm-node-module-cli.d.cts +1 -0
- package/lib/rm-node-module-cli.mjs +89 -0
- package/lib/rm-node-modules.cjs +127 -0
- package/lib/rm-node-modules.d.cts +35 -0
- package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
- package/lib/rmpath.cjs +63 -15
- package/lib/rmpath.mjs +2 -2
- package/lib/submodule-install.cjs +107 -47
- package/lib/submodule-install.mjs +48 -35
- package/lib/submodule-remove-cli.cjs +6 -3
- package/lib/submodule-remove-cli.js +3 -3
- package/lib/submodule-remove-cli.mjs +2 -3
- package/lib/submodule-remove.cjs +4 -1
- package/lib/submodule-remove.mjs +1 -1
- package/lib/utils/chatgpt.cjs +198 -34
- package/lib/utils/chatgpt.js +260 -93
- package/lib/utils/chatgpt.mjs +1 -1
- package/lib/utils/findEnvFiles.cjs +89 -0
- package/lib/utils/findEnvFiles.d.cts +19 -0
- package/lib/utils/findEnvFiles.mjs +6 -0
- package/lib/utils/findWorkspaceRoot.cjs +70 -0
- package/lib/utils/findWorkspaceRoot.d.ts +9 -0
- package/lib/utils/findWorkspaceRoot.js +57 -0
- package/lib/utils/findWorkspaceRoot.mjs +40 -0
- package/lib/utils/index.cjs +60 -13
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/isGithubTokenValid.cjs +64 -0
- package/lib/utils/isGithubTokenValid.d.ts +7 -0
- package/lib/utils/isGithubTokenValid.js +48 -0
- package/lib/utils/isGithubTokenValid.mjs +36 -0
- package/lib/{ps/index.d.cjs → utils/isWindows.cjs} +17 -3
- package/lib/utils/isWindows.d.ts +5 -0
- package/lib/utils/isWindows.js +10 -0
- package/lib/utils/isWindows.mjs +8 -0
- package/lib/utils/runBash.cjs +53 -0
- package/lib/utils/runBash.d.cts +12 -0
- package/lib/utils/runBash.mjs +66 -0
- package/lib/yarn-per-branch-lock-installer.cjs +97 -0
- package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
- package/lib/yarn-per-branch-lock-installer.mjs +109 -0
- package/lib/yarn-reinstall.cjs +61 -13
- package/lib/yarn-reinstall.mjs +1 -1
- package/package.json +133 -110
- package/readme.html +784 -0
- package/readme.md +116 -229
- package/releases/readme.md +1 -1
- package/requirements.txt +1 -0
- package/test/README.md +2 -2
- package/test-project/package.json +8 -2
- package/test-project/workspaces/workspace-a/package.json +135 -0
- package/test-project/workspaces/workspace-a/readme.md +20 -0
- package/test-project/workspaces/workspace-a/release/readme.md +42 -0
- package/test-project/workspaces/workspace-a/test/demo/package.json +25 -0
- package/test-project/workspaces/workspace-a/test/readme.md +12 -0
- package/test-project/workspaces/workspace-b/package.json +139 -0
- package/test-project/workspaces/workspace-b/readme.md +94 -0
- package/test-project/workspaces/workspace-b/requirements.txt +1 -0
- package/test-project/workspaces/workspace-b/test/sample-project/package.json +7 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/package.json +96 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
- package/tmp/rm-node-modules-test-project/package.json +17 -0
- package/tmp/rm-node-modules-test-project/packages/workspace-a/package.json +16 -0
- package/tmp/rm-node-modules-test-project/packages/workspace-b/package.json +16 -0
- package/tmp/test-repo/README.md +2 -35
- package/tmp/test-repo/package.json +13 -3
- package/docs-src/clean-github-actions-caches.md +0 -26
- package/docs-src/free-chatgpt.md +0 -26
- package/lib/binary-collections-config.cjs +0 -15
- package/lib/chunk-4EWQC6GZ.mjs +0 -382
- package/lib/chunk-4ZI7BQKQ.mjs +0 -381
- package/lib/chunk-5J2BEPY5.mjs +0 -83
- package/lib/chunk-AGZYRDC2.mjs +0 -323
- package/lib/chunk-BDCHCWHD.mjs +0 -136
- package/lib/chunk-BEZKJ25G.mjs +0 -140
- package/lib/chunk-DI5MDPSN.mjs +0 -386
- package/lib/chunk-GJTGHXRA.mjs +0 -356
- package/lib/chunk-HMRMTYZM.mjs +0 -40
- package/lib/chunk-HN52G2YL.mjs +0 -305
- package/lib/chunk-LEM5OMRP.mjs +0 -384
- package/lib/chunk-O6SWBEOQ.mjs +0 -81
- package/lib/chunk-RCP7DHVY.mjs +0 -190
- package/lib/chunk-SBNDSKG5.mjs +0 -136
- package/lib/chunk-U6SO4QEV.mjs +0 -320
- package/lib/chunk-XD6BJK6Q.mjs +0 -351
- package/lib/chunk-YXSFGA2D.mjs +0 -383
- package/lib/git/gitattributes.d.ts +0 -33
- package/lib/git/gitattributes.js +0 -223
- package/lib/ps/index.d.ts +0 -2
- package/lib/ps/index.js +0 -253
- package/tmp/typedoc/readme.md +0 -320
- /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
package/lib/del-node-modules.mjs
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
require_utils
|
|
4
|
-
} from "./chunk-V3N3JEUF.mjs";
|
|
5
2
|
import {
|
|
6
3
|
__require,
|
|
7
4
|
init_esm_shims
|
|
@@ -9,18 +6,152 @@ import {
|
|
|
9
6
|
|
|
10
7
|
// src/del-node-modules.js
|
|
11
8
|
init_esm_shims();
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var g3 = new glob.Glob("**/node_modules", {
|
|
22
|
-
withFileTypes: false,
|
|
23
|
-
cwd: process.cwd(),
|
|
24
|
-
ignore: globalIgnore
|
|
9
|
+
var fs = __require("fs");
|
|
10
|
+
var fsp = fs.promises;
|
|
11
|
+
var path = __require("path");
|
|
12
|
+
var os = __require("os");
|
|
13
|
+
var minimist = __require("minimist");
|
|
14
|
+
var argv = minimist(process.argv.slice(2), {
|
|
15
|
+
boolean: ["force", "help"],
|
|
16
|
+
alias: { h: "help", f: "force", c: "concurrent" },
|
|
17
|
+
default: { force: false, concurrent: 2 }
|
|
25
18
|
});
|
|
26
|
-
|
|
19
|
+
if (argv.help) {
|
|
20
|
+
console.log(`Usage: clean-node [--force] [-c|--concurrent N]
|
|
21
|
+
By default runs in dry-run mode. Use --force to actually delete.
|
|
22
|
+
Use -c/--concurrent to set concurrent removals (default 2).`);
|
|
23
|
+
process.exit(0);
|
|
24
|
+
}
|
|
25
|
+
var DRY_RUN = !argv.force;
|
|
26
|
+
var defaultConcurrency = Math.max(2, os.cpus().length || 2);
|
|
27
|
+
var CONCURRENCY = Math.max(1, Number(argv.concurrent || argv.c || defaultConcurrency));
|
|
28
|
+
var customChars = "@.";
|
|
29
|
+
var vowels = "aeiouAEIOU";
|
|
30
|
+
var alnum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
31
|
+
var combined = alnum + vowels + customChars;
|
|
32
|
+
var ROOT = process.cwd();
|
|
33
|
+
async function isSymlinkAsync(p) {
|
|
34
|
+
try {
|
|
35
|
+
return (await fsp.lstat(p)).isSymbolicLink();
|
|
36
|
+
} catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function removeAsync(target) {
|
|
41
|
+
if (await isSymlinkAsync(target)) {
|
|
42
|
+
console.log("Skipping symlink", target);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (DRY_RUN) {
|
|
46
|
+
console.log("Would remove", target);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
await fsp.rm(target, { recursive: true, force: true });
|
|
51
|
+
console.log("Deleting", target);
|
|
52
|
+
} catch (e) {
|
|
53
|
+
console.error("Failed:", target, e.message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function runWithConcurrency(tasks, concurrency) {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
let i = 0;
|
|
59
|
+
let active = 0;
|
|
60
|
+
let done = 0;
|
|
61
|
+
const total = tasks.length;
|
|
62
|
+
if (total === 0) return resolve();
|
|
63
|
+
function next() {
|
|
64
|
+
if (done === total) return resolve();
|
|
65
|
+
while (active < concurrency && i < total) {
|
|
66
|
+
const idx = i++;
|
|
67
|
+
active++;
|
|
68
|
+
Promise.resolve().then(() => tasks[idx]()).then(() => {
|
|
69
|
+
active--;
|
|
70
|
+
done++;
|
|
71
|
+
next();
|
|
72
|
+
}).catch((err) => reject(err));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
next();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function walk(dir, callback, { skipNodeModulesChildren = false } = {}) {
|
|
79
|
+
let entries;
|
|
80
|
+
try {
|
|
81
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
82
|
+
} catch {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
for (const entry of entries) {
|
|
86
|
+
const fullPath = path.join(dir, entry.name);
|
|
87
|
+
if (entry.isSymbolicLink()) continue;
|
|
88
|
+
if (skipNodeModulesChildren && dir.includes("node_modules")) continue;
|
|
89
|
+
callback(fullPath, entry);
|
|
90
|
+
if (entry.isDirectory()) {
|
|
91
|
+
if (skipNodeModulesChildren && entry.name === "node_modules") {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
walk(fullPath, callback, { skipNodeModulesChildren });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function processNodeModules(dir) {
|
|
99
|
+
console.log("Found:", dir);
|
|
100
|
+
let items;
|
|
101
|
+
try {
|
|
102
|
+
items = fs.readdirSync(dir, { withFileTypes: true });
|
|
103
|
+
} catch {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const targets = items.filter((entry) => entry.name.length && combined.includes(entry.name[0]));
|
|
107
|
+
const tasks = targets.map((entry) => async () => {
|
|
108
|
+
const name = entry.name;
|
|
109
|
+
const target = path.join(dir, name);
|
|
110
|
+
if (entry.isSymbolicLink && entry.isSymbolicLink()) {
|
|
111
|
+
console.log("Skipping symlink", target);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
await removeAsync(target);
|
|
115
|
+
});
|
|
116
|
+
await runWithConcurrency(tasks, CONCURRENCY);
|
|
117
|
+
await removeAsync(dir);
|
|
118
|
+
}
|
|
119
|
+
async function main() {
|
|
120
|
+
const nodeModulesDirs = [];
|
|
121
|
+
walk(ROOT, (fullPath, entry) => {
|
|
122
|
+
if (entry.isDirectory() && entry.name === "node_modules") {
|
|
123
|
+
nodeModulesDirs.push(fullPath);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
for (const dir of nodeModulesDirs) {
|
|
127
|
+
await processNodeModules(dir);
|
|
128
|
+
}
|
|
129
|
+
const packageLocks = [];
|
|
130
|
+
const yarnLocks = [];
|
|
131
|
+
const yarnCaches = [];
|
|
132
|
+
walk(
|
|
133
|
+
ROOT,
|
|
134
|
+
(fullPath, entry) => {
|
|
135
|
+
const base = path.basename(fullPath);
|
|
136
|
+
if (base === "package-lock.json") packageLocks.push(fullPath);
|
|
137
|
+
if (base === "yarn.lock") yarnLocks.push(fullPath);
|
|
138
|
+
if (entry.isDirectory() && fullPath.endsWith(path.join(".yarn", "cache"))) yarnCaches.push(fullPath);
|
|
139
|
+
},
|
|
140
|
+
{ skipNodeModulesChildren: true }
|
|
141
|
+
);
|
|
142
|
+
if (DRY_RUN) {
|
|
143
|
+
console.log("Would remove package-lock.json files:");
|
|
144
|
+
for (const p of packageLocks) console.log(p);
|
|
145
|
+
console.log("Would remove yarn.lock files:");
|
|
146
|
+
for (const p of yarnLocks) console.log(p);
|
|
147
|
+
console.log("Would remove .yarn/cache directories:");
|
|
148
|
+
for (const p of yarnCaches) console.log(p);
|
|
149
|
+
} else {
|
|
150
|
+
const allTasks = [];
|
|
151
|
+
allTasks.push(...packageLocks.map((p) => async () => removeAsync(p)));
|
|
152
|
+
allTasks.push(...yarnLocks.map((p) => async () => removeAsync(p)));
|
|
153
|
+
allTasks.push(...yarnCaches.map((p) => async () => removeAsync(p)));
|
|
154
|
+
await runWithConcurrency(allTasks, CONCURRENCY);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
main();
|
package/lib/del-ps.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -97,31 +98,78 @@ var require_utils = __commonJS({
|
|
|
97
98
|
}
|
|
98
99
|
module2.exports.getArgs = getArgs2;
|
|
99
100
|
function del(fullPath) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
try {
|
|
102
|
+
if (!fs.existsSync(fullPath)) return;
|
|
103
|
+
const stat = fs.lstatSync(fullPath);
|
|
104
|
+
if (stat.isSymbolicLink()) {
|
|
105
|
+
try {
|
|
106
|
+
fs.unlinkSync(fullPath);
|
|
107
|
+
console.log("deleted symlink", fullPath);
|
|
108
|
+
} catch (e) {
|
|
109
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
110
|
+
}
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (stat.isDirectory()) {
|
|
114
|
+
const subdir = fs.readdirSync(fullPath).map((dirPath) => path.resolve(fullPath, dirPath));
|
|
115
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
116
|
+
del(subdir[i]);
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
fs.rmdirSync(fullPath);
|
|
120
|
+
console.log("deleted", fullPath);
|
|
121
|
+
} catch (_e) {
|
|
122
|
+
try {
|
|
123
|
+
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
124
|
+
console.log("deleted", fullPath);
|
|
125
|
+
} catch (ee) {
|
|
126
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return;
|
|
104
130
|
}
|
|
105
|
-
} else {
|
|
106
131
|
try {
|
|
107
|
-
fs.
|
|
132
|
+
fs.unlinkSync(fullPath);
|
|
108
133
|
console.log("deleted", fullPath);
|
|
109
|
-
} catch (
|
|
110
|
-
|
|
134
|
+
} catch (_e) {
|
|
135
|
+
try {
|
|
136
|
+
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
137
|
+
console.log("deleted", fullPath);
|
|
138
|
+
} catch (ee) {
|
|
139
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
140
|
+
}
|
|
111
141
|
}
|
|
142
|
+
} catch (err) {
|
|
143
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
112
144
|
}
|
|
113
145
|
}
|
|
114
146
|
module2.exports.del = del;
|
|
115
147
|
function delStream(globStream) {
|
|
116
148
|
globStream.stream().on("data", (result) => {
|
|
117
149
|
const fullPath = path.resolve(process.cwd(), result);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
150
|
+
try {
|
|
151
|
+
if (fs.existsSync(fullPath)) {
|
|
152
|
+
const stat = fs.lstatSync(fullPath);
|
|
153
|
+
if (stat.isSymbolicLink()) {
|
|
154
|
+
try {
|
|
155
|
+
fs.unlinkSync(fullPath);
|
|
156
|
+
console.log("deleted symlink", fullPath);
|
|
157
|
+
} catch (e) {
|
|
158
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (stat.isDirectory()) {
|
|
163
|
+
const subdir = fs.readdirSync(fullPath).map((dirPath) => path.resolve(fullPath, dirPath));
|
|
164
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
165
|
+
del(subdir[i]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
122
168
|
}
|
|
169
|
+
del(fullPath);
|
|
170
|
+
} catch (err) {
|
|
171
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
123
172
|
}
|
|
124
|
-
del(fullPath);
|
|
125
173
|
});
|
|
126
174
|
}
|
|
127
175
|
module2.exports.delStream = delStream;
|
package/lib/del-ps.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
const crossSpawn = require('cross-spawn');
|
|
3
|
+
const ps = require('ps-node');
|
|
4
|
+
const isWin = require('./ps/isWin.js').default;
|
|
5
|
+
const { getArgs } = require('./utils/index.cjs');
|
|
5
6
|
getArgs()._.forEach((command) => {
|
|
6
7
|
ps.lookup({
|
|
7
8
|
command,
|
|
8
|
-
psargs:
|
|
9
|
+
psargs: 'ux'
|
|
9
10
|
}, function (err, resultList) {
|
|
10
11
|
if (err) {
|
|
11
12
|
throw new Error(err);
|
|
@@ -14,15 +15,15 @@ getArgs()._.forEach((command) => {
|
|
|
14
15
|
if (process) {
|
|
15
16
|
// console.log('PID: %s, COMMAND: %s, ARGUMENTS: %s', process.pid, process.command, process.arguments);
|
|
16
17
|
if (!isWin) {
|
|
17
|
-
crossSpawn.spawnAsync(
|
|
18
|
+
crossSpawn.spawnAsync('kill', ['-9', process.pid]).catch((e) => console.log(`kill failed ${e.message}`));
|
|
18
19
|
crossSpawn
|
|
19
|
-
.spawnAsync(
|
|
20
|
+
.spawnAsync('killall', ['-9', process.pid])
|
|
20
21
|
.catch((e) => console.log(`killall failed ${e.message}`));
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
23
24
|
// wmic process where "name like 'java.exe'" delete
|
|
24
25
|
crossSpawn
|
|
25
|
-
.spawnAsync(
|
|
26
|
+
.spawnAsync('wmic', ['process', 'where', `"name like '${command}'" delete`])
|
|
26
27
|
.catch((e) => console.log(`wmic failed ${e.message}`));
|
|
27
28
|
}
|
|
28
29
|
}
|
package/lib/del-ps.mjs
CHANGED
package/lib/del-yarn-caches.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -88,31 +89,78 @@ var require_utils = __commonJS({
|
|
|
88
89
|
}
|
|
89
90
|
module2.exports.getArgs = getArgs;
|
|
90
91
|
function del(fullPath) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
try {
|
|
93
|
+
if (!fs.existsSync(fullPath)) return;
|
|
94
|
+
const stat = fs.lstatSync(fullPath);
|
|
95
|
+
if (stat.isSymbolicLink()) {
|
|
96
|
+
try {
|
|
97
|
+
fs.unlinkSync(fullPath);
|
|
98
|
+
console.log("deleted symlink", fullPath);
|
|
99
|
+
} catch (e) {
|
|
100
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
101
|
+
}
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (stat.isDirectory()) {
|
|
105
|
+
const subdir = fs.readdirSync(fullPath).map((dirPath) => path.resolve(fullPath, dirPath));
|
|
106
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
107
|
+
del(subdir[i]);
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
fs.rmdirSync(fullPath);
|
|
111
|
+
console.log("deleted", fullPath);
|
|
112
|
+
} catch (_e) {
|
|
113
|
+
try {
|
|
114
|
+
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
115
|
+
console.log("deleted", fullPath);
|
|
116
|
+
} catch (ee) {
|
|
117
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return;
|
|
95
121
|
}
|
|
96
|
-
} else {
|
|
97
122
|
try {
|
|
98
|
-
fs.
|
|
123
|
+
fs.unlinkSync(fullPath);
|
|
99
124
|
console.log("deleted", fullPath);
|
|
100
|
-
} catch (
|
|
101
|
-
|
|
125
|
+
} catch (_e) {
|
|
126
|
+
try {
|
|
127
|
+
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
128
|
+
console.log("deleted", fullPath);
|
|
129
|
+
} catch (ee) {
|
|
130
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
131
|
+
}
|
|
102
132
|
}
|
|
133
|
+
} catch (err) {
|
|
134
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
103
135
|
}
|
|
104
136
|
}
|
|
105
137
|
module2.exports.del = del;
|
|
106
138
|
function delStream2(globStream) {
|
|
107
139
|
globStream.stream().on("data", (result) => {
|
|
108
140
|
const fullPath = path.resolve(process.cwd(), result);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
141
|
+
try {
|
|
142
|
+
if (fs.existsSync(fullPath)) {
|
|
143
|
+
const stat = fs.lstatSync(fullPath);
|
|
144
|
+
if (stat.isSymbolicLink()) {
|
|
145
|
+
try {
|
|
146
|
+
fs.unlinkSync(fullPath);
|
|
147
|
+
console.log("deleted symlink", fullPath);
|
|
148
|
+
} catch (e) {
|
|
149
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (stat.isDirectory()) {
|
|
154
|
+
const subdir = fs.readdirSync(fullPath).map((dirPath) => path.resolve(fullPath, dirPath));
|
|
155
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
156
|
+
del(subdir[i]);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
113
159
|
}
|
|
160
|
+
del(fullPath);
|
|
161
|
+
} catch (err) {
|
|
162
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
114
163
|
}
|
|
115
|
-
del(fullPath);
|
|
116
164
|
});
|
|
117
165
|
}
|
|
118
166
|
module2.exports.delStream = delStream2;
|
package/lib/del-yarn-caches.js
CHANGED
|
@@ -35,9 +35,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
const glob = __importStar(require("glob"));
|
|
37
37
|
const index_cjs_1 = require("./utils/index.cjs");
|
|
38
|
-
const g3 = new glob.Glob([
|
|
38
|
+
const g3 = new glob.Glob(['**/.yarn/cache*', '**/.yarn/*.gz'], {
|
|
39
39
|
withFileTypes: false,
|
|
40
40
|
cwd: process.cwd(),
|
|
41
|
-
ignore: [
|
|
41
|
+
ignore: ['**/.git*', '**/vendor/**']
|
|
42
42
|
});
|
|
43
43
|
(0, index_cjs_1.delStream)(g3);
|
package/lib/del-yarn-caches.mjs
CHANGED
|
@@ -0,0 +1,92 @@
|
|
|
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/file/copy-cli.mjs
|
|
26
|
+
var import_minimist = __toESM(require("minimist"), 1);
|
|
27
|
+
|
|
28
|
+
// src/file/copy.mjs
|
|
29
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
30
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
31
|
+
async function copy(src, dest) {
|
|
32
|
+
if (!await import_fs_extra.default.pathExists(src)) {
|
|
33
|
+
throw new Error(`Source file does not exist: ${src}`);
|
|
34
|
+
}
|
|
35
|
+
const srcStat = await import_fs_extra.default.stat(src);
|
|
36
|
+
let finalDest = dest;
|
|
37
|
+
if (srcStat.isFile()) {
|
|
38
|
+
const destExists = await import_fs_extra.default.pathExists(dest);
|
|
39
|
+
const destStat = destExists ? await import_fs_extra.default.stat(dest) : null;
|
|
40
|
+
if (destStat && destStat.isDirectory()) {
|
|
41
|
+
finalDest = import_upath.default.join(dest, import_upath.default.basename(src));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
await import_fs_extra.default.ensureDir(import_upath.default.dirname(finalDest));
|
|
45
|
+
await import_fs_extra.default.copy(src, finalDest, { overwrite: true });
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// src/file/copy-cli.mjs
|
|
49
|
+
function showHelp(exitCode = 0) {
|
|
50
|
+
console.log(
|
|
51
|
+
`
|
|
52
|
+
Usage:
|
|
53
|
+
copy <src> <dest>
|
|
54
|
+
|
|
55
|
+
Options:
|
|
56
|
+
-h, --help Show this help message
|
|
57
|
+
|
|
58
|
+
Examples:
|
|
59
|
+
copy file.txt backup/file.txt
|
|
60
|
+
copy ./src ./dist
|
|
61
|
+
`.trim()
|
|
62
|
+
);
|
|
63
|
+
process.exit(exitCode);
|
|
64
|
+
}
|
|
65
|
+
async function main() {
|
|
66
|
+
const args = (0, import_minimist.default)(process.argv.slice(2), {
|
|
67
|
+
boolean: ["help", "h"],
|
|
68
|
+
alias: {
|
|
69
|
+
h: "help"
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (args.help) {
|
|
73
|
+
showHelp(0);
|
|
74
|
+
}
|
|
75
|
+
const [src, dest] = args._;
|
|
76
|
+
if (!src || !dest) {
|
|
77
|
+
console.error("Error: missing required arguments.\n");
|
|
78
|
+
showHelp(1);
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
await copy(src, dest);
|
|
82
|
+
console.log(`Copied ${src} to ${dest}`);
|
|
83
|
+
} catch (err) {
|
|
84
|
+
console.error(`Error copying file: ${err instanceof Error ? err.message : String(err)}`);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function handleError(err) {
|
|
89
|
+
console.error(`Unexpected error: ${err instanceof Error ? err.message : String(err)}`);
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
main().catch(handleError);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
copy
|
|
4
|
+
} from "../chunk-OGXVGBRI.mjs";
|
|
5
|
+
import {
|
|
6
|
+
init_esm_shims
|
|
7
|
+
} from "../chunk-QQ4A6DLD.mjs";
|
|
8
|
+
|
|
9
|
+
// src/file/copy-cli.mjs
|
|
10
|
+
init_esm_shims();
|
|
11
|
+
import minimist from "minimist";
|
|
12
|
+
function showHelp(exitCode = 0) {
|
|
13
|
+
console.log(
|
|
14
|
+
`
|
|
15
|
+
Usage:
|
|
16
|
+
copy <src> <dest>
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
-h, --help Show this help message
|
|
20
|
+
|
|
21
|
+
Examples:
|
|
22
|
+
copy file.txt backup/file.txt
|
|
23
|
+
copy ./src ./dist
|
|
24
|
+
`.trim()
|
|
25
|
+
);
|
|
26
|
+
process.exit(exitCode);
|
|
27
|
+
}
|
|
28
|
+
async function main() {
|
|
29
|
+
const args = minimist(process.argv.slice(2), {
|
|
30
|
+
boolean: ["help", "h"],
|
|
31
|
+
alias: {
|
|
32
|
+
h: "help"
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
if (args.help) {
|
|
36
|
+
showHelp(0);
|
|
37
|
+
}
|
|
38
|
+
const [src, dest] = args._;
|
|
39
|
+
if (!src || !dest) {
|
|
40
|
+
console.error("Error: missing required arguments.\n");
|
|
41
|
+
showHelp(1);
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
await copy(src, dest);
|
|
45
|
+
console.log(`Copied ${src} to ${dest}`);
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.error(`Error copying file: ${err instanceof Error ? err.message : String(err)}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function handleError(err) {
|
|
52
|
+
console.error(`Unexpected error: ${err instanceof Error ? err.message : String(err)}`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
main().catch(handleError);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/file/copy.mjs
|
|
30
|
+
var copy_exports = {};
|
|
31
|
+
__export(copy_exports, {
|
|
32
|
+
copy: () => copy
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(copy_exports);
|
|
35
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
36
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
37
|
+
async function copy(src, dest) {
|
|
38
|
+
if (!await import_fs_extra.default.pathExists(src)) {
|
|
39
|
+
throw new Error(`Source file does not exist: ${src}`);
|
|
40
|
+
}
|
|
41
|
+
const srcStat = await import_fs_extra.default.stat(src);
|
|
42
|
+
let finalDest = dest;
|
|
43
|
+
if (srcStat.isFile()) {
|
|
44
|
+
const destExists = await import_fs_extra.default.pathExists(dest);
|
|
45
|
+
const destStat = destExists ? await import_fs_extra.default.stat(dest) : null;
|
|
46
|
+
if (destStat && destStat.isDirectory()) {
|
|
47
|
+
finalDest = import_upath.default.join(dest, import_upath.default.basename(src));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
await import_fs_extra.default.ensureDir(import_upath.default.dirname(finalDest));
|
|
51
|
+
await import_fs_extra.default.copy(src, finalDest, { overwrite: true });
|
|
52
|
+
}
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
copy
|
|
56
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function copy(src: any, dest: any): Promise<void>;
|