ovsx 0.5.1 → 0.5.2
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/lib/check-license.js +66 -85
- package/lib/check-license.js.map +1 -1
- package/lib/create-namespace.js +14 -25
- package/lib/create-namespace.js.map +1 -1
- package/lib/get.js +60 -75
- package/lib/get.js.map +1 -1
- package/lib/main.js +14 -2
- package/lib/main.js.map +1 -1
- package/lib/publish.d.ts +1 -1
- package/lib/publish.d.ts.map +1 -1
- package/lib/publish.js +56 -71
- package/lib/publish.js.map +1 -1
- package/lib/util.d.ts +1 -1
- package/lib/util.d.ts.map +1 -1
- package/lib/util.js +19 -30
- package/lib/util.js.map +1 -1
- package/package.json +1 -1
- package/src/main.ts +16 -4
- package/src/publish.ts +13 -12
- package/src/util.ts +5 -2
package/lib/check-license.js
CHANGED
|
@@ -8,104 +8,85 @@
|
|
|
8
8
|
*
|
|
9
9
|
* SPDX-License-Identifier: EPL-2.0
|
|
10
10
|
********************************************************************************/
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
12
|
const fs = require("fs");
|
|
22
13
|
const isCI = require("is-ci");
|
|
23
14
|
const util_1 = require("./util");
|
|
24
|
-
function addLicense(packagePath, manifest) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
throw new Error('This extension cannot be accepted because it has no license.');
|
|
50
|
-
}
|
|
51
|
-
} while (answer === 'help');
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
function isLicenseOk(packagePath, manifest) {
|
|
55
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
// manifest is optional in order to use isLicenseOk function
|
|
57
|
-
// without need to read and parse manifest by the another step
|
|
58
|
-
manifest = manifest !== null && manifest !== void 0 ? manifest : yield util_1.readManifest(packagePath);
|
|
59
|
-
util_1.validateManifest(manifest);
|
|
60
|
-
if (manifest.license) {
|
|
61
|
-
// The extension has a license identifier or a pointer to an alternative LICENSE file
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
if (yield hasLicenseFile(packagePath)) {
|
|
65
|
-
// The extension has a LICENSE file that can be packaged
|
|
66
|
-
return true;
|
|
15
|
+
async function addLicense(packagePath, manifest) {
|
|
16
|
+
console.log('Extension ' + manifest.publisher + '.' + manifest.name + ' has no license. All Open VSX '
|
|
17
|
+
+ 'Registry Content Offerings must be licensed. You may choose to publish this extension under '
|
|
18
|
+
+ 'the MIT License (https://opensource.org/licenses/MIT). Please note you are responsible to '
|
|
19
|
+
+ 'ensure that you have the necessary rights to permit this extension to be made available under '
|
|
20
|
+
+ 'the MIT license and for compliance with that license.');
|
|
21
|
+
let answer;
|
|
22
|
+
do {
|
|
23
|
+
console.log();
|
|
24
|
+
answer = await util_1.getUserChoice('Would you like to publish your extension '
|
|
25
|
+
+ manifest.publisher + '.' + manifest.name
|
|
26
|
+
+ ' under the MIT license?', ['yes', 'help', 'no'], 'no');
|
|
27
|
+
switch (answer) {
|
|
28
|
+
case 'yes':
|
|
29
|
+
await useMITLicense(manifest, packagePath);
|
|
30
|
+
break;
|
|
31
|
+
case 'help':
|
|
32
|
+
console.log('If you select "yes" your extension will be published under the MIT License. '
|
|
33
|
+
+ 'You must enter the Copyright Year and Copyright Holder information. This information '
|
|
34
|
+
+ 'along with the text of the MIT License will be written to a LICENSE file and '
|
|
35
|
+
+ 'packaged with the uploaded extension.\n');
|
|
36
|
+
console.log(MIT_LICENSE_TEXT);
|
|
37
|
+
break;
|
|
38
|
+
case 'no':
|
|
39
|
+
throw new Error('This extension cannot be accepted because it has no license.');
|
|
67
40
|
}
|
|
68
|
-
|
|
69
|
-
|
|
41
|
+
} while (answer === 'help');
|
|
42
|
+
}
|
|
43
|
+
async function isLicenseOk(packagePath, manifest) {
|
|
44
|
+
// manifest is optional in order to use isLicenseOk function
|
|
45
|
+
// without need to read and parse manifest by the another step
|
|
46
|
+
manifest = manifest ?? await util_1.readManifest(packagePath);
|
|
47
|
+
util_1.validateManifest(manifest);
|
|
48
|
+
if (manifest.license) {
|
|
49
|
+
// The extension has a license identifier or a pointer to an alternative LICENSE file
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
if (await hasLicenseFile(packagePath)) {
|
|
53
|
+
// The extension has a LICENSE file that can be packaged
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
70
57
|
}
|
|
71
58
|
exports.isLicenseOk = isLicenseOk;
|
|
72
|
-
function checkLicense(packagePath) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
});
|
|
59
|
+
async function checkLicense(packagePath) {
|
|
60
|
+
const manifest = await util_1.readManifest(packagePath);
|
|
61
|
+
if (!await isLicenseOk(packagePath, manifest) && !isCI) {
|
|
62
|
+
await addLicense(packagePath, manifest);
|
|
63
|
+
}
|
|
79
64
|
}
|
|
80
65
|
exports.checkLicense = checkLicense;
|
|
81
|
-
function useMITLicense(manifest, packagePath) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
console.log('LICENSE file has been written. Please commit it to the source repository.');
|
|
94
|
-
});
|
|
66
|
+
async function useMITLicense(manifest, packagePath) {
|
|
67
|
+
console.log('Please enter a value for Copyright Year and Copyright Holder.\n'
|
|
68
|
+
+ 'Example: "Copyright 2020 John Doe"\n');
|
|
69
|
+
const copyright = await util_1.getUserInput('Copyright ');
|
|
70
|
+
if (!copyright) {
|
|
71
|
+
throw new Error('A copyright declaration is necessary for the MIT license.');
|
|
72
|
+
}
|
|
73
|
+
manifest.license = 'MIT';
|
|
74
|
+
await util_1.writeManifest(manifest, packagePath);
|
|
75
|
+
const license = MIT_LICENSE_TEXT.replace('<YEAR> <COPYRIGHT HOLDER>', copyright);
|
|
76
|
+
await util_1.writeFile('LICENSE', license, packagePath);
|
|
77
|
+
console.log('LICENSE file has been written. Please commit it to the source repository.');
|
|
95
78
|
}
|
|
96
79
|
const LICENSE_FILE_NAMES = ['license.md', 'license', 'license.txt', 'licence.md', 'licence', 'licence.txt'];
|
|
97
|
-
function hasLicenseFile(packagePath) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
for (const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
80
|
+
async function hasLicenseFile(packagePath) {
|
|
81
|
+
const fileNames = await util_1.promisify(fs.readdir)(packagePath ?? '.');
|
|
82
|
+
for (const fileName of fileNames) {
|
|
83
|
+
for (const licFileName of LICENSE_FILE_NAMES) {
|
|
84
|
+
if (fileName.toLowerCase() === licFileName) {
|
|
85
|
+
return true;
|
|
105
86
|
}
|
|
106
87
|
}
|
|
107
|
-
|
|
108
|
-
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
109
90
|
}
|
|
110
91
|
const MIT_LICENSE_TEXT = `Copyright <YEAR> <COPYRIGHT HOLDER>
|
|
111
92
|
|
package/lib/check-license.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-license.js","sourceRoot":"","sources":["../src/check-license.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF
|
|
1
|
+
{"version":3,"file":"check-license.js","sourceRoot":"","sources":["../src/check-license.ts"],"names":[],"mappings":"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"}
|
package/lib/create-namespace.js
CHANGED
|
@@ -8,37 +8,26 @@
|
|
|
8
8
|
*
|
|
9
9
|
* SPDX-License-Identifier: EPL-2.0
|
|
10
10
|
********************************************************************************/
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
12
|
const registry_1 = require("./registry");
|
|
22
13
|
const util_1 = require("./util");
|
|
23
14
|
/**
|
|
24
15
|
* Creates a namespace (corresponds to `publisher` in package.json).
|
|
25
16
|
*/
|
|
26
|
-
function createNamespace(options = {}) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
console.log(`\ud83d\ude80 Created namespace ${options.name}`);
|
|
41
|
-
});
|
|
17
|
+
async function createNamespace(options = {}) {
|
|
18
|
+
util_1.addEnvOptions(options);
|
|
19
|
+
if (!options.name) {
|
|
20
|
+
throw new Error('The namespace name is mandatory.');
|
|
21
|
+
}
|
|
22
|
+
if (!options.pat) {
|
|
23
|
+
throw new Error("A personal access token must be given with the option '--pat'.");
|
|
24
|
+
}
|
|
25
|
+
const registry = new registry_1.Registry(options);
|
|
26
|
+
const result = await registry.createNamespace(options.name, options.pat);
|
|
27
|
+
if (result.error) {
|
|
28
|
+
throw new Error(result.error);
|
|
29
|
+
}
|
|
30
|
+
console.log(`\ud83d\ude80 Created namespace ${options.name}`);
|
|
42
31
|
}
|
|
43
32
|
exports.createNamespace = createNamespace;
|
|
44
33
|
//# sourceMappingURL=create-namespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-namespace.js","sourceRoot":"","sources":["../src/create-namespace.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF
|
|
1
|
+
{"version":3,"file":"create-namespace.js","sourceRoot":"","sources":["../src/create-namespace.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;AAElF,yCAAuD;AACvD,iCAAuC;AAEvC;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,UAAkC,EAAE;IACtE,oBAAa,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACvD;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;KACrF;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACjC;IACD,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAfD,0CAeC"}
|
package/lib/get.js
CHANGED
|
@@ -8,15 +8,6 @@
|
|
|
8
8
|
*
|
|
9
9
|
* SPDX-License-Identifier: EPL-2.0
|
|
10
10
|
********************************************************************************/
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
12
|
const fs = require("fs");
|
|
22
13
|
const path = require("path");
|
|
@@ -26,32 +17,30 @@ const util_1 = require("./util");
|
|
|
26
17
|
/**
|
|
27
18
|
* Downloads an extension or its metadata.
|
|
28
19
|
*/
|
|
29
|
-
function getExtension(options) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
});
|
|
20
|
+
async function getExtension(options) {
|
|
21
|
+
util_1.addEnvOptions(options);
|
|
22
|
+
if (!options.target) {
|
|
23
|
+
options.target = 'universal';
|
|
24
|
+
}
|
|
25
|
+
const registry = new registry_1.Registry(options);
|
|
26
|
+
const match = util_1.matchExtensionId(options.extensionId);
|
|
27
|
+
if (!match) {
|
|
28
|
+
throw new Error('The extension identifier must have the form `namespace.extension`.');
|
|
29
|
+
}
|
|
30
|
+
const extension = await registry.getMetadata(match[1], match[2], options.target);
|
|
31
|
+
if (extension.error) {
|
|
32
|
+
throw new Error(extension.error);
|
|
33
|
+
}
|
|
34
|
+
const matchingVersion = await findMatchingVersion(registry, extension, options.version);
|
|
35
|
+
if (matchingVersion.error) {
|
|
36
|
+
throw new Error(matchingVersion.error);
|
|
37
|
+
}
|
|
38
|
+
if (options.metadata) {
|
|
39
|
+
await printMetadata(registry, matchingVersion, options.output);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
await download(registry, matchingVersion, options.output);
|
|
43
|
+
}
|
|
55
44
|
}
|
|
56
45
|
exports.getExtension = getExtension;
|
|
57
46
|
function findMatchingVersion(registry, extension, constraint) {
|
|
@@ -73,51 +62,47 @@ function findMatchingVersion(registry, extension, constraint) {
|
|
|
73
62
|
function isAlias(extension, version) {
|
|
74
63
|
return extension.versionAlias.includes(version);
|
|
75
64
|
}
|
|
76
|
-
function printMetadata(registry, extension, output) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
65
|
+
async function printMetadata(registry, extension, output) {
|
|
66
|
+
const metadata = JSON.stringify(extension, null, 4);
|
|
67
|
+
if (!output) {
|
|
68
|
+
console.log(metadata);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
let filePath;
|
|
72
|
+
const stats = await util_1.optionalStat(output);
|
|
73
|
+
if (stats && stats.isDirectory() || !stats && output.endsWith(path.sep)) {
|
|
74
|
+
const fileName = `${extension.namespace}.${extension.name}-${extension.version}.json`;
|
|
75
|
+
filePath = path.resolve(process.cwd(), output, fileName);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
filePath = path.resolve(process.cwd(), output);
|
|
79
|
+
}
|
|
80
|
+
await util_1.makeDirs(path.dirname(filePath));
|
|
81
|
+
await util_1.promisify(fs.writeFile)(filePath, metadata);
|
|
82
|
+
}
|
|
83
|
+
async function download(registry, extension, output) {
|
|
84
|
+
const downloadUrl = extension.files.download;
|
|
85
|
+
if (!downloadUrl) {
|
|
86
|
+
throw new Error(`Extension ${extension.namespace}.${extension.name} does not provide a download URL.`);
|
|
87
|
+
}
|
|
88
|
+
const fileNameIndex = downloadUrl.lastIndexOf('/');
|
|
89
|
+
const fileName = decodeURIComponent(downloadUrl.substring(fileNameIndex + 1));
|
|
90
|
+
let filePath;
|
|
91
|
+
if (output) {
|
|
92
|
+
const stats = await util_1.optionalStat(output);
|
|
85
93
|
if (stats && stats.isDirectory() || !stats && output.endsWith(path.sep)) {
|
|
86
|
-
const fileName = `${extension.namespace}.${extension.name}-${extension.version}.json`;
|
|
87
94
|
filePath = path.resolve(process.cwd(), output, fileName);
|
|
88
95
|
}
|
|
89
96
|
else {
|
|
90
97
|
filePath = path.resolve(process.cwd(), output);
|
|
91
98
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
throw new Error(`Extension ${extension.namespace}.${extension.name} does not provide a download URL.`);
|
|
101
|
-
}
|
|
102
|
-
const fileNameIndex = downloadUrl.lastIndexOf('/');
|
|
103
|
-
const fileName = decodeURIComponent(downloadUrl.substring(fileNameIndex + 1));
|
|
104
|
-
let filePath;
|
|
105
|
-
if (output) {
|
|
106
|
-
const stats = yield util_1.optionalStat(output);
|
|
107
|
-
if (stats && stats.isDirectory() || !stats && output.endsWith(path.sep)) {
|
|
108
|
-
filePath = path.resolve(process.cwd(), output, fileName);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
filePath = path.resolve(process.cwd(), output);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
filePath = path.resolve(process.cwd(), fileName);
|
|
116
|
-
}
|
|
117
|
-
yield util_1.makeDirs(path.dirname(filePath));
|
|
118
|
-
const target = extension.targetPlatform !== 'universal' ? '@' + extension.targetPlatform : '';
|
|
119
|
-
console.log(`Downloading ${extension.namespace}.${extension.name}-${extension.version}${target} to ${filePath}`);
|
|
120
|
-
yield registry.download(filePath, new URL(downloadUrl));
|
|
121
|
-
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
filePath = path.resolve(process.cwd(), fileName);
|
|
102
|
+
}
|
|
103
|
+
await util_1.makeDirs(path.dirname(filePath));
|
|
104
|
+
const target = extension.targetPlatform !== 'universal' ? '@' + extension.targetPlatform : '';
|
|
105
|
+
console.log(`Downloading ${extension.namespace}.${extension.name}-${extension.version}${target} to ${filePath}`);
|
|
106
|
+
await registry.download(filePath, new URL(downloadUrl));
|
|
122
107
|
}
|
|
123
108
|
//# sourceMappingURL=get.js.map
|
package/lib/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":"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"}
|
package/lib/main.js
CHANGED
|
@@ -55,8 +55,20 @@ module.exports = function (argv) {
|
|
|
55
55
|
console.warn("Ignoring option '--yarn' for prepackaged extension.");
|
|
56
56
|
const { registryUrl, pat } = program.opts();
|
|
57
57
|
publish_1.publish({ extensionFile, registryUrl, pat, targets: typeof target === 'string' ? [target] : target, packagePath: typeof packagePath === 'string' ? [packagePath] : packagePath, baseContentUrl, baseImagesUrl, yarn, preRelease })
|
|
58
|
-
.
|
|
59
|
-
|
|
58
|
+
.then(results => {
|
|
59
|
+
const reasons = results.filter(result => result.status === 'rejected')
|
|
60
|
+
.map(result => result)
|
|
61
|
+
.map(rejectedResult => rejectedResult.reason);
|
|
62
|
+
if (reasons.length > 0) {
|
|
63
|
+
const message = 'See the documentation for more information:\n'
|
|
64
|
+
+ 'https://github.com/eclipse/openvsx/wiki/Publishing-Extensions';
|
|
65
|
+
const errorHandler = util_1.handleError(program.debug, message, false);
|
|
66
|
+
for (const reason of reasons) {
|
|
67
|
+
errorHandler(reason);
|
|
68
|
+
}
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
60
72
|
});
|
|
61
73
|
const getCmd = program.command('get <namespace.extension>');
|
|
62
74
|
getCmd.description('Download an extension or its metadata.')
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/lib/publish.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { RegistryOptions } from './registry';
|
|
|
2
2
|
/**
|
|
3
3
|
* Publishes an extension.
|
|
4
4
|
*/
|
|
5
|
-
export declare function publish(options?: PublishOptions): Promise<void>;
|
|
5
|
+
export declare function publish(options?: PublishOptions): Promise<PromiseSettledResult<void>[]>;
|
|
6
6
|
interface PublishCommonOptions extends RegistryOptions {
|
|
7
7
|
/**
|
|
8
8
|
* Path to the vsix file to be published. Cannot be used together with `packagePath`.
|
package/lib/publish.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAWA,OAAO,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAGvD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAWA,OAAO,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAGvD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAYjG;AAsCD,UAAU,oBAAqB,SAAQ,eAAe;IAClD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAExD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B"}
|
package/lib/publish.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
/********************************************************************************
|
|
13
4
|
* Copyright (c) 2019 TypeFox and others
|
|
@@ -25,71 +16,65 @@ const check_license_1 = require("./check-license");
|
|
|
25
16
|
/**
|
|
26
17
|
* Publishes an extension.
|
|
27
18
|
*/
|
|
28
|
-
function publish(options = {}) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
for (const
|
|
35
|
-
|
|
36
|
-
internalPublishOptions.push(Object.assign(Object.assign({}, options), { packagePath: packagePath, target: target }));
|
|
37
|
-
}
|
|
19
|
+
async function publish(options = {}) {
|
|
20
|
+
util_1.addEnvOptions(options);
|
|
21
|
+
const internalPublishOptions = [];
|
|
22
|
+
const packagePaths = options.packagePath || [undefined];
|
|
23
|
+
const targets = options.targets || [undefined];
|
|
24
|
+
for (const packagePath of packagePaths) {
|
|
25
|
+
for (const target of targets) {
|
|
26
|
+
internalPublishOptions.push({ ...options, packagePath: packagePath, target: target });
|
|
38
27
|
}
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
}
|
|
29
|
+
return Promise.allSettled(internalPublishOptions.map(publishOptions => doPublish(publishOptions)));
|
|
41
30
|
}
|
|
42
31
|
exports.publish = publish;
|
|
43
|
-
function doPublish(options = {}) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
});
|
|
32
|
+
async function doPublish(options = {}) {
|
|
33
|
+
if (!options.pat) {
|
|
34
|
+
throw new Error("A personal access token must be given with the option '--pat'.");
|
|
35
|
+
}
|
|
36
|
+
// if the packagePath is a link to a vsix, don't need to package it
|
|
37
|
+
if (options.packagePath && options.packagePath.endsWith('.vsix')) {
|
|
38
|
+
options.extensionFile = options.packagePath;
|
|
39
|
+
delete options.packagePath;
|
|
40
|
+
delete options.target;
|
|
41
|
+
}
|
|
42
|
+
const registry = new registry_1.Registry(options);
|
|
43
|
+
if (!options.extensionFile) {
|
|
44
|
+
await packageExtension(options, registry);
|
|
45
|
+
console.log(); // new line
|
|
46
|
+
}
|
|
47
|
+
else if (options.preRelease) {
|
|
48
|
+
console.warn("Ignoring option '--pre-release' for prepackaged extension.");
|
|
49
|
+
}
|
|
50
|
+
const extension = await registry.publish(options.extensionFile, options.pat);
|
|
51
|
+
if (extension.error) {
|
|
52
|
+
throw new Error(extension.error);
|
|
53
|
+
}
|
|
54
|
+
const name = `${extension.namespace}.${extension.name}`;
|
|
55
|
+
let description = `${name} v${extension.version}`;
|
|
56
|
+
if (extension.targetPlatform !== 'universal') {
|
|
57
|
+
description += `@${extension.targetPlatform}`;
|
|
58
|
+
}
|
|
59
|
+
console.log(`\ud83d\ude80 Published ${description}`);
|
|
60
|
+
if (extension.warning) {
|
|
61
|
+
console.log(`\n!! ${extension.warning}`);
|
|
62
|
+
}
|
|
76
63
|
}
|
|
77
|
-
function packageExtension(options, registry) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
yield vsce_1.createVSIX(createVSIXOptions);
|
|
93
|
-
});
|
|
64
|
+
async function packageExtension(options, registry) {
|
|
65
|
+
if (registry.requiresLicense) {
|
|
66
|
+
await check_license_1.checkLicense(options.packagePath);
|
|
67
|
+
}
|
|
68
|
+
options.extensionFile = await util_1.createTempFile({ postfix: '.vsix' });
|
|
69
|
+
const createVSIXOptions = {
|
|
70
|
+
target: options.target,
|
|
71
|
+
cwd: options.packagePath,
|
|
72
|
+
packagePath: options.extensionFile,
|
|
73
|
+
baseContentUrl: options.baseContentUrl,
|
|
74
|
+
baseImagesUrl: options.baseImagesUrl,
|
|
75
|
+
useYarn: options.yarn,
|
|
76
|
+
preRelease: options.preRelease
|
|
77
|
+
};
|
|
78
|
+
await vsce_1.createVSIX(createVSIXOptions);
|
|
94
79
|
}
|
|
95
80
|
//# sourceMappingURL=publish.js.map
|
package/lib/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
package/lib/util.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare function matchExtensionId(id: string): RegExpExecArray | null;
|
|
|
18
18
|
export declare function optionalStat(path: fs.PathLike): Promise<fs.Stats | undefined>;
|
|
19
19
|
export declare function makeDirs(path: fs.PathLike): Promise<void>;
|
|
20
20
|
export declare function createTempFile(options: tmp.TmpNameOptions): Promise<string>;
|
|
21
|
-
export declare function handleError(debug?: boolean, additionalMessage?: string): (reason: any) => void;
|
|
21
|
+
export declare function handleError(debug?: boolean, additionalMessage?: string, exit?: boolean): (reason: any) => void;
|
|
22
22
|
export declare function statusError(response: http.IncomingMessage): Error;
|
|
23
23
|
export declare function readFile(name: string, packagePath?: string, encoding?: string): Promise<string>;
|
|
24
24
|
export declare function readManifest(packagePath?: string): Promise<Manifest>;
|
package/lib/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;;AAElF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAa5D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAEnE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,CAI7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAazD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAS3E;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;;AAElF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAa5D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAEnE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,CAI7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAazD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAS3E;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAmBpH;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,KAAK,CAKjE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAchG;AAED,wBAAsB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG1E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAUzD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAehH;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1D;AAED,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EACvE,YAAY,EAAE,CAAC,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAarD"}
|
package/lib/util.js
CHANGED
|
@@ -8,15 +8,6 @@
|
|
|
8
8
|
*
|
|
9
9
|
* SPDX-License-Identifier: EPL-2.0
|
|
10
10
|
********************************************************************************/
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
12
|
const fs = require("fs");
|
|
22
13
|
const path = require("path");
|
|
@@ -76,7 +67,7 @@ function createTempFile(options) {
|
|
|
76
67
|
});
|
|
77
68
|
}
|
|
78
69
|
exports.createTempFile = createTempFile;
|
|
79
|
-
function handleError(debug, additionalMessage) {
|
|
70
|
+
function handleError(debug, additionalMessage, exit = true) {
|
|
80
71
|
return reason => {
|
|
81
72
|
if (reason instanceof Error && !debug) {
|
|
82
73
|
console.error(`\u274c ${reason.message}`);
|
|
@@ -93,7 +84,9 @@ function handleError(debug, additionalMessage) {
|
|
|
93
84
|
else {
|
|
94
85
|
console.error('An unknown error occurred.');
|
|
95
86
|
}
|
|
96
|
-
|
|
87
|
+
if (exit) {
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
97
90
|
};
|
|
98
91
|
}
|
|
99
92
|
exports.handleError = handleError;
|
|
@@ -117,11 +110,9 @@ function readFile(name, packagePath, encoding = 'utf-8') {
|
|
|
117
110
|
});
|
|
118
111
|
}
|
|
119
112
|
exports.readFile = readFile;
|
|
120
|
-
function readManifest(packagePath) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return JSON.parse(content);
|
|
124
|
-
});
|
|
113
|
+
async function readManifest(packagePath) {
|
|
114
|
+
const content = await readFile('package.json', packagePath);
|
|
115
|
+
return JSON.parse(content);
|
|
125
116
|
}
|
|
126
117
|
exports.readManifest = readManifest;
|
|
127
118
|
function validateManifest(manifest) {
|
|
@@ -164,21 +155,19 @@ function getUserInput(text) {
|
|
|
164
155
|
});
|
|
165
156
|
}
|
|
166
157
|
exports.getUserInput = getUserInput;
|
|
167
|
-
function getUserChoice(text, values, defaultValue, lowerCase = true) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (!answer) {
|
|
172
|
-
return defaultValue;
|
|
173
|
-
}
|
|
174
|
-
const lcAnswer = lowerCase ? answer.toLowerCase() : answer;
|
|
175
|
-
for (const value of values) {
|
|
176
|
-
if (value.startsWith(lcAnswer)) {
|
|
177
|
-
return value;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
158
|
+
async function getUserChoice(text, values, defaultValue, lowerCase = true) {
|
|
159
|
+
const prompt = text + '\n' + values.map(v => v === defaultValue ? `[${v}]` : v).join('/') + ': ';
|
|
160
|
+
const answer = await getUserInput(prompt);
|
|
161
|
+
if (!answer) {
|
|
180
162
|
return defaultValue;
|
|
181
|
-
}
|
|
163
|
+
}
|
|
164
|
+
const lcAnswer = lowerCase ? answer.toLowerCase() : answer;
|
|
165
|
+
for (const value of values) {
|
|
166
|
+
if (value.startsWith(lcAnswer)) {
|
|
167
|
+
return value;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return defaultValue;
|
|
182
171
|
}
|
|
183
172
|
exports.getUserChoice = getUserChoice;
|
|
184
173
|
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/main.ts
CHANGED
|
@@ -58,10 +58,22 @@ module.exports = function (argv: string[]): void {
|
|
|
58
58
|
console.warn("Ignoring option '--yarn' for prepackaged extension.");
|
|
59
59
|
const { registryUrl, pat } = program.opts();
|
|
60
60
|
publish({ extensionFile, registryUrl, pat, targets: typeof target === 'string' ? [target] : target, packagePath: typeof packagePath === 'string' ? [packagePath] : packagePath, baseContentUrl, baseImagesUrl, yarn, preRelease })
|
|
61
|
-
.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
.then(results => {
|
|
62
|
+
const reasons = results.filter(result => result.status === 'rejected')
|
|
63
|
+
.map(result => result as PromiseRejectedResult)
|
|
64
|
+
.map(rejectedResult => rejectedResult.reason);
|
|
65
|
+
|
|
66
|
+
if (reasons.length > 0) {
|
|
67
|
+
const message = 'See the documentation for more information:\n'
|
|
68
|
+
+ 'https://github.com/eclipse/openvsx/wiki/Publishing-Extensions';
|
|
69
|
+
const errorHandler = handleError(program.debug, message, false);
|
|
70
|
+
for (const reason of reasons) {
|
|
71
|
+
errorHandler(reason);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
65
77
|
});
|
|
66
78
|
|
|
67
79
|
const getCmd = program.command('get <namespace.extension>');
|
package/src/publish.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { checkLicense } from './check-license';
|
|
|
15
15
|
/**
|
|
16
16
|
* Publishes an extension.
|
|
17
17
|
*/
|
|
18
|
-
export async function publish(options: PublishOptions = {}): Promise<void> {
|
|
18
|
+
export async function publish(options: PublishOptions = {}): Promise<PromiseSettledResult<void>[]> {
|
|
19
19
|
addEnvOptions(options);
|
|
20
20
|
const internalPublishOptions = [];
|
|
21
21
|
const packagePaths = options.packagePath || [undefined];
|
|
@@ -25,7 +25,8 @@ export async function publish(options: PublishOptions = {}): Promise<void> {
|
|
|
25
25
|
internalPublishOptions.push({ ... options, packagePath: packagePath, target: target });
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
return Promise.allSettled(internalPublishOptions.map(publishOptions => doPublish(publishOptions)));
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
async function doPublish(options: InternalPublishOptions = {}): Promise<void> {
|
|
@@ -53,9 +54,9 @@ async function doPublish(options: InternalPublishOptions = {}): Promise<void> {
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
const name = `${extension.namespace}.${extension.name}`;
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
description += `@${
|
|
57
|
+
let description = `${name} v${extension.version}`;
|
|
58
|
+
if (extension.targetPlatform !== 'universal') {
|
|
59
|
+
description += `@${extension.targetPlatform}`;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
console.log(`\ud83d\ude80 Published ${description}`);
|
|
@@ -71,16 +72,16 @@ interface PublishCommonOptions extends RegistryOptions {
|
|
|
71
72
|
extensionFile?: string;
|
|
72
73
|
|
|
73
74
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
* The base URL for links detected in Markdown files. Only valid with `packagePath`.
|
|
76
|
+
*/
|
|
76
77
|
baseContentUrl?: string;
|
|
77
78
|
/**
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
* The base URL for images detected in Markdown files. Only valid with `packagePath`.
|
|
80
|
+
*/
|
|
80
81
|
baseImagesUrl?: string;
|
|
81
82
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
* Should use `yarn` instead of `npm`. Only valid with `packagePath`.
|
|
84
|
+
*/
|
|
84
85
|
yarn?: boolean;
|
|
85
86
|
/**
|
|
86
87
|
* Mark this package as a pre-release. Only valid with `packagePath`.
|
|
@@ -110,7 +111,7 @@ interface InternalPublishOptions extends PublishCommonOptions {
|
|
|
110
111
|
* Only one target for our internal command.
|
|
111
112
|
* Target architecture.
|
|
112
113
|
*/
|
|
113
|
-
|
|
114
|
+
target?: string;
|
|
114
115
|
|
|
115
116
|
/**
|
|
116
117
|
* Only one path for our internal command.
|
package/src/util.ts
CHANGED
|
@@ -68,7 +68,7 @@ export function createTempFile(options: tmp.TmpNameOptions): Promise<string> {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export function handleError(debug?: boolean, additionalMessage?: string): (reason: any) => void {
|
|
71
|
+
export function handleError(debug?: boolean, additionalMessage?: string, exit: boolean = true): (reason: any) => void {
|
|
72
72
|
return reason => {
|
|
73
73
|
if (reason instanceof Error && !debug) {
|
|
74
74
|
console.error(`\u274c ${reason.message}`);
|
|
@@ -82,7 +82,10 @@ export function handleError(debug?: boolean, additionalMessage?: string): (reaso
|
|
|
82
82
|
} else {
|
|
83
83
|
console.error('An unknown error occurred.');
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
|
|
86
|
+
if (exit) {
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
86
89
|
};
|
|
87
90
|
}
|
|
88
91
|
|