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

angular-simple-oidc

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-simple-oidc - npm Package Compare versions

Comparing version 8.1.0 to 8.1.1

4

bundles/angular-simple-oidc-events.umd.js

@@ -258,4 +258,4 @@ (function (global, factory) {

function EventsService() {
this.eventSubject = new rxjs.ReplaySubject();
this.errorSubject = new rxjs.ReplaySubject();
this.eventSubject = new rxjs.ReplaySubject(5);
this.errorSubject = new rxjs.ReplaySubject(5);
}

@@ -262,0 +262,0 @@ Object.defineProperty(EventsService.prototype, "events$", {

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs")):"function"==typeof define&&define.amd?define("angular-simple-oidc/events",["exports","@angular/core","rxjs"],t):t(((e=e||self)["angular-simple-oidc"]=e["angular-simple-oidc"]||{},e["angular-simple-oidc"].events={}),e.ng.core,e.rxjs)}(this,function(e,t,r){"use strict";var n=function(e,t){return(n=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])})(e,t)};var o=function(){},i=function(e){this.error=e};var c=function(e){function t(t,r){var n=e.call(this)||this;return n.message=t,n.payload=r,n}return function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(t,e),t}(o);var u=function(){function e(){this.eventSubject=new r.ReplaySubject,this.errorSubject=new r.ReplaySubject}return Object.defineProperty(e.prototype,"events$",{get:function(){return this.eventSubject.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"errors$",{get:function(){return this.errorSubject.asObservable()},enumerable:!0,configurable:!0}),e.prototype.dispatch=function(e){this.eventSubject.next(e)},e.prototype.dispatchError=function(e){this.errorSubject.next(new i(e))},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}();e.EventsService=u,e.SimpleOidcErrorEvent=i,e.SimpleOidcEvent=o,e.SimpleOidcInfoEvent=c,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs")):"function"==typeof define&&define.amd?define("angular-simple-oidc/events",["exports","@angular/core","rxjs"],t):t(((e=e||self)["angular-simple-oidc"]=e["angular-simple-oidc"]||{},e["angular-simple-oidc"].events={}),e.ng.core,e.rxjs)}(this,function(e,t,r){"use strict";var n=function(e,t){return(n=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])})(e,t)};var o=function(){},i=function(e){this.error=e};var c=function(e){function t(t,r){var n=e.call(this)||this;return n.message=t,n.payload=r,n}return function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(t,e),t}(o);var u=function(){function e(){this.eventSubject=new r.ReplaySubject(5),this.errorSubject=new r.ReplaySubject(5)}return Object.defineProperty(e.prototype,"events$",{get:function(){return this.eventSubject.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"errors$",{get:function(){return this.errorSubject.asObservable()},enumerable:!0,configurable:!0}),e.prototype.dispatch=function(e){this.eventSubject.next(e)},e.prototype.dispatchError=function(e){this.errorSubject.next(new i(e))},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}();e.EventsService=u,e.SimpleOidcErrorEvent=i,e.SimpleOidcEvent=o,e.SimpleOidcInfoEvent=c,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=angular-simple-oidc-events.umd.min.js.map

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("angular-simple-oidc/config"),require("rxjs/operators"),require("angular-simple-oidc/events"),require("angular-simple-oidc/core"),require("@angular/common/http"),require("angular-simple-oidc/operators")):"function"==typeof define&&define.amd?define("angular-simple-oidc",["exports","@angular/core","rxjs","angular-simple-oidc/config","rxjs/operators","angular-simple-oidc/events","angular-simple-oidc/core","@angular/common/http","angular-simple-oidc/operators"],t):t((e=e||self)["angular-simple-oidc"]={},e.ng.core,e.rxjs,e["angular-simple-oidc"].config,e.rxjs.operators,e["angular-simple-oidc"].events,e["angular-simple-oidc"].core,e.ng.common.http,e["angular-simple-oidc"].operators)}(this,function(e,t,n,r,o,i,a,s,c){"use strict";var u=function(e,t){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function p(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function l(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}var f=["clientId","openIDProviderUrl"];var v=function(e){function t(t){return e.call(this,"Token endpoint returned unexpected error","token-endpoint-unexpected-error",t)||this}return p(t,e),t}(a.SimpleOidcError),g=function(e){function t(t,n){return e.call(this,"Token endpoint returned error: "+t,"token-endpoint-"+t,n)||this}return p(t,e),t}(a.SimpleOidcError),k=function(e){function t(){return e.call(this,"Expected AUTH_CONFIG to be in Injector.\nYou need to provide a configuration either with AngularSimpleOidc.forRoot() or by adding your own (Observable<AuthConfig> | AuthConfig) into the injector with the AUTH_CONFIG injection token.","auth-config-missing",null)||this}return p(t,e),t}(a.SimpleOidcError),y=function(e){function t(t){return e.call(this,"User Info is not supported, or it's URL was not in discovery document","user-info-not-suppo",t)||this}return p(t,e),t}(a.SimpleOidcError),S=new t.InjectionToken("Angular Simple OIDC Window Reference"),m=new t.InjectionToken("Angular Simple OIDC LocalStorage Reference");function I(){return localStorage}var w={provide:m,useFactory:I};function T(){return window}var E={provide:S,useFactory:T},C=new t.InjectionToken("AUTH_CONFIG"),b=new t.InjectionToken("AUTH_CONFIG"),O={discoveryDocumentUrl:"/.well-known/openid-configuration",tokenCallbackRoute:"oidc-token-callback",tokenValidation:{disableIdTokenIATValidation:!1,idTokenIATOffsetAllowed:10},enableAuthorizationCallbackAppInitializer:!0};function A(e,t,r,i){if(!e)throw new k;var a=n.isObservable(e)?e:n.of(e);return function(){return a.pipe(o.map(function(e){return e.openIDProviderUrl?d({},e,{openIDProviderUrl:e.openIDProviderUrl.toLowerCase()}):e}),o.tap(function(e){return t.configure(e,{defaultConfig:d({},O,{baseUrl:(n=document.querySelector("base"),n&&n.href||"")}),requiredFields:f});var n}),o.catchError(function(e){return console.error("Callback failed in AUTH_CONFIG_INITIALIZER"),console.error(e),i.dispatchError(e),n.of(null)})).toPromise()}}var j={multi:!0,provide:t.APP_INITIALIZER,deps:[[new t.Optional,b],C,S,i.EventsService],useFactory:A},U={provide:C,useClass:r.ConfigService},P=function(){function e(e){this.localStorage=e,this.localStateSubject=new n.BehaviorSubject(this.getCurrentLocalState())}return Object.defineProperty(e.prototype,"currentState$",{get:function(){return this.localStateSubject.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storage",{get:function(){return this.localStorage},enumerable:!0,configurable:!0}),e.prototype.storePreAuthorizationState=function(e){this.storage.setItem(a.TokenStorageKeys.Nonce,e.nonce),this.storage.setItem(a.TokenStorageKeys.State,e.state),this.storage.setItem(a.TokenStorageKeys.CodeVerifier,e.codeVerifier),this.storage.setItem(a.TokenStorageKeys.PreRedirectUrl,e.preRedirectUrl);var t=this.getCurrentLocalState();return this.localStateSubject.next(t),n.of(t)},e.prototype.clearPreAuthorizationState=function(){this.storage.removeItem(a.TokenStorageKeys.Nonce),this.storage.removeItem(a.TokenStorageKeys.State),this.storage.removeItem(a.TokenStorageKeys.CodeVerifier),this.storage.removeItem(a.TokenStorageKeys.PreRedirectUrl);var e=this.getCurrentLocalState();return this.localStateSubject.next(e),n.of(e)},e.prototype.storeAuthorizationCode=function(e,t){this.storage.setItem(a.TokenStorageKeys.AuthorizationCode,e),t&&this.storage.setItem(a.TokenStorageKeys.SessionState,t);var r=this.getCurrentLocalState();return this.localStateSubject.next(r),n.of(r)},e.prototype.storeOriginalIdToken=function(e){this.storage.setItem(a.TokenStorageKeys.OriginalIdentityToken,e);var t=this.getCurrentLocalState();return this.localStateSubject.next(t),n.of(t)},e.prototype.storeTokens=function(e){this.storage.setItem(a.TokenStorageKeys.IdentityToken,e.idToken),this.storeJSON(a.TokenStorageKeys.IdentityTokenDecoded,e.decodedIdToken),this.storage.setItem(a.TokenStorageKeys.AccessToken,e.accessToken),e.accessTokenExpiresAt&&this.storage.setItem(a.TokenStorageKeys.AccessTokenExpiration,e.accessTokenExpiresAt.toString()),e.refreshToken&&this.storage.setItem(a.TokenStorageKeys.RefreshToken,e.refreshToken);var t=this.getCurrentLocalState();return this.localStateSubject.next(t),n.of(t)},e.prototype.removeAll=function(){var e,t;try{for(var r=l(Object.keys(a.TokenStorageKeys)),o=r.next();!o.done;o=r.next()){var i=o.value;this.storage.removeItem(a.TokenStorageKeys[i])}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n.of(this.getCurrentLocalState())},e.prototype.getCurrentLocalState=function(){return{nonce:this.storage.getItem(a.TokenStorageKeys.Nonce),state:this.storage.getItem(a.TokenStorageKeys.State),codeVerifier:this.storage.getItem(a.TokenStorageKeys.CodeVerifier),authorizationCode:this.storage.getItem(a.TokenStorageKeys.AuthorizationCode),sessionState:this.storage.getItem(a.TokenStorageKeys.SessionState),identityToken:this.storage.getItem(a.TokenStorageKeys.IdentityToken),originalIdentityToken:this.storage.getItem(a.TokenStorageKeys.OriginalIdentityToken),accessToken:this.storage.getItem(a.TokenStorageKeys.AccessToken),accessTokenExpiration:parseInt(this.storage.getItem(a.TokenStorageKeys.AccessTokenExpiration),10),refreshToken:this.storage.getItem(a.TokenStorageKeys.RefreshToken),preRedirectUrl:this.storage.getItem(a.TokenStorageKeys.PreRedirectUrl),decodedIdentityToken:this.readJSON(a.TokenStorageKeys.IdentityTokenDecoded)}},e.prototype.storeJSON=function(e,t){this.storage.setItem(e,JSON.stringify(t))},e.prototype.readJSON=function(e){var t=this.storage.getItem(e);return t?JSON.parse(t):null},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Storage,decorators:[{type:t.Inject,args:[m]}]}]},e}();var _=/^(\w+:\/\/[^\/?]+)?(.*?)(\?.+)?$/,F=/^(\/\/[^\/?]+)(.*?)(\?.+)?$/;function N(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,r=e[e.length-1];r&&"object"==typeof r&&(n=r,e=e.slice(0,-1)),n=d({leadingSlash:!0,trailingSlash:!1,protocolRelative:!1},n);var o=function(e,t){var n=t.protocolRelative&&e.match(F)||e.match(_)||[];return{beforePathname:n[1]||"",pathname:(n[2]||"").replace(/^\/+/,"").replace(/\/+$/,"").replace(/\/+/g,"/"),afterPathname:n[3]||""}}(e.filter(function(e){return"string"==typeof e||"number"==typeof e}).join("/"),n),i=o.beforePathname,a=o.pathname,s=(o.afterPathname,"");return i?s+=i+(a?"/":""):n.leadingSlash&&(s+="/"),s+=a,n.trailingSlash&&!s.endsWith("/")&&(s+="/"),s}var M=function(e){function t(t){return e.call(this,"Failed to obtain discovery document","discovery-doc-fetch-failed",t)||this}return p(t,e),t}(a.SimpleOidcError),R=function(e){function t(t){return e.call(this,"Failed to obtain JWT Keys","jwt-keys-fetch-failed",t)||this}return p(t,e),t}(a.SimpleOidcError),x=function(e){function t(t){return e.call(this,"Discovery Document Obtained",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),$=function(){function e(e,t,r){var a=this;this.config=e,this.http=t,this.events=r,this.current$=this.config.current$.pipe(o.map(function(e){return N(e.openIDProviderUrl,e.discoveryDocumentUrl)}),o.tap(function(e){return a.events.dispatch(new i.SimpleOidcInfoEvent("Obtaining discovery document",e))}),o.switchMap(function(e){return a.http.get(e)}),o.tap(function(e){return a.events.dispatch(new x(e))}),o.catchError(function(e){return n.throwError(new M(e))}),o.take(1),o.shareReplay()),this.jwtKeys$=this.current$.pipe(o.tap(function(e){return a.events.dispatch(new i.SimpleOidcInfoEvent("Obtaining JWT Keys",e.jwks_uri))}),o.switchMap(function(e){return a.http.get(e.jwks_uri)}),o.tap(function(e){return a.events.dispatch(new i.SimpleOidcInfoEvent("JWT Keys obtained",e))}),o.catchError(function(e){return n.throwError(new R(e))}),o.take(1),o.shareReplay())}return e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:s.HttpClient},{type:i.EventsService}]},e}();var D=function(e){function t(t){return e.call(this,"Tokens obtained",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),L=function(e){function t(t){return e.call(this,"Tokens validated",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),V=function(e){function t(t){return e.call(this,"Tokens are ready to be used (validated and stored)",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),H=function(e){function t(t){return e.call(this,"Access token has expired",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),z=function(e){function t(t){return e.call(this,"Access token is almost expired",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),K=function(e){function t(t){return e.call(this,"Obtained User Profile",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent);var G=function(){function e(e,t,n,r,o){this.http=e,this.discoveryDocumentClient=t,this.tokenValidation=n,this.tokenHelper=r,this.events=o}return e.prototype.call=function(e){var t=this,n=(new s.HttpHeaders).set("Content-Type","application/x-www-form-urlencoded");return this.discoveryDocumentClient.current$.pipe(o.take(1),o.switchMap(function(r){var o=r.token_endpoint;return t.events.dispatch(new i.SimpleOidcInfoEvent("Executing Token Endpoint",{url:o,payload:e})),t.http.post(o,e,{headers:n})}),o.tap({error:function(e){if(!(e instanceof a.SimpleOidcError))throw 400===e.status?new g(e.error.error,e):new v(e)}}),o.map(function(e){var n,r;e.expires_in?n=t.tokenHelper.getExpirationFromExpiresIn(e.expires_in):t.events.dispatch(new i.SimpleOidcInfoEvent("Token Response did not contain expires_in",e)),e.id_token?(t.events.dispatch(new i.SimpleOidcInfoEvent("Validating Identity Token format",e.id_token)),t.tokenValidation.validateIdTokenFormat(e.id_token),r=t.tokenHelper.getPayloadFromToken(e.id_token),t.events.dispatch(new i.SimpleOidcInfoEvent("Identity Token Payload decoded",r))):t.events.dispatch(new i.SimpleOidcInfoEvent("Token Response did not contain id_token",e));var o={accessToken:e.access_token,accessTokenExpiresIn:e.expires_in,accessTokenExpiresAt:n?n.getTime():null,error:e.error,idToken:e.id_token,refreshToken:e.refresh_token,decodedIdToken:r};return t.events.dispatch(new D(o)),o}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:s.HttpClient},{type:$},{type:a.TokenValidationService},{type:a.TokenHelperService},{type:i.EventsService}]},e}();var W=function(){function e(e){this.document=e,this.handle=this.document.createElement("iframe")}return e.prototype.appendTo=function(e){return e.appendChild(this.handle),this},e.prototype.appendToBody=function(){return this.appendTo(this.document.body),this},e.prototype.setSource=function(e){return this.handle.src=e,this},e.prototype.hide=function(){return this.handle.style.display="none",this},e.prototype.postMessage=function(e,t){return this.handle.contentWindow.postMessage(e,t),this},e.prototype.remove=function(){return this.handle.parentElement.removeChild(this.handle),this},e}();var q=function(){function e(e){this.window=e,this.pending=[]}return e.prototype.create=function(){var e=new W(this.window.document);return this.pending.push(e),e},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(S))},token:e,providedIn:"root"}),e}();var Z=function(){function e(e,t,n,r,o,i,a,s,c){this.window=e,this.config=t,this.discoveryDocumentClient=n,this.tokenStorage=r,this.tokenValidation=o,this.tokenUrl=i,this.tokenEndpointClient=a,this.events=s,this.dynamicIframe=c}return e.prototype.startCodeFlow=function(e){var t=this;void 0===e&&(e={});var n=d({},e);return n.returnUrlAfterCallback||(n.returnUrlAfterCallback=this.window.location.href),this.config.current$.pipe(o.map(function(e){return N(e.baseUrl,e.tokenCallbackRoute)}),o.switchMap(function(e){return t.generateCodeFlowMetadata({redirectUri:e})}),o.tap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow"))}),o.switchMap(function(e){return t.events.dispatch(new i.SimpleOidcInfoEvent("Authorize URL generated",e)),t.tokenStorage.storePreAuthorizationState({nonce:e.nonce,state:e.state,codeVerifier:e.codeVerifier,preRedirectUrl:n.returnUrlAfterCallback}).pipe(o.tap(function(n){t.events.dispatch(new i.SimpleOidcInfoEvent("Pre-authorize state stored",n)),t.redirectToUrl(e.url)}))}),o.take(1))},e.prototype.generateCodeFlowMetadata=function(e){var t=this;return this.discoveryDocumentClient.current$.pipe(o.withLatestFrom(this.config.current$),o.map(function(n){var r=h(n,2),o=r[0],i=r[1];return t.tokenUrl.createAuthorizeUrl(o.authorization_endpoint,d({clientId:i.clientId,scope:i.scope,responseType:"code"},e))}),o.take(1))},e.prototype.parseCodeFlowCallbackParams=function(e){try{var t=this.tokenUrl.parseAuthorizeCallbackParamsFromUrl(e);return d({},t,{href:e})}catch(e){throw new a.AuthorizationCallbackFormatError(e)}},e.prototype.validateCodeFlowCallback=function(e,t){var n=e.href,r=e.code,o=e.state,a=e.error;this.events.dispatch(new i.SimpleOidcInfoEvent("Validating URL params",{code:r,state:o,error:a,href:n})),this.tokenValidation.validateAuthorizeCallbackFormat(r,o,a,n),this.events.dispatch(new i.SimpleOidcInfoEvent("Validating state vs local state",{localState:t,state:o})),this.tokenValidation.validateAuthorizeCallbackState(t,o),this.events.dispatch(new i.SimpleOidcInfoEvent("Obtained authorization code.",{code:r,state:o}))},e.prototype.codeFlowCallback=function(e,t,n){var r=this,i=this.parseCodeFlowCallbackParams(e);return this.validateCodeFlowCallback(i,n.state),this.tokenStorage.storeAuthorizationCode(i.code,i.sessionState).pipe(o.switchMap(function(){return r.config.current$}),o.switchMap(function(e){var o=r.tokenUrl.createAuthorizationCodeRequestPayload({clientId:e.clientId,clientSecret:e.clientSecret,scope:e.scope,redirectUri:t,code:i.code,codeVerifier:n.codeVerifier});return r.requestTokenWithAuthCode(o,n.nonce)}))},e.prototype.currentWindowCodeFlowCallback=function(){var e=this;return this.tokenStorage.currentState$.pipe(o.take(1),o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow callback"))}),o.withLatestFrom(this.config.current$),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];return{localState:n,redirectUri:N(r.baseUrl,r.tokenCallbackRoute)}}),o.switchMap(function(t){var n=t.localState,r=t.redirectUri;return e.codeFlowCallback(e.window.location.href,r,n).pipe(o.tap(function(){return e.historyChangeUrl(n.preRedirectUrl)}))}),o.take(1))},e.prototype.requestTokenWithAuthCode=function(e,t){var n=this,r=this.discoveryDocumentClient.current$.pipe(o.take(1)),a=this.discoveryDocumentClient.jwtKeys$.pipe(o.take(1));return this.tokenEndpointClient.call(e).pipe(o.tap(function(){return n.events.dispatch(new i.SimpleOidcInfoEvent("Requesting token using authorization code",e))}),o.withLatestFrom(r,a,this.config.current$),o.take(1),o.tap(function(e){var r=h(e,4),o=r[0],a=r[1],s=r[2],c=r[3];n.events.dispatch(new i.SimpleOidcInfoEvent("Validating identity token..",{result:o,nonce:t,discoveryDocument:a,jwtKeys:s})),n.tokenValidation.validateIdToken(c.clientId,o.idToken,o.decodedIdToken,t,a,s,c.tokenValidation)}),o.tap(function(e){var t=h(e,1)[0];n.events.dispatch(new i.SimpleOidcInfoEvent("Validating access token..",t)),n.tokenValidation.validateAccessToken(t.accessToken,t.decodedIdToken.at_hash)}),c.switchTap(function(){return n.events.dispatch(new i.SimpleOidcInfoEvent("Clearing pre-authorize state..")),n.tokenStorage.clearPreAuthorizationState()}),c.switchTap(function(e){var t=h(e,1)[0];return n.events.dispatch(new L(t)),n.events.dispatch(new i.SimpleOidcInfoEvent("Storing tokens..",t)),n.tokenStorage.storeTokens(t)}),c.switchTap(function(e){var t=h(e,1)[0];return n.events.dispatch(new i.SimpleOidcInfoEvent("Storing original Identity Token..",t.idToken)),n.tokenStorage.storeOriginalIdToken(t.idToken)}),o.map(function(e){return h(e,1)[0]}),o.tap(function(e){return n.events.dispatch(new V(e))}))},e.prototype.redirectToUrl=function(e){this.events.dispatch(new i.SimpleOidcInfoEvent("Redirecting",e)),this.window.location.href=e},e.prototype.historyChangeUrl=function(e){this.window.history?(this.events.dispatch(new i.SimpleOidcInfoEvent("Changing URL with history API",e)),this.window.history.pushState({},null,e)):this.redirectToUrl(e)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:$},{type:P},{type:a.TokenValidationService},{type:a.TokenUrlService},{type:G},{type:i.EventsService},{type:q}]},e}();function J(e,t,r,i){return function(){return e.current$.pipe(o.take(1),o.switchMap(function(e){return e.enableAuthorizationCallbackAppInitializer&&i.location.pathname.includes(e.tokenCallbackRoute)?t.currentWindowCodeFlowCallback():n.of(null)}),o.catchError(function(e){return console.error("Callback failed in APP_INITIALIZER"),console.error(e),r.dispatchError(e),n.of(null)})).toPromise()}}var B={provide:t.APP_INITIALIZER,useFactory:J,deps:[C,Z,i.EventsService,S],multi:!0},Y=function(){function e(e,t,n,r,o,i,a,s){this.config=e,this.tokenStorage=t,this.tokenUrl=n,this.tokenHelper=r,this.tokenEndpointClient=o,this.refreshTokenValidation=i,this.tokenValidation=a,this.events=s}return e.prototype.requestTokenWithRefreshCode=function(){var e=this;return this.tokenStorage.currentState$.pipe(o.withLatestFrom(this.config.current$),o.take(1),o.switchMap(function(t){var n=h(t,2),r=n[0],o=n[1],a=e.tokenUrl.createRefreshTokenRequestPayload({clientId:o.clientId,clientSecret:o.clientSecret,refreshToken:r.refreshToken});return e.events.dispatch(new i.SimpleOidcInfoEvent("Refreshing token using refresh code",{payload:a,refreshToken:r.refreshToken})),e.tokenEndpointClient.call(a)}),o.withLatestFrom(this.tokenStorage.currentState$),o.tap(function(t){var n=h(t,2),r=n[0],o=n[1],a=e.tokenHelper.getPayloadFromToken(o.originalIdentityToken);e.events.dispatch(new i.SimpleOidcInfoEvent("Validating new Identity Token against original",{result:r,originalToken:a})),e.refreshTokenValidation.validateIdToken(a,r.decodedIdToken)}),o.tap(function(t){var n=h(t,1)[0];e.events.dispatch(new i.SimpleOidcInfoEvent("Validating access token against at_hash",{accessToken:n.accessToken,hash:n.decodedIdToken.at_hash})),e.tokenValidation.validateAccessToken(n.accessToken,n.decodedIdToken.at_hash)}),o.tap(function(t){var n=h(t,1)[0];return e.events.dispatch(new L(n))}),o.switchMap(function(t){var n=h(t,1)[0];return e.events.dispatch(new i.SimpleOidcInfoEvent("Storing new tokens..",n)),e.tokenStorage.storeTokens(n).pipe(o.map(function(){return n}))}),o.tap(function(t){return e.events.dispatch(new V(t))}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:P},{type:a.TokenUrlService},{type:a.TokenHelperService},{type:G},{type:a.RefreshTokenValidationService},{type:a.TokenValidationService},{type:i.EventsService}]},e}();var Q=function(){function e(e,t,n,r,o){this.window=e,this.discoveryDocumentClient=t,this.tokenUrl=n,this.tokenStorage=r,this.events=o}return e.prototype.logoutWithRedirect=function(e){var t=this,r=this.discoveryDocumentClient.current$,a=this.tokenStorage.currentState$;return n.combineLatest(r,a).pipe(o.take(1),o.map(function(n){var r=h(n,2),o=r[0],i=r[1];return t.tokenUrl.createEndSessionUrl(o.end_session_endpoint,{idTokenHint:i.identityToken,postLogoutRedirectUri:e})}),c.switchTap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Deleting Local Session")),t.tokenStorage.removeAll()}),o.tap(function(e){var n=e.url;t.events.dispatch(new i.SimpleOidcInfoEvent("Redirecting to End Session Endpoint",n)),t.window.location.href=n}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:$},{type:a.TokenUrlService},{type:P},{type:i.EventsService}]},e}();var X=function(){function e(e,t,n,r){this.discoveryDocumentClient=e,this.tokenStorage=t,this.events=n,this.http=r}return e.prototype.getUserInfo=function(){var e=this,t=this.discoveryDocumentClient.current$,r=this.tokenStorage.currentState$;return n.combineLatest(t,r).pipe(o.take(1),o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Requesting User Info"))}),o.tap(function(e){var t=h(e,1)[0];if(!t.userinfo_endpoint)throw new y(t)}),o.switchMap(function(t){var n=h(t,2),r=n[0],o=n[1];return e.http.get(r.userinfo_endpoint,{headers:new s.HttpHeaders({authorization:"Bearer "+o.accessToken})})}),o.tap(function(t){return e.events.dispatch(new K(t))}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:$},{type:P},{type:i.EventsService},{type:s.HttpClient}]},e}();var ee=function(){function e(e,t,n,r,i,a,s,u){var p=this;this.oidcClient=e,this.tokenHelper=t,this.tokenStorage=n,this.refreshTokenClient=r,this.endSessionClient=i,this.config=a,this.events=s,this.userInfoClient=u,this.userInfo$=this.events$.pipe(c.filterInstanceOf(V),o.switchMap(function(){return p.userInfoClient.getUserInfo()}),o.shareReplay())}return Object.defineProperty(e.prototype,"isLoggedIn$",{get:function(){var e=this;return this.tokenStorage.currentState$.pipe(o.map(function(t){var n=t.accessToken,r=t.accessTokenExpiration;return!(!n||e.tokenHelper.isTokenExpired(r))}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"accessToken$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.accessToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tokenExpiration$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return new Date(e.accessTokenExpiration)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"refreshToken$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.refreshToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"identityToken$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.identityToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"identityTokenDecoded$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.decodedIdentityToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"events$",{get:function(){return this.events.events$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"errors$",{get:function(){return this.events.errors$},enumerable:!0,configurable:!0}),e.prototype.startCodeFlow=function(e){var t=this;return this.oidcClient.startCodeFlow(e).pipe(o.tap({error:function(e){return t.events.dispatchError(e)}}))},e.prototype.refreshAccessToken=function(){var e=this;return this.refreshTokenClient.requestTokenWithRefreshCode().pipe(o.tap({error:function(t){return e.events.dispatchError(t)}}))},e.prototype.endSession=function(e){var t=this;return this.config.current$.pipe(o.take(1),o.switchMap(function(n){return t.endSessionClient.logoutWithRedirect(e||n.baseUrl)}),o.tap({error:function(e){return t.events.dispatchError(e)}}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Z},{type:a.TokenHelperService},{type:P},{type:Y},{type:Q},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:i.EventsService},{type:X}]},e}();var te=function(){function e(e,t){this.auth=e,this.events=t}return e.prototype.canActivate=function(e,t){var r=this;return this.auth.isLoggedIn$.pipe(o.take(1),o.switchMap(function(e){return e?n.of(!0):(r.events.dispatch(new i.SimpleOidcInfoEvent("Route requires auth. No token or it's expired.",{route:t.url})),r.auth.startCodeFlow({returnUrlAfterCallback:t.url}).pipe(o.map(function(){return!1})))}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:ee},{type:i.EventsService}]},e}();var ne=function(){function e(e,t,r,a){var s=this;this.auth=e,this.events=t,this.storage=r,this.tokenHelper=a,this.destroyedSubject=new n.Subject,r.currentState$.pipe(o.take(1)).subscribe(function(e){(e.accessToken||e.identityToken||e.refreshToken)&&(a.isTokenExpired(e.accessTokenExpiration)?s.events.dispatch(new i.SimpleOidcInfoEvent("Have token in storage but is expired")):s.events.dispatch(new V({accessToken:e.accessToken,accessTokenExpiresAt:e.accessTokenExpiration,decodedIdToken:e.decodedIdentityToken,idToken:e.identityToken,refreshToken:e.refreshToken})))}),this.watchTokenExpiration()}return e.prototype.watchTokenExpiration=function(){var e=this;this.auth.events$.pipe(c.filterInstanceOf(V),o.switchMap(function(e){var t=e.payload;if(t.accessToken&&t.accessTokenExpiresAt){var r=new Date(t.accessTokenExpiresAt),a=new Date(t.accessTokenExpiresAt);a.setSeconds(a.getSeconds()-60);var s=n.of(new z({token:t.accessToken,expiresAt:r})).pipe(o.delay(a)),c=n.of(new H({token:t.accessToken,expiredAt:r})).pipe(o.delay(r));return n.merge(s,c)}return n.of(new i.SimpleOidcInfoEvent("TokenExpired event not configured due to access token or expiration empty."))}),o.takeUntil(this.destroyedSubject)).subscribe(function(t){t.payload&&(t.payload.now=new Date),e.events.dispatch(t)})},e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[],declarations:[]}]}],e.ctorParameters=function(){return[{type:ee},{type:i.EventsService},{type:P},{type:a.TokenHelperService}]},e}();var re=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[null!=t?{provide:b,useValue:t}:[],U,j,B]}},e.decorators=[{type:t.NgModule,args:[{imports:[s.HttpClientModule,a.AngularSimpleOidcCoreModule,ne],providers:[E,w,P,G,$,Z,Y,Q,X,ee,te],declarations:[],exports:[a.AngularSimpleOidcCoreModule]}]}],e}();var oe=function(){function e(e,t){var r=this;this.auth=e,this.events=t,this.destroyedSubject=new n.Subject,this.auth.events$.pipe(c.filterInstanceOf(z),o.switchMap(function(){return r.auth.refreshAccessToken()}),o.takeUntil(this.destroyedSubject)).subscribe()}return e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[],declarations:[]}]}],e.ctorParameters=function(){return[{type:ee},{type:i.EventsService}]},e}();var ie=function(e){function t(t){return e.call(this,"Session check not supported by OP: check_session_iframe on discovery document and session_state are required","session-check-not-supported",t)||this}return p(t,e),t}(a.SimpleOidcError),ae=function(e){function t(t){return e.call(this,"OP iframe returned error. According to spec, message malformed?","session-check-error",t)||this}return p(t,e),t}(a.SimpleOidcError),se=function(e){function t(t){return e.call(this,"Iframe failed to postMessage back in given time.","iframe-post-message-timeout",t)||this}return p(t,e),t}(a.SimpleOidcError),ce=function(e){function t(){return e.call(this,"Expected SESSION_MANAGEMENT_CONFIG to be in Injector.\nYou need to provide a configuration either with SessionManagementModule.forRoot() or by adding your own (Observable<SessionManagementConfig> | SessionManagementConfig) into the injector with the SESSION_MANAGEMENT_CONFIG injection token.","session-management-config-missing",null)||this}return p(t,e),t}(a.SimpleOidcError),ue=function(e){function t(){return e.call(this,"Session has changed.")||this}return p(t,e),t}(i.SimpleOidcInfoEvent),pe=function(e){function t(t){return e.call(this,"Session has been terminated.",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),de=["iframePath"];var le=new t.InjectionToken("SESSION_MANAGEMENT_CONFIG_SERVICE"),he=new t.InjectionToken("SESSION_MANAGEMENT_CONFIG"),fe={opIframePollInterval:1e3,iframeTimeout:1e4};function ve(e,t,r){if(!e)throw new ce;var i=n.isObservable(e)?e:n.of(e);return function(){return i.pipe(o.tap(function(e){return t.configure(e,{defaultConfig:fe,requiredFields:de})}),o.catchError(function(e){return console.error("Callback failed in SESSION_MANAGEMENT_CONFIG_INITIALIZER"),console.error(e),r.dispatchError(e),n.of(null)})).toPromise()}}var ge={multi:!0,provide:t.APP_INITIALIZER,deps:[[new t.Optional,he],le,i.EventsService],useFactory:ve},ke={provide:le,useClass:r.ConfigService},ye=function(){function e(e,t,r,o,i,a,s){this.window=e,this.discoveryClient=t,this.dynamicIframe=r,this.tokenStorage=o,this.config=i,this.sessionConfig=a,this.events=s,this.destroyedSubject=new n.Subject}return e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.prototype.startSessionCheck=function(){var e=this,t=this.tokenStorage.currentState$.pipe(o.take(1)),r=this.discoveryClient.current$.pipe(o.take(1)),a=this.dynamicIframe.create().hide();return n.combineLatest(r,t).pipe(o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Starting Session Check"))}),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];if(n.check_session_iframe&&r.sessionState)return a.setSource(n.check_session_iframe).appendToBody(),r;throw new ie({doc:n,localState:r})}),o.withLatestFrom(this.config.current$,this.sessionConfig.current$),o.take(1),o.switchMap(function(t){var r=h(t,3),i=r[0],s=r[1],c=r[2],u=new URL(s.openIDProviderUrl).origin,p=n.interval(c.opIframePollInterval).pipe(o.map(function(){return s.clientId.toLowerCase()+" "+i.sessionState}),o.tap(function(e){return a.postMessage(e,u)})),d=n.fromEvent(e.window,"message").pipe(o.filter(function(e){return e.origin===u}),o.map(function(t){return e.fireEventsFromMessage(t)}),o.filter(function(e){return!!e}));return n.combineLatest(p,d).pipe(o.map(function(e){return e[1]}))}),o.finalize(function(){return a.remove()}),o.takeUntil(this.destroyedSubject.asObservable()))},e.prototype.fireEventsFromMessage=function(e){var t=e.data;switch(t){case"changed":return this.events.dispatch(new ue),t;case"unchanged":return t;case"error":throw new ae(e);default:return null}},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:$},{type:q},{type:P},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[le]}]},{type:i.EventsService}]},e}();var Se=function(){function e(e,t,n,r,o,i,a,s,c){this.window=e,this.discoveryClient=t,this.dynamicIframe=n,this.tokenStorage=r,this.authConfig=o,this.sessionConfig=i,this.events=a,this.oidcClient=s,this.tokenUrl=c}return e.prototype.startCodeFlowInIframe=function(){var e=this,t=this.authConfig.current$.pipe(o.withLatestFrom(this.sessionConfig.current$),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];return N(n.baseUrl,r.iframePath)}));return this.tokenStorage.currentState$.pipe(o.take(1),o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow in iframe"))}),o.withLatestFrom(t),o.switchMap(function(t){var n=h(t,2),r=n[0].identityToken,i=n[1];return e.oidcClient.generateCodeFlowMetadata({redirectUri:i,prompt:"none",idTokenHint:r}).pipe(o.map(function(e){return{metadata:e,iframeUrl:i}}))}),o.withLatestFrom(this.sessionConfig.current$),o.take(1),o.switchMap(function(t){var r=h(t,2),a=r[0],s=a.metadata,c=a.iframeUrl,u=r[1];e.events.dispatch(new i.SimpleOidcInfoEvent("Creating iframe",s));var p=e.dynamicIframe.create().hide().setSource(s.url).appendToBody();return n.fromEvent(e.window,"message").pipe(o.map(function(e){return{event:e,iframe:p,metadata:s,iframeUrl:c}}),o.filter(function(e){return e.event.data.startsWith(c)}),o.take(1),o.timeout(u.iframeTimeout),o.catchError(function(e){if(e.name&&"TimeoutError"===e.name)throw new se({iframe:p,e:e});return n.throwError(e)}))}),o.map(function(t){var n=t.event,r=t.iframe,o=t.metadata,a=t.iframeUrl,s=n.data;return e.events.dispatch(new i.SimpleOidcInfoEvent("Obtained data from iframe",{event:n,href:s})),r.remove(),{href:s,iframeUrl:a,metadata:o}}),o.switchMap(function(t){var n=t.href,r=t.iframeUrl,o=t.metadata;return e.oidcClient.codeFlowCallback(n,r,o)}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:$},{type:q},{type:P},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[le]}]},{type:i.EventsService},{type:Z},{type:a.TokenUrlService}]},e}();var me=function(){function e(e,t,r,a){var s=this;this.sessionCheck=e,this.events=t,this.authorizeSilentClient=r,this.tokenStorage=a,this.destroyedSubject=new n.Subject;var u=this.events.events$.pipe(c.filterInstanceOf(ue));this.events.events$.pipe(c.filterInstanceOf(V),o.switchMap(function(){return s.sessionCheck.startSessionCheck()}),o.takeUntil(this.destroyedSubject),o.takeUntil(u)).subscribe();var p=this.tokenStorage.currentState$.pipe(o.take(1),o.switchMap(function(e){return s.authorizeSilentClient.startCodeFlowInIframe().pipe(o.map(function(t){return{result:t,previousState:e}}))}),o.tap(function(e){var t=e.result,n=e.previousState,r=t.decodedIdToken,o=n.decodedIdentityToken;o&&r.sub!==o.sub&&s.events.dispatch(new pe({previousToken:o,newToken:r}))}),o.catchError(function(e){return s.events.dispatch(new pe({error:e.context})),n.of(null)}));this.events.events$.pipe(c.filterInstanceOf(ue),o.tap(function(){return s.events.dispatch(new i.SimpleOidcInfoEvent("Session has changed. Starting silent code flow."))}),o.switchMap(function(){return p}),o.takeUntil(this.destroyedSubject)).subscribe()}return e.forRoot=function(t){return{ngModule:e,providers:[null!=t?{provide:he,useValue:t}:[],ke,ge]}},e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[ye,Se],declarations:[]}]}],e.ctorParameters=function(){return[{type:ye},{type:i.EventsService},{type:Se},{type:P}]},e}();var Ie=function(e){function t(t){return e.call(this,"Child window has been closed, no response was received","child-window-closed",t)||this}return p(t,e),t}(a.SimpleOidcError),we=function(e){function t(){return e.call(this,"Expected POPUP_AUTHORIZATION_CONFIG to be in Injector.\nYou need to provide a configuration either with PopupAuthorizationModule.forRoot() or by adding your own (Observable<PopupAuthorizationConfig> | PopupAuthorizationConfig) into the injector with the POPUP_AUTHORIZATION_CONFIG injection token.","popup-authorization-config-missing",null)||this}return p(t,e),t}(a.SimpleOidcError),Te=["childWindowPath"];var Ee=new t.InjectionToken("POPUP_AUTHORIZATION_CONFIG_SERVICE"),Ce=new t.InjectionToken("POPUP_AUTHORIZATION_CONFIG"),be={};function Oe(e,t,r){if(!e)throw new we;var i=n.isObservable(e)?e:n.of(e);return function(){return i.pipe(o.tap(function(e){return t.configure(e,{defaultConfig:be,requiredFields:Te})}),o.catchError(function(e){return console.error("Callback failed in POPUP_AUTHORIZATION_CONFIG_INITIALIZER"),console.error(e),r.dispatchError(e),n.of(null)})).toPromise()}}var Ae={multi:!0,provide:t.APP_INITIALIZER,deps:[[new t.Optional,Ce],Ee,i.EventsService],useFactory:Oe},je={provide:Ee,useClass:r.ConfigService},Ue=function(){function e(e,t,r,o,i,a,s){this.window=e,this.tokenStorage=t,this.authConfig=r,this.popupConfig=o,this.events=i,this.oidcClient=a,this.tokenUrl=s,this.destroyedSubject=new n.Subject}return e.prototype.startCodeFlowInPopup=function(e){var t=this;return void 0===e&&(e={}),this.authConfig.current$.pipe(o.withLatestFrom(this.popupConfig.current$),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];return N(n.baseUrl,r.childWindowPath)}),o.take(1)).pipe(o.tap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow in child window"))}),o.switchMap(function(e){return t.oidcClient.generateCodeFlowMetadata({redirectUri:e,display:"popup"}).pipe(o.map(function(t){return{metadata:t,redirectUri:e}}))}),o.take(1),o.switchMap(function(r){var a=r.metadata,s=r.redirectUri;t.events.dispatch(new i.SimpleOidcInfoEvent("Creating window",a));var c=t.window.open(a.url,"_blank",t.calculatePopupFeatures(e)),u=n.interval(500).pipe(o.tap(function(){return console.info("polling")}),o.filter(function(){return c.closed}),o.tap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Child Window has been closed"))}),o.tap(function(){throw new Ie({handle:c,metadata:a,redirectUri:s})}),o.take(1));return n.fromEvent(t.window,"message").pipe(o.map(function(e){return{event:e,handle:c,metadata:a,redirectUri:s}}),o.filter(function(e){var t=e.event;return t.data&&"string"==typeof t.data}),o.filter(function(e){return e.event.data.startsWith(s)}),o.take(1),o.takeUntil(u))}),o.map(function(e){var n=e.event,r=e.handle,o=e.metadata,a=e.redirectUri,s=n.data;return t.events.dispatch(new i.SimpleOidcInfoEvent("Obtained data from window",{event:n,href:s})),r.close(),{href:s,metadata:o,redirectUri:a}}),o.switchMap(function(e){var n=e.href,r=e.redirectUri,o=e.metadata;return t.oidcClient.codeFlowCallback(n,r,o)}),o.takeUntil(this.destroyedSubject))},e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.prototype.calculatePopupFeatures=function(e){var t=e.height||660,n=e.width||500,r=this.window.screen,o=r.width/2-n/2;return"location=no,toolbar=no,width="+n+",height="+t+",top="+(r.height/2-t/2)+",left="+o},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:P},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[Ee]}]},{type:i.EventsService},{type:Z},{type:a.TokenUrlService}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(S),t.ɵɵinject(P),t.ɵɵinject(C),t.ɵɵinject(Ee),t.ɵɵinject(i.EventsService),t.ɵɵinject(Z),t.ɵɵinject(a.TokenUrlService))},token:e,providedIn:"root"}),e}();var Pe=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[null!=t?{provide:Ce,useValue:t}:[],je,Ae]}},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[Ue],declarations:[]}]}],e}();e.AUTH_CONFIG=b,e.AUTH_CONFIG_SERVICE=C,e.AccessTokenExpiredEvent=H,e.AccessTokenExpiringEvent=z,e.AngularSimpleOidcModule=re,e.AuthGuard=te,e.AuthService=ee,e.AuthenticationConfigurationMissingError=k,e.AuthorizeEndpointPopupClientService=Ue,e.AuthorizeEndpointSilentClientService=Se,e.AutomaticRefreshModule=oe,e.ChildWindowClosedError=Ie,e.DiscoveryDocumentObtainedEvent=x,e.EndSessionClientService=Q,e.IframePostMessageTimeoutError=se,e.LOCAL_STORAGE_REF=m,e.OidcCodeFlowClient=Z,e.OidcDiscoveryDocClient=$,e.POPUP_AUTHORIZATION_CONFIG=Ce,e.POPUP_AUTHORIZATION_CONFIG_REQUIRED_FIELDS=Te,e.POPUP_AUTHORIZATION_CONFIG_SERVICE=Ee,e.PopupAuthorizationConfigurationMissingError=we,e.PopupAuthorizationModule=Pe,e.RefreshTokenClient=Y,e.SESSION_MANAGEMENT_CONFIG=he,e.SESSION_MANAGEMENT_CONFIG_REQUIRED_FIELDS=de,e.SESSION_MANAGEMENT_CONFIG_SERVICE=le,e.SessionChangedEvent=ue,e.SessionCheckFailedError=ae,e.SessionCheckNotSupportedError=ie,e.SessionCheckService=ye,e.SessionManagementConfigurationMissingError=ce,e.SessionManagementModule=me,e.SessionTerminatedEvent=pe,e.TokenEndpointError=g,e.TokenEndpointUnexpectedError=v,e.TokenStorageService=P,e.TokensObtainedEvent=D,e.TokensReadyEvent=V,e.TokensValidatedEvent=L,e.UserInfoNotSupportedError=y,e.UserInfoObtainedEvent=K,e.WINDOW_REF=S,e.ɵa=I,e.ɵb=w,e.ɵc=T,e.ɵd=E,e.ɵe=A,e.ɵf=j,e.ɵg=U,e.ɵh=ve,e.ɵi=ge,e.ɵj=ke,e.ɵk=Oe,e.ɵl=Ae,e.ɵm=je,e.ɵn=ne,e.ɵo=G,e.ɵp=q,e.ɵq=X,e.ɵr=J,e.ɵs=B,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("angular-simple-oidc/config"),require("rxjs/operators"),require("angular-simple-oidc/events"),require("angular-simple-oidc/core"),require("@angular/common/http"),require("angular-simple-oidc/operators")):"function"==typeof define&&define.amd?define("angular-simple-oidc",["exports","@angular/core","rxjs","angular-simple-oidc/config","rxjs/operators","angular-simple-oidc/events","angular-simple-oidc/core","@angular/common/http","angular-simple-oidc/operators"],t):t((e=e||self)["angular-simple-oidc"]={},e.ng.core,e.rxjs,e["angular-simple-oidc"].config,e.rxjs.operators,e["angular-simple-oidc"].events,e["angular-simple-oidc"].core,e.ng.common.http,e["angular-simple-oidc"].operators)}(this,function(e,t,n,r,o,i,a,s,c){"use strict";var u=function(e,t){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function p(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function l(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}var f=["clientId","openIDProviderUrl"];var v=function(e){function t(t){return e.call(this,"Token endpoint returned unexpected error","token-endpoint-unexpected-error",t)||this}return p(t,e),t}(a.SimpleOidcError),g=function(e){function t(t,n){return e.call(this,"Token endpoint returned error: "+t,"token-endpoint-"+t,n)||this}return p(t,e),t}(a.SimpleOidcError),k=function(e){function t(){return e.call(this,"Expected AUTH_CONFIG to be in Injector.\nYou need to provide a configuration either with AngularSimpleOidc.forRoot() or by adding your own (Observable<AuthConfig> | AuthConfig) into the injector with the AUTH_CONFIG injection token.","auth-config-missing",null)||this}return p(t,e),t}(a.SimpleOidcError),y=function(e){function t(t){return e.call(this,"User Info is not supported, or it's URL was not in discovery document","user-info-not-suppo",t)||this}return p(t,e),t}(a.SimpleOidcError),S=new t.InjectionToken("Angular Simple OIDC Window Reference"),m=new t.InjectionToken("Angular Simple OIDC LocalStorage Reference");function I(){return localStorage}var w={provide:m,useFactory:I};function T(){return window}var E={provide:S,useFactory:T},C=new t.InjectionToken("AUTH_CONFIG"),b=new t.InjectionToken("AUTH_CONFIG"),O={discoveryDocumentUrl:"/.well-known/openid-configuration",tokenCallbackRoute:"oidc-token-callback",tokenValidation:{disableIdTokenIATValidation:!1,idTokenIATOffsetAllowed:10},enableAuthorizationCallbackAppInitializer:!0};function A(e,t,r,i){if(!e)throw new k;var a=n.isObservable(e)?e:n.of(e);return function(){return a.pipe(o.map(function(e){return e.openIDProviderUrl?d({},e,{openIDProviderUrl:e.openIDProviderUrl.toLowerCase()}):e}),o.tap(function(e){return t.configure(e,{defaultConfig:d({},O,{baseUrl:(n=document.querySelector("base"),n&&n.href||"")}),requiredFields:f});var n}),o.catchError(function(e){return console.error("Callback failed in AUTH_CONFIG_INITIALIZER"),console.error(e),i.dispatchError(e),n.of(null)})).toPromise()}}var j={multi:!0,provide:t.APP_INITIALIZER,deps:[[new t.Optional,b],C,S,i.EventsService],useFactory:A},U={provide:C,useClass:r.ConfigService},P=function(){function e(e){this.localStorage=e,this.localStateSubject=new n.BehaviorSubject(this.getCurrentLocalState())}return Object.defineProperty(e.prototype,"currentState$",{get:function(){return this.localStateSubject.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storage",{get:function(){return this.localStorage},enumerable:!0,configurable:!0}),e.prototype.storePreAuthorizationState=function(e){this.storage.setItem(a.TokenStorageKeys.Nonce,e.nonce),this.storage.setItem(a.TokenStorageKeys.State,e.state),this.storage.setItem(a.TokenStorageKeys.CodeVerifier,e.codeVerifier),this.storage.setItem(a.TokenStorageKeys.PreRedirectUrl,e.preRedirectUrl);var t=this.getCurrentLocalState();return this.localStateSubject.next(t),n.of(t)},e.prototype.clearPreAuthorizationState=function(){this.storage.removeItem(a.TokenStorageKeys.Nonce),this.storage.removeItem(a.TokenStorageKeys.State),this.storage.removeItem(a.TokenStorageKeys.CodeVerifier),this.storage.removeItem(a.TokenStorageKeys.PreRedirectUrl);var e=this.getCurrentLocalState();return this.localStateSubject.next(e),n.of(e)},e.prototype.storeAuthorizationCode=function(e,t){this.storage.setItem(a.TokenStorageKeys.AuthorizationCode,e),t&&this.storage.setItem(a.TokenStorageKeys.SessionState,t);var r=this.getCurrentLocalState();return this.localStateSubject.next(r),n.of(r)},e.prototype.storeOriginalIdToken=function(e){this.storage.setItem(a.TokenStorageKeys.OriginalIdentityToken,e);var t=this.getCurrentLocalState();return this.localStateSubject.next(t),n.of(t)},e.prototype.storeTokens=function(e){this.storage.setItem(a.TokenStorageKeys.IdentityToken,e.idToken),this.storeJSON(a.TokenStorageKeys.IdentityTokenDecoded,e.decodedIdToken),this.storage.setItem(a.TokenStorageKeys.AccessToken,e.accessToken),e.accessTokenExpiresAt&&this.storage.setItem(a.TokenStorageKeys.AccessTokenExpiration,e.accessTokenExpiresAt.toString()),e.refreshToken&&this.storage.setItem(a.TokenStorageKeys.RefreshToken,e.refreshToken);var t=this.getCurrentLocalState();return this.localStateSubject.next(t),n.of(t)},e.prototype.removeAll=function(){var e,t;try{for(var r=l(Object.keys(a.TokenStorageKeys)),o=r.next();!o.done;o=r.next()){var i=o.value;this.storage.removeItem(a.TokenStorageKeys[i])}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n.of(this.getCurrentLocalState())},e.prototype.getCurrentLocalState=function(){return{nonce:this.storage.getItem(a.TokenStorageKeys.Nonce),state:this.storage.getItem(a.TokenStorageKeys.State),codeVerifier:this.storage.getItem(a.TokenStorageKeys.CodeVerifier),authorizationCode:this.storage.getItem(a.TokenStorageKeys.AuthorizationCode),sessionState:this.storage.getItem(a.TokenStorageKeys.SessionState),identityToken:this.storage.getItem(a.TokenStorageKeys.IdentityToken),originalIdentityToken:this.storage.getItem(a.TokenStorageKeys.OriginalIdentityToken),accessToken:this.storage.getItem(a.TokenStorageKeys.AccessToken),accessTokenExpiration:parseInt(this.storage.getItem(a.TokenStorageKeys.AccessTokenExpiration),10),refreshToken:this.storage.getItem(a.TokenStorageKeys.RefreshToken),preRedirectUrl:this.storage.getItem(a.TokenStorageKeys.PreRedirectUrl),decodedIdentityToken:this.readJSON(a.TokenStorageKeys.IdentityTokenDecoded)}},e.prototype.storeJSON=function(e,t){this.storage.setItem(e,JSON.stringify(t))},e.prototype.readJSON=function(e){var t=this.storage.getItem(e);return t?JSON.parse(t):null},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Storage,decorators:[{type:t.Inject,args:[m]}]}]},e}();var _=/^(\w+:\/\/[^\/?]+)?(.*?)(\?.+)?$/,F=/^(\/\/[^\/?]+)(.*?)(\?.+)?$/;function N(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,r=e[e.length-1];r&&"object"==typeof r&&(n=r,e=e.slice(0,-1)),n=d({leadingSlash:!0,trailingSlash:!1,protocolRelative:!1},n);var o=function(e,t){var n=t.protocolRelative&&e.match(F)||e.match(_)||[];return{beforePathname:n[1]||"",pathname:(n[2]||"").replace(/^\/+/,"").replace(/\/+$/,"").replace(/\/+/g,"/"),afterPathname:n[3]||""}}(e.filter(function(e){return"string"==typeof e||"number"==typeof e}).join("/"),n),i=o.beforePathname,a=o.pathname,s=(o.afterPathname,"");return i?s+=i+(a?"/":""):n.leadingSlash&&(s+="/"),s+=a,n.trailingSlash&&!s.endsWith("/")&&(s+="/"),s}var M=function(e){function t(t){return e.call(this,"Failed to obtain discovery document","discovery-doc-fetch-failed",t)||this}return p(t,e),t}(a.SimpleOidcError),R=function(e){function t(t){return e.call(this,"Failed to obtain JWT Keys","jwt-keys-fetch-failed",t)||this}return p(t,e),t}(a.SimpleOidcError),x=function(e){function t(t){return e.call(this,"Discovery Document Obtained",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),$=function(){function e(e,t,r){var a=this;this.config=e,this.http=t,this.events=r,this.current$=this.config.current$.pipe(o.map(function(e){return N(e.openIDProviderUrl,e.discoveryDocumentUrl)}),o.tap(function(e){return a.events.dispatch(new i.SimpleOidcInfoEvent("Obtaining discovery document",e))}),o.switchMap(function(e){return a.http.get(e)}),o.tap(function(e){return a.events.dispatch(new x(e))}),o.catchError(function(e){return n.throwError(new M(e))}),o.take(1),o.shareReplay()),this.jwtKeys$=this.current$.pipe(o.tap(function(e){return a.events.dispatch(new i.SimpleOidcInfoEvent("Obtaining JWT Keys",e.jwks_uri))}),o.switchMap(function(e){return a.http.get(e.jwks_uri)}),o.tap(function(e){return a.events.dispatch(new i.SimpleOidcInfoEvent("JWT Keys obtained",e))}),o.catchError(function(e){return n.throwError(new R(e))}),o.take(1),o.shareReplay())}return e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:s.HttpClient},{type:i.EventsService}]},e}();var D=function(e){function t(t){return e.call(this,"Tokens obtained",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),L=function(e){function t(t){return e.call(this,"Tokens validated",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),V=function(e){function t(t){return e.call(this,"Tokens are ready to be used (validated and stored)",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),H=function(e){function t(t){return e.call(this,"Access token has expired",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),z=function(e){function t(t){return e.call(this,"Access token is almost expired",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),K=function(e){function t(t){return e.call(this,"Obtained User Profile",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent);var G=function(){function e(e,t,n,r,o){this.http=e,this.discoveryDocumentClient=t,this.tokenValidation=n,this.tokenHelper=r,this.events=o}return e.prototype.call=function(e){var t=this,n=(new s.HttpHeaders).set("Content-Type","application/x-www-form-urlencoded");return this.discoveryDocumentClient.current$.pipe(o.take(1),o.switchMap(function(r){var o=r.token_endpoint;return t.events.dispatch(new i.SimpleOidcInfoEvent("Executing Token Endpoint",{url:o,payload:e})),t.http.post(o,e,{headers:n})}),o.tap({error:function(e){if(!(e instanceof a.SimpleOidcError))throw 400===e.status?new g(e.error.error,e):new v(e)}}),o.map(function(e){var n,r;e.expires_in?n=t.tokenHelper.getExpirationFromExpiresIn(e.expires_in):t.events.dispatch(new i.SimpleOidcInfoEvent("Token Response did not contain expires_in",e)),e.id_token?(t.events.dispatch(new i.SimpleOidcInfoEvent("Validating Identity Token format",e.id_token)),t.tokenValidation.validateIdTokenFormat(e.id_token),r=t.tokenHelper.getPayloadFromToken(e.id_token),t.events.dispatch(new i.SimpleOidcInfoEvent("Identity Token Payload decoded",r))):t.events.dispatch(new i.SimpleOidcInfoEvent("Token Response did not contain id_token",e));var o={accessToken:e.access_token,accessTokenExpiresIn:e.expires_in,accessTokenExpiresAt:n?n.getTime():null,error:e.error,idToken:e.id_token,refreshToken:e.refresh_token,decodedIdToken:r};return t.events.dispatch(new D(o)),o}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:s.HttpClient},{type:$},{type:a.TokenValidationService},{type:a.TokenHelperService},{type:i.EventsService}]},e}();var W=function(){function e(e){this.document=e,this.handle=this.document.createElement("iframe")}return e.prototype.appendTo=function(e){return e.appendChild(this.handle),this},e.prototype.appendToBody=function(){return this.appendTo(this.document.body),this},e.prototype.setSource=function(e){return this.handle.src=e,this},e.prototype.hide=function(){return this.handle.style.display="none",this},e.prototype.postMessage=function(e,t){return this.handle.contentWindow.postMessage(e,t),this},e.prototype.remove=function(){return this.handle.parentElement.removeChild(this.handle),this},e}();var q=function(){function e(e){this.window=e,this.pending=[]}return e.prototype.create=function(){var e=new W(this.window.document);return this.pending.push(e),e},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(S))},token:e,providedIn:"root"}),e}();var Z=function(){function e(e,t,n,r,o,i,a,s,c){this.window=e,this.config=t,this.discoveryDocumentClient=n,this.tokenStorage=r,this.tokenValidation=o,this.tokenUrl=i,this.tokenEndpointClient=a,this.events=s,this.dynamicIframe=c}return e.prototype.startCodeFlow=function(e){var t=this;void 0===e&&(e={});var n=d({},e);return n.returnUrlAfterCallback||(n.returnUrlAfterCallback=this.window.location.href),this.config.current$.pipe(o.map(function(e){return N(e.baseUrl,e.tokenCallbackRoute)}),o.switchMap(function(e){return t.generateCodeFlowMetadata({redirectUri:e})}),o.tap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow"))}),o.switchMap(function(e){return t.events.dispatch(new i.SimpleOidcInfoEvent("Authorize URL generated",e)),t.tokenStorage.storePreAuthorizationState({nonce:e.nonce,state:e.state,codeVerifier:e.codeVerifier,preRedirectUrl:n.returnUrlAfterCallback}).pipe(o.tap(function(n){t.events.dispatch(new i.SimpleOidcInfoEvent("Pre-authorize state stored",n)),t.redirectToUrl(e.url)}))}),o.take(1))},e.prototype.generateCodeFlowMetadata=function(e){var t=this;return this.discoveryDocumentClient.current$.pipe(o.withLatestFrom(this.config.current$),o.map(function(n){var r=h(n,2),o=r[0],i=r[1];return t.tokenUrl.createAuthorizeUrl(o.authorization_endpoint,d({clientId:i.clientId,scope:i.scope,responseType:"code"},e))}),o.take(1))},e.prototype.parseCodeFlowCallbackParams=function(e){try{var t=this.tokenUrl.parseAuthorizeCallbackParamsFromUrl(e);return d({},t,{href:e})}catch(e){throw new a.AuthorizationCallbackFormatError(e)}},e.prototype.validateCodeFlowCallback=function(e,t){var n=e.href,r=e.code,o=e.state,a=e.error;this.events.dispatch(new i.SimpleOidcInfoEvent("Validating URL params",{code:r,state:o,error:a,href:n})),this.tokenValidation.validateAuthorizeCallbackFormat(r,o,a,n),this.events.dispatch(new i.SimpleOidcInfoEvent("Validating state vs local state",{localState:t,state:o})),this.tokenValidation.validateAuthorizeCallbackState(t,o),this.events.dispatch(new i.SimpleOidcInfoEvent("Obtained authorization code.",{code:r,state:o}))},e.prototype.codeFlowCallback=function(e,t,n){var r=this,i=this.parseCodeFlowCallbackParams(e);return this.validateCodeFlowCallback(i,n.state),this.tokenStorage.storeAuthorizationCode(i.code,i.sessionState).pipe(o.switchMap(function(){return r.config.current$}),o.switchMap(function(e){var o=r.tokenUrl.createAuthorizationCodeRequestPayload({clientId:e.clientId,clientSecret:e.clientSecret,scope:e.scope,redirectUri:t,code:i.code,codeVerifier:n.codeVerifier});return r.requestTokenWithAuthCode(o,n.nonce)}))},e.prototype.currentWindowCodeFlowCallback=function(){var e=this;return this.tokenStorage.currentState$.pipe(o.take(1),o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow callback"))}),o.withLatestFrom(this.config.current$),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];return{localState:n,redirectUri:N(r.baseUrl,r.tokenCallbackRoute)}}),o.switchMap(function(t){var n=t.localState,r=t.redirectUri;return e.codeFlowCallback(e.window.location.href,r,n).pipe(o.tap(function(){return e.historyChangeUrl(n.preRedirectUrl)}))}),o.take(1))},e.prototype.requestTokenWithAuthCode=function(e,t){var n=this,r=this.discoveryDocumentClient.current$.pipe(o.take(1)),a=this.discoveryDocumentClient.jwtKeys$.pipe(o.take(1));return this.tokenEndpointClient.call(e).pipe(o.tap(function(){return n.events.dispatch(new i.SimpleOidcInfoEvent("Requesting token using authorization code",e))}),o.withLatestFrom(r,a,this.config.current$),o.take(1),o.tap(function(e){var r=h(e,4),o=r[0],a=r[1],s=r[2],c=r[3];n.events.dispatch(new i.SimpleOidcInfoEvent("Validating identity token..",{result:o,nonce:t,discoveryDocument:a,jwtKeys:s})),n.tokenValidation.validateIdToken(c.clientId,o.idToken,o.decodedIdToken,t,a,s,c.tokenValidation)}),o.tap(function(e){var t=h(e,1)[0];n.events.dispatch(new i.SimpleOidcInfoEvent("Validating access token..",t)),n.tokenValidation.validateAccessToken(t.accessToken,t.decodedIdToken.at_hash)}),c.switchTap(function(){return n.events.dispatch(new i.SimpleOidcInfoEvent("Clearing pre-authorize state..")),n.tokenStorage.clearPreAuthorizationState()}),c.switchTap(function(e){var t=h(e,1)[0];return n.events.dispatch(new L(t)),n.events.dispatch(new i.SimpleOidcInfoEvent("Storing tokens..",t)),n.tokenStorage.storeTokens(t)}),c.switchTap(function(e){var t=h(e,1)[0];return n.events.dispatch(new i.SimpleOidcInfoEvent("Storing original Identity Token..",t.idToken)),n.tokenStorage.storeOriginalIdToken(t.idToken)}),o.map(function(e){return h(e,1)[0]}),o.tap(function(e){return n.events.dispatch(new V(e))}))},e.prototype.redirectToUrl=function(e){this.events.dispatch(new i.SimpleOidcInfoEvent("Redirecting",e)),this.window.location.href=e},e.prototype.historyChangeUrl=function(e){this.window.history?(this.events.dispatch(new i.SimpleOidcInfoEvent("Changing URL with history API",e)),this.window.history.pushState({},null,e)):this.redirectToUrl(e)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:$},{type:P},{type:a.TokenValidationService},{type:a.TokenUrlService},{type:G},{type:i.EventsService},{type:q}]},e}();function J(e,t,r,i){return function(){return e.current$.pipe(o.take(1),o.switchMap(function(e){return e.enableAuthorizationCallbackAppInitializer&&i.location.pathname.includes(e.tokenCallbackRoute)?t.currentWindowCodeFlowCallback():n.of(null)}),o.catchError(function(e){return console.error("Callback failed in APP_INITIALIZER"),console.error(e),r.dispatchError(e),n.of(null)})).toPromise()}}var B={provide:t.APP_INITIALIZER,useFactory:J,deps:[C,Z,i.EventsService,S],multi:!0},Y=function(){function e(e,t,n,r,o,i,a,s){this.config=e,this.tokenStorage=t,this.tokenUrl=n,this.tokenHelper=r,this.tokenEndpointClient=o,this.refreshTokenValidation=i,this.tokenValidation=a,this.events=s}return e.prototype.requestTokenWithRefreshCode=function(){var e=this;return this.tokenStorage.currentState$.pipe(o.withLatestFrom(this.config.current$),o.take(1),o.switchMap(function(t){var n=h(t,2),r=n[0],o=n[1],a=e.tokenUrl.createRefreshTokenRequestPayload({clientId:o.clientId,clientSecret:o.clientSecret,refreshToken:r.refreshToken});return e.events.dispatch(new i.SimpleOidcInfoEvent("Refreshing token using refresh code",{payload:a,refreshToken:r.refreshToken})),e.tokenEndpointClient.call(a)}),o.withLatestFrom(this.tokenStorage.currentState$),o.tap(function(t){var n=h(t,2),r=n[0],o=n[1],a=e.tokenHelper.getPayloadFromToken(o.originalIdentityToken);e.events.dispatch(new i.SimpleOidcInfoEvent("Validating new Identity Token against original",{result:r,originalToken:a})),e.refreshTokenValidation.validateIdToken(a,r.decodedIdToken)}),o.tap(function(t){var n=h(t,1)[0];e.events.dispatch(new i.SimpleOidcInfoEvent("Validating access token against at_hash",{accessToken:n.accessToken,hash:n.decodedIdToken.at_hash})),e.tokenValidation.validateAccessToken(n.accessToken,n.decodedIdToken.at_hash)}),o.tap(function(t){var n=h(t,1)[0];return e.events.dispatch(new L(n))}),o.switchMap(function(t){var n=h(t,1)[0];return e.events.dispatch(new i.SimpleOidcInfoEvent("Storing new tokens..",n)),e.tokenStorage.storeTokens(n).pipe(o.map(function(){return n}))}),o.tap(function(t){return e.events.dispatch(new V(t))}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:P},{type:a.TokenUrlService},{type:a.TokenHelperService},{type:G},{type:a.RefreshTokenValidationService},{type:a.TokenValidationService},{type:i.EventsService}]},e}();var Q=function(){function e(e,t,n,r,o){this.window=e,this.discoveryDocumentClient=t,this.tokenUrl=n,this.tokenStorage=r,this.events=o}return e.prototype.logoutWithRedirect=function(e){var t=this,r=this.discoveryDocumentClient.current$,a=this.tokenStorage.currentState$;return n.combineLatest(r,a).pipe(o.take(1),o.map(function(n){var r=h(n,2),o=r[0],i=r[1];return t.tokenUrl.createEndSessionUrl(o.end_session_endpoint,{idTokenHint:i.identityToken,postLogoutRedirectUri:e})}),c.switchTap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Deleting Local Session")),t.tokenStorage.removeAll()}),o.tap(function(e){var n=e.url;t.events.dispatch(new i.SimpleOidcInfoEvent("Redirecting to End Session Endpoint",n)),t.window.location.href=n}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:$},{type:a.TokenUrlService},{type:P},{type:i.EventsService}]},e}();var X=function(){function e(e,t,n,r){this.discoveryDocumentClient=e,this.tokenStorage=t,this.events=n,this.http=r}return e.prototype.getUserInfo=function(){var e=this,t=this.discoveryDocumentClient.current$,r=this.tokenStorage.currentState$;return n.combineLatest(t,r).pipe(o.take(1),o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Requesting User Info"))}),o.tap(function(e){var t=h(e,1)[0];if(!t.userinfo_endpoint)throw new y(t)}),o.switchMap(function(t){var n=h(t,2),r=n[0],o=n[1];return e.http.get(r.userinfo_endpoint,{headers:new s.HttpHeaders({authorization:"Bearer "+o.accessToken})})}),o.tap(function(t){return e.events.dispatch(new K(t))}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:$},{type:P},{type:i.EventsService},{type:s.HttpClient}]},e}();var ee=function(){function e(e,t,n,r,i,a,s,u){var p=this;this.oidcClient=e,this.tokenHelper=t,this.tokenStorage=n,this.refreshTokenClient=r,this.endSessionClient=i,this.config=a,this.events=s,this.userInfoClient=u,this.userInfo$=this.events$.pipe(c.filterInstanceOf(V),o.switchMap(function(){return p.userInfoClient.getUserInfo()}),o.shareReplay())}return Object.defineProperty(e.prototype,"isLoggedIn$",{get:function(){var e=this;return this.tokenStorage.currentState$.pipe(o.map(function(t){var n=t.accessToken,r=t.accessTokenExpiration;return!(!n||e.tokenHelper.isTokenExpired(r))}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"accessToken$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.accessToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tokenExpiration$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return new Date(e.accessTokenExpiration)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"refreshToken$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.refreshToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"identityToken$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.identityToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"identityTokenDecoded$",{get:function(){return this.tokenStorage.currentState$.pipe(o.map(function(e){return e.decodedIdentityToken}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"events$",{get:function(){return this.events.events$},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"errors$",{get:function(){return this.events.errors$},enumerable:!0,configurable:!0}),e.prototype.startCodeFlow=function(e){var t=this;return this.oidcClient.startCodeFlow(e).pipe(o.tap({error:function(e){return t.events.dispatchError(e)}}))},e.prototype.refreshAccessToken=function(){var e=this;return this.refreshTokenClient.requestTokenWithRefreshCode().pipe(o.tap({error:function(t){return e.events.dispatchError(t)}}))},e.prototype.endSession=function(e){var t=this;return this.config.current$.pipe(o.take(1),o.switchMap(function(n){return t.endSessionClient.logoutWithRedirect(e||n.baseUrl)}),o.tap({error:function(e){return t.events.dispatchError(e)}}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Z},{type:a.TokenHelperService},{type:P},{type:Y},{type:Q},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:i.EventsService},{type:X}]},e}();var te=function(){function e(e,t){this.auth=e,this.events=t}return e.prototype.canActivate=function(e,t){var r=this;return this.auth.isLoggedIn$.pipe(o.take(1),o.switchMap(function(e){return e?n.of(!0):(r.events.dispatch(new i.SimpleOidcInfoEvent("Route requires auth. No token or it's expired.",{route:t.url})),r.auth.startCodeFlow({returnUrlAfterCallback:t.url}).pipe(o.map(function(){return!1})))}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:ee},{type:i.EventsService}]},e}();var ne=function(){function e(e,t,r,a){var s=this;this.auth=e,this.events=t,this.storage=r,this.tokenHelper=a,this.destroyedSubject=new n.Subject,r.currentState$.pipe(o.take(1)).subscribe(function(e){(e.accessToken||e.identityToken||e.refreshToken)&&(a.isTokenExpired(e.accessTokenExpiration)?s.events.dispatch(new i.SimpleOidcInfoEvent("Have token in storage but is expired")):s.events.dispatch(new V({accessToken:e.accessToken,accessTokenExpiresAt:e.accessTokenExpiration,decodedIdToken:e.decodedIdentityToken,idToken:e.identityToken,refreshToken:e.refreshToken})))}),this.watchTokenExpiration()}return e.prototype.watchTokenExpiration=function(){var e=this;this.auth.events$.pipe(c.filterInstanceOf(V),o.switchMap(function(e){var t=e.payload;if(t.accessToken&&t.accessTokenExpiresAt){var r=new Date(t.accessTokenExpiresAt),a=new Date(t.accessTokenExpiresAt);a.setSeconds(a.getSeconds()-60);var s=n.of(new z({token:t.accessToken,expiresAt:r})).pipe(o.delay(a)),c=n.of(new H({token:t.accessToken,expiredAt:r})).pipe(o.delay(r));return n.merge(s,c)}return n.of(new i.SimpleOidcInfoEvent("TokenExpired event not configured due to access token or expiration empty."))}),o.takeUntil(this.destroyedSubject)).subscribe(function(t){t.payload&&(t.payload.now=new Date),e.events.dispatch(t)})},e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[],declarations:[]}]}],e.ctorParameters=function(){return[{type:ee},{type:i.EventsService},{type:P},{type:a.TokenHelperService}]},e}();var re=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[null!=t?{provide:b,useValue:t}:[],U,j,B]}},e.decorators=[{type:t.NgModule,args:[{imports:[s.HttpClientModule,a.AngularSimpleOidcCoreModule,ne],providers:[E,w,P,G,$,Z,Y,Q,X,ee,te],declarations:[],exports:[a.AngularSimpleOidcCoreModule]}]}],e}();var oe=function(){function e(e,t){var r=this;this.auth=e,this.events=t,this.destroyedSubject=new n.Subject,this.auth.events$.pipe(c.filterInstanceOf(z),o.switchMap(function(){return r.auth.refreshAccessToken()}),o.takeUntil(this.destroyedSubject)).subscribe()}return e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[],declarations:[]}]}],e.ctorParameters=function(){return[{type:ee},{type:i.EventsService}]},e}();var ie=function(e){function t(t){return e.call(this,"Session check not supported by OP: check_session_iframe on discovery document and session_state are required","session-check-not-supported",t)||this}return p(t,e),t}(a.SimpleOidcError),ae=function(e){function t(t){return e.call(this,"OP iframe returned error. According to spec, message malformed?","session-check-error",t)||this}return p(t,e),t}(a.SimpleOidcError),se=function(e){function t(t){return e.call(this,"Iframe failed to postMessage back in given time.","iframe-post-message-timeout",t)||this}return p(t,e),t}(a.SimpleOidcError),ce=function(e){function t(){return e.call(this,"Expected SESSION_MANAGEMENT_CONFIG to be in Injector.\nYou need to provide a configuration either with SessionManagementModule.forRoot() or by adding your own (Observable<SessionManagementConfig> | SessionManagementConfig) into the injector with the SESSION_MANAGEMENT_CONFIG injection token.","session-management-config-missing",null)||this}return p(t,e),t}(a.SimpleOidcError),ue=function(e){function t(){return e.call(this,"Session has changed.")||this}return p(t,e),t}(i.SimpleOidcInfoEvent),pe=function(e){function t(t){return e.call(this,"Session has been terminated.",t)||this}return p(t,e),t}(i.SimpleOidcInfoEvent),de=["iframePath"];var le=new t.InjectionToken("SESSION_MANAGEMENT_CONFIG_SERVICE"),he=new t.InjectionToken("SESSION_MANAGEMENT_CONFIG"),fe={opIframePollInterval:1e3,iframeTimeout:1e4};function ve(e,t,r){if(!e)throw new ce;var i=n.isObservable(e)?e:n.of(e);return function(){return i.pipe(o.tap(function(e){return t.configure(e,{defaultConfig:fe,requiredFields:de})}),o.catchError(function(e){return console.error("Callback failed in SESSION_MANAGEMENT_CONFIG_INITIALIZER"),console.error(e),r.dispatchError(e),n.of(null)})).toPromise()}}var ge={multi:!0,provide:t.APP_INITIALIZER,deps:[[new t.Optional,he],le,i.EventsService],useFactory:ve},ke={provide:le,useClass:r.ConfigService},ye=function(){function e(e,t,r,o,i,a,s){this.window=e,this.discoveryClient=t,this.dynamicIframe=r,this.tokenStorage=o,this.config=i,this.sessionConfig=a,this.events=s,this.destroyedSubject=new n.Subject}return e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.prototype.startSessionCheck=function(){var e=this,t=this.tokenStorage.currentState$.pipe(o.take(1)),r=this.discoveryClient.current$.pipe(o.take(1)),a=this.dynamicIframe.create().hide();return n.combineLatest(r,t).pipe(o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Starting Session Check"))}),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];if(n.check_session_iframe&&r.sessionState)return a.setSource(n.check_session_iframe).appendToBody(),r;throw new ie({doc:n,localState:r})}),o.withLatestFrom(this.config.current$,this.sessionConfig.current$),o.take(1),o.switchMap(function(t){var r=h(t,3),i=r[0],s=r[1],c=r[2],u=new URL(s.openIDProviderUrl).origin,p=n.interval(c.opIframePollInterval).pipe(o.map(function(){return s.clientId.toLowerCase()+" "+i.sessionState}),o.tap(function(e){return a.postMessage(e,u)})),d=n.fromEvent(e.window,"message").pipe(o.filter(function(e){return e.origin===u}),o.map(function(t){return e.fireEventsFromMessage(t)}),o.filter(function(e){return!!e}));return n.combineLatest(p,d).pipe(o.map(function(e){return e[1]}))}),o.finalize(function(){return a.remove()}),o.takeUntil(this.destroyedSubject.asObservable()))},e.prototype.fireEventsFromMessage=function(e){var t=e.data;switch(t){case"changed":return this.events.dispatch(new ue),t;case"unchanged":return t;case"error":throw new ae(e);default:return null}},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:$},{type:q},{type:P},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[le]}]},{type:i.EventsService}]},e}();var Se=function(){function e(e,t,n,r,o,i,a,s,c){this.window=e,this.discoveryClient=t,this.dynamicIframe=n,this.tokenStorage=r,this.authConfig=o,this.sessionConfig=i,this.events=a,this.oidcClient=s,this.tokenUrl=c}return e.prototype.startCodeFlowInIframe=function(){var e=this,t=this.authConfig.current$.pipe(o.withLatestFrom(this.sessionConfig.current$),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];return N(n.baseUrl,r.iframePath)}));return this.tokenStorage.currentState$.pipe(o.take(1),o.tap(function(){return e.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow in iframe"))}),o.withLatestFrom(t),o.switchMap(function(t){var n=h(t,2),r=n[0].identityToken,i=n[1];return e.oidcClient.generateCodeFlowMetadata({redirectUri:i,prompt:"none",idTokenHint:r}).pipe(o.map(function(e){return{metadata:e,iframeUrl:i}}))}),o.withLatestFrom(this.sessionConfig.current$),o.take(1),o.switchMap(function(t){var r=h(t,2),a=r[0],s=a.metadata,c=a.iframeUrl,u=r[1];e.events.dispatch(new i.SimpleOidcInfoEvent("Creating iframe",s));var p=e.dynamicIframe.create().hide().setSource(s.url).appendToBody();return n.fromEvent(e.window,"message").pipe(o.map(function(e){return{event:e,iframe:p,metadata:s,iframeUrl:c}}),o.filter(function(e){return e.event.data.startsWith(c)}),o.take(1),o.timeout(u.iframeTimeout),o.catchError(function(e){if(e.name&&"TimeoutError"===e.name)throw new se({iframe:p,e:e});return n.throwError(e)}))}),o.map(function(t){var n=t.event,r=t.iframe,o=t.metadata,a=t.iframeUrl,s=n.data;return e.events.dispatch(new i.SimpleOidcInfoEvent("Obtained data from iframe",{event:n,href:s})),r.remove(),{href:s,iframeUrl:a,metadata:o}}),o.switchMap(function(t){var n=t.href,r=t.iframeUrl,o=t.metadata;return e.oidcClient.codeFlowCallback(n,r,o)}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:$},{type:q},{type:P},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[le]}]},{type:i.EventsService},{type:Z},{type:a.TokenUrlService}]},e}();var me=function(){function e(e,t,r,a){var s=this;this.sessionCheck=e,this.events=t,this.authorizeSilentClient=r,this.tokenStorage=a,this.destroyedSubject=new n.Subject;var u=this.events.events$.pipe(c.filterInstanceOf(ue));this.events.events$.pipe(c.filterInstanceOf(V),o.switchMap(function(){return s.sessionCheck.startSessionCheck().pipe(o.takeUntil(u))}),o.takeUntil(this.destroyedSubject)).subscribe();var p=this.tokenStorage.currentState$.pipe(o.take(1),o.switchMap(function(e){return s.authorizeSilentClient.startCodeFlowInIframe().pipe(o.map(function(t){return{result:t,previousState:e}}))}),o.tap(function(e){var t=e.result,n=e.previousState,r=t.decodedIdToken,o=n.decodedIdentityToken;o&&r.sub!==o.sub&&s.events.dispatch(new pe({previousToken:o,newToken:r}))}),o.catchError(function(e){return s.events.dispatch(new pe({error:e.context})),n.of(null)}));this.events.events$.pipe(c.filterInstanceOf(ue),o.tap(function(){return s.events.dispatch(new i.SimpleOidcInfoEvent("Session has changed. Starting silent code flow."))}),o.switchMap(function(){return p}),o.takeUntil(this.destroyedSubject)).subscribe()}return e.forRoot=function(t){return{ngModule:e,providers:[null!=t?{provide:he,useValue:t}:[],ke,ge]}},e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[ye,Se],declarations:[]}]}],e.ctorParameters=function(){return[{type:ye},{type:i.EventsService},{type:Se},{type:P}]},e}();var Ie=function(e){function t(t){return e.call(this,"Child window has been closed, no response was received","child-window-closed",t)||this}return p(t,e),t}(a.SimpleOidcError),we=function(e){function t(){return e.call(this,"Expected POPUP_AUTHORIZATION_CONFIG to be in Injector.\nYou need to provide a configuration either with PopupAuthorizationModule.forRoot() or by adding your own (Observable<PopupAuthorizationConfig> | PopupAuthorizationConfig) into the injector with the POPUP_AUTHORIZATION_CONFIG injection token.","popup-authorization-config-missing",null)||this}return p(t,e),t}(a.SimpleOidcError),Te=["childWindowPath"];var Ee=new t.InjectionToken("POPUP_AUTHORIZATION_CONFIG_SERVICE"),Ce=new t.InjectionToken("POPUP_AUTHORIZATION_CONFIG"),be={};function Oe(e,t,r){if(!e)throw new we;var i=n.isObservable(e)?e:n.of(e);return function(){return i.pipe(o.tap(function(e){return t.configure(e,{defaultConfig:be,requiredFields:Te})}),o.catchError(function(e){return console.error("Callback failed in POPUP_AUTHORIZATION_CONFIG_INITIALIZER"),console.error(e),r.dispatchError(e),n.of(null)})).toPromise()}}var Ae={multi:!0,provide:t.APP_INITIALIZER,deps:[[new t.Optional,Ce],Ee,i.EventsService],useFactory:Oe},je={provide:Ee,useClass:r.ConfigService},Ue=function(){function e(e,t,r,o,i,a,s){this.window=e,this.tokenStorage=t,this.authConfig=r,this.popupConfig=o,this.events=i,this.oidcClient=a,this.tokenUrl=s,this.destroyedSubject=new n.Subject}return e.prototype.startCodeFlowInPopup=function(e){var t=this;return void 0===e&&(e={}),this.authConfig.current$.pipe(o.withLatestFrom(this.popupConfig.current$),o.map(function(e){var t=h(e,2),n=t[0],r=t[1];return N(n.baseUrl,r.childWindowPath)}),o.take(1)).pipe(o.tap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Starting Code Flow in child window"))}),o.switchMap(function(e){return t.oidcClient.generateCodeFlowMetadata({redirectUri:e,display:"popup"}).pipe(o.map(function(t){return{metadata:t,redirectUri:e}}))}),o.take(1),o.switchMap(function(r){var a=r.metadata,s=r.redirectUri;t.events.dispatch(new i.SimpleOidcInfoEvent("Creating window",a));var c=t.window.open(a.url,"_blank",t.calculatePopupFeatures(e)),u=n.interval(500).pipe(o.tap(function(){return console.info("polling")}),o.filter(function(){return c.closed}),o.tap(function(){return t.events.dispatch(new i.SimpleOidcInfoEvent("Child Window has been closed"))}),o.tap(function(){throw new Ie({metadata:a,redirectUri:s})}),o.take(1));return n.fromEvent(t.window,"message").pipe(o.map(function(e){return{event:e,handle:c,metadata:a,redirectUri:s}}),o.filter(function(e){var t=e.event;return t.data&&"string"==typeof t.data}),o.filter(function(e){return e.event.data.startsWith(s)}),o.take(1),o.takeUntil(u))}),o.map(function(e){var n=e.event,r=e.handle,o=e.metadata,a=e.redirectUri,s=n.data;return t.events.dispatch(new i.SimpleOidcInfoEvent("Obtained data from window",{event:n,href:s})),r.close(),{href:s,metadata:o,redirectUri:a}}),o.switchMap(function(e){var n=e.href,r=e.redirectUri,o=e.metadata;return t.oidcClient.codeFlowCallback(n,r,o)}),o.takeUntil(this.destroyedSubject))},e.prototype.ngOnDestroy=function(){this.destroyedSubject.next(),this.destroyedSubject.complete()},e.prototype.calculatePopupFeatures=function(e){var t=e.height||660,n=e.width||500,r=this.window.screen,o=r.width/2-n/2;return"location=no,toolbar=no,width="+n+",height="+t+",top="+(r.height/2-t/2)+",left="+o},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:Window,decorators:[{type:t.Inject,args:[S]}]},{type:P},{type:r.ConfigService,decorators:[{type:t.Inject,args:[C]}]},{type:r.ConfigService,decorators:[{type:t.Inject,args:[Ee]}]},{type:i.EventsService},{type:Z},{type:a.TokenUrlService}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(S),t.ɵɵinject(P),t.ɵɵinject(C),t.ɵɵinject(Ee),t.ɵɵinject(i.EventsService),t.ɵɵinject(Z),t.ɵɵinject(a.TokenUrlService))},token:e,providedIn:"root"}),e}();var Pe=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[null!=t?{provide:Ce,useValue:t}:[],je,Ae]}},e.decorators=[{type:t.NgModule,args:[{imports:[],providers:[Ue],declarations:[]}]}],e}();e.AUTH_CONFIG=b,e.AUTH_CONFIG_SERVICE=C,e.AccessTokenExpiredEvent=H,e.AccessTokenExpiringEvent=z,e.AngularSimpleOidcModule=re,e.AuthGuard=te,e.AuthService=ee,e.AuthenticationConfigurationMissingError=k,e.AuthorizeEndpointPopupClientService=Ue,e.AuthorizeEndpointSilentClientService=Se,e.AutomaticRefreshModule=oe,e.ChildWindowClosedError=Ie,e.DiscoveryDocumentObtainedEvent=x,e.EndSessionClientService=Q,e.IframePostMessageTimeoutError=se,e.LOCAL_STORAGE_REF=m,e.OidcCodeFlowClient=Z,e.OidcDiscoveryDocClient=$,e.POPUP_AUTHORIZATION_CONFIG=Ce,e.POPUP_AUTHORIZATION_CONFIG_REQUIRED_FIELDS=Te,e.POPUP_AUTHORIZATION_CONFIG_SERVICE=Ee,e.PopupAuthorizationConfigurationMissingError=we,e.PopupAuthorizationModule=Pe,e.RefreshTokenClient=Y,e.SESSION_MANAGEMENT_CONFIG=he,e.SESSION_MANAGEMENT_CONFIG_REQUIRED_FIELDS=de,e.SESSION_MANAGEMENT_CONFIG_SERVICE=le,e.SessionChangedEvent=ue,e.SessionCheckFailedError=ae,e.SessionCheckNotSupportedError=ie,e.SessionCheckService=ye,e.SessionManagementConfigurationMissingError=ce,e.SessionManagementModule=me,e.SessionTerminatedEvent=pe,e.TokenEndpointError=g,e.TokenEndpointUnexpectedError=v,e.TokenStorageService=P,e.TokensObtainedEvent=D,e.TokensReadyEvent=V,e.TokensValidatedEvent=L,e.UserInfoNotSupportedError=y,e.UserInfoObtainedEvent=K,e.WINDOW_REF=S,e.ɵa=I,e.ɵb=w,e.ɵc=T,e.ɵd=E,e.ɵe=A,e.ɵf=j,e.ɵg=U,e.ɵh=ve,e.ɵi=ge,e.ɵj=ke,e.ɵk=Oe,e.ɵl=Ae,e.ɵm=je,e.ɵn=ne,e.ɵo=G,e.ɵp=q,e.ɵq=X,e.ɵr=J,e.ɵs=B,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=angular-simple-oidc.umd.min.js.map

@@ -11,4 +11,4 @@ /**

constructor() {
this.eventSubject = new ReplaySubject();
this.errorSubject = new ReplaySubject();
this.eventSubject = new ReplaySubject(5);
this.errorSubject = new ReplaySubject(5);
}

@@ -61,2 +61,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNpbXBsZS1vaWRjL2V2ZW50cy8iLCJzb3VyY2VzIjpbImxpYi9ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXJDLE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBYXVCLGlCQUFZLEdBQUcsSUFBSSxhQUFhLEVBQW1CLENBQUM7UUFDcEQsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBd0IsQ0FBQztLQVMvRTs7OztJQWxCRyxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7OztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzs7Ozs7SUFLTSxRQUFRLENBQWlDLEVBQVU7UUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFTSxhQUFhLENBQUMsQ0FBa0I7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7OztZQXRCSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7Ozs7O0lBV0cscUNBQXVFOzs7OztJQUN2RSxxQ0FBNEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpbXBsZU9pZGNFdmVudCwgU2ltcGxlT2lkY0Vycm9yRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2ltcGxlT2lkY0Vycm9yIH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXZlbnRzU2VydmljZSB7XHJcblxyXG4gICAgcHVibGljIGdldCBldmVudHMkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGVycm9ycyQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxTaW1wbGVPaWRjRXZlbnQ+KCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8U2ltcGxlT2lkY0Vycm9yRXZlbnQ+KCk7XHJcblxyXG4gICAgcHVibGljIGRpc3BhdGNoPFRFdmVudCBleHRlbmRzIFNpbXBsZU9pZGNFdmVudD4oZXY6IFRFdmVudCkge1xyXG4gICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoZXYpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNwYXRjaEVycm9yKGU6IFNpbXBsZU9pZGNFcnJvcikge1xyXG4gICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQobmV3IFNpbXBsZU9pZGNFcnJvckV2ZW50KGUpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNpbXBsZS1vaWRjL2V2ZW50cy8iLCJzb3VyY2VzIjpbImxpYi9ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXJDLE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBYXVCLGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3JELGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQXVCLENBQUMsQ0FBQyxDQUFDO0tBU2hGOzs7O0lBbEJHLElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzs7O0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7Ozs7OztJQUtNLFFBQVEsQ0FBaUMsRUFBVTtRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7OztJQUVNLGFBQWEsQ0FBQyxDQUFrQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7O1lBdEJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7Ozs7Ozs7SUFXRyxxQ0FBd0U7Ozs7O0lBQ3hFLHFDQUE2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2ltcGxlT2lkY0V2ZW50LCBTaW1wbGVPaWRjRXJyb3JFdmVudCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaW1wbGVPaWRjRXJyb3IgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudHNTZXJ2aWNlIHtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGV2ZW50cyQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZXJyb3JzJCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGV2ZW50U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFNpbXBsZU9pZGNFdmVudD4oNSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8U2ltcGxlT2lkY0Vycm9yRXZlbnQ+KDUpO1xyXG5cclxuICAgIHB1YmxpYyBkaXNwYXRjaDxURXZlbnQgZXh0ZW5kcyBTaW1wbGVPaWRjRXZlbnQ+KGV2OiBURXZlbnQpIHtcclxuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KGV2KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzcGF0Y2hFcnJvcihlOiBTaW1wbGVPaWRjRXJyb3IpIHtcclxuICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5uZXh0KG5ldyBTaW1wbGVPaWRjRXJyb3JFdmVudChlKSk7XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -93,3 +93,3 @@ /**

() => {
throw new ChildWindowClosedError({ handle, metadata, redirectUri });
throw new ChildWindowClosedError({ metadata, redirectUri });
})), take(1));

@@ -215,2 +215,2 @@ return fromEvent(this.window, 'message')

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplLWVuZHBvaW50LXBvcHVwLWNsaWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1zaW1wbGUtb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9wb3B1cC1hdXRob3JpemF0aW9uL2F1dGhvcml6ZS1lbmRwb2ludC1wb3B1cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBYyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBTWpFLE1BQU0sT0FBTyxtQ0FBbUM7Ozs7Ozs7Ozs7SUFJNUMsWUFFdUIsTUFBYyxF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QkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs7Ozs7SUFFUyxzQkFBc0IsQ0FBQyxPQUE0Qzs7O2NBRW5FLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEdBQUc7O2NBQzlCLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEdBQUc7O2NBQzVCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07O2NBQzNCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOztjQUN2QyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM5QyxPQUFPLGdDQUFnQyxLQUFLLFdBQVcsTUFBTSxRQUFRLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUM1RixDQUFDOzs7WUF2RkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7O1lBT2tDLE1BQU0sdUJBRGhDLE1BQU0sU0FBQyxVQUFVO1lBZGpCLG1CQUFtQjtZQUxuQixhQUFhLHVCQXNCYixNQUFNLFNBQUMsbUJBQW1CO1lBdEIxQixhQUFhLHVCQXdCYixNQUFNLFNBQUMsa0NBQWtDO1lBekJ6QyxhQUFhO1lBS2Isa0JBQWtCO1lBUGxCLGVBQWU7Ozs7Ozs7O0lBbUJwQiwrREFBMkM7Ozs7O0lBR3ZDLHFEQUNpQzs7Ozs7SUFDakMsMkRBQW9EOzs7OztJQUNwRCx5REFDd0Q7Ozs7O0lBQ3hELDBEQUN1RTs7Ozs7SUFDdkUscURBQXdDOzs7OztJQUN4Qyx5REFBaUQ7Ozs7O0lBQ2pELHVEQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2UsIG1hcCwgdGFwLCB3aXRoTGF0ZXN0RnJvbSwgc3dpdGNoTWFwLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9rZW5VcmxTZXJ2aWNlLCBUb2tlblJlcXVlc3RSZXN1bHQgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBmcm9tRXZlbnQsIGludGVydmFsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UsIFNpbXBsZU9pZGNJbmZvRXZlbnQgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2V2ZW50cyc7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvbmZpZyc7XHJcbmltcG9ydCB7IHVybEpvaW4gfSBmcm9tICcuLi91dGlscy91cmwtam9pbic7XHJcbmltcG9ydCB7IFdJTkRPV19SRUYsIEFVVEhfQ09ORklHX1NFUlZJQ0UgfSBmcm9tICcuLi9wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBBdXRoQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL21vZGVscyc7XHJcbmltcG9ydCB7IE9pZGNDb2RlRmxvd0NsaWVudCB9IGZyb20gJy4uL29pZGMtY29kZS1mbG93LWNsaWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9rZW5TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3Rva2VuLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENoaWxkV2luZG93Q2xvc2VkRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XHJcbmltcG9ydCB7IFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZyB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUdfU0VSVklDRSB9IGZyb20gJy4vcHJvdmlkZXJzJztcclxuXHJcbi8vIEBkeW5hbWljXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aG9yaXplRW5kcG9pbnRQb3B1cENsaWVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHByb3RlY3RlZCBkZXN0cm95ZWRTdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KFdJTkRPV19SRUYpXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvdzogV2luZG93LFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSB0b2tlblN0b3JhZ2U6IFRva2VuU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBVVRIX0NPTkZJR19TRVJWSUNFKVxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBhdXRoQ29uZmlnOiBDb25maWdTZXJ2aWNlPEF1dGhDb25maWc+LFxyXG4gICAgICAgIEBJbmplY3QoUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUdfU0VSVklDRSlcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9wdXBDb25maWc6IENvbmZpZ1NlcnZpY2U8UG9wdXBBdXRob3JpemF0aW9uQ29uZmlnPixcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXZlbnRzOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBvaWRjQ2xpZW50OiBPaWRjQ29kZUZsb3dDbGllbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRva2VuVXJsOiBUb2tlblVybFNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydENvZGVGbG93SW5Qb3B1cChvcHRpb25zOiB7IGhlaWdodD86IG51bWJlciwgd2lkdGg/OiBudW1iZXIgfSA9IHt9KTogT2JzZXJ2YWJsZTxUb2tlblJlcXVlc3RSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCByZWRpcmVjdFVyaSQgPSB0aGlzLmF1dGhDb25maWcuY3VycmVudCRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnBvcHVwQ29uZmlnLmN1cnJlbnQkKSxcclxuICAgICAgICAgICAgICAgIG1hcCgoW2F1dGhDb25maWcsIHNlc3Npb25Db25maWddKSA9PiB1cmxKb2luKGF1dGhDb25maWcuYmFzZVVybCwgc2Vzc2lvbkNvbmZpZy5jaGlsZFdpbmRvd1BhdGgpKSxcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiByZWRpcmVjdFVyaSRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYFN0YXJ0aW5nIENvZGUgRmxvdyBpbiBjaGlsZCB3aW5kb3dgKSkpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChyZWRpcmVjdFVyaSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9pZGNDbGllbnQuZ2VuZXJhdGVDb2RlRmxvd01ldGFkYXRhKHsgcmVkaXJlY3RVcmksIGRpc3BsYXk6ICdwb3B1cCcsIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKG1hcChtZXRhZGF0YSA9PiAoeyBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkpKVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgbWV0YWRhdGEsIHJlZGlyZWN0VXJpIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2ltcGxlT2lkY0luZm9FdmVudChgQ3JlYXRpbmcgd2luZG93YCwgbWV0YWRhdGEpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGUgPSB0aGlzLndpbmRvdy5vcGVuKG1ldGFkYXRhLnVybCwgJ19ibGFuaycsIHRoaXMuY2FsY3VsYXRlUG9wdXBGZWF0dXJlcyhvcHRpb25zKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2xvc2VkJCA9IGludGVydmFsKDUwMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gY29uc29sZS5pbmZvKCdwb2xsaW5nJykpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IGhhbmRsZS5jbG9zZWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KGBDaGlsZCBXaW5kb3cgaGFzIGJlZW4gY2xvc2VkYCkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IENoaWxkV2luZG93Q2xvc2VkRXJyb3IoeyBoYW5kbGUsIG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMud2luZG93LCAnbWVzc2FnZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChldmVudDogTWVzc2FnZUV2ZW50KSA9PiAoeyBldmVudCwgaGFuZGxlLCBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IGV2ZW50LmRhdGEgJiYgdHlwZW9mIChldmVudC5kYXRhKSA9PT0gJ3N0cmluZycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IChldmVudC5kYXRhIGFzIHN0cmluZykuc3RhcnRzV2l0aChyZWRpcmVjdFVyaSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChoYW5kbGVDbG9zZWQkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgbWFwKCh7IGV2ZW50LCBoYW5kbGUsIG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGV2ZW50LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYE9idGFpbmVkIGRhdGEgZnJvbSB3aW5kb3dgLCB7IGV2ZW50LCBocmVmIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGUuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RVcmlcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgaHJlZiwgcmVkaXJlY3RVcmksIG1ldGFkYXRhIH0pID0+IHRoaXMub2lkY0NsaWVudC5jb2RlRmxvd0NhbGxiYWNrKGhyZWYsIHJlZGlyZWN0VXJpLCBtZXRhZGF0YSkpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWRTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlUG9wdXBGZWF0dXJlcyhvcHRpb25zOiB7IGhlaWdodD86IG51bWJlciwgd2lkdGg/OiBudW1iZXIgfSkge1xyXG4gICAgICAgIC8vIFNwZWNpZnkgYW4gc3RhdGljIGhlaWdodCBhbmQgd2lkdGggYW5kIGNhbGN1bGF0ZSBjZW50ZXJlZCBwb3NpdGlvblxyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdGlvbnMuaGVpZ2h0IHx8IDY2MDtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IG9wdGlvbnMud2lkdGggfHwgNTAwO1xyXG4gICAgICAgIGNvbnN0IHNjcmVlbiA9IHRoaXMud2luZG93LnNjcmVlbjtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gKHNjcmVlbi53aWR0aCAvIDIpIC0gKHdpZHRoIC8gMik7XHJcbiAgICAgICAgY29uc3QgdG9wID0gKHNjcmVlbi5oZWlnaHQgLyAyKSAtIChoZWlnaHQgLyAyKTtcclxuICAgICAgICByZXR1cm4gYGxvY2F0aW9uPW5vLHRvb2xiYXI9bm8sd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSx0b3A9JHt0b3B9LGxlZnQ9JHtsZWZ0fWA7XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplLWVuZHBvaW50LXBvcHVwLWNsaWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1zaW1wbGUtb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9wb3B1cC1hdXRob3JpemF0aW9uL2F1dGhvcml6ZS1lbmRwb2ludC1wb3B1cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBYyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBTWpFLE1BQU0sT0FBTyxtQ0FBbUM7Ozs7Ozs7Ozs7SUFJNUMsWUFFdUIsTUFBYyxF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LFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Ozs7OztJQUVTLHNCQUFzQixDQUFDLE9BQTRDOzs7Y0FFbkUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksR0FBRzs7Y0FDOUIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksR0FBRzs7Y0FDNUIsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTs7Y0FDM0IsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7O2NBQ3ZDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sZ0NBQWdDLEtBQUssV0FBVyxNQUFNLFFBQVEsR0FBRyxTQUFTLElBQUksRUFBRSxDQUFDO0lBQzVGLENBQUM7OztZQXZGSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7WUFPa0MsTUFBTSx1QkFEaEMsTUFBTSxTQUFDLFVBQVU7WUFkakIsbUJBQW1CO1lBTG5CLGFBQWEsdUJBc0JiLE1BQU0sU0FBQyxtQkFBbUI7WUF0QjFCLGFBQWEsdUJBd0JiLE1BQU0sU0FBQyxrQ0FBa0M7WUF6QnpDLGFBQWE7WUFLYixrQkFBa0I7WUFQbEIsZUFBZTs7Ozs7Ozs7SUFtQnBCLCtEQUEyQzs7Ozs7SUFHdkMscURBQ2lDOzs7OztJQUNqQywyREFBb0Q7Ozs7O0lBQ3BELHlEQUN3RDs7Ozs7SUFDeEQsMERBQ3VFOzs7OztJQUN2RSxxREFBd0M7Ozs7O0lBQ3hDLHlEQUFpRDs7Ozs7SUFDakQsdURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZSwgbWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tLCBzd2l0Y2hNYXAsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2tlblVybFNlcnZpY2UsIFRva2VuUmVxdWVzdFJlc3VsdCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIGZyb21FdmVudCwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSwgU2ltcGxlT2lkY0luZm9FdmVudCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvZXZlbnRzJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29uZmlnJztcclxuaW1wb3J0IHsgdXJsSm9pbiB9IGZyb20gJy4uL3V0aWxzL3VybC1qb2luJztcclxuaW1wb3J0IHsgV0lORE9XX1JFRiwgQVVUSF9DT05GSUdfU0VSVklDRSB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICcuLi9jb25maWcvbW9kZWxzJztcclxuaW1wb3J0IHsgT2lkY0NvZGVGbG93Q2xpZW50IH0gZnJvbSAnLi4vb2lkYy1jb2RlLWZsb3ctY2xpZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hpbGRXaW5kb3dDbG9zZWRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcclxuaW1wb3J0IHsgUG9wdXBBdXRob3JpemF0aW9uQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFIH0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemVFbmRwb2ludFBvcHVwQ2xpZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3llZFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoV0lORE9XX1JFRilcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93OiBXaW5kb3csXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRva2VuU3RvcmFnZTogVG9rZW5TdG9yYWdlU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFVVEhfQ09ORklHX1NFUlZJQ0UpXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhDb25maWc6IENvbmZpZ1NlcnZpY2U8QXV0aENvbmZpZz4sXHJcbiAgICAgICAgQEluamVjdChQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFKVxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBwb3B1cENvbmZpZzogQ29uZmlnU2VydmljZTxQb3B1cEF1dGhvcml6YXRpb25Db25maWc+LFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9pZGNDbGllbnQ6IE9pZGNDb2RlRmxvd0NsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5Vcmw6IFRva2VuVXJsU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIHN0YXJ0Q29kZUZsb3dJblBvcHVwKG9wdGlvbnM6IHsgaGVpZ2h0PzogbnVtYmVyLCB3aWR0aD86IG51bWJlciB9ID0ge30pOiBPYnNlcnZhYmxlPFRva2VuUmVxdWVzdFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VXJpJCA9IHRoaXMuYXV0aENvbmZpZy5jdXJyZW50JFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMucG9wdXBDb25maWcuY3VycmVudCQpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChbYXV0aENvbmZpZywgc2Vzc2lvbkNvbmZpZ10pID0+IHVybEpvaW4oYXV0aENvbmZpZy5iYXNlVXJsLCBzZXNzaW9uQ29uZmlnLmNoaWxkV2luZG93UGF0aCkpLFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlZGlyZWN0VXJpJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2ltcGxlT2lkY0luZm9FdmVudChgU3RhcnRpbmcgQ29kZSBGbG93IGluIGNoaWxkIHdpbmRvd2ApKSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHJlZGlyZWN0VXJpKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2lkY0NsaWVudC5nZW5lcmF0ZUNvZGVGbG93TWV0YWRhdGEoeyByZWRpcmVjdFVyaSwgZGlzcGxheTogJ3BvcHVwJywgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKG1ldGFkYXRhID0+ICh7IG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSkpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KGBDcmVhdGluZyB3aW5kb3dgLCBtZXRhZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMud2luZG93Lm9wZW4obWV0YWRhdGEudXJsLCAnX2JsYW5rJywgdGhpcy5jYWxjdWxhdGVQb3B1cEZlYXR1cmVzKG9wdGlvbnMpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVDbG9zZWQkID0gaW50ZXJ2YWwoNTAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiBjb25zb2xlLmluZm8oJ3BvbGxpbmcnKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gaGFuZGxlLmNsb3NlZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYENoaWxkIFdpbmRvdyBoYXMgYmVlbiBjbG9zZWRgKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ2hpbGRXaW5kb3dDbG9zZWRFcnJvcih7IG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMud2luZG93LCAnbWVzc2FnZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChldmVudDogTWVzc2FnZUV2ZW50KSA9PiAoeyBldmVudCwgaGFuZGxlLCBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IGV2ZW50LmRhdGEgJiYgdHlwZW9mIChldmVudC5kYXRhKSA9PT0gJ3N0cmluZycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IChldmVudC5kYXRhIGFzIHN0cmluZykuc3RhcnRzV2l0aChyZWRpcmVjdFVyaSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChoYW5kbGVDbG9zZWQkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgbWFwKCh7IGV2ZW50LCBoYW5kbGUsIG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGV2ZW50LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYE9idGFpbmVkIGRhdGEgZnJvbSB3aW5kb3dgLCB7IGV2ZW50LCBocmVmIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGUuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RVcmlcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgaHJlZiwgcmVkaXJlY3RVcmksIG1ldGFkYXRhIH0pID0+IHRoaXMub2lkY0NsaWVudC5jb2RlRmxvd0NhbGxiYWNrKGhyZWYsIHJlZGlyZWN0VXJpLCBtZXRhZGF0YSkpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWRTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlUG9wdXBGZWF0dXJlcyhvcHRpb25zOiB7IGhlaWdodD86IG51bWJlciwgd2lkdGg/OiBudW1iZXIgfSkge1xyXG4gICAgICAgIC8vIFNwZWNpZnkgYW4gc3RhdGljIGhlaWdodCBhbmQgd2lkdGggYW5kIGNhbGN1bGF0ZSBjZW50ZXJlZCBwb3NpdGlvblxyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdGlvbnMuaGVpZ2h0IHx8IDY2MDtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IG9wdGlvbnMud2lkdGggfHwgNTAwO1xyXG4gICAgICAgIGNvbnN0IHNjcmVlbiA9IHRoaXMud2luZG93LnNjcmVlbjtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gKHNjcmVlbi53aWR0aCAvIDIpIC0gKHdpZHRoIC8gMik7XHJcbiAgICAgICAgY29uc3QgdG9wID0gKHNjcmVlbi5oZWlnaHQgLyAyKSAtIChoZWlnaHQgLyAyKTtcclxuICAgICAgICByZXR1cm4gYGxvY2F0aW9uPW5vLHRvb2xiYXI9bm8sd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSx0b3A9JHt0b3B9LGxlZnQ9JHtsZWZ0fWA7XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -41,3 +41,4 @@ /**

*/
() => this.sessionCheck.startSessionCheck())), takeUntil(this.destroyedSubject), takeUntil(sessionChanged$))
() => this.sessionCheck.startSessionCheck()
.pipe(takeUntil(sessionChanged$)))), takeUntil(this.destroyedSubject))
.subscribe();

