electron-incremental-update 2.4.2 → 3.0.0-beta.2

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.
Files changed (47) hide show
  1. package/README.md +72 -43
  2. package/dist/download-BN4uMS4_.d.mts +39 -0
  3. package/dist/download-DO7iuxEJ.d.cts +39 -0
  4. package/dist/electron-BFoZUBhU.cjs +320 -0
  5. package/dist/electron-CJIoO4ny.mjs +180 -0
  6. package/dist/index.cjs +259 -331
  7. package/dist/index.d.cts +179 -169
  8. package/dist/index.d.mts +204 -0
  9. package/dist/index.mjs +271 -0
  10. package/dist/provider.cjs +142 -356
  11. package/dist/provider.d.cts +116 -117
  12. package/dist/provider.d.mts +133 -0
  13. package/dist/provider.mjs +152 -0
  14. package/dist/types-BM9Jfu7q.d.cts +154 -0
  15. package/dist/types-DASqEPXE.d.mts +154 -0
  16. package/dist/utils.cjs +43 -381
  17. package/dist/utils.d.cts +117 -85
  18. package/dist/utils.d.mts +161 -0
  19. package/dist/utils.mjs +5 -0
  20. package/dist/version--eVB2A7n.mjs +72 -0
  21. package/dist/version-aPrLuz_-.cjs +129 -0
  22. package/dist/vite.d.mts +565 -0
  23. package/dist/vite.mjs +1222 -0
  24. package/dist/zip-BCC7FAQ_.cjs +264 -0
  25. package/dist/zip-Dwm7s1C9.mjs +185 -0
  26. package/package.json +65 -65
  27. package/dist/chunk-AAAM44NW.js +0 -70
  28. package/dist/chunk-IVHNGRZY.js +0 -122
  29. package/dist/chunk-PD4EV4MM.js +0 -147
  30. package/dist/index.d.ts +0 -194
  31. package/dist/index.js +0 -309
  32. package/dist/provider.d.ts +0 -134
  33. package/dist/provider.js +0 -178
  34. package/dist/types-CU7GyVez.d.cts +0 -151
  35. package/dist/types-CU7GyVez.d.ts +0 -151
  36. package/dist/utils.d.ts +0 -129
  37. package/dist/utils.js +0 -3
  38. package/dist/vite.d.ts +0 -533
  39. package/dist/vite.js +0 -945
  40. package/dist/zip-Blmn2vzE.d.cts +0 -71
  41. package/dist/zip-CnSv_Njj.d.ts +0 -71
  42. package/provider.d.ts +0 -1
  43. package/provider.js +0 -1
  44. package/utils.d.ts +0 -1
  45. package/utils.js +0 -1
  46. package/vite.d.ts +0 -1
  47. package/vite.js +0 -1
@@ -1,134 +1,133 @@
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';
5
- import 'electron';
6
- import 'node:url';
1
+ import { a as UpdateJSONWithURL, i as UpdateInfoWithURL, m as Promisable, n as IProvider, r as URLHandler, t as DownloadingInfo } from "./types-BM9Jfu7q.cjs";
2
+ import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-DO7iuxEJ.cjs";
7
3
 
4
+ //#region src/provider/base.d.ts
8
5
  declare abstract class BaseProvider implements IProvider {
9
- name: string;
10
- /**
11
- * @inheritdoc
12
- */
13
- isLowerVersion: typeof defaultIsLowerVersion;
14
- /**
15
- * @inheritdoc
16
- */
17
- verifySignaure: typeof defaultVerifySignature;
18
- /**
19
- * @inheritdoc
20
- */
21
- unzipFile: typeof defaultUnzipFile;
22
- /**
23
- * @inheritdoc
24
- */
25
- abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
26
- /**
27
- * @inheritdoc
28
- */
29
- abstract downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
6
+ name: string;
7
+ /**
8
+ * @inheritdoc
9
+ */
10
+ isLowerVersion: IProvider["isLowerVersion"];
11
+ /**
12
+ * @inheritdoc
13
+ */
14
+ verifySignaure: IProvider["verifySignaure"];
15
+ /**
16
+ * @inheritdoc
17
+ */
18
+ unzipFile: IProvider["unzipFile"];
19
+ /**
20
+ * @inheritdoc
21
+ */
22
+ abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
23
+ /**
24
+ * @inheritdoc
25
+ */
26
+ abstract downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
30
27
  }
