{"version":3,"sources":["jsdelivr-header.js","/npm/superlogin-client@0.8.0/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,OAAO,eAAe,QAAS,aAAc,CAC5C,OAAO,IAGR,IAAI,aAAe,WAAc,SAAS,EAAiB,EAAQ,GAAS,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CAAE,IAAI,EAAa,EAAM,GAAI,EAAW,WAAa,EAAW,aAAc,EAAO,EAAW,cAAe,EAAU,UAAW,IAAY,EAAW,UAAW,GAAM,OAAO,eAAe,EAAQ,EAAW,IAAK,EAAa,CAAE,CAAE,OAAO,SAAU,EAAa,EAAY,GAAiJ,OAA9H,GAAY,EAAiB,EAAY,UAAW,GAAiB,GAAa,EAAiB,EAAa,GAAqB,CAAa,CAAG,CAA7hB,GAEf,OAAS,QAAQ,SAEjB,QAAU,uBAAuB,QAEjC,QAAU,QAAQ,SAElB,QAAU,uBAAuB,SAEjC,cAAgB,QAAQ,iBAExB,UAAY,QAAQ,aAEpB,WAAa,uBAAuB,WAExC,SAAS,uBAAuB,GAAO,OAAO,GAAO,EAAI,WAAa,EAAM,CAAE,QAAS,EAAO,CAE9F,SAAS,gBAAgB,EAAU,GAAe,KAAM,aAAoB,GAAgB,MAAM,IAAI,UAAU,oCAAwC,CAExJ,SAAS,2BAA2B,EAAM,GAAQ,IAAK,EAAQ,MAAM,IAAI,eAAe,6DAAgE,OAAO,GAAyB,iBAAT,GAAqC,mBAAT,EAA8B,EAAP,CAAa,CAE/O,SAAS,UAAU,EAAU,GAAc,GAA0B,mBAAf,GAA4C,OAAf,EAAuB,MAAM,IAAI,UAAU,kEAAoE,GAAe,EAAS,UAAY,OAAO,OAAO,GAAc,EAAW,UAAW,CAAE,YAAa,CAAE,MAAO,EAAU,YAAY,EAAO,UAAU,EAAM,cAAc,KAAe,IAAY,OAAO,eAAiB,OAAO,eAAe,EAAU,GAAc,EAAS,UAAY,EAAY,CAE7e,IAAI,MAAQ,CACX,KAAK,EAAI,QAAQ,SAAS,kBAC1B,MAAM,EAAI,QAAQ,SAAS,mBAC3B,MAAM,EAAI,QAAQ,SAAS,mBAC3B,OAAO,EAAI,QAAQ,SAAS,qBAI7B,SAAS,sBAAsB,GAC9B,OAAO,EAAO,OAAO,GAAG,cAAgB,EAAO,MAAM,EACtD,CAEA,SAAS,iBAAiB,GAEzB,OADgB,IAAI,WAAW,QAAQ,GACtB,IAClB,CAEA,SAAS,cAAc,EAAK,GAE3B,IADA,IAAI,EAAO,iBAAiB,GACnB,EAAI,EAAG,EAAI,EAAU,OAAQ,GAAK,EAC1C,GAAI,IAAS,EAAU,GACtB,OAAO,EAGT,OAAO,CACR,CACA,SAAS,qBACR,IAAI,EAAM,cACV,IAGC,OAFA,aAAa,QAAQ,EAAK,GAC1B,aAAa,WAAW,IACjB,CACR,CAAE,MAAO,GACR,OAAO,CACR,CACD,CAEA,SAAS,WAAW,GAEnB,OAAI,GAAO,EAAI,UAAY,EAAI,SAAS,KAChC,EAAI,SAAS,KAEd,CACR,CAEA,IAAI,cAAgB,CACnB,QAAS,SAAiB,EAAK,GAC9B,cAAc,QAAQ,IAAI,EAAK,EAChC,EACA,QAAS,SAAiB,GACzB,IAAI,EAAQ,cAAc,QAAQ,IAAI,GACtC,YAAqB,IAAV,EACH,EAED,IACR,EACA,WAAY,SAAoB,GAC/B,cAAc,QAAQ,OAAO,EAC9B,EACA,QAAS,IAAI,KAGV,WAAa,WAGhB,SAAS,IACR,gBAAgB,KAAM,GAEtB,IAAI,EAAQ,2BAA2B,MAAO,EAAW,WAAa,OAAO,eAAe,IAAa,KAAK,OAM9G,OAJA,EAAM,gBAAiB,EACvB,EAAM,QAAU,CAAC,EACjB,EAAM,oBAAqB,EAC3B,EAAM,MAAQ,QAAQ,QAAQ,SACvB,CACR,CAykBA,OArlBA,UAAU,EAslBT,cAAc,eAxkBf,aAAa,EAAY,CAAC,CACzB,IAAK,YACL,MAAO,WACN,IAAI,EAAS,KAET,EAAS,UAAU,OAAS,QAAsB,IAAjB,UAAU,GAAmB,UAAU,GAAK,CAAC,EAoBlF,GAlBI,EAAO,YACV,KAAK,MAAQ,QAAQ,QAAQ,OAAO,CACnC,QAAS,EAAO,UAChB,QAAS,EAAO,WAIlB,EAAO,QAAU,EAAO,SAAW,QACnC,EAAO,QAAU,EAAO,QAAQ,QAAQ,MAAO,IAC/C,EAAO,UAAY,EAAO,WAAa,EAAO,QAC9C,EAAO,UAAY,EAAO,UAAU,QAAQ,MAAO,IACnD,EAAO,MAAQ,EAAO,OAAS,CAAC,EAChC,EAAO,MAAM,cAAgB,EAAO,MAAM,eAAiB,WAC3D,EAAO,MAAM,cAAgB,EAAO,MAAM,eAAiB,WAEtD,EAAO,WAAe,EAAO,qBAAqB,QACtD,EAAO,UAAY,KAEf,EAAO,kBAAmB,CAC9B,IAAI,EAAkB,OAAO,SAAS,KAClC,EAAO,YACV,EAAkB,iBAAiB,EAAO,YAE3C,EAAO,UAAU,KAAK,EACvB,CACA,EAAO,UAAY,EAAO,WAAa,GACvC,EAAO,QAAU,EAAO,SAAW,EAE9B,qBAEyB,YAAnB,EAAO,QACjB,KAAK,QAAU,OAAO,eAEtB,KAAK,QAAU,OAAO,aAJtB,KAAK,QAAU,cAOhB,KAAK,QAAU,EAGf,KAAK,SAAW,KAAK,MAAM,KAAK,QAAQ,QAAQ,uBAEhD,KAAK,mBAGD,EAAO,eACV,KAAK,eACL,KAAK,kBAAkB,MAAK,WAC3B,EAAO,SAAS,EAAO,SACxB,IAAG,OAAM,WAET,IAEF,GACE,CACF,IAAK,mBACL,MAAO,WACN,IAAI,EAAS,KAsCb,KAAK,MAAM,aAAa,QAAQ,MAAM,KAAK,yBAC3C,KAAK,MAAM,aAAa,SAAS,MAAM,KAAK,0BAE5C,KAAK,wBAA0B,KAAK,MAAM,aAAa,QAAQ,IAvCjD,SAAiB,GAC9B,IAAI,EAAS,EAAO,YAChB,EAAU,EAAO,aACrB,OAAK,GAAY,EAAQ,MAIrB,EAAI,YACA,QAAQ,QAAQ,GAGjB,EAAO,eAAe,MAAK,WAIjC,OAHI,cAAc,EAAI,IAAK,EAAO,aACjC,EAAI,QAAQ,cAAgB,UAAY,EAAQ,MAAQ,IAAM,EAAQ,UAEhE,CACR,IAZQ,QAAQ,QAAQ,EAazB,EAsB2E,KAAK,OAChF,KAAK,yBAA2B,KAAK,MAAM,aAAa,SAAS,IAAI,KArBjD,SAAuB,GAC1C,IAAI,EAAS,EAAO,YAIpB,OAAK,GAAU,EAAM,QAKjB,cAAc,EAAM,OAAO,IAAK,EAAO,YAAc,EAAM,UAAsC,MAA1B,EAAM,SAAS,QAAkB,EAAO,kBAClH,MAAM,KAAK,kBACX,EAAO,UAAU,oBAEX,QAAQ,OAAO,IARd,QAAQ,OAAO,EASxB,EAMyF,KAAK,MAC/F,GACE,CACF,IAAK,gBACL,MAAO,WACN,SAAU,KAAK,WAAY,KAAK,SAAS,QAC1C,GACE,CACF,IAAK,YACL,MAAO,WACN,OAAO,KAAK,OACb,GACE,CACF,IAAK,kBACL,MAAO,WACN,IAAI,EAAS,KAEb,OAAK,KAAK,gBAGH,KAAK,MAAM,IAAI,KAAK,QAAQ,QAAU,YAAY,OAAM,SAAU,GAExE,MADA,EAAO,UAAU,mBACX,WAAW,EAClB,IALQ,QAAQ,QAMjB,GACE,CACF,IAAK,aACL,MAAO,WAIN,OAHK,KAAK,WACT,KAAK,SAAW,KAAK,MAAM,KAAK,QAAQ,QAAQ,wBAE1C,KAAK,SAAW,OAAO,OAAO,KAAK,UAAY,IACvD,GACE,CACF,IAAK,aACL,MAAO,SAAoB,GAC1B,KAAK,SAAW,EAChB,KAAK,QAAQ,QAAQ,qBAAsB,KAAK,UAAU,KAAK,WAC/D,MAAM,KAAK,kBACZ,GACE,CACF,IAAK,gBACL,MAAO,WACN,KAAK,QAAQ,WAAW,sBACxB,KAAK,SAAW,IACjB,GACE,CACF,IAAK,WACL,MAAO,SAAkB,GACxB,OAAI,KAAK,SAAS,SAAW,KAAK,SAAS,QAAQ,GAC3C,KAAK,SAAS,QAAQ,GAEvB,IACR,GACE,CACF,IAAK,UACL,MAAO,WACN,OAAO,KAAK,KACb,GACE,CACF,IAAK,cACL,MAAO,SAAqB,GAC3B,SAAK,KAAK,UAAa,KAAK,SAAS,OAAU,KAAK,SAAS,MAAM,UACrB,IAAvC,KAAK,SAAS,MAAM,QAAQ,EACpC,GACE,CACF,IAAK,iBACL,MAAO,SAAwB,GAC9B,IAAK,KAAK,WAAa,KAAK,SAAS,QAAU,KAAK,SAAS,MAAM,OAAQ,OAAO,EAClF,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACtC,IAA+C,IAA3C,KAAK,SAAS,MAAM,QAAQ,EAAM,IAAY,OAAO,EAE1D,OAAO,CACR,GACE,CACF,IAAK,kBACL,MAAO,SAAyB,GAC/B,IAAK,KAAK,WAAa,KAAK,SAAS,QAAU,KAAK,SAAS,MAAM,OAAQ,OAAO,EAClF,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACtC,IAA+C,IAA3C,KAAK,SAAS,MAAM,QAAQ,EAAM,IAAY,OAAO,EAE1D,OAAO,CACR,GACE,CACF,IAAK,eACL,MAAO,WAEN,GAAI,KAAK,mBACR,OAAO,QAAQ,UAEhB,IAAK,KAAK,WAAa,KAAK,SAAS,QACpC,OAAO,QAAQ,SAGhB,IAAI,EAAY,KAAK,SAAS,WAAa,KAAK,SAAS,OACrD,EAAU,KAAK,SAAS,QACxB,EAAY,MAAM,KAAK,QAAQ,kBAAoB,GAAM,KAAK,QAAQ,iBACtE,EAAW,EAAU,EACrB,EAAW,KAAK,SAAS,gBAAkB,EAO/C,OANI,KAAK,IAAI,GAAY,MACxB,EAAW,IAEc,KAAK,MAAQ,EACH,GACd,EACV,GACX,MAAM,KAAK,sBACJ,KAAK,UAAU,MAAK,SAAU,GAEpC,OADA,MAAM,IAAI,4BAA6B,GAChC,CACR,IAAG,OAAM,SAAU,GAElB,MADA,MAAM,MAAM,4BAA6B,GACnC,CACP,KAEM,QAAQ,SAChB,GACE,CACF,IAAK,eACL,MAAO,WAEN,GAAK,KAAK,gBAAV,CAGA,IAAI,EAAU,KAAK,SAAS,QACxB,EAAW,KAAK,SAAS,gBAAkB,EAE3C,KAAK,IAAI,GAAY,MACxB,EAAW,GAEc,KAAK,MAAQ,EACb,GACzB,KAAK,UAAU,kBAThB,CAWD,GACE,CACF,IAAK,UACL,MAAO,WACN,IAAI,EAAS,KAET,EAAU,KAAK,aAEnB,OADA,KAAK,oBAAqB,EACnB,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,WAAY,CAAC,GAAG,MAAK,SAAU,GAO5E,OANA,EAAO,oBAAqB,EACxB,EAAI,KAAK,OAAS,EAAI,KAAK,UAC9B,OAAO,OAAO,EAAS,EAAI,MAC3B,EAAO,WAAW,GAClB,EAAO,WAAW,IAEZ,CACR,IAAG,OAAM,SAAU,GAElB,MADA,EAAO,oBAAqB,EACtB,WAAW,EAClB,GACD,GACE,CACF,IAAK,eACL,MAAO,WACN,IAAI,EAAS,KAEb,OAAO,IAAI,SAAQ,SAAU,GAC5B,IAAI,EAAU,EAAO,aACjB,EACH,EAAQ,GAER,EAAO,GAAG,SAAS,SAAU,GAC5B,EAAQ,EACT,GAEF,GACD,GACE,CACF,IAAK,QACL,MAAO,SAAe,GACrB,IAAI,EAAS,KAET,EAAgB,KAAK,QAAQ,MAC7B,EAAgB,EAAc,cAC9B,EAAgB,EAAc,cAElC,OAAK,EAAY,IAAmB,EAAY,GAGzC,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,SAAU,EAAa,CAAE,aAAa,IAAQ,MAAK,SAAU,GAI1G,OAHA,EAAI,KAAK,eAAiB,EAAI,KAAK,OAAS,KAAK,MACjD,EAAO,WAAW,EAAI,MACtB,EAAO,SAAS,EAAI,MACb,EAAI,IACZ,IAAG,OAAM,SAAU,GAGlB,MAFA,EAAO,gBAED,WAAW,EAClB,IAXQ,QAAQ,OAAO,CAAE,MAAO,mCAYjC,GACE,CACF,IAAK,WACL,MAAO,SAAkB,GACxB,IAAI,EAAS,KAEb,OAAO,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,YAAa,EAAc,CAAE,aAAa,IAAQ,MAAK,SAAU,GAO9G,OANI,EAAI,KAAK,SAAW,EAAI,KAAK,QAChC,EAAI,KAAK,eAAiB,EAAI,KAAK,OAAS,KAAK,MACjD,EAAO,WAAW,EAAI,MACtB,EAAO,SAAS,EAAI,OAErB,EAAO,YAAY,GACZ,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,SACL,MAAO,SAAgB,GACtB,IAAI,EAAS,KAEb,OAAO,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,UAAW,CAAC,GAAG,MAAK,SAAU,GAE3E,OADA,EAAO,UAAU,GAAO,cACjB,EAAI,IACZ,IAAG,OAAM,SAAU,GAElB,GADA,EAAO,UAAU,GAAO,eACnB,EAAI,UAAyC,MAA7B,EAAI,SAAS,KAAK,OACtC,MAAM,WAAW,EAEnB,GACD,GACE,CACF,IAAK,YACL,MAAO,SAAmB,GACzB,IAAI,EAAU,KAEd,OAAO,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,cAAe,CAAC,GAAG,MAAK,SAAU,GAE/E,OADA,EAAQ,UAAU,GAAO,cAClB,EAAI,IACZ,IAAG,OAAM,SAAU,GAElB,GADA,EAAQ,UAAU,GAAO,eACpB,EAAI,UAAyC,MAA7B,EAAI,SAAS,KAAK,OACtC,MAAM,WAAW,EAEnB,GACD,GACE,CACF,IAAK,eACL,MAAO,WACN,OAAO,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,iBAAkB,CAAC,GAAG,MAAK,SAAU,GAClF,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,aACL,MAAO,SAAoB,GAE1B,IAAqC,IADrB,KAAK,QAAQ,UACf,QAAQ,GACrB,OAAO,QAAQ,OAAO,CAAE,MAAO,YAAc,EAAW,oBAEzD,IAAI,EAAM,KAAK,QAAQ,UAAY,IAAM,EACzC,OAAO,KAAK,YAAY,EAAK,CAAE,YAAa,cAAgB,sBAAsB,IACnF,GACE,CACF,IAAK,kBACL,MAAO,SAAyB,EAAU,GACzC,IAAI,EAAU,KAGd,OAAqC,IADrB,KAAK,QAAQ,UACf,QAAQ,GACd,QAAQ,OAAO,CAAE,MAAO,YAAc,EAAW,oBAElD,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,IAAM,EAAW,SAAU,CAAE,aAAc,IAAe,MAAK,SAAU,GAMtH,OALI,EAAI,KAAK,SAAW,EAAI,KAAK,QAChC,EAAI,KAAK,eAAiB,EAAI,KAAK,OAAS,KAAK,MACjD,EAAQ,WAAW,EAAI,MACvB,EAAQ,SAAS,EAAI,OAEf,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,YACL,MAAO,SAAmB,EAAU,GAEnC,IAAqC,IADrB,KAAK,QAAQ,UACf,QAAQ,GACrB,OAAO,QAAQ,OAAO,CAAE,MAAO,YAAc,EAAW,oBAEzD,IAAI,EAAU,KAAK,QAAQ,QAAU,SAAW,EAAW,SAC3D,OAAO,KAAK,MAAM,KAAK,EAAS,CAAE,aAAc,IAAe,MAAK,SAAU,GAC7E,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,OACL,MAAO,SAAc,GAEpB,IAAqC,IADrB,KAAK,QAAQ,UACf,QAAQ,GACrB,OAAO,QAAQ,OAAO,CAAE,MAAO,YAAc,EAAW,oBAEzD,GAAI,KAAK,gBAAiB,CACzB,IAAI,EAAU,KAAK,aACf,EAAQ,gBAAkB,EAAQ,MAAQ,IAAM,EAAQ,SACxD,EAAU,KAAK,QAAQ,UAAY,SAAW,EAAW,IAAM,EAC/D,EAAc,wBAA0B,sBAAsB,GAClE,OAAO,KAAK,YAAY,EAAS,CAAE,YAAa,GACjD,CACA,OAAO,QAAQ,OAAO,CAAE,MAAO,2BAChC,GACE,CACF,IAAK,SACL,MAAO,SAAgB,GAEtB,OAAqC,IADrB,KAAK,QAAQ,UACf,QAAQ,GACd,QAAQ,OAAO,CAAE,MAAO,YAAc,EAAW,oBAErD,KAAK,gBACD,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,WAAa,GAAU,MAAK,SAAU,GACnF,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,IAEM,QAAQ,OAAO,CAAE,MAAO,2BAChC,GACE,CACF,IAAK,eACL,MAAO,SAAsB,GAC5B,OAAK,GAA0B,iBAAV,EAGd,KAAK,MAAM,IAAI,KAAK,QAAQ,QAAU,kBAAoB,GAAO,MAAK,SAAU,GACtF,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,IANQ,QAAQ,OAAO,CAAE,MAAO,iBAOjC,GACE,CACF,IAAK,iBACL,MAAO,SAAwB,GAC9B,OAAO,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,mBAAoB,CAAE,MAAO,GAAS,CAAE,aAAa,IAAQ,MAAK,SAAU,GACzH,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,gBACL,MAAO,SAAuB,GAC7B,IAAI,EAAU,KAEd,OAAO,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,kBAAmB,EAAM,CAAE,aAAa,IAAQ,MAAK,SAAU,GAK5G,OAJI,EAAI,KAAK,SAAW,EAAI,KAAK,QAChC,EAAQ,WAAW,EAAI,MACvB,EAAQ,SAAS,EAAI,OAEf,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,iBACL,MAAO,SAAwB,GAC9B,OAAI,KAAK,gBACD,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,mBAAoB,GAAM,MAAK,SAAU,GACtF,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,IAEM,QAAQ,OAAO,CAAE,MAAO,2BAChC,GACE,CACF,IAAK,cACL,MAAO,SAAqB,GAC3B,OAAI,KAAK,gBACD,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAU,gBAAiB,CAAE,SAAU,IAAY,MAAK,SAAU,GACrG,OAAO,EAAI,IACZ,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,IAEM,QAAQ,OAAO,CAAE,MAAO,2BAChC,GACE,CACF,IAAK,mBACL,MAAO,SAA0B,GAChC,OAAO,KAAK,MAAM,IAAI,KAAK,QAAQ,QAAU,sBAAwB,mBAAmB,IAAW,MAAK,WACvG,OAAO,CACR,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,gBACL,MAAO,SAAuB,GAC7B,OAAO,KAAK,MAAM,IAAI,KAAK,QAAQ,QAAU,mBAAqB,mBAAmB,IAAQ,MAAK,WACjG,OAAO,CACR,IAAG,OAAM,SAAU,GAClB,MAAM,WAAW,EAClB,GACD,GACE,CACF,IAAK,cACL,MAAO,SAAqB,EAAK,GAChC,IAAI,EAAU,KAEd,OAAO,IAAI,SAAQ,SAAU,EAAS,GACrC,EAAQ,gBAAiB,EACzB,EAAQ,WAAa,EAAQ,aAAe,eAC5C,EAAQ,cAAgB,EAAQ,eAAiB,2CACjD,IAAI,EAAe,OAAO,KAAK,EAAK,EAAQ,WAAY,EAAQ,eAE3D,GACJ,EAAO,CAAE,MAAO,gCAGjB,IAAI,EAAiB,aAAY,WAC5B,EAAa,SAChB,cAAc,GACT,EAAQ,iBACZ,EAAQ,cAAe,EACvB,EAAO,CAAE,MAAO,6BAGnB,GAAG,KAEH,OAAO,WAAa,CAAC,EACrB,OAAO,WAAW,aAAe,SAAU,EAAO,EAAS,GAC1D,OAAK,GAAS,GACb,EAAQ,eAAiB,EAAQ,OAAS,KAAK,MAC/C,EAAQ,WAAW,GACnB,EAAQ,SAAS,GACV,EAAQ,KACJ,GAAS,GACpB,EAAQ,QAAQ,GACT,EAAQ,sBAAsB,GAAQ,2BAE9C,EAAQ,gBAAiB,EAClB,EAAO,GACf,CACD,GACD,GACE,CACF,IAAK,WACL,MAAO,SAAkB,GACxB,MAAM,KAAK,QAAS,GACpB,KAAK,KAAK,QAAS,EACpB,GACE,CACF,IAAK,YACL,MAAO,SAAmB,GACzB,KAAK,gBACL,MAAM,KAAK,SAAU,GACrB,KAAK,KAAK,SAAU,EACrB,GACE,CACF,IAAK,UACL,MAAO,SAAiB,GACvB,MAAM,KAAK,OAAQ,GACnB,KAAK,KAAK,OAAQ,EACnB,GACE,CACF,IAAK,cACL,MAAO,SAAqB,GAC3B,MAAM,KAAK,WAAY,GACvB,KAAK,KAAK,WAAY,EACvB,GACE,CACF,IAAK,aACL,MAAO,SAAoB,GAC1B,MAAM,KAAK,UAAW,GACtB,KAAK,KAAK,UAAW,EACtB,KAGM,CACR,CAvlBiB,GAylBjB,QAAQ,QAAU,IAAI","file":"/npm/superlogin-client@0.8.0/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/superlogin-client@0.8.0/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _axios = require('axios');\n\nvar _axios2 = _interopRequireDefault(_axios);\n\nvar _debug2 = require('debug');\n\nvar _debug3 = _interopRequireDefault(_debug2);\n\nvar _eventemitter = require('eventemitter2');\n\nvar _urlParse = require('url-parse');\n\nvar _urlParse2 = _interopRequireDefault(_urlParse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = {\n\tlog: (0, _debug3.default)('superlogin:log'),\n\tinfo: (0, _debug3.default)('superlogin:info'),\n\twarn: (0, _debug3.default)('superlogin:warn'),\n\terror: (0, _debug3.default)('superlogin:error')\n};\n\n// Capitalizes the first letter of a string\nfunction capitalizeFirstLetter(string) {\n\treturn string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction parseHostFromUrl(url) {\n\tvar parsedURL = new _urlParse2.default(url);\n\treturn parsedURL.host;\n}\n\nfunction checkEndpoint(url, endpoints) {\n\tvar host = parseHostFromUrl(url);\n\tfor (var i = 0; i < endpoints.length; i += 1) {\n\t\tif (host === endpoints[i]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\nfunction isStorageAvailable() {\n\tvar mod = '__STORAGE__';\n\ttry {\n\t\tlocalStorage.setItem(mod, mod);\n\t\tlocalStorage.removeItem(mod);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n}\n\nfunction parseError(err) {\n\t// if no connection can be established we don't have any data thus we need to forward the original error.\n\tif (err && err.response && err.response.data) {\n\t\treturn err.response.data;\n\t}\n\treturn err;\n}\n\nvar memoryStorage = {\n\tsetItem: function setItem(key, value) {\n\t\tmemoryStorage.storage.set(key, value);\n\t},\n\tgetItem: function getItem(key) {\n\t\tvar value = memoryStorage.storage.get(key);\n\t\tif (typeof value !== 'undefined') {\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t},\n\tremoveItem: function removeItem(key) {\n\t\tmemoryStorage.storage.delete(key);\n\t},\n\tstorage: new Map()\n};\n\nvar Superlogin = function (_EventEmitter) {\n\t_inherits(Superlogin, _EventEmitter);\n\n\tfunction Superlogin() {\n\t\t_classCallCheck(this, Superlogin);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Superlogin.__proto__ || Object.getPrototypeOf(Superlogin)).call(this));\n\n\t\t_this._oauthComplete = false;\n\t\t_this._config = {};\n\t\t_this._refreshInProgress = false;\n\t\t_this._http = _axios2.default.create();\n\t\treturn _this;\n\t}\n\n\t_createClass(Superlogin, [{\n\t\tkey: 'configure',\n\t\tvalue: function configure() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\t\t\tif (config.serverUrl) {\n\t\t\t\tthis._http = _axios2.default.create({\n\t\t\t\t\tbaseURL: config.serverUrl,\n\t\t\t\t\ttimeout: config.timeout\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconfig.baseUrl = config.baseUrl || '/auth';\n\t\t\tconfig.baseUrl = config.baseUrl.replace(/\\/$/, ''); // remove trailing /\n\t\t\tconfig.socialUrl = config.socialUrl || config.baseUrl;\n\t\t\tconfig.socialUrl = config.socialUrl.replace(/\\/$/, ''); // remove trailing /\n\t\t\tconfig.local = config.local || {};\n\t\t\tconfig.local.usernameField = config.local.usernameField || 'username';\n\t\t\tconfig.local.passwordField = config.local.passwordField || 'password';\n\n\t\t\tif (!config.endpoints || !(config.endpoints instanceof Array)) {\n\t\t\t\tconfig.endpoints = [];\n\t\t\t}\n\t\t\tif (!config.noDefaultEndpoint) {\n\t\t\t\tvar defaultEndpoint = window.location.host;\n\t\t\t\tif (config.serverUrl) {\n\t\t\t\t\tdefaultEndpoint = parseHostFromUrl(config.serverUrl);\n\t\t\t\t}\n\t\t\t\tconfig.endpoints.push(defaultEndpoint);\n\t\t\t}\n\t\t\tconfig.providers = config.providers || [];\n\t\t\tconfig.timeout = config.timeout || 0;\n\n\t\t\tif (!isStorageAvailable()) {\n\t\t\t\tthis.storage = memoryStorage;\n\t\t\t} else if (config.storage === 'session') {\n\t\t\t\tthis.storage = window.sessionStorage;\n\t\t\t} else {\n\t\t\t\tthis.storage = window.localStorage;\n\t\t\t}\n\n\t\t\tthis._config = config;\n\n\t\t\t// Setup the new session\n\t\t\tthis._session = JSON.parse(this.storage.getItem('superlogin.session'));\n\n\t\t\tthis._httpInterceptor();\n\n\t\t\t// Check expired\n\t\t\tif (config.checkExpired) {\n\t\t\t\tthis.checkExpired();\n\t\t\t\tthis.validateSession().then(function () {\n\t\t\t\t\t_this2._onLogin(_this2._session);\n\t\t\t\t}).catch(function () {\n\t\t\t\t\t// ignoring\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_httpInterceptor',\n\t\tvalue: function _httpInterceptor() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar request = function request(req) {\n\t\t\t\tvar config = _this3.getConfig();\n\t\t\t\tvar session = _this3.getSession();\n\t\t\t\tif (!session || !session.token) {\n\t\t\t\t\treturn Promise.resolve(req);\n\t\t\t\t}\n\n\t\t\t\tif (req.skipRefresh) {\n\t\t\t\t\treturn Promise.resolve(req);\n\t\t\t\t}\n\n\t\t\t\treturn _this3.checkRefresh().then(function () {\n\t\t\t\t\tif (checkEndpoint(req.url, config.endpoints)) {\n\t\t\t\t\t\treq.headers.Authorization = 'Bearer ' + session.token + ':' + session.password;\n\t\t\t\t\t}\n\t\t\t\t\treturn req;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tvar responseError = function responseError(error) {\n\t\t\t\tvar config = _this3.getConfig();\n\n\t\t\t\t// if there is not config obj in in the error it means we cannot check the endpoints.\n\t\t\t\t// This happens for example if there is no connection at all because axion just forwards the raw error.\n\t\t\t\tif (!error || !error.config) {\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\n\t\t\t\t// If there is an unauthorized error from one of our endpoints and we are logged in...\n\t\t\t\tif (checkEndpoint(error.config.url, config.endpoints) && error.response && error.response.status === 401 && _this3.authenticated()) {\n\t\t\t\t\tdebug.warn('Not authorized');\n\t\t\t\t\t_this3._onLogout('Session expired');\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(error);\n\t\t\t};\n\t\t\t// clear interceptors from a previous configure call\n\t\t\tthis._http.interceptors.request.eject(this._httpRequestInterceptor);\n\t\t\tthis._http.interceptors.response.eject(this._httpResponseInterceptor);\n\n\t\t\tthis._httpRequestInterceptor = this._http.interceptors.request.use(request.bind(this));\n\t\t\tthis._httpResponseInterceptor = this._http.interceptors.response.use(null, responseError.bind(this));\n\t\t}\n\t}, {\n\t\tkey: 'authenticated',\n\t\tvalue: function authenticated() {\n\t\t\treturn !!(this._session && this._session.user_id);\n\t\t}\n\t}, {\n\t\tkey: 'getConfig',\n\t\tvalue: function getConfig() {\n\t\t\treturn this._config;\n\t\t}\n\t}, {\n\t\tkey: 'validateSession',\n\t\tvalue: function validateSession() {\n\t\t\tvar _this4 = this;\n\n\t\t\tif (!this.authenticated()) {\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\t\t\treturn this._http.get(this._config.baseUrl + '/session').catch(function (err) {\n\t\t\t\t_this4._onLogout('Session expired');\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getSession',\n\t\tvalue: function getSession() {\n\t\t\tif (!this._session) {\n\t\t\t\tthis._session = JSON.parse(this.storage.getItem('superlogin.session'));\n\t\t\t}\n\t\t\treturn this._session ? Object.assign(this._session) : null;\n\t\t}\n\t}, {\n\t\tkey: 'setSession',\n\t\tvalue: function setSession(session) {\n\t\t\tthis._session = session;\n\t\t\tthis.storage.setItem('superlogin.session', JSON.stringify(this._session));\n\t\t\tdebug.info('New session set');\n\t\t}\n\t}, {\n\t\tkey: 'deleteSession',\n\t\tvalue: function deleteSession() {\n\t\t\tthis.storage.removeItem('superlogin.session');\n\t\t\tthis._session = null;\n\t\t}\n\t}, {\n\t\tkey: 'getDbUrl',\n\t\tvalue: function getDbUrl(dbName) {\n\t\t\tif (this._session.userDBs && this._session.userDBs[dbName]) {\n\t\t\t\treturn this._session.userDBs[dbName];\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}, {\n\t\tkey: 'getHttp',\n\t\tvalue: function getHttp() {\n\t\t\treturn this._http;\n\t\t}\n\t}, {\n\t\tkey: 'confirmRole',\n\t\tvalue: function confirmRole(role) {\n\t\t\tif (!this._session || !this._session.roles || !this._session.roles.length) return false;\n\t\t\treturn this._session.roles.indexOf(role) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'confirmAnyRole',\n\t\tvalue: function confirmAnyRole(roles) {\n\t\t\tif (!this._session || !this._session.roles || !this._session.roles.length) return false;\n\t\t\tfor (var i = 0; i < roles.length; i += 1) {\n\t\t\t\tif (this._session.roles.indexOf(roles[i]) !== -1) return true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, {\n\t\tkey: 'confirmAllRoles',\n\t\tvalue: function confirmAllRoles(roles) {\n\t\t\tif (!this._session || !this._session.roles || !this._session.roles.length) return false;\n\t\t\tfor (var i = 0; i < roles.length; i += 1) {\n\t\t\t\tif (this._session.roles.indexOf(roles[i]) === -1) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t}, {\n\t\tkey: 'checkRefresh',\n\t\tvalue: function checkRefresh() {\n\t\t\t// Get out if we are not authenticated or a refresh is already in progress\n\t\t\tif (this._refreshInProgress) {\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\t\t\tif (!this._session || !this._session.user_id) {\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\t\t\t// try getting the latest refresh date, if not available fall back to issued date\n\t\t\tvar refreshed = this._session.refreshed || this._session.issued;\n\t\t\tvar expires = this._session.expires;\n\t\t\tvar threshold = isNaN(this._config.refreshThreshold) ? 0.5 : this._config.refreshThreshold;\n\t\t\tvar duration = expires - refreshed;\n\t\t\tvar timeDiff = this._session.serverTimeDiff || 0;\n\t\t\tif (Math.abs(timeDiff) < 5000) {\n\t\t\t\ttimeDiff = 0;\n\t\t\t}\n\t\t\tvar estimatedServerTime = Date.now() + timeDiff;\n\t\t\tvar elapsed = estimatedServerTime - refreshed;\n\t\t\tvar ratio = elapsed / duration;\n\t\t\tif (ratio > threshold) {\n\t\t\t\tdebug.info('Refreshing session');\n\t\t\t\treturn this.refresh().then(function (session) {\n\t\t\t\t\tdebug.log('Refreshing session sucess', session);\n\t\t\t\t\treturn session;\n\t\t\t\t}).catch(function (err) {\n\t\t\t\t\tdebug.error('Refreshing session failed', err);\n\t\t\t\t\tthrow err;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\t}, {\n\t\tkey: 'checkExpired',\n\t\tvalue: function checkExpired() {\n\t\t\t// This is not necessary if we are not authenticated\n\t\t\tif (!this.authenticated()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar expires = this._session.expires;\n\t\t\tvar timeDiff = this._session.serverTimeDiff || 0;\n\t\t\t// Only compensate for time difference if it is greater than 5 seconds\n\t\t\tif (Math.abs(timeDiff) < 5000) {\n\t\t\t\ttimeDiff = 0;\n\t\t\t}\n\t\t\tvar estimatedServerTime = Date.now() + timeDiff;\n\t\t\tif (estimatedServerTime > expires) {\n\t\t\t\tthis._onLogout('Session expired');\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'refresh',\n\t\tvalue: function refresh() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar session = this.getSession();\n\t\t\tthis._refreshInProgress = true;\n\t\t\treturn this._http.post(this._config.baseUrl + '/refresh', {}).then(function (res) {\n\t\t\t\t_this5._refreshInProgress = false;\n\t\t\t\tif (res.data.token && res.data.expires) {\n\t\t\t\t\tObject.assign(session, res.data);\n\t\t\t\t\t_this5.setSession(session);\n\t\t\t\t\t_this5._onRefresh(session);\n\t\t\t\t}\n\t\t\t\treturn session;\n\t\t\t}).catch(function (err) {\n\t\t\t\t_this5._refreshInProgress = false;\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'authenticate',\n\t\tvalue: function authenticate() {\n\t\t\tvar _this6 = this;\n\n\t\t\treturn new Promise(function (resolve) {\n\t\t\t\tvar session = _this6.getSession();\n\t\t\t\tif (session) {\n\t\t\t\t\tresolve(session);\n\t\t\t\t} else {\n\t\t\t\t\t_this6.on('login', function (newSession) {\n\t\t\t\t\t\tresolve(newSession);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'login',\n\t\tvalue: function login(credentials) {\n\t\t\tvar _this7 = this;\n\n\t\t\tvar _config$local = this._config.local,\n\t\t\t    usernameField = _config$local.usernameField,\n\t\t\t    passwordField = _config$local.passwordField;\n\n\t\t\tif (!credentials[usernameField] || !credentials[passwordField]) {\n\t\t\t\treturn Promise.reject({ error: 'Username or Password missing...' });\n\t\t\t}\n\t\t\treturn this._http.post(this._config.baseUrl + '/login', credentials, { skipRefresh: true }).then(function (res) {\n\t\t\t\tres.data.serverTimeDiff = res.data.issued - Date.now();\n\t\t\t\t_this7.setSession(res.data);\n\t\t\t\t_this7._onLogin(res.data);\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\t_this7.deleteSession();\n\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'register',\n\t\tvalue: function register(registration) {\n\t\t\tvar _this8 = this;\n\n\t\t\treturn this._http.post(this._config.baseUrl + '/register', registration, { skipRefresh: true }).then(function (res) {\n\t\t\t\tif (res.data.user_id && res.data.token) {\n\t\t\t\t\tres.data.serverTimeDiff = res.data.issued - Date.now();\n\t\t\t\t\t_this8.setSession(res.data);\n\t\t\t\t\t_this8._onLogin(res.data);\n\t\t\t\t}\n\t\t\t\t_this8._onRegister(registration);\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'logout',\n\t\tvalue: function logout(msg) {\n\t\t\tvar _this9 = this;\n\n\t\t\treturn this._http.post(this._config.baseUrl + '/logout', {}).then(function (res) {\n\t\t\t\t_this9._onLogout(msg || 'Logged out');\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\t_this9._onLogout(msg || 'Logged out');\n\t\t\t\tif (!err.response || err.response.data.status !== 401) {\n\t\t\t\t\tthrow parseError(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'logoutAll',\n\t\tvalue: function logoutAll(msg) {\n\t\t\tvar _this10 = this;\n\n\t\t\treturn this._http.post(this._config.baseUrl + '/logout-all', {}).then(function (res) {\n\t\t\t\t_this10._onLogout(msg || 'Logged out');\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\t_this10._onLogout(msg || 'Logged out');\n\t\t\t\tif (!err.response || err.response.data.status !== 401) {\n\t\t\t\t\tthrow parseError(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'logoutOthers',\n\t\tvalue: function logoutOthers() {\n\t\t\treturn this._http.post(this._config.baseUrl + '/logout-others', {}).then(function (res) {\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'socialAuth',\n\t\tvalue: function socialAuth(provider) {\n\t\t\tvar providers = this._config.providers;\n\t\t\tif (providers.indexOf(provider) === -1) {\n\t\t\t\treturn Promise.reject({ error: 'Provider ' + provider + ' not supported.' });\n\t\t\t}\n\t\t\tvar url = this._config.socialUrl + '/' + provider;\n\t\t\treturn this._oAuthPopup(url, { windowTitle: 'Login with ' + capitalizeFirstLetter(provider) });\n\t\t}\n\t}, {\n\t\tkey: 'tokenSocialAuth',\n\t\tvalue: function tokenSocialAuth(provider, accessToken) {\n\t\t\tvar _this11 = this;\n\n\t\t\tvar providers = this._config.providers;\n\t\t\tif (providers.indexOf(provider) === -1) {\n\t\t\t\treturn Promise.reject({ error: 'Provider ' + provider + ' not supported.' });\n\t\t\t}\n\t\t\treturn this._http.post(this._config.baseUrl + '/' + provider + '/token', { access_token: accessToken }).then(function (res) {\n\t\t\t\tif (res.data.user_id && res.data.token) {\n\t\t\t\t\tres.data.serverTimeDiff = res.data.issued - Date.now();\n\t\t\t\t\t_this11.setSession(res.data);\n\t\t\t\t\t_this11._onLogin(res.data);\n\t\t\t\t}\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'tokenLink',\n\t\tvalue: function tokenLink(provider, accessToken) {\n\t\t\tvar providers = this._config.providers;\n\t\t\tif (providers.indexOf(provider) === -1) {\n\t\t\t\treturn Promise.reject({ error: 'Provider ' + provider + ' not supported.' });\n\t\t\t}\n\t\t\tvar linkURL = this._config.baseUrl + '/link/' + provider + '/token';\n\t\t\treturn this._http.post(linkURL, { access_token: accessToken }).then(function (res) {\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'link',\n\t\tvalue: function link(provider) {\n\t\t\tvar providers = this._config.providers;\n\t\t\tif (providers.indexOf(provider) === -1) {\n\t\t\t\treturn Promise.reject({ error: 'Provider ' + provider + ' not supported.' });\n\t\t\t}\n\t\t\tif (this.authenticated()) {\n\t\t\t\tvar session = this.getSession();\n\t\t\t\tvar token = 'bearer_token=' + session.token + ':' + session.password;\n\t\t\t\tvar linkURL = this._config.socialUrl + '/link/' + provider + '?' + token;\n\t\t\t\tvar windowTitle = 'Link your account to ' + capitalizeFirstLetter(provider);\n\t\t\t\treturn this._oAuthPopup(linkURL, { windowTitle: windowTitle });\n\t\t\t}\n\t\t\treturn Promise.reject({ error: 'Authentication required' });\n\t\t}\n\t}, {\n\t\tkey: 'unlink',\n\t\tvalue: function unlink(provider) {\n\t\t\tvar providers = this._config.providers;\n\t\t\tif (providers.indexOf(provider) === -1) {\n\t\t\t\treturn Promise.reject({ error: 'Provider ' + provider + ' not supported.' });\n\t\t\t}\n\t\t\tif (this.authenticated()) {\n\t\t\t\treturn this._http.post(this._config.baseUrl + '/unlink/' + provider).then(function (res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t}).catch(function (err) {\n\t\t\t\t\tthrow parseError(err);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.reject({ error: 'Authentication required' });\n\t\t}\n\t}, {\n\t\tkey: 'confirmEmail',\n\t\tvalue: function confirmEmail(token) {\n\t\t\tif (!token || typeof token !== 'string') {\n\t\t\t\treturn Promise.reject({ error: 'Invalid token' });\n\t\t\t}\n\t\t\treturn this._http.get(this._config.baseUrl + '/confirm-email/' + token).then(function (res) {\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'forgotPassword',\n\t\tvalue: function forgotPassword(email) {\n\t\t\treturn this._http.post(this._config.baseUrl + '/forgot-password', { email: email }, { skipRefresh: true }).then(function (res) {\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'resetPassword',\n\t\tvalue: function resetPassword(form) {\n\t\t\tvar _this12 = this;\n\n\t\t\treturn this._http.post(this._config.baseUrl + '/password-reset', form, { skipRefresh: true }).then(function (res) {\n\t\t\t\tif (res.data.user_id && res.data.token) {\n\t\t\t\t\t_this12.setSession(res.data);\n\t\t\t\t\t_this12._onLogin(res.data);\n\t\t\t\t}\n\t\t\t\treturn res.data;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'changePassword',\n\t\tvalue: function changePassword(form) {\n\t\t\tif (this.authenticated()) {\n\t\t\t\treturn this._http.post(this._config.baseUrl + '/password-change', form).then(function (res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t}).catch(function (err) {\n\t\t\t\t\tthrow parseError(err);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.reject({ error: 'Authentication required' });\n\t\t}\n\t}, {\n\t\tkey: 'changeEmail',\n\t\tvalue: function changeEmail(newEmail) {\n\t\t\tif (this.authenticated()) {\n\t\t\t\treturn this._http.post(this._config.baseUrl + '/change-email', { newEmail: newEmail }).then(function (res) {\n\t\t\t\t\treturn res.data;\n\t\t\t\t}).catch(function (err) {\n\t\t\t\t\tthrow parseError(err);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.reject({ error: 'Authentication required' });\n\t\t}\n\t}, {\n\t\tkey: 'validateUsername',\n\t\tvalue: function validateUsername(username) {\n\t\t\treturn this._http.get(this._config.baseUrl + '/validate-username/' + encodeURIComponent(username)).then(function () {\n\t\t\t\treturn true;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'validateEmail',\n\t\tvalue: function validateEmail(email) {\n\t\t\treturn this._http.get(this._config.baseUrl + '/validate-email/' + encodeURIComponent(email)).then(function () {\n\t\t\t\treturn true;\n\t\t\t}).catch(function (err) {\n\t\t\t\tthrow parseError(err);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_oAuthPopup',\n\t\tvalue: function _oAuthPopup(url, options) {\n\t\t\tvar _this13 = this;\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t_this13._oauthComplete = false;\n\t\t\t\toptions.windowName = options.windowTitle || 'Social Login';\n\t\t\t\toptions.windowOptions = options.windowOptions || 'location=0,status=0,width=800,height=600';\n\t\t\t\tvar _oauthWindow = window.open(url, options.windowName, options.windowOptions);\n\n\t\t\t\tif (!_oauthWindow) {\n\t\t\t\t\treject({ error: 'Authorization popup blocked' });\n\t\t\t\t}\n\n\t\t\t\tvar _oauthInterval = setInterval(function () {\n\t\t\t\t\tif (_oauthWindow.closed) {\n\t\t\t\t\t\tclearInterval(_oauthInterval);\n\t\t\t\t\t\tif (!_this13._oauthComplete) {\n\t\t\t\t\t\t\t_this13.authComplete = true;\n\t\t\t\t\t\t\treject({ error: 'Authorization cancelled' });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\n\t\t\t\twindow.superlogin = {};\n\t\t\t\twindow.superlogin.oauthSession = function (error, session, link) {\n\t\t\t\t\tif (!error && session) {\n\t\t\t\t\t\tsession.serverTimeDiff = session.issued - Date.now();\n\t\t\t\t\t\t_this13.setSession(session);\n\t\t\t\t\t\t_this13._onLogin(session);\n\t\t\t\t\t\treturn resolve(session);\n\t\t\t\t\t} else if (!error && link) {\n\t\t\t\t\t\t_this13._onLink(link);\n\t\t\t\t\t\treturn resolve(capitalizeFirstLetter(link) + ' successfully linked.');\n\t\t\t\t\t}\n\t\t\t\t\t_this13._oauthComplete = true;\n\t\t\t\t\treturn reject(error);\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_onLogin',\n\t\tvalue: function _onLogin(msg) {\n\t\t\tdebug.info('Login', msg);\n\t\t\tthis.emit('login', msg);\n\t\t}\n\t}, {\n\t\tkey: '_onLogout',\n\t\tvalue: function _onLogout(msg) {\n\t\t\tthis.deleteSession();\n\t\t\tdebug.info('Logout', msg);\n\t\t\tthis.emit('logout', msg);\n\t\t}\n\t}, {\n\t\tkey: '_onLink',\n\t\tvalue: function _onLink(msg) {\n\t\t\tdebug.info('Link', msg);\n\t\t\tthis.emit('link', msg);\n\t\t}\n\t}, {\n\t\tkey: '_onRegister',\n\t\tvalue: function _onRegister(msg) {\n\t\t\tdebug.info('Register', msg);\n\t\t\tthis.emit('register', msg);\n\t\t}\n\t}, {\n\t\tkey: '_onRefresh',\n\t\tvalue: function _onRefresh(msg) {\n\t\t\tdebug.info('Refresh', msg);\n\t\t\tthis.emit('refresh', msg);\n\t\t}\n\t}]);\n\n\treturn Superlogin;\n}(_eventemitter.EventEmitter2);\n\nexports.default = new Superlogin();"]}