@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
76 lines • 9.19 kB
JavaScript
import { __decorate } 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';
let TokenEscalatorMock = class TokenEscalatorMock {
constructor(actions$, store, http, tokenExtractor) {
this.actions$ = actions$;
this.store = store;
this.http = http;
this.tokenExtractor = tokenExtractor;
this.escalators = {};
this.requestsForToken = {};
}
static forTestBed() {
return {
provide: TokenEscalator,
useFactory: tokenEscalatorFactory,
};
}
/**
* deprecated Please use the correctly spelled function `simulateEscalationRequest`
*
* @param tokenName
*/
simulateEsclationRequest(tokenName) {
if (this.escalators[tokenName]) {
this.escalators[tokenName].next({});
}
else {
throw new Error(`No escalator for ${tokenName} setup`);
}
}
simulateEscalationRequest(tokenName) {
if (this.escalators[tokenName]) {
this.escalators[tokenName].next({});
}
else {
throw new Error(`No escalator for ${tokenName} setup`);
}
}
escalateToken({ tokenName, authorizeUrl, isDefaultToken }) {
const observ = new Observable((observer) => {
this.escalators[tokenName] = observer;
}).pipe(takeUntil(timer(10000)), withLatestFrom(authorizeUrl), switchMap(([action, url]) => {
if (!this.requestsForToken[tokenName]) {
this.requestsForToken[tokenName] = [];
}
this.requestsForToken[tokenName].push(url);
return of({ type: 'null op' });
}));
observ.subscribe(() => { });
return observ;
}
};
TokenEscalatorMock.ctorParameters = () => [
{ type: Actions },
{ type: Store },
{ type: HttpClient },
{ type: TokenExtractor }
];
TokenEscalatorMock = __decorate([
Injectable()
], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZXNjYWxhdG9yLm1vY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL2p3dC90ZXN0aW5nLyIsInNvdXJjZXMiOlsidG9rZW4tZXNjYWxhdG9yLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLFVBQVUsRUFFVixFQUFFLEVBQ0YsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFReEIsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUF1RDdCLFlBQ1MsUUFBaUIsRUFDakIsS0FBaUIsRUFDakIsSUFBZ0IsRUFDaEIsY0FBa0M7UUFIbEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBMURwQyxlQUFVLEdBQXFDLEVBQUUsQ0FBQztRQUVsRCxxQkFBZ0IsR0FBZ0MsRUFBRSxDQUFDO0lBeUR2RCxDQUFDO0lBdkRHLE1BQU0sQ0FBQyxVQUFVO1FBQ3RCLE9BQU87WUFDTCxPQUFPLEVBQUUsY0FBYztZQUN2QixVQUFVLEVBQUUscUJBQXFCO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdCQUF3QixDQUFDLFNBQW9DO1FBQ2xFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsU0FBUyxRQUFRLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxTQUFvQztRQUNuRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLFNBQVMsUUFBUSxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQXFCO1FBQ2pGLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsUUFBdUIsRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDTCxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3ZCLGNBQWMsQ0FDWixZQUFZLENBQ2IsRUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDdkM7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTNDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQVFGLENBQUE7O1lBTG9CLE9BQU87WUFDVixLQUFLO1lBQ04sVUFBVTtZQUNBLGNBQWM7O0FBM0Q1QixrQkFBa0I7SUFEOUIsVUFBVSxFQUFFO0dBQ0Esa0JBQWtCLENBNkQ5QjtTQTdEWSxrQkFBa0I7QUErRC9COztHQUVHO0FBQ0gsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFNBQWdCLEVBQUUsU0FBZ0IsRUFBRSxTQUFnQixFQUFFLFNBQWdCLENBQUMsQ0FBQztBQUN4RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhaW1NYXAsXG4gIFN0b3JlVG9rZW5Db25zdHJ1Y3RvcixcbiAgVG9rZW5Fc2NhbGF0b3IsXG4gIFRva2VuRXh0cmFjdG9yLFxufSBmcm9tICdAdGVybWludXMvbmd4LXRvb2xzL2p3dCc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBPYnNlcnZlcixcbiAgb2YsXG4gIHRpbWVyLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVzY2FsYXRlVG9rZW48Q00gPSBDbGFpbU1hcD4gZXh0ZW5kcyBQYXJ0aWFsPFN0b3JlVG9rZW5Db25zdHJ1Y3RvcjxDTT4+IHtcbiAgYXV0aG9yaXplVXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHRva2VuTmFtZTogRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRva2VuRXNjYWxhdG9yTW9jazxDTSA9IENsYWltTWFwPiBpbXBsZW1lbnRzIFRva2VuRXNjYWxhdG9yPENNPiB7XG4gIHB1YmxpYyBlc2NhbGF0b3JzOiB7IFtpZHg6IHN0cmluZ106IE9ic2VydmVyPGFueT4gfSA9IHt9O1xuXG4gIHB1YmxpYyByZXF1ZXN0c0ZvclRva2VuOiB7IFtpZHg6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcblxuICBwdWJsaWMgc3RhdGljIGZvclRlc3RCZWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGU6IFRva2VuRXNjYWxhdG9yLFxuICAgICAgdXNlRmFjdG9yeTogdG9rZW5Fc2NhbGF0b3JGYWN0b3J5LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogZGVwcmVjYXRlZCBQbGVhc2UgdXNlIHRoZSBjb3JyZWN0bHkgc3BlbGxlZCBmdW5jdGlvbiBgc2ltdWxhdGVFc2NhbGF0aW9uUmVxdWVzdGBcbiAgICpcbiAgICogQHBhcmFtIHRva2VuTmFtZVxuICAgKi9cbiAgcHVibGljIHNpbXVsYXRlRXNjbGF0aW9uUmVxdWVzdCh0b2tlbk5hbWU6IEV4dHJhY3Q8a2V5b2YgQ00sIHN0cmluZz4pIHtcbiAgICBpZiAodGhpcy5lc2NhbGF0b3JzW3Rva2VuTmFtZV0pIHtcbiAgICAgIHRoaXMuZXNjYWxhdG9yc1t0b2tlbk5hbWVdLm5leHQoe30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGVzY2FsYXRvciBmb3IgJHt0b2tlbk5hbWV9IHNldHVwYCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNpbXVsYXRlRXNjYWxhdGlvblJlcXVlc3QodG9rZW5OYW1lOiBFeHRyYWN0PGtleW9mIENNLCBzdHJpbmc+KSB7XG4gICAgaWYgKHRoaXMuZXNjYWxhdG9yc1t0b2tlbk5hbWVdKSB7XG4gICAgICB0aGlzLmVzY2FsYXRvcnNbdG9rZW5OYW1lXS5uZXh0KHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBlc2NhbGF0b3IgZm9yICR7dG9rZW5OYW1lfSBzZXR1cGApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlc2NhbGF0ZVRva2VuKHsgdG9rZW5OYW1lLCBhdXRob3JpemVVcmwsIGlzRGVmYXVsdFRva2VuIH06IEVzY2FsYXRlVG9rZW48Q00+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBvYnNlcnYgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPGFueT4pID0+IHtcbiAgICAgIHRoaXMuZXNjYWxhdG9yc1t0b2tlbk5hbWVdID0gb2JzZXJ2ZXI7XG4gICAgfSkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aW1lcigxMDAwMCkpLFxuICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgIGF1dGhvcml6ZVVybCxcbiAgICAgICksXG4gICAgICBzd2l0Y2hNYXAoKFthY3Rpb24sIHVybF0pID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnJlcXVlc3RzRm9yVG9rZW5bdG9rZW5OYW1lXSkge1xuICAgICAgICAgIHRoaXMucmVxdWVzdHNGb3JUb2tlblt0b2tlbk5hbWVdID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlcXVlc3RzRm9yVG9rZW5bdG9rZW5OYW1lXS5wdXNoKHVybCk7XG5cbiAgICAgICAgcmV0dXJuIG9mKHsgdHlwZTogJ251bGwgb3AnIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgICBvYnNlcnYuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgICByZXR1cm4gb2JzZXJ2O1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwdWJsaWMgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIHRva2VuRXh0cmFjdG9yOiBUb2tlbkV4dHJhY3RvcjxDTT4sXG4gICkge31cbn1cblxuLyoqXG4gKiBSZXR1cm4gbW9ja1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiB0b2tlbkVzY2FsYXRvckZhY3RvcnkoKSB7XG4gIHJldHVybiBuZXcgVG9rZW5Fc2NhbGF0b3JNb2NrKHVuZGVmaW5lZCBhcyBhbnksIHVuZGVmaW5lZCBhcyBhbnksIHVuZGVmaW5lZCBhcyBhbnksIHVuZGVmaW5lZCBhcyBhbnkpO1xufVxuIl19