@thecla/b2c-angular 5.0.1 → 6.0.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.
@@ -1,4 +1,5 @@
1
1
  import { createAction, props } from '@ngrx/store';
2
+ export const init = createAction('[@thecla/b2c-angular] init');
2
3
  export const signIn = createAction('[@thecla/b2c-angular] sign-in', props());
3
4
  export const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');
4
5
  export const signInCompleted = createAction('[@thecla/b2c-angular] sign in completed', props());
@@ -7,4 +8,4 @@ export const signInFailed = createAction('[@thecla/b2c-angular] sign in failed',
7
8
  export const signOut = createAction('[@thecla/b2c-angular] sign out');
8
9
  export const signedOut = createAction('[@thecla/b2c-angular] signed out');
9
10
  export const resetPassword = createAction('[@thecla/b2c-angular] reset password', props());
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYjJjLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb25zL2F1dGguYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdsRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLCtCQUErQixFQUFFLEtBQUssRUFBeUIsQ0FBQyxDQUFDO0FBRXBHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBRXpGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQ3pDLHlDQUF5QyxFQUN6QyxLQUFLLEVBQXdFLENBQzlFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssRUFBcUIsQ0FBQyxDQUFDO0FBRXBHLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxFQUFvQixDQUFDLENBQUM7QUFFNUcsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLHNDQUFzQyxFQUFFLEtBQUssRUFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFByb2ZpbGUgfSBmcm9tICcuLi9zdGF0ZS9hdXRoLnN0YXRlJztcblxuZXhwb3J0IGNvbnN0IHNpZ25JbiA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHNpZ24taW4nLCBwcm9wczx7IHJldHVyblVybDogc3RyaW5nIH0+KCkpO1xuXG5leHBvcnQgY29uc3Qgc2lnbkluUmVkaXJlY3RlZCA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHNpZ24gaW4gcmVkaXJlY3RlZCcpO1xuXG5leHBvcnQgY29uc3Qgc2lnbkluQ29tcGxldGVkID0gY3JlYXRlQWN0aW9uKFxuICAnW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHNpZ24gaW4gY29tcGxldGVkJyxcbiAgcHJvcHM8eyBzdGF0ZTogeyB0YXJnZXQ6IHN0cmluZzsgcGFzc3dvcmRSZXNldDogYm9vbGVhbiB9OyB1c2VyOiBQcm9maWxlIH0+KClcbik7XG5cbmV4cG9ydCBjb25zdCBzaWduZWRJbiA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHNpZ25lZCBpbicsIHByb3BzPHsgdXNlcjogUHJvZmlsZSB9PigpKTtcblxuZXhwb3J0IGNvbnN0IHNpZ25JbkZhaWxlZCA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHNpZ24gaW4gZmFpbGVkJywgcHJvcHM8eyBlcnJvcjogRXJyb3IgfT4oKSk7XG5cbmV4cG9ydCBjb25zdCBzaWduT3V0ID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbiBvdXQnKTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZE91dCA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHNpZ25lZCBvdXQnKTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0UGFzc3dvcmQgPSBjcmVhdGVBY3Rpb24oJ1tAdGhlY2xhL2IyYy1hbmd1bGFyXSByZXNldCBwYXNzd29yZCcsIHByb3BzPHsgcmV0dXJuVXJsOiBzdHJpbmcgfT4oKSk7XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYjJjLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb25zL2F1dGguYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdsRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQywrQkFBK0IsRUFBRSxLQUFLLEVBQXlCLENBQUMsQ0FBQztBQUVwRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUV6RixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUN6Qyx5Q0FBeUMsRUFDekMsS0FBSyxFQUF3RSxDQUM5RSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLEVBQXFCLENBQUMsQ0FBQztBQUVwRyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLHNDQUFzQyxFQUFFLEtBQUssRUFBb0IsQ0FBQyxDQUFDO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLEVBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBQcm9maWxlIH0gZnJvbSAnLi4vc3RhdGUvYXV0aC5zdGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBpbml0ID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gaW5pdCcpO1xuXG5leHBvcnQgY29uc3Qgc2lnbkluID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbi1pbicsIHByb3BzPHsgcmV0dXJuVXJsOiBzdHJpbmcgfT4oKSk7XG5cbmV4cG9ydCBjb25zdCBzaWduSW5SZWRpcmVjdGVkID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbiBpbiByZWRpcmVjdGVkJyk7XG5cbmV4cG9ydCBjb25zdCBzaWduSW5Db21wbGV0ZWQgPSBjcmVhdGVBY3Rpb24oXG4gICdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbiBpbiBjb21wbGV0ZWQnLFxuICBwcm9wczx7IHN0YXRlOiB7IHRhcmdldDogc3RyaW5nOyBwYXNzd29yZFJlc2V0OiBib29sZWFuIH07IHVzZXI6IFByb2ZpbGUgfT4oKVxuKTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZEluID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbmVkIGluJywgcHJvcHM8eyB1c2VyOiBQcm9maWxlIH0+KCkpO1xuXG5leHBvcnQgY29uc3Qgc2lnbkluRmFpbGVkID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbiBpbiBmYWlsZWQnLCBwcm9wczx7IGVycm9yOiBFcnJvciB9PigpKTtcblxuZXhwb3J0IGNvbnN0IHNpZ25PdXQgPSBjcmVhdGVBY3Rpb24oJ1tAdGhlY2xhL2IyYy1hbmd1bGFyXSBzaWduIG91dCcpO1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkT3V0ID0gY3JlYXRlQWN0aW9uKCdbQHRoZWNsYS9iMmMtYW5ndWxhcl0gc2lnbmVkIG91dCcpO1xuXG5leHBvcnQgY29uc3QgcmVzZXRQYXNzd29yZCA9IGNyZWF0ZUFjdGlvbignW0B0aGVjbGEvYjJjLWFuZ3VsYXJdIHJlc2V0IHBhc3N3b3JkJywgcHJvcHM8eyByZXR1cm5Vcmw6IHN0cmluZyB9PigpKTtcbiJdfQ==
@@ -18,9 +18,9 @@ export class AuthGuard {
18
18
  }), first());
19
19
  }
20
20
  }
21
- AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
22
- AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, decorators: [{
21
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
22
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, decorators: [{
24
24
  type: Injectable,
25
25
  args: [{
26
26
  providedIn: 'root',
@@ -28,10 +28,10 @@ export class AuthModule {
28
28
  };
29
29
  }
30
30
  }
31
- AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
- AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] });
33
- AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, imports: [[StoreModule.forFeature(featureKey, reducer), EffectsModule.forFeature([AuthEffects])]] });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, decorators: [{
31
+ AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
+ AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] });
33
+ AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, imports: [StoreModule.forFeature(featureKey, reducer), EffectsModule.forFeature([AuthEffects])] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, decorators: [{
35
35
  type: NgModule,
36
36
  args: [{
37
37
  declarations: [],
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
39
39
  exports: [],
40
40
  }]
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iMmMtYW5ndWxhci9zcmMvbGliL2F1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7QUFPckMsTUFBTSxPQUFPLFVBQVU7SUFDZCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtCO1FBQ3RDLE9BQU87WUFDTCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzt1R0FoQlUsVUFBVTt3R0FBVixVQUFVO3dHQUFWLFVBQVUsWUFIWixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDOzJGQUdwRixVQUFVO2tCQUx0QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDL0YsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICcuL2F1dGgtY29uZmlnJztcbmltcG9ydCB7IEF1dGhFZmZlY3RzIH0gZnJvbSAnLi9lZmZlY3RzL2F1dGguZWZmZWN0cyc7XG5pbXBvcnQgeyBKd3RJbnRlcmNlcHRvciB9IGZyb20gJy4vand0LmludGVyY2VwdG9yJztcbmltcG9ydCB7IHJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL2F1dGgucmVkdWNlcic7XG5pbXBvcnQgeyBmZWF0dXJlS2V5IH0gZnJvbSAnLi9zdG9yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGZlYXR1cmVLZXksIHJlZHVjZXIpLCBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0F1dGhFZmZlY3RzXSldLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEF1dGhDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEF1dGhNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEF1dGhNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEF1dGhDb25maWcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgICAgIHVzZUNsYXNzOiBKd3RJbnRlcmNlcHRvcixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iMmMtYW5ndWxhci9zcmMvbGliL2F1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7QUFPckMsTUFBTSxPQUFPLFVBQVU7SUFDZCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtCO1FBQ3RDLE9BQU87WUFDTCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzt1R0FoQlUsVUFBVTt3R0FBVixVQUFVO3dHQUFWLFVBQVUsWUFIWCxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7MkZBR25GLFVBQVU7a0JBTHRCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUMvRixPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQXV0aENvbmZpZyB9IGZyb20gJy4vYXV0aC1jb25maWcnO1xuaW1wb3J0IHsgQXV0aEVmZmVjdHMgfSBmcm9tICcuL2VmZmVjdHMvYXV0aC5lZmZlY3RzJztcbmltcG9ydCB7IEp3dEludGVyY2VwdG9yIH0gZnJvbSAnLi9qd3QuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgcmVkdWNlciB9IGZyb20gJy4vcmVkdWNlcnMvYXV0aC5yZWR1Y2VyJztcbmltcG9ydCB7IGZlYXR1cmVLZXkgfSBmcm9tICcuL3N0b3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1N0b3JlTW9kdWxlLmZvckZlYXR1cmUoZmVhdHVyZUtleSwgcmVkdWNlciksIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQXV0aEVmZmVjdHNdKV0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQXV0aENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXV0aE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQXV0aENvbmZpZyxcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgdXNlQ2xhc3M6IEp3dEludGVyY2VwdG9yLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -57,9 +57,9 @@ export class AuthService {
57
57
  }
58
58
  }
59
59
  }
