{"version":3,"file":"ngx-jwt-handler.mjs","sources":["../../../projects/ngx-jwt-handler/src/lib/jwt-handler.service.ts","../../../projects/ngx-jwt-handler/src/lib/session-handler.service.ts","../../../projects/ngx-jwt-handler/src/lib/token-interceptor.service.ts","../../../projects/ngx-jwt-handler/src/public-api.ts","../../../projects/ngx-jwt-handler/src/ngx-jwt-handler.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class JwtHandlerService {\r\n\r\n  constructor() { }\r\n\r\n  decodeToken(token: string): { [key: string]: any } | null {\r\n    try {\r\n      const payload = token.split('.')[1];\r\n      const decodedPayload = JSON.parse(atob(payload));\r\n      return decodedPayload;\r\n    } catch (error) {\r\n      console.error('Error decoding token:', error);\r\n      return null;\r\n    }\r\n  }\r\n\r\n  isTokenExpired(token: string): boolean {\r\n    const decodedToken = this.decodeToken(token);\r\n    if (!decodedToken || !decodedToken['exp']) {\r\n      return true;\r\n    }\r\n    const expirationTime = decodedToken['exp'] * 1000;\r\n    const currentTime = new Date().getTime();\r\n    return expirationTime < currentTime;\r\n  }\r\n\r\n  isTokenAudienceValid(token: string, expectedAudience: string): boolean {\r\n    const decodedToken = this.decodeToken(token);\r\n    if (!decodedToken || !decodedToken['aud']) {\r\n      return false;\r\n    }\r\n    return decodedToken['aud'] === expectedAudience;\r\n  }\r\n\r\n  hasRequiredClaims(token: string, requiredClaims: string[]): boolean {\r\n    const decodedToken = this.decodeToken(token);\r\n    if (!decodedToken) {\r\n      return false;\r\n    }\r\n    return requiredClaims.every(claim => decodedToken.hasOwnProperty(claim));\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SessionHandlerService {\r\n\r\n  constructor() { }\r\n\r\n  add(key: string, value: any): void {\r\n    sessionStorage.setItem(key, JSON.stringify(value));\r\n  }\r\n\r\n  remove(key: string): void {\r\n    sessionStorage.removeItem(key);\r\n  }\r\n\r\n  get(key: string): any {\r\n    const item = sessionStorage.getItem(key);\r\n    return item ? JSON.parse(item) : null;\r\n  }\r\n\r\n  has(key: string): boolean {\r\n    return sessionStorage.getItem(key) !== null;\r\n  }\r\n\r\n  clear(): void {\r\n    sessionStorage.clear();\r\n  }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SessionHandlerService } from './session-handler.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n  constructor(private session: SessionHandlerService) { }\r\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    const token = this.session.get('accessToken');\r\n\r\n    if (token) {\r\n      request = request.clone({\r\n        setHeaders: {\r\n          Authorization: `Bearer ${token}`\r\n        }\r\n      });\r\n    }\r\n\r\n    return next.handle(request);\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ngx-jwt-handler\r\n */\r\n\r\nexport * from './lib/jwt-handler.service';\r\nexport * from './lib/session-handler.service';\r\nexport * from './lib/token-interceptor.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SessionHandlerService"],"mappings":"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"}