{ "version": 3, "sources": ["apps/partner-center-client/src/app/core/auth/auth.api.service.ts", "apps/partner-center-client/src/app/core/auth/auth.service.ts"], "sourcesContent": ["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Environment, EnvironmentService } from '@galaxy/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthApiService {\n constructor(\n private http: HttpClient,\n private environmentService: EnvironmentService,\n ) {}\n\n get host(): string {\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n return 'https://partner-central-demo.appspot.com';\n case Environment.DEMO:\n return 'https://partner-central-demo.appspot.com';\n case Environment.PROD:\n return 'https://partners.vendasta.com';\n default:\n return 'https://partner-central-demo.appspot.com';\n }\n }\n\n public login(email: string, password: string, nextUrl?: string): Observable {\n let body: object = { email: email, password: password };\n if (nextUrl) {\n body = { email: email, password: password, continue: nextUrl };\n }\n return this.http\n .post<{ data: { sso_url: string } }>(this.host + '/_ajax/v1/login', body, { headers: {} })\n .pipe(map((response) => response.data.sso_url));\n }\n}\n", "import { Injectable } from '@angular/core';\nimport jwt_decode from 'jwt-decode';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { SessionService } from '@galaxy/core';\nimport { AuthApiService } from './auth.api.service';\n\nexport interface JWT {\n exp: number;\n sub?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AuthService {\n private authToken$: Observable;\n\n get decodedAuthToken$(): Observable {\n return this.authToken$.pipe(map(this.decodeJWT));\n }\n\n get isAuthed$(): Observable {\n return this.decodedAuthToken$.pipe(map(this.tokenIsValid));\n }\n\n constructor(\n private api: AuthApiService,\n private sessionService: SessionService,\n ) {\n this.authToken$ = this.sessionService.getSessionId();\n }\n\n /***\n * This will attempt to log the user in, and then it will return a url to redirect to upon success.\n *\n * This url will create a session in our login service. After which it will transfer this session to,\n * and redirect to, Partner Center.\n *\n * @param {string} email\n * @param {string} password\n * @param {string} nextUrl\n * @returns {Observable} A url to redirect to.\n */\n public authenticate(email: string, password: string, nextUrl?: string): Observable {\n return this.api.login(email, password, nextUrl);\n }\n\n private decodeJWT(jwt: string): JWT | null {\n let claims;\n try {\n claims = jwt_decode(jwt);\n } catch (err) {\n console.log('CLAIMS FAILED: ', err);\n }\n return claims;\n }\n\n private tokenIsValid(token: JWT): boolean {\n return !!token && new Date() < new Date(token.exp * 1000);\n }\n}\n"], "mappings": "+NAQA,IAAaA,GAAc,IAAA,CAArB,IAAOA,EAAP,MAAOA,CAAc,CACzBC,YACUC,EACAC,EAAsC,CADtC,KAAAD,KAAAA,EACA,KAAAC,mBAAAA,CACP,CAEH,IAAIC,MAAI,CACN,OAAQ,KAAKD,mBAAmBE,eAAc,EAAE,CAC9C,KAAKC,EAAYC,MACf,MAAO,2CACT,KAAKD,EAAYE,KACf,MAAO,2CACT,KAAKF,EAAYG,KACf,MAAO,gCACT,QACE,MAAO,0CACX,CACF,CAEOC,MAAMC,EAAeC,EAAkBC,EAAgB,CAC5D,IAAIC,EAAe,CAAEH,MAAOA,EAAOC,SAAUA,CAAQ,EACrD,OAAIC,IACFC,EAAO,CAAEH,MAAOA,EAAOC,SAAUA,EAAUG,SAAUF,CAAO,GAEvD,KAAKX,KACTc,KAAoC,KAAKZ,KAAO,kBAAmBU,EAAM,CAAEG,QAAS,CAAA,CAAE,CAAE,EACxFC,KAAKC,EAAKC,GAAaA,EAASC,KAAKC,OAAO,CAAC,CAClD,yCA3BWtB,GAAcuB,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAAdzB,EAAc0B,QAAd1B,EAAc2B,UAAAC,WADD,MAAM,CAAA,EAC1B,IAAO5B,EAAP6B,SAAO7B,CAAc,GAAA,ECM3B,IAAa8B,GAAW,IAAA,CAAlB,IAAOA,EAAP,MAAOA,CAAW,CAGtB,IAAIC,mBAAiB,CACnB,OAAO,KAAKC,WAAWC,KAAKC,EAAI,KAAKC,SAAS,CAAC,CACjD,CAEA,IAAIC,WAAS,CACX,OAAO,KAAKL,kBAAkBE,KAAKC,EAAI,KAAKG,YAAY,CAAC,CAC3D,CAEAC,YACUC,EACAC,EAA8B,CAD9B,KAAAD,IAAAA,EACA,KAAAC,eAAAA,EAER,KAAKR,WAAa,KAAKQ,eAAeC,aAAY,CACpD,CAaOC,aAAaC,EAAeC,EAAkBC,EAAgB,CACnE,OAAO,KAAKN,IAAIO,MAAMH,EAAOC,EAAUC,CAAO,CAChD,CAEQV,UAAUY,EAAW,CAC3B,IAAIC,EACJ,GAAI,CACFA,EAASC,EAAWF,CAAG,CACzB,OAASG,EAAK,CACZC,QAAQC,IAAI,kBAAmBF,CAAG,CACpC,CACA,OAAOF,CACT,CAEQX,aAAagB,EAAU,CAC7B,MAAO,CAAC,CAACA,GAAS,IAAIC,KAAS,IAAIA,KAAKD,EAAME,IAAM,GAAI,CAC1D,yCA7CWzB,GAAW0B,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAAX5B,EAAW6B,QAAX7B,EAAW8B,UAAAC,WADE,MAAM,CAAA,EAC1B,IAAO/B,EAAPgC,SAAOhC,CAAW,GAAA", "names": ["AuthApiService", "constructor", "http", "environmentService", "host", "getEnvironment", "Environment", "LOCAL", "DEMO", "PROD", "login", "email", "password", "nextUrl", "body", "continue", "post", "headers", "pipe", "map", "response", "data", "sso_url", "\u0275\u0275inject", "HttpClient", "EnvironmentService", "factory", "\u0275fac", "providedIn", "_AuthApiService", "AuthService", "decodedAuthToken$", "authToken$", "pipe", "map", "decodeJWT", "isAuthed$", "tokenIsValid", "constructor", "api", "sessionService", "getSessionId", "authenticate", "email", "password", "nextUrl", "login", "jwt", "claims", "jwt_decode", "err", "console", "log", "token", "Date", "exp", "\u0275\u0275inject", "AuthApiService", "SessionService", "factory", "\u0275fac", "providedIn", "_AuthService"] }