60
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, deps: [{ token: i1.AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
61
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, providedIn: 'root' });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, decorators: [{
60
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, deps: [{ token: i1.AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, providedIn: 'root' });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, decorators: [{
63
63
  type: Injectable,
64
64
  args: [{
65
65
  providedIn: 'root',
@@ -2,9 +2,9 @@ import { Injectable } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';
4
4
  import { Actions, createEffect, ofType } from '@ngrx/effects';
5
- import { asyncScheduler, of } from 'rxjs';
6
- import { catchError, filter, map, observeOn, switchMap } from 'rxjs/operators';
7
- import { resetPassword, signedIn, signedOut, signIn, signInCompleted, signInFailed, signInRedirected, signOut, } from '../actions/auth.actions';
5
+ import { of } from 'rxjs';
6
+ import { catchError, filter, map, switchMap } from 'rxjs/operators';
7
+ import { init, resetPassword, signedIn, signedOut, signIn, signInCompleted, signInFailed, signInRedirected, signOut, } from '../actions/auth.actions';
8
8
  import { AuthService } from '../auth.service';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@ngrx/effects";
@@ -20,19 +20,22 @@ export class AuthEffects {
20
20
  this.signInCompleted$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))));
21
21
  this.redirect$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true }))), { dispatch: false });
22
22
  this.signOut$ = createEffect(() => this.actions$.pipe(ofType(signOut), switchMap(_ => this.auth.logout().pipe(map(() => signedOut()), catchError(() => of(signedOut()))))));
23
- this.init$ = createEffect(() => ({ scheduler = asyncScheduler } = {}) => {
23
+ this.init$ = createEffect(() => this.actions$.pipe(ofType(init), switchMap(() => {
24
24
  const params = window.location.hash;
25
25
  if ((params.includes('code=') && params.includes('state=')) ||
26
26
  (params.includes('error=') && params.includes('error_description='))) {
27
- return this.completeSignIn(scheduler);
27
+ return this.completeSignIn();
28
28
  }
29
29
  else {
30
- return this.auth.checkSession().pipe(map(user => this.getAuthResult(user)), catchError(error => of(signInFailed({ error }))), observeOn(scheduler));
30
+ return this.auth.checkSession().pipe(map(user => this.getAuthResult(user)), catchError(error => of(signInFailed({ error }))));
31
31
  }
32
- });
32
+ })));
33
33
  this.resetPassword$ = createEffect(() => this.actions$.pipe(ofType(signInFailed), filter(action => action.error instanceof AuthError), map(action => action.error), filter(AuthEffects.isForgotPasswordError), map(() => resetPassword({ returnUrl: '/' }))));
34
34
  this.failed$ = createEffect(() => this.actions$.pipe(ofType(signInFailed), filter(action => action.error instanceof AuthError), map(action => action.error), filter(AuthEffects.isInteractionInProgress), map(() => signOut())));
35
35
  }
36
+ ngrxOnInitEffects() {
37
+ return init();
38
+ }
36
39
  static isForgotPasswordError(error) {
37
40
  return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;
38
41
  }
@@ -47,13 +50,13 @@ export class AuthEffects {
47
50
  return signedOut();
48
51
  }
49
52
  }
50
- completeSignIn(scheduler) {
51
- return this.auth.handleRedirectCallback().pipe(map(result => signInCompleted({ state: result.state, user: result.user })), catchError(error => of(signInFailed({ error }))), observeOn(scheduler));
53
+ completeSignIn() {
54
+ return this.auth.handleRedirectCallback().pipe(map(result => signInCompleted({ state: result.state, user: result.user })), catchError(error => of(signInFailed({ error }))));
52
55
  }
53
56
  }
