electron-incremental-update 2.2.3 → 2.2.4
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-YZGE4RFY.js → chunk-K4N2OHNS.js} +5 -5
- package/dist/chunk-LR7LR5WG.js +1 -1
- 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 +45 -43
- package/dist/provider.d.cts +3 -3
- package/dist/provider.d.ts +3 -3
- package/dist/utils.cjs +5 -5
- package/dist/utils.d.cts +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +1 -1
- package/dist/vite.js +9 -9
- 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';
|
|
@@ -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(t=>document.querySelectorAll(`.${t}`).forEach(o=>o.classList.remove(t))),l();const r=new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(let e=0;e<o.addedNodes.length;e++)o.addedNodes[e].classList.contains("editor-tooltip-host")&&l()});r.observe(document.body,{childList:!0});function l(){document.querySelectorAll(".editor-tooltip-host").forEach(t=>{if(t?.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;}`,t.shadowRoot.append(o)}})}document.onclose=()=>r.disconnect()}'};run(\`${css}\`)`;
|
|
80
|
+
await win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
function getPathFromMain(...paths) {
|
package/dist/chunk-LR7LR5WG.js
CHANGED
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-C5M2xRjF.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-C5M2xRjF.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-K4N2OHNS.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)) {
|
|
@@ -193,6 +154,47 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
|
|
|
193
154
|
}
|
|
194
155
|
);
|
|
195
156
|
}
|
|
157
|
+
function hashBuffer(data, length) {
|
|
158
|
+
const hash = crypto__default.default.createHash("SHA256").update(data).digest("binary");
|
|
159
|
+
return Buffer.from(hash).subarray(0, length);
|
|
160
|
+
}
|
|
161
|
+
function aesDecrypt(encryptedText, key, iv) {
|
|
162
|
+
const decipher = crypto__default.default.createDecipheriv("aes-256-cbc", key, iv);
|
|
163
|
+
return decipher.update(encryptedText, "base64url", "utf8") + decipher.final("utf8");
|
|
164
|
+
}
|
|
165
|
+
function defaultVerifySignature(buffer, version, signature, cert) {
|
|
166
|
+
try {
|
|
167
|
+
const [sig, ver] = aesDecrypt(signature, hashBuffer(cert, 32), hashBuffer(buffer, 16)).split("%");
|
|
168
|
+
if (ver !== version) {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
return crypto__default.default.createVerify("RSA-SHA256").update(buffer).verify(cert, sig, "base64");
|
|
172
|
+
} catch {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async function defaultUnzipFile(buffer) {
|
|
177
|
+
return new Promise((resolve, reject) => {
|
|
178
|
+
zlib__default.default.brotliDecompress(buffer, (err, buffer2) => err ? reject(err) : resolve(buffer2));
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// src/provider/base.ts
|
|
183
|
+
var BaseProvider = class {
|
|
184
|
+
name = "BaseProvider";
|
|
185
|
+
/**
|
|
186
|
+
* @inheritdoc
|
|
187
|
+
*/
|
|
188
|
+
isLowerVersion = defaultIsLowerVersion;
|
|
189
|
+
/**
|
|
190
|
+
* @inheritdoc
|
|
191
|
+
*/
|
|
192
|
+
verifySignaure = defaultVerifySignature;
|
|
193
|
+
/**
|
|
194
|
+
* @inheritdoc
|
|
195
|
+
*/
|
|
196
|
+
unzipFile = defaultUnzipFile;
|
|
197
|
+
};
|
|
196
198
|
var GitHubProvider = class extends BaseProvider {
|
|
197
199
|
name = "GithubProvider";
|
|
198
200
|
options;
|
package/dist/provider.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { e as UpdateInfoWithURL, I as IProvider, d as defaultIsLowerVersion, D as DownloadingInfo, f as URLHandler } from './types-C5M2xRjF.cjs';
|
|
2
|
-
export { b as UpdateJSONWithURL } from './types-C5M2xRjF.cjs';
|
|
3
1
|
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-BQS8qbGA.cjs';
|
|
4
2
|
export { j as defaultDownloadAsar, f as defaultDownloadJSON, i as defaultDownloadUpdateJSON, e as downloadUtil, g as getHeader } from './zip-BQS8qbGA.cjs';
|
|
3
|
+
import { e as UpdateInfoWithURL, I as IProvider, d as defaultIsLowerVersion, D as DownloadingInfo, f as URLHandler } from './types-C5M2xRjF.cjs';
|
|
4
|
+
export { b as UpdateJSONWithURL } from './types-C5M2xRjF.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 { e as UpdateInfoWithURL, I as IProvider, d as defaultIsLowerVersion, D as DownloadingInfo, f as URLHandler } from './types-C5M2xRjF.js';
|
|
2
|
-
export { b as UpdateJSONWithURL } from './types-C5M2xRjF.js';
|
|
3
1
|
import { c as defaultVerifySignature, l as defaultUnzipFile } from './zip-DbfskMQi.js';
|
|
4
2
|
export { j as defaultDownloadAsar, f as defaultDownloadJSON, i as defaultDownloadUpdateJSON, e as downloadUtil, g as getHeader } from './zip-DbfskMQi.js';
|
|
3
|
+
import { e as UpdateInfoWithURL, I as IProvider, d as defaultIsLowerVersion, D as DownloadingInfo, f as URLHandler } from './types-C5M2xRjF.js';
|
|
4
|
+
export { b as UpdateJSONWithURL } from './types-C5M2xRjF.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/utils.cjs
CHANGED
|
@@ -270,13 +270,13 @@ function loadPage(win, htmlFilePath = "index.html") {
|
|
|
270
270
|
}
|
|
271
271
|
function beautifyDevTools(win, options) {
|
|
272
272
|
const { mono, sans, scrollbar = true } = options;
|
|
273
|
-
win.webContents.on("devtools-opened", () => {
|
|
274
|
-
let css = `:root{--sans
|
|
273
|
+
win.webContents.on("devtools-opened", async () => {
|
|
274
|
+
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
275
|
if (scrollbar) {
|
|
276
|
-
css += ":root{--scrollbar-width:
|
|
276
|
+
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
277
|
}
|
|
278
|
-
const js =
|
|
279
|
-
win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
278
|
+
const js = `${'function run(n){let d=document.createElement("style");d.innerHTML=n,document.body.append(d),["platform-windows","platform-mac","platform-linux"].forEach(t=>document.querySelectorAll(`.${t}`).forEach(o=>o.classList.remove(t))),l();const r=new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(let e=0;e<o.addedNodes.length;e++)o.addedNodes[e].classList.contains("editor-tooltip-host")&&l()});r.observe(document.body,{childList:!0});function l(){document.querySelectorAll(".editor-tooltip-host").forEach(t=>{if(t?.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;}`,t.shadowRoot.append(o)}})}document.onclose=()=>r.disconnect()}'};run(\`${css}\`)`;
|
|
279
|
+
await win?.webContents.devToolsWebContents?.executeJavaScript(js);
|
|
280
280
|
});
|
|
281
281
|
}
|
|
282
282
|
function getPathFromMain(...paths) {
|
package/dist/utils.d.cts
CHANGED
|
@@ -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
|
@@ -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-
|
|
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-K4N2OHNS.js';
|
|
2
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.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
|
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.4",
|
|
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
|
}
|