Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 93c596b

Browse files
authored
Merge pull request #164 from curityio/update-previewer-and-script
Update previewer and script
2 parents 0cb7923 + c68a98c commit 93c596b

2 files changed

Lines changed: 34 additions & 19 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"version": "1.2.0",
3+
"sha256": {
4+
"linux-arm64": "cf6db711ba0240f0feeca90e50df0445ef430fc3dc5b03296d6e9de8b63ad160",
5+
"linux-x64": "df0a203423172026c27dfbda05a028cd8d0ea3cf93ff458e314eb268a30d258e",
6+
"macos-arm64": "d0f725d7c99b6ea0657cb6603501538bcba49b7c4516036bc5449a0cf2a196d2",
7+
"windows-x64": "cf89803e9b2bf75be4e303190586a8714a036f43c37fde83f9e6ffc203364e92"
8+
}
9+
}
10+

src/identity-server/unzip-libs.mjs

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,28 @@ import https from 'node:https';
1717
import crypto from 'node:crypto';
1818

1919
async function main() {
20-
const version = '1.0.0';
21-
const expectedSha256BySuffix = {
22-
"linux-arm64": '69be61326f5d305ed5b0d27659bb5a6ecf2fc9fc517a1f7a1ed4a560011591dd',
23-
"linux-x64": '6050d404473c3fbba707513d8f99d3f10fc953e6fe6cc8a118b2a22c99ea1729',
24-
"macos-arm64": 'b9c227f429adbb7089b6b88ad1676e546bb57faf5c9abe5f22cdbafe90c61e1e',
25-
"windows-x64": 'e572cc627d7aee9fd7f3928ba9bd9004da367ce83cb58e54616d2a17872b2c5e',
26-
};
27-
const assetSuffix = resolveAssetSuffix();
20+
const __filename = fileURLToPath(import.meta.url);
21+
const __dirname = path.dirname(__filename);
22+
23+
const checksums = JSON.parse(fs.readFileSync(path.resolve(__dirname, 'previewer-checksums.json'), 'utf-8'));
24+
const version = checksums.version;
25+
const expectedSha256BySuffix = checksums.sha256;
26+
27+
if (!version || !expectedSha256BySuffix || typeof expectedSha256BySuffix !== 'object') {
28+
throw new Error('previewer-checksums.json must contain "version" and "sha256" properties');
29+
}
30+
31+
const assetSuffix = resolveAssetSuffix(Object.keys(expectedSha256BySuffix));
2832
const expectedSha256 = expectedSha256BySuffix[assetSuffix];
2933
const assetName = `curity-ui-kit-previewer-${version}-${assetSuffix}.zip`;
3034

3135
const libFolder = '../../lib/';
3236
const zipFile = assetName;
33-
const presenceFile = 'run-ui-kit-server.sh';
34-
const __filename = fileURLToPath(import.meta.url);
35-
const __dirname = path.dirname(__filename);
3637
const source = path.resolve(__dirname, libFolder + zipFile);
3738
const target = path.resolve(__dirname, libFolder);
38-
const presence = path.join(target, presenceFile);
39+
const versionMarker = path.join(target, '.previewer-version');
3940

40-
if (fs.existsSync(presence)) {
41+
if (fs.existsSync(versionMarker) && fs.readFileSync(versionMarker, 'utf-8').trim() === version) {
4142
console.log('UI Kit runtime already unzipped. Skipping...');
4243
return;
4344
}
@@ -47,21 +48,24 @@ async function main() {
4748
}
4849

4950
if (!fs.existsSync(source)) {
50-
console.error('ui-kit-runtime.zip file does not exist:', source);
51+
console.error(`Previewer zip does not exist: ${source}`);
5152
process.exit(1);
5253
}
5354

54-
if (expectedSha256) {
55-
await verifySha256(source, expectedSha256);
55+
if (!expectedSha256) {
56+
throw new Error(`No checksum found for platform suffix '${assetSuffix}' in previewer-checksums.json`);
5657
}
58+
await verifySha256(source, expectedSha256);
5759

5860
await extract(source, { dir: target });
5961
console.log(`Unzipped ${source} to ${target}`);
6062

6163
await extractNestedZip(target, `ui-kit-runtime-${version}.zip`);
64+
65+
fs.writeFileSync(versionMarker, version + '\n');
6266
}
6367

64-
function resolveAssetSuffix() {
68+
function resolveAssetSuffix(supportedSuffixes) {
6569
const platformMap = {
6670
linux: 'linux',
6771
darwin: 'macos',
@@ -74,12 +78,13 @@ function resolveAssetSuffix() {
7478

7579
const platform = platformMap[process.platform];
7680
const arch = archMap[process.arch];
81+
const suffix = `${platform}-${arch}`;
7782

78-
if (!platform || !arch) {
83+
if (!platform || !arch || !supportedSuffixes.includes(suffix)) {
7984
throw new Error(`Unsupported platform/arch: ${process.platform}/${process.arch}`);
8085
}
8186

82-
return `${platform}-${arch}`;
87+
return suffix;
8388
}
8489

8590
function downloadPreviewerZip(version, assetSuffix, assetName, destinationPath) {

0 commit comments

Comments
 (0)