1import{B as e}from"./base-Baf51ksT.js";import{B as i,a as t,g as o,b as r}from"./index-C3dB1n7x.js";import"./vendor-BUzSYCA2.js";class s extends e{constructor(){super(...arguments),this.biometryType=i.none,this.biometryTypes=[],this.biometryIsEnrolled=!1,this.deviceIsSecure=!1}async checkBiometry(){const e=this.biometryType!==i.none,o=e&&this.biometryIsEnrolled;let r="",s=t.none;return e?this.biometryIsEnrolled||(r="Biometry is not enrolled",s=t.biometryNotEnrolled):(r="No biometry is available",s=t.biometryNotAvailable),{isAvailable:o,strongBiometryIsAvailable:this.biometryIsEnrolled&&this.hasStrongBiometry(),biometryType:this.biometryType,biometryTypes:this.biometryTypes,deviceIsSecure:this.deviceIsSecure,reason:r,code:s}}hasStrongBiometry(){return this.biometryTypes.some(e=>e===i.faceId||e===i.touchId||e===i.fingerprintAuthentication)}async internalAuthenticate(e){const s=await this.checkBiometry();if(!s.isAvailable||!confirm((null===e||void 0===e?void 0:e.reason)||`Authenticate with ${s.biometryTypes.map(e=>o(e)).join(" or ")}?`)){if(null===e||void 0===e?void 0:e.allowDeviceCredential){if(s.deviceIsSecure){if(confirm("Authenticate with device security?"))return;throw new r("User cancelled",t.userCancel)}if(s.isAvailable)throw new r("Device is not secure",t.noDeviceCredential)}else if(!s.isAvailable)throw s.biometryType===i.none?new r("Biometry is not available",t.biometryNotAvailable):new r("Biometry is not enrolled",t.biometryNotEnrolled);throw new r("User cancelled",t.userCancel)}}async setBiometryType(e){if(void 0===e)return;const t=Array.isArray(e)?e:[e];if(this.biometryTypes=[],this.biometryType=i.none,0!==t.length)if(t.every(e=>n(e)))this.biometryType=t[0],this.biometryType!==i.none&&(this.biometryTypes=t);else for(const[o,r]of t.entries())n(r)&&(this.biometryType===i.none?this.biometryTypes=[]:this.biometryTypes.push(r),0===o&&(this.biometryType=r))}async setBiometryIsEnrolled(e){this.biometryIsEnrolled=e}async setDeviceIsSecure(e){this.deviceIsSecure=e}}function n(e){return Object.values(i).includes(e)}export{s as BiometricAuthWeb}; 2//# sourceMappingURL=web-DV1DgUCp.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.