binary-collections 2.0.14 → 2.0.15
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/plugins/opencode-request-logger/README.md +44 -0
- package/.venv/Lib/site-packages/pyarrow/tests/data/orc/README.md +22 -0
- package/docs-src/install-opencode-plugins.md +86 -0
- package/docs-src/opencode-cli.md +38 -10
- package/lib/binary-collections/config-types.cjs +17 -0
- package/lib/binary-collections/config-types.d.ts +12 -0
- package/lib/binary-collections/config-types.js +2 -0
- package/lib/binary-collections/config-types.mjs +7 -0
- package/lib/binary-collections/config.cjs +16 -8
- package/lib/binary-collections/config.d.cts +18 -10
- package/lib/binary-collections/config.mjs +1 -1
- package/lib/binary-collections/findScript.cjs +8 -6
- package/lib/binary-collections/findScript.mjs +2 -2
- package/lib/binary-collections/listScript.cjs +8 -6
- package/lib/binary-collections/listScript.mjs +2 -2
- package/lib/binary-collections.cjs +8 -6
- package/lib/binary-collections.mjs +3 -3
- package/lib/changelog.cjs +142 -4
- package/lib/changelog.mjs +9 -5
- package/lib/{chunk-SARIXFHP.mjs → chunk-3T6AMFI3.mjs} +16 -8
- package/lib/{chunk-3F6EIHYG.mjs → chunk-3ZF2QMDK.mjs} +3 -3
- package/lib/chunk-B77D3SR4.mjs +28 -0
- package/lib/chunk-BPED62FN.mjs +115 -0
- package/lib/{chunk-XI67TI46.mjs → chunk-DHFRWM2W.mjs} +1 -1
- package/lib/{chunk-2SJKVOTN.mjs → chunk-DPEE3FBB.mjs} +1 -1
- package/lib/{chunk-UYNBNLV5.mjs → chunk-H7AE4IO3.mjs} +1 -1
- package/lib/{chunk-YWSLMAQ7.mjs → chunk-KCJYREA2.mjs} +14 -12
- package/lib/{chunk-JK3MG2KF.mjs → chunk-NHD4HLSU.mjs} +1 -1
- package/lib/{chunk-I3O5ZRYU.mjs → chunk-OWNVMKAA.mjs} +1 -1
- package/lib/chunk-SKVF4TMD.mjs +59 -0
- package/lib/{chunk-SJYP66BO.mjs → chunk-TDUUOAQD.mjs} +1 -1
- package/lib/{chunk-D42YBRZW.mjs → chunk-UAEKSLAX.mjs} +1 -1
- package/lib/chunk-V6PTSDW5.mjs +82 -0
- package/lib/{chunk-AJ3OIYYP.mjs → chunk-WNUEY6VJ.mjs} +8 -6
- package/lib/{chunk-YLV4QATP.mjs → chunk-Z53IUBUN.mjs} +6 -5
- package/lib/{chunk-JMUFQSPE.mjs → chunk-Z7RM46Q4.mjs} +1 -1
- package/lib/cross-env/index.mjs +3 -3
- package/lib/git/git-diff-cli.cjs +16 -8
- package/lib/git/git-diff-cli.mjs +3 -3
- package/lib/git/git-diff.cjs +16 -8
- package/lib/git/git-diff.mjs +3 -3
- package/lib/git/git-fix.cjs +16 -8
- package/lib/git/git-fix.mjs +2 -2
- package/lib/git/user-config.cjs +16 -8
- package/lib/git/user-config.mjs +2 -2
- package/lib/github-workflows/clean-github-actions-caches-cli.cjs +16 -8
- package/lib/github-workflows/clean-github-actions-caches-cli.mjs +2 -2
- package/lib/github-workflows/clean-github-actions-caches.cjs +16 -8
- package/lib/github-workflows/clean-github-actions-caches.mjs +2 -2
- package/lib/github-workflows/get-latest-workflow-status-cli.cjs +16 -8
- package/lib/github-workflows/get-latest-workflow-status-cli.mjs +2 -2
- package/lib/github-workflows/utils.cjs +16 -8
- package/lib/github-workflows/utils.mjs +2 -2
- package/lib/github-workflows/workflow-badge-cli.cjs +16 -8
- package/lib/github-workflows/workflow-badge-cli.mjs +4 -4
- package/lib/node-cache-cleaner-cli.mjs +3 -3
- package/lib/opencode/cli/auth-rotate.cjs +343 -28
- package/lib/opencode/cli/auth-rotate.d.ts +3 -1
- package/lib/opencode/cli/auth-rotate.js +10 -15
- package/lib/opencode/cli/auth-rotate.mjs +6 -2
- package/lib/opencode/cli/auth-rotate.runner.cjs +454 -0
- package/lib/opencode/cli/auth-rotate.runner.d.ts +1 -0
- package/lib/opencode/cli/auth-rotate.runner.js +8 -0
- package/lib/opencode/cli/auth-rotate.runner.mjs +21 -0
- package/lib/opencode/install-opencode-plugins-cli.cjs +82 -0
- package/lib/opencode/install-opencode-plugins-cli.d.ts +1 -0
- package/lib/opencode/install-opencode-plugins-cli.js +78 -0
- package/lib/opencode/install-opencode-plugins-cli.mjs +65 -0
- package/lib/opencode/utils/check-api.cjs +332 -18
- package/lib/opencode/utils/check-api.d.ts +5 -1
- package/lib/opencode/utils/check-api.js +101 -15
- package/lib/opencode/utils/check-api.mjs +5 -1
- package/lib/opencode/utils/check-api.runner.cjs +0 -0
- package/lib/opencode/utils/check-api.runner.d.ts +0 -0
- package/lib/opencode/utils/check-api.runner.js +1 -0
- package/lib/opencode/utils/check-api.runner.mjs +7 -0
- package/lib/opencode-cli.cjs +352 -29
- package/lib/opencode-cli.js +3 -2
- package/lib/opencode-cli.mjs +11 -6
- package/lib/package-resolutions-updater-cli.cjs +16 -8
- package/lib/package-resolutions-updater-cli.mjs +2 -2
- package/lib/package-resolutions-updater.cjs +16 -8
- package/lib/package-resolutions-updater.mjs +2 -2
- package/lib/print-directory-tree.cjs +16 -8
- package/lib/print-directory-tree.mjs +1 -1
- package/lib/print-tarball-tree-cli.cjs +305 -0
- package/lib/print-tarball-tree-cli.d.mts +2 -0
- package/lib/print-tarball-tree-cli.mjs +54 -0
- package/lib/print-tarball-tree.cjs +43 -216
- package/lib/print-tarball-tree.d.mts +4 -1
- package/lib/print-tarball-tree.mjs +12 -66
- package/lib/rmpath-cli.cjs +16 -8
- package/lib/rmpath-cli.mjs +2 -2
- package/lib/rmpath.cjs +16 -8
- package/lib/rmpath.mjs +2 -2
- package/lib/run-by-checksum/hash.cjs +45 -67
- package/lib/run-by-checksum/{hash.d.ts → hash.d.cts} +9 -2
- package/lib/run-by-checksum/hash.mjs +3 -7
- package/lib/run-by-checksum/run.cjs +95 -58
- package/lib/run-by-checksum/run.js +3 -3
- package/lib/run-by-checksum/run.mjs +2 -2
- package/lib/run-by-checksum-cli.cjs +96 -74
- package/lib/run-by-checksum-cli.mjs +2 -2
- package/lib/submodule-install.cjs +16 -8
- package/lib/submodule-install.mjs +1 -1
- package/lib/submodule-remove-cli.cjs +16 -8
- package/lib/submodule-remove-cli.mjs +2 -2
- package/lib/submodule-remove.cjs +16 -8
- package/lib/submodule-remove.mjs +2 -2
- package/lib/utils/isDebug.cjs +13 -0
- package/lib/utils/isDebug.d.cts +9 -0
- package/lib/utils/isDebug.mjs +6 -0
- package/package.json +9 -7
- package/readme.md +63 -0
- package/releases/readme.md +1 -1
- package/lib/chunk-546KAIYT.mjs +0 -113
- package/lib/chunk-5WAOOOGZ.mjs +0 -77
- package/lib/chunk-72XTQ3CK.mjs +0 -45
- package/lib/chunk-7Q6YEUQF.mjs +0 -246
- package/lib/chunk-AQZ7LMFS.mjs +0 -100
- package/lib/chunk-BDCMTOZI.mjs +0 -246
- package/lib/chunk-BEUM4LH4.mjs +0 -184
- package/lib/chunk-BO4TZS4Q.mjs +0 -246
- package/lib/chunk-BZWVHODJ.mjs +0 -62
- package/lib/chunk-CM3IC5YC.mjs +0 -226
- package/lib/chunk-FR3DMHJC.mjs +0 -146
- package/lib/chunk-H44UWUFY.mjs +0 -105
- package/lib/chunk-JVMLKHD2.mjs +0 -62
- package/lib/chunk-KAT2JNLZ.mjs +0 -146
- package/lib/chunk-KRCPFWIF.mjs +0 -193
- package/lib/chunk-LVSPEFU2.mjs +0 -86
- package/lib/chunk-MCCMMZSM.mjs +0 -60
- package/lib/chunk-MGPYPKIE.mjs +0 -109
- package/lib/chunk-OA2RKEY3.mjs +0 -162
- package/lib/chunk-PAZH45HS.mjs +0 -41
- package/lib/chunk-QZMGBDSA.mjs +0 -32
- package/lib/chunk-RDGDLSPD.mjs +0 -76
- package/lib/chunk-RKPIBGKE.mjs +0 -61
- package/lib/chunk-SWUAEY4H.mjs +0 -44
- package/lib/chunk-UAIF5VIA.mjs +0 -89
- package/lib/chunk-UHPFLJXH.mjs +0 -227
- package/lib/chunk-WOC4FZ6F.mjs +0 -164
- package/lib/chunk-WSHVPGNM.mjs +0 -44
- package/lib/run-by-checksum/hash.js +0 -119
- package/readme.html +0 -784
|
@@ -286,25 +286,33 @@ var require_config = __commonJS({
|
|
|
286
286
|
var minimistLib = require("minimist");
|
|
287
287
|
var { findEnvWithToken } = require_findEnvFiles();
|
|
288
288
|
var dotenv = require("dotenv");
|
|
289
|
+
var { cosmiconfig } = require("cosmiconfig");
|
|
289
290
|
var loadDotenv2 = (tokenKey = /ACCESS_TOKEN|GITHUB_TOKEN/) => dotenv.config({ path: findEnvWithToken(void 0, tokenKey), quiet: true, overwrite: true });
|
|
290
291
|
loadDotenv2();
|
|
291
292
|
var cliArgv = minimistLib(process.argv.slice(2), {
|
|
292
293
|
string: ["token"]
|
|
293
294
|
});
|
|
294
295
|
var GITHUB_ACCESS_TOKEN = cliArgv.token || process.env.ACCESS_TOKEN || process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
|
|
295
|
-
function getTempDir() {
|
|
296
|
-
return process.env.TEMP_DIR || path2.join(process.cwd(), "tmp");
|
|
297
|
-
}
|
|
298
296
|
function getTempPath(...segments) {
|
|
299
|
-
return path2.join(
|
|
297
|
+
return path2.join(process.env.TEMP_DIR || path2.join(process.cwd(), "tmp"), ...segments);
|
|
298
|
+
}
|
|
299
|
+
async function getConfig(options = {}) {
|
|
300
|
+
const explorer = cosmiconfig("binary-collections", {
|
|
301
|
+
searchStrategy: "project",
|
|
302
|
+
stopDir: options.stopDir
|
|
303
|
+
});
|
|
304
|
+
try {
|
|
305
|
+
const result = await explorer.search(options.searchFrom);
|
|
306
|
+
return result ? result.config : null;
|
|
307
|
+
} catch {
|
|
308
|
+
return null;
|
|
309
|
+
}
|
|
300
310
|
}
|
|
301
|
-
var TEMP_BASE_DIR = getTempDir();
|
|
302
311
|
module2.exports = {
|
|
303
|
-
getTempDir,
|
|
304
312
|
getTempPath,
|
|
305
|
-
TEMP_BASE_DIR,
|
|
306
313
|
GITHUB_ACCESS_TOKEN,
|
|
307
|
-
loadDotenv: loadDotenv2
|
|
314
|
+
loadDotenv: loadDotenv2,
|
|
315
|
+
getConfig
|
|
308
316
|
};
|
|
309
317
|
}
|
|
310
318
|
});
|
|
@@ -0,0 +1,305 @@
|
|
|
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 __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
27
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
28
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
29
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
30
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
31
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
32
|
+
mod
|
|
33
|
+
));
|
|
34
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
|
+
|
|
36
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
37
|
+
var init_cjs_shims = __esm({
|
|
38
|
+
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// src/utils/index.cjs
|
|
43
|
+
var require_utils = __commonJS({
|
|
44
|
+
"src/utils/index.cjs"(exports2, module2) {
|
|
45
|
+
init_cjs_shims();
|
|
46
|
+
var fs3 = require("fs");
|
|
47
|
+
var path2 = require("upath");
|
|
48
|
+
var minimistLib = require("minimist");
|
|
49
|
+
var argv = minimistLib(process.argv.slice(2));
|
|
50
|
+
var { exec } = require("child_process");
|
|
51
|
+
var { promisify } = require("util");
|
|
52
|
+
var execAsync = promisify(exec);
|
|
53
|
+
async function parseGitRemotes() {
|
|
54
|
+
try {
|
|
55
|
+
const { stdout } = await execAsync("git remote -v");
|
|
56
|
+
const lines = stdout.split("\n");
|
|
57
|
+
const remotes = {};
|
|
58
|
+
lines.forEach((line) => {
|
|
59
|
+
const [name, url] = line.split(" ");
|
|
60
|
+
if (name && url) {
|
|
61
|
+
const [repoUrl] = url.split(" ");
|
|
62
|
+
try {
|
|
63
|
+
const parsedUrl = new URL(repoUrl);
|
|
64
|
+
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
65
|
+
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
66
|
+
let repoPath = pathParts.join("/");
|
|
67
|
+
if (repoPath.endsWith(".git")) {
|
|
68
|
+
repoPath = repoPath.slice(0, -4);
|
|
69
|
+
}
|
|
70
|
+
remotes[name] = repoPath;
|
|
71
|
+
}
|
|
72
|
+
} catch (e) {
|
|
73
|
+
console.error("URL Parsing Error:", e.message);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return remotes;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
console.error("Error:", error.message);
|
|
80
|
+
return {};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
84
|
+
function getArgs2(opts) {
|
|
85
|
+
if (opts) {
|
|
86
|
+
return minimistLib(process.argv.slice(2), opts);
|
|
87
|
+
}
|
|
88
|
+
return argv;
|
|
89
|
+
}
|
|
90
|
+
module2.exports.getArgs = getArgs2;
|
|
91
|
+
function del(fullPath) {
|
|
92
|
+
try {
|
|
93
|
+
if (!fs3.existsSync(fullPath)) return;
|
|
94
|
+
const stat = fs3.lstatSync(fullPath);
|
|
95
|
+
if (stat.isSymbolicLink()) {
|
|
96
|
+
try {
|
|
97
|
+
fs3.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 = fs3.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
106
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
107
|
+
del(subdir[i]);
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
fs3.rmdirSync(fullPath);
|
|
111
|
+
console.log("deleted", fullPath);
|
|
112
|
+
} catch (_e) {
|
|
113
|
+
try {
|
|
114
|
+
fs3.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;
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
fs3.unlinkSync(fullPath);
|
|
124
|
+
console.log("deleted", fullPath);
|
|
125
|
+
} catch (_e) {
|
|
126
|
+
try {
|
|
127
|
+
fs3.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
|
+
}
|
|
132
|
+
}
|
|
133
|
+
} catch (err) {
|
|
134
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
module2.exports.del = del;
|
|
138
|
+
function delStream(globStream) {
|
|
139
|
+
globStream.stream().on("data", (result) => {
|
|
140
|
+
const fullPath = path2.resolve(process.cwd(), result);
|
|
141
|
+
try {
|
|
142
|
+
if (fs3.existsSync(fullPath)) {
|
|
143
|
+
const stat = fs3.lstatSync(fullPath);
|
|
144
|
+
if (stat.isSymbolicLink()) {
|
|
145
|
+
try {
|
|
146
|
+
fs3.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 = fs3.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
|
|
155
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
156
|
+
del(subdir[i]);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
del(fullPath);
|
|
161
|
+
} catch (err) {
|
|
162
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
module2.exports.delStream = delStream;
|
|
167
|
+
function getFileTreeString(hashArray) {
|
|
168
|
+
const tree = {};
|
|
169
|
+
const hashMap = {};
|
|
170
|
+
for (const entry of hashArray) {
|
|
171
|
+
const [filePath, hash] = entry.split(" ");
|
|
172
|
+
hashMap[filePath] = hash;
|
|
173
|
+
const parts = filePath.split("/");
|
|
174
|
+
let current = tree;
|
|
175
|
+
for (let i = 0; i < parts.length; i++) {
|
|
176
|
+
const part = parts[i];
|
|
177
|
+
if (i === parts.length - 1) {
|
|
178
|
+
current[part] = null;
|
|
179
|
+
} else {
|
|
180
|
+
current[part] = current[part] || {};
|
|
181
|
+
current = current[part];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function printNode(node, prefix = "", parentPath = "") {
|
|
186
|
+
const keys = Object.keys(node).sort();
|
|
187
|
+
let lines = [];
|
|
188
|
+
keys.forEach((key, idx) => {
|
|
189
|
+
const isLast = idx === keys.length - 1;
|
|
190
|
+
const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
|
|
191
|
+
const currentPath = parentPath ? parentPath + "/" + key : key;
|
|
192
|
+
if (node[key] === null) {
|
|
193
|
+
lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
|
|
194
|
+
} else {
|
|
195
|
+
lines.push(prefix + branch + key + "/");
|
|
196
|
+
lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
return lines;
|
|
200
|
+
}
|
|
201
|
+
return printNode(tree, "", "").join("\n");
|
|
202
|
+
}
|
|
203
|
+
module2.exports.getFileTreeString = getFileTreeString;
|
|
204
|
+
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
205
|
+
module2.exports.delay = delay;
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// src/print-tarball-tree-cli.mjs
|
|
210
|
+
var print_tarball_tree_cli_exports = {};
|
|
211
|
+
__export(print_tarball_tree_cli_exports, {
|
|
212
|
+
main: () => main
|
|
213
|
+
});
|
|
214
|
+
module.exports = __toCommonJS(print_tarball_tree_cli_exports);
|
|
215
|
+
init_cjs_shims();
|
|
216
|
+
var import_node_fs2 = __toESM(require("fs"), 1);
|
|
217
|
+
var import_upath = __toESM(require("upath"), 1);
|
|
218
|
+
var import_utils = __toESM(require_utils(), 1);
|
|
219
|
+
|
|
220
|
+
// src/print-tarball-tree.mjs
|
|
221
|
+
init_cjs_shims();
|
|
222
|
+
var import_node_fs = __toESM(require("fs"), 1);
|
|
223
|
+
var zlib = __toESM(require("zlib"), 1);
|
|
224
|
+
var import_promises = require("stream/promises");
|
|
225
|
+
var import_tar_stream = __toESM(require("tar-stream"), 1);
|
|
226
|
+
function addToTree(tree, parts) {
|
|
227
|
+
let node = tree;
|
|
228
|
+
for (const part of parts) {
|
|
229
|
+
if (!node[part]) node[part] = {};
|
|
230
|
+
node = node[part];
|
|
231
|
+
}
|
|
232
|
+
return tree;
|
|
233
|
+
}
|
|
234
|
+
function formatTree(node, prefix = "") {
|
|
235
|
+
const lines = [];
|
|
236
|
+
const entries = Object.keys(node).sort();
|
|
237
|
+
entries.forEach(function(key, index) {
|
|
238
|
+
const isLast = index === entries.length - 1;
|
|
239
|
+
const child = node[key];
|
|
240
|
+
const line = prefix + (isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ") + key;
|
|
241
|
+
const newPrefix = prefix + (isLast ? " " : "\u2502 ");
|
|
242
|
+
lines.push(line);
|
|
243
|
+
lines.push(...formatTree(child, newPrefix));
|
|
244
|
+
});
|
|
245
|
+
return lines;
|
|
246
|
+
}
|
|
247
|
+
function printTree(node, prefix = "", logger = console.log) {
|
|
248
|
+
for (const line of formatTree(node, prefix)) {
|
|
249
|
+
logger(line);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
async function printTgzTree(filePath, options = {}) {
|
|
253
|
+
const logger = options.logger || console.log;
|
|
254
|
+
const extract = import_tar_stream.default.extract();
|
|
255
|
+
const tree = {};
|
|
256
|
+
extract.on("entry", function(header, stream, next) {
|
|
257
|
+
const parts = header.name.split("/").filter(Boolean);
|
|
258
|
+
if (parts.length) addToTree(tree, parts);
|
|
259
|
+
stream.once("end", next);
|
|
260
|
+
stream.once("error", next);
|
|
261
|
+
stream.resume();
|
|
262
|
+
});
|
|
263
|
+
await (0, import_promises.pipeline)(import_node_fs.default.createReadStream(filePath), zlib.createGunzip(), extract);
|
|
264
|
+
printTree(tree, "", logger);
|
|
265
|
+
return tree;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// src/print-tarball-tree-cli.mjs
|
|
269
|
+
async function main() {
|
|
270
|
+
const argv = (0, import_utils.getArgs)({ string: ["file"], alias: { f: "file", h: "help" } });
|
|
271
|
+
if (argv.help) {
|
|
272
|
+
console.log(`
|
|
273
|
+
Usage: node src/print-tarball-tree-cli.mjs [options]
|
|
274
|
+
|
|
275
|
+
Options:
|
|
276
|
+
-f, --file <path> Path to the tarball file
|
|
277
|
+
-h, --help Show this help message
|
|
278
|
+
`);
|
|
279
|
+
process.exit(0);
|
|
280
|
+
}
|
|
281
|
+
const filePath = argv.file ? import_upath.default.isAbsolute(argv.file) ? argv.file : import_upath.default.resolve(process.cwd(), argv.file) : null;
|
|
282
|
+
if (!filePath) {
|
|
283
|
+
console.error("Error: No file specified");
|
|
284
|
+
process.exit(1);
|
|
285
|
+
}
|
|
286
|
+
if (!import_node_fs2.default.existsSync(filePath)) {
|
|
287
|
+
console.error(`Error: File not found at ${filePath}`);
|
|
288
|
+
process.exit(1);
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
await printTgzTree(filePath);
|
|
292
|
+
} catch (error) {
|
|
293
|
+
console.error(`Error: Failed to read tarball ${filePath}`);
|
|
294
|
+
console.error(error instanceof Error ? error.message : error);
|
|
295
|
+
process.exit(1);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
main().catch(function(error) {
|
|
299
|
+
console.error(error);
|
|
300
|
+
process.exit(1);
|
|
301
|
+
});
|
|
302
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
303
|
+
0 && (module.exports = {
|
|
304
|
+
main
|
|
305
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
printTgzTree
|
|
5
|
+
} from "./chunk-SKVF4TMD.mjs";
|
|
6
|
+
import {
|
|
7
|
+
require_utils
|
|
8
|
+
} from "./chunk-6RK5UCTP.mjs";
|
|
9
|
+
import {
|
|
10
|
+
__toESM,
|
|
11
|
+
init_esm_shims
|
|
12
|
+
} from "./chunk-QQ4A6DLD.mjs";
|
|
13
|
+
|
|
14
|
+
// src/print-tarball-tree-cli.mjs
|
|
15
|
+
init_esm_shims();
|
|
16
|
+
var import_utils = __toESM(require_utils(), 1);
|
|
17
|
+
import fs from "fs";
|
|
18
|
+
import path from "upath";
|
|
19
|
+
async function main() {
|
|
20
|
+
const argv = (0, import_utils.getArgs)({ string: ["file"], alias: { f: "file", h: "help" } });
|
|
21
|
+
if (argv.help) {
|
|
22
|
+
console.log(`
|
|
23
|
+
Usage: node src/print-tarball-tree-cli.mjs [options]
|
|
24
|
+
|
|
25
|
+
Options:
|
|
26
|
+
-f, --file <path> Path to the tarball file
|
|
27
|
+
-h, --help Show this help message
|
|
28
|
+
`);
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
const filePath = argv.file ? path.isAbsolute(argv.file) ? argv.file : path.resolve(process.cwd(), argv.file) : null;
|
|
32
|
+
if (!filePath) {
|
|
33
|
+
console.error("Error: No file specified");
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
if (!fs.existsSync(filePath)) {
|
|
37
|
+
console.error(`Error: File not found at ${filePath}`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
await printTgzTree(filePath);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.error(`Error: Failed to read tarball ${filePath}`);
|
|
44
|
+
console.error(error instanceof Error ? error.message : error);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
main().catch(function(error) {
|
|
49
|
+
console.error(error);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
});
|
|
52
|
+
export {
|
|
53
|
+
main
|
|
54
|
+
};
|