54
- AuthEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: i2.AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
55
- AuthEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects, decorators: [{
57
+ AuthEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: i2.AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
58
+ AuthEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects, decorators: [{
57
60
  type: Injectable
58
61
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AuthService }, { type: i3.Router }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYjJjLWFuZ3VsYXIvc3JjL2xpYi9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxhQUFhLEVBQ2IsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sZUFBZSxFQUNmLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsT0FBTyxHQUNSLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUc5QyxNQUFNLE9BQU8sV0FBVztJQTBGdEIsWUFDbUIsUUFBaUIsRUFDakIsSUFBaUIsRUFDakIsTUFBYztRQUZkLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBNUZqQixZQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUNkLFNBQVMs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YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhFcnJvciwgQnJvd3NlckF1dGhFcnJvck1lc3NhZ2UgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgb2YsIFNjaGVkdWxlckxpa2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBvYnNlcnZlT24sIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgcmVzZXRQYXNzd29yZCxcbiAgc2lnbmVkSW4sXG4gIHNpZ25lZE91dCxcbiAgc2lnbkluLFxuICBzaWduSW5Db21wbGV0ZWQsXG4gIHNpZ25JbkZhaWxlZCxcbiAgc2lnbkluUmVkaXJlY3RlZCxcbiAgc2lnbk91dCxcbn0gZnJvbSAnLi4vYWN0aW9ucy9hdXRoLmFjdGlvbnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEVmZmVjdHMge1xuICBwdWJsaWMgcmVhZG9ubHkgc2lnbkluJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShzaWduSW4pLFxuICAgICAgc3dpdGNoTWFwKGFjdGlvbiA9PlxuICAgICAgICB0aGlzLmF1dGgubG9naW5XaXRoUmVkaXJlY3QoeyB0YXJnZXQ6IGFjdGlvbi5yZXR1cm5VcmwgfSkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gc2lnbkluUmVkaXJlY3RlZCgpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKHNpZ25JbkZhaWxlZCh7IGVycm9yIH0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGFzc3dvcmRSZXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUocmVzZXRQYXNzd29yZCksXG4gICAgICBzd2l0Y2hNYXAoYWN0aW9uID0+XG4gICAgICAgIHRoaXMuYXV0aC5yZXNldFBhc3N3b3JkV2l0aFJlZGlyZWN0KHsgdGFyZ2V0OiBhY3Rpb24ucmV0dXJuVXJsIH0pLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHNpZ25JblJlZGlyZWN0ZWQoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihzaWduSW5GYWlsZWQoeyBlcnJvciB9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpZ25JbkNvbXBsZXRlZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2lnbkluQ29tcGxldGVkKSxcbiAgICAgIG1hcCgoeyBzdGF0ZSwgdXNlciB9KSA9PiAoc3RhdGUucGFzc3dvcmRSZXNldCA/IHNpZ25PdXQoKSA6IHNpZ25lZEluKHsgdXNlciB9KSkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSByZWRpcmVjdCQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKHNpZ25JbkNvbXBsZXRlZCksXG4gICAgICAgIHN3aXRjaE1hcChhY3Rpb24gPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhY3Rpb24uc3RhdGUudGFyZ2V0LCB7IHJlcGxhY2VVcmw6IHRydWUgfSkpXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2lnbk91dCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2lnbk91dCksXG4gICAgICBzd2l0Y2hNYXAoXyA9PlxuICAgICAgICB0aGlzLmF1dGgubG9nb3V0KCkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gc2lnbmVkT3V0KCkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Yoc2lnbmVkT3V0KCkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbml0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAoeyBzY2hlZHVsZXIgPSBhc3luY1NjaGVkdWxlciB9ID0ge30pID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB3aW5kb3cubG9jYXRpb24uaGFzaDtcblxuICAgIGlmIChcbiAgICAgIChwYXJhbXMuaW5jbHVkZXMoJ2NvZGU9JykgJiYgcGFyYW1zLmluY2x1ZGVzKCdzdGF0ZT0nKSkgfHxcbiAgICAgIChwYXJhbXMuaW5jbHVkZXMoJ2Vycm9yPScpICYmIHBhcmFtcy5pbmNsdWRlcygnZXJyb3JfZGVzY3JpcHRpb249JykpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZVNpZ25JbihzY2hlZHVsZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5hdXRoLmNoZWNrU2Vzc2lvbigpLnBpcGUoXG4gICAgICAgIG1hcCh1c2VyID0+IHRoaXMuZ2V0QXV0aFJlc3VsdCh1c2VyKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Yoc2lnbkluRmFpbGVkKHsgZXJyb3IgfSkpKSxcbiAgICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcilcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzZXRQYXNzd29yZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2lnbkluRmFpbGVkKSxcbiAgICAgIGZpbHRlcihhY3Rpb24gPT4gYWN0aW9uLmVycm9yIGluc3RhbmNlb2YgQXV0aEVycm9yKSxcbiAgICAgIG1hcChhY3Rpb24gPT4gYWN0aW9uLmVycm9yIGFzIEF1dGhFcnJvciksXG4gICAgICBmaWx0ZXIoQXV0aEVmZmVjdHMuaXNGb3Jnb3RQYXNzd29yZEVycm9yKSxcbiAgICAgIG1hcCgoKSA9PiByZXNldFBhc3N3b3JkKHsgcmV0dXJuVXJsOiAnLycgfSkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBmYWlsZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKHNpZ25JbkZhaWxlZCksXG4gICAgICBmaWx0ZXIoYWN0aW9uID0+IGFjdGlvbi5lcnJvciBpbnN0YW5jZW9mIEF1dGhFcnJvciksXG4gICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5lcnJvciBhcyBBdXRoRXJyb3IpLFxuICAgICAgZmlsdGVyKEF1dGhFZmZlY3RzLmlzSW50ZXJhY3Rpb25JblByb2dyZXNzKSxcbiAgICAgIG1hcCgoKSA9PiBzaWduT3V0KCkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNGb3Jnb3RQYXNzd29yZEVycm9yKGVycm9yOiBBdXRoRXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IuZXJyb3JDb2RlID09PSAnYWNjZXNzX2RlbmllZCcgJiYgZXJyb3IuZXJyb3JNZXNzYWdlLmluZGV4T2YoJ0FBREIyQzkwMTE4JykgIT09IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNJbnRlcmFjdGlvbkluUHJvZ3Jlc3MoZXJyb3I6IEF1dGhFcnJvcikge1xuICAgIHJldHVybiBlcnJvci5lcnJvckNvZGUgPT09IEJyb3dzZXJBdXRoRXJyb3JNZXNzYWdlLmludGVyYWN0aW9uSW5Qcm9ncmVzcy5jb2RlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBdXRoUmVzdWx0KHVzZXI6IHsgc3ViOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh1c2VyKSB7XG4gICAgICByZXR1cm4gc2lnbmVkSW4oeyB1c2VyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2lnbmVkT3V0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZVNpZ25JbihzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoLmhhbmRsZVJlZGlyZWN0Q2FsbGJhY2soKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBzaWduSW5Db21wbGV0ZWQoeyBzdGF0ZTogcmVzdWx0LnN0YXRlLCB1c2VyOiByZXN1bHQudXNlciB9KSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKHNpZ25JbkZhaWxlZCh7IGVycm9yIH0pKSksXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVyKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYjJjLWFuZ3VsYXIvc3JjL2xpYi9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsSUFBSSxFQUNKLGFBQWEsRUFDYixRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixlQUFlLEVBQ2YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixPQUFPLEdBQ1IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRzlDLE1BQU0sT0FBTyxXQUFXO0lBOEZ0QixZQUNtQixRQUFpQixFQUNqQixJQUFpQixFQUNqQixNQUFjO1FBRmQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoR2pCLFlBQU8sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ2QsU0FBUyxDQUFDLE1BQU0s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Y3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aEVycm9yLCBCcm93c2VyQXV0aEVycm9yTWVzc2FnZSB9IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUsIE9uSW5pdEVmZmVjdHMgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgaW5pdCxcbiAgcmVzZXRQYXNzd29yZCxcbiAgc2lnbmVkSW4sXG4gIHNpZ25lZE91dCxcbiAgc2lnbkluLFxuICBzaWduSW5Db21wbGV0ZWQsXG4gIHNpZ25JbkZhaWxlZCxcbiAgc2lnbkluUmVkaXJlY3RlZCxcbiAgc2lnbk91dCxcbn0gZnJvbSAnLi4vYWN0aW9ucy9hdXRoLmFjdGlvbnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEVmZmVjdHMgaW1wbGVtZW50cyBPbkluaXRFZmZlY3RzIHtcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25JbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2lnbkluKSxcbiAgICAgIHN3aXRjaE1hcChhY3Rpb24gPT5cbiAgICAgICAgdGhpcy5hdXRoLmxvZ2luV2l0aFJlZGlyZWN0KHsgdGFyZ2V0OiBhY3Rpb24ucmV0dXJuVXJsIH0pLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHNpZ25JblJlZGlyZWN0ZWQoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihzaWduSW5GYWlsZWQoeyBlcnJvciB9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhc3N3b3JkUmVzZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKHJlc2V0UGFzc3dvcmQpLFxuICAgICAgc3dpdGNoTWFwKGFjdGlvbiA9PlxuICAgICAgICB0aGlzLmF1dGgucmVzZXRQYXNzd29yZFdpdGhSZWRpcmVjdCh7IHRhcmdldDogYWN0aW9uLnJldHVyblVybCB9KS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBzaWduSW5SZWRpcmVjdGVkKCkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Yoc2lnbkluRmFpbGVkKHsgZXJyb3IgfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaWduSW5Db21wbGV0ZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKHNpZ25JbkNvbXBsZXRlZCksXG4gICAgICBtYXAoKHsgc3RhdGUsIHVzZXIgfSkgPT4gKHN0YXRlLnBhc3N3b3JkUmVzZXQgPyBzaWduT3V0KCkgOiBzaWduZWRJbih7IHVzZXIgfSkpKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVkaXJlY3QkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShzaWduSW5Db21wbGV0ZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoYWN0aW9uID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYWN0aW9uLnN0YXRlLnRhcmdldCwgeyByZXBsYWNlVXJsOiB0cnVlIH0pKVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpZ25PdXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKHNpZ25PdXQpLFxuICAgICAgc3dpdGNoTWFwKF8gPT5cbiAgICAgICAgdGhpcy5hdXRoLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHNpZ25lZE91dCgpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHNpZ25lZE91dCgpKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5pdCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoaW5pdCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB3aW5kb3cubG9jYXRpb24uaGFzaDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgKHBhcmFtcy5pbmNsdWRlcygnY29kZT0nKSAmJiBwYXJhbXMuaW5jbHVkZXMoJ3N0YXRlPScpKSB8fFxuICAgICAgICAgIChwYXJhbXMuaW5jbHVkZXMoJ2Vycm9yPScpICYmIHBhcmFtcy5pbmNsdWRlcygnZXJyb3JfZGVzY3JpcHRpb249JykpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBsZXRlU2lnbkluKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYXV0aC5jaGVja1Nlc3Npb24oKS5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXIgPT4gdGhpcy5nZXRBdXRoUmVzdWx0KHVzZXIpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Yoc2lnbkluRmFpbGVkKHsgZXJyb3IgfSkpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSByZXNldFBhc3N3b3JkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShzaWduSW5GYWlsZWQpLFxuICAgICAgZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24uZXJyb3IgaW5zdGFuY2VvZiBBdXRoRXJyb3IpLFxuICAgICAgbWFwKGFjdGlvbiA9PiBhY3Rpb24uZXJyb3IgYXMgQXV0aEVycm9yKSxcbiAgICAgIGZpbHRlcihBdXRoRWZmZWN0cy5pc0ZvcmdvdFBhc3N3b3JkRXJyb3IpLFxuICAgICAgbWFwKCgpID0+IHJlc2V0UGFzc3dvcmQoeyByZXR1cm5Vcmw6ICcvJyB9KSlcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZhaWxlZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2lnbkluRmFpbGVkKSxcbiAgICAgIGZpbHRlcihhY3Rpb24gPT4gYWN0aW9uLmVycm9yIGluc3RhbmNlb2YgQXV0aEVycm9yKSxcbiAgICAgIG1hcChhY3Rpb24gPT4gYWN0aW9uLmVycm9yIGFzIEF1dGhFcnJvciksXG4gICAgICBmaWx0ZXIoQXV0aEVmZmVjdHMuaXNJbnRlcmFjdGlvbkluUHJvZ3Jlc3MpLFxuICAgICAgbWFwKCgpID0+IHNpZ25PdXQoKSlcbiAgICApXG4gICk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBwdWJsaWMgbmdyeE9uSW5pdEVmZmVjdHMoKSB7XG4gICAgcmV0dXJuIGluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzRm9yZ290UGFzc3dvcmRFcnJvcihlcnJvcjogQXV0aEVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLmVycm9yQ29kZSA9PT0gJ2FjY2Vzc19kZW5pZWQnICYmIGVycm9yLmVycm9yTWVzc2FnZS5pbmRleE9mKCdBQURCMkM5MDExOCcpICE9PSAtMTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzSW50ZXJhY3Rpb25JblByb2dyZXNzKGVycm9yOiBBdXRoRXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IuZXJyb3JDb2RlID09PSBCcm93c2VyQXV0aEVycm9yTWVzc2FnZS5pbnRlcmFjdGlvbkluUHJvZ3Jlc3MuY29kZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXV0aFJlc3VsdCh1c2VyOiB7IHN1Yjogc3RyaW5nIH0gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodXNlcikge1xuICAgICAgcmV0dXJuIHNpZ25lZEluKHsgdXNlciB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNpZ25lZE91dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVTaWduSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aC5oYW5kbGVSZWRpcmVjdENhbGxiYWNrKCkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gc2lnbkluQ29tcGxldGVkKHsgc3RhdGU6IHJlc3VsdC5zdGF0ZSwgdXNlcjogcmVzdWx0LnVzZXIgfSkpLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihzaWduSW5GYWlsZWQoeyBlcnJvciB9KSkpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -24,9 +24,9 @@ export class JwtInterceptor {
24
24
  return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));
25
25
  }
26
26
  }
27
- JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
28
- JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor, decorators: [{
27
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: function () { return [{ type: i1.AuthService }]; } });
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYjJjLWFuZ3VsYXIvc3JjL2xpYi9qd3QuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRzdDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9DLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7SUFBRyxDQUFDO0lBRWxELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQzNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUF5QjtRQUM1QyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVyRCxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBeUI7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUxQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDOzsyR0FyQlUsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEp3dEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIGlmICh0aGlzLmlzU2FtZURvbWFpbihyZXF1ZXN0KSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aG9yaXplKHJlcXVlc3QpLnBpcGUobWVyZ2VNYXAoYXV0aG9yaXplZFJlcXVlc3QgPT4gbmV4dC5oYW5kbGUoYXV0aG9yaXplZFJlcXVlc3QpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzU2FtZURvbWFpbihyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QocmVxdWVzdC51cmwpO1xuXG4gICAgcmV0dXJuICFpc0Fic29sdXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRob3JpemUocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pikge1xuICAgIGNvbnN0IHRva2VuJCA9IHRoaXMuYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xuXG4gICAgcmV0dXJuIHRva2VuJC5waXBlKG1hcCh0b2tlbiA9PiByZXF1ZXN0LmNsb25lKHsgc2V0SGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9IH0pKSk7XG4gIH1cbn1cbiJdfQ==
@@ -6,13 +6,14 @@ import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
6
6
  import * as i1$1 from '@ngrx/store';
7
7
  import { createAction, props, createReducer, on, createFeatureSelector, select, StoreModule } from '@ngrx/store';
8
8
  import { PublicClientApplication, InteractionRequiredAuthError, AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';
9
- import { from, of, throwError, asyncScheduler, pipe } from 'rxjs';
10
- import { filter, map, catchError, switchMap, observeOn, mergeMap, tap, first } from 'rxjs/operators';
9
+ import { from, of, throwError, pipe } from 'rxjs';
10
+ import { filter, map, catchError, switchMap, mergeMap, tap, first } from 'rxjs/operators';
11
11
  import * as i3 from '@angular/router';
12
12
 
13
13
  class AuthConfig {
14
14
  }
15
15
 
16
+ const init = createAction('[@thecla/b2c-angular] init');
16
17
  const signIn = createAction('[@thecla/b2c-angular] sign-in', props());
17
18
  const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');
18
19
  const signInCompleted = createAction('[@thecla/b2c-angular] sign in completed', props());
@@ -75,9 +76,9 @@ class AuthService {
75
76
  }
76
77
  }
