binary-collections 2.0.12 → 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.cjs +89 -13
- package/binaries/submodule-token.cjs +89 -13
- package/binaries/test-cjs.cjs +89 -13
- package/binaries/test-esm.cjs +89 -13
- package/binaries/yarn-clean.cjs +89 -13
- package/binaries/yc +22 -1
- package/binaries/yc.cjs +89 -13
- 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 +115 -0
- 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/free-chatgpt.md +26 -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 +1 -1
- package/lib/binary-collections/config.mjs +1 -1
- package/lib/binary-collections/findScript.cjs +35 -10
- package/lib/binary-collections/findScript.mjs +2 -2
- package/lib/binary-collections/listScript.cjs +35 -10
- package/lib/binary-collections/listScript.mjs +2 -2
- package/lib/binary-collections.cjs +45 -25
- package/lib/binary-collections.mjs +11 -11
- package/lib/changelog.cjs +7 -12
- package/lib/changelog.mjs +2 -2
- package/lib/{chunk-SPTECFE5.mjs → chunk-2MN4VPV2.mjs} +86 -20
- package/lib/{chunk-V2IBPCEV.mjs → chunk-6C7KTYGZ.mjs} +3 -1
- package/lib/{chunk-5RTXZVCW.mjs → chunk-6RK5UCTP.mjs} +5 -10
- package/lib/{chunk-FB2WKVJD.mjs → chunk-CD3HF3LK.mjs} +67 -35
- package/lib/{chunk-6PU7BAHB.mjs → chunk-FLYSZFLW.mjs} +1 -1
- package/lib/chunk-KLKAIFKI.mjs +40 -0
- package/lib/chunk-LVSPEFU2.mjs +86 -0
- package/lib/{chunk-2LSRSEXF.mjs → chunk-MGPYPKIE.mjs} +2 -2
- package/lib/{chunk-ZOWVMII3.mjs → chunk-NQXUYO67.mjs} +35 -10
- package/lib/{chunk-C6D2TTYU.mjs → chunk-OBXLTXFJ.mjs} +4 -2
- package/lib/chunk-QD4T255Z.mjs +40 -0
- package/lib/{chunk-XPJGCDOD.mjs → chunk-QII2EKCS.mjs} +14 -2
- package/lib/chunk-RDGDLSPD.mjs +76 -0
- package/lib/{chunk-NCZPTKDV.mjs → chunk-RDN6HF5Z.mjs} +1 -1
- package/lib/chunk-RJKTSUAX.mjs +123 -0
- package/lib/{chunk-66KDU4TX.mjs → chunk-TBWXE7ST.mjs} +36 -61
- package/lib/{chunk-M3YIYRHT.mjs → chunk-UY5VUEA3.mjs} +1 -1
- package/lib/chunk-WSHVPGNM.mjs +44 -0
- package/lib/{chunk-G5UUEWUO.mjs → chunk-X2B3X7D4.mjs} +1 -1
- package/lib/clean-github-actions-caches-cli.cjs +255 -213
- package/lib/clean-github-actions-caches-cli.mjs +25 -7
- package/lib/clean-github-actions-caches.cjs +231 -35
- package/lib/clean-github-actions-caches.d.cts +39 -1
- package/lib/clean-github-actions-caches.mjs +2 -1
- package/lib/cross-env/command.cjs +2 -2
- package/lib/cross-env/command.js +2 -2
- package/lib/cross-env/command.mjs +2 -2
- package/lib/cross-env/index.cjs +2 -2
- package/lib/cross-env/index.mjs +3 -3
- package/lib/cross-env/variable.mjs +2 -2
- package/lib/del-gradle.cjs +6 -11
- package/lib/del-gradle.mjs +1 -1
- package/lib/del-node-modules.cjs +185 -3
- package/lib/del-node-modules.js +3 -3
- package/lib/del-node-modules.mjs +6 -3
- package/lib/{del-ps.cjs → del-ps-cli.cjs} +36 -41
- package/lib/del-ps-cli.mjs +44 -0
- package/lib/del-yarn-caches.cjs +6 -11
- 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 +183 -2
- package/lib/file/copy-cli.mjs +6 -2
- package/lib/file/move-cli.cjs +183 -2
- package/lib/file/move-cli.mjs +6 -2
- package/lib/find-node-modules-cli.cjs +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 +6 -11
- package/lib/free-chatgpt.mjs +1 -1
- package/lib/git/user-config.cjs +7 -12
- package/lib/git/user-config.mjs +2 -2
- package/lib/git-diff-cli.cjs +91 -30
- package/lib/git-diff-cli.mjs +3 -3
- package/lib/git-diff.cjs +91 -30
- package/lib/git-diff.js +85 -28
- package/lib/git-diff.mjs +3 -3
- package/lib/git-fix.cjs +7 -12
- package/lib/git-fix.mjs +2 -2
- package/lib/git-purge.cjs +7 -12
- package/lib/git-purge.mjs +2 -2
- package/lib/index.cjs +1 -1
- package/lib/index.mjs +1 -1
- package/lib/node-cache-cleaner-cli.cjs +185 -2
- package/lib/node-cache-cleaner-cli.js +2 -5
- package/lib/node-cache-cleaner-cli.mjs +8 -4
- package/lib/node-executor.cjs +183 -2
- package/lib/node-executor.mjs +5 -2
- 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 +7 -12
- package/lib/npm-run-series.mjs +2 -2
- package/lib/package-resolutions-updater-cli.cjs +73 -76
- package/lib/package-resolutions-updater-cli.mjs +4 -3
- package/lib/package-resolutions-updater.cjs +71 -74
- package/lib/package-resolutions-updater.d.mts +34 -0
- package/lib/package-resolutions-updater.mjs +3 -2
- package/lib/php-cs-fixer-staged.cjs +1 -1
- package/lib/php-cs-fixer-staged.mjs +1 -1
- package/lib/print-directory-tree.cjs +16 -18
- 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/index.cjs +10 -10
- package/lib/ps/index.mjs +4 -4
- package/lib/ps/table-parser.d.ts +3 -4
- package/lib/ps/table-parser.js +9 -16
- package/lib/remove-module.cjs +17 -22
- package/lib/remove-module.mjs +2 -2
- package/lib/rm-node-module-cli.cjs +171 -4
- package/lib/rm-node-module-cli.mjs +7 -4
- 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/{ps/isWin.mjs → run-by-checksum/hash.mjs} +5 -5
- 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 +8 -13
- package/lib/submodule-install.mjs +3 -3
- package/lib/submodule-remove-cli.cjs +169 -2
- package/lib/submodule-remove-cli.js +2 -2
- package/lib/submodule-remove-cli.mjs +5 -2
- 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/index.cjs +5 -10
- package/lib/utils/index.d.cts +2 -9
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/isWindows.mjs +3 -1
- package/lib/utils/runBash.cjs +1 -1
- package/lib/utils/runBash.mjs +1 -1
- package/lib/yarn-per-branch-lock-installer.cjs +202 -11
- package/lib/yarn-per-branch-lock-installer.mjs +24 -11
- package/lib/yarn-reinstall.cjs +6 -11
- package/lib/yarn-reinstall.mjs +1 -1
- package/package.json +35 -10
- package/readme.html +2 -2
- package/readme.md +5 -5
- package/releases/readme.md +6 -3
- 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/.opencode/package.json +0 -5
- package/lib/chunk-6S4NXESK.mjs +0 -26
- package/lib/del-ps.js +0 -32
- package/lib/del-ps.mjs +0 -43
- package/lib/ps/isWin.cjs +0 -26
- package/lib/ps/isWin.d.ts +0 -2
- package/lib/ps/isWin.js +0 -4
- package/test/package.json +0 -20
- package/test-project/package.json +0 -22
- package/test-project/workspaces/workspace-a/package.json +0 -135
- package/test-project/workspaces/workspace-a/test/demo/package.json +0 -25
- package/test-project/workspaces/workspace-b/package.json +0 -139
- package/test-project/workspaces/workspace-b/test/sample-project/package.json +0 -7
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/package.json +0 -96
- package/tmp/rm-node-modules-test-project/package.json +0 -17
- package/tmp/rm-node-modules-test-project/packages/workspace-a/package.json +0 -16
- package/tmp/rm-node-modules-test-project/packages/workspace-b/package.json +0 -16
- package/tmp/test-repo/package.json +0 -17
- /package/lib/{del-ps.d.ts → del-ps-cli.d.mts} +0 -0
package/lib/rmpath.cjs
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
6
|
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
7
|
var __export = (target, all) => {
|
|
15
8
|
for (var name in all)
|
|
16
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -33,187 +26,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
33
26
|
));
|
|
34
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
28
|
|
|
36
|
-
// node_modules/tsup/assets/cjs_shims.js
|
|
37
|
-
var getImportMetaUrl, importMetaUrl;
|
|
38
|
-
var init_cjs_shims = __esm({
|
|
39
|
-
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
40
|
-
getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
41
|
-
importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// src/utils/index.cjs
|
|
46
|
-
var require_utils = __commonJS({
|
|
47
|
-
"src/utils/index.cjs"(exports2, module2) {
|
|
48
|
-
init_cjs_shims();
|
|
49
|
-
var fs2 = require("fs");
|
|
50
|
-
var path2 = require("upath");
|
|
51
|
-
var argv2 = require("minimist")(process.argv.slice(2));
|
|
52
|
-
var { exec } = require("child_process");
|
|
53
|
-
var { URL: URL2 } = require("url");
|
|
54
|
-
var { promisify } = require("util");
|
|
55
|
-
var execAsync = promisify(exec);
|
|
56
|
-
async function parseGitRemotes() {
|
|
57
|
-
try {
|
|
58
|
-
const { stdout } = await execAsync("git remote -v");
|
|
59
|
-
const lines = stdout.split("\n");
|
|
60
|
-
const remotes = {};
|
|
61
|
-
lines.forEach((line) => {
|
|
62
|
-
const [name, url] = line.split(" ");
|
|
63
|
-
if (name && url) {
|
|
64
|
-
const [repoUrl] = url.split(" ");
|
|
65
|
-
try {
|
|
66
|
-
const parsedUrl = new URL2(repoUrl);
|
|
67
|
-
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
68
|
-
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
69
|
-
let repoPath = pathParts.join("/");
|
|
70
|
-
if (repoPath.endsWith(".git")) {
|
|
71
|
-
repoPath = repoPath.slice(0, -4);
|
|
72
|
-
}
|
|
73
|
-
remotes[name] = repoPath;
|
|
74
|
-
}
|
|
75
|
-
} catch (e) {
|
|
76
|
-
console.error("URL Parsing Error:", e.message);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
return remotes;
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error("Error:", error.message);
|
|
83
|
-
return {};
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
87
|
-
function joinPathPreserveDriveLetter(...segments) {
|
|
88
|
-
let fullPath = require("path").join(...segments);
|
|
89
|
-
if (/^[a-z]:\\/.test(fullPath)) {
|
|
90
|
-
fullPath = fullPath.charAt(0).toUpperCase() + fullPath.slice(1);
|
|
91
|
-
}
|
|
92
|
-
return fullPath;
|
|
93
|
-
}
|
|
94
|
-
module2.exports.joinPathPreserveDriveLetter = joinPathPreserveDriveLetter;
|
|
95
|
-
function getArgs2() {
|
|
96
|
-
return argv2;
|
|
97
|
-
}
|
|
98
|
-
module2.exports.getArgs = getArgs2;
|
|
99
|
-
function del(fullPath) {
|
|
100
|
-
try {
|
|
101
|
-
if (!fs2.existsSync(fullPath)) return;
|
|
102
|
-
const stat = fs2.lstatSync(fullPath);
|
|
103
|
-
if (stat.isSymbolicLink()) {
|
|
104
|
-
try {
|
|
105
|
-
fs2.unlinkSync(fullPath);
|
|
106
|
-
console.log("deleted symlink", fullPath);
|
|
107
|
-
} catch (e) {
|
|
108
|
-
console.log("failed delete symlink", fullPath, e && e.message);
|
|
109
|
-
}
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (stat.isDirectory()) {
|
|
113
|
-
const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
114
|
-
for (let i = 0; i < subdir.length; i++) {
|
|
115
|
-
del(subdir[i]);
|
|
116
|
-
}
|
|
117
|
-
try {
|
|
118
|
-
fs2.rmdirSync(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
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
try {
|
|
131
|
-
fs2.unlinkSync(fullPath);
|
|
132
|
-
console.log("deleted", fullPath);
|
|
133
|
-
} catch (_e) {
|
|
134
|
-
try {
|
|
135
|
-
fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
136
|
-
console.log("deleted", fullPath);
|
|
137
|
-
} catch (ee) {
|
|
138
|
-
console.log("failed delete", fullPath, ee && ee.message);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
} catch (err) {
|
|
142
|
-
console.log("failed delete", fullPath, err && err.message);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
module2.exports.del = del;
|
|
146
|
-
function delStream(globStream) {
|
|
147
|
-
globStream.stream().on("data", (result) => {
|
|
148
|
-
const fullPath = path2.resolve(process.cwd(), result);
|
|
149
|
-
try {
|
|
150
|
-
if (fs2.existsSync(fullPath)) {
|
|
151
|
-
const stat = fs2.lstatSync(fullPath);
|
|
152
|
-
if (stat.isSymbolicLink()) {
|
|
153
|
-
try {
|
|
154
|
-
fs2.unlinkSync(fullPath);
|
|
155
|
-
console.log("deleted symlink", fullPath);
|
|
156
|
-
} catch (e) {
|
|
157
|
-
console.log("failed delete symlink", fullPath, e && e.message);
|
|
158
|
-
}
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
if (stat.isDirectory()) {
|
|
162
|
-
const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
163
|
-
for (let i = 0; i < subdir.length; i++) {
|
|
164
|
-
del(subdir[i]);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
del(fullPath);
|
|
169
|
-
} catch (err) {
|
|
170
|
-
console.log("failed processing", fullPath, err && err.message);
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
module2.exports.delStream = delStream;
|
|
175
|
-
function getFileTreeString(hashArray) {
|
|
176
|
-
const tree = {};
|
|
177
|
-
const hashMap = {};
|
|
178
|
-
for (const entry of hashArray) {
|
|
179
|
-
const [filePath, hash] = entry.split(" ");
|
|
180
|
-
hashMap[filePath] = hash;
|
|
181
|
-
const parts = filePath.split("/");
|
|
182
|
-
let current = tree;
|
|
183
|
-
for (let i = 0; i < parts.length; i++) {
|
|
184
|
-
const part = parts[i];
|
|
185
|
-
if (i === parts.length - 1) {
|
|
186
|
-
current[part] = null;
|
|
187
|
-
} else {
|
|
188
|
-
current[part] = current[part] || {};
|
|
189
|
-
current = current[part];
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
function printNode(node, prefix = "", parentPath = "") {
|
|
194
|
-
const keys = Object.keys(node).sort();
|
|
195
|
-
let lines = [];
|
|
196
|
-
keys.forEach((key, idx) => {
|
|
197
|
-
const isLast = idx === keys.length - 1;
|
|
198
|
-
const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
|
|
199
|
-
const currentPath = parentPath ? parentPath + "/" + key : key;
|
|
200
|
-
if (node[key] === null) {
|
|
201
|
-
lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
|
|
202
|
-
} else {
|
|
203
|
-
lines.push(prefix + branch + key + "/");
|
|
204
|
-
lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
return lines;
|
|
208
|
-
}
|
|
209
|
-
return printNode(tree, "", "").join("\n");
|
|
210
|
-
}
|
|
211
|
-
module2.exports.getFileTreeString = getFileTreeString;
|
|
212
|
-
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
213
|
-
module2.exports.delay = delay;
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
|
|
217
29
|
// src/rmpath.mjs
|
|
218
30
|
var rmpath_exports = {};
|
|
219
31
|
__export(rmpath_exports, {
|
|
@@ -222,21 +34,23 @@ __export(rmpath_exports, {
|
|
|
222
34
|
resolveDeletePatterns: () => resolveDeletePatterns
|
|
223
35
|
});
|
|
224
36
|
module.exports = __toCommonJS(rmpath_exports);
|
|
225
|
-
|
|
37
|
+
|
|
38
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
39
|
+
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
40
|
+
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
41
|
+
|
|
42
|
+
// src/rmpath.mjs
|
|
226
43
|
var import_dotenv = __toESM(require("dotenv"), 1);
|
|
227
44
|
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
228
45
|
var glob = __toESM(require("glob"), 1);
|
|
229
46
|
var import_upath = __toESM(require("upath"), 1);
|
|
230
47
|
var import_url = require("url");
|
|
231
|
-
var import_utils = __toESM(require_utils(), 1);
|
|
232
48
|
var __filename2 = (0, import_url.fileURLToPath)(importMetaUrl);
|
|
233
49
|
var __dirname = import_upath.default.dirname(__filename2);
|
|
234
50
|
var dotenvPath = import_upath.default.resolve(process.cwd(), ".env");
|
|
235
51
|
if (import_fs_extra.default.existsSync(dotenvPath)) {
|
|
236
52
|
import_dotenv.default.config({ path: dotenvPath, override: true, quiet: true });
|
|
237
53
|
}
|
|
238
|
-
var argv = (0, import_utils.getArgs)();
|
|
239
|
-
var positional = argv._ || [];
|
|
240
54
|
var deletePatterns = [];
|
|
241
55
|
function resolveDeletePatterns(targetPath) {
|
|
242
56
|
if (import_fs_extra.default.existsSync(targetPath) && import_fs_extra.default.lstatSync(targetPath).isFile()) {
|
|
@@ -289,31 +103,6 @@ async function deleteMainScript(targetPath) {
|
|
|
289
103
|
} catch (_e) {
|
|
290
104
|
}
|
|
291
105
|
}
|
|
292
|
-
var isMain = false;
|
|
293
|
-
try {
|
|
294
|
-
if (typeof require !== "undefined" && typeof module !== "undefined" && require.main === module) {
|
|
295
|
-
isMain = true;
|
|
296
|
-
}
|
|
297
|
-
} catch (_e) {
|
|
298
|
-
}
|
|
299
|
-
try {
|
|
300
|
-
const mainArg = process.argv[1] && import_upath.default.resolve(process.argv[1]);
|
|
301
|
-
if (mainArg && importMetaUrl === (0, import_url.pathToFileURL)(mainArg).href) {
|
|
302
|
-
isMain = true;
|
|
303
|
-
}
|
|
304
|
-
} catch (_e) {
|
|
305
|
-
}
|
|
306
|
-
if (isMain) {
|
|
307
|
-
console.log("Invoked from CLI");
|
|
308
|
-
if (positional.length === 0) {
|
|
309
|
-
console.error("You need to provide a file or folder path");
|
|
310
|
-
process.exit(1);
|
|
311
|
-
} else {
|
|
312
|
-
deleteMainScript(positional[0]);
|
|
313
|
-
}
|
|
314
|
-
} else {
|
|
315
|
-
console.log("Not invoked from CLI");
|
|
316
|
-
}
|
|
317
106
|
// Annotate the CommonJS export names for ESM import in node:
|
|
318
107
|
0 && (module.exports = {
|
|
319
108
|
deleteMainScript,
|
package/lib/rmpath.mjs
CHANGED
|
@@ -1,106 +1,10 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
init_esm_shims
|
|
9
|
-
} from "./chunk-QQ4A6DLD.mjs";
|
|
10
|
-
|
|
11
|
-
// src/rmpath.mjs
|
|
12
|
-
init_esm_shims();
|
|
13
|
-
var import_utils = __toESM(require_utils(), 1);
|
|
14
|
-
import dotenv from "dotenv";
|
|
15
|
-
import fs from "fs-extra";
|
|
16
|
-
import * as glob from "glob";
|
|
17
|
-
import path from "upath";
|
|
18
|
-
import { fileURLToPath, pathToFileURL } from "url";
|
|
19
|
-
var __filename = fileURLToPath(import.meta.url);
|
|
20
|
-
var __dirname = path.dirname(__filename);
|
|
21
|
-
var dotenvPath = path.resolve(process.cwd(), ".env");
|
|
22
|
-
if (fs.existsSync(dotenvPath)) {
|
|
23
|
-
dotenv.config({ path: dotenvPath, override: true, quiet: true });
|
|
24
|
-
}
|
|
25
|
-
var argv = (0, import_utils.getArgs)();
|
|
26
|
-
var positional = argv._ || [];
|
|
27
|
-
var deletePatterns = [];
|
|
28
|
-
function resolveDeletePatterns(targetPath) {
|
|
29
|
-
if (fs.existsSync(targetPath) && fs.lstatSync(targetPath).isFile()) {
|
|
30
|
-
deletePatterns.push(targetPath);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const vowels = ["a", "i", "u", "e", "o", "A", "I", "U", "E", "O"];
|
|
34
|
-
const letters = [];
|
|
35
|
-
for (let i = 97; i <= 122; i++) letters.push(String.fromCharCode(i));
|
|
36
|
-
for (let i = 65; i <= 90; i++) letters.push(String.fromCharCode(i));
|
|
37
|
-
for (const letter of letters) {
|
|
38
|
-
for (const vowel of vowels) {
|
|
39
|
-
deletePatterns.push(
|
|
40
|
-
`.${letter}*`,
|
|
41
|
-
`@${letter}*`,
|
|
42
|
-
`${letter}*`,
|
|
43
|
-
`@${letter}${vowel}*`,
|
|
44
|
-
`.${letter}${vowel}*`,
|
|
45
|
-
`${letter}${vowel}*`
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function deleteMatchingFiles(baseDir) {
|
|
51
|
-
for (const pattern of deletePatterns) {
|
|
52
|
-
if (fs.existsSync(pattern)) {
|
|
53
|
-
fs.rmSync(pattern, { recursive: true, force: true });
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
const matches = glob.sync(path.join(baseDir, pattern), { dot: true, nocase: true });
|
|
57
|
-
for (const fpath of matches) {
|
|
58
|
-
try {
|
|
59
|
-
console.log(`deleting ${fpath}`);
|
|
60
|
-
fs.rmSync(fpath, { recursive: true, force: true });
|
|
61
|
-
} catch (_e) {
|
|
62
|
-
console.error(`cannot delete ${fpath}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
async function deleteMainScript(targetPath) {
|
|
68
|
-
if (!fs.existsSync(targetPath)) {
|
|
69
|
-
targetPath = path.resolve(process.cwd(), targetPath);
|
|
70
|
-
}
|
|
71
|
-
resolveDeletePatterns(targetPath);
|
|
72
|
-
await deleteMatchingFiles(targetPath);
|
|
73
|
-
console.log(`cleaning ${targetPath}`);
|
|
74
|
-
try {
|
|
75
|
-
fs.rmSync(targetPath, { recursive: true, force: true });
|
|
76
|
-
} catch (_e) {
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
var isMain = false;
|
|
80
|
-
try {
|
|
81
|
-
if (typeof __require !== "undefined" && typeof module !== "undefined" && __require.main === module) {
|
|
82
|
-
isMain = true;
|
|
83
|
-
}
|
|
84
|
-
} catch (_e) {
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
const mainArg = process.argv[1] && path.resolve(process.argv[1]);
|
|
88
|
-
if (mainArg && import.meta.url === pathToFileURL(mainArg).href) {
|
|
89
|
-
isMain = true;
|
|
90
|
-
}
|
|
91
|
-
} catch (_e) {
|
|
92
|
-
}
|
|
93
|
-
if (isMain) {
|
|
94
|
-
console.log("Invoked from CLI");
|
|
95
|
-
if (positional.length === 0) {
|
|
96
|
-
console.error("You need to provide a file or folder path");
|
|
97
|
-
process.exit(1);
|
|
98
|
-
} else {
|
|
99
|
-
deleteMainScript(positional[0]);
|
|
100
|
-
}
|
|
101
|
-
} else {
|
|
102
|
-
console.log("Not invoked from CLI");
|
|
103
|
-
}
|
|
3
|
+
deleteMainScript,
|
|
4
|
+
deleteMatchingFiles,
|
|
5
|
+
resolveDeletePatterns
|
|
6
|
+
} from "./chunk-RDGDLSPD.mjs";
|
|
7
|
+
import "./chunk-QQ4A6DLD.mjs";
|
|
104
8
|
export {
|
|
105
9
|
deleteMainScript,
|
|
106
10
|
deleteMatchingFiles,
|
|
@@ -0,0 +1,69 @@
|
|
|
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/run-by-checksum/cache.js
|
|
30
|
+
var cache_exports = {};
|
|
31
|
+
__export(cache_exports, {
|
|
32
|
+
getCacheFile: () => getCacheFile,
|
|
33
|
+
loadCache: () => loadCache,
|
|
34
|
+
saveCache: () => saveCache
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(cache_exports);
|
|
37
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
38
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
39
|
+
var import_crypto = __toESM(require("crypto"), 1);
|
|
40
|
+
function md5(str) {
|
|
41
|
+
return import_crypto.default.createHash("md5").update(str).digest("hex");
|
|
42
|
+
}
|
|
43
|
+
function getCacheFile({ patterns, ignore, cwd }) {
|
|
44
|
+
const root = cwd || process.env.INIT_CWD || process.cwd();
|
|
45
|
+
const key = md5(
|
|
46
|
+
JSON.stringify({
|
|
47
|
+
patterns: [...patterns].sort(),
|
|
48
|
+
ignore: [...ignore].sort()
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
return import_upath.default.join(root, "tmp", ".checksum", `${key}.json`);
|
|
52
|
+
}
|
|
53
|
+
function loadCache(file) {
|
|
54
|
+
try {
|
|
55
|
+
return import_fs_extra.default.readJsonSync(file);
|
|
56
|
+
} catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function saveCache(file, data) {
|
|
61
|
+
import_fs_extra.default.ensureDirSync(import_upath.default.dirname(file));
|
|
62
|
+
import_fs_extra.default.writeJsonSync(file, data, { spaces: 2 });
|
|
63
|
+
}
|
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
+
0 && (module.exports = {
|
|
66
|
+
getCacheFile,
|
|
67
|
+
loadCache,
|
|
68
|
+
saveCache
|
|
69
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{ patterns: string[], ignore: string[], cwd?: string }} options
|
|
3
|
+
* @returns {string}
|
|
4
|
+
*/
|
|
5
|
+
export function getCacheFile({ patterns, ignore, cwd }: {
|
|
6
|
+
patterns: string[];
|
|
7
|
+
ignore: string[];
|
|
8
|
+
cwd?: string;
|
|
9
|
+
}): string;
|
|
10
|
+
/**
|
|
11
|
+
* @param {string} file
|
|
12
|
+
* @returns {object|null}
|
|
13
|
+
*/
|
|
14
|
+
export function loadCache(file: string): object | null;
|
|
15
|
+
/**
|
|
16
|
+
* @param {string} file
|
|
17
|
+
* @param {object} data
|
|
18
|
+
*/
|
|
19
|
+
export function saveCache(file: string, data: object): void;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getCacheFile = getCacheFile;
|
|
7
|
+
exports.loadCache = loadCache;
|
|
8
|
+
exports.saveCache = saveCache;
|
|
9
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
|
+
const upath_1 = __importDefault(require("upath"));
|
|
11
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} str
|
|
14
|
+
* @returns {string}
|
|
15
|
+
*/
|
|
16
|
+
function md5(str) {
|
|
17
|
+
return crypto_1.default.createHash('md5').update(str).digest('hex');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @param {{ patterns: string[], ignore: string[], cwd?: string }} options
|
|
21
|
+
* @returns {string}
|
|
22
|
+
*/
|
|
23
|
+
function getCacheFile({ patterns, ignore, cwd }) {
|
|
24
|
+
const root = cwd || process.env.INIT_CWD || process.cwd();
|
|
25
|
+
const key = md5(JSON.stringify({
|
|
26
|
+
patterns: [...patterns].sort(),
|
|
27
|
+
ignore: [...ignore].sort()
|
|
28
|
+
}));
|
|
29
|
+
return upath_1.default.join(root, 'tmp', '.checksum', `${key}.json`);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @param {string} file
|
|
33
|
+
* @returns {object|null}
|
|
34
|
+
*/
|
|
35
|
+
function loadCache(file) {
|
|
36
|
+
try {
|
|
37
|
+
return fs_extra_1.default.readJsonSync(file);
|
|
38
|
+
}
|
|
39
|
+
catch (_a) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @param {string} file
|
|
45
|
+
* @param {object} data
|
|
46
|
+
*/
|
|
47
|
+
function saveCache(file, data) {
|
|
48
|
+
fs_extra_1.default.ensureDirSync(upath_1.default.dirname(file));
|
|
49
|
+
fs_extra_1.default.writeJsonSync(file, data, { spaces: 2 });
|
|
50
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getCacheFile,
|
|
4
|
+
loadCache,
|
|
5
|
+
saveCache
|
|
6
|
+
} from "../chunk-QD4T255Z.mjs";
|
|
7
|
+
import "../chunk-QQ4A6DLD.mjs";
|
|
8
|
+
export {
|
|
9
|
+
getCacheFile,
|
|
10
|
+
loadCache,
|
|
11
|
+
saveCache
|
|
12
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
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/run-by-checksum/hash.js
|
|
30
|
+
var hash_exports = {};
|
|
31
|
+
__export(hash_exports, {
|
|
32
|
+
buildChecksum: () => buildChecksum,
|
|
33
|
+
getAllFiles: () => getAllFiles
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(hash_exports);
|
|
36
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
37
|
+
var glob = __toESM(require("glob"), 1);
|
|
38
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
39
|
+
var import_upath2 = __toESM(require("upath"), 1);
|
|
40
|
+
var import_crypto = __toESM(require("crypto"), 1);
|
|
41
|
+
function getAllFiles({ patterns, ignore, cwd }) {
|
|
42
|
+
const files = /* @__PURE__ */ new Set();
|
|
43
|
+
const root = cwd || process.cwd();
|
|
44
|
+
for (const pattern of patterns) {
|
|
45
|
+
const matched = glob.sync(pattern, {
|
|
46
|
+
cwd: root,
|
|
47
|
+
nodir: true,
|
|
48
|
+
ignore
|
|
49
|
+
});
|
|
50
|
+
for (const f of matched) {
|
|
51
|
+
files.add(import_upath.default.normalize(import_upath2.default.resolve(root, f)));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return [...files].sort();
|
|
55
|
+
}
|
|
56
|
+
function hashFile(file) {
|
|
57
|
+
const content = import_fs_extra.default.readFileSync(file);
|
|
58
|
+
return import_crypto.default.createHash("sha256").update(content).digest("hex");
|
|
59
|
+
}
|
|
60
|
+
function buildChecksum(files) {
|
|
61
|
+
const hash = import_crypto.default.createHash("sha256");
|
|
62
|
+
for (const file of files) {
|
|
63
|
+
hash.update(file);
|
|
64
|
+
hash.update(hashFile(file));
|
|
65
|
+
}
|
|
66
|
+
return hash.digest("hex");
|
|
67
|
+
}
|
|
68
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
+
0 && (module.exports = {
|
|
70
|
+
buildChecksum,
|
|
71
|
+
getAllFiles
|
|
72
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{ patterns: string[], ignore: string[], cwd?: string }} options
|
|
3
|
+
* @returns {string[]}
|
|
4
|
+
*/
|
|
5
|
+
export function getAllFiles({ patterns, ignore, cwd }: {
|
|
6
|
+
patterns: string[];
|
|
7
|
+
ignore: string[];
|
|
8
|
+
cwd?: string;
|
|
9
|
+
}): string[];
|
|
10
|
+
/**
|
|
11
|
+
* @param {string[]} files
|
|
12
|
+
* @returns {string}
|
|
13
|
+
*/
|
|
14
|
+
export function buildChecksum(files: string[]): string;
|