@ideem/zsm-react-native
Version:
ZSM React Native
1 lines • 6 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _classPrivateFieldLooseBase2=_interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase"));var _classPrivateFieldLooseKey2=_interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey"));var _webauthnClient=_interopRequireDefault(require("./webauthn-client"));var _zsmAPI=(0,_classPrivateFieldLooseKey2["default"])("zsmAPI");var UMFAClient=function(){function UMFAClient(config){var _this=this;Object.defineProperty(this,_zsmAPI,{writable:true,value:void 0});this.checkEnrollment=function(){var _ref=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(userIdentifier){var enrollmentDetails;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(userIdentifier===void 0){userIdentifier=_this.userIdentifier;}_context.prev=1;_context.next=4;return(0,_classPrivateFieldLooseBase2["default"])(_this,_zsmAPI)[_zsmAPI].webauthnRetrieve(userIdentifier);case 4:enrollmentDetails=_context.sent;return _context.abrupt("return",enrollmentDetails);case 8:_context.prev=8;_context.t0=_context["catch"](1);_context.t0=_context.t0.message||_context.t0;_context.t0='Unable to verify enrollment:'+_context.t0;return _context.abrupt("return",new Error(_context.t0));case 13:case"end":return _context.stop();}},_callee,null,[[1,8]]);}));return function(_x){return _ref.apply(this,arguments);};}();this.enroll=function(){var _ref2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(userIdentifier){var idCheck,userIsEnrolled,creationResult,authResult;return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(userIdentifier===void 0){userIdentifier=_this.userIdentifier;}_context2.next=3;return(0,_classPrivateFieldLooseBase2["default"])(_this,_zsmAPI)[_zsmAPI].checkIdentity(userIdentifier,true);case 3:idCheck=_context2.sent;_context2.prev=4;_context2.next=7;return _this.checkEnrollment(userIdentifier);case 7:userIsEnrolled=_context2.sent;if(!(userIsEnrolled!==false)){_context2.next=10;break;}return _context2.abrupt("return",false);case 10:_context2.next=12;return(0,_classPrivateFieldLooseBase2["default"])(_this,_zsmAPI)[_zsmAPI].webauthnCreate(userIdentifier);case 12:creationResult=_context2.sent;if(!(creationResult instanceof Error)){_context2.next=15;break;}throw"Unable to enroll "+userIdentifier+" during the creation process!";case 15:_context2.next=17;return _this.authenticate(userIdentifier);case 17:authResult=_context2.sent;if(!(authResult instanceof Error)){_context2.next=20;break;}throw"Unable to associate "+userIdentifier+"'s identity with device profile.\nDetails:\n"+authResult;case 20:if(authResult!=null&&authResult.token){_context2.next=22;break;}throw"Unable to acquire authentication token for "+userIdentifier+"!";case 22:return _context2.abrupt("return",authResult.token);case 25:_context2.prev=25;_context2.t0=_context2["catch"](4);_context2.t0=_context2.t0.message||_context2.t0;_context2.t0='Unable to complete enrollment: '+_context2.t0;return _context2.abrupt("return",new Error(_context2.t0));case 30:case"end":return _context2.stop();}},_callee2,null,[[4,25]]);}));return function(_x2){return _ref2.apply(this,arguments);};}();this.authenticate=function(){var _ref3=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(userIdentifier){var userIsEnrolled,authCredentalIdentity;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:if(userIdentifier===void 0){userIdentifier=_this.userIdentifier;}_context3.prev=1;_context3.next=4;return _this.checkEnrollment(userIdentifier);case 4:userIsEnrolled=_context3.sent;if(!(userIsEnrolled===false)){_context3.next=7;break;}throw userIdentifier+" is not enrolled.";case 7:_context3.next=9;return(0,_classPrivateFieldLooseBase2["default"])(_this,_zsmAPI)[_zsmAPI].webauthnGet(userIdentifier);case 9:authCredentalIdentity=_context3.sent;return _context3.abrupt("return",authCredentalIdentity);case 13:_context3.prev=13;_context3.t0=_context3["catch"](1);_context3.t0=_context3.t0.message||_context3.t0;_context3.t0='Unable to authenticate user:'+_context3.t0;return _context3.abrupt("return",new Error(_context3.t0));case 18:case"end":return _context3.stop();}},_callee3,null,[[1,13]]);}));return function(_x3){return _ref3.apply(this,arguments);};}();this.resetDevice=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:(0,_classPrivateFieldLooseBase2["default"])(_this,_zsmAPI)[_zsmAPI].webauthnReset();case 1:case"end":return _context4.stop();}},_callee4);}));window.zsm={};this.config=config;(0,_classPrivateFieldLooseBase2["default"])(this,_zsmAPI)[_zsmAPI]=new _webauthnClient["default"](config);this.checkEnrollment=this.checkEnrollment.bind(this);this.enroll=this.enroll.bind(this);this.authenticate=this.authenticate.bind(this);this.resetDevice=this.resetDevice.bind(this);}return(0,_createClass2["default"])(UMFAClient,[{key:"userIdentifier",get:function get(){return(0,_classPrivateFieldLooseBase2["default"])(this,_zsmAPI)[_zsmAPI].userIdentifier;}},{key:"credentialID",get:function get(){return(0,_classPrivateFieldLooseBase2["default"])(this,_zsmAPI)[_zsmAPI].credentialID;}},{key:"version",get:function get(){return(0,_classPrivateFieldLooseBase2["default"])(this,_zsmAPI)[_zsmAPI].version;}}]);}();var _default=exports["default"]=UMFAClient;