@thecla/auth0-angular 10.0.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,9 +6,9 @@ import { filter, map, tap, first, switchMap, catchError, mergeMap } from 'rxjs/o
6
6
  import { toSignal } from '@angular/core/rxjs-interop';
7
7
  import { pipe, from, EMPTY, of } from 'rxjs';
8
8
  import { HTTP_INTERCEPTORS } from '@angular/common/http';
9
- import * as i1$1 from '@ngrx/effects';
10
- import { createEffect, ofType, EffectsModule, provideEffects } from '@ngrx/effects';
11
- import * as i3 from '@angular/router';
9
+ import * as i2 from '@ngrx/effects';
10
+ import { Actions, createEffect, ofType, EffectsModule, provideEffects } from '@ngrx/effects';
11
+ import { Router } from '@angular/router';
12
12
  import { Auth0Client } from '@auth0/auth0-spa-js';
13
13
 
14
14
  const init = createAction('[@thecla/auth0-angular] init');
@@ -50,8 +50,8 @@ function getIsAuthenticatedSignal() {
50
50
  }
51
51
 
52
52
  class AuthGuard {
53
- constructor(store) {
54
- this.store = store;
53
+ constructor() {
54
+ this.store = inject(Store);
55
55
  this.authenticated$ = this.store.pipe(isAuthenticated);
56
56
  }
57
57
  canActivate(next, state) {
@@ -61,32 +61,32 @@ class AuthGuard {
61
61
  }
62
62
  }), first());
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthGuard, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthGuard, decorators: [{
68
68
  type: Injectable,
69
69
  args: [{
70
70
  providedIn: 'root',
71
71
  }]
72
- }], ctorParameters: () => [{ type: i1.Store }] });
72
+ }] });
73
73
 
74
74
  class AuthConfig {
75
75
  }
76
76
 
77
77
  class AuthService {
78
- constructor(config) {
79
- this.config = config;
78
+ constructor() {
79
+ this.config = inject(AuthConfig);
80
80
  this.auth0 = new Auth0Client({
81
- clientId: config.clientId,
81
+ clientId: this.config.clientId,
82
82
  authorizationParams: {
83
- audience: config.audience,
84
- redirect_uri: config.redirectUri ?? location.origin,
85
- scope: config.scope,
83
+ audience: this.config.audience,
84
+ redirect_uri: this.config.redirectUri ?? location.origin,
85
+ scope: this.config.scope,
86
86
  },
87
- domain: config.domain,
88
- useRefreshTokens: config.useRefreshTokens,
89
- sessionCheckExpiryDays: config.sessionCheckExpiryDays,
87
+ domain: this.config.domain,
88
+ useRefreshTokens: this.config.useRefreshTokens,
89
+ sessionCheckExpiryDays: this.config.sessionCheckExpiryDays,
90
90
  });
91
91
  }
92
92
  isAuthenticated() {
@@ -113,21 +113,21 @@ class AuthService {
113
113
  await this.auth0.checkSession();
114
114
  return await this.auth0.isAuthenticated();
115
115
  }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthService, deps: [{ token: AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
117
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthService, providedIn: 'root' }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthService, providedIn: 'root' }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthService, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthService, decorators: [{
120
120
  type: Injectable,
121
121
  args: [{
122
122
  providedIn: 'root',
123
123
  }]
124
- }], ctorParameters: () => [{ type: AuthConfig }] });
124
+ }], ctorParameters: () => [] });
125
125
 
126
126
  class AuthEffects {
127
- constructor(actions$, auth, router) {
128
- this.actions$ = actions$;
129
- this.auth = auth;
130
- this.router = router;
127
+ constructor() {
128
+ this.actions$ = inject(Actions);
129
+ this.auth = inject(AuthService);
130
+ this.router = inject(Router);
131
131
  this.signIn$ = createEffect(() => this.actions$.pipe(ofType(signIn), switchMap(action => this.auth.loginWithRedirect({ target: action.returnUrl }))), { dispatch: false });
132
132
  this.signInCompleted$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(() => this.auth.getUser().pipe(map(user => signedIn({ user })), catchError(error => of(signInFailed({ error })))))));
133
133
  this.redirect$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true }))), { dispatch: false });
@@ -161,21 +161,21 @@ class AuthEffects {
161
161
  completeSignIn() {
162
162
  return this.auth.handleRedirectCallback().pipe(map(state => signInCompleted({ state })), catchError(error => of(signInFailed({ error }))));
163
163
  }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthEffects, deps: [{ token: i1$1.Actions }, { token: AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
165
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthEffects }); }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
165
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthEffects }); }
166
166
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthEffects, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthEffects, decorators: [{
168
168
  type: Injectable
169
- }], ctorParameters: () => [{ type: i1$1.Actions }, { type: AuthService }, { type: i3.Router }] });
169
+ }] });
170
170
 
171
171
  class JwtInterceptor {
172
172
  intercept(request, next) {
173
173
  return jwtInterceptor(request, next.handle);
174
174
  }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: JwtInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
176
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: JwtInterceptor }); }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: JwtInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
176
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: JwtInterceptor }); }
177
177
  }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: JwtInterceptor, decorators: [{
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: JwtInterceptor, decorators: [{
179
179
  type: Injectable
180
180
  }] });
181
181
  const jwtInterceptor = (request, next) => {
@@ -210,11 +210,11 @@ class AuthModule {
210
210
  ],
211
211
  };
212
212
  }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