31
-
28
+ //#endregion
29
+ //#region src/provider/github/base.d.ts
32
30
  interface BaseGitHubProviderOptions {
33
- /**
34
- * Github user name
35
- */
36
- user: string;
37
- /**
38
- * Github repo name
39
- */
40
- repo: string;
41
- /**
42
- * Extra headers
43
- */
44
- extraHeaders?: Record<string, string>;
45
- /**
46
- * Custom url handler ({@link https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40 some public CDN links})
47
- * @example
48
- * (url) => {
49
- * url.hostname = 'mirror.ghproxy.com'
50
- * url.pathname = 'https://github.com' + url.pathname
51
- * return url
52
- * }
53
- */
54
- urlHandler?: URLHandler;
31
+ /**
32
+ * Github user name
33
+ */
34
+ user: string;
35
+ /**
36
+ * Github repo name
37
+ */
38
+ repo: string;
39
+ /**
40
+ * Extra headers
41
+ */
42
+ extraHeaders?: Record<string, string>;
43
+ /**
44
+ * Custom url handler ({@link https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40 some public CDN links})
45
+ * @example
46
+ * (url) => {
47
+ * url.hostname = 'mirror.ghproxy.com'
48
+ * url.pathname = 'https://github.com' + url.pathname
49
+ * return url
50
+ * }
51
+ */
52
+ urlHandler?: URLHandler;
55
53
  }
56
54
  declare abstract class BaseGitHubProvider<T extends BaseGitHubProviderOptions = BaseGitHubProviderOptions> extends BaseProvider {
57
- protected options: T;
58
- constructor(options: T);
59
- get urlHandler(): URLHandler | undefined;
60
- set urlHandler(handler: URLHandler);
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>;
65
- /**
66
- * @inheritdoc
67
- */
68
- downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
55
+ protected options: T;
56
+ constructor(options: T);
57
+ get urlHandler(): URLHandler | undefined;
58
+ set urlHandler(handler: URLHandler);
59
+ protected parseURL(extraPath: string): Promise<string>;
60
+ protected abstract getHeaders(accept: string): Record<string, string>;
61
+ protected abstract getVersionURL(versionPath: string, signal: AbortSignal): Promisable<string>;
62
+ downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
63
+ /**
64
+ * @inheritdoc
65
+ */
66
+ downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
69
67
  }
70
-
68
+ //#endregion
69
+ //#region src/provider/github/api.d.ts
71
70
  interface GitHubApiProviderOptions extends BaseGitHubProviderOptions {
72
- token?: string;
71
+ token?: string;
73
72
  }
73
+ /**
74
+ * Update Provider for Github API, you need to upload `version.json` to release as well
75
+ * - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
76
+ * - download update json and get version and download url
77
+ * - download update asar from update info
78
+ *
79
+ * you can setup `urlHandler` in options to modify url before request
80
+ * @param options provider options
81
+ */
74
82
  declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOptions> {
75
- name: string;
76
- /**
77
- * Update Provider for Github API, you need to upload `version.json` to release as well
78
- * - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
79
- * - download update json and get version and download url
80
- * - download update asar from update info
81
- *
82
- * you can setup `urlHandler` in options to modify url before request
83
- * @param options provider options
84
- */
85
- constructor(options: GitHubApiProviderOptions);
86
- protected getHeaders(accept: string): Record<string, string>;
87
- /**
88
- * @inheritdoc
89
- */
90
- protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
83
+ name: string;
84
+ protected getHeaders(accept: string): Record<string, string>;
85
+ /**
86
+ * @inheritdoc
87
+ */
88
+ protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
91
89
  }
92
-
90
+ //#endregion
91
+ //#region src/provider/github/atom.d.ts
92
+ /**
93
+ * Update Provider for Github repo
94
+ * - check update from `https://github.com/{user}/{repo}/releases.atom`
95
+ * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
96
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
97
+ *
98
+ * you can setup `urlHandler` in options to modify url before request
99
+ * @param options provider options
100
+ */
93
101
  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>;
106
- /**
107
- * @inheritdoc
108
- */
109
- protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
102
+ name: string;
103
+ protected getHeaders(accept: string): Record<string, string>;
104
+ /**
105
+ * @inheritdoc
106
+ */
107
+ protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
110
108
  }
