You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

30 lines
1.6 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports._browserSupportsWebAuthnAutofillInternals = void 0;
exports.browserSupportsWebAuthnAutofill = browserSupportsWebAuthnAutofill;
const browserSupportsWebAuthn_js_1 = require("./browserSupportsWebAuthn.js");
/**
* Determine if the browser supports conditional UI, so that WebAuthn credentials can
* be shown to the user in the browser's typical password autofill popup.
*/
function browserSupportsWebAuthnAutofill() {
if (!(0, browserSupportsWebAuthn_js_1.browserSupportsWebAuthn)()) {
return exports._browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));
}
/**
* I don't like the `as unknown` here but there's a `declare var PublicKeyCredential` in
* TS' DOM lib that's making it difficult for me to just go `as PublicKeyCredentialFuture` as I
* want. I think I'm fine with this for now since it's _supposed_ to be temporary, until TS types
* have a chance to catch up.
*/
const globalPublicKeyCredential = globalThis
.PublicKeyCredential;
if (globalPublicKeyCredential?.isConditionalMediationAvailable === undefined) {
return exports._browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));
}
return exports._browserSupportsWebAuthnAutofillInternals.stubThis(globalPublicKeyCredential.isConditionalMediationAvailable());
}
// Make it possible to stub the return value during testing
exports._browserSupportsWebAuthnAutofillInternals = {
stubThis: (value) => value,
};