@alphamatica/app-updater 1.0.4 → 1.0.6
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/CHANGELOG.md +34 -0
- package/README.md +39 -1
- package/dist/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +12 -7
- package/dist/ui.js.map +1 -1
- package/dist/updater.d.ts +13 -0
- package/dist/updater.d.ts.map +1 -1
- package/dist/updater.js +146 -21
- package/dist/updater.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,40 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.6] - 2026-01-12
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **DMG support for macOS**: Full support for installing updates from DMG disk images
|
|
13
|
+
- Automatic mounting and unmounting of DMG files
|
|
14
|
+
- Direct installation without temporary extraction
|
|
15
|
+
- Proper cleanup of mounted volumes
|
|
16
|
+
- **New `log` event**: Provides real-time installation progress messages
|
|
17
|
+
- Replaces console.log calls with structured events
|
|
18
|
+
- All messages in English for consistency
|
|
19
|
+
- Useful for displaying installation status in UI
|
|
20
|
+
- **Update process protection**: Prevents duplicate update attempts
|
|
21
|
+
- Auto-check timer stops during download/installation
|
|
22
|
+
- `isUpdateInProgress` flag prevents concurrent updates
|
|
23
|
+
- Proper flag reset on errors or completion
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- All log messages now in English
|
|
28
|
+
- Improved error handling during DMG installation
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Fixed issue with multiple simultaneous update checks when using frequent auto-check intervals
|
|
33
|
+
- Prevented redundant downloads when auto-check runs during active update process
|
|
34
|
+
|
|
35
|
+
## [1.0.5] - 2025-12-15
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- Fixed UI window sizes to prevent vertical scrolling on Windows with display scaling
|
|
40
|
+
- Added `overflow: hidden` to prevent scrollbars in update dialogs
|
|
41
|
+
|
|
8
42
|
## [1.0.4] - 2025-12-15
|
|
9
43
|
|
|
10
44
|
### Fixed
|
package/README.md
CHANGED
|
@@ -6,6 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
Клиентский пакет для интеграции автоматических обновлений в Electron приложения.
|
|
8
8
|
|
|
9
|
+
## Возможности
|
|
10
|
+
|
|
11
|
+
- ✅ Поддержка Windows, macOS, Linux
|
|
12
|
+
- ✅ Множество форматов: ZIP, TAR.GZ, DMG, EXE, AppImage
|
|
13
|
+
- ✅ Автоматическая проверка обновлений
|
|
14
|
+
- ✅ Отслеживание прогресса загрузки
|
|
15
|
+
- ✅ Встроенный UI для диалогов обновления
|
|
16
|
+
- ✅ Защита от повторных обновлений
|
|
17
|
+
- ✅ События для интеграции с UI
|
|
18
|
+
- ✅ TypeScript поддержка
|
|
19
|
+
|
|
9
20
|
## Установка
|
|
10
21
|
|
|
11
22
|
```bash
|
|
@@ -53,6 +64,11 @@ updater.on('update-downloaded', (info) => {
|
|
|
53
64
|
console.log(`Версия ${info.version} загружена`);
|
|
54
65
|
});
|
|
55
66
|
|
|
67
|
+
updater.on('log', (message) => {
|
|
68
|
+
console.log(`[Updater] ${message}`);
|
|
69
|
+
// Отображение статуса установки в UI
|
|
70
|
+
});
|
|
71
|
+
|
|
56
72
|
updater.on('error', (error) => {
|
|
57
73
|
console.error('Ошибка:', error.message);
|
|
58
74
|
});
|
|
@@ -141,6 +157,7 @@ new Updater(config: UpdaterConfig)
|
|
|
141
157
|
- `update-not-available` - обновлений нет
|
|
142
158
|
- `download-progress` - прогресс загрузки
|
|
143
159
|
- `update-downloaded` - загрузка завершена
|
|
160
|
+
- `log` - информационные сообщения о процессе установки
|
|
144
161
|
- `error` - ошибка
|
|
145
162
|
|
|
146
163
|
### UpdaterUI
|
|
@@ -159,6 +176,20 @@ new UpdaterUI(options: UpdaterUIOptions)
|
|
|
159
176
|
|
|
160
177
|
- `checkForUpdates(): Promise<void>` - проверить и показать UI
|
|
161
178
|
|
|
179
|
+
## Поддерживаемые форматы
|
|
180
|
+
|
|
181
|
+
- **Windows**: `.zip`, `.exe`
|
|
182
|
+
- **macOS**: `.zip`, `.tar.gz`, `.dmg`
|
|
183
|
+
- **Linux**: `.tar.gz`, `.AppImage`
|
|
184
|
+
|
|
185
|
+
### DMG для macOS
|
|
186
|
+
|
|
187
|
+
Полная поддержка DMG образов для macOS:
|
|
188
|
+
- Автоматическое монтирование и размонтирование DMG
|
|
189
|
+
- Прямая установка без временной распаковки
|
|
190
|
+
- Корректная очистка смонтированных томов
|
|
191
|
+
- Автоматический перезапуск приложения
|
|
192
|
+
|
|
162
193
|
## Типы
|
|
163
194
|
|
|
164
195
|
```typescript
|
|
@@ -181,6 +212,13 @@ interface DownloadProgress {
|
|
|
181
212
|
}
|
|
182
213
|
```
|
|
183
214
|
|
|
215
|
+
## Защита от повторных обновлений
|
|
216
|
+
|
|
217
|
+
Автоматическая защита от одновременных попыток обновления:
|
|
218
|
+
- Таймер автопроверки останавливается при начале скачивания
|
|
219
|
+
- Повторные вызовы `checkForUpdates()` игнорируются во время активного обновления
|
|
220
|
+
- Флаг сбрасывается при ошибках или после успешной установки
|
|
221
|
+
|
|
184
222
|
## Лицензия
|
|
185
223
|
|
|
186
|
-
Proprietary. Copyright (c)
|
|
224
|
+
Proprietary. Copyright (c) 2026 Alphamatica. All rights reserved.
|
package/dist/types.d.ts
CHANGED
|
@@ -25,12 +25,66 @@ export interface DownloadProgress {
|
|
|
25
25
|
}
|
|
26
26
|
export type Platform = 'linux' | 'win32' | 'darwin';
|
|
27
27
|
export type Arch = 'x64' | 'arm64' | 'ia32';
|
|
28
|
+
/**
|
|
29
|
+
* Events emitted by the Updater during the update lifecycle.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* updater.on('checking-for-update', () => {
|
|
34
|
+
* console.log('Checking for updates...');
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* updater.on('update-available', (info) => {
|
|
38
|
+
* console.log(`Update available: ${info.version}`);
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* updater.on('download-progress', (progress) => {
|
|
42
|
+
* console.log(`Downloaded ${progress.percent}%`);
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* updater.on('log', (message) => {
|
|
46
|
+
* console.log(`[Updater] ${message}`);
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* updater.on('error', (error) => {
|
|
50
|
+
* console.error('Update error:', error);
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
28
54
|
export interface UpdaterEvents {
|
|
55
|
+
/**
|
|
56
|
+
* Emitted when the updater starts checking for updates.
|
|
57
|
+
*/
|
|
29
58
|
'checking-for-update': () => void;
|
|
59
|
+
/**
|
|
60
|
+
* Emitted when an update is available.
|
|
61
|
+
* @param info - Information about the available update
|
|
62
|
+
*/
|
|
30
63
|
'update-available': (info: UpdateInfo) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Emitted when no update is available.
|
|
66
|
+
*/
|
|
31
67
|
'update-not-available': () => void;
|
|
68
|
+
/**
|
|
69
|
+
* Emitted during the download process to report progress.
|
|
70
|
+
* @param progress - Current download progress information
|
|
71
|
+
*/
|
|
32
72
|
'download-progress': (progress: DownloadProgress) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Emitted when the update has been successfully downloaded.
|
|
75
|
+
* @param info - Information about the downloaded update
|
|
76
|
+
*/
|
|
33
77
|
'update-downloaded': (info: UpdateInfo) => void;
|
|
78
|
+
/**
|
|
79
|
+
* Emitted during installation to provide status updates.
|
|
80
|
+
* Use this event to display installation progress to users.
|
|
81
|
+
* @param message - Human-readable status message in English
|
|
82
|
+
*/
|
|
83
|
+
log: (message: string) => void;
|
|
84
|
+
/**
|
|
85
|
+
* Emitted when an error occurs during any update operation.
|
|
86
|
+
* @param error - The error that occurred
|
|
87
|
+
*/
|
|
34
88
|
error: (error: Error) => void;
|
|
35
89
|
}
|
|
36
90
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAElC;;;OAGG;IACH,kBAAkB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAEnC;;;OAGG;IACH,mBAAmB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE1D;;;OAGG;IACH,mBAAmB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAEhD;;;;OAIG;IACH,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/B;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B"}
|
package/dist/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAwJD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,qBAAqB,CAA+B;gBAEhD,OAAO,EAAE,gBAAgB;IAkBrC,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,kBAAkB;IA0D1B,OAAO,CAAC,iBAAiB;IA0CzB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,cAAc;IAgBhB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
|
package/dist/ui.js
CHANGED
|
@@ -8,14 +8,19 @@ const COMMON_STYLES = `
|
|
|
8
8
|
padding: 0;
|
|
9
9
|
box-sizing: border-box;
|
|
10
10
|
}
|
|
11
|
+
html, body {
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 100%;
|
|
15
|
+
}
|
|
11
16
|
body {
|
|
12
17
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
|
|
13
18
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
14
|
-
min-height:
|
|
19
|
+
min-height: 100%;
|
|
15
20
|
display: flex;
|
|
16
21
|
align-items: center;
|
|
17
22
|
justify-content: center;
|
|
18
|
-
padding:
|
|
23
|
+
padding: 16px;
|
|
19
24
|
-webkit-app-region: drag;
|
|
20
25
|
}
|
|
21
26
|
.card {
|
|
@@ -223,7 +228,7 @@ class UpdaterUI {
|
|
|
223
228
|
this.currentWindow = null;
|
|
224
229
|
}
|
|
225
230
|
showUpdateDialog(info) {
|
|
226
|
-
const win = this.createWindow(
|
|
231
|
+
const win = this.createWindow(460, 380);
|
|
227
232
|
const html = `
|
|
228
233
|
<!DOCTYPE html>
|
|
229
234
|
<html>
|
|
@@ -262,7 +267,7 @@ class UpdaterUI {
|
|
|
262
267
|
});
|
|
263
268
|
}
|
|
264
269
|
showProgressWindow() {
|
|
265
|
-
const win = this.createWindow(
|
|
270
|
+
const win = this.createWindow(460, 320);
|
|
266
271
|
const html = `
|
|
267
272
|
<!DOCTYPE html>
|
|
268
273
|
<html>
|
|
@@ -317,7 +322,7 @@ class UpdaterUI {
|
|
|
317
322
|
win.loadURL(`data:text/html;charset=utf-8,${encodeURIComponent(html)}`);
|
|
318
323
|
}
|
|
319
324
|
showInstallDialog(info) {
|
|
320
|
-
const win = this.createWindow(
|
|
325
|
+
const win = this.createWindow(460, 360);
|
|
321
326
|
const html = `
|
|
322
327
|
<!DOCTYPE html>
|
|
323
328
|
<html>
|
|
@@ -356,7 +361,7 @@ class UpdaterUI {
|
|
|
356
361
|
});
|
|
357
362
|
}
|
|
358
363
|
showInstallingWindow() {
|
|
359
|
-
const win = this.createWindow(
|
|
364
|
+
const win = this.createWindow(460, 300);
|
|
360
365
|
const html = `
|
|
361
366
|
<!DOCTYPE html>
|
|
362
367
|
<html>
|
|
@@ -376,7 +381,7 @@ class UpdaterUI {
|
|
|
376
381
|
win.loadURL(`data:text/html;charset=utf-8,${encodeURIComponent(html)}`);
|
|
377
382
|
}
|
|
378
383
|
showErrorDialog(message) {
|
|
379
|
-
const win = this.createWindow(
|
|
384
|
+
const win = this.createWindow(460, 340);
|
|
380
385
|
const errorIcon = `<svg viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>`;
|
|
381
386
|
const html = `
|
|
382
387
|
<!DOCTYPE html>
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAU1D,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
package/dist/updater.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare class Updater extends EventEmitter {
|
|
|
6
6
|
private updateInfo;
|
|
7
7
|
private downloadedFile;
|
|
8
8
|
private checkTimer;
|
|
9
|
+
private isUpdateInProgress;
|
|
9
10
|
constructor(config: UpdaterConfig);
|
|
10
11
|
/**
|
|
11
12
|
* Очищает старые временные файлы от предыдущих обновлений
|
|
@@ -20,6 +21,18 @@ export declare class Updater extends EventEmitter {
|
|
|
20
21
|
*/
|
|
21
22
|
private getAppRootPath;
|
|
22
23
|
installUpdate(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Монтирует DMG файл и возвращает путь к точке монтирования
|
|
26
|
+
*/
|
|
27
|
+
private mountDmg;
|
|
28
|
+
/**
|
|
29
|
+
* Размонтирует DMG по пути точки монтирования
|
|
30
|
+
*/
|
|
31
|
+
private unmountDmg;
|
|
32
|
+
/**
|
|
33
|
+
* Устанавливает приложение из DMG образа (только для macOS)
|
|
34
|
+
*/
|
|
35
|
+
private installFromDmg;
|
|
23
36
|
/**
|
|
24
37
|
* Находит корневую папку обновления внутри распакованного архива.
|
|
25
38
|
* Архив может содержать файлы напрямую или в подпапке (win-unpacked, linux-unpacked, etc.)
|
package/dist/updater.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAIL,UAAU,EACV,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,qBAAa,OAAQ,SAAQ,YAAY;IACvC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAA+B;
|
|
1
|
+
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAIL,UAAU,EACV,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,qBAAa,OAAQ,SAAQ,YAAY;IACvC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,kBAAkB,CAAkB;gBAEhC,MAAM,EAAE,aAAa;IAyBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAI7E,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAIvF,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC;IAwCtC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IA8EvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAchB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA2GpC;;OAEG;YACW,QAAQ;IAyBtB;;OAEG;YACW,UAAU;IAaxB;;OAEG;YACW,cAAc;IA8D5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;YACW,aAAa;IAsB3B;;;OAGG;YACW,iBAAiB;IAuG/B,cAAc,IAAI,IAAI;IAQtB,aAAa,IAAI,IAAI;IAOrB,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAG3B"}
|
package/dist/updater.js
CHANGED
|
@@ -52,6 +52,7 @@ class Updater extends events_1.EventEmitter {
|
|
|
52
52
|
this.updateInfo = null;
|
|
53
53
|
this.downloadedFile = null;
|
|
54
54
|
this.checkTimer = null;
|
|
55
|
+
this.isUpdateInProgress = false;
|
|
55
56
|
console.log('[Updater] Constructor called');
|
|
56
57
|
this.config = {
|
|
57
58
|
channel: 'stable',
|
|
@@ -112,6 +113,10 @@ class Updater extends events_1.EventEmitter {
|
|
|
112
113
|
return super.emit(event, ...args);
|
|
113
114
|
}
|
|
114
115
|
async checkForUpdates() {
|
|
116
|
+
if (this.isUpdateInProgress) {
|
|
117
|
+
this.emit('log', 'Update already in progress, skipping check');
|
|
118
|
+
return this.updateInfo || { updateAvailable: false };
|
|
119
|
+
}
|
|
115
120
|
this.emit('checking-for-update');
|
|
116
121
|
try {
|
|
117
122
|
const platform = process.platform;
|
|
@@ -146,6 +151,10 @@ class Updater extends events_1.EventEmitter {
|
|
|
146
151
|
if (!this.updateInfo?.downloadUrl) {
|
|
147
152
|
throw new Error('No update available to download');
|
|
148
153
|
}
|
|
154
|
+
// Останавливаем автопроверку и устанавливаем флаг
|
|
155
|
+
this.stopAutoCheck();
|
|
156
|
+
this.isUpdateInProgress = true;
|
|
157
|
+
this.emit('log', 'Starting download, auto-check stopped');
|
|
149
158
|
const tempDir = electron_1.app.getPath('temp');
|
|
150
159
|
const fileName = this.updateInfo.fileName || `update-${this.updateInfo.version}`;
|
|
151
160
|
const filePath = path.join(tempDir, fileName);
|
|
@@ -184,6 +193,10 @@ class Updater extends events_1.EventEmitter {
|
|
|
184
193
|
this.downloadedFile = filePath;
|
|
185
194
|
console.log('[Updater] Download complete, emitting update-downloaded');
|
|
186
195
|
this.emit('update-downloaded', this.updateInfo);
|
|
196
|
+
// Если не autoInstall, сбрасываем флаг после скачивания
|
|
197
|
+
if (!this.config.autoInstall) {
|
|
198
|
+
this.isUpdateInProgress = false;
|
|
199
|
+
}
|
|
187
200
|
console.log('[Updater] autoInstall:', this.config.autoInstall);
|
|
188
201
|
if (this.config.autoInstall) {
|
|
189
202
|
console.log('[Updater] autoInstall is true, calling installUpdate');
|
|
@@ -193,6 +206,8 @@ class Updater extends events_1.EventEmitter {
|
|
|
193
206
|
return filePath;
|
|
194
207
|
}
|
|
195
208
|
catch (error) {
|
|
209
|
+
// Сбрасываем флаг при ошибке
|
|
210
|
+
this.isUpdateInProgress = false;
|
|
196
211
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
197
212
|
this.emit('error', err);
|
|
198
213
|
throw err;
|
|
@@ -218,83 +233,193 @@ class Updater extends events_1.EventEmitter {
|
|
|
218
233
|
if (!this.downloadedFile || !this.updateInfo) {
|
|
219
234
|
throw new Error('No update downloaded');
|
|
220
235
|
}
|
|
236
|
+
// Устанавливаем флаг если еще не установлен
|
|
237
|
+
if (!this.isUpdateInProgress) {
|
|
238
|
+
this.stopAutoCheck();
|
|
239
|
+
this.isUpdateInProgress = true;
|
|
240
|
+
}
|
|
241
|
+
this.emit('log', 'Starting update installation...');
|
|
242
|
+
const ext = path.extname(this.downloadedFile).toLowerCase();
|
|
243
|
+
// Для DMG на macOS используем специальную установку (не требует распаковки)
|
|
244
|
+
if (ext === '.dmg' && process.platform === 'darwin') {
|
|
245
|
+
this.emit('log', 'Installing from DMG image...');
|
|
246
|
+
try {
|
|
247
|
+
await this.installFromDmg(this.downloadedFile);
|
|
248
|
+
this.downloadedFile = null;
|
|
249
|
+
// Приложение перезапустится, флаг сбросится автоматически
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
this.isUpdateInProgress = false;
|
|
253
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
254
|
+
this.emit('error', err);
|
|
255
|
+
throw err;
|
|
256
|
+
}
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
// Для остальных форматов флаг сбросится при перезапуске через helper
|
|
260
|
+
// Для остальных форматов нужна распаковка
|
|
221
261
|
const exePath = electron_1.app.getPath('exe');
|
|
222
262
|
const appRoot = this.getAppRootPath();
|
|
223
263
|
const tempDir = electron_1.app.getPath('temp');
|
|
224
264
|
const extractDir = path.join(tempDir, `update-${Date.now()}`);
|
|
225
|
-
console.log('[Updater] installUpdate started');
|
|
226
|
-
console.log('[Updater] exePath:', exePath);
|
|
227
|
-
console.log('[Updater] appRoot:', appRoot);
|
|
228
|
-
console.log('[Updater] extractDir:', extractDir);
|
|
229
|
-
console.log('[Updater] downloadedFile:', this.downloadedFile);
|
|
230
265
|
try {
|
|
231
266
|
// Создаём временную директорию для распаковки
|
|
232
267
|
if (fs.existsSync(extractDir)) {
|
|
233
268
|
fs.rmSync(extractDir, { recursive: true });
|
|
234
269
|
}
|
|
235
270
|
fs.mkdirSync(extractDir, { recursive: true });
|
|
236
|
-
|
|
237
|
-
const ext = path.extname(this.downloadedFile).toLowerCase();
|
|
238
|
-
console.log('[Updater] File extension:', ext);
|
|
271
|
+
this.emit('log', 'Preparing to extract update...');
|
|
239
272
|
// Распаковываем во временную директорию
|
|
240
273
|
// ВАЖНО: Отключаем asar support чтобы Electron не пытался читать app.asar как архив
|
|
241
274
|
const originalAsarSupport = process.noAsar;
|
|
242
275
|
process.noAsar = true;
|
|
243
276
|
if (ext === '.zip') {
|
|
244
|
-
|
|
277
|
+
this.emit('log', 'Extracting ZIP archive...');
|
|
245
278
|
await (0, extract_zip_1.default)(this.downloadedFile, { dir: extractDir });
|
|
246
|
-
|
|
279
|
+
this.emit('log', 'ZIP archive extracted');
|
|
247
280
|
}
|
|
248
281
|
else if (ext === '.gz' || this.downloadedFile.endsWith('.tar.gz')) {
|
|
249
|
-
|
|
282
|
+
this.emit('log', 'Extracting TAR.GZ archive...');
|
|
250
283
|
await tar.extract({
|
|
251
284
|
file: this.downloadedFile,
|
|
252
285
|
cwd: extractDir,
|
|
253
286
|
});
|
|
254
|
-
|
|
287
|
+
this.emit('log', 'TAR.GZ archive extracted');
|
|
255
288
|
}
|
|
256
289
|
else if (ext === '.appimage' || ext === '.exe') {
|
|
257
290
|
// Для исполняемых файлов просто копируем
|
|
258
|
-
|
|
291
|
+
this.emit('log', 'Copying executable file...');
|
|
259
292
|
const targetPath = path.join(extractDir, path.basename(this.downloadedFile));
|
|
260
293
|
fs.copyFileSync(this.downloadedFile, targetPath);
|
|
261
294
|
if (ext === '.appimage') {
|
|
262
295
|
fs.chmodSync(targetPath, 0o755);
|
|
263
296
|
}
|
|
264
|
-
|
|
297
|
+
this.emit('log', 'Executable file copied');
|
|
265
298
|
}
|
|
266
299
|
// Восстанавливаем asar support
|
|
267
300
|
process.noAsar = originalAsarSupport;
|
|
268
301
|
// Удаляем скачанный архив
|
|
269
|
-
|
|
302
|
+
this.emit('log', 'Removing temporary files...');
|
|
270
303
|
fs.unlinkSync(this.downloadedFile);
|
|
271
304
|
this.downloadedFile = null;
|
|
272
|
-
console.log('[Updater] Downloaded file deleted');
|
|
273
305
|
// Определяем реальную папку с файлами обновления
|
|
274
306
|
// Архив может содержать файлы напрямую или в подпапке (например, win-unpacked/)
|
|
275
307
|
// Снова отключаем asar для безопасного чтения директорий
|
|
276
308
|
process.noAsar = true;
|
|
277
|
-
|
|
309
|
+
this.emit('log', 'Searching for update files...');
|
|
278
310
|
const sourceDir = this.findUpdateRoot(extractDir);
|
|
279
|
-
console.log('[Updater] sourceDir:', sourceDir);
|
|
280
311
|
process.noAsar = originalAsarSupport;
|
|
281
312
|
// Используем helper скрипт для всех платформ — это надёжнее,
|
|
282
313
|
// т.к. нельзя заменить запущенный бинарник
|
|
283
|
-
|
|
314
|
+
this.emit('log', 'Starting installation process...');
|
|
284
315
|
await this.installWithHelper(sourceDir, appRoot, exePath, extractDir);
|
|
285
|
-
|
|
316
|
+
// Приложение перезапустится через helper, флаг сбросится автоматически
|
|
286
317
|
}
|
|
287
318
|
catch (error) {
|
|
288
|
-
console.error('[Updater] Error:', error);
|
|
289
319
|
// Очищаем временную директорию при ошибке
|
|
290
320
|
if (fs.existsSync(extractDir)) {
|
|
291
321
|
fs.rmSync(extractDir, { recursive: true });
|
|
292
322
|
}
|
|
323
|
+
this.isUpdateInProgress = false;
|
|
293
324
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
294
325
|
this.emit('error', err);
|
|
295
326
|
throw err;
|
|
296
327
|
}
|
|
297
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* Монтирует DMG файл и возвращает путь к точке монтирования
|
|
331
|
+
*/
|
|
332
|
+
async mountDmg(dmgPath) {
|
|
333
|
+
return new Promise((resolve, reject) => {
|
|
334
|
+
const { exec } = require('child_process');
|
|
335
|
+
exec(`hdiutil attach "${dmgPath}" -nobrowse -noautoopen`, (error, stdout) => {
|
|
336
|
+
if (error) {
|
|
337
|
+
reject(new Error(`Failed to mount DMG: ${error.message}`));
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
// Парсим вывод hdiutil для получения точки монтирования
|
|
341
|
+
// Формат: /dev/disk2s1 Apple_HFS /Volumes/MyApp
|
|
342
|
+
const lines = stdout.split('\n');
|
|
343
|
+
for (const line of lines) {
|
|
344
|
+
const match = line.match(/\/Volumes\/[^\s]+/);
|
|
345
|
+
if (match) {
|
|
346
|
+
resolve(match[0]);
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
reject(new Error('Could not find mount point in hdiutil output'));
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Размонтирует DMG по пути точки монтирования
|
|
356
|
+
*/
|
|
357
|
+
async unmountDmg(mountPoint) {
|
|
358
|
+
return new Promise((resolve, reject) => {
|
|
359
|
+
const { exec } = require('child_process');
|
|
360
|
+
exec(`hdiutil detach "${mountPoint}" -force`, (error) => {
|
|
361
|
+
if (error) {
|
|
362
|
+
reject(new Error(`Failed to unmount DMG: ${error.message}`));
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
resolve();
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Устанавливает приложение из DMG образа (только для macOS)
|
|
371
|
+
*/
|
|
372
|
+
async installFromDmg(dmgPath) {
|
|
373
|
+
let mountPoint = null;
|
|
374
|
+
try {
|
|
375
|
+
// Монтируем DMG
|
|
376
|
+
this.emit('log', 'Mounting DMG image...');
|
|
377
|
+
mountPoint = await this.mountDmg(dmgPath);
|
|
378
|
+
// Ищем .app файл в смонтированном образе
|
|
379
|
+
const entries = fs.readdirSync(mountPoint);
|
|
380
|
+
const appFile = entries.find(e => e.endsWith('.app'));
|
|
381
|
+
if (!appFile) {
|
|
382
|
+
throw new Error('No .app file found in DMG');
|
|
383
|
+
}
|
|
384
|
+
const sourceApp = path.join(mountPoint, appFile);
|
|
385
|
+
const appRoot = this.getAppRootPath();
|
|
386
|
+
// Удаляем старую версию если существует
|
|
387
|
+
if (fs.existsSync(appRoot)) {
|
|
388
|
+
this.emit('log', 'Removing old version...');
|
|
389
|
+
fs.rmSync(appRoot, { recursive: true, force: true });
|
|
390
|
+
}
|
|
391
|
+
// Копируем новую версию
|
|
392
|
+
this.emit('log', 'Copying new application version...');
|
|
393
|
+
await this.copyDirectory(sourceApp, appRoot);
|
|
394
|
+
// Размонтируем DMG
|
|
395
|
+
this.emit('log', 'Unmounting DMG image...');
|
|
396
|
+
await this.unmountDmg(mountPoint);
|
|
397
|
+
mountPoint = null;
|
|
398
|
+
// Удаляем скачанный DMG
|
|
399
|
+
this.emit('log', 'Cleaning up temporary files...');
|
|
400
|
+
fs.unlinkSync(dmgPath);
|
|
401
|
+
this.emit('log', 'Installation complete. Restarting application...');
|
|
402
|
+
// Перезапускаем приложение
|
|
403
|
+
const { exec } = require('child_process');
|
|
404
|
+
exec(`open "${appRoot}"`);
|
|
405
|
+
// Закрываем текущее приложение
|
|
406
|
+
setTimeout(() => {
|
|
407
|
+
electron_1.app.quit();
|
|
408
|
+
}, 500);
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
// Пытаемся размонтировать DMG в случае ошибки
|
|
412
|
+
if (mountPoint) {
|
|
413
|
+
try {
|
|
414
|
+
await this.unmountDmg(mountPoint);
|
|
415
|
+
}
|
|
416
|
+
catch {
|
|
417
|
+
// Игнорируем ошибки размонтирования
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
throw error;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
298
423
|
/**
|
|
299
424
|
* Находит корневую папку обновления внутри распакованного архива.
|
|
300
425
|
* Архив может содержать файлы напрямую или в подпапке (win-unpacked, linux-unpacked, etc.)
|
package/dist/updater.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,iDAAsC;AACtC,+CAAiC;AACjC,uCAA+B;AAC/B,mCAAsC;AACtC,8DAAqC;AACrC,uCAAyB;AACzB,2CAA6B;AAC7B,yCAA2B;AAU3B,MAAa,OAAQ,SAAQ,qBAAY;IAOvC,YAAY,MAAqB;QAC/B,KAAK,EAAE,CAAC;QALF,eAAU,GAAsB,IAAI,CAAC;QACrC,mBAAc,GAAkB,IAAI,CAAC;QACrC,eAAU,GAA0B,IAAI,CAAC;QAI/C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,CAAC;YAChB,GAAG,MAAM;SACV,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC9B,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,oDAAoD;QACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,cAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,gCAAgC;gBAChC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,CAAC;wBACH,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,CAAC;oBAAC,MAAM,CAAC;wBACP,8CAA8C;oBAChD,CAAC;gBACH,CAAC;gBACD,gCAAgC;gBAChC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,CAAC;wBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBACP,oBAAoB;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED,EAAE,CAAgC,KAAQ,EAAE,QAA0B;QACpE,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAgC,KAAQ,EAAE,GAAG,IAAkC;QACjF,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAoB,CAAC;YAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAY,CAAC;YAElC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAa,mBAAmB,EAAE;gBACvE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBAC1C,QAAQ;gBACR,IAAI;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;YAEhC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE/C,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBAC7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,OAAO,GAAG,cAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;gBAC3B,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;gBAChC,YAAY,EAAE,QAAQ;gBACtB,kBAAkB,EAAE,aAAa,CAAC,EAAE;oBAClC,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;wBACxB,MAAM,QAAQ,GAAqB;4BACjC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;4BACvE,WAAW,EAAE,aAAa,CAAC,MAAM;4BACjC,KAAK,EAAE,aAAa,CAAC,KAAK;4BAC1B,cAAc,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC;yBACxC,CAAC;wBACF,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE1E,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,MAAM,OAAO,GAAG,cAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,gFAAgF;YAChF,wDAAwD;YACxD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,cAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,cAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,8CAA8C;YAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YAE9C,wCAAwC;YACxC,oFAAoF;YACpF,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAEtB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBACzD,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,MAAM,GAAG,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,IAAI,CAAC,cAAc;oBACzB,GAAG,EAAE,UAAU;iBAChB,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACjD,yCAAyC;gBACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC7E,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBACjD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;oBACxB,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAED,+BAA+B;YAC/B,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC;YAErC,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YAEjD,iDAAiD;YACjD,gFAAgF;YAChF,yDAAyD;YACzD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC;YAErC,6DAA6D;YAC7D,2CAA2C;YAC3C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YACzC,0CAA0C;YAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,UAAkB;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,sDAAsD;QACtD,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACzE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrE,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,8EAA8E;YAC9E,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACxC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,UAAU,CAC5D,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,IAAY;QACnD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBACD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAC7B,SAAiB,EACjB,OAAe,EACf,OAAe,EACf,UAAkB;QAElB,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAExB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG;;;;kBAIH,SAAS;kBACT,OAAO;gBACT,OAAO;mBACJ,UAAU;WAClB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBb,CAAC;YACI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAE3D,IAAA,qBAAK,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;YAE5C,mDAAmD;YACnD,MAAM,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjD,CAAC,CAAC,SAAS,OAAO,GAAG;gBACrB,CAAC,CAAC,uCAAuC,CAAC;YAE5C,MAAM,MAAM,GAAG;cACP,SAAS;cACT,OAAO;YACT,OAAO;eACJ,UAAU;MACnB,GAAG;;;;;;;;;;;;;;;;;;;;EAoBP,SAAS;;;CAGV,CAAC;YACI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAEtD,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;gBAC1B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAED,gDAAgD;QAChD,cAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACzC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;CACF;AAzdD,0BAydC"}
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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"}
|