electron-incremental-update 3.0.0-beta.6 → 3.0.0

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.
@@ -1,4 +1,4 @@
1
- import { u as isUpdateJSON } from "./zip-DUK3opmV.mjs";
1
+ import { u as isUpdateJSON } from "./crypto-DZzMmoz2.mjs";
2
2
  import { app, net } from "electron";
3
3
  //#region src/utils/download.ts
4
4
  /**
@@ -11,7 +11,7 @@ function getHeader(headers, key) {
11
11
  if (Array.isArray(value)) return value.length === 0 ? null : value[value.length - 1];
12
12
  else return value;
13
13
  }
14
- async function downloadUtil(url, headers, onResponse) {
14
+ async function downloadUtil(url, headers, onResponse, signal) {
15
15
  await app.whenReady();
16
16
  return new Promise((resolve, reject) => {
17
17
  const rejectUnexpectedStatus = (resp) => {
@@ -34,6 +34,13 @@ async function downloadUtil(url, headers, onResponse) {
34
34
  redirect: "follow",
35
35
  url
36
36
  });
37
+ if (signal) {
38
+ if (signal.aborted) {
39
+ reject(/* @__PURE__ */ new Error("Aborted"));
40
+ return;
41
+ }
42
+ signal.addEventListener("abort", () => request.abort(), { once: true });
43
+ }
37
44
  request.on("response", (resp) => {
38
45
  resp.on("aborted", () => reject(/* @__PURE__ */ new Error("Aborted")));
39
46
  resp.on("error", reject);
@@ -69,11 +76,7 @@ async function defaultDownloadText(url, headers, signal, resolveData) {
69
76
  let data = "";
70
77
  resp.on("data", (chunk) => data += chunk);
71
78
  resp.on("end", () => resolveData(data, resolve, reject));
72
- signal.addEventListener("abort", () => {
73
- request.abort();
74
- data = null;
75
- }, { once: true });
76
- });
79
+ }, signal);
77
80
  }
78
81
  /**
79
82
  * Default function to download json and parse to UpdateJson
@@ -103,7 +106,7 @@ async function defaultDownloadUpdateJSON(url, headers, signal) {
103
106
  async function defaultDownloadAsar(url, headers, signal, onDownloading) {
104
107
  let transferred = 0;
105
108
  let time = Date.now();
106
- return await downloadUtil(url, headers, (request, resp, resolve) => {
109
+ return await downloadUtil(url, headers, (_request, resp, resolve) => {
107
110
  const total = +getHeader(resp.headers, "content-length") || -1;
108
111
  let data = [];
109
112
  resp.on("data", (chunk) => {
@@ -111,7 +114,7 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
111
114
  transferred += delta;
112
115
  const current = Date.now();
113
116
  onDownloading?.({
114
- bps: delta / (current - time),
117
+ bps: delta / Math.max(current - time, 1) * 1e3,
115
118
  delta,
116
119
  percent: total > 0 ? +(transferred / total).toFixed(2) * 100 : -1,
117
120
  total,
@@ -121,12 +124,7 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
121
124
  data.push(chunk);
122
125
  });
123
126
  resp.on("end", () => resolve(Buffer.concat(data)));
124
- signal.addEventListener("abort", () => {
125
- request.abort();
126
- data.length = 0;
127
- data = null;
128
- }, { once: true });
129
- });
127
+ }, signal);
130
128
  }
131
129
  //#endregion
132
130
  export { getHeader as a, downloadUtil as i, defaultDownloadText as n, resolveJson as o, defaultDownloadUpdateJSON as r, defaultDownloadAsar as t };
@@ -1,4 +1,4 @@
1
- import { p as Arrayable, s as UpdateJSON, t as DownloadingInfo } from "./types-BOqQ_r5Q.mjs";
1
+ import { p as Arrayable, s as UpdateJSON, t as DownloadingInfo } from "./types-q78spjKB.mjs";
2
2
  import { ClientRequest, IncomingMessage } from "electron";
3
3
 
4
4
  //#region src/utils/download.d.ts
@@ -8,7 +8,7 @@ import { ClientRequest, IncomingMessage } from "electron";
8
8
  * @param key target header key
9
9
  */
10
10
  declare function getHeader(headers: Record<string, Arrayable<string>>, key: any): any;
