{"version":3,"sources":["node_modules/.pnpm/@auth0+angular-jwt@5.1.2_@angular+common@18.2.0_@angular+core@18.2.0_rxjs@7.4.0_zone.js@0.14.10__rxjs@7.4.0_/node_modules/@auth0/angular-jwt/fesm2015/auth0-angular-jwt.js","src/app/_shared/services/auth.service.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { defer, of } from 'rxjs';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nconst JWT_OPTIONS = new InjectionToken('JWT_OPTIONS');\n\n// tslint:disable:no-bitwise\nlet JwtHelperService = /*#__PURE__*/(() => {\n class JwtHelperService {\n constructor(config = null) {\n this.tokenGetter = config && config.tokenGetter || function () {};\n }\n urlBase64Decode(str) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n {\n break;\n }\n case 2:\n {\n output += '==';\n break;\n }\n case 3:\n {\n output += '=';\n break;\n }\n default:\n {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n // credits for decoder goes to https://github.com/atk\n b64decode(str) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n str = String(str).replace(/=+$/, '');\n if (str.length % 4 === 1) {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n for (\n // initialize result and counters\n let bc = 0, bs, buffer, idx = 0;\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n b64DecodeUnicode(str) {\n return decodeURIComponent(Array.prototype.map.call(this.b64decode(str), c => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n decodeToken(token = this.tokenGetter()) {\n if (token instanceof Promise) {\n return token.then(t => this._decodeToken(t));\n }\n return this._decodeToken(token);\n }\n _decodeToken(token) {\n if (!token || token === '') {\n return null;\n }\n const parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error(`The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.`);\n }\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n return JSON.parse(decoded);\n }\n getTokenExpirationDate(token = this.tokenGetter()) {\n if (token instanceof Promise) {\n return token.then(t => this._getTokenExpirationDate(t));\n }\n return this._getTokenExpirationDate(token);\n }\n _getTokenExpirationDate(token) {\n let decoded;\n decoded = this.decodeToken(token);\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date;\n }\n isTokenExpired(token = this.tokenGetter(), offsetSeconds) {\n if (token instanceof Promise) {\n return token.then(t => this._isTokenExpired(t, offsetSeconds));\n }\n return this._isTokenExpired(token, offsetSeconds);\n }\n _isTokenExpired(token, offsetSeconds) {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n if (date === null) {\n return false;\n }\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n getAuthScheme(authScheme, request) {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n return authScheme;\n }\n }\n JwtHelperService.ɵfac = function JwtHelperService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || JwtHelperService)(i0.ɵɵinject(JWT_OPTIONS));\n };\n JwtHelperService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: JwtHelperService,\n factory: JwtHelperService.ɵfac\n });\n return JwtHelperService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst fromPromiseOrValue = input => {\n if (input instanceof Promise) {\n return defer(() => input);\n }\n return of(input);\n};\nlet JwtInterceptor = /*#__PURE__*/(() => {\n class JwtInterceptor {\n constructor(config, jwtHelper, document) {\n this.jwtHelper = jwtHelper;\n this.document = document;\n this.standardPorts = ['80', '443'];\n this.tokenGetter = config.tokenGetter;\n this.headerName = config.headerName || 'Authorization';\n this.authScheme = config.authScheme || config.authScheme === '' ? config.authScheme : 'Bearer ';\n this.allowedDomains = config.allowedDomains || [];\n this.disallowedRoutes = config.disallowedRoutes || [];\n this.throwNoTokenError = config.throwNoTokenError || false;\n this.skipWhenExpired = config.skipWhenExpired;\n }\n isAllowedDomain(request) {\n const requestUrl = new URL(request.url, this.document.location.origin);\n // If the host equals the current window origin,\n // the domain is allowed by default\n if (requestUrl.host === this.document.location.host) {\n return true;\n }\n // If not the current domain, check the allowed list\n const hostName = `${requestUrl.hostname}${requestUrl.port && !this.standardPorts.includes(requestUrl.port) ? ':' + requestUrl.port : ''}`;\n return this.allowedDomains.findIndex(domain => typeof domain === 'string' ? domain === hostName : domain instanceof RegExp ? domain.test(hostName) : false) > -1;\n }\n isDisallowedRoute(request) {\n const requestedUrl = new URL(request.url, this.document.location.origin);\n return this.disallowedRoutes.findIndex(route => {\n if (typeof route === 'string') {\n const parsedRoute = new URL(route, this.document.location.origin);\n return parsedRoute.hostname === requestedUrl.hostname && parsedRoute.pathname === requestedUrl.pathname;\n }\n if (route instanceof RegExp) {\n return route.test(request.url);\n }\n return false;\n }) > -1;\n }\n handleInterception(token, request, next) {\n const authScheme = this.jwtHelper.getAuthScheme(this.authScheme, request);\n if (!token && this.throwNoTokenError) {\n throw new Error('Could not get token from tokenGetter function.');\n }\n let tokenIsExpired = of(false);\n if (this.skipWhenExpired) {\n tokenIsExpired = token ? fromPromiseOrValue(this.jwtHelper.isTokenExpired(token)) : of(true);\n }\n if (token) {\n return tokenIsExpired.pipe(map(isExpired => isExpired && this.skipWhenExpired ? request.clone() : request.clone({\n setHeaders: {\n [this.headerName]: `${authScheme}${token}`\n }\n })), mergeMap(innerRequest => next.handle(innerRequest)));\n }\n return next.handle(request);\n }\n intercept(request, next) {\n if (!this.isAllowedDomain(request) || this.isDisallowedRoute(request)) {\n return next.handle(request);\n }\n const token = this.tokenGetter(request);\n return fromPromiseOrValue(token).pipe(mergeMap(asyncToken => {\n return this.handleInterception(asyncToken, request, next);\n }));\n }\n }\n JwtInterceptor.ɵfac = function JwtInterceptor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || JwtInterceptor)(i0.ɵɵinject(JWT_OPTIONS), i0.ɵɵinject(JwtHelperService), i0.ɵɵinject(DOCUMENT));\n };\n JwtInterceptor.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: JwtInterceptor,\n factory: JwtInterceptor.ɵfac\n });\n return JwtInterceptor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet JwtModule = /*#__PURE__*/(() => {\n class JwtModule {\n constructor(parentModule) {\n if (parentModule) {\n throw new Error(`JwtModule is already loaded. It should only be imported in your application's main module.`);\n }\n }\n static forRoot(options) {\n return {\n ngModule: JwtModule,\n providers: [{\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true\n }, options.jwtOptionsProvider || {\n provide: JWT_OPTIONS,\n useValue: options.config\n }, JwtHelperService]\n };\n }\n }\n JwtModule.ɵfac = function JwtModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || JwtModule)(i0.ɵɵinject(JwtModule, 12));\n };\n JwtModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: JwtModule\n });\n JwtModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return JwtModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of angular-jwt\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { JWT_OPTIONS, JwtHelperService, JwtInterceptor, JwtModule };\n","import {OrganizationDto} from '../../_dtos/user-dtos/organization-dto';\nimport {UserDto} from '../../_dtos/user-dtos/user-dto';\nimport {PromptService} from './prompt.service';\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {Subject} from 'rxjs';\nimport {LoginDto} from 'src/app/_dtos/auth-dtos/login-dto';\nimport {environment} from 'src/environments/environment';\nimport {JwtHelperService} from '@auth0/angular-jwt';\nimport {UserPermissionDto} from \"../../_dtos/user-dtos/user-permission-dto\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n private _baseUrl = environment.apiUrl + 'Auth/';\n private _backendClientTokenKey = 'backend-client-token';\n private _backendSelectedOrgKey = 'backend-selected-org';\n\n selectedOrganization: OrganizationDto;\n user: UserDto;\n userSub = new Subject();\n\n constructor(private http: HttpClient,\n private router: Router,\n private _prompt: PromptService,\n private _jwtHelper: JwtHelperService) {\n if (this.user) return;\n\n const token: string = localStorage.getItem(this._backendClientTokenKey);\n if (!token) return;\n if (_jwtHelper.isTokenExpired(token)) return;\n\n this.user = this._mapTokenToUser(token);\n if (!this.user) return;\n if (this.user?.organizations == null) return;\n\n if (this.user.organizations.length === 1) this.selectedOrganization = this.user.organizations[0];\n if (this.selectedOrganization != null) return;\n\n const selectedOrgName = localStorage.getItem(this._backendSelectedOrgKey);\n this.selectedOrganization = this.user.organizations.find(x => x.name === selectedOrgName);\n }\n\n login(dto: LoginDto) {\n this.http.post(this._baseUrl + 'Login', dto)\n .subscribe(res => {\n localStorage.setItem('backend-client-token', res.token);\n this.user = this._mapTokenToUser(res.token);\n this.userSub.next(this.user);\n }, error => {\n this.userSub.error(error);\n });\n }\n\n logout() {\n localStorage.removeItem(this._backendClientTokenKey);\n this.userSub.next(null);\n this.selectedOrganization = null;\n this.router.navigate(['/']);\n this._prompt.message('Logged out');\n }\n\n selectOrganization(org: OrganizationDto) {\n this.selectedOrganization = org;\n localStorage.setItem(this._backendSelectedOrgKey, org.name);\n }\n\n getUserPermissions(): UserPermissionDto[] {\n const user = this.user;\n if (!user) return [];\n\n try {\n return user.permissions;\n } catch (error) {\n return [];\n }\n }\n\n private _mapTokenToUser(token: string): UserDto {\n if (!token) return null;\n\n try {\n const decodedToken = this._jwtHelper.decodeToken(token);\n const user: UserDto = {\n id: decodedToken['nameid'],\n username: decodedToken['unique_name'],\n role: decodedToken['role'],\n organizations: [],\n email: '',\n permissions: []\n };\n\n const orgsString = decodedToken['groupsid'];\n const orgs: OrganizationDto[] = JSON.parse(orgsString);\n const permissionsString = decodedToken['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication'];\n const permissions: UserPermissionDto[] = JSON.parse(permissionsString);\n\n orgs.forEach(o => {\n user.organizations.push({id: o['Id'], name: o['Name'], organizationType: o['OrganizationType']});\n });\n\n user.permissions = permissions\n .map(x => ({\n organizationId: x['OrganizationId'],\n permission: x['Permission'],\n expireDate: x['ExpireDate']\n }));\n\n return user;\n } catch (error) {\n return null;\n }\n }\n}\n"],"mappings":"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","names":["JWT_OPTIONS","InjectionToken","JwtHelperService","config","str","output","chars","bc","bs","buffer","idx","c","token","parts","decoded","date","offsetSeconds","t","authScheme","request","__ngFactoryType__","ɵɵinject","ɵɵdefineInjectable","fromPromiseOrValue","input","defer","of","JwtInterceptor","jwtHelper","document","requestUrl","hostName","domain","requestedUrl","route","parsedRoute","next","tokenIsExpired","map","isExpired","mergeMap","innerRequest","asyncToken","DOCUMENT","JwtModule","parentModule","options","HTTP_INTERCEPTORS","ɵɵdefineNgModule","ɵɵdefineInjector","AuthService","constructor","http","router","_prompt","_jwtHelper","_baseUrl","environment","apiUrl","_backendClientTokenKey","_backendSelectedOrgKey","userSub","Subject","user","token","localStorage","getItem","isTokenExpired","_mapTokenToUser","organizations","length","selectedOrganization","selectedOrgName","find","x","name","login","dto","post","subscribe","res","setItem","next","error","logout","removeItem","navigate","message","selectOrganization","org","getUserPermissions","permissions","decodedToken","decodeToken","id","username","role","email","orgsString","orgs","JSON","parse","permissionsString","forEach","o","push","organizationType","map","organizationId","permission","expireDate","ɵɵinject","HttpClient","Router","PromptService","JwtHelperService","factory","ɵfac","providedIn","_AuthService"],"x_google_ignoreList":[0]}