electron-incremental-update 2.0.0-beta.10 → 2.0.0-beta.11

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