electron-incremental-update 2.4.3 → 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 +48 -40
  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 -330
  11. package/dist/provider.d.cts +113 -114
  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 -64
  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 -152
  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
  }
74
73
  /**
75
- * Update Provider for Github API, you need to upload `version.json` to release as well
76
- * - check update from `https://api.github.com/repos/{user}/{repo}/releases?per_page=1`
77
- * - download update json and get version and download url
78
- * - download update asar from update info
79
- *
80
- * you can setup `urlHandler` in options to modify url before request
81
- * @param options provider options
82
- */
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
+ */
83
82
  declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOptions> {
84
- name: string;
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
93
92
  /**
94
- * Update Provider for Github repo
95
- * - check update from `https://github.com/{user}/{repo}/releases.atom`
96
- * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
97
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
98
- *
99
- * you can setup `urlHandler` in options to modify url before request
100
- * @param options provider options
101
- */
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
+ */
102
101
  declare class GitHubAtomProvider extends BaseGitHubProvider {
103
- name: string;
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
  }
119
118
  /**
120
- * Update Provider for Github repo
121
- * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
122
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
123
- *
124
- * you can setup `urlHandler` in options to modify url before request
125
- * @param options provider options
126
- */
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
+ */
127
126
  declare class GitHubProvider extends BaseGitHubProvider<GitHubProviderOptions> {
128
- name: string;
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 };