11
- declare function downloadUtil<T>(url: string, headers: Record<string, any>, onResponse: (req: ClientRequest, resp: IncomingMessage, resolve: (data: T) => void, reject: (e: any) => void) => void): Promise<T>;
11
+ declare function downloadUtil<T>(url: string, headers: Record<string, any>, onResponse: (req: ClientRequest, resp: IncomingMessage, resolve: (data: T) => void, reject: (e: any) => void) => void, signal?: AbortSignal): Promise<T>;
12
12
  type ResolveDataFn = (data: string, resolve: (data: any) => void, reject: (e: any) => void) => void;
13
13
  declare const resolveJson: ResolveDataFn;
14
14
  /**
@@ -1,4 +1,4 @@
1
- const require_zip = require("./zip-D1dbBzw4.cjs");
1
+ const require_crypto = require("./crypto-BSky88mL.cjs");
2
2
  let electron = require("electron");
3
3
  //#region src/utils/download.ts
4
4
  /**
@@ -11,7 +11,7 @@ function getHeader(headers, key) {
11
11
  if (Array.isArray(value)) return value.length === 0 ? null : value[value.length - 1];
12
12
  else return value;
13
13
  }
14
- async function downloadUtil(url, headers, onResponse) {
14
+ async function downloadUtil(url, headers, onResponse, signal) {
15
15
  await electron.app.whenReady();
16
16
  return new Promise((resolve, reject) => {
17
17
  const rejectUnexpectedStatus = (resp) => {
@@ -34,6 +34,13 @@ async function downloadUtil(url, headers, onResponse) {
34
34
  redirect: "follow",
35
35
  url
36
36
  });
37
+ if (signal) {
38
+ if (signal.aborted) {
39
+ reject(/* @__PURE__ */ new Error("Aborted"));
40
+ return;
41
+ }
42
+ signal.addEventListener("abort", () => request.abort(), { once: true });
43
+ }
37
44
  request.on("response", (resp) => {
38
45
  resp.on("aborted", () => reject(/* @__PURE__ */ new Error("Aborted")));
39
46
  resp.on("error", reject);
@@ -69,11 +76,7 @@ async function defaultDownloadText(url, headers, signal, resolveData) {
69
76
  let data = "";
70
77
  resp.on("data", (chunk) => data += chunk);
71
78
  resp.on("end", () => resolveData(data, resolve, reject));
72
- signal.addEventListener("abort", () => {
73
- request.abort();
74
- data = null;
75
- }, { once: true });
76
- });
79
+ }, signal);
77
80
  }
78
81
  /**
79
82
  * Default function to download json and parse to UpdateJson
@@ -85,7 +88,7 @@ async function defaultDownloadUpdateJSON(url, headers, signal) {
85
88
  return await defaultDownloadText(url, headers, signal, (data, resolve, reject) => {
86
89
  try {
87
90
  const json = JSON.parse(data);
88
- if (require_zip.isUpdateJSON(json)) resolve(json);
91
+ if (require_crypto.isUpdateJSON(json)) resolve(json);
89
92
  else throw Error;
90
93
  } catch {
91
94
  reject(/* @__PURE__ */ new Error(`Invalid update json, "${trimData(data)}"`));
