electron-incremental-update 2.0.0-beta.10 → 2.0.0-beta.11
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-IABBXJFB.js +87 -0
- package/dist/{chunk-72ZAJ7AF.js → chunk-RCRKUKFX.js} +1 -1
- package/dist/index.cjs +68 -48
- package/dist/index.d.cts +33 -25
- package/dist/index.d.ts +33 -25
- package/dist/index.js +65 -47
- package/dist/provider.cjs +58 -44
- package/dist/provider.d.cts +13 -13
- package/dist/provider.d.ts +13 -13
- package/dist/provider.js +58 -45
- package/dist/{types-Bnc4jz6R.d.ts → types-C8JhnJjU.d.ts} +6 -4
- package/dist/{types-DEYw5VrL.d.cts → types-CGSkHX4Y.d.cts} +6 -4
- package/dist/utils.cjs +25 -17
- package/dist/utils.d.cts +10 -3
- package/dist/utils.d.ts +10 -3
- package/dist/utils.js +2 -2
- package/dist/{version-C4tF_trh.d.cts → version-BYVQ367i.d.cts} +5 -5
- package/dist/{version-C4tF_trh.d.ts → version-BYVQ367i.d.ts} +5 -5
- package/dist/vite.d.ts +3 -1
- package/dist/vite.js +31 -18
- package/package.json +5 -5
- package/dist/chunk-4MH6ZXCY.js +0 -81
package/dist/provider.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defaultVerifySignature, defaultUnzipFile } from './chunk-KZSYEXLO.js';
|
|
2
|
-
import { defaultIsLowerVersion, isUpdateJSON } from './chunk-
|
|
2
|
+
import { defaultIsLowerVersion, isUpdateJSON } from './chunk-RCRKUKFX.js';
|
|
3
3
|
import { URL } from 'node:url';
|
|
4
|
-
import
|
|
4
|
+
import electron from 'electron';
|
|
5
5
|
|
|
6
6
|
function getHeader(headers, key) {
|
|
7
7
|
const value = headers[key];
|
|
@@ -11,10 +11,11 @@ function getHeader(headers, key) {
|
|
|
11
11
|
return value;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
async function downloadFn(url, headers, onResponse) {
|
|
15
|
-
await app.whenReady();
|
|
14
|
+
async function downloadFn(url, headers, signal, onResponse) {
|
|
15
|
+
await electron.app.whenReady();
|
|
16
16
|
return new Promise((resolve, reject) => {
|
|
17
|
-
const request = net.request({ url, method: "GET", redirect: "follow", headers });
|
|
17
|
+
const request = electron.net.request({ url, method: "GET", redirect: "follow", headers, cache: "no-cache" });
|
|
18
|
+
signal.addEventListener("abort", () => request.abort(), { once: true });
|
|
18
19
|
request.on("response", (resp) => {
|
|
19
20
|
resp.on("aborted", () => reject(new Error("aborted")));
|
|
20
21
|
resp.on("error", () => reject(new Error("download error")));
|
|
@@ -24,46 +25,56 @@ async function downloadFn(url, headers, onResponse) {
|
|
|
24
25
|
request.end();
|
|
25
26
|
});
|
|
26
27
|
}
|
|
27
|
-
async function defaultDownloadUpdateJSON(url, headers) {
|
|
28
|
-
return await downloadFn(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
async function defaultDownloadUpdateJSON(url, headers, signal) {
|
|
29
|
+
return await downloadFn(
|
|
30
|
+
url,
|
|
31
|
+
headers,
|
|
32
|
+
signal,
|
|
33
|
+
(resp, resolve, reject) => {
|
|
34
|
+
let data = "";
|
|
35
|
+
resp.on("data", (chunk) => data += chunk);
|
|
36
|
+
resp.on("end", () => {
|
|
37
|
+
try {
|
|
38
|
+
const json = JSON.parse(data);
|
|
39
|
+
if (isUpdateJSON(json)) {
|
|
40
|
+
resolve(json);
|
|
41
|
+
} else {
|
|
42
|
+
throw Error;
|
|
43
|
+
}
|
|
44
|
+
} catch {
|
|
45
|
+
reject(new Error("invalid update json " + data));
|
|
38
46
|
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
43
|
-
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
);
|
|
44
50
|
}
|
|
45
|
-
async function defaultDownloadAsar(url, headers, onDownloading) {
|
|
51
|
+
async function defaultDownloadAsar(url, headers, signal, onDownloading) {
|
|
46
52
|
let transferred = 0;
|
|
47
53
|
let time = Date.now();
|
|
48
|
-
return await downloadFn(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
return await downloadFn(
|
|
55
|
+
url,
|
|
56
|
+
headers,
|
|
57
|
+
signal,
|
|
58
|
+
(resp, resolve) => {
|
|
59
|
+
const total = +getHeader(resp.headers, "content-length") || -1;
|
|
60
|
+
let data = [];
|
|
61
|
+
resp.on("data", (chunk) => {
|
|
62
|
+
const delta = chunk.length;
|
|
63
|
+
transferred += delta;
|
|
64
|
+
const current = Date.now();
|
|
65
|
+
onDownloading?.({
|
|
66
|
+
percent: total ? +(transferred / total).toFixed(2) * 100 : -1,
|
|
67
|
+
total,
|
|
68
|
+
transferred,
|
|
69
|
+
delta,
|
|
70
|
+
bps: delta / ((current - time) * 1e3)
|
|
71
|
+
});
|
|
72
|
+
time = current;
|
|
73
|
+
data.push(chunk);
|
|
61
74
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
resp.on("end", () => resolve(Buffer.concat(data)));
|
|
66
|
-
});
|
|
75
|
+
resp.on("end", () => resolve(Buffer.concat(data)));
|
|
76
|
+
}
|
|
77
|
+
);
|
|
67
78
|
}
|
|
68
79
|
|
|
69
80
|
// src/provider/base.ts
|
|
@@ -92,7 +103,7 @@ var GitHubProvider = class extends BaseProvider {
|
|
|
92
103
|
* - download update json from `https://raw.githubusercontent.com/{user}/{repo}/HEAD/{versionPath}`
|
|
93
104
|
* - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
|
|
94
105
|
*
|
|
95
|
-
* you can setup `urlHandler` in {@link GitHubProviderOptions}
|
|
106
|
+
* you can setup `urlHandler` in {@link GitHubProviderOptions} to modify url before request
|
|
96
107
|
* @param options provider options
|
|
97
108
|
*/
|
|
98
109
|
constructor(options) {
|
|
@@ -110,7 +121,7 @@ var GitHubProvider = class extends BaseProvider {
|
|
|
110
121
|
}
|
|
111
122
|
async parseURL(isDownloadAsar, extraPath) {
|
|
112
123
|
const url = new URL(
|
|
113
|
-
`/${this.options.
|
|
124
|
+
`/${this.options.user}/${this.options.repo}/${extraPath}`,
|
|
114
125
|
"https://" + (isDownloadAsar ? "github.com" : "raw.githubusercontent.com")
|
|
115
126
|
);
|
|
116
127
|
return (await this.urlHandler?.(url, isDownloadAsar) || url).toString();
|
|
@@ -118,19 +129,21 @@ var GitHubProvider = class extends BaseProvider {
|
|
|
118
129
|
/**
|
|
119
130
|
* @inheritdoc
|
|
120
131
|
*/
|
|
121
|
-
async downloadJSON(versionPath) {
|
|
132
|
+
async downloadJSON(versionPath, signal) {
|
|
122
133
|
return await defaultDownloadUpdateJSON(
|
|
123
134
|
await this.parseURL(false, `${this.options.branch}/${versionPath}`),
|
|
124
|
-
{ Accept: "application/json", ...this.options.extraHeaders }
|
|
135
|
+
{ Accept: "application/json", ...this.options.extraHeaders },
|
|
136
|
+
signal
|
|
125
137
|
);
|
|
126
138
|
}
|
|
127
139
|
/**
|
|
128
140
|
* @inheritdoc
|
|
129
141
|
*/
|
|
130
|
-
async downloadAsar(name, info, onDownloading) {
|
|
142
|
+
async downloadAsar(name, info, signal, onDownloading) {
|
|
131
143
|
return await defaultDownloadAsar(
|
|
132
144
|
await this.parseURL(true, `releases/download/v${info.version}/${name}-${info.version}.asar.gz`),
|
|
133
145
|
{ Accept: "application/octet-stream", ...this.options.extraHeaders },
|
|
146
|
+
signal,
|
|
134
147
|
onDownloading
|
|
135
148
|
);
|
|
136
149
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@subframe7536/type-utils';
|
|
2
|
-
import { a as UpdateJSON, U as UpdateInfo } from './version-
|
|
2
|
+
import { a as UpdateJSON, U as UpdateInfo } from './version-BYVQ367i.js';
|
|
3
3
|
|
|
4
4
|
type URLHandler = (url: URL, isDownloadAsar: boolean) => Promisable<URL | string | undefined | null>;
|
|
5
5
|
type OnDownloading = (progress: DownloadingInfo) => void;
|
|
@@ -11,7 +11,7 @@ interface DownloadingInfo {
|
|
|
11
11
|
/**
|
|
12
12
|
* Downloaded percent, 0 ~ 100
|
|
13
13
|
*
|
|
14
|
-
* If no `Content-Length` header, will be
|
|
14
|
+
* If no `Content-Length` header, will be -1
|
|
15
15
|
*/
|
|
16
16
|
percent: number;
|
|
17
17
|
/**
|
|
@@ -44,15 +44,17 @@ interface IProvider {
|
|
|
44
44
|
/**
|
|
45
45
|
* Download update json
|
|
46
46
|
* @param versionPath parsed version path in project
|
|
47
|
+
* @param signal abort signal
|
|
47
48
|
*/
|
|
48
|
-
downloadJSON: (versionPath: string) => Promise<UpdateJSON>;
|
|
49
|
+
downloadJSON: (versionPath: string, signal: AbortSignal) => Promise<UpdateJSON>;
|
|
49
50
|
/**
|
|
50
51
|
* Download update asar
|
|
51
52
|
* @param name app name
|
|
52
53
|
* @param updateInfo existing update info
|
|
54
|
+
* @param signal abort signal
|
|
53
55
|
* @param onDownloading hook for on downloading
|
|
54
56
|
*/
|
|
55
|
-
downloadAsar: (name: string, updateInfo: UpdateInfo, onDownloading?: (info: DownloadingInfo) => void) => Promise<Buffer>;
|
|
57
|
+
downloadAsar: (name: string, updateInfo: UpdateInfo, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void) => Promise<Buffer>;
|
|
56
58
|
/**
|
|
57
59
|
* Check the old version is less than new version
|
|
58
60
|
* @param oldVer old version string
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@subframe7536/type-utils';
|
|
2
|
-
import { a as UpdateJSON, U as UpdateInfo } from './version-
|
|
2
|
+
import { a as UpdateJSON, U as UpdateInfo } from './version-BYVQ367i.cjs';
|
|
3
3
|
|
|
4
4
|
type URLHandler = (url: URL, isDownloadAsar: boolean) => Promisable<URL | string | undefined | null>;
|
|
5
5
|
type OnDownloading = (progress: DownloadingInfo) => void;
|
|
@@ -11,7 +11,7 @@ interface DownloadingInfo {
|
|
|
11
11
|
/**
|
|
12
12
|
* Downloaded percent, 0 ~ 100
|
|
13
13
|
*
|
|
14
|
-
* If no `Content-Length` header, will be
|
|
14
|
+
* If no `Content-Length` header, will be -1
|
|
15
15
|
*/
|
|
16
16
|
percent: number;
|
|
17
17
|
/**
|
|
@@ -44,15 +44,17 @@ interface IProvider {
|
|
|
44
44
|
/**
|
|
45
45
|
* Download update json
|
|
46
46
|
* @param versionPath parsed version path in project
|
|
47
|
+
* @param signal abort signal
|
|
47
48
|
*/
|
|
48
|
-
downloadJSON: (versionPath: string) => Promise<UpdateJSON>;
|
|
49
|
+
downloadJSON: (versionPath: string, signal: AbortSignal) => Promise<UpdateJSON>;
|
|
49
50
|
/**
|
|
50
51
|
* Download update asar
|
|
51
52
|
* @param name app name
|
|
52
53
|
* @param updateInfo existing update info
|
|
54
|
+
* @param signal abort signal
|
|
53
55
|
* @param onDownloading hook for on downloading
|
|
54
56
|
*/
|
|
55
|
-
downloadAsar: (name: string, updateInfo: UpdateInfo, onDownloading?: (info: DownloadingInfo) => void) => Promise<Buffer>;
|
|
57
|
+
downloadAsar: (name: string, updateInfo: UpdateInfo, signal: AbortSignal, onDownloading?: (info: DownloadingInfo) => void) => Promise<Buffer>;
|
|
56
58
|
/**
|
|
57
59
|
* Check the old version is less than new version
|
|
58
60
|
* @param oldVer old version string
|
package/dist/utils.cjs
CHANGED
|
@@ -10,6 +10,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
10
10
|
|
|
11
11
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
12
12
|
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
13
|
+
var electron__default = /*#__PURE__*/_interopDefault(electron);
|
|
13
14
|
var zlib__default = /*#__PURE__*/_interopDefault(zlib);
|
|
14
15
|
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
15
16
|
|
|
@@ -24,35 +25,38 @@ var isWin = process.platform === "win32";
|
|
|
24
25
|
var isMac = process.platform === "darwin";
|
|
25
26
|
var isLinux = process.platform === "linux";
|
|
26
27
|
function getPathFromAppNameAsar(...paths) {
|
|
27
|
-
return isDev ? "DEV.asar" : path__default.default.join(path__default.default.dirname(
|
|
28
|
+
return isDev ? "DEV.asar" : path__default.default.join(path__default.default.dirname(electron__default.default.app.getAppPath()), `${electron__default.default.app.name}.asar`, ...paths);
|
|
28
29
|
}
|
|
29
30
|
function getAppVersion() {
|
|
30
31
|
return isDev ? getEntryVersion() : fs__default.default.readFileSync(getPathFromAppNameAsar("version"), "utf-8");
|
|
31
32
|
}
|
|
32
33
|
function getEntryVersion() {
|
|
33
|
-
return
|
|
34
|
+
return electron__default.default.app.getVersion();
|
|
34
35
|
}
|
|
35
36
|
function requireNative(moduleName) {
|
|
36
|
-
|
|
37
|
+
if (__EIU_IS_ESM__) {
|
|
38
|
+
throw new Error(`Cannot require "${path__default.default.join(__EIU_ENTRY_DIST_PATH__, moduleName)}", \`requireNative\` only support CommonJS`);
|
|
39
|
+
}
|
|
40
|
+
return __require(path__default.default.join(electron__default.default.app.getAppPath(), __EIU_ENTRY_DIST_PATH__, moduleName));
|
|
37
41
|
}
|
|
38
42
|
function restartApp() {
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
electron__default.default.app.relaunch();
|
|
44
|
+
electron__default.default.app.quit();
|
|
41
45
|
}
|
|
42
46
|
function setAppUserModelId(id) {
|
|
43
47
|
if (isWin) {
|
|
44
|
-
|
|
48
|
+
electron__default.default.app.setAppUserModelId(id ?? `org.${electron__default.default.app.name}`);
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
function disableHWAccForWin7() {
|
|
48
|
-
if (__require("os").release().startsWith("6.1")) {
|
|
49
|
-
|
|
52
|
+
if (!__EIU_IS_ESM__ && __require("os").release().startsWith("6.1")) {
|
|
53
|
+
electron__default.default.app.disableHardwareAcceleration();
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
function singleInstance(window) {
|
|
53
|
-
const result =
|
|
57
|
+
const result = electron__default.default.app.requestSingleInstanceLock();
|
|
54
58
|
if (result) {
|
|
55
|
-
|
|
59
|
+
electron__default.default.app.on("second-instance", () => {
|
|
56
60
|
if (window) {
|
|
57
61
|
window.show();
|
|
58
62
|
if (window.isMinimized()) {
|
|
@@ -62,16 +66,16 @@ function singleInstance(window) {
|
|
|
62
66
|
}
|
|
63
67
|
});
|
|
64
68
|
} else {
|
|
65
|
-
|
|
69
|
+
electron__default.default.app.quit();
|
|
66
70
|
}
|
|
67
71
|
return result;
|
|
68
72
|
}
|
|
69
73
|
function setPortableAppDataPath(dirName = "data") {
|
|
70
|
-
const portablePath = path__default.default.join(path__default.default.dirname(
|
|
74
|
+
const portablePath = path__default.default.join(path__default.default.dirname(electron__default.default.app.getPath("exe")), dirName);
|
|
71
75
|
if (!fs__default.default.existsSync(portablePath)) {
|
|
72
76
|
fs__default.default.mkdirSync(portablePath);
|
|
73
77
|
}
|
|
74
|
-
|
|
78
|
+
electron__default.default.app.setPath("appData", portablePath);
|
|
75
79
|
}
|
|
76
80
|
function loadPage(win, htmlFilePath = "index.html") {
|
|
77
81
|
if (isDev) {
|
|
@@ -80,14 +84,17 @@ function loadPage(win, htmlFilePath = "index.html") {
|
|
|
80
84
|
win.loadFile(getPathFromAppNameAsar("renderer", htmlFilePath));
|
|
81
85
|
}
|
|
82
86
|
}
|
|
87
|
+
function getPathFromMain(...paths) {
|
|
88
|
+
return isDev ? path__default.default.join(electron__default.default.app.getAppPath(), __EIU_ELECTRON_DIST_PATH__, "main", ...paths) : getPathFromAppNameAsar("main", ...paths);
|
|
89
|
+
}
|
|
83
90
|
function getPathFromPreload(...paths) {
|
|
84
|
-
return isDev ? path__default.default.join(
|
|
91
|
+
return isDev ? path__default.default.join(electron__default.default.app.getAppPath(), __EIU_ELECTRON_DIST_PATH__, "preload", ...paths) : getPathFromAppNameAsar("preload", ...paths);
|
|
85
92
|
}
|
|
86
93
|
function getPathFromPublic(...paths) {
|
|
87
|
-
return isDev ? path__default.default.join(
|
|
94
|
+
return isDev ? path__default.default.join(electron__default.default.app.getAppPath(), "public", ...paths) : getPathFromAppNameAsar("renderer", ...paths);
|
|
88
95
|
}
|
|
89
96
|
function getPathFromEntryAsar(...paths) {
|
|
90
|
-
return path__default.default.join(
|
|
97
|
+
return path__default.default.join(electron__default.default.app.getAppPath(), __EIU_ENTRY_DIST_PATH__, ...paths);
|
|
91
98
|
}
|
|
92
99
|
function handleUnexpectedErrors(callback) {
|
|
93
100
|
process.on("uncaughtException", callback);
|
|
@@ -136,7 +143,7 @@ function parseVersion(version) {
|
|
|
136
143
|
ret.stageVersion = Number(_v) || -1;
|
|
137
144
|
}
|
|
138
145
|
if (Number.isNaN(major) || Number.isNaN(minor) || Number.isNaN(patch) || Number.isNaN(ret.stageVersion)) {
|
|
139
|
-
throw new TypeError(`
|
|
146
|
+
throw new TypeError(`Invalid version: ${version}`);
|
|
140
147
|
}
|
|
141
148
|
return ret;
|
|
142
149
|
}
|
|
@@ -218,6 +225,7 @@ exports.getAppVersion = getAppVersion;
|
|
|
218
225
|
exports.getEntryVersion = getEntryVersion;
|
|
219
226
|
exports.getPathFromAppNameAsar = getPathFromAppNameAsar;
|
|
220
227
|
exports.getPathFromEntryAsar = getPathFromEntryAsar;
|
|
228
|
+
exports.getPathFromMain = getPathFromMain;
|
|
221
229
|
exports.getPathFromPreload = getPathFromPreload;
|
|
222
230
|
exports.getPathFromPublic = getPathFromPublic;
|
|
223
231
|
exports.handleUnexpectedErrors = handleUnexpectedErrors;
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BrowserWindow } from 'electron';
|
|
2
2
|
export { e as aesDecrypt, b as aesEncrypt, c as defaultSignature, a as defaultUnzipFile, f as defaultVerifySignature, d as defaultZipFile, h as hashBuffer } from './zip-rm9ED9nU.cjs';
|
|
3
|
-
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, b as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './version-
|
|
3
|
+
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, b as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './version-BYVQ367i.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Compile time dev check
|
|
@@ -10,7 +10,7 @@ declare const isWin: boolean;
|
|
|
10
10
|
declare const isMac: boolean;
|
|
11
11
|
declare const isLinux: boolean;
|
|
12
12
|
/**
|
|
13
|
-
* Get
|
|
13
|
+
* Get joined path of `${electron.app.name}.asar` (not `app.asar`)
|
|
14
14
|
*
|
|
15
15
|
* If is in dev, **always** return `'DEV.asar'`
|
|
16
16
|
*/
|
|
@@ -41,6 +41,8 @@ declare function restartApp(): void;
|
|
|
41
41
|
declare function setAppUserModelId(id?: string): void;
|
|
42
42
|
/**
|
|
43
43
|
* Disable hardware acceleration for Windows 7
|
|
44
|
+
*
|
|
45
|
+
* Only support CommonJS
|
|
44
46
|
*/
|
|
45
47
|
declare function disableHWAccForWin7(): void;
|
|
46
48
|
/**
|
|
@@ -62,6 +64,11 @@ declare function setPortableAppDataPath(dirName?: string): void;
|
|
|
62
64
|
* @param htmlFilePath html file path, default is `index.html`
|
|
63
65
|
*/
|
|
64
66
|
declare function loadPage(win: BrowserWindow, htmlFilePath?: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Get joined path from preload dir
|
|
69
|
+
* @param paths rest paths
|
|
70
|
+
*/
|
|
71
|
+
declare function getPathFromMain(...paths: string[]): string;
|
|
65
72
|
/**
|
|
66
73
|
* Get joined path from preload dir
|
|
67
74
|
* @param paths rest paths
|
|
@@ -83,4 +90,4 @@ declare function getPathFromEntryAsar(...paths: string[]): string;
|
|
|
83
90
|
*/
|
|
84
91
|
declare function handleUnexpectedErrors(callback: (err: unknown) => void): void;
|
|
85
92
|
|
|
86
|
-
export { disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
|
93
|
+
export { disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BrowserWindow } from 'electron';
|
|
2
2
|
export { e as aesDecrypt, b as aesEncrypt, c as defaultSignature, a as defaultUnzipFile, f as defaultVerifySignature, d as defaultZipFile, h as hashBuffer } from './zip-rm9ED9nU.js';
|
|
3
|
-
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, b as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './version-
|
|
3
|
+
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, b as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './version-BYVQ367i.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Compile time dev check
|
|
@@ -10,7 +10,7 @@ declare const isWin: boolean;
|
|
|
10
10
|
declare const isMac: boolean;
|
|
11
11
|
declare const isLinux: boolean;
|
|
12
12
|
/**
|
|
13
|
-
* Get
|
|
13
|
+
* Get joined path of `${electron.app.name}.asar` (not `app.asar`)
|
|
14
14
|
*
|
|
15
15
|
* If is in dev, **always** return `'DEV.asar'`
|
|
16
16
|
*/
|
|
@@ -41,6 +41,8 @@ declare function restartApp(): void;
|
|
|
41
41
|
declare function setAppUserModelId(id?: string): void;
|
|
42
42
|
/**
|
|
43
43
|
* Disable hardware acceleration for Windows 7
|
|
44
|
+
*
|
|
45
|
+
* Only support CommonJS
|
|
44
46
|
*/
|
|
45
47
|
declare function disableHWAccForWin7(): void;
|
|
46
48
|
/**
|
|
@@ -62,6 +64,11 @@ declare function setPortableAppDataPath(dirName?: string): void;
|
|
|
62
64
|
* @param htmlFilePath html file path, default is `index.html`
|
|
63
65
|
*/
|
|
64
66
|
declare function loadPage(win: BrowserWindow, htmlFilePath?: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Get joined path from preload dir
|
|
69
|
+
* @param paths rest paths
|
|
70
|
+
*/
|
|
71
|
+
declare function getPathFromMain(...paths: string[]): string;
|
|
65
72
|
/**
|
|
66
73
|
* Get joined path from preload dir
|
|
67
74
|
* @param paths rest paths
|
|
@@ -83,4 +90,4 @@ declare function getPathFromEntryAsar(...paths: string[]): string;
|
|
|
83
90
|
*/
|
|
84
91
|
declare function handleUnexpectedErrors(callback: (err: unknown) => void): void;
|
|
85
92
|
|
|
86
|
-
export { disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
|
93
|
+
export { disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
package/dist/utils.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance } from './chunk-
|
|
1
|
+
export { disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance } from './chunk-IABBXJFB.js';
|
|
2
2
|
export { aesDecrypt, aesEncrypt, defaultSignature, defaultUnzipFile, defaultVerifySignature, defaultZipFile, hashBuffer } from './chunk-KZSYEXLO.js';
|
|
3
|
-
export { defaultIsLowerVersion, defaultVersionJsonGenerator, isUpdateJSON, parseVersion } from './chunk-
|
|
3
|
+
export { defaultIsLowerVersion, defaultVersionJsonGenerator, isUpdateJSON, parseVersion } from './chunk-RCRKUKFX.js';
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
interface Version {
|
|
2
2
|
/**
|
|
3
|
-
* `
|
|
3
|
+
* `4` of `4.3.2-beta.1`
|
|
4
4
|
*/
|
|
5
5
|
major: number;
|
|
6
6
|
/**
|
|
7
|
-
* `
|
|
7
|
+
* `3` of `4.3.2-beta.1`
|
|
8
8
|
*/
|
|
9
9
|
minor: number;
|
|
10
10
|
/**
|
|
11
|
-
* `
|
|
11
|
+
* `2` of `4.3.2-beta.1`
|
|
12
12
|
*/
|
|
13
13
|
patch: number;
|
|
14
14
|
/**
|
|
15
|
-
* `beta` of `
|
|
15
|
+
* `beta` of `4.3.2-beta.1`
|
|
16
16
|
*/
|
|
17
17
|
stage: string;
|
|
18
18
|
/**
|
|
19
|
-
* `
|
|
19
|
+
* `1` of `4.3.2-beta.1`
|
|
20
20
|
*/
|
|
21
21
|
stageVersion: number;
|
|
22
22
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
interface Version {
|
|
2
2
|
/**
|
|
3
|
-
* `
|
|
3
|
+
* `4` of `4.3.2-beta.1`
|
|
4
4
|
*/
|
|
5
5
|
major: number;
|
|
6
6
|
/**
|
|
7
|
-
* `
|
|
7
|
+
* `3` of `4.3.2-beta.1`
|
|
8
8
|
*/
|
|
9
9
|
minor: number;
|
|
10
10
|
/**
|
|
11
|
-
* `
|
|
11
|
+
* `2` of `4.3.2-beta.1`
|
|
12
12
|
*/
|
|
13
13
|
patch: number;
|
|
14
14
|
/**
|
|
15
|
-
* `beta` of `
|
|
15
|
+
* `beta` of `4.3.2-beta.1`
|
|
16
16
|
*/
|
|
17
17
|
stage: string;
|
|
18
18
|
/**
|
|
19
|
-
* `
|
|
19
|
+
* `1` of `4.3.2-beta.1`
|
|
20
20
|
*/
|
|
21
21
|
stageVersion: number;
|
|
22
22
|
}
|
package/dist/vite.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ interface PKG {
|
|
|
23
23
|
name: string;
|
|
24
24
|
version: string;
|
|
25
25
|
main: string;
|
|
26
|
+
type: 'commonjs' | 'module';
|
|
26
27
|
}
|
|
27
28
|
interface DistinguishedName {
|
|
28
29
|
countryName?: string;
|
|
@@ -86,7 +87,8 @@ interface BuildEntryOption {
|
|
|
86
87
|
* '.node': 'empty',
|
|
87
88
|
* },
|
|
88
89
|
* define: {
|
|
89
|
-
*
|
|
90
|
+
* __EIU_SIGNATURE_CERT__: JSON.stringify(cert),
|
|
91
|
+
* // ...
|
|
90
92
|
* },
|
|
91
93
|
* }
|
|
92
94
|
* ```
|
package/dist/vite.js
CHANGED
|
@@ -38,7 +38,7 @@ function parseVersion(version) {
|
|
|
38
38
|
ret.stageVersion = Number(_v) || -1;
|
|
39
39
|
}
|
|
40
40
|
if (Number.isNaN(major) || Number.isNaN(minor) || Number.isNaN(patch) || Number.isNaN(ret.stageVersion)) {
|
|
41
|
-
throw new TypeError(`
|
|
41
|
+
throw new TypeError(`Invalid version: ${version}`);
|
|
42
42
|
}
|
|
43
43
|
return ret;
|
|
44
44
|
}
|
|
@@ -275,7 +275,7 @@ async function buildEntry({
|
|
|
275
275
|
entryOutputDirPath,
|
|
276
276
|
nativeModuleEntryMap,
|
|
277
277
|
overrideEsbuildOptions
|
|
278
|
-
}, define, bytecodeOptions) {
|
|
278
|
+
}, isESM, define, bytecodeOptions) {
|
|
279
279
|
const option = mergeConfig(
|
|
280
280
|
{
|
|
281
281
|
entryPoints: {
|
|
@@ -295,7 +295,8 @@ async function buildEntry({
|
|
|
295
295
|
loader: {
|
|
296
296
|
".node": "empty"
|
|
297
297
|
},
|
|
298
|
-
define
|
|
298
|
+
define,
|
|
299
|
+
format: isESM ? "esm" : "cjs"
|
|
299
300
|
},
|
|
300
301
|
overrideEsbuildOptions ?? {}
|
|
301
302
|
);
|
|
@@ -511,7 +512,7 @@ function bytecodePlugin(env, options) {
|
|
|
511
512
|
renderChunk(code, chunk, options2) {
|
|
512
513
|
if (options2.format === "es") {
|
|
513
514
|
bytecodeLog.warn(
|
|
514
|
-
'`bytecodePlugin` does not support ES module, please
|
|
515
|
+
'`bytecodePlugin` does not support ES module, please set "build.rollupOptions.output.format" option to "cjs"',
|
|
515
516
|
{ timestamp: true }
|
|
516
517
|
);
|
|
517
518
|
return null;
|
|
@@ -544,8 +545,9 @@ function bytecodePlugin(env, options) {
|
|
|
544
545
|
const chunk = output[name];
|
|
545
546
|
if (chunk.type === "chunk") {
|
|
546
547
|
let _code = chunk.code;
|
|
548
|
+
const chunkFilePath = path5.resolve(outDir, name);
|
|
547
549
|
if (beforeCompile) {
|
|
548
|
-
const cbResult = await beforeCompile(_code,
|
|
550
|
+
const cbResult = await beforeCompile(_code, chunkFilePath);
|
|
549
551
|
if (cbResult) {
|
|
550
552
|
_code = cbResult;
|
|
551
553
|
}
|
|
@@ -562,7 +564,6 @@ function bytecodePlugin(env, options) {
|
|
|
562
564
|
}
|
|
563
565
|
_code = s.toString();
|
|
564
566
|
}
|
|
565
|
-
const chunkFilePath = path5.resolve(outDir, name);
|
|
566
567
|
if (bytecodeChunks.includes(name)) {
|
|
567
568
|
const bytecodeBuffer = await compileToBytecode(_code);
|
|
568
569
|
fs3.writeFileSync(chunkFilePath + "c", bytecodeBuffer);
|
|
@@ -641,6 +642,7 @@ function getMainFilePath(options) {
|
|
|
641
642
|
}
|
|
642
643
|
mainFilePath = options?.index ? "index.js" : "main.js";
|
|
643
644
|
}
|
|
645
|
+
log.info(`Using "${mainFilePath}" as main file`, { timestamp: true });
|
|
644
646
|
return mainFilePath.replace(/\.[cm]?ts$/, ".js");
|
|
645
647
|
}
|
|
646
648
|
function parseVersionPath(versionPath) {
|
|
@@ -664,24 +666,33 @@ async function electronWithUpdater(options) {
|
|
|
664
666
|
useNotBundle = true,
|
|
665
667
|
logParsedOptions
|
|
666
668
|
} = options;
|
|
667
|
-
if (!pkg) {
|
|
668
|
-
log.error(
|
|
669
|
+
if (!pkg || !pkg.version || !pkg.name || !pkg.main) {
|
|
670
|
+
log.error("package.json not found or invalid", { timestamp: true });
|
|
669
671
|
return void 0;
|
|
670
672
|
}
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
673
|
+
const isESM = pkg.type === "module";
|
|
674
|
+
let bytecodeOptions = typeof bytecode === "object" ? bytecode : bytecode === true ? { enable: true } : void 0;
|
|
675
|
+
if (isESM && bytecodeOptions?.enable) {
|
|
676
|
+
bytecodeLog.warn(
|
|
677
|
+
'`bytecodePlugin` does not support ES module, please remove "type": "module" in package.json',
|
|
678
|
+
{ timestamp: true }
|
|
679
|
+
);
|
|
680
|
+
bytecodeOptions = void 0;
|
|
674
681
|
}
|
|
675
|
-
const
|
|
676
|
-
|
|
682
|
+
const {
|
|
683
|
+
buildAsarOption,
|
|
684
|
+
buildEntryOption,
|
|
685
|
+
buildVersionOption,
|
|
686
|
+
postBuild,
|
|
687
|
+
cert
|
|
688
|
+
} = parseOptions(pkg, sourcemap, minify, updater);
|
|
689
|
+
const { entryOutputDirPath, nativeModuleEntryMap, appEntryPath } = buildEntryOption;
|
|
677
690
|
try {
|
|
678
|
-
fs3.rmSync(
|
|
679
|
-
fs3.rmSync(
|
|
691
|
+
fs3.rmSync(buildAsarOption.electronDistPath, { recursive: true, force: true });
|
|
692
|
+
fs3.rmSync(entryOutputDirPath, { recursive: true, force: true });
|
|
680
693
|
} catch {
|
|
681
694
|
}
|
|
682
|
-
log.info(`
|
|
683
|
-
const { buildAsarOption, buildEntryOption, buildVersionOption, postBuild, cert } = _options;
|
|
684
|
-
const { entryOutputDirPath, nativeModuleEntryMap, appEntryPath } = buildEntryOption;
|
|
695
|
+
log.info(`Clear cache files`, { timestamp: true });
|
|
685
696
|
sourcemap ??= isBuild || !!process.env.VSCODE_DEBUG;
|
|
686
697
|
const _appPath = normalizePath(path5.join(entryOutputDirPath, "entry.js"));
|
|
687
698
|
if (path5.resolve(normalizePath(pkg.main)) !== path5.resolve(_appPath)) {
|
|
@@ -691,6 +702,7 @@ async function electronWithUpdater(options) {
|
|
|
691
702
|
__EIU_ELECTRON_DIST_PATH__: JSON.stringify(buildAsarOption.electronDistPath),
|
|
692
703
|
__EIU_ENTRY_DIST_PATH__: JSON.stringify(buildEntryOption.entryOutputDirPath),
|
|
693
704
|
__EIU_IS_DEV__: JSON.stringify(!isBuild),
|
|
705
|
+
__EIU_IS_ESM__: JSON.stringify(isESM),
|
|
694
706
|
__EIU_MAIN_DEV_DIR__: JSON.stringify(buildAsarOption.electronDistPath),
|
|
695
707
|
__EIU_MAIN_FILE__: JSON.stringify(getMainFilePath(_main.files)),
|
|
696
708
|
__EIU_SIGNATURE_CERT__: JSON.stringify(cert),
|
|
@@ -699,6 +711,7 @@ async function electronWithUpdater(options) {
|
|
|
699
711
|
const _buildEntry = async () => {
|
|
700
712
|
await buildEntry(
|
|
701
713
|
buildEntryOption,
|
|
714
|
+
isESM,
|
|
702
715
|
define,
|
|
703
716
|
bytecodeOptions
|
|
704
717
|
);
|