77
78
  }
78
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, deps: [{ token: AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
79
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, providedIn: 'root' });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, decorators: [{
79
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, deps: [{ token: AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
80
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, providedIn: 'root' });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, decorators: [{
81
82
  type: Injectable,
82
83
  args: [{
83
84
  providedIn: 'root',
@@ -94,19 +95,22 @@ class AuthEffects {
94
95
  this.signInCompleted$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))));
95
96
  this.redirect$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true }))), { dispatch: false });
96
97
  this.signOut$ = createEffect(() => this.actions$.pipe(ofType(signOut), switchMap(_ => this.auth.logout().pipe(map(() => signedOut()), catchError(() => of(signedOut()))))));
97
- this.init$ = createEffect(() => ({ scheduler = asyncScheduler } = {}) => {
98
+ this.init$ = createEffect(() => this.actions$.pipe(ofType(init), switchMap(() => {
98
99
  const params = window.location.hash;
99
100
  if ((params.includes('code=') && params.includes('state=')) ||
100
101
  (params.includes('error=') && params.includes('error_description='))) {
101
- return this.completeSignIn(scheduler);
102
+ return this.completeSignIn();
102
103
  }
103
104
  else {
104
- return this.auth.checkSession().pipe(map(user => this.getAuthResult(user)), catchError(error => of(signInFailed({ error }))), observeOn(scheduler));
105
+ return this.auth.checkSession().pipe(map(user => this.getAuthResult(user)), catchError(error => of(signInFailed({ error }))));
105
106
  }
106
- });
107
+ })));
107
108
  this.resetPassword$ = createEffect(() => this.actions$.pipe(ofType(signInFailed), filter(action => action.error instanceof AuthError), map(action => action.error), filter(AuthEffects.isForgotPasswordError), map(() => resetPassword({ returnUrl: '/' }))));
108
109
  this.failed$ = createEffect(() => this.actions$.pipe(ofType(signInFailed), filter(action => action.error instanceof AuthError), map(action => action.error), filter(AuthEffects.isInteractionInProgress), map(() => signOut())));
109
110
  }
111
+ ngrxOnInitEffects() {
112
+ return init();
113
+ }
110
114
  static isForgotPasswordError(error) {
111
115
  return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;
112
116
  }
@@ -121,13 +125,13 @@ class AuthEffects {
121
125
  return signedOut();
122
126
  }
123
127
  }
124
- completeSignIn(scheduler) {
125
- return this.auth.handleRedirectCallback().pipe(map(result => signInCompleted({ state: result.state, user: result.user })), catchError(error => of(signInFailed({ error }))), observeOn(scheduler));
128
+ completeSignIn() {
129
+ return this.auth.handleRedirectCallback().pipe(map(result => signInCompleted({ state: result.state, user: result.user })), catchError(error => of(signInFailed({ error }))));
126
130
  }
127
131
  }
128
- AuthEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
129
- AuthEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects });
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects, decorators: [{
132
+ AuthEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
133
+ AuthEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects, decorators: [{
131
135
  type: Injectable
132
136
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: AuthService }, { type: i3.Router }]; } });
133
137
 
@@ -152,9 +156,9 @@ class JwtInterceptor {
152
156
  return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));
153
157
  }
154
158
  }
155
- JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
156
- JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor });
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor, decorators: [{
159
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
160
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor });
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor, decorators: [{
158
162
  type: Injectable
159
163
  }], ctorParameters: function () { return [{ type: AuthService }]; } });
160
164
 
@@ -194,10 +198,10 @@ class AuthModule {
194
198
  };
195
199
  }
196
200
  }
197
- AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
198
- AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, imports: [i1$1.StoreFeatureModule, i1.EffectsFeatureModule] });
199
- AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, imports: [[StoreModule.forFeature(featureKey, reducer), EffectsModule.forFeature([AuthEffects])]] });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, decorators: [{
201
+ AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
202
+ AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, imports: [i1$1.StoreFeatureModule, i1.EffectsFeatureModule] });
203
+ AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, imports: [StoreModule.forFeature(featureKey, reducer), EffectsModule.forFeature([AuthEffects])] });
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, decorators: [{
201
205
  type: NgModule,
202
206
  args: [{
203
207
  declarations: [],
@@ -219,9 +223,9 @@ class AuthGuard {
219
223
  }), first());
220
224
  }
221
225
  }
