electron-updater
Advanced tools
Comparing version 1.13.0 to 1.14.0
@@ -189,3 +189,3 @@ "use strict"; | ||
} else { | ||
client = createClient(options); | ||
client = this.createClient(options); | ||
} | ||
@@ -231,3 +231,3 @@ this.clientPromise = (_bluebirdLst2 || _load_bluebirdLst2()).default.resolve(client); | ||
_this2.clientPromise = _this2.loadUpdateConfig().then(function (it) { | ||
return createClient(it); | ||
return _this2.createClient(it); | ||
}); | ||
@@ -321,35 +321,34 @@ } | ||
} | ||
} | ||
exports.AppUpdater = AppUpdater; | ||
function createClient(data) { | ||
if (typeof data === "string") { | ||
throw new Error("Please pass PublishConfiguration object"); | ||
createClient(data) { | ||
if (typeof data === "string") { | ||
throw new Error("Please pass PublishConfiguration object"); | ||
} | ||
const provider = data.provider; | ||
switch (provider) { | ||
case "github": | ||
const githubOptions = data; | ||
const token = (githubOptions.private ? process.env.GH_TOKEN : null) || githubOptions.token; | ||
if (token == null) { | ||
return new (_GitHubProvider || _load_GitHubProvider()).GitHubProvider(githubOptions, this); | ||
} else { | ||
return new (_PrivateGitHubProvider || _load_PrivateGitHubProvider()).PrivateGitHubProvider(githubOptions, token); | ||
} | ||
case "s3": | ||
{ | ||
const s3 = data; | ||
return new (_GenericProvider || _load_GenericProvider()).GenericProvider({ | ||
provider: "generic", | ||
url: (0, (_publishOptions || _load_publishOptions()).s3Url)(s3), | ||
channel: s3.channel || "" | ||
}); | ||
} | ||
case "generic": | ||
return new (_GenericProvider || _load_GenericProvider()).GenericProvider(data); | ||
case "bintray": | ||
return new (_BintrayProvider || _load_BintrayProvider()).BintrayProvider(data); | ||
default: | ||
throw new Error(`Unsupported provider: ${provider}`); | ||
} | ||
} | ||
const provider = data.provider; | ||
switch (provider) { | ||
case "github": | ||
const githubOptions = data; | ||
const token = (githubOptions.private ? process.env.GH_TOKEN : null) || githubOptions.token; | ||
if (token == null) { | ||
return new (_GitHubProvider || _load_GitHubProvider()).GitHubProvider(githubOptions); | ||
} else { | ||
return new (_PrivateGitHubProvider || _load_PrivateGitHubProvider()).PrivateGitHubProvider(githubOptions, token); | ||
} | ||
case "s3": | ||
{ | ||
const s3 = data; | ||
return new (_GenericProvider || _load_GenericProvider()).GenericProvider({ | ||
provider: "generic", | ||
url: (0, (_publishOptions || _load_publishOptions()).s3Url)(s3), | ||
channel: s3.channel || "" | ||
}); | ||
} | ||
case "generic": | ||
return new (_GenericProvider || _load_GenericProvider()).GenericProvider(data); | ||
case "bintray": | ||
return new (_BintrayProvider || _load_BintrayProvider()).BintrayProvider(data); | ||
default: | ||
throw new Error(`Unsupported provider: ${provider}`); | ||
} | ||
} | ||
//# sourceMappingURL=AppUpdater.js.map | ||
exports.AppUpdater = AppUpdater; //# sourceMappingURL=AppUpdater.js.map |
@@ -97,2 +97,3 @@ declare module "electron-updater/out/api" { | ||
import { FileInfo, Provider } from "electron-updater/out/api" | ||
import { AppUpdater } from "electron-updater/out/AppUpdater" | ||
@@ -107,3 +108,4 @@ export abstract class BaseGitHubProvider<T extends UpdateInfo> extends Provider<T> { | ||
protected readonly options: GithubOptions | ||
constructor(options: GithubOptions) | ||
private readonly updater | ||
constructor(options: GithubOptions, updater: AppUpdater) | ||
getLatestVersion(): Promise<UpdateInfo> | ||
@@ -229,2 +231,3 @@ private getLatestVersionString(basePath, cancellationToken) | ||
protected computeRequestHeaders(fileInfo: FileInfo): RequestHeaders | null | ||
private createClient(data) | ||
} | ||
@@ -231,0 +234,0 @@ } |
@@ -68,5 +68,6 @@ "use strict"; | ||
class GitHubProvider extends BaseGitHubProvider { | ||
constructor(options) { | ||
constructor(options, updater) { | ||
super(options, "github.com"); | ||
this.options = options; | ||
this.updater = updater; | ||
} | ||
@@ -79,3 +80,22 @@ getLatestVersion() { | ||
const cancellationToken = new (_CancellationToken || _load_CancellationToken()).CancellationToken(); | ||
const version = yield _this.getLatestVersionString(basePath, cancellationToken); | ||
const xElement = require("xelement"); | ||
const feedXml = yield (0, (_electronBuilderHttp || _load_electronBuilderHttp()).request)(Object.assign({ | ||
path: `${basePath}.atom`, | ||
headers: Object.assign({}, _this.requestHeaders, { Accept: "application/xml" }) | ||
}, _this.baseUrl), cancellationToken); | ||
const feed = new xElement.Parse(feedXml); | ||
const latestRelease = feed.element("entry"); | ||
if (latestRelease == null) { | ||
throw new Error(`No published versions on GitHub`); | ||
} | ||
let version; | ||
try { | ||
if (_this.updater.allowPrerelease) { | ||
version = latestRelease.element("link").getAttr("href").match(/\/tag\/v?([^\/]+)$/)[1]; | ||
} else { | ||
version = yield _this.getLatestVersionString(basePath, cancellationToken); | ||
} | ||
} catch (e) { | ||
throw new Error(`Cannot parse releases feed: ${e.stack || e.message},\nXML:\n${feedXml}`); | ||
} | ||
let result; | ||
@@ -87,4 +107,6 @@ const channelFile = (0, (_api || _load_api()).getChannelFilename)((0, (_api || _load_api()).getDefaultChannelName)()); | ||
} catch (e) { | ||
if (e instanceof (_electronBuilderHttp || _load_electronBuilderHttp()).HttpError && e.response.statusCode === 404) { | ||
throw new Error(`Cannot find ${channelFile} in the latest release artifacts (${(0, (_api || _load_api()).formatUrl)(requestOptions)}): ${e.stack || e.message}`); | ||
if (!_this.updater.allowPrerelease) { | ||
if (e instanceof (_electronBuilderHttp || _load_electronBuilderHttp()).HttpError && e.response.statusCode === 404) { | ||
throw new Error(`Cannot find ${channelFile} in the latest release artifacts (${(0, (_api || _load_api()).formatUrl)(requestOptions)}): ${e.stack || e.message}`); | ||
} | ||
} | ||
@@ -97,2 +119,8 @@ throw e; | ||
} | ||
if (result.releaseName == null) { | ||
result.releaseName = latestRelease.getElementValue("title"); | ||
} | ||
if (result.releaseNotes == null) { | ||
result.releaseNotes = latestRelease.getElementValue("content"); | ||
} | ||
return result; | ||
@@ -107,3 +135,3 @@ })(); | ||
path: `${basePath}/latest`, | ||
headers: Object.assign({ Accept: "application/json" }, _this2.requestHeaders) | ||
headers: Object.assign({}, _this2.requestHeaders, { Accept: "application/json" }) | ||
}, _this2.baseUrl); | ||
@@ -110,0 +138,0 @@ try { |
{ | ||
"name": "electron-updater", | ||
"version": "1.13.0", | ||
"version": "1.14.0", | ||
"description": "Cross platform updater for electron applications", | ||
@@ -20,6 +20,7 @@ "main": "out/main.js", | ||
"source-map-support": "^0.4.14", | ||
"electron-builder-http": "~16.6.0", | ||
"electron-is-dev": "^0.1.2" | ||
"electron-builder-http": "~17.0.1", | ||
"electron-is-dev": "^0.1.2", | ||
"xelement": "^1.0.13" | ||
}, | ||
"typings": "./out/electron-updater.d.ts" | ||
} |
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
134610
1385
8
+ Addedxelement@^1.0.13
+ Addeddebug@2.6.4(transitive)
+ Addedelectron-builder-http@17.0.3(transitive)
+ Addedms@0.7.3(transitive)
+ Addedsax@1.4.1(transitive)
+ Addedxelement@1.0.17(transitive)
- Removeddebug@2.6.3(transitive)
- Removedelectron-builder-http@16.6.0(transitive)
- Removedms@0.7.2(transitive)