!function webpackUniversalModuleDefinition(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(global,function(){return function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}return __webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=29)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,o,i,s={debug:function(){},info:function(){},warn:function(){},error:function(){}};!function(e){e[e.NONE=0]="NONE",e[e.ERROR=1]="ERROR",e[e.WARN=2]="WARN",e[e.INFO=3]="INFO",e[e.DEBUG=4]="DEBUG"}(n=t.LogLevel||(t.LogLevel={}));var a=function(){function Log(){}return Object.defineProperty(Log,"NONE",{get:function(){return n.NONE},enumerable:!0,configurable:!0}),Object.defineProperty(Log,"ERROR",{get:function(){return n.ERROR},enumerable:!0,configurable:!0}),Object.defineProperty(Log,"WARN",{get:function(){return n.WARN},enumerable:!0,configurable:!0}),Object.defineProperty(Log,"INFO",{get:function(){return n.INFO},enumerable:!0,configurable:!0}),Object.defineProperty(Log,"DEBUG",{get:function(){return n.DEBUG},enumerable:!0,configurable:!0}),Log.reset=function(){i=n.INFO,o=s},Object.defineProperty(Log,"level",{get:function(){return i},set:function(e){if(!(n.NONE<=e&&e<=n.DEBUG))throw new Error("Invalid log level");i=e},enumerable:!0,configurable:!0}),Object.defineProperty(Log,"logger",{get:function(){return o},set:function(e){if(!e.debug&&e.info&&(e.debug=e.info),!(e.debug&&e.info&&e.warn&&e.error))throw new Error("Invalid logger");o=e},enumerable:!0,configurable:!0}),Log.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i>=n.DEBUG&&o.debug.apply(o,Array.from(e))},Log.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i>=n.INFO&&o.info.apply(o,Array.from(e))},Log.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i>=n.WARN&&o.warn.apply(o,Array.from(e))},Log.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i>=n.ERROR&&o.error.apply(o,Array.from(e))},Log}();t.Log=a,a.reset()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(17),i=function(){function MetadataService(e){if(!e)throw n.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new o.JsonService(["application/jwk-set+json"])}return Object.defineProperty(MetadataService.prototype,"metadataUrl",{get:function(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(".well-known/openid-configuration")<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=".well-known/openid-configuration"))),this._metadataUrl},enumerable:!0,configurable:!0}),MetadataService.prototype.getMetadata=function(){var e=this;return this._settings.metadata?(n.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(n.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then(function(t){return n.Log.debug("MetadataService.getMetadata: json received"),e._settings.metadata=t,t})):(n.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},MetadataService.prototype.getIssuer=function(){return this._getMetadataProperty("issuer")},MetadataService.prototype.getAuthorizationEndpoint=function(){return this._getMetadataProperty("authorization_endpoint")},MetadataService.prototype.getUserInfoEndpoint=function(){return this._getMetadataProperty("userinfo_endpoint")},MetadataService.prototype.getTokenEndpoint=function(){return this._getMetadataProperty("token_endpoint",!0)},MetadataService.prototype.getCheckSessionIframe=function(){return this._getMetadataProperty("check_session_iframe",!0)},MetadataService.prototype.getEndSessionEndpoint=function(){return this._getMetadataProperty("end_session_endpoint",!0)},MetadataService.prototype.getRevocationEndpoint=function(){return this._getMetadataProperty("revocation_endpoint",!0)},MetadataService.prototype.getSigningKeys=function(){var e=this;return this._settings.signingKeys?(n.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then(function(t){return n.Log.debug("MetadataService.getSigningKeys: jwks_uri received",t),e._jsonService.getJson(t).then(function(t){if(n.Log.debug("MetadataService.getSigningKeys: key set received",t),!t.keys)throw n.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return e._settings.signingKeys=t.keys,e._settings.signingKeys})})},MetadataService.prototype._getMetadataProperty=function(e,t){return void 0===t&&(t=!1),n.Log.debug("MetadataService.getMetadataProperty for: "+e),this.getMetadata().then(function(r){if(n.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===r[e]){if(!0===t)return void n.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+e);throw n.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+e),new Error("Metadata does not contain property "+e)}return r[e]})},MetadataService}();t.MetadataService=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3),o=r(0),i=function(){function UrlUtility(){}return UrlUtility.addQueryParam=function(e,t,r){return e.indexOf("?")<0&&(e+="?"),"?"!==e[e.length-1]&&(e+="&"),e+=encodeURIComponent(t),e+="=",e+=encodeURIComponent(r)},UrlUtility.parseUrlFragment=function(e,t){void 0===t&&(t="#"),"string"!=typeof e&&(e=n.Global.location?n.Global.location.href:"/");var r=e.lastIndexOf(t);r>=0&&(e=e.substr(r+1));for(var i,s={},a=/([^&=]+)=([^&]*)/g,u=0;i=a.exec(e);)if(s[decodeURIComponent(i[1])]=decodeURIComponent(i[2]),u++>50)return o.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",e),{error:"Response exceeded expected number of parameters"};return s},UrlUtility}();t.UrlUtility=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(12),o=r(10),i=function(){function Global(){}return Object.defineProperty(Global,"location",{get:function(){return location},enumerable:!0,configurable:!0}),Object.defineProperty(Global,"localStorage",{get:function(){return"undefined"!=typeof window?localStorage:new n.InMemoryWebStorage},enumerable:!0,configurable:!0}),Object.defineProperty(Global,"sessionStorage",{get:function(){return"undefined"!=typeof window?sessionStorage:new n.InMemoryWebStorage},enumerable:!0,configurable:!0}),Object.defineProperty(Global,"timer",{get:function(){return o.ITimerDefault},enumerable:!0,configurable:!0}),Global}();t.Global=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(15),o=r(1),i=r(0),s=r(5);t.OidcMetadataUrlPath=".well-known/openid-configuration",t.DefaultResponseType="id_token",t.DefaultScope="openid",t.DefaultStaleStateAge=900,t.DefaultClockSkewInSeconds=300;var a={clockSkew:t.DefaultClockSkewInSeconds,extraQueryParams:{},filterProtocolClaims:!0,loadUserInfo:!0,response_type:t.DefaultResponseType,scope:t.DefaultScope,staleStateAge:t.DefaultStaleStateAge,stateStore:new s.WebStorageStateStore},u=function(){function OidcClientSettings(e){void 0===e&&(e=a),this._authority=e.authority||a.authority,this._metadataUrl=e.metadataUrl||a.metadataUrl,this._metadata=e.metadata||a.metadata,this._signingKeys=e.signingKeys||a.signingKeys,this._client_id=e.client_id||a.client_id,this._client_secret=e.client_secret||a.client_secret,this._response_type=e.response_type||a.response_type,this._scope=e.scope||a.scope,this._redirect_uri=e.redirect_uri||a.redirect_uri,this._post_logout_redirect_uri=e.post_logout_redirect_uri||a.post_logout_redirect_uri,this._prompt=e.prompt||a.prompt,this._display=e.display||a.display,this._max_age=e.max_age||a.max_age,this._ui_locales=e.ui_locales||a.ui_locales,this._acr_values=e.acr_values||a.acr_values,this._resource=e.resource||a.resource,this._filterProtocolClaims=!(!e.filterProtocolClaims&&!a.filterProtocolClaims),this._loadUserInfo=!(!e.loadUserInfo&&!a.loadUserInfo),this._staleStateAge=e.staleStateAge||a.staleStateAge,this._clockSkew=e.clockSkew||a.clockSkew,this._stateStore=e.stateStore||a.stateStore,this._validator=new n.ResponseValidator(this),this._metadataService=new o.MetadataService(this),this._extraQueryParams="object"==typeof e.extraQueryParams?e.extraQueryParams:{}}return Object.defineProperty(OidcClientSettings.prototype,"client_id",{get:function(){return this._client_id},set:function(e){if(this._client_id)throw i.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=e},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"client_secret",{get:function(){return this._client_secret},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"response_type",{get:function(){return this._response_type},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"scope",{get:function(){return this._scope},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"redirect_uri",{get:function(){return this._redirect_uri},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"post_logout_redirect_uri",{get:function(){return this._post_logout_redirect_uri},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"prompt",{get:function(){return this._prompt},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"display",{get:function(){return this._display},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"max_age",{get:function(){return this._max_age},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"ui_locales",{get:function(){return this._ui_locales},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"acr_values",{get:function(){return this._acr_values},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"resource",{get:function(){return this._resource},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"authority",{get:function(){return this._authority},set:function(e){if(this._authority)throw i.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=e},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"metadataUrl",{get:function(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(t.OidcMetadataUrlPath)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=t.OidcMetadataUrlPath)),this._metadataUrl},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"metadata",{get:function(){return this._metadata},set:function(e){this._metadata=e},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"signingKeys",{get:function(){return this._signingKeys},set:function(e){this._signingKeys=e},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"filterProtocolClaims",{get:function(){return this._filterProtocolClaims},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"loadUserInfo",{get:function(){return this._loadUserInfo},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"staleStateAge",{get:function(){return this._staleStateAge},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"clockSkew",{get:function(){return this._clockSkew},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"stateStore",{get:function(){return this._stateStore},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"validator",{get:function(){return this._validator},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"metadataService",{get:function(){return this._metadataService},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClientSettings.prototype,"extraQueryParams",{get:function(){return this._extraQueryParams},set:function(e){this._extraQueryParams="object"==typeof e?e:{}},enumerable:!0,configurable:!0}),OidcClientSettings}();t.OidcClientSettings=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(19),o=r(0),i=function(){function WebStorageStateStore(e){void 0===e&&(e=n.IStateStoreSettingsLocalDefault),this._prefix=e.prefix,this._store=e.store}return WebStorageStateStore.prototype.set=function(e,t){return o.Log.debug("WebStorageStateStore.set",e),e=this._prefix+e,this._store.setItem(e,t),Promise.resolve()},WebStorageStateStore.prototype.get=function(e){o.Log.debug("WebStorageStateStore.get",e),e=this._prefix+e;var t=this._store.getItem(e);return Promise.resolve(t)},WebStorageStateStore.prototype.remove=function(e){o.Log.debug("WebStorageStateStore.remove",e),e=this._prefix+e;var t=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(t)},WebStorageStateStore.prototype.getAllKeys=function(){o.Log.debug("WebStorageStateStore.getAllKeys");for(var e=[],t=0;t<this._store.length;t++){var r=this._store.key(t);r&&0===r.indexOf(this._prefix)&&e.push(r.substr(this._prefix.length))}return Promise.resolve(e)},WebStorageStateStore}();t.WebStorageStateStore=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(7),i=function(){function State(e){var t=e.id,r=e.data,n=e.created;this._id=t||o.default(),this._data=r,this._created="number"==typeof n&&n>0?n:Math.round(Date.now()/1e3)}return State.fromStorageString=function(e){return n.Log.debug("State.fromStorageString"),new State(JSON.parse(e))},State.clearStaleState=function(e,t){var r=Date.now()/1e3-t;return e.getAllKeys().then(function(t){n.Log.debug("State.clearStaleState: got keys",t);for(var o=[],i=function(t){var i=e.get(t).then(function(o){var i=!1;if(o)try{var s=State.fromStorageString(o);n.Log.debug("State.clearStaleState: got item from key: ",t,s.created),s.created<=r&&(i=!0)}catch(e){n.Log.error("State.clearStaleState: Error parsing state for key",t,e.message),i=!0}else n.Log.debug("State.clearStaleState: no item in storage for key: ",t),i=!0;if(i)return n.Log.debug("State.clearStaleState: removed item for key: ",t),e.remove(t)});o.push(i)},s=0,a=t;s<a.length;s++){i(a[s])}return n.Log.debug("State.clearStaleState: waiting on promise count:",o.length),Promise.all(o)})},Object.defineProperty(State.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(State.prototype,"data",{get:function(){return this._data},enumerable:!0,configurable:!0}),Object.defineProperty(State.prototype,"created",{get:function(){return this._created},enumerable:!0,configurable:!0}),State.prototype.toStorageString=function(){return n.Log.debug("State.toStorageString"),JSON.stringify({created:this.created,data:this.data,id:this.id})},State}();t.State=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function random(){for(var e="xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx",t="0123456789abcdef",r=0,n="",o=0;o<e.length;o++)"-"!==e[o]&&"4"!==e[o]&&(r=16*Math.random()|0),"x"===e[o]?n+=t[r]:"y"===e[o]?(r&=3,n+=t[r|=8]):n+=e[o];return n}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=2e3,i=function(){function CheckSessionIFrame(e,t,r,n,i){void 0===i&&(i=!0),this._callback=e,this._client_id=t,this._url=r,this._interval=n||o,this._stopOnError=i;var s=r.indexOf("/",r.indexOf("//")+2);this._frame_origin=r.substr(0,s),this._frame=document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.style.width=0,this._frame.style.height=0,this._frame.src=r}return CheckSessionIFrame.prototype.load=function(){var e=this;return new Promise(function(t){e._frame.onload=function(){t()},document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),addEventListener("message",e._boundMessageEvent,!1)})},CheckSessionIFrame.prototype.start=function(e){this._session_state!==e&&(n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=e,this._frame.contentWindow.postMessage(this._client_id+" "+this._session_state,this._frame_origin),this._timer=setInterval(this._frame.contentWindow.postMessage(this._client_id+" "+this._session_state,this._frame_origin),this._interval))},CheckSessionIFrame.prototype.stop=function(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),clearInterval(this._timer),delete this._timer)},CheckSessionIFrame.prototype._message=function(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&("error"===e.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===e.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+e.data+" message from check session op iframe"))},CheckSessionIFrame}();t.CheckSessionIFrame=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(10),o=r(0),i={accessTokenExpiredTimer:new n.Timer("Access token expired"),accessTokenExpiringNotificationTime:60,accessTokenExpiringTimer:new n.Timer("Access token expiring")},s=function(){function AccessTokenEvents(e){void 0===e&&(e=i);var t=e.accessTokenExpiringNotificationTime,r=e.accessTokenExpiringTimer,n=e.accessTokenExpiredTimer;t&&r&&n||(t=i.accessTokenExpiringNotificationTime,r=i.accessTokenExpiringTimer,n=i.accessTokenExpiredTimer),this._accessTokenExpiringNotificationTime=t,this._accessTokenExpiring=r,this._accessTokenExpired=n}return AccessTokenEvents.prototype.load=function(e){if(e.access_token&&void 0!==e.expires_in){var t=e.expires_in;if(o.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",t),t>0){var r=t-this._accessTokenExpiringNotificationTime;r<=0&&(r=1),o.Log.debug("AccessTokenEvents.load: registering expiring timer in:",r),this._accessTokenExpiring.init(r)}else o.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var n=t+1;o.Log.debug("AccessTokenEvents.load: registering expired timer in:",n),this._accessTokenExpired.init(n)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},AccessTokenEvents.prototype.unload=function(){o.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},AccessTokenEvents.prototype.addAccessTokenExpiring=function(e){this._accessTokenExpiring.addHandler(e)},AccessTokenEvents.prototype.removeAccessTokenExpiring=function(e){this._accessTokenExpiring.removeHandler(e)},AccessTokenEvents.prototype.addAccessTokenExpired=function(e){this._accessTokenExpired.addHandler(e)},AccessTokenEvents.prototype.removeAccessTokenExpired=function(e){this._accessTokenExpired.removeHandler(e)},AccessTokenEvents}();t.AccessTokenEvents=s},function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function __(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=r(11),i=r(0);t.ITimerDefault={clearInterval:function(e){return clearInterval(e)},setInterval:function(e,t){return setInterval(e,t)}};var s=function(e){function Timer(r,n,o){void 0===n&&(n=t.ITimerDefault),void 0===o&&(o=function(){return Date.now()/1e3});var i=e.call(this,r)||this;return i._expiration=-1,i._timer=n,i._timerHandle=null,o&&(i._nowFunc=o),i}return n(Timer,e),Object.defineProperty(Timer.prototype,"now",{get:function(){return this._nowFunc?Math.floor(this._nowFunc()):-1},enumerable:!0,configurable:!0}),Object.defineProperty(Timer.prototype,"expiration",{get:function(){return this._expiration},enumerable:!0,configurable:!0}),Timer.prototype.init=function(e){e<=0&&(e=1),e=Math.floor(e);var t=this.now+e;if(this.expiration===t&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",e),this._expiration=t;var r=5;e<r&&(r=e),this._timerHandle=this._timer?this._timer.setInterval(this._callback.bind(this),1e3*r):null}},Timer.prototype.cancel=function(){this._timerHandle&&(i.Log.debug("Timer.cancel: ",this._name),this._timer.clearInterval(this._timerHandle),this._timerHandle=null)},Timer.prototype._callback=function(){var t=this._expiration-this.now;i.Log.debug("Timer.callback; "+this._name+" timer expires in:",t),this._expiration<=this.now&&(this.cancel(),e.prototype.raise.call(this))},Timer}(o.Event);t.Timer=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=function(){function Event(e){this._name=e,this._callbacks=[]}return Event.prototype.addHandler=function(e){this._callbacks.push(e)},Event.prototype.removeHandler=function(e){var t=this._callbacks.findIndex(function(t){return t===e});t>=0&&this._callbacks.splice(t,1)},Event.prototype.raise=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];n.Log.debug("Event: Raising event: "+this._name);for(var r=0,o=this._callbacks;r<o.length;r++){o[r].apply(void 0,e)}},Event}();t.Event=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=function(){function InMemoryWebStorage(){this._dict=new Map}return InMemoryWebStorage.prototype.clear=function(){this._dict.clear()},InMemoryWebStorage.prototype.getItem=function(e){return n.Log.debug("InMemoryWebStorage.getItem",e),this._dict[e]},InMemoryWebStorage.prototype.setItem=function(e,t){n.Log.debug("InMemoryWebStorage.setItem",e),this._dict[e]=t},InMemoryWebStorage.prototype.removeItem=function(e){n.Log.debug("InMemoryWebStorage.removeItem",e),delete this._dict[e]},Object.defineProperty(InMemoryWebStorage.prototype,"length",{get:function(){return this._dict.size},enumerable:!0,configurable:!0}),InMemoryWebStorage.prototype.key=function(e){return this._dict.keys()[e]},InMemoryWebStorage}();t.InMemoryWebStorage=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(14),o=r(15),i=r(1),s=r(4),a=r(20),u=r(21),c=r(23),g=r(22),p=r(24),d=r(25),l=r(6),_=r(0),f=function(){function TestTwo(e,t){this.testType=e,this.settings=t}return TestTwo.prototype.getNew=function(){return new this.testType(this.settings)},TestTwo}(),h=function(){function OidcClient(e){e instanceof s.OidcClientSettings||e instanceof a.UserManagerSettings?this._settings=e:this._settings=new f(a.UserManagerSettings,e).getNew()}return Object.defineProperty(OidcClient.prototype,"_stateStore",{get:function(){return this.settings.stateStore},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClient.prototype,"_validator",{get:function(){return this.settings.validator?this.settings.validator:new o.ResponseValidator(this.settings)},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClient.prototype,"_metadataService",{get:function(){return this.settings.metadataService?this.settings.metadataService:new i.MetadataService(this.settings)},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClient.prototype,"settings",{get:function(){return this._settings},enumerable:!0,configurable:!0}),Object.defineProperty(OidcClient.prototype,"metadataService",{get:function(){return this._metadataService},enumerable:!0,configurable:!0}),OidcClient.prototype.createSigninRequest=function(e,t){var r=this;void 0===e&&(e={}),console.log("createSigninRequest");var n=e.acr_values,o=e.display,i=e.max_age,s=e.redirect_uri,a=e.response_type,c=e.scope,g=e.prompt,p=e.ui_locales,d=e.resource,l=e.extraQueryParams,f=e.data,h=e.id_token_hint,v=e.login_hint,m=e.state,S=e.request,y=e.request_uri;_.Log.debug("OidcClient.createSigninRequest");var b=this._settings.client_id;a=a||this._settings.response_type,c=c||this._settings.scope,s=s||this._settings.redirect_uri,g=g||this._settings.prompt,o=o||this._settings.display,i=i||this._settings.max_age,p=p||this._settings.ui_locales,n=n||this._settings.acr_values,d=d||this._settings.resource,l=l||this._settings.extraQueryParams;var k=this._settings.authority;return this._metadataService.getAuthorizationEndpoint().then(function(e){_.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",e);var w=new u.SigninRequest({acr_values:n,authority:k,client_id:b,data:f||m,display:o,extraQueryParams:l,id_token_hint:h,login_hint:v,max_age:i,prompt:g,redirect_uri:s,request:S,request_uri:y,resource:d,response_type:a,scope:c,ui_locales:p,url:e}),P=w.state;return(t=t||r._stateStore).set(P.id,P.toStorageString()).then(function(){return w})})},OidcClient.prototype.processSigninResponse=function(e,t){var r=this;console.log("processSigninResponse"),_.Log.debug("OidcClient.processSigninResponse");var n=new c.SigninResponse(e);return n.state?(t=t||this._stateStore).remove(n.state).then(function(e){if(!e)throw _.Log.error("OidcClient.processSigninResponse: No matching state found in storage"),new Error("No matching state found in storage");var t=g.SigninState.fromStorageString(e);return _.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),r._validator.validateSigninResponse(t,n)}):(_.Log.error("OidcClient.processSigninResponse: No state in response"),Promise.reject(new Error("No state in response")))},OidcClient.prototype.createSignoutRequest=function(e,t){var r=this,n=e.id_token_hint,o=e.data,i=e.state,s=e.post_logout_redirect_uri;return _.Log.debug("OidcClient.createSignoutRequest"),s=s||this._settings.post_logout_redirect_uri,this._metadataService.getEndSessionEndpoint().then(function(e){if(!e)throw _.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");_.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",e);var a=new p.SignoutRequest({data:o||i,id_token_hint:n,post_logout_redirect_uri:s,url:e}),u=a.state;return u&&(_.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(t=t||r._stateStore)&&t.set(u.id,u.toStorageString?u.toStorageString():"")),a})},OidcClient.prototype.processSignoutResponse=function(e,t){var r=this;_.Log.debug("OidcClient.processSignoutResponse");var o=new d.SignoutResponse(e);if(!o.state)return _.Log.debug("OidcClient.processSignoutResponse: No state in response"),o.error?(_.Log.warn("OidcClient.processSignoutResponse: Response was error: ",o.error),Promise.reject(new n.ErrorResponse(o))):Promise.resolve(o);var i=o.state;return(t=t||this._stateStore).remove(i).then(function(e){if(!e)throw _.Log.error("OidcClient.processSignoutResponse: No matching state found in storage"),new Error("No matching state found in storage");var t=l.State.fromStorageString(e);return _.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),r._validator.validateSignoutResponse(t,o)})},OidcClient.prototype.clearStaleState=function(e){return _.Log.debug("OidcClient.clearStaleState"),e=e||this._stateStore,l.State.clearStaleState(e,this.settings.staleStateAge)},OidcClient}();t.OidcClient=h},function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function __(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),i=function(e){function ErrorResponse(t){void 0===t&&(t={});var r=this,n=t.error,i=t.error_description,s=t.error_uri,a=t.state;if(!n)throw o.Log.error("No error passed to ErrorResponse"),new Error("error");return(r=e.call(this,i||n)||this).name="ErrorResponse",r.error=n,r.error_description=i,r.error_uri=s,r.state=a,r}return n(ErrorResponse,e),ErrorResponse}(Error);t.ErrorResponse=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(14),o=r(16),i=r(1),s=r(30),a=r(31),u=r(0),c=function(){function ResponseValidator(e){if(!e)throw u.Log.error("ResponseValidator.ctor: No settings passed to ResponseValidator"),new Error("settings");this._settings=e,this._metadataService=new i.MetadataService(this._settings),this._userInfoService=new s.UserInfoService(this._settings)}return ResponseValidator.prototype.validateSigninResponse=function(e,t){var r=this;return u.Log.debug("ResponseValidator.validateSigninResponse"),this._processSigninParams(e,t).then(function(n){return u.Log.debug("ResponseValidator.validateSigninResponse: state processed"),r._validateTokens(e,t).then(function(e){return u.Log.debug("ResponseValidator.validateSigninResponse: tokens validated"),r._processClaims(t).then(function(e){return u.Log.debug("ResponseValidator.validateSigninResponse: claims processed"),t})})})},ResponseValidator.prototype.validateSignoutResponse=function(e,t){return e.id!==t.state?(u.Log.error("ResponseValidator.validateSignoutResponse: State does not match"),Promise.reject(new Error("State does not match"))):(u.Log.debug("ResponseValidator.validateSignoutResponse: state validated"),t.state=e.data,t.error?(u.Log.warn("ResponseValidator.validateSignoutResponse: Response was error",t.error),Promise.reject(new n.ErrorResponse(t))):Promise.resolve(t))},ResponseValidator.prototype._processSigninParams=function(e,t){if(e.id!==t.state)return u.Log.error("ResponseValidator._processSigninParams: State does not match"),Promise.reject(new Error("State does not match"));if(!e.client_id)return u.Log.error("ResponseValidator._processSigninParams: No client_id on state"),Promise.reject(new Error("No client_id on state"));if(!e.authority)return u.Log.error("ResponseValidator._processSigninParams: No authority on state"),Promise.reject(new Error("No authority on state"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return u.Log.error("ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state"),Promise.reject(new Error("authority mismatch on settings vs. signin state"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return u.Log.error("ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state"),Promise.reject(new Error("client_id mismatch on settings vs. signin state"))}else this._settings.client_id=e.client_id;return u.Log.debug("ResponseValidator._processSigninParams: state validated"),t.state=e.data,t.error?(u.Log.warn("ResponseValidator._processSigninParams: Response was error",t.error),Promise.reject(new n.ErrorResponse(t))):e.nonce&&!t.id_token?(u.Log.error("ResponseValidator._processSigninParams: Expecting id_token in response"),Promise.reject(new Error("No id_token in response"))):!e.nonce&&t.id_token?(u.Log.error("ResponseValidator._processSigninParams: Not expecting id_token in response"),Promise.reject(new Error("Unexpected id_token in response"))):Promise.resolve(t)},ResponseValidator.prototype._processClaims=function(e){var t=this;if(e.isOpenIdConnect){if(u.Log.debug("ResponseValidator._processClaims: response is OIDC, processing claims"),e.profile=this._filterProtocolClaims(e.profile),this._settings.loadUserInfo&&e.access_token)return u.Log.debug("ResponseValidator._processClaims: loading user info"),this._userInfoService.getClaims(e.access_token).then(function(r){return u.Log.debug("ResponseValidator._processClaims: user info claims received from user info endpoint"),r.sub!==e.profile.sub?(u.Log.error("ResponseValidator._processClaims: sub from user info endpoint does not match sub in access_token"),Promise.reject(new Error("sub from user info endpoint does not match sub in access_token"))):(e.profile=t._mergeClaims(e.profile,r),u.Log.debug("ResponseValidator._processClaims: user info claims received, updated profile:",e.profile),e)});u.Log.debug("ResponseValidator._processClaims: not loading user info")}else u.Log.debug("ResponseValidator._processClaims: response is not OIDC, not processing claims");return Promise.resolve(e)},ResponseValidator.prototype._mergeClaims=function(e,t){for(var r=Object.assign({},e),n=0,o=Object.getOwnPropertyNames(t);n<o.length;n++){var i=o[n],s=t[i];Array.isArray(s)||(s=[s]);for(var a=0,u=s;a<u.length;a++){var c=u[a];r[i]?Array.isArray(r[i])?r[i].indexOf(c)<0&&r[i].push(c):r[i]!==c&&(r[i]=[r[i],c]):r[i]=c}}return r},ResponseValidator.prototype._filterProtocolClaims=function(e){u.Log.debug("ResponseValidator._filterProtocolClaims, incoming claims:",e);var t=Object.assign({},e);return this._settings._filterProtocolClaims?(o.ProtocolClaims.forEach(function(e){delete t[e]}),u.Log.debug("ResponseValidator._filterProtocolClaims: protocol claims filtered",t)):u.Log.debug("ResponseValidator._filterProtocolClaims: protocol claims not filtered"),t},ResponseValidator.prototype._validateTokens=function(e,t){return t.id_token?t.access_token?(u.Log.debug("ResponseValidator._validateTokens: Validating id_token and access_token"),this._validateIdTokenAndAccessToken(e,t)):(u.Log.debug("ResponseValidator._validateTokens: Validating id_token"),this._validateIdToken(e,t)):(u.Log.debug("ResponseValidator._validateTokens: No id_token to validate"),Promise.resolve(t))},ResponseValidator.prototype._validateIdTokenAndAccessToken=function(e,t){var r=this;return this._validateIdToken(e,t).then(function(e){return r._validateAccessToken(e)})},ResponseValidator.prototype._validateIdToken=function(e,t){var r=this;if(!e.nonce)return u.Log.error("ResponseValidator._validateIdToken: No nonce on state"),Promise.reject(new Error("No nonce on state"));var n=a.JoseUtil.parseJwt(t.id_token);if(!n||!n.header||!n.payload)return u.Log.error("ResponseValidator._validateIdToken: Failed to parse id_token",n),Promise.reject(new Error("Failed to parse id_token"));if(e.nonce!==n.payload.nonce)return u.Log.error("ResponseValidator._validateIdToken: Invalid nonce in id_token"),Promise.reject(new Error("Invalid nonce in id_token"));var o=n.header.kid;return this._metadataService.getIssuer().then(function(i){return u.Log.debug("ResponseValidator._validateIdToken: Received issuer"),r._metadataService.getSigningKeys().then(function(s){if(!s)return u.Log.error("ResponseValidator._validateIdToken: No signing keys from metadata"),Promise.reject(new Error("No signing keys from metadata"));var c;if(u.Log.debug("ResponseValidator._validateIdToken: Received signing keys"),o)c=s.filter(function(e){return e.kid===o})[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return u.Log.error("ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));c=s[0]}if(!c)return u.Log.error("ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var g=e.client_id,p=r._settings.clockSkew;return u.Log.debug("ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: ",p),a.JoseUtil.validateJwt(t.id_token,c,i,g,p).then(function(e){return u.Log.debug("ResponseValidator._validateIdToken: JWT validation successful"),n.payload.sub?(t.profile=n.payload,t):(u.Log.error("ResponseValidator._validateIdToken: No sub present in id_token"),Promise.reject(new Error("No sub present in id_token")))})})})},ResponseValidator.prototype._filterByAlg=function(e,t){var r;if(t.startsWith("RS"))r="RSA";else if(t.startsWith("PS"))r="PS";else{if(!t.startsWith("ES"))return u.Log.debug("ResponseValidator._filterByAlg: alg not supported: ",t),[];r="EC"}return u.Log.debug("ResponseValidator._filterByAlg: Looking for keys that match kty: ",r),e=e.filter(function(e){return e.kty===r}),u.Log.debug("ResponseValidator._filterByAlg: Number of keys that match kty: ",r,e.length),e},ResponseValidator.prototype._validateAccessToken=function(e){if(!e.profile)return u.Log.error("ResponseValidator._validateAccessToken: No profile loaded from id_token"),Promise.reject(new Error("No profile loaded from id_token"));if(!e.profile.at_hash)return u.Log.error("ResponseValidator._validateAccessToken: No at_hash in id_token"),Promise.reject(new Error("No at_hash in id_token"));if(!e.id_token)return u.Log.error("ResponseValidator._validateAccessToken: No id_token"),Promise.reject(new Error("No id_token"));var t=a.JoseUtil.parseJwt(e.id_token);if(!t||!t.header)return u.Log.error("ResponseValidator._validateAccessToken: Failed to parse id_token",t),Promise.reject(new Error("Failed to parse id_token"));var r=t.header.alg;if(!r||5!==r.length)return u.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r),Promise.reject(new Error("Unsupported alg: "+r));var n=r.substr(2,3);if(!n)return u.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));var o=parseInt(n);if(256!==o&&384!==o&&512!==o)return u.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,o),Promise.reject(new Error("Unsupported alg: "+r));var i="sha"+o,s=a.JoseUtil.hashString(e.access_token,i);if(!s)return u.Log.error("ResponseValidator._validateAccessToken: access_token hash failed:",i),Promise.reject(new Error("Failed to validate at_hash"));var c=s.substr(0,s.length/2),g=a.JoseUtil.hexToBase64Url(c);return g!==e.profile.at_hash?(u.Log.error("ResponseValidator._validateAccessToken: Failed to validate at_hash",g,e.profile.at_hash),Promise.reject(new Error("Failed to validate at_hash"))):(u.Log.debug("ResponseValidator._validateAccessToken: success"),Promise.resolve(e))},ResponseValidator}();t.ResponseValidator=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AllowedSigningAlgs=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"],t.ProtocolClaims=["nonce","at_hash","iat","nbf","exp","aud","iss","c_hash"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(18),o=r(0),i=function(){function JsonService(e){e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json")}return JsonService.prototype.getJson=function(e,t){var r=this;if(!e)throw o.Log.error("JsonService.getJson: No url passed"),new Error("url");return o.Log.debug("JsonService.getJson, url: ",e),new Promise(function(i,s){var a=r._contentTypes;n.default.interceptors.request.use(function(e){return t&&(o.Log.debug("JsonService.getJson: token passed, setting Authorization header"),e.headers.Authorization="Bearer "+t),Promise.resolve(e)},function(e){return Promise.reject(e)}),n.default.get(e).then(function(t){if(o.Log.debug("JsonService.getJson: HTTP response received, status",t.status),200===t.status){var r=t.headers["Content-Type"]||t.headers["content-type"];if(r){if(a.map(function(e){return!!r.startsWith(e)}).indexOf(!0)>=0)try{return void i(t.data)}catch(e){return o.Log.error("JsonService.getJson: Error parsing JSON response",e.message),void s(e)}}s(Error("Invalid response Content-Type: "+r+", from URL: "+e))}else s(Error(t.statusText+" ("+t.status+")"))}).catch(function(e){o.Log.error("JsonService.getJson: network error"),s(Error("Network Error"))})})},JsonService}();t.JsonService=i},function(e,t){e.exports=require("axios")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3);t.IStateStoreSettingsLocalDefault={prefix:"oidc.",store:n.Global.localStorage},t.IStateStoreSettingsSessionDefault={prefix:"oidc.",store:n.Global.sessionStorage}},function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function __(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=r(19),i=r(33),s=r(35),a=r(37),u=r(5),c=r(4),g={accessTokenExpiringNotificationTime:60,automaticSilentRenew:!0,checkSessionInterval:2e3,clockSkew:c.DefaultClockSkewInSeconds,extraQueryParams:{},filterProtocolClaims:!0,iframeNavigator:new i.FrameNavigator,includeIdTokenInSilentRenew:!0,loadUserInfo:!0,monitorSession:!0,popupNavigator:new s.PopupNavigator,redirectNavigator:new a.RedirectNavigator,response_type:c.DefaultResponseType,revokeAccessTokenOnSignout:!1,scope:c.DefaultScope,staleStateAge:c.DefaultStaleStateAge,stateStore:new u.WebStorageStateStore,stopCheckSessionOnError:!0,userStore:new u.WebStorageStateStore(o.IStateStoreSettingsSessionDefault)},p=function(e){function UserManagerSettings(t){void 0===t&&(t=g);var r=e.call(this,t)||this;return r._popup_redirect_uri=t.popup_redirect_uri||g.popup_redirect_uri,r._popup_post_logout_redirect_uri=t.popup_post_logout_redirect_uri||g.popup_post_logout_redirect_uri,r._popupWindowFeatures=t.popupWindowFeatures||g.popupWindowFeatures,r._popupWindowTarget=t.popupWindowTarget||g.popupWindowTarget,r._silent_redirect_uri=t.silent_redirect_uri||g.silent_redirect_uri,r._silentRequestTimeout=t.silentRequestTimeout||g.silentRequestTimeout,r._automaticSilentRenew=!!t.automaticSilentRenew||g.automaticSilentRenew,r._includeIdTokenInSilentRenew=t.includeIdTokenInSilentRenew||g.includeIdTokenInSilentRenew,r._accessTokenExpiringNotificationTime=t.accessTokenExpiringNotificationTime||g.accessTokenExpiringNotificationTime,r._monitorSession=t.monitorSession||g.monitorSession,r._checkSessionInterval=t.checkSessionInterval||g.checkSessionInterval,r._stopCheckSessionOnError=t.stopCheckSessionOnError||g.stopCheckSessionOnError,r._revokeAccessTokenOnSignout=t.revokeAccessTokenOnSignout||g.revokeAccessTokenOnSignout,r._redirectNavigator=t.redirectNavigator||g.redirectNavigator,r._popupNavigator=t.popupNavigator||g.popupNavigator,r._iframeNavigator=t.iframeNavigator||g.iframeNavigator,r._userStore=t.userStore||g.userStore,r}return n(UserManagerSettings,e),Object.defineProperty(UserManagerSettings.prototype,"popup_redirect_uri",{get:function(){return this._popup_redirect_uri},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"popup_post_logout_redirect_uri",{get:function(){return this._popup_post_logout_redirect_uri},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"popupWindowFeatures",{get:function(){return this._popupWindowFeatures},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"popupWindowTarget",{get:function(){return this._popupWindowTarget},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"silent_redirect_uri",{get:function(){return this._silent_redirect_uri},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"silentRequestTimeout",{get:function(){return this._silentRequestTimeout},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"automaticSilentRenew",{get:function(){return!(!this.silent_redirect_uri||!this._automaticSilentRenew)},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"includeIdTokenInSilentRenew",{get:function(){return this._includeIdTokenInSilentRenew},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"accessTokenExpiringNotificationTime",{get:function(){return this._accessTokenExpiringNotificationTime},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"monitorSession",{get:function(){return this._monitorSession},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"checkSessionInterval",{get:function(){return this._checkSessionInterval},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"stopCheckSessionOnError",{get:function(){return this._stopCheckSessionOnError},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"revokeAccessTokenOnSignout",{get:function(){return this._revokeAccessTokenOnSignout},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"redirectNavigator",{get:function(){return this._redirectNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"popupNavigator",{get:function(){return this._popupNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"iframeNavigator",{get:function(){return this._iframeNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(UserManagerSettings.prototype,"userStore",{get:function(){return this._userStore},enumerable:!0,configurable:!0}),UserManagerSettings}(c.OidcClientSettings);t.UserManagerSettings=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(22),o=r(0),i=r(2),s=function(){function SigninRequest(e){var t=e.url,r=e.client_id,s=e.redirect_uri,a=e.response_type,u=e.scope,c=e.authority,g=(e.data,e.prompt),p=e.display,d=e.max_age,l=e.ui_locales,_=e.id_token_hint,f=e.login_hint,h=e.acr_values,v=e.resource,m=e.request,S=e.request_uri,y=e.extraQueryParams;if(!t)throw o.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!r)throw o.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!s)throw o.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!a)throw o.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!u)throw o.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!c)throw o.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var b=SigninRequest.isOidc(a);this.state=new n.SigninState({nonce:b,client_id:r,authority:c});var k=i.UrlUtility.addQueryParam(t,"client_id",r);k=i.UrlUtility.addQueryParam(k,"redirect_uri",s),k=i.UrlUtility.addQueryParam(k,"response_type",a),k=i.UrlUtility.addQueryParam(k,"scope",u),k=i.UrlUtility.addQueryParam(k,"state",this.state.id),b&&(k=i.UrlUtility.addQueryParam(k,"nonce",this.state.nonce));var w={acr_values:h,display:p,id_token_hint:_,login_hint:f,max_age:d,prompt:g,request:m,request_uri:S,resource:v,ui_locales:l};for(var P in w)w[P]&&(k=i.UrlUtility.addQueryParam(t,P,w[P]));for(var U=0,M=y;U<M.length;U++){P=M[U];k=i.UrlUtility.addQueryParam(t,P,y[P])}this.url=k}return SigninRequest.isOidc=function(e){return!!e.split(/\s+/g).filter(function(e){return"id_token"===e})[0]},SigninRequest.isOAuth=function(e){return!!e.split(/\s+/g).filter(function(e){return"token"===e})[0]},SigninRequest}();t.SigninRequest=s},function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function __(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=r(6),i=r(0),s=r(7),a=function(e){function SigninState(t){var r=this,n=t.nonce,o=t.authority,i=t.client_id;return r=e.call(this,arguments[0])||this,!0===n?r._nonce=s.default():n&&(r._nonce=n),r._authority=o,r._client_id=i,r}return n(SigninState,e),SigninState.fromStorageString=function(e){return i.Log.debug("SigninState.fromStorageString"),new SigninState(JSON.parse(e))},Object.defineProperty(SigninState.prototype,"nonce",{get:function(){return this._nonce},enumerable:!0,configurable:!0}),Object.defineProperty(SigninState.prototype,"authority",{get:function(){return this._authority},enumerable:!0,configurable:!0}),Object.defineProperty(SigninState.prototype,"client_id",{get:function(){return this._client_id},enumerable:!0,configurable:!0}),SigninState.prototype.toStorageString=function(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({authority:this.authority,client_id:this.client_id,created:this.created,data:this.data,id:this.id,nonce:this.nonce})},SigninState}(o.State);t.SigninState=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=function(){function SigninResponse(e){this.profile=void 0;var t=n.UrlUtility.parseUrlFragment(e,"#");this.error=t.error,this.error_description=t.error_description,this.error_uri=t.error_uri,this.state=t.state,this.id_token=t.id_token,this.session_state=t.session_state,this.access_token=t.access_token,this.token_type=t.token_type,this.scope=t.scope,this.profile=void 0;var r=parseInt(t.expires_in);if("number"==typeof r&&r>0){var o=Math.floor(Date.now()/1e3);this.expires_at=o+r}}return Object.defineProperty(SigninResponse.prototype,"expires_in",{get:function(){if(this.expires_at){var e=Math.round(Date.now()/1e3);return this.expires_at-e}},enumerable:!0,configurable:!0}),Object.defineProperty(SigninResponse.prototype,"expired",{get:function(){var e=this.expires_in;return void 0!==e&&e<=0},enumerable:!0,configurable:!0}),Object.defineProperty(SigninResponse.prototype,"scopes",{get:function(){return(this.scope||"").split(" ")},enumerable:!0,configurable:!0}),Object.defineProperty(SigninResponse.prototype,"isOpenIdConnect",{get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token},enumerable:!0,configurable:!0}),SigninResponse}();t.SigninResponse=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6),o=r(0),i=r(7),s=r(2),a=function(){return function SignoutRequest(e){var t=e.url,r=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data;if(!t)throw o.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");r&&(t=s.UrlUtility.addQueryParam(t,"id_token_hint",r)),a&&(t=s.UrlUtility.addQueryParam(t,"post_logout_redirect_uri",a),u&&(this.state=new n.State({id:i.default(),data:u}),t=s.UrlUtility.addQueryParam(t,"state",this.state.id))),this.url=t}}();t.SignoutRequest=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=function(){return function SignoutResponse(e){var t=n.UrlUtility.parseUrlFragment(e,"?");this.error=t.error,this.error_description=t.error_description,this.error_uri=t.error_uri,this.state=t.state}}();t.SignoutResponse=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(8),o=r(0),i=function(){function SessionMonitor(e){var t=this;if(!e)throw o.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),this._userManager.getUser().then(function(e){e&&t._start(e)}).catch(function(e){o.Log.error("SessionMonitor ctor: error from getUser:",e.message)})}return Object.defineProperty(SessionMonitor.prototype,"_settings",{get:function(){return this._userManager.settings},enumerable:!0,configurable:!0}),Object.defineProperty(SessionMonitor.prototype,"_metadataService",{get:function(){return this._userManager.metadataService},enumerable:!0,configurable:!0}),Object.defineProperty(SessionMonitor.prototype,"_client_id",{get:function(){return this._settings.client_id},enumerable:!0,configurable:!0}),Object.defineProperty(SessionMonitor.prototype,"_checkSessionInterval",{get:function(){return this._settings.checkSessionInterval},enumerable:!0,configurable:!0}),Object.defineProperty(SessionMonitor.prototype,"_stopCheckSessionOnError",{get:function(){return this._settings.stopCheckSessionOnError},enumerable:!0,configurable:!0}),SessionMonitor.prototype._start=function(e){var t=this,r=e.session_state;r&&(this._sub=e.profile.sub,this._sid=e.profile.sid,o.Log.debug("SessionMonitor._start: session_state:",r,", sub:",this._sub),this._checkSessionIFrame?this._checkSessionIFrame.start(r):this._metadataService.getCheckSessionIframe().then(function(e){if(e){o.Log.debug("SessionMonitor._start: Initializing check session iframe");var i=t._client_id,s=t._checkSessionInterval,a=t._stopCheckSessionOnError;t._checkSessionIFrame=new n.CheckSessionIFrame(t._callback.bind(t),i,e,s,a),t._checkSessionIFrame.load().then(function(){t._checkSessionIFrame.start(r)})}else o.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")}).catch(function(e){o.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",e.message)}))},SessionMonitor.prototype._stop=function(){this._sub=null,this._sid=null,this._checkSessionIFrame&&(o.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop())},SessionMonitor.prototype._callback=function(){var e=this;this._userManager.querySessionStatus().then(function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?o.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",t.session_state):(o.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",t.session_state),e._userManager.events._raiseUserSessionChanged())):o.Log.debug("SessionMonitor._callback: Different subject signed into OP:",t.sub):o.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(o.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),e._userManager.events._raiseUserSignedOut())}).catch(function(t){o.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",t.message),e._userManager.events._raiseUserSignedOut()})},SessionMonitor}();t.SessionMonitor=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(18),o=r(1),i=r(0),s=function(){function TokenRevocationClient(e){if(!e)throw i.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._metadataService=new o.MetadataService(this._settings)}return TokenRevocationClient.prototype.revoke=function(e,t){var r=this;if(!e)throw i.Log.error("TokenRevocationClient.revoke: No accessToken provided"),new Error("No accessToken provided.");return this._metadataService.getRevocationEndpoint().then(function(n){if(n){i.Log.error("TokenRevocationClient.revoke: Revoking access token");var o=r._settings.client_id,s=r._settings.client_secret;return r._revoke(n,o,s,e)}if(t)throw i.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")})},TokenRevocationClient.prototype._revoke=function(e,t,r,o){return new Promise(function(s,a){var u="client_id="+encodeURIComponent(t);r&&(u+="&client_secret="+encodeURIComponent(r)),u+="&token_type_hint="+encodeURIComponent("access_token"),u+="&token="+encodeURIComponent(o),n.default.post(e,u,{headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then(function(e){i.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",e.status),200===e.status?s():a(Error(e.statusText+" ("+e.status+")"))}).catch(function(e){i.Log.error("JsonService.getJson: network error"),a(Error("Network Error"))})})},TokenRevocationClient}();t.TokenRevocationClient=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=function(){function User(e){var t=e.id_token,r=e.session_state,n=e.access_token,o=e.token_type,i=e.scope,s=e.profile,a=e.expires_at,u=e.state;this.id_token=t,this.session_state=r,this.access_token=n,this.token_type=o,this.scope=i,this.profile=s,this.expires_at=a,this.state=u}return User.fromStorageString=function(e){return n.Log.debug("User.fromStorageString"),new User(JSON.parse(e))},Object.defineProperty(User.prototype,"expires_in",{get:function(){if(this.expires_at){var e=Math.round(Date.now()/1e3);return this.expires_at-e}},enumerable:!0,configurable:!0}),Object.defineProperty(User.prototype,"expired",{get:function(){var e=this.expires_in;if(void 0!==e)return e<=0},enumerable:!0,configurable:!0}),Object.defineProperty(User.prototype,"scopes",{get:function(){return(this.scope||"").split(" ")},enumerable:!0,configurable:!0}),User.prototype.toStorageString=function(){return n.Log.debug("User.toStorageString"),JSON.stringify({access_token:this.access_token,expires_at:this.expires_at,id_token:this.id_token,profile:this.profile,scope:this.scope,session_state:this.session_state,token_type:this.token_type})},User}();t.User=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(8),o=r(9),i=r(3),s=r(12),a=r(13),u=r(1),c=r(26),g=r(4),p=r(27),d=r(28),l=r(38),_=r(0),f=r(5),h=r(21),v=r(23),m=r(25),S=r(24);t.default={AccessTokenEvents:o.AccessTokenEvents,CheckSessionIFrame:n.CheckSessionIFrame,Global:i.Global,InMemoryWebStorage:s.InMemoryWebStorage,Log:_.Log,MetadataService:u.MetadataService,OidcClient:a.OidcClient,OidcClientSettings:g.OidcClientSettings,SessionMonitor:c.SessionMonitor,SigninRequest:h.SigninRequest,SigninResponse:v.SigninResponse,SignoutRequest:S.SignoutRequest,SignoutResponse:m.SignoutResponse,TokenRevocationClient:p.TokenRevocationClient,User:d.User,UserManager:l.UserManager,WebStorageStateStore:f.WebStorageStateStore}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(17),i=r(1),s=function(){function UserInfoService(e){if(!e)throw n.Log.error("UserInfoService.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new o.JsonService,this._metadataService=new i.MetadataService(this._settings)}return UserInfoService.prototype.getClaims=function(e){var t=this;return e?this._metadataService.getUserInfoEndpoint().then(function(r){return n.Log.debug("UserInfoService.getClaims: received userinfo url",r),t._jsonService.getJson(r,e).then(function(e){return n.Log.debug("UserInfoService.getClaims: claims received",e),e})}):(n.Log.error("UserInfoService.getClaims: No token passed"),Promise.reject(new Error("A token is required")))},UserInfoService}();t.UserInfoService=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(32),o=r(16),i=r(0),s=function(){function JoseUtil(){}return JoseUtil.parseJwt=function(e){i.Log.debug("JoseUtil.parseJwt");try{var t=n.jws.JWS.parse(e);return{header:t.headerObj,payload:t.payloadObj}}catch(e){throw i.Log.error(e),e}},JoseUtil.validateJwt=function(e,t,r,o,s,a){i.Log.debug("JoseUtil.validateJwt");try{if("RSA"===t.kty)if(t.e&&t.n)t=n.KEYUTIL.getKey(t);else{if(!t.x5c||!t.x5c.length)return i.Log.error("JoseUtil.validateJwt: RSA key missing key material",t),Promise.reject(new Error("RSA key missing key material"));var u=n.b64tohex(t.x5c[0]);t=n.X509.getPublicKeyFromCertHex(u)}else{if("EC"!==t.kty)return i.Log.error("JoseUtil.validateJwt: Unsupported key type",t&&t.kty),Promise.reject(new Error("Unsupported key type: "+t&&t.kty));if(!(t.crv&&t.x&&t.y))return i.Log.error("JoseUtil.validateJwt: EC key missing key material",t),Promise.reject(new Error("EC key missing key material"));t=n.KEYUTIL.getKey(t)}return JoseUtil._validateJwt(e,t,r,o,s,a)}catch(e){return i.Log.error(e&&e.message||e),Promise.reject("JWT validation failed")}},JoseUtil.hashString=function(e,t){try{return n.crypto.Util.hashString(e,t)}catch(e){i.Log.error(e)}},JoseUtil.hexToBase64Url=function(e){try{return n.hextob64u(e)}catch(e){i.Log.error(e)}},JoseUtil._validateJwt=function(e,t,r,s,a,u){if(a||(a=0),!u){var c=Date.now()/1e3;u=Math.round(c)}var g=JoseUtil.parseJwt(e).payload;if(!g.iss)return i.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(g.iss!==r)return i.Log.error("JoseUtil._validateJwt: Invalid issuer in token",g.iss),Promise.reject(new Error("Invalid issuer in token: "+g.iss));if(!g.aud)return i.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(g.aud===s||Array.isArray(g.aud)&&g.aud.indexOf(s)>=0))return i.Log.error("JoseUtil._validateJwt: Invalid audience in token",g.aud),Promise.reject(new Error("Invalid audience in token: "+g.aud));var p=u+a,d=u-a;if(!g.iat)return i.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(p<g.iat)return i.Log.error("JoseUtil._validateJwt: iat is in the future",g.iat),Promise.reject(new Error("iat is in the future: "+g.iat));if(g.nbf&&p<g.nbf)return i.Log.error("JoseUtil._validateJwt: nbf is in the future",g.nbf),Promise.reject(new Error("nbf is in the future: "+g.nbf));if(!g.exp)return i.Log.error("JoseUtil._validateJwt: exp was not provided"),Promise.reject(new Error("exp was not provided"));if(g.exp<d)return i.Log.error("JoseUtil._validateJwt: exp is in the past",g.exp),Promise.reject(new Error("exp is in the past:"+g.exp));try{if(!n.jws.JWS.verify(e,t,o.AllowedSigningAlgs))return i.Log.error("JoseUtil._validateJwt: signature validation failed"),Promise.reject(new Error("signature validation failed"))}catch(e){return i.Log.error(e&&e.message||e),Promise.reject(new Error("signature validation failed"))}return Promise.resolve()},JoseUtil}();t.JoseUtil=s},function(e,t){e.exports=require("jsrsasign")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(34),i=function(){function FrameNavigator(){}return FrameNavigator.prototype.prepare=function(e){var t=new o.FrameWindow(e);return Promise.resolve(t)},FrameNavigator.prototype.callback=function(e){n.Log.debug("IFrameNavigator.callback");try{return o.FrameWindow.notifyParent(e),Promise.resolve()}catch(e){return Promise.reject(e)}},FrameNavigator}();t.FrameNavigator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=function(){function FrameWindow(e){var t=this;this._promise=new Promise(function(e,r){t._resolve=e,t._reject=r}),this._boundMessageEvent=this._message.bind(this),this._boundMessageEvent&&addEventListener("message",this._boundMessageEvent,!1),this._frame=document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.style.width="0",this._frame.style.height="0",document.body.appendChild(this._frame)}return FrameWindow.notifyParent=function(e){n.Log.debug("IFrameWindow.notifyParent"),parent&&window!==parent&&(e=e||location.href)&&(n.Log.debug("IFrameWindow.notifyParent: posting url message to parent"),parent.postMessage(e,location.protocol+"//"+location.host))},FrameWindow.prototype.navigate=function(e){if(e&&e.url){var t=e.silentRequestTimeout||1e4;if(n.Log.debug("IFrameWindow.navigate: Using timeout of:",t),this._timer=setTimeout(this._timeout.bind(this),t),!this._frame)throw new Error("IFramwWindow has no frame set");this._frame.src=e.url}else this._error("No url provided");return this.promise},Object.defineProperty(FrameWindow.prototype,"promise",{get:function(){return this._promise},enumerable:!0,configurable:!0}),FrameWindow.prototype.close=function(){this._cleanup()},FrameWindow.prototype._success=function(e){this._cleanup(),n.Log.debug("IFrameWindow: Successful response from frame window"),this._resolve(e)},FrameWindow.prototype._error=function(e){this._cleanup(),n.Log.error(e),this._reject(new Error(e))},FrameWindow.prototype._cleanup=function(){this._frame&&(n.Log.debug("IFrameWindow: cleanup"),this._boundMessageEvent&&removeEventListener("message",this._boundMessageEvent,!1),clearTimeout(this._timer),document.body.removeChild(this._frame),this._timer=void 0,this._frame=void 0,this._boundMessageEvent=void 0)},FrameWindow.prototype._timeout=function(){n.Log.debug("IFrameWindow.timeout"),this._error("Frame window timed out")},FrameWindow.prototype._message=function(e){if(n.Log.debug("IFrameWindow.message"),this._timer&&this._frame&&e.origin===this._origin&&e.source===this._frame.contentWindow){var t=e.data;t?this._success({url:t}):this._error("Invalid response from frame")}},Object.defineProperty(FrameWindow.prototype,"_origin",{get:function(){return location.protocol+"//"+location.host},enumerable:!0,configurable:!0}),FrameWindow}();t.FrameWindow=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(36),i=function(){function PopupNavigator(){}return PopupNavigator.prototype.prepare=function(e){var t=new o.PopupWindow(e);return Promise.resolve(t)},PopupNavigator.prototype.navigate=function(e){return e&&e.url?(location=e.url,Promise.resolve()):(n.Log.error("RedirectNavigator.navigate: No url provided"),Promise.reject(new Error("No url provided")))},PopupNavigator.prototype.callback=function(e,t,r){n.Log.debug("PopupNavigator.callback");try{return o.PopupWindow.notifyOpener(e,t,r),Promise.resolve()}catch(e){return Promise.reject(e)}},PopupNavigator}();t.PopupNavigator=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(2),i=500,s="location=no,toolbar=no,width=500,height=500,left=100,top=100;",a="_blank",u=function(){function PopupWindow(e){var t=this;this._promise=new Promise(function(e,r){t._resolve=e,t._reject=r});var r=e.popupWindowTarget||a,o=e.popupWindowFeatures||s;this._popup=window.open("",r,o),this._popup&&(n.Log.debug("PopupWindow.ctor: popup successfully created"),this._checkForPopupClosedTimer=window.setInterval(this._checkForPopupClosed.bind(this),i))}return PopupWindow.notifyOpener=function(e,t,r){if(window&&window.opener){if(e=e||window.location.href){var i=o.UrlUtility.parseUrlFragment(e,r);if(i.state){var s="popupCallback_"+i.state,a=window.opener[s];a?(n.Log.debug("PopupWindow.notifyOpener: passing url message to opener"),a(e,t)):n.Log.warn("PopupWindow.notifyOpener: no matching callback found on opener")}else n.Log.warn("PopupWindow.notifyOpener: no state found in response url")}}else n.Log.warn("PopupWindow.notifyOpener: no window.opener. Can't complete notification.")},Object.defineProperty(PopupWindow.prototype,"promise",{get:function(){return this._promise},enumerable:!0,configurable:!0}),PopupWindow.prototype.navigate=function(e){return this._popup?e&&e.url?(n.Log.debug("PopupWindow.navigate: Setting URL in popup"),this._id=e.id,this._id&&(window["popupCallback_"+e.id]=this._callback.bind(this)),this._popup.focus(),this._popup.window.location=e.url):(this._error("PopupWindow.navigate: no url provided"),this._error("No url provided")):this._error("PopupWindow.navigate: Error opening popup window"),this.promise},PopupWindow.prototype.close=function(){this._cleanup(!1)},PopupWindow.prototype._success=function(e){n.Log.debug("PopupWindow.callback: Successful response from popup window"),this._cleanup(),this._resolve(e)},PopupWindow.prototype._error=function(e){n.Log.error("PopupWindow.error: ",e),this._cleanup(),this._reject(new Error(e))},PopupWindow.prototype._cleanup=function(e){void 0===e&&(e=!1),n.Log.debug("PopupWindow.cleanup"),window.clearInterval(this._checkForPopupClosedTimer),this._checkForPopupClosedTimer=null,delete window["popupCallback_"+this._id],this._popup&&!e&&this._popup.close(),this._popup=null},PopupWindow.prototype._checkForPopupClosed=function(){this._popup&&!this._popup.closed||this._error("Popup window closed")},PopupWindow.prototype._callback=function(e,t){this._cleanup(t),e?(n.Log.debug("PopupWindow.callback success"),this._success({url:e})):(n.Log.debug("PopupWindow.callback: Invalid response from popup"),this._error("Invalid response from popup"))},PopupWindow}();t.PopupWindow=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=function(){function RedirectNavigator(){}return RedirectNavigator.prototype.prepare=function(){return Promise.resolve(this)},RedirectNavigator.prototype.navigate=function(e){return e&&e.url?(location=e.url,Promise.resolve()):(n.Log.error("RedirectNavigator.navigate: No url provided"),Promise.reject(new Error("No url provided")))},Object.defineProperty(RedirectNavigator.prototype,"url",{get:function(){return location.href},enumerable:!0,configurable:!0}),RedirectNavigator}();t.RedirectNavigator=o},function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function __(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=r(39),i=r(13),s=r(40),a=r(26),u=r(20),c=r(27),g=r(28),p=r(0),d=function(e){function UserManager(t){void 0===t&&(t={});var r=this;return t instanceof u.UserManagerSettings||(t=new u.UserManagerSettings(t)),(r=e.call(this,t)||this)._events=new o.UserManagerEvents(t),r._silentRenewService=new s.SilentRenewService(r),r.settings.automaticSilentRenew&&(p.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),r.startSilentRenew()),r.settings.monitorSession&&(p.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),r._sessionMonitor=new a.SessionMonitor(r)),r._tokenRevocationClient=new c.TokenRevocationClient(r._settings),r}return n(UserManager,e),Object.defineProperty(UserManager.prototype,"_redirectNavigator",{get:function(){return this.settings.redirectNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(UserManager.prototype,"_popupNavigator",{get:function(){return this.settings.popupNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(UserManager.prototype,"_iframeNavigator",{get:function(){return this.settings.iframeNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(UserManager.prototype,"_userStore",{get:function(){return this.settings.userStore},enumerable:!0,configurable:!0}),Object.defineProperty(UserManager.prototype,"events",{get:function(){return this._events},enumerable:!0,configurable:!0}),UserManager.prototype.getUser=function(){var e=this;return this._loadUser().then(function(t){return t?(p.Log.info("UserManager.getUser: user loaded"),e._events.load(t,!1),t):(p.Log.info("UserManager.getUser: user not found in storage"),null)})},UserManager.prototype.removeUser=function(){var e=this;return this.storeUser().then(function(){p.Log.info("UserManager.removeUser: user removed from storage"),e._events.unload()})},UserManager.prototype.signinRedirect=function(e){return this._signinStart(this._redirectNavigator,{},e).then(function(){p.Log.info("UserManager.signinRedirect: successful")})},UserManager.prototype.signinRedirectCallback=function(e){return this._signinEnd(e||this._redirectNavigator.url).then(function(e){return e&&(e.profile&&e.profile.sub?p.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",e.profile.sub):p.Log.info("UserManager.signinRedirectCallback: no sub")),e})},UserManager.prototype.signinPopup=function(e){void 0===e&&(e={});var t=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return t?(e.redirect_uri=t,e.display="popup",this._signin(e,this._popupNavigator,{popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget,startUrl:t}).then(function(e){return e&&(e.profile&&e.profile.sub?p.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",e.profile.sub):p.Log.info("UserManager.signinPopup: no sub")),e})):(p.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},UserManager.prototype.signinPopupCallback=function(e){return this._signinCallback(e,this._popupNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?p.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",e.profile.sub):p.Log.info("UserManager.signinPopupCallback: no sub")),e}).catch(function(e){p.Log.error("UserManager.signinPopupCallback error: "+e&&e.message)})},UserManager.prototype.signinSilent=function(e){var t=this;void 0===e&&(e={});var r=e.redirect_uri||this.settings.silent_redirect_uri;return r?(e.redirect_uri=r,e.prompt="none",(e.id_token_hint||!this.settings.includeIdTokenInSilentRenew?Promise.resolve():this._loadUser().then(function(t){e.id_token_hint=t&&t.id_token})).then(function(){return t._signin(e,t._iframeNavigator,{silentRequestTimeout:e.silentRequestTimeout||t.settings.silentRequestTimeout,startUrl:r})}).then(function(e){return e&&(e.profile&&e.profile.sub?p.Log.info("UserManager.signinSilent: successful, signed in sub: ",e.profile.sub):p.Log.info("UserManager.signinSilent: no sub")),e})):(p.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},UserManager.prototype.signinSilentCallback=function(e){return this._signinCallback(e||this.settings.silent_redirect_uri,this._iframeNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?p.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",e.profile.sub):p.Log.info("UserManager.signinSilentCallback: no sub")),e})},UserManager.prototype.querySessionStatus=function(e){var t=this;void 0===e&&(e={});var r=e.redirect_uri||this.settings.silent_redirect_uri;if(!r)return p.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured"));e.redirect_uri=r,e.prompt="none",e.response_type="id_token",e.scope="openid";var n={silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout,startUrl:r};return this._signinStart(this._iframeNavigator,n,e).then(function(e){return t.processSigninResponse(e.url).then(function(e){if(p.Log.debug("UserManager.querySessionStatus: got signin response"),e.session_state&&e.profile.sub&&e.profile.sid)return p.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",e.profile.sub),{session_state:e.session_state,sid:e.profile.sid,sub:e.profile.sub};p.Log.info("querySessionStatus successful, user not authenticated")})})},UserManager.prototype._signin=function(e,t,r){var n=this;return void 0===r&&(r={}),this._signinStart(t,r,e).then(function(e){return n._signinEnd(e.url)})},UserManager.prototype._signinStart=function(e,t,r){var n=this;return void 0===t&&(t={}),e.prepare(t).then(function(e){return p.Log.debug("UserManager._signinStart: got navigator window handle"),n.createSigninRequest(r).then(function(r){return p.Log.debug("UserManager._signinStart: got signin request"),t.url=r.url,t.id=r.state.id,e.navigate(t)}).catch(function(t){throw e.close&&(p.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),e.close()),t})})},UserManager.prototype._signinEnd=function(e){var t=this;return this.processSigninResponse(e).then(function(e){p.Log.debug("UserManager._signinEnd: got signin response");var r=new g.User(e);return t.storeUser(r).then(function(){return p.Log.debug("UserManager._signinEnd: user stored"),t._events.load(r),r})})},UserManager.prototype._signinCallback=function(e,t){return p.Log.debug("UserManager._signinCallback"),t.callback(e)},UserManager.prototype.signoutRedirect=function(e){void 0===e&&(e={});var t=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return t&&(e.post_logout_redirect_uri=t),this._signoutStart(e,this._redirectNavigator).then(function(){p.Log.info("UserManager.signoutRedirect: successful")})},UserManager.prototype.signoutRedirectCallback=function(e){return this._signoutEnd(e||this._redirectNavigator.url).then(function(e){return p.Log.info("UserManager.signoutRedirectCallback: successful"),e})},UserManager.prototype.signoutPopup=function(e){void 0===e&&(e={});var t=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=t,e.display="popup",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget,startUrl:t}).then(function(){p.Log.info("UserManager.signinPopup: successful")})},UserManager.prototype.signoutPopupCallback=function(e,t){void 0===t&&"boolean"==typeof e&&(t=!0);return this._popupNavigator.callback(e,t,"?").then(function(){p.Log.info("UserManager.signoutPopupCallback: successful")})},UserManager.prototype._signout=function(e,t,r){var n=this;return void 0===r&&(r={}),this._signoutStart(e,t,r).then(function(e){return n._signoutEnd(e.url)})},UserManager.prototype._signoutStart=function(e,t,r){var n=this;return void 0===e&&(e={}),void 0===r&&(r={}),t.prepare(r).then(function(t){return p.Log.debug("UserManager._signoutStart: got navigator window handle"),n._loadUser().then(function(o){return p.Log.debug("UserManager._signoutStart: loaded current user from storage"),(n.settings.revokeAccessTokenOnSignout?n._revokeInternal(o):Promise.resolve()).then(function(){var i=e.id_token_hint||o&&o.id_token;return i&&(p.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),e.id_token_hint=i),n.removeUser().then(function(){return p.Log.debug("UserManager._signoutStart: user removed, creating signout request"),n.createSignoutRequest(e).then(function(e){return p.Log.debug("UserManager._signoutStart: got signout request"),r.url=e.url,e.state&&(r.id=e.state.id),t.navigate(r)})})})}).catch(function(e){throw t.close&&(p.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),t.close()),e})})},UserManager.prototype._signoutEnd=function(e){return this.processSignoutResponse(e).then(function(e){return p.Log.debug("UserManager._signoutEnd: got signout response"),e})},UserManager.prototype.revokeAccessToken=function(){var e=this;return this._loadUser().then(function(t){return e._revokeInternal(t,!0).then(function(r){if(r)return p.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),t.access_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then(function(){p.Log.debug("UserManager.revokeAccessToken: user stored"),e._events.load(t)})})}).then(function(){p.Log.info("UserManager.revokeAccessToken: access token revoked successfully")})},UserManager.prototype._revokeInternal=function(e,t){void 0===t&&(t=!1);var r=e&&e.access_token;return!r||r.indexOf(".")>=0?(p.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no user, token, or JWT format"),Promise.resolve(!1)):this._tokenRevocationClient.revoke(r,t).then(function(){return!0})},UserManager.prototype.startSilentRenew=function(){this._silentRenewService.start()},UserManager.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},Object.defineProperty(UserManager.prototype,"_userStoreKey",{get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id},enumerable:!0,configurable:!0}),UserManager.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then(function(e){return e?(p.Log.debug("UserManager._loadUser: user storageString loaded"),g.User.fromStorageString(e)):(p.Log.debug("UserManager._loadUser: no user storageString"),null)})},UserManager.prototype.storeUser=function(e){if(e){p.Log.debug("UserManager.storeUser: storing user");var t=e.toStorageString();return this._userStore.set(this._userStoreKey,t)}return p.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},UserManager}(i.OidcClient);t.UserManager=d},function(e,t,r){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};return function(t,r){function __(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=r(0),i=r(9),s=r(11),a=function(e){function UserManagerEvents(t){var r=e.call(this,t)||this;return r._userLoaded=new s.Event("User loaded"),r._userUnloaded=new s.Event("User unloaded"),r._silentRenewError=new s.Event("Silent renew error"),r._userSignedOut=new s.Event("User signed out"),r._userSessionChanged=new s.Event("User session changed"),r}return n(UserManagerEvents,e),UserManagerEvents.prototype.load=function(t,r){void 0===r&&(r=!0),o.Log.debug("UserManagerEvents.load"),e.prototype.load.call(this,t),r&&this._userLoaded.raise(t)},UserManagerEvents.prototype.unload=function(){o.Log.debug("UserManagerEvents.unload"),e.prototype.unload.call(this),this._userUnloaded.raise()},UserManagerEvents.prototype.addUserLoaded=function(e){this._userLoaded.addHandler(e)},UserManagerEvents.prototype.removeUserLoaded=function(e){this._userLoaded.removeHandler(e)},UserManagerEvents.prototype.addUserUnloaded=function(e){this._userUnloaded.addHandler(e)},UserManagerEvents.prototype.removeUserUnloaded=function(e){this._userUnloaded.removeHandler(e)},UserManagerEvents.prototype.addSilentRenewError=function(e){this._silentRenewError.addHandler(e)},UserManagerEvents.prototype.removeSilentRenewError=function(e){this._silentRenewError.removeHandler(e)},UserManagerEvents.prototype.addUserSignedOut=function(e){this._userSignedOut.addHandler(e)},UserManagerEvents.prototype.removeUserSignedOut=function(e){this._userSignedOut.removeHandler(e)},UserManagerEvents.prototype.addUserSessionChanged=function(e){this._userSessionChanged.addHandler(e)},UserManagerEvents.prototype.removeUserSessionChanged=function(e){this._userSessionChanged.removeHandler(e)},UserManagerEvents.prototype._raiseSilentRenewError=function(e){o.Log.debug("UserManagerEvents._raiseSilentRenewError",e.message),this._silentRenewError.raise(e)},UserManagerEvents.prototype._raiseUserSignedOut=function(e){o.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise(e)},UserManagerEvents.prototype._raiseUserSessionChanged=function(e){o.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise(e)},UserManagerEvents}(i.AccessTokenEvents);t.UserManagerEvents=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=function(){function SilentRenewService(e){this._userManager=e}return SilentRenewService.prototype.start=function(){this._callback||(this._callback=this._tokenExpiring.bind(this),this._userManager.events.addAccessTokenExpiring(this._callback),this._userManager.getUser().then(function(e){}).catch(function(e){n.Log.error("SilentRenewService.start: Error from getUser:",e.message)}))},SilentRenewService.prototype.stop=function(){this._callback&&(this._userManager.events.removeAccessTokenExpiring(this._callback),delete this._callback)},SilentRenewService.prototype._tokenExpiring=function(){var e=this;this._userManager.signinSilent().then(function(e){n.Log.debug("SilentRenewService._tokenExpiring: Silent token renewal successful")},function(t){n.Log.error("SilentRenewService._tokenExpiring: Error from signinSilent:",t.message),e._userManager.events._raiseSilentRenewError(t)})},SilentRenewService}();t.SilentRenewService=o}])});