214
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, imports: [i1.StoreFeatureModule, i1$1.EffectsFeatureModule] }); }
215
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, imports: [StoreModule.forFeature(authFeature), EffectsModule.forFeature([AuthEffects])] }); }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
214
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.4", ngImport: i0, type: AuthModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] }); }
215
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthModule, imports: [StoreModule.forFeature(authFeature), EffectsModule.forFeature([AuthEffects])] }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AuthModule, decorators: [{
218
218
  type: NgModule,
219
219
  args: [{
220
220
  declarations: [],
@@ -1 +1 @@
1
- {"version":3,"file":"thecla-auth0-angular.mjs","sources":["../../../projects/auth0-angular/src/lib/auth.actions.ts","../../../projects/auth0-angular/src/lib/auth.reducer.ts","../../../projects/auth0-angular/src/lib/auth.selectors.ts","../../../projects/auth0-angular/src/lib/auth.guard.ts","../../../projects/auth0-angular/src/lib/auth-config.ts","../../../projects/auth0-angular/src/lib/auth.service.ts","../../../projects/auth0-angular/src/lib/auth.effects.ts","../../../projects/auth0-angular/src/lib/jwt.interceptor.ts","../../../projects/auth0-angular/src/lib/auth.module.ts","../../../projects/auth0-angular/src/lib/provide-auth.ts","../../../projects/auth0-angular/src/thecla-auth0-angular.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { Profile } from './auth.reducer';\n\nexport const init = createAction('[@thecla/auth0-angular] init');\n\nexport const signIn = createAction('[@thecla/auth0-angular] sign in', props<{ returnUrl: string }>());\n\nexport const signInCompleted = createAction(\n '[@thecla/auth0-angular] sign in completed',\n props<{ state: { target: string } }>(),\n);\n\nexport const signedIn = createAction('[@thecla/auth0-angular] signed in', props<{ user: Profile }>());\n\nexport const signInFailed = createAction('[@thecla/auth0-angular] sign in failed', props<{ error: Error }>());\n\nexport const signOut = createAction('[@thecla/auth0-angular] sign out');\n\nexport const signedOut = createAction('[@thecla/auth0-angular] signed out');\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { signInFailed, signedIn, signedOut } from './auth.actions';\n\nexport interface Profile {\n [key: string]: any;\n sub?: string;\n name?: string;\n nickname?: string;\n picture?: string;\n email?: string;\n}\n\nexport interface State {\n authenticating: boolean;\n authenticated: boolean;\n user: Profile | undefined;\n}\n\nexport const noAuthentication: State = {\n authenticating: false,\n authenticated: false,\n user: undefined,\n};\n\nexport const startAuthentication: State = {\n authenticating: true,\n authenticated: false,\n user: undefined,\n};\n\nexport const authFeature = createFeature({\n name: 'auth',\n reducer: createReducer(\n startAuthentication,\n on(signedIn, (state, { user }) => ({\n ...state,\n authenticating: false,\n authenticated: true,\n user,\n })),\n on(signedOut, _ => noAuthentication),\n on(signInFailed, _ => noAuthentication),\n ),\n});\n\nexport const { selectAuthState, reducer } = authFeature;\n","import { inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Store, select } from '@ngrx/store';\nimport { pipe } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { selectAuthState } from './auth.reducer';\n\nexport const isAuthenticated = pipe(\n select(selectAuthState),\n filter(state => !state.authenticating),\n map(state => state.authenticated),\n);\n\nexport const getUser = pipe(\n select(selectAuthState),\n filter(state => !state.authenticating),\n map(state => state.user),\n);\n\nexport function getUserSignal() {\n return toSignal(inject(Store).pipe(getUser));\n}\n\nexport function getIsAuthenticatedSignal() {\n return toSignal(inject(Store).pipe(isAuthenticated));\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { first, tap } from 'rxjs/operators';\nimport { signIn } from './auth.actions';\nimport { isAuthenticated } from './auth.selectors';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n private readonly authenticated$ = this.store.pipe(isAuthenticated);\n\n public constructor(private readonly store: Store) {}\n\n public canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.authenticated$.pipe(\n tap(auth => {\n if (!auth) {\n this.store.dispatch(signIn({ returnUrl: state.url }));\n }\n }),\n first(),\n );\n }\n}\n","export abstract class AuthConfig {\n public abstract audience: string;\n public abstract clientId: string;\n public abstract domain: string;\n public abstract scope: string;\n public abstract redirectUri?: string;\n public abstract logoutUri?: string;\n public abstract useRefreshTokens?: boolean;\n public abstract sessionCheckExpiryDays?: number;\n}\n","import { Injectable } from '@angular/core';\nimport { Auth0Client, User } from '@auth0/auth0-spa-js';\nimport { EMPTY, from, Observable } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\nimport { AuthConfig } from './auth-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly auth0: Auth0Client;\n\n public constructor(private readonly config: AuthConfig) {\n this.auth0 = new Auth0Client({\n clientId: config.clientId,\n authorizationParams: {\n audience: config.audience,\n redirect_uri: config.redirectUri ?? location.origin,\n scope: config.scope,\n },\n domain: config.domain,\n useRefreshTokens: config.useRefreshTokens,\n sessionCheckExpiryDays: config.sessionCheckExpiryDays,\n });\n }\n\n public isAuthenticated() {\n return from(this.checkSession());\n }\n\n public loginWithRedirect(appState: { target: string }) {\n return from(this.auth0.loginWithRedirect({ appState })).pipe(switchMap(() => EMPTY));\n }\n\n public handleRedirectCallback() {\n return from(this.auth0.handleRedirectCallback()).pipe(map(result => result.appState as { target: string }));\n }\n\n public getUser() {\n return from(this.auth0.getUser()).pipe(filter((u): u is User => u !== undefined));\n }\n\n public getAccessToken(): Observable<unknown> {\n return from(this.auth0.getTokenSilently());\n }\n\n public logout() {\n this.auth0.logout({\n logoutParams: { returnTo: this.config.logoutUri ?? location.origin },\n });\n }\n\n private async checkSession() {\n await this.auth0.checkSession();\n\n return await this.auth0.isAuthenticated();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType, OnInitEffects } from '@ngrx/effects';\nimport { of } from 'rxjs';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { init, signedIn, signedOut, signIn, signInCompleted, signInFailed, signOut } from './auth.actions';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class AuthEffects implements OnInitEffects {\n public readonly signIn$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(signIn),\n switchMap(action => this.auth.loginWithRedirect({ target: action.returnUrl })),\n ),\n { dispatch: false },\n );\n\n public readonly signInCompleted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInCompleted),\n switchMap(() =>\n this.auth.getUser().pipe(\n map(user => signedIn({ user })),\n catchError(error => of(signInFailed({ error }))),\n ),\n ),\n ),\n );\n\n public readonly redirect$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(signInCompleted),\n switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true })),\n ),\n { dispatch: false },\n );\n\n public readonly signOut$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signOut),\n tap(() => {\n try {\n this.auth.logout();\n } catch {}\n }),\n map(() => signedOut()),\n ),\n );\n\n public readonly init$ = createEffect(() =>\n this.actions$.pipe(\n ofType(init),\n switchMap(() => {\n const params = window.location.search;\n\n if (params.includes('code=') && params.includes('state=')) {\n return this.completeSignIn();\n } else {\n return this.auth.isAuthenticated().pipe(\n switchMap(auth => this.getAuthResult(auth)),\n catchError(error => of(signInFailed({ error }))),\n );\n }\n }),\n ),\n );\n\n public constructor(\n private readonly actions$: Actions,\n private readonly auth: AuthService,\n private readonly router: Router,\n ) {}\n\n public ngrxOnInitEffects() {\n return init();\n }\n\n private getAuthResult(auth: boolean) {\n if (auth) {\n return this.auth.getUser().pipe(map(user => signedIn({ user })));\n } else {\n return of(signedOut());\n }\n }\n\n private completeSignIn() {\n return this.auth.handleRedirectCallback().pipe(\n map(state => signInCompleted({ state })),\n catchError(error => of(signInFailed({ error }))),\n );\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n public intercept(request: HttpRequest<any>, next: HttpHandler) {\n return jwtInterceptor(request, next.handle);\n }\n}\n\nexport const jwtInterceptor: HttpInterceptorFn = (request, next) => {\n if (isSameDomain(request)) {\n return inject(AuthService)\n .getAccessToken()\n .pipe(\n map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })),\n mergeMap(authorizedRequest => next(authorizedRequest)),\n );\n } else {\n return next(request);\n }\n};\n\nfunction isSameDomain(request: HttpRequest<any>) {\n const isAbsolute = /^https?:\\/\\//i.test(request.url);\n\n return !isAbsolute;\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { AuthConfig } from './auth-config';\nimport { AuthEffects } from './auth.effects';\nimport { authFeature } from './auth.reducer';\nimport { JwtInterceptor } from './jwt.interceptor';\n\n@NgModule({\n declarations: [],\n imports: [StoreModule.forFeature(authFeature), EffectsModule.forFeature([AuthEffects])],\n exports: [],\n})\nexport class AuthModule {\n public static forRoot(config: AuthConfig): ModuleWithProviders<AuthModule> {\n return {\n ngModule: AuthModule,\n providers: [\n {\n provide: AuthConfig,\n useValue: config,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState } from '@ngrx/store';\nimport { AuthConfig } from './auth-config';\nimport { AuthEffects } from './auth.effects';\nimport { authFeature } from './auth.reducer';\n\nexport function provideAuth(config: AuthConfig) {\n const effects = provideEffects(AuthEffects);\n const state = provideState(authFeature);\n\n return makeEnvironmentProviders([\n effects,\n state,\n {\n provide: AuthConfig,\n useValue: config,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthConfig","i1","i2.AuthService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"thecla-auth0-angular.mjs","sources":["../../../projects/auth0-angular/src/lib/auth.actions.ts","../../../projects/auth0-angular/src/lib/auth.reducer.ts","../../../projects/auth0-angular/src/lib/auth.selectors.ts","../../../projects/auth0-angular/src/lib/auth.guard.ts","../../../projects/auth0-angular/src/lib/auth-config.ts","../../../projects/auth0-angular/src/lib/auth.service.ts","../../../projects/auth0-angular/src/lib/auth.effects.ts","../../../projects/auth0-angular/src/lib/jwt.interceptor.ts","../../../projects/auth0-angular/src/lib/auth.module.ts","../../../projects/auth0-angular/src/lib/provide-auth.ts","../../../projects/auth0-angular/src/thecla-auth0-angular.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { Profile } from './auth.reducer';\n\nexport const init = createAction('[@thecla/auth0-angular] init');\n\nexport const signIn = createAction('[@thecla/auth0-angular] sign in', props<{ returnUrl: string }>());\n\nexport const signInCompleted = createAction(\n '[@thecla/auth0-angular] sign in completed',\n props<{ state: { target: string } }>(),\n);\n\nexport const signedIn = createAction('[@thecla/auth0-angular] signed in', props<{ user: Profile }>());\n\nexport const signInFailed = createAction('[@thecla/auth0-angular] sign in failed', props<{ error: Error }>());\n\nexport const signOut = createAction('[@thecla/auth0-angular] sign out');\n\nexport const signedOut = createAction('[@thecla/auth0-angular] signed out');\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport { signInFailed, signedIn, signedOut } from './auth.actions';\n\nexport interface Profile {\n [key: string]: any;\n sub?: string;\n name?: string;\n nickname?: string;\n picture?: string;\n email?: string;\n}\n\nexport interface State {\n authenticating: boolean;\n authenticated: boolean;\n user: Profile | undefined;\n}\n\nexport const noAuthentication: State = {\n authenticating: false,\n authenticated: false,\n user: undefined,\n};\n\nexport const startAuthentication: State = {\n authenticating: true,\n authenticated: false,\n user: undefined,\n};\n\nexport const authFeature = createFeature({\n name: 'auth',\n reducer: createReducer(\n startAuthentication,\n on(signedIn, (state, { user }) => ({\n ...state,\n authenticating: false,\n authenticated: true,\n user,\n })),\n on(signedOut, _ => noAuthentication),\n on(signInFailed, _ => noAuthentication),\n ),\n});\n\nexport const { selectAuthState, reducer } = authFeature;\n","import { inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Store, select } from '@ngrx/store';\nimport { pipe } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { selectAuthState } from './auth.reducer';\n\nexport const isAuthenticated = pipe(\n select(selectAuthState),\n filter(state => !state.authenticating),\n map(state => state.authenticated),\n);\n\nexport const getUser = pipe(\n select(selectAuthState),\n filter(state => !state.authenticating),\n map(state => state.user),\n);\n\nexport function getUserSignal() {\n return toSignal(inject(Store).pipe(getUser));\n}\n\nexport function getIsAuthenticatedSignal() {\n return toSignal(inject(Store).pipe(isAuthenticated));\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { first, tap } from 'rxjs/operators';\nimport { signIn } from './auth.actions';\nimport { isAuthenticated } from './auth.selectors';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n private readonly store = inject(Store);\n\n private readonly authenticated$ = this.store.pipe(isAuthenticated);\n\n public canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.authenticated$.pipe(\n tap(auth => {\n if (!auth) {\n this.store.dispatch(signIn({ returnUrl: state.url }));\n }\n }),\n first(),\n );\n }\n}\n","export abstract class AuthConfig {\n public abstract audience: string;\n public abstract clientId: string;\n public abstract domain: string;\n public abstract scope: string;\n public abstract redirectUri?: string;\n public abstract logoutUri?: string;\n public abstract useRefreshTokens?: boolean;\n public abstract sessionCheckExpiryDays?: number;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Auth0Client, User } from '@auth0/auth0-spa-js';\nimport { EMPTY, from, Observable } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\nimport { AuthConfig } from './auth-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly config = inject(AuthConfig);\n\n private readonly auth0: Auth0Client;\n\n public constructor() {\n this.auth0 = new Auth0Client({\n clientId: this.config.clientId,\n authorizationParams: {\n audience: this.config.audience,\n redirect_uri: this.config.redirectUri ?? location.origin,\n scope: this.config.scope,\n },\n domain: this.config.domain,\n useRefreshTokens: this.config.useRefreshTokens,\n sessionCheckExpiryDays: this.config.sessionCheckExpiryDays,\n });\n }\n\n public isAuthenticated() {\n return from(this.checkSession());\n }\n\n public loginWithRedirect(appState: { target: string }) {\n return from(this.auth0.loginWithRedirect({ appState })).pipe(switchMap(() => EMPTY));\n }\n\n public handleRedirectCallback() {\n return from(this.auth0.handleRedirectCallback()).pipe(map(result => result.appState as { target: string }));\n }\n\n public getUser() {\n return from(this.auth0.getUser()).pipe(filter((u): u is User => u !== undefined));\n }\n\n public getAccessToken(): Observable<unknown> {\n return from(this.auth0.getTokenSilently());\n }\n\n public logout() {\n this.auth0.logout({\n logoutParams: { returnTo: this.config.logoutUri ?? location.origin },\n });\n }\n\n private async checkSession() {\n await this.auth0.checkSession();\n\n return await this.auth0.isAuthenticated();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType, OnInitEffects } from '@ngrx/effects';\nimport { of } from 'rxjs';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { init, signedIn, signedOut, signIn, signInCompleted, signInFailed, signOut } from './auth.actions';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class AuthEffects implements OnInitEffects {\n private readonly actions$ = inject(Actions);\n private readonly auth = inject(AuthService);\n private readonly router = inject(Router);\n\n public readonly signIn$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(signIn),\n switchMap(action => this.auth.loginWithRedirect({ target: action.returnUrl })),\n ),\n { dispatch: false },\n );\n\n public readonly signInCompleted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInCompleted),\n switchMap(() =>\n this.auth.getUser().pipe(\n map(user => signedIn({ user })),\n catchError(error => of(signInFailed({ error }))),\n ),\n ),\n ),\n );\n\n public readonly redirect$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(signInCompleted),\n switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true })),\n ),\n { dispatch: false },\n );\n\n public readonly signOut$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signOut),\n tap(() => {\n try {\n this.auth.logout();\n } catch {}\n }),\n map(() => signedOut()),\n ),\n );\n\n public readonly init$ = createEffect(() =>\n this.actions$.pipe(\n ofType(init),\n switchMap(() => {\n const params = window.location.search;\n\n if (params.includes('code=') && params.includes('state=')) {\n return this.completeSignIn();\n } else {\n return this.auth.isAuthenticated().pipe(\n switchMap(auth => this.getAuthResult(auth)),\n catchError(error => of(signInFailed({ error }))),\n );\n }\n }),\n ),\n );\n\n public ngrxOnInitEffects() {\n return init();\n }\n\n private getAuthResult(auth: boolean) {\n if (auth) {\n return this.auth.getUser().pipe(map(user => signedIn({ user })));\n } else {\n return of(signedOut());\n }\n }\n\n private completeSignIn() {\n return this.auth.handleRedirectCallback().pipe(\n map(state => signInCompleted({ state })),\n catchError(error => of(signInFailed({ error }))),\n );\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { AuthService } from './auth.service';\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n public intercept(request: HttpRequest<any>, next: HttpHandler) {\n return jwtInterceptor(request, next.handle);\n }\n}\n\nexport const jwtInterceptor: HttpInterceptorFn = (request, next) => {\n if (isSameDomain(request)) {\n return inject(AuthService)\n .getAccessToken()\n .pipe(\n map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })),\n mergeMap(authorizedRequest => next(authorizedRequest)),\n );\n } else {\n return next(request);\n }\n};\n\nfunction isSameDomain(request: HttpRequest<any>) {\n const isAbsolute = /^https?:\\/\\//i.test(request.url);\n\n return !isAbsolute;\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { AuthConfig } from './auth-config';\nimport { AuthEffects } from './auth.effects';\nimport { authFeature } from './auth.reducer';\nimport { JwtInterceptor } from './jwt.interceptor';\n\n@NgModule({\n declarations: [],\n imports: [StoreModule.forFeature(authFeature), EffectsModule.forFeature([AuthEffects])],\n exports: [],\n})\nexport class AuthModule {\n public static forRoot(config: AuthConfig): ModuleWithProviders<AuthModule> {\n return {\n ngModule: AuthModule,\n providers: [\n {\n provide: AuthConfig,\n useValue: config,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState } from '@ngrx/store';\nimport { AuthConfig } from './auth-config';\nimport { AuthEffects } from './auth.effects';\nimport { authFeature } from './auth.reducer';\n\nexport function provideAuth(config: AuthConfig) {\n const effects = provideEffects(AuthEffects);\n const state = provideState(authFeature);\n\n return makeEnvironmentProviders([\n effects,\n state,\n {\n provide: AuthConfig,\n useValue: config,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,68 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@thecla/auth0-angular" />
5
- export * from './public-api';
1
+ import * as _ngrx_store from '@ngrx/store';
2
+ import * as rxjs from 'rxjs';
3
+ import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
4
+ import * as i0 from '@angular/core';
5
+ import { ModuleWithProviders } from '@angular/core';
6
+ import * as i2 from '@ngrx/effects';
7
+ import * as _thecla_auth0_angular from '@thecla/auth0-angular';
8
+ import { HttpInterceptorFn } from '@angular/common/http';
9
+
10
+ interface Profile {
11
+ [key: string]: any;
12
+ sub?: string;
13
+ name?: string;
14
+ nickname?: string;
15
+ picture?: string;
16
+ email?: string;
17
+ }
18
+
19
+ declare const signIn: _ngrx_store.ActionCreator<"[@thecla/auth0-angular] sign in", (props: {
20
+ returnUrl: string;
21
+ }) => {
22
+ returnUrl: string;
23
+ } & _ngrx_store.Action<"[@thecla/auth0-angular] sign in">>;
24
+ declare const signedIn: _ngrx_store.ActionCreator<"[@thecla/auth0-angular] signed in", (props: {
25
+ user: Profile;
26
+ }) => {
27
+ user: Profile;
28
+ } & _ngrx_store.Action<"[@thecla/auth0-angular] signed in">>;
29
+ declare const signOut: _ngrx_store.ActionCreator<"[@thecla/auth0-angular] sign out", () => _ngrx_store.Action<"[@thecla/auth0-angular] sign out">>;
30
+ declare const signedOut: _ngrx_store.ActionCreator<"[@thecla/auth0-angular] signed out", () => _ngrx_store.Action<"[@thecla/auth0-angular] signed out">>;
31
+
32
+ declare class AuthGuard implements CanActivate {
33
+ private readonly store;
34
+ private readonly authenticated$;
35
+ canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): rxjs.Observable<boolean>;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthGuard, never>;
37
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthGuard>;
38
+ }
39
+
40
+ declare abstract class AuthConfig {
41
+ abstract audience: string;
42
+ abstract clientId: string;
43
+ abstract domain: string;
44
+ abstract scope: string;
45
+ abstract redirectUri?: string;
46
+ abstract logoutUri?: string;
47
+ abstract useRefreshTokens?: boolean;
48
+ abstract sessionCheckExpiryDays?: number;
49
+ }
50
+
51
+ declare class AuthModule {
52
+ static forRoot(config: AuthConfig): ModuleWithProviders<AuthModule>;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthModule, never>;
54
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AuthModule, never, [typeof _ngrx_store.StoreFeatureModule, typeof i2.EffectsFeatureModule], never>;
55
+ static ɵinj: i0.ɵɵInjectorDeclaration<AuthModule>;
56
+ }
57
+
58
+ declare const isAuthenticated: rxjs.UnaryFunction<rxjs.Observable<Record<string, any>>, rxjs.Observable<boolean>>;
59
+ declare const getUser: rxjs.UnaryFunction<rxjs.Observable<Record<string, any>>, rxjs.Observable<_thecla_auth0_angular.Profile | undefined>>;
60
+ declare function getUserSignal(): i0.Signal<_thecla_auth0_angular.Profile | undefined>;
61
+ declare function getIsAuthenticatedSignal(): i0.Signal<boolean | undefined>;
62
+
63
+ declare const jwtInterceptor: HttpInterceptorFn;
64
+
65
+ declare function provideAuth(config: AuthConfig): i0.EnvironmentProviders;
66
+
67
+ export { AuthGuard, AuthModule, getIsAuthenticatedSignal, getUser, getUserSignal, isAuthenticated, jwtInterceptor, provideAuth, signIn, signOut, signedIn, signedOut };
68
+ export type { Profile };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thecla/auth0-angular",
3
- "version": "10.0.0",
3
+ "version": "10.2.0",
4
4
  "author": "Hendrik Wouters",
5
5
  "description": "Angular module using NGRX to authenticate with Auth0",
6
6
  "repository": {
@@ -18,12 +18,12 @@
18
18
  },
19
19
  "homepage": "https://github.com/hwouters/auth0-angular#readme",
20
20
  "peerDependencies": {
21
- "@angular/common": "^18.0.0",
22
- "@angular/core": "^18.0.0",
23
- "@angular/router": "^18.0.0",
24
- "@ngrx/effects": "^18.0.0",
25
- "@ngrx/operators": "^18.0.0",
26
- "@ngrx/store": "^18.0.0",
21
+ "@angular/common": ">=18.0.0",
22
+ "@angular/core": ">=18.0.0",
23
+ "@angular/router": ">=18.0.0",
24
+ "@ngrx/effects": ">=18.0.0",
25
+ "@ngrx/operators": ">=18.0.0",
26
+ "@ngrx/store": ">=18.0.0",
27
27
  "@auth0/auth0-spa-js": "^2.0.0"
28
28
  },
29
29
  "dependencies": {
@@ -37,8 +37,6 @@
37
37
  },
38
38
  ".": {
39
39
  "types": "./index.d.ts",
40
- "esm2022": "./esm2022/thecla-auth0-angular.mjs",
41
- "esm": "./esm2022/thecla-auth0-angular.mjs",
42
40
  "default": "./fesm2022/thecla-auth0-angular.mjs"
43
41
  }
44
42
  },
@@ -1,3 +0,0 @@
1
- export class AuthConfig {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hdXRoMC1hbmd1bGFyL3NyYy9saWIvYXV0aC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixVQUFVO0NBUy9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhDb25maWcge1xuICBwdWJsaWMgYWJzdHJhY3QgYXVkaWVuY2U6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGNsaWVudElkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBkb21haW46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHNjb3BlOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWRpcmVjdFVyaT86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGxvZ291dFVyaT86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHVzZVJlZnJlc2hUb2tlbnM/OiBib29sZWFuO1xuICBwdWJsaWMgYWJzdHJhY3Qgc2Vzc2lvbkNoZWNrRXhwaXJ5RGF5cz86IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- import { createAction, props } from '@ngrx/store';
2
- export const init = createAction('[@thecla/auth0-angular] init');
3
- export const signIn = createAction('[@thecla/auth0-angular] sign in', props());
4
- export const signInCompleted = createAction('[@thecla/auth0-angular] sign in completed', props());
5
- export const signedIn = createAction('[@thecla/auth0-angular] signed in', props());
6
- export const signInFailed = createAction('[@thecla/auth0-angular] sign in failed', props());
7
- export const signOut = createAction('[@thecla/auth0-angular] sign out');
8
- export const signedOut = createAction('[@thecla/auth0-angular] signed out');
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL2F1dGguYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdsRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLEVBQXlCLENBQUMsQ0FBQztBQUV0RyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUN6QywyQ0FBMkMsRUFDM0MsS0FBSyxFQUFpQyxDQUN2QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLEVBQXFCLENBQUMsQ0FBQztBQUV0RyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLHdDQUF3QyxFQUFFLEtBQUssRUFBb0IsQ0FBQyxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUV4RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLG9DQUFvQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4vYXV0aC5yZWR1Y2VyJztcblxuZXhwb3J0IGNvbnN0IGluaXQgPSBjcmVhdGVBY3Rpb24oJ1tAdGhlY2xhL2F1dGgwLWFuZ3VsYXJdIGluaXQnKTtcblxuZXhwb3J0IGNvbnN0IHNpZ25JbiA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYXV0aDAtYW5ndWxhcl0gc2lnbiBpbicsIHByb3BzPHsgcmV0dXJuVXJsOiBzdHJpbmcgfT4oKSk7XG5cbmV4cG9ydCBjb25zdCBzaWduSW5Db21wbGV0ZWQgPSBjcmVhdGVBY3Rpb24oXG4gICdbQHRoZWNsYS9hdXRoMC1hbmd1bGFyXSBzaWduIGluIGNvbXBsZXRlZCcsXG4gIHByb3BzPHsgc3RhdGU6IHsgdGFyZ2V0OiBzdHJpbmcgfSB9PigpLFxuKTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZEluID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9hdXRoMC1hbmd1bGFyXSBzaWduZWQgaW4nLCBwcm9wczx7IHVzZXI6IFByb2ZpbGUgfT4oKSk7XG5cbmV4cG9ydCBjb25zdCBzaWduSW5GYWlsZWQgPSBjcmVhdGVBY3Rpb24oJ1tAdGhlY2xhL2F1dGgwLWFuZ3VsYXJdIHNpZ24gaW4gZmFpbGVkJywgcHJvcHM8eyBlcnJvcjogRXJyb3IgfT4oKSk7XG5cbmV4cG9ydCBjb25zdCBzaWduT3V0ID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9hdXRoMC1hbmd1bGFyXSBzaWduIG91dCcpO1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkT3V0ID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9hdXRoMC1hbmd1bGFyXSBzaWduZWQgb3V0Jyk7XG4iXX0=
@@ -1,56 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { Actions, createEffect, ofType } from '@ngrx/effects';
4
- import { of } from 'rxjs';
5
- import { catchError, map, switchMap, tap } from 'rxjs/operators';
6
- import { init, signedIn, signedOut, signIn, signInCompleted, signInFailed, signOut } from './auth.actions';
7
- import { AuthService } from './auth.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ngrx/effects";
10
- import * as i2 from "./auth.service";
11
- import * as i3 from "@angular/router";
12
- export class AuthEffects {
13
- constructor(actions$, auth, router) {
14
- this.actions$ = actions$;
15
- this.auth = auth;
16
- this.router = router;
17
- this.signIn$ = createEffect(() => this.actions$.pipe(ofType(signIn), switchMap(action => this.auth.loginWithRedirect({ target: action.returnUrl }))), { dispatch: false });
18
- this.signInCompleted$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(() => this.auth.getUser().pipe(map(user => signedIn({ user })), catchError(error => of(signInFailed({ error })))))));
19
- this.redirect$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true }))), { dispatch: false });
20
- this.signOut$ = createEffect(() => this.actions$.pipe(ofType(signOut), tap(() => {
21
- try {
22
- this.auth.logout();
23
- }
24
- catch { }
25
- }), map(() => signedOut())));
26
- this.init$ = createEffect(() => this.actions$.pipe(ofType(init), switchMap(() => {
27
- const params = window.location.search;
28
- if (params.includes('code=') && params.includes('state=')) {
29
- return this.completeSignIn();
30
- }
31
- else {
32
- return this.auth.isAuthenticated().pipe(switchMap(auth => this.getAuthResult(auth)), catchError(error => of(signInFailed({ error }))));
33
- }
34
- })));
35
- }
36
- ngrxOnInitEffects() {
37
- return init();
38
- }
39
- getAuthResult(auth) {
40
- if (auth) {
41
- return this.auth.getUser().pipe(map(user => signedIn({ user })));
42
- }
43
- else {
44
- return of(signedOut());
45
- }
46
- }
47
- completeSignIn() {
48
- return this.auth.handleRedirectCallback().pipe(map(state => signInCompleted({ state })), catchError(error => of(signInFailed({ error }))));
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: i2.AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
51
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthEffects }); }
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthEffects, decorators: [{
54
- type: Injectable
55
- }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.AuthService }, { type: i3.Router }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRzdDLE1BQU0sT0FBTyxXQUFXO0lBNkR0QixZQUNtQixRQUFpQixFQUNqQixJQUFpQixFQUNqQixNQUFjO1FBRmQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUEvRGpCLFlBQU8sR0FBRyxZQUFZLENBQ3BDLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ2QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMs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QyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFDeEMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs4R0FwRlUsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlLCBPbkluaXRFZmZlY3RzIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGluaXQsIHNpZ25lZEluLCBzaWduZWRPdXQsIHNpZ25Jbiwgc2lnbkluQ29tcGxldGVkLCBzaWduSW5GYWlsZWQsIHNpZ25PdXQgfSBmcm9tICcuL2F1dGguYWN0aW9ucyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhFZmZlY3RzIGltcGxlbWVudHMgT25Jbml0RWZmZWN0cyB7XG4gIHB1YmxpYyByZWFkb25seSBzaWduSW4kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShzaWduSW4pLFxuICAgICAgICBzd2l0Y2hNYXAoYWN0aW9uID0+IHRoaXMuYXV0aC5sb2dpbldpdGhSZWRpcmVjdCh7IHRhcmdldDogYWN0aW9uLnJldHVyblVybCB9KSksXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH0sXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpZ25JbkNvbXBsZXRlZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2lnbkluQ29tcGxldGVkKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmF1dGguZ2V0VXNlcigpLnBpcGUoXG4gICAgICAgICAgbWFwKHVzZXIgPT4gc2lnbmVkSW4oeyB1c2VyIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKHNpZ25JbkZhaWxlZCh7IGVycm9yIH0pKSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlZGlyZWN0JCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoc2lnbkluQ29tcGxldGVkKSxcbiAgICAgICAgc3dpdGNoTWFwKGFjdGlvbiA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGFjdGlvbi5zdGF0ZS50YXJnZXQsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KSksXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH0sXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpZ25PdXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKHNpZ25PdXQpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLmF1dGgubG9nb3V0KCk7XG4gICAgICAgIH0gY2F0Y2gge31cbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHNpZ25lZE91dCgpKSxcbiAgICApLFxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbml0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShpbml0KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG5cbiAgICAgICAgaWYgKHBhcmFtcy5pbmNsdWRlcygnY29kZT0nKSAmJiBwYXJhbXMuaW5jbHVkZXMoJ3N0YXRlPScpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGVTaWduSW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5hdXRoLmlzQXV0aGVudGljYXRlZCgpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoYXV0aCA9PiB0aGlzLmdldEF1dGhSZXN1bHQoYXV0aCkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihzaWduSW5GYWlsZWQoeyBlcnJvciB9KSkpLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICApIHt9XG5cbiAgcHVibGljIG5ncnhPbkluaXRFZmZlY3RzKCkge1xuICAgIHJldHVybiBpbml0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEF1dGhSZXN1bHQoYXV0aDogYm9vbGVhbikge1xuICAgIGlmIChhdXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdXRoLmdldFVzZXIoKS5waXBlKG1hcCh1c2VyID0+IHNpZ25lZEluKHsgdXNlciB9KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2Yoc2lnbmVkT3V0KCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVTaWduSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aC5oYW5kbGVSZWRpcmVjdENhbGxiYWNrKCkucGlwZShcbiAgICAgIG1hcChzdGF0ZSA9PiBzaWduSW5Db21wbGV0ZWQoeyBzdGF0ZSB9KSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKHNpZ25JbkZhaWxlZCh7IGVycm9yIH0pKSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Store } from '@ngrx/store';
3
- import { first, tap } from 'rxjs/operators';
4
- import { signIn } from './auth.actions';
5
- import { isAuthenticated } from './auth.selectors';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngrx/store";
8
- export class AuthGuard {
9
- constructor(store) {
10
- this.store = store;
11
- this.authenticated$ = this.store.pipe(isAuthenticated);
12
- }
13
- canActivate(next, state) {
14
- return this.authenticated$.pipe(tap(auth => {
15
- if (!auth) {
16
- this.store.dispatch(signIn({ returnUrl: state.url }));
17
- }
18
- }), first());
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthGuard, decorators: [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root',
27
- }]
28
- }], ctorParameters: () => [{ type: i1.Store }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2F1dGgwLWFuZ3VsYXIvc3JjL2xpYi9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUtuRCxNQUFNLE9BQU8sU0FBUztJQUdwQixZQUFvQyxLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQUYvQixtQkFBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhCLENBQUM7SUFFN0MsV0FBVyxDQUFDLElBQTRCLEVBQUUsS0FBMEI7UUFDekUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0IsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixLQUFLLEVBQUUsQ0FDUixDQUFDO0lBQ0osQ0FBQzs4R0FkVSxTQUFTO2tIQUFULFNBQVMsY0FGUixNQUFNOzsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgZmlyc3QsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHNpZ25JbiB9IGZyb20gJy4vYXV0aC5hY3Rpb25zJztcbmltcG9ydCB7IGlzQXV0aGVudGljYXRlZCB9IGZyb20gJy4vYXV0aC5zZWxlY3RvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWQkID0gdGhpcy5zdG9yZS5waXBlKGlzQXV0aGVudGljYXRlZCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHB1YmxpYyBjYW5BY3RpdmF0ZShuZXh0OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmF1dGhlbnRpY2F0ZWQkLnBpcGUoXG4gICAgICB0YXAoYXV0aCA9PiB7XG4gICAgICAgIGlmICghYXV0aCkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2lnbkluKHsgcmV0dXJuVXJsOiBzdGF0ZS51cmwgfSkpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGZpcnN0KCksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,41 +0,0 @@
1
- import { HTTP_INTERCEPTORS } from '@angular/common/http';
2
- import { NgModule } from '@angular/core';
3
- import { EffectsModule } from '@ngrx/effects';
4
- import { StoreModule } from '@ngrx/store';
5
- import { AuthConfig } from './auth-config';
6
- import { AuthEffects } from './auth.effects';
7
- import { authFeature } from './auth.reducer';
8
- import { JwtInterceptor } from './jwt.interceptor';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@ngrx/store";
11
- import * as i2 from "@ngrx/effects";
12
- export class AuthModule {
13
- static forRoot(config) {
14
- return {
15
- ngModule: AuthModule,
16
- providers: [
17
- {
18
- provide: AuthConfig,
19
- useValue: config,
20
- },
21
- {
22
- provide: HTTP_INTERCEPTORS,
23
- useClass: JwtInterceptor,
24
- multi: true,
25
- },
26
- ],
27
- };
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
30
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] }); }
31
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, imports: [StoreModule.forFeature(authFeature), EffectsModule.forFeature([AuthEffects])] }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthModule, decorators: [{
34
- type: NgModule,
35
- args: [{
36
- declarations: [],
37
- imports: [StoreModule.forFeature(authFeature), EffectsModule.forFeature([AuthEffects])],
38
- exports: [],
39
- }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hdXRoMC1hbmd1bGFyL3NyYy9saWIvYXV0aC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFPbkQsTUFBTSxPQUFPLFVBQVU7SUFDZCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtCO1FBQ3RDLE9BQU87WUFDTCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQWhCVSxVQUFVOytHQUFWLFVBQVU7K0dBQVYsVUFBVSxZQUhYLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzsyRkFHM0UsVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDdkYsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICcuL2F1dGgtY29uZmlnJztcbmltcG9ydCB7IEF1dGhFZmZlY3RzIH0gZnJvbSAnLi9hdXRoLmVmZmVjdHMnO1xuaW1wb3J0IHsgYXV0aEZlYXR1cmUgfSBmcm9tICcuL2F1dGgucmVkdWNlcic7XG5pbXBvcnQgeyBKd3RJbnRlcmNlcHRvciB9IGZyb20gJy4vand0LmludGVyY2VwdG9yJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1N0b3JlTW9kdWxlLmZvckZlYXR1cmUoYXV0aEZlYXR1cmUpLCBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0F1dGhFZmZlY3RzXSldLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEF1dGhDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEF1dGhNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEF1dGhNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEF1dGhDb25maWcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgICAgIHVzZUNsYXNzOiBKd3RJbnRlcmNlcHRvcixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- import { createFeature, createReducer, on } from '@ngrx/store';
2
- import { signInFailed, signedIn, signedOut } from './auth.actions';
3
- export const noAuthentication = {
4
- authenticating: false,
5
- authenticated: false,
6
- user: undefined,
7
- };
8
- export const startAuthentication = {
9
- authenticating: true,
10
- authenticated: false,
11
- user: undefined,
12
- };
13
- export const authFeature = createFeature({
14
- name: 'auth',
15
- reducer: createReducer(startAuthentication, on(signedIn, (state, { user }) => ({
16
- ...state,
17
- authenticating: false,
18
- authenticated: true,
19
- user,
20
- })), on(signedOut, _ => noAuthentication), on(signInFailed, _ => noAuthentication)),
21
- });
22
- export const { selectAuthState, reducer } = authFeature;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL2F1dGgucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFpQm5FLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFVO0lBQ3JDLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLElBQUksRUFBRSxTQUFTO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBVTtJQUN4QyxjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsS0FBSztJQUNwQixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUN2QyxJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxhQUFhLENBQ3BCLG1CQUFtQixFQUNuQixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsR0FBRyxLQUFLO1FBQ1IsY0FBYyxFQUFFLEtBQUs7UUFDckIsYUFBYSxFQUFFLElBQUk7UUFDbkIsSUFBSTtLQUNMLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNwQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FDeEM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlLCBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHNpZ25JbkZhaWxlZCwgc2lnbmVkSW4sIHNpZ25lZE91dCB9IGZyb20gJy4vYXV0aC5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuICBzdWI/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG5pY2tuYW1lPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gIGF1dGhlbnRpY2F0aW5nOiBib29sZWFuO1xuICBhdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICB1c2VyOiBQcm9maWxlIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY29uc3Qgbm9BdXRoZW50aWNhdGlvbjogU3RhdGUgPSB7XG4gIGF1dGhlbnRpY2F0aW5nOiBmYWxzZSxcbiAgYXV0aGVudGljYXRlZDogZmFsc2UsXG4gIHVzZXI6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBjb25zdCBzdGFydEF1dGhlbnRpY2F0aW9uOiBTdGF0ZSA9IHtcbiAgYXV0aGVudGljYXRpbmc6IHRydWUsXG4gIGF1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICB1c2VyOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgY29uc3QgYXV0aEZlYXR1cmUgPSBjcmVhdGVGZWF0dXJlKHtcbiAgbmFtZTogJ2F1dGgnLFxuICByZWR1Y2VyOiBjcmVhdGVSZWR1Y2VyKFxuICAgIHN0YXJ0QXV0aGVudGljYXRpb24sXG4gICAgb24oc2lnbmVkSW4sIChzdGF0ZSwgeyB1c2VyIH0pID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGF1dGhlbnRpY2F0aW5nOiBmYWxzZSxcbiAgICAgIGF1dGhlbnRpY2F0ZWQ6IHRydWUsXG4gICAgICB1c2VyLFxuICAgIH0pKSxcbiAgICBvbihzaWduZWRPdXQsIF8gPT4gbm9BdXRoZW50aWNhdGlvbiksXG4gICAgb24oc2lnbkluRmFpbGVkLCBfID0+IG5vQXV0aGVudGljYXRpb24pLFxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCB7IHNlbGVjdEF1dGhTdGF0ZSwgcmVkdWNlciB9ID0gYXV0aEZlYXR1cmU7XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { inject } from '@angular/core';
2
- import { toSignal } from '@angular/core/rxjs-interop';
3
- import { Store, select } from '@ngrx/store';
4
- import { pipe } from 'rxjs';
5
- import { filter, map } from 'rxjs/operators';
6
- import { selectAuthState } from './auth.reducer';
7
- export const isAuthenticated = pipe(select(selectAuthState), filter(state => !state.authenticating), map(state => state.authenticated));
8
- export const getUser = pipe(select(selectAuthState), filter(state => !state.authenticating), map(state => state.user));
9
- export function getUserSignal() {
10
- return toSignal(inject(Store).pipe(getUser));
11
- }
12
- export function getIsAuthenticatedSignal() {
13
- return toSignal(inject(Store).pipe(isAuthenticated));
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hdXRoMC1hbmd1bGFyL3NyYy9saWIvYXV0aC5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUNqQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUN6QixNQUFNLENBQUMsZUFBZSxDQUFDLEVBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2VsZWN0QXV0aFN0YXRlIH0gZnJvbSAnLi9hdXRoLnJlZHVjZXInO1xuXG5leHBvcnQgY29uc3QgaXNBdXRoZW50aWNhdGVkID0gcGlwZShcbiAgc2VsZWN0KHNlbGVjdEF1dGhTdGF0ZSksXG4gIGZpbHRlcihzdGF0ZSA9PiAhc3RhdGUuYXV0aGVudGljYXRpbmcpLFxuICBtYXAoc3RhdGUgPT4gc3RhdGUuYXV0aGVudGljYXRlZCksXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlciA9IHBpcGUoXG4gIHNlbGVjdChzZWxlY3RBdXRoU3RhdGUpLFxuICBmaWx0ZXIoc3RhdGUgPT4gIXN0YXRlLmF1dGhlbnRpY2F0aW5nKSxcbiAgbWFwKHN0YXRlID0+IHN0YXRlLnVzZXIpLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVzZXJTaWduYWwoKSB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3QoU3RvcmUpLnBpcGUoZ2V0VXNlcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SXNBdXRoZW50aWNhdGVkU2lnbmFsKCkge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0KFN0b3JlKS5waXBlKGlzQXV0aGVudGljYXRlZCkpO1xufVxuIl19
@@ -1,56 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Auth0Client } from '@auth0/auth0-spa-js';
3
- import { EMPTY, from } from 'rxjs';
4
- import { filter, map, switchMap } from 'rxjs/operators';
5
- import { AuthConfig } from './auth-config';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./auth-config";
8
- export class AuthService {
9
- constructor(config) {
10
- this.config = config;
11
- this.auth0 = new Auth0Client({
12
- clientId: config.clientId,
13
- authorizationParams: {
14
- audience: config.audience,
15
- redirect_uri: config.redirectUri ?? location.origin,
16
- scope: config.scope,
17
- },
18
- domain: config.domain,
19
- useRefreshTokens: config.useRefreshTokens,
20
- sessionCheckExpiryDays: config.sessionCheckExpiryDays,
21
- });
22
- }
23
- isAuthenticated() {
24
- return from(this.checkSession());
25
- }
26
- loginWithRedirect(appState) {
27
- return from(this.auth0.loginWithRedirect({ appState })).pipe(switchMap(() => EMPTY));
28
- }
29
- handleRedirectCallback() {
30
- return from(this.auth0.handleRedirectCallback()).pipe(map(result => result.appState));
31
- }
32
- getUser() {
33
- return from(this.auth0.getUser()).pipe(filter((u) => u !== undefined));
34
- }
35
- getAccessToken() {
36
- return from(this.auth0.getTokenSilently());
37
- }
38
- logout() {
39
- this.auth0.logout({
40
- logoutParams: { returnTo: this.config.logoutUri ?? location.origin },
41
- });
42
- }
43
- async checkSession() {
44
- await this.auth0.checkSession();
45
- return await this.auth0.isAuthenticated();
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthService, deps: [{ token: i1.AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthService, providedIn: 'root' }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AuthService, decorators: [{
51
- type: Injectable,
52
- args: [{
53
- providedIn: 'root',
54
- }]
55
- }], ctorParameters: () => [{ type: i1.AuthConfig }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFBb0MsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixtQkFBbUIsRUFBRTtnQkFDbkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixZQUFZLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsTUFBTTtnQkFDbkQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCO1lBQ0QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDekMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLHNCQUFzQjtTQUN0RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsUUFBNEI7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQThCLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWEsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDaEIsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7U0FDckUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzhHQS9DVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGgwQ2xpZW50LCBVc2VyIH0gZnJvbSAnQGF1dGgwL2F1dGgwLXNwYS1qcyc7XG5pbXBvcnQgeyBFTVBUWSwgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICcuL2F1dGgtY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoMDogQXV0aDBDbGllbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBBdXRoQ29uZmlnKSB7XG4gICAgdGhpcy5hdXRoMCA9IG5ldyBBdXRoMENsaWVudCh7XG4gICAgICBjbGllbnRJZDogY29uZmlnLmNsaWVudElkLFxuICAgICAgYXV0aG9yaXphdGlvblBhcmFtczoge1xuICAgICAgICBhdWRpZW5jZTogY29uZmlnLmF1ZGllbmNlLFxuICAgICAgICByZWRpcmVjdF91cmk6IGNvbmZpZy5yZWRpcmVjdFVyaSA/PyBsb2NhdGlvbi5vcmlnaW4sXG4gICAgICAgIHNjb3BlOiBjb25maWcuc2NvcGUsXG4gICAgICB9LFxuICAgICAgZG9tYWluOiBjb25maWcuZG9tYWluLFxuICAgICAgdXNlUmVmcmVzaFRva2VuczogY29uZmlnLnVzZVJlZnJlc2hUb2tlbnMsXG4gICAgICBzZXNzaW9uQ2hlY2tFeHBpcnlEYXlzOiBjb25maWcuc2Vzc2lvbkNoZWNrRXhwaXJ5RGF5cyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQoKSB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja1Nlc3Npb24oKSk7XG4gIH1cblxuICBwdWJsaWMgbG9naW5XaXRoUmVkaXJlY3QoYXBwU3RhdGU6IHsgdGFyZ2V0OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBmcm9tKHRoaXMuYXV0aDAubG9naW5XaXRoUmVkaXJlY3QoeyBhcHBTdGF0ZSB9KSkucGlwZShzd2l0Y2hNYXAoKCkgPT4gRU1QVFkpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSZWRpcmVjdENhbGxiYWNrKCkge1xuICAgIHJldHVybiBmcm9tKHRoaXMuYXV0aDAuaGFuZGxlUmVkaXJlY3RDYWxsYmFjaygpKS5waXBlKG1hcChyZXN1bHQgPT4gcmVzdWx0LmFwcFN0YXRlIGFzIHsgdGFyZ2V0OiBzdHJpbmcgfSkpO1xuICB9XG5cbiAgcHVibGljIGdldFVzZXIoKSB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5hdXRoMC5nZXRVc2VyKCkpLnBpcGUoZmlsdGVyKCh1KTogdSBpcyBVc2VyID0+IHUgIT09IHVuZGVmaW5lZCkpO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuYXV0aDAuZ2V0VG9rZW5TaWxlbnRseSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoKSB7XG4gICAgdGhpcy5hdXRoMC5sb2dvdXQoe1xuICAgICAgbG9nb3V0UGFyYW1zOiB7IHJldHVyblRvOiB0aGlzLmNvbmZpZy5sb2dvdXRVcmkgPz8gbG9jYXRpb24ub3JpZ2luIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrU2Vzc2lvbigpIHtcbiAgICBhd2FpdCB0aGlzLmF1dGgwLmNoZWNrU2Vzc2lvbigpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXV0aDAuaXNBdXRoZW50aWNhdGVkKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { map, mergeMap } from 'rxjs/operators';
3
- import { AuthService } from './auth.service';
4
- import * as i0 from "@angular/core";
5
- export class JwtInterceptor {
6
- intercept(request, next) {
7
- return jwtInterceptor(request, next.handle);
8
- }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: JwtInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: JwtInterceptor }); }
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: JwtInterceptor, decorators: [{
13
- type: Injectable
14
- }] });
15
- export const jwtInterceptor = (request, next) => {
16
- if (isSameDomain(request)) {
17
- return inject(AuthService)
18
- .getAccessToken()
19
- .pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })), mergeMap(authorizedRequest => next(authorizedRequest)));
20
- }
21
- else {
22
- return next(request);
23
- }
24
- };
25
- function isSameDomain(request) {
26
- const isAbsolute = /^https?:\/\//i.test(request.url);
27
- return !isAbsolute;
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLGNBQWM7SUFDbEIsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDM0QsT0FBTyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQUhVLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7QUFPWCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO0lBQ2pFLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO2FBQ3ZCLGNBQWMsRUFBRTthQUNoQixJQUFJLENBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ2pGLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FDdkQsQ0FBQztJQUNOLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLFNBQVMsWUFBWSxDQUFDLE9BQXlCO0lBQzdDLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJELE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBJbnRlcmNlcHRvckZuLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSnd0SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBwdWJsaWMgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgcmV0dXJuIGp3dEludGVyY2VwdG9yKHJlcXVlc3QsIG5leHQuaGFuZGxlKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgand0SW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcXVlc3QsIG5leHQpID0+IHtcbiAgaWYgKGlzU2FtZURvbWFpbihyZXF1ZXN0KSkge1xuICAgIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpXG4gICAgICAuZ2V0QWNjZXNzVG9rZW4oKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh0b2tlbiA9PiByZXF1ZXN0LmNsb25lKHsgc2V0SGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9IH0pKSxcbiAgICAgICAgbWVyZ2VNYXAoYXV0aG9yaXplZFJlcXVlc3QgPT4gbmV4dChhdXRob3JpemVkUmVxdWVzdCkpLFxuICAgICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV4dChyZXF1ZXN0KTtcbiAgfVxufTtcblxuZnVuY3Rpb24gaXNTYW1lRG9tYWluKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgY29uc3QgaXNBYnNvbHV0ZSA9IC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QocmVxdWVzdC51cmwpO1xuXG4gIHJldHVybiAhaXNBYnNvbHV0ZTtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { makeEnvironmentProviders } from '@angular/core';
2
- import { provideEffects } from '@ngrx/effects';
3
- import { provideState } from '@ngrx/store';
4
- import { AuthConfig } from './auth-config';
5
- import { AuthEffects } from './auth.effects';
6
- import { authFeature } from './auth.reducer';
7
- export function provideAuth(config) {
8
- const effects = provideEffects(AuthEffects);
9
- const state = provideState(authFeature);
10
- return makeEnvironmentProviders([
11
- effects,
12
- state,
13
- {
14
- provide: AuthConfig,
15
- useValue: config,
16
- },
17
- ]);
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXV0aDAtYW5ndWxhci9zcmMvbGliL3Byb3ZpZGUtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQWtCO0lBQzVDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFeEMsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixPQUFPO1FBQ1AsS0FBSztRQUNMO1lBQ0UsT0FBTyxFQUFFLFVBQVU7WUFDbkIsUUFBUSxFQUFFLE1BQU07U0FDakI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwcm92aWRlRWZmZWN0cyB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgcHJvdmlkZVN0YXRlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQXV0aENvbmZpZyB9IGZyb20gJy4vYXV0aC1jb25maWcnO1xuaW1wb3J0IHsgQXV0aEVmZmVjdHMgfSBmcm9tICcuL2F1dGguZWZmZWN0cyc7XG5pbXBvcnQgeyBhdXRoRmVhdHVyZSB9IGZyb20gJy4vYXV0aC5yZWR1Y2VyJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBdXRoKGNvbmZpZzogQXV0aENvbmZpZykge1xuICBjb25zdCBlZmZlY3RzID0gcHJvdmlkZUVmZmVjdHMoQXV0aEVmZmVjdHMpO1xuICBjb25zdCBzdGF0ZSA9IHByb3ZpZGVTdGF0ZShhdXRoRmVhdHVyZSk7XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgZWZmZWN0cyxcbiAgICBzdGF0ZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBdXRoQ29uZmlnLFxuICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICB9LFxuICBdKTtcbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export { signIn, signOut, signedIn, signedOut } from './lib/auth.actions';
2
- export { AuthGuard } from './lib/auth.guard';
3
- export { AuthModule } from './lib/auth.module';
4
- export { getIsAuthenticatedSignal, getUser, getUserSignal, isAuthenticated } from './lib/auth.selectors';
5
- export { jwtInterceptor } from './lib/jwt.interceptor';
6
- export { provideAuth } from './lib/provide-auth';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2F1dGgwLWFuZ3VsYXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHNpZ25Jbiwgc2lnbk91dCwgc2lnbmVkSW4sIHNpZ25lZE91dCB9IGZyb20gJy4vbGliL2F1dGguYWN0aW9ucyc7XG5leHBvcnQgeyBBdXRoR3VhcmQgfSBmcm9tICcuL2xpYi9hdXRoLmd1YXJkJztcbmV4cG9ydCB7IEF1dGhNb2R1bGUgfSBmcm9tICcuL2xpYi9hdXRoLm1vZHVsZSc7XG5leHBvcnQgeyBQcm9maWxlIH0gZnJvbSAnLi9saWIvYXV0aC5yZWR1Y2VyJztcbmV4cG9ydCB7IGdldElzQXV0aGVudGljYXRlZFNpZ25hbCwgZ2V0VXNlciwgZ2V0VXNlclNpZ25hbCwgaXNBdXRoZW50aWNhdGVkIH0gZnJvbSAnLi9saWIvYXV0aC5zZWxlY3RvcnMnO1xuZXhwb3J0IHsgand0SW50ZXJjZXB0b3IgfSBmcm9tICcuL2xpYi9qd3QuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHsgcHJvdmlkZUF1dGggfSBmcm9tICcuL2xpYi9wcm92aWRlLWF1dGgnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlY2xhLWF1dGgwLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hdXRoMC1hbmd1bGFyL3NyYy90aGVjbGEtYXV0aDAtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,10 +0,0 @@
1
- export declare abstract class AuthConfig {
2
- abstract audience: string;
3
- abstract clientId: string;
4
- abstract domain: string;
5
- abstract scope: string;
6
- abstract redirectUri?: string;
7
- abstract logoutUri?: string;
8
- abstract useRefreshTokens?: boolean;
9
- abstract sessionCheckExpiryDays?: number;
10
- }
@@ -1,28 +0,0 @@
1
- import { Profile } from './auth.reducer';
2
- export declare const init: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] init", () => import("@ngrx/store").Action<"[@thecla/auth0-angular] init">>;
3
- export declare const signIn: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] sign in", (props: {
4
- returnUrl: string;
5
- }) => {
6
- returnUrl: string;
7
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] sign in">>;
8
- export declare const signInCompleted: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] sign in completed", (props: {
9
- state: {
10
- target: string;
11
- };
12
- }) => {
13
- state: {
14
- target: string;
15
- };
16
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] sign in completed">>;
17
- export declare const signedIn: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] signed in", (props: {
18
- user: Profile;
19
- }) => {
20
- user: Profile;
21
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] signed in">>;
22
- export declare const signInFailed: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] sign in failed", (props: {
23
- error: Error;
24
- }) => {
25
- error: Error;
26
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] sign in failed">>;
27
- export declare const signOut: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] sign out", () => import("@ngrx/store").Action<"[@thecla/auth0-angular] sign out">>;
28
- export declare const signedOut: import("@ngrx/store").ActionCreator<"[@thecla/auth0-angular] signed out", () => import("@ngrx/store").Action<"[@thecla/auth0-angular] signed out">>;
@@ -1,32 +0,0 @@
1
- import { Router } from '@angular/router';
2
- import { Actions, OnInitEffects } from '@ngrx/effects';
3
- import { AuthService } from './auth.service';
4
- import * as i0 from "@angular/core";
5
- export declare class AuthEffects implements OnInitEffects {
6
- private readonly actions$;
7
- private readonly auth;
8
- private readonly router;
9
- readonly signIn$: import("rxjs").Observable<never> & import("@ngrx/effects").CreateEffectMetadata;
10
- readonly signInCompleted$: import("rxjs").Observable<({
11
- user: import("@thecla/auth0-angular").Profile;
12
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] signed in">) | ({
13
- error: Error;
14
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] sign in failed">)> & import("@ngrx/effects").CreateEffectMetadata;
15
- readonly redirect$: import("rxjs").Observable<boolean> & import("@ngrx/effects").CreateEffectMetadata;
16
- readonly signOut$: import("rxjs").Observable<import("@ngrx/store").Action<"[@thecla/auth0-angular] signed out">> & import("@ngrx/effects").CreateEffectMetadata;
17
- readonly init$: import("rxjs").Observable<({
18
- user: import("@thecla/auth0-angular").Profile;
19
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] signed in">) | import("@ngrx/store").Action<"[@thecla/auth0-angular] signed out"> | ({
20
- error: Error;
21
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] sign in failed">) | ({
22
- state: {
23
- target: string;
24
- };
25
- } & import("@ngrx/store").Action<"[@thecla/auth0-angular] sign in completed">)> & import("@ngrx/effects").CreateEffectMetadata;
26
- constructor(actions$: Actions, auth: AuthService, router: Router);
27
- ngrxOnInitEffects(): import("@ngrx/store").Action<"[@thecla/auth0-angular] init">;
28
- private getAuthResult;
29
- private completeSignIn;
30
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthEffects, never>;
31
- static ɵprov: i0.ɵɵInjectableDeclaration<AuthEffects>;
32
- }
@@ -1,11 +0,0 @@
1
- import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';
2
- import { Store } from '@ngrx/store';
3
- import * as i0 from "@angular/core";
4
- export declare class AuthGuard implements CanActivate {
5
- private readonly store;
6
- private readonly authenticated$;
7
- constructor(store: Store);
8
- canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): import("rxjs").Observable<boolean>;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthGuard, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<AuthGuard>;
11
- }
@@ -1,11 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { AuthConfig } from './auth-config';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngrx/store";
5
- import * as i2 from "@ngrx/effects";
6
- export declare class AuthModule {
7
- static forRoot(config: AuthConfig): ModuleWithProviders<AuthModule>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<AuthModule, never, [typeof i1.StoreFeatureModule, typeof i2.EffectsFeatureModule], never>;
10
- static ɵinj: i0.ɵɵInjectorDeclaration<AuthModule>;
11
- }
@@ -1,24 +0,0 @@
1
- export interface Profile {
2
- [key: string]: any;
3
- sub?: string;
4
- name?: string;
5
- nickname?: string;
6
- picture?: string;
7
- email?: string;
8
- }
9
- export interface State {
10
- authenticating: boolean;
11
- authenticated: boolean;
12
- user: Profile | undefined;
13
- }
14
- export declare const noAuthentication: State;
15
- export declare const startAuthentication: State;
16
- export declare const authFeature: {
17
- name: "auth";
18
- reducer: import("@ngrx/store").ActionReducer<State, import("@ngrx/store").Action<string>>;
19
- selectAuthState: import("@ngrx/store").MemoizedSelector<Record<string, any>, State, (featureState: State) => State>;
20
- selectUser: import("@ngrx/store").MemoizedSelector<Record<string, any>, Profile | undefined, (featureState: State) => Profile | undefined>;
21
- selectAuthenticating: import("@ngrx/store").MemoizedSelector<Record<string, any>, boolean, (featureState: State) => boolean>;
22
- selectAuthenticated: import("@ngrx/store").MemoizedSelector<Record<string, any>, boolean, (featureState: State) => boolean>;
23
- };
24
- export declare const selectAuthState: import("@ngrx/store").MemoizedSelector<Record<string, any>, State, (featureState: State) => State>, reducer: import("@ngrx/store").ActionReducer<State, import("@ngrx/store").Action<string>>;
@@ -1,4 +0,0 @@
1
- export declare const isAuthenticated: import("rxjs").UnaryFunction<import("rxjs").Observable<Record<string, any>>, import("rxjs").Observable<boolean>>;
2
- export declare const getUser: import("rxjs").UnaryFunction<import("rxjs").Observable<Record<string, any>>, import("rxjs").Observable<import("./auth.reducer").Profile | undefined>>;
3
- export declare function getUserSignal(): import("@angular/core").Signal<import("./auth.reducer").Profile | undefined>;
4
- export declare function getIsAuthenticatedSignal(): import("@angular/core").Signal<boolean | undefined>;
@@ -1,22 +0,0 @@
1
- import { User } from '@auth0/auth0-spa-js';
2
- import { Observable } from 'rxjs';
3
- import { AuthConfig } from './auth-config';
4
- import * as i0 from "@angular/core";
5
- export declare class AuthService {
6
- private readonly config;
7
- private readonly auth0;
8
- constructor(config: AuthConfig);
9
- isAuthenticated(): Observable<boolean>;
10
- loginWithRedirect(appState: {
11
- target: string;
12
- }): Observable<never>;
13
- handleRedirectCallback(): Observable<{
14
- target: string;
15
- }>;
16
- getUser(): Observable<User>;
17
- getAccessToken(): Observable<unknown>;
18
- logout(): void;
19
- private checkSession;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
21
- static ɵprov: i0.ɵɵInjectableDeclaration<AuthService>;
22
- }
@@ -1,8 +0,0 @@
1
- import { HttpHandler, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';
2
- import * as i0 from "@angular/core";
3
- export declare class JwtInterceptor implements HttpInterceptor {
4
- intercept(request: HttpRequest<any>, next: HttpHandler): import("rxjs").Observable<import("@angular/common/http").HttpEvent<unknown>>;
5
- static ɵfac: i0.ɵɵFactoryDeclaration<JwtInterceptor, never>;
6
- static ɵprov: i0.ɵɵInjectableDeclaration<JwtInterceptor>;
7
- }
8
- export declare const jwtInterceptor: HttpInterceptorFn;
@@ -1,2 +0,0 @@
1
- import { AuthConfig } from './auth-config';
2
- export declare function provideAuth(config: AuthConfig): import("@angular/core").EnvironmentProviders;
package/public-api.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export { signIn, signOut, signedIn, signedOut } from './lib/auth.actions';
2
- export { AuthGuard } from './lib/auth.guard';
3
- export { AuthModule } from './lib/auth.module';
4
- export { Profile } from './lib/auth.reducer';
5
- export { getIsAuthenticatedSignal, getUser, getUserSignal, isAuthenticated } from './lib/auth.selectors';
6
- export { jwtInterceptor } from './lib/jwt.interceptor';
7
- export { provideAuth } from './lib/provide-auth';