@sdk-liuzhaoliang/cli 1.0.46 → 1.1.0
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/checksum +26 -0
- package/install.js +79 -1
- package/package.json +2 -1
package/checksum
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
2bf4f1de3c2fc9a567b9b737a5f5f2647346075d91553488b41bf14011f8f8f5 volcengine-cli_1.1.0_darwin_amd64.tar.gz
|
|
2
|
+
ccc9c35c3b2191d291deb63bef042954acfef2eac4664c060beb423602080bf1 volcengine-cli_1.1.0_darwin_amd64.zip
|
|
3
|
+
38fabd506bf604f1bc7641eb016e2d183cd3db785863876e2bf2a6ad572b193a volcengine-cli_1.1.0_darwin_arm64.tar.gz
|
|
4
|
+
21a953690195976a164fb4bc7bf04955aa713c4a755fbcd3401bee3cd189ee9a volcengine-cli_1.1.0_darwin_arm64.zip
|
|
5
|
+
a1fcc2ce92d00caf266fa1756342616e90c031c7c60e5546bffea67614186eab volcengine-cli_1.1.0_freebsd_386.tar.gz
|
|
6
|
+
9dbc8e0c0b5d4f17c2b215f208bf721179fd45b8e4c603b4eec449e66fb0cef8 volcengine-cli_1.1.0_freebsd_386.zip
|
|
7
|
+
0d38fb84d2f3e6428bec8fd96192939da88302f0ab4bd9358448a32ee54c6209 volcengine-cli_1.1.0_freebsd_amd64.tar.gz
|
|
8
|
+
a3f9dfe6725f1c2b98983c24976e92d9d1972343006b4e8d3492f6a364e1693e volcengine-cli_1.1.0_freebsd_amd64.zip
|
|
9
|
+
8b3b628059877034c16fff47e88d643e776cb2e8587ee13e92b25016ae829cd1 volcengine-cli_1.1.0_freebsd_arm.tar.gz
|
|
10
|
+
b9451effbc04b34dfe6f2da39baeed66403e62ab0c98a45b7f5c4408b8e15e5f volcengine-cli_1.1.0_freebsd_arm.zip
|
|
11
|
+
8e5cc694863f2d942d1a23984c3363ab0d07694c1dca1fd8faa24160ab876019 volcengine-cli_1.1.0_freebsd_arm64.tar.gz
|
|
12
|
+
d1586a4c142a813a39ddd3554bb4bac1b77ba96f21ab2dbbe60ea44940188b8d volcengine-cli_1.1.0_freebsd_arm64.zip
|
|
13
|
+
7c25f7fc24adfc82e3bb89a9a3aeceb608804fc2cc7ac371afb67033f99829a1 volcengine-cli_1.1.0_linux_386.tar.gz
|
|
14
|
+
ecaf57ad01c9ddecdda104988789887e14a14f8cf801d825c212be48aabf84f6 volcengine-cli_1.1.0_linux_386.zip
|
|
15
|
+
1dd890446e523a098db1f3b0bc4cc007b0e7028d059e34fd421492b11205f2c0 volcengine-cli_1.1.0_linux_amd64.tar.gz
|
|
16
|
+
a466c36ed93aeeb1159ec913bcab625e265bb5f512aa99e3f8b17c2a66d638df volcengine-cli_1.1.0_linux_amd64.zip
|
|
17
|
+
78df6a14761fbb1ae1bf57f28e00d5f1029a26e8cfcc6ae51ef4852be289c662 volcengine-cli_1.1.0_linux_arm.tar.gz
|
|
18
|
+
405cc1b8a8fee4740256a25f836276cd956dce3c514b6f6052fc47f55763ecab volcengine-cli_1.1.0_linux_arm.zip
|
|
19
|
+
804a59bc3bf1886aa3a0aa26ac89dbb639970cde2e284cbe57cbb787e104d70e volcengine-cli_1.1.0_linux_arm64.tar.gz
|
|
20
|
+
9a963a7bc00136126df10587428a1b81345be77f40aea35f1332f4a31013ea74 volcengine-cli_1.1.0_linux_arm64.zip
|
|
21
|
+
97f6874c4c80c20fa8d7855895006e2ae2272366ae5f4feba290f5023ad8e773 volcengine-cli_1.1.0_windows_386.tar.gz
|
|
22
|
+
1bf3b9c13afefb7c57828c99c015b246f6fee06f741dd730d590f5c211a2d9fe volcengine-cli_1.1.0_windows_386.zip
|
|
23
|
+
fdc2b425fa3da122f32f5e16053bc691b750de3708c99a5ecb258758f4628acd volcengine-cli_1.1.0_windows_amd64.tar.gz
|
|
24
|
+
ff4d33462f87cb096861650b723507242a175d3d4c149c06d425c15dd9ece7dc volcengine-cli_1.1.0_windows_amd64.zip
|
|
25
|
+
b0f8c2c8ea74a9c1ae832f3629bc594cd23bfb75d5241545fcb8cfc3d401a89a volcengine-cli_1.1.0_windows_arm64.tar.gz
|
|
26
|
+
8258c5b03450d84d7a8309596e9ad7a7bdbefcf96184d3cee3a9551a1560fb5d volcengine-cli_1.1.0_windows_arm64.zip
|
package/install.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const { execSync } = require("child_process");
|
|
4
|
+
const crypto = require("crypto");
|
|
4
5
|
const https = require("https");
|
|
5
6
|
const fs = require("fs");
|
|
6
7
|
const path = require("path");
|
|
7
8
|
|
|
8
|
-
const VERSION = "
|
|
9
|
+
const VERSION = require("./package.json").version;
|
|
9
10
|
const DEFAULT_DOWNLOAD_BASE_URL = "https://vecli-demo.tos-cn-beijing.volces.com/ve";
|
|
11
|
+
const CHECKSUM_PATH = path.join(__dirname, "checksum");
|
|
12
|
+
const OFFICIAL_RELEASES_URL = "https://github.com/sdk-liuzhaoliang/volcengine-cli/releases";
|
|
10
13
|
const DOWNLOAD_BASE_URL = normalizeBaseURL(
|
|
11
14
|
process.env.VOLCENGINE_CLI_DOWNLOAD_BASE_URL || DEFAULT_DOWNLOAD_BASE_URL
|
|
12
15
|
);
|
|
@@ -68,6 +71,74 @@ function archiveURLForTarget(target, version, downloadBaseURL) {
|
|
|
68
71
|
return `${baseURL}/v${version}/${archiveNameForTarget(target, version)}`;
|
|
69
72
|
}
|
|
70
73
|
|
|
74
|
+
function sha256(data) {
|
|
75
|
+
return crypto.createHash("sha256").update(data).digest("hex");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function archiveBasename(filename) {
|
|
79
|
+
return String(filename || "").split(/[\\/]/).pop();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function parseChecksum(content) {
|
|
83
|
+
const entries = [];
|
|
84
|
+
String(content || "")
|
|
85
|
+
.split(/\r?\n/)
|
|
86
|
+
.forEach((line, index) => {
|
|
87
|
+
const trimmed = line.trim();
|
|
88
|
+
if (!trimmed) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const match = trimmed.match(/^([a-fA-F0-9]{64})\s+\*?(.+)$/);
|
|
93
|
+
if (!match) {
|
|
94
|
+
throw new Error(`Invalid checksum line ${index + 1}`);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
entries.push({
|
|
98
|
+
hash: match[1].toLowerCase(),
|
|
99
|
+
filename: match[2],
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
return entries;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function checksumForArchive(content, archiveName) {
|
|
106
|
+
const match = parseChecksum(content).find(
|
|
107
|
+
(entry) => entry.filename === archiveName || archiveBasename(entry.filename) === archiveName
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
if (!match) {
|
|
111
|
+
throw new Error(`Checksum entry not found for ${archiveName}`);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return match.hash;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function verifyArchiveChecksum(data, archiveName, checksumPath = CHECKSUM_PATH) {
|
|
118
|
+
let checksumContent;
|
|
119
|
+
try {
|
|
120
|
+
checksumContent = fs.readFileSync(checksumPath, "utf8");
|
|
121
|
+
} catch (err) {
|
|
122
|
+
if (err && err.code === "ENOENT") {
|
|
123
|
+
throw new Error(`Checksum file not found: ${checksumPath}`);
|
|
124
|
+
}
|
|
125
|
+
throw err;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const expected = checksumForArchive(checksumContent, archiveName);
|
|
129
|
+
const actual = sha256(data);
|
|
130
|
+
|
|
131
|
+
if (actual !== expected) {
|
|
132
|
+
throw new Error(
|
|
133
|
+
`Checksum mismatch for ${archiveName}: expected ${expected}, got ${actual}. ` +
|
|
134
|
+
`The downloaded archive may have been tampered with. ` +
|
|
135
|
+
`Please download Volcengine CLI from the official releases page: ${OFFICIAL_RELEASES_URL}`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return actual;
|
|
140
|
+
}
|
|
141
|
+
|
|
71
142
|
function createWindowsVeShim(binDir) {
|
|
72
143
|
const shimPath = path.join(binDir, "ve");
|
|
73
144
|
const shim = `#!/usr/bin/env node
|
|
@@ -131,6 +202,8 @@ async function install() {
|
|
|
131
202
|
console.log(`Downloading ${zipName}...`);
|
|
132
203
|
|
|
133
204
|
const data = await download(url);
|
|
205
|
+
verifyArchiveChecksum(data, zipName);
|
|
206
|
+
|
|
134
207
|
const tmpDir = path.join(__dirname, ".tmp");
|
|
135
208
|
const zipPath = path.join(tmpDir, zipName);
|
|
136
209
|
|
|
@@ -188,7 +261,12 @@ module.exports = {
|
|
|
188
261
|
archiveNameForTarget,
|
|
189
262
|
archiveURLForTarget,
|
|
190
263
|
binaryNameForPlatform,
|
|
264
|
+
checksumForArchive,
|
|
191
265
|
createWindowsVeShim,
|
|
192
266
|
normalizeBaseURL,
|
|
267
|
+
parseChecksum,
|
|
268
|
+
sha256,
|
|
193
269
|
targetForPlatform,
|
|
270
|
+
verifyArchiveChecksum,
|
|
271
|
+
version: VERSION,
|
|
194
272
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdk-liuzhaoliang/cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Volcengine CLI test package for sdk-liuzhaoliang",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ve": "bin/ve"
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
14
|
"bin/",
|
|
15
|
+
"checksum",
|
|
15
16
|
"install.js"
|
|
16
17
|
],
|
|
17
18
|
"keywords": [
|