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.
Files changed (129) hide show
  1. package/LICENSE.md +10 -0
  2. package/README.md +351 -0
  3. package/app/inject/_placeholder +0 -0
  4. package/app/lib/main.js +11772 -0
  5. package/app/lib/main.js.map +1 -0
  6. package/app/lib/preload.js +338 -0
  7. package/app/lib/preload.js.map +1 -0
  8. package/app/lib/static/login.css +57 -0
  9. package/app/lib/static/login.html +24 -0
  10. package/app/lib/static/login.js +10 -0
  11. package/app/nativefier.json +8 -0
  12. package/app/npm-shrinkwrap.json +1170 -0
  13. package/app/package.json +25 -0
  14. package/icon-scripts/convertToIcns +56 -0
  15. package/icon-scripts/convertToIco +39 -0
  16. package/icon-scripts/convertToIconset +68 -0
  17. package/icon-scripts/convertToPng +76 -0
  18. package/icon-scripts/convertToTrayIcon +32 -0
  19. package/lib/autologin/index.d.ts +25 -0
  20. package/lib/autologin/index.js +189 -0
  21. package/lib/autologin/index.js.map +1 -0
  22. package/lib/build/buildIcon.d.ts +6 -0
  23. package/lib/build/buildIcon.js +110 -0
  24. package/lib/build/buildIcon.js.map +1 -0
  25. package/lib/build/buildNativefierApp.d.ts +2 -0
  26. package/lib/build/buildNativefierApp.js +234 -0
  27. package/lib/build/buildNativefierApp.js.map +1 -0
  28. package/lib/build/prepareElectronApp.d.ts +15 -0
  29. package/lib/build/prepareElectronApp.js +220 -0
  30. package/lib/build/prepareElectronApp.js.map +1 -0
  31. package/lib/cli.d.ts +6 -0
  32. package/lib/cli.js +783 -0
  33. package/lib/cli.js.map +1 -0
  34. package/lib/config/index.d.ts +87 -0
  35. package/lib/config/index.js +460 -0
  36. package/lib/config/index.js.map +1 -0
  37. package/lib/constants.d.ts +11 -0
  38. package/lib/constants.js +58 -0
  39. package/lib/constants.js.map +1 -0
  40. package/lib/helpers/fsHelpers.d.ts +2 -0
  41. package/lib/helpers/fsHelpers.js +57 -0
  42. package/lib/helpers/fsHelpers.js.map +1 -0
  43. package/lib/helpers/helpers.d.ts +29 -0
  44. package/lib/helpers/helpers.js +225 -0
  45. package/lib/helpers/helpers.js.map +1 -0
  46. package/lib/helpers/iconShellHelpers.d.ts +5 -0
  47. package/lib/helpers/iconShellHelpers.js +91 -0
  48. package/lib/helpers/iconShellHelpers.js.map +1 -0
  49. package/lib/helpers/upgrade/executableHelpers.d.ts +2 -0
  50. package/lib/helpers/upgrade/executableHelpers.js +173 -0
  51. package/lib/helpers/upgrade/executableHelpers.js.map +1 -0
  52. package/lib/helpers/upgrade/plistInfoXMLHelpers.d.ts +2 -0
  53. package/lib/helpers/upgrade/plistInfoXMLHelpers.js +29 -0
  54. package/lib/helpers/upgrade/plistInfoXMLHelpers.js.map +1 -0
  55. package/lib/helpers/upgrade/rceditGet.d.ts +1 -0
  56. package/lib/helpers/upgrade/rceditGet.js +65 -0
  57. package/lib/helpers/upgrade/rceditGet.js.map +1 -0
  58. package/lib/helpers/upgrade/upgrade.d.ts +8 -0
  59. package/lib/helpers/upgrade/upgrade.js +193 -0
  60. package/lib/helpers/upgrade/upgrade.js.map +1 -0
  61. package/lib/infer/browsers/inferChromeVersion.d.ts +1 -0
  62. package/lib/infer/browsers/inferChromeVersion.js +73 -0
  63. package/lib/infer/browsers/inferChromeVersion.js.map +1 -0
  64. package/lib/infer/browsers/inferFirefoxVersion.d.ts +1 -0
  65. package/lib/infer/browsers/inferFirefoxVersion.js +61 -0
  66. package/lib/infer/browsers/inferFirefoxVersion.js.map +1 -0
  67. package/lib/infer/browsers/inferSafariVersion.d.ts +6 -0
  68. package/lib/infer/browsers/inferSafariVersion.js +96 -0
  69. package/lib/infer/browsers/inferSafariVersion.js.map +1 -0
  70. package/lib/infer/inferDefaults.d.ts +33 -0
  71. package/lib/infer/inferDefaults.js +272 -0
  72. package/lib/infer/inferDefaults.js.map +1 -0
  73. package/lib/infer/inferIcon.d.ts +1 -0
  74. package/lib/infer/inferIcon.js +116 -0
  75. package/lib/infer/inferIcon.js.map +1 -0
  76. package/lib/infer/inferOs.d.ts +4 -0
  77. package/lib/infer/inferOs.js +69 -0
  78. package/lib/infer/inferOs.js.map +1 -0
  79. package/lib/infer/inferTitle.d.ts +1 -0
  80. package/lib/infer/inferTitle.js +56 -0
  81. package/lib/infer/inferTitle.js.map +1 -0
  82. package/lib/integration-test.d.ts +1 -0
  83. package/lib/main.d.ts +11 -0
  84. package/lib/main.js +18 -0
  85. package/lib/main.js.map +1 -0
  86. package/lib/options/asyncConfig.d.ts +5 -0
  87. package/lib/options/asyncConfig.js +46 -0
  88. package/lib/options/asyncConfig.js.map +1 -0
  89. package/lib/options/fields/fields.d.ts +2 -0
  90. package/lib/options/fields/fields.js +32 -0
  91. package/lib/options/fields/fields.js.map +1 -0
  92. package/lib/options/fields/icon.d.ts +9 -0
  93. package/lib/options/fields/icon.js +106 -0
  94. package/lib/options/fields/icon.js.map +1 -0
  95. package/lib/options/fields/name.d.ts +9 -0
  96. package/lib/options/fields/name.js +59 -0
  97. package/lib/options/fields/name.js.map +1 -0
  98. package/lib/options/fields/userAgent.d.ts +10 -0
  99. package/lib/options/fields/userAgent.js +81 -0
  100. package/lib/options/fields/userAgent.js.map +1 -0
  101. package/lib/options/normalizeUrl.d.ts +1 -0
  102. package/lib/options/normalizeUrl.js +62 -0
  103. package/lib/options/normalizeUrl.js.map +1 -0
  104. package/lib/options/optionsMain.d.ts +6 -0
  105. package/lib/options/optionsMain.js +305 -0
  106. package/lib/options/optionsMain.js.map +1 -0
  107. package/lib/presets/index.d.ts +27 -0
  108. package/lib/presets/index.js +162 -0
  109. package/lib/presets/index.js.map +1 -0
  110. package/lib/pwa/index.d.ts +57 -0
  111. package/lib/pwa/index.js +241 -0
  112. package/lib/pwa/index.js.map +1 -0
  113. package/lib/security/index.d.ts +27 -0
  114. package/lib/security/index.js +202 -0
  115. package/lib/security/index.js.map +1 -0
  116. package/lib/updater/index.d.ts +34 -0
  117. package/lib/updater/index.js +264 -0
  118. package/lib/updater/index.js.map +1 -0
  119. package/lib/utils/parseUtils.d.ts +3 -0
  120. package/lib/utils/parseUtils.js +95 -0
  121. package/lib/utils/parseUtils.js.map +1 -0
  122. package/lib/utils/sanitizeFilename.d.ts +1 -0
  123. package/lib/utils/sanitizeFilename.js +53 -0
  124. package/lib/utils/sanitizeFilename.js.map +1 -0
  125. package/lib/wizard/index.d.ts +13 -0
  126. package/lib/wizard/index.js +252 -0
  127. package/lib/wizard/index.js.map +1 -0
  128. package/npm-shrinkwrap.json +8144 -0
  129. package/package.json +148 -0
