sussudio
Version:
An unofficial VS Code Internal API
29 lines (28 loc) • 1.25 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { createDecorator } from "../../instantiation/common/instantiation.mjs";
export const IExtensionSignatureVerificationService = createDecorator('IExtensionSignatureVerificationService');
export class ExtensionSignatureVerificationService {
moduleLoadingPromise;
vsceSign() {
if (!this.moduleLoadingPromise) {
this.moduleLoadingPromise = new Promise((resolve, reject) => require(['node-vsce-sign'], async (obj) => {
const instance = obj;
return resolve(instance);
}, reject));
}
return this.moduleLoadingPromise;
}
async verify(vsixFilePath, signatureArchiveFilePath) {
let module;
try {
module = await this.vsceSign();
}
catch (error) {
return false;
}
return module.verify(vsixFilePath, signatureArchiveFilePath);
}
}