222
- AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
223
- AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, decorators: [{
226
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
227
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, decorators: [{
225
229
  type: Injectable,
226
230
  args: [{
227
231
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"thecla-b2c-angular.mjs","sources":["../../../projects/b2c-angular/src/lib/auth-config.ts","../../../projects/b2c-angular/src/lib/actions/auth.actions.ts","../../../projects/b2c-angular/src/lib/auth.service.ts","../../../projects/b2c-angular/src/lib/effects/auth.effects.ts","../../../projects/b2c-angular/src/lib/jwt.interceptor.ts","../../../projects/b2c-angular/src/lib/reducers/auth.reducer.ts","../../../projects/b2c-angular/src/lib/store/index.ts","../../../projects/b2c-angular/src/lib/auth.module.ts","../../../projects/b2c-angular/src/lib/auth.guard.ts","../../../projects/b2c-angular/src/thecla-b2c-angular.ts"],"sourcesContent":["export abstract class AuthConfig {\n public abstract clientId: string;\n public abstract authority: string;\n public abstract signInPolicy: string;\n public abstract resetPasswordPolicy: string;\n public abstract knownAuthorities: string[];\n public abstract scopes: string[];\n public abstract redirectUri?: string;\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Profile } from '../state/auth.state';\n\nexport const signIn = createAction('[@thecla/b2c-angular] sign-in', props<{ returnUrl: string }>());\n\nexport const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');\n\nexport const signInCompleted = createAction(\n '[@thecla/b2c-angular] sign in completed',\n props<{ state: { target: string; passwordReset: boolean }; user: Profile }>()\n);\n\nexport const signedIn = createAction('[@thecla/b2c-angular] signed in', props<{ user: Profile }>());\n\nexport const signInFailed = createAction('[@thecla/b2c-angular] sign in failed', props<{ error: Error }>());\n\nexport const signOut = createAction('[@thecla/b2c-angular] sign out');\n\nexport const signedOut = createAction('[@thecla/b2c-angular] signed out');\n\nexport const resetPassword = createAction('[@thecla/b2c-angular] reset password', props<{ returnUrl: string }>());\n","import { Injectable } from '@angular/core';\nimport {\n AuthenticationResult,\n Configuration,\n InteractionRequiredAuthError,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { from, of, throwError } from 'rxjs';\nimport { catchError, filter, map } from 'rxjs/operators';\nimport { AuthConfig } from './auth-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly clientApplication: PublicClientApplication;\n\n public constructor(private readonly config: AuthConfig) {\n const msalConfig: Configuration = {\n auth: {\n clientId: config.clientId,\n authority: `${config.authority}/${config.signInPolicy}`,\n knownAuthorities: config.knownAuthorities,\n redirectUri: config.redirectUri ?? location.origin,\n },\n };\n\n this.clientApplication = new PublicClientApplication(msalConfig);\n }\n\n public loginWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: false }),\n })\n );\n }\n\n public resetPasswordWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n authority: `${this.config.authority}/${this.config.resetPasswordPolicy}`,\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: true }),\n prompt: 'login',\n })\n );\n }\n\n public handleRedirectCallback() {\n return from(this.clientApplication.handleRedirectPromise()).pipe(\n filter((result): result is AuthenticationResult => result !== null),\n map(result => ({\n state: result.state ? JSON.parse(result.state) : undefined,\n user: { sub: result.uniqueId, ...result.idTokenClaims },\n }))\n );\n }\n\n public getAccessToken() {\n const account = this.clientApplication.getAllAccounts()[0];\n const scopes = this.config.scopes;\n\n return from(this.clientApplication.acquireTokenSilent({ account, scopes })).pipe(map(result => result.accessToken));\n }\n\n public logout() {\n return from(this.clientApplication.logoutRedirect({ postLogoutRedirectUri: location.origin }));\n }\n\n public checkSession() {\n const accounts = this.clientApplication.getAllAccounts();\n const scopes = this.config.scopes;\n\n if (accounts.length === 1) {\n return from(this.clientApplication.acquireTokenSilent({ account: accounts[0], scopes })).pipe(\n map(result => ({ sub: result.uniqueId, ...result.idTokenClaims })),\n catchError(error => (error instanceof InteractionRequiredAuthError ? of(undefined) : throwError(error)))\n );\n } else {\n return of(undefined);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { asyncScheduler, of, SchedulerLike } from 'rxjs';\nimport { catchError, filter, map, observeOn, switchMap, tap } from 'rxjs/operators';\nimport {\n resetPassword,\n signedIn,\n signedOut,\n signIn,\n signInCompleted,\n signInFailed,\n signInRedirected,\n signOut,\n} from '../actions/auth.actions';\nimport { AuthService } from '../auth.service';\n\n@Injectable()\nexport class AuthEffects {\n public readonly signIn$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signIn),\n switchMap(action =>\n this.auth.loginWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly passwordReset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(resetPassword),\n switchMap(action =>\n this.auth.resetPasswordWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly signInCompleted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInCompleted),\n map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))\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 switchMap(_ =>\n this.auth.logout().pipe(\n map(() => signedOut()),\n catchError(() => of(signedOut()))\n )\n )\n )\n );\n\n public readonly init$ = createEffect(() => ({ scheduler = asyncScheduler } = {}) => {\n const params = window.location.hash;\n\n if (\n (params.includes('code=') && params.includes('state=')) ||\n (params.includes('error=') && params.includes('error_description='))\n ) {\n return this.completeSignIn(scheduler);\n } else {\n return this.auth.checkSession().pipe(\n map(user => this.getAuthResult(user)),\n catchError(error => of(signInFailed({ error }))),\n observeOn(scheduler)\n );\n }\n });\n\n public readonly resetPassword$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isForgotPasswordError),\n map(() => resetPassword({ returnUrl: '/' }))\n )\n );\n\n public readonly failed$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isInteractionInProgress),\n map(() => signOut())\n )\n );\n\n public constructor(\n private readonly actions$: Actions,\n private readonly auth: AuthService,\n private readonly router: Router\n ) {}\n\n private static isForgotPasswordError(error: AuthError) {\n return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;\n }\n\n private static isInteractionInProgress(error: AuthError) {\n return error.errorCode === BrowserAuthErrorMessage.interactionInProgress.code;\n }\n\n private getAuthResult(user: { sub: string } | undefined) {\n if (user) {\n return signedIn({ user });\n } else {\n return signedOut();\n }\n }\n\n private completeSignIn(scheduler: SchedulerLike) {\n return this.auth.handleRedirectCallback().pipe(\n map(result => signInCompleted({ state: result.state, user: result.user })),\n catchError(error => of(signInFailed({ error }))),\n observeOn(scheduler)\n );\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { 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 constructor(private readonly auth: AuthService) {}\n\n public intercept(request: HttpRequest<any>, next: HttpHandler) {\n if (this.isSameDomain(request)) {\n return this.authorize(request).pipe(mergeMap(authorizedRequest => next.handle(authorizedRequest)));\n } else {\n return next.handle(request);\n }\n }\n\n private isSameDomain(request: HttpRequest<any>) {\n const isAbsolute = /^https?:\\/\\//i.test(request.url);\n\n return !isAbsolute;\n }\n\n private authorize(request: HttpRequest<any>) {\n const token$ = this.auth.getAccessToken();\n\n return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));\n }\n}\n","import { Action, createReducer, on } from '@ngrx/store';\nimport { signedIn, signedOut, signInFailed } from '../actions/auth.actions';\nimport { State } from '../state/auth.state';\n\nexport const noAuthentication: State = {\n authenticating: false,\n authenticated: false,\n};\n\nexport const startAuthentication: State = {\n authenticating: true,\n authenticated: false,\n};\n\nconst authReducer = 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\nexport function reducer(state: State | undefined, action: Action) {\n return authReducer(state, action);\n}\n","import { createFeatureSelector, select } from '@ngrx/store';\nimport { pipe } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { State } from '../state/auth.state';\n\nexport const featureKey = 'auth';\n\nexport const selectState = createFeatureSelector<State>(featureKey);\n\nexport const isAuthenticated = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.authenticated)\n);\n\nexport const getUser = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.user)\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 './effects/auth.effects';\nimport { JwtInterceptor } from './jwt.interceptor';\nimport { reducer } from './reducers/auth.reducer';\nimport { featureKey } from './store';\n\n@NgModule({\n declarations: [],\n imports: [StoreModule.forFeature(featureKey, reducer), 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 { 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 './actions/auth.actions';\nimport { isAuthenticated } from './store';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thecla-b2c-angular.mjs","sources":["../../../projects/b2c-angular/src/lib/auth-config.ts","../../../projects/b2c-angular/src/lib/actions/auth.actions.ts","../../../projects/b2c-angular/src/lib/auth.service.ts","../../../projects/b2c-angular/src/lib/effects/auth.effects.ts","../../../projects/b2c-angular/src/lib/jwt.interceptor.ts","../../../projects/b2c-angular/src/lib/reducers/auth.reducer.ts","../../../projects/b2c-angular/src/lib/store/index.ts","../../../projects/b2c-angular/src/lib/auth.module.ts","../../../projects/b2c-angular/src/lib/auth.guard.ts","../../../projects/b2c-angular/src/thecla-b2c-angular.ts"],"sourcesContent":["export abstract class AuthConfig {\n public abstract clientId: string;\n public abstract authority: string;\n public abstract signInPolicy: string;\n public abstract resetPasswordPolicy: string;\n public abstract knownAuthorities: string[];\n public abstract scopes: string[];\n public abstract redirectUri?: string;\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Profile } from '../state/auth.state';\n\nexport const init = createAction('[@thecla/b2c-angular] init');\n\nexport const signIn = createAction('[@thecla/b2c-angular] sign-in', props<{ returnUrl: string }>());\n\nexport const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');\n\nexport const signInCompleted = createAction(\n '[@thecla/b2c-angular] sign in completed',\n props<{ state: { target: string; passwordReset: boolean }; user: Profile }>()\n);\n\nexport const signedIn = createAction('[@thecla/b2c-angular] signed in', props<{ user: Profile }>());\n\nexport const signInFailed = createAction('[@thecla/b2c-angular] sign in failed', props<{ error: Error }>());\n\nexport const signOut = createAction('[@thecla/b2c-angular] sign out');\n\nexport const signedOut = createAction('[@thecla/b2c-angular] signed out');\n\nexport const resetPassword = createAction('[@thecla/b2c-angular] reset password', props<{ returnUrl: string }>());\n","import { Injectable } from '@angular/core';\nimport {\n AuthenticationResult,\n Configuration,\n InteractionRequiredAuthError,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { from, of, throwError } from 'rxjs';\nimport { catchError, filter, map } from 'rxjs/operators';\nimport { AuthConfig } from './auth-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly clientApplication: PublicClientApplication;\n\n public constructor(private readonly config: AuthConfig) {\n const msalConfig: Configuration = {\n auth: {\n clientId: config.clientId,\n authority: `${config.authority}/${config.signInPolicy}`,\n knownAuthorities: config.knownAuthorities,\n redirectUri: config.redirectUri ?? location.origin,\n },\n };\n\n this.clientApplication = new PublicClientApplication(msalConfig);\n }\n\n public loginWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: false }),\n })\n );\n }\n\n public resetPasswordWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n authority: `${this.config.authority}/${this.config.resetPasswordPolicy}`,\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: true }),\n prompt: 'login',\n })\n );\n }\n\n public handleRedirectCallback() {\n return from(this.clientApplication.handleRedirectPromise()).pipe(\n filter((result): result is AuthenticationResult => result !== null),\n map(result => ({\n state: result.state ? JSON.parse(result.state) : undefined,\n user: { sub: result.uniqueId, ...result.idTokenClaims },\n }))\n );\n }\n\n public getAccessToken() {\n const account = this.clientApplication.getAllAccounts()[0];\n const scopes = this.config.scopes;\n\n return from(this.clientApplication.acquireTokenSilent({ account, scopes })).pipe(map(result => result.accessToken));\n }\n\n public logout() {\n return from(this.clientApplication.logoutRedirect({ postLogoutRedirectUri: location.origin }));\n }\n\n public checkSession() {\n const accounts = this.clientApplication.getAllAccounts();\n const scopes = this.config.scopes;\n\n if (accounts.length === 1) {\n return from(this.clientApplication.acquireTokenSilent({ account: accounts[0], scopes })).pipe(\n map(result => ({ sub: result.uniqueId, ...result.idTokenClaims })),\n catchError(error => (error instanceof InteractionRequiredAuthError ? of(undefined) : throwError(error)))\n );\n } else {\n return of(undefined);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';\nimport { Actions, createEffect, ofType, OnInitEffects } from '@ngrx/effects';\nimport { of } from 'rxjs';\nimport { catchError, filter, map, switchMap } from 'rxjs/operators';\nimport {\n init,\n resetPassword,\n signedIn,\n signedOut,\n signIn,\n signInCompleted,\n signInFailed,\n signInRedirected,\n signOut,\n} from '../actions/auth.actions';\nimport { AuthService } from '../auth.service';\n\n@Injectable()\nexport class AuthEffects implements OnInitEffects {\n public readonly signIn$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signIn),\n switchMap(action =>\n this.auth.loginWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly passwordReset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(resetPassword),\n switchMap(action =>\n this.auth.resetPasswordWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly signInCompleted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInCompleted),\n map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))\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 switchMap(_ =>\n this.auth.logout().pipe(\n map(() => signedOut()),\n catchError(() => of(signedOut()))\n )\n )\n )\n );\n\n public readonly init$ = createEffect(() =>\n this.actions$.pipe(\n ofType(init),\n switchMap(() => {\n const params = window.location.hash;\n\n if (\n (params.includes('code=') && params.includes('state=')) ||\n (params.includes('error=') && params.includes('error_description='))\n ) {\n return this.completeSignIn();\n } else {\n return this.auth.checkSession().pipe(\n map(user => this.getAuthResult(user)),\n catchError(error => of(signInFailed({ error })))\n );\n }\n })\n )\n );\n\n public readonly resetPassword$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isForgotPasswordError),\n map(() => resetPassword({ returnUrl: '/' }))\n )\n );\n\n public readonly failed$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isInteractionInProgress),\n map(() => signOut())\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 static isForgotPasswordError(error: AuthError) {\n return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;\n }\n\n private static isInteractionInProgress(error: AuthError) {\n return error.errorCode === BrowserAuthErrorMessage.interactionInProgress.code;\n }\n\n private getAuthResult(user: { sub: string } | undefined) {\n if (user) {\n return signedIn({ user });\n } else {\n return signedOut();\n }\n }\n\n private completeSignIn() {\n return this.auth.handleRedirectCallback().pipe(\n map(result => signInCompleted({ state: result.state, user: result.user })),\n catchError(error => of(signInFailed({ error })))\n );\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { 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 constructor(private readonly auth: AuthService) {}\n\n public intercept(request: HttpRequest<any>, next: HttpHandler) {\n if (this.isSameDomain(request)) {\n return this.authorize(request).pipe(mergeMap(authorizedRequest => next.handle(authorizedRequest)));\n } else {\n return next.handle(request);\n }\n }\n\n private isSameDomain(request: HttpRequest<any>) {\n const isAbsolute = /^https?:\\/\\//i.test(request.url);\n\n return !isAbsolute;\n }\n\n private authorize(request: HttpRequest<any>) {\n const token$ = this.auth.getAccessToken();\n\n return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));\n }\n}\n","import { Action, createReducer, on } from '@ngrx/store';\nimport { signedIn, signedOut, signInFailed } from '../actions/auth.actions';\nimport { State } from '../state/auth.state';\n\nexport const noAuthentication: State = {\n authenticating: false,\n authenticated: false,\n};\n\nexport const startAuthentication: State = {\n authenticating: true,\n authenticated: false,\n};\n\nconst authReducer = 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\nexport function reducer(state: State | undefined, action: Action) {\n return authReducer(state, action);\n}\n","import { createFeatureSelector, select } from '@ngrx/store';\nimport { pipe } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { State } from '../state/auth.state';\n\nexport const featureKey = 'auth';\n\nexport const selectState = createFeatureSelector<State>(featureKey);\n\nexport const isAuthenticated = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.authenticated)\n);\n\nexport const getUser = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.user)\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 './effects/auth.effects';\nimport { JwtInterceptor } from './jwt.interceptor';\nimport { reducer } from './reducers/auth.reducer';\nimport { featureKey } from './store';\n\n@NgModule({\n declarations: [],\n imports: [StoreModule.forFeature(featureKey, reducer), 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 { 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 './actions/auth.actions';\nimport { isAuthenticated } from './store';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthConfig","i2.AuthService","i1.AuthService","i1","i2"],"mappings":"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"}
@@ -7,12 +7,13 @@ import * as i1$1 from '@ngrx/store';
7
7
  import { createAction, props, createReducer, on, createFeatureSelector, select, StoreModule } from '@ngrx/store';
8
8
  import * as i3 from '@angular/router';
9
9
  import { PublicClientApplication, InteractionRequiredAuthError, AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';
10
- import { from, of, throwError, asyncScheduler, pipe } from 'rxjs';
11
- import { filter, map, catchError, switchMap, observeOn, mergeMap, tap, first } from 'rxjs/operators';
10
+ import { from, of, throwError, pipe } from 'rxjs';
11
+ import { filter, map, catchError, switchMap, mergeMap, tap, first } from 'rxjs/operators';
12
12
 
13
13
  class AuthConfig {
14
14
  }
15
15
 
16
+ const init = createAction('[@thecla/b2c-angular] init');
16
17
  const signIn = createAction('[@thecla/b2c-angular] sign-in', props());
17
18
  const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');
18
19
  const signInCompleted = createAction('[@thecla/b2c-angular] sign in completed', props());
@@ -74,9 +75,9 @@ class AuthService {
74
75
  }
75
76
  }
76
77
  }
77
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, deps: [{ token: AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
78
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, providedIn: 'root' });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthService, decorators: [{
78
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, deps: [{ token: AuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, providedIn: 'root' });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthService, decorators: [{
80
81
  type: Injectable,
81
82
  args: [{
82
83
  providedIn: 'root',
@@ -93,19 +94,22 @@ class AuthEffects {
93
94
  this.signInCompleted$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))));
94
95
  this.redirect$ = createEffect(() => this.actions$.pipe(ofType(signInCompleted), switchMap(action => this.router.navigateByUrl(action.state.target, { replaceUrl: true }))), { dispatch: false });
95
96
  this.signOut$ = createEffect(() => this.actions$.pipe(ofType(signOut), switchMap(_ => this.auth.logout().pipe(map(() => signedOut()), catchError(() => of(signedOut()))))));
96
- this.init$ = createEffect(() => ({ scheduler = asyncScheduler } = {}) => {
97
+ this.init$ = createEffect(() => this.actions$.pipe(ofType(init), switchMap(() => {
97
98
  const params = window.location.hash;
98
99
  if ((params.includes('code=') && params.includes('state=')) ||
99
100
  (params.includes('error=') && params.includes('error_description='))) {
100
- return this.completeSignIn(scheduler);
101
+ return this.completeSignIn();
101
102
  }
102
103
  else {
103
- return this.auth.checkSession().pipe(map(user => this.getAuthResult(user)), catchError(error => of(signInFailed({ error }))), observeOn(scheduler));
104
+ return this.auth.checkSession().pipe(map(user => this.getAuthResult(user)), catchError(error => of(signInFailed({ error }))));
104
105
  }
105
- });
106
+ })));
106
107
  this.resetPassword$ = createEffect(() => this.actions$.pipe(ofType(signInFailed), filter(action => action.error instanceof AuthError), map(action => action.error), filter(AuthEffects.isForgotPasswordError), map(() => resetPassword({ returnUrl: '/' }))));
107
108
  this.failed$ = createEffect(() => this.actions$.pipe(ofType(signInFailed), filter(action => action.error instanceof AuthError), map(action => action.error), filter(AuthEffects.isInteractionInProgress), map(() => signOut())));
108
109
  }
110
+ ngrxOnInitEffects() {
111
+ return init();
112
+ }
109
113
  static isForgotPasswordError(error) {
110
114
  return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;
111
115
  }
@@ -120,13 +124,13 @@ class AuthEffects {
120
124
  return signedOut();
121
125
  }
122
126
  }
123
- completeSignIn(scheduler) {
124
- return this.auth.handleRedirectCallback().pipe(map(result => signInCompleted({ state: result.state, user: result.user })), catchError(error => of(signInFailed({ error }))), observeOn(scheduler));
127
+ completeSignIn() {
128
+ return this.auth.handleRedirectCallback().pipe(map(result => signInCompleted({ state: result.state, user: result.user })), catchError(error => of(signInFailed({ error }))));
125
129
  }
126
130
  }
127
- AuthEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
128
- AuthEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthEffects, decorators: [{
131
+ AuthEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects, deps: [{ token: i1.Actions }, { token: AuthService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
132
+ AuthEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects });
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthEffects, decorators: [{
130
134
  type: Injectable
131
135
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: AuthService }, { type: i3.Router }]; } });
132
136
 
@@ -151,9 +155,9 @@ class JwtInterceptor {
151
155
  return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));
152
156
  }
153
157
  }
154
- JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
155
- JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor });
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JwtInterceptor, decorators: [{
158
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
159
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor });
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: JwtInterceptor, decorators: [{
157
161
  type: Injectable
158
162
  }], ctorParameters: function () { return [{ type: AuthService }]; } });
159
163
 
@@ -198,10 +202,10 @@ class AuthModule {
198
202
  };
199
203
  }
200
204
  }
201
- AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
202
- AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, imports: [i1$1.StoreFeatureModule, i1.EffectsFeatureModule] });
203
- AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, imports: [[StoreModule.forFeature(featureKey, reducer), EffectsModule.forFeature([AuthEffects])]] });
204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthModule, decorators: [{
205
+ AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
206
+ AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, imports: [i1$1.StoreFeatureModule, i1.EffectsFeatureModule] });
207
+ AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, imports: [StoreModule.forFeature(featureKey, reducer), EffectsModule.forFeature([AuthEffects])] });
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthModule, decorators: [{
205
209
  type: NgModule,
206
210
  args: [{
207
211
  declarations: [],
@@ -223,9 +227,9 @@ class AuthGuard {
223
227
  }), first());
224
228
  }
225
229
  }
226
- AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
227
- AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AuthGuard, decorators: [{
230
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
231
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AuthGuard, decorators: [{
229
233
  type: Injectable,
230
234
  args: [{
231
235
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"thecla-b2c-angular.mjs","sources":["../../../projects/b2c-angular/src/lib/auth-config.ts","../../../projects/b2c-angular/src/lib/actions/auth.actions.ts","../../../projects/b2c-angular/src/lib/auth.service.ts","../../../projects/b2c-angular/src/lib/effects/auth.effects.ts","../../../projects/b2c-angular/src/lib/jwt.interceptor.ts","../../../projects/b2c-angular/src/lib/reducers/auth.reducer.ts","../../../projects/b2c-angular/src/lib/store/index.ts","../../../projects/b2c-angular/src/lib/auth.module.ts","../../../projects/b2c-angular/src/lib/auth.guard.ts","../../../projects/b2c-angular/src/thecla-b2c-angular.ts"],"sourcesContent":["export abstract class AuthConfig {\n public abstract clientId: string;\n public abstract authority: string;\n public abstract signInPolicy: string;\n public abstract resetPasswordPolicy: string;\n public abstract knownAuthorities: string[];\n public abstract scopes: string[];\n public abstract redirectUri?: string;\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Profile } from '../state/auth.state';\n\nexport const signIn = createAction('[@thecla/b2c-angular] sign-in', props<{ returnUrl: string }>());\n\nexport const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');\n\nexport const signInCompleted = createAction(\n '[@thecla/b2c-angular] sign in completed',\n props<{ state: { target: string; passwordReset: boolean }; user: Profile }>()\n);\n\nexport const signedIn = createAction('[@thecla/b2c-angular] signed in', props<{ user: Profile }>());\n\nexport const signInFailed = createAction('[@thecla/b2c-angular] sign in failed', props<{ error: Error }>());\n\nexport const signOut = createAction('[@thecla/b2c-angular] sign out');\n\nexport const signedOut = createAction('[@thecla/b2c-angular] signed out');\n\nexport const resetPassword = createAction('[@thecla/b2c-angular] reset password', props<{ returnUrl: string }>());\n","import { Injectable } from '@angular/core';\nimport {\n AuthenticationResult,\n Configuration,\n InteractionRequiredAuthError,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { from, of, throwError } from 'rxjs';\nimport { catchError, filter, map } from 'rxjs/operators';\nimport { AuthConfig } from './auth-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly clientApplication: PublicClientApplication;\n\n public constructor(private readonly config: AuthConfig) {\n const msalConfig: Configuration = {\n auth: {\n clientId: config.clientId,\n authority: `${config.authority}/${config.signInPolicy}`,\n knownAuthorities: config.knownAuthorities,\n redirectUri: config.redirectUri ?? location.origin,\n },\n };\n\n this.clientApplication = new PublicClientApplication(msalConfig);\n }\n\n public loginWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: false }),\n })\n );\n }\n\n public resetPasswordWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n authority: `${this.config.authority}/${this.config.resetPasswordPolicy}`,\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: true }),\n prompt: 'login',\n })\n );\n }\n\n public handleRedirectCallback() {\n return from(this.clientApplication.handleRedirectPromise()).pipe(\n filter((result): result is AuthenticationResult => result !== null),\n map(result => ({\n state: result.state ? JSON.parse(result.state) : undefined,\n user: { sub: result.uniqueId, ...result.idTokenClaims },\n }))\n );\n }\n\n public getAccessToken() {\n const account = this.clientApplication.getAllAccounts()[0];\n const scopes = this.config.scopes;\n\n return from(this.clientApplication.acquireTokenSilent({ account, scopes })).pipe(map(result => result.accessToken));\n }\n\n public logout() {\n return from(this.clientApplication.logoutRedirect({ postLogoutRedirectUri: location.origin }));\n }\n\n public checkSession() {\n const accounts = this.clientApplication.getAllAccounts();\n const scopes = this.config.scopes;\n\n if (accounts.length === 1) {\n return from(this.clientApplication.acquireTokenSilent({ account: accounts[0], scopes })).pipe(\n map(result => ({ sub: result.uniqueId, ...result.idTokenClaims })),\n catchError(error => (error instanceof InteractionRequiredAuthError ? of(undefined) : throwError(error)))\n );\n } else {\n return of(undefined);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { asyncScheduler, of, SchedulerLike } from 'rxjs';\nimport { catchError, filter, map, observeOn, switchMap, tap } from 'rxjs/operators';\nimport {\n resetPassword,\n signedIn,\n signedOut,\n signIn,\n signInCompleted,\n signInFailed,\n signInRedirected,\n signOut,\n} from '../actions/auth.actions';\nimport { AuthService } from '../auth.service';\n\n@Injectable()\nexport class AuthEffects {\n public readonly signIn$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signIn),\n switchMap(action =>\n this.auth.loginWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly passwordReset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(resetPassword),\n switchMap(action =>\n this.auth.resetPasswordWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly signInCompleted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInCompleted),\n map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))\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 switchMap(_ =>\n this.auth.logout().pipe(\n map(() => signedOut()),\n catchError(() => of(signedOut()))\n )\n )\n )\n );\n\n public readonly init$ = createEffect(() => ({ scheduler = asyncScheduler } = {}) => {\n const params = window.location.hash;\n\n if (\n (params.includes('code=') && params.includes('state=')) ||\n (params.includes('error=') && params.includes('error_description='))\n ) {\n return this.completeSignIn(scheduler);\n } else {\n return this.auth.checkSession().pipe(\n map(user => this.getAuthResult(user)),\n catchError(error => of(signInFailed({ error }))),\n observeOn(scheduler)\n );\n }\n });\n\n public readonly resetPassword$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isForgotPasswordError),\n map(() => resetPassword({ returnUrl: '/' }))\n )\n );\n\n public readonly failed$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isInteractionInProgress),\n map(() => signOut())\n )\n );\n\n public constructor(\n private readonly actions$: Actions,\n private readonly auth: AuthService,\n private readonly router: Router\n ) {}\n\n private static isForgotPasswordError(error: AuthError) {\n return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;\n }\n\n private static isInteractionInProgress(error: AuthError) {\n return error.errorCode === BrowserAuthErrorMessage.interactionInProgress.code;\n }\n\n private getAuthResult(user: { sub: string } | undefined) {\n if (user) {\n return signedIn({ user });\n } else {\n return signedOut();\n }\n }\n\n private completeSignIn(scheduler: SchedulerLike) {\n return this.auth.handleRedirectCallback().pipe(\n map(result => signInCompleted({ state: result.state, user: result.user })),\n catchError(error => of(signInFailed({ error }))),\n observeOn(scheduler)\n );\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { 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 constructor(private readonly auth: AuthService) {}\n\n public intercept(request: HttpRequest<any>, next: HttpHandler) {\n if (this.isSameDomain(request)) {\n return this.authorize(request).pipe(mergeMap(authorizedRequest => next.handle(authorizedRequest)));\n } else {\n return next.handle(request);\n }\n }\n\n private isSameDomain(request: HttpRequest<any>) {\n const isAbsolute = /^https?:\\/\\//i.test(request.url);\n\n return !isAbsolute;\n }\n\n private authorize(request: HttpRequest<any>) {\n const token$ = this.auth.getAccessToken();\n\n return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));\n }\n}\n","import { Action, createReducer, on } from '@ngrx/store';\nimport { signedIn, signedOut, signInFailed } from '../actions/auth.actions';\nimport { State } from '../state/auth.state';\n\nexport const noAuthentication: State = {\n authenticating: false,\n authenticated: false,\n};\n\nexport const startAuthentication: State = {\n authenticating: true,\n authenticated: false,\n};\n\nconst authReducer = 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\nexport function reducer(state: State | undefined, action: Action) {\n return authReducer(state, action);\n}\n","import { createFeatureSelector, select } from '@ngrx/store';\nimport { pipe } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { State } from '../state/auth.state';\n\nexport const featureKey = 'auth';\n\nexport const selectState = createFeatureSelector<State>(featureKey);\n\nexport const isAuthenticated = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.authenticated)\n);\n\nexport const getUser = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.user)\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 './effects/auth.effects';\nimport { JwtInterceptor } from './jwt.interceptor';\nimport { reducer } from './reducers/auth.reducer';\nimport { featureKey } from './store';\n\n@NgModule({\n declarations: [],\n imports: [StoreModule.forFeature(featureKey, reducer), 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 { 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 './actions/auth.actions';\nimport { isAuthenticated } from './store';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thecla-b2c-angular.mjs","sources":["../../../projects/b2c-angular/src/lib/auth-config.ts","../../../projects/b2c-angular/src/lib/actions/auth.actions.ts","../../../projects/b2c-angular/src/lib/auth.service.ts","../../../projects/b2c-angular/src/lib/effects/auth.effects.ts","../../../projects/b2c-angular/src/lib/jwt.interceptor.ts","../../../projects/b2c-angular/src/lib/reducers/auth.reducer.ts","../../../projects/b2c-angular/src/lib/store/index.ts","../../../projects/b2c-angular/src/lib/auth.module.ts","../../../projects/b2c-angular/src/lib/auth.guard.ts","../../../projects/b2c-angular/src/thecla-b2c-angular.ts"],"sourcesContent":["export abstract class AuthConfig {\n public abstract clientId: string;\n public abstract authority: string;\n public abstract signInPolicy: string;\n public abstract resetPasswordPolicy: string;\n public abstract knownAuthorities: string[];\n public abstract scopes: string[];\n public abstract redirectUri?: string;\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Profile } from '../state/auth.state';\n\nexport const init = createAction('[@thecla/b2c-angular] init');\n\nexport const signIn = createAction('[@thecla/b2c-angular] sign-in', props<{ returnUrl: string }>());\n\nexport const signInRedirected = createAction('[@thecla/b2c-angular] sign in redirected');\n\nexport const signInCompleted = createAction(\n '[@thecla/b2c-angular] sign in completed',\n props<{ state: { target: string; passwordReset: boolean }; user: Profile }>()\n);\n\nexport const signedIn = createAction('[@thecla/b2c-angular] signed in', props<{ user: Profile }>());\n\nexport const signInFailed = createAction('[@thecla/b2c-angular] sign in failed', props<{ error: Error }>());\n\nexport const signOut = createAction('[@thecla/b2c-angular] sign out');\n\nexport const signedOut = createAction('[@thecla/b2c-angular] signed out');\n\nexport const resetPassword = createAction('[@thecla/b2c-angular] reset password', props<{ returnUrl: string }>());\n","import { Injectable } from '@angular/core';\nimport {\n AuthenticationResult,\n Configuration,\n InteractionRequiredAuthError,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { from, of, throwError } from 'rxjs';\nimport { catchError, filter, map } from 'rxjs/operators';\nimport { AuthConfig } from './auth-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly clientApplication: PublicClientApplication;\n\n public constructor(private readonly config: AuthConfig) {\n const msalConfig: Configuration = {\n auth: {\n clientId: config.clientId,\n authority: `${config.authority}/${config.signInPolicy}`,\n knownAuthorities: config.knownAuthorities,\n redirectUri: config.redirectUri ?? location.origin,\n },\n };\n\n this.clientApplication = new PublicClientApplication(msalConfig);\n }\n\n public loginWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: false }),\n })\n );\n }\n\n public resetPasswordWithRedirect(state: { target: string }) {\n return from(\n this.clientApplication.loginRedirect({\n authority: `${this.config.authority}/${this.config.resetPasswordPolicy}`,\n scopes: this.config.scopes,\n state: JSON.stringify({ ...state, passwordReset: true }),\n prompt: 'login',\n })\n );\n }\n\n public handleRedirectCallback() {\n return from(this.clientApplication.handleRedirectPromise()).pipe(\n filter((result): result is AuthenticationResult => result !== null),\n map(result => ({\n state: result.state ? JSON.parse(result.state) : undefined,\n user: { sub: result.uniqueId, ...result.idTokenClaims },\n }))\n );\n }\n\n public getAccessToken() {\n const account = this.clientApplication.getAllAccounts()[0];\n const scopes = this.config.scopes;\n\n return from(this.clientApplication.acquireTokenSilent({ account, scopes })).pipe(map(result => result.accessToken));\n }\n\n public logout() {\n return from(this.clientApplication.logoutRedirect({ postLogoutRedirectUri: location.origin }));\n }\n\n public checkSession() {\n const accounts = this.clientApplication.getAllAccounts();\n const scopes = this.config.scopes;\n\n if (accounts.length === 1) {\n return from(this.clientApplication.acquireTokenSilent({ account: accounts[0], scopes })).pipe(\n map(result => ({ sub: result.uniqueId, ...result.idTokenClaims })),\n catchError(error => (error instanceof InteractionRequiredAuthError ? of(undefined) : throwError(error)))\n );\n } else {\n return of(undefined);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthError, BrowserAuthErrorMessage } from '@azure/msal-browser';\nimport { Actions, createEffect, ofType, OnInitEffects } from '@ngrx/effects';\nimport { of } from 'rxjs';\nimport { catchError, filter, map, switchMap } from 'rxjs/operators';\nimport {\n init,\n resetPassword,\n signedIn,\n signedOut,\n signIn,\n signInCompleted,\n signInFailed,\n signInRedirected,\n signOut,\n} from '../actions/auth.actions';\nimport { AuthService } from '../auth.service';\n\n@Injectable()\nexport class AuthEffects implements OnInitEffects {\n public readonly signIn$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signIn),\n switchMap(action =>\n this.auth.loginWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly passwordReset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(resetPassword),\n switchMap(action =>\n this.auth.resetPasswordWithRedirect({ target: action.returnUrl }).pipe(\n map(() => signInRedirected()),\n catchError(error => of(signInFailed({ error })))\n )\n )\n )\n );\n\n public readonly signInCompleted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInCompleted),\n map(({ state, user }) => (state.passwordReset ? signOut() : signedIn({ user })))\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 switchMap(_ =>\n this.auth.logout().pipe(\n map(() => signedOut()),\n catchError(() => of(signedOut()))\n )\n )\n )\n );\n\n public readonly init$ = createEffect(() =>\n this.actions$.pipe(\n ofType(init),\n switchMap(() => {\n const params = window.location.hash;\n\n if (\n (params.includes('code=') && params.includes('state=')) ||\n (params.includes('error=') && params.includes('error_description='))\n ) {\n return this.completeSignIn();\n } else {\n return this.auth.checkSession().pipe(\n map(user => this.getAuthResult(user)),\n catchError(error => of(signInFailed({ error })))\n );\n }\n })\n )\n );\n\n public readonly resetPassword$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isForgotPasswordError),\n map(() => resetPassword({ returnUrl: '/' }))\n )\n );\n\n public readonly failed$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signInFailed),\n filter(action => action.error instanceof AuthError),\n map(action => action.error as AuthError),\n filter(AuthEffects.isInteractionInProgress),\n map(() => signOut())\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 static isForgotPasswordError(error: AuthError) {\n return error.errorCode === 'access_denied' && error.errorMessage.indexOf('AADB2C90118') !== -1;\n }\n\n private static isInteractionInProgress(error: AuthError) {\n return error.errorCode === BrowserAuthErrorMessage.interactionInProgress.code;\n }\n\n private getAuthResult(user: { sub: string } | undefined) {\n if (user) {\n return signedIn({ user });\n } else {\n return signedOut();\n }\n }\n\n private completeSignIn() {\n return this.auth.handleRedirectCallback().pipe(\n map(result => signInCompleted({ state: result.state, user: result.user })),\n catchError(error => of(signInFailed({ error })))\n );\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { 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 constructor(private readonly auth: AuthService) {}\n\n public intercept(request: HttpRequest<any>, next: HttpHandler) {\n if (this.isSameDomain(request)) {\n return this.authorize(request).pipe(mergeMap(authorizedRequest => next.handle(authorizedRequest)));\n } else {\n return next.handle(request);\n }\n }\n\n private isSameDomain(request: HttpRequest<any>) {\n const isAbsolute = /^https?:\\/\\//i.test(request.url);\n\n return !isAbsolute;\n }\n\n private authorize(request: HttpRequest<any>) {\n const token$ = this.auth.getAccessToken();\n\n return token$.pipe(map(token => request.clone({ setHeaders: { Authorization: `Bearer ${token}` } })));\n }\n}\n","import { Action, createReducer, on } from '@ngrx/store';\nimport { signedIn, signedOut, signInFailed } from '../actions/auth.actions';\nimport { State } from '../state/auth.state';\n\nexport const noAuthentication: State = {\n authenticating: false,\n authenticated: false,\n};\n\nexport const startAuthentication: State = {\n authenticating: true,\n authenticated: false,\n};\n\nconst authReducer = 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\nexport function reducer(state: State | undefined, action: Action) {\n return authReducer(state, action);\n}\n","import { createFeatureSelector, select } from '@ngrx/store';\nimport { pipe } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { State } from '../state/auth.state';\n\nexport const featureKey = 'auth';\n\nexport const selectState = createFeatureSelector<State>(featureKey);\n\nexport const isAuthenticated = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.authenticated)\n);\n\nexport const getUser = pipe(\n select(selectState),\n filter(state => !state.authenticating),\n map(state => state.user)\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 './effects/auth.effects';\nimport { JwtInterceptor } from './jwt.interceptor';\nimport { reducer } from './reducers/auth.reducer';\nimport { featureKey } from './store';\n\n@NgModule({\n declarations: [],\n imports: [StoreModule.forFeature(featureKey, reducer), 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 { 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 './actions/auth.actions';\nimport { isAuthenticated } from './store';\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthConfig","i2.AuthService","i1.AuthService","i1","i2"],"mappings":"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"}
File without changes
@@ -1,4 +1,5 @@
1
1
  import { Profile } from '../state/auth.state';
2
+ export declare const init: import("@ngrx/store").ActionCreator<"[@thecla/b2c-angular] init", () => import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] init">>;
2
3
  export declare const signIn: import("@ngrx/store").ActionCreator<"[@thecla/b2c-angular] sign-in", (props: {
3
4
  returnUrl: string;
4
5
  }) => {
@@ -1,8 +1,8 @@
1
1
  import { Router } from '@angular/router';
2
- import { Actions } from '@ngrx/effects';
2
+ import { Actions, OnInitEffects } from '@ngrx/effects';
3
3
  import { AuthService } from '../auth.service';
4
4
  import * as i0 from "@angular/core";
5
- export declare class AuthEffects {
5
+ export declare class AuthEffects implements OnInitEffects {
6
6
  private readonly actions$;
7
7
  private readonly auth;
8
8
  private readonly router;
@@ -17,7 +17,7 @@ export declare class AuthEffects {
17
17
  } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] signed in">)> & import("@ngrx/effects").CreateEffectMetadata;
18
18
  readonly redirect$: import("rxjs").Observable<boolean> & import("@ngrx/effects").CreateEffectMetadata;
19
19
  readonly signOut$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] signed out">> & import("@ngrx/effects").CreateEffectMetadata;
20
- readonly init$: (({ scheduler }?: any) => import("rxjs").Observable<({
20
+ readonly init$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] signed out"> | ({
21
21
  error: Error;
22
22
  } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] sign in failed">) | ({
23
23
  state: {
@@ -25,16 +25,15 @@ export declare class AuthEffects {
25
25
  passwordReset: boolean;
26
26
  };
27
27
  user: import("@thecla/b2c-angular").Profile;
28
- } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] sign in completed">)> | import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] signed out"> | ({
29
- error: Error;
30
- } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] sign in failed">) | ({
28
+ } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] sign in completed">) | ({
31
29
  user: import("@thecla/b2c-angular").Profile;
32
- } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] signed in">)>) & import("@ngrx/effects").CreateEffectMetadata;
30
+ } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] signed in">)> & import("@ngrx/effects").CreateEffectMetadata;
33
31
  readonly resetPassword$: import("rxjs").Observable<{
34
32
  returnUrl: string;
35
33
  } & import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] reset password">> & import("@ngrx/effects").CreateEffectMetadata;