@@ -0,0 +1 @@
1
+ export declare function getVersionString(executablePath: string, versionString: string): string | undefined;
@@ -0,0 +1,65 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getVersionString = getVersionString;
37
+ const os = __importStar(require("os"));
38
+ const path = __importStar(require("path"));
39
+ const child_process_1 = require("child_process");
40
+ // A modification of https://github.com/electron/node-rcedit to support the retrieval
41
+ // of information.
42
+ function getVersionString(executablePath, versionString) {
43
+ var _a;
44
+ let rcedit = path.resolve(__dirname, '..', '..', '..', 'node_modules', 'rcedit', 'bin', process.arch === 'x64' ? 'rcedit-x64.exe' : 'rcedit.exe');
45
+ const args = [executablePath, `--get-version-string`, versionString];
46
+ const spawnOptions = {
47
+ env: { ...process.env },
48
+ };
49
+ // Use Wine on non-Windows platforms except for WSL, which doesn't need it
50
+ if (process.platform !== 'win32' && !os.release().endsWith('Microsoft')) {
51
+ args.unshift(rcedit);
52
+ rcedit = process.arch === 'x64' ? 'wine64' : 'wine';
53
+ // Suppress "fixme:" stderr log messages
54
+ spawnOptions.env.WINEDEBUG = '-all';
55
+ }
56
+ try {
57
+ const child = (0, child_process_1.spawnSync)(rcedit, args, spawnOptions);
58
+ const result = (_a = child.output) === null || _a === void 0 ? void 0 : _a.toString().split(',wine: ')[0];
59
+ return result.startsWith(',') ? result.substr(1) : result;
60
+ }
61
+ catch {
62
+ return undefined;
63
+ }
64
+ }
65
+ //# sourceMappingURL=rceditGet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rceditGet.js","sourceRoot":"","sources":["../../../src/helpers/upgrade/rceditGet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,4CAkCC;AAzCD,uCAAyB;AACzB,2CAA6B;AAC7B,iDAA0C;AAE1C,qFAAqF;AACrF,kBAAkB;AAElB,SAAgB,gBAAgB,CAC9B,cAAsB,EACtB,aAAqB;;IAErB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CACvB,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,KAAK,EACL,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CACzD,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,sBAAsB,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG;QACnB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;KACxB,CAAC;IAEF,0EAA0E;IAC1E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD,wCAAwC;QACxC,YAAY,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;IACtC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,yBAAS,EAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,0CAAE,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { NativefierOptions, RawOptions } from '../../../shared/src/options/model';
2
+ export type UpgradeAppInfo = {
3
+ appResourcesDir: string;
4
+ appRoot: string;
5
+ options: NativefierOptions;
6
+ };
7
+ export declare function findUpgradeApp(upgradeFrom: string): UpgradeAppInfo | null;
8
+ export declare function useOldAppOptions(rawOptions: RawOptions, oldApp: UpgradeAppInfo): RawOptions;
@@ -0,0 +1,193 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.findUpgradeApp = findUpgradeApp;
37
+ exports.useOldAppOptions = useOldAppOptions;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const log = __importStar(require("loglevel"));
41
+ const fsHelpers_1 = require("../fsHelpers");
42
+ const plistInfoXMLHelpers_1 = require("./plistInfoXMLHelpers");
43
+ const executableHelpers_1 = require("./executableHelpers");
44
+ const parseUtils_1 = require("../../utils/parseUtils");
45
+ function findUpgradeAppResourcesDir(searchDir) {
46
+ searchDir = (0, fsHelpers_1.dirExists)(searchDir) ? searchDir : path.dirname(searchDir);
47
+ log.debug(`Searching for nativfier.json in ${searchDir}`);
48
+ const children = fs.readdirSync(searchDir, { withFileTypes: true });
49
+ if ((0, fsHelpers_1.fileExists)(path.join(searchDir, 'nativefier.json'))) {
50
+ // Found 'nativefier.json', so this must be it!
51
+ return path.resolve(searchDir);
52
+ }
53
+ const childDirectories = children.filter((c) => c.isDirectory());
54
+ for (const childDir of childDirectories) {
55
+ // We must go deeper!
56
+ const result = findUpgradeAppResourcesDir(path.join(searchDir, childDir.name, 'nativefier.json'));
57
+ if (result !== null) {
58
+ return path.resolve(result);
59
+ }
60
+ }
61
+ // Didn't find it down here
62
+ return null;
63
+ }
64
+ function getAppRoot(appResourcesDir, options) {
65
+ var _a;
66
+ switch (options.platform) {
67
+ case 'darwin':
68
+ return path.resolve(path.join(appResourcesDir, '..', '..', '..', '..'));
69
+ case 'linux':
70
+ case 'win32':
71
+ return path.resolve(path.join(appResourcesDir, '..', '..'));
72
+ default:
73
+ throw new Error(`Could not find the app root for platform: ${(_a = options.platform) !== null && _a !== void 0 ? _a : 'undefined'}`);
74
+ }
75
+ }
76
+ function getIconPath(appResourcesDir) {
77
+ const icnsPath = path.join(appResourcesDir, '..', 'electron.icns');
78
+ if ((0, fsHelpers_1.fileExists)(icnsPath)) {
79
+ log.debug(`Found icon at: ${icnsPath}`);
80
+ return path.resolve(icnsPath);
81
+ }
82
+ const icoPath = path.join(appResourcesDir, 'icon.ico');
83
+ if ((0, fsHelpers_1.fileExists)(icoPath)) {
84
+ log.debug(`Found icon at: ${icoPath}`);
85
+ return path.resolve(icoPath);
86
+ }
87
+ const pngPath = path.join(appResourcesDir, 'icon.png');
88
+ if ((0, fsHelpers_1.fileExists)(pngPath)) {
89
+ log.debug(`Found icon at: ${pngPath}`);
90
+ return path.resolve(pngPath);
91
+ }
92
+ log.debug('Could not find icon file.');
93
+ return undefined;
94
+ }
95
+ function getInfoPListOptions(appResourcesDir, priorOptions) {
96
+ if (!(0, fsHelpers_1.fileExists)(path.join(appResourcesDir, '..', '..', 'Info.plist'))) {
97
+ // Not a darwin/mas app, so this is irrelevant
98
+ return priorOptions;
99
+ }
100
+ const newOptions = { ...priorOptions };
101
+ const infoPlistXML = fs
102
+ .readFileSync(path.join(appResourcesDir, '..', '..', 'Info.plist'))
103
+ .toString();
104
+ if (newOptions.appCopyright === undefined) {
105
+ // https://github.com/electron/electron-packager/blob/0d3f84374e9ab3741b171610735ebc6be3e5e75f/src/mac.js#L230-L232
106
+ newOptions.appCopyright = (0, plistInfoXMLHelpers_1.extractString)(infoPlistXML, 'NSHumanReadableCopyright');
107
+ log.debug(`Extracted app copyright from Info.plist: ${newOptions.appCopyright}`);
108
+ }
109
+ if (newOptions.appVersion === undefined) {
110
+ // https://github.com/electron/electron-packager/blob/0d3f84374e9ab3741b171610735ebc6be3e5e75f/src/mac.js#L214-L216
111
+ // This could also be the buildVersion, but since they end up in the same place, that SHOULDN'T matter
112
+ const bundleVersion = (0, plistInfoXMLHelpers_1.extractString)(infoPlistXML, 'CFBundleVersion');
113
+ newOptions.appVersion =
114
+ bundleVersion === undefined || bundleVersion === '1.0.0' // If it's 1.0.0, that's just the default
115
+ ? undefined
116
+ : bundleVersion;
117
+ (newOptions.darwinDarkModeSupport =
118
+ newOptions.darwinDarkModeSupport === undefined
119
+ ? undefined
120
+ : newOptions.darwinDarkModeSupport === false),
121
+ log.debug(`Extracted app version from Info.plist: ${newOptions.appVersion}`);
122
+ }
123
+ if (newOptions.darwinDarkModeSupport === undefined) {
124
+ // https://github.com/electron/electron-packager/blob/0d3f84374e9ab3741b171610735ebc6be3e5e75f/src/mac.js#L234-L236
125
+ newOptions.darwinDarkModeSupport = (0, plistInfoXMLHelpers_1.extractBoolean)(infoPlistXML, 'NSRequiresAquaSystemAppearance');
126
+ log.debug(`Extracted Darwin dark mode support from Info.plist: ${newOptions.darwinDarkModeSupport ? 'Yes' : 'No'}`);
127
+ }
128
+ return newOptions;
129
+ }
130
+ function getInjectPaths(appResourcesDir) {
131
+ const injectDir = path.join(appResourcesDir, 'inject');
132
+ if (!(0, fsHelpers_1.dirExists)(injectDir)) {
133
+ return undefined;
134
+ }
135
+ const injectPaths = fs
136
+ .readdirSync(injectDir, { withFileTypes: true })
137
+ .filter((fd) => fd.isFile() &&
138
+ (fd.name.toLowerCase().endsWith('.css') ||
139
+ fd.name.toLowerCase().endsWith('.js')))
140
+ .map((fd) => path.resolve(path.join(injectDir, fd.name)));
141
+ log.debug(`CSS/JS Inject paths: ${injectPaths.join(', ')}`);
142
+ return injectPaths;
143
+ }
144
+ function isAsar(appResourcesDir) {
145
+ const asar = (0, fsHelpers_1.fileExists)(path.join(appResourcesDir, '..', 'electron.asar'));
146
+ log.debug(`Is this app an ASAR? ${asar ? 'Yes' : 'No'}`);
147
+ return asar;
148
+ }
149
+ function findUpgradeApp(upgradeFrom) {
150
+ const searchDir = (0, fsHelpers_1.dirExists)(upgradeFrom)
151
+ ? upgradeFrom
152
+ : path.dirname(upgradeFrom);
153
+ log.debug(`Looking for old options file in ${searchDir}`);
154
+ const appResourcesDir = findUpgradeAppResourcesDir(searchDir);
155
+ if (appResourcesDir === null) {
156
+ log.debug(`No nativefier.json file found in ${searchDir}`);
157
+ return null;
158
+ }
159
+ const nativefierJSONPath = path.join(appResourcesDir, 'nativefier.json');
160
+ log.debug(`Loading ${nativefierJSONPath}`);
161
+ let options = (0, parseUtils_1.parseJson)(fs.readFileSync(nativefierJSONPath, 'utf8'));
162
+ if (!options) {
163
+ throw new Error(`Could not read Nativefier options from ${nativefierJSONPath}`);
164
+ }
165
+ options.electronVersion = undefined;
166
+ options = {
167
+ ...options,
168
+ ...(0, executableHelpers_1.getOptionsFromExecutable)(appResourcesDir, options),
169
+ };
170
+ const appRoot = getAppRoot(appResourcesDir, options);
171
+ return {
172
+ appResourcesDir,
173
+ appRoot,
174
+ options: {
175
+ ...options,
176
+ ...getInfoPListOptions(appResourcesDir, options),
177
+ asar: options.asar !== undefined ? options.asar : isAsar(appResourcesDir),
178
+ icon: getIconPath(appResourcesDir),
179
+ inject: getInjectPaths(appResourcesDir),
180
+ },
181
+ };
182
+ }
183
+ function useOldAppOptions(rawOptions, oldApp) {
184
+ if (rawOptions.targetUrl !== undefined && (0, fsHelpers_1.dirExists)(rawOptions.targetUrl)) {
185
+ // You got your ouput dir in my targetUrl!
186
+ rawOptions.out = rawOptions.targetUrl;
187
+ }
188
+ log.debug('oldApp', oldApp);
189
+ const combinedOptions = { ...rawOptions, ...oldApp.options };
190
+ log.debug('Combined options', combinedOptions);
191
+ return combinedOptions;
192
+ }
193
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/helpers/upgrade/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function getChromeVersionForElectronVersion(electronVersion: string, url?: string): Promise<string>;
@@ -0,0 +1,73 @@
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.getChromeVersionForElectronVersion = getChromeVersionForElectronVersion;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const log = __importStar(require("loglevel"));
42
+ const constants_1 = require("../../constants");
43
+ const ELECTRON_VERSIONS_URL = 'https://releases.electronjs.org/releases.json';
44
+ async function getChromeVersionForElectronVersion(electronVersion, url = ELECTRON_VERSIONS_URL) {
45
+ if (!electronVersion || electronVersion === constants_1.DEFAULT_ELECTRON_VERSION) {
46
+ // Exit quickly for the scenario that we already know about
47
+ return constants_1.DEFAULT_CHROME_VERSION;
48
+ }
49
+ try {
50
+ log.debug('Grabbing electron<->chrome versions file from', url);
51
+ const response = await axios_1.default.get(url, { timeout: 5000 });
52
+ if (response.status !== 200) {
53
+ throw new Error(`Bad request: Status code ${response.status}`);
54
+ }
55
+ const electronReleases = response.data;
56
+ const electronVersionToChromeVersion = {};
57
+ for (const release of electronReleases) {
58
+ electronVersionToChromeVersion[release.version] = release.chrome;
59
+ }
60
+ if (!(electronVersion in electronVersionToChromeVersion)) {
61
+ throw new Error(`Electron version '${electronVersion}' not found in retrieved version list!`);
62
+ }
63
+ const chromeVersion = electronVersionToChromeVersion[electronVersion];
64
+ log.debug(`Associated electron v${electronVersion} to chrome v${chromeVersion}`);
65
+ return chromeVersion;
66
+ }
67
+ catch (err) {
68
+ log.error('getChromeVersionForElectronVersion ERROR', err);
69
+ log.debug('Falling back to default Chrome version', constants_1.DEFAULT_CHROME_VERSION);
70
+ return constants_1.DEFAULT_CHROME_VERSION;
71
+ }
72
+ }
73
+ //# sourceMappingURL=inferChromeVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferChromeVersion.js","sourceRoot":"","sources":["../../../src/infer/browsers/inferChromeVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,gFAmCC;AAzDD,kDAA0B;AAC1B,8CAAgC;AAChC,+CAGyB;AAezB,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAEvE,KAAK,UAAU,kCAAkC,CACtD,eAAuB,EACvB,GAAG,GAAG,qBAAqB;IAE3B,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,oCAAwB,EAAE,CAAC;QACrE,2DAA2D;QAC3D,OAAO,kCAAsB,CAAC;IAChC,CAAC;IAED,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAoB,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,gBAAgB,GAAsB,QAAQ,CAAC,IAAI,CAAC;QAC1D,MAAM,8BAA8B,GAA8B,EAAE,CAAC;QACrE,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,8BAA8B,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,CAAC,eAAe,IAAI,8BAA8B,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,qBAAqB,eAAe,wCAAwC,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,8BAA8B,CAAC,eAAe,CAAC,CAAC;QACtE,GAAG,CAAC,KAAK,CACP,wBAAwB,eAAe,eAAe,aAAa,EAAE,CACtE,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,kCAAsB,CAAC,CAAC;QAC5E,OAAO,kCAAsB,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getLatestFirefoxVersion(url?: string): Promise<string>;
@@ -0,0 +1,61 @@
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.getLatestFirefoxVersion = getLatestFirefoxVersion;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const log = __importStar(require("loglevel"));
42
+ const constants_1 = require("../../constants");
43
+ const FIREFOX_VERSIONS_URL = 'https://product-details.mozilla.org/1.0/firefox_versions.json';
44
+ async function getLatestFirefoxVersion(url = FIREFOX_VERSIONS_URL) {
45
+ try {
46
+ log.debug('Grabbing Firefox version data from', url);
47
+ const response = await axios_1.default.get(url, { timeout: 5000 });
48
+ if (response.status !== 200) {
49
+ throw new Error(`Bad request: Status code ${response.status}`);
50
+ }
51
+ const firefoxVersions = response.data;
52
+ log.debug(`Got latest Firefox version ${firefoxVersions.LATEST_FIREFOX_VERSION}`);
53
+ return firefoxVersions.LATEST_FIREFOX_VERSION;
54
+ }
55
+ catch (err) {
56
+ log.error('getLatestFirefoxVersion ERROR', err);
57
+ log.debug('Falling back to default Firefox version', constants_1.DEFAULT_FIREFOX_VERSION);
58
+ return constants_1.DEFAULT_FIREFOX_VERSION;
59
+ }
60
+ }
61
+ //# sourceMappingURL=inferFirefoxVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferFirefoxVersion.js","sourceRoot":"","sources":["../../../src/infer/browsers/inferFirefoxVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,0DAuBC;AAhDD,kDAA0B;AAC1B,8CAAgC;AAChC,+CAA0D;AAoB1D,MAAM,oBAAoB,GACxB,+DAA+D,CAAC;AAE3D,KAAK,UAAU,uBAAuB,CAC3C,GAAG,GAAG,oBAAoB;IAE1B,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAkB,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,eAAe,GAAoB,QAAQ,CAAC,IAAI,CAAC;QAEvD,GAAG,CAAC,KAAK,CACP,8BAA8B,eAAe,CAAC,sBAAsB,EAAE,CACvE,CAAC;QACF,OAAO,eAAe,CAAC,sBAAsB,CAAC;IAChD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QAChD,GAAG,CAAC,KAAK,CACP,yCAAyC,EACzC,mCAAuB,CACxB,CAAC;QACF,OAAO,mCAAuB,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type SafariVersion = {
2
+ majorVersion: number;
3
+ version: string;
4
+ webkitVersion: string;
5
+ };
6
+ export declare function getLatestSafariVersion(url?: string): Promise<SafariVersion>;
@@ -0,0 +1,96 @@
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.getLatestSafariVersion = getLatestSafariVersion;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const log = __importStar(require("loglevel"));
42
+ const constants_1 = require("../../constants");
43
+ const SAFARI_VERSIONS_HISTORY_URL = 'https://en.wikipedia.org/wiki/Safari_version_history';
44
+ async function getLatestSafariVersion(url = SAFARI_VERSIONS_HISTORY_URL) {
45
+ try {
46
+ log.debug('Grabbing apple version data from', url);
47
+ const response = await axios_1.default.get(url, { timeout: 5000 });
48
+ if (response.status !== 200) {
49
+ throw new Error(`Bad request: Status code ${response.status}`);
50
+ }
51
+ // This would be easier with an HTML parser, but we're not going to include an extra dependency for something that dumb
52
+ const rawData = response.data;
53
+ const majorVersions = [
54
+ ...rawData.matchAll(/class="mw-headline" id="Safari_[0-9]*">Safari ([0-9]*)</g),
55
+ ].map((match) => match[1]);
56
+ const majorVersion = parseInt(majorVersions[majorVersions.length - 1]);
57
+ const majorVersionTable = rawData
58
+ .split('>Release history<')[2]
59
+ .split('<table')
60
+ .filter((table) => table.includes(`Safari ${majorVersion}.x`))[0];
61
+ const versionRows = majorVersionTable.split('<tbody')[1].split('<tr');
62
+ let version = undefined;
63
+ let webkitVersion = undefined;
64
+ for (const versionRow of versionRows.reverse()) {
65
+ const versionMatch = [
66
+ ...versionRow.matchAll(/>\s*(([0-9]*\.){2}[0-9])\s*</g),
67
+ ];
68
+ if (versionMatch.length > 0 && !version) {
69
+ version = versionMatch[0][1];
70
+ }
71
+ const webkitVersionMatch = [
72
+ ...versionRow.matchAll(/>\s*(([0-9]*\.){3,4}[0-9])\s*</g),
73
+ ];
74
+ if (webkitVersionMatch.length > 0 && !webkitVersion) {
75
+ webkitVersion = webkitVersionMatch[0][1];
76
+ }
77
+ if (version && webkitVersion) {
78
+ break;
79
+ }
80
+ }
81
+ if (version && webkitVersion) {
82
+ return {
83
+ majorVersion,
84
+ version,
85
+ webkitVersion,
86
+ };
87
+ }
88
+ return constants_1.DEFAULT_SAFARI_VERSION;
89
+ }
90
+ catch (err) {
91
+ log.error('getLatestSafariVersion ERROR', err);
92
+ log.debug('Falling back to default Safari version', constants_1.DEFAULT_SAFARI_VERSION);
93
+ return constants_1.DEFAULT_SAFARI_VERSION;
94
+ }
95
+ }
96
+ //# sourceMappingURL=inferSafariVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferSafariVersion.js","sourceRoot":"","sources":["../../../src/infer/browsers/inferSafariVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,wDA+DC;AA5ED,kDAA0B;AAC1B,8CAAgC;AAChC,+CAAyD;AAQzD,MAAM,2BAA2B,GAC/B,sDAAsD,CAAC;AAElD,KAAK,UAAU,sBAAsB,CAC1C,GAAG,GAAG,2BAA2B;IAEjC,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAS,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,uHAAuH;QACvH,MAAM,OAAO,GAAW,QAAQ,CAAC,IAAI,CAAC;QAEtC,MAAM,aAAa,GAAG;YACpB,GAAG,OAAO,CAAC,QAAQ,CACjB,0DAA0D,CAC3D;SACF,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,iBAAiB,GAAG,OAAO;aAC9B,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;aAC7B,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtE,IAAI,OAAO,GAAuB,SAAS,CAAC;QAC5C,IAAI,aAAa,GAAuB,SAAS,CAAC;QAElD,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG;gBACnB,GAAG,UAAU,CAAC,QAAQ,CAAC,+BAA+B,CAAC;aACxD,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,kBAAkB,GAAG;gBACzB,GAAG,UAAU,CAAC,QAAQ,CAAC,iCAAiC,CAAC;aAC1D,CAAC;YACF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpD,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;gBAC7B,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;YAC7B,OAAO;gBACL,YAAY;gBACZ,OAAO;gBACP,aAAa;aACd,CAAC;QACJ,CAAC;QACD,OAAO,kCAAsB,CAAC;IAChC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,kCAAsB,CAAC,CAAC;QAC5E,OAAO,kCAAsB,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 根据 URL 推断最佳预设
3
+ */
4
+ export declare function inferPresetFromUrl(url: string): string | undefined;
5
+ /**
6
+ * 根据 URL 推断应用名称
7
+ */
8
+ export declare function inferNameFromUrl(url: string): string | undefined;
9
+ /**
10
+ * 智能推荐配置
11
+ */
12
+ export declare function getSmartDefaults(url: string): {
13
+ preset?: string;
14
+ name?: string;
15
+ suggestions: string[];
16
+ };
17
+ /**
18
+ * 输出智能推荐信息
19
+ */
20
+ export declare function logSmartDefaults(url: string, currentPreset?: string): void;
21
+ /**
22
+ * 获取 PWA 信息并生成建议选项
23
+ */
24
+ export declare function inferFromPWA(url: string): Promise<{
25
+ name?: string;
26
+ icon?: string;
27
+ backgroundColor?: string;
28
+ hasPWA: boolean;
29
+ }>;
30
+ /**
31
+ * 输出 PWA 检测信息
32
+ */
33
+ export declare function logPWAInfo(url: string): Promise<void>;