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

@auth0/angular-jwt

Package Overview
Dependencies
Maintainers
35
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@auth0/angular-jwt - npm Package Compare versions

Comparing version 4.1.1 to 4.1.2

2

auth0-angular-jwt.metadata.json

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

{"__symbolic":"module","version":4,"metadata":{"JwtInterceptor":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":5},"arguments":[{"__symbolic":"reference","name":"JWT_OPTIONS"}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"JwtHelperService"}]}],"isWhitelistedDomain":[{"__symbolic":"method"}],"isBlacklistedRoute":[{"__symbolic":"method"}],"handleInterception":[{"__symbolic":"method"}],"intercept":[{"__symbolic":"method"}]}},"JwtHelperService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":9,"character":15},"arguments":[{"__symbolic":"reference","name":"JWT_OPTIONS"}]}]],"parameters":[null]}],"urlBase64Decode":[{"__symbolic":"method"}],"b64decode":[{"__symbolic":"method"}],"b64DecodeUnicode":[{"__symbolic":"method"}],"decodeToken":[{"__symbolic":"method"}],"getTokenExpirationDate":[{"__symbolic":"method"}],"isTokenExpired":[{"__symbolic":"method"}]}},"JWT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":31},"arguments":["JWT_OPTIONS"]},"JwtModuleOptions":{"__symbolic":"interface"},"JwtModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":29,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":29,"character":27}}]],"parameters":[{"__symbolic":"reference","name":"JwtModule"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"JwtModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":41,"character":19},"useClass":{"__symbolic":"reference","name":"JwtInterceptor"},"multi":true},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"jwtOptionsProvider"},"right":{"provide":{"__symbolic":"reference","name":"JWT_OPTIONS"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"config"}}},{"__symbolic":"reference","name":"JwtHelperService"}]}}}}},"origins":{"JwtInterceptor":"./lib/jwt.interceptor","JwtHelperService":"./lib/jwthelper.service","JWT_OPTIONS":"./lib/jwtoptions.token","JwtModuleOptions":"./lib/angular-jwt.module","JwtModule":"./lib/angular-jwt.module"},"importAs":"@auth0/angular-jwt"}
{"__symbolic":"module","version":4,"metadata":{"JwtInterceptor":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":5},"arguments":[{"__symbolic":"reference","name":"JWT_OPTIONS"}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"JwtHelperService"}]}],"isWhitelistedDomain":[{"__symbolic":"method"}],"isBlacklistedRoute":[{"__symbolic":"method"}],"handleInterception":[{"__symbolic":"method"}],"intercept":[{"__symbolic":"method"}]}},"JwtHelperService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":9,"character":15},"arguments":[{"__symbolic":"reference","name":"JWT_OPTIONS"}]}]],"parameters":[null]}],"urlBase64Decode":[{"__symbolic":"method"}],"b64decode":[{"__symbolic":"method"}],"b64DecodeUnicode":[{"__symbolic":"method"}],"decodeToken":[{"__symbolic":"method"}],"getTokenExpirationDate":[{"__symbolic":"method"}],"isTokenExpired":[{"__symbolic":"method"}]}},"JWT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":31},"arguments":["JWT_OPTIONS"]},"JwtModuleOptions":{"__symbolic":"interface"},"JwtModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":29,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":29,"character":27}}]],"parameters":[{"__symbolic":"reference","name":"JwtModule"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"JwtModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":41,"character":19},"useClass":{"__symbolic":"reference","name":"JwtInterceptor"},"multi":true},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"jwtOptionsProvider"},"right":{"provide":{"__symbolic":"reference","name":"JWT_OPTIONS"},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"config"}}},{"__symbolic":"reference","name":"JwtHelperService"}]}}}}},"origins":{"JwtInterceptor":"./lib/jwt.interceptor","JwtHelperService":"./lib/jwthelper.service","JWT_OPTIONS":"./lib/jwtoptions.token","JwtModuleOptions":"./lib/angular-jwt.module","JwtModule":"./lib/angular-jwt.module"},"importAs":"@auth0/angular-jwt"}