36
34
  readonly failed$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] sign out">> & import("@ngrx/effects").CreateEffectMetadata;
37
35
  constructor(actions$: Actions, auth: AuthService, router: Router);
36
+ ngrxOnInitEffects(): import("@ngrx/store/src/models").TypedAction<"[@thecla/b2c-angular] init">;
38
37
  private static isForgotPasswordError;
39
38
  private static isInteractionInProgress;
40
39
  private getAuthResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thecla/b2c-angular",
3
- "version": "5.0.1",
3
+ "version": "6.0.0",
4
4
  "author": "Hendrik Wouters",
5
5
  "description": "Angular module using NGRX to authenticate with Azure AD B2C",
6
6
  "repository": {
@@ -19,12 +19,12 @@
19
19
  },
20
20
  "homepage": "https://github.com/hwouters/auth0-angular#readme",
21
21
  "peerDependencies": {
22
- "@angular/common": "^13.0.0",
23
- "@angular/core": "^13.0.0",
24
- "@angular/router": "^13.0.0",
22
+ "@angular/common": "^14.0.0",
23
+ "@angular/core": "^14.0.0",
24
+ "@angular/router": "^14.0.0",
25
25
  "@azure/msal-browser": "^2.7.0",
26
- "@ngrx/effects": "^13.0.0",
27
- "@ngrx/store": "^13.0.0"
26
+ "@ngrx/effects": "^14.0.0",
27
+ "@ngrx/store": "^14.0.0"
28
28
  },
29
29
  "dependencies": {
30
30
  "tslib": "^2.0.0"
@@ -34,13 +34,13 @@
34
34
  "esm2020": "esm2020/thecla-b2c-angular.mjs",
35
35
  "fesm2020": "fesm2020/thecla-b2c-angular.mjs",
36
36
  "fesm2015": "fesm2015/thecla-b2c-angular.mjs",
37
- "typings": "thecla-b2c-angular.d.ts",
37
+ "typings": "index.d.ts",
38
38
  "exports": {
39
39
  "./package.json": {
40
40
  "default": "./package.json"
41
41
  },
42
42
  ".": {
43
- "types": "./thecla-b2c-angular.d.ts",
43
+ "types": "./index.d.ts",
44
44
  "esm2020": "./esm2020/thecla-b2c-angular.mjs",
45
45
  "es2020": "./fesm2020/thecla-b2c-angular.mjs",
46
46
  "es2015": "./fesm2015/thecla-b2c-angular.mjs",