@@ -103,7 +106,7 @@ async function defaultDownloadUpdateJSON(url, headers, signal) {
103
106
  async function defaultDownloadAsar(url, headers, signal, onDownloading) {
104
107
  let transferred = 0;
105
108
  let time = Date.now();
106
- return await downloadUtil(url, headers, (request, resp, resolve) => {
109
+ return await downloadUtil(url, headers, (_request, resp, resolve) => {
107
110
  const total = +getHeader(resp.headers, "content-length") || -1;
108
111
  let data = [];
109
112
  resp.on("data", (chunk) => {
@@ -111,7 +114,7 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
111
114
  transferred += delta;
112
115
  const current = Date.now();
113
116
  onDownloading?.({
114
- bps: delta / (current - time),
117
+ bps: delta / Math.max(current - time, 1) * 1e3,
115
118
  delta,
116
119
  percent: total > 0 ? +(transferred / total).toFixed(2) * 100 : -1,
117
120
  total,
@@ -121,12 +124,7 @@ async function defaultDownloadAsar(url, headers, signal, onDownloading) {
121
124
  data.push(chunk);
122
125
  });
123
126
  resp.on("end", () => resolve(Buffer.concat(data)));
124
- signal.addEventListener("abort", () => {
125
- request.abort();
126
- data.length = 0;
127
- data = null;
128
- }, { once: true });
129
- });
127
+ }, signal);
130
128
  }
131
129
  //#endregion
132
130
  Object.defineProperty(exports, "defaultDownloadAsar", {
@@ -6,7 +6,7 @@ import { pathToFileURL } from "node:url";
6
6
  var font_default = ":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}\n";
7
7
  //#endregion
8
8
  //#region src/utils/devtools/js.ts?inject
9
- var js_default = "export { };";
9
+ var js_default = "function e(e){let t=document.createElement(`style`);t.innerHTML=e,document.body.append(t),[`platform-windows`,`platform-mac`,`platform-linux`].forEach(e=>document.querySelectorAll(`.${e}`).forEach(t=>t.classList.remove(e))),r();let n=new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e=0;e<t.addedNodes.length;e++)t.addedNodes[e].classList.contains(`editor-tooltip-host`)&&r()});n.observe(document.body,{childList:!0});function r(){document.querySelectorAll(`.editor-tooltip-host`).forEach(t=>{if(t?.shadowRoot?.querySelectorAll(`[data-key=\"overridden-dev-tools-font\"]`).length===0){let n=document.createElement(`style`);n.dataset.key=`overridden-dev-tools-font`,n.innerHTML=`${e}.cm-tooltip-autocomplete ul[role=listbox]{font-family:var(--mono)!important;}`,t.shadowRoot.append(n)}})}window.onbeforeunload=()=>n.disconnect()}e(__CSS__);";
10
10
  //#endregion
11
11
  //#region src/utils/devtools/scrollbar.css?inline
12
12
  var scrollbar_default = ":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{border-radius:var(--scrollbar-width)!important;box-shadow:none!important;background-color:#0000!important}::-webkit-scrollbar-thumb{background-clip:content-box;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;color:rgba(var(--scrollbar-color-rgb), 30%)!important;background-color:#0000!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}}\n";
@@ -1,15 +1,15 @@
1
- const require_zip = require("./zip-D1dbBzw4.cjs");
1
+ const require_crypto = require("./crypto-BSky88mL.cjs");
2
2
  let node_fs = require("node:fs");
3
- node_fs = require_zip.__toESM(node_fs, 1);
3
+ node_fs = require_crypto.__toESM(node_fs, 1);
4
4
  let node_path = require("node:path");
5
- node_path = require_zip.__toESM(node_path, 1);
5
+ node_path = require_crypto.__toESM(node_path, 1);
6
6
  let electron = require("electron");
7
7
  let node_url = require("node:url");
8
8
  //#region src/utils/devtools/font.css?inline
9
9
  var font_default = ":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}\n";
10
10
  //#endregion
11
11
  //#region src/utils/devtools/js.ts?inject
12
- var js_default = "export { };";
12
+ var js_default = "function e(e){let t=document.createElement(`style`);t.innerHTML=e,document.body.append(t),[`platform-windows`,`platform-mac`,`platform-linux`].forEach(e=>document.querySelectorAll(`.${e}`).forEach(t=>t.classList.remove(e))),r();let n=new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e=0;e<t.addedNodes.length;e++)t.addedNodes[e].classList.contains(`editor-tooltip-host`)&&r()});n.observe(document.body,{childList:!0});function r(){document.querySelectorAll(`.editor-tooltip-host`).forEach(t=>{if(t?.shadowRoot?.querySelectorAll(`[data-key=\"overridden-dev-tools-font\"]`).length===0){let n=document.createElement(`style`);n.dataset.key=`overridden-dev-tools-font`,n.innerHTML=`${e}.cm-tooltip-autocomplete ul[role=listbox]{font-family:var(--mono)!important;}`,t.shadowRoot.append(n)}})}window.onbeforeunload=()=>n.disconnect()}e(__CSS__);";
13
13
  //#endregion
14
14
  //#region src/utils/devtools/scrollbar.css?inline
15
15
  var scrollbar_default = ":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{border-radius:var(--scrollbar-width)!important;box-shadow:none!important;background-color:#0000!important}::-webkit-scrollbar-thumb{background-clip:content-box;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;color:rgba(var(--scrollbar-color-rgb), 30%)!important;background-color:#0000!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}}\n";
package/dist/index.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_zip = require("./zip-D1dbBzw4.cjs");
3
- const require_local = require("./local-Daf8naRn.cjs");
4
- const require_electron = require("./electron-D_8AbLQ5.cjs");
2
+ const require_crypto = require("./crypto-BSky88mL.cjs");
3
+ const require_local = require("./local-DbXBG1D9.cjs");
4
+ const require_electron = require("./electron-CaS0I3S2.cjs");
5
5
  let node_fs = require("node:fs");
6
- node_fs = require_zip.__toESM(node_fs, 1);
6
+ node_fs = require_crypto.__toESM(node_fs, 1);
7
7
  let node_path = require("node:path");
8
- node_path = require_zip.__toESM(node_path, 1);
8
+ node_path = require_crypto.__toESM(node_path, 1);
9
9
  let electron = require("electron");
10
10
  let node_events = require("node:events");
11
11
  //#region src/entry/types.ts
@@ -61,7 +61,7 @@ var Updater = class extends node_events.EventEmitter {
61
61
  }
62
62
  }
63
63
  async fetch(format, data) {
64
- if (typeof data === "object") if (format === "json" && require_zip.isUpdateJSON(data) || format === "buffer" && Buffer.isBuffer(data)) return data;
64
+ if (typeof data === "object") if (format === "json" && require_crypto.isUpdateJSON(data) || format === "buffer" && Buffer.isBuffer(data)) return data;
65
65
  else {
66
66
  this.err("Invalid type", "ERR_PARAM", `Invalid type at format '${format}': ${JSON.stringify(data)}`);
67
67
  return;
@@ -178,12 +178,12 @@ var Updater = class extends node_events.EventEmitter {
178
178
  return false;
179
179
  }
180
180
  this.logger?.debug("Validation start");
181
- if (!await this.provider.verifySignaure(buffer, _version, _sig, this.CERT)) return emitError("ERR_VALIDATE", "Invalid update asar file");
181
+ if (!await this.provider.verifySignature(buffer, _version, _sig, this.CERT)) return emitError("ERR_VALIDATE", "Invalid update asar file");
182
182
  this.logger?.debug("Validation end");
183
183
  try {
184
184
  this.tmpFilePath = `${require_electron.getPathFromAppNameAsar()}.tmp`;
185
185
  this.logger?.debug(`Install to ${this.tmpFilePath}`);
186
- node_fs.default.writeFileSync(this.tmpFilePath, await this.provider.unzipFile(buffer));
186
+ node_fs.default.writeFileSync(this.tmpFilePath, await this.provider.decompressFile(buffer));
187
187
  this.logger?.info(`Download success, version: ${_version}`);
188
188
  this.info = void 0;
189
189
  this.emit("update-downloaded");
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { m as Promisable, n as IProvider, o as UpdateInfo, t as DownloadingInfo } from "./types-BOqQ_r5Q.cjs";
1
+ import { m as Promisable, n as IProvider, o as UpdateInfo, t as DownloadingInfo } from "./types-q78spjKB.cjs";
2
2
  import { EventEmitter } from "node:events";
3
3
 
4
4
  //#region src/entry/types.d.ts
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { m as Promisable, n as IProvider, o as UpdateInfo, t as DownloadingInfo } from "./types-BOqQ_r5Q.mjs";
1
+ import { m as Promisable, n as IProvider, o as UpdateInfo, t as DownloadingInfo } from "./types-q78spjKB.mjs";
2
2
  import { EventEmitter } from "node:events";
3
3
 
4
4
  //#region src/entry/types.d.ts
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { u as isUpdateJSON } from "./zip-DUK3opmV.mjs";
2
- import { t as LocalDevProvider } from "./local-s1cw_vwb.mjs";
3
- import { a as getPathFromAppNameAsar, f as isDev, i as getEntryVersion, r as getAppVersion, y as restartApp } from "./electron-BInvFJ-W.mjs";
1
+ import { u as isUpdateJSON } from "./crypto-DZzMmoz2.mjs";
2
+ import { t as LocalDevProvider } from "./local-C5jw-7o5.mjs";
3
+ import { a as getPathFromAppNameAsar, f as isDev, i as getEntryVersion, r as getAppVersion, y as restartApp } from "./electron-BrIF1urZ.mjs";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
6
  import { BrowserWindow, app } from "electron";
@@ -175,12 +175,12 @@ var Updater = class extends EventEmitter {
175
175
  return false;
176
176
  }
177
177
  this.logger?.debug("Validation start");
178
- if (!await this.provider.verifySignaure(buffer, _version, _sig, this.CERT)) return emitError("ERR_VALIDATE", "Invalid update asar file");
178
+ if (!await this.provider.verifySignature(buffer, _version, _sig, this.CERT)) return emitError("ERR_VALIDATE", "Invalid update asar file");
179
179
  this.logger?.debug("Validation end");
180
180
  try {
181
181
  this.tmpFilePath = `${getPathFromAppNameAsar()}.tmp`;
182
182
  this.logger?.debug(`Install to ${this.tmpFilePath}`);
183
- fs.writeFileSync(this.tmpFilePath, await this.provider.unzipFile(buffer));
183
+ fs.writeFileSync(this.tmpFilePath, await this.provider.decompressFile(buffer));
184
184
  this.logger?.info(`Download success, version: ${_version}`);
185
185
  this.info = void 0;
186
186
  this.emit("update-downloaded");
@@ -1,4 +1,4 @@
1
- import { c as defaultIsLowerVersion, o as defaultVerifySignature, t as defaultUnzipFile, u as isUpdateJSON } from "./zip-DUK3opmV.mjs";
1
+ import { c as defaultIsLowerVersion, i as defaultVerifySignature, s as defaultDecompressFile, u as isUpdateJSON } from "./crypto-DZzMmoz2.mjs";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs/promises";
4
4
  //#region src/provider/base.ts
@@ -11,18 +11,18 @@ var BaseProvider = class {
11
11
  /**
12
12
  * @inheritdoc
13
13
  */
14
- verifySignaure = defaultVerifySignature;
14
+ verifySignature = defaultVerifySignature;
15
15
  /**
16
16
  * @inheritdoc
17
17
  */
18
- unzipFile = defaultUnzipFile;
18
+ decompressFile = defaultDecompressFile;
19
19
  };
20
20
  //#endregion
21
21
  //#region src/provider/local.ts
22
22
  /**
23
23
  * Update Provider for local development
24
24
  * - download update json from `{baseDir}/{versionPath}`
25
- * - download update asar from `{baseDir}/{name}-{version}.asar.gz`
25
+ * - download update asar from `{baseDir}/{name}-{version}.asar.br`
26
26
  *
27
27
  * This provider is useful for testing updates during development without
28
28
  * needing to deploy to a remote server.
@@ -30,7 +30,7 @@ var BaseProvider = class {
30
30
  */
31
31
  var LocalDevProvider = class extends BaseProvider {
32
32
  name = "LocalDevProvider";
33
- verifySignaure;
33
+ verifySignature;
34
34
  options;
35
35
  constructor(options) {
36
36
  super();
@@ -42,7 +42,7 @@ var LocalDevProvider = class extends BaseProvider {
42
42
  if (resolvedOptions.chunkSize <= 0) throw new Error("localDevUpdate.chunkSize must be greater than 0");
43
43
  if (resolvedOptions.chunkDelay < 0) throw new Error("localDevUpdate.chunkDelay must be greater than or equal to 0");
44
44
  this.options = resolvedOptions;
45
- this.verifySignaure = async function verifySignaure() {
45
+ this.verifySignature = async function verifySignature() {
46
46
  return true;
47
47
  };
48
48
  }
@@ -52,7 +52,7 @@ var LocalDevProvider = class extends BaseProvider {
52
52
  async downloadJSON(name, versionPath, signal) {
53
53
  signal.throwIfAborted();
54
54
  const { beta, version, ...info } = await this.readJSON(versionPath);
55
- const getURL = (ver) => path.join(this.options.baseDir, `${name}-${ver}.asar.gz`);
55
+ const getURL = (ver) => path.join(this.options.baseDir, `${name}-${ver}.asar.br`);
56
56
  return {
57
57
  ...info,
58
58
  version,
@@ -1,30 +1,30 @@
1
- const require_zip = require("./zip-D1dbBzw4.cjs");
1
+ const require_crypto = require("./crypto-BSky88mL.cjs");
2
2
  let node_path = require("node:path");
3
- node_path = require_zip.__toESM(node_path, 1);
3
+ node_path = require_crypto.__toESM(node_path, 1);
4
4
  let node_fs_promises = require("node:fs/promises");
5
- node_fs_promises = require_zip.__toESM(node_fs_promises, 1);
5
+ node_fs_promises = require_crypto.__toESM(node_fs_promises, 1);
6
6
  //#region src/provider/base.ts
7
7
  var BaseProvider = class {
8
8
  name = "BaseProvider";
9
9
  /**
10
10
  * @inheritdoc
11
11
  */
12
- isLowerVersion = require_zip.defaultIsLowerVersion;
12
+ isLowerVersion = require_crypto.defaultIsLowerVersion;
13
13
  /**
14
14
  * @inheritdoc
15
15
  */
16
- verifySignaure = require_zip.defaultVerifySignature;
16
+ verifySignature = require_crypto.defaultVerifySignature;
17
17
  /**
18
18
  * @inheritdoc
19
19
  */
20
- unzipFile = require_zip.defaultUnzipFile;
20
+ decompressFile = require_crypto.defaultDecompressFile;
21
21
  };
22
22
  //#endregion
23
23
  //#region src/provider/local.ts
24
24
  /**
25
25
  * Update Provider for local development
26
26
  * - download update json from `{baseDir}/{versionPath}`
27
- * - download update asar from `{baseDir}/{name}-{version}.asar.gz`
27
+ * - download update asar from `{baseDir}/{name}-{version}.asar.br`
28
28
  *
29
29
  * This provider is useful for testing updates during development without
30
30
  * needing to deploy to a remote server.
@@ -32,7 +32,7 @@ var BaseProvider = class {
32
32
  */
33
33
  var LocalDevProvider = class extends BaseProvider {
34
34
  name = "LocalDevProvider";
35
- verifySignaure;
35
+ verifySignature;
36
36
  options;
37
37
  constructor(options) {
38
38
  super();
@@ -44,7 +44,7 @@ var LocalDevProvider = class extends BaseProvider {
44
44
  if (resolvedOptions.chunkSize <= 0) throw new Error("localDevUpdate.chunkSize must be greater than 0");
45
45
  if (resolvedOptions.chunkDelay < 0) throw new Error("localDevUpdate.chunkDelay must be greater than or equal to 0");
46
46
  this.options = resolvedOptions;
47
- this.verifySignaure = async function verifySignaure() {
47
+ this.verifySignature = async function verifySignature() {
48
48
  return true;
49
49
  };
50
50
  }
@@ -54,7 +54,7 @@ var LocalDevProvider = class extends BaseProvider {
54
54
  async downloadJSON(name, versionPath, signal) {
55
55
  signal.throwIfAborted();
56
56
  const { beta, version, ...info } = await this.readJSON(versionPath);
57
- const getURL = (ver) => node_path.default.join(this.options.baseDir, `${name}-${ver}.asar.gz`);
57
+ const getURL = (ver) => node_path.default.join(this.options.baseDir, `${name}-${ver}.asar.br`);
58
58
  return {
59
59
  ...info,
60
60
  version,
@@ -78,7 +78,7 @@ var LocalDevProvider = class extends BaseProvider {
78
78
  const fullPath = node_path.default.join(this.options.baseDir, versionPath);
79
79
  const content = await node_fs_promises.default.readFile(fullPath, "utf-8");
80
80
  const json = JSON.parse(content);
81
- if (!require_zip.isUpdateJSON(json)) throw new Error(`Invalid update json: ${content}`);
81
+ if (!require_crypto.isUpdateJSON(json)) throw new Error(`Invalid update json: ${content}`);
82
82
  return json;
83
83
  }
84
84
  async emitProgress(fileBuffer, signal, onDownloading) {
package/dist/provider.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_local = require("./local-Daf8naRn.cjs");
3
- const require_download = require("./download-BYnkme_X.cjs");
2
+ const require_local = require("./local-DbXBG1D9.cjs");
3
+ const require_download = require("./download-KySXUyWC.cjs");
4
4
  let node_url = require("node:url");
5
5
  //#region src/provider/github/base.ts
6
6
  var BaseGitHubProvider = class extends require_local.BaseProvider {
@@ -21,7 +21,7 @@ var BaseGitHubProvider = class extends require_local.BaseProvider {
21
21
  }
22
22
  async downloadJSON(name, versionPath, signal) {
23
23
  const { beta, version, ...info } = await require_download.defaultDownloadUpdateJSON(await this.parseURL(await this.getVersionURL(versionPath, signal)), this.getHeaders("json"), signal);
24
- const getURL = (ver) => this.parseURL(`releases/download/v${ver}/${name}-${ver}.asar.gz`);
24
+ const getURL = (ver) => this.parseURL(`releases/download/v${ver}/${name}-${ver}.asar.br`);
25
25
  return {
26
26
  ...info,
27
27
  version,
@@ -77,7 +77,7 @@ var GitHubApiProvider = class extends BaseGitHubProvider {
77
77
  * Update Provider for Github repo
78
78
  * - check update from `https://github.com/{user}/{repo}/releases.atom`
79
79
  * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
80
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
80
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
81
81
  *
82
82
  * you can setup `urlHandler` in options to modify url before request
83
83
  * @param options provider options
@@ -107,7 +107,7 @@ var GitHubAtomProvider = class extends BaseGitHubProvider {
107
107
  /**
108
108
  * Update Provider for Github repo
109
109
  * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
110
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
110
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
111
111
  *
112
112
  * you can setup `urlHandler` in options to modify url before request
113
113
  * @param options provider options
@@ -1,5 +1,5 @@
1
- import { a as VersionJSON, i as UpdateInfoWithURL, m as Promisable, n as IProvider, r as URLHandler, t as DownloadingInfo } from "./types-BOqQ_r5Q.cjs";
2
- import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-BjWmHHAu.cjs";
1
+ import { a as VersionJSON, i as UpdateInfoWithURL, m as Promisable, n as IProvider, r as URLHandler, t as DownloadingInfo } from "./types-q78spjKB.cjs";
2
+ import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-BVmLiAvB.cjs";
3
3
  import { Buffer as Buffer$1 } from "node:buffer";
4
4
 
5
5
  //#region src/provider/base.d.ts
@@ -12,11 +12,11 @@ declare abstract class BaseProvider implements IProvider {
12
12
  /**
13
13
  * @inheritdoc
14
14
  */
15
- verifySignaure: IProvider["verifySignaure"];
15
+ verifySignature: IProvider["verifySignature"];
16
16
  /**
17
17
  * @inheritdoc
18
18
  */
19
- unzipFile: IProvider["unzipFile"];
19
+ decompressFile: IProvider["decompressFile"];
20
20
  /**
21
21
  * @inheritdoc
22
22
  */
@@ -42,13 +42,7 @@ interface BaseGitHubProviderOptions {
42
42
  */
43
43
  extraHeaders?: Record<string, string>;
44
44
  /**
45
- * Custom url handler ({@link https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40 some public CDN links})
46
- * @example
47
- * (url) => {
48
- * url.hostname = 'mirror.ghproxy.com'
49
- * url.pathname = 'https://github.com' + url.pathname
50
- * return url
51
- * }
45
+ * Custom url handler ([some public CDN links](https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40)). See {@link URLHandler} for details.
52
46
  */
53
47
  urlHandler?: URLHandler;
54
48
  }
@@ -94,7 +88,7 @@ declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOpti
94
88
  * Update Provider for Github repo
95
89
  * - check update from `https://github.com/{user}/{repo}/releases.atom`
96
90
  * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
97
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
91
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
98
92
  *
99
93
  * you can setup `urlHandler` in options to modify url before request
100
94
  * @param options provider options
@@ -119,7 +113,7 @@ interface GitHubProviderOptions extends BaseGitHubProviderOptions {
119
113
  /**
120
114
  * Update Provider for Github repo
121
115
  * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
122
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
116
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
123
117
  *
124
118
  * you can setup `urlHandler` in options to modify url before request
125
119
  * @param options provider options
@@ -151,7 +145,7 @@ interface LocalDevProviderOptions {
151
145
  /**
152
146
  * Update Provider for local development
153
147
  * - download update json from `{baseDir}/{versionPath}`
154
- * - download update asar from `{baseDir}/{name}-{version}.asar.gz`
148
+ * - download update asar from `{baseDir}/{name}-{version}.asar.br`
155
149
  *
156
150
  * This provider is useful for testing updates during development without
157
151
  * needing to deploy to a remote server.
@@ -159,7 +153,7 @@ interface LocalDevProviderOptions {
159
153
  */
160
154
  declare class LocalDevProvider extends BaseProvider {
161
155
  override name: string;
162
- override verifySignaure: IProvider["verifySignaure"];
156
+ override verifySignature: IProvider["verifySignature"];
163
157
  private readonly options;
164
158
  constructor(options: LocalDevProviderOptions);
165
159
  /**
@@ -1,5 +1,5 @@
1
- import { a as VersionJSON, i as UpdateInfoWithURL, m as Promisable, n as IProvider, r as URLHandler, t as DownloadingInfo } from "./types-BOqQ_r5Q.mjs";
2
- import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-DVWJfV3S.mjs";
1
+ import { a as VersionJSON, i as UpdateInfoWithURL, m as Promisable, n as IProvider, r as URLHandler, t as DownloadingInfo } from "./types-q78spjKB.mjs";
2
+ import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-GONr15zK.mjs";
3
3
  import { Buffer as Buffer$1 } from "node:buffer";
4
4
 
5
5
  //#region src/provider/base.d.ts
@@ -12,11 +12,11 @@ declare abstract class BaseProvider implements IProvider {
12
12
  /**
13
13
  * @inheritdoc
14
14
  */
15
- verifySignaure: IProvider["verifySignaure"];
15
+ verifySignature: IProvider["verifySignature"];
16
16
  /**
17
17
  * @inheritdoc
18
18
  */
19
- unzipFile: IProvider["unzipFile"];
19
+ decompressFile: IProvider["decompressFile"];
20
20
  /**
21
21
  * @inheritdoc
22
22
  */
@@ -42,13 +42,7 @@ interface BaseGitHubProviderOptions {
42
42
  */
43
43
  extraHeaders?: Record<string, string>;
44
44
  /**
45
- * Custom url handler ({@link https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40 some public CDN links})
46
- * @example
47
- * (url) => {
48
- * url.hostname = 'mirror.ghproxy.com'
49
- * url.pathname = 'https://github.com' + url.pathname
50
- * return url
51
- * }
45
+ * Custom url handler ([some public CDN links](https://github.com/XIU2/UserScript/blob/master/GithubEnhanced-High-Speed-Download.user.js#L40)). See {@link URLHandler} for details.
52
46
  */
53
47
  urlHandler?: URLHandler;
54
48
  }
@@ -94,7 +88,7 @@ declare class GitHubApiProvider extends BaseGitHubProvider<GitHubApiProviderOpti
94
88
  * Update Provider for Github repo
95
89
  * - check update from `https://github.com/{user}/{repo}/releases.atom`
96
90
  * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
97
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
91
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
98
92
  *
99
93
  * you can setup `urlHandler` in options to modify url before request
100
94
  * @param options provider options
@@ -119,7 +113,7 @@ interface GitHubProviderOptions extends BaseGitHubProviderOptions {
119
113
  /**
120
114
  * Update Provider for Github repo
121
115
  * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
122
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
116
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
123
117
  *
124
118
  * you can setup `urlHandler` in options to modify url before request
125
119
  * @param options provider options
@@ -151,7 +145,7 @@ interface LocalDevProviderOptions {
151
145
  /**
152
146
  * Update Provider for local development
153
147
  * - download update json from `{baseDir}/{versionPath}`
154
- * - download update asar from `{baseDir}/{name}-{version}.asar.gz`
148
+ * - download update asar from `{baseDir}/{name}-{version}.asar.br`
155
149
  *
156
150
  * This provider is useful for testing updates during development without
157
151
  * needing to deploy to a remote server.
@@ -159,7 +153,7 @@ interface LocalDevProviderOptions {
159
153
  */
160
154
  declare class LocalDevProvider extends BaseProvider {
161
155
  override name: string;
162
- override verifySignaure: IProvider["verifySignaure"];
156
+ override verifySignature: IProvider["verifySignature"];
163
157
  private readonly options;
164
158
  constructor(options: LocalDevProviderOptions);
165
159
  /**
package/dist/provider.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { n as BaseProvider, t as LocalDevProvider } from "./local-s1cw_vwb.mjs";
2
- import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-BGaAyi1Z.mjs";
1
+ import { n as BaseProvider, t as LocalDevProvider } from "./local-C5jw-7o5.mjs";
2
+ import { a as getHeader, i as downloadUtil, n as defaultDownloadText, o as resolveJson, r as defaultDownloadUpdateJSON, t as defaultDownloadAsar } from "./download-BdX4fZYM.mjs";
3
3
  import { URL } from "node:url";
4
4
  //#region src/provider/github/base.ts
5
5
  var BaseGitHubProvider = class extends BaseProvider {
@@ -20,7 +20,7 @@ var BaseGitHubProvider = class extends BaseProvider {
20
20
  }
21
21
  async downloadJSON(name, versionPath, signal) {
22
22
  const { beta, version, ...info } = await defaultDownloadUpdateJSON(await this.parseURL(await this.getVersionURL(versionPath, signal)), this.getHeaders("json"), signal);
23
- const getURL = (ver) => this.parseURL(`releases/download/v${ver}/${name}-${ver}.asar.gz`);
23
+ const getURL = (ver) => this.parseURL(`releases/download/v${ver}/${name}-${ver}.asar.br`);
24
24
  return {
25
25
  ...info,
26
26
  version,
@@ -76,7 +76,7 @@ var GitHubApiProvider = class extends BaseGitHubProvider {
76
76
  * Update Provider for Github repo
77
77
  * - check update from `https://github.com/{user}/{repo}/releases.atom`
78
78
  * - download update json from `https://github.com/{user}/{repo}/releases/download/v{version}/{versionPath}`
79
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
79
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
80
80
  *
81
81
  * you can setup `urlHandler` in options to modify url before request
82
82
  * @param options provider options
@@ -106,7 +106,7 @@ var GitHubAtomProvider = class extends BaseGitHubProvider {
106
106
  /**
107
107
  * Update Provider for Github repo
108
108
  * - download update json from `https://github.com/{user}/{repo}/raw/HEAD/{versionPath}`
109
- * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.gz`
109
+ * - download update asar from `https://github.com/{user}/{repo}/releases/download/v{version}/{name}-{version}.asar.br`
110
110
  *
111
111
  * you can setup `urlHandler` in options to modify url before request
112
112
  * @param options provider options