@@ -317,2 +317,3 @@ (function (global, factory) {

this.jwtHelper = jwtHelper;
this.standardPorts = ["80", "443"];
this.tokenGetter = config.tokenGetter;

@@ -331,8 +332,13 @@ this.headerName = config.headerName || "Authorization";

var requestUrl = url.parse(request.url, false, true);
return (requestUrl.hostname === null ||
var hostName = requestUrl.hostname !== null
? "" + requestUrl.hostname + (requestUrl.port && !this.standardPorts.includes(requestUrl.port)
? ":" + requestUrl.port
: "")
: requestUrl.hostname;
return (hostName === null ||
this.whitelistedDomains.findIndex(function (domain) {
return typeof domain === "string"
? domain === requestUrl.hostname
? domain === hostName
: domain instanceof RegExp
? domain.test(requestUrl.hostname)
? domain.test(hostName)
: false;

@@ -339,0 +345,0 @@ }) > -1);

@@ -15,3 +15,3 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs/operators"),require("url"),require("rxjs"),require("@angular/common/http")):"function"==typeof define&&define.amd?define("@auth0/angular-jwt",["exports","@angular/core","rxjs/operators","url","rxjs","@angular/common/http"],t):t(((e=e||self).auth0=e.auth0||{},e.auth0["angular-jwt"]={}),e.ng.core,e.rxjs.operators,e.url,e.rxjs,e.ng.common.http)}(this,(function(e,t,r,o,n,i){"use strict";

and limitations under the License.
***************************************************************************** */function a(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function s(e,t){return function(r,o){t(r,o,e)}}function u(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var c=new t.InjectionToken("JWT_OPTIONS"),p=function(){function e(e){void 0===e&&(e=null),this.tokenGetter=e&&e.tokenGetter||function(){}}return e.prototype.urlBase64Decode=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)},e.prototype.b64decode=function(e){var t="";if((e=String(e).replace(/=+$/,"")).length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var r=0,o=void 0,n=void 0,i=0;n=e.charAt(i++);~n&&(o=r%4?64*o+n:n,r++%4)?t+=String.fromCharCode(255&o>>(-2*r&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return t},e.prototype.b64DecodeUnicode=function(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""))},e.prototype.decodeToken=function(e){if(void 0===e&&(e=this.tokenGetter()),!e||""===e)return null;var t=e.split(".");if(3!==t.length)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");var r=this.urlBase64Decode(t[1]);if(!r)throw new Error("Cannot decode the token.");return JSON.parse(r)},e.prototype.getTokenExpirationDate=function(e){var t;if(void 0===e&&(e=this.tokenGetter()),!(t=this.decodeToken(e))||!t.hasOwnProperty("exp"))return null;var r=new Date(0);return r.setUTCSeconds(t.exp),r},e.prototype.isTokenExpired=function(e,t){if(void 0===e&&(e=this.tokenGetter()),!e||""===e)return!0;var r=this.getTokenExpirationDate(e);return t=t||0,null!==r&&!(r.valueOf()>(new Date).valueOf()+1e3*t)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[c]}]}]},e=a([t.Injectable(),s(0,t.Inject(c)),u("design:paramtypes",[Object])],e)}(),d=function(){function e(e,t){this.jwtHelper=t,this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||""===e.authScheme?e.authScheme:"Bearer ",this.whitelistedDomains=e.whitelistedDomains||[],this.blacklistedRoutes=e.blacklistedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}return e.prototype.isWhitelistedDomain=function(e){var t=o.parse(e.url,!1,!0);return null===t.hostname||this.whitelistedDomains.findIndex((function(e){return"string"==typeof e?e===t.hostname:e instanceof RegExp&&e.test(t.hostname)}))>-1},e.prototype.isBlacklistedRoute=function(e){var t=o.parse(e.url,!1,!0);return this.blacklistedRoutes.findIndex((function(r){if("string"==typeof r){var n=o.parse(r,!1,!0);return n.hostname===t.hostname&&n.path===t.path}return r instanceof RegExp&&r.test(e.url)}))>-1},e.prototype.handleInterception=function(e,t,r){var o,n=!1;if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");return this.skipWhenExpired&&(n=!e||this.jwtHelper.isTokenExpired(e)),e&&n&&this.skipWhenExpired?t=t.clone():e&&(t=t.clone({setHeaders:(o={},o[this.headerName]=""+this.authScheme+e,o)})),r.handle(t)},e.prototype.intercept=function(e,t){var o=this;if(!this.isWhitelistedDomain(e)||this.isBlacklistedRoute(e))return t.handle(e);var i=this.tokenGetter(e);return i instanceof Promise?n.from(i).pipe(r.mergeMap((function(r){return o.handleInterception(r,e,t)}))):this.handleInterception(i,e,t)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[c]}]},{type:p}]},e=a([t.Injectable(),s(0,t.Inject(c)),u("design:paramtypes",[Object,p])],e)}(),l=function(){function e(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}var r;return r=e,e.forRoot=function(e){return{ngModule:r,providers:[{provide:i.HTTP_INTERCEPTORS,useClass:d,multi:!0},e.jwtOptionsProvider||{provide:c,useValue:e.config},p]}},e.ctorParameters=function(){return[{type:e,decorators:[{type:t.Optional},{type:t.SkipSelf}]}]},e=r=a([t.NgModule(),s(0,t.Optional()),s(0,t.SkipSelf()),u("design:paramtypes",[e])],e)}();e.JWT_OPTIONS=c,e.JwtHelperService=p,e.JwtInterceptor=d,e.JwtModule=l,Object.defineProperty(e,"__esModule",{value:!0})}));
***************************************************************************** */function a(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function s(e,t){return function(r,o){t(r,o,e)}}function u(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var c=new t.InjectionToken("JWT_OPTIONS"),p=function(){function e(e){void 0===e&&(e=null),this.tokenGetter=e&&e.tokenGetter||function(){}}return e.prototype.urlBase64Decode=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)},e.prototype.b64decode=function(e){var t="";if((e=String(e).replace(/=+$/,"")).length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var r=0,o=void 0,n=void 0,i=0;n=e.charAt(i++);~n&&(o=r%4?64*o+n:n,r++%4)?t+=String.fromCharCode(255&o>>(-2*r&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return t},e.prototype.b64DecodeUnicode=function(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""))},e.prototype.decodeToken=function(e){if(void 0===e&&(e=this.tokenGetter()),!e||""===e)return null;var t=e.split(".");if(3!==t.length)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");var r=this.urlBase64Decode(t[1]);if(!r)throw new Error("Cannot decode the token.");return JSON.parse(r)},e.prototype.getTokenExpirationDate=function(e){var t;if(void 0===e&&(e=this.tokenGetter()),!(t=this.decodeToken(e))||!t.hasOwnProperty("exp"))return null;var r=new Date(0);return r.setUTCSeconds(t.exp),r},e.prototype.isTokenExpired=function(e,t){if(void 0===e&&(e=this.tokenGetter()),!e||""===e)return!0;var r=this.getTokenExpirationDate(e);return t=t||0,null!==r&&!(r.valueOf()>(new Date).valueOf()+1e3*t)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[c]}]}]},e=a([t.Injectable(),s(0,t.Inject(c)),u("design:paramtypes",[Object])],e)}(),d=function(){function e(e,t){this.jwtHelper=t,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||""===e.authScheme?e.authScheme:"Bearer ",this.whitelistedDomains=e.whitelistedDomains||[],this.blacklistedRoutes=e.blacklistedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}return e.prototype.isWhitelistedDomain=function(e){var t=o.parse(e.url,!1,!0),r=null!==t.hostname?t.hostname+(t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""):t.hostname;return null===r||this.whitelistedDomains.findIndex((function(e){return"string"==typeof e?e===r:e instanceof RegExp&&e.test(r)}))>-1},e.prototype.isBlacklistedRoute=function(e){var t=o.parse(e.url,!1,!0);return this.blacklistedRoutes.findIndex((function(r){if("string"==typeof r){var n=o.parse(r,!1,!0);return n.hostname===t.hostname&&n.path===t.path}return r instanceof RegExp&&r.test(e.url)}))>-1},e.prototype.handleInterception=function(e,t,r){var o,n=!1;if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");return this.skipWhenExpired&&(n=!e||this.jwtHelper.isTokenExpired(e)),e&&n&&this.skipWhenExpired?t=t.clone():e&&(t=t.clone({setHeaders:(o={},o[this.headerName]=""+this.authScheme+e,o)})),r.handle(t)},e.prototype.intercept=function(e,t){var o=this;if(!this.isWhitelistedDomain(e)||this.isBlacklistedRoute(e))return t.handle(e);var i=this.tokenGetter(e);return i instanceof Promise?n.from(i).pipe(r.mergeMap((function(r){return o.handleInterception(r,e,t)}))):this.handleInterception(i,e,t)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[c]}]},{type:p}]},e=a([t.Injectable(),s(0,t.Inject(c)),u("design:paramtypes",[Object,p])],e)}(),l=function(){function e(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}var r;return r=e,e.forRoot=function(e){return{ngModule:r,providers:[{provide:i.HTTP_INTERCEPTORS,useClass:d,multi:!0},e.jwtOptionsProvider||{provide:c,useValue:e.config},p]}},e.ctorParameters=function(){return[{type:e,decorators:[{type:t.Optional},{type:t.SkipSelf}]}]},e=r=a([t.NgModule(),s(0,t.Optional()),s(0,t.SkipSelf()),u("design:paramtypes",[e])],e)}();e.JWT_OPTIONS=c,e.JwtHelperService=p,e.JwtInterceptor=d,e.JwtModule=l,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=auth0-angular-jwt.umd.min.js.map
# Change log
## Version [4.1.0](https://github.com/auth0/angular2-jwt/tags/v4.1.2) (2020-05-16)
[Full Changelog](https://github.com/auth0/angular2-jwt/compare/v4.1.1..v4.1.2)
- Support domains with a port other than the default HTTP ports (HTTP: 80, HTTPS: 443)
[#656](https://github.com/auth0/angular2-jwt/pull/656)
## Version [4.1.1](https://github.com/auth0/angular2-jwt/tags/v4.1.1) (2020-05-15)
[Full Changelog](https://github.com/auth0/angular2-jwt/compare/v4.1.0..v4.1.1)
- Something went wrong pulishing `v4.1.0`, this version fixes that.
## Version [4.1.0](https://github.com/auth0/angular2-jwt/tags/v4.1.0) (2020-05-15)
[Full Changelog](https://github.com/auth0/angular2-jwt/compare/4.0.0..4.1.0)
[Full Changelog](https://github.com/auth0/angular2-jwt/compare/4.0.0..v4.1.0)

@@ -7,0 +20,0 @@ - Use blacklist domains regardless of their protocol [#644](https://github.com/auth0/angular2-jwt/pull/644)

@@ -11,2 +11,3 @@ import { __decorate, __metadata, __param } from "tslib";

this.jwtHelper = jwtHelper;
this.standardPorts = ["80", "443"];
this.tokenGetter = config.tokenGetter;

@@ -25,7 +26,12 @@ this.headerName = config.headerName || "Authorization";

const requestUrl = parse(request.url, false, true);
return (requestUrl.hostname === null ||
const hostName = requestUrl.hostname !== null
? `${requestUrl.hostname}${requestUrl.port && !this.standardPorts.includes(requestUrl.port)
? ":" + requestUrl.port
: ""}`
: requestUrl.hostname;
return (hostName === null ||
this.whitelistedDomains.findIndex((domain) => typeof domain === "string"
? domain === requestUrl.hostname
? domain === hostName
: domain instanceof RegExp
? domain.test(requestUrl.hostname)
? domain.test(hostName)
: false) > -1);

@@ -93,2 +99,2 @@ }

export { JwtInterceptor };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGF1dGgwL2FuZ3VsYXItand0LyIsInNvdXJjZXMiOlsibGliL2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHeEMsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztJQVd6QixZQUN1QixNQUFXLEVBQ3pCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBRWxDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVO1lBQ2IsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUU7Z0JBQzNDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDbkIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEtBQUss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Q0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3JCLFFBQVEsQ0FBQyxDQUFDLFVBQXlCLEVBQUUsRUFBRTtnQkFDckMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0NBQ0YsQ0FBQTs7NENBckdJLE1BQU0sU0FBQyxXQUFXO1lBQ0QsZ0JBQWdCOztBQWJ6QixjQUFjO0lBRDFCLFVBQVUsRUFBRTtJQWFSLFdBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBOzZDQUNGLGdCQUFnQjtHQWJ6QixjQUFjLENBaUgxQjtTQWpIWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEV2ZW50LFxuICBIdHRwSW50ZXJjZXB0b3IsXG59IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSnd0SGVscGVyU2VydmljZSB9IGZyb20gXCIuL2p3dGhlbHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBKV1RfT1BUSU9OUyB9IGZyb20gXCIuL2p3dG9wdGlvbnMudG9rZW5cIjtcblxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKd3RJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHRva2VuR2V0dGVyOiAoXG4gICAgcmVxdWVzdD86IEh0dHBSZXF1ZXN0PGFueT5cbiAgKSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbiAgaGVhZGVyTmFtZTogc3RyaW5nO1xuICBhdXRoU2NoZW1lOiBzdHJpbmc7XG4gIHdoaXRlbGlzdGVkRG9tYWluczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPjtcbiAgYmxhY2tsaXN0ZWRSb3V0ZXM6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD47XG4gIHRocm93Tm9Ub2tlbkVycm9yOiBib29sZWFuO1xuICBza2lwV2hlbkV4cGlyZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChKV1RfT1BUSU9OUykgY29uZmlnOiBhbnksXG4gICAgcHVibGljIGp3dEhlbHBlcjogSnd0SGVscGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLnRva2VuR2V0dGVyID0gY29uZmlnLnRva2VuR2V0dGVyO1xuICAgIHRoaXMuaGVhZGVyTmFtZSA9IGNvbmZpZy5oZWFkZXJOYW1lIHx8IFwiQXV0aG9yaXphdGlvblwiO1xuICAgIHRoaXMuYXV0aFNjaGVtZSA9XG4gICAgICBjb25maWcuYXV0aFNjaGVtZSB8fCBjb25maWcuYXV0aFNjaGVtZSA9PT0gXCJcIlxuICAgICAgICA/IGNvbmZpZy5hdXRoU2NoZW1lXG4gICAgICAgIDogXCJCZWFyZXIgXCI7XG4gICAgdGhpcy53aGl0ZWxpc3RlZERvbWFpbnMgPSBjb25maWcud2hpdGVsaXN0ZWREb21haW5zIHx8IFtdO1xuICAgIHRoaXMuYmxhY2tsaXN0ZWRSb3V0ZXMgPSBjb25maWcuYmxhY2tsaXN0ZWRSb3V0ZXMgfHwgW107XG4gICAgdGhpcy50aHJvd05vVG9rZW5FcnJvciA9IGNvbmZpZy50aHJvd05vVG9rZW5FcnJvciB8fCBmYWxzZTtcbiAgICB0aGlzLnNraXBXaGVuRXhwaXJlZCA9IGNvbmZpZy5za2lwV2hlbkV4cGlyZWQ7XG4gIH1cblxuICBpc1doaXRlbGlzdGVkRG9tYWluKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1ZXN0VXJsOiBhbnkgPSBwYXJzZShyZXF1ZXN0LnVybCwgZmFsc2UsIHRydWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHJlcXVlc3RVcmwuaG9zdG5hbWUgPT09IG51bGwgfHxcbiAgICAgIHRoaXMud2hpdGVsaXN0ZWREb21haW5zLmZpbmRJbmRleCgoZG9tYWluKSA9PlxuICAgICAgICB0eXBlb2YgZG9tYWluID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBkb21haW4gPT09IHJlcXVlc3RVcmwuaG9zdG5hbWVcbiAgICAgICAgICA6IGRvbWFpbiBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgICAgICAgID8gZG9tYWluLnRlc3QocmVxdWVzdFVybC5ob3N0bmFtZSlcbiAgICAgICAgICA6IGZhbHNlXG4gICAgICApID4gLTFcbiAgICApO1xuICB9XG5cbiAgaXNCbGFja2xpc3RlZFJvdXRlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1ZXN0ZWRVcmwgPSBwYXJzZShyZXF1ZXN0LnVybCwgZmFsc2UsIHRydWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYmxhY2tsaXN0ZWRSb3V0ZXMuZmluZEluZGV4KChyb3V0ZTogc3RyaW5nIHwgUmVnRXhwKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygcm91dGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBjb25zdCBwYXJzZWRSb3V0ZSA9IHBhcnNlKHJvdXRlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBhcnNlZFJvdXRlLmhvc3RuYW1lID09PSByZXF1ZXN0ZWRVcmwuaG9zdG5hbWUgJiZcbiAgICAgICAgICAgIHBhcnNlZFJvdXRlLnBhdGggPT09IHJlcXVlc3RlZFVybC5wYXRoXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyb3V0ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgIHJldHVybiByb3V0ZS50ZXN0KHJlcXVlc3QudXJsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pID4gLTFcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlSW50ZXJjZXB0aW9uKFxuICAgIHRva2VuOiBzdHJpbmcgfCBudWxsLFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKSB7XG4gICAgbGV0IHRva2VuSXNFeHBpcmVkID0gZmFsc2U7XG5cbiAgICBpZiAoIXRva2VuICYmIHRoaXMudGhyb3dOb1Rva2VuRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgdG9rZW4gZnJvbSB0b2tlbkdldHRlciBmdW5jdGlvbi5cIik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2tpcFdoZW5FeHBpcmVkKSB7XG4gICAgICB0b2tlbklzRXhwaXJlZCA9IHRva2VuID8gdGhpcy5qd3RIZWxwZXIuaXNUb2tlbkV4cGlyZWQodG9rZW4pIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4gJiYgdG9rZW5Jc0V4cGlyZWQgJiYgdGhpcy5za2lwV2hlbkV4cGlyZWQpIHtcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKCk7XG4gICAgfSBlbHNlIGlmICh0b2tlbikge1xuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICAgW3RoaXMuaGVhZGVyTmFtZV06IGAke3RoaXMuYXV0aFNjaGVtZX0ke3Rva2VufWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG5cbiAgaW50ZXJjZXB0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmlzV2hpdGVsaXN0ZWREb21haW4ocmVxdWVzdCkgfHxcbiAgICAgIHRoaXMuaXNCbGFja2xpc3RlZFJvdXRlKHJlcXVlc3QpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbkdldHRlcihyZXF1ZXN0KTtcblxuICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJldHVybiBmcm9tKHRva2VuKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoYXN5bmNUb2tlbjogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUludGVyY2VwdGlvbihhc3luY1Rva2VuLCByZXF1ZXN0LCBuZXh0KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUludGVyY2VwdGlvbih0b2tlbiwgcmVxdWVzdCwgbmV4dCk7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGF1dGgwL2FuZ3VsYXItand0LyIsInNvdXJjZXMiOlsibGliL2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHeEMsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztJQVl6QixZQUN1QixNQUFXLEVBQ3pCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBSnBDLGtCQUFhLEdBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFNdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVU7WUFDYixNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRTtnQkFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVO2dCQUNuQixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBQ3hELElB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LElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFO2lCQUNoRDthQUNGLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTLENBQ1AsT0FBeUIsRUFDekIsSUFBaUI7UUFFakIsSUFDRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUNoQztZQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLFlBQVksT0FBTyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckIsUUFBUSxDQUFDLENBQUMsVUFBeUIsRUFBRSxFQUFFO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7Q0FDRixDQUFBOzs0Q0E3R0ksTUFBTSxTQUFDLFdBQVc7WUFDRCxnQkFBZ0I7O0FBZHpCLGNBQWM7SUFEMUIsVUFBVSxFQUFFO0lBY1IsV0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7NkNBQ0YsZ0JBQWdCO0dBZHpCLGNBQWMsQ0EwSDFCO1NBMUhZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvcixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSBcIi4vand0aGVscGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEpXVF9PUFRJT05TIH0gZnJvbSBcIi4vand0b3B0aW9ucy50b2tlblwiO1xuXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEp3dEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgdG9rZW5HZXR0ZXI6IChcbiAgICByZXF1ZXN0PzogSHR0cFJlcXVlc3Q8YW55PlxuICApID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuICBoZWFkZXJOYW1lOiBzdHJpbmc7XG4gIGF1dGhTY2hlbWU6IHN0cmluZztcbiAgd2hpdGVsaXN0ZWREb21haW5zOiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+O1xuICBibGFja2xpc3RlZFJvdXRlczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPjtcbiAgdGhyb3dOb1Rva2VuRXJyb3I6IGJvb2xlYW47XG4gIHNraXBXaGVuRXhwaXJlZDogYm9vbGVhbjtcbiAgc3RhbmRhcmRQb3J0czogc3RyaW5nW10gPSBbXCI4MFwiLCBcIjQ0M1wiXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEpXVF9PUFRJT05TKSBjb25maWc6IGFueSxcbiAgICBwdWJsaWMgand0SGVscGVyOiBKd3RIZWxwZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudG9rZW5HZXR0ZXIgPSBjb25maWcudG9rZW5HZXR0ZXI7XG4gICAgdGhpcy5oZWFkZXJOYW1lID0gY29uZmlnLmhlYWRlck5hbWUgfHwgXCJBdXRob3JpemF0aW9uXCI7XG4gICAgdGhpcy5hdXRoU2NoZW1lID1cbiAgICAgIGNvbmZpZy5hdXRoU2NoZW1lIHx8IGNvbmZpZy5hdXRoU2NoZW1lID09PSBcIlwiXG4gICAgICAgID8gY29uZmlnLmF1dGhTY2hlbWVcbiAgICAgICAgOiBcIkJlYXJlciBcIjtcbiAgICB0aGlzLndoaXRlbGlzdGVkRG9tYWlucyA9IGNvbmZpZy53aGl0ZWxpc3RlZERvbWFpbnMgfHwgW107XG4gICAgdGhpcy5ibGFja2xpc3RlZFJvdXRlcyA9IGNvbmZpZy5ibGFja2xpc3RlZFJvdXRlcyB8fCBbXTtcbiAgICB0aGlzLnRocm93Tm9Ub2tlbkVycm9yID0gY29uZmlnLnRocm93Tm9Ub2tlbkVycm9yIHx8IGZhbHNlO1xuICAgIHRoaXMuc2tpcFdoZW5FeHBpcmVkID0gY29uZmlnLnNraXBXaGVuRXhwaXJlZDtcbiAgfVxuXG4gIGlzV2hpdGVsaXN0ZWREb21haW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlcXVlc3RVcmw6IGFueSA9IHBhcnNlKHJlcXVlc3QudXJsLCBmYWxzZSwgdHJ1ZSk7XG4gICAgY29uc3QgaG9zdE5hbWUgPVxuICAgICAgcmVxdWVzdFVybC5ob3N0bmFtZSAhPT0gbnVsbFxuICAgICAgICA/IGAke3JlcXVlc3RVcmwuaG9zdG5hbWV9JHtcbiAgICAgICAgICAgIHJlcXVlc3RVcmwucG9ydCAmJiAhdGhpcy5zdGFuZGFyZFBvcnRzLmluY2x1ZGVzKHJlcXVlc3RVcmwucG9ydClcbiAgICAgICAgICAgICAgPyBcIjpcIiArIHJlcXVlc3RVcmwucG9ydFxuICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICB9YFxuICAgICAgICA6IHJlcXVlc3RVcmwuaG9zdG5hbWU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgaG9zdE5hbWUgPT09IG51bGwgfHxcbiAgICAgIHRoaXMud2hpdGVsaXN0ZWREb21haW5zLmZpbmRJbmRleCgoZG9tYWluKSA9PlxuICAgICAgICB0eXBlb2YgZG9tYWluID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBkb21haW4gPT09IGhvc3ROYW1lXG4gICAgICAgICAgOiBkb21haW4gaW5zdGFuY2VvZiBSZWdFeHBcbiAgICAgICAgICA/IGRvbWFpbi50ZXN0KGhvc3ROYW1lKVxuICAgICAgICAgIDogZmFsc2VcbiAgICAgICkgPiAtMVxuICAgICk7XG4gIH1cblxuICBpc0JsYWNrbGlzdGVkUm91dGUocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlcXVlc3RlZFVybCA9IHBhcnNlKHJlcXVlc3QudXJsLCBmYWxzZSwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ibGFja2xpc3RlZFJvdXRlcy5maW5kSW5kZXgoKHJvdXRlOiBzdHJpbmcgfCBSZWdFeHApID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiByb3V0ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZFJvdXRlID0gcGFyc2Uocm91dGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGFyc2VkUm91dGUuaG9zdG5hbWUgPT09IHJlcXVlc3RlZFVybC5ob3N0bmFtZSAmJlxuICAgICAgICAgICAgcGFyc2VkUm91dGUucGF0aCA9PT0gcmVxdWVzdGVkVXJsLnBhdGhcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvdXRlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgcmV0dXJuIHJvdXRlLnRlc3QocmVxdWVzdC51cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSkgPiAtMVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVJbnRlcmNlcHRpb24oXG4gICAgdG9rZW46IHN0cmluZyB8IG51bGwsXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxuICApIHtcbiAgICBsZXQgdG9rZW5Jc0V4cGlyZWQgPSBmYWxzZTtcblxuICAgIGlmICghdG9rZW4gJiYgdGhpcy50aHJvd05vVG9rZW5FcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCB0b2tlbiBmcm9tIHRva2VuR2V0dGVyIGZ1bmN0aW9uLlwiKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5za2lwV2hlbkV4cGlyZWQpIHtcbiAgICAgIHRva2VuSXNFeHBpcmVkID0gdG9rZW4gPyB0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZCh0b2tlbikgOiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0b2tlbiAmJiB0b2tlbklzRXhwaXJlZCAmJiB0aGlzLnNraXBXaGVuRXhwaXJlZCkge1xuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoKTtcbiAgICB9IGVsc2UgaWYgKHRva2VuKSB7XG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICBbdGhpcy5oZWFkZXJOYW1lXTogYCR7dGhpcy5hdXRoU2NoZW1lfSR7dG9rZW59YCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cblxuICBpbnRlcmNlcHQoXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNXaGl0ZWxpc3RlZERvbWFpbihyZXF1ZXN0KSB8fFxuICAgICAgdGhpcy5pc0JsYWNrbGlzdGVkUm91dGUocmVxdWVzdClcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuR2V0dGVyKHJlcXVlc3QpO1xuXG4gICAgaWYgKHRva2VuIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIGZyb20odG9rZW4pLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChhc3luY1Rva2VuOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlSW50ZXJjZXB0aW9uKGFzeW5jVG9rZW4sIHJlcXVlc3QsIG5leHQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlSW50ZXJjZXB0aW9uKHRva2VuLCByZXF1ZXN0LCBuZXh0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -11,2 +11,3 @@ import { __decorate, __metadata, __param } from "tslib";

this.jwtHelper = jwtHelper;
this.standardPorts = ["80", "443"];
this.tokenGetter = config.tokenGetter;

@@ -25,8 +26,13 @@ this.headerName = config.headerName || "Authorization";

var requestUrl = parse(request.url, false, true);
return (requestUrl.hostname === null ||
var hostName = requestUrl.hostname !== null
? "" + requestUrl.hostname + (requestUrl.port && !this.standardPorts.includes(requestUrl.port)
? ":" + requestUrl.port
: "")
: requestUrl.hostname;
return (hostName === null ||
this.whitelistedDomains.findIndex(function (domain) {
return typeof domain === "string"
? domain === requestUrl.hostname
? domain === hostName
: domain instanceof RegExp
? domain.test(requestUrl.hostname)
? domain.test(hostName)
: false;

@@ -98,2 +104,2 @@ }) > -1);

export { JwtInterceptor };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGF1dGgwL2FuZ3VsYXItand0LyIsInNvdXJjZXMiOlsibGliL2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHeEM7SUFXRSx3QkFDdUIsTUFBVyxFQUN6QixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUVsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLGVBQWUsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVTtZQUNiLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxFQUFFO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ25CLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUs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QUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3JCLFFBQVEsQ0FBQyxVQUFDLFVBQXlCO2dCQUNqQyxPQUFPLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7O2dEQXBHRSxNQUFNLFNBQUMsV0FBVztnQkFDRCxnQkFBZ0I7O0lBYnpCLGNBQWM7UUFEMUIsVUFBVSxFQUFFO1FBYVIsV0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7aURBQ0YsZ0JBQWdCO09BYnpCLGNBQWMsQ0FpSDFCO0lBQUQscUJBQUM7Q0FBQSxBQWpIRCxJQWlIQztTQWpIWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEV2ZW50LFxuICBIdHRwSW50ZXJjZXB0b3IsXG59IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSnd0SGVscGVyU2VydmljZSB9IGZyb20gXCIuL2p3dGhlbHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBKV1RfT1BUSU9OUyB9IGZyb20gXCIuL2p3dG9wdGlvbnMudG9rZW5cIjtcblxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKd3RJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHRva2VuR2V0dGVyOiAoXG4gICAgcmVxdWVzdD86IEh0dHBSZXF1ZXN0PGFueT5cbiAgKSA9PiBzdHJpbmcgfCBudWxsIHwgUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbiAgaGVhZGVyTmFtZTogc3RyaW5nO1xuICBhdXRoU2NoZW1lOiBzdHJpbmc7XG4gIHdoaXRlbGlzdGVkRG9tYWluczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPjtcbiAgYmxhY2tsaXN0ZWRSb3V0ZXM6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD47XG4gIHRocm93Tm9Ub2tlbkVycm9yOiBib29sZWFuO1xuICBza2lwV2hlbkV4cGlyZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChKV1RfT1BUSU9OUykgY29uZmlnOiBhbnksXG4gICAgcHVibGljIGp3dEhlbHBlcjogSnd0SGVscGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLnRva2VuR2V0dGVyID0gY29uZmlnLnRva2VuR2V0dGVyO1xuICAgIHRoaXMuaGVhZGVyTmFtZSA9IGNvbmZpZy5oZWFkZXJOYW1lIHx8IFwiQXV0aG9yaXphdGlvblwiO1xuICAgIHRoaXMuYXV0aFNjaGVtZSA9XG4gICAgICBjb25maWcuYXV0aFNjaGVtZSB8fCBjb25maWcuYXV0aFNjaGVtZSA9PT0gXCJcIlxuICAgICAgICA/IGNvbmZpZy5hdXRoU2NoZW1lXG4gICAgICAgIDogXCJCZWFyZXIgXCI7XG4gICAgdGhpcy53aGl0ZWxpc3RlZERvbWFpbnMgPSBjb25maWcud2hpdGVsaXN0ZWREb21haW5zIHx8IFtdO1xuICAgIHRoaXMuYmxhY2tsaXN0ZWRSb3V0ZXMgPSBjb25maWcuYmxhY2tsaXN0ZWRSb3V0ZXMgfHwgW107XG4gICAgdGhpcy50aHJvd05vVG9rZW5FcnJvciA9IGNvbmZpZy50aHJvd05vVG9rZW5FcnJvciB8fCBmYWxzZTtcbiAgICB0aGlzLnNraXBXaGVuRXhwaXJlZCA9IGNvbmZpZy5za2lwV2hlbkV4cGlyZWQ7XG4gIH1cblxuICBpc1doaXRlbGlzdGVkRG9tYWluKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1ZXN0VXJsOiBhbnkgPSBwYXJzZShyZXF1ZXN0LnVybCwgZmFsc2UsIHRydWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHJlcXVlc3RVcmwuaG9zdG5hbWUgPT09IG51bGwgfHxcbiAgICAgIHRoaXMud2hpdGVsaXN0ZWREb21haW5zLmZpbmRJbmRleCgoZG9tYWluKSA9PlxuICAgICAgICB0eXBlb2YgZG9tYWluID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBkb21haW4gPT09IHJlcXVlc3RVcmwuaG9zdG5hbWVcbiAgICAgICAgICA6IGRvbWFpbiBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgICAgICAgID8gZG9tYWluLnRlc3QocmVxdWVzdFVybC5ob3N0bmFtZSlcbiAgICAgICAgICA6IGZhbHNlXG4gICAgICApID4gLTFcbiAgICApO1xuICB9XG5cbiAgaXNCbGFja2xpc3RlZFJvdXRlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1ZXN0ZWRVcmwgPSBwYXJzZShyZXF1ZXN0LnVybCwgZmFsc2UsIHRydWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYmxhY2tsaXN0ZWRSb3V0ZXMuZmluZEluZGV4KChyb3V0ZTogc3RyaW5nIHwgUmVnRXhwKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygcm91dGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBjb25zdCBwYXJzZWRSb3V0ZSA9IHBhcnNlKHJvdXRlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBhcnNlZFJvdXRlLmhvc3RuYW1lID09PSByZXF1ZXN0ZWRVcmwuaG9zdG5hbWUgJiZcbiAgICAgICAgICAgIHBhcnNlZFJvdXRlLnBhdGggPT09IHJlcXVlc3RlZFVybC5wYXRoXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyb3V0ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgIHJldHVybiByb3V0ZS50ZXN0KHJlcXVlc3QudXJsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pID4gLTFcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlSW50ZXJjZXB0aW9uKFxuICAgIHRva2VuOiBzdHJpbmcgfCBudWxsLFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKSB7XG4gICAgbGV0IHRva2VuSXNFeHBpcmVkID0gZmFsc2U7XG5cbiAgICBpZiAoIXRva2VuICYmIHRoaXMudGhyb3dOb1Rva2VuRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgdG9rZW4gZnJvbSB0b2tlbkdldHRlciBmdW5jdGlvbi5cIik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2tpcFdoZW5FeHBpcmVkKSB7XG4gICAgICB0b2tlbklzRXhwaXJlZCA9IHRva2VuID8gdGhpcy5qd3RIZWxwZXIuaXNUb2tlbkV4cGlyZWQodG9rZW4pIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4gJiYgdG9rZW5Jc0V4cGlyZWQgJiYgdGhpcy5za2lwV2hlbkV4cGlyZWQpIHtcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKCk7XG4gICAgfSBlbHNlIGlmICh0b2tlbikge1xuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICAgW3RoaXMuaGVhZGVyTmFtZV06IGAke3RoaXMuYXV0aFNjaGVtZX0ke3Rva2VufWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG5cbiAgaW50ZXJjZXB0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmlzV2hpdGVsaXN0ZWREb21haW4ocmVxdWVzdCkgfHxcbiAgICAgIHRoaXMuaXNCbGFja2xpc3RlZFJvdXRlKHJlcXVlc3QpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbkdldHRlcihyZXF1ZXN0KTtcblxuICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJldHVybiBmcm9tKHRva2VuKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoYXN5bmNUb2tlbjogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUludGVyY2VwdGlvbihhc3luY1Rva2VuLCByZXF1ZXN0LCBuZXh0KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUludGVyY2VwdGlvbih0b2tlbiwgcmVxdWVzdCwgbmV4dCk7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGF1dGgwL2FuZ3VsYXItand0LyIsInNvdXJjZXMiOlsibGliL2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHeEM7SUFZRSx3QkFDdUIsTUFBVyxFQUN6QixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUpwQyxrQkFBYSxHQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBTXRDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVO1lBQ2IsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUU7Z0JBQzNDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDbkIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxD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LElBQUcsS0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQU87dUJBQ2hEO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGtDQUFTLEdBQVQsVUFDRSxPQUF5QixFQUN6QixJQUFpQjtRQUZuQixpQkFxQkM7UUFqQkMsSUFDRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUNoQztZQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLFlBQVksT0FBTyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckIsUUFBUSxDQUFDLFVBQUMsVUFBeUI7Z0JBQ2pDLE9BQU8sS0FBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs7Z0RBNUdFLE1BQU0sU0FBQyxXQUFXO2dCQUNELGdCQUFnQjs7SUFkekIsY0FBYztRQUQxQixVQUFVLEVBQUU7UUFjUixXQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtpREFDRixnQkFBZ0I7T0FkekIsY0FBYyxDQTBIMUI7SUFBRCxxQkFBQztDQUFBLEFBMUhELElBMEhDO1NBMUhZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvcixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSBcIi4vand0aGVscGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEpXVF9PUFRJT05TIH0gZnJvbSBcIi4vand0b3B0aW9ucy50b2tlblwiO1xuXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEp3dEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgdG9rZW5HZXR0ZXI6IChcbiAgICByZXF1ZXN0PzogSHR0cFJlcXVlc3Q8YW55PlxuICApID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuICBoZWFkZXJOYW1lOiBzdHJpbmc7XG4gIGF1dGhTY2hlbWU6IHN0cmluZztcbiAgd2hpdGVsaXN0ZWREb21haW5zOiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+O1xuICBibGFja2xpc3RlZFJvdXRlczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPjtcbiAgdGhyb3dOb1Rva2VuRXJyb3I6IGJvb2xlYW47XG4gIHNraXBXaGVuRXhwaXJlZDogYm9vbGVhbjtcbiAgc3RhbmRhcmRQb3J0czogc3RyaW5nW10gPSBbXCI4MFwiLCBcIjQ0M1wiXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEpXVF9PUFRJT05TKSBjb25maWc6IGFueSxcbiAgICBwdWJsaWMgand0SGVscGVyOiBKd3RIZWxwZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudG9rZW5HZXR0ZXIgPSBjb25maWcudG9rZW5HZXR0ZXI7XG4gICAgdGhpcy5oZWFkZXJOYW1lID0gY29uZmlnLmhlYWRlck5hbWUgfHwgXCJBdXRob3JpemF0aW9uXCI7XG4gICAgdGhpcy5hdXRoU2NoZW1lID1cbiAgICAgIGNvbmZpZy5hdXRoU2NoZW1lIHx8IGNvbmZpZy5hdXRoU2NoZW1lID09PSBcIlwiXG4gICAgICAgID8gY29uZmlnLmF1dGhTY2hlbWVcbiAgICAgICAgOiBcIkJlYXJlciBcIjtcbiAgICB0aGlzLndoaXRlbGlzdGVkRG9tYWlucyA9IGNvbmZpZy53aGl0ZWxpc3RlZERvbWFpbnMgfHwgW107XG4gICAgdGhpcy5ibGFja2xpc3RlZFJvdXRlcyA9IGNvbmZpZy5ibGFja2xpc3RlZFJvdXRlcyB8fCBbXTtcbiAgICB0aGlzLnRocm93Tm9Ub2tlbkVycm9yID0gY29uZmlnLnRocm93Tm9Ub2tlbkVycm9yIHx8IGZhbHNlO1xuICAgIHRoaXMuc2tpcFdoZW5FeHBpcmVkID0gY29uZmlnLnNraXBXaGVuRXhwaXJlZDtcbiAgfVxuXG4gIGlzV2hpdGVsaXN0ZWREb21haW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlcXVlc3RVcmw6IGFueSA9IHBhcnNlKHJlcXVlc3QudXJsLCBmYWxzZSwgdHJ1ZSk7XG4gICAgY29uc3QgaG9zdE5hbWUgPVxuICAgICAgcmVxdWVzdFVybC5ob3N0bmFtZSAhPT0gbnVsbFxuICAgICAgICA/IGAke3JlcXVlc3RVcmwuaG9zdG5hbWV9JHtcbiAgICAgICAgICAgIHJlcXVlc3RVcmwucG9ydCAmJiAhdGhpcy5zdGFuZGFyZFBvcnRzLmluY2x1ZGVzKHJlcXVlc3RVcmwucG9ydClcbiAgICAgICAgICAgICAgPyBcIjpcIiArIHJlcXVlc3RVcmwucG9ydFxuICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICB9YFxuICAgICAgICA6IHJlcXVlc3RVcmwuaG9zdG5hbWU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgaG9zdE5hbWUgPT09IG51bGwgfHxcbiAgICAgIHRoaXMud2hpdGVsaXN0ZWREb21haW5zLmZpbmRJbmRleCgoZG9tYWluKSA9PlxuICAgICAgICB0eXBlb2YgZG9tYWluID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBkb21haW4gPT09IGhvc3ROYW1lXG4gICAgICAgICAgOiBkb21haW4gaW5zdGFuY2VvZiBSZWdFeHBcbiAgICAgICAgICA/IGRvbWFpbi50ZXN0KGhvc3ROYW1lKVxuICAgICAgICAgIDogZmFsc2VcbiAgICAgICkgPiAtMVxuICAgICk7XG4gIH1cblxuICBpc0JsYWNrbGlzdGVkUm91dGUocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlcXVlc3RlZFVybCA9IHBhcnNlKHJlcXVlc3QudXJsLCBmYWxzZSwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ibGFja2xpc3RlZFJvdXRlcy5maW5kSW5kZXgoKHJvdXRlOiBzdHJpbmcgfCBSZWdFeHApID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiByb3V0ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZFJvdXRlID0gcGFyc2Uocm91dGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGFyc2VkUm91dGUuaG9zdG5hbWUgPT09IHJlcXVlc3RlZFVybC5ob3N0bmFtZSAmJlxuICAgICAgICAgICAgcGFyc2VkUm91dGUucGF0aCA9PT0gcmVxdWVzdGVkVXJsLnBhdGhcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvdXRlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgcmV0dXJuIHJvdXRlLnRlc3QocmVxdWVzdC51cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSkgPiAtMVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVJbnRlcmNlcHRpb24oXG4gICAgdG9rZW46IHN0cmluZyB8IG51bGwsXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxuICApIHtcbiAgICBsZXQgdG9rZW5Jc0V4cGlyZWQgPSBmYWxzZTtcblxuICAgIGlmICghdG9rZW4gJiYgdGhpcy50aHJvd05vVG9rZW5FcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCB0b2tlbiBmcm9tIHRva2VuR2V0dGVyIGZ1bmN0aW9uLlwiKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5za2lwV2hlbkV4cGlyZWQpIHtcbiAgICAgIHRva2VuSXNFeHBpcmVkID0gdG9rZW4gPyB0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZCh0b2tlbikgOiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0b2tlbiAmJiB0b2tlbklzRXhwaXJlZCAmJiB0aGlzLnNraXBXaGVuRXhwaXJlZCkge1xuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoKTtcbiAgICB9IGVsc2UgaWYgKHRva2VuKSB7XG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICBbdGhpcy5oZWFkZXJOYW1lXTogYCR7dGhpcy5hdXRoU2NoZW1lfSR7dG9rZW59YCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cblxuICBpbnRlcmNlcHQoXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNXaGl0ZWxpc3RlZERvbWFpbihyZXF1ZXN0KSB8fFxuICAgICAgdGhpcy5pc0JsYWNrbGlzdGVkUm91dGUocmVxdWVzdClcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuR2V0dGVyKHJlcXVlc3QpO1xuXG4gICAgaWYgKHRva2VuIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIGZyb20odG9rZW4pLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChhc3luY1Rva2VuOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlSW50ZXJjZXB0aW9uKGFzeW5jVG9rZW4sIHJlcXVlc3QsIG5leHQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlSW50ZXJjZXB0aW9uKHRva2VuLCByZXF1ZXN0LCBuZXh0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -116,2 +116,3 @@ import { __decorate, __param, __metadata } from 'tslib';

this.jwtHelper = jwtHelper;
this.standardPorts = ["80", "443"];
this.tokenGetter = config.tokenGetter;

@@ -130,7 +131,12 @@ this.headerName = config.headerName || "Authorization";

const requestUrl = parse(request.url, false, true);
return (requestUrl.hostname === null ||
const hostName = requestUrl.hostname !== null
? `${requestUrl.hostname}${requestUrl.port && !this.standardPorts.includes(requestUrl.port)
? ":" + requestUrl.port
: ""}`
: requestUrl.hostname;
return (hostName === null ||
this.whitelistedDomains.findIndex((domain) => typeof domain === "string"
? domain === requestUrl.hostname
? domain === hostName
: domain instanceof RegExp
? domain.test(requestUrl.hostname)
? domain.test(hostName)
: false) > -1);

@@ -137,0 +143,0 @@ }

@@ -121,2 +121,3 @@ import { __decorate, __param, __metadata } from 'tslib';

this.jwtHelper = jwtHelper;
this.standardPorts = ["80", "443"];
this.tokenGetter = config.tokenGetter;

@@ -135,8 +136,13 @@ this.headerName = config.headerName || "Authorization";

var requestUrl = parse(request.url, false, true);
return (requestUrl.hostname === null ||
var hostName = requestUrl.hostname !== null
? "" + requestUrl.hostname + (requestUrl.port && !this.standardPorts.includes(requestUrl.port)
? ":" + requestUrl.port
: "")
: requestUrl.hostname;
return (hostName === null ||
this.whitelistedDomains.findIndex(function (domain) {
return typeof domain === "string"
? domain === requestUrl.hostname
? domain === hostName
: domain instanceof RegExp
? domain.test(requestUrl.hostname)
? domain.test(hostName)
: false;

@@ -143,0 +149,0 @@ }) > -1);

@@ -13,2 +13,3 @@ import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from "@angular/common/http";

skipWhenExpired: boolean;
standardPorts: string[];
constructor(config: any, jwtHelper: JwtHelperService);

@@ -15,0 +16,0 @@ isWhitelistedDomain(request: HttpRequest<any>): boolean;

{
"name": "@auth0/angular-jwt",
"version": "4.1.1",
"version": "4.1.2",
"description": "JSON Web Token helper library for Angular",

@@ -5,0 +5,0 @@ "private": false,

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 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