111
-
109
+ //#endregion
110
+ //#region src/provider/github/file.d.ts
112
111
  interface GitHubProviderOptions extends BaseGitHubProviderOptions {
113
- /**
114
- * Github branch name that fetch version
115
- * @default 'HEAD'
116
- */
117
- branch?: string;
112
+ /**
113
+ * Github branch name that fetch version
114
+ * @default 'HEAD'
115
+ */
116
+ branch?: string;
118
117
  }
118
+ /**
119
+ * Update Provider for Github repo
120
+ * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{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
+ */
119
126
  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;
127
+ name: string;
128
+ constructor(options: GitHubProviderOptions);
129
+ protected getHeaders(accept: string): Record<string, string>;
130
+ protected getVersionURL(versionPath: string): string;
132
131
  }
133
-
134
- export { BaseGitHubProvider, type BaseGitHubProviderOptions, BaseProvider, DownloadingInfo, GitHubApiProvider, type GitHubApiProviderOptions, GitHubAtomProvider, GitHubProvider, type GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL, UpdateJSONWithURL };
132
+ //#endregion
133
+ export { BaseGitHubProvider, BaseGitHubProviderOptions, BaseProvider, DownloadingInfo, GitHubApiProvider, GitHubApiProviderOptions, GitHubAtomProvider, GitHubProvider, GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL, UpdateJSONWithURL, defaultDownloadAsar, defaultDownloadText, defaultDownloadUpdateJSON, downloadUtil, getHeader, resolveJson };
@@ -0,0 +1,133 @@
1
+ import { a as UpdateJSONWithURL, i as UpdateInfoWithURL, m as Promisable, n as IProvider, r as URLHandler, t as DownloadingInfo } from "./types-DASqEPXE.mjs";
2
+ import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-BN4uMS4_.mjs";
3
+
4
+ //#region src/provider/base.d.ts
5
+ declare abstract class BaseProvider implements IProvider {
6
+ name: string;
7
+ /**
8
+ * @inheritdoc
9
+ */
10
+ isLowerVersion: IProvider["isLowerVersion"];
11
+ /**
12
+ * @inheritdoc
13
+ */
14
+ verifySignaure: IProvider["verifySignaure"];
15
+ /**
16
+ * @inheritdoc
17
+ */
18
+ unzipFile: IProvider["unzipFile"];
19
+ /**
20
+ * @inheritdoc
21
+ */
22
+ abstract downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
23
+ /**
24
+ * @inheritdoc
25
+ */
26
+ abstract downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
27
+ }
28
+ //#endregion
29
+ //#region src/provider/github/base.d.ts
30
+ interface BaseGitHubProviderOptions {
31
+ /**
32
+ * Github user name
33
+ */
34
+ user: string;
35
+ /**
36
+ * Github repo name
37
+ */
38
+ repo: string;
39
+ /**
40
+ * Extra headers
41
+ */
42
+ extraHeaders?: Record<string, string>;
43
+ /**
44
+ * Custom url handler ({@link https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40 some public CDN links})
45
+ * @example
46
+ * (url) => {
47
+ * url.hostname = 'mirror.ghproxy.com'
48
+ * url.pathname = 'https://github.com' + url.pathname
49
+ * return url
50
+ * }
51
+ */
52
+ urlHandler?: URLHandler;
53
+ }
54
+ declare abstract class BaseGitHubProvider<T extends BaseGitHubProviderOptions = BaseGitHubProviderOptions> extends BaseProvider {
55
+ protected options: T;
56
+ constructor(options: T);
57
+ get urlHandler(): URLHandler | undefined;
58
+ set urlHandler(handler: URLHandler);
59
+ protected parseURL(extraPath: string): Promise<string>;
60
+ protected abstract getHeaders(accept: string): Record<string, string>;
61
+ protected abstract getVersionURL(versionPath: string, signal: AbortSignal): Promisable<string>;
62
+ downloadJSON(name: string, versionPath: string, signal: AbortSignal): Promise<UpdateJSONWithURL>;
63
+ /**
64
+ * @inheritdoc
65
+ */
66
+ downloadAsar(info: UpdateInfoWithURL, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void): Promise<Buffer>;
67
+ }
68
+ //#endregion
69
+ //#region src/provider/github/api.d.ts
70
+ interface GitHubApiProviderOptions extends BaseGitHubProviderOptions {
71
+ token?: string;
72
+ }
73
+ /**
74
+ * Update Provider for Github API, you need to upload `version.json` to release as well
75
+ * - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
76
+ * - download update json and get version and download url
77
+ * - download update asar from update info
78
+ *
79
+ * you can setup `urlHandler` in options to modify url before request
80
+ * @param options provider options
81
+ */
82
+ declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOptions> {
83
+ name: string;
84
+ protected getHeaders(accept: string): Record<string, string>;
85
+ /**
86
+ * @inheritdoc
87
+ */
88
+ protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
89
+ }
90
+ //#endregion
91
+ //#region src/provider/github/atom.d.ts
92
+ /**
93
+ * Update Provider for Github repo
94
+ * - check update from `https://github.com/{user}/{repo}/releases.atom`
95
+ * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
96
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
97
+ *
98
+ * you can setup `urlHandler` in options to modify url before request
99
+ * @param options provider options
100
+ */
101
+ declare class GitHubAtomProvider extends BaseGitHubProvider {
102
+ name: string;
103
+ protected getHeaders(accept: string): Record<string, string>;
104
+ /**
105
+ * @inheritdoc
106
+ */
107
+ protected getVersionURL(versionPath: string, signal: AbortSignal): Promise<string>;
108
+ }
109
+ //#endregion
110
+ //#region src/provider/github/file.d.ts
111
+ interface GitHubProviderOptions extends BaseGitHubProviderOptions {
112
+ /**
113
+ * Github branch name that fetch version
114
+ * @default 'HEAD'
115
+ */
116
+ branch?: string;
117
+ }
118
+ /**
119
+ * Update Provider for Github repo
120
+ * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{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
+ declare class GitHubProvider extends BaseGitHubProvider<GitHubProviderOptions> {
127
+ name: string;
128
+ constructor(options: GitHubProviderOptions);
129
+ protected getHeaders(accept: string): Record<string, string>;
130
+ protected getVersionURL(versionPath: string): string;
131
+ }
132
+ //#endregion
133
+ export { BaseGitHubProvider, BaseGitHubProviderOptions, BaseProvider, DownloadingInfo, GitHubApiProvider, GitHubApiProviderOptions, GitHubAtomProvider, GitHubProvider, GitHubProviderOptions, IProvider, URLHandler, UpdateInfoWithURL, UpdateJSONWithURL, defaultDownloadAsar, defaultDownloadText, defaultDownloadUpdateJSON, downloadUtil, getHeader, resolveJson };
@@ -0,0 +1,152 @@
1
+ import { t as defaultIsLowerVersion } from "./version--eVB2A7n.mjs";
2
+ import { a as defaultDownloadUpdateJSON, c as resolveJson, f as defaultVerifySignature, i as defaultDownloadText, o as downloadUtil, r as defaultDownloadAsar, s as getHeader, t as defaultUnzipFile } from "./zip-Dwm7s1C9.mjs";
3
+ import { URL } from "node:url";
4
+
5
+ //#region src/provider/base.ts
6
+ var BaseProvider = class {
7
+ name = "BaseProvider";
8
+ /**
9
+ * @inheritdoc
10
+ */
11
+ isLowerVersion = defaultIsLowerVersion;
12
+ /**
13
+ * @inheritdoc
14
+ */
15
+ verifySignaure = defaultVerifySignature;
16
+ /**
17
+ * @inheritdoc
18
+ */
19
+ unzipFile = defaultUnzipFile;
20
+ };
21
+
22
+ //#endregion
23
+ //#region src/provider/github/base.ts
24
+ var BaseGitHubProvider = class extends BaseProvider {
25
+ constructor(options) {
26
+ super();
27
+ this.options = options;
28
+ }
29
+ get urlHandler() {
30
+ return this.options.urlHandler;
31
+ }
32
+ set urlHandler(handler) {
33
+ this.options.urlHandler = handler;
34
+ }
35
+ async parseURL(extraPath) {
36
+ const url = new URL(`/${this.options.user}/${this.options.repo}/${extraPath}`, "https://github.com");
37
+ return (await this.urlHandler?.(url) || url).toString();
38
+ }
39
+ async downloadJSON(name, versionPath, signal) {
40
+ const { beta, version, ...info } = await defaultDownloadUpdateJSON(await this.parseURL(await this.getVersionURL(versionPath, signal)), this.getHeaders("json"), signal);
41
+ const getURL = (ver) => this.parseURL(`releases/download/v${ver}/${name}-${ver}.asar.gz`);
42
+ return {
43
+ ...info,
44
+ version,
45
+ url: await getURL(version),
46
+ beta: {
47
+ ...beta,
48
+ url: await getURL(beta.version)
49
+ }
50
+ };
51
+ }
52
+ /**
53
+ * @inheritdoc
54
+ */
55
+ async downloadAsar(info, signal, onDownloading) {
56
+ return await defaultDownloadAsar(info.url, this.getHeaders("octet-stream"), signal, onDownloading);
57
+ }
58
+ };
59
+
60
+ //#endregion
61
+ //#region src/provider/github/api.ts
62
+ const ERROR_MSG = "Cannot find UpdateJSON in latest release";
63
+ /**
64
+ * Update Provider for Github API, you need to upload `version.json` to release as well
65
+ * - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
66
+ * - download update json and get version and download url
67
+ * - download update asar from update info
68
+ *
69
+ * you can setup `urlHandler` in options to modify url before request
70
+ * @param options provider options
71
+ */
72
+ var GitHubApiProvider = class extends BaseGitHubProvider {
73
+ name = "GithubApiProvider";
74
+ getHeaders(accept) {
75
+ return {
76
+ Accept: `application/${accept}`,
77
+ ...this.options.token ? { Authorization: `token ${this.options.token}` } : {},
78
+ ...this.options.extraHeaders
79
+ };
80
+ }
81
+ /**
82
+ * @inheritdoc
83
+ */
84
+ async getVersionURL(versionPath, signal) {
85
+ const basename = versionPath.slice(versionPath.lastIndexOf("/") + 1);
86
+ const data = await defaultDownloadText(await this.parseURL(`https://api.github.com/repos/${this.options.user}/${this.options.repo}/releases?per_page=1`), this.getHeaders("vnd.github.v3+json"), signal, resolveJson);
87
+ const versionAssets = data[0]?.assets.find((asset) => asset.name === basename);
88
+ if (!versionAssets) throw new Error(`${ERROR_MSG}, ${"message" in data ? data.message : "please check the release assets"}`);
89
+ return versionAssets.browser_download_url;
90
+ }
91
+ };
92
+
93
+ //#endregion
94
+ //#region src/provider/github/atom.ts
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
+ var GitHubAtomProvider = class extends BaseGitHubProvider {
105
+ name = "GithubAtomProvider";
106
+ getHeaders(accept) {
107
+ return {
108
+ Accept: `application/${accept}`,
109
+ ...this.options.extraHeaders
110
+ };
111
+ }
112
+ /**
113
+ * @inheritdoc
114
+ */
115
+ async getVersionURL(versionPath, signal) {
116
+ return `releases/download/v${await defaultDownloadText(await this.parseURL(`releases.atom`), this.getHeaders("xml"), signal, (data, resolve, reject) => {
117
+ const result = data.match(/<entry>\s*<id>([^<]*\/)?([^/<]+)<\/id>/)?.[2];
118
+ if (result) resolve(result);
119
+ else reject("No tag matched");
120
+ })}/${versionPath}`;
121
+ }
122
+ };
123
+
124
+ //#endregion
125
+ //#region src/provider/github/file.ts
126
+ /**
127
+ * Update Provider for Github repo
128
+ * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
129
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
130
+ *
131
+ * you can setup `urlHandler` in options to modify url before request
132
+ * @param options provider options
133
+ */
134
+ var GitHubProvider = class extends BaseGitHubProvider {
135
+ name = "GithubProvider";
136
+ constructor(options) {
137
+ super(options);
138
+ if (!options.branch) this.options.branch = "HEAD";
139
+ }
140
+ getHeaders(accept) {
141
+ return {
142
+ Accept: `application/${accept}`,
143
+ ...this.options.extraHeaders
144
+ };
145
+ }
146
+ getVersionURL(versionPath) {
147
+ return `raw/${this.options.branch}/${versionPath}`;
148
+ }
149
+ };
150
+
151
+ //#endregion
152
+ export { BaseGitHubProvider, BaseProvider, GitHubApiProvider, GitHubAtomProvider, GitHubProvider, defaultDownloadAsar, defaultDownloadText, defaultDownloadUpdateJSON, downloadUtil, getHeader, resolveJson };