@@ -162,2 +163,2 @@ // When the RP detects a session state change,

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItc2ltcGxlLW9pZGMvIiwic291cmNlcyI6WyJsaWIvc2Vzc2lvbi1tYW5hZ2VtZW50L3Nlc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHFDQUFxQyxFQUNyQywwQ0FBMEMsRUFDM0MsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWNoRixNQUFNLE9BQU8sdUJBQXVCOzs7Ozs7O0lBSWxDLFlBQ3FCLFlBQWlDLEVBQ2pDLE1BQXFCLEVBQ3JCLHFCQUEyRCxFQUMzRCxZQUFpQztRQUhqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FB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UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7OztZQXhGRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULG1CQUFtQjtvQkFDbkIsb0NBQW9DO2lCQUNyQztnQkFDRCxZQUFZLEVBQUUsRUFBRTthQUNqQjs7OztZQXpCUSxtQkFBbUI7WUFZbkIsYUFBYTtZQVBiLG9DQUFvQztZQUhwQyxtQkFBbUI7Ozs7Ozs7SUEwQjFCLG1EQUFvRDs7Ozs7SUFHbEQsK0NBQW9EOzs7OztJQUNwRCx5Q0FBd0M7Ozs7O0lBQ3hDLHdEQUE4RTs7Ozs7SUFDOUUsK0NBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE9uRGVzdHJveSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwLCBjYXRjaEVycm9yLCB0YWtlLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRva2Vuc1JlYWR5RXZlbnQgfSBmcm9tICcuLi9hdXRoLmV2ZW50cyc7XHJcbmltcG9ydCB7IFNlc3Npb25DaGVja1NlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tY2hlY2suc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25DaGFuZ2VkRXZlbnQsIFNlc3Npb25UZXJtaW5hdGVkRXZlbnQgfSBmcm9tICcuL2V2ZW50cyc7XHJcbmltcG9ydCB7IFRva2VuU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi90b2tlbi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wbGVPaWRjRXJyb3IgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXJJbnN0YW5jZU9mIH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UgfSBmcm9tICcuL2F1dGhvcml6ZS1lbmRwb2ludC1zaWxlbnQtY2xpZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUcsXHJcbiAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19JTklUSUFMSVpFUixcclxuICBTRVNTSU9OX01BTkFHRU1FTlRfQ09ORklHX1NFUlZJQ0VfUFJPVklERVJcclxufSBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IFNlc3Npb25NYW5hZ2VtZW50Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlLCBTaW1wbGVPaWRjSW5mb0V2ZW50IH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9ldmVudHMnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudHMgU2Vzc2lvbiBDaGVja3MgYWNjb3JkaW5nIHRvIFNlc3Npb24gTWFuYWdlbWVudFxyXG4gKiBodHRwczovL29wZW5pZC5uZXQvc3BlY3Mvb3BlbmlkLWNvbm5lY3Qtc2Vzc2lvbi0xXzAuaHRtbFxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFNlc3Npb25DaGVja1NlcnZpY2UsXHJcbiAgICBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvbk1hbmFnZW1lbnRNb2R1bGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveWVkU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25DaGVjazogU2Vzc2lvbkNoZWNrU2VydmljZSxcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aG9yaXplU2lsZW50Q2xpZW50OiBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5TdG9yYWdlOiBUb2tlblN0b3JhZ2VTZXJ2aWNlLFxyXG4gICkge1xyXG5cclxuICAgIGNvbnN0IHNlc3Npb25DaGFuZ2VkJCA9IHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoZmlsdGVySW5zdGFuY2VPZihTZXNzaW9uQ2hhbmdlZEV2ZW50KSk7XHJcblxyXG4gICAgLy8gU3RhcnQgc2Vzc2lvbiBjaGVja3Mgd2hlbiB3ZSByZWNlaXZlIHRva2Vucy5cclxuICAgIHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVySW5zdGFuY2VPZihUb2tlbnNSZWFkeUV2ZW50KSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXNzaW9uQ2hlY2suc3RhcnRTZXNzaW9uQ2hlY2soKSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdCksXHJcbiAgICAgICAgdGFrZVVudGlsKHNlc3Npb25DaGFuZ2VkJCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG5cclxuICAgIC8vIFdoZW4gdGhlIFJQIGRldGVjdHMgYSBzZXNzaW9uIHN0YXRlIGNoYW5nZSxcclxuICAgIC8vIGl0IFNIT1VMRCBmaXJzdCB0cnkgYSBwcm9tcHQ9bm9uZSByZXF1ZXN0IHdpdGhpbiBhbiBpZnJhbWUgdG8gb2J0YWluXHJcbiAgICAvLyBhIG5ldyBJRCBUb2tlbiBhbmQgc2Vzc2lvbiBzdGF0ZSwgc2VuZGluZyB0aGUgb2xkIElEIFRva2VuIGFzIHRoZSBpZF90b2tlbl9oaW50LlxyXG4gICAgLy8gSWYgdGhlIFJQIHJlY2VpdmVzIGFuIElEIHRva2VuIGZvciB0aGUgc2FtZSBFbmQtVXNlciwgaXQgU0hPVUxEIHNpbXBseSB1cGRhdGVcclxuICAgIC8vIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiBzdGF0ZS4gSWYgaXQgZG9lc24ndCByZWNlaXZlIGFuIElEIHRva2VuIG9yIHJlY2VpdmVzXHJcbiAgICAvLyBhbiBJRCB0b2tlbiBmb3IgYW5vdGhlciBFbmQtVXNlciwgdGhlbiBpdCBuZWVkcyB0byBoYW5kbGUgdGhpcyBjYXNlIGFzIGFcclxuICAgIC8vIGxvZ291dCBmb3IgdGhlIG9yaWdpbmFsIEVuZC1Vc2VyLlxyXG4gICAgY29uc3Qgc2lsZW50Q29kZUZsb3ckID0gdGhpcy50b2tlblN0b3JhZ2UuY3VycmVudFN0YXRlJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgocHJldmlvdXNTdGF0ZSkgPT4gdGhpcy5hdXRob3JpemVTaWxlbnRDbGllbnQuc3RhcnRDb2RlRmxvd0luSWZyYW1lKClcclxuICAgICAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gKHsgcmVzdWx0LCBwcmV2aW91c1N0YXRlIH0pKSlcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoeyByZXN1bHQsIHByZXZpb3VzU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmV3VG9rZW4gPSByZXN1bHQuZGVjb2RlZElkVG9rZW47XHJcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1Rva2VuID0gcHJldmlvdXNTdGF0ZS5kZWNvZGVkSWRlbnRpdHlUb2tlbjtcclxuICAgICAgICAgIGlmIChwcmV2aW91c1Rva2VuICYmIG5ld1Rva2VuLnN1YiAhPT0gcHJldmlvdXNUb2tlbi5zdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNlc3Npb25UZXJtaW5hdGVkRXZlbnQoeyBwcmV2aW91c1Rva2VuLCBuZXdUb2tlbiB9KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IFNpbXBsZU9pZGNFcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNlc3Npb25UZXJtaW5hdGVkRXZlbnQoeyBlcnJvcjogZXJyb3IuY29udGV4dCB9KSk7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmV2ZW50cy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlckluc3RhbmNlT2YoU2Vzc2lvbkNoYW5nZWRFdmVudCksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KCdTZXNzaW9uIGhhcyBjaGFuZ2VkLiBTdGFydGluZyBzaWxlbnQgY29kZSBmbG93LicpKSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHNpbGVudENvZGVGbG93JCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG91bGQgYmUgY2FsbGVkIG9uY2Ugb24geW91ciBBbmd1bGFyIFJvb3QgQXBwbGljYXRpb24gTW9kdWxlXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IFNlc3Npb25NYW5hZ2VtZW50Q29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogU2Vzc2lvbk1hbmFnZW1lbnRNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIGNvbmZpZyAhPSBudWxsID8ge1xyXG4gICAgICAgICAgcHJvdmlkZTogU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJRyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcclxuICAgICAgICB9IDogW10sXHJcbiAgICAgICAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19TRVJWSUNFX1BST1ZJREVSLFxyXG4gICAgICAgIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUdfSU5JVElBTElaRVIsXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWRTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItc2ltcGxlLW9pZGMvIiwic291cmNlcyI6WyJsaWIvc2Vzc2lvbi1tYW5hZ2VtZW50L3Nlc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHFDQUFxQyxFQUNyQywwQ0FBMEMsRUFDM0MsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWNoRixNQUFNLE9BQU8sdUJBQXVCOzs7Ozs7O0lBSWxDLFlBQ3FCLFlBQWlDLEVBQ2pDLE1BQXFCLEVBQ3JCLHFCQUEyRCxFQUMzRCxZQUFpQztRQUhqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FB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SUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7OztZQTFGRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULG1CQUFtQjtvQkFDbkIsb0NBQW9DO2lCQUNyQztnQkFDRCxZQUFZLEVBQUUsRUFBRTthQUNqQjs7OztZQXpCUSxtQkFBbUI7WUFZbkIsYUFBYTtZQVBiLG9DQUFvQztZQUhwQyxtQkFBbUI7Ozs7Ozs7SUEwQjFCLG1EQUFvRDs7Ozs7SUFHbEQsK0NBQW9EOzs7OztJQUNwRCx5Q0FBd0M7Ozs7O0lBQ3hDLHdEQUE4RTs7Ozs7SUFDOUUsK0NBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE9uRGVzdHJveSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwLCBjYXRjaEVycm9yLCB0YWtlLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRva2Vuc1JlYWR5RXZlbnQgfSBmcm9tICcuLi9hdXRoLmV2ZW50cyc7XHJcbmltcG9ydCB7IFNlc3Npb25DaGVja1NlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tY2hlY2suc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25DaGFuZ2VkRXZlbnQsIFNlc3Npb25UZXJtaW5hdGVkRXZlbnQgfSBmcm9tICcuL2V2ZW50cyc7XHJcbmltcG9ydCB7IFRva2VuU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi90b2tlbi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wbGVPaWRjRXJyb3IgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXJJbnN0YW5jZU9mIH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UgfSBmcm9tICcuL2F1dGhvcml6ZS1lbmRwb2ludC1zaWxlbnQtY2xpZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUcsXHJcbiAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19JTklUSUFMSVpFUixcclxuICBTRVNTSU9OX01BTkFHRU1FTlRfQ09ORklHX1NFUlZJQ0VfUFJPVklERVJcclxufSBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IFNlc3Npb25NYW5hZ2VtZW50Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlLCBTaW1wbGVPaWRjSW5mb0V2ZW50IH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9ldmVudHMnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudHMgU2Vzc2lvbiBDaGVja3MgYWNjb3JkaW5nIHRvIFNlc3Npb24gTWFuYWdlbWVudFxyXG4gKiBodHRwczovL29wZW5pZC5uZXQvc3BlY3Mvb3BlbmlkLWNvbm5lY3Qtc2Vzc2lvbi0xXzAuaHRtbFxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFNlc3Npb25DaGVja1NlcnZpY2UsXHJcbiAgICBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvbk1hbmFnZW1lbnRNb2R1bGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveWVkU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25DaGVjazogU2Vzc2lvbkNoZWNrU2VydmljZSxcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aG9yaXplU2lsZW50Q2xpZW50OiBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5TdG9yYWdlOiBUb2tlblN0b3JhZ2VTZXJ2aWNlLFxyXG4gICkge1xyXG5cclxuICAgIGNvbnN0IHNlc3Npb25DaGFuZ2VkJCA9IHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoZmlsdGVySW5zdGFuY2VPZihTZXNzaW9uQ2hhbmdlZEV2ZW50KSk7XHJcblxyXG4gICAgLy8gU3RhcnQgc2Vzc2lvbiBjaGVja3Mgd2hlbiB3ZSByZWNlaXZlIHRva2Vucy5cclxuICAgIHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVySW5zdGFuY2VPZihUb2tlbnNSZWFkeUV2ZW50KSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cclxuICAgICAgICAgIHRoaXMuc2Vzc2lvbkNoZWNrLnN0YXJ0U2Vzc2lvbkNoZWNrKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHNlc3Npb25DaGFuZ2VkJCkpXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWRTdWJqZWN0KSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgLy8gV2hlbiB0aGUgUlAgZGV0ZWN0cyBhIHNlc3Npb24gc3RhdGUgY2hhbmdlLFxyXG4gICAgLy8gaXQgU0hPVUxEIGZpcnN0IHRyeSBhIHByb21wdD1ub25lIHJlcXVlc3Qgd2l0aGluIGFuIGlmcmFtZSB0byBvYnRhaW5cclxuICAgIC8vIGEgbmV3IElEIFRva2VuIGFuZCBzZXNzaW9uIHN0YXRlLCBzZW5kaW5nIHRoZSBvbGQgSUQgVG9rZW4gYXMgdGhlIGlkX3Rva2VuX2hpbnQuXHJcbiAgICAvLyBJZiB0aGUgUlAgcmVjZWl2ZXMgYW4gSUQgdG9rZW4gZm9yIHRoZSBzYW1lIEVuZC1Vc2VyLCBpdCBTSE9VTEQgc2ltcGx5IHVwZGF0ZVxyXG4gICAgLy8gdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHN0YXRlLiBJZiBpdCBkb2Vzbid0IHJlY2VpdmUgYW4gSUQgdG9rZW4gb3IgcmVjZWl2ZXNcclxuICAgIC8vIGFuIElEIHRva2VuIGZvciBhbm90aGVyIEVuZC1Vc2VyLCB0aGVuIGl0IG5lZWRzIHRvIGhhbmRsZSB0aGlzIGNhc2UgYXMgYVxyXG4gICAgLy8gbG9nb3V0IGZvciB0aGUgb3JpZ2luYWwgRW5kLVVzZXIuXHJcbiAgICBjb25zdCBzaWxlbnRDb2RlRmxvdyQgPSB0aGlzLnRva2VuU3RvcmFnZS5jdXJyZW50U3RhdGUkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgc3dpdGNoTWFwKChwcmV2aW91c1N0YXRlKSA9PiB0aGlzLmF1dGhvcml6ZVNpbGVudENsaWVudC5zdGFydENvZGVGbG93SW5JZnJhbWUoKVxyXG4gICAgICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiAoeyByZXN1bHQsIHByZXZpb3VzU3RhdGUgfSkpKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGFwKCh7IHJlc3VsdCwgcHJldmlvdXNTdGF0ZSB9KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXdUb2tlbiA9IHJlc3VsdC5kZWNvZGVkSWRUb2tlbjtcclxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzVG9rZW4gPSBwcmV2aW91c1N0YXRlLmRlY29kZWRJZGVudGl0eVRva2VuO1xyXG4gICAgICAgICAgaWYgKHByZXZpb3VzVG9rZW4gJiYgbmV3VG9rZW4uc3ViICE9PSBwcmV2aW91c1Rva2VuLnN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2Vzc2lvblRlcm1pbmF0ZWRFdmVudCh7IHByZXZpb3VzVG9rZW4sIG5ld1Rva2VuIH0pKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogU2ltcGxlT2lkY0Vycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2Vzc2lvblRlcm1pbmF0ZWRFdmVudCh7IGVycm9yOiBlcnJvci5jb250ZXh0IH0pKTtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgIHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVySW5zdGFuY2VPZihTZXNzaW9uQ2hhbmdlZEV2ZW50KSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoJ1Nlc3Npb24gaGFzIGNoYW5nZWQuIFN0YXJ0aW5nIHNpbGVudCBjb2RlIGZsb3cuJykpKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gc2lsZW50Q29kZUZsb3ckKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWRTdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3VsZCBiZSBjYWxsZWQgb25jZSBvbiB5b3VyIEFuZ3VsYXIgUm9vdCBBcHBsaWNhdGlvbiBNb2R1bGVcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoY29uZmlnPzogU2Vzc2lvbk1hbmFnZW1lbnRDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBTZXNzaW9uTWFuYWdlbWVudE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgY29uZmlnICE9IG51bGwgPyB7XHJcbiAgICAgICAgICBwcm92aWRlOiBTRVNTSU9OX01BTkFHRU1FTlRfQ09ORklHLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xyXG4gICAgICAgIH0gOiBbXSxcclxuICAgICAgICBTRVNTSU9OX01BTkFHRU1FTlRfQ09ORklHX1NFUlZJQ0VfUFJPVklERVIsXHJcbiAgICAgICAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19JTklUSUFMSVpFUixcclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19

