@electron-forge/maker-base 6.0.0-beta.6 → 6.0.0-beta.63

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/dist/Maker.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { ForgeArch, ForgeConfig, ForgePlatform } from '@electron-forge/shared-types';
1
+ import { ForgeArch, ForgeConfig, ForgePlatform, IForgeMaker } from '@electron-forge/shared-types';
2
+ export declare type EmptyConfig = Record<string, never>;
2
3
  export interface MakerOptions {
3
4
  /**
4
5
  * The directory containing the packaged Electron application
@@ -26,18 +27,21 @@ export interface MakerOptions {
26
27
  */
27
28
  forgeConfig: ForgeConfig;
28
29
  /**
29
- * The applications package.json file
30
+ * The application's package.json file
30
31
  */
31
32
  packageJSON: any;
32
33
  }
33
- export default abstract class Maker<C> {
34
+ export default abstract class Maker<C> implements IForgeMaker {
35
+ private configFetcher;
36
+ protected providedPlatforms?: string[] | undefined;
34
37
  config: C;
35
- protected providedPlatforms: ForgePlatform[] | undefined;
36
38
  abstract name: string;
37
39
  abstract defaultPlatforms: ForgePlatform[];
40
+ requiredExternalBinaries: string[];
38
41
  __isElectronForgeMaker: true;
39
- constructor(config?: C, providedPlatforms?: ForgePlatform[] | undefined);
40
- readonly platforms: ForgePlatform[];
42
+ constructor(configFetcher?: C | ((arch: ForgeArch) => C), providedPlatforms?: string[] | undefined);
43
+ get platforms(): ForgePlatform[];
44
+ prepareConfig(targetArch: ForgeArch): void;
41
45
  /**
42
46
  * Makers must implement this method and return true or false indicating whether
43
47
  * this maker can be run on the current platform. Normally this is just a process.platform
@@ -69,9 +73,22 @@ export default abstract class Maker<C> {
69
73
  * I.e. If the file already exists it is deleted and the path created
70
74
  */
71
75
  ensureFile(file: string): Promise<void>;
76
+ /**
77
+ * Checks if the specified binaries exist, which are required for the maker to be used.
78
+ */
79
+ externalBinariesExist(): boolean;
80
+ /**
81
+ * Throws an error if any of the binaries don't exist.
82
+ */
83
+ ensureExternalBinariesExist(): void;
72
84
  /**
73
85
  * Checks if the given module is installed, used for testing if optional dependencies
74
86
  * are installed or not
75
87
  */
76
88
  isInstalled(module: string): boolean;
89
+ /**
90
+ * Normalize the given semver-formatted version to a 4-part dot delimited version number without
91
+ * prerelease information for use in Windows apps.
92
+ */
93
+ normalizeWindowsVersion(version: string): string;
77
94
  }
package/dist/Maker.js CHANGED
@@ -11,35 +11,27 @@ var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
11
 
12
12
  var _path = _interopRequireDefault(require("path"));
13
13
 
14
+ var _which = _interopRequireDefault(require("which"));
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; }
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
19
 
