binary-collections 2.0.11 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binaries/binary-executor.cjs +89 -13
- package/binaries/clean-nodemodule.cjs +89 -13
- package/binaries/clean-nodemodules.cjs +89 -13
- package/binaries/dev.cjs +89 -13
- package/binaries/empty.cjs +89 -13
- package/binaries/git-reduce-size.cjs +89 -13
- package/binaries/javakill.cjs +89 -13
- package/binaries/kill-process.cjs +89 -13
- package/binaries/nodekill.cjs +89 -13
- package/binaries/prod.cjs +89 -13
- package/binaries/py.cjs +89 -13
- package/binaries/rmfind.cjs +89 -13
- package/binaries/rmx +15 -1
- package/binaries/rmx.cjs +89 -13
- package/binaries/rmx.cmd +12 -0
- package/binaries/submodule-token.cjs +89 -13
- package/binaries/test-cjs +9 -1
- package/binaries/test-cjs.cjs +89 -13
- package/binaries/test-cjs.cmd +16 -1
- package/binaries/test-esm +16 -0
- package/binaries/test-esm.cjs +254 -0
- package/binaries/test-esm.cmd +23 -0
- package/binaries/yarn-clean +1 -1
- package/binaries/yarn-clean.cjs +89 -13
- package/binaries/yarn-clean.cmd +1 -1
- package/binaries/yarn-clean.py +33 -15
- package/binaries/yc +131 -0
- package/binaries/yc.cjs +254 -0
- package/binaries/ycw +256 -0
- package/binaries/ycw.cjs +254 -0
- package/docs-src/binary-collections.md +34 -0
- package/docs-src/changelog.md +26 -0
- package/docs-src/clean-github-actions-caches.md +91 -2
- package/docs-src/copy-move-file.md +59 -0
- package/docs-src/del-gradle.md +17 -0
- package/docs-src/del-ps.md +28 -0
- package/docs-src/downloader.md +62 -0
- package/docs-src/env-helpers.md +29 -0
- package/docs-src/find-node-modules.md +17 -0
- package/docs-src/git-diff.md +33 -0
- package/docs-src/git-fix.md +34 -0
- package/docs-src/git-purge.md +17 -0
- package/docs-src/git-reduce-size.md +17 -0
- package/docs-src/git-undo.md +21 -0
- package/docs-src/kill-night-crows.md +26 -0
- package/docs-src/node-cache-cleaner.md +182 -0
- package/docs-src/node-executor.md +50 -0
- package/docs-src/node-package-packer.md +48 -0
- package/docs-src/npm-run-series.md +43 -0
- package/docs-src/package-resolutions-updater.md +22 -0
- package/docs-src/php-cs-fixer-staged.md +19 -0
- package/docs-src/print-directory-tree.md +35 -0
- package/docs-src/print-tarball-tree.md +55 -0
- package/docs-src/py.md +19 -0
- package/docs-src/remove-module.md +32 -0
- package/docs-src/rmfind-rmx.md +21 -0
- package/docs-src/rmpath.md +38 -0
- package/docs-src/run-by-checksum.md +87 -0
- package/docs-src/submodule-install.md +31 -0
- package/docs-src/submodule-remove.md +22 -0
- package/docs-src/submodule-token.md +17 -0
- package/docs-src/test-runners.md +21 -0
- package/docs-src/yarn-install.md +31 -0
- package/docs-src/yarn-reinstall.md +27 -0
- package/lib/binary-collections/config.cjs +126 -0
- package/lib/binary-collections/config.mjs +7 -0
- package/lib/binary-collections/executeScript.cjs +19 -0
- package/lib/binary-collections/executeScript.d.cts +12 -0
- package/lib/binary-collections/executeScript.mjs +6 -0
- package/lib/binary-collections/findScript.cjs +309 -0
- package/lib/binary-collections/findScript.d.cts +12 -0
- package/lib/binary-collections/findScript.mjs +7 -0
- package/lib/binary-collections/listScript.cjs +291 -0
- package/lib/binary-collections/listScript.d.cts +19 -0
- package/lib/binary-collections/listScript.mjs +7 -0
- package/lib/binary-collections.cjs +264 -157
- package/lib/binary-collections.mjs +26 -286
- package/lib/changelog.cjs +9 -14
- package/lib/changelog.mjs +2 -2
- package/lib/chunk-2MN4VPV2.mjs +246 -0
- package/lib/chunk-6C7KTYGZ.mjs +41 -0
- package/lib/{chunk-Z6JLYU2J.mjs → chunk-6RK5UCTP.mjs} +7 -12
- package/lib/chunk-CD3HF3LK.mjs +190 -0
- package/lib/chunk-FLYSZFLW.mjs +61 -0
- package/lib/{chunk-N436BNBK.mjs → chunk-GAGABICI.mjs} +19 -13
- package/lib/chunk-H44UWUFY.mjs +105 -0
- package/lib/chunk-KLKAIFKI.mjs +40 -0
- package/lib/chunk-LVSPEFU2.mjs +86 -0
- package/lib/{chunk-RWLXRTYP.mjs → chunk-MGPYPKIE.mjs} +2 -2
- package/lib/chunk-NGFK3EYW.mjs +28 -0
- package/lib/chunk-NQXUYO67.mjs +253 -0
- package/lib/chunk-NVEG3LEZ.mjs +143 -0
- package/lib/chunk-OBXLTXFJ.mjs +34 -0
- package/lib/chunk-OGXVGBRI.mjs +29 -0
- package/lib/chunk-OXV52GD5.mjs +62 -0
- package/lib/chunk-PXBMHE7O.mjs +35 -0
- package/lib/chunk-QD4T255Z.mjs +40 -0
- package/lib/chunk-QII2EKCS.mjs +26 -0
- package/lib/chunk-R5FJOR63.mjs +47 -0
- package/lib/chunk-RDGDLSPD.mjs +76 -0
- package/lib/chunk-RDN6HF5Z.mjs +79 -0
- package/lib/chunk-RJKTSUAX.mjs +123 -0
- package/lib/{chunk-XA3SNBPA.mjs → chunk-TBWXE7ST.mjs} +97 -38
- package/lib/chunk-UXCFNAR6.mjs +55 -0
- package/lib/{chunk-M3YIYRHT.mjs → chunk-UY5VUEA3.mjs} +1 -1
- package/lib/chunk-WSHVPGNM.mjs +44 -0
- package/lib/{chunk-66PAU5PS.mjs → chunk-X2B3X7D4.mjs} +10 -6
- package/lib/clean-github-actions-caches-cli.cjs +507 -0
- package/lib/clean-github-actions-caches-cli.mjs +74 -0
- package/lib/clean-github-actions-caches.cjs +246 -106
- package/lib/clean-github-actions-caches.d.cts +53 -1
- package/lib/clean-github-actions-caches.mjs +5 -130
- package/lib/cross-env/command.cjs +63 -0
- package/lib/cross-env/command.d.ts +8 -0
- package/lib/cross-env/command.js +45 -0
- package/lib/{ps/isWin.mjs → cross-env/command.mjs} +4 -5
- package/lib/cross-env/index.cjs +178 -0
- package/lib/cross-env/index.d.ts +8 -0
- package/lib/cross-env/index.js +102 -0
- package/lib/cross-env/index.mjs +101 -0
- package/lib/cross-env/variable.cjs +60 -0
- package/lib/cross-env/variable.d.ts +7 -0
- package/lib/cross-env/variable.js +59 -0
- package/lib/cross-env/variable.mjs +9 -0
- package/lib/del-gradle.cjs +8 -13
- package/lib/del-gradle.js +8 -8
- package/lib/del-gradle.mjs +1 -1
- package/lib/del-node-modules.cjs +185 -3
- package/lib/del-node-modules.js +25 -25
- package/lib/del-node-modules.mjs +6 -3
- package/lib/{del-ps.cjs → del-ps-cli.cjs} +38 -43
- package/lib/del-ps-cli.d.mts +1 -0
- package/lib/del-ps-cli.mjs +44 -0
- package/lib/del-yarn-caches.cjs +8 -13
- package/lib/del-yarn-caches.js +2 -2
- package/lib/del-yarn-caches.mjs +1 -1
- package/lib/downloader-cli.cjs +256 -0
- package/lib/downloader-cli.d.cts +2 -0
- package/lib/downloader-cli.mjs +90 -0
- package/lib/file/copy-cli.cjs +273 -0
- package/lib/file/copy-cli.d.mts +1 -0
- package/lib/file/copy-cli.mjs +59 -0
- package/lib/file/copy.cjs +56 -0
- package/lib/file/copy.d.mts +1 -0
- package/lib/file/copy.mjs +8 -0
- package/lib/file/move-cli.cjs +272 -0
- package/lib/file/move-cli.d.mts +1 -0
- package/lib/file/move-cli.mjs +59 -0
- package/lib/file/move.cjs +55 -0
- package/lib/file/move.d.mts +1 -0
- package/lib/file/move.mjs +8 -0
- package/lib/find-node-modules-cli.cjs +1 -1
- package/lib/find-node-modules-cli.js +1 -1
- package/lib/find-node-modules-cli.mjs +1 -1
- package/lib/find-node-modules.cjs +1 -1
- package/lib/find-node-modules.mjs +1 -1
- package/lib/free-chatgpt.cjs +27 -26
- package/lib/free-chatgpt.js +10 -10
- package/lib/free-chatgpt.mjs +2 -2
- package/lib/git/user-config.cjs +9 -14
- package/lib/git/user-config.mjs +2 -2
- package/lib/git-diff-cli.cjs +273 -66
- package/lib/git-diff-cli.mjs +5 -4
- package/lib/git-diff.cjs +273 -66
- package/lib/git-diff.d.ts +2 -1
- package/lib/git-diff.js +153 -39
- package/lib/git-diff.mjs +5 -4
- package/lib/git-fix.cjs +9 -14
- package/lib/git-fix.mjs +2 -2
- package/lib/git-purge.cjs +9 -14
- package/lib/git-purge.mjs +2 -2
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.mjs +1 -1
- package/lib/kill-night-crows.cjs +7 -7
- package/lib/kill-night-crows.mjs +7 -7
- package/lib/node-cache-cleaner/npm.cjs +65 -0
- package/lib/node-cache-cleaner/npm.d.ts +2 -0
- package/lib/node-cache-cleaner/npm.js +41 -0
- package/lib/node-cache-cleaner/npm.mjs +10 -0
- package/lib/node-cache-cleaner/npx.cjs +89 -0
- package/lib/node-cache-cleaner/npx.d.ts +4 -0
- package/lib/node-cache-cleaner/npx.js +82 -0
- package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
- package/lib/node-cache-cleaner/yarn.cjs +73 -0
- package/lib/node-cache-cleaner/yarn.d.ts +2 -0
- package/lib/node-cache-cleaner/yarn.js +62 -0
- package/lib/node-cache-cleaner/yarn.mjs +10 -0
- package/lib/node-cache-cleaner-cli.cjs +365 -0
- package/lib/node-cache-cleaner-cli.d.ts +2 -0
- package/lib/node-cache-cleaner-cli.js +57 -0
- package/lib/node-cache-cleaner-cli.mjs +60 -0
- package/lib/node-executor.cjs +272 -0
- package/lib/node-executor.d.cts +2 -0
- package/lib/node-executor.mjs +106 -0
- package/lib/node-package-packer/build-readme.cjs +150 -0
- package/lib/node-package-packer/build-readme.d.mts +10 -0
- package/lib/node-package-packer/build-readme.mjs +10 -0
- package/lib/node-package-packer/build-tarball.cjs +495 -0
- package/lib/node-package-packer/build-tarball.d.mts +33 -0
- package/lib/node-package-packer/build-tarball.mjs +175 -0
- package/lib/node-package-packer-cli.cjs +525 -0
- package/lib/node-package-packer-cli.d.mts +1 -0
- package/lib/node-package-packer-cli.mjs +34 -0
- package/lib/npm-run-series.cjs +28 -40
- package/lib/npm-run-series.mjs +21 -7
- package/lib/package-resolutions-updater-cli.cjs +255 -173
- package/lib/package-resolutions-updater-cli.mjs +19 -40
- package/lib/package-resolutions-updater.cjs +244 -141
- package/lib/package-resolutions-updater.d.mts +54 -1
- package/lib/package-resolutions-updater.mjs +8 -5
- package/lib/php-cs-fixer-staged.cjs +1 -1
- package/lib/php-cs-fixer-staged.mjs +1 -1
- package/lib/print-directory-tree.cjs +18 -20
- package/lib/print-directory-tree.mjs +11 -8
- package/lib/print-tarball-tree.cjs +262 -0
- package/lib/print-tarball-tree.d.mts +1 -0
- package/lib/print-tarball-tree.mjs +68 -0
- package/lib/ps/connected-domain.js +10 -10
- package/lib/ps/index.cjs +11 -11
- package/lib/ps/index.mjs +180 -174
- package/lib/ps/table-parser.d.ts +3 -4
- package/lib/ps/table-parser.js +15 -22
- package/lib/remove-module.cjs +19 -24
- package/lib/remove-module.mjs +2 -2
- package/lib/rm-node-module-cli.cjs +389 -0
- package/lib/rm-node-module-cli.d.cts +1 -0
- package/lib/rm-node-module-cli.mjs +92 -0
- package/lib/rm-node-modules.cjs +127 -0
- package/lib/rm-node-modules.d.cts +35 -0
- package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
- package/lib/rmpath-cli.cjs +285 -0
- package/lib/rmpath-cli.d.mts +1 -0
- package/lib/rmpath-cli.mjs +23 -0
- package/lib/rmpath.cjs +6 -217
- package/lib/rmpath.mjs +5 -101
- package/lib/run-by-checksum/cache.cjs +69 -0
- package/lib/run-by-checksum/cache.d.ts +19 -0
- package/lib/run-by-checksum/cache.js +50 -0
- package/lib/run-by-checksum/cache.mjs +12 -0
- package/lib/run-by-checksum/hash.cjs +72 -0
- package/lib/run-by-checksum/hash.d.ts +14 -0
- package/lib/run-by-checksum/hash.js +85 -0
- package/lib/run-by-checksum/hash.mjs +10 -0
- package/lib/run-by-checksum/run.cjs +169 -0
- package/lib/run-by-checksum/run.d.ts +22 -0
- package/lib/run-by-checksum/run.js +93 -0
- package/lib/run-by-checksum/run.mjs +10 -0
- package/lib/run-by-checksum-cli.cjs +382 -0
- package/lib/run-by-checksum-cli.d.ts +2 -0
- package/lib/run-by-checksum-cli.js +43 -0
- package/lib/run-by-checksum-cli.mjs +56 -0
- package/lib/submodule-install.cjs +55 -47
- package/lib/submodule-install.mjs +48 -35
- package/lib/submodule-remove-cli.cjs +170 -4
- package/lib/submodule-remove-cli.js +5 -5
- package/lib/submodule-remove-cli.mjs +6 -4
- package/lib/utils/chatgpt.cjs +19 -13
- package/lib/utils/chatgpt.js +94 -94
- package/lib/utils/chatgpt.mjs +1 -1
- package/lib/utils/fetchResponse.cjs +24 -0
- package/lib/utils/fetchResponse.d.cts +25 -0
- package/lib/utils/fetchResponse.mjs +6 -0
- package/lib/utils/findEnvFiles.cjs +28 -46
- package/lib/utils/findEnvFiles.d.cts +19 -0
- package/lib/utils/findEnvFiles.mjs +3 -5
- package/lib/utils/findWorkspaceRoot.js +4 -4
- package/lib/utils/index.cjs +7 -12
- package/lib/utils/index.d.cts +2 -9
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/isGithubTokenValid.js +7 -7
- package/lib/{ps/isWin.cjs → utils/isWindows.cjs} +12 -7
- package/lib/utils/isWindows.d.ts +5 -0
- package/lib/utils/isWindows.js +10 -0
- package/lib/utils/isWindows.mjs +10 -0
- package/lib/utils/runBash.cjs +53 -0
- package/lib/utils/runBash.d.cts +12 -0
- package/lib/utils/runBash.mjs +66 -0
- package/lib/yarn-per-branch-lock-installer.cjs +288 -0
- package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
- package/lib/yarn-per-branch-lock-installer.mjs +122 -0
- package/lib/yarn-reinstall.cjs +8 -13
- package/lib/yarn-reinstall.mjs +1 -1
- package/package.json +91 -57
- package/readme.html +784 -0
- package/readme.md +107 -219
- package/releases/readme.md +6 -3
- package/test/README.md +2 -2
- package/test-project/workspaces/workspace-a/readme.md +20 -0
- package/test-project/workspaces/workspace-a/release/readme.md +42 -0
- package/test-project/workspaces/workspace-a/test/readme.md +12 -0
- package/test-project/workspaces/workspace-b/readme.md +94 -0
- package/test-project/workspaces/workspace-b/requirements.txt +1 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
- package/tmp/test-repo/README.md +2 -35
- package/tmp/test-repo-runChecksum/test-complex-glob/README.md +1 -0
- package/tmp/test-repo-runChecksum/test-mixed-args/README.md +1 -0
- package/lib/binary-collections-config.cjs +0 -15
- package/lib/chunk-2CBJCW7E.mjs +0 -81
- package/lib/chunk-4UHL4WVN.mjs +0 -136
- package/lib/chunk-6HHJRKFB.mjs +0 -59
- package/lib/chunk-6S4NXESK.mjs +0 -26
- package/lib/chunk-7XTEJHOE.mjs +0 -193
- package/lib/chunk-AJDD5DZM.mjs +0 -109
- package/lib/chunk-FCDQGYBF.mjs +0 -136
- package/lib/chunk-GEYA2USY.mjs +0 -207
- package/lib/chunk-GJTGHXRA.mjs +0 -356
- package/lib/chunk-ID2WBTE2.mjs +0 -80
- package/lib/chunk-JXFOHKDM.mjs +0 -239
- package/lib/chunk-NCXAP7AA.mjs +0 -31
- package/lib/chunk-PDSXF5HY.mjs +0 -187
- package/lib/chunk-TOIVAQF7.mjs +0 -136
- package/lib/chunk-V5SKYJUB.mjs +0 -136
- package/lib/chunk-WSRETQCA.mjs +0 -59
- package/lib/chunk-YYLIQQKF.mjs +0 -31
- package/lib/del-ps.js +0 -32
- package/lib/del-ps.mjs +0 -43
- package/lib/ps/index.d.cjs +0 -17
- package/lib/ps/index.d.ts +0 -2
- package/lib/ps/index.js +0 -254
- package/lib/ps/isWin.d.ts +0 -2
- package/lib/ps/isWin.js +0 -4
- package/lib/utils/findEnvFiles.d.ts +0 -8
- package/lib/utils/findEnvFiles.js +0 -121
- package/test/package.json +0 -20
- package/test-project/package.json +0 -16
- package/tmp/test-repo/package.json +0 -7
- package/tmp/typedoc/readme.md +0 -320
- /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
- /package/lib/{del-ps.d.ts → clean-github-actions-caches-cli.d.cts} +0 -0
package/lib/del-yarn-caches.cjs
CHANGED
|
@@ -40,9 +40,9 @@ var require_utils = __commonJS({
|
|
|
40
40
|
init_cjs_shims();
|
|
41
41
|
var fs = require("fs");
|
|
42
42
|
var path = require("upath");
|
|
43
|
-
var
|
|
43
|
+
var minimistLib = require("minimist");
|
|
44
|
+
var argv = minimistLib(process.argv.slice(2));
|
|
44
45
|
var { exec } = require("child_process");
|
|
45
|
-
var { URL: URL2 } = require("url");
|
|
46
46
|
var { promisify } = require("util");
|
|
47
47
|
var execAsync = promisify(exec);
|
|
48
48
|
async function parseGitRemotes() {
|
|
@@ -55,7 +55,7 @@ var require_utils = __commonJS({
|
|
|
55
55
|
if (name && url) {
|
|
56
56
|
const [repoUrl] = url.split(" ");
|
|
57
57
|
try {
|
|
58
|
-
const parsedUrl = new
|
|
58
|
+
const parsedUrl = new URL(repoUrl);
|
|
59
59
|
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
60
60
|
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
61
61
|
let repoPath = pathParts.join("/");
|
|
@@ -76,15 +76,10 @@ var require_utils = __commonJS({
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
79
|
-
function
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
fullPath = fullPath.charAt(0).toUpperCase() + fullPath.slice(1);
|
|
79
|
+
function getArgs(opts) {
|
|
80
|
+
if (opts) {
|
|
81
|
+
return minimistLib(process.argv.slice(2), opts);
|
|
83
82
|
}
|
|
84
|
-
return fullPath;
|
|
85
|
-
}
|
|
86
|
-
module2.exports.joinPathPreserveDriveLetter = joinPathPreserveDriveLetter;
|
|
87
|
-
function getArgs() {
|
|
88
83
|
return argv;
|
|
89
84
|
}
|
|
90
85
|
module2.exports.getArgs = getArgs;
|
|
@@ -109,7 +104,7 @@ var require_utils = __commonJS({
|
|
|
109
104
|
try {
|
|
110
105
|
fs.rmdirSync(fullPath);
|
|
111
106
|
console.log("deleted", fullPath);
|
|
112
|
-
} catch (
|
|
107
|
+
} catch (_e) {
|
|
113
108
|
try {
|
|
114
109
|
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
115
110
|
console.log("deleted", fullPath);
|
|
@@ -122,7 +117,7 @@ var require_utils = __commonJS({
|
|
|
122
117
|
try {
|
|
123
118
|
fs.unlinkSync(fullPath);
|
|
124
119
|
console.log("deleted", fullPath);
|
|
125
|
-
} catch (
|
|
120
|
+
} catch (_e) {
|
|
126
121
|
try {
|
|
127
122
|
fs.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
128
123
|
console.log("deleted", fullPath);
|
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,256 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
+
var __esm = (fn, res) => function __init() {
|
|
4
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
5
|
+
};
|
|
6
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
7
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
11
|
+
var init_cjs_shims = __esm({
|
|
12
|
+
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
// src/utils/index.cjs
|
|
17
|
+
var require_utils = __commonJS({
|
|
18
|
+
"src/utils/index.cjs"(exports2, module2) {
|
|
19
|
+
init_cjs_shims();
|
|
20
|
+
var fs2 = require("fs");
|
|
21
|
+
var path2 = require("upath");
|
|
22
|
+
var minimistLib = require("minimist");
|
|
23
|
+
var argv = minimistLib(process.argv.slice(2));
|
|
24
|
+
var { exec } = require("child_process");
|
|
25
|
+
var { promisify } = require("util");
|
|
26
|
+
var execAsync = promisify(exec);
|
|
27
|
+
async function parseGitRemotes() {
|
|
28
|
+
try {
|
|
29
|
+
const { stdout } = await execAsync("git remote -v");
|
|
30
|
+
const lines = stdout.split("\n");
|
|
31
|
+
const remotes = {};
|
|
32
|
+
lines.forEach((line) => {
|
|
33
|
+
const [name, url] = line.split(" ");
|
|
34
|
+
if (name && url) {
|
|
35
|
+
const [repoUrl] = url.split(" ");
|
|
36
|
+
try {
|
|
37
|
+
const parsedUrl = new URL(repoUrl);
|
|
38
|
+
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
39
|
+
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
40
|
+
let repoPath = pathParts.join("/");
|
|
41
|
+
if (repoPath.endsWith(".git")) {
|
|
42
|
+
repoPath = repoPath.slice(0, -4);
|
|
43
|
+
}
|
|
44
|
+
remotes[name] = repoPath;
|
|
45
|
+
}
|
|
46
|
+
} catch (e) {
|
|
47
|
+
console.error("URL Parsing Error:", e.message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return remotes;
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.error("Error:", error.message);
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
58
|
+
function getArgs2(opts) {
|
|
59
|
+
if (opts) {
|
|
60
|
+
return minimistLib(process.argv.slice(2), opts);
|
|
61
|
+
}
|
|
62
|
+
return argv;
|
|
63
|
+
}
|
|
64
|
+
module2.exports.getArgs = getArgs2;
|
|
65
|
+
function del(fullPath) {
|
|
66
|
+
try {
|
|
67
|
+
if (!fs2.existsSync(fullPath)) return;
|
|
68
|
+
const stat = fs2.lstatSync(fullPath);
|
|
69
|
+
if (stat.isSymbolicLink()) {
|
|
70
|
+
try {
|
|
71
|
+
fs2.unlinkSync(fullPath);
|
|
72
|
+
console.log("deleted symlink", fullPath);
|
|
73
|
+
} catch (e) {
|
|
74
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
75
|
+
}
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (stat.isDirectory()) {
|
|
79
|
+
const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
80
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
81
|
+
del(subdir[i]);
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
fs2.rmdirSync(fullPath);
|
|
85
|
+
console.log("deleted", fullPath);
|
|
86
|
+
} catch (_e) {
|
|
87
|
+
try {
|
|
88
|
+
fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
89
|
+
console.log("deleted", fullPath);
|
|
90
|
+
} catch (ee) {
|
|
91
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
fs2.unlinkSync(fullPath);
|
|
98
|
+
console.log("deleted", fullPath);
|
|
99
|
+
} catch (_e) {
|
|
100
|
+
try {
|
|
101
|
+
fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
102
|
+
console.log("deleted", fullPath);
|
|
103
|
+
} catch (ee) {
|
|
104
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
} catch (err) {
|
|
108
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
module2.exports.del = del;
|
|
112
|
+
function delStream(globStream) {
|
|
113
|
+
globStream.stream().on("data", (result) => {
|
|
114
|
+
const fullPath = path2.resolve(process.cwd(), result);
|
|
115
|
+
try {
|
|
116
|
+
if (fs2.existsSync(fullPath)) {
|
|
117
|
+
const stat = fs2.lstatSync(fullPath);
|
|
118
|
+
if (stat.isSymbolicLink()) {
|
|
119
|
+
try {
|
|
120
|
+
fs2.unlinkSync(fullPath);
|
|
121
|
+
console.log("deleted symlink", fullPath);
|
|
122
|
+
} catch (e) {
|
|
123
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
124
|
+
}
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (stat.isDirectory()) {
|
|
128
|
+
const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
129
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
130
|
+
del(subdir[i]);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
del(fullPath);
|
|
135
|
+
} catch (err) {
|
|
136
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
module2.exports.delStream = delStream;
|
|
141
|
+
function getFileTreeString(hashArray) {
|
|
142
|
+
const tree = {};
|
|
143
|
+
const hashMap = {};
|
|
144
|
+
for (const entry of hashArray) {
|
|
145
|
+
const [filePath, hash] = entry.split(" ");
|
|
146
|
+
hashMap[filePath] = hash;
|
|
147
|
+
const parts = filePath.split("/");
|
|
148
|
+
let current = tree;
|
|
149
|
+
for (let i = 0; i < parts.length; i++) {
|
|
150
|
+
const part = parts[i];
|
|
151
|
+
if (i === parts.length - 1) {
|
|
152
|
+
current[part] = null;
|
|
153
|
+
} else {
|
|
154
|
+
current[part] = current[part] || {};
|
|
155
|
+
current = current[part];
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function printNode(node, prefix = "", parentPath = "") {
|
|
160
|
+
const keys = Object.keys(node).sort();
|
|
161
|
+
let lines = [];
|
|
162
|
+
keys.forEach((key, idx) => {
|
|
163
|
+
const isLast = idx === keys.length - 1;
|
|
164
|
+
const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
|
|
165
|
+
const currentPath = parentPath ? parentPath + "/" + key : key;
|
|
166
|
+
if (node[key] === null) {
|
|
167
|
+
lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
|
|
168
|
+
} else {
|
|
169
|
+
lines.push(prefix + branch + key + "/");
|
|
170
|
+
lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return lines;
|
|
174
|
+
}
|
|
175
|
+
return printNode(tree, "", "").join("\n");
|
|
176
|
+
}
|
|
177
|
+
module2.exports.getFileTreeString = getFileTreeString;
|
|
178
|
+
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
179
|
+
module2.exports.delay = delay;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// src/downloader-cli.cjs
|
|
184
|
+
init_cjs_shims();
|
|
185
|
+
var fs = require("fs-extra");
|
|
186
|
+
var path = require("upath");
|
|
187
|
+
var { getArgs } = require_utils();
|
|
188
|
+
var axios = require("axios");
|
|
189
|
+
var args = getArgs({
|
|
190
|
+
alias: { h: "help" }
|
|
191
|
+
});
|
|
192
|
+
if (args.help) {
|
|
193
|
+
console.log(`
|
|
194
|
+
Usage:
|
|
195
|
+
node filename.js [url] [path optional]
|
|
196
|
+
|
|
197
|
+
Arguments:
|
|
198
|
+
url File URL to download
|
|
199
|
+
path Optional output path
|
|
200
|
+
|
|
201
|
+
Options:
|
|
202
|
+
-h, --help Show this help message
|
|
203
|
+
|
|
204
|
+
Examples:
|
|
205
|
+
node filename.js https://example.com/file.zip
|
|
206
|
+
|
|
207
|
+
node filename.js https://example.com/file.zip downloads/custom.zip
|
|
208
|
+
`);
|
|
209
|
+
process.exit(0);
|
|
210
|
+
}
|
|
211
|
+
var inputUrl = args._[0];
|
|
212
|
+
var outputPath = args._[1];
|
|
213
|
+
if (!inputUrl) {
|
|
214
|
+
console.error("Usage: downloader [url] [output-path]");
|
|
215
|
+
console.error(" Use --help for more information.");
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
function getFilenameFromUrl(urlString) {
|
|
219
|
+
const url = new URL(urlString);
|
|
220
|
+
let filename = path.basename(url.pathname);
|
|
221
|
+
if (!filename || filename === "/") {
|
|
222
|
+
filename = "downloaded-file";
|
|
223
|
+
}
|
|
224
|
+
return filename;
|
|
225
|
+
}
|
|
226
|
+
if (!outputPath) {
|
|
227
|
+
outputPath = getFilenameFromUrl(inputUrl);
|
|
228
|
+
}
|
|
229
|
+
outputPath = path.resolve(outputPath);
|
|
230
|
+
async function downloadFile(urlString, dest) {
|
|
231
|
+
await fs.ensureDir(path.dirname(dest));
|
|
232
|
+
const response = await axios({
|
|
233
|
+
method: "GET",
|
|
234
|
+
url: urlString,
|
|
235
|
+
responseType: "stream",
|
|
236
|
+
maxRedirects: 10
|
|
237
|
+
});
|
|
238
|
+
const writer = fs.createWriteStream(dest);
|
|
239
|
+
return new Promise((resolve, reject) => {
|
|
240
|
+
response.data.pipe(writer);
|
|
241
|
+
writer.on("finish", () => resolve(dest));
|
|
242
|
+
writer.on("error", reject);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
(async () => {
|
|
246
|
+
try {
|
|
247
|
+
console.log(`Downloading: ${inputUrl}`);
|
|
248
|
+
console.log(`Saving to : ${outputPath}`);
|
|
249
|
+
await downloadFile(inputUrl, outputPath);
|
|
250
|
+
console.log("Download completed.");
|
|
251
|
+
} catch (error) {
|
|
252
|
+
console.error("Download failed:");
|
|
253
|
+
console.error(error.message);
|
|
254
|
+
process.exit(1);
|
|
255
|
+
}
|
|
256
|
+
})();
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
require_utils
|
|
5
|
+
} from "./chunk-6RK5UCTP.mjs";
|
|
6
|
+
import {
|
|
7
|
+
__commonJS,
|
|
8
|
+
__require,
|
|
9
|
+
init_esm_shims
|
|
10
|
+
} from "./chunk-QQ4A6DLD.mjs";
|
|
11
|
+
|
|
12
|
+
// src/downloader-cli.cjs
|
|
13
|
+
var require_downloader_cli = __commonJS({
|
|
14
|
+
"src/downloader-cli.cjs"() {
|
|
15
|
+
init_esm_shims();
|
|
16
|
+
var fs = __require("fs-extra");
|
|
17
|
+
var path = __require("upath");
|
|
18
|
+
var { getArgs } = require_utils();
|
|
19
|
+
var axios = __require("axios");
|
|
20
|
+
var args = getArgs({
|
|
21
|
+
alias: { h: "help" }
|
|
22
|
+
});
|
|
23
|
+
if (args.help) {
|
|
24
|
+
console.log(`
|
|
25
|
+
Usage:
|
|
26
|
+
node filename.js [url] [path optional]
|
|
27
|
+
|
|
28
|
+
Arguments:
|
|
29
|
+
url File URL to download
|
|
30
|
+
path Optional output path
|
|
31
|
+
|
|
32
|
+
Options:
|
|
33
|
+
-h, --help Show this help message
|
|
34
|
+
|
|
35
|
+
Examples:
|
|
36
|
+
node filename.js https://example.com/file.zip
|
|
37
|
+
|
|
38
|
+
node filename.js https://example.com/file.zip downloads/custom.zip
|
|
39
|
+
`);
|
|
40
|
+
process.exit(0);
|
|
41
|
+
}
|
|
42
|
+
var inputUrl = args._[0];
|
|
43
|
+
var outputPath = args._[1];
|
|
44
|
+
if (!inputUrl) {
|
|
45
|
+
console.error("Usage: downloader [url] [output-path]");
|
|
46
|
+
console.error(" Use --help for more information.");
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
function getFilenameFromUrl(urlString) {
|
|
50
|
+
const url = new URL(urlString);
|
|
51
|
+
let filename = path.basename(url.pathname);
|
|
52
|
+
if (!filename || filename === "/") {
|
|
53
|
+
filename = "downloaded-file";
|
|
54
|
+
}
|
|
55
|
+
return filename;
|
|
56
|
+
}
|
|
57
|
+
if (!outputPath) {
|
|
58
|
+
outputPath = getFilenameFromUrl(inputUrl);
|
|
59
|
+
}
|
|
60
|
+
outputPath = path.resolve(outputPath);
|
|
61
|
+
async function downloadFile(urlString, dest) {
|
|
62
|
+
await fs.ensureDir(path.dirname(dest));
|
|
63
|
+
const response = await axios({
|
|
64
|
+
method: "GET",
|
|
65
|
+
url: urlString,
|
|
66
|
+
responseType: "stream",
|
|
67
|
+
maxRedirects: 10
|
|
68
|
+
});
|
|
69
|
+
const writer = fs.createWriteStream(dest);
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
response.data.pipe(writer);
|
|
72
|
+
writer.on("finish", () => resolve(dest));
|
|
73
|
+
writer.on("error", reject);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
(async () => {
|
|
77
|
+
try {
|
|
78
|
+
console.log(`Downloading: ${inputUrl}`);
|
|
79
|
+
console.log(`Saving to : ${outputPath}`);
|
|
80
|
+
await downloadFile(inputUrl, outputPath);
|
|
81
|
+
console.log("Download completed.");
|
|
82
|
+
} catch (error) {
|
|
83
|
+
console.error("Download failed:");
|
|
84
|
+
console.error(error.message);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
})();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
export default require_downloader_cli();
|
|
@@ -0,0 +1,273 @@
|
|
|
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 __esm = (fn, res) => function __init() {
|
|
9
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
+
};
|
|
11
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
12
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
13
|
+
};
|
|
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
|
+
|
|
31
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
32
|
+
var init_cjs_shims = __esm({
|
|
33
|
+
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// src/utils/index.cjs
|
|
38
|
+
var require_utils = __commonJS({
|
|
39
|
+
"src/utils/index.cjs"(exports2, module2) {
|
|
40
|
+
init_cjs_shims();
|
|
41
|
+
var fs2 = require("fs");
|
|
42
|
+
var path2 = require("upath");
|
|
43
|
+
var minimistLib = require("minimist");
|
|
44
|
+
var argv = minimistLib(process.argv.slice(2));
|
|
45
|
+
var { exec } = require("child_process");
|
|
46
|
+
var { promisify } = require("util");
|
|
47
|
+
var execAsync = promisify(exec);
|
|
48
|
+
async function parseGitRemotes() {
|
|
49
|
+
try {
|
|
50
|
+
const { stdout } = await execAsync("git remote -v");
|
|
51
|
+
const lines = stdout.split("\n");
|
|
52
|
+
const remotes = {};
|
|
53
|
+
lines.forEach((line) => {
|
|
54
|
+
const [name, url] = line.split(" ");
|
|
55
|
+
if (name && url) {
|
|
56
|
+
const [repoUrl] = url.split(" ");
|
|
57
|
+
try {
|
|
58
|
+
const parsedUrl = new URL(repoUrl);
|
|
59
|
+
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
60
|
+
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
61
|
+
let repoPath = pathParts.join("/");
|
|
62
|
+
if (repoPath.endsWith(".git")) {
|
|
63
|
+
repoPath = repoPath.slice(0, -4);
|
|
64
|
+
}
|
|
65
|
+
remotes[name] = repoPath;
|
|
66
|
+
}
|
|
67
|
+
} catch (e) {
|
|
68
|
+
console.error("URL Parsing Error:", e.message);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
return remotes;
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error("Error:", error.message);
|
|
75
|
+
return {};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
79
|
+
function getArgs2(opts) {
|
|
80
|
+
if (opts) {
|
|
81
|
+
return minimistLib(process.argv.slice(2), opts);
|
|
82
|
+
}
|
|
83
|
+
return argv;
|
|
84
|
+
}
|
|
85
|
+
module2.exports.getArgs = getArgs2;
|
|
86
|
+
function del(fullPath) {
|
|
87
|
+
try {
|
|
88
|
+
if (!fs2.existsSync(fullPath)) return;
|
|
89
|
+
const stat = fs2.lstatSync(fullPath);
|
|
90
|
+
if (stat.isSymbolicLink()) {
|
|
91
|
+
try {
|
|
92
|
+
fs2.unlinkSync(fullPath);
|
|
93
|
+
console.log("deleted symlink", fullPath);
|
|
94
|
+
} catch (e) {
|
|
95
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (stat.isDirectory()) {
|
|
100
|
+
const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
101
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
102
|
+
del(subdir[i]);
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
fs2.rmdirSync(fullPath);
|
|
106
|
+
console.log("deleted", fullPath);
|
|
107
|
+
} catch (_e) {
|
|
108
|
+
try {
|
|
109
|
+
fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
110
|
+
console.log("deleted", fullPath);
|
|
111
|
+
} catch (ee) {
|
|
112
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
fs2.unlinkSync(fullPath);
|
|
119
|
+
console.log("deleted", fullPath);
|
|
120
|
+
} catch (_e) {
|
|
121
|
+
try {
|
|
122
|
+
fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
123
|
+
console.log("deleted", fullPath);
|
|
124
|
+
} catch (ee) {
|
|
125
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
} catch (err) {
|
|
129
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
module2.exports.del = del;
|
|
133
|
+
function delStream(globStream) {
|
|
134
|
+
globStream.stream().on("data", (result) => {
|
|
135
|
+
const fullPath = path2.resolve(process.cwd(), result);
|
|
136
|
+
try {
|
|
137
|
+
if (fs2.existsSync(fullPath)) {
|
|
138
|
+
const stat = fs2.lstatSync(fullPath);
|
|
139
|
+
if (stat.isSymbolicLink()) {
|
|
140
|
+
try {
|
|
141
|
+
fs2.unlinkSync(fullPath);
|
|
142
|
+
console.log("deleted symlink", fullPath);
|
|
143
|
+
} catch (e) {
|
|
144
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
145
|
+
}
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (stat.isDirectory()) {
|
|
149
|
+
const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
150
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
151
|
+
del(subdir[i]);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
del(fullPath);
|
|
156
|
+
} catch (err) {
|
|
157
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
module2.exports.delStream = delStream;
|
|
162
|
+
function getFileTreeString(hashArray) {
|
|
163
|
+
const tree = {};
|
|
164
|
+
const hashMap = {};
|
|
165
|
+
for (const entry of hashArray) {
|
|
166
|
+
const [filePath, hash] = entry.split(" ");
|
|
167
|
+
hashMap[filePath] = hash;
|
|
168
|
+
const parts = filePath.split("/");
|
|
169
|
+
let current = tree;
|
|
170
|
+
for (let i = 0; i < parts.length; i++) {
|
|
171
|
+
const part = parts[i];
|
|
172
|
+
if (i === parts.length - 1) {
|
|
173
|
+
current[part] = null;
|
|
174
|
+
} else {
|
|
175
|
+
current[part] = current[part] || {};
|
|
176
|
+
current = current[part];
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function printNode(node, prefix = "", parentPath = "") {
|
|
181
|
+
const keys = Object.keys(node).sort();
|
|
182
|
+
let lines = [];
|
|
183
|
+
keys.forEach((key, idx) => {
|
|
184
|
+
const isLast = idx === keys.length - 1;
|
|
185
|
+
const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
|
|
186
|
+
const currentPath = parentPath ? parentPath + "/" + key : key;
|
|
187
|
+
if (node[key] === null) {
|
|
188
|
+
lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
|
|
189
|
+
} else {
|
|
190
|
+
lines.push(prefix + branch + key + "/");
|
|
191
|
+
lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
return lines;
|
|
195
|
+
}
|
|
196
|
+
return printNode(tree, "", "").join("\n");
|
|
197
|
+
}
|
|
198
|
+
module2.exports.getFileTreeString = getFileTreeString;
|
|
199
|
+
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
200
|
+
module2.exports.delay = delay;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
// src/file/copy-cli.mjs
|
|
205
|
+
init_cjs_shims();
|
|
206
|
+
var import_utils = __toESM(require_utils(), 1);
|
|
207
|
+
|
|
208
|
+
// src/file/copy.mjs
|
|
209
|
+
init_cjs_shims();
|
|
210
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
211
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
212
|
+
async function copy(src, dest) {
|
|
213
|
+
if (!await import_fs_extra.default.pathExists(src)) {
|
|
214
|
+
throw new Error(`Source file does not exist: ${src}`);
|
|
215
|
+
}
|
|
216
|
+
const srcStat = await import_fs_extra.default.stat(src);
|
|
217
|
+
let finalDest = dest;
|
|
218
|
+
if (srcStat.isFile()) {
|
|
219
|
+
const destExists = await import_fs_extra.default.pathExists(dest);
|
|
220
|
+
const destStat = destExists ? await import_fs_extra.default.stat(dest) : null;
|
|
221
|
+
if (destStat && destStat.isDirectory()) {
|
|
222
|
+
finalDest = import_upath.default.join(dest, import_upath.default.basename(src));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
await import_fs_extra.default.ensureDir(import_upath.default.dirname(finalDest));
|
|
226
|
+
await import_fs_extra.default.copy(src, finalDest, { overwrite: true });
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// src/file/copy-cli.mjs
|
|
230
|
+
function showHelp(exitCode = 0) {
|
|
231
|
+
console.log(
|
|
232
|
+
`
|
|
233
|
+
Usage:
|
|
234
|
+
copy <src> <dest>
|
|
235
|
+
|
|
236
|
+
Options:
|
|
237
|
+
-h, --help Show this help message
|
|
238
|
+
|
|
239
|
+
Examples:
|
|
240
|
+
copy file.txt backup/file.txt
|
|
241
|
+
copy ./src ./dist
|
|
242
|
+
`.trim()
|
|
243
|
+
);
|
|
244
|
+
process.exit(exitCode);
|
|
245
|
+
}
|
|
246
|
+
async function main() {
|
|
247
|
+
const args = (0, import_utils.getArgs)({
|
|
248
|
+
boolean: ["help", "h"],
|
|
249
|
+
alias: {
|
|
250
|
+
h: "help"
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
if (args.help) {
|
|
254
|
+
showHelp(0);
|
|
255
|
+
}
|
|
256
|
+
const [src, dest] = args._;
|
|
257
|
+
if (!src || !dest) {
|
|
258
|
+
console.error("Error: missing required arguments.\n");
|
|
259
|
+
showHelp(1);
|
|
260
|
+
}
|
|
261
|
+
try {
|
|
262
|
+
await copy(src, dest);
|
|
263
|
+
console.log(`Copied ${src} to ${dest}`);
|
|
264
|
+
} catch (err) {
|
|
265
|
+
console.error(`Error copying file: ${err instanceof Error ? err.message : String(err)}`);
|
|
266
|
+
process.exit(1);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function handleError(err) {
|
|
270
|
+
console.error(`Unexpected error: ${err instanceof Error ? err.message : String(err)}`);
|
|
271
|
+
process.exit(1);
|
|
272
|
+
}
|
|
273
|
+
main().catch(handleError);
|