electron-incremental-update 2.2.1 → 2.2.3
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/README.md +62 -7
- package/dist/{bytecode-7V24FFYI.js → bytecode-R2B4KTMV.js} +3 -3
- package/dist/chunk-D7NXTCQW.js +135 -0
- package/dist/{chunk-JI27JWJN.js → chunk-YZGE4RFY.js} +12 -1
- package/dist/{esm-UJAQJA65.js → esm-4S4XCVEW.js} +1 -1
- package/dist/index.cjs +17 -17
- package/dist/index.d.cts +15 -7
- package/dist/index.d.ts +15 -7
- package/dist/index.js +13 -9
- package/dist/provider.cjs +48 -51
- package/dist/provider.d.cts +14 -43
- package/dist/provider.d.ts +14 -43
- package/dist/provider.js +4 -98
- package/dist/{types-nE_pIMPo.d.ts → types-C5M2xRjF.d.cts} +77 -5
- package/dist/{types-C6lSLZWB.d.cts → types-C5M2xRjF.d.ts} +77 -5
- package/dist/utils.cjs +216 -106
- package/dist/utils.d.cts +6 -3
- package/dist/utils.d.ts +6 -3
- package/dist/utils.js +2 -2
- package/dist/vite.d.ts +50 -28
- package/dist/vite.js +36 -27
- package/dist/zip-BQS8qbGA.d.cts +70 -0
- package/dist/zip-DbfskMQi.d.ts +70 -0
- package/package.json +86 -87
- package/dist/chunk-PUVBFHOK.js +0 -43
- package/dist/crypto-Zynscwmj.d.cts +0 -33
- package/dist/crypto-Zynscwmj.d.ts +0 -33
- package/dist/version-BYVQ367i.d.cts +0 -62
- package/dist/version-BYVQ367i.d.ts +0 -62
- package/dist/{chunk-7JCGLFGU.js → chunk-LR7LR5WG.js} +3 -3
package/dist/utils.cjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var crypto = require('crypto');
|
|
4
|
+
var electron2 = require('electron');
|
|
3
5
|
var fs = require('fs');
|
|
4
6
|
var path = require('path');
|
|
5
|
-
var electron = require('electron');
|
|
6
7
|
var zlib = require('zlib');
|
|
7
|
-
var crypto = require('crypto');
|
|
8
8
|
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
|
|
11
|
+
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
12
|
+
var electron2__default = /*#__PURE__*/_interopDefault(electron2);
|
|
11
13
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
12
14
|
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
13
|
-
var electron__default = /*#__PURE__*/_interopDefault(electron);
|
|
14
15
|
var zlib__default = /*#__PURE__*/_interopDefault(zlib);
|
|
15
|
-
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
16
16
|
|
|
17
17
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
18
18
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
@@ -20,18 +20,200 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
20
20
|
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
21
21
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
22
22
|
});
|
|
23
|
+
function hashBuffer(data, length) {
|
|
24
|
+
const hash = crypto__default.default.createHash("SHA256").update(data).digest("binary");
|
|
25
|
+
return Buffer.from(hash).subarray(0, length);
|
|
26
|
+
}
|
|
27
|
+
function aesEncrypt(plainText, key, iv) {
|
|
28
|
+
const cipher = crypto__default.default.createCipheriv("aes-256-cbc", key, iv);
|
|
29
|
+
return cipher.update(plainText, "utf8", "base64url") + cipher.final("base64url");
|
|
30
|
+
}
|
|
31
|
+
function defaultSignature(buffer, privateKey, cert, version) {
|
|
32
|
+
const sig = crypto__default.default.createSign("RSA-SHA256").update(buffer).sign(crypto__default.default.createPrivateKey(privateKey), "base64");
|
|
33
|
+
return aesEncrypt(`${sig}%${version}`, hashBuffer(cert, 32), hashBuffer(buffer, 16));
|
|
34
|
+
}
|
|
35
|
+
function aesDecrypt(encryptedText, key, iv) {
|
|
36
|
+
const decipher = crypto__default.default.createDecipheriv("aes-256-cbc", key, iv);
|
|
37
|
+
return decipher.update(encryptedText, "base64url", "utf8") + decipher.final("utf8");
|
|
38
|
+
}
|
|
39
|
+
function defaultVerifySignature(buffer, version, signature, cert) {
|
|
40
|
+
try {
|
|
41
|
+
const [sig, ver] = aesDecrypt(signature, hashBuffer(cert, 32), hashBuffer(buffer, 16)).split("%");
|
|
42
|
+
if (ver !== version) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return crypto__default.default.createVerify("RSA-SHA256").update(buffer).verify(cert, sig, "base64");
|
|
46
|
+
} catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/utils/version.ts
|
|
52
|
+
function parseVersion(version) {
|
|
53
|
+
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([a-z0-9.-]+))?/i.exec(version);
|
|
54
|
+
if (!match) {
|
|
55
|
+
throw new TypeError(`invalid version: ${version}`);
|
|
56
|
+
}
|
|
57
|
+
const [major, minor, patch] = match.slice(1, 4).map(Number);
|
|
58
|
+
const ret = {
|
|
59
|
+
major,
|
|
60
|
+
minor,
|
|
61
|
+
patch,
|
|
62
|
+
stage: "",
|
|
63
|
+
stageVersion: -1
|
|
64
|
+
};
|
|
65
|
+
if (match[4]) {
|
|
66
|
+
let [stage, _v] = match[4].split(".");
|
|
67
|
+
ret.stage = stage;
|
|
68
|
+
ret.stageVersion = Number(_v) || -1;
|
|
69
|
+
}
|
|
70
|
+
if (Number.isNaN(major) || Number.isNaN(minor) || Number.isNaN(patch) || Number.isNaN(ret.stageVersion)) {
|
|
71
|
+
throw new TypeError(`Invalid version: ${version}`);
|
|
72
|
+
}
|
|
73
|
+
return ret;
|
|
74
|
+
}
|
|
75
|
+
function compareStrings(str1, str2) {
|
|
76
|
+
if (str1 === "") {
|
|
77
|
+
return str2 !== "";
|
|
78
|
+
} else if (str2 === "") {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
return str1 < str2;
|
|
82
|
+
}
|
|
83
|
+
function defaultIsLowerVersion(oldVer, newVer) {
|
|
84
|
+
const oldV = parseVersion(oldVer);
|
|
85
|
+
const newV = parseVersion(newVer);
|
|
86
|
+
for (let key of Object.keys(oldV)) {
|
|
87
|
+
if (key === "stage" && compareStrings(oldV[key], newV[key])) {
|
|
88
|
+
return true;
|
|
89
|
+
} else if (oldV[key] !== newV[key]) {
|
|
90
|
+
return oldV[key] < newV[key];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
var is = (j) => !!(j && j.minimumVersion && j.signature && j.version);
|
|
96
|
+
function isUpdateJSON(json) {
|
|
97
|
+
return is(json) && is(json?.beta);
|
|
98
|
+
}
|
|
99
|
+
function defaultVersionJsonGenerator(existingJson, signature, version, minimumVersion) {
|
|
100
|
+
existingJson.beta = {
|
|
101
|
+
version,
|
|
102
|
+
minimumVersion,
|
|
103
|
+
signature
|
|
104
|
+
};
|
|
105
|
+
if (!parseVersion(version).stage) {
|
|
106
|
+
existingJson.version = version;
|
|
107
|
+
existingJson.minimumVersion = minimumVersion;
|
|
108
|
+
existingJson.signature = signature;
|
|
109
|
+
}
|
|
110
|
+
return existingJson;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// src/utils/download.ts
|
|
114
|
+
function getHeader(headers, key) {
|
|
115
|
+
const value = headers[key];
|
|
116
|
+
if (Array.isArray(value)) {
|
|
117
|
+
return value.length === 0 ? null : value[value.length - 1];
|
|
118
|
+
} else {
|
|
119
|
+
return value;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function downloadUtil(url, headers, signal, onResponse) {
|
|
123
|
+
await electron2__default.default.app.whenReady();
|
|
124
|
+
return new Promise((resolve, reject) => {
|
|
125
|
+
const request = electron2__default.default.net.request({ url, method: "GET", redirect: "follow", headers, cache: "no-cache" });
|
|
126
|
+
signal.addEventListener("abort", () => request.abort(), { once: true });
|
|
127
|
+
request.on("response", (resp) => {
|
|
128
|
+
resp.on("aborted", () => reject(new Error("aborted")));
|
|
129
|
+
resp.on("error", () => reject(new Error("download error")));
|
|
130
|
+
onResponse(resp, resolve, reject);
|
|
131
|
+
});
|
|
132
|
+
request.on("error", reject);
|
|
133
|
+
request.end();
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function trimData(data) {
|
|
137
|
+
return data.trim().slice(0, 5e3).replace(/\s+/g, " ");
|
|
138
|
+
}
|
|
139
|
+
var defaultResolveDataFn = (data, resolve, reject) => {
|
|
140
|
+
try {
|
|
141
|
+
resolve(JSON.parse(data));
|
|
142
|
+
} catch {
|
|
143
|
+
reject(new Error(`Invalid json, "${trimData(data)}"`));
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
async function defaultDownloadJSON(url, headers, signal, resolveData = defaultResolveDataFn) {
|
|
147
|
+
return await downloadUtil(
|
|
148
|
+
url,
|
|
149
|
+
headers,
|
|
150
|
+
signal,
|
|
151
|
+
(resp, resolve, reject) => {
|
|
152
|
+
let data = "";
|
|
153
|
+
resp.on("data", (chunk) => data += chunk);
|
|
154
|
+
resp.on("end", () => resolveData(data, resolve, reject));
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
async function defaultDownloadUpdateJSON(url, headers, signal) {
|
|
159
|
+
return await defaultDownloadJSON(
|
|
160
|
+
url,
|
|
161
|
+
headers,
|
|
162
|
+
signal,
|
|
163
|
+
(data, resolve, reject) => {
|
|
164
|
+
try {
|
|
165
|
+
const json = JSON.parse(data);
|
|
166
|
+
if (isUpdateJSON(json)) {
|
|
167
|
+
resolve(json);
|
|
168
|
+
} else {
|
|
169
|
+
throw Error;
|
|
170
|
+
}
|
|
171
|
+
} catch {
|
|
172
|
+
reject(new Error(`Invalid update json, "${trimData(data)}"`));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
async function defaultDownloadAsar(url, headers, signal, onDownloading) {
|
|
178
|
+
let transferred = 0;
|
|
179
|
+
let time = Date.now();
|
|
180
|
+
return await downloadUtil(
|
|
181
|
+
url,
|
|
182
|
+
headers,
|
|
183
|
+
signal,
|
|
184
|
+
(resp, resolve) => {
|
|
185
|
+
const total = +getHeader(resp.headers, "content-length") || -1;
|
|
186
|
+
const data = [];
|
|
187
|
+
resp.on("data", (chunk) => {
|
|
188
|
+
const delta = chunk.length;
|
|
189
|
+
transferred += delta;
|
|
190
|
+
const current = Date.now();
|
|
191
|
+
onDownloading?.({
|
|
192
|
+
percent: total > 0 ? +(transferred / total).toFixed(2) * 100 : -1,
|
|
193
|
+
total,
|
|
194
|
+
transferred,
|
|
195
|
+
delta,
|
|
196
|
+
bps: delta / (current - time)
|
|
197
|
+
});
|
|
198
|
+
time = current;
|
|
199
|
+
data.push(chunk);
|
|
200
|
+
});
|
|
201
|
+
resp.on("end", () => resolve(Buffer.concat(data)));
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
}
|
|
23
205
|
var isDev = __EIU_IS_DEV__;
|
|
24
206
|
var isWin = process.platform === "win32";
|
|
25
207
|
var isMac = process.platform === "darwin";
|
|
26
208
|
var isLinux = process.platform === "linux";
|
|
27
209
|
function getPathFromAppNameAsar(...paths) {
|
|
28
|
-
return isDev ? "DEV.asar" : path__default.default.join(path__default.default.dirname(
|
|
210
|
+
return isDev ? "DEV.asar" : path__default.default.join(path__default.default.dirname(electron2__default.default.app.getAppPath()), `${electron2__default.default.app.name}.asar`, ...paths);
|
|
29
211
|
}
|
|
30
212
|
function getAppVersion() {
|
|
31
213
|
return isDev ? getEntryVersion() : fs__default.default.readFileSync(getPathFromAppNameAsar("version"), "utf-8");
|
|
32
214
|
}
|
|
33
215
|
function getEntryVersion() {
|
|
34
|
-
return
|
|
216
|
+
return electron2__default.default.app.getVersion();
|
|
35
217
|
}
|
|
36
218
|
function requireNative(moduleName) {
|
|
37
219
|
const m = getPathFromEntryAsar(moduleName);
|
|
@@ -48,21 +230,21 @@ async function importNative(moduleName) {
|
|
|
48
230
|
return await import(`file://${m}.js`);
|
|
49
231
|
}
|
|
50
232
|
function restartApp() {
|
|
51
|
-
|
|
52
|
-
|
|
233
|
+
electron2__default.default.app.relaunch();
|
|
234
|
+
electron2__default.default.app.quit();
|
|
53
235
|
}
|
|
54
236
|
function setAppUserModelId(id) {
|
|
55
237
|
if (isWin) {
|
|
56
|
-
|
|
238
|
+
electron2__default.default.app.setAppUserModelId(id ?? `org.${electron2__default.default.app.name}`);
|
|
57
239
|
}
|
|
58
240
|
}
|
|
59
241
|
function disableHWAccForWin7() {
|
|
60
242
|
if (!__EIU_IS_ESM__ && __require("os").release().startsWith("6.1")) {
|
|
61
|
-
|
|
243
|
+
electron2__default.default.app.disableHardwareAcceleration();
|
|
62
244
|
}
|
|
63
245
|
}
|
|
64
246
|
function singleInstance(window) {
|
|
65
|
-
|
|
247
|
+
electron2__default.default.app.on("second-instance", () => {
|
|
66
248
|
if (window) {
|
|
67
249
|
window.show();
|
|
68
250
|
if (window.isMinimized()) {
|
|
@@ -73,11 +255,11 @@ function singleInstance(window) {
|
|
|
73
255
|
});
|
|
74
256
|
}
|
|
75
257
|
function setPortableAppDataPath(dirName = "data") {
|
|
76
|
-
const portablePath = path__default.default.join(path__default.default.dirname(
|
|
258
|
+
const portablePath = path__default.default.join(path__default.default.dirname(electron2__default.default.app.getPath("exe")), dirName);
|
|
77
259
|
if (!fs__default.default.existsSync(portablePath)) {
|
|
78
260
|
fs__default.default.mkdirSync(portablePath);
|
|
79
261
|
}
|
|
80
|
-
|
|
262
|
+
electron2__default.default.app.setPath("appData", portablePath);
|
|
81
263
|
}
|
|
82
264
|
function loadPage(win, htmlFilePath = "index.html") {
|
|
83
265
|
if (isDev) {
|
|
@@ -98,21 +280,32 @@ function beautifyDevTools(win, options) {
|
|
|
98
280
|
});
|
|
99
281
|
}
|
|
100
282
|
function getPathFromMain(...paths) {
|
|
101
|
-
return isDev ? path__default.default.join(
|
|
283
|
+
return isDev ? path__default.default.join(electron2__default.default.app.getAppPath(), __EIU_ELECTRON_DIST_PATH__, "main", ...paths) : getPathFromAppNameAsar("main", ...paths);
|
|
102
284
|
}
|
|
103
285
|
function getPathFromPreload(...paths) {
|
|
104
|
-
return isDev ? path__default.default.join(
|
|
286
|
+
return isDev ? path__default.default.join(electron2__default.default.app.getAppPath(), __EIU_ELECTRON_DIST_PATH__, "preload", ...paths) : getPathFromAppNameAsar("preload", ...paths);
|
|
105
287
|
}
|
|
106
288
|
function getPathFromPublic(...paths) {
|
|
107
|
-
return isDev ? path__default.default.join(
|
|
289
|
+
return isDev ? path__default.default.join(electron2__default.default.app.getAppPath(), "public", ...paths) : getPathFromAppNameAsar("renderer", ...paths);
|
|
108
290
|
}
|
|
109
291
|
function getPathFromEntryAsar(...paths) {
|
|
110
|
-
return path__default.default.join(
|
|
292
|
+
return path__default.default.join(electron2__default.default.app.getAppPath(), __EIU_ENTRY_DIST_PATH__, ...paths);
|
|
111
293
|
}
|
|
112
294
|
function handleUnexpectedErrors(callback) {
|
|
113
295
|
process.on("uncaughtException", callback);
|
|
114
296
|
process.on("unhandledRejection", callback);
|
|
115
297
|
}
|
|
298
|
+
function reloadOnPreloadScriptChanged() {
|
|
299
|
+
if (isDev) {
|
|
300
|
+
process.on("message", (msg) => {
|
|
301
|
+
if (msg === "electron-vite&type=hot-reload") {
|
|
302
|
+
for (const window of electron2__default.default.BrowserWindow.getAllWindows()) {
|
|
303
|
+
window.reload();
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
116
309
|
async function defaultZipFile(buffer) {
|
|
117
310
|
return new Promise((resolve, reject) => {
|
|
118
311
|
zlib__default.default.brotliCompress(buffer, (err, buffer2) => err ? reject(err) : resolve(buffer2));
|
|
@@ -124,98 +317,12 @@ async function defaultUnzipFile(buffer) {
|
|
|
124
317
|
});
|
|
125
318
|
}
|
|
126
319
|
|
|
127
|
-
// src/utils/version.ts
|
|
128
|
-
function parseVersion(version) {
|
|
129
|
-
const match = /^(\d+)\.(\d+)\.(\d+)(?:-([a-z0-9.-]+))?/i.exec(version);
|
|
130
|
-
if (!match) {
|
|
131
|
-
throw new TypeError(`invalid version: ${version}`);
|
|
132
|
-
}
|
|
133
|
-
const [major, minor, patch] = match.slice(1, 4).map(Number);
|
|
134
|
-
const ret = {
|
|
135
|
-
major,
|
|
136
|
-
minor,
|
|
137
|
-
patch,
|
|
138
|
-
stage: "",
|
|
139
|
-
stageVersion: -1
|
|
140
|
-
};
|
|
141
|
-
if (match[4]) {
|
|
142
|
-
let [stage, _v] = match[4].split(".");
|
|
143
|
-
ret.stage = stage;
|
|
144
|
-
ret.stageVersion = Number(_v) || -1;
|
|
145
|
-
}
|
|
146
|
-
if (Number.isNaN(major) || Number.isNaN(minor) || Number.isNaN(patch) || Number.isNaN(ret.stageVersion)) {
|
|
147
|
-
throw new TypeError(`Invalid version: ${version}`);
|
|
148
|
-
}
|
|
149
|
-
return ret;
|
|
150
|
-
}
|
|
151
|
-
function compareStrings(str1, str2) {
|
|
152
|
-
if (str1 === "") {
|
|
153
|
-
return str2 !== "";
|
|
154
|
-
} else if (str2 === "") {
|
|
155
|
-
return true;
|
|
156
|
-
}
|
|
157
|
-
return str1 < str2;
|
|
158
|
-
}
|
|
159
|
-
function defaultIsLowerVersion(oldVer, newVer) {
|
|
160
|
-
const oldV = parseVersion(oldVer);
|
|
161
|
-
const newV = parseVersion(newVer);
|
|
162
|
-
for (let key of Object.keys(oldV)) {
|
|
163
|
-
if (key === "stage" && compareStrings(oldV[key], newV[key])) {
|
|
164
|
-
return true;
|
|
165
|
-
} else if (oldV[key] !== newV[key]) {
|
|
166
|
-
return oldV[key] < newV[key];
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return false;
|
|
170
|
-
}
|
|
171
|
-
var is = (j) => !!(j && j.minimumVersion && j.signature && j.version);
|
|
172
|
-
function isUpdateJSON(json) {
|
|
173
|
-
return is(json) && is(json?.beta);
|
|
174
|
-
}
|
|
175
|
-
function defaultVersionJsonGenerator(existingJson, signature, version, minimumVersion) {
|
|
176
|
-
existingJson.beta = {
|
|
177
|
-
version,
|
|
178
|
-
minimumVersion,
|
|
179
|
-
signature
|
|
180
|
-
};
|
|
181
|
-
if (!parseVersion(version).stage) {
|
|
182
|
-
existingJson.version = version;
|
|
183
|
-
existingJson.minimumVersion = minimumVersion;
|
|
184
|
-
existingJson.signature = signature;
|
|
185
|
-
}
|
|
186
|
-
return existingJson;
|
|
187
|
-
}
|
|
188
|
-
function hashBuffer(data, length) {
|
|
189
|
-
const hash = crypto__default.default.createHash("SHA256").update(data).digest("binary");
|
|
190
|
-
return Buffer.from(hash).subarray(0, length);
|
|
191
|
-
}
|
|
192
|
-
function aesEncrypt(plainText, key, iv) {
|
|
193
|
-
const cipher = crypto__default.default.createCipheriv("aes-256-cbc", key, iv);
|
|
194
|
-
return cipher.update(plainText, "utf8", "base64url") + cipher.final("base64url");
|
|
195
|
-
}
|
|
196
|
-
function defaultSignature(buffer, privateKey, cert, version) {
|
|
197
|
-
const sig = crypto__default.default.createSign("RSA-SHA256").update(buffer).sign(crypto__default.default.createPrivateKey(privateKey), "base64");
|
|
198
|
-
return aesEncrypt(`${sig}%${version}`, hashBuffer(cert, 32), hashBuffer(buffer, 16));
|
|
199
|
-
}
|
|
200
|
-
function aesDecrypt(encryptedText, key, iv) {
|
|
201
|
-
const decipher = crypto__default.default.createDecipheriv("aes-256-cbc", key, iv);
|
|
202
|
-
return decipher.update(encryptedText, "base64url", "utf8") + decipher.final("utf8");
|
|
203
|
-
}
|
|
204
|
-
function defaultVerifySignature(buffer, version, signature, cert) {
|
|
205
|
-
try {
|
|
206
|
-
const [sig, ver] = aesDecrypt(signature, hashBuffer(cert, 32), hashBuffer(buffer, 16)).split("%");
|
|
207
|
-
if (ver !== version) {
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
210
|
-
return crypto__default.default.createVerify("RSA-SHA256").update(buffer).verify(cert, sig, "base64");
|
|
211
|
-
} catch {
|
|
212
|
-
return false;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
320
|
exports.aesDecrypt = aesDecrypt;
|
|
217
321
|
exports.aesEncrypt = aesEncrypt;
|
|
218
322
|
exports.beautifyDevTools = beautifyDevTools;
|
|
323
|
+
exports.defaultDownloadAsar = defaultDownloadAsar;
|
|
324
|
+
exports.defaultDownloadJSON = defaultDownloadJSON;
|
|
325
|
+
exports.defaultDownloadUpdateJSON = defaultDownloadUpdateJSON;
|
|
219
326
|
exports.defaultIsLowerVersion = defaultIsLowerVersion;
|
|
220
327
|
exports.defaultSignature = defaultSignature;
|
|
221
328
|
exports.defaultUnzipFile = defaultUnzipFile;
|
|
@@ -223,8 +330,10 @@ exports.defaultVerifySignature = defaultVerifySignature;
|
|
|
223
330
|
exports.defaultVersionJsonGenerator = defaultVersionJsonGenerator;
|
|
224
331
|
exports.defaultZipFile = defaultZipFile;
|
|
225
332
|
exports.disableHWAccForWin7 = disableHWAccForWin7;
|
|
333
|
+
exports.downloadUtil = downloadUtil;
|
|
226
334
|
exports.getAppVersion = getAppVersion;
|
|
227
335
|
exports.getEntryVersion = getEntryVersion;
|
|
336
|
+
exports.getHeader = getHeader;
|
|
228
337
|
exports.getPathFromAppNameAsar = getPathFromAppNameAsar;
|
|
229
338
|
exports.getPathFromEntryAsar = getPathFromEntryAsar;
|
|
230
339
|
exports.getPathFromMain = getPathFromMain;
|
|
@@ -240,6 +349,7 @@ exports.isUpdateJSON = isUpdateJSON;
|
|
|
240
349
|
exports.isWin = isWin;
|
|
241
350
|
exports.loadPage = loadPage;
|
|
242
351
|
exports.parseVersion = parseVersion;
|
|
352
|
+
exports.reloadOnPreloadScriptChanged = reloadOnPreloadScriptChanged;
|
|
243
353
|
exports.requireNative = requireNative;
|
|
244
354
|
exports.restartApp = restartApp;
|
|
245
355
|
exports.setAppUserModelId = setAppUserModelId;
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export { b as aesDecrypt, a as aesEncrypt, j as defaultDownloadAsar, f as defaultDownloadJSON, i as defaultDownloadUpdateJSON, d as defaultSignature, l as defaultUnzipFile, c as defaultVerifySignature, k as defaultZipFile, e as downloadUtil, g as getHeader, h as hashBuffer } from './zip-BQS8qbGA.cjs';
|
|
1
2
|
import { BrowserWindow } from 'electron';
|
|
2
|
-
export {
|
|
3
|
-
|
|
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-C5M2xRjF.cjs';
|
|
4
|
+
import '@subframe7536/type-utils';
|
|
5
|
+
import 'node:url';
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Compile time dev check
|
|
@@ -115,5 +117,6 @@ declare function getPathFromEntryAsar(...paths: string[]): string;
|
|
|
115
117
|
* @param callback callback function
|
|
116
118
|
*/
|
|
117
119
|
declare function handleUnexpectedErrors(callback: (err: unknown) => void): void;
|
|
120
|
+
declare function reloadOnPreloadScriptChanged(): void;
|
|
118
121
|
|
|
119
|
-
export { beautifyDevTools, disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, importNative, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
|
122
|
+
export { beautifyDevTools, disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, importNative, isDev, isLinux, isMac, isWin, loadPage, reloadOnPreloadScriptChanged, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export { b as aesDecrypt, a as aesEncrypt, j as defaultDownloadAsar, f as defaultDownloadJSON, i as defaultDownloadUpdateJSON, d as defaultSignature, l as defaultUnzipFile, c as defaultVerifySignature, k as defaultZipFile, e as downloadUtil, g as getHeader, h as hashBuffer } from './zip-DbfskMQi.js';
|
|
1
2
|
import { BrowserWindow } from 'electron';
|
|
2
|
-
export {
|
|
3
|
-
|
|
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-C5M2xRjF.js';
|
|
4
|
+
import '@subframe7536/type-utils';
|
|
5
|
+
import 'node:url';
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Compile time dev check
|
|
@@ -115,5 +117,6 @@ declare function getPathFromEntryAsar(...paths: string[]): string;
|
|
|
115
117
|
* @param callback callback function
|
|
116
118
|
*/
|
|
117
119
|
declare function handleUnexpectedErrors(callback: (err: unknown) => void): void;
|
|
120
|
+
declare function reloadOnPreloadScriptChanged(): void;
|
|
118
121
|
|
|
119
|
-
export { beautifyDevTools, disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, importNative, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
|
122
|
+
export { beautifyDevTools, disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, importNative, isDev, isLinux, isMac, isWin, loadPage, reloadOnPreloadScriptChanged, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance };
|
package/dist/utils.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { beautifyDevTools, disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, importNative, isDev, isLinux, isMac, isWin, loadPage, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance } from './chunk-
|
|
2
|
-
export { aesDecrypt, aesEncrypt, defaultSignature, defaultUnzipFile, defaultVerifySignature, defaultZipFile, hashBuffer } from './chunk-
|
|
1
|
+
export { beautifyDevTools, disableHWAccForWin7, getAppVersion, getEntryVersion, getPathFromAppNameAsar, getPathFromEntryAsar, getPathFromMain, getPathFromPreload, getPathFromPublic, handleUnexpectedErrors, importNative, isDev, isLinux, isMac, isWin, loadPage, reloadOnPreloadScriptChanged, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance } from './chunk-YZGE4RFY.js';
|
|
2
|
+
export { aesDecrypt, aesEncrypt, defaultDownloadAsar, defaultDownloadJSON, defaultDownloadUpdateJSON, defaultSignature, defaultUnzipFile, defaultVerifySignature, defaultZipFile, downloadUtil, getHeader, hashBuffer } from './chunk-D7NXTCQW.js';
|
|
3
3
|
export { defaultIsLowerVersion, defaultVersionJsonGenerator, isUpdateJSON, parseVersion } from './chunk-AAAM44NW.js';
|
package/dist/vite.d.ts
CHANGED
|
@@ -4,18 +4,48 @@ import { Promisable } from '@subframe7536/type-utils';
|
|
|
4
4
|
export { isCI } from 'ci-info';
|
|
5
5
|
export { getPackageInfo, getPackageInfoSync, loadPackageJSON, resolveModule } from 'local-pkg';
|
|
6
6
|
|
|
7
|
+
interface BytecodeOptions {
|
|
8
|
+
enable: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Enable in preload script. Remember to set `sandbox: false` when creating window
|
|
11
|
+
*/
|
|
12
|
+
preload?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Custom electron binary path
|
|
15
|
+
*/
|
|
16
|
+
electronPath?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Before transformed code compile function. If return `Falsy` value, it will be ignored
|
|
19
|
+
* @param code transformed code
|
|
20
|
+
* @param id file path
|
|
21
|
+
*/
|
|
22
|
+
beforeCompile?: (code: string, id: string) => Promisable<string | null | undefined | void>;
|
|
23
|
+
}
|
|
24
|
+
|
|
7
25
|
/**
|
|
8
26
|
* Update info json
|
|
9
27
|
*/
|
|
10
28
|
type UpdateInfo = {
|
|
29
|
+
/**
|
|
30
|
+
* Update Asar signature
|
|
31
|
+
*/
|
|
11
32
|
signature: string;
|
|
33
|
+
/**
|
|
34
|
+
* Minimum version
|
|
35
|
+
*/
|
|
12
36
|
minimumVersion: string;
|
|
37
|
+
/**
|
|
38
|
+
* Target version
|
|
39
|
+
*/
|
|
13
40
|
version: string;
|
|
14
41
|
};
|
|
15
42
|
/**
|
|
16
43
|
* {@link UpdateInfo} with beta
|
|
17
44
|
*/
|
|
18
45
|
type UpdateJSON = UpdateInfo & {
|
|
46
|
+
/**
|
|
47
|
+
* Beta update info
|
|
48
|
+
*/
|
|
19
49
|
beta: UpdateInfo;
|
|
20
50
|
};
|
|
21
51
|
|
|
@@ -140,20 +170,19 @@ interface GeneratorOverrideFunctions {
|
|
|
140
170
|
* Custom signature generate function
|
|
141
171
|
* @param buffer file buffer
|
|
142
172
|
* @param privateKey private key
|
|
143
|
-
* @param cert certificate string, **EOL must be
|
|
173
|
+
* @param cert certificate string, **EOL must be `\n`**
|
|
144
174
|
* @param version current version
|
|
145
175
|
*/
|
|
146
176
|
generateSignature?: (buffer: Buffer, privateKey: string, cert: string, version: string) => Promisable<string>;
|
|
147
177
|
/**
|
|
148
|
-
* Custom generate
|
|
178
|
+
* Custom generate update json function
|
|
149
179
|
* @param existingJson The existing JSON object.
|
|
150
180
|
* @param buffer file buffer
|
|
151
181
|
* @param signature generated signature
|
|
152
182
|
* @param version current version
|
|
153
183
|
* @param minVersion The minimum version
|
|
154
|
-
* @returns The updated version json
|
|
155
184
|
*/
|
|
156
|
-
|
|
185
|
+
generateUpdateJson?: (existingJson: UpdateJSON, signature: string, version: string, minVersion: string) => Promisable<UpdateJSON>;
|
|
157
186
|
/**
|
|
158
187
|
* Custom generate zip file buffer
|
|
159
188
|
* @param buffer source buffer
|
|
@@ -248,24 +277,6 @@ interface ElectronUpdaterOptions {
|
|
|
248
277
|
overrideGenerator?: GeneratorOverrideFunctions;
|
|
249
278
|
}
|
|
250
279
|
|
|
251
|
-
interface BytecodeOptions {
|
|
252
|
-
enable: boolean;
|
|
253
|
-
/**
|
|
254
|
-
* Enable in preload script. Remember to set `sandbox: false` when creating window
|
|
255
|
-
*/
|
|
256
|
-
preload?: boolean;
|
|
257
|
-
/**
|
|
258
|
-
* Custom electron binary path
|
|
259
|
-
*/
|
|
260
|
-
electronPath?: string;
|
|
261
|
-
/**
|
|
262
|
-
* Before transformed code compile function. If return `Falsy` value, it will be ignored
|
|
263
|
-
* @param code transformed code
|
|
264
|
-
* @param id file path
|
|
265
|
-
*/
|
|
266
|
-
beforeCompile?: (code: string, id: string) => Promisable<string | null | undefined | void>;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
280
|
/**
|
|
270
281
|
* Obfuscate string
|
|
271
282
|
* @param code source code
|
|
@@ -284,8 +295,9 @@ type ReplaceKey<T, Key extends keyof T, NewKey extends string> = Omit<T, Key> &
|
|
|
284
295
|
[P in NewKey]: T[Key];
|
|
285
296
|
};
|
|
286
297
|
type MakeRequiredAndReplaceKey<T, K extends keyof T, NewKey extends string> = MakeRequired<ReplaceKey<T, K, NewKey>, NewKey>;
|
|
298
|
+
type StartupFn = Exclude<Exclude<ElectronSimpleOptions['preload'], undefined>['onstart'], undefined>;
|
|
287
299
|
/**
|
|
288
|
-
*
|
|
300
|
+
* Startup function for debug (see {@link https://github.com/electron-vite/electron-vite-vue/blob/main/vite.config.ts electron-vite-vue template})
|
|
289
301
|
* @example
|
|
290
302
|
* import { debugStartup, buildElectronPluginOptions } from 'electron-incremental-update/vite'
|
|
291
303
|
* const options = buildElectronPluginOptions({
|
|
@@ -296,10 +308,20 @@ type MakeRequiredAndReplaceKey<T, K extends keyof T, NewKey extends string> = Ma
|
|
|
296
308
|
* },
|
|
297
309
|
* })
|
|
298
310
|
*/
|
|
299
|
-
declare
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
311
|
+
declare const debugStartup: StartupFn;
|
|
312
|
+
/**
|
|
313
|
+
* Startup function util to fix Windows terminal charset
|
|
314
|
+
* @example
|
|
315
|
+
* import { debugStartup, fixWinCharEncoding, buildElectronPluginOptions } from 'electron-incremental-update/vite'
|
|
316
|
+
* const options = buildElectronPluginOptions({
|
|
317
|
+
* // ...
|
|
318
|
+
* main: {
|
|
319
|
+
* // ...
|
|
320
|
+
* startup: fixWinCharEncoding(debugStartup)
|
|
321
|
+
* },
|
|
322
|
+
* })
|
|
323
|
+
*/
|
|
324
|
+
declare function fixWinCharEncoding(fn: StartupFn): StartupFn;
|
|
303
325
|
type ExcludeOutputDirOptions = {
|
|
304
326
|
vite?: {
|
|
305
327
|
build?: {
|
|
@@ -432,4 +454,4 @@ interface ElectronWithUpdaterOptions {
|
|
|
432
454
|
*/
|
|
433
455
|
declare function electronWithUpdater(options: ElectronWithUpdaterOptions): Promise<PluginOption[] | undefined>;
|
|
434
456
|
|
|
435
|
-
export { type ElectronWithUpdaterOptions, convertLiteral, debugStartup, electronWithUpdater as default, electronWithUpdater };
|
|
457
|
+
export { type ElectronWithUpdaterOptions, convertLiteral, debugStartup, electronWithUpdater as default, electronWithUpdater, fixWinCharEncoding };
|