Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@simplewebauthn/browser

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@simplewebauthn/browser - npm Package Compare versions

Comparing version 7.0.0 to 7.0.1

2

dist/bundle/index.es5.umd.min.js

@@ -1,2 +0,2 @@

/* [@simplewebauthn/browser@7.0.0] */
/* [@simplewebauthn/browser@7.0.1] */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SimpleWebAuthnBrowser={})}(this,(function(e){"use strict";var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},t(e,r)};var r=function(){return r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},r.apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function l(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,l)}u((n=n.apply(e,t||[])).next())}))}function o(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}function i(e){var t,r,n=new Uint8Array(e),o="";try{for(var i=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),a=i.next();!a.done;a=i.next()){var l=a.value;o+=String.fromCharCode(l)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}return btoa(o).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function a(e){for(var t=e.replace(/-/g,"+").replace(/_/g,"/"),r=(4-t.length%4)%4,n=t.padEnd(t.length+r,"="),o=atob(n),i=new ArrayBuffer(o.length),a=new Uint8Array(i),l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return i}function l(){return void 0!==(null===window||void 0===window?void 0:window.PublicKeyCredential)&&"function"==typeof window.PublicKeyCredential}function u(e){var t=e.id;return r(r({},e),{id:a(t),transports:e.transports})}function s(e){return"localhost"===e||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}var c=function(e){function r(t,r){void 0===r&&(r="WebAuthnError");var n=e.call(this,t)||this;return n.name=r,n}return function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}(r,e),r}(Error);var d=new(function(){function e(){}return e.prototype.createNewAbortSignal=function(){this.controller&&this.controller.abort("Cancelling existing WebAuthn API call for new one");var e=new AbortController;return this.controller=e,e.signal},e}()),f=["cross-platform","platform"];function p(e){if(e&&!(f.indexOf(e)<0))return e}function h(){return n(this,void 0,void 0,(function(){var e;return o(this,(function(t){return[2,void 0!==(e=window.PublicKeyCredential).isConditionalMediationAvailable&&e.isConditionalMediationAvailable()]}))}))}e.browserSupportsWebAuthn=l,e.browserSupportsWebAuthnAutofill=h,e.platformAuthenticatorIsAvailable=function(){return n(this,void 0,void 0,(function(){return o(this,(function(e){return l()?[2,PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()]:[2,!1]}))}))},e.startAuthentication=function(e,t){var f,w;return void 0===t&&(t=!1),n(this,void 0,void 0,(function(){var n,b,y,v,g,m,E,A,S;return o(this,(function(o){switch(o.label){case 0:if(!l())throw new Error("WebAuthn is not supported in this browser");return 0!==(null===(f=e.allowCredentials)||void 0===f?void 0:f.length)&&(n=null===(w=e.allowCredentials)||void 0===w?void 0:w.map(u)),b=r(r({},e),{challenge:a(e.challenge),allowCredentials:n}),y={},t?[4,h()]:[3,2];case 1:if(!o.sent())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete*='webauthn']").length<1)throw Error('No <input> with `"webauthn"` in its `autocomplete` attribute was detected');y.mediation="conditional",b.allowCredentials=[],o.label=2;case 2:y.publicKey=b,y.signal=d.createNewAbortSignal(),o.label=3;case 3:return o.trys.push([3,5,,6]),[4,navigator.credentials.get(y)];case 4:return v=o.sent(),[3,6];case 5:throw function(e){var t,r=e.error,n=e.options,o=n.publicKey;if(!o)throw Error("options was missing required publicKey property");if("AbortError"===r.name){if(n.signal===(new AbortController).signal)return new c("Authentication ceremony was sent an abort signal","AbortError")}else{if("NotAllowedError"===r.name)return(null===(t=o.allowCredentials)||void 0===t?void 0:t.length)?new c("No available authenticator recognized any of the allowed credentials","NotAllowedError"):new c("User clicked cancel, or the authentication ceremony timed out","NotAllowedError");if("SecurityError"===r.name){var i=window.location.hostname;if(!s(i))return new c("".concat(window.location.hostname," is an invalid domain"),"SecurityError");if(o.rpId!==i)return new c('The RP ID "'.concat(o.rpId,'" is invalid for this domain'),"SecurityError")}else if("UnknownError"===r.name)return new c("The authenticator was unable to process the specified options, or could not create a new assertion signature","UnknownError")}return r}({error:o.sent(),options:y});case 6:if(!v)throw new Error("Authentication was not completed");return g=v.id,m=v.rawId,E=v.response,A=v.type,S=void 0,E.userHandle&&(C=E.userHandle,S=new TextDecoder("utf-8").decode(C)),[2,{id:g,rawId:i(m),response:{authenticatorData:i(E.authenticatorData),clientDataJSON:i(E.clientDataJSON),signature:i(E.signature),userHandle:S},type:A,clientExtensionResults:v.getClientExtensionResults(),authenticatorAttachment:p(v.authenticatorAttachment)}]}var C}))}))},e.startRegistration=function(e){var t;return n(this,void 0,void 0,(function(){var n,f,h,w,b,y,v,g;return o(this,(function(o){switch(o.label){case 0:if(!l())throw new Error("WebAuthn is not supported in this browser");n=r(r({},e),{challenge:a(e.challenge),user:r(r({},e.user),{id:(m=e.user.id,(new TextEncoder).encode(m))}),excludeCredentials:null===(t=e.excludeCredentials)||void 0===t?void 0:t.map(u)}),(f={publicKey:n}).signal=d.createNewAbortSignal(),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,navigator.credentials.create(f)];case 2:return h=o.sent(),[3,4];case 3:throw function(e){var t,r,n=e.error,o=e.options,i=o.publicKey;if(!i)throw Error("options was missing required publicKey property");if("AbortError"===n.name){if(o.signal===(new AbortController).signal)return new c("Registration ceremony was sent an abort signal","AbortError")}else if("ConstraintError"===n.name){if(!0===(null===(t=i.authenticatorSelection)||void 0===t?void 0:t.requireResidentKey))return new c("Discoverable credentials were required but no available authenticator supported it","ConstraintError");if("required"===(null===(r=i.authenticatorSelection)||void 0===r?void 0:r.userVerification))return new c("User verification was required but no available authenticator supported it","ConstraintError")}else{if("InvalidStateError"===n.name)return new c("The authenticator was previously registered","InvalidStateError");if("NotAllowedError"===n.name)return new c("User clicked cancel, or the registration ceremony timed out","NotAllowedError");if("NotSupportedError"===n.name)return 0===i.pubKeyCredParams.filter((function(e){return"public-key"===e.type})).length?new c('No entry in pubKeyCredParams was of type "public-key"',"NotSupportedError"):new c("No available authenticator supported any of the specified pubKeyCredParams algorithms","NotSupportedError");if("SecurityError"===n.name){var a=window.location.hostname;if(!s(a))return new c("".concat(window.location.hostname," is an invalid domain"),"SecurityError");if(i.rp.id!==a)return new c('The RP ID "'.concat(i.rp.id,'" is invalid for this domain'),"SecurityError")}else if("TypeError"===n.name){if(i.user.id.byteLength<1||i.user.id.byteLength>64)return new c("User ID was not between 1 and 64 characters","TypeError")}else if("UnknownError"===n.name)return new c("The authenticator was unable to process the specified options, or could not create a new credential","UnknownError")}return n}({error:o.sent(),options:f});case 4:if(!h)throw new Error("Registration was not completed");return w=h.id,b=h.rawId,y=h.response,v=h.type,g=void 0,"function"==typeof y.getTransports&&(g=y.getTransports()),[2,{id:w,rawId:i(b),response:{attestationObject:i(y.attestationObject),clientDataJSON:i(y.clientDataJSON),transports:g},type:v,clientExtensionResults:h.getClientExtensionResults(),authenticatorAttachment:p(h.authenticatorAttachment)}]}var m}))}))},Object.defineProperty(e,"__esModule",{value:!0})}));

@@ -1,2 +0,2 @@

/* [@simplewebauthn/browser@7.0.0] */
/* [@simplewebauthn/browser@7.0.1] */
function utf8StringToBuffer(value) {

@@ -3,0 +3,0 @@ return new TextEncoder().encode(value);

@@ -1,2 +0,2 @@

/* [@simplewebauthn/browser@7.0.0] */
/* [@simplewebauthn/browser@7.0.1] */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SimpleWebAuthnBrowser={})}(this,(function(e){"use strict";function t(e){const t=new Uint8Array(e);let r="";for(const e of t)r+=String.fromCharCode(e);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function r(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),r=(4-t.length%4)%4,n=t.padEnd(t.length+r,"="),o=atob(n),i=new ArrayBuffer(o.length),a=new Uint8Array(i);for(let e=0;e<o.length;e++)a[e]=o.charCodeAt(e);return i}function n(){return void 0!==(null===window||void 0===window?void 0:window.PublicKeyCredential)&&"function"==typeof window.PublicKeyCredential}function o(e){const{id:t}=e;return{...e,id:r(t),transports:e.transports}}function i(e){return"localhost"===e||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}class a extends Error{constructor(e,t="WebAuthnError"){super(e),this.name=t}}const l=new class{createNewAbortSignal(){this.controller&&this.controller.abort("Cancelling existing WebAuthn API call for new one");const e=new AbortController;return this.controller=e,e.signal}},s=["cross-platform","platform"];function c(e){if(e&&!(s.indexOf(e)<0))return e}async function u(){const e=window.PublicKeyCredential;return void 0!==e.isConditionalMediationAvailable&&e.isConditionalMediationAvailable()}e.browserSupportsWebAuthn=n,e.browserSupportsWebAuthnAutofill=u,e.platformAuthenticatorIsAvailable=async function(){return!!n()&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()},e.startAuthentication=async function(e,s=!1){var d,w;if(!n())throw new Error("WebAuthn is not supported in this browser");let p;0!==(null===(d=e.allowCredentials)||void 0===d?void 0:d.length)&&(p=null===(w=e.allowCredentials)||void 0===w?void 0:w.map(o));const h={...e,challenge:r(e.challenge),allowCredentials:p},f={};if(s){if(!await u())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete*='webauthn']").length<1)throw Error('No <input> with `"webauthn"` in its `autocomplete` attribute was detected');f.mediation="conditional",h.allowCredentials=[]}let b;f.publicKey=h,f.signal=l.createNewAbortSignal();try{b=await navigator.credentials.get(f)}catch(e){throw function({error:e,options:t}){var r;const{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if("AbortError"===e.name){if(t.signal===(new AbortController).signal)return new a("Authentication ceremony was sent an abort signal","AbortError")}else{if("NotAllowedError"===e.name)return(null===(r=n.allowCredentials)||void 0===r?void 0:r.length)?new a("No available authenticator recognized any of the allowed credentials","NotAllowedError"):new a("User clicked cancel, or the authentication ceremony timed out","NotAllowedError");if("SecurityError"===e.name){const e=window.location.hostname;if(!i(e))return new a(`${window.location.hostname} is an invalid domain`,"SecurityError");if(n.rpId!==e)return new a(`The RP ID "${n.rpId}" is invalid for this domain`,"SecurityError")}else if("UnknownError"===e.name)return new a("The authenticator was unable to process the specified options, or could not create a new assertion signature","UnknownError")}return e}({error:e,options:f})}if(!b)throw new Error("Authentication was not completed");const{id:y,rawId:g,response:m,type:E}=b;let A;var v;return m.userHandle&&(v=m.userHandle,A=new TextDecoder("utf-8").decode(v)),{id:y,rawId:t(g),response:{authenticatorData:t(m.authenticatorData),clientDataJSON:t(m.clientDataJSON),signature:t(m.signature),userHandle:A},type:E,clientExtensionResults:b.getClientExtensionResults(),authenticatorAttachment:c(b.authenticatorAttachment)}},e.startRegistration=async function(e){var s,u;if(!n())throw new Error("WebAuthn is not supported in this browser");const d={publicKey:{...e,challenge:r(e.challenge),user:{...e.user,id:(u=e.user.id,(new TextEncoder).encode(u))},excludeCredentials:null===(s=e.excludeCredentials)||void 0===s?void 0:s.map(o)}};let w;d.signal=l.createNewAbortSignal();try{w=await navigator.credentials.create(d)}catch(e){throw function({error:e,options:t}){var r,n;const{publicKey:o}=t;if(!o)throw Error("options was missing required publicKey property");if("AbortError"===e.name){if(t.signal===(new AbortController).signal)return new a("Registration ceremony was sent an abort signal","AbortError")}else if("ConstraintError"===e.name){if(!0===(null===(r=o.authenticatorSelection)||void 0===r?void 0:r.requireResidentKey))return new a("Discoverable credentials were required but no available authenticator supported it","ConstraintError");if("required"===(null===(n=o.authenticatorSelection)||void 0===n?void 0:n.userVerification))return new a("User verification was required but no available authenticator supported it","ConstraintError")}else{if("InvalidStateError"===e.name)return new a("The authenticator was previously registered","InvalidStateError");if("NotAllowedError"===e.name)return new a("User clicked cancel, or the registration ceremony timed out","NotAllowedError");if("NotSupportedError"===e.name)return 0===o.pubKeyCredParams.filter((e=>"public-key"===e.type)).length?new a('No entry in pubKeyCredParams was of type "public-key"',"NotSupportedError"):new a("No available authenticator supported any of the specified pubKeyCredParams algorithms","NotSupportedError");if("SecurityError"===e.name){const e=window.location.hostname;if(!i(e))return new a(`${window.location.hostname} is an invalid domain`,"SecurityError");if(o.rp.id!==e)return new a(`The RP ID "${o.rp.id}" is invalid for this domain`,"SecurityError")}else if("TypeError"===e.name){if(o.user.id.byteLength<1||o.user.id.byteLength>64)return new a("User ID was not between 1 and 64 characters","TypeError")}else if("UnknownError"===e.name)return new a("The authenticator was unable to process the specified options, or could not create a new credential","UnknownError")}return e}({error:e,options:d})}if(!w)throw new Error("Registration was not completed");const{id:p,rawId:h,response:f,type:b}=w;let y;return"function"==typeof f.getTransports&&(y=f.getTransports()),{id:p,rawId:t(h),response:{attestationObject:t(f.attestationObject),clientDataJSON:t(f.clientDataJSON),transports:y},type:b,clientExtensionResults:w.getClientExtensionResults(),authenticatorAttachment:c(w.authenticatorAttachment)}},Object.defineProperty(e,"__esModule",{value:!0})}));
{
"name": "@simplewebauthn/browser",
"version": "7.0.0",
"version": "7.0.1",
"description": "SimpleWebAuthn for Browsers",

@@ -36,3 +36,3 @@ "main": "dist/bundle/index.js",

"@rollup/plugin-typescript": "^8.2.1",
"@simplewebauthn/typescript-types": "^7.0.0",
"@simplewebauthn/typescript-types": "*",
"rollup": "^2.52.1",

@@ -43,3 +43,3 @@ "rollup-plugin-terser": "^7.0.2",

"type": "module",
"gitHead": "b4a3c2a17e003f245b53d3c1ce5c231ec551457d"
"gitHead": "f86a831139bc63254816e0f1fe44b05c0c784800"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc