UNPKG

4.84 kBSource Map (JSON)View Raw
1{"version":3,"file":"angular-fire-auth-guard.umd.js","sources":["../../../src/auth-guard/auth-guard.ts","../../../src/auth-guard/auth-guard.module.ts","../../../src/auth-guard/angular-fire-auth-guard.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable, of, pipe, UnaryFunction } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport firebase from 'firebase/app';\nimport { AngularFireAuth } from '@angular/fire/auth';\n\nexport type AuthPipeGenerator = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => AuthPipe;\nexport type AuthPipe = UnaryFunction<Observable<firebase.User|null>, Observable<boolean|string|any[]>>;\n\nexport const loggedIn: AuthPipe = map(user => !!user);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireAuthGuard implements CanActivate {\n\n constructor(private router: Router, private auth: AngularFireAuth) {}\n\n canActivate = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const authPipeFactory = next.data.authGuardPipe as AuthPipeGenerator || (() => loggedIn);\n return this.auth.user.pipe(\n take(1),\n authPipeFactory(next, state),\n map(can => {\n if (typeof can === 'boolean') {\n return can;\n } else if (Array.isArray(can)) {\n return this.router.createUrlTree(can);\n } else {\n // TODO(EdricChan03): Add tests\n return this.router.parseUrl(can);\n }\n })\n );\n }\n\n}\n\nexport const canActivate = (pipe: AuthPipeGenerator) => ({\n canActivate: [ AngularFireAuthGuard ], data: { authGuardPipe: pipe }\n});\n\n\nexport const isNotAnonymous: AuthPipe = map(user => !!user && !user.isAnonymous);\nexport const idTokenResult = switchMap((user: firebase.User|null) => user ? user.getIdTokenResult() : of(null));\nexport const emailVerified: AuthPipe = map(user => !!user && user.emailVerified);\nexport const customClaims = pipe(idTokenResult, map(idTokenResult => idTokenResult ? idTokenResult.claims : []));\nexport const hasCustomClaim: (claim: string) => AuthPipe =\n (claim) => pipe(customClaims, map(claims => claims.hasOwnProperty(claim)));\nexport const redirectUnauthorizedTo: (redirect: string|any[]) => AuthPipe =\n (redirect) => pipe(loggedIn, map(loggedIn => loggedIn || redirect));\nexport const redirectLoggedInTo: (redirect: string|any[]) => AuthPipe =\n (redirect) => pipe(loggedIn, map(loggedIn => loggedIn && redirect || true));\n","import { NgModule } from '@angular/core';\nimport { AngularFireAuthGuard } from './auth-guard';\n\n@NgModule({\n providers: [ AngularFireAuthGuard ]\n})\nexport class AngularFireAuthGuardModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map","take","Injectable","Router","AngularFireAuth","of","switchMap","pipe","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAUsC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI;QAAvC,QAAQ,GAAaA,aAAG,KAAiB;;QAOpD,8BAAoB,MAAc,EAAU,IAAqB;YAAjE,iBAAqE;YAAjD,WAAM,GAAN,MAAM,CAAQ;YAAU,SAAI,GAAJ,IAAI,CAAiB;YAEjE,gBAAW,GAAG,UAAC,IAA4B,EAAE,KAA0B;gBACrE,IAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAkC,KAAK,cAAM,OAAA,QAAQ,GAAA,CAAC,CAAC;gBACzF,OAAO,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACxBC,cAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAC5BD,aAAG,CAAC,UAAA,GAAG;oBACL,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;wBAC5B,OAAO,GAAG,CAAC;qBACZ;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBAC7B,OAAO,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;qBACvC;yBAAM;;wBAEL,OAAO,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;qBAClC;iBACF,CAAC,CACH,CAAC;aACH,CAAA;SAlBoE;;;;;gBALtEE,aAAU,SAAC;oBACV,UAAU,EAAE,KAAK;iBAClB;;;;gBAb6CC,SAAM;gBAI3CC,kBAAe;;QAkCX,WAAW,GAAG,UAAC,IAAuB,IAAK,QAAC;QACvD,WAAW,EAAE,CAAE,oBAAoB,CAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KACrE,KAAE;aAGyC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;QAAlE,cAAc,GAAaJ,aAAG,KAAsC;aAC1C,UAAC,IAAwB,IAAK,OAAA,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAGK,OAAE,CAAC,IAAI,CAAC;QAAjG,aAAa,GAAGC,mBAAS,KAA0E;aACrE,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa;QAAlE,aAAa,GAAaN,aAAG,KAAuC;aAC7B,UAAA,aAAa,IAAI,OAAA,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE;QAAjG,YAAY,GAAGO,SAAI,CAAC,aAAa,EAAEP,aAAG,IAA4D,EAAE;QACpG,cAAc,GACzB,UAAC,KAAK,IAAK,OAAAO,SAAI,CAAC,YAAY,EAAEP,aAAG,CAAC,UAAA,MAAM,IAAK,OAAA,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC,IAAC;QACjE,sBAAsB,GACjC,UAAC,QAAQ,IAAK,OAAAO,SAAI,CAAC,QAAQ,EAAEP,aAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,IAAI,QAAQ,GAAA,CAAC,CAAC,IAAC;QACzD,kBAAkB,GAC7B,UAAC,QAAQ,IAAK,OAAAO,SAAI,CAAC,QAAQ,EAAEP,aAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,IAAI,QAAQ,IAAI,IAAI,GAAA,CAAC,CAAC;;;QC/C7E;;;;;gBAHCQ,WAAQ,SAAC;oBACR,SAAS,EAAE,CAAE,oBAAoB,CAAE;iBACpC;;;ICLD;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\No newline at end of file