1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.checkMetadata = checkMetadata;
|
7 | exports.versionFromDependencyRange = versionFromDependencyRange;
|
8 | exports.readPackageJson = void 0;
|
9 |
|
10 | function _bluebirdLst() {
|
11 | const data = require("bluebird-lst");
|
12 |
|
13 | _bluebirdLst = function () {
|
14 | return data;
|
15 | };
|
16 |
|
17 | return data;
|
18 | }
|
19 |
|
20 | function _builderUtil() {
|
21 | const data = require("builder-util");
|
22 |
|
23 | _builderUtil = function () {
|
24 | return data;
|
25 | };
|
26 |
|
27 | return data;
|
28 | }
|
29 |
|
30 | function _fsExtraP() {
|
31 | const data = require("fs-extra-p");
|
32 |
|
33 | _fsExtraP = function () {
|
34 | return data;
|
35 | };
|
36 |
|
37 | return data;
|
38 | }
|
39 |
|
40 | var path = _interopRequireWildcard(require("path"));
|
41 |
|
42 | function semver() {
|
43 | const data = _interopRequireWildcard(require("semver"));
|
44 |
|
45 | semver = function () {
|
46 | return data;
|
47 | };
|
48 |
|
49 | return data;
|
50 | }
|
51 |
|
52 | let authors = (() => {
|
53 | var _ref2 = (0, _bluebirdLst().coroutine)(function* (file, data) {
|
54 | if (data.contributors != null) {
|
55 | return;
|
56 | }
|
57 |
|
58 | let authorData;
|
59 |
|
60 | try {
|
61 | authorData = yield (0, _fsExtraP().readFile)(path.resolve(path.dirname(file), "AUTHORS"), "utf8");
|
62 | } catch (ignored) {
|
63 | return;
|
64 | }
|
65 |
|
66 | data.contributors = authorData.split(/\r?\n/g).map(it => it.replace(/^\s*#.*$/, "").trim());
|
67 | });
|
68 |
|
69 | return function authors(_x2, _x3) {
|
70 | return _ref2.apply(this, arguments);
|
71 | };
|
72 | })();
|
73 |
|
74 |
|
75 |
|
76 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
77 |
|
78 | const normalizeData = require("normalize-package-data");
|
79 |
|
80 |
|
81 |
|
82 | let readPackageJson = (() => {
|
83 | var _ref = (0, _bluebirdLst().coroutine)(function* (file) {
|
84 | const data = yield (0, _fsExtraP().readJson)(file);
|
85 | yield authors(file, data);
|
86 | normalizeData(data);
|
87 |
|
88 | delete data.scripts;
|
89 | delete data.readme;
|
90 | return data;
|
91 | });
|
92 |
|
93 | return function readPackageJson(_x) {
|
94 | return _ref.apply(this, arguments);
|
95 | };
|
96 | })();
|
97 |
|
98 | exports.readPackageJson = readPackageJson;
|
99 |
|
100 | function checkMetadata(metadata, devMetadata, appPackageFile, devAppPackageFile) {
|
101 | const errors = [];
|
102 |
|
103 | const reportError = missedFieldName => {
|
104 | errors.push(`Please specify '${missedFieldName}' in the package.json (${appPackageFile})`);
|
105 | };
|
106 |
|
107 | const checkNotEmpty = (name, value) => {
|
108 | if ((0, _builderUtil().isEmptyOrSpaces)(value)) {
|
109 | reportError(name);
|
110 | }
|
111 | };
|
112 |
|
113 | if (metadata.directories != null) {
|
114 | errors.push(`"directories" in the root is deprecated, please specify in the "build"`);
|
115 | }
|
116 |
|
117 | checkNotEmpty("name", metadata.name);
|
118 |
|
119 | if ((0, _builderUtil().isEmptyOrSpaces)(metadata.description)) {
|
120 | _builderUtil().log.warn({
|
121 | appPackageFile
|
122 | }, `description is missed in the package.json`);
|
123 | }
|
124 |
|
125 | if (metadata.author == null) {
|
126 | _builderUtil().log.warn({
|
127 | appPackageFile
|
128 | }, `author is missed in the package.json`);
|
129 | }
|
130 |
|
131 | checkNotEmpty("version", metadata.version);
|
132 |
|
133 | if (metadata != null) {
|
134 | checkDependencies(metadata.dependencies, errors);
|
135 | }
|
136 |
|
137 | if (metadata !== devMetadata) {
|
138 | if (metadata.build != null) {
|
139 | errors.push(`'build' in the application package.json (${appPackageFile}) is not supported since 3.0 anymore. Please move 'build' into the development package.json (${devAppPackageFile})`);
|
140 | }
|
141 | }
|
142 |
|
143 | const devDependencies = metadata.devDependencies;
|
144 |
|
145 | if (devDependencies != null && "electron-rebuild" in devDependencies) {
|
146 | _builderUtil().log.info('electron-rebuild not required if you use electron-builder, please consider to remove excess dependency from devDependencies\n\nTo ensure your native dependencies are always matched electron version, simply add script `"postinstall": "electron-builder install-app-deps" to your `package.json`');
|
147 | }
|
148 |
|
149 | if (errors.length > 0) {
|
150 | throw new Error(errors.join("\n"));
|
151 | }
|
152 | }
|
153 |
|
154 | function versionFromDependencyRange(version) {
|
155 | const firstChar = version[0];
|
156 | return firstChar === "^" || firstChar === "~" ? version.substring(1) : version;
|
157 | }
|
158 |
|
159 | function checkDependencies(dependencies, errors) {
|
160 | if (dependencies == null) {
|
161 | return;
|
162 | }
|
163 |
|
164 | const updaterVersion = dependencies["electron-updater"];
|
165 |
|
166 | if (updaterVersion != null && !semver().satisfies(versionFromDependencyRange(updaterVersion), ">=2.18.2")) {
|
167 | errors.push(`At least electron-updater 2.18.2 is required by current electron-builder version. Please set electron-updater version to "^2.18.2"`);
|
168 | }
|
169 |
|
170 | const deps = ["electron", "electron-prebuilt", "electron-rebuild"];
|
171 |
|
172 | if (process.env.ALLOW_ELECTRON_BUILDER_AS_PRODUCTION_DEPENDENCY !== "true") {
|
173 | deps.push("electron-builder");
|
174 | }
|
175 |
|
176 | for (const name of deps) {
|
177 | if (name in dependencies) {
|
178 | errors.push(`Package "${name}" is only allowed in "devDependencies". ` + `Please remove it from the "dependencies" section in your package.json.`);
|
179 | }
|
180 | }
|
181 | }
|
182 |
|
\ | No newline at end of file |