@electron-forge/publisher-electron-release-server 6.0.0-beta.9 → 6.0.1
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/README.md +17 -14
- package/dist/Config.d.ts +8 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +4 -2
- package/dist/PublisherERS.d.ts +6 -4
- package/dist/PublisherERS.d.ts.map +1 -0
- package/dist/PublisherERS.js +133 -193
- package/index.ts +5 -0
- package/package.json +14 -15
- package/tsconfig.json +37 -21
- package/doc/assets/css/main.css +0 -865
- package/doc/assets/css/main.css.map +0 -7
- package/doc/assets/images/icons.png +0 -0
- package/doc/assets/images/icons@2x.png +0 -0
- package/doc/assets/images/widgets.png +0 -0
- package/doc/assets/images/widgets@2x.png +0 -0
- package/doc/assets/js/main.js +0 -5
- package/doc/assets/js/search.js +0 -3
- package/doc/classes/publisherers.html +0 -350
- package/doc/globals.html +0 -243
- package/doc/index.html +0 -174
- package/doc/interfaces/ersversion.html +0 -218
- package/doc/interfaces/publisherersconfig.html +0 -271
- package/src/Config.ts +0 -26
- package/src/PublisherERS.ts +0 -141
- package/tslint.json +0 -12
package/README.md
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
## publisher-electron-release-server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`@electron-forge/publisher-electron-release-server` publishes all your artifacts to a hosted instance of [Electron Release Server](https://github.com/ArekSredzki/electron-release-server) where users will be able to download them.
|
|
4
4
|
|
|
5
5
|
Please note that Electron Release Server is a community powered project and is not associated with Electron Forge or the Electron project directly.
|
|
6
6
|
|
|
7
|
-
Configuration options are documented in [`PublisherERSConfig`](https://js.electronforge.io/
|
|
7
|
+
Configuration options are documented in [`PublisherERSConfig`](https://js.electronforge.io/interfaces/_electron_forge_publisher_electron_release_server.PublisherERSConfig.html).
|
|
8
8
|
|
|
9
|
-
### Usage
|
|
10
9
|
|
|
11
|
-
```javascript
|
|
12
|
-
{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
```javascript title=forge.config.js
|
|
11
|
+
module.exports = {
|
|
12
|
+
// ...
|
|
13
|
+
publishers: [
|
|
14
|
+
{
|
|
15
|
+
name: '@electron-forge/publisher-electron-release-server',
|
|
16
|
+
config: {
|
|
17
|
+
baseUrl: 'https://update.server.com',
|
|
18
|
+
username: 'admin',
|
|
19
|
+
password: 'admin'
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
]
|
|
19
23
|
}
|
|
20
|
-
```
|
|
21
|
-
|
|
24
|
+
```
|
package/dist/Config.d.ts
CHANGED
|
@@ -23,4 +23,12 @@ export interface PublisherERSConfig {
|
|
|
23
23
|
* Default: stable
|
|
24
24
|
*/
|
|
25
25
|
channel?: string;
|
|
26
|
+
/**
|
|
27
|
+
* The "flavor" of the binary that you want to release to.
|
|
28
|
+
* This is useful if you want to provide multiple versions
|
|
29
|
+
* of the same application version (e.g. full and lite)
|
|
30
|
+
* to end users.
|
|
31
|
+
*/
|
|
32
|
+
flavor?: string;
|
|
26
33
|
}
|
|
34
|
+
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/dist/Config.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
package/dist/PublisherERS.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import PublisherBase,
|
|
2
|
-
import {
|
|
1
|
+
import { PublisherBase, PublisherOptions } from '@electron-forge/publisher-base';
|
|
2
|
+
import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types';
|
|
3
3
|
import { PublisherERSConfig } from './Config';
|
|
4
|
-
export declare const ersPlatform: (platform: ForgePlatform, arch: ForgeArch) =>
|
|
4
|
+
export declare const ersPlatform: (platform: ForgePlatform, arch: ForgeArch) => string;
|
|
5
5
|
export default class PublisherERS extends PublisherBase<PublisherERSConfig> {
|
|
6
6
|
name: string;
|
|
7
|
-
publish({makeResults}: PublisherOptions): Promise<void>;
|
|
7
|
+
publish({ makeResults, setStatusLine }: PublisherOptions): Promise<void>;
|
|
8
8
|
}
|
|
9
|
+
export { PublisherERS, PublisherERSConfig };
|
|
10
|
+
//# sourceMappingURL=PublisherERS.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublisherERS.d.ts","sourceRoot":"","sources":["../src/PublisherERS.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAmB9C,eAAO,MAAM,WAAW,aAAc,aAAa,QAAQ,SAAS,KAAG,MAWtE,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IACzE,IAAI,SAA6B;IAE3B,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0G/E;AAED,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/PublisherERS.js
CHANGED
|
@@ -1,210 +1,150 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
Object.defineProperty(exports, "PublisherERSConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _config.PublisherERSConfig;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
exports.PublisherERS = exports.default = exports.ersPlatform = void 0;
|
|
12
|
+
var _path = _interopRequireDefault(require("path"));
|
|
13
|
+
var _publisherBase = require("@electron-forge/publisher-base");
|
|
14
14
|
var _debug = _interopRequireDefault(require("debug"));
|
|
15
|
-
|
|
16
|
-
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
17
|
-
|
|
18
15
|
var _formData = _interopRequireDefault(require("form-data"));
|
|
19
|
-
|
|
20
16
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const d = (0, _debug.default
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
17
|
+
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
18
|
+
var _config = require("./Config");
|
|
19
|
+
function _interopRequireDefault(obj) {
|
|
20
|
+
return obj && obj.__esModule ? obj : {
|
|
21
|
+
default: obj
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const d = (0, _debug).default('electron-forge:publish:ers');
|
|
25
|
+
const fetchAndCheckStatus = async (url, init)=>{
|
|
26
|
+
const result = await (0, _nodeFetch).default(url, init);
|
|
27
|
+
if (result.ok) {
|
|
28
|
+
// res.status >= 200 && res.status < 300
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
throw new Error(`ERS publish failed with status code: ${result.status} (${result.url})`);
|
|
32
|
+
};
|
|
33
|
+
const ersPlatform = (platform, arch)=>{
|
|
34
|
+
switch(platform){
|
|
35
|
+
case 'darwin':
|
|
36
|
+
return 'osx_64';
|
|
37
|
+
case 'linux':
|
|
38
|
+
return arch === 'ia32' ? 'linux_32' : 'linux_64';
|
|
39
|
+
case 'win32':
|
|
40
|
+
return arch === 'ia32' ? 'windows_32' : 'windows_64';
|
|
41
|
+
default:
|
|
42
|
+
return platform;
|
|
43
|
+
}
|
|
44
44
|
};
|
|
45
|
-
|
|
46
45
|
exports.ersPlatform = ersPlatform;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return _temp = super(...args), Object.defineProperty(this, "name", {
|
|
53
|
-
configurable: true,
|
|
54
|
-
enumerable: true,
|
|
55
|
-
writable: true,
|
|
56
|
-
value: 'electron-release-server'
|
|
57
|
-
}), _temp;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
publish({
|
|
61
|
-
makeResults
|
|
62
|
-
}) {
|
|
63
|
-
var _this = this;
|
|
64
|
-
|
|
65
|
-
return _asyncToGenerator(function* () {
|
|
66
|
-
const config = _this.config;
|
|
67
|
-
|
|
68
|
-
if (!(config.baseUrl && config.username && config.password)) {
|
|
69
|
-
throw 'In order to publish to ERS you must set the "electronReleaseServer.baseUrl", "electronReleaseServer.username" and "electronReleaseServer.password" properties in your forge config. See the docs for more info'; // eslint-disable-line
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
d('attempting to authenticate to ERS');
|
|
73
|
-
|
|
74
|
-
const api = apiPath => `${config.baseUrl}/${apiPath}`;
|
|
75
|
-
|
|
76
|
-
const _ref = yield (yield (0, _nodeFetch.default)(api('api/auth/login'), {
|
|
77
|
-
method: 'POST',
|
|
78
|
-
body: JSON.stringify({
|
|
79
|
-
username: config.username,
|
|
80
|
-
password: config.password
|
|
81
|
-
}),
|
|
82
|
-
headers: {
|
|
83
|
-
'Content-Type': 'application/json'
|
|
46
|
+
class PublisherERS extends _publisherBase.PublisherBase {
|
|
47
|
+
async publish({ makeResults , setStatusLine }) {
|
|
48
|
+
const { config } = this;
|
|
49
|
+
if (!(config.baseUrl && config.username && config.password)) {
|
|
50
|
+
throw new Error('In order to publish to ERS you must set the "electronReleaseServer.baseUrl", "electronReleaseServer.username" and "electronReleaseServer.password" properties in your Forge config. See the docs for more info');
|
|
84
51
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var _iteratorNormalCompletion = true;
|
|
96
|
-
var _didIteratorError = false;
|
|
97
|
-
var _iteratorError = undefined;
|
|
98
|
-
|
|
99
|
-
try {
|
|
100
|
-
for (var _iterator = makeResults[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
101
|
-
const makeResult = _step.value;
|
|
102
|
-
const artifacts = makeResult.artifacts,
|
|
103
|
-
packageJSON = makeResult.packageJSON;
|
|
104
|
-
const existingVersion = versions.find(version => version.name === packageJSON.version);
|
|
105
|
-
let channel = 'stable';
|
|
106
|
-
|
|
107
|
-
if (config.channel) {
|
|
108
|
-
channel = config.channel;
|
|
109
|
-
} else if (packageJSON.version.includes('beta')) {
|
|
110
|
-
channel = 'beta';
|
|
111
|
-
} else if (packageJSON.version.includes('alpha')) {
|
|
112
|
-
channel = 'alpha';
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (!existingVersion) {
|
|
116
|
-
yield authFetch('api/version', {
|
|
117
|
-
method: 'POST',
|
|
118
|
-
body: JSON.stringify({
|
|
119
|
-
channel: {
|
|
120
|
-
name: channel
|
|
121
|
-
},
|
|
122
|
-
name: packageJSON.version,
|
|
123
|
-
notes: ''
|
|
124
|
-
}),
|
|
125
|
-
headers: {
|
|
52
|
+
d('attempting to authenticate to ERS');
|
|
53
|
+
const api = (apiPath)=>`${config.baseUrl}/${apiPath}`
|
|
54
|
+
;
|
|
55
|
+
const { token } = await (await fetchAndCheckStatus(api('api/auth/login'), {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
body: JSON.stringify({
|
|
58
|
+
username: config.username,
|
|
59
|
+
password: config.password
|
|
60
|
+
}),
|
|
61
|
+
headers: {
|
|
126
62
|
'Content-Type': 'application/json'
|
|
127
|
-
|
|
63
|
+
}
|
|
64
|
+
})).json();
|
|
65
|
+
const authFetch = (apiPath, options)=>fetchAndCheckStatus(api(apiPath), {
|
|
66
|
+
...options || {},
|
|
67
|
+
headers: {
|
|
68
|
+
...(options || {}).headers,
|
|
69
|
+
Authorization: `Bearer ${token}`
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
;
|
|
73
|
+
const versions = await (await authFetch('api/version')).json();
|
|
74
|
+
const flavor = config.flavor || 'default';
|
|
75
|
+
for (const makeResult of makeResults){
|
|
76
|
+
const { packageJSON } = makeResult;
|
|
77
|
+
const artifacts = makeResult.artifacts.filter((artifactPath)=>_path.default.basename(artifactPath).toLowerCase() !== 'releases'
|
|
78
|
+
);
|
|
79
|
+
const existingVersion = versions.find((version)=>{
|
|
80
|
+
return version.name === packageJSON.version && (!version.flavor || version.flavor === flavor);
|
|
128
81
|
});
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (existingAsset) {
|
|
151
|
-
d('asset at path:', artifactPath, 'already exists on server');
|
|
152
|
-
uploaded += 1;
|
|
153
|
-
updateSpinner();
|
|
154
|
-
return;
|
|
82
|
+
let channel = 'stable';
|
|
83
|
+
if (config.channel) {
|
|
84
|
+
channel = config.channel;
|
|
85
|
+
} else if (packageJSON.version.includes('beta')) {
|
|
86
|
+
channel = 'beta';
|
|
87
|
+
} else if (packageJSON.version.includes('alpha')) {
|
|
88
|
+
channel = 'alpha';
|
|
89
|
+
}
|
|
90
|
+
if (!existingVersion) {
|
|
91
|
+
await authFetch('api/version', {
|
|
92
|
+
method: 'POST',
|
|
93
|
+
body: JSON.stringify({
|
|
94
|
+
channel: {
|
|
95
|
+
name: channel
|
|
96
|
+
},
|
|
97
|
+
flavor: config.flavor,
|
|
98
|
+
name: packageJSON.version,
|
|
99
|
+
notes: ''
|
|
100
|
+
}),
|
|
101
|
+
headers: {
|
|
102
|
+
'Content-Type': 'application/json'
|
|
155
103
|
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
try {
|
|
159
|
-
d('attempting to upload asset:', artifactPath);
|
|
160
|
-
const artifactForm = new _formData.default();
|
|
161
|
-
artifactForm.append('token', token);
|
|
162
|
-
artifactForm.append('version', packageJSON.version);
|
|
163
|
-
artifactForm.append('platform', ersPlatform(makeResult.platform, makeResult.arch));
|
|
164
|
-
artifactForm.append('file', _fsExtra.default.createReadStream(artifactPath));
|
|
165
|
-
yield authFetch('api/asset', {
|
|
166
|
-
method: 'POST',
|
|
167
|
-
body: artifactForm,
|
|
168
|
-
headers: artifactForm.getHeaders()
|
|
169
|
-
});
|
|
170
|
-
d('upload successful for asset:', artifactPath);
|
|
171
|
-
uploaded += 1;
|
|
172
|
-
updateSpinner();
|
|
173
|
-
resolve();
|
|
174
|
-
} catch (err) {
|
|
175
|
-
reject(err);
|
|
176
|
-
}
|
|
177
104
|
});
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
105
|
+
}
|
|
106
|
+
let uploaded = 0;
|
|
107
|
+
const updateStatusLine = ()=>setStatusLine(`Uploading distributable (${uploaded}/${artifacts.length})`)
|
|
108
|
+
;
|
|
109
|
+
updateStatusLine();
|
|
110
|
+
await Promise.all(artifacts.map(async (artifactPath)=>{
|
|
111
|
+
if (existingVersion) {
|
|
112
|
+
const existingAsset = existingVersion.assets.find((asset)=>asset.name === _path.default.basename(artifactPath)
|
|
113
|
+
);
|
|
114
|
+
if (existingAsset) {
|
|
115
|
+
d('asset at path:', artifactPath, 'already exists on server');
|
|
116
|
+
uploaded += 1;
|
|
117
|
+
updateStatusLine();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
d('attempting to upload asset:', artifactPath);
|
|
122
|
+
const artifactForm = new _formData.default();
|
|
123
|
+
artifactForm.append('token', token);
|
|
124
|
+
artifactForm.append('version', packageJSON.version);
|
|
125
|
+
artifactForm.append('platform', ersPlatform(makeResult.platform, makeResult.arch));
|
|
126
|
+
// see https://github.com/form-data/form-data/issues/426
|
|
127
|
+
const fileOptions = {
|
|
128
|
+
knownLength: _fsExtra.default.statSync(artifactPath).size
|
|
181
129
|
};
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
_iteratorError = err;
|
|
193
|
-
} finally {
|
|
194
|
-
try {
|
|
195
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
196
|
-
_iterator.return();
|
|
197
|
-
}
|
|
198
|
-
} finally {
|
|
199
|
-
if (_didIteratorError) {
|
|
200
|
-
throw _iteratorError;
|
|
201
|
-
}
|
|
130
|
+
artifactForm.append('file', _fsExtra.default.createReadStream(artifactPath), fileOptions);
|
|
131
|
+
await authFetch('api/asset', {
|
|
132
|
+
method: 'POST',
|
|
133
|
+
body: artifactForm,
|
|
134
|
+
headers: artifactForm.getHeaders()
|
|
135
|
+
});
|
|
136
|
+
d('upload successful for asset:', artifactPath);
|
|
137
|
+
uploaded += 1;
|
|
138
|
+
updateStatusLine();
|
|
139
|
+
}));
|
|
202
140
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
141
|
+
}
|
|
142
|
+
constructor(...args){
|
|
143
|
+
super(...args);
|
|
144
|
+
this.name = 'electron-release-server';
|
|
145
|
+
}
|
|
207
146
|
}
|
|
208
|
-
|
|
209
147
|
exports.default = PublisherERS;
|
|
210
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QdWJsaXNoZXJFUlMudHMiXSwibmFtZXMiOlsiZCIsImVyc1BsYXRmb3JtIiwicGxhdGZvcm0iLCJhcmNoIiwiUHVibGlzaGVyRVJTIiwiUHVibGlzaGVyQmFzZSIsInB1Ymxpc2giLCJtYWtlUmVzdWx0cyIsImNvbmZpZyIsImJhc2VVcmwiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiYXBpIiwiYXBpUGF0aCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiaGVhZGVycyIsImpzb24iLCJ0b2tlbiIsImF1dGhGZXRjaCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJBdXRob3JpemF0aW9uIiwidmVyc2lvbnMiLCJtYWtlUmVzdWx0IiwiYXJ0aWZhY3RzIiwicGFja2FnZUpTT04iLCJleGlzdGluZ1ZlcnNpb24iLCJmaW5kIiwidmVyc2lvbiIsIm5hbWUiLCJjaGFubmVsIiwiaW5jbHVkZXMiLCJub3RlcyIsInVwbG9hZGVkIiwiZ2V0VGV4dCIsImxlbmd0aCIsInVwbG9hZFNwaW5uZXIiLCJ1cGRhdGVTcGlubmVyIiwidGV4dCIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJhcnRpZmFjdFBhdGgiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXhpc3RpbmdBc3NldCIsImFzc2V0cyIsImFzc2V0IiwicGF0aCIsImJhc2VuYW1lIiwiYXJ0aWZhY3RGb3JtIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJmcyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJnZXRIZWFkZXJzIiwiZXJyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBSUEsTUFBTUEsSUFBSSxvQkFBTSw0QkFBTixDQUFWOztBQU9PLE1BQU1DLGNBQWMsQ0FBQ0MsUUFBRCxFQUEwQkMsSUFBMUIsS0FBOEM7QUFDdkUsVUFBUUQsUUFBUjtBQUNFLFNBQUssUUFBTDtBQUNFLGFBQU8sUUFBUDs7QUFDRixT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Q0FBYUUsTUFBYixDQUFvQixNQUFwQixFQUE0QkMsaUJBQUdDLGdCQUFILENBQW9CWixZQUFwQixDQUE1QjtBQUNBLDBCQUFNekIsVUFBVSxXQUFWLEVBQXVCO0FBQzNCUCw4QkFBUSxNQURtQjtBQUUzQkMsNEJBQU11QyxZQUZxQjtBQUczQnBDLCtCQUFTb0MsYUFBYUssVUFBYjtBQUhrQixxQkFBdkIsQ0FBTjtBQUtBM0Qsc0JBQUUsOEJBQUYsRUFBa0M4QyxZQUFsQztBQUNBVCxnQ0FBWSxDQUFaO0FBQ0FJO0FBQ0FNO0FBQ0QsbUJBaEJELENBZ0JFLE9BQU9hLEdBQVAsRUFBWTtBQUNaWiwyQkFBT1ksR0FBUDtBQUNEO0FBQ0YsaUJBaENEOztBQUFBO0FBQUE7QUFBQTtBQUFBLGtCQURnQixDQUFaLENBQU47QUFtQ0QsYUF4Q0s7O0FBQUE7QUFBQTtBQUFBO0FBQUEsY0FBTjtBQXlDRDtBQXZHOEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0doRDs7QUEzR3lFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFB1Ymxpc2hlckJhc2UsIHsgUHVibGlzaGVyT3B0aW9ucyB9IGZyb20gJ0BlbGVjdHJvbi1mb3JnZS9wdWJsaXNoZXItYmFzZSc7XG5pbXBvcnQgeyBhc3luY09yYSB9IGZyb20gJ0BlbGVjdHJvbi1mb3JnZS9hc3luYy1vcmEnO1xuaW1wb3J0IHsgRm9yZ2VQbGF0Zm9ybSwgRm9yZ2VBcmNoIH0gZnJvbSAnQGVsZWN0cm9uLWZvcmdlL3NoYXJlZC10eXBlcyc7XG5cbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgZmV0Y2ggZnJvbSAnbm9kZS1mZXRjaCc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgUHVibGlzaGVyRVJTQ29uZmlnIH0gZnJvbSAnLi9Db25maWcnO1xuXG5jb25zdCBkID0gZGVidWcoJ2VsZWN0cm9uLWZvcmdlOnB1Ymxpc2g6ZXJzJyk7XG5cbmludGVyZmFjZSBFUlNWZXJzaW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhc3NldHM6IHsgbmFtZTogc3RyaW5nOyB9W107XG59XG5cbmV4cG9ydCBjb25zdCBlcnNQbGF0Zm9ybSA9IChwbGF0Zm9ybTogRm9yZ2VQbGF0Zm9ybSwgYXJjaDogRm9yZ2VBcmNoKSA9PiB7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdkYXJ3aW4nOlxuICAgICAgcmV0dXJuICdvc3hfNjQnO1xuICAgIGNhc2UgJ2xpbnV4JzpcbiAgICAgIHJldHVybiBhcmNoID09PSAnaWEzMicgPyAnbGludXhfMzInIDogJ2xpbnV4XzY0JztcbiAgICBjYXNlICd3aW4zMic6XG4gICAgICByZXR1cm4gYXJjaCA9PT0gJ2lhMzInID8gJ3dpbmRvd3NfMzInIDogJ3dpbmRvd3NfNjQnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gcGxhdGZvcm07XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1Ymxpc2hlckVSUyBleHRlbmRzIFB1Ymxpc2hlckJhc2U8UHVibGlzaGVyRVJTQ29uZmlnPiB7XG4gIG5hbWUgPSAnZWxlY3Ryb24tcmVsZWFzZS1zZXJ2ZXInO1xuXG4gIGFzeW5jIHB1Ymxpc2goeyBtYWtlUmVzdWx0cyB9OiBQdWJsaXNoZXJPcHRpb25zKSB7XG4gICAgY29uc3QgeyBjb25maWcgfSA9IHRoaXM7XG5cbiAgICBpZiAoIShjb25maWcuYmFzZVVybCAmJiBjb25maWcudXNlcm5hbWUgJiYgY29uZmlnLnBhc3N3b3JkKSkge1xuICAgICAgdGhyb3cgJ0luIG9yZGVyIHRvIHB1Ymxpc2ggdG8gRVJTIHlvdSBtdXN0IHNldCB0aGUgXCJlbGVjdHJvblJlbGVhc2VTZXJ2ZXIuYmFzZVVybFwiLCBcImVsZWN0cm9uUmVsZWFzZVNlcnZlci51c2VybmFtZVwiIGFuZCBcImVsZWN0cm9uUmVsZWFzZVNlcnZlci5wYXNzd29yZFwiIHByb3BlcnRpZXMgaW4geW91ciBmb3JnZSBjb25maWcuIFNlZSB0aGUgZG9jcyBmb3IgbW9yZSBpbmZvJzsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIH1cblxuICAgIGQoJ2F0dGVtcHRpbmcgdG8gYXV0aGVudGljYXRlIHRvIEVSUycpO1xuXG4gICAgY29uc3QgYXBpID0gKGFwaVBhdGg6IHN0cmluZykgPT4gYCR7Y29uZmlnLmJhc2VVcmx9LyR7YXBpUGF0aH1gO1xuXG4gICAgY29uc3QgeyB0b2tlbiB9ID0gYXdhaXQgKGF3YWl0IGZldGNoKGFwaSgnYXBpL2F1dGgvbG9naW4nKSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHVzZXJuYW1lOiBjb25maWcudXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBjb25maWcucGFzc3dvcmQsXG4gICAgICB9KSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgfSkpLmpzb24oKTtcblxuICAgIGNvbnN0IGF1dGhGZXRjaCA9IChhcGlQYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpID0+XG4gICAgICBmZXRjaChhcGkoYXBpUGF0aCksIE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMgfHwge30sIHtcbiAgICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbih7fSwgKG9wdGlvbnMgfHwge30pLmhlYWRlcnMsIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfSksXG4gICAgICB9KSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uczogRVJTVmVyc2lvbltdID0gYXdhaXQgKGF3YWl0IGF1dGhGZXRjaCgnYXBpL3ZlcnNpb24nKSkuanNvbigpO1xuXG4gICAgZm9yIChjb25zdCBtYWtlUmVzdWx0IG9mIG1ha2VSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IGFydGlmYWN0cywgcGFja2FnZUpTT04gfSA9IG1ha2VSZXN1bHQ7XG5cbiAgICAgIGNvbnN0IGV4aXN0aW5nVmVyc2lvbiA9IHZlcnNpb25zLmZpbmQodmVyc2lvbiA9PiB2ZXJzaW9uLm5hbWUgPT09IHBhY2thZ2VKU09OLnZlcnNpb24pO1xuXG4gICAgICBsZXQgY2hhbm5lbCA9ICdzdGFibGUnO1xuICAgICAgaWYgKGNvbmZpZy5jaGFubmVsKSB7XG4gICAgICAgIGNoYW5uZWwgPSBjb25maWcuY2hhbm5lbDtcbiAgICAgIH0gZWxzZSBpZiAocGFja2FnZUpTT04udmVyc2lvbi5pbmNsdWRlcygnYmV0YScpKSB7XG4gICAgICAgIGNoYW5uZWwgPSAnYmV0YSc7XG4gICAgICB9IGVsc2UgaWYgKHBhY2thZ2VKU09OLnZlcnNpb24uaW5jbHVkZXMoJ2FscGhhJykpIHtcbiAgICAgICAgY2hhbm5lbCA9ICdhbHBoYSc7XG4gICAgICB9XG5cbiAgICAgIGlmICghZXhpc3RpbmdWZXJzaW9uKSB7XG4gICAgICAgIGF3YWl0IGF1dGhGZXRjaCgnYXBpL3ZlcnNpb24nLCB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY2hhbm5lbDoge1xuICAgICAgICAgICAgICBuYW1lOiBjaGFubmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IHBhY2thZ2VKU09OLnZlcnNpb24sXG4gICAgICAgICAgICBub3RlczogJycsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwbG9hZGVkID0gMDtcbiAgICAgIGNvbnN0IGdldFRleHQgPSAoKSA9PiBgVXBsb2FkaW5nIEFydGlmYWN0cyAke3VwbG9hZGVkfS8ke2FydGlmYWN0cy5sZW5ndGh9YDtcblxuICAgICAgYXdhaXQgYXN5bmNPcmEoZ2V0VGV4dCgpLCBhc3luYyAodXBsb2FkU3Bpbm5lcikgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVTcGlubmVyID0gKCkgPT4ge1xuICAgICAgICAgIHVwbG9hZFNwaW5uZXIudGV4dCA9IGdldFRleHQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChhcnRpZmFjdHMubWFwKGFydGlmYWN0UGF0aCA9PlxuICAgICAgICAgIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1ZlcnNpb24pIHtcbiAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdBc3NldCA9IGV4aXN0aW5nVmVyc2lvbi5hc3NldHMuZmluZChcbiAgICAgICAgICAgICAgICBhc3NldCA9PiBhc3NldC5uYW1lID09PSBwYXRoLmJhc2VuYW1lKGFydGlmYWN0UGF0aCksXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQXNzZXQpIHtcbiAgICAgICAgICAgICAgICBkKCdhc3NldCBhdCBwYXRoOicsIGFydGlmYWN0UGF0aCwgJ2FscmVhZHkgZXhpc3RzIG9uIHNlcnZlcicpO1xuICAgICAgICAgICAgICAgIHVwbG9hZGVkICs9IDE7XG4gICAgICAgICAgICAgICAgdXBkYXRlU3Bpbm5lcigpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgZCgnYXR0ZW1wdGluZyB0byB1cGxvYWQgYXNzZXQ6JywgYXJ0aWZhY3RQYXRoKTtcbiAgICAgICAgICAgICAgY29uc3QgYXJ0aWZhY3RGb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgIGFydGlmYWN0Rm9ybS5hcHBlbmQoJ3Rva2VuJywgdG9rZW4pO1xuICAgICAgICAgICAgICBhcnRpZmFjdEZvcm0uYXBwZW5kKCd2ZXJzaW9uJywgcGFja2FnZUpTT04udmVyc2lvbik7XG4gICAgICAgICAgICAgIGFydGlmYWN0Rm9ybS5hcHBlbmQoJ3BsYXRmb3JtJywgZXJzUGxhdGZvcm0obWFrZVJlc3VsdC5wbGF0Zm9ybSwgbWFrZVJlc3VsdC5hcmNoKSk7XG4gICAgICAgICAgICAgIGFydGlmYWN0Rm9ybS5hcHBlbmQoJ2ZpbGUnLCBmcy5jcmVhdGVSZWFkU3RyZWFtKGFydGlmYWN0UGF0aCkpO1xuICAgICAgICAgICAgICBhd2FpdCBhdXRoRmV0Y2goJ2FwaS9hc3NldCcsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBib2R5OiBhcnRpZmFjdEZvcm0sXG4gICAgICAgICAgICAgICAgaGVhZGVyczogYXJ0aWZhY3RGb3JtLmdldEhlYWRlcnMoKSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGQoJ3VwbG9hZCBzdWNjZXNzZnVsIGZvciBhc3NldDonLCBhcnRpZmFjdFBhdGgpO1xuICAgICAgICAgICAgICB1cGxvYWRlZCArPSAxO1xuICAgICAgICAgICAgICB1cGRhdGVTcGlubmVyKCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
148
|
+
exports.PublisherERS = PublisherERS;
|
|
149
|
+
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QdWJsaXNoZXJFUlMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IFB1Ymxpc2hlckJhc2UsIFB1Ymxpc2hlck9wdGlvbnMgfSBmcm9tICdAZWxlY3Ryb24tZm9yZ2UvcHVibGlzaGVyLWJhc2UnO1xuaW1wb3J0IHsgRm9yZ2VBcmNoLCBGb3JnZVBsYXRmb3JtIH0gZnJvbSAnQGVsZWN0cm9uLWZvcmdlL3NoYXJlZC10eXBlcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IGZldGNoLCB7IFJlcXVlc3RJbmZvLCBSZXF1ZXN0SW5pdCwgUmVzcG9uc2UgfSBmcm9tICdub2RlLWZldGNoJztcblxuaW1wb3J0IHsgUHVibGlzaGVyRVJTQ29uZmlnIH0gZnJvbSAnLi9Db25maWcnO1xuXG5jb25zdCBkID0gZGVidWcoJ2VsZWN0cm9uLWZvcmdlOnB1Ymxpc2g6ZXJzJyk7XG5cbmludGVyZmFjZSBFUlNWZXJzaW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhc3NldHM6IHsgbmFtZTogc3RyaW5nIH1bXTtcbiAgZmxhdm9yPzogc3RyaW5nO1xufVxuXG5jb25zdCBmZXRjaEFuZENoZWNrU3RhdHVzID0gYXN5bmMgKHVybDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2godXJsLCBpbml0KTtcbiAgaWYgKHJlc3VsdC5vaykge1xuICAgIC8vIHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDBcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRVJTIHB1Ymxpc2ggZmFpbGVkIHdpdGggc3RhdHVzIGNvZGU6ICR7cmVzdWx0LnN0YXR1c30gKCR7cmVzdWx0LnVybH0pYCk7XG59O1xuXG5leHBvcnQgY29uc3QgZXJzUGxhdGZvcm0gPSAocGxhdGZvcm06IEZvcmdlUGxhdGZvcm0sIGFyY2g6IEZvcmdlQXJjaCk6IHN0cmluZyA9PiB7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdkYXJ3aW4nOlxuICAgICAgcmV0dXJuICdvc3hfNjQnO1xuICAgIGNhc2UgJ2xpbnV4JzpcbiAgICAgIHJldHVybiBhcmNoID09PSAnaWEzMicgPyAnbGludXhfMzInIDogJ2xpbnV4XzY0JztcbiAgICBjYXNlICd3aW4zMic6XG4gICAgICByZXR1cm4gYXJjaCA9PT0gJ2lhMzInID8gJ3dpbmRvd3NfMzInIDogJ3dpbmRvd3NfNjQnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gcGxhdGZvcm07XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1Ymxpc2hlckVSUyBleHRlbmRzIFB1Ymxpc2hlckJhc2U8UHVibGlzaGVyRVJTQ29uZmlnPiB7XG4gIG5hbWUgPSAnZWxlY3Ryb24tcmVsZWFzZS1zZXJ2ZXInO1xuXG4gIGFzeW5jIHB1Ymxpc2goeyBtYWtlUmVzdWx0cywgc2V0U3RhdHVzTGluZSB9OiBQdWJsaXNoZXJPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjb25maWcgfSA9IHRoaXM7XG5cbiAgICBpZiAoIShjb25maWcuYmFzZVVybCAmJiBjb25maWcudXNlcm5hbWUgJiYgY29uZmlnLnBhc3N3b3JkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSW4gb3JkZXIgdG8gcHVibGlzaCB0byBFUlMgeW91IG11c3Qgc2V0IHRoZSBcImVsZWN0cm9uUmVsZWFzZVNlcnZlci5iYXNlVXJsXCIsIFwiZWxlY3Ryb25SZWxlYXNlU2VydmVyLnVzZXJuYW1lXCIgYW5kIFwiZWxlY3Ryb25SZWxlYXNlU2VydmVyLnBhc3N3b3JkXCIgcHJvcGVydGllcyBpbiB5b3VyIEZvcmdlIGNvbmZpZy4gU2VlIHRoZSBkb2NzIGZvciBtb3JlIGluZm8nXG4gICAgICApO1xuICAgIH1cblxuICAgIGQoJ2F0dGVtcHRpbmcgdG8gYXV0aGVudGljYXRlIHRvIEVSUycpO1xuXG4gICAgY29uc3QgYXBpID0gKGFwaVBhdGg6IHN0cmluZykgPT4gYCR7Y29uZmlnLmJhc2VVcmx9LyR7YXBpUGF0aH1gO1xuXG4gICAgY29uc3QgeyB0b2tlbiB9ID0gYXdhaXQgKFxuICAgICAgYXdhaXQgZmV0Y2hBbmRDaGVja1N0YXR1cyhhcGkoJ2FwaS9hdXRoL2xvZ2luJyksIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICB1c2VybmFtZTogY29uZmlnLnVzZXJuYW1lLFxuICAgICAgICAgIHBhc3N3b3JkOiBjb25maWcucGFzc3dvcmQsXG4gICAgICAgIH0pLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5qc29uKCk7XG5cbiAgICBjb25zdCBhdXRoRmV0Y2ggPSAoYXBpUGF0aDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdEluaXQpID0+XG4gICAgICBmZXRjaEFuZENoZWNrU3RhdHVzKGFwaShhcGlQYXRoKSwgeyAuLi4ob3B0aW9ucyB8fCB7fSksIGhlYWRlcnM6IHsgLi4uKG9wdGlvbnMgfHwge30pLmhlYWRlcnMsIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH0gfSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uczogRVJTVmVyc2lvbltdID0gYXdhaXQgKGF3YWl0IGF1dGhGZXRjaCgnYXBpL3ZlcnNpb24nKSkuanNvbigpO1xuICAgIGNvbnN0IGZsYXZvciA9IGNvbmZpZy5mbGF2b3IgfHwgJ2RlZmF1bHQnO1xuXG4gICAgZm9yIChjb25zdCBtYWtlUmVzdWx0IG9mIG1ha2VSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHBhY2thZ2VKU09OIH0gPSBtYWtlUmVzdWx0O1xuICAgICAgY29uc3QgYXJ0aWZhY3RzID0gbWFrZVJlc3VsdC5hcnRpZmFjdHMuZmlsdGVyKChhcnRpZmFjdFBhdGgpID0+IHBhdGguYmFzZW5hbWUoYXJ0aWZhY3RQYXRoKS50b0xvd2VyQ2FzZSgpICE9PSAncmVsZWFzZXMnKTtcblxuICAgICAgY29uc3QgZXhpc3RpbmdWZXJzaW9uID0gdmVyc2lvbnMuZmluZCgodmVyc2lvbikgPT4ge1xuICAgICAgICByZXR1cm4gdmVyc2lvbi5uYW1lID09PSBwYWNrYWdlSlNPTi52ZXJzaW9uICYmICghdmVyc2lvbi5mbGF2b3IgfHwgdmVyc2lvbi5mbGF2b3IgPT09IGZsYXZvcik7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGNoYW5uZWwgPSAnc3RhYmxlJztcbiAgICAgIGlmIChjb25maWcuY2hhbm5lbCkge1xuICAgICAgICBjaGFubmVsID0gY29uZmlnLmNoYW5uZWw7XG4gICAgICB9IGVsc2UgaWYgKHBhY2thZ2VKU09OLnZlcnNpb24uaW5jbHVkZXMoJ2JldGEnKSkge1xuICAgICAgICBjaGFubmVsID0gJ2JldGEnO1xuICAgICAgfSBlbHNlIGlmIChwYWNrYWdlSlNPTi52ZXJzaW9uLmluY2x1ZGVzKCdhbHBoYScpKSB7XG4gICAgICAgIGNoYW5uZWwgPSAnYWxwaGEnO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWV4aXN0aW5nVmVyc2lvbikge1xuICAgICAgICBhd2FpdCBhdXRoRmV0Y2goJ2FwaS92ZXJzaW9uJywge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGNoYW5uZWw6IHtcbiAgICAgICAgICAgICAgbmFtZTogY2hhbm5lbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmbGF2b3I6IGNvbmZpZy5mbGF2b3IsXG4gICAgICAgICAgICBuYW1lOiBwYWNrYWdlSlNPTi52ZXJzaW9uLFxuICAgICAgICAgICAgbm90ZXM6ICcnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCB1cGxvYWRlZCA9IDA7XG4gICAgICBjb25zdCB1cGRhdGVTdGF0dXNMaW5lID0gKCkgPT4gc2V0U3RhdHVzTGluZShgVXBsb2FkaW5nIGRpc3RyaWJ1dGFibGUgKCR7dXBsb2FkZWR9LyR7YXJ0aWZhY3RzLmxlbmd0aH0pYCk7XG4gICAgICB1cGRhdGVTdGF0dXNMaW5lKCk7XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBhcnRpZmFjdHMubWFwKGFzeW5jIChhcnRpZmFjdFBhdGgpID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdWZXJzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ0Fzc2V0ID0gZXhpc3RpbmdWZXJzaW9uLmFzc2V0cy5maW5kKChhc3NldCkgPT4gYXNzZXQubmFtZSA9PT0gcGF0aC5iYXNlbmFtZShhcnRpZmFjdFBhdGgpKTtcblxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQXNzZXQpIHtcbiAgICAgICAgICAgICAgZCgnYXNzZXQgYXQgcGF0aDonLCBhcnRpZmFjdFBhdGgsICdhbHJlYWR5IGV4aXN0cyBvbiBzZXJ2ZXInKTtcbiAgICAgICAgICAgICAgdXBsb2FkZWQgKz0gMTtcbiAgICAgICAgICAgICAgdXBkYXRlU3RhdHVzTGluZSgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGQoJ2F0dGVtcHRpbmcgdG8gdXBsb2FkIGFzc2V0OicsIGFydGlmYWN0UGF0aCk7XG4gICAgICAgICAgY29uc3QgYXJ0aWZhY3RGb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgYXJ0aWZhY3RGb3JtLmFwcGVuZCgndG9rZW4nLCB0b2tlbik7XG4gICAgICAgICAgYXJ0aWZhY3RGb3JtLmFwcGVuZCgndmVyc2lvbicsIHBhY2thZ2VKU09OLnZlcnNpb24pO1xuICAgICAgICAgIGFydGlmYWN0Rm9ybS5hcHBlbmQoJ3BsYXRmb3JtJywgZXJzUGxhdGZvcm0obWFrZVJlc3VsdC5wbGF0Zm9ybSwgbWFrZVJlc3VsdC5hcmNoKSk7XG5cbiAgICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Zvcm0tZGF0YS9mb3JtLWRhdGEvaXNzdWVzLzQyNlxuICAgICAgICAgIGNvbnN0IGZpbGVPcHRpb25zID0ge1xuICAgICAgICAgICAga25vd25MZW5ndGg6IGZzLnN0YXRTeW5jKGFydGlmYWN0UGF0aCkuc2l6ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGFydGlmYWN0Rm9ybS5hcHBlbmQoJ2ZpbGUnLCBmcy5jcmVhdGVSZWFkU3RyZWFtKGFydGlmYWN0UGF0aCksIGZpbGVPcHRpb25zKTtcblxuICAgICAgICAgIGF3YWl0IGF1dGhGZXRjaCgnYXBpL2Fzc2V0Jywge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBhcnRpZmFjdEZvcm0sXG4gICAgICAgICAgICBoZWFkZXJzOiBhcnRpZmFjdEZvcm0uZ2V0SGVhZGVycygpLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGQoJ3VwbG9hZCBzdWNjZXNzZnVsIGZvciBhc3NldDonLCBhcnRpZmFjdFBhdGgpO1xuICAgICAgICAgIHVwbG9hZGVkICs9IDE7XG4gICAgICAgICAgdXBkYXRlU3RhdHVzTGluZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHsgUHVibGlzaGVyRVJTLCBQdWJsaXNoZXJFUlNDb25maWcgfTtcbiJdLCJuYW1lcyI6WyJQdWJsaXNoZXJFUlNDb25maWciLCJkIiwiZGVidWciLCJmZXRjaEFuZENoZWNrU3RhdHVzIiwidXJsIiwiaW5pdCIsInJlc3VsdCIsImZldGNoIiwib2siLCJFcnJvciIsInN0YXR1cyIsImVyc1BsYXRmb3JtIiwicGxhdGZvcm0iLCJhcmNoIiwiUHVibGlzaGVyRVJTIiwiUHVibGlzaGVyQmFzZSIsInB1Ymxpc2giLCJtYWtlUmVzdWx0cyIsInNldFN0YXR1c0xpbmUiLCJjb25maWciLCJiYXNlVXJsIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsImFwaSIsImFwaVBhdGgiLCJ0b2tlbiIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiaGVhZGVycyIsImpzb24iLCJhdXRoRmV0Y2giLCJvcHRpb25zIiwiQXV0aG9yaXphdGlvbiIsInZlcnNpb25zIiwiZmxhdm9yIiwibWFrZVJlc3VsdCIsInBhY2thZ2VKU09OIiwiYXJ0aWZhY3RzIiwiZmlsdGVyIiwiYXJ0aWZhY3RQYXRoIiwicGF0aCIsImJhc2VuYW1lIiwidG9Mb3dlckNhc2UiLCJleGlzdGluZ1ZlcnNpb24iLCJmaW5kIiwidmVyc2lvbiIsIm5hbWUiLCJjaGFubmVsIiwiaW5jbHVkZXMiLCJub3RlcyIsInVwbG9hZGVkIiwidXBkYXRlU3RhdHVzTGluZSIsImxlbmd0aCIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJleGlzdGluZ0Fzc2V0IiwiYXNzZXRzIiwiYXNzZXQiLCJhcnRpZmFjdEZvcm0iLCJGb3JtRGF0YSIsImFwcGVuZCIsImZpbGVPcHRpb25zIiwia25vd25MZW5ndGgiLCJmcyIsInN0YXRTeW5jIiwic2l6ZSIsImNyZWF0ZVJlYWRTdHJlYW0iLCJnZXRIZWFkZXJzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdKdUJBLENBQWtCOzs7ZUFBbEJBLE9BQWtCOzs7O0FBeEp4QixHQUFNLENBQU4sS0FBTTtBQUV5QixHQUFnQyxDQUFoQyxjQUFnQztBQUU5RCxHQUFPLENBQVAsTUFBTztBQUNKLEdBQVcsQ0FBWCxTQUFXO0FBQ2pCLEdBQVUsQ0FBVixRQUFVO0FBQ2lDLEdBQVksQ0FB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
|
package/index.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// ⚠️ AUTOGENERATED ⚠️ AUTOGENERATED ⚠️ AUTOGENERATED ⚠️
|
|
2
|
+
// This file was automatically generated by `tools/gen-ts-glue.ts`. Do not modify directly if you want to keep your changes.
|
|
3
|
+
export * from "./src/PublisherERS";
|
|
4
|
+
import defaultExport from "./src/PublisherERS";
|
|
5
|
+
export default defaultExport;
|
package/package.json
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electron-forge/publisher-electron-release-server",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"description": "Electron release server publisher for Electron Forge",
|
|
5
|
-
"repository": "https://github.com/electron
|
|
5
|
+
"repository": "https://github.com/electron/forge",
|
|
6
6
|
"author": "Samuel Attard",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"main": "dist/PublisherERS.js",
|
|
9
9
|
"typings": "dist/PublisherERS.d.ts",
|
|
10
|
-
"scripts": {
|
|
11
|
-
"test": "exit 0"
|
|
12
|
-
},
|
|
13
10
|
"devDependencies": {
|
|
14
|
-
"chai": "^4.
|
|
15
|
-
"
|
|
11
|
+
"chai": "^4.3.3",
|
|
12
|
+
"fetch-mock": "^9.10.7",
|
|
13
|
+
"mocha": "^9.0.1",
|
|
14
|
+
"proxyquire": "^2.1.3",
|
|
15
|
+
"sinon": "^13.0.1"
|
|
16
16
|
},
|
|
17
17
|
"engines": {
|
|
18
|
-
"node": ">=
|
|
18
|
+
"node": ">= 14.17.5"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@electron-forge/
|
|
22
|
-
"@electron-forge/
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"node-fetch": "^2.0.0"
|
|
21
|
+
"@electron-forge/publisher-base": "6.0.1",
|
|
22
|
+
"@electron-forge/shared-types": "6.0.1",
|
|
23
|
+
"debug": "^4.3.1",
|
|
24
|
+
"form-data": "^4.0.0",
|
|
25
|
+
"fs-extra": "^10.0.0",
|
|
26
|
+
"node-fetch": "^2.6.7"
|
|
28
27
|
}
|
|
29
28
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,23 +1,39 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
2
|
+
"//": "⚠️ AUTOGENERATED ⚠️ This file was automatically generated by tools/gen-tsconfigs.ts, do not edit manually.",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"target": "es2019",
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"lib": [
|
|
8
|
+
"dom",
|
|
9
|
+
"es2019"
|
|
10
|
+
],
|
|
11
|
+
"sourceMap": true,
|
|
12
|
+
"rootDir": "src",
|
|
13
|
+
"experimentalDecorators": true,
|
|
14
|
+
"strict": true,
|
|
15
|
+
"esModuleInterop": true,
|
|
16
|
+
"declaration": true,
|
|
17
|
+
"composite": true,
|
|
18
|
+
"declarationMap": true,
|
|
19
|
+
"typeRoots": [
|
|
20
|
+
"../../../typings",
|
|
21
|
+
"../../../node_modules/@types"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"exclude": [
|
|
25
|
+
"node_modules",
|
|
26
|
+
"dist",
|
|
27
|
+
"test",
|
|
28
|
+
"index.ts",
|
|
29
|
+
"tmpl"
|
|
30
|
+
],
|
|
31
|
+
"references": [
|
|
32
|
+
{
|
|
33
|
+
"path": "../base"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"path": "../../utils/types"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
23
39
|
}
|