UNPKG

11 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8require("source-map-support/register");
9
10var _publisherBase = _interopRequireDefault(require("@electron-forge/publisher-base"));
11
12var _asyncOra = require("@electron-forge/async-ora");
13
14var _debug = _interopRequireDefault(require("debug"));
15
16var _formData = _interopRequireDefault(require("form-data"));
17
18var _fs = _interopRequireDefault(require("fs"));
19
20var _nodeFetch = _interopRequireDefault(require("node-fetch"));
21
22var _path = _interopRequireDefault(require("path"));
23
24function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
26function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
28function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
30function _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; }
31
32const d = (0, _debug.default)('electron-forge:publish:nucleus');
33
34class PublisherNucleus extends _publisherBase.default {
35 constructor(...args) {
36 super(...args);
37
38 _defineProperty(this, "name", 'nucleus');
39
40 _defineProperty(this, "collapseMakeResults", makeResults => {
41 const newMakeResults = [];
42
43 for (const result of makeResults) {
44 const existingResult = newMakeResults.find(nResult => nResult.arch === result.arch && nResult.platform === result.platform && nResult.packageJSON.version === result.packageJSON.version);
45
46 if (existingResult) {
47 existingResult.artifacts.push(...result.artifacts);
48 } else {
49 newMakeResults.push(_objectSpread({}, result));
50 }
51 }
52
53 return newMakeResults;
54 });
55 }
56
57 async publish({
58 makeResults
59 }) {
60 const {
61 config
62 } = this;
63 const collapsedResults = this.collapseMakeResults(makeResults);
64
65 for (const [resultIdx, makeResult] of collapsedResults.entries()) {
66 const msg = `Uploading result (${resultIdx + 1}/${collapsedResults.length})`;
67 d(msg);
68 await (0, _asyncOra.asyncOra)(msg, async () => {
69 const data = new _formData.default();
70 data.append('platform', makeResult.platform);
71 data.append('arch', makeResult.arch);
72 data.append('version', makeResult.packageJSON.version);
73 let artifactIdx = 0;
74
75 for (const artifactPath of makeResult.artifacts) {
76 // Skip the RELEASES file, it is automatically generated on the server
77 // eslint-disable-next-line no-continue
78 if (_path.default.basename(artifactPath).toLowerCase() === 'releases') continue;
79 data.append(`file${artifactIdx}`, _fs.default.createReadStream(artifactPath));
80 artifactIdx += 1;
81 }
82
83 const response = await (0, _nodeFetch.default)(`${config.host}/rest/app/${config.appId}/channel/${config.channelId}/upload`, {
84 headers: {
85 Authorization: config.token
86 },
87 method: 'POST',
88 body: data
89 });
90
91 if (response.status !== 200) {
92 throw new Error(`Unexpected response code from Nucleus: ${response.status}\n\nBody:\n${await response.text()}`);
93 }
94 });
95 }
96 }
97
98}
99
100exports.default = PublisherNucleus;
101//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QdWJsaXNoZXJOdWNsZXVzLnRzIl0sIm5hbWVzIjpbImQiLCJQdWJsaXNoZXJOdWNsZXVzIiwiUHVibGlzaGVyQmFzZSIsIm1ha2VSZXN1bHRzIiwibmV3TWFrZVJlc3VsdHMiLCJyZXN1bHQiLCJleGlzdGluZ1Jlc3VsdCIsImZpbmQiLCJuUmVzdWx0IiwiYXJjaCIsInBsYXRmb3JtIiwicGFja2FnZUpTT04iLCJ2ZXJzaW9uIiwiYXJ0aWZhY3RzIiwicHVzaCIsInB1Ymxpc2giLCJjb25maWciLCJjb2xsYXBzZWRSZXN1bHRzIiwiY29sbGFwc2VNYWtlUmVzdWx0cyIsInJlc3VsdElkeCIsIm1ha2VSZXN1bHQiLCJlbnRyaWVzIiwibXNnIiwibGVuZ3RoIiwiZGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYXJ0aWZhY3RJZHgiLCJhcnRpZmFjdFBhdGgiLCJwYXRoIiwiYmFzZW5hbWUiLCJ0b0xvd2VyQ2FzZSIsImZzIiwiY3JlYXRlUmVhZFN0cmVhbSIsInJlc3BvbnNlIiwiaG9zdCIsImFwcElkIiwiY2hhbm5lbElkIiwiaGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJ0b2tlbiIsIm1ldGhvZCIsImJvZHkiLCJzdGF0dXMiLCJFcnJvciIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBSUEsTUFBTUEsQ0FBQyxHQUFHLG9CQUFNLGdDQUFOLENBQVY7O0FBRWUsTUFBTUMsZ0JBQU4sU0FBK0JDLHNCQUEvQixDQUFxRTtBQUFBO0FBQUE7O0FBQUEsa0NBQzNFLFNBRDJFOztBQUFBLGlEQUduREMsV0FBRCxJQUFrRDtBQUM5RSxZQUFNQyxjQUFrQyxHQUFHLEVBQTNDOztBQUNBLFdBQUssTUFBTUMsTUFBWCxJQUFxQkYsV0FBckIsRUFBa0M7QUFDaEMsY0FBTUcsY0FBYyxHQUFHRixjQUFjLENBQUNHLElBQWYsQ0FBcUJDLE9BQUQsSUFBYUEsT0FBTyxDQUFDQyxJQUFSLEtBQWlCSixNQUFNLENBQUNJLElBQXhCLElBQ2pERCxPQUFPLENBQUNFLFFBQVIsS0FBcUJMLE1BQU0sQ0FBQ0ssUUFEcUIsSUFFakRGLE9BQU8sQ0FBQ0csV0FBUixDQUFvQkMsT0FBcEIsS0FBZ0NQLE1BQU0sQ0FBQ00sV0FBUCxDQUFtQkMsT0FGbkMsQ0FBdkI7O0FBR0EsWUFBSU4sY0FBSixFQUFvQjtBQUNsQkEsVUFBQUEsY0FBYyxDQUFDTyxTQUFmLENBQXlCQyxJQUF6QixDQUE4QixHQUFHVCxNQUFNLENBQUNRLFNBQXhDO0FBQ0QsU0FGRCxNQUVPO0FBQ0xULFVBQUFBLGNBQWMsQ0FBQ1UsSUFBZixtQkFBeUJULE1BQXpCO0FBQ0Q7QUFDRjs7QUFDRCxhQUFPRCxjQUFQO0FBQ0QsS0FoQmlGO0FBQUE7O0FBa0JsRixRQUFNVyxPQUFOLENBQWM7QUFBRVosSUFBQUE7QUFBRixHQUFkLEVBQWlEO0FBQy9DLFVBQU07QUFBRWEsTUFBQUE7QUFBRixRQUFhLElBQW5CO0FBRUEsVUFBTUMsZ0JBQWdCLEdBQUcsS0FBS0MsbUJBQUwsQ0FBeUJmLFdBQXpCLENBQXpCOztBQUVBLFNBQUssTUFBTSxDQUFDZ0IsU0FBRCxFQUFZQyxVQUFaLENBQVgsSUFBc0NILGdCQUFnQixDQUFDSSxPQUFqQixFQUF0QyxFQUFrRTtBQUNoRSxZQUFNQyxHQUFHLEdBQUkscUJBQW9CSCxTQUFTLEdBQUcsQ0FBRSxJQUFHRixnQkFBZ0IsQ0FBQ00sTUFBTyxHQUExRTtBQUNBdkIsTUFBQUEsQ0FBQyxDQUFDc0IsR0FBRCxDQUFEO0FBRUEsWUFBTSx3QkFBU0EsR0FBVCxFQUFjLFlBQVk7QUFDOUIsY0FBTUUsSUFBSSxHQUFHLElBQUlDLGlCQUFKLEVBQWI7QUFDQUQsUUFBQUEsSUFBSSxDQUFDRSxNQUFMLENBQVksVUFBWixFQUF3Qk4sVUFBVSxDQUFDVixRQUFuQztBQUNBYyxRQUFBQSxJQUFJLENBQUNFLE1BQUwsQ0FBWSxNQUFaLEVBQW9CTixVQUFVLENBQUNYLElBQS9CO0FBQ0FlLFFBQUFBLElBQUksQ0FBQ0UsTUFBTCxDQUFZLFNBQVosRUFBdUJOLFVBQVUsQ0FBQ1QsV0FBWCxDQUF1QkMsT0FBOUM7QUFFQSxZQUFJZSxXQUFXLEdBQUcsQ0FBbEI7O0FBQ0EsYUFBSyxNQUFNQyxZQUFYLElBQTJCUixVQUFVLENBQUNQLFNBQXRDLEVBQWlEO0FBQy9DO0FBQ0E7QUFDQSxjQUFJZ0IsY0FBS0MsUUFBTCxDQUFjRixZQUFkLEVBQTRCRyxXQUE1QixPQUE4QyxVQUFsRCxFQUE4RDtBQUM5RFAsVUFBQUEsSUFBSSxDQUFDRSxNQUFMLENBQWEsT0FBTUMsV0FBWSxFQUEvQixFQUFrQ0ssWUFBR0MsZ0JBQUgsQ0FBb0JMLFlBQXBCLENBQWxDO0FBQ0FELFVBQUFBLFdBQVcsSUFBSSxDQUFmO0FBQ0Q7O0FBRUQsY0FBTU8sUUFBUSxHQUFHLE1BQU0sd0JBQU8sR0FBRWxCLE1BQU0sQ0FBQ21CLElBQUssYUFBWW5CLE1BQU0sQ0FBQ29CLEtBQU0sWUFBV3BCLE1BQU0sQ0FBQ3FCLFNBQVUsU0FBMUUsRUFBb0Y7QUFDekdDLFVBQUFBLE9BQU8sRUFBRTtBQUNQQyxZQUFBQSxhQUFhLEVBQUV2QixNQUFNLENBQUN3QjtBQURmLFdBRGdHO0FBSXpHQyxVQUFBQSxNQUFNLEVBQUUsTUFKaUc7QUFLekdDLFVBQUFBLElBQUksRUFBRWxCO0FBTG1HLFNBQXBGLENBQXZCOztBQVFBLFlBQUlVLFFBQVEsQ0FBQ1MsTUFBVCxLQUFvQixHQUF4QixFQUE2QjtBQUMzQixnQkFBTSxJQUFJQyxLQUFKLENBQVcsMENBQXlDVixRQUFRLENBQUNTLE1BQU8sY0FBYSxNQUFNVCxRQUFRLENBQUNXLElBQVQsRUFBZ0IsRUFBdkcsQ0FBTjtBQUNEO0FBQ0YsT0ExQkssQ0FBTjtBQTJCRDtBQUNGOztBQXZEaUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHVibGlzaGVyQmFzZSwgeyBQdWJsaXNoZXJPcHRpb25zIH0gZnJvbSAnQGVsZWN0cm9uLWZvcmdlL3B1Ymxpc2hlci1iYXNlJztcbmltcG9ydCB7IGFzeW5jT3JhIH0gZnJvbSAnQGVsZWN0cm9uLWZvcmdlL2FzeW5jLW9yYSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IFB1Ymxpc2hlck51Y2xldXNDb25maWcgfSBmcm9tICcuL0NvbmZpZyc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnZWxlY3Ryb24tZm9yZ2U6cHVibGlzaDpudWNsZXVzJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1Ymxpc2hlck51Y2xldXMgZXh0ZW5kcyBQdWJsaXNoZXJCYXNlPFB1Ymxpc2hlck51Y2xldXNDb25maWc+IHtcbiAgbmFtZSA9ICdudWNsZXVzJztcblxuICBwcml2YXRlIGNvbGxhcHNlTWFrZVJlc3VsdHMgPSAobWFrZVJlc3VsdHM6IFB1Ymxpc2hlck9wdGlvbnNbJ21ha2VSZXN1bHRzJ10pID0+IHtcbiAgICBjb25zdCBuZXdNYWtlUmVzdWx0czogdHlwZW9mIG1ha2VSZXN1bHRzID0gW107XG4gICAgZm9yIChjb25zdCByZXN1bHQgb2YgbWFrZVJlc3VsdHMpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nUmVzdWx0ID0gbmV3TWFrZVJlc3VsdHMuZmluZCgoblJlc3VsdCkgPT4gblJlc3VsdC5hcmNoID09PSByZXN1bHQuYXJjaFxuICAgICAgICAgICYmIG5SZXN1bHQucGxhdGZvcm0gPT09IHJlc3VsdC5wbGF0Zm9ybVxuICAgICAgICAgICYmIG5SZXN1bHQucGFja2FnZUpTT04udmVyc2lvbiA9PT0gcmVzdWx0LnBhY2thZ2VKU09OLnZlcnNpb24pO1xuICAgICAgaWYgKGV4aXN0aW5nUmVzdWx0KSB7XG4gICAgICAgIGV4aXN0aW5nUmVzdWx0LmFydGlmYWN0cy5wdXNoKC4uLnJlc3VsdC5hcnRpZmFjdHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3TWFrZVJlc3VsdHMucHVzaCh7IC4uLnJlc3VsdCB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld01ha2VSZXN1bHRzO1xuICB9XG5cbiAgYXN5bmMgcHVibGlzaCh7IG1ha2VSZXN1bHRzIH06IFB1Ymxpc2hlck9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gdGhpcztcblxuICAgIGNvbnN0IGNvbGxhcHNlZFJlc3VsdHMgPSB0aGlzLmNvbGxhcHNlTWFrZVJlc3VsdHMobWFrZVJlc3VsdHMpO1xuXG4gICAgZm9yIChjb25zdCBbcmVzdWx0SWR4LCBtYWtlUmVzdWx0XSBvZiBjb2xsYXBzZWRSZXN1bHRzLmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgbXNnID0gYFVwbG9hZGluZyByZXN1bHQgKCR7cmVzdWx0SWR4ICsgMX0vJHtjb2xsYXBzZWRSZXN1bHRzLmxlbmd0aH0pYDtcbiAgICAgIGQobXNnKTtcblxuICAgICAgYXdhaXQgYXN5bmNPcmEobXNnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3BsYXRmb3JtJywgbWFrZVJlc3VsdC5wbGF0Zm9ybSk7XG4gICAgICAgIGRhdGEuYXBwZW5kKCdhcmNoJywgbWFrZVJlc3VsdC5hcmNoKTtcbiAgICAgICAgZGF0YS5hcHBlbmQoJ3ZlcnNpb24nLCBtYWtlUmVzdWx0LnBhY2thZ2VKU09OLnZlcnNpb24pO1xuXG4gICAgICAgIGxldCBhcnRpZmFjdElkeCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgYXJ0aWZhY3RQYXRoIG9mIG1ha2VSZXN1bHQuYXJ0aWZhY3RzKSB7XG4gICAgICAgICAgLy8gU2tpcCB0aGUgUkVMRUFTRVMgZmlsZSwgaXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgb24gdGhlIHNlcnZlclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgICAgIGlmIChwYXRoLmJhc2VuYW1lKGFydGlmYWN0UGF0aCkudG9Mb3dlckNhc2UoKSA9PT0gJ3JlbGVhc2VzJykgY29udGludWU7XG4gICAgICAgICAgZGF0YS5hcHBlbmQoYGZpbGUke2FydGlmYWN0SWR4fWAsIGZzLmNyZWF0ZVJlYWRTdHJlYW0oYXJ0aWZhY3RQYXRoKSk7XG4gICAgICAgICAgYXJ0aWZhY3RJZHggKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7Y29uZmlnLmhvc3R9L3Jlc3QvYXBwLyR7Y29uZmlnLmFwcElkfS9jaGFubmVsLyR7Y29uZmlnLmNoYW5uZWxJZH0vdXBsb2FkYCwge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGNvbmZpZy50b2tlbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGJvZHk6IGRhdGEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCByZXNwb25zZSBjb2RlIGZyb20gTnVjbGV1czogJHtyZXNwb25zZS5zdGF0dXN9XFxuXFxuQm9keTpcXG4ke2F3YWl0IHJlc3BvbnNlLnRleHQoKX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
\No newline at end of file