@terminus/ngx-tools
Version:
[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github
80 lines • 9.64 kB
JavaScript
import { __decorate, __read } from "tslib";
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Actions } from '@ngrx/effects';
import { Store } from '@ngrx/store';
import { ClaimMap, StoreTokenConstructor, TokenEscalator, TokenExtractor, } from '@terminus/ngx-tools/jwt';
import { Observable, of, timer, } from 'rxjs';
import { switchMap, takeUntil, withLatestFrom, } from 'rxjs/operators';
var TokenEscalatorMock = /** @class */ (function () {
function TokenEscalatorMock(actions$, store, http, tokenExtractor) {
this.actions$ = actions$;
this.store = store;
this.http = http;
this.tokenExtractor = tokenExtractor;
this.escalators = {};
this.requestsForToken = {};
}
TokenEscalatorMock.forTestBed = function () {
return {
provide: TokenEscalator,
useFactory: tokenEscalatorFactory,
};
};
/**
* deprecated Please use the correctly spelled function `simulateEscalationRequest`
*
* @param tokenName
*/
TokenEscalatorMock.prototype.simulateEsclationRequest = function (tokenName) {
if (this.escalators[tokenName]) {
this.escalators[tokenName].next({});
}
else {
throw new Error("No escalator for " + tokenName + " setup");
}
};
TokenEscalatorMock.prototype.simulateEscalationRequest = function (tokenName) {
if (this.escalators[tokenName]) {
this.escalators[tokenName].next({});
}
else {
throw new Error("No escalator for " + tokenName + " setup");
}
};
TokenEscalatorMock.prototype.escalateToken = function (_a) {
var _this = this;
var tokenName = _a.tokenName, authorizeUrl = _a.authorizeUrl, isDefaultToken = _a.isDefaultToken;
var observ = new Observable(function (observer) {
_this.escalators[tokenName] = observer;
}).pipe(takeUntil(timer(10000)), withLatestFrom(authorizeUrl), switchMap(function (_a) {
var _b = __read(_a, 2), action = _b[0], url = _b[1];
if (!_this.requestsForToken[tokenName]) {
_this.requestsForToken[tokenName] = [];
}
_this.requestsForToken[tokenName].push(url);
return of({ type: 'null op' });
}));
observ.subscribe(function () { });
return observ;
};
TokenEscalatorMock.ctorParameters = function () { return [
{ type: Actions },
{ type: Store },
{ type: HttpClient },
{ type: TokenExtractor }
]; };
TokenEscalatorMock = __decorate([
Injectable()
], TokenEscalatorMock);
return TokenEscalatorMock;
}());
export { TokenEscalatorMock };
/**
* Return mock
*/
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
export function tokenEscalatorFactory() {
return new TokenEscalatorMock(undefined, undefined, undefined, undefined);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZXNjYWxhdG9yLm1vY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL2p3dC90ZXN0aW5nLyIsInNvdXJjZXMiOlsidG9rZW4tZXNjYWxhdG9yLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLFVBQVUsRUFFVixFQUFFLEVBQ0YsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFReEI7SUF1REUsNEJBQ1MsUUFBaUIsRUFDakIsS0FBaUIsRUFDakIsSUFBZ0IsRUFDaEIsY0FBa0M7UUFIbEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBMURwQyxlQUFVLEdBQXFDLEVBQUUsQ0FBQztRQUVsRCxxQkFBZ0IsR0FBZ0MsRUFBRSxDQUFDO0lBeUR2RCxDQUFDO0lBdkRVLDZCQUFVLEdBQXhCO1FBQ0UsT0FBTztZQUNMLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxxQkFBcUI7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kscURBQXdCLEdBQS9CLFVBQWdDLFNBQW9DO1FBQ2xFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBb0IsU0FBUyxXQUFRLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFTSxzREFBeUIsR0FBaEMsVUFBaUMsU0FBb0M7UUFDbkUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFvQixTQUFTLFdBQVEsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVNLDBDQUFhLEdBQXBCLFVBQXFCLEVBQThEO1FBQW5GLGlCQW9CQztZQXBCc0Isd0JBQVMsRUFBRSw4QkFBWSxFQUFFLGtDQUFjO1FBQzVELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLFVBQUMsUUFBdUI7WUFDcEQsS0FBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNMLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdkIsY0FBYyxDQUNaLFlBQVksQ0FDYixFQUNELFNBQVMsQ0FBQyxVQUFDLEVBQWE7Z0JBQWIsa0JBQWEsRUFBWixjQUFNLEVBQUUsV0FBRztZQUNyQixJQUFJLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNyQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3ZDO1lBRUQsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7Z0JBR2tCLE9BQU87Z0JBQ1YsS0FBSztnQkFDTixVQUFVO2dCQUNBLGNBQWM7O0lBM0Q1QixrQkFBa0I7UUFEOUIsVUFBVSxFQUFFO09BQ0Esa0JBQWtCLENBNkQ5QjtJQUFELHlCQUFDO0NBQUEsQUE3REQsSUE2REM7U0E3RFksa0JBQWtCO0FBK0QvQjs7R0FFRztBQUNILCtEQUErRDtBQUMvRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxTQUFnQixFQUFFLFNBQWdCLEVBQUUsU0FBZ0IsRUFBRSxTQUFnQixDQUFDLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENsYWltTWFwLFxuICBTdG9yZVRva2VuQ29uc3RydWN0b3IsXG4gIFRva2VuRXNjYWxhdG9yLFxuICBUb2tlbkV4dHJhY3Rvcixcbn0gZnJvbSAnQHRlcm1pbnVzL25neC10b29scy9qd3QnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgT2JzZXJ2ZXIsXG4gIG9mLFxuICB0aW1lcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBFc2NhbGF0ZVRva2VuPENNID0gQ2xhaW1NYXA+IGV4dGVuZHMgUGFydGlhbDxTdG9yZVRva2VuQ29uc3RydWN0b3I8Q00+PiB7XG4gIGF1dGhvcml6ZVVybDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICB0b2tlbk5hbWU6IEV4dHJhY3Q8a2V5b2YgQ00sIHN0cmluZz47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUb2tlbkVzY2FsYXRvck1vY2s8Q00gPSBDbGFpbU1hcD4gaW1wbGVtZW50cyBUb2tlbkVzY2FsYXRvcjxDTT4ge1xuICBwdWJsaWMgZXNjYWxhdG9yczogeyBbaWR4OiBzdHJpbmddOiBPYnNlcnZlcjxhbnk+IH0gPSB7fTtcblxuICBwdWJsaWMgcmVxdWVzdHNGb3JUb2tlbjogeyBbaWR4OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XG5cbiAgcHVibGljIHN0YXRpYyBmb3JUZXN0QmVkKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlOiBUb2tlbkVzY2FsYXRvcixcbiAgICAgIHVzZUZhY3Rvcnk6IHRva2VuRXNjYWxhdG9yRmFjdG9yeSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSB0aGUgY29ycmVjdGx5IHNwZWxsZWQgZnVuY3Rpb24gYHNpbXVsYXRlRXNjYWxhdGlvblJlcXVlc3RgXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlbk5hbWVcbiAgICovXG4gIHB1YmxpYyBzaW11bGF0ZUVzY2xhdGlvblJlcXVlc3QodG9rZW5OYW1lOiBFeHRyYWN0PGtleW9mIENNLCBzdHJpbmc+KSB7XG4gICAgaWYgKHRoaXMuZXNjYWxhdG9yc1t0b2tlbk5hbWVdKSB7XG4gICAgICB0aGlzLmVzY2FsYXRvcnNbdG9rZW5OYW1lXS5uZXh0KHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBlc2NhbGF0b3IgZm9yICR7dG9rZW5OYW1lfSBzZXR1cGApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaW11bGF0ZUVzY2FsYXRpb25SZXF1ZXN0KHRva2VuTmFtZTogRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPikge1xuICAgIGlmICh0aGlzLmVzY2FsYXRvcnNbdG9rZW5OYW1lXSkge1xuICAgICAgdGhpcy5lc2NhbGF0b3JzW3Rva2VuTmFtZV0ubmV4dCh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gZXNjYWxhdG9yIGZvciAke3Rva2VuTmFtZX0gc2V0dXBgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXNjYWxhdGVUb2tlbih7IHRva2VuTmFtZSwgYXV0aG9yaXplVXJsLCBpc0RlZmF1bHRUb2tlbiB9OiBFc2NhbGF0ZVRva2VuPENNPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgb2JzZXJ2ID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxhbnk+KSA9PiB7XG4gICAgICB0aGlzLmVzY2FsYXRvcnNbdG9rZW5OYW1lXSA9IG9ic2VydmVyO1xuICAgIH0pLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGltZXIoMTAwMDApKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICBhdXRob3JpemVVcmwsXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKChbYWN0aW9uLCB1cmxdKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0c0ZvclRva2VuW3Rva2VuTmFtZV0pIHtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RzRm9yVG9rZW5bdG9rZW5OYW1lXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0c0ZvclRva2VuW3Rva2VuTmFtZV0ucHVzaCh1cmwpO1xuXG4gICAgICAgIHJldHVybiBvZih7IHR5cGU6ICdudWxsIG9wJyB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gICAgb2JzZXJ2LnN1YnNjcmliZSgoKSA9PiB7fSk7XG4gICAgcmV0dXJuIG9ic2VydjtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHVibGljIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHB1YmxpYyB0b2tlbkV4dHJhY3RvcjogVG9rZW5FeHRyYWN0b3I8Q00+LFxuICApIHt9XG59XG5cbi8qKlxuICogUmV0dXJuIG1vY2tcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5Fc2NhbGF0b3JGYWN0b3J5KCkge1xuICByZXR1cm4gbmV3IFRva2VuRXNjYWxhdG9yTW9jayh1bmRlZmluZWQgYXMgYW55LCB1bmRlZmluZWQgYXMgYW55LCB1bmRlZmluZWQgYXMgYW55LCB1bmRlZmluZWQgYXMgYW55KTtcbn1cbiJdfQ==