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,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processOptions = processOptions;
4
+ const icon_1 = require("./icon");
5
+ const userAgent_1 = require("./userAgent");
6
+ const name_1 = require("./name");
7
+ const OPTION_POSTPROCESSORS = [
8
+ { namespace: 'nativefier', option: 'userAgent', processor: userAgent_1.userAgent },
9
+ { namespace: 'packager', option: 'icon', processor: icon_1.icon },
10
+ { namespace: 'packager', option: 'name', processor: name_1.name },
11
+ ];
12
+ async function processOptions(options) {
13
+ const processedOptions = await Promise.all(OPTION_POSTPROCESSORS.map(async ({ namespace, option, processor }) => {
14
+ const result = await processor(options);
15
+ return {
16
+ namespace,
17
+ option,
18
+ result,
19
+ };
20
+ }));
21
+ for (const { namespace, option, result } of processedOptions) {
22
+ if (result &&
23
+ namespace in options &&
24
+ options[namespace] &&
25
+ option in options[namespace]) {
26
+ // @ts-expect-error We're fiddling with objects at the string key level, which TS doesn't support well.
27
+ options[namespace][option] = result;
28
+ }
29
+ }
30
+ return options;
31
+ }
32
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/options/fields/fields.ts"],"names":[],"mappings":";;AAiBA,wCAwBC;AAzCD,iCAA8B;AAC9B,2CAAwC;AAExC,iCAA8B;AAQ9B,MAAM,qBAAqB,GAA0B;IACnD,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAS,EAAE;IACtE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAI,EAAE;IAC1D,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAI,EAAE;CAC3D,CAAC;AAEK,KAAK,UAAU,cAAc,CAAC,OAAmB;IACtD,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO;YACL,SAAS;YACT,MAAM;YACN,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAC7D,IACE,MAAM;YACN,SAAS,IAAI,OAAO;YACpB,OAAO,CAAC,SAAS,CAAC;YAClB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,EAC5B,CAAC;YACD,uGAAuG;YACvG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,9 @@
1
+ type IconParams = {
2
+ packager: {
3
+ icon?: string;
4
+ targetUrl: string;
5
+ platform?: string;
6
+ };
7
+ };
8
+ export declare function icon(options: IconParams): Promise<string | undefined>;
9
+ export {};
@@ -0,0 +1,106 @@
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.icon = icon;
37
+ const log = __importStar(require("loglevel"));
38
+ const path = __importStar(require("path"));
39
+ const fs = __importStar(require("fs-extra"));
40
+ const inferIcon_1 = require("../../infer/inferIcon");
41
+ const helpers_1 = require("../../helpers/helpers");
42
+ /**
43
+ * 检查是否为网络 URL
44
+ */
45
+ function isUrl(str) {
46
+ return str.startsWith('http://') || str.startsWith('https://');
47
+ }
48
+ /**
49
+ * 下载网络图标到本地
50
+ */
51
+ async function downloadIcon(iconUrl) {
52
+ log.info(`📥 Downloading icon from ${iconUrl}...`);
53
+ try {
54
+ const result = await (0, helpers_1.downloadFile)(iconUrl);
55
+ if (!result || !result.data) {
56
+ log.warn('Failed to download icon: empty response');
57
+ return undefined;
58
+ }
59
+ const tmpDir = (0, helpers_1.getTempDir)('icon');
60
+ const ext = result.ext || path.extname(new URL(iconUrl).pathname) || '.png';
61
+ const iconPath = path.join(tmpDir, `icon${ext}`);
62
+ await fs.writeFile(iconPath, result.data);
63
+ log.info(`✅ Icon downloaded to ${iconPath}`);
64
+ return iconPath;
65
+ }
66
+ catch (err) {
67
+ log.warn('Failed to download icon:', err.message);
68
+ return undefined;
69
+ }
70
+ }
71
+ async function icon(options) {
72
+ var _a;
73
+ // 如果指定了图标且是网络 URL,先下载
74
+ if (options.packager.icon && isUrl(options.packager.icon)) {
75
+ const downloadedIcon = await downloadIcon(options.packager.icon);
76
+ if (downloadedIcon) {
77
+ // 直接修改 options,返回下载的路径
78
+ return downloadedIcon;
79
+ }
80
+ else {
81
+ log.warn('Could not download icon, will try to infer from website');
82
+ // 清空图标,让后面的逻辑去推断
83
+ options.packager.icon = undefined;
84
+ }
85
+ }
86
+ // 如果有本地图标,直接使用
87
+ if (options.packager.icon) {
88
+ log.debug('Got local icon from options. Using it, no inferring needed');
89
+ return undefined;
90
+ }
91
+ // 尝试从网站推断图标
92
+ if (!options.packager.platform) {
93
+ log.error('No platform specified. Icon can not be inferred.');
94
+ return undefined;
95
+ }
96
+ try {
97
+ return await (0, inferIcon_1.inferIcon)(options.packager.targetUrl, options.packager.platform);
98
+ }
99
+ catch (err) {
100
+ // eslint-disable-next-line
101
+ const errorUrl = (_a = err === null || err === void 0 ? void 0 : err.config) === null || _a === void 0 ? void 0 : _a.url;
102
+ log.warn('Cannot automatically retrieve the app icon:', errorUrl ? `${err.message} on ${errorUrl}` : err);
103
+ return undefined;
104
+ }
105
+ }
106
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/options/fields/icon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ type NameParams = {
2
+ packager: {
3
+ name?: string;
4
+ platform?: string;
5
+ targetUrl: string;
6
+ };
7
+ };
8
+ export declare function name(options: NameParams): Promise<string>;
9
+ export {};
@@ -0,0 +1,59 @@
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.name = name;
37
+ const log = __importStar(require("loglevel"));
38
+ const sanitizeFilename_1 = require("../../utils/sanitizeFilename");
39
+ const inferTitle_1 = require("../../infer/inferTitle");
40
+ const constants_1 = require("../../constants");
41
+ async function tryToInferName(targetUrl) {
42
+ try {
43
+ log.debug('Inferring name for', targetUrl);
44
+ const pageTitle = await (0, inferTitle_1.inferTitle)(targetUrl);
45
+ return pageTitle || constants_1.DEFAULT_APP_NAME;
46
+ }
47
+ catch (err) {
48
+ log.warn(`Unable to automatically determine app name, falling back to '${constants_1.DEFAULT_APP_NAME}'.`, err);
49
+ return constants_1.DEFAULT_APP_NAME;
50
+ }
51
+ }
52
+ async function name(options) {
53
+ let name = options.packager.name;
54
+ if (!name) {
55
+ name = await tryToInferName(options.packager.targetUrl);
56
+ }
57
+ return (0, sanitizeFilename_1.sanitizeFilename)(options.packager.platform, name);
58
+ }
59
+ //# sourceMappingURL=name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../src/options/fields/name.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,oBAOC;AAnCD,8CAAgC;AAEhC,mEAAgE;AAChE,uDAAoD;AACpD,+CAAmD;AAUnD,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAU,EAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,SAAS,IAAI,4BAAgB,CAAC;IACvC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CACN,gEAAgE,4BAAgB,IAAI,EACpF,GAAG,CACJ,CAAC;QACF,OAAO,4BAAgB,CAAC;IAC1B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,OAAmB;IAC5C,IAAI,IAAI,GAAuB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,IAAA,mCAAgB,EAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type UserAgentOpts = {
2
+ packager: {
3
+ electronVersion?: string;
4
+ platform?: string;
5
+ };
6
+ nativefier: {
7
+ userAgent?: string;
8
+ };
9
+ };
10
+ export declare function userAgent(options: UserAgentOpts): Promise<string | undefined>;
@@ -0,0 +1,81 @@
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.userAgent = userAgent;
37
+ const log = __importStar(require("loglevel"));
38
+ const constants_1 = require("../../constants");
39
+ const inferChromeVersion_1 = require("../../infer/browsers/inferChromeVersion");
40
+ const inferFirefoxVersion_1 = require("../../infer/browsers/inferFirefoxVersion");
41
+ const inferSafariVersion_1 = require("../../infer/browsers/inferSafariVersion");
42
+ const optionsMain_1 = require("../optionsMain");
43
+ const USER_AGENT_PLATFORM_MAPS = {
44
+ darwin: 'Macintosh; Intel Mac OS X 10_15_7',
45
+ linux: 'X11; Linux x86_64',
46
+ win32: 'Windows NT 10.0; Win64; x64',
47
+ };
48
+ const USER_AGENT_SHORT_CODE_MAPS = {
49
+ edge: edgeUserAgent,
50
+ firefox: firefoxUserAgent,
51
+ safari: safariUserAgent,
52
+ };
53
+ async function userAgent(options) {
54
+ var _a;
55
+ if (!options.nativefier.userAgent) {
56
+ // No user agent got passed. Let's handle it with the app.userAgentFallback
57
+ return undefined;
58
+ }
59
+ if (!Object.keys(USER_AGENT_SHORT_CODE_MAPS).includes(options.nativefier.userAgent.toLowerCase())) {
60
+ // Real user agent got passed. No need to translate it.
61
+ log.debug(`${options.nativefier.userAgent.toLowerCase()} not found in`, Object.keys(USER_AGENT_SHORT_CODE_MAPS));
62
+ return undefined;
63
+ }
64
+ options.packager.platform = (0, optionsMain_1.normalizePlatform)(options.packager.platform);
65
+ const userAgentPlatform = USER_AGENT_PLATFORM_MAPS[options.packager.platform === 'mas' ? 'darwin' : options.packager.platform];
66
+ const mapFunction = USER_AGENT_SHORT_CODE_MAPS[options.nativefier.userAgent];
67
+ return await mapFunction(userAgentPlatform, (_a = options.packager.electronVersion) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_ELECTRON_VERSION);
68
+ }
69
+ async function edgeUserAgent(platform, electronVersion) {
70
+ const chromeVersion = await (0, inferChromeVersion_1.getChromeVersionForElectronVersion)(electronVersion);
71
+ return `Mozilla/5.0 (${platform}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${chromeVersion} Safari/537.36 Edg/${chromeVersion}`;
72
+ }
73
+ async function firefoxUserAgent(platform) {
74
+ const firefoxVersion = await (0, inferFirefoxVersion_1.getLatestFirefoxVersion)();
75
+ return `Mozilla/5.0 (${platform}; rv:${firefoxVersion}) Gecko/20100101 Firefox/${firefoxVersion}`.replace('10_15_7', '10.15');
76
+ }
77
+ async function safariUserAgent(platform) {
78
+ const safariVersion = await (0, inferSafariVersion_1.getLatestSafariVersion)();
79
+ return `Mozilla/5.0 (${platform}) AppleWebKit/${safariVersion.webkitVersion} (KHTML, like Gecko) Version/${safariVersion.version} Safari/${safariVersion.webkitVersion}`;
80
+ }
81
+ //# sourceMappingURL=userAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAgent.js","sourceRoot":"","sources":["../../../src/options/fields/userAgent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,8BAkCC;AAnED,8CAAgC;AAChC,+CAA2D;AAE3D,gFAA6F;AAC7F,kFAAmF;AACnF,gFAAiF;AACjF,gDAAmD;AAYnD,MAAM,wBAAwB,GAA2B;IACvD,MAAM,EAAE,mCAAmC;IAC3C,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,6BAA6B;CACrC,CAAC;AAEF,MAAM,0BAA0B,GAG5B;IACF,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,gBAAgB;IACzB,MAAM,EAAE,eAAe;CACxB,CAAC;AAEK,KAAK,UAAU,SAAS,CAC7B,OAAsB;;IAEtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAClC,2EAA2E;QAC3E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IACE,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAC/C,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAC3C,EACD,CAAC;QACD,uDAAuD;QACvD,GAAG,CAAC,KAAK,CACP,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,eAAe,EAC5D,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CACxC,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAA,+BAAiB,EAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GACrB,wBAAwB,CACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAC3E,CAAC;IAEJ,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAE7E,OAAO,MAAM,WAAW,CACtB,iBAAiB,EACjB,MAAA,OAAO,CAAC,QAAQ,CAAC,eAAe,mCAAI,oCAAwB,CAC7D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,QAAgB,EAChB,eAAuB;IAEvB,MAAM,aAAa,GACjB,MAAM,IAAA,uDAAkC,EAAC,eAAe,CAAC,CAAC;IAE5D,OAAO,gBAAgB,QAAQ,mDAAmD,aAAa,sBAAsB,aAAa,EAAE,CAAC;AACvI,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,MAAM,cAAc,GAAG,MAAM,IAAA,6CAAuB,GAAE,CAAC;IAEvD,OAAO,gBAAgB,QAAQ,QAAQ,cAAc,4BAA4B,cAAc,EAAE,CAAC,OAAO,CACvG,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB;IAC7C,MAAM,aAAa,GAAG,MAAM,IAAA,2CAAsB,GAAE,CAAC;IAErD,OAAO,gBAAgB,QAAQ,iBAAiB,aAAa,CAAC,aAAa,gCAAgC,aAAa,CAAC,OAAO,WAAW,aAAa,CAAC,aAAa,EAAE,CAAC;AAC3K,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function normalizeUrl(urlToNormalize: string): string;
@@ -0,0 +1,62 @@
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.normalizeUrl = normalizeUrl;
37
+ const url = __importStar(require("url"));
38
+ const log = __importStar(require("loglevel"));
39
+ function appendProtocol(inputUrl) {
40
+ const parsed = url.parse(inputUrl);
41
+ if (!parsed.protocol) {
42
+ const urlWithProtocol = `https://${inputUrl}`;
43
+ log.warn(`URL "${inputUrl}" lacks a protocol.`, `Will try to parse it as HTTPS: "${urlWithProtocol}".`, `Please pass "http://${inputUrl}" if this is what you meant.`);
44
+ return urlWithProtocol;
45
+ }
46
+ return inputUrl;
47
+ }
48
+ function normalizeUrl(urlToNormalize) {
49
+ const urlWithProtocol = appendProtocol(urlToNormalize);
50
+ let parsedUrl;
51
+ try {
52
+ parsedUrl = new url.URL(urlWithProtocol);
53
+ }
54
+ catch (err) {
55
+ log.error('normalizeUrl ERROR', err);
56
+ throw new Error(`Your url "${urlWithProtocol}" is invalid`);
57
+ }
58
+ const normalizedUrl = parsedUrl.toString();
59
+ log.debug(`Normalized URL ${urlToNormalize} to:`, normalizedUrl);
60
+ return normalizedUrl;
61
+ }
62
+ //# sourceMappingURL=normalizeUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeUrl.js","sourceRoot":"","sources":["../../src/options/normalizeUrl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,oCAaC;AA/BD,yCAA2B;AAE3B,8CAAgC;AAEhC,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,eAAe,GAAG,WAAW,QAAQ,EAAE,CAAC;QAC9C,GAAG,CAAC,IAAI,CACN,QAAQ,QAAQ,qBAAqB,EACrC,mCAAmC,eAAe,IAAI,EACtD,uBAAuB,QAAQ,8BAA8B,CAC9D,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,YAAY,CAAC,cAAsB;IACjD,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAEvD,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,aAAa,eAAe,cAAc,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC3C,GAAG,CAAC,KAAK,CAAC,kBAAkB,cAAc,MAAM,EAAE,aAAa,CAAC,CAAC;IACjE,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { AppOptions, RawOptions } from '../../shared/src/options/model';
2
+ /**
3
+ * Process and validate raw user arguments
4
+ */
5
+ export declare function getOptions(rawOptions: RawOptions): Promise<AppOptions>;
6
+ export declare function normalizePlatform(platform: string | undefined): string;