@@ -11,4 +11,4 @@ /**

function EventsService() {
this.eventSubject = new ReplaySubject();
this.errorSubject = new ReplaySubject();
this.eventSubject = new ReplaySubject(5);
this.errorSubject = new ReplaySubject(5);
}

@@ -80,2 +80,2 @@ Object.defineProperty(EventsService.prototype, "events$", {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNpbXBsZS1vaWRjL2V2ZW50cy8iLCJzb3VyY2VzIjpbImxpYi9ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3JDO0lBQUE7UUFhdUIsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBbUIsQ0FBQztRQUNwRCxpQkFBWSxHQUFHLElBQUksYUFBYSxFQUF3QixDQUFDO0tBUy9FO0lBbEJHLHNCQUFXLGtDQUFPOzs7O1FBQWxCO1lBQ0ksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsa0NBQU87Ozs7UUFBbEI7WUFDSSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsQ0FBQzs7O09BQUE7Ozs7OztJQUtNLGdDQUFROzs7OztJQUFmLFVBQWdELEVBQVU7UUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFTSxxQ0FBYTs7OztJQUFwQixVQUFxQixDQUFrQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Z0JBdEJKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozt3QkFQRDtDQTRCQyxBQXZCRCxJQXVCQztTQXBCWSxhQUFhOzs7Ozs7SUFVdEIscUNBQXVFOzs7OztJQUN2RSxxQ0FBNEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpbXBsZU9pZGNFdmVudCwgU2ltcGxlT2lkY0Vycm9yRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2ltcGxlT2lkY0Vycm9yIH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXZlbnRzU2VydmljZSB7XHJcblxyXG4gICAgcHVibGljIGdldCBldmVudHMkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGVycm9ycyQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxTaW1wbGVPaWRjRXZlbnQ+KCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8U2ltcGxlT2lkY0Vycm9yRXZlbnQ+KCk7XHJcblxyXG4gICAgcHVibGljIGRpc3BhdGNoPFRFdmVudCBleHRlbmRzIFNpbXBsZU9pZGNFdmVudD4oZXY6IFRFdmVudCkge1xyXG4gICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoZXYpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNwYXRjaEVycm9yKGU6IFNpbXBsZU9pZGNFcnJvcikge1xyXG4gICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQobmV3IFNpbXBsZU9pZGNFcnJvckV2ZW50KGUpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNpbXBsZS1vaWRjL2V2ZW50cy8iLCJzb3VyY2VzIjpbImxpYi9ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3JDO0lBQUE7UUFhdUIsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBdUIsQ0FBQyxDQUFDLENBQUM7S0FTaEY7SUFsQkcsc0JBQVcsa0NBQU87Ozs7UUFBbEI7WUFDSSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyxrQ0FBTzs7OztRQUFsQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxDQUFDOzs7T0FBQTs7Ozs7O0lBS00sZ0NBQVE7Ozs7O0lBQWYsVUFBZ0QsRUFBVTtRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7OztJQUVNLHFDQUFhOzs7O0lBQXBCLFVBQXFCLENBQWtCO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDOztnQkF0QkosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7O3dCQVBEO0NBNEJDLEFBdkJELElBdUJDO1NBcEJZLGFBQWE7Ozs7OztJQVV0QixxQ0FBd0U7Ozs7O0lBQ3hFLHFDQUE2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2ltcGxlT2lkY0V2ZW50LCBTaW1wbGVPaWRjRXJyb3JFdmVudCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaW1wbGVPaWRjRXJyb3IgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudHNTZXJ2aWNlIHtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGV2ZW50cyQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZXJyb3JzJCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGV2ZW50U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFNpbXBsZU9pZGNFdmVudD4oNSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXJyb3JTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8U2ltcGxlT2lkY0Vycm9yRXZlbnQ+KDUpO1xyXG5cclxuICAgIHB1YmxpYyBkaXNwYXRjaDxURXZlbnQgZXh0ZW5kcyBTaW1wbGVPaWRjRXZlbnQ+KGV2OiBURXZlbnQpIHtcclxuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KGV2KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzcGF0Y2hFcnJvcihlOiBTaW1wbGVPaWRjRXJyb3IpIHtcclxuICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5uZXh0KG5ldyBTaW1wbGVPaWRjRXJyb3JFdmVudChlKSk7XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -97,3 +97,3 @@ /**

function () {
throw new ChildWindowClosedError({ handle: handle, metadata: metadata, redirectUri: redirectUri });
throw new ChildWindowClosedError({ metadata: metadata, redirectUri: redirectUri });
})), take(1));

@@ -239,2 +239,2 @@ return fromEvent(_this.window, 'message')

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplLWVuZHBvaW50LXBvcHVwLWNsaWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1zaW1wbGUtb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9wb3B1cC1hdXRob3JpemF0aW9uL2F1dGhvcml6ZS1lbmRwb2ludC1wb3B1cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFzQixNQUFNLDBCQUEwQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQWMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7OztBQUdqRTtJQU9JLDZDQUV1QixNQUFjLEVBQ2QsWUFBaUMsRUFFakMsVUFBcUMsRUFF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SUFHdkMscURBQ2lDOzs7OztJQUNqQywyREFBb0Q7Ozs7O0lBQ3BELHlEQUN3RDs7Ozs7SUFDeEQsMERBQ3VFOzs7OztJQUN2RSxxREFBd0M7Ozs7O0lBQ3hDLHlEQUFpRDs7Ozs7SUFDakQsdURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZSwgbWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tLCBzd2l0Y2hNYXAsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2tlblVybFNlcnZpY2UsIFRva2VuUmVxdWVzdFJlc3VsdCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIGZyb21FdmVudCwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSwgU2ltcGxlT2lkY0luZm9FdmVudCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvZXZlbnRzJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29uZmlnJztcclxuaW1wb3J0IHsgdXJsSm9pbiB9IGZyb20gJy4uL3V0aWxzL3VybC1qb2luJztcclxuaW1wb3J0IHsgV0lORE9XX1JFRiwgQVVUSF9DT05GSUdfU0VSVklDRSB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICcuLi9jb25maWcvbW9kZWxzJztcclxuaW1wb3J0IHsgT2lkY0NvZGVGbG93Q2xpZW50IH0gZnJvbSAnLi4vb2lkYy1jb2RlLWZsb3ctY2xpZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hpbGRXaW5kb3dDbG9zZWRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcclxuaW1wb3J0IHsgUG9wdXBBdXRob3JpemF0aW9uQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFIH0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemVFbmRwb2ludFBvcHVwQ2xpZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3llZFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoV0lORE9XX1JFRilcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93OiBXaW5kb3csXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRva2VuU3RvcmFnZTogVG9rZW5TdG9yYWdlU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFVVEhfQ09ORklHX1NFUlZJQ0UpXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhDb25maWc6IENvbmZpZ1NlcnZpY2U8QXV0aENvbmZpZz4sXHJcbiAgICAgICAgQEluamVjdChQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFKVxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBwb3B1cENvbmZpZzogQ29uZmlnU2VydmljZTxQb3B1cEF1dGhvcml6YXRpb25Db25maWc+LFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9pZGNDbGllbnQ6IE9pZGNDb2RlRmxvd0NsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5Vcmw6IFRva2VuVXJsU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIHN0YXJ0Q29kZUZsb3dJblBvcHVwKG9wdGlvbnM6IHsgaGVpZ2h0PzogbnVtYmVyLCB3aWR0aD86IG51bWJlciB9ID0ge30pOiBPYnNlcnZhYmxlPFRva2VuUmVxdWVzdFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VXJpJCA9IHRoaXMuYXV0aENvbmZpZy5jdXJyZW50JFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMucG9wdXBDb25maWcuY3VycmVudCQpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChbYXV0aENvbmZpZywgc2Vzc2lvbkNvbmZpZ10pID0+IHVybEpvaW4oYXV0aENvbmZpZy5iYXNlVXJsLCBzZXNzaW9uQ29uZmlnLmNoaWxkV2luZG93UGF0aCkpLFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlZGlyZWN0VXJpJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2ltcGxlT2lkY0luZm9FdmVudChgU3RhcnRpbmcgQ29kZSBGbG93IGluIGNoaWxkIHdpbmRvd2ApKSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHJlZGlyZWN0VXJpKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2lkY0NsaWVudC5nZW5lcmF0ZUNvZGVGbG93TWV0YWRhdGEoeyByZWRpcmVjdFVyaSwgZGlzcGxheTogJ3BvcHVwJywgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKG1ldGFkYXRhID0+ICh7IG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSkpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KGBDcmVhdGluZyB3aW5kb3dgLCBtZXRhZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMud2luZG93Lm9wZW4obWV0YWRhdGEudXJsLCAnX2JsYW5rJywgdGhpcy5jYWxjdWxhdGVQb3B1cEZlYXR1cmVzKG9wdGlvbnMpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVDbG9zZWQkID0gaW50ZXJ2YWwoNTAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiBjb25zb2xlLmluZm8oJ3BvbGxpbmcnKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gaGFuZGxlLmNsb3NlZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYENoaWxkIFdpbmRvdyBoYXMgYmVlbiBjbG9zZWRgKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ2hpbGRXaW5kb3dDbG9zZWRFcnJvcih7IGhhbmRsZSwgbWV0YWRhdGEsIHJlZGlyZWN0VXJpIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy53aW5kb3csICdtZXNzYWdlJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+ICh7IGV2ZW50LCBoYW5kbGUsIG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHsgZXZlbnQgfSkgPT4gZXZlbnQuZGF0YSAmJiB0eXBlb2YgKGV2ZW50LmRhdGEpID09PSAnc3RyaW5nJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHsgZXZlbnQgfSkgPT4gKGV2ZW50LmRhdGEgYXMgc3RyaW5nKS5zdGFydHNXaXRoKHJlZGlyZWN0VXJpKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKGhhbmRsZUNsb3NlZCQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBtYXAoKHsgZXZlbnQsIGhhbmRsZSwgbWV0YWRhdGEsIHJlZGlyZWN0VXJpIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gZXZlbnQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2ltcGxlT2lkY0luZm9FdmVudChgT2J0YWluZWQgZGF0YSBmcm9tIHdpbmRvd2AsIHsgZXZlbnQsIGhyZWYgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZS5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdFVyaVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBocmVmLCByZWRpcmVjdFVyaSwgbWV0YWRhdGEgfSkgPT4gdGhpcy5vaWRjQ2xpZW50LmNvZGVGbG93Q2FsbGJhY2soaHJlZiwgcmVkaXJlY3RVcmksIG1ldGFkYXRhKSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWRTdWJqZWN0KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveWVkU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQb3B1cEZlYXR1cmVzKG9wdGlvbnM6IHsgaGVpZ2h0PzogbnVtYmVyLCB3aWR0aD86IG51bWJlciB9KSB7XHJcbiAgICAgICAgLy8gU3BlY2lmeSBhbiBzdGF0aWMgaGVpZ2h0IGFuZCB3aWR0aCBhbmQgY2FsY3VsYXRlIGNlbnRlcmVkIHBvc2l0aW9uXHJcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0aW9ucy5oZWlnaHQgfHwgNjYwO1xyXG4gICAgICAgIGNvbnN0IHdpZHRoID0gb3B0aW9ucy53aWR0aCB8fCA1MDA7XHJcbiAgICAgICAgY29uc3Qgc2NyZWVuID0gdGhpcy53aW5kb3cuc2NyZWVuO1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPSAoc2NyZWVuLndpZHRoIC8gMikgLSAod2lkdGggLyAyKTtcclxuICAgICAgICBjb25zdCB0b3AgPSAoc2NyZWVuLmhlaWdodCAvIDIpIC0gKGhlaWdodCAvIDIpO1xyXG4gICAgICAgIHJldHVybiBgbG9jYXRpb249bm8sdG9vbGJhcj1ubyx3aWR0aD0ke3dpZHRofSxoZWlnaHQ9JHtoZWlnaHR9LHRvcD0ke3RvcH0sbGVmdD0ke2xlZnR9YDtcclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplLWVuZHBvaW50LXBvcHVwLWNsaWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1zaW1wbGUtb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9wb3B1cC1hdXRob3JpemF0aW9uL2F1dGhvcml6ZS1lbmRwb2ludC1wb3B1cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFzQixNQUFNLDBCQUEwQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQWMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7OztBQUdqRTtJQU9JLDZDQUV1QixNQUFjLEVBQ2QsWUFBaUMsRUFFakMsVUFBcUMsRUFF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OztJQUNqQywyREFBb0Q7Ozs7O0lBQ3BELHlEQUN3RDs7Ozs7SUFDeEQsMERBQ3VFOzs7OztJQUN2RSxxREFBd0M7Ozs7O0lBQ3hDLHlEQUFpRDs7Ozs7SUFDakQsdURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZSwgbWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tLCBzd2l0Y2hNYXAsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2tlblVybFNlcnZpY2UsIFRva2VuUmVxdWVzdFJlc3VsdCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIGZyb21FdmVudCwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSwgU2ltcGxlT2lkY0luZm9FdmVudCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvZXZlbnRzJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29uZmlnJztcclxuaW1wb3J0IHsgdXJsSm9pbiB9IGZyb20gJy4uL3V0aWxzL3VybC1qb2luJztcclxuaW1wb3J0IHsgV0lORE9XX1JFRiwgQVVUSF9DT05GSUdfU0VSVklDRSB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICcuLi9jb25maWcvbW9kZWxzJztcclxuaW1wb3J0IHsgT2lkY0NvZGVGbG93Q2xpZW50IH0gZnJvbSAnLi4vb2lkYy1jb2RlLWZsb3ctY2xpZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hpbGRXaW5kb3dDbG9zZWRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcclxuaW1wb3J0IHsgUG9wdXBBdXRob3JpemF0aW9uQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFIH0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemVFbmRwb2ludFBvcHVwQ2xpZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3llZFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoV0lORE9XX1JFRilcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93OiBXaW5kb3csXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRva2VuU3RvcmFnZTogVG9rZW5TdG9yYWdlU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFVVEhfQ09ORklHX1NFUlZJQ0UpXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhDb25maWc6IENvbmZpZ1NlcnZpY2U8QXV0aENvbmZpZz4sXHJcbiAgICAgICAgQEluamVjdChQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFKVxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBwb3B1cENvbmZpZzogQ29uZmlnU2VydmljZTxQb3B1cEF1dGhvcml6YXRpb25Db25maWc+LFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9pZGNDbGllbnQ6IE9pZGNDb2RlRmxvd0NsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5Vcmw6IFRva2VuVXJsU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIHN0YXJ0Q29kZUZsb3dJblBvcHVwKG9wdGlvbnM6IHsgaGVpZ2h0PzogbnVtYmVyLCB3aWR0aD86IG51bWJlciB9ID0ge30pOiBPYnNlcnZhYmxlPFRva2VuUmVxdWVzdFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VXJpJCA9IHRoaXMuYXV0aENvbmZpZy5jdXJyZW50JFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMucG9wdXBDb25maWcuY3VycmVudCQpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChbYXV0aENvbmZpZywgc2Vzc2lvbkNvbmZpZ10pID0+IHVybEpvaW4oYXV0aENvbmZpZy5iYXNlVXJsLCBzZXNzaW9uQ29uZmlnLmNoaWxkV2luZG93UGF0aCkpLFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlZGlyZWN0VXJpJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmV2ZW50cy5kaXNwYXRjaChuZXcgU2ltcGxlT2lkY0luZm9FdmVudChgU3RhcnRpbmcgQ29kZSBGbG93IGluIGNoaWxkIHdpbmRvd2ApKSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHJlZGlyZWN0VXJpKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2lkY0NsaWVudC5nZW5lcmF0ZUNvZGVGbG93TWV0YWRhdGEoeyByZWRpcmVjdFVyaSwgZGlzcGxheTogJ3BvcHVwJywgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKG1ldGFkYXRhID0+ICh7IG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSkpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KGBDcmVhdGluZyB3aW5kb3dgLCBtZXRhZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMud2luZG93Lm9wZW4obWV0YWRhdGEudXJsLCAnX2JsYW5rJywgdGhpcy5jYWxjdWxhdGVQb3B1cEZlYXR1cmVzKG9wdGlvbnMpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVDbG9zZWQkID0gaW50ZXJ2YWwoNTAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiBjb25zb2xlLmluZm8oJ3BvbGxpbmcnKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gaGFuZGxlLmNsb3NlZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYENoaWxkIFdpbmRvdyBoYXMgYmVlbiBjbG9zZWRgKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ2hpbGRXaW5kb3dDbG9zZWRFcnJvcih7IG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMud2luZG93LCAnbWVzc2FnZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChldmVudDogTWVzc2FnZUV2ZW50KSA9PiAoeyBldmVudCwgaGFuZGxlLCBtZXRhZGF0YSwgcmVkaXJlY3RVcmkgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IGV2ZW50LmRhdGEgJiYgdHlwZW9mIChldmVudC5kYXRhKSA9PT0gJ3N0cmluZycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh7IGV2ZW50IH0pID0+IChldmVudC5kYXRhIGFzIHN0cmluZykuc3RhcnRzV2l0aChyZWRpcmVjdFVyaSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChoYW5kbGVDbG9zZWQkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgbWFwKCh7IGV2ZW50LCBoYW5kbGUsIG1ldGFkYXRhLCByZWRpcmVjdFVyaSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGV2ZW50LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNpbXBsZU9pZGNJbmZvRXZlbnQoYE9idGFpbmVkIGRhdGEgZnJvbSB3aW5kb3dgLCB7IGV2ZW50LCBocmVmIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGUuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RVcmlcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgaHJlZiwgcmVkaXJlY3RVcmksIG1ldGFkYXRhIH0pID0+IHRoaXMub2lkY0NsaWVudC5jb2RlRmxvd0NhbGxiYWNrKGhyZWYsIHJlZGlyZWN0VXJpLCBtZXRhZGF0YSkpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWRTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlUG9wdXBGZWF0dXJlcyhvcHRpb25zOiB7IGhlaWdodD86IG51bWJlciwgd2lkdGg/OiBudW1iZXIgfSkge1xyXG4gICAgICAgIC8vIFNwZWNpZnkgYW4gc3RhdGljIGhlaWdodCBhbmQgd2lkdGggYW5kIGNhbGN1bGF0ZSBjZW50ZXJlZCBwb3NpdGlvblxyXG4gICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdGlvbnMuaGVpZ2h0IHx8IDY2MDtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IG9wdGlvbnMud2lkdGggfHwgNTAwO1xyXG4gICAgICAgIGNvbnN0IHNjcmVlbiA9IHRoaXMud2luZG93LnNjcmVlbjtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gKHNjcmVlbi53aWR0aCAvIDIpIC0gKHdpZHRoIC8gMik7XHJcbiAgICAgICAgY29uc3QgdG9wID0gKHNjcmVlbi5oZWlnaHQgLyAyKSAtIChoZWlnaHQgLyAyKTtcclxuICAgICAgICByZXR1cm4gYGxvY2F0aW9uPW5vLHRvb2xiYXI9bm8sd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSx0b3A9JHt0b3B9LGxlZnQ9JHtsZWZ0fWA7XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -36,3 +36,6 @@ /**

*/
function () { return _this.sessionCheck.startSessionCheck(); })), takeUntil(this.destroyedSubject), takeUntil(sessionChanged$))
function () {
return _this.sessionCheck.startSessionCheck()
.pipe(takeUntil(sessionChanged$));
})), takeUntil(this.destroyedSubject))
.subscribe();

