@electron-forge/publisher-electron-release-server 7.8.3 → 7.9.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.
- package/dist/PublisherERS.d.ts +1 -1
- package/dist/PublisherERS.d.ts.map +1 -1
- package/dist/PublisherERS.js +13 -5
- package/package.json +4 -4
- package/src/PublisherERS.ts +54 -14
package/dist/PublisherERS.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { PublisherERSConfig } from './Config';
|
|
|
4
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, setStatusLine }: PublisherOptions): Promise<void>;
|
|
7
|
+
publish({ makeResults, setStatusLine, }: PublisherOptions): Promise<void>;
|
|
8
8
|
}
|
|
9
9
|
export { PublisherERS, PublisherERSConfig };
|
|
10
10
|
//# sourceMappingURL=PublisherERS.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublisherERS.d.ts","sourceRoot":"","sources":["../src/PublisherERS.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"PublisherERS.d.ts","sourceRoot":"","sources":["../src/PublisherERS.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAwC9C,eAAO,MAAM,WAAW,aACZ,aAAa,QACjB,SAAS,KACd,MAWF,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IACzE,IAAI,SAA6B;IAE3B,OAAO,CAAC,EACZ,WAAW,EACX,aAAa,GACd,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoIpC;AAED,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/PublisherERS.js
CHANGED
|
@@ -37,7 +37,7 @@ class PublisherERS extends publisher_base_1.PublisherBase {
|
|
|
37
37
|
super(...arguments);
|
|
38
38
|
this.name = 'electron-release-server';
|
|
39
39
|
}
|
|
40
|
-
async publish({ makeResults, setStatusLine }) {
|
|
40
|
+
async publish({ makeResults, setStatusLine, }) {
|
|
41
41
|
const { config } = this;
|
|
42
42
|
if (!(config.baseUrl && config.username && config.password)) {
|
|
43
43
|
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');
|
|
@@ -54,14 +54,21 @@ class PublisherERS extends publisher_base_1.PublisherBase {
|
|
|
54
54
|
'Content-Type': 'application/json',
|
|
55
55
|
},
|
|
56
56
|
})).json();
|
|
57
|
-
const authFetch = (apiPath, options) => fetchAndCheckStatus(api(apiPath), {
|
|
57
|
+
const authFetch = (apiPath, options) => fetchAndCheckStatus(api(apiPath), {
|
|
58
|
+
...(options || {}),
|
|
59
|
+
headers: {
|
|
60
|
+
...(options || {}).headers,
|
|
61
|
+
Authorization: `Bearer ${token}`,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
58
64
|
const flavor = config.flavor || 'default';
|
|
59
65
|
for (const makeResult of makeResults) {
|
|
60
66
|
const { packageJSON } = makeResult;
|
|
61
67
|
const artifacts = makeResult.artifacts.filter((artifactPath) => node_path_1.default.basename(artifactPath).toLowerCase() !== 'releases');
|
|
62
68
|
const versions = await (await authFetch('versions/sorted')).json();
|
|
63
69
|
// Find the version with the same name and flavor
|
|
64
|
-
const existingVersion = versions['items'].find((version) => version.name === packageJSON.version &&
|
|
70
|
+
const existingVersion = versions['items'].find((version) => version.name === packageJSON.version &&
|
|
71
|
+
version.flavor.name === flavor);
|
|
65
72
|
let channel = 'stable';
|
|
66
73
|
if (config.channel) {
|
|
67
74
|
channel = config.channel;
|
|
@@ -96,7 +103,8 @@ class PublisherERS extends publisher_base_1.PublisherBase {
|
|
|
96
103
|
await Promise.all(artifacts.map(async (artifactPath) => {
|
|
97
104
|
const platform = (0, exports.ersPlatform)(makeResult.platform, makeResult.arch);
|
|
98
105
|
if (existingVersion) {
|
|
99
|
-
const existingAsset = existingVersion.assets.find((asset) => asset.name === node_path_1.default.basename(artifactPath) &&
|
|
106
|
+
const existingAsset = existingVersion.assets.find((asset) => asset.name === node_path_1.default.basename(artifactPath) &&
|
|
107
|
+
asset.platform === platform);
|
|
100
108
|
if (existingAsset) {
|
|
101
109
|
d('asset at path:', artifactPath, 'already exists on server');
|
|
102
110
|
uploaded += 1;
|
|
@@ -128,4 +136,4 @@ class PublisherERS extends publisher_base_1.PublisherBase {
|
|
|
128
136
|
}
|
|
129
137
|
exports.default = PublisherERS;
|
|
130
138
|
exports.PublisherERS = PublisherERS;
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHVibGlzaGVyRVJTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1B1Ymxpc2hlckVSUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFFN0IsbUVBR3dDO0FBRXhDLGtEQUEwQjtBQUMxQiwwREFBaUM7QUFDakMsd0RBQTBCO0FBQzFCLDREQUF1RTtBQUl2RSxNQUFNLENBQUMsR0FBRyxJQUFBLGVBQUssRUFBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBd0I5QyxNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFDL0IsR0FBZ0IsRUFDaEIsSUFBa0IsRUFDQyxFQUFFO0lBQ3JCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQkFBSyxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNkLHdDQUF3QztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYix3Q0FBd0MsTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQ3hFLENBQUM7QUFDSixDQUFDLENBQUM7QUFFSyxNQUFNLFdBQVcsR0FBRyxDQUN6QixRQUF1QixFQUN2QixJQUFlLEVBQ1AsRUFBRTtJQUNWLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxLQUFLLE9BQU87WUFDVixPQUFPLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ25ELEtBQUssT0FBTztZQUNWLE9BQU8sSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDdkQ7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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electron-forge/publisher-electron-release-server",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.9.0",
|
|
4
4
|
"description": "Electron release server publisher for Electron Forge",
|
|
5
5
|
"repository": "https://github.com/electron/forge",
|
|
6
6
|
"author": "Samuel Attard",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"node": ">= 16.4.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@electron-forge/publisher-base": "7.
|
|
19
|
-
"@electron-forge/shared-types": "7.
|
|
18
|
+
"@electron-forge/publisher-base": "7.9.0",
|
|
19
|
+
"@electron-forge/shared-types": "7.9.0",
|
|
20
20
|
"debug": "^4.3.1",
|
|
21
21
|
"form-data": "^4.0.0",
|
|
22
22
|
"fs-extra": "^10.0.0",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"dist",
|
|
30
30
|
"src"
|
|
31
31
|
],
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "cd63f57bd6870af2ad847076a183456221b30269"
|
|
33
33
|
}
|
package/src/PublisherERS.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
PublisherBase,
|
|
5
|
+
PublisherOptions,
|
|
6
|
+
} from '@electron-forge/publisher-base';
|
|
4
7
|
import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types';
|
|
5
8
|
import debug from 'debug';
|
|
6
9
|
import FormData from 'form-data';
|
|
@@ -33,16 +36,24 @@ interface ERSVersionSorted {
|
|
|
33
36
|
items: ERSVersion[];
|
|
34
37
|
}
|
|
35
38
|
|
|
36
|
-
const fetchAndCheckStatus = async (
|
|
39
|
+
const fetchAndCheckStatus = async (
|
|
40
|
+
url: RequestInfo,
|
|
41
|
+
init?: RequestInit,
|
|
42
|
+
): Promise<Response> => {
|
|
37
43
|
const result = await fetch(url, init);
|
|
38
44
|
if (result.ok) {
|
|
39
45
|
// res.status >= 200 && res.status < 300
|
|
40
46
|
return result;
|
|
41
47
|
}
|
|
42
|
-
throw new Error(
|
|
48
|
+
throw new Error(
|
|
49
|
+
`ERS publish failed with status code: ${result.status} (${result.url})`,
|
|
50
|
+
);
|
|
43
51
|
};
|
|
44
52
|
|
|
45
|
-
export const ersPlatform = (
|
|
53
|
+
export const ersPlatform = (
|
|
54
|
+
platform: ForgePlatform,
|
|
55
|
+
arch: ForgeArch,
|
|
56
|
+
): string => {
|
|
46
57
|
switch (platform) {
|
|
47
58
|
case 'darwin':
|
|
48
59
|
return arch === 'arm64' ? 'osx_arm64' : 'osx_64';
|
|
@@ -58,12 +69,15 @@ export const ersPlatform = (platform: ForgePlatform, arch: ForgeArch): string =>
|
|
|
58
69
|
export default class PublisherERS extends PublisherBase<PublisherERSConfig> {
|
|
59
70
|
name = 'electron-release-server';
|
|
60
71
|
|
|
61
|
-
async publish({
|
|
72
|
+
async publish({
|
|
73
|
+
makeResults,
|
|
74
|
+
setStatusLine,
|
|
75
|
+
}: PublisherOptions): Promise<void> {
|
|
62
76
|
const { config } = this;
|
|
63
77
|
|
|
64
78
|
if (!(config.baseUrl && config.username && config.password)) {
|
|
65
79
|
throw new Error(
|
|
66
|
-
'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'
|
|
80
|
+
'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',
|
|
67
81
|
);
|
|
68
82
|
}
|
|
69
83
|
|
|
@@ -85,18 +99,33 @@ export default class PublisherERS extends PublisherBase<PublisherERSConfig> {
|
|
|
85
99
|
).json();
|
|
86
100
|
|
|
87
101
|
const authFetch = (apiPath: string, options?: RequestInit) =>
|
|
88
|
-
fetchAndCheckStatus(api(apiPath), {
|
|
102
|
+
fetchAndCheckStatus(api(apiPath), {
|
|
103
|
+
...(options || {}),
|
|
104
|
+
headers: {
|
|
105
|
+
...(options || {}).headers,
|
|
106
|
+
Authorization: `Bearer ${token}`,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
89
109
|
|
|
90
110
|
const flavor = config.flavor || 'default';
|
|
91
111
|
|
|
92
112
|
for (const makeResult of makeResults) {
|
|
93
113
|
const { packageJSON } = makeResult;
|
|
94
|
-
const artifacts = makeResult.artifacts.filter(
|
|
114
|
+
const artifacts = makeResult.artifacts.filter(
|
|
115
|
+
(artifactPath) =>
|
|
116
|
+
path.basename(artifactPath).toLowerCase() !== 'releases',
|
|
117
|
+
);
|
|
95
118
|
|
|
96
|
-
const versions: ERSVersionSorted = await (
|
|
119
|
+
const versions: ERSVersionSorted = await (
|
|
120
|
+
await authFetch('versions/sorted')
|
|
121
|
+
).json();
|
|
97
122
|
|
|
98
123
|
// Find the version with the same name and flavor
|
|
99
|
-
const existingVersion = versions['items'].find(
|
|
124
|
+
const existingVersion = versions['items'].find(
|
|
125
|
+
(version) =>
|
|
126
|
+
version.name === packageJSON.version &&
|
|
127
|
+
version.flavor.name === flavor,
|
|
128
|
+
);
|
|
100
129
|
|
|
101
130
|
let channel = 'stable';
|
|
102
131
|
if (config.channel) {
|
|
@@ -126,14 +155,21 @@ export default class PublisherERS extends PublisherBase<PublisherERSConfig> {
|
|
|
126
155
|
}
|
|
127
156
|
|
|
128
157
|
let uploaded = 0;
|
|
129
|
-
const updateStatusLine = () =>
|
|
158
|
+
const updateStatusLine = () =>
|
|
159
|
+
setStatusLine(
|
|
160
|
+
`Uploading distributable (${uploaded}/${artifacts.length})`,
|
|
161
|
+
);
|
|
130
162
|
updateStatusLine();
|
|
131
163
|
|
|
132
164
|
await Promise.all(
|
|
133
165
|
artifacts.map(async (artifactPath: string) => {
|
|
134
166
|
const platform = ersPlatform(makeResult.platform, makeResult.arch);
|
|
135
167
|
if (existingVersion) {
|
|
136
|
-
const existingAsset = existingVersion.assets.find(
|
|
168
|
+
const existingAsset = existingVersion.assets.find(
|
|
169
|
+
(asset) =>
|
|
170
|
+
asset.name === path.basename(artifactPath) &&
|
|
171
|
+
asset.platform === platform,
|
|
172
|
+
);
|
|
137
173
|
if (existingAsset) {
|
|
138
174
|
d('asset at path:', artifactPath, 'already exists on server');
|
|
139
175
|
uploaded += 1;
|
|
@@ -150,7 +186,11 @@ export default class PublisherERS extends PublisherBase<PublisherERSConfig> {
|
|
|
150
186
|
const fileOptions = {
|
|
151
187
|
knownLength: fs.statSync(artifactPath).size,
|
|
152
188
|
};
|
|
153
|
-
artifactForm.append(
|
|
189
|
+
artifactForm.append(
|
|
190
|
+
'file',
|
|
191
|
+
fs.createReadStream(artifactPath),
|
|
192
|
+
fileOptions,
|
|
193
|
+
);
|
|
154
194
|
|
|
155
195
|
await authFetch('api/asset', {
|
|
156
196
|
method: 'POST',
|
|
@@ -160,7 +200,7 @@ export default class PublisherERS extends PublisherBase<PublisherERSConfig> {
|
|
|
160
200
|
d('upload successful for asset:', artifactPath);
|
|
161
201
|
uploaded += 1;
|
|
162
202
|
updateStatusLine();
|
|
163
|
-
})
|
|
203
|
+
}),
|
|
164
204
|
);
|
|
165
205
|
}
|
|
166
206
|
}
|