UNPKG

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