@@ -171,2 +174,2 @@ // When the RP detects a session state change,

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItc2ltcGxlLW9pZGMvIiwic291cmNlcyI6WyJsaWIvc2Vzc2lvbi1tYW5hZ2VtZW50L3Nlc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHFDQUFxQyxFQUNyQywwQ0FBMEMsRUFDM0MsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQU1oRjtJQVlFLGlDQUNxQixZQUFpQyxFQUNqQyxNQUFxQixFQUNyQixxQkFBMkQsRUFDM0QsWUFBaUM7UUFKdEQsaUJBc0RDO1FBckRvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1B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Q0FBVzs7O0lBQWxCO1FBQ0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDOztnQkF4RkYsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRTt3QkFDVCxtQkFBbUI7d0JBQ25CLG9DQUFvQztxQkFDckM7b0JBQ0QsWUFBWSxFQUFFLEVBQUU7aUJBQ2pCOzs7O2dCQXpCUSxtQkFBbUI7Z0JBWW5CLGFBQWE7Z0JBUGIsb0NBQW9DO2dCQUhwQyxtQkFBbUI7O0lBeUc1Qiw4QkFBQztDQUFBLEFBekZELElBeUZDO1NBakZZLHVCQUF1Qjs7Ozs7O0lBRWxDLG1EQUFvRDs7Ozs7SUFHbEQsK0NBQW9EOzs7OztJQUNwRCx5Q0FBd0M7Ozs7O0lBQ3hDLHdEQUE4RTs7Ozs7SUFDOUUsK0NBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE9uRGVzdHJveSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwLCBjYXRjaEVycm9yLCB0YWtlLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRva2Vuc1JlYWR5RXZlbnQgfSBmcm9tICcuLi9hdXRoLmV2ZW50cyc7XHJcbmltcG9ydCB7IFNlc3Npb25DaGVja1NlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tY2hlY2suc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25DaGFuZ2VkRXZlbnQsIFNlc3Npb25UZXJtaW5hdGVkRXZlbnQgfSBmcm9tICcuL2V2ZW50cyc7XHJcbmltcG9ydCB7IFRva2VuU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi90b2tlbi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wbGVPaWRjRXJyb3IgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXJJbnN0YW5jZU9mIH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UgfSBmcm9tICcuL2F1dGhvcml6ZS1lbmRwb2ludC1zaWxlbnQtY2xpZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUcsXHJcbiAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19JTklUSUFMSVpFUixcclxuICBTRVNTSU9OX01BTkFHRU1FTlRfQ09ORklHX1NFUlZJQ0VfUFJPVklERVJcclxufSBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IFNlc3Npb25NYW5hZ2VtZW50Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlLCBTaW1wbGVPaWRjSW5mb0V2ZW50IH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9ldmVudHMnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudHMgU2Vzc2lvbiBDaGVja3MgYWNjb3JkaW5nIHRvIFNlc3Npb24gTWFuYWdlbWVudFxyXG4gKiBodHRwczovL29wZW5pZC5uZXQvc3BlY3Mvb3BlbmlkLWNvbm5lY3Qtc2Vzc2lvbi0xXzAuaHRtbFxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFNlc3Npb25DaGVja1NlcnZpY2UsXHJcbiAgICBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvbk1hbmFnZW1lbnRNb2R1bGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveWVkU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25DaGVjazogU2Vzc2lvbkNoZWNrU2VydmljZSxcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudHM6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aG9yaXplU2lsZW50Q2xpZW50OiBBdXRob3JpemVFbmRwb2ludFNpbGVudENsaWVudFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW5TdG9yYWdlOiBUb2tlblN0b3JhZ2VTZXJ2aWNlLFxyXG4gICkge1xyXG5cclxuICAgIGNvbnN0IHNlc3Npb25DaGFuZ2VkJCA9IHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoZmlsdGVySW5zdGFuY2VPZihTZXNzaW9uQ2hhbmdlZEV2ZW50KSk7XHJcblxyXG4gICAgLy8gU3RhcnQgc2Vzc2lvbiBjaGVja3Mgd2hlbiB3ZSByZWNlaXZlIHRva2Vucy5cclxuICAgIHRoaXMuZXZlbnRzLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVySW5zdGFuY2VPZihUb2tlbnNSZWFkeUV2ZW50KSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXNzaW9uQ2hlY2suc3RhcnRTZXNzaW9uQ2hlY2soKSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdCksXHJcbiAgICAgICAgdGFrZVVudGlsKHNlc3Npb25DaGFuZ2VkJCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG5cclxuICAgIC8vIFdoZW4gdGhlIFJQIGRldGVjdHMgYSBzZXNzaW9uIHN0YXRlIGNoYW5nZSxcclxuICAgIC8vIGl0IFNIT1VMRCBmaXJzdCB0cnkgYSBwcm9tcHQ9bm9uZSByZXF1ZXN0IHdpdGhpbiBhbiBpZnJhbWUgdG8gb2J0YWluXHJcbiAgICAvLyBhIG5ldyBJRCBUb2tlbiBhbmQgc2Vzc2lvbiBzdGF0ZSwgc2VuZGluZyB0aGUgb2xkIElEIFRva2VuIGFzIHRoZSBpZF90b2tlbl9oaW50LlxyXG4gICAgLy8gSWYgdGhlIFJQIHJlY2VpdmVzIGFuIElEIHRva2VuIGZvciB0aGUgc2FtZSBFbmQtVXNlciwgaXQgU0hPVUxEIHNpbXBseSB1cGRhdGVcclxuICAgIC8vIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiBzdGF0ZS4gSWYgaXQgZG9lc24ndCByZWNlaXZlIGFuIElEIHRva2VuIG9yIHJlY2VpdmVzXHJcbiAgICAvLyBhbiBJRCB0b2tlbiBmb3IgYW5vdGhlciBFbmQtVXNlciwgdGhlbiBpdCBuZWVkcyB0byBoYW5kbGUgdGhpcyBjYXNlIGFzIGFcclxuICAgIC8vIGxvZ291dCBmb3IgdGhlIG9yaWdpbmFsIEVuZC1Vc2VyLlxyXG4gICAgY29uc3Qgc2lsZW50Q29kZUZsb3ckID0gdGhpcy50b2tlblN0b3JhZ2UuY3VycmVudFN0YXRlJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgocHJldmlvdXNTdGF0ZSkgPT4gdGhpcy5hdXRob3JpemVTaWxlbnRDbGllbnQuc3RhcnRDb2RlRmxvd0luSWZyYW1lKClcclxuICAgICAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gKHsgcmVzdWx0LCBwcmV2aW91c1N0YXRlIH0pKSlcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoeyByZXN1bHQsIHByZXZpb3VzU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmV3VG9rZW4gPSByZXN1bHQuZGVjb2RlZElkVG9rZW47XHJcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1Rva2VuID0gcHJldmlvdXNTdGF0ZS5kZWNvZGVkSWRlbnRpdHlUb2tlbjtcclxuICAgICAgICAgIGlmIChwcmV2aW91c1Rva2VuICYmIG5ld1Rva2VuLnN1YiAhPT0gcHJldmlvdXNUb2tlbi5zdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNlc3Npb25UZXJtaW5hdGVkRXZlbnQoeyBwcmV2aW91c1Rva2VuLCBuZXdUb2tlbiB9KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IFNpbXBsZU9pZGNFcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNlc3Npb25UZXJtaW5hdGVkRXZlbnQoeyBlcnJvcjogZXJyb3IuY29udGV4dCB9KSk7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmV2ZW50cy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlckluc3RhbmNlT2YoU2Vzc2lvbkNoYW5nZWRFdmVudCksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KCdTZXNzaW9uIGhhcyBjaGFuZ2VkLiBTdGFydGluZyBzaWxlbnQgY29kZSBmbG93LicpKSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHNpbGVudENvZGVGbG93JCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG91bGQgYmUgY2FsbGVkIG9uY2Ugb24geW91ciBBbmd1bGFyIFJvb3QgQXBwbGljYXRpb24gTW9kdWxlXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IFNlc3Npb25NYW5hZ2VtZW50Q29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogU2Vzc2lvbk1hbmFnZW1lbnRNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIGNvbmZpZyAhPSBudWxsID8ge1xyXG4gICAgICAgICAgcHJvdmlkZTogU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJRyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcclxuICAgICAgICB9IDogW10sXHJcbiAgICAgICAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19TRVJWSUNFX1BST1ZJREVSLFxyXG4gICAgICAgIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUdfSU5JVElBTElaRVIsXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWRTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItc2ltcGxlLW9pZGMvIiwic291cmNlcyI6WyJsaWIvc2Vzc2lvbi1tYW5hZ2VtZW50L3Nlc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHFDQUFxQyxFQUNyQywwQ0FBMEMsRUFDM0MsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQU1oRjtJQVlFLGlDQUNxQixZQUFpQyxFQUNqQyxNQUFxQixFQUNyQixxQkFBMkQsRUFDM0QsWUFBaUM7UUFKdEQsaUJBd0RDO1FBdkRvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1B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SixDQUFDOzs7O0lBRU0sNkNBQVc7OztJQUFsQjtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7Z0JBMUZGLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUU7d0JBQ1QsbUJBQW1CO3dCQUNuQixvQ0FBb0M7cUJBQ3JDO29CQUNELFlBQVksRUFBRSxFQUFFO2lCQUNqQjs7OztnQkF6QlEsbUJBQW1CO2dCQVluQixhQUFhO2dCQVBiLG9DQUFvQztnQkFIcEMsbUJBQW1COztJQTJHNUIsOEJBQUM7Q0FBQSxBQTNGRCxJQTJGQztTQW5GWSx1QkFBdUI7Ozs7OztJQUVsQyxtREFBb0Q7Ozs7O0lBR2xELCtDQUFvRDs7Ozs7SUFDcEQseUNBQXdDOzs7OztJQUN4Qyx3REFBOEU7Ozs7O0lBQzlFLCtDQUFvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBPbkRlc3Ryb3ksIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCwgY2F0Y2hFcnJvciwgdGFrZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2tlbnNSZWFkeUV2ZW50IH0gZnJvbSAnLi4vYXV0aC5ldmVudHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uLWNoZWNrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uQ2hhbmdlZEV2ZW50LCBTZXNzaW9uVGVybWluYXRlZEV2ZW50IH0gZnJvbSAnLi9ldmVudHMnO1xyXG5pbXBvcnQgeyBUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2ltcGxlT2lkY0Vycm9yIH0gZnJvbSAnYW5ndWxhci1zaW1wbGUtb2lkYy9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVySW5zdGFuY2VPZiB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXV0aG9yaXplRW5kcG9pbnRTaWxlbnRDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi9hdXRob3JpemUtZW5kcG9pbnQtc2lsZW50LWNsaWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTRVNTSU9OX01BTkFHRU1FTlRfQ09ORklHLFxyXG4gIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUdfSU5JVElBTElaRVIsXHJcbiAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19TRVJWSUNFX1BST1ZJREVSXHJcbn0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uTWFuYWdlbWVudENvbmZpZyB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSwgU2ltcGxlT2lkY0luZm9FdmVudCB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvZXZlbnRzJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRzIFNlc3Npb24gQ2hlY2tzIGFjY29yZGluZyB0byBTZXNzaW9uIE1hbmFnZW1lbnRcclxuICogaHR0cHM6Ly9vcGVuaWQubmV0L3NwZWNzL29wZW5pZC1jb25uZWN0LXNlc3Npb24tMV8wLmh0bWxcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTZXNzaW9uQ2hlY2tTZXJ2aWNlLFxyXG4gICAgQXV0aG9yaXplRW5kcG9pbnRTaWxlbnRDbGllbnRTZXJ2aWNlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25NYW5hZ2VtZW50TW9kdWxlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3llZFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZXNzaW9uQ2hlY2s6IFNlc3Npb25DaGVja1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXZlbnRzOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhvcml6ZVNpbGVudENsaWVudDogQXV0aG9yaXplRW5kcG9pbnRTaWxlbnRDbGllbnRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRva2VuU3RvcmFnZTogVG9rZW5TdG9yYWdlU2VydmljZSxcclxuICApIHtcclxuXHJcbiAgICBjb25zdCBzZXNzaW9uQ2hhbmdlZCQgPSB0aGlzLmV2ZW50cy5ldmVudHMkXHJcbiAgICAgIC5waXBlKGZpbHRlckluc3RhbmNlT2YoU2Vzc2lvbkNoYW5nZWRFdmVudCkpO1xyXG5cclxuICAgIC8vIFN0YXJ0IHNlc3Npb24gY2hlY2tzIHdoZW4gd2UgcmVjZWl2ZSB0b2tlbnMuXHJcbiAgICB0aGlzLmV2ZW50cy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlckluc3RhbmNlT2YoVG9rZW5zUmVhZHlFdmVudCksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25DaGVjay5zdGFydFNlc3Npb25DaGVjaygpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChzZXNzaW9uQ2hhbmdlZCQpKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG5cclxuICAgIC8vIFdoZW4gdGhlIFJQIGRldGVjdHMgYSBzZXNzaW9uIHN0YXRlIGNoYW5nZSxcclxuICAgIC8vIGl0IFNIT1VMRCBmaXJzdCB0cnkgYSBwcm9tcHQ9bm9uZSByZXF1ZXN0IHdpdGhpbiBhbiBpZnJhbWUgdG8gb2J0YWluXHJcbiAgICAvLyBhIG5ldyBJRCBUb2tlbiBhbmQgc2Vzc2lvbiBzdGF0ZSwgc2VuZGluZyB0aGUgb2xkIElEIFRva2VuIGFzIHRoZSBpZF90b2tlbl9oaW50LlxyXG4gICAgLy8gSWYgdGhlIFJQIHJlY2VpdmVzIGFuIElEIHRva2VuIGZvciB0aGUgc2FtZSBFbmQtVXNlciwgaXQgU0hPVUxEIHNpbXBseSB1cGRhdGVcclxuICAgIC8vIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiBzdGF0ZS4gSWYgaXQgZG9lc24ndCByZWNlaXZlIGFuIElEIHRva2VuIG9yIHJlY2VpdmVzXHJcbiAgICAvLyBhbiBJRCB0b2tlbiBmb3IgYW5vdGhlciBFbmQtVXNlciwgdGhlbiBpdCBuZWVkcyB0byBoYW5kbGUgdGhpcyBjYXNlIGFzIGFcclxuICAgIC8vIGxvZ291dCBmb3IgdGhlIG9yaWdpbmFsIEVuZC1Vc2VyLlxyXG4gICAgY29uc3Qgc2lsZW50Q29kZUZsb3ckID0gdGhpcy50b2tlblN0b3JhZ2UuY3VycmVudFN0YXRlJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgocHJldmlvdXNTdGF0ZSkgPT4gdGhpcy5hdXRob3JpemVTaWxlbnRDbGllbnQuc3RhcnRDb2RlRmxvd0luSWZyYW1lKClcclxuICAgICAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gKHsgcmVzdWx0LCBwcmV2aW91c1N0YXRlIH0pKSlcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoeyByZXN1bHQsIHByZXZpb3VzU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmV3VG9rZW4gPSByZXN1bHQuZGVjb2RlZElkVG9rZW47XHJcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1Rva2VuID0gcHJldmlvdXNTdGF0ZS5kZWNvZGVkSWRlbnRpdHlUb2tlbjtcclxuICAgICAgICAgIGlmIChwcmV2aW91c1Rva2VuICYmIG5ld1Rva2VuLnN1YiAhPT0gcHJldmlvdXNUb2tlbi5zdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNlc3Npb25UZXJtaW5hdGVkRXZlbnQoeyBwcmV2aW91c1Rva2VuLCBuZXdUb2tlbiB9KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IFNpbXBsZU9pZGNFcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMuZGlzcGF0Y2gobmV3IFNlc3Npb25UZXJtaW5hdGVkRXZlbnQoeyBlcnJvcjogZXJyb3IuY29udGV4dCB9KSk7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmV2ZW50cy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlckluc3RhbmNlT2YoU2Vzc2lvbkNoYW5nZWRFdmVudCksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZXZlbnRzLmRpc3BhdGNoKG5ldyBTaW1wbGVPaWRjSW5mb0V2ZW50KCdTZXNzaW9uIGhhcyBjaGFuZ2VkLiBTdGFydGluZyBzaWxlbnQgY29kZSBmbG93LicpKSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHNpbGVudENvZGVGbG93JCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG91bGQgYmUgY2FsbGVkIG9uY2Ugb24geW91ciBBbmd1bGFyIFJvb3QgQXBwbGljYXRpb24gTW9kdWxlXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IFNlc3Npb25NYW5hZ2VtZW50Q29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogU2Vzc2lvbk1hbmFnZW1lbnRNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIGNvbmZpZyAhPSBudWxsID8ge1xyXG4gICAgICAgICAgcHJvdmlkZTogU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJRyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcclxuICAgICAgICB9IDogW10sXHJcbiAgICAgICAgU0VTU0lPTl9NQU5BR0VNRU5UX0NPTkZJR19TRVJWSUNFX1BST1ZJREVSLFxyXG4gICAgICAgIFNFU1NJT05fTUFOQUdFTUVOVF9DT05GSUdfSU5JVElBTElaRVIsXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWRTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==

@@ -52,4 +52,4 @@ import { Injectable, ɵɵdefineInjectable } from '@angular/core';

constructor() {
this.eventSubject = new ReplaySubject();
this.errorSubject = new ReplaySubject();
this.eventSubject = new ReplaySubject(5);
this.errorSubject = new ReplaySubject(5);
}

@@ -56,0 +56,0 @@ /**

@@ -59,4 +59,4 @@ import { __extends } from 'tslib';

function EventsService() {
this.eventSubject = new ReplaySubject();
this.errorSubject = new ReplaySubject();
this.eventSubject = new ReplaySubject(5);
this.errorSubject = new ReplaySubject(5);
}

@@ -63,0 +63,0 @@ Object.defineProperty(EventsService.prototype, "events$", {

{
"name": "angular-simple-oidc",
"version": "8.1.0",
"version": "8.1.1",
"description": "Angular Library implementing Open Id Connect specification. Code Flow, Refresh Tokens, Session Management, Discovery Document.",

@@ -5,0 +5,0 @@ "repository": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc