UNPKG

coersystem

Version:

Library for Angular projects

107 lines (102 loc) 3.43 kB
import * as i0 from '@angular/core'; import { inject, Injectable, NgModule } from '@angular/core'; import { JwtModule, JwtHelperService } from '@auth0/angular-jwt'; import { User, Tools, Dates } from 'coersystem/tools'; function TOKEN() { return User.Get()?.jwt || ''; } function JWTModule(allowedDomains, disallowedRoutes) { return JwtModule.forRoot({ config: { tokenGetter: TOKEN, allowedDomains, disallowedRoutes } }); } class JWTService { constructor() { this.jwtService = inject(JwtHelperService); } /** */ get jwt() { return User.Get()?.jwt || ''; } /** */ get expirationDate() { try { return Tools.IsNotOnlyWhiteSpace(this.jwt) && Tools.IsNotNull(this.jwtService.getTokenExpirationDate(this.jwt)) ? Dates.ToFormatDB(this.jwtService.getTokenExpirationDate(this.jwt)) : null; } catch { return null; } } /** */ get isExpired() { try { return Tools.IsNotOnlyWhiteSpace(this.jwt) ? this.jwtService.isTokenExpired(this.jwt) : true; } catch (message) { console.error(message); return true; } } /** */ get claims() { try { return this.jwtService.decodeToken(); } catch { return {}; } } /** */ get isValid() { try { return !this.isExpired && Tools.GetPropertyList(this.claims).map(item => item.toLowerCase()).includes('user'); } catch { return false; } } /** */ UpdateJWT(jwt) { let user = User.Get(); if (user) { user = Object.assign(user, { jwt }); User.Set(user); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: JWTService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: JWTService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: JWTService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); class ServicesModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule, providers: [ JWTService ] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule, decorators: [{ type: NgModule, args: [{ providers: [ JWTService ] }] }] }); /** * Generated bundle index. Do not edit. */ export { JWTModule, JWTService, ServicesModule }; //# sourceMappingURL=coersystem-services.mjs.map