imng-oidc-client 4.102.10

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.
Files changed (62) hide show
  1. package/README.md +50 -0
  2. package/esm2020/imng-oidc-client.mjs +5 -0
  3. package/esm2020/index.mjs +24 -0
  4. package/esm2020/lib/+state/oidc-user.facade.mjs +28 -0
  5. package/esm2020/lib/+state/oidc-user.selectors.mjs +13 -0
  6. package/esm2020/lib/+state/oidc.actions.mjs +37 -0
  7. package/esm2020/lib/+state/oidc.effects.mjs +66 -0
  8. package/esm2020/lib/+state/oidc.facade.mjs +136 -0
  9. package/esm2020/lib/+state/oidc.reducer.mjs +93 -0
  10. package/esm2020/lib/+state/oidc.selectors.mjs +40 -0
  11. package/esm2020/lib/components/access-denied.component.mjs +14 -0
  12. package/esm2020/lib/components/logout-success.component.mjs +18 -0
  13. package/esm2020/lib/img-oidc-client-routing.module.mjs +44 -0
  14. package/esm2020/lib/imng-oidc-client.module.mjs +96 -0
  15. package/esm2020/lib/models/arguments.model.mjs +2 -0
  16. package/esm2020/lib/models/constants.mjs +17 -0
  17. package/esm2020/lib/models/oidc-client-config.mjs +3 -0
  18. package/esm2020/lib/models/oidc-library-config.mjs +3 -0
  19. package/esm2020/lib/models/oidc-user-profile.mjs +2 -0
  20. package/esm2020/lib/models/oidc-user.mjs +2 -0
  21. package/esm2020/lib/services/auth-guard.mjs +40 -0
  22. package/esm2020/lib/services/oidc.service.mjs +166 -0
  23. package/esm2020/lib/services/permissions.guard.mjs +22 -0
  24. package/esm2020/lib/services/token-interceptor.service.mjs +35 -0
  25. package/esm2020/lib/support/support.component.mjs +85 -0
  26. package/esm2020/lib/util/jwt-decoder.mjs +11 -0
  27. package/esm2020/lib/util/oidc-client-configurator.mjs +24 -0
  28. package/fesm2015/imng-oidc-client.mjs +844 -0
  29. package/fesm2015/imng-oidc-client.mjs.map +1 -0
  30. package/fesm2020/imng-oidc-client.mjs +907 -0
  31. package/fesm2020/imng-oidc-client.mjs.map +1 -0
  32. package/imng-oidc-client.d.ts +5 -0
  33. package/index.d.ts +23 -0
  34. package/lib/+state/oidc-user.facade.d.ts +16 -0
  35. package/lib/+state/oidc-user.selectors.d.ts +7 -0
  36. package/lib/+state/oidc.actions.d.ts +72 -0
  37. package/lib/+state/oidc.effects.d.ts +58 -0
  38. package/lib/+state/oidc.facade.d.ts +56 -0
  39. package/lib/+state/oidc.reducer.d.ts +22 -0
  40. package/lib/+state/oidc.selectors.d.ts +20 -0
  41. package/lib/components/access-denied.component.d.ts +5 -0
  42. package/lib/components/logout-success.component.d.ts +5 -0
  43. package/lib/img-oidc-client-routing.module.d.ts +12 -0
  44. package/lib/imng-oidc-client.module.d.ts +17 -0
  45. package/lib/models/arguments.model.d.ts +21 -0
  46. package/lib/models/constants.d.ts +14 -0
  47. package/lib/models/oidc-client-config.d.ts +12 -0
  48. package/lib/models/oidc-library-config.d.ts +12 -0
  49. package/lib/models/oidc-user-profile.d.ts +4 -0
  50. package/lib/models/oidc-user.d.ts +15 -0
  51. package/lib/services/auth-guard.d.ts +14 -0
  52. package/lib/services/oidc.service.d.ts +37 -0
  53. package/lib/services/permissions.guard.d.ts +12 -0
  54. package/lib/services/token-interceptor.service.d.ts +12 -0
  55. package/lib/support/support.component.d.ts +15 -0
  56. package/lib/util/jwt-decoder.d.ts +1 -0
  57. package/lib/util/oidc-client-configurator.d.ts +3 -0
  58. package/package.json +54 -0
  59. package/src/assets/callback.html +44 -0
  60. package/src/assets/oidc-client.rsa256.slim.min.js +3 -0
  61. package/src/assets/renew-callback.html +18 -0
  62. package/src/assets/signout-callback.html +29 -0
