electron-incremental-update 2.2.6 → 2.3.1
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/dist/{chunk-KLUIYBS4.js → chunk-QPAKJHVM.js} +4 -4
- package/dist/index.cjs +64 -15
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +64 -15
- package/dist/provider.cjs +78 -77
- package/dist/provider.d.cts +58 -61
- package/dist/provider.d.ts +58 -61
- package/dist/provider.js +76 -76
- package/dist/{types-1T_tRG8a.d.cts → types-CU7GyVez.d.cts} +2 -2
- package/dist/{types-1T_tRG8a.d.ts → types-CU7GyVez.d.ts} +2 -2
- package/dist/utils.cjs +5 -4
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/dist/vite.d.ts +2 -2
- package/dist/vite.js +37 -33
- package/dist/{zip-ChpUyjy1.d.cts → zip-Blmn2vzE.d.cts} +4 -3
- package/dist/{zip-DUHOPZrB.d.ts → zip-CnSv_Njj.d.ts} +4 -3
- package/package.json +2 -1
package/dist/provider.d.cts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-
|
|
2
|
-
export { j as defaultDownloadAsar, f as
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import '@subframe7536/type-utils';
|
|
1
|
+
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-Blmn2vzE.cjs';
|
|
2
|
+
export { j as defaultDownloadAsar, f as defaultDownloadText, i as defaultDownloadUpdateJSON, e as downloadUtil, g as getHeader, r as resolveJson } from './zip-Blmn2vzE.cjs';
|
|
3
|
+
import { I as IProvider, d as defaultIsLowerVersion, b as UpdateJSONWithURL, e as UpdateInfoWithURL, D as DownloadingInfo, f as URLHandler } from './types-CU7GyVez.cjs';
|
|
4
|
+
import { Promisable } from '@subframe7536/type-utils';
|
|
6
5
|
import 'electron';
|
|
7
6
|
import 'node:url';
|
|
8
7
|
|
|
9
|
-
declare abstract class BaseProvider
|
|
8
|
+
declare abstract class BaseProvider implements IProvider {
|
|
10
9
|
name: string;
|
|
11
10
|
/**
|
|
12
11
|
* @inheritdoc
|
|
@@ -23,14 +22,14 @@ declare abstract class BaseProvider<T extends UpdateInfoWithURL = UpdateInfoWith
|
|
|
23
22
|
/**
|
|
24
23
|
* @inheritdoc
|
|
25
24
|
*/
|
|
26
|
-
abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<
|
|
25
|
+
abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
|
|
27
26
|
/**
|
|
28
27
|
* @inheritdoc
|
|
29
28
|
*/
|
|
30
29
|
abstract downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
interface
|
|
32
|
+
interface BaseGitHubProviderOptions {
|
|
34
33
|
/**
|
|
35
34
|
* Github user name
|
|
36
35
|
*/
|
|
@@ -39,11 +38,6 @@ interface GitHubProviderOptions {
|
|
|
39
38
|
* Github repo name
|
|
40
39
|
*/
|
|
41
40
|
repo: string;
|
|
42
|
-
/**
|
|
43
|
-
* Github branch name that fetch version
|
|
44
|
-
* @default 'HEAD'
|
|
45
|
-
*/
|
|
46
|
-
branch?: string;
|
|
47
41
|
/**
|
|
48
42
|
* Extra headers
|
|
49
43
|
*/
|
|
@@ -59,79 +53,82 @@ interface GitHubProviderOptions {
|
|
|
59
53
|
*/
|
|
60
54
|
urlHandler?: URLHandler;
|
|
61
55
|
}
|
|
62
|
-
declare class
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Update Provider for Github repo
|
|
67
|
-
* - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
|
|
68
|
-
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
69
|
-
*
|
|
70
|
-
* you can setup `urlHandler` in {@link GitHubProviderOptions} to modify url before request
|
|
71
|
-
* @param options provider options
|
|
72
|
-
*/
|
|
73
|
-
constructor(options: GitHubProviderOptions);
|
|
56
|
+
declare abstract class BaseGitHubProvider<T extends BaseGitHubProviderOptions = BaseGitHubProviderOptions> extends BaseProvider {
|
|
57
|
+
protected options: T;
|
|
58
|
+
constructor(options: T);
|
|
74
59
|
get urlHandler(): URLHandler | undefined;
|
|
75
60
|
set urlHandler(handler: URLHandler);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
*/
|
|
81
|
-
downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<T>;
|
|
61
|
+
protected parseURL(extraPath: string): Promise<string>;
|
|
62
|
+
protected abstract getHeaders(accept: string): Record<string, string>;
|
|
63
|
+
protected abstract getVersionURL(versionPath: string, signal: AbortSignal): Promisable<string>;
|
|
64
|
+
downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
|
|
82
65
|
/**
|
|
83
66
|
* @inheritdoc
|
|
84
67
|
*/
|
|
85
68
|
downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
|
|
86
69
|
}
|
|
87
70
|
|
|
88
|
-
interface GitHubApiProviderOptions {
|
|
89
|
-
/**
|
|
90
|
-
* Github user name
|
|
91
|
-
*/
|
|
92
|
-
user: string;
|
|
93
|
-
/**
|
|
94
|
-
* Github repo name
|
|
95
|
-
*/
|
|
96
|
-
repo: string;
|
|
97
|
-
/**
|
|
98
|
-
* Github access token
|
|
99
|
-
*/
|
|
71
|
+
interface GitHubApiProviderOptions extends BaseGitHubProviderOptions {
|
|
100
72
|
token?: string;
|
|
101
|
-
/**
|
|
102
|
-
* Extra headers
|
|
103
|
-
*/
|
|
104
|
-
extraHeaders?: Record<string, string>;
|
|
105
|
-
/**
|
|
106
|
-
* Custom url handler
|
|
107
|
-
*/
|
|
108
|
-
urlHandler?: URLHandler;
|
|
109
73
|
}
|
|
110
|
-
declare class GitHubApiProvider
|
|
74
|
+
declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOptions> {
|
|
111
75
|
name: string;
|
|
112
|
-
private options;
|
|
113
76
|
/**
|
|
114
77
|
* Update Provider for Github API, you need to upload `version.json` to release as well
|
|
115
78
|
* - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
|
|
116
79
|
* - download update json and get version and download url
|
|
117
80
|
* - download update asar from update info
|
|
118
81
|
*
|
|
119
|
-
* you can setup `urlHandler` in
|
|
82
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
120
83
|
* @param options provider options
|
|
121
84
|
*/
|
|
122
85
|
constructor(options: GitHubApiProviderOptions);
|
|
123
|
-
|
|
124
|
-
set urlHandler(handler: URLHandler);
|
|
125
|
-
private parseURL;
|
|
126
|
-
private getHeaders;
|
|
86
|
+
protected getHeaders(accept: string): Record<string, string>;
|
|
127
87
|
/**
|
|
128
88
|
* @inheritdoc
|
|
129
89
|
*/
|
|
130
|
-
|
|
90
|
+
protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
declare class GitHubAtomProvider extends BaseGitHubProvider {
|
|
94
|
+
name: string;
|
|
95
|
+
/**
|
|
96
|
+
* Update Provider for Github repo
|
|
97
|
+
* - check update from `https://github.com/{user}/{repo}/releases.atom`
|
|
98
|
+
* - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
|
|
99
|
+
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
100
|
+
*
|
|
101
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
102
|
+
* @param options provider options
|
|
103
|
+
*/
|
|
104
|
+
constructor(options: BaseGitHubProviderOptions);
|
|
105
|
+
protected getHeaders(accept: string): Record<string, string>;
|
|
131
106
|
/**
|
|
132
107
|
* @inheritdoc
|
|
133
108
|
*/
|
|
134
|
-
|
|
109
|
+
protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
interface GitHubProviderOptions extends BaseGitHubProviderOptions {
|
|
113
|
+
/**
|
|
114
|
+
* Github branch name that fetch version
|
|
115
|
+
* @default 'HEAD'
|
|
116
|
+
*/
|
|
117
|
+
branch?: string;
|
|
118
|
+
}
|
|
119
|
+
declare class GitHubProvider extends BaseGitHubProvider<GitHubProviderOptions> {
|
|
120
|
+
name: string;
|
|
121
|
+
/**
|
|
122
|
+
* Update Provider for Github repo
|
|
123
|
+
* - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
|
|
124
|
+
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
125
|
+
*
|
|
126
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
127
|
+
* @param options provider options
|
|
128
|
+
*/
|
|
129
|
+
constructor(options: GitHubProviderOptions);
|
|
130
|
+
protected getHeaders(accept: string): Record<string, string>;
|
|
131
|
+
protected getVersionURL(versionPath: string): string;
|
|
135
132
|
}
|
|
136
133
|
|
|
137
|
-
export { BaseProvider, DownloadingInfo, GitHubApiProvider, type GitHubApiProviderOptions, GitHubProvider, type GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL };
|
|
134
|
+
export { BaseGitHubProvider, type BaseGitHubProviderOptions, BaseProvider, DownloadingInfo, GitHubApiProvider, type GitHubApiProviderOptions, GitHubAtomProvider, GitHubProvider, type GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL, UpdateJSONWithURL };
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-
|
|
2
|
-
export { j as defaultDownloadAsar, f as
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import '@subframe7536/type-utils';
|
|
1
|
+
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-CnSv_Njj.js';
|
|
2
|
+
export { j as defaultDownloadAsar, f as defaultDownloadText, i as defaultDownloadUpdateJSON, e as downloadUtil, g as getHeader, r as resolveJson } from './zip-CnSv_Njj.js';
|
|
3
|
+
import { I as IProvider, d as defaultIsLowerVersion, b as UpdateJSONWithURL, e as UpdateInfoWithURL, D as DownloadingInfo, f as URLHandler } from './types-CU7GyVez.js';
|
|
4
|
+
import { Promisable } from '@subframe7536/type-utils';
|
|
6
5
|
import 'electron';
|
|
7
6
|
import 'node:url';
|
|
8
7
|
|
|
9
|
-
declare abstract class BaseProvider
|
|
8
|
+
declare abstract class BaseProvider implements IProvider {
|
|
10
9
|
name: string;
|
|
11
10
|
/**
|
|
12
11
|
* @inheritdoc
|
|
@@ -23,14 +22,14 @@ declare abstract class BaseProvider<T extends UpdateInfoWithURL = UpdateInfoWith
|
|
|
23
22
|
/**
|
|
24
23
|
* @inheritdoc
|
|
25
24
|
*/
|
|
26
|
-
abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<
|
|
25
|
+
abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
|
|
27
26
|
/**
|
|
28
27
|
* @inheritdoc
|
|
29
28
|
*/
|
|
30
29
|
abstract downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
interface
|
|
32
|
+
interface BaseGitHubProviderOptions {
|
|
34
33
|
/**
|
|
35
34
|
* Github user name
|
|
36
35
|
*/
|
|
@@ -39,11 +38,6 @@ interface GitHubProviderOptions {
|
|
|
39
38
|
* Github repo name
|
|
40
39
|
*/
|
|
41
40
|
repo: string;
|
|
42
|
-
/**
|
|
43
|
-
* Github branch name that fetch version
|
|
44
|
-
* @default 'HEAD'
|
|
45
|
-
*/
|
|
46
|
-
branch?: string;
|
|
47
41
|
/**
|
|
48
42
|
* Extra headers
|
|
49
43
|
*/
|
|
@@ -59,79 +53,82 @@ interface GitHubProviderOptions {
|
|
|
59
53
|
*/
|
|
60
54
|
urlHandler?: URLHandler;
|
|
61
55
|
}
|
|
62
|
-
declare class
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Update Provider for Github repo
|
|
67
|
-
* - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
|
|
68
|
-
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
69
|
-
*
|
|
70
|
-
* you can setup `urlHandler` in {@link GitHubProviderOptions} to modify url before request
|
|
71
|
-
* @param options provider options
|
|
72
|
-
*/
|
|
73
|
-
constructor(options: GitHubProviderOptions);
|
|
56
|
+
declare abstract class BaseGitHubProvider<T extends BaseGitHubProviderOptions = BaseGitHubProviderOptions> extends BaseProvider {
|
|
57
|
+
protected options: T;
|
|
58
|
+
constructor(options: T);
|
|
74
59
|
get urlHandler(): URLHandler | undefined;
|
|
75
60
|
set urlHandler(handler: URLHandler);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
*/
|
|
81
|
-
downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<T>;
|
|
61
|
+
protected parseURL(extraPath: string): Promise<string>;
|
|
62
|
+
protected abstract getHeaders(accept: string): Record<string, string>;
|
|
63
|
+
protected abstract getVersionURL(versionPath: string, signal: AbortSignal): Promisable<string>;
|
|
64
|
+
downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
|
|
82
65
|
/**
|
|
83
66
|
* @inheritdoc
|
|
84
67
|
*/
|
|
85
68
|
downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
|
|
86
69
|
}
|
|
87
70
|
|
|
88
|
-
interface GitHubApiProviderOptions {
|
|
89
|
-
/**
|
|
90
|
-
* Github user name
|
|
91
|
-
*/
|
|
92
|
-
user: string;
|
|
93
|
-
/**
|
|
94
|
-
* Github repo name
|
|
95
|
-
*/
|
|
96
|
-
repo: string;
|
|
97
|
-
/**
|
|
98
|
-
* Github access token
|
|
99
|
-
*/
|
|
71
|
+
interface GitHubApiProviderOptions extends BaseGitHubProviderOptions {
|
|
100
72
|
token?: string;
|
|
101
|
-
/**
|
|
102
|
-
* Extra headers
|
|
103
|
-
*/
|
|
104
|
-
extraHeaders?: Record<string, string>;
|
|
105
|
-
/**
|
|
106
|
-
* Custom url handler
|
|
107
|
-
*/
|
|
108
|
-
urlHandler?: URLHandler;
|
|
109
73
|
}
|
|
110
|
-
declare class GitHubApiProvider
|
|
74
|
+
declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOptions> {
|
|
111
75
|
name: string;
|
|
112
|
-
private options;
|
|
113
76
|
/**
|
|
114
77
|
* Update Provider for Github API, you need to upload `version.json` to release as well
|
|
115
78
|
* - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
|
|
116
79
|
* - download update json and get version and download url
|
|
117
80
|
* - download update asar from update info
|
|
118
81
|
*
|
|
119
|
-
* you can setup `urlHandler` in
|
|
82
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
120
83
|
* @param options provider options
|
|
121
84
|
*/
|
|
122
85
|
constructor(options: GitHubApiProviderOptions);
|
|
123
|
-
|
|
124
|
-
set urlHandler(handler: URLHandler);
|
|
125
|
-
private parseURL;
|
|
126
|
-
private getHeaders;
|
|
86
|
+
protected getHeaders(accept: string): Record<string, string>;
|
|
127
87
|
/**
|
|
128
88
|
* @inheritdoc
|
|
129
89
|
*/
|
|
130
|
-
|
|
90
|
+
protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
declare class GitHubAtomProvider extends BaseGitHubProvider {
|
|
94
|
+
name: string;
|
|
95
|
+
/**
|
|
96
|
+
* Update Provider for Github repo
|
|
97
|
+
* - check update from `https://github.com/{user}/{repo}/releases.atom`
|
|
98
|
+
* - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
|
|
99
|
+
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
100
|
+
*
|
|
101
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
102
|
+
* @param options provider options
|
|
103
|
+
*/
|
|
104
|
+
constructor(options: BaseGitHubProviderOptions);
|
|
105
|
+
protected getHeaders(accept: string): Record<string, string>;
|
|
131
106
|
/**
|
|
132
107
|
* @inheritdoc
|
|
133
108
|
*/
|
|
134
|
-
|
|
109
|
+
protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
interface GitHubProviderOptions extends BaseGitHubProviderOptions {
|
|
113
|
+
/**
|
|
114
|
+
* Github branch name that fetch version
|
|
115
|
+
* @default 'HEAD'
|
|
116
|
+
*/
|
|
117
|
+
branch?: string;
|
|
118
|
+
}
|
|
119
|
+
declare class GitHubProvider extends BaseGitHubProvider<GitHubProviderOptions> {
|
|
120
|
+
name: string;
|
|
121
|
+
/**
|
|
122
|
+
* Update Provider for Github repo
|
|
123
|
+
* - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
|
|
124
|
+
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
125
|
+
*
|
|
126
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
127
|
+
* @param options provider options
|
|
128
|
+
*/
|
|
129
|
+
constructor(options: GitHubProviderOptions);
|
|
130
|
+
protected getHeaders(accept: string): Record<string, string>;
|
|
131
|
+
protected getVersionURL(versionPath: string): string;
|
|
135
132
|
}
|
|
136
133
|
|
|
137
|
-
export { BaseProvider, DownloadingInfo, GitHubApiProvider, type GitHubApiProviderOptions, GitHubProvider, type GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL };
|
|
134
|
+
export { BaseGitHubProvider, type BaseGitHubProviderOptions, BaseProvider, DownloadingInfo, GitHubApiProvider, type GitHubApiProviderOptions, GitHubAtomProvider, GitHubProvider, type GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL, UpdateJSONWithURL };
|
package/dist/provider.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defaultVerifySignature, defaultUnzipFile, defaultDownloadUpdateJSON, defaultDownloadAsar,
|
|
2
|
-
export { defaultDownloadAsar,
|
|
1
|
+
import { defaultVerifySignature, defaultUnzipFile, defaultDownloadUpdateJSON, defaultDownloadAsar, defaultDownloadText, resolveJson } from './chunk-QPAKJHVM.js';
|
|
2
|
+
export { defaultDownloadAsar, defaultDownloadText, defaultDownloadUpdateJSON, downloadUtil, getHeader, resolveJson } from './chunk-QPAKJHVM.js';
|
|
3
3
|
import { defaultIsLowerVersion } from './chunk-AAAM44NW.js';
|
|
4
4
|
import { URL } from 'node:url';
|
|
5
5
|
|
|
@@ -19,23 +19,10 @@ var BaseProvider = class {
|
|
|
19
19
|
*/
|
|
20
20
|
unzipFile = defaultUnzipFile;
|
|
21
21
|
};
|
|
22
|
-
var
|
|
23
|
-
name = "GithubProvider";
|
|
24
|
-
options;
|
|
25
|
-
/**
|
|
26
|
-
* Update Provider for Github repo
|
|
27
|
-
* - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
|
|
28
|
-
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
29
|
-
*
|
|
30
|
-
* you can setup `urlHandler` in {@link GitHubProviderOptions} to modify url before request
|
|
31
|
-
* @param options provider options
|
|
32
|
-
*/
|
|
22
|
+
var BaseGitHubProvider = class extends BaseProvider {
|
|
33
23
|
constructor(options) {
|
|
34
24
|
super();
|
|
35
25
|
this.options = options;
|
|
36
|
-
if (!options.branch) {
|
|
37
|
-
this.options.branch = "HEAD";
|
|
38
|
-
}
|
|
39
26
|
}
|
|
40
27
|
get urlHandler() {
|
|
41
28
|
return this.options.urlHandler;
|
|
@@ -50,19 +37,15 @@ var GitHubProvider = class extends BaseProvider {
|
|
|
50
37
|
);
|
|
51
38
|
return (await this.urlHandler?.(url) || url).toString();
|
|
52
39
|
}
|
|
53
|
-
getHeaders(accept) {
|
|
54
|
-
return { Accept: `application/${accept}`, ...this.options.extraHeaders };
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* @inheritdoc
|
|
58
|
-
*/
|
|
59
40
|
async downloadJSON(name, versionPath, signal) {
|
|
60
41
|
const { beta, version, ...info } = await defaultDownloadUpdateJSON(
|
|
61
|
-
await this.parseURL(
|
|
42
|
+
await this.parseURL(await this.getVersionURL(versionPath, signal)),
|
|
62
43
|
this.getHeaders("json"),
|
|
63
44
|
signal
|
|
64
45
|
);
|
|
65
|
-
const getURL = (ver) => this.parseURL(
|
|
46
|
+
const getURL = (ver) => this.parseURL(
|
|
47
|
+
`releases/download/v${ver}/${name}-${ver}.asar.gz`
|
|
48
|
+
);
|
|
66
49
|
return {
|
|
67
50
|
...info,
|
|
68
51
|
version,
|
|
@@ -85,32 +68,22 @@ var GitHubProvider = class extends BaseProvider {
|
|
|
85
68
|
);
|
|
86
69
|
}
|
|
87
70
|
};
|
|
71
|
+
|
|
72
|
+
// src/provider/github/api.ts
|
|
88
73
|
var ERROR_MSG = "Cannot find UpdateJSON in latest release";
|
|
89
|
-
var GitHubApiProvider = class extends
|
|
74
|
+
var GitHubApiProvider = class extends BaseGitHubProvider {
|
|
90
75
|
name = "GithubApiProvider";
|
|
91
|
-
options;
|
|
92
76
|
/**
|
|
93
77
|
* Update Provider for Github API, you need to upload `version.json` to release as well
|
|
94
78
|
* - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
|
|
95
79
|
* - download update json and get version and download url
|
|
96
80
|
* - download update asar from update info
|
|
97
81
|
*
|
|
98
|
-
* you can setup `urlHandler` in
|
|
82
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
99
83
|
* @param options provider options
|
|
100
84
|
*/
|
|
101
85
|
constructor(options) {
|
|
102
|
-
super();
|
|
103
|
-
this.options = options;
|
|
104
|
-
}
|
|
105
|
-
get urlHandler() {
|
|
106
|
-
return this.options.urlHandler;
|
|
107
|
-
}
|
|
108
|
-
set urlHandler(handler) {
|
|
109
|
-
this.options.urlHandler = handler;
|
|
110
|
-
}
|
|
111
|
-
async parseURL(url) {
|
|
112
|
-
const _url = new URL(url);
|
|
113
|
-
return (await this.urlHandler?.(_url) || _url).toString();
|
|
86
|
+
super(options);
|
|
114
87
|
}
|
|
115
88
|
getHeaders(accept) {
|
|
116
89
|
return {
|
|
@@ -122,57 +95,84 @@ var GitHubApiProvider = class extends BaseProvider {
|
|
|
122
95
|
/**
|
|
123
96
|
* @inheritdoc
|
|
124
97
|
*/
|
|
125
|
-
async
|
|
98
|
+
async getVersionURL(versionPath, signal) {
|
|
126
99
|
const basename = versionPath.slice(versionPath.lastIndexOf("/") + 1);
|
|
127
|
-
const data = await
|
|
100
|
+
const data = await defaultDownloadText(
|
|
128
101
|
await this.parseURL(`https://api.github.com/repos/${this.options.user}/${this.options.repo}/releases?per_page=1`),
|
|
129
102
|
this.getHeaders("vnd.github.v3+json"),
|
|
130
|
-
signal
|
|
103
|
+
signal,
|
|
104
|
+
resolveJson
|
|
131
105
|
);
|
|
132
106
|
const versionAssets = data[0]?.assets.find((asset) => asset.name === basename);
|
|
133
107
|
if (!versionAssets) {
|
|
134
108
|
throw new Error(`${ERROR_MSG}, ${"message" in data ? data.message : "please check the release assets"}`);
|
|
135
109
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
...beta,
|
|
158
|
-
url: await getURL(beta.version)
|
|
159
|
-
}
|
|
160
|
-
};
|
|
110
|
+
return versionAssets.browser_download_url;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
// src/provider/github/atom.ts
|
|
115
|
+
var GitHubAtomProvider = class extends BaseGitHubProvider {
|
|
116
|
+
name = "GithubAtomProvider";
|
|
117
|
+
/**
|
|
118
|
+
* Update Provider for Github repo
|
|
119
|
+
* - check update from `https://github.com/{user}/{repo}/releases.atom`
|
|
120
|
+
* - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
|
|
121
|
+
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
122
|
+
*
|
|
123
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
124
|
+
* @param options provider options
|
|
125
|
+
*/
|
|
126
|
+
constructor(options) {
|
|
127
|
+
super(options);
|
|
128
|
+
}
|
|
129
|
+
getHeaders(accept) {
|
|
130
|
+
return { Accept: `application/${accept}`, ...this.options.extraHeaders };
|
|
161
131
|
}
|
|
162
132
|
/**
|
|
163
133
|
* @inheritdoc
|
|
164
134
|
*/
|
|
165
|
-
async
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return await defaultDownloadAsar(
|
|
170
|
-
info.url,
|
|
171
|
-
this.getHeaders("octet-stream"),
|
|
135
|
+
async getVersionURL(versionPath, signal) {
|
|
136
|
+
const tag = await defaultDownloadText(
|
|
137
|
+
await this.parseURL(`releases.atom`),
|
|
138
|
+
this.getHeaders("xml"),
|
|
172
139
|
signal,
|
|
173
|
-
|
|
140
|
+
(data, resolve, reject) => {
|
|
141
|
+
const result = data.match(/<entry>\s*<id>([^<]*\/)?([^/<]+)<\/id>/)?.[2];
|
|
142
|
+
if (result) {
|
|
143
|
+
resolve(result);
|
|
144
|
+
} else {
|
|
145
|
+
reject("No tag matched");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
174
148
|
);
|
|
149
|
+
return `releases/download/v${tag}/${versionPath}`;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
// src/provider/github/file.ts
|
|
154
|
+
var GitHubProvider = class extends BaseGitHubProvider {
|
|
155
|
+
name = "GithubProvider";
|
|
156
|
+
/**
|
|
157
|
+
* Update Provider for Github repo
|
|
158
|
+
* - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
|
|
159
|
+
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
160
|
+
*
|
|
161
|
+
* you can setup `urlHandler` in options to modify url before request
|
|
162
|
+
* @param options provider options
|
|
163
|
+
*/
|
|
164
|
+
constructor(options) {
|
|
165
|
+
super(options);
|
|
166
|
+
if (!options.branch) {
|
|
167
|
+
this.options.branch = "HEAD";
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
getHeaders(accept) {
|
|
171
|
+
return { Accept: `application/${accept}`, ...this.options.extraHeaders };
|
|
172
|
+
}
|
|
173
|
+
getVersionURL(versionPath) {
|
|
174
|
+
return `raw/${this.options.branch}/${versionPath}`;
|
|
175
175
|
}
|
|
176
176
|
};
|
|
177
177
|
|
|
178
|
-
export { BaseProvider, GitHubApiProvider, GitHubProvider };
|
|
178
|
+
export { BaseGitHubProvider, BaseProvider, GitHubApiProvider, GitHubAtomProvider, GitHubProvider };
|
|
@@ -106,7 +106,7 @@ interface DownloadingInfo {
|
|
|
106
106
|
type UpdateJSONWithURL = UpdateInfoWithURL & {
|
|
107
107
|
beta: UpdateInfoWithURL;
|
|
108
108
|
};
|
|
109
|
-
interface IProvider
|
|
109
|
+
interface IProvider {
|
|
110
110
|
/**
|
|
111
111
|
* Provider name
|
|
112
112
|
*/
|
|
@@ -117,7 +117,7 @@ interface IProvider<T extends UpdateInfoWithURL = UpdateInfoWithURL> {
|
|
|
117
117
|
* @param versionPath normalized version path in project
|
|
118
118
|
* @param signal abort signal
|
|
119
119
|
*/
|
|
120
|
-
downloadJSON: (name: string, versionPath: string, signal: AbortSignal) => Promise<
|
|
120
|
+
downloadJSON: (name: string, versionPath: string, signal: AbortSignal) => Promise<UpdateJSONWithURL>;
|
|
121
121
|
/**
|
|
122
122
|
* Download update asar buffer
|
|
123
123
|
* @param updateInfo existing update info
|
|
@@ -106,7 +106,7 @@ interface DownloadingInfo {
|
|
|
106
106
|
type UpdateJSONWithURL = UpdateInfoWithURL & {
|
|
107
107
|
beta: UpdateInfoWithURL;
|
|
108
108
|
};
|
|
109
|
-
interface IProvider
|
|
109
|
+
interface IProvider {
|
|
110
110
|
/**
|
|
111
111
|
* Provider name
|
|
112
112
|
*/
|
|
@@ -117,7 +117,7 @@ interface IProvider<T extends UpdateInfoWithURL = UpdateInfoWithURL> {
|
|
|
117
117
|
* @param versionPath normalized version path in project
|
|
118
118
|
* @param signal abort signal
|
|
119
119
|
*/
|
|
120
|
-
downloadJSON: (name: string, versionPath: string, signal: AbortSignal) => Promise<
|
|
120
|
+
downloadJSON: (name: string, versionPath: string, signal: AbortSignal) => Promise<UpdateJSONWithURL>;
|
|
121
121
|
/**
|
|
122
122
|
* Download update asar buffer
|
|
123
123
|
* @param updateInfo existing update info
|
package/dist/utils.cjs
CHANGED
|
@@ -141,14 +141,14 @@ async function downloadUtil(url, headers, onResponse) {
|
|
|
141
141
|
function trimData(data) {
|
|
142
142
|
return data.trim().slice(0, 5e3).replace(/\s+/g, " ");
|
|
143
143
|
}
|
|
144
|
-
var
|
|
144
|
+
var resolveJson = (data, resolve, reject) => {
|
|
145
145
|
try {
|
|
146
146
|
resolve(JSON.parse(data));
|
|
147
147
|
} catch {
|
|
148
148
|
reject(new Error(`Invalid json, "${trimData(data)}"`));
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
|
-
async function
|
|
151
|
+
async function defaultDownloadText(url, headers, signal, resolveData) {
|
|
152
152
|
return await downloadUtil(
|
|
153
153
|
url,
|
|
154
154
|
headers,
|
|
@@ -164,7 +164,7 @@ async function defaultDownloadJSON(url, headers, signal, resolveData = defaultRe
|
|
|
164
164
|
);
|
|
165
165
|
}
|
|
166
166
|
async function defaultDownloadUpdateJSON(url, headers, signal) {
|
|
167
|
-
return await
|
|
167
|
+
return await defaultDownloadText(
|
|
168
168
|
url,
|
|
169
169
|
headers,
|
|
170
170
|
signal,
|
|
@@ -333,7 +333,7 @@ exports.aesDecrypt = aesDecrypt;
|
|
|
333
333
|
exports.aesEncrypt = aesEncrypt;
|
|
334
334
|
exports.beautifyDevTools = beautifyDevTools;
|
|
335
335
|
exports.defaultDownloadAsar = defaultDownloadAsar;
|
|
336
|
-
exports.
|
|
336
|
+
exports.defaultDownloadText = defaultDownloadText;
|
|
337
337
|
exports.defaultDownloadUpdateJSON = defaultDownloadUpdateJSON;
|
|
338
338
|
exports.defaultIsLowerVersion = defaultIsLowerVersion;
|
|
339
339
|
exports.defaultSignature = defaultSignature;
|
|
@@ -363,6 +363,7 @@ exports.loadPage = loadPage;
|
|
|
363
363
|
exports.parseVersion = parseVersion;
|
|
364
364
|
exports.reloadOnPreloadScriptChanged = reloadOnPreloadScriptChanged;
|
|
365
365
|
exports.requireNative = requireNative;
|
|
366
|
+
exports.resolveJson = resolveJson;
|
|
366
367
|
exports.restartApp = restartApp;
|
|
367
368
|
exports.setAppUserModelId = setAppUserModelId;
|
|
368
369
|
exports.setPortableAppDataPath = setPortableAppDataPath;
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { b as aesDecrypt, a as aesEncrypt, j as defaultDownloadAsar, f as
|
|
1
|
+
export { b as aesDecrypt, a as aesEncrypt, j as defaultDownloadAsar, f as defaultDownloadText, i as defaultDownloadUpdateJSON, d as defaultSignature, l as defaultUnzipFile, c as defaultVerifySignature, k as defaultZipFile, e as downloadUtil, g as getHeader, h as hashBuffer, r as resolveJson } from './zip-Blmn2vzE.cjs';
|
|
2
2
|
import { BrowserWindow } from 'electron';
|
|
3
|
-
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, c as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './types-
|
|
3
|
+
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, c as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './types-CU7GyVez.cjs';
|
|
4
4
|
import '@subframe7536/type-utils';
|
|
5
5
|
import 'node:url';
|
|
6
6
|
|