18
20
  class Maker {
19
- /* tslint:disable variable-name */
20
-
21
- /* tslint:enable variable-name */
22
- constructor(config = {}, providedPlatforms) {
23
- this.config = config;
21
+ constructor(configFetcher = {}, providedPlatforms) {
22
+ this.configFetcher = configFetcher;
24
23
  this.providedPlatforms = providedPlatforms;
25
- Object.defineProperty(this, "name", {
26
- configurable: true,
27
- enumerable: true,
28
- writable: true,
29
- value: void 0
30
- });
31
- Object.defineProperty(this, "defaultPlatforms", {
32
- configurable: true,
33
- enumerable: true,
34
- writable: true,
35
- value: void 0
36
- });
37
- Object.defineProperty(this, "__isElectronForgeMaker", {
38
- configurable: true,
39
- enumerable: true,
40
- writable: true,
41
- value: void 0
42
- });
24
+
25
+ _defineProperty(this, "config", void 0);
26
+
27
+ _defineProperty(this, "name", void 0);
28
+
29
+ _defineProperty(this, "defaultPlatforms", void 0);
30
+
31
+ _defineProperty(this, "requiredExternalBinaries", []);
32
+
33
+ _defineProperty(this, "__isElectronForgeMaker", void 0);
34
+
43
35
  Object.defineProperty(this, '__isElectronForgeMaker', {
44
36
  value: true,
45
37
  enumerable: false,
@@ -50,6 +42,16 @@ class Maker {
50
42
  get platforms() {
51
43
  if (this.providedPlatforms) return this.providedPlatforms;
52
44
  return this.defaultPlatforms;
45
+ } // TODO: Remove this, it is an eye-sore and is a nasty hack to provide forge
46
+ // v5 style functionality in the new API
47
+
48
+
49
+ prepareConfig(targetArch) {
50
+ if (typeof this.configFetcher === 'function') {
51
+ this.config = this.configFetcher(targetArch);
52
+ } else {
53
+ this.config = this.configFetcher;
54
+ }
53
55
  }
54
56
  /**
55
57
  * Makers must implement this method and return true or false indicating whether
@@ -63,20 +65,25 @@ class Maker {
63
65
 
64
66
 
65
67
  isSupportedOnCurrentPlatform() {
66
- throw new Error(`Maker ${this.name} did not implement the isSupportedOnCurrentPlatform method`);
68
+ if (this.isSupportedOnCurrentPlatform === Maker.prototype.isSupportedOnCurrentPlatform) {
69
+ throw new Error(`Maker ${this.name} did not implement the isSupportedOnCurrentPlatform method`);
70
+ }
71
+
72
+ return true;
67
73
  }
68
74
  /**
69
75
  * Makers must implement this method and return an array of absolute paths
70
76
  * to the artifacts generated by your maker
71
77
  */
78
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
79
 
73
80
 
74
- make(opts) {
75
- var _this = this;
81
+ async make(opts) {
82
+ if (this.make === Maker.prototype.make) {
83
+ throw new Error(`Maker ${this.name} did not implement the make method`);
84
+ }
76
85
 
77
- return _asyncToGenerator(function* () {
78
- throw new Error(`Maker ${_this.name} did not implement the make method`);
79
- })();
86
+ return [];
80
87
  }
81
88
  /**
82
89
  * Helpers
@@ -90,14 +97,12 @@ class Maker {
90
97
  */
91
98
 
92
99
 
93
- ensureDirectory(dir) {
94
- return _asyncToGenerator(function* () {
95
- if (yield _fsExtra.default.pathExists(dir)) {
96
- yield _fsExtra.default.remove(dir);
97
- }
100
+ async ensureDirectory(dir) {
101
+ if (await _fsExtra.default.pathExists(dir)) {
102
+ await _fsExtra.default.remove(dir);
103
+ }
98
104
 
99
- return _fsExtra.default.mkdirs(dir);
100
- })();
105
+ return _fsExtra.default.mkdirs(dir);
101
106
  }
102
107
  /**
103
108
  * Ensures the path to the file exists and the file does not exist
@@ -106,14 +111,32 @@ class Maker {
106
111
  */
107
112
 
108
113
 
109
- ensureFile(file) {
110
- return _asyncToGenerator(function* () {
111
- if (yield _fsExtra.default.pathExists(file)) {
112
- yield _fsExtra.default.remove(file);
113
- }
114
+ async ensureFile(file) {
115
+ if (await _fsExtra.default.pathExists(file)) {
116
+ await _fsExtra.default.remove(file);
117
+ }
114
118
 
115
- yield _fsExtra.default.mkdirs(_path.default.dirname(file));
116
- })();
119
+ await _fsExtra.default.mkdirs(_path.default.dirname(file));
120
+ }
121
+ /**
122
+ * Checks if the specified binaries exist, which are required for the maker to be used.
123
+ */
124
+
125
+
126
+ externalBinariesExist() {
127
+ return this.requiredExternalBinaries.every(binary => _which.default.sync(binary, {
128
+ nothrow: true
129
+ }) !== null);
130
+ }
131
+ /**
132
+ * Throws an error if any of the binaries don't exist.
133
+ */
134
+
135
+
136
+ ensureExternalBinariesExist() {
137
+ if (!this.externalBinariesExist()) {
138
+ throw new Error(`Cannot make for ${this.name}, the following external binaries need to be installed: ${this.requiredExternalBinaries.join(', ')}`);
139
+ }
117
140
  }
118
141
  /**
119
142
  * Checks if the given module is installed, used for testing if optional dependencies
@@ -123,6 +146,7 @@ class Maker {
123
146
 
124
147
  isInstalled(module) {
125
148
  try {
149
+ // eslint-disable-next-line global-require, import/no-dynamic-require
126
150
  require(module);
127
151
 
128
152
  return true;
@@ -131,8 +155,18 @@ class Maker {
131
155
  return false;
132
156
  }
133
157
  }
158
+ /**
159
+ * Normalize the given semver-formatted version to a 4-part dot delimited version number without
160
+ * prerelease information for use in Windows apps.
161
+ */
162
+
163
+
164
+ normalizeWindowsVersion(version) {
165
+ const noPrerelease = version.replace(/-.*/, '');
166
+ return `${noPrerelease}.0`;
167
+ }
134
168
 
135
169
  }
136
170
 
137
171
  exports.default = Maker;
138
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NYWtlci50cyJdLCJuYW1lcyI6WyJNYWtlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwicHJvdmlkZWRQbGF0Zm9ybXMiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInBsYXRmb3JtcyIsImRlZmF1bHRQbGF0Zm9ybXMiLCJpc1N1cHBvcnRlZE9uQ3VycmVudFBsYXRmb3JtIiwiRXJyb3IiLCJuYW1lIiwibWFrZSIsIm9wdHMiLCJlbnN1cmVEaXJlY3RvcnkiLCJkaXIiLCJmcyIsInBhdGhFeGlzdHMiLCJyZW1vdmUiLCJta2RpcnMiLCJlbnN1cmVGaWxlIiwiZmlsZSIsInBhdGgiLCJkaXJuYW1lIiwiaXNJbnN0YWxsZWQiLCJtb2R1bGUiLCJyZXF1aXJlIiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBQ0E7Ozs7OztBQWtDZSxNQUFlQSxLQUFmLENBQXdCO0FBR3JDOztBQUVBO0FBRUFDLGNBQW1CQyxTQUFZLEVBQS9CLEVBQWtEQyxpQkFBbEQsRUFBdUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ3JGQyxXQUFPQyxjQUFQLENBQXNCLElBQXRCLEVBQTRCLHdCQUE1QixFQUFzRDtBQUNwREMsYUFBTyxJQUQ2QztBQUVwREMsa0JBQVksS0FGd0M7QUFHcERDLG9CQUFjO0FBSHNDLEtBQXREO0FBS0Q7O0FBRUQsTUFBSUMsU0FBSixHQUFnQjtBQUNkLFFBQUksS0FBS04saUJBQVQsRUFBNEIsT0FBTyxLQUFLQSxpQkFBWjtBQUM1QixXQUFPLEtBQUtPLGdCQUFaO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7QUFTQUMsaUNBQXdDO0FBQ3RDLFVBQU0sSUFBSUMsS0FBSixDQUFXLFNBQVEsS0FBS0MsSUFBSyw0REFBN0IsQ0FBTjtBQUNEO0FBRUQ7Ozs7OztBQUlNQyxNQUFOLENBQVdDLElBQVgsRUFBa0Q7QUFBQTs7QUFBQTtBQUNoRCxZQUFNLElBQUlILEtBQUosQ0FBVyxTQUFRLE1BQUtDLElBQUssb0NBQTdCLENBQU47QUFEZ0Q7QUFFakQ7QUFHRDs7OztBQUlBOzs7Ozs7OztBQU1NRyxpQkFBTixDQUFzQkMsR0FBdEIsRUFBa0Q7QUFBQTtBQUNoRCxnQkFBVUMsaUJBQUdDLFVBQUgsQ0FBY0YsR0FBZCxDQUFWLEVBQThCO0FBQzVCLGNBQU1DLGlCQUFHRSxNQUFILENBQVVILEdBQVYsQ0FBTjtBQUNEOztBQUNELGFBQU9DLGlCQUFHRyxNQUFILENBQVVKLEdBQVYsQ0FBUDtBQUpnRDtBQUtqRDtBQUVEOzs7Ozs7O0FBS01LLFlBQU4sQ0FBaUJDLElBQWpCLEVBQThDO0FBQUE7QUFDNUMsZ0JBQVVMLGlCQUFHQyxVQUFILENBQWNJLElBQWQsQ0FBVixFQUErQjtBQUM3QixjQUFNTCxpQkFBR0UsTUFBSCxDQUFVRyxJQUFWLENBQU47QUFDRDs7QUFDRCxZQUFNTCxpQkFBR0csTUFBSCxDQUFVRyxjQUFLQyxPQUFMLENBQWFGLElBQWIsQ0FBVixDQUFOO0FBSjRDO0FBSzdDO0FBRUQ7Ozs7OztBQUlBRyxjQUFZQyxNQUFaLEVBQXFDO0FBQ25DLFFBQUk7QUFDRkMsY0FBUUQsTUFBUjs7QUFDQSxhQUFPLElBQVA7QUFDRCxLQUhELENBR0UsT0FBT0UsQ0FBUCxFQUFVO0FBQ1Y7QUFDQSxhQUFPLEtBQVA7QUFDRDtBQUNGOztBQW5Gb0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG5pbXBvcnQgeyBGb3JnZUFyY2gsIEZvcmdlQ29uZmlnLCBGb3JnZVBsYXRmb3JtLCBJRm9yZ2VNYWtlciB9IGZyb20gJ0BlbGVjdHJvbi1mb3JnZS9zaGFyZWQtdHlwZXMnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ha2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHBhY2thZ2VkIEVsZWN0cm9uIGFwcGxpY2F0aW9uXG4gICAqL1xuICBkaXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgeW91IHNob3VsZCBwdXQgYWxsIHlvdXIgYXJ0aWZhY3RzIGluIChwb3RlbnRpYWxseSBpbiBzdWIgZm9sZGVycylcbiAgICogTk9URTogdGhpcyBkaXJlY3RvcnkgaXMgbm90IGd1YXJ1bnRlZWQgdG8gYWxyZWFkeSBleGlzdFxuICAgKi9cbiAgbWFrZURpcjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGh1bWFuIGZyaWVuZGx5IG5hbWUgb2YgdGhlIHByb2plY3RcbiAgICovXG4gIGFwcE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgcGxhdGZvcm0geW91IHNob3VsZCBtYWtlIGZvclxuICAgKi9cbiAgdGFyZ2V0UGxhdGZvcm06IEZvcmdlUGxhdGZvcm07XG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSB5b3Ugc2hvdWxkIG1ha2UgZm9yXG4gICAqL1xuICB0YXJnZXRBcmNoOiBGb3JnZUFyY2g7XG4gIC8qKlxuICAgKiBGdWxseSByZXNvbHZlZCBmb3JnZSBjb25maWd1cmF0aW9uLCB5b3Ugc2hvdWxkbid0IHJlYWxseSBuZWVkIHRoaXNcbiAgICovXG4gIGZvcmdlQ29uZmlnOiBGb3JnZUNvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbnMgcGFja2FnZS5qc29uIGZpbGVcbiAgICovXG4gIHBhY2thZ2VKU09OOiBhbnk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIE1ha2VyPEM+IHtcbiAgcHVibGljIGFic3RyYWN0IG5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGRlZmF1bHRQbGF0Zm9ybXM6IEZvcmdlUGxhdGZvcm1bXTtcbiAgLyogdHNsaW50OmRpc2FibGUgdmFyaWFibGUtbmFtZSAqL1xuICBfX2lzRWxlY3Ryb25Gb3JnZU1ha2VyITogdHJ1ZTtcbiAgLyogdHNsaW50OmVuYWJsZSB2YXJpYWJsZS1uYW1lICovXG5cbiAgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogQyA9IHt9IGFzIEMsIHByb3RlY3RlZCBwcm92aWRlZFBsYXRmb3Jtcz86IEZvcmdlUGxhdGZvcm1bXSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnX19pc0VsZWN0cm9uRm9yZ2VNYWtlcicsIHtcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtcygpIHtcbiAgICBpZiAodGhpcy5wcm92aWRlZFBsYXRmb3JtcykgcmV0dXJuIHRoaXMucHJvdmlkZWRQbGF0Zm9ybXM7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBsYXRmb3JtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcnMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgYW5kIHJldHVybiB0cnVlIG9yIGZhbHNlIGluZGljYXRpbmcgd2hldGhlclxuICAgKiB0aGlzIG1ha2VyIGNhbiBiZSBydW4gb24gdGhlIGN1cnJlbnQgcGxhdGZvcm0uICBOb3JtYWxseSB0aGlzIGlzIGp1c3QgYSBwcm9jZXNzLnBsYXRmb3JtXG4gICAqIGNoZWNrIGJ1dCBpdCBjYW4gYmUgYSBkZWVwZXIgY2hlY2sgZm9yIGRlcGVuZGVuY2llcyBsaWtlIGZha2Utcm9vdCBvciBvdGhlclxuICAgKiByZXF1aXJlZCBleHRlcm5hbCBidWlsZCB0b29scy5cbiAgICpcbiAgICogSWYgdGhlIGlzc3VlIGlzIGEgbWlzc2luZyBkZXBlbmRlbmN5IHlvdSBzaG91bGQgbG9nIG91dCBhIEhFTFBGVUwgZXJyb3IgbWVzc2FnZVxuICAgKiB0ZWxsaW5nIHRoZSBkZXZlbG9wZXIgZXhhY3RseSB3aGF0IGlzIG1pc3NpbmcgYW5kIGlmIHBvc3NpYmxlIGhvdyB0byBnZXQgaXQuXG4gICAqL1xuICBpc1N1cHBvcnRlZE9uQ3VycmVudFBsYXRmb3JtKCk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWFrZXIgJHt0aGlzLm5hbWV9IGRpZCBub3QgaW1wbGVtZW50IHRoZSBpc1N1cHBvcnRlZE9uQ3VycmVudFBsYXRmb3JtIG1ldGhvZGApO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2VycyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIGFic29sdXRlIHBhdGhzXG4gICAqIHRvIHRoZSBhcnRpZmFjdHMgZ2VuZXJhdGVkIGJ5IHlvdXIgbWFrZXJcbiAgICovXG4gIGFzeW5jIG1ha2Uob3B0czogTWFrZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWFrZXIgJHt0aGlzLm5hbWV9IGRpZCBub3QgaW1wbGVtZW50IHRoZSBtYWtlIG1ldGhvZGApO1xuICB9XG5cblxuICAvKipcbiAgICogSGVscGVyc1xuICAgKi9cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgZGlyZWN0b3J5IGV4aXN0cyBhbmQgaXMgZm9yY2VkIHRvIGJlIGVtcHR5LlxuICAgKlxuICAgKiBJLmUuIElmIHRoZSBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMgaXQgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkLCB0aGlzXG4gICAqIGlzIGEgZGVzdHJ1Y3RpdmUgb3BlcmF0aW9uXG4gICAqL1xuICBhc3luYyBlbnN1cmVEaXJlY3RvcnkoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyhkaXIpKSB7XG4gICAgICBhd2FpdCBmcy5yZW1vdmUoZGlyKTtcbiAgICB9XG4gICAgcmV0dXJuIGZzLm1rZGlycyhkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHBhdGggdG8gdGhlIGZpbGUgZXhpc3RzIGFuZCB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdFxuICAgKlxuICAgKiBJLmUuIElmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzIGl0IGlzIGRlbGV0ZWQgYW5kIHRoZSBwYXRoIGNyZWF0ZWRcbiAgICovXG4gIGFzeW5jIGVuc3VyZUZpbGUoZmlsZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMoZmlsZSkpIHtcbiAgICAgIGF3YWl0IGZzLnJlbW92ZShmaWxlKTtcbiAgICB9XG4gICAgYXdhaXQgZnMubWtkaXJzKHBhdGguZGlybmFtZShmaWxlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBtb2R1bGUgaXMgaW5zdGFsbGVkLCB1c2VkIGZvciB0ZXN0aW5nIGlmIG9wdGlvbmFsIGRlcGVuZGVuY2llc1xuICAgKiBhcmUgaW5zdGFsbGVkIG9yIG5vdFxuICAgKi9cbiAgaXNJbnN0YWxsZWQobW9kdWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgcmVxdWlyZShtb2R1bGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gUGFja2FnZSBkb2Vzbid0IGV4aXN0IC0tIG11c3Qgbm90IGJlIGluc3RhbGxhYmxlIG9uIHRoaXMgcGxhdGZvcm1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NYWtlci50cyJdLCJuYW1lcyI6WyJNYWtlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnRmV0Y2hlciIsInByb3ZpZGVkUGxhdGZvcm1zIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJwbGF0Zm9ybXMiLCJkZWZhdWx0UGxhdGZvcm1zIiwicHJlcGFyZUNvbmZpZyIsInRhcmdldEFyY2giLCJjb25maWciLCJpc1N1cHBvcnRlZE9uQ3VycmVudFBsYXRmb3JtIiwicHJvdG90eXBlIiwiRXJyb3IiLCJuYW1lIiwibWFrZSIsIm9wdHMiLCJlbnN1cmVEaXJlY3RvcnkiLCJkaXIiLCJmcyIsInBhdGhFeGlzdHMiLCJyZW1vdmUiLCJta2RpcnMiLCJlbnN1cmVGaWxlIiwiZmlsZSIsInBhdGgiLCJkaXJuYW1lIiwiZXh0ZXJuYWxCaW5hcmllc0V4aXN0IiwicmVxdWlyZWRFeHRlcm5hbEJpbmFyaWVzIiwiZXZlcnkiLCJiaW5hcnkiLCJ3aGljaCIsInN5bmMiLCJub3Rocm93IiwiZW5zdXJlRXh0ZXJuYWxCaW5hcmllc0V4aXN0Iiwiam9pbiIsImlzSW5zdGFsbGVkIiwibW9kdWxlIiwicmVxdWlyZSIsImUiLCJub3JtYWxpemVXaW5kb3dzVmVyc2lvbiIsInZlcnNpb24iLCJub1ByZXJlbGVhc2UiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBb0NlLE1BQWVBLEtBQWYsQ0FBK0M7QUFXNURDLEVBQUFBLFdBQVcsQ0FBU0MsYUFBMkMsR0FBRyxFQUF2RCxFQUEwRUMsaUJBQTFFLEVBQStHO0FBQUEsU0FBdEdELGFBQXNHLEdBQXRHQSxhQUFzRztBQUFBLFNBQXJDQyxpQkFBcUMsR0FBckNBLGlCQUFxQzs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQSxzREFKOUUsRUFJOEU7O0FBQUE7O0FBQ3hIQyxJQUFBQSxNQUFNLENBQUNDLGNB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QVA7QUFDRCxLQUpELENBSUUsT0FBT0UsQ0FBUCxFQUFVO0FBQ1Y7QUFDQSxhQUFPLEtBQVA7QUFDRDtBQUNGO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSx1QkFBdUIsQ0FBQ0MsT0FBRCxFQUEwQjtBQUMvQyxVQUFNQyxZQUFZLEdBQUdELE9BQU8sQ0FBQ0UsT0FBUixDQUFnQixLQUFoQixFQUF1QixFQUF2QixDQUFyQjtBQUNBLFdBQVEsR0FBRUQsWUFBYSxJQUF2QjtBQUNEOztBQWpJMkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JnZUFyY2gsIEZvcmdlQ29uZmlnLCBGb3JnZVBsYXRmb3JtLCBJRm9yZ2VNYWtlciB9IGZyb20gJ0BlbGVjdHJvbi1mb3JnZS9zaGFyZWQtdHlwZXMnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoJztcblxuZXhwb3J0IHR5cGUgRW1wdHlDb25maWcgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFrZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcGFja2FnZWQgRWxlY3Ryb24gYXBwbGljYXRpb25cbiAgICovXG4gIGRpcjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB5b3Ugc2hvdWxkIHB1dCBhbGwgeW91ciBhcnRpZmFjdHMgaW4gKHBvdGVudGlhbGx5IGluIHN1YiBmb2xkZXJzKVxuICAgKiBOT1RFOiB0aGlzIGRpcmVjdG9yeSBpcyBub3QgZ3VhcnVudGVlZCB0byBhbHJlYWR5IGV4aXN0XG4gICAqL1xuICBtYWtlRGlyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVzb2x2ZWQgaHVtYW4gZnJpZW5kbHkgbmFtZSBvZiB0aGUgcHJvamVjdFxuICAgKi9cbiAgYXBwTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHRhcmdldCBwbGF0Zm9ybSB5b3Ugc2hvdWxkIG1ha2UgZm9yXG4gICAqL1xuICB0YXJnZXRQbGF0Zm9ybTogRm9yZ2VQbGF0Zm9ybTtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIHlvdSBzaG91bGQgbWFrZSBmb3JcbiAgICovXG4gIHRhcmdldEFyY2g6IEZvcmdlQXJjaDtcbiAgLyoqXG4gICAqIEZ1bGx5IHJlc29sdmVkIGZvcmdlIGNvbmZpZ3VyYXRpb24sIHlvdSBzaG91bGRuJ3QgcmVhbGx5IG5lZWQgdGhpc1xuICAgKi9cbiAgZm9yZ2VDb25maWc6IEZvcmdlQ29uZmlnO1xuICAvKipcbiAgICogVGhlIGFwcGxpY2F0aW9uJ3MgcGFja2FnZS5qc29uIGZpbGVcbiAgICovXG4gIHBhY2thZ2VKU09OOiBhbnk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxufVxuXG5leHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBNYWtlcjxDPiBpbXBsZW1lbnRzIElGb3JnZU1ha2VyIHtcbiAgcHVibGljIGNvbmZpZyE6IEM7XG5cbiAgcHVibGljIGFic3RyYWN0IG5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZGVmYXVsdFBsYXRmb3JtczogRm9yZ2VQbGF0Zm9ybVtdO1xuXG4gIHB1YmxpYyByZXF1aXJlZEV4dGVybmFsQmluYXJpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgX19pc0VsZWN0cm9uRm9yZ2VNYWtlciE6IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdGZXRjaGVyOiBDIHwgKChhcmNoOiBGb3JnZUFyY2gpID0+IEMpID0ge30gYXMgQywgcHJvdGVjdGVkIHByb3ZpZGVkUGxhdGZvcm1zPzogRm9yZ2VQbGF0Zm9ybVtdKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdfX2lzRWxlY3Ryb25Gb3JnZU1ha2VyJywge1xuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgcGxhdGZvcm1zKCk6IEZvcmdlUGxhdGZvcm1bXSB7XG4gICAgaWYgKHRoaXMucHJvdmlkZWRQbGF0Zm9ybXMpIHJldHVybiB0aGlzLnByb3ZpZGVkUGxhdGZvcm1zO1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRQbGF0Zm9ybXM7XG4gIH1cblxuICAvLyBUT0RPOiBSZW1vdmUgdGhpcywgaXQgaXMgYW4gZXllLXNvcmUgYW5kIGlzIGEgbmFzdHkgaGFjayB0byBwcm92aWRlIGZvcmdlXG4gIC8vICAgICAgIHY1IHN0eWxlIGZ1bmN0aW9uYWxpdHkgaW4gdGhlIG5ldyBBUElcbiAgcHJlcGFyZUNvbmZpZyh0YXJnZXRBcmNoOiBGb3JnZUFyY2gpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnRmV0Y2hlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5jb25maWcgPSAodGhpcy5jb25maWdGZXRjaGVyIGFzIHVua25vd24gYXMgKGFyY2g6IEZvcmdlQXJjaCkgPT4gQykodGFyZ2V0QXJjaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWdGZXRjaGVyIGFzIEM7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ha2VycyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCBhbmQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaW5kaWNhdGluZyB3aGV0aGVyXG4gICAqIHRoaXMgbWFrZXIgY2FuIGJlIHJ1biBvbiB0aGUgY3VycmVudCBwbGF0Zm9ybS4gIE5vcm1hbGx5IHRoaXMgaXMganVzdCBhIHByb2Nlc3MucGxhdGZvcm1cbiAgICogY2hlY2sgYnV0IGl0IGNhbiBiZSBhIGRlZXBlciBjaGVjayBmb3IgZGVwZW5kZW5jaWVzIGxpa2UgZmFrZS1yb290IG9yIG90aGVyXG4gICAqIHJlcXVpcmVkIGV4dGVybmFsIGJ1aWxkIHRvb2xzLlxuICAgKlxuICAgKiBJZiB0aGUgaXNzdWUgaXMgYSBtaXNzaW5nIGRlcGVuZGVuY3kgeW91IHNob3VsZCBsb2cgb3V0IGEgSEVMUEZVTCBlcnJvciBtZXNzYWdlXG4gICAqIHRlbGxpbmcgdGhlIGRldmVsb3BlciBleGFjdGx5IHdoYXQgaXMgbWlzc2luZyBhbmQgaWYgcG9zc2libGUgaG93IHRvIGdldCBpdC5cbiAgICovXG4gIGlzU3VwcG9ydGVkT25DdXJyZW50UGxhdGZvcm0oKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNTdXBwb3J0ZWRPbkN1cnJlbnRQbGF0Zm9ybSA9PT0gTWFrZXIucHJvdG90eXBlLmlzU3VwcG9ydGVkT25DdXJyZW50UGxhdGZvcm0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWFrZXIgJHt0aGlzLm5hbWV9IGRpZCBub3QgaW1wbGVtZW50IHRoZSBpc1N1cHBvcnRlZE9uQ3VycmVudFBsYXRmb3JtIG1ldGhvZGApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcnMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgYW5kIHJldHVybiBhbiBhcnJheSBvZiBhYnNvbHV0ZSBwYXRoc1xuICAgKiB0byB0aGUgYXJ0aWZhY3RzIGdlbmVyYXRlZCBieSB5b3VyIG1ha2VyXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGFzeW5jIG1ha2Uob3B0czogTWFrZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICh0aGlzLm1ha2UgPT09IE1ha2VyLnByb3RvdHlwZS5tYWtlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1ha2VyICR7dGhpcy5uYW1lfSBkaWQgbm90IGltcGxlbWVudCB0aGUgbWFrZSBtZXRob2RgKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlcnNcbiAgICovXG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIGRpcmVjdG9yeSBleGlzdHMgYW5kIGlzIGZvcmNlZCB0byBiZSBlbXB0eS5cbiAgICpcbiAgICogSS5lLiBJZiB0aGUgZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzIGl0IGlzIGRlbGV0ZWQgYW5kIHJlY3JlYXRlZCwgdGhpc1xuICAgKiBpcyBhIGRlc3RydWN0aXZlIG9wZXJhdGlvblxuICAgKi9cbiAgYXN5bmMgZW5zdXJlRGlyZWN0b3J5KGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMoZGlyKSkge1xuICAgICAgYXdhaXQgZnMucmVtb3ZlKGRpcik7XG4gICAgfVxuICAgIHJldHVybiBmcy5ta2RpcnMoZGlyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoZSBwYXRoIHRvIHRoZSBmaWxlIGV4aXN0cyBhbmQgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3RcbiAgICpcbiAgICogSS5lLiBJZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cyBpdCBpcyBkZWxldGVkIGFuZCB0aGUgcGF0aCBjcmVhdGVkXG4gICAqL1xuICBhc3luYyBlbnN1cmVGaWxlKGZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhd2FpdCBmcy5wYXRoRXhpc3RzKGZpbGUpKSB7XG4gICAgICBhd2FpdCBmcy5yZW1vdmUoZmlsZSk7XG4gICAgfVxuICAgIGF3YWl0IGZzLm1rZGlycyhwYXRoLmRpcm5hbWUoZmlsZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGJpbmFyaWVzIGV4aXN0LCB3aGljaCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBtYWtlciB0byBiZSB1c2VkLlxuICAgKi9cbiAgZXh0ZXJuYWxCaW5hcmllc0V4aXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkRXh0ZXJuYWxCaW5hcmllcy5ldmVyeSgoYmluYXJ5KSA9PiB3aGljaC5zeW5jKGJpbmFyeSwgeyBub3Rocm93OiB0cnVlIH0pICE9PSBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgYW55IG9mIHRoZSBiaW5hcmllcyBkb24ndCBleGlzdC5cbiAgICovXG4gIGVuc3VyZUV4dGVybmFsQmluYXJpZXNFeGlzdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZXh0ZXJuYWxCaW5hcmllc0V4aXN0KCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IG1ha2UgZm9yICR7dGhpcy5uYW1lfSwgdGhlIGZvbGxvd2luZyBleHRlcm5hbCBiaW5hcmllcyBuZWVkIHRvIGJlIGluc3RhbGxlZDogJHt0aGlzLnJlcXVpcmVkRXh0ZXJuYWxCaW5hcmllcy5qb2luKCcsICcpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGdpdmVuIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHVzZWQgZm9yIHRlc3RpbmcgaWYgb3B0aW9uYWwgZGVwZW5kZW5jaWVzXG4gICAqIGFyZSBpbnN0YWxsZWQgb3Igbm90XG4gICAqL1xuICBpc0luc3RhbGxlZChtb2R1bGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmUsIGltcG9ydC9uby1keW5hbWljLXJlcXVpcmVcbiAgICAgIHJlcXVpcmUobW9kdWxlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIFBhY2thZ2UgZG9lc24ndCBleGlzdCAtLSBtdXN0IG5vdCBiZSBpbnN0YWxsYWJsZSBvbiB0aGlzIHBsYXRmb3JtXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5vcm1hbGl6ZSB0aGUgZ2l2ZW4gc2VtdmVyLWZvcm1hdHRlZCB2ZXJzaW9uIHRvIGEgNC1wYXJ0IGRvdCBkZWxpbWl0ZWQgdmVyc2lvbiBudW1iZXIgd2l0aG91dFxuICAgKiBwcmVyZWxlYXNlIGluZm9ybWF0aW9uIGZvciB1c2UgaW4gV2luZG93cyBhcHBzLlxuICAgKi9cbiAgbm9ybWFsaXplV2luZG93c1ZlcnNpb24odmVyc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBub1ByZXJlbGVhc2UgPSB2ZXJzaW9uLnJlcGxhY2UoLy0uKi8sICcnKTtcbiAgICByZXR1cm4gYCR7bm9QcmVyZWxlYXNlfS4wYDtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,24 +1,22 @@
1
1
  {
2
2
  "name": "@electron-forge/maker-base",
3
- "version": "6.0.0-beta.6",
3
+ "version": "6.0.0-beta.63",
4
4
  "description": "Base maker for Electron Forge",
5
5
  "repository": "https://github.com/electron-userland/electron-forge",
6
6
  "author": "Samuel Attard",
7
7
  "license": "MIT",
8
8
  "main": "dist/Maker.js",
9
9
  "typings": "dist/Maker.d.ts",
10
- "scripts": {
11
- "test": "mocha --require ts-node/register test/**/*_spec.ts test/**/**/*_spec.ts --opts ../../../mocha.opts"
12
- },
13
10
  "devDependencies": {
14
- "chai": "^4.0.0",
15
- "mocha": "^5.0.0"
11
+ "chai": "^4.3.3",
12
+ "mocha": "^9.0.1"
16
13
  },
17
14
  "engines": {
18
- "node": ">= 6.0"
15
+ "node": ">= 12.13.0"
19
16
  },
20
17
  "dependencies": {
21
- "@electron-forge/shared-types": "6.0.0-beta.6",
22
- "fs-extra": "^5.0.0"
18
+ "@electron-forge/shared-types": "6.0.0-beta.63",
19
+ "fs-extra": "^10.0.0",
20
+ "which": "^2.0.2"
23
21
  }
24
22
  }
package/tsconfig.json CHANGED
@@ -1,23 +1,27 @@
1
1
  {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "es6",
5
- "outDir": "dist",
6
- "lib": [
7
- "es6",
8
- "dom",
9
- "es7"
10
- ],
11
- "sourceMap": true,
12
- "rootDir": "src",
13
- "experimentalDecorators": true,
14
- "strict": true,
15
- "esModuleInterop": true,
16
- "declaration": true
17
- },
18
- "exclude": [
19
- "node_modules",
20
- "dist",
21
- "test"
22
- ]
23
- }
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "target": "es2019",
5
+ "outDir": "dist",
6
+ "lib": [
7
+ "dom",
8
+ "es2019"
9
+ ],
10
+ "sourceMap": true,
11
+ "rootDir": ".",
12
+ "experimentalDecorators": true,
13
+ "strict": true,
14
+ "esModuleInterop": true,
15
+ "declaration": true,
16
+ "typeRoots": [
17
+ "../../../node_modules/@types",
18
+ "../../../typings"
19
+ ]
20
+ },
21
+ "exclude": [
22
+ "node_modules",
23
+ "dist",
24
+ "test",
25
+ "index.ts"
26
+ ]
27
+ }