package/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # imng-oidc-client
2
+
3
+ To utilize this library you will need to be in an Angular Application running NGRX.
4
+
5
+ In addition, you'll need to deploy these three files to the root of your site:
6
+
7
+ - callback.html -> [./src/assets/signout-callback.html](./src/assets/signout-callback.html)
8
+ - renew-callback.html -> [./src/assets/signout-callback.html](./src/assets/signout-callback.html)
9
+ - signout-callback.html -> [./src/assets/signout-callback.html](./src/assets/signout-callback.html)
10
+
11
+ To facilitate this last requirement, I recommend you utilize your angular.json and automate this process.
12
+
13
+ Open up your angular.json and navigate to the node for your project. Let's assume your project name is MyAngularProject and the folder name was my-angular-project. Just copy the code higlighted below to 'assets' node as shown below.
14
+
15
+ ```json
16
+ "MyAngularProject": {
17
+ "projectType": "application",
18
+ "schematics": {
19
+ "@nrwl/angular:component": {
20
+ "style": "scss"
21
+ }
22
+ },
23
+ "root": "apps/my-angular-project",
24
+ "sourceRoot": "apps/my-angular-project/src",
25
+ "prefix": "my-prefix",
26
+ "architect": {
27
+ "build": {
28
+ "builder": "@angular-devkit/build-angular:browser",
29
+ "options": {
30
+ "outputPath": "dist/apps/my-angular-project",
31
+ "index": "apps/my-angular-project/src/index.html",
32
+ "main": "apps/my-angular-project/src/main.ts",
33
+ "polyfills": "apps/my-angular-project/src/polyfills.ts",
34
+ "tsConfig": "apps/my-angular-project/tsconfig.app.json",
35
+ "aot": false,
36
+ "assets": [
37
+ "apps/my-angular-project/src/favicon.ico",
38
+ "apps/my-angular-project/src/assets",
39
+ "apps/my-angular-project/src/manifest.webmanifest",
40
+ // THIS IS WHAT YOU'LL NEED TO ADD (START)
41
+ {
42
+ "glob": "*",
43
+ "input": "node_modules/imng-oidc-client/src/assets",
44
+ "output": "/"
45
+ }
46
+ // THIS IS WHAT YOU'LL NEED TO ADD (END)
47
+ ],
48
+ ```
49
+
50
+ This library was generated with [Nx](https://nx.dev).
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1vaWRjLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvaW1uZy1vaWRjLWNsaWVudC9zcmMvaW1uZy1vaWRjLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ export * from './lib/imng-oidc-client.module';
2
+ export * from './lib/+state/oidc-user.facade';
3
+ export { OidcUserSelectors } from './lib/+state/oidc-user.selectors';
4
+ export * from './lib/+state/oidc.actions';
5
+ export * from './lib/+state/oidc.effects';
6
+ export * from './lib/+state/oidc.facade';
7
+ export { oidcReducer } from './lib/+state/oidc.reducer';
8
+ export { oidcQuery } from './lib/+state/oidc.selectors';
9
+ export * from './lib/models/arguments.model';
10
+ export { OIDC_CLIENT_CONFIG, } from './lib/models/oidc-client-config';
11
+ export * from './lib/models/oidc-user-profile';
12
+ export * from './lib/models/constants';
13
+ export * from './lib/util/oidc-client-configurator';
14
+ export * from './lib/services/auth-guard';
15
+ export * from './lib/services/oidc.service';
16
+ export * from './lib/services/token-interceptor.service';
17
+ export * from './lib/util/jwt-decoder';
18
+ export * from './lib/services/permissions.guard';
19
+ export * from './lib/components/access-denied.component';
20
+ export * from './lib/support/support.component';
21
+ export * from './lib/img-oidc-client-routing.module';
22
+ export * from './lib/models/oidc-user';
23
+ export * from './lib/components/logout-success.component';
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2ltbmctb2lkYy1jbGllbnQvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxPQUFPLEVBQXlCLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLE9BQU8sRUFFTCxrQkFBa0IsR0FDbkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW1uZy1vaWRjLWNsaWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL29pZGMtdXNlci5mYWNhZGUnO1xuZXhwb3J0IHsgT2lkY1VzZXJTZWxlY3RvcnMgfSBmcm9tICcuL2xpYi8rc3RhdGUvb2lkYy11c2VyLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvb2lkYy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9vaWRjLmVmZmVjdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL29pZGMuZmFjYWRlJztcbmV4cG9ydCB7IE9pZGNTdGF0ZSwgRXJyb3JTdGF0ZSwgb2lkY1JlZHVjZXIgfSBmcm9tICcuL2xpYi8rc3RhdGUvb2lkYy5yZWR1Y2VyJztcbmV4cG9ydCB7IG9pZGNRdWVyeSB9IGZyb20gJy4vbGliLytzdGF0ZS9vaWRjLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXJndW1lbnRzLm1vZGVsJztcbmV4cG9ydCB7XG4gIE9pZGNDbGllbnRDb25maWcsXG4gIE9JRENfQ0xJRU5UX0NPTkZJRyxcbn0gZnJvbSAnLi9saWIvbW9kZWxzL29pZGMtY2xpZW50LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvb2lkYy11c2VyLXByb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsL29pZGMtY2xpZW50LWNvbmZpZ3VyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hdXRoLWd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL29pZGMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90b2tlbi1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWwvand0LWRlY29kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcGVybWlzc2lvbnMuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hY2Nlc3MtZGVuaWVkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdXBwb3J0L3N1cHBvcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ltZy1vaWRjLWNsaWVudC1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvb2lkYy11c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9nb3V0LXN1Y2Nlc3MuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Store } from '@ngrx/store';
3
+ import { OidcUserSelectors } from './oidc-user.selectors';
4
+ import { map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngrx/store";
7
+ export class OidcUserFacade {
8
+ constructor(store) {
9
+ this.store = store;
10
+ this.profile$ = this.store.select(OidcUserSelectors.getProfile);
11
+ this.email$ = this.store.select(OidcUserSelectors.getEmail);
12
+ this.profilePicture$ = this.store.select(OidcUserSelectors.getProfilePicture);
13
+ this.permissions$ = this.store.select(OidcUserSelectors.getPermissions);
14
+ }
15
+ hasPermissions(requiredPermissions) {
16
+ return this.permissions$.pipe(map((t) => -1 <
17
+ requiredPermissions.findIndex((f) => -1 < (t?.findIndex((i) => i === f) || -1))));
18
+ }
19
+ }
20
+ OidcUserFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcUserFacade, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ OidcUserFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcUserFacade, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcUserFacade, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root',
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy11c2VyLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1vaWRjLWNsaWVudC9zcmMvbGliLytzdGF0ZS9vaWRjLXVzZXIuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUtyQyxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUE2QixLQUF1QjtRQUF2QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUNwRCxhQUFRLEdBQWdDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN2RCxpQkFBaUIsQ0FBQyxVQUFVLENBQzdCLENBQUM7UUFDRixXQUFNLEdBQW1DLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQzNCLENBQUM7UUFDRixvQkFBZSxHQUFtQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDakUsaUJBQWlCLENBQUMsaUJBQWlCLENBQ3BDLENBQUM7UUFDRixpQkFBWSxHQUFxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDaEUsaUJBQWlCLENBQUMsY0FBYyxDQUNqQyxDQUFDO0lBWnFELENBQUM7SUFjakQsY0FBYyxDQUNuQixtQkFBa0M7UUFFbEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDM0IsR0FBRyxDQUNELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUM7WUFDRixtQkFBbUIsQ0FBQyxTQUFTLENBQzNCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUNKLENBQ0YsQ0FBQztJQUNKLENBQUM7OzJHQTNCVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPaWRjVXNlclNlbGVjdG9ycyB9IGZyb20gJy4vb2lkYy11c2VyLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBPaWRjU3RhdGUgfSBmcm9tICcuL29pZGMucmVkdWNlcic7XG5pbXBvcnQgeyBPaWRjVXNlclByb2ZpbGUgfSBmcm9tICcuLi9tb2RlbHMvb2lkYy11c2VyLXByb2ZpbGUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT2lkY1VzZXJGYWNhZGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxPaWRjU3RhdGU+KSB7fVxuICBwcm9maWxlJDogT2JzZXJ2YWJsZTxPaWRjVXNlclByb2ZpbGU+ID0gdGhpcy5zdG9yZS5zZWxlY3QoXG4gICAgT2lkY1VzZXJTZWxlY3RvcnMuZ2V0UHJvZmlsZVxuICApO1xuICBlbWFpbCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IHRoaXMuc3RvcmUuc2VsZWN0KFxuICAgIE9pZGNVc2VyU2VsZWN0b3JzLmdldEVtYWlsXG4gICk7XG4gIHByb2ZpbGVQaWN0dXJlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gdGhpcy5zdG9yZS5zZWxlY3QoXG4gICAgT2lkY1VzZXJTZWxlY3RvcnMuZ2V0UHJvZmlsZVBpY3R1cmVcbiAgKTtcbiAgcGVybWlzc2lvbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPiA9IHRoaXMuc3RvcmUuc2VsZWN0KFxuICAgIE9pZGNVc2VyU2VsZWN0b3JzLmdldFBlcm1pc3Npb25zXG4gICk7XG5cbiAgcHVibGljIGhhc1Blcm1pc3Npb25zKFxuICAgIHJlcXVpcmVkUGVybWlzc2lvbnM6IEFycmF5PHN0cmluZz5cbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgICh0KSA9PlxuICAgICAgICAgIC0xIDxcbiAgICAgICAgICByZXF1aXJlZFBlcm1pc3Npb25zLmZpbmRJbmRleChcbiAgICAgICAgICAgIChmKSA9PiAtMSA8ICh0Py5maW5kSW5kZXgoKGkpID0+IGkgPT09IGYpIHx8IC0xKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { createSelector } from '@ngrx/store';
2
+ import { oidcQuery } from './oidc.selectors';
3
+ const getProfile = createSelector(oidcQuery.getOidcIdentity, (identity) => identity?.profile);
4
+ const getPermissions = createSelector(oidcQuery.selectOidcState, (state) => state?.permissions);
5
+ const getEmail = createSelector(getProfile, (profile) => profile?.email);
6
+ const getProfilePicture = createSelector(getProfile, (profile) => profile?.picture);
7
+ export const OidcUserSelectors = {
8
+ getProfile,
9
+ getEmail,
10
+ getProfilePicture,
11
+ getPermissions,
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy11c2VyLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1vaWRjLWNsaWVudC9zcmMvbGliLytzdGF0ZS9vaWRjLXVzZXIuc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTdDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FDL0IsU0FBUyxDQUFDLGVBQWUsRUFDekIsQ0FBQyxRQUFvQixFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBMEIsQ0FDL0QsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDbkMsU0FBUyxDQUFDLGVBQWUsRUFDekIsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUN6QyxDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRXpFLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUN0QyxVQUFVLEVBQ1YsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixVQUFVO0lBQ1YsUUFBUTtJQUNSLGlCQUFpQjtJQUNqQixjQUFjO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgT2lkY1VzZXJQcm9maWxlIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlci1wcm9maWxlJztcbmltcG9ydCB7IG9pZGNRdWVyeSB9IGZyb20gJy4vb2lkYy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgT2lkY1N0YXRlIH0gZnJvbSAnLi9vaWRjLnJlZHVjZXInO1xuaW1wb3J0IHsgSU9pZGNVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlcic7XG5cbmNvbnN0IGdldFByb2ZpbGUgPSBjcmVhdGVTZWxlY3RvcihcbiAgb2lkY1F1ZXJ5LmdldE9pZGNJZGVudGl0eSxcbiAgKGlkZW50aXR5PzogSU9pZGNVc2VyKSA9PiBpZGVudGl0eT8ucHJvZmlsZSBhcyBPaWRjVXNlclByb2ZpbGVcbik7XG5cbmNvbnN0IGdldFBlcm1pc3Npb25zID0gY3JlYXRlU2VsZWN0b3IoXG4gIG9pZGNRdWVyeS5zZWxlY3RPaWRjU3RhdGUsXG4gIChzdGF0ZTogT2lkY1N0YXRlKSA9PiBzdGF0ZT8ucGVybWlzc2lvbnNcbik7XG5cbmNvbnN0IGdldEVtYWlsID0gY3JlYXRlU2VsZWN0b3IoZ2V0UHJvZmlsZSwgKHByb2ZpbGUpID0+IHByb2ZpbGU/LmVtYWlsKTtcblxuY29uc3QgZ2V0UHJvZmlsZVBpY3R1cmUgPSBjcmVhdGVTZWxlY3RvcihcbiAgZ2V0UHJvZmlsZSxcbiAgKHByb2ZpbGUpID0+IHByb2ZpbGU/LnBpY3R1cmVcbik7XG5cbmV4cG9ydCBjb25zdCBPaWRjVXNlclNlbGVjdG9ycyA9IHtcbiAgZ2V0UHJvZmlsZSxcbiAgZ2V0RW1haWwsXG4gIGdldFByb2ZpbGVQaWN0dXJlLFxuICBnZXRQZXJtaXNzaW9ucyxcbn07XG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { createAction } from '@ngrx/store';
2
+ import { createPayloadAction } from 'imng-ngrx-utils';
3
+ export const clearCurrentEmployee = createAction('[Employees] Clear Current Employee');
4
+ // OIDC COMMANDS
5
+ export const getOidcUser = createAction('[Oidc] get oidc user');
6
+ export const removeOidcUser = createAction('[Oidc] remove oidc user');
7
+ export const userExpired = createAction('[Oidc] user expired');
8
+ export const userFound = createPayloadAction('[Oidc] user found');
9
+ export const onSessionChanged = createAction('[Oidc] session changed');
10
+ export const onAccessTokenExpired = createAction('[Oidc] on access token expired');
11
+ export const onAccessTokenExpiring = createAction('[Oidc] user expiring');
12
+ export const onUserLoading = createAction('[Oidc] user loading');
13
+ export const userDoneLoading = createAction('[Oidc] user done loading');
14
+ export const userDoneLoadingError = createPayloadAction('[Oidc] user done loading error');
15
+ export const onUserMetadataLoaded = createPayloadAction('[Oidc] on User Metadata Loaded');
16
+ // OIDC EVENTS
17
+ export const onSignInPopup = createPayloadAction('[Oidc] on SignInPopup');
18
+ export const onSignInRedirect = createPayloadAction('[Oidc] on onSignInRedirect');
19
+ export const onSignInSilent = createPayloadAction('[Oidc] on onSignInSilent');
20
+ export const onUserLoaded = createPayloadAction('[Oidc] on user loaded');
21
+ export const onUserloadError = createPayloadAction('[Oidc] user load error');
22
+ export const onUserUnloaded = createAction('[Oidc] on user unloaded');
23
+ export const onUserSignedOut = createAction('[Oidc] on user signed out');
24
+ export const onSilentRenewError = createPayloadAction('[Oidc] on silent renew error');
25
+ export const signInPopup = createPayloadAction('[Oidc] sign in popup');
26
+ export const signInRedirect = createPayloadAction('[Oidc] sign in redirect');
27
+ export const signInError = createPayloadAction('[Oidc] sign in popup error');
28
+ export const signOutPopup = createPayloadAction('[Oidc] sign out popup');
29
+ export const signOutPopupError = createPayloadAction('[Oidc] sign out popup error');
30
+ export const signOutRedirect = createPayloadAction('[Oidc] sign out redirect');
31
+ export const signOutRedirectError = createPayloadAction('[Oidc] sign out redirect error');
32
+ export const signInSilent = createPayloadAction('[Oidc] sign in silent');
33
+ export const oidcError = createPayloadAction('[Oidc] error');
34
+ // HTTP
35
+ export const setHttpError = createPayloadAction('[HTTP] Set Http Error');
36
+ export const clearErrors = createAction('[HTTP] Clear Errors');
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW9pZGMtY2xpZW50L3NyYy9saWIvK3N0YXRlL29pZGMuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFlBQVksQ0FDOUMsb0NBQW9DLENBQ3JDLENBQUM7QUFFRixnQkFBZ0I7QUFFaEIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFZLG1CQUFtQixDQUFDLENBQUM7QUFDN0UsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUM5QyxnQ0FBZ0MsQ0FDakMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDeEUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQ3JELGdDQUFnQyxDQUNqQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQ3JELGdDQUFnQyxDQUNqQyxDQUFDO0FBRUYsY0FBYztBQUNkLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FDOUMsdUJBQXVCLENBQ3hCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FDakQsNEJBQTRCLENBQzdCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQy9DLDBCQUEwQixDQUMzQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUM3Qyx1QkFBdUIsQ0FDeEIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FDaEQsd0JBQXdCLENBQ3pCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDdEUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUNuRCw4QkFBOEIsQ0FDL0IsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FDNUMsc0JBQXNCLENBQ3ZCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQy9DLHlCQUF5QixDQUMxQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUM1Qyw0QkFBNEIsQ0FDN0IsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FDN0MsdUJBQXVCLENBQ3hCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FDbEQsNkJBQTZCLENBQzlCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBRWhELDBCQUEwQixDQUFDLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQ3JELGdDQUFnQyxDQUNqQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUM3Qyx1QkFBdUIsQ0FDeEIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBUSxjQUFjLENBQUMsQ0FBQztBQUVwRSxPQUFPO0FBQ1AsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUM3Qyx1QkFBdUIsQ0FDeEIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFJlcXVlc3RBcnVnbWVudHMgfSBmcm9tICcuLi9tb2RlbHMvYXJndW1lbnRzLm1vZGVsJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSU9pZGNVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlcic7XG5pbXBvcnQgeyBjcmVhdGVQYXlsb2FkQWN0aW9uIH0gZnJvbSAnaW1uZy1uZ3J4LXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IGNsZWFyQ3VycmVudEVtcGxveWVlID0gY3JlYXRlQWN0aW9uKFxuICAnW0VtcGxveWVlc10gQ2xlYXIgQ3VycmVudCBFbXBsb3llZSdcbik7XG5cbi8vIE9JREMgQ09NTUFORFNcblxuZXhwb3J0IGNvbnN0IGdldE9pZGNVc2VyID0gY3JlYXRlQWN0aW9uKCdbT2lkY10gZ2V0IG9pZGMgdXNlcicpO1xuZXhwb3J0IGNvbnN0IHJlbW92ZU9pZGNVc2VyID0gY3JlYXRlQWN0aW9uKCdbT2lkY10gcmVtb3ZlIG9pZGMgdXNlcicpO1xuZXhwb3J0IGNvbnN0IHVzZXJFeHBpcmVkID0gY3JlYXRlQWN0aW9uKCdbT2lkY10gdXNlciBleHBpcmVkJyk7XG5leHBvcnQgY29uc3QgdXNlckZvdW5kID0gY3JlYXRlUGF5bG9hZEFjdGlvbjxJT2lkY1VzZXI+KCdbT2lkY10gdXNlciBmb3VuZCcpO1xuZXhwb3J0IGNvbnN0IG9uU2Vzc2lvbkNoYW5nZWQgPSBjcmVhdGVBY3Rpb24oJ1tPaWRjXSBzZXNzaW9uIGNoYW5nZWQnKTtcbmV4cG9ydCBjb25zdCBvbkFjY2Vzc1Rva2VuRXhwaXJlZCA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tPaWRjXSBvbiBhY2Nlc3MgdG9rZW4gZXhwaXJlZCdcbik7XG5leHBvcnQgY29uc3Qgb25BY2Nlc3NUb2tlbkV4cGlyaW5nID0gY3JlYXRlQWN0aW9uKCdbT2lkY10gdXNlciBleHBpcmluZycpO1xuZXhwb3J0IGNvbnN0IG9uVXNlckxvYWRpbmcgPSBjcmVhdGVBY3Rpb24oJ1tPaWRjXSB1c2VyIGxvYWRpbmcnKTtcbmV4cG9ydCBjb25zdCB1c2VyRG9uZUxvYWRpbmcgPSBjcmVhdGVBY3Rpb24oJ1tPaWRjXSB1c2VyIGRvbmUgbG9hZGluZycpO1xuZXhwb3J0IGNvbnN0IHVzZXJEb25lTG9hZGluZ0Vycm9yID0gY3JlYXRlUGF5bG9hZEFjdGlvbjxFcnJvcj4oXG4gICdbT2lkY10gdXNlciBkb25lIGxvYWRpbmcgZXJyb3InXG4pO1xuZXhwb3J0IGNvbnN0IG9uVXNlck1ldGFkYXRhTG9hZGVkID0gY3JlYXRlUGF5bG9hZEFjdGlvbjx1bmtub3duPihcbiAgJ1tPaWRjXSBvbiBVc2VyIE1ldGFkYXRhIExvYWRlZCdcbik7XG5cbi8vIE9JREMgRVZFTlRTXG5leHBvcnQgY29uc3Qgb25TaWduSW5Qb3B1cCA9IGNyZWF0ZVBheWxvYWRBY3Rpb248SU9pZGNVc2VyPihcbiAgJ1tPaWRjXSBvbiBTaWduSW5Qb3B1cCdcbik7XG5leHBvcnQgY29uc3Qgb25TaWduSW5SZWRpcmVjdCA9IGNyZWF0ZVBheWxvYWRBY3Rpb248SU9pZGNVc2VyPihcbiAgJ1tPaWRjXSBvbiBvblNpZ25JblJlZGlyZWN0J1xuKTtcbmV4cG9ydCBjb25zdCBvblNpZ25JblNpbGVudCA9IGNyZWF0ZVBheWxvYWRBY3Rpb248SU9pZGNVc2VyPihcbiAgJ1tPaWRjXSBvbiBvblNpZ25JblNpbGVudCdcbik7XG5cbmV4cG9ydCBjb25zdCBvblVzZXJMb2FkZWQgPSBjcmVhdGVQYXlsb2FkQWN0aW9uPElPaWRjVXNlcj4oXG4gICdbT2lkY10gb24gdXNlciBsb2FkZWQnXG4pO1xuZXhwb3J0IGNvbnN0IG9uVXNlcmxvYWRFcnJvciA9IGNyZWF0ZVBheWxvYWRBY3Rpb248RXJyb3I+KFxuICAnW09pZGNdIHVzZXIgbG9hZCBlcnJvcidcbik7XG5leHBvcnQgY29uc3Qgb25Vc2VyVW5sb2FkZWQgPSBjcmVhdGVBY3Rpb24oJ1tPaWRjXSBvbiB1c2VyIHVubG9hZGVkJyk7XG5leHBvcnQgY29uc3Qgb25Vc2VyU2lnbmVkT3V0ID0gY3JlYXRlQWN0aW9uKCdbT2lkY10gb24gdXNlciBzaWduZWQgb3V0Jyk7XG5leHBvcnQgY29uc3Qgb25TaWxlbnRSZW5ld0Vycm9yID0gY3JlYXRlUGF5bG9hZEFjdGlvbjxFcnJvcj4oXG4gICdbT2lkY10gb24gc2lsZW50IHJlbmV3IGVycm9yJ1xuKTtcbmV4cG9ydCBjb25zdCBzaWduSW5Qb3B1cCA9IGNyZWF0ZVBheWxvYWRBY3Rpb248UmVxdWVzdEFydWdtZW50cz4oXG4gICdbT2lkY10gc2lnbiBpbiBwb3B1cCdcbik7XG5leHBvcnQgY29uc3Qgc2lnbkluUmVkaXJlY3QgPSBjcmVhdGVQYXlsb2FkQWN0aW9uPFJlcXVlc3RBcnVnbWVudHMgfCB1bmRlZmluZWQ+KFxuICAnW09pZGNdIHNpZ24gaW4gcmVkaXJlY3QnXG4pO1xuZXhwb3J0IGNvbnN0IHNpZ25JbkVycm9yID0gY3JlYXRlUGF5bG9hZEFjdGlvbjxFcnJvcj4oXG4gICdbT2lkY10gc2lnbiBpbiBwb3B1cCBlcnJvcidcbik7XG5leHBvcnQgY29uc3Qgc2lnbk91dFBvcHVwID0gY3JlYXRlUGF5bG9hZEFjdGlvbjxSZXF1ZXN0QXJ1Z21lbnRzPihcbiAgJ1tPaWRjXSBzaWduIG91dCBwb3B1cCdcbik7XG5leHBvcnQgY29uc3Qgc2lnbk91dFBvcHVwRXJyb3IgPSBjcmVhdGVQYXlsb2FkQWN0aW9uPHN0cmluZz4oXG4gICdbT2lkY10gc2lnbiBvdXQgcG9wdXAgZXJyb3InXG4pO1xuZXhwb3J0IGNvbnN0IHNpZ25PdXRSZWRpcmVjdCA9IGNyZWF0ZVBheWxvYWRBY3Rpb248XG4gIFJlcXVlc3RBcnVnbWVudHMgfCB1bmRlZmluZWRcbj4oJ1tPaWRjXSBzaWduIG91dCByZWRpcmVjdCcpO1xuZXhwb3J0IGNvbnN0IHNpZ25PdXRSZWRpcmVjdEVycm9yID0gY3JlYXRlUGF5bG9hZEFjdGlvbjxzdHJpbmc+KFxuICAnW09pZGNdIHNpZ24gb3V0IHJlZGlyZWN0IGVycm9yJ1xuKTtcbmV4cG9ydCBjb25zdCBzaWduSW5TaWxlbnQgPSBjcmVhdGVQYXlsb2FkQWN0aW9uPFJlcXVlc3RBcnVnbWVudHM+KFxuICAnW09pZGNdIHNpZ24gaW4gc2lsZW50J1xuKTtcbmV4cG9ydCBjb25zdCBvaWRjRXJyb3IgPSBjcmVhdGVQYXlsb2FkQWN0aW9uPEVycm9yPignW09pZGNdIGVycm9yJyk7XG5cbi8vIEhUVFBcbmV4cG9ydCBjb25zdCBzZXRIdHRwRXJyb3IgPSBjcmVhdGVQYXlsb2FkQWN0aW9uPEh0dHBFcnJvclJlc3BvbnNlPihcbiAgJ1tIVFRQXSBTZXQgSHR0cCBFcnJvcidcbik7XG5leHBvcnQgY29uc3QgY2xlYXJFcnJvcnMgPSBjcmVhdGVBY3Rpb24oJ1tIVFRQXSBDbGVhciBFcnJvcnMnKTtcbiJdfQ==
@@ -0,0 +1,66 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { Actions, ofType, createEffect } from '@ngrx/effects';
3
+ import { of } from 'rxjs';
4
+ import { catchError, concatMap, map, filter, tap, switchMap, } from 'rxjs/operators';
5
+ import { OidcService } from '../services/oidc.service';
6
+ import * as oidcActions from './oidc.actions';
7
+ import { Router } from '@angular/router';
8
+ import { oidcLogoutRoute } from '../img-oidc-client-routing.module';
9
+ import { OIDC_LIBRARY_CONFIG, } from '../models/oidc-library-config';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngrx/effects";
12
+ import * as i2 from "../services/oidc.service";
13
+ import * as i3 from "@angular/router";
14
+ export class OidcEffects {
15
+ constructor(actions$, oidcService, oidcLibraryOptions, router) {
16
+ this.actions$ = actions$;
17
+ this.oidcService = oidcService;
18
+ this.oidcLibraryOptions = oidcLibraryOptions;
19
+ this.router = router;
20
+ this.getOidcUser$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.getOidcUser), switchMap(() => this.oidcService.getOidcUser().pipe(map((userData) => this.makeOidcUserSerializable(userData)), filter((userData) => !!userData), map((userData) => oidcActions.userFound(userData)), catchError((err) => of(oidcActions.userDoneLoadingError(err)))))));
21
+ this.silentRenew$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.userFound), filter((userFound) =>
22
+ // user expired, initiate silent sign-in if configured to automatic
23
+ (userFound.payload != null &&
24
+ userFound.payload.expired &&
25
+ this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||
26
+ false), map((userFound) => oidcActions.signInSilent(userFound.payload))));
27
+ this.removeOidcUser$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.removeOidcUser), concatMap(() => this.oidcService.removeOidcUser().pipe(map(() => oidcActions.userDoneLoading()), catchError((err) => of(oidcActions.oidcError(err)))))));
28
+ this.userDoneLoadingNoMetadata$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.userFound), filter(() => !this.oidcLibraryOptions.getUserMetadata), map(() => oidcActions.userDoneLoading())));
29
+ this.userDoneLoadingWithMetadata$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.userFound), filter(() => this.oidcLibraryOptions.getUserMetadata || false), switchMap(() => this.oidcService.getUserMetadata()), map((metadata) => oidcActions.onUserMetadataLoaded(metadata))));
30
+ this.onAccessTokenExpired$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.onAccessTokenExpired), map(() => oidcActions.removeOidcUser())));
31
+ this.signInPopup$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.signInPopup), concatMap((args) => this.oidcService.signInPopup(args.payload).pipe(map((user) => oidcActions.onSignInPopup(this.makeOidcUserSerializable(user))), catchError((err) => of(oidcActions.signInError(err)))))));
32
+ this.signInRedirect$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.signInRedirect), concatMap((args) => this.oidcService.signInRedirect(args.payload).pipe(concatMap(() => this.oidcService.signinRedirectCallback()), map((user) => oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user))), catchError((err) => of(oidcActions.signInError(err)))))));
33
+ this.signInSilent$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.signInSilent), concatMap((args) => this.oidcService.signInSilent(args.payload).pipe(map((user) => oidcActions.onSignInSilent(this.makeOidcUserSerializable(user))), catchError((err) => of(oidcActions.onSilentRenewError(err)))))));
34
+ this.signOutPopup$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.signOutPopup), concatMap((args) => this.oidcService.signOutPopup(args.payload).pipe(map(() => oidcActions.onUserSignedOut()), catchError((err) => of(oidcActions.signOutPopupError(err.message)))))));
35
+ this.signOutRedirect$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.signOutRedirect), concatMap((args) => this.oidcService.signOutRedirect(args.payload).pipe(map(() => oidcActions.onUserSignedOut()), catchError((err) => of(oidcActions.signOutRedirectError(err.message)))))));
36
+ this.onUserSignedOut$ = createEffect(() => this.actions$.pipe(ofType(oidcActions.onUserSignedOut, oidcActions.signOutPopupError, oidcActions.signOutRedirectError), tap(() => {
37
+ localStorage.clear();
38
+ sessionStorage.clear();
39
+ this.router.navigateByUrl(oidcLogoutRoute.path || '');
40
+ })), { dispatch: false });
41
+ }
42
+ ngrxOnInitEffects() {
43
+ return oidcActions.getOidcUser();
44
+ }
45
+ makeOidcUserSerializable(user) {
46
+ if (user?.toStorageString) {
47
+ user = {
48
+ ...user,
49
+ toStorageString: undefined,
50
+ };
51
+ }
52
+ return user;
53
+ }
54
+ }
55
+ OidcEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcEffects, deps: [{ token: i1.Actions }, { token: i2.OidcService }, { token: OIDC_LIBRARY_CONFIG }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
56
+ OidcEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcEffects, providedIn: 'root' });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcEffects, decorators: [{
58
+ type: Injectable,
59
+ args: [{
60
+ providedIn: 'root',
61
+ }]
62
+ }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.OidcService }, { type: undefined, decorators: [{
63
+ type: Inject,
64
+ args: [OIDC_LIBRARY_CONFIG]
65
+ }] }, { type: i3.Router }]; } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW9pZGMtY2xpZW50L3NyYy9saWIvK3N0YXRlL29pZGMuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsR0FBRyxFQUNILE1BQU0sRUFDTixHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBRUwsbUJBQW1CLEdBQ3BCLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBS3ZDLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLFFBQWlCLEVBQ2pCLFdBQXdCLEVBRXhCLGtCQUFxQyxFQUNyQyxNQUFjO1FBSmQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUV4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHakMsaUJBQVksR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsV0FBVyxD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LElBQXNCO1FBQzdDLElBQUksSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN6QixJQUFJLEdBQUc7Z0JBQ0wsR0FBRyxJQUFJO2dCQUNQLGVBQWUsRUFBRSxTQUFTO2FBQzNCLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBaUIsQ0FBQztJQUMzQixDQUFDOzt3R0E1S1UsV0FBVyxvRUFJWixtQkFBbUI7NEdBSmxCLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLSSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBPbkluaXRFZmZlY3RzLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBjb25jYXRNYXAsXG4gIG1hcCxcbiAgZmlsdGVyLFxuICB0YXAsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2lkY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9vaWRjLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgb2lkY0FjdGlvbnMgZnJvbSAnLi9vaWRjLmFjdGlvbnMnO1xuaW1wb3J0IHsgSU9pZGNVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgb2lkY0xvZ291dFJvdXRlIH0gZnJvbSAnLi4vaW1nLW9pZGMtY2xpZW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7XG4gIE9pZGNMaWJyYXJ5Q29uZmlnLFxuICBPSURDX0xJQlJBUllfQ09ORklHLFxufSBmcm9tICcuLi9tb2RlbHMvb2lkYy1saWJyYXJ5LWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPaWRjRWZmZWN0cyBpbXBsZW1lbnRzIE9uSW5pdEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2lkY1NlcnZpY2U6IE9pZGNTZXJ2aWNlLFxuICAgIEBJbmplY3QoT0lEQ19MSUJSQVJZX0NPTkZJRylcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9pZGNMaWJyYXJ5T3B0aW9uczogT2lkY0xpYnJhcnlDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgZ2V0T2lkY1VzZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKG9pZGNBY3Rpb25zLmdldE9pZGNVc2VyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLm9pZGNTZXJ2aWNlLmdldE9pZGNVc2VyKCkucGlwZShcbiAgICAgICAgICBtYXAoKHVzZXJEYXRhOiBJT2lkY1VzZXIgfCBudWxsKSA9PlxuICAgICAgICAgICAgdGhpcy5tYWtlT2lkY1VzZXJTZXJpYWxpemFibGUodXNlckRhdGEpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmaWx0ZXIoKHVzZXJEYXRhOiBJT2lkY1VzZXIpID0+ICEhdXNlckRhdGEpLFxuICAgICAgICAgIG1hcCgodXNlckRhdGE6IElPaWRjVXNlcikgPT4gb2lkY0FjdGlvbnMudXNlckZvdW5kKHVzZXJEYXRhKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBvZihvaWRjQWN0aW9ucy51c2VyRG9uZUxvYWRpbmdFcnJvcihlcnIpKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzaWxlbnRSZW5ldyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUob2lkY0FjdGlvbnMudXNlckZvdW5kKSxcbiAgICAgIGZpbHRlcihcbiAgICAgICAgKHVzZXJGb3VuZDogeyBwYXlsb2FkOiBJT2lkY1VzZXIgfSkgPT5cbiAgICAgICAgICAvLyB1c2VyIGV4cGlyZWQsIGluaXRpYXRlIHNpbGVudCBzaWduLWluIGlmIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljXG4gICAgICAgICAgKHVzZXJGb3VuZC5wYXlsb2FkICE9IG51bGwgJiZcbiAgICAgICAgICAgIHVzZXJGb3VuZC5wYXlsb2FkLmV4cGlyZWQgJiZcbiAgICAgICAgICAgIHRoaXMub2lkY0xpYnJhcnlPcHRpb25zLm9pZGNfY29uZmlnPy5hdXRvbWF0aWNTaWxlbnRSZW5ldykgfHxcbiAgICAgICAgICBmYWxzZVxuICAgICAgKSxcbiAgICAgIG1hcCgodXNlckZvdW5kKSA9PiBvaWRjQWN0aW9ucy5zaWduSW5TaWxlbnQodXNlckZvdW5kLnBheWxvYWQpKVxuICAgIClcbiAgKTtcblxuICByZW1vdmVPaWRjVXNlciQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUob2lkY0FjdGlvbnMucmVtb3ZlT2lkY1VzZXIpLFxuICAgICAgY29uY2F0TWFwKCgpID0+XG4gICAgICAgIHRoaXMub2lkY1NlcnZpY2UucmVtb3ZlT2lkY1VzZXIoKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBvaWRjQWN0aW9ucy51c2VyRG9uZUxvYWRpbmcoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBvZihvaWRjQWN0aW9ucy5vaWRjRXJyb3IoZXJyKSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgdXNlckRvbmVMb2FkaW5nTm9NZXRhZGF0YSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUob2lkY0FjdGlvbnMudXNlckZvdW5kKSxcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5vaWRjTGlicmFyeU9wdGlvbnMuZ2V0VXNlck1ldGFkYXRhKSxcbiAgICAgIG1hcCgoKSA9PiBvaWRjQWN0aW9ucy51c2VyRG9uZUxvYWRpbmcoKSlcbiAgICApXG4gICk7XG5cbiAgdXNlckRvbmVMb2FkaW5nV2l0aE1ldGFkYXRhJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShvaWRjQWN0aW9ucy51c2VyRm91bmQpLFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMub2lkY0xpYnJhcnlPcHRpb25zLmdldFVzZXJNZXRhZGF0YSB8fCBmYWxzZSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5vaWRjU2VydmljZS5nZXRVc2VyTWV0YWRhdGEoKSksXG4gICAgICBtYXAoKG1ldGFkYXRhKSA9PiBvaWRjQWN0aW9ucy5vblVzZXJNZXRhZGF0YUxvYWRlZChtZXRhZGF0YSkpXG4gICAgKVxuICApO1xuXG4gIG9uQWNjZXNzVG9rZW5FeHBpcmVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShvaWRjQWN0aW9ucy5vbkFjY2Vzc1Rva2VuRXhwaXJlZCksXG4gICAgICBtYXAoKCkgPT4gb2lkY0FjdGlvbnMucmVtb3ZlT2lkY1VzZXIoKSlcbiAgICApXG4gICk7XG5cbiAgc2lnbkluUG9wdXAkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKG9pZGNBY3Rpb25zLnNpZ25JblBvcHVwKSxcbiAgICAgIGNvbmNhdE1hcCgoYXJncykgPT5cbiAgICAgICAgdGhpcy5vaWRjU2VydmljZS5zaWduSW5Qb3B1cChhcmdzLnBheWxvYWQpLnBpcGUoXG4gICAgICAgICAgbWFwKCh1c2VyKSA9PlxuICAgICAgICAgICAgb2lkY0FjdGlvbnMub25TaWduSW5Qb3B1cCh0aGlzLm1ha2VPaWRjVXNlclNlcmlhbGl6YWJsZSh1c2VyKSlcbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gb2Yob2lkY0FjdGlvbnMuc2lnbkluRXJyb3IoZXJyKSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgc2lnbkluUmVkaXJlY3QkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKG9pZGNBY3Rpb25zLnNpZ25JblJlZGlyZWN0KSxcbiAgICAgIGNvbmNhdE1hcCgoYXJncykgPT5cbiAgICAgICAgdGhpcy5vaWRjU2VydmljZS5zaWduSW5SZWRpcmVjdChhcmdzLnBheWxvYWQpLnBpcGUoXG4gICAgICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMub2lkY1NlcnZpY2Uuc2lnbmluUmVkaXJlY3RDYWxsYmFjaygpKSxcbiAgICAgICAgICBtYXAoKHVzZXIpID0+XG4gICAgICAgICAgICBvaWRjQWN0aW9ucy5vblNpZ25JblJlZGlyZWN0KHRoaXMubWFrZU9pZGNVc2VyU2VyaWFsaXphYmxlKHVzZXIpKVxuICAgICAgICAgICksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBvZihvaWRjQWN0aW9ucy5zaWduSW5FcnJvcihlcnIpKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzaWduSW5TaWxlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKG9pZGNBY3Rpb25zLnNpZ25JblNpbGVudCksXG4gICAgICBjb25jYXRNYXAoKGFyZ3MpID0+XG4gICAgICAgIHRoaXMub2lkY1NlcnZpY2Uuc2lnbkluU2lsZW50KGFyZ3MucGF5bG9hZCkucGlwZShcbiAgICAgICAgICBtYXAoKHVzZXIpID0+XG4gICAgICAgICAgICBvaWRjQWN0aW9ucy5vblNpZ25JblNpbGVudCh0aGlzLm1ha2VPaWRjVXNlclNlcmlhbGl6YWJsZSh1c2VyKSlcbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gb2Yob2lkY0FjdGlvbnMub25TaWxlbnRSZW5ld0Vycm9yKGVycikpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNpZ25PdXRQb3B1cCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUob2lkY0FjdGlvbnMuc2lnbk91dFBvcHVwKSxcbiAgICAgIGNvbmNhdE1hcCgoYXJncykgPT5cbiAgICAgICAgdGhpcy5vaWRjU2VydmljZS5zaWduT3V0UG9wdXAoYXJncy5wYXlsb2FkKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBvaWRjQWN0aW9ucy5vblVzZXJTaWduZWRPdXQoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBvZihvaWRjQWN0aW9ucy5zaWduT3V0UG9wdXBFcnJvcihlcnIubWVzc2FnZSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNpZ25PdXRSZWRpcmVjdCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUob2lkY0FjdGlvbnMuc2lnbk91dFJlZGlyZWN0KSxcbiAgICAgIGNvbmNhdE1hcCgoYXJncykgPT5cbiAgICAgICAgdGhpcy5vaWRjU2VydmljZS5zaWduT3V0UmVkaXJlY3QoYXJncy5wYXlsb2FkKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBvaWRjQWN0aW9ucy5vblVzZXJTaWduZWRPdXQoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBvZihvaWRjQWN0aW9ucy5zaWduT3V0UmVkaXJlY3RFcnJvcihlcnIubWVzc2FnZSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIG9uVXNlclNpZ25lZE91dCQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKFxuICAgICAgICAgIG9pZGNBY3Rpb25zLm9uVXNlclNpZ25lZE91dCxcbiAgICAgICAgICBvaWRjQWN0aW9ucy5zaWduT3V0UG9wdXBFcnJvcixcbiAgICAgICAgICBvaWRjQWN0aW9ucy5zaWduT3V0UmVkaXJlY3RFcnJvclxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChvaWRjTG9nb3V0Um91dGUucGF0aCB8fCAnJyk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBuZ3J4T25Jbml0RWZmZWN0cygpOiBBY3Rpb24ge1xuICAgIHJldHVybiBvaWRjQWN0aW9ucy5nZXRPaWRjVXNlcigpO1xuICB9XG5cbiAgbWFrZU9pZGNVc2VyU2VyaWFsaXphYmxlKHVzZXI6IElPaWRjVXNlciB8IG51bGwpOiBJT2lkY1VzZXIge1xuICAgIGlmICh1c2VyPy50b1N0b3JhZ2VTdHJpbmcpIHtcbiAgICAgIHVzZXIgPSB7XG4gICAgICAgIC4uLnVzZXIsXG4gICAgICAgIHRvU3RvcmFnZVN0cmluZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVzZXIgYXMgSU9pZGNVc2VyO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,136 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable } from '@angular/core';
3
+ import { Store } from '@ngrx/store';
4
+ import { filter, take, map } from 'rxjs/operators';
5
+ import { oidcQuery } from './oidc.selectors';
6
+ import { OidcService } from '../services/oidc.service';
7
+ import { OidcEvent } from '../models/constants';
8
+ import * as oidcActions from './oidc.actions';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ngrx/store";
11
+ import * as i2 from "../services/oidc.service";
12
+ export class OidcFacade {
13
+ constructor(store, oidcService) {
14
+ this.store = store;
15
+ this.oidcService = oidcService;
16
+ this.loading$ = this.store.select(oidcQuery.getOidcLoading);
17
+ this.expiring$ = this.store.select(oidcQuery.isIdentityExpiring);
18
+ this.expired$ = this.store.select(oidcQuery.isIdentityExpired);
19
+ this.loggedIn$ = this.store.select(oidcQuery.isLoggedIn);
20
+ this.identity$ = this.store.select(oidcQuery.getOidcIdentity);
21
+ this.accessToken$ = this.store.select(oidcQuery.getAccessToken);
22
+ this.httpError$ = this.store.select(oidcQuery.getHttpError);
23
+ this.signInError$ = this.store.select(oidcQuery.getSignInError);
24
+ this.silentRenewError$ = this.store.select(oidcQuery.getSilentRenewError);
25
+ this.hasErrors$ = this.store.select(oidcQuery.hasErrors);
26
+ this.permissions$ = this.store.select(oidcQuery.getPermissions);
27
+ this.audiences$ = this.store.select(oidcQuery.getAudiences);
28
+ this.expiresAt$ = this.store.select(oidcQuery.getExpiresAt);
29
+ this.userMetadata$ = this.store.select(oidcQuery.getUserMetadata);
30
+ this.registerDefaultEvents();
31
+ }
32
+ // default bindings to events
33
+ addUserUnLoaded() {
34
+ if (this.store) {
35
+ this.store.dispatch(oidcActions.onUserUnloaded());
36
+ }
37
+ }
38
+ accessTokenExpired() {
39
+ if (this.store) {
40
+ this.store.dispatch(oidcActions.onAccessTokenExpired());
41
+ }
42
+ else {
43
+ sessionStorage.clear();
44
+ localStorage.clear();
45
+ window.location.reload();
46
+ }
47
+ }
48
+ accessTokenExpiring() {
49
+ if (this.store) {
50
+ this.store.dispatch(oidcActions.onAccessTokenExpiring());
51
+ }
52
+ else {
53
+ this.accessTokenExpired();
54
+ }
55
+ }
56
+ addSilentRenewError(...ev) {
57
+ this.store.dispatch(oidcActions.onSilentRenewError(ev[0]));
58
+ }
59
+ addUserLoaded(...ev) {
60
+ this.store.dispatch(oidcActions.onUserLoaded(ev[0]));
61
+ }
62
+ addUserSignedOut() {
63
+ this.oidcService.removeOidcUser();
64
+ this.store.dispatch(oidcActions.onUserSignedOut());
65
+ }
66
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
+ addUserSessionChanged() {
68
+ this.store.dispatch(oidcActions.onSessionChanged());
69
+ }
70
+ clearErrors() {
71
+ this.store.dispatch(oidcActions.clearErrors());
72
+ }
73
+ // OIDC Methods
74
+ getOidcUser() {
75
+ this.store.dispatch(oidcActions.getOidcUser());
76
+ }
77
+ removeOidcUser() {
78
+ this.store.dispatch(oidcActions.removeOidcUser());
79
+ }
80
+ getUserManager() {
81
+ return this.oidcService.getUserManager();
82
+ }
83
+ getOidcClient() {
84
+ return this.oidcService.getOidcClient();
85
+ }
86
+ /**
87
+ * Convenient function to wait for loaded.
88
+ */
89
+ waitForAuthenticationLoaded() {
90
+ return this.loading$.pipe(filter((loading) => loading === false), take(1), map(() => true));
91
+ }
92
+ signinPopup(args) {
93
+ this.store.dispatch(oidcActions.signInPopup(args));
94
+ }
95
+ signinRedirect(args) {
96
+ this.store.dispatch(oidcActions.signInRedirect(args));
97
+ }
98
+ signinSilent(args) {
99
+ this.store.dispatch(oidcActions.signInSilent(args));
100
+ }
101
+ signoutPopup(args) {
102
+ this.store.dispatch(oidcActions.signOutPopup(args));
103
+ }
104
+ signoutRedirect(args) {
105
+ this.store.dispatch(oidcActions.signOutRedirect(args));
106
+ }
107
+ getSigninUrl(args) {
108
+ return this.oidcService.getSigninUrl(args);
109
+ }
110
+ getSignoutUrl(args) {
111
+ return this.oidcService.getSignoutUrl(args);
112
+ }
113
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
+ registerEvent(event, callback) {
115
+ this.oidcService.registerOidcEvent(event, callback);
116
+ }
117
+ registerDefaultEvents() {
118
+ // add simple loggers
119
+ this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);
120
+ this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);
121
+ this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);
122
+ this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);
123
+ this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);
124
+ this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);
125
+ this.registerEvent(OidcEvent.UserSessionChanged, this.addUserSessionChanged);
126
+ }
127
+ }
128
+ OidcFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcFacade, deps: [{ token: i1.Store }, { token: i2.OidcService }], target: i0.ɵɵFactoryTarget.Injectable });
129
+ OidcFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcFacade, providedIn: 'root' });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: OidcFacade, decorators: [{
131
+ type: Injectable,
132
+ args: [{
133
+ providedIn: 'root',
134
+ }]
135
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.OidcService }]; } });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctb2lkYy1jbGllbnQvc3JjL2xpYi8rc3RhdGUvb2lkYy5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssV0FBVyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzlDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQ21CLEtBQXVCLEVBQ3ZCLFdBQXdCO1FBRHhCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBSzNDLGFBQVEsR0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLGNBQVMsR0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ2hELFNBQVMsQ0FBQyxrQkFBa0IsQ0FDN0IsQ0FBQztRQUNGLGFBQVEsR0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQy9DLFNBQVMsQ0FBQyxpQkFBaUIsQ0FDNUIsQ0FBQztRQUNGLGNBQVMsR0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLGNBQVMsR0FB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QVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxDQUNoQixTQUFTLENBQUMsa0JBQWtCLEVBQzVCLElBQUksQ0FBQyxxQkFBcUIsQ0FDM0IsQ0FBQztJQUNKLENBQUM7O3VHQXZLVSxVQUFVOzJHQUFWLFVBQVUsY0FGVCxNQUFNOzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBPaWRjQ2xpZW50LFxuICBTaWduaW5SZXF1ZXN0LFxuICBTaWdub3V0UmVxdWVzdCxcbiAgVXNlck1hbmFnZXIsXG59IGZyb20gJ29pZGMtY2xpZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2lkY1N0YXRlIH0gZnJvbSAnLi9vaWRjLnJlZHVjZXInO1xuaW1wb3J0IHsgb2lkY1F1ZXJ5IH0gZnJvbSAnLi9vaWRjLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBPaWRjU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL29pZGMuc2VydmljZSc7XG5pbXBvcnQgeyBSZXF1ZXN0QXJ1Z21lbnRzIH0gZnJvbSAnLi4vbW9kZWxzL2FyZ3VtZW50cy5tb2RlbCc7XG5pbXBvcnQgeyBPaWRjRXZlbnQgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIG9pZGNBY3Rpb25zIGZyb20gJy4vb2lkYy5hY3Rpb25zJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSU9pZGNVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPaWRjRmFjYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8T2lkY1N0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9pZGNTZXJ2aWNlOiBPaWRjU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdEV2ZW50cygpO1xuICB9XG5cbiAgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnN0b3JlLnNlbGVjdChvaWRjUXVlcnkuZ2V0T2lkY0xvYWRpbmcpO1xuICBleHBpcmluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnN0b3JlLnNlbGVjdChcbiAgICBvaWRjUXVlcnkuaXNJZGVudGl0eUV4cGlyaW5nXG4gICk7XG4gIGV4cGlyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zdG9yZS5zZWxlY3QoXG4gICAgb2lkY1F1ZXJ5LmlzSWRlbnRpdHlFeHBpcmVkXG4gICk7XG4gIGxvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc3RvcmUuc2VsZWN0KG9pZGNRdWVyeS5pc0xvZ2dlZEluKTtcbiAgaWRlbnRpdHkkOiBPYnNlcnZhYmxlPElPaWRjVXNlciB8IHVuZGVmaW5lZD4gPSB0aGlzLnN0b3JlLnNlbGVjdChcbiAgICBvaWRjUXVlcnkuZ2V0T2lkY0lkZW50aXR5XG4gICk7XG4gIGFjY2Vzc1Rva2VuJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gdGhpcy5zdG9yZS5zZWxlY3QoXG4gICAgb2lkY1F1ZXJ5LmdldEFjY2Vzc1Rva2VuXG4gICk7XG4gIGh0dHBFcnJvciQ6IE9ic2VydmFibGU8SHR0cEVycm9yUmVzcG9uc2UgfCB1bmRlZmluZWQ+ID0gdGhpcy5zdG9yZS5zZWxlY3QoXG4gICAgb2lkY1F1ZXJ5LmdldEh0dHBFcnJvclxuICApO1xuICBzaWduSW5FcnJvciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLnN0b3JlLnNlbGVjdChcbiAgICBvaWRjUXVlcnkuZ2V0U2lnbkluRXJyb3JcbiAgKTtcbiAgc2lsZW50UmVuZXdFcnJvciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLnN0b3JlLnNlbGVjdChcbiAgICBvaWRjUXVlcnkuZ2V0U2lsZW50UmVuZXdFcnJvclxuICApO1xuICBoYXNFcnJvcnMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zdG9yZS5zZWxlY3Qob2lkY1F1ZXJ5Lmhhc0Vycm9ycyk7XG4gIHBlcm1pc3Npb25zJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4gPSB0aGlzLnN0b3JlLnNlbGVjdChcbiAgICBvaWRjUXVlcnkuZ2V0UGVybWlzc2lvbnNcbiAgKTtcbiAgYXVkaWVuY2VzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQ+ID0gdGhpcy5zdG9yZS5zZWxlY3QoXG4gICAgb2lkY1F1ZXJ5LmdldEF1ZGllbmNlc1xuICApO1xuICBleHBpcmVzQXQkOiBPYnNlcnZhYmxlPERhdGUgfCBudWxsPiA9IHRoaXMuc3RvcmUuc2VsZWN0KFxuICAgIG9pZGNRdWVyeS5nZXRFeHBpcmVzQXRcbiAgKTtcbiAgdXNlck1ldGFkYXRhJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuc3RvcmUuc2VsZWN0KFxuICAgIG9pZGNRdWVyeS5nZXRVc2VyTWV0YWRhdGFcbiAgKTtcblxuICAvLyBkZWZhdWx0IGJpbmRpbmdzIHRvIGV2ZW50c1xuICBwdWJsaWMgYWRkVXNlclVuTG9hZGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9pZGNBY3Rpb25zLm9uVXNlclVubG9hZGVkKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhY2Nlc3NUb2tlbkV4cGlyZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RvcmUpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2lkY0FjdGlvbnMub25BY2Nlc3NUb2tlbkV4cGlyZWQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWNjZXNzVG9rZW5FeHBpcmluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvaWRjQWN0aW9ucy5vbkFjY2Vzc1Rva2VuRXhwaXJpbmcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW5FeHBpcmVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZFNpbGVudFJlbmV3RXJyb3IoLi4uZXY6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2lkY0FjdGlvbnMub25TaWxlbnRSZW5ld0Vycm9yKGV2WzBdIGFzIEVycm9yKSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlckxvYWRlZCguLi5ldjogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvaWRjQWN0aW9ucy5vblVzZXJMb2FkZWQoZXZbMF0gYXMgSU9pZGNVc2VyKSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlclNpZ25lZE91dCgpOiB2b2lkIHtcbiAgICB0aGlzLm9pZGNTZXJ2aWNlLnJlbW92ZU9pZGNVc2VyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvaWRjQWN0aW9ucy5vblVzZXJTaWduZWRPdXQoKSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHB1YmxpYyBhZGRVc2VyU2Vzc2lvbkNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvaWRjQWN0aW9ucy5vblNlc3Npb25DaGFuZ2VkKCkpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyRXJyb3JzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2lkY0FjdGlvbnMuY2xlYXJFcnJvcnMoKSk7XG4gIH1cblxuICAvLyBPSURDIE1ldGhvZHNcblxuICBwdWJsaWMgZ2V0T2lkY1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvaWRjQWN0aW9ucy5nZXRPaWRjVXNlcigpKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVPaWRjVXNlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9pZGNBY3Rpb25zLnJlbW92ZU9pZGNVc2VyKCkpO1xuICB9XG5cbiAgcHVibGljIGdldFVzZXJNYW5hZ2VyKCk6IFVzZXJNYW5hZ2VyIHtcbiAgICByZXR1cm4gdGhpcy5vaWRjU2VydmljZS5nZXRVc2VyTWFuYWdlcigpO1xuICB9XG5cbiAgcHVibGljIGdldE9pZGNDbGllbnQoKTogT2lkY0NsaWVudCB7XG4gICAgcmV0dXJuIHRoaXMub2lkY1NlcnZpY2UuZ2V0T2lkY0NsaWVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbnQgZnVuY3Rpb24gdG8gd2FpdCBmb3IgbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIHdhaXRGb3JBdXRoZW50aWNhdGlvbkxvYWRlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nJC5waXBlKFxuICAgICAgZmlsdGVyKChsb2FkaW5nKSA9PiBsb2FkaW5nID09PSBmYWxzZSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWduaW5Qb3B1cChhcmdzOiBSZXF1ZXN0QXJ1Z21lbnRzKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvaWRjQWN0aW9ucy5zaWduSW5Qb3B1cChhcmdzKSk7XG4gIH1cblxuICBwdWJsaWMgc2lnbmluUmVkaXJlY3QoYXJncz86IFJlcXVlc3RBcnVnbWVudHMpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9pZGNBY3Rpb25zLnNpZ25JblJlZGlyZWN0KGFyZ3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWduaW5TaWxlbnQoYXJnczogUmVxdWVzdEFydWdtZW50cyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2lkY0FjdGlvbnMuc2lnbkluU2lsZW50KGFyZ3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWdub3V0UG9wdXAoYXJnczogUmVxdWVzdEFydWdtZW50cyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2lkY0FjdGlvbnMuc2lnbk91dFBvcHVwKGFyZ3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWdub3V0UmVkaXJlY3QoYXJncz86IFJlcXVlc3RBcnVnbWVudHMpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9pZGNBY3Rpb25zLnNpZ25PdXRSZWRpcmVjdChhcmdzKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2lnbmluVXJsKGFyZ3M/OiBSZXF1ZXN0QXJ1Z21lbnRzKTogT2JzZXJ2YWJsZTxTaWduaW5SZXF1ZXN0PiB7XG4gICAgcmV0dXJuIHRoaXMub2lkY1NlcnZpY2UuZ2V0U2lnbmluVXJsKGFyZ3MpO1xuICB9XG5cbiAgZ2V0U2lnbm91dFVybChhcmdzPzogUmVxdWVzdEFydWdtZW50cyk6IE9ic2VydmFibGU8U2lnbm91dFJlcXVlc3Q+IHtcbiAgICByZXR1cm4gdGhpcy5vaWRjU2VydmljZS5nZXRTaWdub3V0VXJsKGFyZ3MpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmVnaXN0ZXJFdmVudChldmVudDogT2lkY0V2ZW50LCBjYWxsYmFjazogKC4uLmV2OiB1bmtub3duW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9pZGNTZXJ2aWNlLnJlZ2lzdGVyT2lkY0V2ZW50KGV2ZW50LCBjYWxsYmFjayk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyRGVmYXVsdEV2ZW50cygpOiB2b2lkIHtcbiAgICAvLyBhZGQgc2ltcGxlIGxvZ2dlcnNcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoT2lkY0V2ZW50LkFjY2Vzc1Rva2VuRXhwaXJlZCwgdGhpcy5hY2Nlc3NUb2tlbkV4cGlyZWQpO1xuICAgIHRoaXMucmVnaXN0ZXJFdmVudChPaWRjRXZlbnQuQWNjZXNzVG9rZW5FeHBpcmluZywgdGhpcy5hY2Nlc3NUb2tlbkV4cGlyaW5nKTtcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoT2lkY0V2ZW50LlNpbGVudFJlbmV3RXJyb3IsIHRoaXMuYWRkU2lsZW50UmVuZXdFcnJvcik7XG5cbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoT2lkY0V2ZW50LlVzZXJMb2FkZWQsIHRoaXMuYWRkVXNlckxvYWRlZCk7XG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KE9pZGNFdmVudC5Vc2VyVW5sb2FkZWQsIHRoaXMuYWRkVXNlclVuTG9hZGVkKTtcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoT2lkY0V2ZW50LlVzZXJTaWduZWRPdXQsIHRoaXMuYWRkVXNlclNpZ25lZE91dCk7XG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KFxuICAgICAgT2lkY0V2ZW50LlVzZXJTZXNzaW9uQ2hhbmdlZCxcbiAgICAgIHRoaXMuYWRkVXNlclNlc3Npb25DaGFuZ2VkXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,93 @@
1
+ import * as oidcActions from './oidc.actions';
2
+ import { jwtDecoder } from '../util/jwt-decoder';
3
+ import { on, createReducer } from '@ngrx/store';
4
+ export const OIDC_FEATURE_KEY = 'oidc';
5
+ export const initialState = {
6
+ audiences: [],
7
+ permissions: [],
8
+ loading: true,
9
+ loggedIn: false,
10
+ expiring: false,
11
+ expired: false,
12
+ errors: {
13
+ silentRenewError: undefined,
14
+ signInError: undefined,
15
+ httpError: undefined,
16
+ },
17
+ };
18
+ const featureReducer = createReducer(initialState, on(oidcActions.getOidcUser, oidcActions.onUserLoading, (state) => ({
19
+ ...state,
20
+ loading: true,
21
+ loggedIn: false,
22
+ })), on(oidcActions.removeOidcUser, (state) => ({
23
+ ...state,
24
+ loading: true,
25
+ loggedIn: false,
26
+ identity: undefined,
27
+ })), on(oidcActions.setHttpError, (state, err) => ({
28
+ ...state,
29
+ loading: false,
30
+ errors: {
31
+ ...state.errors,
32
+ httpError: err.payload,
33
+ },
34
+ })), on(oidcActions.onUserMetadataLoaded, (state, userMetadata) => ({
35
+ ...state,
36
+ userMetadata: userMetadata.payload,
37
+ loading: false,
38
+ })), on(oidcActions.clearErrors, (state) => ({ ...state, errors: {} })), on(oidcActions.userDoneLoading, (state) => ({ ...state, loading: false })), on(oidcActions.onAccessTokenExpiring, (state) => ({
39
+ ...state,
40
+ expiring: true,
41
+ })), on(oidcActions.onAccessTokenExpired, (state) => ({
42
+ ...state,
43
+ loggedIn: false,
44
+ expiring: false,
45
+ expired: true,
46
+ })), on(oidcActions.onUserLoaded, (state) => ({
47
+ ...state,
48
+ loading: false,
49
+ expiring: false,
50
+ })), on(oidcActions.onUserUnloaded, oidcActions.onUserSignedOut, oidcActions.signOutPopupError, oidcActions.signOutRedirectError, (state) => ({
51
+ ...state,
52
+ loggedIn: false,
53
+ identity: undefined,
54
+ expired: true,
55
+ expiring: false,
56
+ userMetadata: undefined,
57
+ })), on(oidcActions.signOutRedirect, oidcActions.signOutPopup, (state) => ({
58
+ ...state,
59
+ identity: undefined,
60
+ userMetadata: null,
61
+ loggedIn: false,
62
+ })), on(oidcActions.userFound, oidcActions.onSignInPopup, oidcActions.onSignInRedirect, oidcActions.onSignInSilent, (state, { payload }) => ({
63
+ ...state,
64
+ identity: payload,
65
+ loggedIn: true,
66
+ audiences: payload.access_token
67
+ ? jwtDecoder(payload.access_token)?.aud
68
+ : undefined,
69
+ permissions: jwtDecoder(payload.access_token)
70
+ ?.permissions,
71
+ })), on(oidcActions.userExpired, (state) => ({
72
+ ...state,
73
+ loggedIn: false,
74
+ expiring: false,
75
+ })), on(oidcActions.onSilentRenewError, (state, err) => ({
76
+ ...state,
77
+ loading: false,
78
+ errors: {
79
+ ...state.errors,
80
+ silentRenewError: err.payload,
81
+ },
82
+ })), on(oidcActions.userDoneLoadingError, oidcActions.signInError, (state, err) => ({
83
+ ...state,
84
+ loading: false,
85
+ errors: {
86
+ ...state.errors,
87
+ signInError: err.payload,
88
+ },
89
+ })));
90
+ export function oidcReducer(state, action) {
91
+ return featureReducer(state, action);
92
+ }
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW9pZGMtY2xpZW50L3NyYy9saWIvK3N0YXRlL29pZGMucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBVSxNQUFNLGFBQWEsQ0FBQztBQUl4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFxQnZDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBYztJQUNyQyxTQUFTLEVBQUUsRUFBRTtJQUNiLFdBQVcsRUFBRSxFQUFFO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUU7UUFDTixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFNBQVMsRUFBRSxTQUFTO0tBQ3JCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FDbEMsWUFBWSxFQUNaLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakUsR0FBRyxLQUFLO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxHQUFHLEtBQUs7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLEdBQUcsS0FBSztJQUNSLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFO1FBQ04sR0FBRyxLQUFLLENBQUMsTUFBTTtRQUNmLFNBQVMsRUFBRSxHQUFHLENBQUMsT0FBTztLQUN2QjtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELEdBQUcsS0FBSztJQUNSLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTztJQUNsQyxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDbEUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUMxRSxFQUFFLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELEdBQUcsS0FBSztJQUNSLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxHQUFHLEtBQUs7SUFDUixRQUFRLEVBQUUsS0FBSztJQUNmLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2QyxHQUFHLEtBQUs7SUFDUixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FDQSxXQUFXLENBQUMsY0FBYyxFQUMxQixXQUFXLENBQUMsZUFBZSxFQUMzQixXQUFXLENBQUMsaUJBQWlCLEVBQzdCLFdBQVcsQ0FBQyxvQkFBb0IsRUFDaEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVixHQUFHLEtBQUs7SUFDUixRQUFRLEVBQUUsS0FBSztJQUNmLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixZQUFZLEVBQUUsU0FBUztDQUN4QixDQUFDLENBQ0gsRUFDRCxFQUFFLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLEdBQUcsS0FBSztJQUNSLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FDQSxXQUFXLENBQUMsU0FBUyxFQUNyQixXQUFXLENBQUMsYUFBYSxFQUN6QixXQUFXLENBQUMsZ0JBQWdCLEVBQzVCLFdBQVcsQ0FBQyxjQUFjLEVBQzFCLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkIsR0FBRyxLQUFLO0lBQ1IsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDN0IsQ0FBQyxDQUFDLFVBQVUsQ0FBZSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRztRQUNyRCxDQUFDLENBQUMsU0FBUztJQUNiLFdBQVcsRUFBRSxVQUFVLENBQXVCLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDakUsRUFBRSxXQUFXO0NBQ2hCLENBQUMsQ0FDSCxFQUNELEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLEdBQUcsS0FBSztJQUNSLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsR0FBRyxLQUFLO0lBQ1IsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUU7UUFDTixHQUFHLEtBQUssQ0FBQyxNQUFNO1FBQ2YsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLE9BQU87S0FDOUI7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQ0EsV0FBVyxDQUFDLG9CQUFvQixFQUNoQyxXQUFXLENBQUMsV0FBVyxFQUN2QixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDZixHQUFHLEtBQUs7SUFDUixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRTtRQUNOLEdBQUcsS0FBSyxDQUFDLE1BQU07UUFDZixXQUFXLEVBQUUsR0FBRyxDQUFDLE9BQU87S0FDekI7Q0FDRixDQUFDLENBQ0gsQ0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLFdBQVcsQ0FDekIsS0FBNEIsRUFDNUIsTUFBYztJQUVkLE9BQU8sY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb2lkY0FjdGlvbnMgZnJvbSAnLi9vaWRjLmFjdGlvbnMnO1xuaW1wb3J0IHsgand0RGVjb2RlciB9IGZyb20gJy4uL3V0aWwvand0LWRlY29kZXInO1xuaW1wb3J0IHsgb24sIGNyZWF0ZVJlZHVjZXIsIEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSU9pZGNVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlcic7XG5cbmV4cG9ydCBjb25zdCBPSURDX0ZFQVRVUkVfS0VZID0gJ29pZGMnO1xuZXhwb3J0IGludGVyZmFjZSBPaWRjU3RhdGUge1xuICBpZGVudGl0eT86IElPaWRjVXNlcjtcbiAgYXVkaWVuY2VzPzogc3RyaW5nW107XG4gIHVzZXJNZXRhZGF0YT86IHVua25vd247XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGxvZ2dlZEluOiBib29sZWFuO1xuICBleHBpcmluZzogYm9vbGVhbjtcbiAgZXhwaXJlZDogYm9vbGVhbjtcbiAgZXJyb3JzOiBFcnJvclN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yU3RhdGUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzaWxlbnRSZW5ld0Vycm9yPzogdW5rbm93bjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgc2lnbkluRXJyb3I/OiB1bmtub3duO1xuICBodHRwRXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZTtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogT2lkY1N0YXRlID0ge1xuICBhdWRpZW5jZXM6IFtdLFxuICBwZXJtaXNzaW9uczogW10sXG4gIGxvYWRpbmc6IHRydWUsXG4gIGxvZ2dlZEluOiBmYWxzZSxcbiAgZXhwaXJpbmc6IGZhbHNlLFxuICBleHBpcmVkOiBmYWxzZSxcbiAgZXJyb3JzOiB7XG4gICAgc2lsZW50UmVuZXdFcnJvcjogdW5kZWZpbmVkLFxuICAgIHNpZ25JbkVycm9yOiB1bmRlZmluZWQsXG4gICAgaHR0cEVycm9yOiB1bmRlZmluZWQsXG4gIH0sXG59O1xuXG5jb25zdCBmZWF0dXJlUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxTdGF0ZSxcbiAgb24ob2lkY0FjdGlvbnMuZ2V0T2lkY1VzZXIsIG9pZGNBY3Rpb25zLm9uVXNlckxvYWRpbmcsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsb2FkaW5nOiB0cnVlLFxuICAgIGxvZ2dlZEluOiBmYWxzZSxcbiAgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5yZW1vdmVPaWRjVXNlciwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGxvYWRpbmc6IHRydWUsXG4gICAgbG9nZ2VkSW46IGZhbHNlLFxuICAgIGlkZW50aXR5OiB1bmRlZmluZWQsXG4gIH0pKSxcbiAgb24ob2lkY0FjdGlvbnMuc2V0SHR0cEVycm9yLCAoc3RhdGUsIGVycikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIC4uLnN0YXRlLmVycm9ycyxcbiAgICAgIGh0dHBFcnJvcjogZXJyLnBheWxvYWQsXG4gICAgfSxcbiAgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5vblVzZXJNZXRhZGF0YUxvYWRlZCwgKHN0YXRlLCB1c2VyTWV0YWRhdGEpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgdXNlck1ldGFkYXRhOiB1c2VyTWV0YWRhdGEucGF5bG9hZCxcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5jbGVhckVycm9ycywgKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgZXJyb3JzOiB7fSB9KSksXG4gIG9uKG9pZGNBY3Rpb25zLnVzZXJEb25lTG9hZGluZywgKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgbG9hZGluZzogZmFsc2UgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5vbkFjY2Vzc1Rva2VuRXhwaXJpbmcsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBleHBpcmluZzogdHJ1ZSxcbiAgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5vbkFjY2Vzc1Rva2VuRXhwaXJlZCwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGxvZ2dlZEluOiBmYWxzZSxcbiAgICBleHBpcmluZzogZmFsc2UsXG4gICAgZXhwaXJlZDogdHJ1ZSxcbiAgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5vblVzZXJMb2FkZWQsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBleHBpcmluZzogZmFsc2UsXG4gIH0pKSxcbiAgb24oXG4gICAgb2lkY0FjdGlvbnMub25Vc2VyVW5sb2FkZWQsXG4gICAgb2lkY0FjdGlvbnMub25Vc2VyU2lnbmVkT3V0LFxuICAgIG9pZGNBY3Rpb25zLnNpZ25PdXRQb3B1cEVycm9yLFxuICAgIG9pZGNBY3Rpb25zLnNpZ25PdXRSZWRpcmVjdEVycm9yLFxuICAgIChzdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbG9nZ2VkSW46IGZhbHNlLFxuICAgICAgaWRlbnRpdHk6IHVuZGVmaW5lZCxcbiAgICAgIGV4cGlyZWQ6IHRydWUsXG4gICAgICBleHBpcmluZzogZmFsc2UsXG4gICAgICB1c2VyTWV0YWRhdGE6IHVuZGVmaW5lZCxcbiAgICB9KVxuICApLFxuICBvbihvaWRjQWN0aW9ucy5zaWduT3V0UmVkaXJlY3QsIG9pZGNBY3Rpb25zLnNpZ25PdXRQb3B1cCwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGlkZW50aXR5OiB1bmRlZmluZWQsXG4gICAgdXNlck1ldGFkYXRhOiBudWxsLFxuICAgIGxvZ2dlZEluOiBmYWxzZSxcbiAgfSkpLFxuICBvbihcbiAgICBvaWRjQWN0aW9ucy51c2VyRm91bmQsXG4gICAgb2lkY0FjdGlvbnMub25TaWduSW5Qb3B1cCxcbiAgICBvaWRjQWN0aW9ucy5vblNpZ25JblJlZGlyZWN0LFxuICAgIG9pZGNBY3Rpb25zLm9uU2lnbkluU2lsZW50LFxuICAgIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkZW50aXR5OiBwYXlsb2FkLFxuICAgICAgbG9nZ2VkSW46IHRydWUsXG4gICAgICBhdWRpZW5jZXM6IHBheWxvYWQuYWNjZXNzX3Rva2VuXG4gICAgICAgID8gand0RGVjb2Rlcjx7IGF1ZD86IFtdIH0+KHBheWxvYWQuYWNjZXNzX3Rva2VuKT8uYXVkXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgcGVybWlzc2lvbnM6IGp3dERlY29kZXI8eyBwZXJtaXNzaW9ucz86IFtdIH0+KHBheWxvYWQuYWNjZXNzX3Rva2VuKVxuICAgICAgICA/LnBlcm1pc3Npb25zLFxuICAgIH0pXG4gICksXG4gIG9uKG9pZGNBY3Rpb25zLnVzZXJFeHBpcmVkLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbG9nZ2VkSW46IGZhbHNlLFxuICAgIGV4cGlyaW5nOiBmYWxzZSxcbiAgfSkpLFxuICBvbihvaWRjQWN0aW9ucy5vblNpbGVudFJlbmV3RXJyb3IsIChzdGF0ZSwgZXJyKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGVycm9yczoge1xuICAgICAgLi4uc3RhdGUuZXJyb3JzLFxuICAgICAgc2lsZW50UmVuZXdFcnJvcjogZXJyLnBheWxvYWQsXG4gICAgfSxcbiAgfSkpLFxuICBvbihcbiAgICBvaWRjQWN0aW9ucy51c2VyRG9uZUxvYWRpbmdFcnJvcixcbiAgICBvaWRjQWN0aW9ucy5zaWduSW5FcnJvcixcbiAgICAoc3RhdGUsIGVycikgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICBlcnJvcnM6IHtcbiAgICAgICAgLi4uc3RhdGUuZXJyb3JzLFxuICAgICAgICBzaWduSW5FcnJvcjogZXJyLnBheWxvYWQsXG4gICAgICB9LFxuICAgIH0pXG4gIClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBvaWRjUmVkdWNlcihcbiAgc3RhdGU6IE9pZGNTdGF0ZSB8IHVuZGVmaW5lZCxcbiAgYWN0aW9uOiBBY3Rpb25cbik6IE9pZGNTdGF0ZSB7XG4gIHJldHVybiBmZWF0dXJlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { createFeatureSelector, createSelector, } from '@ngrx/store';
2
+ // State Selectors
3
+ const selectOidcState = createFeatureSelector('oidc');
4
+ const getOidcLoading = createSelector(selectOidcState, (state) => state.loading);
5
+ const getOidcIdentity = createSelector(selectOidcState, (state) => state.identity);
6
+ const getAccessToken = createSelector(getOidcIdentity, (user) => (user || { access_token: undefined }).access_token);
7
+ const isIdentityExpiring = createSelector(selectOidcState, (state) => state.expiring);
8
+ const isIdentityExpired = createSelector(selectOidcState, (state) => state.expired);
9
+ const isLoggedIn = createSelector(selectOidcState, (state) => state.loggedIn);
10
+ // errors
11
+ // eslint-disable-next-line @typescript-eslint/ban-types
12
+ const selectOidcErrorState = createSelector(selectOidcState, (state) => state.errors);
13
+ // eslint-disable-next-line @typescript-eslint/ban-types
14
+ const hasErrors = createSelector(selectOidcErrorState, (state) => !!state.httpError || !!state.signInError || !!state.silentRenewError);
15
+ const getSignInError = createSelector(selectOidcErrorState, (errors) => errors.signInError);
16
+ const getSilentRenewError = createSelector(selectOidcErrorState, (errors) => errors.silentRenewError);
17
+ const getHttpError = createSelector(selectOidcErrorState, (errors) => errors.httpError);
18
+ const getPermissions = createSelector(selectOidcState, (state) => state.permissions);
19
+ const getAudiences = createSelector(selectOidcState, (state) => state.audiences);
20
+ const getExpiresAt = createSelector(getOidcIdentity, (state) => state?.expires_at ? new Date(state.expires_at * 1000) : null //NOSONAR
21
+ );
22
+ const getUserMetadata = createSelector(selectOidcState, (state) => state.userMetadata);
23
+ export const oidcQuery = {
24
+ getExpiresAt,
25
+ getPermissions,
26
+ selectOidcState,
27
+ getOidcLoading,
28
+ getOidcIdentity,
29
+ getAccessToken,
30
+ isIdentityExpiring,
31
+ getSilentRenewError,
32
+ isIdentityExpired,
33
+ isLoggedIn,
34
+ getSignInError,
35
+ getHttpError,
36
+ hasErrors,
37
+ getAudiences,
38
+ getUserMetadata,
39
+ };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctb2lkYy1jbGllbnQvc3JjL2xpYi8rc3RhdGUvb2lkYy5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEdBRWYsTUFBTSxhQUFhLENBQUM7QUFHckIsa0JBQWtCO0FBRWxCLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFZLE1BQU0sQ0FBQyxDQUFDO0FBQ2pFLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDbkMsZUFBZSxFQUNmLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDcEMsQ0FBQztBQUNGLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FDcEMsZUFBZSxFQUNmLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDckMsQ0FBQztBQUNGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDbkMsZUFBZSxFQUNmLENBQUMsSUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQ3pFLENBQUM7QUFDRixNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDdkMsZUFBZSxFQUNmLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDckMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUN0QyxlQUFlLEVBQ2YsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNwQyxDQUFDO0FBQ0YsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUMvQixlQUFlLEVBQ2YsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNyQyxDQUFDO0FBRUYsU0FBUztBQUNULHdEQUF3RDtBQUN4RCxNQUFNLG9CQUFvQixHQUFxQyxjQUFjLENBQzNFLGVBQWUsRUFDZixDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ25DLENBQUM7QUFFRix3REFBd0Q7QUFDeEQsTUFBTSxTQUFTLEdBQWtDLGNBQWMsQ0FDN0Qsb0JBQW9CLEVBQ3BCLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQ3ZFLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQ25DLG9CQUFvQixFQUNwQixDQUFDLE1BQWtCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQzNDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FDeEMsb0JBQW9CLEVBQ3BCLENBQUMsTUFBa0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUNoRCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUNqQyxvQkFBb0IsRUFDcEIsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUN6QyxDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUNuQyxlQUFlLEVBQ2YsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUN4QyxDQUFDO0FBQ0YsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUNqQyxlQUFlLEVBQ2YsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUN0QyxDQUFDO0FBQ0YsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUN6RSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztDQUN2RSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUNwQyxlQUFlLEVBQ2YsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUN6QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLFlBQVk7SUFDWixjQUFjO0lBQ2QsZUFBZTtJQUNmLGNBQWM7SUFDZCxlQUFlO0lBQ2YsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixjQUFjO0lBQ2QsWUFBWTtJQUNaLFNBQVM7SUFDVCxZQUFZO0lBQ1osZUFBZTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLFxuICBjcmVhdGVTZWxlY3RvcixcbiAgTWVtb2l6ZWRTZWxlY3Rvcixcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZSwgT2lkY1N0YXRlIH0gZnJvbSAnLi9vaWRjLnJlZHVjZXInO1xuaW1wb3J0IHsgSU9pZGNVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL29pZGMtdXNlcic7XG4vLyBTdGF0ZSBTZWxlY3RvcnNcblxuY29uc3Qgc2VsZWN0T2lkY1N0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPE9pZGNTdGF0ZT4oJ29pZGMnKTtcbmNvbnN0IGdldE9pZGNMb2FkaW5nID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdE9pZGNTdGF0ZSxcbiAgKHN0YXRlOiBPaWRjU3RhdGUpID0+IHN0YXRlLmxvYWRpbmdcbik7XG5jb25zdCBnZXRPaWRjSWRlbnRpdHkgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0T2lkY1N0YXRlLFxuICAoc3RhdGU6IE9pZGNTdGF0ZSkgPT4gc3RhdGUuaWRlbnRpdHlcbik7XG5jb25zdCBnZXRBY2Nlc3NUb2tlbiA9IGNyZWF0ZVNlbGVjdG9yKFxuICBnZXRPaWRjSWRlbnRpdHksXG4gICh1c2VyPzogSU9pZGNVc2VyKSA9PiAodXNlciB8fCB7IGFjY2Vzc190b2tlbjogdW5kZWZpbmVkIH0pLmFjY2Vzc190b2tlblxuKTtcbmNvbnN0IGlzSWRlbnRpdHlFeHBpcmluZyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RPaWRjU3RhdGUsXG4gIChzdGF0ZTogT2lkY1N0YXRlKSA9PiBzdGF0ZS5leHBpcmluZ1xuKTtcblxuY29uc3QgaXNJZGVudGl0eUV4cGlyZWQgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0T2lkY1N0YXRlLFxuICAoc3RhdGU6IE9pZGNTdGF0ZSkgPT4gc3RhdGUuZXhwaXJlZFxuKTtcbmNvbnN0IGlzTG9nZ2VkSW4gPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0T2lkY1N0YXRlLFxuICAoc3RhdGU6IE9pZGNTdGF0ZSkgPT4gc3RhdGUubG9nZ2VkSW5cbik7XG5cbi8vIGVycm9yc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmNvbnN0IHNlbGVjdE9pZGNFcnJvclN0YXRlOiBNZW1vaXplZFNlbGVjdG9yPHt9LCBFcnJvclN0YXRlPiA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RPaWRjU3RhdGUsXG4gIChzdGF0ZTogT2lkY1N0YXRlKSA9PiBzdGF0ZS5lcnJvcnNcbik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5jb25zdCBoYXNFcnJvcnM6IE1lbW9pemVkU2VsZWN0b3I8e30sIGJvb2xlYW4+ID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdE9pZGNFcnJvclN0YXRlLFxuICAoc3RhdGU6IEVycm9yU3RhdGUpID0+XG4gICAgISFzdGF0ZS5odHRwRXJyb3IgfHwgISFzdGF0ZS5zaWduSW5FcnJvciB8fCAhIXN0YXRlLnNpbGVudFJlbmV3RXJyb3Jcbik7XG5cbmNvbnN0IGdldFNpZ25JbkVycm9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdE9pZGNFcnJvclN0YXRlLFxuICAoZXJyb3JzOiBFcnJvclN0YXRlKSA9PiBlcnJvcnMuc2lnbkluRXJyb3Jcbik7XG5cbmNvbnN0IGdldFNpbGVudFJlbmV3RXJyb3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0T2lkY0Vycm9yU3RhdGUsXG4gIChlcnJvcnM6IEVycm9yU3RhdGUpID0+IGVycm9ycy5zaWxlbnRSZW5ld0Vycm9yXG4pO1xuXG5jb25zdCBnZXRIdHRwRXJyb3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0T2lkY0Vycm9yU3RhdGUsXG4gIChlcnJvcnM6IEVycm9yU3RhdGUpID0+IGVycm9ycy5odHRwRXJyb3Jcbik7XG5jb25zdCBnZXRQZXJtaXNzaW9ucyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RPaWRjU3RhdGUsXG4gIChzdGF0ZTogT2lkY1N0YXRlKSA9PiBzdGF0ZS5wZXJtaXNzaW9uc1xuKTtcbmNvbnN0IGdldEF1ZGllbmNlcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RPaWRjU3RhdGUsXG4gIChzdGF0ZTogT2lkY1N0YXRlKSA9PiBzdGF0ZS5hdWRpZW5jZXNcbik7XG5jb25zdCBnZXRFeHBpcmVzQXQgPSBjcmVhdGVTZWxlY3RvcihnZXRPaWRjSWRlbnRpdHksIChzdGF0ZT86IElPaWRjVXNlcikgPT5cbiAgc3RhdGU/LmV4cGlyZXNfYXQgPyBuZXcgRGF0ZShzdGF0ZS5leHBpcmVzX2F0ICogMTAwMCkgOiBudWxsIC8vTk9TT05BUlxuKTtcbmNvbnN0IGdldFVzZXJNZXRhZGF0YSA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RPaWRjU3RhdGUsXG4gIChzdGF0ZTogT2lkY1N0YXRlKSA9PiBzdGF0ZS51c2VyTWV0YWRhdGFcbik7XG5cbmV4cG9ydCBjb25zdCBvaWRjUXVlcnkgPSB7XG4gIGdldEV4cGlyZXNBdCxcbiAgZ2V0UGVybWlzc2lvbnMsXG4gIHNlbGVjdE9pZGNTdGF0ZSxcbiAgZ2V0T2lkY0xvYWRpbmcsXG4gIGdldE9pZGNJZGVudGl0eSxcbiAgZ2V0QWNjZXNzVG9rZW4sXG4gIGlzSWRlbnRpdHlFeHBpcmluZyxcbiAgZ2V0U2lsZW50UmVuZXdFcnJvcixcbiAgaXNJZGVudGl0eUV4cGlyZWQsXG4gIGlzTG9nZ2VkSW4sXG4gIGdldFNpZ25JbkVycm9yLFxuICBnZXRIdHRwRXJyb3IsXG4gIGhhc0Vycm9ycyxcbiAgZ2V0QXVkaWVuY2VzLFxuICBnZXRVc2VyTWV0YWRhdGEsXG59O1xuIl19