@sdk-liuzhaoliang/cli 1.0.46 → 1.0.47
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 +88 -2
- package/package.json +2 -1
package/checksum
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
e27edb299f809864b93c197a3319ea17d596418f5fb11e2424ecce4af56a1044 volcengine-cli_1.0.47_darwin_amd64.tar.gz
|
|
2
|
+
37d50bd58e0d4d5d12797010f7b9011e7826d20eb7de5a4f5527b06a7d5daaaa volcengine-cli_1.0.47_darwin_amd64.zip
|
|
3
|
+
7a0e725b0e3a5ddb0f1f1b883d9ce09f1b7109fdbe0767762318031651dcce11 volcengine-cli_1.0.47_darwin_arm64.tar.gz
|
|
4
|
+
4b805d99348f3d476c6a5b4181093646a30dfa1011bf489479b7bca68a9ead02 volcengine-cli_1.0.47_darwin_arm64.zip
|
|
5
|
+
ec4e72df0afe3c1a7b4de9dabe9fb446404a7b7d611cb6bb3d5a9d78d71da75e volcengine-cli_1.0.47_freebsd_386.tar.gz
|
|
6
|
+
e31cde39d8936c4f503be6e3a59f03490912e23ba643ffc31e89c552a97d4474 volcengine-cli_1.0.47_freebsd_386.zip
|
|
7
|
+
4d48e234ac2b866ee84d51fd61fb74d8629496555435f6b9b4fb6413b5e6bc32 volcengine-cli_1.0.47_freebsd_amd64.tar.gz
|
|
8
|
+
1fd0faf0299ed030807fef04bebacd7c0334e74c7b7667fae8e58fc34ca10394 volcengine-cli_1.0.47_freebsd_amd64.zip
|
|
9
|
+
bf7035148b2b13ec6a2049b732cb703c50d457897d379e62a0245989a2abc522 volcengine-cli_1.0.47_freebsd_arm.tar.gz
|
|
10
|
+
d57f9c485cd60f31d5b73d314d53ff7dfed577a94e9cc12c20ca5e521e6a70c2 volcengine-cli_1.0.47_freebsd_arm.zip
|
|
11
|
+
14ff0d779197857a00c9e5d1cd6e92d0efd42dfedca32f0c0c3e609bda231245 volcengine-cli_1.0.47_freebsd_arm64.tar.gz
|
|
12
|
+
3b55d893b21f8ee5273fba08ec039ce54c493524db051c46d85c74950417853a volcengine-cli_1.0.47_freebsd_arm64.zip
|
|
13
|
+
8d2157f2cf1849261b8ecae4581e35c15673aad3a0399f7260de077b8cbf11a7 volcengine-cli_1.0.47_linux_386.tar.gz
|
|
14
|
+
dec90bf94b5819c3f0d11cb81dc593c5162cdcdc01411eee0b690bd47ff6c6e0 volcengine-cli_1.0.47_linux_386.zip
|
|
15
|
+
ebcd30ece6a55e7061119f149eb01d0dbcb479da625b78bdafc51f4f6086435b volcengine-cli_1.0.47_linux_amd64.tar.gz
|
|
16
|
+
1b39ace1e5a1df6cbc5c10b6c8db7e1638b36e7f9047362d604835117821d244 volcengine-cli_1.0.47_linux_amd64.zip
|
|
17
|
+
90c86fdeca3ab41b9c82d12d1a479b44ed7486b06ca4ebc67b59426e9504a44e volcengine-cli_1.0.47_linux_arm.tar.gz
|
|
18
|
+
83d8c19eb50555482d7884475c426dfbd1b42f796baafce670e42c2d18a4bd19 volcengine-cli_1.0.47_linux_arm.zip
|
|
19
|
+
4c742a8819bc29e683cf5019ab3dc3f20297eb7415f7cf8ed0afcbe88bc051c2 volcengine-cli_1.0.47_linux_arm64.tar.gz
|
|
20
|
+
c3def6f6d05bb99171b199021cca9f878707ef7b7bc6d430e012daaf77f159da volcengine-cli_1.0.47_linux_arm64.zip
|
|
21
|
+
dd351767e49c0af726038cca762aee984ca68aba09f19adf5c253f88c509e733 volcengine-cli_1.0.47_windows_386.tar.gz
|
|
22
|
+
4c2e4ae14f79bab2d8af4bc04b370d53a763243b98099517eeb2ab1cb6274209 volcengine-cli_1.0.47_windows_386.zip
|
|
23
|
+
a036a6e3a931330738a5d8b68ba3a083220ab65f0efa8a1f490601746d743da6 volcengine-cli_1.0.47_windows_amd64.tar.gz
|
|
24
|
+
047221e1d8200dca4a277329274577420e11ffb962c4e7e77df5fbcecf5162ec volcengine-cli_1.0.47_windows_amd64.zip
|
|
25
|
+
6580c3af61373f02c9c69dc14abc188a8ac1590cd2fc0d57f083f45e41294db6 volcengine-cli_1.0.47_windows_arm64.tar.gz
|
|
26
|
+
ee3f5b319d1f76b9adae26bf967a99d1087a9e64e19e2c60b3479bfe23ab3f35 volcengine-cli_1.0.47_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,81 @@ 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
|
+
|
|
142
|
+
function downloadErrorMessage(statusCode, url) {
|
|
143
|
+
return (
|
|
144
|
+
`Download failed: HTTP ${statusCode} for ${url}. ` +
|
|
145
|
+
`Please download Volcengine CLI from the official releases page: ${OFFICIAL_RELEASES_URL}`
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
71
149
|
function createWindowsVeShim(binDir) {
|
|
72
150
|
const shimPath = path.join(binDir, "ve");
|
|
73
151
|
const shim = `#!/usr/bin/env node
|
|
@@ -99,7 +177,7 @@ function download(url) {
|
|
|
99
177
|
return;
|
|
100
178
|
}
|
|
101
179
|
if (res.statusCode !== 200) {
|
|
102
|
-
reject(new Error(
|
|
180
|
+
reject(new Error(downloadErrorMessage(res.statusCode, url)));
|
|
103
181
|
return;
|
|
104
182
|
}
|
|
105
183
|
const chunks = [];
|
|
@@ -131,6 +209,8 @@ async function install() {
|
|
|
131
209
|
console.log(`Downloading ${zipName}...`);
|
|
132
210
|
|
|
133
211
|
const data = await download(url);
|
|
212
|
+
verifyArchiveChecksum(data, zipName);
|
|
213
|
+
|
|
134
214
|
const tmpDir = path.join(__dirname, ".tmp");
|
|
135
215
|
const zipPath = path.join(tmpDir, zipName);
|
|
136
216
|
|
|
@@ -188,7 +268,13 @@ module.exports = {
|
|
|
188
268
|
archiveNameForTarget,
|
|
189
269
|
archiveURLForTarget,
|
|
190
270
|
binaryNameForPlatform,
|
|
271
|
+
checksumForArchive,
|
|
191
272
|
createWindowsVeShim,
|
|
273
|
+
downloadErrorMessage,
|
|
192
274
|
normalizeBaseURL,
|
|
275
|
+
parseChecksum,
|
|
276
|
+
sha256,
|
|
193
277
|
targetForPlatform,
|
|
278
|
+
verifyArchiveChecksum,
|
|
279
|
+
version: VERSION,
|
|
194
280
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdk-liuzhaoliang/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.47",
|
|
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": [
|