UNPKG

@iproov/web

Version:

iProov Web SDK

1 lines 70.3 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.iProovSupport=t():e.iProovSupport=t()}(self,(function(){return(()=>{var e={531:(e,t,r)=>{"use strict";r.r(t),r.d(t,{IOS_REQUEST_DESKTOP_WEBSITE:()=>z,SUPPORT_EVENTS:()=>ae,cameraPrompter:()=>$,default:()=>ce,iProovSupport:()=>se,testBrowser:()=>H,testVideoInput:()=>X});var n=r(989),i=r.n(n),o="genuine_presence",a="liveness";function u(e,...t){return t.reduce(((e,t)=>e&&e[t]),e)}function s(e){return u(e||window,"iProovNativeBridge")}function c(e){return u(e||window,"webkit","messageHandlers","iProovNativeBridge")}var f=r(927),l=r.n(f);function d(e,t,r,n,i,o,a){try{var u=e[o](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,i)}function p(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){d(o,n,i,a,u,"next",e)}function u(e){d(o,n,i,a,u,"throw",e)}a(void 0)}))}}var h="iProovKeys";function v(e){return btoa(e.match(/\w{2}/g).map((function(e){return String.fromCharCode(parseInt(e,16))})).join(""))}function b(e){return btoa(function(e){return String.fromCharCode.apply(null,new Uint8Array(e))}(e))}function m(e){return("00"+(e.length/2).toString(16)).slice(-2).toString()}function y(e,t){return g.apply(this,arguments)}function g(){return(g=p(regeneratorRuntime.mark((function e(t,r){var n,i,o,a,u,s,c,f,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,window.crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},t,r instanceof ArrayBuffer?r:(new TextEncoder).encode(r));case 2:for(n=e.sent,i=new Uint8Array(n),o=Array.prototype.map.call(i,(function(e){return("00"+e.toString(16)).slice(-2)})).join(""),a=o.substring(0,o.length/2),u=o.substring(o.length/2),s=!0,c=!0;0===a.indexOf("00");)a=a.substring(2),s=!1;for(s&&parseInt(a.substring(0,2),16)>127&&(a="00"+a);0===u.indexOf("00");)u=u.substring(2),c=!1;return c&&parseInt(u.substring(0,2),16)>127&&(u="00"+u),f="02"+m(a)+a+"02"+m(u)+u,l="30"+m(f)+f,e.abrupt("return",v(l));case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function w(){return _.apply(this,arguments)}function _(){return(_=p(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,window.crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign","verify"]);case 2:return t=e.sent,e.prev=3,e.next=6,l().setItem(h,t);case 6:e.next=12;break;case 8:if(e.prev=8,e.t0=e.catch(3),"DataCloneError"===e.t0.name){e.next=12;break}throw e.t0;case 12:return e.abrupt("return",t);case 13:case"end":return e.stop()}}),e,null,[[3,8]])})))).apply(this,arguments)}function x(){return S.apply(this,arguments)}function S(){return(S=p(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l().getItem(h);case 2:if(t=e.sent){e.next=7;break}return e.next=6,w();case 6:t=e.sent;case 7:return e.abrupt("return",t);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function k(e){return E.apply(this,arguments)}function E(){return(E=p(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=b,e.next=3,crypto.subtle.exportKey("spki",t);case 3:return e.t1=e.sent,e.abrupt("return",(0,e.t0)(e.t1));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function I(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?I(Object(r),!0).forEach((function(t){N(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(e,t){return j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},j(e,t)}function R(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=P(e);if(t){var i=P(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return T(this,r)}}function T(e,t){if(t&&("object"===M(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function P(e){return P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},P(e)}function A(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function C(e,t,r){return t&&D(e.prototype,t),r&&D(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function B(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,i,o=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){u=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return L(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return L(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function M(e){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},M(e)}function F(e,t,r,n,i,o,a){try{var u=e[o](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,i)}function U(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){F(o,n,i,a,u,"next",e)}function u(e){F(o,n,i,a,u,"throw",e)}a(void 0)}))}}var z="iOS (Request Desktop Website)";function q(){return(q=U(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=s()||c(),e.abrupt("return",!!t);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function G(){try{return window.top!==window.self}catch(e){return!0}}function W(){return document.featurePolicy}function V(e){return"object"===("undefined"==typeof WebAssembly?"undefined":M(WebAssembly))&&"function"==typeof WebAssembly.instantiate}function K(e){return"MediaDevices"in window&&MediaDevices.prototype&&"function"==typeof MediaDevices.prototype.getUserMedia}function H(e){var t=e.detector,r=t.browser,n=t.device,i=t.engine,o=t.os,a=t.ua;if(!r.name&&!i.name)return e.logger.error("Unable to support this unknown user agent: "+a),!1;var u="tablet"===n.type||"mobile"===n.type,s="iOS"===o.name;if("Safari"===r.name&&!u){var c=B(r.version.split("."),2),f=c[0],l=c[1];if("15"===f&&"0"===l)return e.logger.error("Unable to support Safari 15.0 due to Apple WebGL bug. Please upgrade to Safari 15.1."),!1;if(e.flags.in_iframe&&e.isNativeBridge&&s&&parseInt(f)<14)return e.logger.error("Unable to support Native Bridge in iOS < 14. Please upgrade your iOS version."),!1}return!0}function X(e){return new Promise(function(){var t=U(regeneratorRuntime.mark((function t(r,n){var i,o,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,navigator.mediaDevices.enumerateDevices();case 3:i=t.sent,t.next=9;break;case 6:return t.prev=6,t.t0=t.catch(0),t.abrupt("return",r(!1));case 9:if(0!==(o=i.filter((function(e){return"videoinput"===e.kind}))).length){t.next=13;break}return e.logger.warn("No video inputs identified"),t.abrupt("return",r(!1));case 13:if(!Array.from(new Set(o.filter((function(e){return""!==e.label})))).length){t.next=17;break}return e.tests.frontCamera=!0,t.abrupt("return",r(!0));case 17:return((a=Array.from(new Set(o.map((function(e){return e.groupId}))))).length>1||""!==a[0])&&e.logger.debug("Video groups found: "+a.join(", ")),t.abrupt("return",r(!0));case 20:case"end":return t.stop()}}),t,null,[[0,6]])})));return function(e,r){return t.apply(this,arguments)}}())}function Q(e){return window.DeviceMotionEvent&&"function"==typeof DeviceMotionEvent.requestPermission?function(){return new Promise(function(){var e=U(regeneratorRuntime.mark((function e(t,r){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,DeviceMotionEvent.requestPermission();case 2:return n=e.sent,e.abrupt("return",t("granted"===n));case 4:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}())}:null}function Y(e){return Z.apply(this,arguments)}function Z(){return(Z=U(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(window.DeviceMotionEvent){e.next=2;break}return e.abrupt("return",!1);case 2:if(null!==(r=Q())){e.next=9;break}if(!W()){e.next=8;break}return e.abrupt("return",["accelerometer","gyroscope","magnetometer"].every((function(e){return document.featurePolicy.allowsFeature(e)})));case 8:return e.abrupt("return",!0);case 9:return e.next=11,r(t);case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $(e){return function(){return new Promise(function(){var t=U(regeneratorRuntime.mark((function t(r,n){var i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,navigator.mediaDevices.getUserMedia({video:{facingMode:"user"}});case 3:i=t.sent,e.logger.debug("Got a track with: "+i.getVideoTracks()[0].label),i.getVideoTracks()[0].stop(),r(!0),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(0),e.logger.error("Problem testing front camera: "+t.t0.message),r(!1);case 13:case"end":return t.stop()}}),t,null,[[0,9]])})));return function(e,r){return t.apply(this,arguments)}}())}}function J(e){return ee.apply(this,arguments)}function ee(){return(ee=U(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",$(t)());case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function te(e){return document.fullscreenEnabled||document.webkitFullscreenEnabled||"iOS"===e.detector.os.name}function re(e){return"Mac OS"===e.os.name&&navigator.maxTouchPoints>1&&(e.device.type="tablet",e.os.name="iOS",e.device.model=z),e.device.model&&e.device.model.match(/iPhone/)&&(e.device.model=e.device.model+" "+(window.screen.height<=736?"8 (or older)":"X (or newer)")),e}var ne=["wasm","userMedia","videoInput","browser","fullscreen"],ie=["frontCamera"],oe=["gyro"],ae={CHECK:"check",GRANTED:"granted",DENIED:"denied",UNSUPPORTED:"unsupported"},ue={assuranceType:o},se=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&j(e,t)}(c,e);var t,r,n,o,u,s=R(c);function c(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return A(this,c),(t=s.call(this)).logger=e||console,t.detector=re(i()(window.navigator.userAgent)),t.options=Object.assign({},ue,r),t.isNativeBridge=void 0,t.flags={in_iframe:G(),requires_iframe_bridge:!1},t.tests={videoInput:null,wasm:null,userMedia:null,frontCamera:null,fullscreen:null,webgl:null,browser:null},t.permissionTests=[].concat(ie),t.supportTests=[].concat(ne),t.testSupport={videoInput:X,wasm:V,userMedia:K,frontCamera:J,fullscreen:te,browser:H},t.configureTests(),t.detectNativeBridge(),t}return C(c,[{key:"getDetector",value:function(){return this.detector}},{key:"configureTests",value:function(){if(this.options.assuranceType===a){if(!["tablet","mobile"].includes(this.detector.device.type))return;if("iOS"===this.detector.os.name&&parseFloat(this.detector.os.version)<15&&this.flags.in_iframe)this.flags.requires_iframe_bridge=!0;else this.tests.gyro=null,this.testSupport.gyro=Y,"function"==typeof Q()?this.permissionTests=oe.concat(this.permissionTests):this.supportTests=this.supportTests.concat(oe)}}},{key:"reconfigure",value:function(e){return this.options=Object.assign({},ue,e),this.configureTests()}},{key:"detectNativeBridge",value:function(){var e=this;return this._detectNativeBridge||(this._detectNativeBridge=function(){return q.apply(this,arguments)}({logger:this.logger}).then((function(t){return t&&e.logger.debug("Native bridge is installed"),e.isNativeBridge=t,t})).catch((function(t){e.isNativeBridge=!1,e.logger.error("There was an error: "+t.message)}))),this._detectNativeBridge}},{key:"isDeviceSupported",get:function(){var e=this;return this.isNativeBridge||this.supportTests.every((function(t){return!0===e.tests[t]}))}},{key:"isPermissionGranted",get:function(){var e=this;return this.isNativeBridge||this.permissionTests.every((function(t){return!0===e.tests[t]}))}},{key:"hasCheckedPermissions",get:function(){var e=this;return this.permissionTests.every((function(t){return null!==e.tests[t]}))}},{key:"wrapTest",value:(u=U(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===this.tests[t]){e.next=3;break}return r=this.tests[t],e.abrupt("return",r);case 3:return e.next=5,this.testSupport[t](this);case 5:return r=e.sent,this.tests[t]=r,r||this.logger.warn("Test result for "+t+": "+r),e.abrupt("return",r);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"checkWithPermission",value:(o=U(regeneratorRuntime.mark((function e(){var t,r=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{emit:!0},e.next=3,this.detectNativeBridge();case 3:return e.next=5,this.check({emit:!1});case 5:return this.logger.log("Checking permission:"+this.permissionTests.join(", ")),e.next=8,Promise.all(this.permissionTests.map(this.wrapTest.bind(this)));case 8:return t.emit&&(this.isPermissionGranted?this.emitPayload(ae.GRANTED):this.emitPayload(ae.DENIED),this.emitCheckResult()),e.abrupt("return",{supported:this.isDeviceSupported,granted:this.isPermissionGranted,is_native_bridge:this.isNativeBridge,flags:O({},this.flags),tests:O({},this.tests)});case 10:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"check",value:(n=U(regeneratorRuntime.mark((function e(){var t,r=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{emit:!0},e.next=3,this.detectNativeBridge();case 3:return e.next=5,Promise.all(this.supportTests.map(this.wrapTest.bind(this)));case 5:return t.emit&&this.emitCheckResult(),e.abrupt("return",{supported:this.isDeviceSupported,granted:this.isPermissionGranted,is_native_bridge:this.isNativeBridge,flags:O({},this.flags),tests:O({},this.tests)});case 7:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"emitPayload",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dispatchEvent(new CustomEvent(e,{detail:O(O({},t),{},{tests:this.tests,is_native_bridge:this.isNativeBridge})}))}},{key:"emitCheckResult",value:function(){this.emitPayload(ae.CHECK,{supported:this.isDeviceSupported,granted:this.hasCheckedPermissions?this.isPermissionGranted:null}),this.isDeviceSupported||this.emitPayload(ae.UNSUPPORTED,{supported:this.isDeviceSupported}),this.isPermissionGranted&&this.emitPayload(ae.GRANTED)}},{key:"getPublicKey",value:(r=U(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,x();case 2:return t=e.sent,e.next=5,k(t.publicKey);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)}))),function(){return r.apply(this,arguments)})},{key:"sign",value:(t=U(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,x();case 2:return r=e.sent,e.abrupt("return",y(r.privateKey,t));case 4:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),c}(function(){function e(){A(this,e),this.listeners=[]}return C(e,[{key:"hasEventListener",value:function(e,t){return this.listeners.some((function(r){return r.type===e&&r.listener===t}))}},{key:"addEventListener",value:function(e,t){return this.hasEventListener(e,t)||this.listeners.push({type:e,listener:t,options:{once:!1}}),this}},{key:"removeEventListener",value:function(e,t){var r=this.listeners.findIndex((function(r){return r.type===e&&r.listener===t}));return r>=0&&this.listeners.splice(r,1),this}},{key:"removeEventListeners",value:function(){return this.listeners=[],this}},{key:"dispatchEvent",value:function(e){var t=this;return this.listeners.filter((function(t){return t.type===e.type})).forEach((function(r){var n=r.type,i=r.listener,o=r.options.once;i.call(t,e),!0===o&&t.removeEventListener(n,i)})),this}}]),e}());const ce=se},927:(e,t,r)=>{e.exports=function e(t,r,n){function i(a,u){if(!r[a]){if(!t[a]){if(o)return o(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var c=r[a]={exports:{}};t[a][0].call(c.exports,(function(e){var r=t[a][1][e];return i(r||e)}),c,c.exports,e,t,r,n)}return r[a].exports}for(var o=void 0,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(e,t,n){(function(e){"use strict";var r,n,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var o=0,a=new i(f),u=e.document.createTextNode("");a.observe(u,{characterData:!0}),r=function(){u.data=o=++o%2}}else if(e.setImmediate||"undefined"==typeof e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){f(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(f,0)};else{var s=new e.MessageChannel;s.port1.onmessage=f,r=function(){s.port2.postMessage(0)}}var c=[];function f(){var e,t;n=!0;for(var r=c.length;r;){for(t=c,c=[],e=-1;++e<r;)t[e]();r=c.length}n=!1}function l(e){1!==c.push(e)||n||r()}t.exports=l}).call(this,"undefined"!=typeof r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,r){"use strict";var n=e(1);function i(){}var o={},a=["REJECTED"],u=["FULFILLED"],s=["PENDING"];function c(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=s,this.queue=[],this.outcome=void 0,e!==i&&p(this,e)}function f(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function l(e,t,r){n((function(){var n;try{n=t(r)}catch(t){return o.reject(e,t)}n===e?o.reject(e,new TypeError("Cannot resolve promise with itself")):o.resolve(e,n)}))}function d(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function p(e,t){var r=!1;function n(t){r||(r=!0,o.reject(e,t))}function i(t){r||(r=!0,o.resolve(e,t))}function a(){t(i,n)}var u=h(a);"error"===u.status&&n(u.value)}function h(e,t){var r={};try{r.value=e(t),r.status="success"}catch(e){r.status="error",r.value=e}return r}function v(e){return e instanceof this?e:o.resolve(new this(i),e)}function b(e){var t=new this(i);return o.reject(t,e)}function m(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var a=new Array(r),u=0,s=-1,c=new this(i);++s<r;)f(e[s],s);return c;function f(e,i){function s(e){a[i]=e,++u!==r||n||(n=!0,o.resolve(c,a))}t.resolve(e).then(s,(function(e){n||(n=!0,o.reject(c,e))}))}}function y(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var a=-1,u=new this(i);++a<r;)s(e[a]);return u;function s(e){t.resolve(e).then((function(e){n||(n=!0,o.resolve(u,e))}),(function(e){n||(n=!0,o.reject(u,e))}))}}t.exports=c,c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if("function"!=typeof e&&this.state===u||"function"!=typeof t&&this.state===a)return this;var r=new this.constructor(i);return this.state!==s?l(r,this.state===u?e:t,this.outcome):this.queue.push(new f(r,e,t)),r},f.prototype.callFulfilled=function(e){o.resolve(this.promise,e)},f.prototype.otherCallFulfilled=function(e){l(this.promise,this.onFulfilled,e)},f.prototype.callRejected=function(e){o.reject(this.promise,e)},f.prototype.otherCallRejected=function(e){l(this.promise,this.onRejected,e)},o.resolve=function(e,t){var r=h(d,t);if("error"===r.status)return o.reject(e,r.value);var n=r.value;if(n)p(e,n);else{e.state=u,e.outcome=t;for(var i=-1,a=e.queue.length;++i<a;)e.queue[i].callFulfilled(t)}return e},o.reject=function(e,t){e.state=a,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},c.resolve=v,c.reject=b,c.all=m,c.race=y},{1:1}],3:[function(e,t,n){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,"undefined"!=typeof r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}var a=o();function u(){try{if(!a||!a.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function s(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(i){if("TypeError"!==i.name)throw i;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<e.length;n+=1)r.append(e[n]);return r.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var c=Promise;function f(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function l(e,t,r){"function"==typeof t&&e.then(t),"function"==typeof r&&e.catch(r)}function d(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function p(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var h="local-forage-detect-blob-support",v=void 0,b={},m=Object.prototype.toString,y="readonly",g="readwrite";function w(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),i=0;i<t;i++)n[i]=e.charCodeAt(i);return r}function _(e){return new c((function(t){var r=e.transaction(h,g),n=s([""]);r.objectStore(h).put(n,"key"),r.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},r.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);t(r||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}function x(e){return"boolean"==typeof v?c.resolve(v):_(e).then((function(e){return v=e}))}function S(e){var t=b[e.name],r={};r.promise=new c((function(e,t){r.resolve=e,r.reject=t})),t.deferredOperations.push(r),t.dbReady?t.dbReady=t.dbReady.then((function(){return r.promise})):t.dbReady=r.promise}function k(e){var t=b[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function E(e,t){var r=b[e.name].deferredOperations.pop();if(r)return r.reject(t),r.promise}function I(e,t){return new c((function(r,n){if(b[e.name]=b[e.name]||B(),e.db){if(!t)return r(e.db);S(e),e.db.close()}var i=[e.name];t&&i.push(e.version);var o=a.open.apply(a,i);t&&(o.onupgradeneeded=function(t){var r=o.result;try{r.createObjectStore(e.storeName),t.oldVersion<=1&&r.createObjectStore(h)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),o.onerror=function(e){e.preventDefault(),n(o.error)},o.onsuccess=function(){var t=o.result;t.onversionchange=function(e){e.target.close()},r(t),k(e)}}))}function O(e){return I(e,!1)}function N(e){return I(e,!0)}function j(e,t){if(!e.db)return!0;var r=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,i=e.version>e.db.version;if(n&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),i||r){if(r){var o=e.db.version+1;o>e.version&&(e.version=o)}return!0}return!1}function R(e){return new c((function(t,r){var n=new FileReader;n.onerror=r,n.onloadend=function(r){var n=btoa(r.target.result||"");t({__local_forage_encoded_blob:!0,data:n,type:e.type})},n.readAsBinaryString(e)}))}function T(e){return s([w(atob(e.data))],{type:e.type})}function P(e){return e&&e.__local_forage_encoded_blob}function A(e){var t=this,r=t._initReady().then((function(){var e=b[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(r,e,e),r}function D(e){S(e);for(var t=b[e.name],r=t.forages,n=0;n<r.length;n++){var i=r[n];i._dbInfo.db&&(i._dbInfo.db.close(),i._dbInfo.db=null)}return e.db=null,O(e).then((function(t){return e.db=t,j(e)?N(e):t})).then((function(n){e.db=t.db=n;for(var i=0;i<r.length;i++)r[i]._dbInfo.db=n})).catch((function(t){throw E(e,t),t}))}function C(e,t,r,n){void 0===n&&(n=1);try{var i=e.db.transaction(e.storeName,t);r(null,i)}catch(i){if(n>0&&(!e.db||"InvalidStateError"===i.name||"NotFoundError"===i.name))return c.resolve().then((function(){if(!e.db||"NotFoundError"===i.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),N(e)})).then((function(){return D(e).then((function(){C(e,t,r,n-1)}))})).catch(r);r(i)}}function B(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function L(e){var t=this,r={db:null};if(e)for(var n in e)r[n]=e[n];var i=b[r.name];i||(i=B(),b[r.name]=i),i.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=A);var o=[];function a(){return c.resolve()}for(var u=0;u<i.forages.length;u++){var s=i.forages[u];s!==t&&o.push(s._initReady().catch(a))}var f=i.forages.slice(0);return c.all(o).then((function(){return r.db=i.db,O(r)})).then((function(e){return r.db=e,j(r,t._defaultConfig.version)?N(r):e})).then((function(e){r.db=i.db=e,t._dbInfo=r;for(var n=0;n<f.length;n++){var o=f[n];o!==t&&(o._dbInfo.db=r.db,o._dbInfo.version=r.version)}}))}function M(e,t){var r=this;e=d(e);var n=new c((function(t,n){r.ready().then((function(){C(r._dbInfo,y,(function(i,o){if(i)return n(i);try{var a=o.objectStore(r._dbInfo.storeName).get(e);a.onsuccess=function(){var e=a.result;void 0===e&&(e=null),P(e)&&(e=T(e)),t(e)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n}function F(e,t){var r=this,n=new c((function(t,n){r.ready().then((function(){C(r._dbInfo,y,(function(i,o){if(i)return n(i);try{var a=o.objectStore(r._dbInfo.storeName).openCursor(),u=1;a.onsuccess=function(){var r=a.result;if(r){var n=r.value;P(n)&&(n=T(n));var i=e(n,r.key,u++);void 0!==i?t(i):r.continue()}else t()},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n}function U(e,t,r){var n=this;e=d(e);var i=new c((function(r,i){var o;n.ready().then((function(){return o=n._dbInfo,"[object Blob]"===m.call(t)?x(o.db).then((function(e){return e?t:R(t)})):t})).then((function(t){C(n._dbInfo,g,(function(o,a){if(o)return i(o);try{var u=a.objectStore(n._dbInfo.storeName);null===t&&(t=void 0);var s=u.put(t,e);a.oncomplete=function(){void 0===t&&(t=null),r(t)},a.onabort=a.onerror=function(){var e=s.error?s.error:s.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return f(i,r),i}function z(e,t){var r=this;e=d(e);var n=new c((function(t,n){r.ready().then((function(){C(r._dbInfo,g,(function(i,o){if(i)return n(i);try{var a=o.objectStore(r._dbInfo.storeName).delete(e);o.oncomplete=function(){t()},o.onerror=function(){n(a.error)},o.onabort=function(){var e=a.error?a.error:a.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n}function q(e){var t=this,r=new c((function(e,r){t.ready().then((function(){C(t._dbInfo,g,(function(n,i){if(n)return r(n);try{var o=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){var e=o.error?o.error:o.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r}function G(e){var t=this,r=new c((function(e,r){t.ready().then((function(){C(t._dbInfo,y,(function(n,i){if(n)return r(n);try{var o=i.objectStore(t._dbInfo.storeName).count();o.onsuccess=function(){e(o.result)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r}function W(e,t){var r=this,n=new c((function(t,n){e<0?t(null):r.ready().then((function(){C(r._dbInfo,y,(function(i,o){if(i)return n(i);try{var a=o.objectStore(r._dbInfo.storeName),u=!1,s=a.openKeyCursor();s.onsuccess=function(){var r=s.result;r?0===e||u?t(r.key):(u=!0,r.advance(e)):t(null)},s.onerror=function(){n(s.error)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n}function V(e){var t=this,r=new c((function(e,r){t.ready().then((function(){C(t._dbInfo,y,(function(n,i){if(n)return r(n);try{var o=i.objectStore(t._dbInfo.storeName).openKeyCursor(),a=[];o.onsuccess=function(){var t=o.result;t?(a.push(t.key),t.continue()):e(a)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r}function K(e,t){t=p.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,i=this;if(e.name){var o=e.name===r.name&&i._dbInfo.db?c.resolve(i._dbInfo.db):O(e).then((function(t){var r=b[e.name],n=r.forages;r.db=t;for(var i=0;i<n.length;i++)n[i]._dbInfo.db=t;return t}));n=e.storeName?o.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var r=t.version+1;S(e);var n=b[e.name],i=n.forages;t.close();for(var o=0;o<i.length;o++){var u=i[o];u._dbInfo.db=null,u._dbInfo.version=r}var s=new c((function(t,n){var i=a.open(e.name,r);i.onerror=function(e){i.result.close(),n(e)},i.onupgradeneeded=function(){i.result.deleteObjectStore(e.storeName)},i.onsuccess=function(){var e=i.result;e.close(),t(e)}}));return s.then((function(e){n.db=e;for(var t=0;t<i.length;t++){var r=i[t];r._dbInfo.db=e,k(r._dbInfo)}})).catch((function(t){throw(E(e,t)||c.resolve()).catch((function(){})),t}))}})):o.then((function(t){S(e);var r=b[e.name],n=r.forages;t.close();for(var i=0;i<n.length;i++)n[i]._dbInfo.db=null;var o=new c((function(t,r){var n=a.deleteDatabase(e.name);n.onerror=function(){var e=n.result;e&&e.close(),r(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},n.onsuccess=function(){var e=n.result;e&&e.close(),t(e)}}));return o.then((function(e){r.db=e;for(var t=0;t<n.length;t++)k(n[t]._dbInfo)})).catch((function(t){throw(E(e,t)||c.resolve()).catch((function(){})),t}))}))}else n=c.reject("Invalid arguments");return f(n,t),n}var H={_driver:"asyncStorage",_initStorage:L,_support:u(),iterate:F,getItem:M,setItem:U,removeItem:z,clear:q,length:G,key:W,keys:V,dropInstance:K};function X(){return"function"==typeof openDatabase}var Q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Y="~~local_forage_type~",Z=/^~~local_forage_type~([^~]+)~/,$="__lfsc__:",J=$.length,ee="arbf",te="blob",re="si08",ne="ui08",ie="uic8",oe="si16",ae="si32",ue="ur16",se="ui32",ce="fl32",fe="fl64",le=J+ee.length,de=Object.prototype.toString;function pe(e){var t,r,n,i,o,a=.75*e.length,u=e.length,s=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var c=new ArrayBuffer(a),f=new Uint8Array(c);for(t=0;t<u;t+=4)r=Q.indexOf(e[t]),n=Q.indexOf(e[t+1]),i=Q.indexOf(e[t+2]),o=Q.indexOf(e[t+3]),f[s++]=r<<2|n>>4,f[s++]=(15&n)<<4|i>>2,f[s++]=(3&i)<<6|63&o;return c}function he(e){var t,r=new Uint8Array(e),n="";for(t=0;t<r.length;t+=3)n+=Q[r[t]>>2],n+=Q[(3&r[t])<<4|r[t+1]>>4],n+=Q[(15&r[t+1])<<2|r[t+2]>>6],n+=Q[63&r[t+2]];return r.length%3==2?n=n.substring(0,n.length-1)+"=":r.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}function ve(e,t){var r="";if(e&&(r=de.call(e)),e&&("[object ArrayBuffer]"===r||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var n,i=$;e instanceof ArrayBuffer?(n=e,i+=ee):(n=e.buffer,"[object Int8Array]"===r?i+=re:"[object Uint8Array]"===r?i+=ne:"[object Uint8ClampedArray]"===r?i+=ie:"[object Int16Array]"===r?i+=oe:"[object Uint16Array]"===r?i+=ue:"[object Int32Array]"===r?i+=ae:"[object Uint32Array]"===r?i+=se:"[object Float32Array]"===r?i+=ce:"[object Float64Array]"===r?i+=fe:t(new Error("Failed to get type for BinaryArray"))),t(i+he(n))}else if("[object Blob]"===r){var o=new FileReader;o.onload=function(){var r=Y+e.type+"~"+he(this.result);t($+te+r)},o.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(r){console.error("Couldn't convert value into a JSON string: ",e),t(null,r)}}function be(e){if(e.substring(0,J)!==$)return JSON.parse(e);var t,r=e.substring(le),n=e.substring(J,le);if(n===te&&Z.test(r)){var i=r.match(Z);t=i[1],r=r.substring(i[0].length)}var o=pe(r);switch(n){case ee:return o;case te:return s([o],{type:t});case re:return new Int8Array(o);case ne:return new Uint8Array(o);case ie:return new Uint8ClampedArray(o);case oe:return new Int16Array(o);case ue:return new Uint16Array(o);case ae:return new Int32Array(o);case se:return new Uint32Array(o);case ce:return new Float32Array(o);case fe:return new Float64Array(o);default:throw new Error("Unkown type: "+n)}}var me={serialize:ve,deserialize:be,stringToBuffer:pe,bufferToString:he};function ye(e,t,r,n){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],r,n)}function ge(e){var t=this,r={db:null};if(e)for(var n in e)r[n]="string"!=typeof e[n]?e[n].toString():e[n];var i=new c((function(e,n){try{r.db=openDatabase(r.name,String(r.version),r.description,r.size)}catch(e){return n(e)}r.db.transaction((function(i){ye(i,r,(function(){t._dbInfo=r,e()}),(function(e,t){n(t)}))}),n)}));return r.serializer=me,i}function we(e,t,r,n,i,o){e.executeSql(r,n,i,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,u){u.rows.length?o(e,a):ye(e,t,(function(){e.executeSql(r,n,i,o)}),o)}),o):o(e,a)}),o)}function _e(e,t){var r=this;e=d(e);var n=new c((function(t,n){r.ready().then((function(){var i=r._dbInfo;i.db.transaction((function(r){we(r,i,"SELECT * FROM "+i.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,r){var n=r.rows.length?r.rows.item(0).value:null;n&&(n=i.serializer.deserialize(n)),t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return f(n,t),n}function xe(e,t){var r=this,n=new c((function(t,n){r.ready().then((function(){var i=r._dbInfo;i.db.transaction((function(r){we(r,i,"SELECT * FROM "+i.storeName,[],(function(r,n){for(var o=n.rows,a=o.length,u=0;u<a;u++){var s=o.item(u),c=s.value;if(c&&(c=i.serializer.deserialize(c)),void 0!==(c=e(c,s.key,u+1)))return void t(c)}t()}),(function(e,t){n(t)}))}))})).catch(n)}));return f(n,t),n}function Se(e,t,r,n){var i=this;e=d(e);var o=new c((function(o,a){i.ready().then((function(){void 0===t&&(t=null);var u=t,s=i._dbInfo;s.serializer.serialize(t,(function(t,c){c?a(c):s.db.transaction((function(r){we(r,s,"INSERT OR REPLACE INTO "+s.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){o(u)}),(function(e,t){a(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(n>0)return void o(Se.apply(i,[e,u,r,n-1]));a(t)}}))}))})).catch(a)}));return f(o,r),o}function ke(e,t,r){return Se.apply(this,[e,t,r,1])}function Ee(e,t){var r=this;e=d(e);var n=new c((function(t,n){r.ready().then((function(){var i=r._dbInfo;i.db.transaction((function(r){we(r,i,"DELETE FROM "+i.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){n(t)}))}))})).catch(n)}));return f(n,t),n}function Ie(e){var t=this,r=new c((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){we(t,n,"DELETE FROM "+n.storeName,[],(function(){e()}),(function(e,t){r(t)}))}))})).catch(r)}));return f(r,e),r}function Oe(e){var t=this,r=new c((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){we(t,n,"SELECT COUNT(key) as c FROM "+n.storeName,[],(function(t,r){var n=r.rows.item(0).c;e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return f(r,e),r}function Ne(e,t){var r=this,n=new c((function(t,n){r.ready().then((function(){var i=r._dbInfo;i.db.transaction((function(r){we(r,i,"SELECT key FROM "+i.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,r){var n=r.rows.length?r.rows.item(0).key:null;t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return f(n,t),n}function je(e){var t=this,r=new c((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){we(t,n,"SELECT key FROM "+n.storeName,[],(function(t,r){for(var n=[],i=0;i<r.rows.length;i++)n.push(r.rows.item(i).key);e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return f(r,e),r}function Re(e){return new c((function(t,r){e.transaction((function(n){n.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(r,n){for(var i=[],o=0;o<n.rows.length;o++)i.push(n.rows.item(o).name);t({db:e,storeNames:i})}),(function(e,t){r(t)}))}),(function(e){r(e)}))}))}function Te(e,t){t=p.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,i=this;return f(n=e.name?new c((function(t){var n;n=e.name===r.name?i._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:n,storeNames:[e.storeName]}):t(Re(n))})).then((function(e){return new c((function(t,r){e.db.transaction((function(n){function i(e){return new c((function(t,r){n.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){r(t)}))}))}for(var o=[],a=0,u=e.storeNames.length;a<u;a++)o.push(i(e.storeNames[a]));c.all(o).then((function(){t()})).catch((function(e){r(e)}))}),(function(e){r(e)}))}))})):c.reject("Invalid arguments"),t),n}var Pe={_driver:"webSQLStorage",_initStorage:ge,_support:X(),iterate:xe,getItem:_e,setItem:ke,removeItem:Ee,clear:Ie,length:Oe,key:Ne,keys:je,dropInstance:Te};function Ae(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function De(e,t){var r=e.name+"/";return e.storeName!==t.storeName&&(r+=e.storeName+"/"),r}function Ce(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function Be(){return!Ce()||localStorage.length>0}function Le(e){var t=this,r={};if(e)for(var n in e)r[n]=e[n];return r.keyPrefix=De(e,t._defaultConfig),Be()?(t._dbInfo=r,r.serializer=me,c.resolve()):c.reject()}function Me(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,r=localStorage.length-1;r>=0;r--){var n=localStorage.key(r);0===n.indexOf(e)&&localStorage.removeItem(n)}}));return f(r,e),r}function Fe(e,t){var r=this;e=d(e);var n=r.ready().then((function(){var t=r._dbInfo,n=localStorage.getItem(t.keyPrefix+e);return n&&(n=t.serializer.deserialize(n)),n}));return f(n,t),n}function Ue(e,t){var r=this,n=r.ready().then((function(){for(var t=r._dbInfo,n=t.keyPrefix,i=n.length,o=localStorage.length,a=1,u=0;u<o;u++){var s=localStorage.key(u);if(0===s.indexOf(n)){var c=localStorage.getItem(s);if(c&&(c=t.serializer.deserialize(c)),void 0!==(c=e(c,s.substring(i),a++)))return c}}}));return f(n,t),n}function ze(e,t){var r=this,n=r.ready().then((function(){var t,n=r._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(n.keyPrefix.length)),t}));return f(n,t),n}function qe(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo,r=localStorage.length,n=[],i=0;i<r;i++){var o=localStorage.key(i);0===o.indexOf(e.keyPrefix)&&n.push(o.substring(e.keyPrefix.length))}return n}));return f(r,e),r}function Ge(e){var t=this.keys().then((function(e){return e.length}));return f(t,e),t}function We(e,t){var r=this;e=d(e);var n=r.ready().then((function(){var t=r._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return f(n,t),n}function Ve(e,t,r){var n=this;e=d(e);var i=n.ready().then((function(){void 0===t&&(t=null);var r=t;return new c((function(i,o){var a=n._dbInfo;a.serializer.serialize(t,(function(t,n){if(n)o(n);else try{localStorage.setItem(a.keyPrefix+e,t),i(r)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||o(e),o(e)}}))}))}));return f(i,r),i}function Ke(e,t){if(t=p.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var r=this.config();e.name=e.name||r.name,e.storeName=e.storeName||r.storeName}var n,i=this;return n=e.name?new c((function(t){e.storeName?t(De(e,i._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}})):c.reject("Invalid arguments"),f(n,t),n}var He={_driver:"localStorageWrapper",_initStorage:Le,_support:Ae(),iterate:Ue,getItem:Fe,setItem:Ve,removeItem:We,clear:Me,length:Ge,key:ze,keys:qe,dropInstance:Ke},Xe=function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)},Qe=function(e,t){for(var r=e.length,n=0;n<r;){if(Xe(e[n],t))return!0;n++}return!1},Ye=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ze={},$e={},Je={INDEXEDDB:H,WEBSQL:Pe,LOCALSTORAGE:He},et=[Je.INDEXEDDB._driver,Je.WEBSQL._driver,Je.LOCALSTORAGE._driver],tt=["dropInstance"],rt=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(tt),nt={description:"",driver:et.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function it(e,t){e[t]=function(){var r=arguments;return e.ready().then((function(){return e[t].apply(e,r)}))}}function ot(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var r in t)t.hasOwnProperty(r)&&(Ye(t[r])?arguments[0][r]=t[r].slice():arguments[0][r]=t[r])}return arguments[0]}var at=function(){function e(t){for(var r in i(this,e),Je)if(Je.hasOwnProperty(r)){var n=Je[r],o=n._driver;this[r]=o,Ze[o]||this.defineDriver(n)}this._defaultConfig=ot({},nt),this._config=ot({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===("undefined"==typeof e?"undefined":n(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,r){var n=new c((function(t,r){try{var n=e._driver,i=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void r(i);for(var o=rt.concat("_initStorage"),a=0,u=o.length;a<u;a++){var s=o[a];if((!Qe(tt,s)||e[s])&&"function"!=typeof e[s])return void r(i)}var l=function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),r=c.reject(t);return f(r,arguments[arguments.length-1]),r}},r=0,n=tt.length;r<n;r++){var i=tt[r];e[i]||(e[i]=t(i))}};l();var d=function(r){Ze[n]&&console.info("Redefining LocalForage driver: "+n),Ze[n]=e,$e[n]=r,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(d,r):d(!!e._support):d(!0)}catch(e){r(e)}}));return l(n,t,r),n},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,r){var n=Ze[e]?c.resolve(Ze[e]):c.reject(new Error("Driver not found."));return l(n,t,r),n},e.prototype.getSerializer=function(e){var t=c.resolve(me);return l(t,e),t},e.prototype.ready=function(e){var t=this,r=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return l(r,e,e),r},e.prototype.setDriver=function(e,t,r){var n=this;Ye(e)||(e=[e]);var i=this._getSupportedDrivers(e);function o(){n._config.driver=n.driver()}function a(e){return n._extend(e),o(),n._ready=n._initStorage(n._config),n._ready}function u(e){return function(){var t=0;function r(){for(;t<e.length;){var i=e[t];return t++,n._dbInfo=null,n._ready=null,n.getDriver(i).then(a).catch(r)}o();var u=new Error("No available storage method found.");return n._driverSet=c.reject(u),n._driverSet}return r()}}var s=null!==this._driverSet?this._driverSet.catch((function(){return c.resolve()})):c.resolve();return this._driverSet=s.then((function(){var e=i[0];return n._dbInfo=null,n._ready=null,n.getDriver(e).then((function(e){n._driver=e._driver,o(),n._wrapLibraryMethodsWithReady(),n._initDriver=u(i)}))})).catch((function(){o();var e=new Error("No available storage method found.");return n._driverSet=c.reject(e),n._driverSet})),l(this._driverSet,t,r),this._driverSet},e.prototype.supports=function(e){return!!$e[e]},e.prototype._extend=function(e){ot(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],r=0,n=e.length;r<n;r++){var i=e[r];this.supports(i)&&t.push(i)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=rt.length;e<t;e++)it(this,rt[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),ut=new at;t.exports=ut},{3:3}]},{},[4])(4)},248:e=>{var t=function(e){"use strict";var t,r=Object.prototype,n=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof b?t:b,o=Object.create(i.prototype),a=new N(n||[]);return o._invoke=function(e,t,r){var n=l;return function(i,o){if(n===p)throw new Error("Generator is already running");if(n===h){if("throw"===i)throw o;return R()}for(r.method=i,r.arg=o;;){var a=r.delegate;if(a){var u=E(a,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===l)throw n=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=p;var s=f(e,t,r);if("normal"===s.type){if(n=r.done?h:d,s.arg===v)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n=h,r.method="throw",r.arg=s.arg)}}}(e,r,a),o}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var l="suspendedStart",d="suspendedYield",p="executing",h="completed",v={};function b(){}function m(){}function y(){}var g={};s(g,o,(function(){return this}));var w=Object.getPrototypeOf,_=w&&w(w(j([])));_&&_!==r&&n.call(_,o)&&(g=_);var x=y.prototype=b.prototype=Object.create(g);function S(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(i,o,a,u){var s=f(e[i],e,o);if("throw"!==s.type){var c=s.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,a,u)}),(function(e){r("throw",e,a,u)})):t.resolve(l).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,u)}))}u(s.arg)}var i;this._invoke=function(e,n){function o(){return new t((function(t,i){r(e,n,t,i)}))}return i=i?i.then(o,o):o()}}function E(e,r){var n=e.iterator[r.method];if(n===t){if(r.delegate=null,"throw"===r.method){if(e.iterator.return&&(r.method="return",r.arg=t,E(e,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw'