@indutny/windows-ucv
Version:
Windows User Consent Verification
49 lines (48 loc) • 1.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkAvailability = checkAvailability;
exports.requestVerification = requestVerification;
const bindings_1 = __importDefault(require("bindings"));
let binding;
if (process.platform === 'win32') {
binding = (0, bindings_1.default)('windows-ucv');
}
/**
* Check if User Constant Verification is available.
*
* See: https://learn.microsoft.com/en-us/uwp/api/windows.security.credentials.ui.userconsentverifier.checkavailabilityasync?view=winrt-26100#windows-security-credentials-ui-userconsentverifier-checkavailabilityasync
*/
async function checkAvailability() {
if (!binding) {
throw new Error('This library works only on Windows');
}
return new Promise((resolve, reject) => {
binding.checkAvailability((result) => {
if (result === 'error') {
return reject(new Error('Internal error'));
}
return resolve(result);
});
});
}
/**
* Request User Constant Verification
*
* See: https://learn.microsoft.com/en-us/uwp/api/windows.security.credentials.ui.userconsentverifier.requestverificationasync?view=winrt-26100
*/
async function requestVerification(message) {
if (!binding) {
throw new Error('This library works only on Windows');
}
return new Promise((resolve, reject) => {
binding.requestVerification(message, (result) => {
if (result === 'error') {
return reject(new Error('Internal error'));
}
return resolve(result);
});
});
}