electron-incremental-update 2.2.3 → 2.2.5
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 +32 -14
- package/dist/bytecode-R2B4KTMV.js +1 -1
- package/dist/{chunk-D7NXTCQW.js → chunk-KLUIYBS4.js} +26 -14
- package/dist/chunk-LR7LR5WG.js +1 -1
- package/dist/{chunk-YZGE4RFY.js → chunk-QKKPETVJ.js} +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/provider.cjs +71 -57
- package/dist/provider.d.cts +5 -5
- package/dist/provider.d.ts +5 -5
- package/dist/provider.js +2 -2
- package/dist/{types-C5M2xRjF.d.cts → types-1T_tRG8a.d.cts} +1 -1
- package/dist/{types-C5M2xRjF.d.ts → types-1T_tRG8a.d.ts} +1 -1
- package/dist/utils.cjs +31 -19
- package/dist/utils.d.cts +3 -2
- package/dist/utils.d.ts +3 -2
- package/dist/utils.js +2 -2
- package/dist/vite.js +9 -9
- package/dist/{zip-BQS8qbGA.d.cts → zip-CDmogV-s.d.ts} +2 -2
- package/dist/{zip-DbfskMQi.d.ts → zip-DemXr4mk.d.cts} +2 -2
- package/package.json +18 -13
package/README.md
CHANGED
|
@@ -197,19 +197,6 @@ export default startupWithUpdater((updater) => {
|
|
|
197
197
|
updater.onDownloading = ({ percent }) => {
|
|
198
198
|
console.log(percent)
|
|
199
199
|
}
|
|
200
|
-
updater.logger = console
|
|
201
|
-
updater.receiveBeta = true
|
|
202
|
-
// setup provider later
|
|
203
|
-
updater.provider = new GitHubProvider({
|
|
204
|
-
user: 'yourname',
|
|
205
|
-
repo: 'electron',
|
|
206
|
-
// setup url handler
|
|
207
|
-
urlHandler: (url) => {
|
|
208
|
-
url.hostname = 'mirror.ghproxy.com'
|
|
209
|
-
url.pathname = `https://github.com${url.pathname}`
|
|
210
|
-
return url
|
|
211
|
-
}
|
|
212
|
-
})
|
|
213
200
|
|
|
214
201
|
updater.on('update-available', async ({ version }) => {
|
|
215
202
|
const { response } = await dialog.showMessageBox({
|
|
@@ -222,25 +209,56 @@ export default startupWithUpdater((updater) => {
|
|
|
222
209
|
}
|
|
223
210
|
await updater.downloadUpdate()
|
|
224
211
|
})
|
|
212
|
+
|
|
225
213
|
updater.on('update-not-available', (code, reason, info) => console.log(code, reason, info))
|
|
214
|
+
|
|
226
215
|
updater.on('download-progress', (data) => {
|
|
227
216
|
console.log(data)
|
|
228
217
|
main.send(BrowserWindow.getAllWindows()[0], 'msg', data)
|
|
229
218
|
})
|
|
219
|
+
|
|
230
220
|
updater.on('update-downloaded', () => {
|
|
231
221
|
updater.quitAndInstall()
|
|
232
222
|
})
|
|
223
|
+
|
|
233
224
|
updater.checkForUpdates()
|
|
234
225
|
})
|
|
235
226
|
```
|
|
236
227
|
|
|
228
|
+
#### Dynamicly setup `UpdateProvider`
|
|
229
|
+
|
|
230
|
+
```ts
|
|
231
|
+
updater.provider = new GitHubProvider({
|
|
232
|
+
user: 'yourname',
|
|
233
|
+
repo: 'electron',
|
|
234
|
+
// setup url handler
|
|
235
|
+
urlHandler: (url) => {
|
|
236
|
+
url.hostname = 'mirror.ghproxy.com'
|
|
237
|
+
url.pathname = `https://github.com${url.pathname}`
|
|
238
|
+
return url
|
|
239
|
+
}
|
|
240
|
+
})
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
#### Custom logger
|
|
244
|
+
|
|
245
|
+
```ts
|
|
246
|
+
updater.logger = console
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
#### Setup Beta Channel
|
|
250
|
+
|
|
251
|
+
```ts
|
|
252
|
+
updater.receiveBeta = true
|
|
253
|
+
```
|
|
254
|
+
|
|
237
255
|
### Use Native Modules
|
|
238
256
|
|
|
239
257
|
To reduce production size, it is recommended that all the **native modules** should be set as `dependency` in `package.json` and other packages should be set as `devDependencies`. Also, `electron-rebuild` only check dependencies inside `dependency` field.
|
|
240
258
|
|
|
241
259
|
If you are using `electron-builder` to build distributions, all the native modules with its **large relavent `node_modiles`** will be packaged into `app.asar` by default.
|
|
242
260
|
|
|
243
|
-
Luckily, `
|
|
261
|
+
Luckily, `vite` can bundle all the dependencies. Just follow the steps:
|
|
244
262
|
|
|
245
263
|
1. setup `nativeModuleEntryMap` option
|
|
246
264
|
2. Manually copy the native binaries in `postBuild` callback
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readableSize } from './chunk-TPTWE33H.js';
|
|
2
|
-
import {
|
|
2
|
+
import { convertArrowFunctionAndTemplate, bytecodeModuleLoader, bytecodeModuleLoaderCode, convertLiteral, compileToBytecode, useStrict, toRelativePath } from './chunk-LR7LR5WG.js';
|
|
3
3
|
import { bytecodeLog, bytecodeId } from './chunk-5NKEXGI3.js';
|
|
4
4
|
import fs from 'node:fs';
|
|
5
5
|
import path from 'node:path';
|
|
@@ -38,15 +38,20 @@ function getHeader(headers, key) {
|
|
|
38
38
|
return value;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
async function downloadUtil(url, headers,
|
|
41
|
+
async function downloadUtil(url, headers, onResponse) {
|
|
42
42
|
await electron.app.whenReady();
|
|
43
43
|
return new Promise((resolve, reject) => {
|
|
44
|
-
const request = electron.net.request({
|
|
45
|
-
|
|
44
|
+
const request = electron.net.request({
|
|
45
|
+
cache: "no-cache",
|
|
46
|
+
headers,
|
|
47
|
+
method: "GET",
|
|
48
|
+
redirect: "follow",
|
|
49
|
+
url
|
|
50
|
+
});
|
|
46
51
|
request.on("response", (resp) => {
|
|
47
|
-
resp.on("aborted", () => reject(new Error("
|
|
48
|
-
resp.on("error",
|
|
49
|
-
onResponse(resp, resolve, reject);
|
|
52
|
+
resp.on("aborted", () => reject(new Error("Aborted")));
|
|
53
|
+
resp.on("error", reject);
|
|
54
|
+
onResponse(request, resp, resolve, reject);
|
|
50
55
|
});
|
|
51
56
|
request.on("error", reject);
|
|
52
57
|
request.end();
|
|
@@ -66,11 +71,14 @@ async function defaultDownloadJSON(url, headers, signal, resolveData = defaultRe
|
|
|
66
71
|
return await downloadUtil(
|
|
67
72
|
url,
|
|
68
73
|
headers,
|
|
69
|
-
|
|
70
|
-
(resp, resolve, reject) => {
|
|
74
|
+
(request, resp, resolve, reject) => {
|
|
71
75
|
let data = "";
|
|
72
76
|
resp.on("data", (chunk) => data += chunk);
|
|
73
77
|
resp.on("end", () => resolveData(data, resolve, reject));
|
|
78
|
+
signal.addEventListener("abort", () => {
|
|
79
|
+
request.abort();
|
|
80
|
+
data = null;
|
|
81
|
+
}, { once: true });
|
|
74
82
|
}
|
|
75
83
|
);
|
|
76
84
|
}
|
|
@@ -99,25 +107,29 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
|
|
|
99
107
|
return await downloadUtil(
|
|
100
108
|
url,
|
|
101
109
|
headers,
|
|
102
|
-
|
|
103
|
-
(resp, resolve) => {
|
|
110
|
+
(request, resp, resolve) => {
|
|
104
111
|
const total = +getHeader(resp.headers, "content-length") || -1;
|
|
105
|
-
|
|
112
|
+
let data = [];
|
|
106
113
|
resp.on("data", (chunk) => {
|
|
107
114
|
const delta = chunk.length;
|
|
108
115
|
transferred += delta;
|
|
109
116
|
const current = Date.now();
|
|
110
117
|
onDownloading?.({
|
|
118
|
+
bps: delta / (current - time),
|
|
119
|
+
delta,
|
|
111
120
|
percent: total > 0 ? +(transferred / total).toFixed(2) * 100 : -1,
|
|
112
121
|
total,
|
|
113
|
-
transferred
|
|
114
|
-
delta,
|
|
115
|
-
bps: delta / (current - time)
|
|
122
|
+
transferred
|
|
116
123
|
});
|
|
117
124
|
time = current;
|
|
118
125
|
data.push(chunk);
|
|
119
126
|
});
|
|
120
127
|
resp.on("end", () => resolve(Buffer.concat(data)));
|
|
128
|
+
signal.addEventListener("abort", () => {
|
|
129
|
+
request.abort();
|
|
130
|
+
data.length = 0;
|
|
131
|
+
data = null;
|
|
132
|
+
}, { once: true });
|
|
121
133
|
}
|
|
122
134
|
);
|
|
123
135
|
}
|
package/dist/chunk-LR7LR5WG.js
CHANGED
|
@@ -71,13 +71,13 @@ function loadPage(win, htmlFilePath = "index.html") {
|
|
|
71
71
|
}
|
|
72
72
|
function beautifyDevTools(win, options) {
|
|
73
73
|
const { mono, sans, scrollbar = true } = options;
|
|
74
|
-
win.webContents.on("devtools-opened", () => {
|
|
75
|
-
let css = `:root{--sans
|
|
74
|
+
win.webContents.on("devtools-opened", async () => {
|
|
75
|
+
let css = `:root{--sans:${sans};--mono:${mono}}:root,body{--source-code-font-family:var(--mono)!important;--source-code-font-size:12px!important;--monospace-font-family:var(--mono)!important;--monospace-font-size:12px!important;--default-font-family:var(--sans), sans-serif!important;--default-font-size:12px!important}button,input,select,.undisplayable-text,.expandable-inline-button{font-family:var(--sans)!important}`;
|
|
76
76
|
if (scrollbar) {
|
|
77
|
-
css += ":root{--scrollbar-width:
|
|
77
|
+
css += ":root{--scrollbar-width:max(.85vw,10px)}@media (prefers-color-scheme:light){:root{--scrollbar-color-rgb:0,0,0}}@media (prefers-color-scheme:dark){:root{--scrollbar-color-rgb:255,255,255}}*::-webkit-scrollbar{width:var(--scrollbar-width)!important;height:var(--scrollbar-width)!important}*::-webkit-scrollbar-track{background-color:transparent!important;border-radius:var(--scrollbar-width)!important;box-shadow:none!important}*::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 var(--scrollbar-width)!important;border-radius:var(--scrollbar-width)!important;border:calc(var(--scrollbar-width) * 2/9) solid transparent!important;background-clip:content-box;background-color:transparent!important;color:rgba(var(--scrollbar-color-rgb),30%)!important}*::-webkit-scrollbar-thumb:hover{color:rgba(var(--scrollbar-color-rgb),45%)!important}*::-webkit-scrollbar-thumb:active{color:rgba(var(--scrollbar-color-rgb),60%)!important}@supports not selector(::-webkit-scrollbar){html{scrollbar-color:rgb(var(--scrollbar-color-rgb));scrollbar-width:thin}}";
|
|
78
78
|
}
|
|
79
|
-
const js =
|
|
80
|
-
win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
79
|
+
const js = `${'function run(n){let d=document.createElement("style");d.innerHTML=n,document.body.append(d),["platform-windows","platform-mac","platform-linux"].forEach(e=>document.querySelectorAll(`.${e}`).forEach(o=>o.classList.remove(e))),l();const r=new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(let t=0;t<o.addedNodes.length;t++)o.addedNodes[t].classList.contains("editor-tooltip-host")&&l()});r.observe(document.body,{childList:!0});function l(){document.querySelectorAll(".editor-tooltip-host").forEach(e=>{if(e?.shadowRoot?.querySelectorAll(\'[data-key="overridden-dev-tools-font"]\').length===0){const o=document.createElement("style");o.setAttribute("data-key","overridden-dev-tools-font"),o.innerHTML=`${n}.cm-tooltip-autocomplete ul[role=listbox]{font-family:var(--mono)!important;}`,e.shadowRoot.append(o)}})}window.onbeforeunload=()=>r.disconnect()}'};run(\`${css}\`)`;
|
|
80
|
+
await win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
function getPathFromMain(...paths) {
|
package/dist/index.cjs
CHANGED
|
@@ -177,7 +177,7 @@ var Updater = class extends events.EventEmitter {
|
|
|
177
177
|
this.err("Download failed", "ERR_PARAM", "No update asar buffer and provider");
|
|
178
178
|
return false;
|
|
179
179
|
}
|
|
180
|
-
const buffer = await this.fetch("buffer", data ? Buffer.from(data) :
|
|
180
|
+
const buffer = await this.fetch("buffer", data ? Buffer.from(data) : undefined);
|
|
181
181
|
if (!buffer) {
|
|
182
182
|
this.err("Download failed", "ERR_PARAM", "No update asar file buffer");
|
|
183
183
|
return false;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@subframe7536/type-utils';
|
|
2
|
-
import {
|
|
2
|
+
import { U as UpdateInfo, I as IProvider, D as DownloadingInfo, a as UpdateJSON, b as UpdateJSONWithURL } from './types-1T_tRG8a.cjs';
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import 'node:url';
|
|
5
5
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@subframe7536/type-utils';
|
|
2
|
-
import {
|
|
2
|
+
import { U as UpdateInfo, I as IProvider, D as DownloadingInfo, a as UpdateJSON, b as UpdateJSONWithURL } from './types-1T_tRG8a.js';
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import 'node:url';
|
|
5
5
|
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isDev,
|
|
1
|
+
import { isDev, getEntryVersion, getAppVersion, getPathFromAppNameAsar, restartApp } from './chunk-QKKPETVJ.js';
|
|
2
2
|
import { isUpdateJSON, __require } from './chunk-AAAM44NW.js';
|
|
3
3
|
import fs2 from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
@@ -141,7 +141,7 @@ var Updater = class extends EventEmitter {
|
|
|
141
141
|
this.err("Download failed", "ERR_PARAM", "No update asar buffer and provider");
|
|
142
142
|
return false;
|
|
143
143
|
}
|
|
144
|
-
const buffer = await this.fetch("buffer", data ? Buffer.from(data) :
|
|
144
|
+
const buffer = await this.fetch("buffer", data ? Buffer.from(data) : undefined);
|
|
145
145
|
if (!buffer) {
|
|
146
146
|
this.err("Download failed", "ERR_PARAM", "No update asar file buffer");
|
|
147
147
|
return false;
|
package/dist/provider.cjs
CHANGED
|
@@ -1,36 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var electron = require('electron');
|
|
3
4
|
var crypto = require('crypto');
|
|
4
5
|
var zlib = require('zlib');
|
|
5
|
-
var electron = require('electron');
|
|
6
6
|
var url = require('url');
|
|
7
7
|
|
|
8
8
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
|
|
10
|
+
var electron__default = /*#__PURE__*/_interopDefault(electron);
|
|
10
11
|
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
11
12
|
var zlib__default = /*#__PURE__*/_interopDefault(zlib);
|
|
12
|
-
var electron__default = /*#__PURE__*/_interopDefault(electron);
|
|
13
13
|
|
|
14
|
-
// src/utils/
|
|
15
|
-
function hashBuffer(data, length) {
|
|
16
|
-
const hash = crypto__default.default.createHash("SHA256").update(data).digest("binary");
|
|
17
|
-
return Buffer.from(hash).subarray(0, length);
|
|
18
|
-
}
|
|
19
|
-
function aesDecrypt(encryptedText, key, iv) {
|
|
20
|
-
const decipher = crypto__default.default.createDecipheriv("aes-256-cbc", key, iv);
|
|
21
|
-
return decipher.update(encryptedText, "base64url", "utf8") + decipher.final("utf8");
|
|
22
|
-
}
|
|
23
|
-
function defaultVerifySignature(buffer, version, signature, cert) {
|
|
24
|
-
try {
|
|
25
|
-
const [sig, ver] = aesDecrypt(signature, hashBuffer(cert, 32), hashBuffer(buffer, 16)).split("%");
|
|
26
|
-
if (ver !== version) {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
return crypto__default.default.createVerify("RSA-SHA256").update(buffer).verify(cert, sig, "base64");
|
|
30
|
-
} catch {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
14
|
+
// src/utils/download.ts
|
|
34
15
|
|
|
35
16
|
// src/utils/version.ts
|
|
36
17
|
function parseVersion(version) {
|
|
@@ -80,28 +61,8 @@ var is = (j) => !!(j && j.minimumVersion && j.signature && j.version);
|
|
|
80
61
|
function isUpdateJSON(json) {
|
|
81
62
|
return is(json) && is(json?.beta);
|
|
82
63
|
}
|
|
83
|
-
async function defaultUnzipFile(buffer) {
|
|
84
|
-
return new Promise((resolve, reject) => {
|
|
85
|
-
zlib__default.default.brotliDecompress(buffer, (err, buffer2) => err ? reject(err) : resolve(buffer2));
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
64
|
|
|
89
|
-
// src/
|
|
90
|
-
var BaseProvider = class {
|
|
91
|
-
name = "BaseProvider";
|
|
92
|
-
/**
|
|
93
|
-
* @inheritdoc
|
|
94
|
-
*/
|
|
95
|
-
isLowerVersion = defaultIsLowerVersion;
|
|
96
|
-
/**
|
|
97
|
-
* @inheritdoc
|
|
98
|
-
*/
|
|
99
|
-
verifySignaure = defaultVerifySignature;
|
|
100
|
-
/**
|
|
101
|
-
* @inheritdoc
|
|
102
|
-
*/
|
|
103
|
-
unzipFile = defaultUnzipFile;
|
|
104
|
-
};
|
|
65
|
+
// src/utils/download.ts
|
|
105
66
|
function getHeader(headers, key) {
|
|
106
67
|
const value = headers[key];
|
|
107
68
|
if (Array.isArray(value)) {
|
|
@@ -110,15 +71,20 @@ function getHeader(headers, key) {
|
|
|
110
71
|
return value;
|
|
111
72
|
}
|
|
112
73
|
}
|
|
113
|
-
async function downloadUtil(url, headers,
|
|
74
|
+
async function downloadUtil(url, headers, onResponse) {
|
|
114
75
|
await electron__default.default.app.whenReady();
|
|
115
76
|
return new Promise((resolve, reject) => {
|
|
116
|
-
const request = electron__default.default.net.request({
|
|
117
|
-
|
|
77
|
+
const request = electron__default.default.net.request({
|
|
78
|
+
cache: "no-cache",
|
|
79
|
+
headers,
|
|
80
|
+
method: "GET",
|
|
81
|
+
redirect: "follow",
|
|
82
|
+
url
|
|
83
|
+
});
|
|
118
84
|
request.on("response", (resp) => {
|
|
119
|
-
resp.on("aborted", () => reject(new Error("
|
|
120
|
-
resp.on("error",
|
|
121
|
-
onResponse(resp, resolve, reject);
|
|
85
|
+
resp.on("aborted", () => reject(new Error("Aborted")));
|
|
86
|
+
resp.on("error", reject);
|
|
87
|
+
onResponse(request, resp, resolve, reject);
|
|
122
88
|
});
|
|
123
89
|
request.on("error", reject);
|
|
124
90
|
request.end();
|
|
@@ -138,11 +104,14 @@ async function defaultDownloadJSON(url, headers, signal, resolveData = defaultRe
|
|
|
138
104
|
return await downloadUtil(
|
|
139
105
|
url,
|
|
140
106
|
headers,
|
|
141
|
-
|
|
142
|
-
(resp, resolve, reject) => {
|
|
107
|
+
(request, resp, resolve, reject) => {
|
|
143
108
|
let data = "";
|
|
144
109
|
resp.on("data", (chunk) => data += chunk);
|
|
145
110
|
resp.on("end", () => resolveData(data, resolve, reject));
|
|
111
|
+
signal.addEventListener("abort", () => {
|
|
112
|
+
request.abort();
|
|
113
|
+
data = null;
|
|
114
|
+
}, { once: true });
|
|
146
115
|
}
|
|
147
116
|
);
|
|
148
117
|
}
|
|
@@ -171,28 +140,73 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
|
|
|
171
140
|
return await downloadUtil(
|
|
172
141
|
url,
|
|
173
142
|
headers,
|
|
174
|
-
|
|
175
|
-
(resp, resolve) => {
|
|
143
|
+
(request, resp, resolve) => {
|
|
176
144
|
const total = +getHeader(resp.headers, "content-length") || -1;
|
|
177
|
-
|
|
145
|
+
let data = [];
|
|
178
146
|
resp.on("data", (chunk) => {
|
|
179
147
|
const delta = chunk.length;
|
|
180
148
|
transferred += delta;
|
|
181
149
|
const current = Date.now();
|
|
182
150
|
onDownloading?.({
|
|
151
|
+
bps: delta / (current - time),
|
|
152
|
+
delta,
|
|
183
153
|
percent: total > 0 ? +(transferred / total).toFixed(2) * 100 : -1,
|
|
184
154
|
total,
|
|
185
|
-
transferred
|
|
186
|
-
delta,
|
|
187
|
-
bps: delta / (current - time)
|
|
155
|
+
transferred
|
|
188
156
|
});
|
|
189
157
|
time = current;
|
|
190
158
|
data.push(chunk);
|
|
191
159
|
});
|
|
192
160
|
resp.on("end", () => resolve(Buffer.concat(data)));
|
|
161
|
+
signal.addEventListener("abort", () => {
|
|
162
|
+
request.abort();
|
|
163
|
+
data.length = 0;
|
|
164
|
+
data = null;
|
|
165
|
+
}, { once: true });
|
|
193
166
|
}
|
|
194
167
|
);
|
|
195
168
|
}
|
|
169
|
+
function hashBuffer(data, length) {
|
|
170
|
+
const hash = crypto__default.default.createHash("SHA256").update(data).digest("binary");
|
|
171
|
+
return Buffer.from(hash).subarray(0, length);
|
|
172
|
+
}
|
|
173
|
+
function aesDecrypt(encryptedText, key, iv) {
|
|
174
|
+
const decipher = crypto__default.default.createDecipheriv("aes-256-cbc", key, iv);
|
|
175
|
+
return decipher.update(encryptedText, "base64url", "utf8") + decipher.final("utf8");
|
|
176
|
+
}
|
|
177
|
+
function defaultVerifySignature(buffer, version, signature, cert) {
|
|
178
|
+
try {
|
|
179
|
+
const [sig, ver] = aesDecrypt(signature, hashBuffer(cert, 32), hashBuffer(buffer, 16)).split("%");
|
|
180
|
+
if (ver !== version) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
return crypto__default.default.createVerify("RSA-SHA256").update(buffer).verify(cert, sig, "base64");
|
|
184
|
+
} catch {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
async function defaultUnzipFile(buffer) {
|
|
189
|
+
return new Promise((resolve, reject) => {
|
|
190
|
+
zlib__default.default.brotliDecompress(buffer, (err, buffer2) => err ? reject(err) : resolve(buffer2));
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// src/provider/base.ts
|
|
195
|
+
var BaseProvider = class {
|
|
196
|
+
name = "BaseProvider";
|
|
197
|
+
/**
|
|
198
|
+
* @inheritdoc
|
|
199
|
+
*/
|
|
200
|
+
isLowerVersion = defaultIsLowerVersion;
|
|
201
|
+
/**
|
|
202
|
+
* @inheritdoc
|
|
203
|
+
*/
|
|
204
|
+
verifySignaure = defaultVerifySignature;
|
|
205
|
+
/**
|
|
206
|
+
* @inheritdoc
|
|
207
|
+
*/
|
|
208
|
+
unzipFile = defaultUnzipFile;
|
|
209
|
+
};
|
|
196
210
|
var GitHubProvider = class extends BaseProvider {
|
|
197
211
|
name = "GithubProvider";
|
|
198
212
|
options;
|
package/dist/provider.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
1
|
+
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-DemXr4mk.cjs';
|
|
2
|
+
export { j as defaultDownloadAsar, f as defaultDownloadJSON, i as defaultDownloadUpdateJSON, e as downloadUtil, g as getHeader } from './zip-DemXr4mk.cjs';
|
|
3
|
+
import { e as UpdateInfoWithURL, I as IProvider, d as defaultIsLowerVersion, D as DownloadingInfo, f as URLHandler } from './types-1T_tRG8a.cjs';
|
|
4
|
+
export { b as UpdateJSONWithURL } from './types-1T_tRG8a.cjs';
|
|
5
5
|
import '@subframe7536/type-utils';
|
|
6
|
-
import 'node:url';
|
|
7
6
|
import 'electron';
|
|
7
|
+
import 'node:url';
|
|
8
8
|
|
|
9
9
|
declare abstract class BaseProvider<T extends UpdateInfoWithURL = UpdateInfoWithURL> implements IProvider<T> {
|
|
10
10
|
name: string;
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
1
|
+
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-CDmogV-s.js';
|
|
2
|
+
export { j as defaultDownloadAsar, f as defaultDownloadJSON, i as defaultDownloadUpdateJSON, e as downloadUtil, g as getHeader } from './zip-CDmogV-s.js';
|
|
3
|
+
import { e as UpdateInfoWithURL, I as IProvider, d as defaultIsLowerVersion, D as DownloadingInfo, f as URLHandler } from './types-1T_tRG8a.js';
|
|
4
|
+
export { b as UpdateJSONWithURL } from './types-1T_tRG8a.js';
|
|
5
5
|
import '@subframe7536/type-utils';
|
|
6
|
-
import 'node:url';
|
|
7
6
|
import 'electron';
|
|
7
|
+
import 'node:url';
|
|
8
8
|
|
|
9
9
|
declare abstract class BaseProvider<T extends UpdateInfoWithURL = UpdateInfoWithURL> implements IProvider<T> {
|
|
10
10
|
name: string;
|
package/dist/provider.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defaultVerifySignature, defaultUnzipFile, defaultDownloadUpdateJSON, defaultDownloadAsar, defaultDownloadJSON } from './chunk-
|
|
2
|
-
export { defaultDownloadAsar, defaultDownloadJSON, defaultDownloadUpdateJSON, downloadUtil, getHeader } from './chunk-
|
|
1
|
+
import { defaultVerifySignature, defaultUnzipFile, defaultDownloadUpdateJSON, defaultDownloadAsar, defaultDownloadJSON } from './chunk-KLUIYBS4.js';
|
|
2
|
+
export { defaultDownloadAsar, defaultDownloadJSON, defaultDownloadUpdateJSON, downloadUtil, getHeader } from './chunk-KLUIYBS4.js';
|
|
3
3
|
import { defaultIsLowerVersion } from './chunk-AAAM44NW.js';
|
|
4
4
|
import { URL } from 'node:url';
|
|
5
5
|
|
|
@@ -119,7 +119,7 @@ interface IProvider<T extends UpdateInfoWithURL = UpdateInfoWithURL> {
|
|
|
119
119
|
*/
|
|
120
120
|
downloadJSON: (name: string, versionPath: string, signal: AbortSignal) => Promise<T>;
|
|
121
121
|
/**
|
|
122
|
-
* Download update asar
|
|
122
|
+
* Download update asar buffer
|
|
123
123
|
* @param updateInfo existing update info
|
|
124
124
|
* @param signal abort signal
|
|
125
125
|
* @param onDownloading hook for on downloading
|
|
@@ -119,7 +119,7 @@ interface IProvider<T extends UpdateInfoWithURL = UpdateInfoWithURL> {
|
|
|
119
119
|
*/
|
|
120
120
|
downloadJSON: (name: string, versionPath: string, signal: AbortSignal) => Promise<T>;
|
|
121
121
|
/**
|
|
122
|
-
* Download update asar
|
|
122
|
+
* Download update asar buffer
|
|
123
123
|
* @param updateInfo existing update info
|
|
124
124
|
* @param signal abort signal
|
|
125
125
|
* @param onDownloading hook for on downloading
|
package/dist/utils.cjs
CHANGED
|
@@ -119,15 +119,20 @@ function getHeader(headers, key) {
|
|
|
119
119
|
return value;
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
async function downloadUtil(url, headers,
|
|
122
|
+
async function downloadUtil(url, headers, onResponse) {
|
|
123
123
|
await electron2__default.default.app.whenReady();
|
|
124
124
|
return new Promise((resolve, reject) => {
|
|
125
|
-
const request = electron2__default.default.net.request({
|
|
126
|
-
|
|
125
|
+
const request = electron2__default.default.net.request({
|
|
126
|
+
cache: "no-cache",
|
|
127
|
+
headers,
|
|
128
|
+
method: "GET",
|
|
129
|
+
redirect: "follow",
|
|
130
|
+
url
|
|
131
|
+
});
|
|
127
132
|
request.on("response", (resp) => {
|
|
128
|
-
resp.on("aborted", () => reject(new Error("
|
|
129
|
-
resp.on("error",
|
|
130
|
-
onResponse(resp, resolve, reject);
|
|
133
|
+
resp.on("aborted", () => reject(new Error("Aborted")));
|
|
134
|
+
resp.on("error", reject);
|
|
135
|
+
onResponse(request, resp, resolve, reject);
|
|
131
136
|
});
|
|
132
137
|
request.on("error", reject);
|
|
133
138
|
request.end();
|
|
@@ -147,11 +152,14 @@ async function defaultDownloadJSON(url, headers, signal, resolveData = defaultRe
|
|
|
147
152
|
return await downloadUtil(
|
|
148
153
|
url,
|
|
149
154
|
headers,
|
|
150
|
-
|
|
151
|
-
(resp, resolve, reject) => {
|
|
155
|
+
(request, resp, resolve, reject) => {
|
|
152
156
|
let data = "";
|
|
153
157
|
resp.on("data", (chunk) => data += chunk);
|
|
154
158
|
resp.on("end", () => resolveData(data, resolve, reject));
|
|
159
|
+
signal.addEventListener("abort", () => {
|
|
160
|
+
request.abort();
|
|
161
|
+
data = null;
|
|
162
|
+
}, { once: true });
|
|
155
163
|
}
|
|
156
164
|
);
|
|
157
165
|
}
|
|
@@ -180,25 +188,29 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
|
|
|
180
188
|
return await downloadUtil(
|
|
181
189
|
url,
|
|
182
190
|
headers,
|
|
183
|
-
|
|
184
|
-
(resp, resolve) => {
|
|
191
|
+
(request, resp, resolve) => {
|
|
185
192
|
const total = +getHeader(resp.headers, "content-length") || -1;
|
|
186
|
-
|
|
193
|
+
let data = [];
|
|
187
194
|
resp.on("data", (chunk) => {
|
|
188
195
|
const delta = chunk.length;
|
|
189
196
|
transferred += delta;
|
|
190
197
|
const current = Date.now();
|
|
191
198
|
onDownloading?.({
|
|
199
|
+
bps: delta / (current - time),
|
|
200
|
+
delta,
|
|
192
201
|
percent: total > 0 ? +(transferred / total).toFixed(2) * 100 : -1,
|
|
193
202
|
total,
|
|
194
|
-
transferred
|
|
195
|
-
delta,
|
|
196
|
-
bps: delta / (current - time)
|
|
203
|
+
transferred
|
|
197
204
|
});
|
|
198
205
|
time = current;
|
|
199
206
|
data.push(chunk);
|
|
200
207
|
});
|
|
201
208
|
resp.on("end", () => resolve(Buffer.concat(data)));
|
|
209
|
+
signal.addEventListener("abort", () => {
|
|
210
|
+
request.abort();
|
|
211
|
+
data.length = 0;
|
|
212
|
+
data = null;
|
|
213
|
+
}, { once: true });
|
|
202
214
|
}
|
|
203
215
|
);
|
|
204
216
|
}
|
|
@@ -270,13 +282,13 @@ function loadPage(win, htmlFilePath = "index.html") {
|
|
|
270
282
|
}
|
|
271
283
|
function beautifyDevTools(win, options) {
|
|
272
284
|
const { mono, sans, scrollbar = true } = options;
|
|
273
|
-
win.webContents.on("devtools-opened", () => {
|
|
274
|
-
let css = `:root{--sans
|
|
285
|
+
win.webContents.on("devtools-opened", async () => {
|
|
286
|
+
let css = `:root{--sans:${sans};--mono:${mono}}:root,body{--source-code-font-family:var(--mono)!important;--source-code-font-size:12px!important;--monospace-font-family:var(--mono)!important;--monospace-font-size:12px!important;--default-font-family:var(--sans), sans-serif!important;--default-font-size:12px!important}button,input,select,.undisplayable-text,.expandable-inline-button{font-family:var(--sans)!important}`;
|
|
275
287
|
if (scrollbar) {
|
|
276
|
-
css += ":root{--scrollbar-width:
|
|
288
|
+
css += ":root{--scrollbar-width:max(.85vw,10px)}@media (prefers-color-scheme:light){:root{--scrollbar-color-rgb:0,0,0}}@media (prefers-color-scheme:dark){:root{--scrollbar-color-rgb:255,255,255}}*::-webkit-scrollbar{width:var(--scrollbar-width)!important;height:var(--scrollbar-width)!important}*::-webkit-scrollbar-track{background-color:transparent!important;border-radius:var(--scrollbar-width)!important;box-shadow:none!important}*::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 var(--scrollbar-width)!important;border-radius:var(--scrollbar-width)!important;border:calc(var(--scrollbar-width) * 2/9) solid transparent!important;background-clip:content-box;background-color:transparent!important;color:rgba(var(--scrollbar-color-rgb),30%)!important}*::-webkit-scrollbar-thumb:hover{color:rgba(var(--scrollbar-color-rgb),45%)!important}*::-webkit-scrollbar-thumb:active{color:rgba(var(--scrollbar-color-rgb),60%)!important}@supports not selector(::-webkit-scrollbar){html{scrollbar-color:rgb(var(--scrollbar-color-rgb));scrollbar-width:thin}}";
|
|
277
289
|
}
|
|
278
|
-
const js =
|
|
279
|
-
win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
290
|
+
const js = `${'function run(n){let d=document.createElement("style");d.innerHTML=n,document.body.append(d),["platform-windows","platform-mac","platform-linux"].forEach(e=>document.querySelectorAll(`.${e}`).forEach(o=>o.classList.remove(e))),l();const r=new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(let t=0;t<o.addedNodes.length;t++)o.addedNodes[t].classList.contains("editor-tooltip-host")&&l()});r.observe(document.body,{childList:!0});function l(){document.querySelectorAll(".editor-tooltip-host").forEach(e=>{if(e?.shadowRoot?.querySelectorAll(\'[data-key="overridden-dev-tools-font"]\').length===0){const o=document.createElement("style");o.setAttribute("data-key","overridden-dev-tools-font"),o.innerHTML=`${n}.cm-tooltip-autocomplete ul[role=listbox]{font-family:var(--mono)!important;}`,e.shadowRoot.append(o)}})}window.onbeforeunload=()=>r.disconnect()}'};run(\`${css}\`)`;
|
|
291
|
+
await win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
280
292
|
});
|
|
281
293
|
}
|
|
282
294
|
function getPathFromMain(...paths) {
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
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-DemXr4mk.cjs';
|
|
2
2
|
import { BrowserWindow } from 'electron';
|
|
3
|
-
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, c as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './types-
|
|
3
|
+
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, c as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './types-1T_tRG8a.cjs';
|
|
4
4
|
import '@subframe7536/type-utils';
|
|
5
5
|
import 'node:url';
|
|
6
6
|
|
|
@@ -90,6 +90,7 @@ interface BeautifyDevToolsOptions {
|
|
|
90
90
|
* Beautify devtools' font and scrollbar
|
|
91
91
|
* @param win target window
|
|
92
92
|
* @param options sans font family, mono font family and scrollbar
|
|
93
|
+
* @see https://github.com/electron/electron/issues/42055
|
|
93
94
|
*/
|
|
94
95
|
declare function beautifyDevTools(win: BrowserWindow, options: BeautifyDevToolsOptions): void;
|
|
95
96
|
/**
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
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-CDmogV-s.js';
|
|
2
2
|
import { BrowserWindow } from 'electron';
|
|
3
|
-
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, c as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './types-
|
|
3
|
+
export { U as UpdateInfo, a as UpdateJSON, V as Version, d as defaultIsLowerVersion, c as defaultVersionJsonGenerator, i as isUpdateJSON, p as parseVersion } from './types-1T_tRG8a.js';
|
|
4
4
|
import '@subframe7536/type-utils';
|
|
5
5
|
import 'node:url';
|
|
6
6
|
|
|
@@ -90,6 +90,7 @@ interface BeautifyDevToolsOptions {
|
|
|
90
90
|
* Beautify devtools' font and scrollbar
|
|
91
91
|
* @param win target window
|
|
92
92
|
* @param options sans font family, mono font family and scrollbar
|
|
93
|
+
* @see https://github.com/electron/electron/issues/42055
|
|
93
94
|
*/
|
|
94
95
|
declare function beautifyDevTools(win: BrowserWindow, options: BeautifyDevToolsOptions): void;
|
|
95
96
|
/**
|
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, reloadOnPreloadScriptChanged, requireNative, restartApp, setAppUserModelId, setPortableAppDataPath, singleInstance } from './chunk-
|
|
2
|
-
export { aesDecrypt, aesEncrypt, defaultDownloadAsar, defaultDownloadJSON, defaultDownloadUpdateJSON, defaultSignature, defaultUnzipFile, defaultVerifySignature, defaultZipFile, downloadUtil, getHeader, 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-QKKPETVJ.js';
|
|
2
|
+
export { aesDecrypt, aesEncrypt, defaultDownloadAsar, defaultDownloadJSON, defaultDownloadUpdateJSON, defaultSignature, defaultUnzipFile, defaultVerifySignature, defaultZipFile, downloadUtil, getHeader, hashBuffer } from './chunk-KLUIYBS4.js';
|
|
3
3
|
export { defaultIsLowerVersion, defaultVersionJsonGenerator, isUpdateJSON, parseVersion } from './chunk-AAAM44NW.js';
|
package/dist/vite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { copyAndSkipIfExist, readableSize } from './chunk-TPTWE33H.js';
|
|
2
|
+
import { defaultVersionJsonGenerator, isUpdateJSON } from './chunk-LR7LR5WG.js';
|
|
3
3
|
export { convertLiteral } from './chunk-LR7LR5WG.js';
|
|
4
4
|
import { log, id } from './chunk-5NKEXGI3.js';
|
|
5
5
|
import fs2 from 'node:fs';
|
|
@@ -226,7 +226,7 @@ function parseOptions(pkg, sourcemap = false, minify = false, options = {}) {
|
|
|
226
226
|
return false;
|
|
227
227
|
}
|
|
228
228
|
if (!external) {
|
|
229
|
-
return
|
|
229
|
+
return undefined;
|
|
230
230
|
}
|
|
231
231
|
if (typeof external === "string") {
|
|
232
232
|
return source === external;
|
|
@@ -309,16 +309,16 @@ async function electronWithUpdater(options) {
|
|
|
309
309
|
} = options;
|
|
310
310
|
if (!pkg || !pkg.version || !pkg.name || !pkg.main) {
|
|
311
311
|
log.error("package.json not found or invalid", { timestamp: true });
|
|
312
|
-
return
|
|
312
|
+
return undefined;
|
|
313
313
|
}
|
|
314
314
|
const isESM = pkg.type === "module";
|
|
315
|
-
let bytecodeOptions = typeof bytecode === "object" ? bytecode : bytecode === true ? { enable: true } :
|
|
315
|
+
let bytecodeOptions = typeof bytecode === "object" ? bytecode : bytecode === true ? { enable: true } : undefined;
|
|
316
316
|
if (isESM && bytecodeOptions?.enable) {
|
|
317
317
|
(await import('./constant-ME27JB5D.js')).bytecodeLog.warn(
|
|
318
318
|
'`bytecodePlugin` does not support ES module, please remove "type": "module" in package.json',
|
|
319
319
|
{ timestamp: true }
|
|
320
320
|
);
|
|
321
|
-
bytecodeOptions =
|
|
321
|
+
bytecodeOptions = undefined;
|
|
322
322
|
}
|
|
323
323
|
const {
|
|
324
324
|
buildAsarOption,
|
|
@@ -388,7 +388,7 @@ async function electronWithUpdater(options) {
|
|
|
388
388
|
external: (src) => src.startsWith("node:") || Object.keys("dependencies" in pkg ? pkg.dependencies : {}).includes(src) || src === "original-fs",
|
|
389
389
|
treeshake: true
|
|
390
390
|
};
|
|
391
|
-
const esmShimPlugin = isESM ? (await import('./esm-4S4XCVEW.js')).esm() :
|
|
391
|
+
const esmShimPlugin = isESM ? (await import('./esm-4S4XCVEW.js')).esm() : undefined;
|
|
392
392
|
const electronPluginOptions = {
|
|
393
393
|
main: {
|
|
394
394
|
entry: _main.files,
|
|
@@ -407,7 +407,7 @@ async function electronWithUpdater(options) {
|
|
|
407
407
|
vite: mergeConfig(
|
|
408
408
|
{
|
|
409
409
|
plugins: [
|
|
410
|
-
!isBuild && useNotBundle ? notBundle() :
|
|
410
|
+
!isBuild && useNotBundle ? notBundle() : undefined,
|
|
411
411
|
bytecodeOptions && await import('./bytecode-R2B4KTMV.js').then((m) => m.bytecodePlugin("main", bytecodeOptions)),
|
|
412
412
|
esmShimPlugin
|
|
413
413
|
],
|
|
@@ -449,7 +449,7 @@ async function electronWithUpdater(options) {
|
|
|
449
449
|
}
|
|
450
450
|
],
|
|
451
451
|
build: {
|
|
452
|
-
sourcemap: sourcemap ? "inline" :
|
|
452
|
+
sourcemap: sourcemap ? "inline" : undefined,
|
|
453
453
|
minify,
|
|
454
454
|
outDir: `${buildAsarOption.electronDistPath}/preload`,
|
|
455
455
|
rollupOptions
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Arrayable } from '@subframe7536/type-utils';
|
|
2
|
-
import { a as UpdateJSON, D as DownloadingInfo } from './types-
|
|
2
|
+
import { a as UpdateJSON, D as DownloadingInfo } from './types-1T_tRG8a.js';
|
|
3
3
|
import { IncomingMessage } from 'electron';
|
|
4
4
|
|
|
5
5
|
declare function hashBuffer(data: string | Buffer, length: number): Buffer;
|
|
@@ -29,7 +29,7 @@ declare function defaultVerifySignature(buffer: Buffer, version: string, signatu
|
|
|
29
29
|
* @param key target header key
|
|
30
30
|
*/
|
|
31
31
|
declare function getHeader(headers: Record<string, Arrayable<string>>, key: any): any;
|
|
32
|
-
declare function downloadUtil<T>(url: string, headers: Record<string, any>,
|
|
32
|
+
declare function downloadUtil<T>(url: string, headers: Record<string, any>, onResponse: (req: Electron.ClientRequest, resp: IncomingMessage, resolve: (data: T) => void, reject: (e: any) => void) => void): Promise<T>;
|
|
33
33
|
type ResolveDataFn = (data: string, resolve: (data: any) => void, reject: (e: any) => void) => void;
|
|
34
34
|
/**
|
|
35
35
|
* Default function to download json and parse to UpdateJson
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Arrayable } from '@subframe7536/type-utils';
|
|
2
|
-
import { a as UpdateJSON, D as DownloadingInfo } from './types-
|
|
2
|
+
import { a as UpdateJSON, D as DownloadingInfo } from './types-1T_tRG8a.cjs';
|
|
3
3
|
import { IncomingMessage } from 'electron';
|
|
4
4
|
|
|
5
5
|
declare function hashBuffer(data: string | Buffer, length: number): Buffer;
|
|
@@ -29,7 +29,7 @@ declare function defaultVerifySignature(buffer: Buffer, version: string, signatu
|
|
|
29
29
|
* @param key target header key
|
|
30
30
|
*/
|
|
31
31
|
declare function getHeader(headers: Record<string, Arrayable<string>>, key: any): any;
|
|
32
|
-
declare function downloadUtil<T>(url: string, headers: Record<string, any>,
|
|
32
|
+
declare function downloadUtil<T>(url: string, headers: Record<string, any>, onResponse: (req: Electron.ClientRequest, resp: IncomingMessage, resolve: (data: T) => void, reject: (e: any) => void) => void): Promise<T>;
|
|
33
33
|
type ResolveDataFn = (data: string, resolve: (data: any) => void, reject: (e: any) => void) => void;
|
|
34
34
|
/**
|
|
35
35
|
* Default function to download json and parse to UpdateJson
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "electron-incremental-update",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.5",
|
|
5
5
|
"description": "Electron incremental update tools with Vite plugin, support bytecode protection",
|
|
6
6
|
"author": "subframe7536",
|
|
7
7
|
"license": "MIT",
|
|
@@ -60,27 +60,32 @@
|
|
|
60
60
|
"esbuild": "*"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@babel/core": "^7.26.
|
|
63
|
+
"@babel/core": "^7.26.7",
|
|
64
64
|
"@babel/plugin-transform-arrow-functions": "^7.25.9",
|
|
65
65
|
"@babel/plugin-transform-template-literals": "^7.25.9",
|
|
66
66
|
"@subframe7536/type-utils": "^0.1.6",
|
|
67
67
|
"ci-info": "^4.1.0",
|
|
68
|
-
"local-pkg": "^0.
|
|
69
|
-
"magic-string": "^0.30.
|
|
68
|
+
"local-pkg": "^1.0.0",
|
|
69
|
+
"magic-string": "^0.30.17",
|
|
70
70
|
"selfsigned": "^2.4.1",
|
|
71
71
|
"vite-plugin-electron": "^0.29.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@subframe7536/eslint-config": "^
|
|
74
|
+
"@subframe7536/eslint-config": "^1.1.8",
|
|
75
75
|
"@types/babel__core": "^7.20.5",
|
|
76
|
-
"@types/node": "^20.17.
|
|
77
|
-
"bumpp": "^
|
|
78
|
-
"electron": "
|
|
79
|
-
"eslint": "^9.
|
|
80
|
-
"tsup": "^8.3.
|
|
81
|
-
"typescript": "^5.7.
|
|
82
|
-
"vite": "^6.0.
|
|
76
|
+
"@types/node": "^20.17.17",
|
|
77
|
+
"bumpp": "^10.0.1",
|
|
78
|
+
"electron": "34.0.2",
|
|
79
|
+
"eslint": "^9.19.0",
|
|
80
|
+
"tsup": "^8.3.6",
|
|
81
|
+
"typescript": "^5.7.3",
|
|
82
|
+
"vite": "^6.0.11",
|
|
83
83
|
"vite-plugin-electron": "^0.29.0",
|
|
84
|
-
"vitest": "^
|
|
84
|
+
"vitest": "^3.0.5"
|
|
85
|
+
},
|
|
86
|
+
"pnpm": {
|
|
87
|
+
"overrides": {
|
|
88
|
+
"is-core-module": "npm:@nolyfill/is-core-module@^1"
|
|
89
|
+
}
|
|
85
90
|
}
|
|
86
91
|
}
|