electrify-web 1.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.
- package/LICENSE.md +10 -0
- package/README.md +351 -0
- package/app/inject/_placeholder +0 -0
- package/app/lib/main.js +11772 -0
- package/app/lib/main.js.map +1 -0
- package/app/lib/preload.js +338 -0
- package/app/lib/preload.js.map +1 -0
- package/app/lib/static/login.css +57 -0
- package/app/lib/static/login.html +24 -0
- package/app/lib/static/login.js +10 -0
- package/app/nativefier.json +8 -0
- package/app/npm-shrinkwrap.json +1170 -0
- package/app/package.json +25 -0
- package/icon-scripts/convertToIcns +56 -0
- package/icon-scripts/convertToIco +39 -0
- package/icon-scripts/convertToIconset +68 -0
- package/icon-scripts/convertToPng +76 -0
- package/icon-scripts/convertToTrayIcon +32 -0
- package/lib/autologin/index.d.ts +25 -0
- package/lib/autologin/index.js +189 -0
- package/lib/autologin/index.js.map +1 -0
- package/lib/build/buildIcon.d.ts +6 -0
- package/lib/build/buildIcon.js +110 -0
- package/lib/build/buildIcon.js.map +1 -0
- package/lib/build/buildNativefierApp.d.ts +2 -0
- package/lib/build/buildNativefierApp.js +234 -0
- package/lib/build/buildNativefierApp.js.map +1 -0
- package/lib/build/prepareElectronApp.d.ts +15 -0
- package/lib/build/prepareElectronApp.js +220 -0
- package/lib/build/prepareElectronApp.js.map +1 -0
- package/lib/cli.d.ts +6 -0
- package/lib/cli.js +783 -0
- package/lib/cli.js.map +1 -0
- package/lib/config/index.d.ts +87 -0
- package/lib/config/index.js +460 -0
- package/lib/config/index.js.map +1 -0
- package/lib/constants.d.ts +11 -0
- package/lib/constants.js +58 -0
- package/lib/constants.js.map +1 -0
- package/lib/helpers/fsHelpers.d.ts +2 -0
- package/lib/helpers/fsHelpers.js +57 -0
- package/lib/helpers/fsHelpers.js.map +1 -0
- package/lib/helpers/helpers.d.ts +29 -0
- package/lib/helpers/helpers.js +225 -0
- package/lib/helpers/helpers.js.map +1 -0
- package/lib/helpers/iconShellHelpers.d.ts +5 -0
- package/lib/helpers/iconShellHelpers.js +91 -0
- package/lib/helpers/iconShellHelpers.js.map +1 -0
- package/lib/helpers/upgrade/executableHelpers.d.ts +2 -0
- package/lib/helpers/upgrade/executableHelpers.js +173 -0
- package/lib/helpers/upgrade/executableHelpers.js.map +1 -0
- package/lib/helpers/upgrade/plistInfoXMLHelpers.d.ts +2 -0
- package/lib/helpers/upgrade/plistInfoXMLHelpers.js +29 -0
- package/lib/helpers/upgrade/plistInfoXMLHelpers.js.map +1 -0
- package/lib/helpers/upgrade/rceditGet.d.ts +1 -0
- package/lib/helpers/upgrade/rceditGet.js +65 -0
- package/lib/helpers/upgrade/rceditGet.js.map +1 -0
- package/lib/helpers/upgrade/upgrade.d.ts +8 -0
- package/lib/helpers/upgrade/upgrade.js +193 -0
- package/lib/helpers/upgrade/upgrade.js.map +1 -0
- package/lib/infer/browsers/inferChromeVersion.d.ts +1 -0
- package/lib/infer/browsers/inferChromeVersion.js +73 -0
- package/lib/infer/browsers/inferChromeVersion.js.map +1 -0
- package/lib/infer/browsers/inferFirefoxVersion.d.ts +1 -0
- package/lib/infer/browsers/inferFirefoxVersion.js +61 -0
- package/lib/infer/browsers/inferFirefoxVersion.js.map +1 -0
- package/lib/infer/browsers/inferSafariVersion.d.ts +6 -0
- package/lib/infer/browsers/inferSafariVersion.js +96 -0
- package/lib/infer/browsers/inferSafariVersion.js.map +1 -0
- package/lib/infer/inferDefaults.d.ts +33 -0
- package/lib/infer/inferDefaults.js +272 -0
- package/lib/infer/inferDefaults.js.map +1 -0
- package/lib/infer/inferIcon.d.ts +1 -0
- package/lib/infer/inferIcon.js +116 -0
- package/lib/infer/inferIcon.js.map +1 -0
- package/lib/infer/inferOs.d.ts +4 -0
- package/lib/infer/inferOs.js +69 -0
- package/lib/infer/inferOs.js.map +1 -0
- package/lib/infer/inferTitle.d.ts +1 -0
- package/lib/infer/inferTitle.js +56 -0
- package/lib/infer/inferTitle.js.map +1 -0
- package/lib/integration-test.d.ts +1 -0
- package/lib/main.d.ts +11 -0
- package/lib/main.js +18 -0
- package/lib/main.js.map +1 -0
- package/lib/options/asyncConfig.d.ts +5 -0
- package/lib/options/asyncConfig.js +46 -0
- package/lib/options/asyncConfig.js.map +1 -0
- package/lib/options/fields/fields.d.ts +2 -0
- package/lib/options/fields/fields.js +32 -0
- package/lib/options/fields/fields.js.map +1 -0
- package/lib/options/fields/icon.d.ts +9 -0
- package/lib/options/fields/icon.js +106 -0
- package/lib/options/fields/icon.js.map +1 -0
- package/lib/options/fields/name.d.ts +9 -0
- package/lib/options/fields/name.js +59 -0
- package/lib/options/fields/name.js.map +1 -0
- package/lib/options/fields/userAgent.d.ts +10 -0
- package/lib/options/fields/userAgent.js +81 -0
- package/lib/options/fields/userAgent.js.map +1 -0
- package/lib/options/normalizeUrl.d.ts +1 -0
- package/lib/options/normalizeUrl.js +62 -0
- package/lib/options/normalizeUrl.js.map +1 -0
- package/lib/options/optionsMain.d.ts +6 -0
- package/lib/options/optionsMain.js +305 -0
- package/lib/options/optionsMain.js.map +1 -0
- package/lib/presets/index.d.ts +27 -0
- package/lib/presets/index.js +162 -0
- package/lib/presets/index.js.map +1 -0
- package/lib/pwa/index.d.ts +57 -0
- package/lib/pwa/index.js +241 -0
- package/lib/pwa/index.js.map +1 -0
- package/lib/security/index.d.ts +27 -0
- package/lib/security/index.js +202 -0
- package/lib/security/index.js.map +1 -0
- package/lib/updater/index.d.ts +34 -0
- package/lib/updater/index.js +264 -0
- package/lib/updater/index.js.map +1 -0
- package/lib/utils/parseUtils.d.ts +3 -0
- package/lib/utils/parseUtils.js +95 -0
- package/lib/utils/parseUtils.js.map +1 -0
- package/lib/utils/sanitizeFilename.d.ts +1 -0
- package/lib/utils/sanitizeFilename.js +53 -0
- package/lib/utils/sanitizeFilename.js.map +1 -0
- package/lib/wizard/index.d.ts +13 -0
- package/lib/wizard/index.js +252 -0
- package/lib/wizard/index.js.map +1 -0
- package/npm-shrinkwrap.json +8144 -0
- package/package.json +148 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getOptions = getOptions;
|
|
40
|
+
exports.normalizePlatform = normalizePlatform;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const axios_1 = __importDefault(require("axios"));
|
|
43
|
+
const debug = __importStar(require("debug"));
|
|
44
|
+
const log = __importStar(require("loglevel"));
|
|
45
|
+
// package.json is `require`d to let tsc strip the `src` folder by determining
|
|
46
|
+
// baseUrl=src. A static import would prevent that and cause an ugly extra `src` folder in `lib`
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
48
|
+
const packageJson = require('../../package.json');
|
|
49
|
+
const constants_1 = require("../constants");
|
|
50
|
+
const inferOs_1 = require("../infer/inferOs");
|
|
51
|
+
const asyncConfig_1 = require("./asyncConfig");
|
|
52
|
+
const normalizeUrl_1 = require("./normalizeUrl");
|
|
53
|
+
const parseUtils_1 = require("../utils/parseUtils");
|
|
54
|
+
const autologin_1 = require("../autologin");
|
|
55
|
+
const helpers_1 = require("../helpers/helpers");
|
|
56
|
+
const inferDefaults_1 = require("../infer/inferDefaults");
|
|
57
|
+
const path = __importStar(require("path"));
|
|
58
|
+
/**
|
|
59
|
+
* 如果是网络 URL,下载图标到本地
|
|
60
|
+
*/
|
|
61
|
+
async function resolveIcon(icon) {
|
|
62
|
+
if (!icon || (!icon.startsWith('http://') && !icon.startsWith('https://'))) {
|
|
63
|
+
return icon;
|
|
64
|
+
}
|
|
65
|
+
log.info(`📥 Downloading icon from ${icon}...`);
|
|
66
|
+
try {
|
|
67
|
+
const result = await (0, helpers_1.downloadFile)(icon);
|
|
68
|
+
if (!(result === null || result === void 0 ? void 0 : result.data))
|
|
69
|
+
return undefined;
|
|
70
|
+
const tmpDir = (0, helpers_1.getTempDir)('icon');
|
|
71
|
+
const ext = result.ext || path.extname(new URL(icon).pathname) || '.png';
|
|
72
|
+
const iconPath = path.join(tmpDir, `icon${ext}`);
|
|
73
|
+
await fs.promises.writeFile(iconPath, result.data);
|
|
74
|
+
log.info(`✅ Icon downloaded to ${iconPath}`);
|
|
75
|
+
return iconPath;
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
log.warn('Failed to download icon:', err.message);
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const SEMVER_VERSION_NUMBER_REGEX = /\d+\.\d+\.\d+[-_\w\d.]*/;
|
|
83
|
+
/**
|
|
84
|
+
* Process and validate raw user arguments
|
|
85
|
+
*/
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
87
|
+
async function getOptions(rawOptions) {
|
|
88
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
|
|
89
|
+
// PWA 自动检测
|
|
90
|
+
if (rawOptions.pwa && rawOptions.targetUrl) {
|
|
91
|
+
log.info('📱 Detecting PWA manifest...');
|
|
92
|
+
const pwaDefaults = await (0, inferDefaults_1.inferFromPWA)(rawOptions.targetUrl);
|
|
93
|
+
if (pwaDefaults.hasPWA) {
|
|
94
|
+
log.info('✅ PWA manifest found!');
|
|
95
|
+
if (pwaDefaults.name && !rawOptions.name) {
|
|
96
|
+
log.info(` Using name: ${pwaDefaults.name}`);
|
|
97
|
+
rawOptions.name = pwaDefaults.name;
|
|
98
|
+
}
|
|
99
|
+
if (pwaDefaults.icon && !rawOptions.icon) {
|
|
100
|
+
log.info(` Using icon from manifest`);
|
|
101
|
+
rawOptions.icon = pwaDefaults.icon;
|
|
102
|
+
}
|
|
103
|
+
if (pwaDefaults.backgroundColor && !rawOptions.backgroundColor) {
|
|
104
|
+
rawOptions.backgroundColor = pwaDefaults.backgroundColor;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
log.info('⚠️ No PWA manifest found, using defaults');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// 提前处理网络图标
|
|
112
|
+
const resolvedIcon = await resolveIcon(rawOptions.icon);
|
|
113
|
+
const options = {
|
|
114
|
+
packager: {
|
|
115
|
+
appCopyright: rawOptions.appCopyright,
|
|
116
|
+
appVersion: rawOptions.appVersion,
|
|
117
|
+
arch: (_a = rawOptions.arch) !== null && _a !== void 0 ? _a : (0, inferOs_1.inferArch)(),
|
|
118
|
+
asar: (_c = (_b = rawOptions.asar) !== null && _b !== void 0 ? _b : rawOptions.conceal) !== null && _c !== void 0 ? _c : false,
|
|
119
|
+
buildVersion: rawOptions.buildVersion,
|
|
120
|
+
darwinDarkModeSupport: (_d = rawOptions.darwinDarkModeSupport) !== null && _d !== void 0 ? _d : false,
|
|
121
|
+
dir: constants_1.PLACEHOLDER_APP_DIR,
|
|
122
|
+
electronVersion: (_e = rawOptions.electronVersion) !== null && _e !== void 0 ? _e : constants_1.DEFAULT_ELECTRON_VERSION,
|
|
123
|
+
icon: resolvedIcon,
|
|
124
|
+
name: typeof rawOptions.name === 'string' ? rawOptions.name : '',
|
|
125
|
+
out: (_f = rawOptions.out) !== null && _f !== void 0 ? _f : process.cwd(),
|
|
126
|
+
overwrite: rawOptions.overwrite,
|
|
127
|
+
quiet: (_g = rawOptions.quiet) !== null && _g !== void 0 ? _g : false,
|
|
128
|
+
platform: rawOptions.platform,
|
|
129
|
+
portable: (_h = rawOptions.portable) !== null && _h !== void 0 ? _h : false,
|
|
130
|
+
targetUrl: rawOptions.targetUrl === undefined
|
|
131
|
+
? '' // We'll plug this in later via upgrade
|
|
132
|
+
: (0, normalizeUrl_1.normalizeUrl)(rawOptions.targetUrl),
|
|
133
|
+
tmpdir: false, // workaround for electron-packager#375
|
|
134
|
+
upgrade: rawOptions.upgrade !== undefined ? true : false,
|
|
135
|
+
upgradeFrom: (_j = rawOptions.upgradeFrom) !== null && _j !== void 0 ? _j : (rawOptions.upgrade || undefined),
|
|
136
|
+
win32metadata: (_k = rawOptions.win32metadata) !== null && _k !== void 0 ? _k : {
|
|
137
|
+
ProductName: rawOptions.name,
|
|
138
|
+
InternalName: rawOptions.name,
|
|
139
|
+
FileDescription: rawOptions.name,
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
nativefier: {
|
|
143
|
+
accessibilityPrompt: true,
|
|
144
|
+
alwaysOnTop: (_l = rawOptions.alwaysOnTop) !== null && _l !== void 0 ? _l : false,
|
|
145
|
+
backgroundColor: rawOptions.backgroundColor,
|
|
146
|
+
basicAuthPassword: rawOptions.basicAuthPassword,
|
|
147
|
+
basicAuthUsername: rawOptions.basicAuthUsername,
|
|
148
|
+
blockExternalUrls: (_m = rawOptions.blockExternalUrls) !== null && _m !== void 0 ? _m : false,
|
|
149
|
+
bookmarksMenu: rawOptions.bookmarksMenu,
|
|
150
|
+
bounce: (_o = rawOptions.bounce) !== null && _o !== void 0 ? _o : false,
|
|
151
|
+
browserwindowOptions: rawOptions.browserwindowOptions,
|
|
152
|
+
clearCache: (_p = rawOptions.clearCache) !== null && _p !== void 0 ? _p : false,
|
|
153
|
+
counter: (_q = rawOptions.counter) !== null && _q !== void 0 ? _q : false,
|
|
154
|
+
crashReporter: rawOptions.crashReporter,
|
|
155
|
+
disableContextMenu: (_r = rawOptions.disableContextMenu) !== null && _r !== void 0 ? _r : false,
|
|
156
|
+
disableDevTools: (_s = rawOptions.disableDevTools) !== null && _s !== void 0 ? _s : false,
|
|
157
|
+
disableGpu: (_t = rawOptions.disableGpu) !== null && _t !== void 0 ? _t : false,
|
|
158
|
+
diskCacheSize: rawOptions.diskCacheSize,
|
|
159
|
+
enableEs3Apis: (_u = rawOptions.enableEs3Apis) !== null && _u !== void 0 ? _u : false,
|
|
160
|
+
fastQuit: (_v = rawOptions.fastQuit) !== null && _v !== void 0 ? _v : false,
|
|
161
|
+
fileDownloadOptions: rawOptions.fileDownloadOptions,
|
|
162
|
+
flashPluginDir: rawOptions.flashPath,
|
|
163
|
+
fullScreen: (_w = rawOptions.fullScreen) !== null && _w !== void 0 ? _w : false,
|
|
164
|
+
globalShortcuts: undefined,
|
|
165
|
+
hideWindowFrame: (_x = rawOptions.hideWindowFrame) !== null && _x !== void 0 ? _x : false,
|
|
166
|
+
ignoreCertificate: (_y = rawOptions.ignoreCertificate) !== null && _y !== void 0 ? _y : false,
|
|
167
|
+
ignoreGpuBlacklist: (_z = rawOptions.ignoreGpuBlacklist) !== null && _z !== void 0 ? _z : false,
|
|
168
|
+
inject: (_0 = rawOptions.inject) !== null && _0 !== void 0 ? _0 : [],
|
|
169
|
+
insecure: (_1 = rawOptions.insecure) !== null && _1 !== void 0 ? _1 : false,
|
|
170
|
+
internalUrls: rawOptions.internalUrls,
|
|
171
|
+
lang: rawOptions.lang,
|
|
172
|
+
maximize: (_2 = rawOptions.maximize) !== null && _2 !== void 0 ? _2 : false,
|
|
173
|
+
nativefierVersion: packageJson.version,
|
|
174
|
+
quiet: (_3 = rawOptions.quiet) !== null && _3 !== void 0 ? _3 : false,
|
|
175
|
+
processEnvs: rawOptions.processEnvs,
|
|
176
|
+
proxyRules: rawOptions.proxyRules,
|
|
177
|
+
showMenuBar: (_4 = rawOptions.showMenuBar) !== null && _4 !== void 0 ? _4 : false,
|
|
178
|
+
singleInstance: (_5 = rawOptions.singleInstance) !== null && _5 !== void 0 ? _5 : false,
|
|
179
|
+
strictInternalUrls: (_6 = rawOptions.strictInternalUrls) !== null && _6 !== void 0 ? _6 : false,
|
|
180
|
+
titleBarStyle: rawOptions.titleBarStyle,
|
|
181
|
+
tray: (_7 = rawOptions.tray) !== null && _7 !== void 0 ? _7 : 'false',
|
|
182
|
+
userAgent: rawOptions.userAgent,
|
|
183
|
+
userAgentHonest: (_8 = rawOptions.userAgentHonest) !== null && _8 !== void 0 ? _8 : false,
|
|
184
|
+
verbose: (_9 = rawOptions.verbose) !== null && _9 !== void 0 ? _9 : false,
|
|
185
|
+
versionString: rawOptions.versionString,
|
|
186
|
+
width: (_10 = rawOptions.width) !== null && _10 !== void 0 ? _10 : 1280,
|
|
187
|
+
height: (_11 = rawOptions.height) !== null && _11 !== void 0 ? _11 : 800,
|
|
188
|
+
minWidth: rawOptions.minWidth,
|
|
189
|
+
minHeight: rawOptions.minHeight,
|
|
190
|
+
maxWidth: rawOptions.maxWidth,
|
|
191
|
+
maxHeight: rawOptions.maxHeight,
|
|
192
|
+
widevine: (_12 = rawOptions.widevine) !== null && _12 !== void 0 ? _12 : false,
|
|
193
|
+
x: rawOptions.x,
|
|
194
|
+
y: rawOptions.y,
|
|
195
|
+
zoom: (_13 = rawOptions.zoom) !== null && _13 !== void 0 ? _13 : 1.0,
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
if (options.nativefier.verbose) {
|
|
199
|
+
log.setLevel('trace');
|
|
200
|
+
try {
|
|
201
|
+
debug.enable('electron-packager');
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
log.error('Failed to enable electron-packager debug output. This should not happen,', 'and suggests their internals changed. Please report an issue.', err);
|
|
205
|
+
}
|
|
206
|
+
log.debug('Running in verbose mode! This will produce a mountain of logs and', 'is recommended only for troubleshooting or if you like Shakespeare.');
|
|
207
|
+
}
|
|
208
|
+
else if (options.nativefier.quiet) {
|
|
209
|
+
log.setLevel('silent');
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
log.setLevel('info');
|
|
213
|
+
}
|
|
214
|
+
let requestedElectronBefore16 = false;
|
|
215
|
+
if (options.packager.electronVersion) {
|
|
216
|
+
const requestedVersion = options.packager.electronVersion;
|
|
217
|
+
if (!SEMVER_VERSION_NUMBER_REGEX.exec(requestedVersion)) {
|
|
218
|
+
throw `Invalid Electron version number "${requestedVersion}". Aborting.`;
|
|
219
|
+
}
|
|
220
|
+
const requestedMajorVersion = parseInt(requestedVersion.split('.')[0], 10);
|
|
221
|
+
if (requestedMajorVersion < constants_1.ELECTRON_MAJOR_VERSION) {
|
|
222
|
+
log.warn(`\nATTENTION: Using **old** Electron version ${requestedVersion} as requested.`, "\nIt's untested, bugs and horror will happen, you're on your own.", `\nSimply abort & re-run without passing the version flag to default to ${constants_1.DEFAULT_ELECTRON_VERSION}`);
|
|
223
|
+
}
|
|
224
|
+
if (requestedMajorVersion < 16) {
|
|
225
|
+
requestedElectronBefore16 = true;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (options.nativefier.widevine) {
|
|
229
|
+
const widevineSuffix = requestedElectronBefore16 ? '-wvvmp' : '+wvcus';
|
|
230
|
+
log.debug(`Using widevine release suffix "${widevineSuffix}"`);
|
|
231
|
+
const widevineElectronVersion = `${options.packager.electronVersion}${widevineSuffix}`;
|
|
232
|
+
try {
|
|
233
|
+
await axios_1.default.get(`https://github.com/castlabs/electron-releases/releases/tag/v${widevineElectronVersion}`);
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
throw new Error(`\nERROR: castLabs Electron version "${widevineElectronVersion}" does not exist. \nVerify versions at https://github.com/castlabs/electron-releases/releases. \nAborting.`);
|
|
237
|
+
}
|
|
238
|
+
options.packager.electronVersion = widevineElectronVersion;
|
|
239
|
+
process.env.ELECTRON_MIRROR =
|
|
240
|
+
'https://github.com/castlabs/electron-releases/releases/download/';
|
|
241
|
+
log.warn(`\nATTENTION: Using the **unofficial** Electron from castLabs`, "\nIt implements Google's Widevine Content Decryption Module (CDM) for DRM-enabled playback.", `\nSimply abort & re-run without passing the widevine flag to default to ${options.packager.electronVersion !== undefined
|
|
242
|
+
? options.packager.electronVersion
|
|
243
|
+
: constants_1.DEFAULT_ELECTRON_VERSION}`);
|
|
244
|
+
}
|
|
245
|
+
if (options.nativefier.flashPluginDir) {
|
|
246
|
+
options.nativefier.insecure = true;
|
|
247
|
+
}
|
|
248
|
+
if (options.nativefier.userAgentHonest && options.nativefier.userAgent) {
|
|
249
|
+
options.nativefier.userAgent = undefined;
|
|
250
|
+
log.warn(`\nATTENTION: user-agent AND user-agent-honest/honest were provided. In this case, honesty wins. user-agent will be ignored`);
|
|
251
|
+
}
|
|
252
|
+
options.packager.platform = normalizePlatform(options.packager.platform);
|
|
253
|
+
if (options.nativefier.maxWidth &&
|
|
254
|
+
options.nativefier.width &&
|
|
255
|
+
options.nativefier.width > options.nativefier.maxWidth) {
|
|
256
|
+
options.nativefier.width = options.nativefier.maxWidth;
|
|
257
|
+
}
|
|
258
|
+
if (options.nativefier.maxHeight &&
|
|
259
|
+
options.nativefier.height &&
|
|
260
|
+
options.nativefier.height > options.nativefier.maxHeight) {
|
|
261
|
+
options.nativefier.height = options.nativefier.maxHeight;
|
|
262
|
+
}
|
|
263
|
+
if (options.packager.portable) {
|
|
264
|
+
log.info('Building app as portable.', 'SECURITY WARNING: all data accumulated in the app folder after running it', '(including login information, cache, cookies) will be saved', 'in the app folder. If this app is then shared with others,', 'THEY WILL HAVE THAT ACCUMULATED DATA, POTENTIALLY INCLUDING ACCESS', 'TO ANY ACCOUNTS YOU LOGGED INTO.');
|
|
265
|
+
}
|
|
266
|
+
if (rawOptions.globalShortcuts) {
|
|
267
|
+
if (typeof rawOptions.globalShortcuts === 'string') {
|
|
268
|
+
// This is a file we got over the command line
|
|
269
|
+
log.debug('Using global shortcuts file at', rawOptions.globalShortcuts);
|
|
270
|
+
const globalShortcuts = (0, parseUtils_1.parseJson)(fs.readFileSync(rawOptions.globalShortcuts).toString());
|
|
271
|
+
options.nativefier.globalShortcuts = globalShortcuts;
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
// This is an object we got from an existing config in an upgrade
|
|
275
|
+
log.debug('Using global shortcuts object', rawOptions.globalShortcuts);
|
|
276
|
+
options.nativefier.globalShortcuts = rawOptions.globalShortcuts;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// 处理自动登录
|
|
280
|
+
if (rawOptions.autoLogin) {
|
|
281
|
+
const autoLoginScript = (0, autologin_1.createAutoLoginInjectFile)(rawOptions.autoLogin);
|
|
282
|
+
if (autoLoginScript) {
|
|
283
|
+
if (!options.nativefier.inject) {
|
|
284
|
+
options.nativefier.inject = [];
|
|
285
|
+
}
|
|
286
|
+
options.nativefier.inject.push(autoLoginScript);
|
|
287
|
+
log.info('🔐 Auto-login script will be injected');
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
await (0, asyncConfig_1.asyncConfig)(options);
|
|
291
|
+
return options;
|
|
292
|
+
}
|
|
293
|
+
function normalizePlatform(platform) {
|
|
294
|
+
if (!platform) {
|
|
295
|
+
return (0, inferOs_1.inferPlatform)();
|
|
296
|
+
}
|
|
297
|
+
if (platform.toLowerCase() === 'windows') {
|
|
298
|
+
return 'win32';
|
|
299
|
+
}
|
|
300
|
+
if (['osx', 'mac', 'macos'].includes(platform.toLowerCase())) {
|
|
301
|
+
return 'darwin';
|
|
302
|
+
}
|
|
303
|
+
return platform.toLowerCase();
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=optionsMain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optionsMain.js","sourceRoot":"","sources":["../../src/options/optionsMain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 配置预设系统
|
|
3
|
+
* 为常见使用场景提供优化的默认配置
|
|
4
|
+
*/
|
|
5
|
+
import { RawOptions } from '../../shared/src/options/model';
|
|
6
|
+
export interface Preset {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
options: Partial<RawOptions>;
|
|
10
|
+
}
|
|
11
|
+
export declare const presets: Record<string, Preset>;
|
|
12
|
+
/**
|
|
13
|
+
* 获取预设配置
|
|
14
|
+
*/
|
|
15
|
+
export declare function getPreset(name: string): Preset | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* 列出所有可用预设
|
|
18
|
+
*/
|
|
19
|
+
export declare function listPresets(): Preset[];
|
|
20
|
+
/**
|
|
21
|
+
* 应用预设到选项
|
|
22
|
+
*/
|
|
23
|
+
export declare function applyPreset(options: RawOptions, presetName: string): RawOptions;
|
|
24
|
+
/**
|
|
25
|
+
* 根据 URL 智能推荐预设
|
|
26
|
+
*/
|
|
27
|
+
export declare function suggestPreset(url: string): string | undefined;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 配置预设系统
|
|
4
|
+
* 为常见使用场景提供优化的默认配置
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.presets = void 0;
|
|
8
|
+
exports.getPreset = getPreset;
|
|
9
|
+
exports.listPresets = listPresets;
|
|
10
|
+
exports.applyPreset = applyPreset;
|
|
11
|
+
exports.suggestPreset = suggestPreset;
|
|
12
|
+
exports.presets = {
|
|
13
|
+
// 社交媒体应用预设
|
|
14
|
+
social: {
|
|
15
|
+
name: 'Social Media',
|
|
16
|
+
description: 'Optimized for social media apps (WhatsApp, Telegram, Discord)',
|
|
17
|
+
options: {
|
|
18
|
+
singleInstance: true,
|
|
19
|
+
tray: 'true',
|
|
20
|
+
counter: true,
|
|
21
|
+
bounce: true,
|
|
22
|
+
clearCache: false,
|
|
23
|
+
fullScreen: false,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
// 生产力工具预设
|
|
27
|
+
productivity: {
|
|
28
|
+
name: 'Productivity',
|
|
29
|
+
description: 'Optimized for productivity apps (Notion, Trello, Slack)',
|
|
30
|
+
options: {
|
|
31
|
+
singleInstance: true,
|
|
32
|
+
tray: 'true',
|
|
33
|
+
maximize: false,
|
|
34
|
+
width: 1400,
|
|
35
|
+
height: 900,
|
|
36
|
+
clearCache: false,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
// 媒体播放预设
|
|
40
|
+
media: {
|
|
41
|
+
name: 'Media',
|
|
42
|
+
description: 'Optimized for media streaming (YouTube, Netflix, Spotify)',
|
|
43
|
+
options: {
|
|
44
|
+
singleInstance: true,
|
|
45
|
+
widevine: false, // 用户需要手动启用 DRM
|
|
46
|
+
fullScreen: false,
|
|
47
|
+
width: 1280,
|
|
48
|
+
height: 720,
|
|
49
|
+
userAgentHonest: true,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
// 邮件客户端预设
|
|
53
|
+
email: {
|
|
54
|
+
name: 'Email',
|
|
55
|
+
description: 'Optimized for email clients (Gmail, Outlook)',
|
|
56
|
+
options: {
|
|
57
|
+
singleInstance: true,
|
|
58
|
+
tray: 'true',
|
|
59
|
+
counter: true,
|
|
60
|
+
bounce: true,
|
|
61
|
+
width: 1200,
|
|
62
|
+
height: 800,
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
// 开发工具预设
|
|
66
|
+
developer: {
|
|
67
|
+
name: 'Developer Tools',
|
|
68
|
+
description: 'Optimized for developer tools (GitHub, GitLab, Jira)',
|
|
69
|
+
options: {
|
|
70
|
+
singleInstance: false,
|
|
71
|
+
disableDevTools: false,
|
|
72
|
+
width: 1400,
|
|
73
|
+
height: 900,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
// 最小化预设
|
|
77
|
+
minimal: {
|
|
78
|
+
name: 'Minimal',
|
|
79
|
+
description: 'Minimal configuration with basic defaults',
|
|
80
|
+
options: {
|
|
81
|
+
singleInstance: false,
|
|
82
|
+
tray: 'false',
|
|
83
|
+
showMenuBar: false,
|
|
84
|
+
disableContextMenu: false,
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
// 安全优先预设
|
|
88
|
+
secure: {
|
|
89
|
+
name: 'Secure',
|
|
90
|
+
description: 'Security-focused configuration',
|
|
91
|
+
options: {
|
|
92
|
+
singleInstance: true,
|
|
93
|
+
clearCache: true,
|
|
94
|
+
disableDevTools: true,
|
|
95
|
+
disableContextMenu: true,
|
|
96
|
+
blockExternalUrls: true,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
// Kiosk 模式预设
|
|
100
|
+
kiosk: {
|
|
101
|
+
name: 'Kiosk',
|
|
102
|
+
description: 'Full-screen kiosk mode for public displays',
|
|
103
|
+
options: {
|
|
104
|
+
fullScreen: true,
|
|
105
|
+
singleInstance: true,
|
|
106
|
+
disableDevTools: true,
|
|
107
|
+
disableContextMenu: true,
|
|
108
|
+
hideWindowFrame: true,
|
|
109
|
+
alwaysOnTop: true,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* 获取预设配置
|
|
115
|
+
*/
|
|
116
|
+
function getPreset(name) {
|
|
117
|
+
return exports.presets[name.toLowerCase()];
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* 列出所有可用预设
|
|
121
|
+
*/
|
|
122
|
+
function listPresets() {
|
|
123
|
+
return Object.values(exports.presets);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 应用预设到选项
|
|
127
|
+
*/
|
|
128
|
+
function applyPreset(options, presetName) {
|
|
129
|
+
const preset = getPreset(presetName);
|
|
130
|
+
if (!preset) {
|
|
131
|
+
throw new Error(`Unknown preset: ${presetName}. Available: ${Object.keys(exports.presets).join(', ')}`);
|
|
132
|
+
}
|
|
133
|
+
return { ...preset.options, ...options };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 根据 URL 智能推荐预设
|
|
137
|
+
*/
|
|
138
|
+
function suggestPreset(url) {
|
|
139
|
+
const urlLower = url.toLowerCase();
|
|
140
|
+
// 社交媒体
|
|
141
|
+
if (/whatsapp|telegram|discord|messenger|slack|teams/.test(urlLower)) {
|
|
142
|
+
return 'social';
|
|
143
|
+
}
|
|
144
|
+
// 邮件
|
|
145
|
+
if (/gmail|outlook|mail|proton/.test(urlLower)) {
|
|
146
|
+
return 'email';
|
|
147
|
+
}
|
|
148
|
+
// 媒体
|
|
149
|
+
if (/youtube|netflix|spotify|twitch|bilibili/.test(urlLower)) {
|
|
150
|
+
return 'media';
|
|
151
|
+
}
|
|
152
|
+
// 生产力
|
|
153
|
+
if (/notion|trello|asana|monday|clickup|todoist/.test(urlLower)) {
|
|
154
|
+
return 'productivity';
|
|
155
|
+
}
|
|
156
|
+
// 开发工具
|
|
157
|
+
if (/github|gitlab|bitbucket|jira|confluence/.test(urlLower)) {
|
|
158
|
+
return 'developer';
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PWA (Progressive Web App) 支持
|
|
3
|
+
* 解析 Web App Manifest,提取应用信息
|
|
4
|
+
*/
|
|
5
|
+
export interface WebAppManifest {
|
|
6
|
+
name?: string;
|
|
7
|
+
short_name?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
start_url?: string;
|
|
10
|
+
display?: 'fullscreen' | 'standalone' | 'minimal-ui' | 'browser';
|
|
11
|
+
orientation?: string;
|
|
12
|
+
theme_color?: string;
|
|
13
|
+
background_color?: string;
|
|
14
|
+
icons?: Array<{
|
|
15
|
+
src: string;
|
|
16
|
+
sizes?: string;
|
|
17
|
+
type?: string;
|
|
18
|
+
purpose?: string;
|
|
19
|
+
}>;
|
|
20
|
+
scope?: string;
|
|
21
|
+
lang?: string;
|
|
22
|
+
categories?: string[];
|
|
23
|
+
}
|
|
24
|
+
export interface PWAInfo {
|
|
25
|
+
manifest?: WebAppManifest;
|
|
26
|
+
manifestUrl?: string;
|
|
27
|
+
themeColor?: string;
|
|
28
|
+
appleTouchIcon?: string;
|
|
29
|
+
favicon?: string;
|
|
30
|
+
title?: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 获取网站的 PWA 信息
|
|
35
|
+
*/
|
|
36
|
+
export declare function fetchPWAInfo(url: string): Promise<PWAInfo>;
|
|
37
|
+
/**
|
|
38
|
+
* 从 PWA 信息中获取最佳图标 URL
|
|
39
|
+
*/
|
|
40
|
+
export declare function getBestIconFromManifest(manifest: WebAppManifest, baseUrl: string): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* 将 PWA manifest 的 display 模式转换为 Nativefier 选项
|
|
43
|
+
*/
|
|
44
|
+
export declare function pwaDisplayToOptions(display?: string): Partial<{
|
|
45
|
+
fullScreen: boolean;
|
|
46
|
+
hideWindowFrame: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* 从 PWA 信息生成 Nativefier 选项建议
|
|
50
|
+
*/
|
|
51
|
+
export declare function pwaInfoToOptions(info: PWAInfo, baseUrl: string): Partial<{
|
|
52
|
+
name: string;
|
|
53
|
+
icon: string;
|
|
54
|
+
backgroundColor: string;
|
|
55
|
+
fullScreen: boolean;
|
|
56
|
+
hideWindowFrame: boolean;
|
|
57
|
+
}>;
|