diff --git a/docs/Auto Update.md b/docs/Auto Update.md index 093b08a3ad1..0c18a89331c 100644 --- a/docs/Auto Update.md +++ b/docs/Auto Update.md @@ -27,7 +27,8 @@ Simplified auto-update is not supported for Squirrel.Windows. ### Examples * A [complete example](https://github.com/iffy/electron-updater-example) showing how to use. -* An [encapsulated manual update via menu](https://github.com/electron-userland/electron-builder/blob/master/docs/encapsulated%20manual%20update%20via%20menu.js). +* [Example in Typescript](https://github.com/develar/onshape-desktop-shell/blob/master/src/AppUpdater.ts) using system notifications. +* An [encapsulated manual update via menu](https://github.com/electron-userland/electron-builder/blob/master/docs/encapsulated%20manual%20update%20via%20menu.js). ## File Generated and Uploaded in Addition @@ -38,7 +39,7 @@ Simplified auto-update is not supported for Squirrel.Windows. You can use a private repository for updates with electron-updater by setting the `GH_TOKEN` environment variable (on user machine) and `private` option. If `GH_TOKEN` is set, electron-updater will use the GitHub API for updates allowing private repositories to work. -Only for [very special](https://github.com/electron-userland/electron-builder/issues/1393#issuecomment-288191885) cases — not intended and not suitable for all users. +Only for [very special](https://github.com/electron-userland/electron-builder/issues/1393#issuecomment-288191885) cases — not intended and not suitable for all users. Doesn't work [on macOs](https://github.com/electron-userland/electron-builder/issues/1370). **Note:** The GitHub API currently has a rate limit of 5000 requests per user per hour. An update check uses up to 3 requests per check. @@ -132,8 +133,8 @@ Emitted on progress. Only supported over Windows build, since `Squirrel.Mac` [do | Name | Type | | --- | --- | -| **name**| string | -| **url**| string | +| name| string | +| url| string | | sha2| string | | headers| Object | @@ -145,7 +146,7 @@ Emitted on progress. Only supported over Windows build, since `Squirrel.Mac` [do | Name | Type | | --- | --- | -| **versionInfo**| [VersionInfo](Publishing-Artifacts#VersionInfo) | +| versionInfo| [VersionInfo](Publishing-Artifacts#VersionInfo) | | fileInfo| [FileInfo](#FileInfo) | | downloadPromise| Promise<any> \| null | | cancellationToken| [CancellationToken](Developer-API#CancellationToken) | @@ -154,6 +155,12 @@ Emitted on progress. Only supported over Windows build, since `Squirrel.Mac` [do ### Provider **Kind**: class of [electron-updater/out/api](#module_electron-updater/out/api) +**Properties** + +| Name | Type | +| --- | --- | +| requestHeaders| [RequestHeaders](Developer-API#RequestHeaders) \| null | + * [.Provider](#Provider) * [`.getLatestVersion()`](#module_electron-updater/out/api.Provider+getLatestVersion) ⇒ Promise<module:electron-updater/out/api.T> @@ -317,6 +324,18 @@ Emitted on progress. Only supported over Windows build, since `Squirrel.Mac` [do ### AppUpdater ⇐ internal:EventEmitter **Kind**: class of [electron-updater/out/AppUpdater](#module_electron-updater/out/AppUpdater) **Extends**: internal:EventEmitter +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| autoDownload = true| boolean | Automatically download an update when it is found. | +| requestHeaders| [RequestHeaders](Developer-API#RequestHeaders) \| null | The request headers. | +| logger = (<any>global).__test_app ? null : console| [Logger](#Logger) \| null | The logger. You can pass [electron-log](https://github.com/megahertz/electron-log), [winston](https://github.com/winstonjs/winston) or another logger with the following interface: `{ info(), warn(), error() }`. Set it to `null` if you would like to disable a logging feature. | +| signals = new UpdaterSignal(this)| [UpdaterSignal](#UpdaterSignal) | For type safety you can use signals, e.g. `autoUpdater.signals.updateDownloaded(() => {})` instead of `autoUpdater.on('update-available', () => {})` | +| updateAvailable| boolean | | +| app| Electron:App | | +| versionInfo| [VersionInfo](Publishing-Artifacts#VersionInfo) \| null | | + * [.AppUpdater](#AppUpdater) ⇐ internal:EventEmitter * [`.checkForUpdates()`](#module_electron-updater/out/AppUpdater.AppUpdater+checkForUpdates) ⇒ Promise<[UpdateCheckResult](#UpdateCheckResult)> diff --git a/docs/Developer API.md b/docs/Developer API.md index 7660ea95a14..e6c9ea6c228 100644 --- a/docs/Developer API.md +++ b/docs/Developer API.md @@ -131,6 +131,17 @@ ### AppInfo **Kind**: class of [electron-builder/out/appInfo](#module_electron-builder/out/appInfo) +**Properties** + +| Name | Type | +| --- | --- | +| description = "smarten(this.metadata.description || \"\")"| string | +| version| string | +| buildNumber| string | +| buildVersion| string | +| productName| string | +| productFilename| string | + #### `appInfo.computePackageUrl()` ⇒ Promise< \| string> @@ -248,6 +259,17 @@ ### Node **Kind**: class of [electron-builder/out/asar](#module_electron-builder/out/asar) +**Properties** + +| Name | Type | +| --- | --- | +| files| Object<string, any> | +| unpacked| boolean | +| **size**| number | +| **offset**| number | +| executable| boolean | +| link| string | + ### `electron-builder/out/asar.readAsar(archive)` ⇒ Promise<[AsarFilesystem](#AsarFilesystem)> @@ -439,9 +461,9 @@ * [`.addAllPattern()`](#module_electron-builder/out/fileMatcher.FileMatcher+addAllPattern) * [`.addPattern(pattern)`](#module_electron-builder/out/fileMatcher.FileMatcher+addPattern) * [`.computeParsedPatterns(result, fromDir)`](#module_electron-builder/out/fileMatcher.FileMatcher+computeParsedPatterns) - * [`.containsOnlyIgnore()`](#module_electron-builder/out/fileMatcher.FileMatcher+containsOnlyIgnore) ⇒ "undefined" \| "undefined" + * [`.containsOnlyIgnore()`](#module_electron-builder/out/fileMatcher.FileMatcher+containsOnlyIgnore) ⇒ boolean * [`.createFilter(ignoreFiles, rawFilter, excludePatterns)`](#module_electron-builder/out/fileMatcher.FileMatcher+createFilter) ⇒ module:electron-builder-util/out/fs.__type - * [`.isEmpty()`](#module_electron-builder/out/fileMatcher.FileMatcher+isEmpty) ⇒ "undefined" \| "undefined" + * [`.isEmpty()`](#module_electron-builder/out/fileMatcher.FileMatcher+isEmpty) ⇒ boolean * [`.copyFiles(patterns)`](#module_electron-builder/out/fileMatcher.copyFiles) ⇒ Promise<any> * [`.createFileMatcher(info, appDir, resourcesPath, macroExpander, platformSpecificBuildOptions)`](#module_electron-builder/out/fileMatcher.createFileMatcher) ⇒ [FileMatcher](#FileMatcher) * [`.getFileMatchers(config, name, defaultSrc, defaultDest, allowAdvancedMatching, macroExpander, customBuildOptions)`](#module_electron-builder/out/fileMatcher.getFileMatchers) ⇒ null \| Array @@ -450,14 +472,22 @@ ### FileMatcher **Kind**: class of [electron-builder/out/fileMatcher](#module_electron-builder/out/fileMatcher) +**Properties** + +| Name | Type | +| --- | --- | +| from| string | +| to| string | +| patterns| Array<string> | + * [.FileMatcher](#FileMatcher) * [`.addAllPattern()`](#module_electron-builder/out/fileMatcher.FileMatcher+addAllPattern) * [`.addPattern(pattern)`](#module_electron-builder/out/fileMatcher.FileMatcher+addPattern) * [`.computeParsedPatterns(result, fromDir)`](#module_electron-builder/out/fileMatcher.FileMatcher+computeParsedPatterns) - * [`.containsOnlyIgnore()`](#module_electron-builder/out/fileMatcher.FileMatcher+containsOnlyIgnore) ⇒ "undefined" \| "undefined" + * [`.containsOnlyIgnore()`](#module_electron-builder/out/fileMatcher.FileMatcher+containsOnlyIgnore) ⇒ boolean * [`.createFilter(ignoreFiles, rawFilter, excludePatterns)`](#module_electron-builder/out/fileMatcher.FileMatcher+createFilter) ⇒ module:electron-builder-util/out/fs.__type - * [`.isEmpty()`](#module_electron-builder/out/fileMatcher.FileMatcher+isEmpty) ⇒ "undefined" \| "undefined" + * [`.isEmpty()`](#module_electron-builder/out/fileMatcher.FileMatcher+isEmpty) ⇒ boolean @@ -484,7 +514,7 @@ -#### `fileMatcher.containsOnlyIgnore()` ⇒ "undefined" \| "undefined" +#### `fileMatcher.containsOnlyIgnore()` ⇒ boolean **Kind**: instance method of [FileMatcher](#FileMatcher) @@ -499,7 +529,7 @@ -#### `fileMatcher.isEmpty()` ⇒ "undefined" \| "undefined" +#### `fileMatcher.isEmpty()` ⇒ boolean **Kind**: instance method of [FileMatcher](#FileMatcher) @@ -548,7 +578,7 @@ * [`.saveConfiguration()`](#module_electron-builder/out/fileTransformer.CompilerHost+saveConfiguration) ⇒ Promise<any> * [`.createElectronCompilerHost(projectDir, cacheDir)`](#module_electron-builder/out/fileTransformer.createElectronCompilerHost) ⇒ Promise<[CompilerHost](#CompilerHost)> * [`.createTransformer(srcDir, extraMetadata)`](#module_electron-builder/out/fileTransformer.createTransformer) ⇒ Promise<module:electron-builder-util/out/fs.__type> - * [`.isElectronCompileUsed(info)`](#module_electron-builder/out/fileTransformer.isElectronCompileUsed) ⇒ "undefined" \| "undefined" + * [`.isElectronCompileUsed(info)`](#module_electron-builder/out/fileTransformer.isElectronCompileUsed) ⇒ boolean @@ -594,7 +624,7 @@ -### `electron-builder/out/fileTransformer.isElectronCompileUsed(info)` ⇒ "undefined" \| "undefined" +### `electron-builder/out/fileTransformer.isElectronCompileUsed(info)` ⇒ boolean **Kind**: method of [electron-builder/out/fileTransformer](#module_electron-builder/out/fileTransformer) | Param | Type | @@ -633,6 +663,12 @@ ### LinuxPackager ⇐ [PlatformPackager](#PlatformPackager) **Kind**: class of [electron-builder/out/linuxPackager](#module_electron-builder/out/linuxPackager) **Extends**: [PlatformPackager](#PlatformPackager) +**Properties** + +| Name | Type | +| --- | --- | +| executableName| string | + * [.LinuxPackager](#LinuxPackager) ⇐ [PlatformPackager](#PlatformPackager) * [`.createTargets(targets, mapper, cleanupTasks)`](#module_electron-builder/out/linuxPackager.LinuxPackager+createTargets) @@ -891,6 +927,12 @@ ### MacPackager ⇐ [PlatformPackager](#PlatformPackager) **Kind**: class of [electron-builder/out/macPackager](#module_electron-builder/out/macPackager) **Extends**: [PlatformPackager](#PlatformPackager) +**Properties** + +| Name | Type | +| --- | --- | +| codeSigningInfo| Promise<[CodeSigningInfo](#CodeSigningInfo)> | + * [.MacPackager](#MacPackager) ⇐ [PlatformPackager](#PlatformPackager) * [`.createTargets(targets, mapper, cleanupTasks)`](#module_electron-builder/out/macPackager.MacPackager+createTargets) @@ -1247,6 +1289,17 @@ ### PlatformPackager **Kind**: class of [electron-builder/out/platformPackager](#module_electron-builder/out/platformPackager) +**Properties** + +| Name | Type | +| --- | --- | +| packagerOptions| [PackagerOptions](Options#PackagerOptions) | +| projectDir| string | +| buildResourcesDir| string | +| config| [Config](Options#Config) | +| platformSpecificBuildOptions| module:electron-builder/out/platformPackager.DC | +| appInfo| [AppInfo](#AppInfo) | + * [.PlatformPackager](#PlatformPackager) * [`.createTargets(targets, mapper, cleanupTasks)`](#module_electron-builder/out/platformPackager.PlatformPackager+createTargets) @@ -1497,6 +1550,13 @@ ### PublishManager ⇐ [PublishContext](#PublishContext) **Kind**: class of [electron-builder/out/publish/PublishManager](#module_electron-builder/out/publish/PublishManager) **Extends**: [PublishContext](#PublishContext) +**Properties** + +| Name | Type | +| --- | --- | +| publishTasks=| Array<Promise<any>> | +| progress = (<NodeJS.WritableStream>process.stdout).isTTY ? new MultiProgress() : null| null \| [MultiProgress](#MultiProgress) | + * [.PublishManager](#PublishManager) ⇐ [PublishContext](#PublishContext) * [`.awaitTasks()`](#module_electron-builder/out/publish/PublishManager.PublishManager+awaitTasks) ⇒ Promise<void> @@ -1639,6 +1699,12 @@ ### AppImageTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/appImage](#module_electron-builder/out/targets/appImage) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = Object.assign({}, this.packager.platformSpecificBuildOptions, (<any>this.packager.config)[this.name])| [LinuxBuildOptions](Options#LinuxBuildOptions) | + * [.AppImageTarget](#AppImageTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/appImage.AppImageTarget+build) ⇒ Promise<any> @@ -1673,6 +1739,12 @@ ### AppXTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/appx](#module_electron-builder/out/targets/appx) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = Object.assign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx)| [AppXOptions](Options#AppXOptions) | + * [.AppXTarget](#AppXTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/appx.AppXTarget+build) ⇒ Promise<any> @@ -1741,6 +1813,12 @@ ### ArchiveTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/ArchiveTarget](#module_electron-builder/out/targets/ArchiveTarget) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = (<any>this.packager.config)[this.name]| any | + * [.ArchiveTarget](#ArchiveTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/ArchiveTarget.ArchiveTarget+build) ⇒ Promise<any> @@ -1778,6 +1856,12 @@ ### DmgTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/dmg](#module_electron-builder/out/targets/dmg) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = this.packager.config.dmg| undefined \| null \| [DmgOptions](Options#DmgOptions) | + * [.DmgTarget](#DmgTarget) ⇐ [Target](#Target) * [`.build(appPath, arch)`](#module_electron-builder/out/targets/dmg.DmgTarget+build) ⇒ Promise<void> @@ -1838,6 +1922,12 @@ ### FpmTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/fpm](#module_electron-builder/out/targets/fpm) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = Object.assign({}, this.packager.platformSpecificBuildOptions, (<any>this.packager.config)[this.name])| any | + * [.FpmTarget](#FpmTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/fpm.FpmTarget+build) ⇒ Promise<any> @@ -1871,6 +1961,13 @@ ### LinuxTargetHelper **Kind**: class of [electron-builder/out/targets/LinuxTargetHelper](#module_electron-builder/out/targets/LinuxTargetHelper) +**Properties** + +| Name | Type | +| --- | --- | +| icons| Promise<Array<Array<string>>> | +| maxIconPath| string \| null | + * [.LinuxTargetHelper](#LinuxTargetHelper) * [`.computeDesktopEntry(platformSpecificBuildOptions, exec, destination, extra)`](#module_electron-builder/out/targets/LinuxTargetHelper.LinuxTargetHelper+computeDesktopEntry) ⇒ Promise<string> @@ -1913,6 +2010,12 @@ ### NsisTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/nsis](#module_electron-builder/out/targets/nsis) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options| [NsisOptions](Options#NsisOptions) | + * [.NsisTarget](#NsisTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/nsis.NsisTarget+build) ⇒ Promise<void> @@ -1967,6 +2070,12 @@ ### PkgTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/pkg](#module_electron-builder/out/targets/pkg) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = this.packager.config.pkg || Object.create(null)| [PkgOptions](Options#PkgOptions) | + * [.PkgTarget](#PkgTarget) ⇐ [Target](#Target) * [`.build(appPath, arch)`](#module_electron-builder/out/targets/pkg.PkgTarget+build) ⇒ Promise<any> @@ -2011,6 +2120,12 @@ ### SnapTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/snap](#module_electron-builder/out/targets/snap) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options = Object.assign({}, this.packager.platformSpecificBuildOptions, (<any>this.packager.config)[this.name])| [SnapOptions](Options#SnapOptions) | + * [.SnapTarget](#SnapTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/snap.SnapTarget+build) ⇒ Promise<any> @@ -2048,6 +2163,12 @@ ### NoOpTarget ⇐ [Target](#Target) **Kind**: class of [electron-builder/out/targets/targetFactory](#module_electron-builder/out/targets/targetFactory) **Extends**: [Target](#Target) +**Properties** + +| Name | Type | +| --- | --- | +| options| null | + * [.NoOpTarget](#NoOpTarget) ⇐ [Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder/out/targets/targetFactory.NoOpTarget+build) ⇒ Promise<any> @@ -2144,7 +2265,7 @@ * [electron-builder/out/util/filter](#module_electron-builder/out/util/filter) * [`.createFilter(src, patterns, ignoreFiles, rawFilter, excludePatterns)`](#module_electron-builder/out/util/filter.createFilter) ⇒ module:electron-builder-util/out/fs.__type - * [`.hasMagic(pattern)`](#module_electron-builder/out/util/filter.hasMagic) ⇒ "undefined" \| "undefined" + * [`.hasMagic(pattern)`](#module_electron-builder/out/util/filter.hasMagic) ⇒ boolean @@ -2161,7 +2282,7 @@ -### `electron-builder/out/util/filter.hasMagic(pattern)` ⇒ "undefined" \| "undefined" +### `electron-builder/out/util/filter.hasMagic(pattern)` ⇒ boolean **Kind**: method of [electron-builder/out/util/filter](#module_electron-builder/out/util/filter) | Param | Type | @@ -2259,12 +2380,12 @@ | Name | Type | | --- | --- | -| **path**| string | +| path| string | | cert| string \| null | | name| string \| null | | password| string \| null | | site| string \| null | -| **options**| [WinBuildOptions](Options#WinBuildOptions) | +| options| [WinBuildOptions](Options#WinBuildOptions) | @@ -2318,6 +2439,73 @@ ### WinPackager ⇐ [PlatformPackager](#PlatformPackager) **Kind**: class of [electron-builder/out/winPackager](#module_electron-builder/out/winPackager) **Extends**: [PlatformPackager](#PlatformPackager) +**Properties** + +| Name | Type | +| --- | --- | +| **[cscInfo=new Lazy<FileCodeSigningInfo | null>(() => { + const platformSpecificBuildOptions = this.platformSpecificBuildOptions + const subjectName = platformSpecificBuildOptions.certificateSubjectName + if (subjectName != null) { + return BluebirdPromise.resolve({subjectName}) + } + + const certificateSha1 = platformSpecificBuildOptions.certificateSha1 + if (certificateSha1 != null) { + return BluebirdPromise.resolve({certificateSha1}) + } + + const certificateFile = platformSpecificBuildOptions.certificateFile + if (certificateFile != null) { + const certificatePassword = this.getCscPassword() + return BluebirdPromise.resolve({ + file: certificateFile, + password: certificatePassword == null ? null : certificatePassword.trim(), + }) + } + else { + const cscLink = process.env.WIN_CSC_LINK || this.packagerOptions.cscLink + if (cscLink != null) { + return downloadCertificate(cscLink, this.info.tempDirManager) + .then(path => { + return { + file: path, + password: this.getCscPassword(), + } + }) + } + else { + return BluebirdPromise.resolve(null) + } + } + })]**| [Lazy](#Lazy)< \| [FileCodeSigningInfo](#FileCodeSigningInfo)> | +| **[computedPublisherName=new Lazy<Array<string> | null>(async () => { + let publisherName = (<WinBuildOptions>this.platformSpecificBuildOptions).publisherName + if (publisherName === null) { + return null + } + + const cscInfo = await this.cscInfo.value + if (cscInfo == null) { + return null + } + + if (publisherName == null && cscInfo.file != null) { + try { + // https://github.com/digitalbazaar/forge/issues/338#issuecomment-164831585 + const p12Asn1 = forge.asn1.fromDer(await readFile(cscInfo.file, "binary"), false) + const p12 = (<any>forge).pkcs12.pkcs12FromAsn1(p12Asn1, false, cscInfo.password) + const bagType = (<any>forge.pki.oids).certBag + publisherName = p12.getBags({bagType: bagType})[bagType][0].cert.subject.getField("CN").value + } + catch (e) { + throw new Error(`Cannot extract publisher name from code signing certificate, please file issue. As workaround, set win.publisherName: ${e.stack || e}`) + } + } + + return publisherName == null ? null : asArray(publisherName) + })]**| [Lazy](#Lazy)< \| Array> | + * [.WinPackager](#WinPackager) ⇐ [PlatformPackager](#PlatformPackager) * [`.createTargets(targets, mapper, cleanupTasks)`](#module_electron-builder/out/winPackager.WinPackager+createTargets) @@ -2674,7 +2862,7 @@ | Name | Type | | --- | --- | -| **name**| string | +| name| string | | email| string | @@ -2685,10 +2873,10 @@ | Name | Type | | --- | --- | -| **appDir**| string | -| **electronVersion**| string | -| **platform**| [Platform](#Platform) | -| **arch**| string | +| appDir| string | +| electronVersion| string | +| platform| [Platform](#Platform) | +| arch| string | @@ -2704,7 +2892,7 @@ On Windows works only if [nsis.perMachine](https://github.com/electron-userland/ | Name | Type | Description | | --- | --- | --- | -| **ext**| string \| Array<string> | The extension (minus the leading period). e.g. `png`. | +| ext| string \| Array<string> | The extension (minus the leading period). e.g. `png`. | | name| string \| null | The name. e.g. `PNG`. Defaults to `ext`. | | description| string \| null | *windows-only.* The description. | | icon| string \| null | The path to icon (`.icns` for MacOS and `.ico` for Windows), relative to `build` (build resources directory). Defaults to `${firstExt}.icns`/`${firstExt}.ico` (if several extensions specified, first is used) or to application icon. | @@ -2767,9 +2955,9 @@ Please note — on macOS [you need to register an `open-url` event handler](http | Name | Type | Description | | --- | --- | --- | -| **name**| string | The name. e.g. `IRC server URL`. | +| name| string | The name. e.g. `IRC server URL`. | | role = Editor| "Editor" \| "Viewer" \| "Shell" \| "None" | *macOS-only* The app’s role with respect to the type. | -| **schemes**| Array<string> | The schemes. e.g. `["irc", "ircs"]`. | +| schemes| Array<string> | The schemes. e.g. `["irc", "ircs"]`. | @@ -2779,7 +2967,7 @@ Please note — on macOS [you need to register an `open-url` event handler](http | Name | Type | | --- | --- | -| **url**| string | +| url| string | @@ -2802,7 +2990,7 @@ Please note — on macOS [you need to register an `open-url` event handler](http | Name | Type | Description | | --- | --- | --- | -| **target**| string | The target name. e.g. `snap`. | +| target| string | The target name. e.g. `snap`. | | arch| Array<"x64" \| "ia32" \| "armv7l"> \| string | The arch or list of archs. | @@ -2821,6 +3009,15 @@ Please note — on macOS [you need to register an `open-url` event handler](http ### Platform **Kind**: class of [electron-builder-core](#module_electron-builder-core) +**Properties** + +| Name | Type | +| --- | --- | +| MAC = new Platform("mac", "mac", "darwin")| [Platform](#Platform) | +| LINUX = new Platform("linux", "linux", "linux")| [Platform](#Platform) | +| WINDOWS = new Platform("windows", "win", "win32")| [Platform](#Platform) | +| OSX = Platform.MAC| [Platform](#Platform) | + * [.Platform](#Platform) * [`.createTarget(type, archs)`](#module_electron-builder-core.Platform+createTarget) ⇒ Map<[Platform](#Platform) \| Map<[Arch](#Arch) \| Array<string>>> @@ -2859,6 +3056,13 @@ Please note — on macOS [you need to register an `open-url` event handler](http ### Target **Kind**: class of [electron-builder-core](#module_electron-builder-core) +**Properties** + +| Name | Type | +| --- | --- | +| outDir| string | +| options| [TargetSpecificOptions](#TargetSpecificOptions) \| null \| undefined | + * [.Target](#Target) * [`.build(appOutDir, arch)`](#module_electron-builder-core.Target+build) ⇒ Promise<any> @@ -2952,13 +3156,23 @@ Please note — on macOS [you need to register an `open-url` event handler](http | Name | Type | | --- | --- | -| **name**| string | -| **package**| string | +| name| string | +| package| string | ### BintrayClient **Kind**: class of [electron-builder-http/out/bintray](#module_electron-builder-http/out/bintray) +**Properties** + +| Name | Type | +| --- | --- | +| auth| string \| null | +| repo| string | +| owner| string | +| user| string | +| packageName| string | + * [.BintrayClient](#BintrayClient) * [`.createVersion(version)`](#module_electron-builder-http/out/bintray.BintrayClient+createVersion) ⇒ Promise<any> @@ -3149,7 +3363,7 @@ Please note — on macOS [you need to register an `open-url` event handler](http | headers| [RequestHeaders](#RequestHeaders) \| null | | skipDirCreation| boolean | | sha2| string \| null | -| **cancellationToken**| [CancellationToken](#CancellationToken) | +| cancellationToken| [CancellationToken](#CancellationToken) | @@ -3195,6 +3409,13 @@ Please note — on macOS [you need to register an `open-url` event handler](http ### HttpExecutor **Kind**: class of [electron-builder-http](#module_electron-builder-http) +**Properties** + +| Name | Type | +| --- | --- | +| maxRedirects = 10| "10" | +| debug = _debug("electron-builder")| debug:Debugger | + * [.HttpExecutor](#HttpExecutor) * [`.download(url, destination, options)`](#module_electron-builder-http.HttpExecutor+download) ⇒ Promise<string> @@ -3358,6 +3579,12 @@ Please note — on macOS [you need to register an `open-url` event handler](http ### BintrayPublisher ⇐ [HttpPublisher](#HttpPublisher) **Kind**: class of [electron-publish/out/BintrayPublisher](#module_electron-publish/out/BintrayPublisher) **Extends**: [HttpPublisher](#HttpPublisher) +**Properties** + +| Name | Type | +| --- | --- | +| providerName = Bintray| "Bintray" | + * [.BintrayPublisher](#BintrayPublisher) ⇐ [HttpPublisher](#HttpPublisher) * [`.deleteRelease()`](#module_electron-publish/out/BintrayPublisher.BintrayPublisher+deleteRelease) ⇒ Promise<any> @@ -3470,6 +3697,12 @@ Please note — on macOS [you need to register an `open-url` event handler](http ### GitHubPublisher ⇐ [HttpPublisher](#HttpPublisher) **Kind**: class of [electron-publish/out/gitHubPublisher](#module_electron-publish/out/gitHubPublisher) **Extends**: [HttpPublisher](#HttpPublisher) +**Properties** + +| Name | Type | +| --- | --- | +| providerName = GitHub| "GitHub" | + * [.GitHubPublisher](#GitHubPublisher) ⇐ [HttpPublisher](#HttpPublisher) * [`.deleteRelease()`](#module_electron-publish/out/gitHubPublisher.GitHubPublisher+deleteRelease) ⇒ Promise<any> @@ -3611,8 +3844,8 @@ Please note — on macOS [you need to register an `open-url` event handler](http | Name | Type | | --- | --- | -| **cancellationToken**| [CancellationToken](#CancellationToken) | -| **progress**| [MultiProgress](#MultiProgress) \| null | +| cancellationToken| [CancellationToken](#CancellationToken) | +| progress| [MultiProgress](#MultiProgress) \| null | @@ -3959,6 +4192,12 @@ Please note — on macOS [you need to register an `open-url` event handler](http ### BaseGitHubProvider ⇐ [Provider](Auto-Update#Provider) **Kind**: class of [electron-updater/out/GitHubProvider](#module_electron-updater/out/GitHubProvider) **Extends**: [Provider](Auto-Update#Provider) +**Properties** + +| Name | Type | +| --- | --- | +| baseUrl| module:http.RequestOptions | + ### GitHubProvider ⇐ [BaseGitHubProvider](#BaseGitHubProvider) @@ -4177,7 +4416,7 @@ Start downloading update manually. You can use this method if `autoDownload` opt * [`.copy(src, dest, stat)`](#module_electron-builder-util/out/fs.FileCopier+copy) ⇒ Promise<void> * [`.copyDir(src, destination, filter, transformer, isUseHardLink)`](#module_electron-builder-util/out/fs.copyDir) ⇒ Promise<any> * [`.copyFile(src, dest, stats, isUseHardLink)`](#module_electron-builder-util/out/fs.copyFile) ⇒ Promise<any> - * [`.exists(file)`](#module_electron-builder-util/out/fs.exists) ⇒ Promise<"undefined" \| "undefined"> + * [`.exists(file)`](#module_electron-builder-util/out/fs.exists) ⇒ Promise<boolean> * [`.statOrNull(file)`](#module_electron-builder-util/out/fs.statOrNull) ⇒ Promise< \| module:fs.Stats> * [`.unlinkIfExists(file)`](#module_electron-builder-util/out/fs.unlinkIfExists) ⇒ Promise<string \| void> * [`.walk(initialDirPath, filter, consumer)`](#module_electron-builder-util/out/fs.walk) ⇒ Promise<Array<string>> @@ -4230,7 +4469,7 @@ File permission is fixed — allow execute for all if owner can, allow read for -### `electron-builder-util/out/fs.exists(file)` ⇒ Promise<"undefined" \| "undefined"> +### `electron-builder-util/out/fs.exists(file)` ⇒ Promise<boolean> **Kind**: method of [electron-builder-util/out/fs](#module_electron-builder-util/out/fs) | Param | Type | @@ -4551,7 +4790,7 @@ File permission is fixed — allow execute for all if owner can, allow read for * [`.getPlatformIconFileName(value, isMac)`](#module_electron-builder-util.getPlatformIconFileName) ⇒ undefined \| null \| string * [`.getTempName(prefix)`](#module_electron-builder-util.getTempName) ⇒ string * [`.handleProcess(event, childProcess, command, resolve, reject)`](#module_electron-builder-util.handleProcess) - * [`.isEmptyOrSpaces(s)`](#module_electron-builder-util.isEmptyOrSpaces) ⇒ "undefined" \| "undefined" + * [`.isEmptyOrSpaces(s)`](#module_electron-builder-util.isEmptyOrSpaces) ⇒ boolean * [`.isPullRequest()`](#module_electron-builder-util.isPullRequest) ⇒ "undefined" \| "undefined" \| "" * [`.prepareArgs(args, exePath)`](#module_electron-builder-util.prepareArgs) ⇒ Array<string> * [`.removePassword(input)`](#module_electron-builder-util.removePassword) ⇒ string @@ -4703,7 +4942,7 @@ File permission is fixed — allow execute for all if owner can, allow read for -### `electron-builder-util.isEmptyOrSpaces(s)` ⇒ "undefined" \| "undefined" +### `electron-builder-util.isEmptyOrSpaces(s)` ⇒ boolean **Kind**: method of [electron-builder-util](#module_electron-builder-util) | Param | Type | diff --git a/docs/Options.md b/docs/Options.md index 4c3ce8f3a0f..40917b3d788 100644 --- a/docs/Options.md +++ b/docs/Options.md @@ -126,11 +126,11 @@ You can use [file macros](#file-macros) in the `from` and `to` fields as well. | Name | Type | | --- | --- | -| **appOutDir**| string | -| **packager**| [PlatformPackager](Developer-API#PlatformPackager)<any> | -| **electronPlatformName**| string | -| **arch**| [Arch](Developer-API#Arch) | -| **targets**| Array<[Target](Developer-API#Target)> | +| appOutDir| string | +| packager| [PlatformPackager](Developer-API#PlatformPackager)<any> | +| electronPlatformName| string | +| arch| [Arch](Developer-API#Arch) | +| targets| Array<[Target](Developer-API#Target)> | @@ -157,8 +157,8 @@ AppX Options | Name | Type | | --- | --- | -| **packager**| [PlatformPackager](Developer-API#PlatformPackager)<any> | -| **target**| [Target](Developer-API#Target) \| null | +| packager| [PlatformPackager](Developer-API#PlatformPackager)<any> | +| target| [Target](Developer-API#Target) \| null | | file| string | | data| Buffer | | safeArtifactName| string | @@ -172,21 +172,21 @@ AppX Options | Name | Type | | --- | --- | -| **options**| [PackagerOptions](#PackagerOptions) | -| **metadata**| [Metadata](#Metadata) | -| **devMetadata**| [Metadata](#Metadata) | -| **config**| [Config](#Config) | -| **projectDir**| string | -| **appDir**| string | -| **electronVersion**| string | +| options| [PackagerOptions](#PackagerOptions) | +| metadata| [Metadata](#Metadata) | +| devMetadata| [Metadata](#Metadata) | +| config| [Config](#Config) | +| projectDir| string | +| appDir| string | +| electronVersion| string | | muonVersion| string \| null | -| **isTwoPackageJsonProjectLayoutUsed**| boolean | -| **appInfo**| [AppInfo](Developer-API#AppInfo) | -| **tempDirManager**| [TmpDir](Developer-API#TmpDir) | -| **repositoryInfo**| Promise< \| [SourceRepositoryInfo](Developer-API#SourceRepositoryInfo)> | -| **isPrepackedAppAsar**| boolean | +| isTwoPackageJsonProjectLayoutUsed| boolean | +| appInfo| [AppInfo](Developer-API#AppInfo) | +| tempDirManager| [TmpDir](Developer-API#TmpDir) | +| repositoryInfo| Promise< \| [SourceRepositoryInfo](Developer-API#SourceRepositoryInfo)> | +| isPrepackedAppAsar| boolean | | prepackaged| string \| null | -| **cancellationToken**| [CancellationToken](Developer-API#CancellationToken) | +| cancellationToken| [CancellationToken](Developer-API#CancellationToken) | @@ -201,8 +201,8 @@ AppX Options | Name | Type | | --- | --- | -| **outDir**| string | -| **platformToTargets**| Map<[Platform](Developer-API#Platform) \| Map<String \| [Target](Developer-API#Target)>> | +| outDir| string | +| platformToTargets| Map<[Platform](Developer-API#Platform) \| Map<String \| [Target](Developer-API#Target)>> | @@ -596,6 +596,22 @@ Windows Specific Options ### Packager ⇐ [BuildInfo](#BuildInfo) **Kind**: class of [electron-builder](#module_electron-builder) **Extends**: [BuildInfo](#BuildInfo) +**Properties** + +| Name | Type | +| --- | --- | +| projectDir| string | +| **appDir**| string | +| **metadata**| [Metadata](#Metadata) | +| **devMetadata**| [Metadata](#Metadata) | +| isTwoPackageJsonProjectLayoutUsed = true| boolean | +| **electronVersion**| string | +| muonVersion| string \| null | +| eventEmitter = new EventEmitter()| internal:EventEmitter | +| **appInfo**| [AppInfo](Developer-API#AppInfo) | +| tempDirManager = new TmpDir()| [TmpDir](Developer-API#TmpDir) | +| prepackaged| string \| null | + ### `electron-builder.build(rawOptions)` ⇒ Promise<Array<string>> diff --git a/docs/Publishing Artifacts.md b/docs/Publishing Artifacts.md index 0924a339ce3..f979517600b 100644 --- a/docs/Publishing Artifacts.md +++ b/docs/Publishing Artifacts.md @@ -108,7 +108,7 @@ Generic (any HTTP(S) server) options. | Name | Type | Description | | --- | --- | --- | -| **url**| string | The base url. e.g. `https://bucket_name.s3.amazonaws.com`. You can use `${os}` (expanded to `mac`, `linux` or `win` according to target platform) and `${arch}` macros. | +| url| string | The base url. e.g. `https://bucket_name.s3.amazonaws.com`. You can use `${os}` (expanded to `mac`, `linux` or `win` according to target platform) and `${arch}` macros. | | channel = "latest"| string \| null | The channel. | @@ -143,7 +143,7 @@ If `BT_TOKEN` is set and `GH_TOKEN` is not set — defaults to `[{provider: "bin | Name | Type | Description | | --- | --- | --- | -| **provider**| "github" \| "bintray" \| "s3" \| "generic" | The provider. | +| provider| "github" \| "bintray" \| "s3" \| "generic" | The provider. | | owner| string \| null | The owner. | | token| string \| null | | @@ -161,7 +161,7 @@ Define `AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID` [environment variables](h | Name | Type | Description | | --- | --- | --- | -| **bucket**| string | The bucket name. | +| bucket| string | The bucket name. | | path = "/"| string \| null | The directory path. | | region| string \| null | The region. Is determined and set automatically when publishing. | | channel = "latest"| string \| null | The channel. | @@ -184,12 +184,12 @@ Define `AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID` [environment variables](h | Name | Type | Description | | --- | --- | --- | -| **path**| string | | +| path| string | | | githubArtifactName| string \| null | | -| **sha2**| string | | +| sha2| string | | | releaseName| string \| null | The release name. | | releaseNotes| string \| null | The release notes. | -| **releaseDate**| string | The release date. | +| releaseDate| string | The release date. | @@ -199,7 +199,7 @@ Define `AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID` [environment variables](h | Name | Type | Description | | --- | --- | --- | -| **version**| string | The version. | +| version| string | The version. | diff --git a/jsdoc/helpers.js b/jsdoc/helpers.js index ae8f05672f8..634ca32e312 100644 --- a/jsdoc/helpers.js +++ b/jsdoc/helpers.js @@ -121,7 +121,16 @@ function link2(type, delimiter, root) { function identifierToLink(id, root) { let linked = resolveById(id) if (!linked) { - if (id.startsWith("module")) { + if (id.startsWith("module") && + !id.startsWith("module:http.") && + !id.startsWith("module:bluebird-lst.") && + !id.startsWith("module:child_process.") && + !id.startsWith("module:progress-ex") && + !id.endsWith(".T") && + !id.endsWith(".R") && + !id.endsWith(".K") && + !id.startsWith("module:fs.") + ) { console.warn(`Unresolved member ${id}`) } return id diff --git a/package.json b/package.json index fd4e6fa5e1c..6583c8733fd 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "sanitize-filename": "^1.6.1", "semver": "^5.3.0", "stat-mode": "^0.2.2", - "ts-jsdoc": "^1.1.1", + "ts-jsdoc": "^1.2.0", "tunnel-agent": "^0.6.0", "update-notifier": "^2.1.0", "uuid-1345": "^0.99.6", diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index b779007ed62..a0b10e62fa4 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -27,20 +27,23 @@ export abstract class AppUpdater extends EventEmitter { /** * Automatically download an update when it is found. */ - public autoDownload = true + autoDownload = true /** * The request headers. */ - public requestHeaders: RequestHeaders | null + requestHeaders: RequestHeaders | null /** * The logger. You can pass [electron-log](https://github.com/megahertz/electron-log), [winston](https://github.com/winstonjs/winston) or another logger with the following interface: `{ info(), warn(), error() }`. * Set it to `null` if you would like to disable a logging feature. */ - public logger: Logger | null = (global).__test_app ? null : console + logger: Logger | null = (global).__test_app ? null : console - public readonly signals = new UpdaterSignal(this) + /** + * For type safety you can use signals, e.g. `autoUpdater.signals.updateDownloaded(() => {})` instead of `autoUpdater.on('update-available', () => {})` + */ + readonly signals = new UpdaterSignal(this) private _appUpdateConfigPath: string | null @@ -56,7 +59,7 @@ export abstract class AppUpdater extends EventEmitter { private readonly untilAppReady: Promise private checkForUpdatesPromise: Promise | null - protected readonly app: any + protected readonly app: Electron.App protected versionInfo: VersionInfo | null private fileInfo: FileInfo | null diff --git a/yarn.lock b/yarn.lock index 945ca6e0524..6f98033890b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,8 +45,8 @@ resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-0.6.8.tgz#fb38ae420be9c9b679bed3f974201120947b920f" "@types/node@*": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.10.tgz#d860abb18c1b58b552c7c6cd8b2ba7adf6546fa3" + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.11.tgz#55680189f2335f080f0aeb57871f0b9823646d89" "@types/source-map-support@^0.2.28": version "0.2.28" @@ -1350,8 +1350,8 @@ glob@~5.0.0: path-is-absolute "^1.0.0" globals@^9.0.0: - version "9.16.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" globby@^6.1.0: version "6.1.0" @@ -2255,7 +2255,7 @@ mime@^1.3.4: dependencies: brace-expansion "^1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -2263,6 +2263,10 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -3165,9 +3169,9 @@ ts-babel@^3.0.0: fs-extra-p "^4.1.0" source-map-support "^0.4.14" -ts-jsdoc@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ts-jsdoc/-/ts-jsdoc-1.1.1.tgz#3dbcc31885062ef438413ffb8c839920a86468fe" +ts-jsdoc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-jsdoc/-/ts-jsdoc-1.2.0.tgz#7400db16493fe3292bf884122142bd02b755d085" dependencies: bluebird-lst "^1.0.2" chalk "^1.1.3" @@ -3231,8 +3235,8 @@ typical@^2.4.2, typical@^2.6.0: resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.0.tgz#89d51554ab139848a65bcc2c8772f8fb450c40ed" uglify-js@^2.6: - version "2.8.15" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.15.tgz#835dd4cd5872554756e6874508d0d0561704d94d" + version "2.8.16" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.16.tgz#d286190b6eefc6fd65eb0ecac6551e0b0e8839a4" dependencies: source-map "~0.5.1" yargs "~3.10.0"