@electron/get
Advanced tools
Comparing version 1.12.4 to 1.13.0
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const debug_1 = require("debug"); | ||
const fs = require("fs-extra"); | ||
const path = require("path"); | ||
@@ -74,25 +75,42 @@ const semver = require("semver"); | ||
semver.gte(artifactDetails.version, '1.3.2')) { | ||
const shasumPath = await downloadArtifact({ | ||
isGeneric: true, | ||
version: artifactDetails.version, | ||
artifactName: 'SHASUMS256.txt', | ||
force: artifactDetails.force, | ||
downloadOptions: artifactDetails.downloadOptions, | ||
cacheRoot: artifactDetails.cacheRoot, | ||
downloader: artifactDetails.downloader, | ||
mirrorOptions: artifactDetails.mirrorOptions, | ||
await utils_1.withTempDirectory(async (tmpDir) => { | ||
let shasumPath; | ||
const checksums = artifactDetails.checksums; | ||
if (checksums) { | ||
shasumPath = path.resolve(tmpDir, 'SHASUMS256.txt'); | ||
const fileNames = Object.keys(checksums); | ||
if (fileNames.length === 0) { | ||
throw new Error('Provided "checksums" object is empty, cannot generate a valid SHASUMS256.txt'); | ||
} | ||
const generatedChecksums = fileNames | ||
.map(fileName => `${checksums[fileName]} *${fileName}`) | ||
.join('\n'); | ||
await fs.writeFile(shasumPath, generatedChecksums); | ||
} | ||
else { | ||
shasumPath = await downloadArtifact({ | ||
isGeneric: true, | ||
version: artifactDetails.version, | ||
artifactName: 'SHASUMS256.txt', | ||
force: artifactDetails.force, | ||
downloadOptions: artifactDetails.downloadOptions, | ||
cacheRoot: artifactDetails.cacheRoot, | ||
downloader: artifactDetails.downloader, | ||
mirrorOptions: artifactDetails.mirrorOptions, | ||
}); | ||
} | ||
// For versions 1.3.2 - 1.3.4, need to overwrite the `defaultTextEncoding` option: | ||
// https://github.com/electron/electron/pull/6676#discussion_r75332120 | ||
if (semver.satisfies(artifactDetails.version, '1.3.2 - 1.3.4')) { | ||
const validatorOptions = {}; | ||
validatorOptions.defaultTextEncoding = 'binary'; | ||
const checker = new sumchecker.ChecksumValidator('sha256', shasumPath, validatorOptions); | ||
await checker.validate(path.dirname(tempDownloadPath), path.basename(tempDownloadPath)); | ||
} | ||
else { | ||
await sumchecker('sha256', shasumPath, path.dirname(tempDownloadPath), [ | ||
path.basename(tempDownloadPath), | ||
]); | ||
} | ||
}); | ||
// For versions 1.3.2 - 1.3.4, need to overwrite the `defaultTextEncoding` option: | ||
// https://github.com/electron/electron/pull/6676#discussion_r75332120 | ||
if (semver.satisfies(artifactDetails.version, '1.3.2 - 1.3.4')) { | ||
const validatorOptions = {}; | ||
validatorOptions.defaultTextEncoding = 'binary'; | ||
const checker = new sumchecker.ChecksumValidator('sha256', shasumPath, validatorOptions); | ||
await checker.validate(path.dirname(tempDownloadPath), path.basename(tempDownloadPath)); | ||
} | ||
else { | ||
await sumchecker('sha256', shasumPath, path.dirname(tempDownloadPath), [ | ||
path.basename(tempDownloadPath), | ||
]); | ||
} | ||
} | ||
@@ -99,0 +117,0 @@ return await cache.putFileInCache(url, tempDownloadPath, fileName); |
@@ -60,2 +60,12 @@ import { Downloader } from './Downloader'; | ||
/** | ||
* Provides checksums for the artifact as strings. | ||
* Can be used if you already know the checksums of the Electron artifact | ||
* you are downloading and want to skip the checksum file download | ||
* without skipping the checksum validation. | ||
* | ||
* This should be an object whose keys are the file names of the artifacts and | ||
* the values are their respective SHA256 checksums. | ||
*/ | ||
checksums?: Record<string, string>; | ||
/** | ||
* The directory that caches Electron artifact downloads. | ||
@@ -62,0 +72,0 @@ * |
import debug from 'debug'; | ||
import * as fs from 'fs-extra'; | ||
import * as path from 'path'; | ||
@@ -9,3 +10,3 @@ import * as semver from 'semver'; | ||
import { initializeProxy } from './proxy'; | ||
import { withTempDirectoryIn, normalizeVersion, getHostArch, getNodeArch, ensureIsTruthyString, isOfficialLinuxIA32Download, } from './utils'; | ||
import { withTempDirectoryIn, normalizeVersion, getHostArch, getNodeArch, ensureIsTruthyString, isOfficialLinuxIA32Download, withTempDirectory, } from './utils'; | ||
export { getHostArch } from './utils'; | ||
@@ -71,25 +72,42 @@ export { initializeProxy } from './proxy'; | ||
semver.gte(artifactDetails.version, '1.3.2')) { | ||
const shasumPath = await downloadArtifact({ | ||
isGeneric: true, | ||
version: artifactDetails.version, | ||
artifactName: 'SHASUMS256.txt', | ||
force: artifactDetails.force, | ||
downloadOptions: artifactDetails.downloadOptions, | ||
cacheRoot: artifactDetails.cacheRoot, | ||
downloader: artifactDetails.downloader, | ||
mirrorOptions: artifactDetails.mirrorOptions, | ||
await withTempDirectory(async (tmpDir) => { | ||
let shasumPath; | ||
const checksums = artifactDetails.checksums; | ||
if (checksums) { | ||
shasumPath = path.resolve(tmpDir, 'SHASUMS256.txt'); | ||
const fileNames = Object.keys(checksums); | ||
if (fileNames.length === 0) { | ||
throw new Error('Provided "checksums" object is empty, cannot generate a valid SHASUMS256.txt'); | ||
} | ||
const generatedChecksums = fileNames | ||
.map(fileName => `${checksums[fileName]} *${fileName}`) | ||
.join('\n'); | ||
await fs.writeFile(shasumPath, generatedChecksums); | ||
} | ||
else { | ||
shasumPath = await downloadArtifact({ | ||
isGeneric: true, | ||
version: artifactDetails.version, | ||
artifactName: 'SHASUMS256.txt', | ||
force: artifactDetails.force, | ||
downloadOptions: artifactDetails.downloadOptions, | ||
cacheRoot: artifactDetails.cacheRoot, | ||
downloader: artifactDetails.downloader, | ||
mirrorOptions: artifactDetails.mirrorOptions, | ||
}); | ||
} | ||
// For versions 1.3.2 - 1.3.4, need to overwrite the `defaultTextEncoding` option: | ||
// https://github.com/electron/electron/pull/6676#discussion_r75332120 | ||
if (semver.satisfies(artifactDetails.version, '1.3.2 - 1.3.4')) { | ||
const validatorOptions = {}; | ||
validatorOptions.defaultTextEncoding = 'binary'; | ||
const checker = new sumchecker.ChecksumValidator('sha256', shasumPath, validatorOptions); | ||
await checker.validate(path.dirname(tempDownloadPath), path.basename(tempDownloadPath)); | ||
} | ||
else { | ||
await sumchecker('sha256', shasumPath, path.dirname(tempDownloadPath), [ | ||
path.basename(tempDownloadPath), | ||
]); | ||
} | ||
}); | ||
// For versions 1.3.2 - 1.3.4, need to overwrite the `defaultTextEncoding` option: | ||
// https://github.com/electron/electron/pull/6676#discussion_r75332120 | ||
if (semver.satisfies(artifactDetails.version, '1.3.2 - 1.3.4')) { | ||
const validatorOptions = {}; | ||
validatorOptions.defaultTextEncoding = 'binary'; | ||
const checker = new sumchecker.ChecksumValidator('sha256', shasumPath, validatorOptions); | ||
await checker.validate(path.dirname(tempDownloadPath), path.basename(tempDownloadPath)); | ||
} | ||
else { | ||
await sumchecker('sha256', shasumPath, path.dirname(tempDownloadPath), [ | ||
path.basename(tempDownloadPath), | ||
]); | ||
} | ||
} | ||
@@ -96,0 +114,0 @@ return await cache.putFileInCache(url, tempDownloadPath, fileName); |
@@ -60,2 +60,12 @@ import { Downloader } from './Downloader'; | ||
/** | ||
* Provides checksums for the artifact as strings. | ||
* Can be used if you already know the checksums of the Electron artifact | ||
* you are downloading and want to skip the checksum file download | ||
* without skipping the checksum validation. | ||
* | ||
* This should be an object whose keys are the file names of the artifacts and | ||
* the values are their respective SHA256 checksums. | ||
*/ | ||
checksums?: Record<string, string>; | ||
/** | ||
* The directory that caches Electron artifact downloads. | ||
@@ -62,0 +72,0 @@ * |
{ | ||
"name": "@electron/get", | ||
"version": "1.12.4", | ||
"version": "1.13.0", | ||
"description": "Utility for downloading artifacts from different versions of Electron", | ||
@@ -56,3 +56,2 @@ "main": "dist/cjs/index.js", | ||
"prettier": "^1.17.1", | ||
"semantic-release": "^15.13.12", | ||
"ts-jest": "^24.0.0", | ||
@@ -59,0 +58,0 @@ "typedoc": "^0.17.2", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
87465
21
1246
23