@odx/auth 7.0.0 → 8.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +16 -10
  3. package/esm2022/index.mjs +2 -1
  4. package/esm2022/lib/auth.config.mjs +6 -23
  5. package/esm2022/lib/auth.guard.mjs +10 -3
  6. package/esm2022/lib/auth.i18n.mjs +1 -1
  7. package/esm2022/lib/auth.interceptor.mjs +15 -0
  8. package/esm2022/lib/auth.logger.mjs +3 -0
  9. package/esm2022/lib/auth.providers.mjs +53 -36
  10. package/esm2022/lib/auth.service.mjs +27 -15
  11. package/esm2022/lib/auth.typings.mjs +1 -1
  12. package/esm2022/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +6 -6
  13. package/esm2022/lib/helpers/create-auth-host-url.mjs +6 -0
  14. package/esm2022/lib/helpers/index.mjs +4 -1
  15. package/esm2022/lib/helpers/set-http-auth-header.mjs +13 -0
  16. package/esm2022/lib/helpers/user-language-loader.mjs +10 -0
  17. package/esm2022/lib/models/auth-environment.mjs +3 -2
  18. package/esm2022/lib/models/auth-http-cache.mjs +19 -23
  19. package/esm2022/lib/models/auth-plugin-manager.mjs +14 -9
  20. package/esm2022/lib/plugins/core-debug.plugin.mjs +20 -0
  21. package/esm2022/lib/plugins/index.mjs +2 -1
  22. package/esm2022/lib/plugins/user-profile-link.plugin.mjs +3 -3
  23. package/esm2022/lib/unauth.guard.mjs +10 -3
  24. package/esm2022/plugins/service-connect/index.mjs +2 -2
  25. package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.mjs +2 -0
  26. package/esm2022/plugins/service-connect/lib/dtos/index.mjs +2 -1
  27. package/esm2022/plugins/service-connect/lib/service-connect-rights.guard.mjs +3 -3
  28. package/esm2022/plugins/service-connect/lib/service-connect-rights.plugin.mjs +1 -2
  29. package/esm2022/plugins/service-connect/lib/service-connect-user-language.plugin.mjs +8 -0
  30. package/esm2022/plugins/service-connect/lib/service-connect.config.mjs +6 -4
  31. package/fesm2022/odx-auth-plugins-service-connect.mjs +15 -9
  32. package/fesm2022/odx-auth-plugins-service-connect.mjs.map +1 -1
  33. package/fesm2022/odx-auth.mjs +308 -240
  34. package/fesm2022/odx-auth.mjs.map +1 -1
  35. package/index.d.ts +1 -0
  36. package/lib/auth.config.d.ts +11 -10
  37. package/lib/auth.guard.d.ts +1 -1
  38. package/lib/auth.i18n.d.ts +2 -2
  39. package/lib/auth.interceptor.d.ts +2 -0
  40. package/lib/auth.logger.d.ts +3 -0
  41. package/lib/auth.providers.d.ts +7 -4
  42. package/lib/auth.service.d.ts +6 -2
  43. package/lib/auth.typings.d.ts +1 -1
  44. package/lib/helpers/create-auth-host-url.d.ts +2 -0
  45. package/lib/helpers/index.d.ts +3 -0
  46. package/lib/helpers/set-http-auth-header.d.ts +2 -0
  47. package/lib/helpers/user-language-loader.d.ts +4 -0
  48. package/lib/models/auth-environment.d.ts +6 -1
  49. package/lib/models/auth-http-cache.d.ts +3 -1
  50. package/lib/models/auth-plugin-manager.d.ts +2 -0
  51. package/lib/plugins/core-debug.plugin.d.ts +2 -0
  52. package/lib/plugins/index.d.ts +1 -0
  53. package/lib/unauth.guard.d.ts +1 -1
  54. package/package.json +2 -2
  55. package/plugins/service-connect/index.d.ts +1 -1
  56. package/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.d.ts +3 -0
  57. package/plugins/service-connect/lib/dtos/index.d.ts +1 -0
  58. package/plugins/service-connect/lib/service-connect-rights.guard.d.ts +1 -1
  59. package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +8 -1
  60. package/plugins/service-connect/lib/service-connect-user-language.plugin.d.ts +1 -0
  61. package/plugins/service-connect/lib/service-connect.config.d.ts +1 -0
  62. package/esm2022/plugins/service-connect/lib/service-connect.typings.mjs +0 -2
  63. package/plugins/service-connect/lib/service-connect.typings.d.ts +0 -9
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvYXV0aC50eXBpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICB0eXBlIFJhd0lkZW50aXR5Q2xhaW1zID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBvZHhBdXRoUGx1Z2luUHJvcGVydGllcz86IHN0cmluZ1tdO1xuICAgIH1cblxuICAgIGludGVyZmFjZSBJZGVudGl5Q2xhaW1zIGV4dGVuZHMgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBzdWI6IHN0cmluZztcbiAgICAgIG9rdGFpZDogc3RyaW5nO1xuICAgICAgaWF0OiBudW1iZXI7XG4gICAgICBhdWQ6IHN0cmluZztcblxuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgZmlyc3RuYW1lOiBzdHJpbmc7XG4gICAgICBsYXN0bmFtZTogc3RyaW5nO1xuICAgICAgZGlzcGxheW5hbWU6IHN0cmluZztcbiAgICAgIHByZWZlcnJlZF91c2VybmFtZTogc3RyaW5nO1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIGluaXRpYWxzOiBzdHJpbmc7XG5cbiAgICAgIGxvY2FsZT86IHN0cmluZztcbiAgICAgIHpvbmVpbmZvPzogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge307XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvYXV0aC50eXBpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICB0eXBlIFJhd0lkZW50aXR5Q2xhaW1zID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBwcmVmZXJyZWRMYW5ndWFnZT86IHN0cmluZztcbiAgICB9XG5cbiAgICBpbnRlcmZhY2UgSWRlbnRpeUNsYWltcyBleHRlbmRzIEF1dGhQbHVnaW5SZXN1bHQge1xuICAgICAgc3ViOiBzdHJpbmc7XG4gICAgICBva3RhaWQ6IHN0cmluZztcbiAgICAgIGlhdDogbnVtYmVyO1xuICAgICAgYXVkOiBzdHJpbmc7XG5cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIGZpcnN0bmFtZTogc3RyaW5nO1xuICAgICAgbGFzdG5hbWU6IHN0cmluZztcbiAgICAgIGRpc3BsYXluYW1lOiBzdHJpbmc7XG4gICAgICBwcmVmZXJyZWRfdXNlcm5hbWU6IHN0cmluZztcbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICBpbml0aWFsczogc3RyaW5nO1xuXG4gICAgICBsb2NhbGU/OiBzdHJpbmc7XG4gICAgICB6b25laW5mbz86IHN0cmluZztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHt9O1xuIl19
@@ -1,13 +1,13 @@
1
1
  import { transition, trigger, useAnimation } from '@angular/animations';
2
2
  import { CommonModule } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';
4
4
  import { fadeOut } from '@odx/angular/animations';
5
5
  import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
6
6
  import { ButtonComponent } from '@odx/angular/components/button';
7
7
  import { CircularProgressComponent } from '@odx/angular/components/circular-progress';
8
8
  import { IconComponent } from '@odx/angular/components/icon';
9
9
  import { LogoDirective } from '@odx/angular/components/logo';
10
- import { distinctUntilChanged, map } from 'rxjs';
10
+ import { map } from 'rxjs';
11
11
  import { injectAuthConfig } from '../../auth.config';
12
12
  import { AuthService } from '../../auth.service';
13
13
  import * as i0 from "@angular/core";
@@ -15,7 +15,7 @@ import * as i1 from "@angular/common";
15
15
  export class AuthLoadingScreenComponent {
16
16
  constructor() {
17
17
  this.authConfig = injectAuthConfig();
18
- this.icon$ = inject(AuthService).isRedirecting$.pipe(distinctUntilChanged(), map((isRedirecting) => (isRedirecting ? 'link-external' : 'user')));
18
+ this.icon$ = inject(AuthService).isRedirecting$.pipe(map((isRedirecting) => (isRedirecting ? 'link-external' : 'user')));
19
19
  }
20
20
  static { this.instance = null; }
21
21
  static initialize(authService, dynamicViewService) {
@@ -30,12 +30,12 @@ export class AuthLoadingScreenComponent {
30
30
  });
31
31
  }
32
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthLoadingScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AuthLoadingScreenComponent, isStandalone: true, selector: "div.odx-auth-loading-screen", host: { properties: { "@hostAnimation": "true" } }, ngImport: i0, template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\"></ng-template>\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-loading-screen__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-loading-screen-animation .75s ease}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: CircularProgressComponent, selector: "odx-circular-progress", inputs: ["stroke", "size", "value"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AuthLoadingScreenComponent, isStandalone: true, selector: "div.odx-auth-loading-screen", host: { properties: { "@hostAnimation": "true" } }, ngImport: i0, template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\" />\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\" />\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\" />\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);inset:0;position:fixed;z-index:var(--odx-v-layer-5)}.odx-auth-loading-screen__content{animation:odx-auth-loading-screen-animation .75s ease;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: CircularProgressComponent, selector: "odx-circular-progress", inputs: ["stroke", "size", "value"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthLoadingScreenComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ standalone: true, selector: 'div.odx-auth-loading-screen', imports: [CommonModule, ButtonComponent, IconComponent, LogoDirective, CircularProgressComponent, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
38
38
  '[@hostAnimation]': 'true',
39
- }, animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\"></ng-template>\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-loading-screen__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-loading-screen-animation .75s ease}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
39
+ }, animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\" />\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\" />\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\" />\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);inset:0;position:fixed;z-index:var(--odx-v-layer-5)}.odx-auth-loading-screen__content{animation:odx-auth-loading-screen-animation .75s ease;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}\n"] }]
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtbG9hZGluZy1zY3JlZW4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtbG9hZGluZy1zY3JlZW4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBc0MsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBZ0JqRCxNQUFNLE9BQU8sMEJBQTBCO0lBZHZDO1FBaUJxQixlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoQyxVQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ2hFLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztLQVlIO2FBbEJnQixhQUFRLEdBQTZELElBQUksQUFBakUsQ0FBa0U7SUFRbEYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUF3QixFQUFFLGtCQUFzQztRQUN2RixXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzdDLElBQUksU0FBUyxFQUFFO2dCQUNiLDBCQUEwQixDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsQ0FBQzthQUNuRztpQkFBTTtnQkFDTCwwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQy9DLDBCQUEwQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDNUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbEJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDJJQzNCdkMsb2lCQVNBLGl1QkRRWSxZQUFZLHdMQUFtQixhQUFhLG9HQUFFLGFBQWEsa0ZBQUUseUJBQXlCLHVHQUFFLG9CQUFvQix5SUFRMUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7NEZBRTVFLDBCQUEwQjtrQkFkdEMsU0FBUztpQ0FDSSxJQUFJLFlBRU4sNkJBQTZCLFdBQzlCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixDQUFDLG1CQUd0Ryx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGtCQUFrQixFQUFFLE1BQU07cUJBQzNCLGNBQ1csQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZhZGVPdXQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSwgRHluYW1pY1ZpZXdSZWYsIER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2lyY3VsYXItcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTG9nb0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvZ28nO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0QXV0aENvbmZpZyB9IGZyb20gJy4uLy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZGl2Lm9keC1hdXRoLWxvYWRpbmctc2NyZWVuJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBJY29uQ29tcG9uZW50LCBMb2dvRGlyZWN0aXZlLCBDaXJjdWxhclByb2dyZXNzQ29tcG9uZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLWxvYWRpbmctc2NyZWVuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbQGhvc3RBbmltYXRpb25dJzogJ3RydWUnLFxuICB9LFxuICBhbmltYXRpb25zOiBbdHJpZ2dlcignaG9zdEFuaW1hdGlvbicsIFt0cmFuc2l0aW9uKCc6bGVhdmUnLCB1c2VBbmltYXRpb24oZmFkZU91dCgpKSldKV0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IER5bmFtaWNWaWV3UmVmPHR5cGVvZiBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aENvbmZpZyA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb24kID0gaW5qZWN0KEF1dGhTZXJ2aWNlKS5pc1JlZGlyZWN0aW5nJC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKChpc1JlZGlyZWN0aW5nKSA9PiAoaXNSZWRpcmVjdGluZyA/ICdsaW5rLWV4dGVybmFsJyA6ICd1c2VyJykpLFxuICApO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdGlhbGl6ZShhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIGR5bmFtaWNWaWV3U2VydmljZTogRHluYW1pY1ZpZXdTZXJ2aWNlKTogdm9pZCB7XG4gICAgYXV0aFNlcnZpY2UuaXNMb2FkaW5nJC5zdWJzY3JpYmUoKGlzTG9hZGluZykgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZykge1xuICAgICAgICBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudC5pbnN0YW5jZSA/Pz0gZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcoQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LWF1dGgtbG9hZGluZy1zY3JlZW5fX2NvbnRlbnRcIiBvZHhMYXlvdXQ9XCJncmlkIDEyIGhvcml6b250YWwtY2VudGVyIHZlcnRpY2FsLWNlbnRlciBnYXAtc21hbGxcIj5cbiAgPG9keC1sb2dvIHNpemU9XCJsYXJnZVwiPjwvb2R4LWxvZ28+XG4gIDxvZHgtY2lyY3VsYXItcHJvZ3Jlc3MgY2xhc3M9XCJvZHgtYXV0aC1sb2FkaW5nLXNjcmVlbl9fc3Bpbm5lclwiIHZhbHVlPVwiLTFcIiBzaXplPVwibWVkaXVtXCIgc3Ryb2tlPVwiM1wiPlxuICAgIDxvZHgtaWNvbiBbbmFtZV09XCJpY29uJCB8IGFzeW5jXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuICA8L29keC1jaXJjdWxhci1wcm9ncmVzcz5cbiAgPHAgY2xhc3M9XCJvZHgtYXV0aC1sb2FkaW5nLXNjcmVlbl9fbWVzc2FnZVwiICpuZ0lmPVwiYXV0aENvbmZpZy5sb2FkaW5nU2NyZWVuTWVzc2FnZSBhcyBjb250ZW50XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtbG9hZGluZy1zY3JlZW4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtbG9hZGluZy1zY3JlZW4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBc0MsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBZ0JqRCxNQUFNLE9BQU8sMEJBQTBCO0lBZHZDO1FBaUJxQixlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoQyxVQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FZeEk7YUFmZ0IsYUFBUSxHQUE2RCxJQUFJLEFBQWpFLENBQWtFO0lBS2xGLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBd0IsRUFBRSxrQkFBc0M7UUFDdkYsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM3QyxJQUFJLFNBQVMsRUFBRTtnQkFDYiwwQkFBMEIsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDbkc7aUJBQU07Z0JBQ0wsMEJBQTBCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUMvQywwQkFBMEIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWZVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDJJQzNCdkMsc2dCQVNBLGl1QkRRWSxZQUFZLHdMQUFtQixhQUFhLG9HQUFFLGFBQWEsa0ZBQUUseUJBQXlCLHVHQUFFLG9CQUFvQix5SUFRMUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7NEZBRTVFLDBCQUEwQjtrQkFkdEMsU0FBUztpQ0FDSSxJQUFJLFlBRU4sNkJBQTZCLFdBQzlCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixDQUFDLG1CQUd0Ryx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGtCQUFrQixFQUFFLE1BQU07cUJBQzNCLGNBQ1csQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZhZGVPdXQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSwgRHluYW1pY1ZpZXdSZWYsIER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2lyY3VsYXItcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTG9nb0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvZ28nO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdkaXYub2R4LWF1dGgtbG9hZGluZy1zY3JlZW4nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIEljb25Db21wb25lbnQsIExvZ29EaXJlY3RpdmUsIENpcmN1bGFyUHJvZ3Jlc3NDb21wb25lbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGgtbG9hZGluZy1zY3JlZW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRoLWxvYWRpbmctc2NyZWVuLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tAaG9zdEFuaW1hdGlvbl0nOiAndHJ1ZScsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdob3N0QW5pbWF0aW9uJywgW3RyYW5zaXRpb24oJzpsZWF2ZScsIHVzZUFuaW1hdGlvbihmYWRlT3V0KCkpKV0pXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQge1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogRHluYW1pY1ZpZXdSZWY8dHlwZW9mIEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRoQ29uZmlnID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbiQgPSBpbmplY3QoQXV0aFNlcnZpY2UpLmlzUmVkaXJlY3RpbmckLnBpcGUobWFwKChpc1JlZGlyZWN0aW5nKSA9PiAoaXNSZWRpcmVjdGluZyA/ICdsaW5rLWV4dGVybmFsJyA6ICd1c2VyJykpKTtcblxuICBwdWJsaWMgc3RhdGljIGluaXRpYWxpemUoYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBkeW5hbWljVmlld1NlcnZpY2U6IER5bmFtaWNWaWV3U2VydmljZSk6IHZvaWQge1xuICAgIGF1dGhTZXJ2aWNlLmlzTG9hZGluZyQuc3Vic2NyaWJlKChpc0xvYWRpbmcpID0+IHtcbiAgICAgIGlmIChpc0xvYWRpbmcpIHtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2UgPz89IGR5bmFtaWNWaWV3U2VydmljZS5jcmVhdGVWaWV3KEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50Lmluc3RhbmNlPy5kZXN0cm95KCk7XG4gICAgICAgIEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50Lmluc3RhbmNlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9keC1hdXRoLWxvYWRpbmctc2NyZWVuX19jb250ZW50XCIgb2R4TGF5b3V0PVwiZ3JpZCAxMiBob3Jpem9udGFsLWNlbnRlciB2ZXJ0aWNhbC1jZW50ZXIgZ2FwLXNtYWxsXCI+XG4gIDxvZHgtbG9nbyBzaXplPVwibGFyZ2VcIiAvPlxuICA8b2R4LWNpcmN1bGFyLXByb2dyZXNzIGNsYXNzPVwib2R4LWF1dGgtbG9hZGluZy1zY3JlZW5fX3NwaW5uZXJcIiB2YWx1ZT1cIi0xXCIgc2l6ZT1cIm1lZGl1bVwiIHN0cm9rZT1cIjNcIj5cbiAgICA8b2R4LWljb24gW25hbWVdPVwiaWNvbiQgfCBhc3luY1wiIGljb25TZXQ9XCJjb3JlXCIgLz5cbiAgPC9vZHgtY2lyY3VsYXItcHJvZ3Jlc3M+XG4gIDxwIGNsYXNzPVwib2R4LWF1dGgtbG9hZGluZy1zY3JlZW5fX21lc3NhZ2VcIiAqbmdJZj1cImF1dGhDb25maWcubG9hZGluZ1NjcmVlbk1lc3NhZ2UgYXMgY29udGVudFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwiY29udGVudFwiIC8+XG4gIDwvcD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,6 @@
1
+ import { buildUrl } from '@odx/angular/utils';
2
+ import { ODX_AUTH_HOSTS } from '../auth.config';
3
+ export function createAuthHostUrl(environment, ...segments) {
4
+ return buildUrl(ODX_AUTH_HOSTS[environment], ...segments);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWF1dGgtaG9zdC11cmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2NyZWF0ZS1hdXRoLWhvc3QtdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFdBQTRCLEVBQUUsR0FBRyxRQUFrQjtJQUNuRixPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRVcmwgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT0RYX0FVVEhfSE9TVFMgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBBdXRoRW52aXJvbm1lbnQgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXV0aEhvc3RVcmwoZW52aXJvbm1lbnQ6IEF1dGhFbnZpcm9ubWVudCwgLi4uc2VnbWVudHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGJ1aWxkVXJsKE9EWF9BVVRIX0hPU1RTW2Vudmlyb25tZW50XSwgLi4uc2VnbWVudHMpO1xufVxuIl19
@@ -1,6 +1,9 @@
1
+ export * from './create-auth-host-url';
1
2
  export * from './create-inititals';
2
3
  export * from './handle-auth-error';
3
4
  export * from './handle-oauth-event';
4
5
  export * from './resolve-email';
5
6
  export * from './resolve-username';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWluaXRpdGFscyc7XG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZS1hdXRoLWVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlLW9hdXRoLWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZS1lbWFpbCc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmUtdXNlcm5hbWUnO1xuIl19
7
+ export * from './set-http-auth-header';
8
+ export * from './user-language-loader';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWF1dGgtaG9zdC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtaW5pdGl0YWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlLWF1dGgtZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGUtb2F1dGgtZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlLWVtYWlsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZS11c2VybmFtZSc7XG5leHBvcnQgKiBmcm9tICcuL3NldC1odHRwLWF1dGgtaGVhZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1sYW5ndWFnZS1sb2FkZXInO1xuIl19
@@ -0,0 +1,13 @@
1
+ import { HttpRequest } from '@angular/common/http';
2
+ import { AUTH_HTTP_HEADER } from '../auth.config';
3
+ export function setHttpAuthHeader(req, token) {
4
+ if (!token)
5
+ return req;
6
+ const header = `Bearer ${token}`;
7
+ if (req instanceof HttpRequest) {
8
+ return req.clone({ headers: req.headers.set(AUTH_HTTP_HEADER, header) });
9
+ }
10
+ req.headers.set(AUTH_HTTP_HEADER, header);
11
+ return req;
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWh0dHAtYXV0aC1oZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3NldC1odHRwLWF1dGgtaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsaUJBQWlCLENBQXdDLEdBQU0sRUFBRSxLQUFxQjtJQUNwRyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3ZCLE1BQU0sTUFBTSxHQUFHLFVBQVUsS0FBSyxFQUFFLENBQUM7SUFDakMsSUFBSSxHQUFHLFlBQVksV0FBVyxFQUFFO1FBQzlCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFNLENBQUM7S0FDL0U7SUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFVVEhfSFRUUF9IRUFERVIgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRIdHRwQXV0aEhlYWRlcjxSIGV4dGVuZHMgSHR0cFJlcXVlc3Q8VD4gfCBSZXF1ZXN0LCBUPihyZXE6IFIsIHRva2VuPzogc3RyaW5nIHwgbnVsbCk6IFIge1xuICBpZiAoIXRva2VuKSByZXR1cm4gcmVxO1xuICBjb25zdCBoZWFkZXIgPSBgQmVhcmVyICR7dG9rZW59YDtcbiAgaWYgKHJlcSBpbnN0YW5jZW9mIEh0dHBSZXF1ZXN0KSB7XG4gICAgcmV0dXJuIHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldChBVVRIX0hUVFBfSEVBREVSLCBoZWFkZXIpIH0pIGFzIFI7XG4gIH1cbiAgcmVxLmhlYWRlcnMuc2V0KEFVVEhfSFRUUF9IRUFERVIsIGhlYWRlcik7XG5cbiAgcmV0dXJuIHJlcTtcbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { inject } from '@angular/core';
2
+ import { isNonEmptyString } from '@odx/angular/utils';
3
+ import { map } from 'rxjs';
4
+ import { AuthService } from '../auth.service';
5
+ export function userLanguageLoader(languageSelector = (claims) => claims?.preferredLanguage) {
6
+ return () => {
7
+ return inject(AuthService).identityClaims$.pipe(map(languageSelector), map((value) => (isNonEmptyString(value) ? value : undefined)));
8
+ };
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sYW5ndWFnZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3VzZXItbGFuZ3VhZ2UtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLG1CQUFxQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtJQUMzRyxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlTG9hZGVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7IGlzTm9uRW1wdHlTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5cbnR5cGUgTGFuZ3VhZ2VTZWxlY3RvciA9IChjbGFpbXM/OiBPZHhBdXRoLklkZW50aXlDbGFpbXMgfCBudWxsKSA9PiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlckxhbmd1YWdlTG9hZGVyKGxhbmd1YWdlU2VsZWN0b3I6IExhbmd1YWdlU2VsZWN0b3IgPSAoY2xhaW1zKSA9PiBjbGFpbXM/LnByZWZlcnJlZExhbmd1YWdlKTogTGFuZ3VhZ2VMb2FkZXJGbiB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkuaWRlbnRpdHlDbGFpbXMkLnBpcGUoXG4gICAgICBtYXAobGFuZ3VhZ2VTZWxlY3RvciksXG4gICAgICBtYXAoKHZhbHVlKSA9PiAoaXNOb25FbXB0eVN0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZCkpLFxuICAgICk7XG4gIH07XG59XG4iXX0=
@@ -1,2 +1,3 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBdXRoRW52aXJvbm1lbnQgPSAnZGV2JyB8ICdzdGFnZScgfCAncHJvZCc7XG4iXX0=
1
+ import { Environment } from '@odx/angular';
2
+ export const AuthEnvironment = Environment;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHM0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyJztcblxuZXhwb3J0IHR5cGUgQXV0aEVudmlyb25tZW50ID0gKHR5cGVvZiBBdXRoRW52aXJvbm1lbnQpW2tleW9mIHR5cGVvZiBBdXRoRW52aXJvbm1lbnRdO1xuZXhwb3J0IGNvbnN0IEF1dGhFbnZpcm9ubWVudCA9IEVudmlyb25tZW50O1xuIl19
@@ -1,44 +1,40 @@
1
- import { inject, Injectable, InjectionToken } from '@angular/core';
1
+ import { inject, Injectable, InjectionToken, Injector } from '@angular/core';
2
2
  import { WindowRef } from '@odx/angular';
3
+ import { CacheStorageClient } from '@odx/angular/utils';
3
4
  import { OAuthService } from 'angular-oauth2-oidc';
5
+ import { firstValueFrom } from 'rxjs';
6
+ import { AUTH_HTTP_HEADER } from '../auth.config';
7
+ import { AuthService } from '../auth.service';
4
8
  import { handleOAuthEvent } from '../helpers';
5
9
  import * as i0 from "@angular/core";
6
10
  export const ODX_AUTH_HTTP_CACHE_STORAGE = new InjectionToken('@odx/auth::AuthHttpCacheStorage', {
7
11
  providedIn: 'root',
8
12
  factory: () => inject(WindowRef).nativeWindow.caches,
9
13
  });
14
+ export const ODX_AUTH_HTTP_CACHE_STORAGE_CLIENT = new InjectionToken('@odx/auth::AuthHttpCacheStorageClient', {
15
+ providedIn: 'root',
16
+ factory: () => new CacheStorageClient('@odx/auth/http-cache', inject(ODX_AUTH_HTTP_CACHE_STORAGE)),
17
+ });
10
18
  export class AuthHttpCache {
11
- static { this.CACHE_KEY = '@odx/auth/http-cache'; }
12
19
  constructor() {
13
- this.cacheStorage = inject(ODX_AUTH_HTTP_CACHE_STORAGE);
20
+ this.cacheStorage = inject(ODX_AUTH_HTTP_CACHE_STORAGE_CLIENT);
14
21
  this.oauthService = inject(OAuthService);
22
+ this.injector = inject(Injector);
15
23
  this.oauthService.events.pipe(handleOAuthEvent('logout', () => this.deleteAll())).subscribe();
16
24
  }
17
25
  async deleteAll() {
18
- const cache = await this.cacheStorage.open(AuthHttpCache.CACHE_KEY);
19
- for (const key of await cache.keys()) {
20
- await cache.delete(key);
21
- }
26
+ await this.cacheStorage.deleteAll();
22
27
  }
23
28
  async delete(request) {
24
- const cache = await this.cacheStorage.open(AuthHttpCache.CACHE_KEY);
25
- return cache.delete(request);
29
+ return this.cacheStorage.delete(request);
26
30
  }
27
31
  async request(requestInfo, authentication = false) {
28
- const request = new Request(requestInfo);
29
- const authorizationHeader = authentication ? this.oauthService.authorizationHeader() : null;
30
- if (authorizationHeader) {
31
- request.headers.set('Authorization', authorizationHeader);
32
- }
33
- const cache = await this.cacheStorage.open(AuthHttpCache.CACHE_KEY);
34
- const response = await fetch(request).catch(() => null);
35
- if (response?.ok) {
36
- await cache.put(request, response).catch(() => null);
37
- }
38
- if (authorizationHeader && response?.status === 401) {
39
- await cache.delete(request);
32
+ if (authentication) {
33
+ const authService = this.injector.get(AuthService);
34
+ const request = await firstValueFrom(authService.prepareAuthRequest$(new Request(requestInfo)));
35
+ return this.cacheStorage.request(request, ({ status }) => request.headers.has(AUTH_HTTP_HEADER) && status === 401);
40
36
  }
41
- return cache.match(request).then((res) => res?.json() ?? null);
37
+ return this.cacheStorage.request(requestInfo, () => false);
42
38
  }
43
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthHttpCache, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
40
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthHttpCache, providedIn: 'root' }); }
@@ -47,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
47
43
  type: Injectable,
48
44
  args: [{ providedIn: 'root' }]
49
45
  }], ctorParameters: function () { return []; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1odHRwLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvbW9kZWxzL2F1dGgtaHR0cC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUU5QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBZSxpQ0FBaUMsRUFBRTtJQUM3RyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNO0NBQ3JELENBQUMsQ0FBQztBQUdILE1BQU0sT0FBTyxhQUFhO2FBQ0EsY0FBUyxHQUFHLHNCQUFzQixBQUF6QixDQUEwQjtJQUkzRDtRQUhpQixpQkFBWSxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ25ELGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBR25ELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNwQyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUksV0FBOEIsRUFBRSxjQUFjLEdBQUcsS0FBSztRQUM1RSxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUYsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUMzRDtRQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLG1CQUFtQixJQUFJLFFBQVEsRUFBRSxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQ25ELE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDOytHQXRDVSxhQUFhO21IQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBoYW5kbGVPQXV0aEV2ZW50IH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBjb25zdCBPRFhfQVVUSF9IVFRQX0NBQ0hFX1NUT1JBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q2FjaGVTdG9yYWdlPignQG9keC9hdXRoOjpBdXRoSHR0cENhY2hlU3RvcmFnZScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoV2luZG93UmVmKS5uYXRpdmVXaW5kb3cuY2FjaGVzLFxufSk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXV0aEh0dHBDYWNoZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBQ0hFX0tFWSA9ICdAb2R4L2F1dGgvaHR0cC1jYWNoZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVTdG9yYWdlID0gaW5qZWN0KE9EWF9BVVRIX0hUVFBfQ0FDSEVfU1RPUkFHRSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb2F1dGhTZXJ2aWNlID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuZXZlbnRzLnBpcGUoaGFuZGxlT0F1dGhFdmVudCgnbG9nb3V0JywgKCkgPT4gdGhpcy5kZWxldGVBbGwoKSkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHRoaXMuY2FjaGVTdG9yYWdlLm9wZW4oQXV0aEh0dHBDYWNoZS5DQUNIRV9LRVkpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGF3YWl0IGNhY2hlLmtleXMoKSkge1xuICAgICAgYXdhaXQgY2FjaGUuZGVsZXRlKGtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShyZXF1ZXN0OiBSZXF1ZXN0SW5mbyB8IFVSTCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgdGhpcy5jYWNoZVN0b3JhZ2Uub3BlbihBdXRoSHR0cENhY2hlLkNBQ0hFX0tFWSk7XG5cbiAgICByZXR1cm4gY2FjaGUuZGVsZXRlKHJlcXVlc3QpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlcXVlc3Q8VD4ocmVxdWVzdEluZm86IFJlcXVlc3RJbmZvIHwgVVJMLCBhdXRoZW50aWNhdGlvbiA9IGZhbHNlKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVxdWVzdChyZXF1ZXN0SW5mbyk7XG4gICAgY29uc3QgYXV0aG9yaXphdGlvbkhlYWRlciA9IGF1dGhlbnRpY2F0aW9uID8gdGhpcy5vYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlcigpIDogbnVsbDtcbiAgICBpZiAoYXV0aG9yaXphdGlvbkhlYWRlcikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGF1dGhvcml6YXRpb25IZWFkZXIpO1xuICAgIH1cbiAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHRoaXMuY2FjaGVTdG9yYWdlLm9wZW4oQXV0aEh0dHBDYWNoZS5DQUNIRV9LRVkpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdCkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgaWYgKHJlc3BvbnNlPy5vaykge1xuICAgICAgYXdhaXQgY2FjaGUucHV0KHJlcXVlc3QsIHJlc3BvbnNlKS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgICB9XG4gICAgaWYgKGF1dGhvcml6YXRpb25IZWFkZXIgJiYgcmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICBhd2FpdCBjYWNoZS5kZWxldGUocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhY2hlLm1hdGNoKHJlcXVlc3QpLnRoZW4oKHJlcykgPT4gcmVzPy5qc29uKCkgPz8gbnVsbCk7XG4gIH1cbn1cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1odHRwLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvbW9kZWxzL2F1dGgtaHR0cC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFOUMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQWUsaUNBQWlDLEVBQUU7SUFDN0csVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTTtDQUNyRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsdUNBQXVDLEVBQUU7SUFDaEksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7Q0FDbkcsQ0FBQyxDQUFDO0FBR0gsTUFBTSxPQUFPLGFBQWE7SUFLeEI7UUFKaUIsaUJBQVksR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUMxRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRzNDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVM7UUFDcEIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQTBCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUksV0FBOEIsRUFBRSxjQUFjLEdBQUcsS0FBSztRQUM1RSxJQUFJLGNBQWMsRUFBRTtZQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNuRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGNBQWMsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDcEg7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQTFCVSxhQUFhO21IQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENhY2hlU3RvcmFnZUNsaWVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBVVRIX0hUVFBfSEVBREVSIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgaGFuZGxlT0F1dGhFdmVudCB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgT0RYX0FVVEhfSFRUUF9DQUNIRV9TVE9SQUdFID0gbmV3IEluamVjdGlvblRva2VuPENhY2hlU3RvcmFnZT4oJ0BvZHgvYXV0aDo6QXV0aEh0dHBDYWNoZVN0b3JhZ2UnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gaW5qZWN0KFdpbmRvd1JlZikubmF0aXZlV2luZG93LmNhY2hlcyxcbn0pO1xuXG5leHBvcnQgY29uc3QgT0RYX0FVVEhfSFRUUF9DQUNIRV9TVE9SQUdFX0NMSUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDYWNoZVN0b3JhZ2VDbGllbnQ+KCdAb2R4L2F1dGg6OkF1dGhIdHRwQ2FjaGVTdG9yYWdlQ2xpZW50Jywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBDYWNoZVN0b3JhZ2VDbGllbnQoJ0BvZHgvYXV0aC9odHRwLWNhY2hlJywgaW5qZWN0KE9EWF9BVVRIX0hUVFBfQ0FDSEVfU1RPUkFHRSkpLFxufSk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXV0aEh0dHBDYWNoZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVTdG9yYWdlID0gaW5qZWN0KE9EWF9BVVRIX0hUVFBfQ0FDSEVfU1RPUkFHRV9DTElFTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2VydmljZSA9IGluamVjdChPQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShoYW5kbGVPQXV0aEV2ZW50KCdsb2dvdXQnLCAoKSA9PiB0aGlzLmRlbGV0ZUFsbCgpKSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY2FjaGVTdG9yYWdlLmRlbGV0ZUFsbCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShyZXF1ZXN0OiBSZXF1ZXN0SW5mbyB8IFVSTCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3RvcmFnZS5kZWxldGUocmVxdWVzdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdDxUPihyZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8gfCBVUkwsIGF1dGhlbnRpY2F0aW9uID0gZmFsc2UpOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgaWYgKGF1dGhlbnRpY2F0aW9uKSB7XG4gICAgICBjb25zdCBhdXRoU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShhdXRoU2VydmljZS5wcmVwYXJlQXV0aFJlcXVlc3QkKG5ldyBSZXF1ZXN0KHJlcXVlc3RJbmZvKSkpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZVN0b3JhZ2UucmVxdWVzdChyZXF1ZXN0LCAoeyBzdGF0dXMgfSkgPT4gcmVxdWVzdC5oZWFkZXJzLmhhcyhBVVRIX0hUVFBfSEVBREVSKSAmJiBzdGF0dXMgPT09IDQwMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdG9yYWdlLnJlcXVlc3QocmVxdWVzdEluZm8sICgpID0+IGZhbHNlKTtcbiAgfVxufVxuIl19
@@ -1,10 +1,13 @@
1
1
  import { ErrorHandler, inject, Injectable } from '@angular/core';
2
+ import { isNumber } from '@odx/angular/utils';
2
3
  import { deepmerge } from 'deepmerge-ts';
3
- import { BehaviorSubject, catchError, combineLatest, distinctUntilChanged, filter, map, of, share, switchMap, take, tap } from 'rxjs';
4
- import { ODX_AUTH_PLUGINS } from '../auth.config';
4
+ import { BehaviorSubject, catchError, combineLatest, distinctUntilChanged, filter, map, of, share, switchMap, take, tap, timeout } from 'rxjs';
5
+ import { injectAuthConfig } from '../auth.config';
6
+ import { ODX_AUTH_PLUGINS } from '../auth.providers';
5
7
  import * as i0 from "@angular/core";
6
8
  export class AuthPluginManager {
7
9
  constructor() {
10
+ this.authConfig = injectAuthConfig();
8
11
  this.errorHandler = inject(ErrorHandler, { optional: true });
9
12
  this.plugins = inject(ODX_AUTH_PLUGINS);
10
13
  this.result$$ = new BehaviorSubject(null);
@@ -15,12 +18,11 @@ export class AuthPluginManager {
15
18
  if (this.plugins.length < 1) {
16
19
  return of({});
17
20
  }
18
- return authService.isInitialized$.pipe(switchMap(() => {
19
- if (!authService.getAccessToken()) {
20
- return of({});
21
- }
22
- return combineLatest(this.plugins.map((plugin) => plugin(authService).pipe(catchError(this.handlePluginError.bind(this))))).pipe(map((results) => deepmerge(...results)));
23
- }), tap((result) => this.result$$.next(result)), take(1));
21
+ return authService.waitForAccessToken$(false).pipe(switchMap((token) => {
22
+ if (!token)
23
+ return of([{}]);
24
+ return combineLatest(this.plugins.map((plugin) => this.runPlugin(authService, plugin)));
25
+ }), map((results) => deepmerge(...results)), tap((result) => this.result$$.next(result)), take(1));
24
26
  }
25
27
  getResult() {
26
28
  return this.result$$.getValue() ?? {};
@@ -29,6 +31,9 @@ export class AuthPluginManager {
29
31
  this.errorHandler?.handleError(error);
30
32
  return of({});
31
33
  }
34
+ runPlugin(authService, plugin) {
35
+ return plugin(authService).pipe(isNumber(this.authConfig.pluginTimeout) ? timeout(this.authConfig.pluginTimeout) : tap(), catchError(this.handlePluginError.bind(this)));
36
+ }
32
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthPluginManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
38
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthPluginManager, providedIn: 'root' }); }
34
39
  }
@@ -36,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
41
  type: Injectable,
37
42
  args: [{ providedIn: 'root' }]
38
43
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wbHVnaW4tbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLXBsdWdpbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT2xELE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFbUIsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEQsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBa0MsSUFBSSxDQUFDLENBQUM7UUFFdkUsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRyxvQkFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3hCLG9CQUFvQixFQUFFLEVBQ3RCLEtBQUssRUFBRSxDQUNSLENBQUM7S0E2Qkg7SUEzQlEsVUFBVSxDQUFDLFdBQXdCO1FBQ3hDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLE9BQU8sRUFBRSxDQUFDLEVBQThCLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUE4QixDQUFDLENBQUM7YUFDM0M7WUFDRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUgsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQTZCLENBQUMsQ0FDcEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSyxFQUErQixDQUFDO0lBQ3RFLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFlO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQThCLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXRDVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJ2RlZXBtZXJnZS10cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT0RYX0FVVEhfUExVR0lOUyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQXV0aFBsdWdpbiA9IChhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpID0+IE9ic2VydmFibGU8UGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+PjtcbmV4cG9ydCB0eXBlIEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4gQXV0aFBsdWdpbjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoUGx1Z2luTWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JIYW5kbGVyID0gaW5qZWN0KEVycm9ySGFuZGxlciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5zID0gaW5qZWN0KE9EWF9BVVRIX1BMVUdJTlMpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc3VsdCQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGx1Z2luc1JlYWR5JCA9IHRoaXMucmVzdWx0JCQucGlwZShmaWx0ZXIoQm9vbGVhbiksIG1hcChCb29sZWFuKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmUoKSk7XG4gIHB1YmxpYyByZWFkb25seSBwbHVnaW5zTG9hZGluZyQgPSB0aGlzLnJlc3VsdCQkLnBpcGUoXG4gICAgbWFwKChyZXN1bHQpID0+ICFyZXN1bHQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmUoKSxcbiAgKTtcblxuICBwdWJsaWMgcnVuUGx1Z2lucyhhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD4ge1xuICAgIGlmICh0aGlzLnBsdWdpbnMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG9mKHt9IGFzIE9keEF1dGguQXV0aFBsdWdpblJlc3VsdCk7XG4gICAgfVxuICAgIHJldHVybiBhdXRoU2VydmljZS5pc0luaXRpYWxpemVkJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKCFhdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHt9IGFzIE9keEF1dGguQXV0aFBsdWdpblJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QodGhpcy5wbHVnaW5zLm1hcCgocGx1Z2luKSA9PiBwbHVnaW4oYXV0aFNlcnZpY2UpLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVBsdWdpbkVycm9yLmJpbmQodGhpcykpKSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXN1bHRzKSA9PiBkZWVwbWVyZ2UoLi4ucmVzdWx0cykgYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKChyZXN1bHQpID0+IHRoaXMucmVzdWx0JCQubmV4dChyZXN1bHQpKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXN1bHQoKTogT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHQkJC5nZXRWYWx1ZSgpID8/ICh7fSBhcyBPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQbHVnaW5FcnJvcihlcnJvcj86IHVua25vd24pOiBPYnNlcnZhYmxlPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD4ge1xuICAgIHRoaXMuZXJyb3JIYW5kbGVyPy5oYW5kbGVFcnJvcihlcnJvcik7XG5cbiAgICByZXR1cm4gb2Yoe30gYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KTtcbiAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wbHVnaW4tbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLXBsdWdpbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzSixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPckQsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVtQixlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFrQyxJQUFJLENBQUMsQ0FBQztRQUV2RSxrQkFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLG9CQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDeEIsb0JBQW9CLEVBQUUsRUFDdEIsS0FBSyxFQUFFLENBQ1IsQ0FBQztLQWlDSDtJQS9CUSxVQUFVLENBQUMsV0FBd0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUMsRUFBOEIsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxXQUFXLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBNkIsQ0FBQyxFQUNuRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzNDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUssRUFBK0IsQ0FBQztJQUN0RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBZTtRQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUE4QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxXQUF3QixFQUFFLE1BQWtCO1FBQzVELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFDeEYsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7K0dBM0NVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBREosTUFBTTs7NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvckhhbmRsZXIsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN3aXRjaE1hcCwgdGFrZSwgdGFwLCB0aW1lb3V0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgT0RYX0FVVEhfUExVR0lOUyB9IGZyb20gJy4uL2F1dGgucHJvdmlkZXJzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQXV0aFBsdWdpbiA9IChhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpID0+IE9ic2VydmFibGU8UGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+PjtcbmV4cG9ydCB0eXBlIEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4gQXV0aFBsdWdpbjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoUGx1Z2luTWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aENvbmZpZyA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvckhhbmRsZXIgPSBpbmplY3QoRXJyb3JIYW5kbGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbnMgPSBpbmplY3QoT0RYX0FVVEhfUExVR0lOUyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzdWx0JCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9keEF1dGguQXV0aFBsdWdpblJlc3VsdCB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwbHVnaW5zUmVhZHkkID0gdGhpcy5yZXN1bHQkJC5waXBlKGZpbHRlcihCb29sZWFuKSwgbWFwKEJvb2xlYW4pLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZSgpKTtcbiAgcHVibGljIHJlYWRvbmx5IHBsdWdpbnNMb2FkaW5nJCA9IHRoaXMucmVzdWx0JCQucGlwZShcbiAgICBtYXAoKHJlc3VsdCkgPT4gIXJlc3VsdCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZSgpLFxuICApO1xuXG4gIHB1YmxpYyBydW5QbHVnaW5zKGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSk6IE9ic2VydmFibGU8T2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0PiB7XG4gICAgaWYgKHRoaXMucGx1Z2lucy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gb2Yoe30gYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KTtcbiAgICB9XG4gICAgcmV0dXJuIGF1dGhTZXJ2aWNlLndhaXRGb3JBY2Nlc3NUb2tlbiQoZmFsc2UpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRva2VuKSA9PiB7XG4gICAgICAgIGlmICghdG9rZW4pIHJldHVybiBvZihbe31dKTtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QodGhpcy5wbHVnaW5zLm1hcCgocGx1Z2luKSA9PiB0aGlzLnJ1blBsdWdpbihhdXRoU2VydmljZSwgcGx1Z2luKSkpO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJlc3VsdHMpID0+IGRlZXBtZXJnZSguLi5yZXN1bHRzKSBhcyBPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQpLFxuICAgICAgdGFwKChyZXN1bHQpID0+IHRoaXMucmVzdWx0JCQubmV4dChyZXN1bHQpKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXN1bHQoKTogT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHQkJC5nZXRWYWx1ZSgpID8/ICh7fSBhcyBPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQbHVnaW5FcnJvcihlcnJvcj86IHVua25vd24pOiBPYnNlcnZhYmxlPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD4ge1xuICAgIHRoaXMuZXJyb3JIYW5kbGVyPy5oYW5kbGVFcnJvcihlcnJvcik7XG5cbiAgICByZXR1cm4gb2Yoe30gYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuUGx1Z2luKGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcGx1Z2luOiBBdXRoUGx1Z2luKTogUmV0dXJuVHlwZTxBdXRoUGx1Z2luPiB7XG4gICAgcmV0dXJuIHBsdWdpbihhdXRoU2VydmljZSkucGlwZShcbiAgICAgIGlzTnVtYmVyKHRoaXMuYXV0aENvbmZpZy5wbHVnaW5UaW1lb3V0KSA/IHRpbWVvdXQodGhpcy5hdXRoQ29uZmlnLnBsdWdpblRpbWVvdXQpIDogdGFwKCksXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlUGx1Z2luRXJyb3IuYmluZCh0aGlzKSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { DestroyRef, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { of } from 'rxjs';
4
+ import logger from '../auth.logger';
5
+ export const coreDebugPlugin = () => {
6
+ logger.warn('DEBUG MODE ENABLED - DO NOT USE IN PRODUCTION!');
7
+ const destroyRef = inject(DestroyRef);
8
+ let instance = null;
9
+ return (authService) => {
10
+ instance ??= authService.identityClaims$.pipe(takeUntilDestroyed(destroyRef)).subscribe((claims) => {
11
+ logger.info(`User: ${claims?.username} (${claims?.email})`);
12
+ logger.group('Identity claims', (log) => log(claims), false);
13
+ logger.group('Access token', (log) => log(authService.getAccessToken()));
14
+ logger.group('Refresh token', (log) => log(authService.getRefreshToken()));
15
+ logger.group('ID token', (log) => log(authService.getIdToken()));
16
+ });
17
+ return of({});
18
+ };
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kZWJ1Zy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtZGVidWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBR3BDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBc0IsR0FBRyxFQUFFO0lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM5RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsSUFBSSxRQUFRLEdBQXdCLElBQUksQ0FBQztJQUV6QyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDckIsUUFBUSxLQUFLLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLE1BQU0sRUFBRSxRQUFRLEtBQUssTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDNUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2F1dGgubG9nZ2VyJztcbmltcG9ydCB7IEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IGNvcmVEZWJ1Z1BsdWdpbjogQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiB7XG4gIGxvZ2dlci53YXJuKCdERUJVRyBNT0RFIEVOQUJMRUQgLSBETyBOT1QgVVNFIElOIFBST0RVQ1RJT04hJyk7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGxldCBpbnN0YW5jZTogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcmV0dXJuIChhdXRoU2VydmljZSkgPT4ge1xuICAgIGluc3RhbmNlID8/PSBhdXRoU2VydmljZS5pZGVudGl0eUNsYWltcyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoZGVzdHJveVJlZikpLnN1YnNjcmliZSgoY2xhaW1zKSA9PiB7XG4gICAgICBsb2dnZXIuaW5mbyhgVXNlcjogJHtjbGFpbXM/LnVzZXJuYW1lfSAoJHtjbGFpbXM/LmVtYWlsfSlgKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnSWRlbnRpdHkgY2xhaW1zJywgKGxvZykgPT4gbG9nKGNsYWltcyksIGZhbHNlKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnQWNjZXNzIHRva2VuJywgKGxvZykgPT4gbG9nKGF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCkpKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnUmVmcmVzaCB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKSkpO1xuICAgICAgbG9nZ2VyLmdyb3VwKCdJRCB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRJZFRva2VuKCkpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvZih7fSk7XG4gIH07XG59O1xuIl19
@@ -1,3 +1,4 @@
1
+ export * from './core-debug.plugin';
1
2
  export * from './core-identity.plugin';
2
3
  export * from './user-profile-link.plugin';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29yZS1pZGVudGl0eS5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4nO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3JlLWRlYnVnLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUtaWRlbnRpdHkucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1wcm9maWxlLWxpbmsucGx1Z2luJztcbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import { of } from 'rxjs';
2
- import { DEFAULT_USER_PROFILE_URLS, injectAuthConfig } from '../auth.config';
2
+ import { ODX_AUTH_USER_PROFILE_HOSTS, injectAuthConfig } from '../auth.config';
3
3
  export const userProfileUrlPlugin = () => {
4
4
  const { environment, userProfileUrl } = injectAuthConfig();
5
5
  return () => {
6
- return of({ userProfileUrl: userProfileUrl ?? DEFAULT_USER_PROFILE_URLS[environment] });
6
+ return of({ userProfileUrl: userProfileUrl ?? ODX_AUTH_USER_PROFILE_HOSTS[environment] });
7
7
  };
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvcGx1Z2lucy91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVk3RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBc0IsR0FBRyxFQUFFO0lBQzFELE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUUzRCxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLGNBQWMsSUFBSSx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERFRkFVTFRfVVNFUl9QUk9GSUxFX1VSTFMsIGluamVjdEF1dGhDb25maWcgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBBdXRoUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbiAgbmFtZXNwYWNlIE9keEF1dGgge1xuICAgIGludGVyZmFjZSBBdXRoUGx1Z2luUmVzdWx0IHtcbiAgICAgIHVzZXJQcm9maWxlVXJsOiBzdHJpbmc7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1c2VyUHJvZmlsZVVybFBsdWdpbjogQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IHsgZW52aXJvbm1lbnQsIHVzZXJQcm9maWxlVXJsIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICByZXR1cm4gb2YoeyB1c2VyUHJvZmlsZVVybDogdXNlclByb2ZpbGVVcmwgPz8gREVGQVVMVF9VU0VSX1BST0ZJTEVfVVJMU1tlbnZpcm9ubWVudF0gfSk7XG4gIH07XG59O1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvcGx1Z2lucy91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVkvRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBc0IsR0FBRyxFQUFFO0lBQzFELE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUMzRCxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLGNBQWMsSUFBSSwyQkFBMkIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9EWF9BVVRIX1VTRVJfUFJPRklMRV9IT1NUUywgaW5qZWN0QXV0aENvbmZpZyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBuYW1lc3BhY2UgT2R4QXV0aCB7XG4gICAgaW50ZXJmYWNlIEF1dGhQbHVnaW5SZXN1bHQge1xuICAgICAgdXNlclByb2ZpbGVVcmw6IHN0cmluZztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZXJQcm9maWxlVXJsUGx1Z2luOiBBdXRoUGx1Z2luRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgeyBlbnZpcm9ubWVudCwgdXNlclByb2ZpbGVVcmwgfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICByZXR1cm4gb2YoeyB1c2VyUHJvZmlsZVVybDogdXNlclByb2ZpbGVVcmwgPz8gT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTW2Vudmlyb25tZW50XSB9KTtcbiAgfTtcbn07XG4iXX0=
@@ -1,18 +1,25 @@
1
1
  import { inject } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
+ import { WindowRef } from '@odx/angular';
3
4
  import { isString } from '@odx/angular/utils';
4
5
  import { map, take, tap } from 'rxjs';
5
6
  import { AuthService } from './auth.service';
6
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- export function unauthGuard(authorizedHandler, redirectTo) {
8
+ export function unauthGuard(authorizedHandler, redirectTo, isExternal = false) {
8
9
  return (_) => {
9
10
  const authService = inject(AuthService);
10
11
  const router = inject(Router, { optional: true });
12
+ const windowRef = inject(WindowRef);
11
13
  return authService.isAuthenticated$.pipe(map(() => !authService.isAuthorized(authorizedHandler)), tap((isUnauthorized) => {
12
14
  if (isUnauthorized || !router)
13
15
  return;
14
16
  if (isString(redirectTo)) {
15
- router.navigateByUrl(redirectTo);
17
+ if (isExternal) {
18
+ windowRef.location.assign(redirectTo);
19
+ }
20
+ else {
21
+ router.navigateByUrl(redirectTo);
22
+ }
16
23
  }
17
24
  else if (Array.isArray(redirectTo)) {
18
25
  router.navigate(redirectTo);
@@ -20,4 +27,4 @@ export function unauthGuard(authorizedHandler, redirectTo) {
20
27
  }), take(1));
21
28
  };
22
29
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3Qyw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxpQkFBcUMsRUFBRSxVQUEyQjtJQUM1RixPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDWCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWxELE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksY0FBYyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3RDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN4QixNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IG1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhvcml6ZWRIYW5kbGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHVuYXV0aEd1YXJkKGF1dGhvcml6ZWRIYW5kbGVyPzogQXV0aG9yaXplZEhhbmRsZXIsIHJlZGlyZWN0VG8/OiBhbnlbXSB8IHN0cmluZyk6IENhbkFjdGl2YXRlRm4ge1xuICByZXR1cm4gKF8pID0+IHtcbiAgICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIHJldHVybiBhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gIWF1dGhTZXJ2aWNlLmlzQXV0aG9yaXplZChhdXRob3JpemVkSGFuZGxlcikpLFxuICAgICAgdGFwKChpc1VuYXV0aG9yaXplZCkgPT4ge1xuICAgICAgICBpZiAoaXNVbmF1dGhvcml6ZWQgfHwgIXJvdXRlcikgcmV0dXJuO1xuICAgICAgICBpZiAoaXNTdHJpbmcocmVkaXJlY3RUbykpIHtcbiAgICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFRvKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlZGlyZWN0VG8pKSB7XG4gICAgICAgICAgcm91dGVyLm5hdmlnYXRlKHJlZGlyZWN0VG8pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsV0FBVyxDQUFDLGlCQUFxQyxFQUFFLFVBQTJCLEVBQUUsVUFBVSxHQUFHLEtBQUs7SUFDaEgsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1gsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEMsT0FBTyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDdkQsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDckIsSUFBSSxjQUFjLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDdEMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksVUFBVSxFQUFFO29CQUNkLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN2QztxQkFBTTtvQkFDTCxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNsQzthQUNGO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBtYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBdXRob3JpemVkSGFuZGxlciB9IGZyb20gJy4vbW9kZWxzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiB1bmF1dGhHdWFyZChhdXRob3JpemVkSGFuZGxlcj86IEF1dGhvcml6ZWRIYW5kbGVyLCByZWRpcmVjdFRvPzogYW55W10gfCBzdHJpbmcsIGlzRXh0ZXJuYWwgPSBmYWxzZSk6IENhbkFjdGl2YXRlRm4ge1xuICByZXR1cm4gKF8pID0+IHtcbiAgICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBjb25zdCB3aW5kb3dSZWYgPSBpbmplY3QoV2luZG93UmVmKTtcblxuICAgIHJldHVybiBhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gIWF1dGhTZXJ2aWNlLmlzQXV0aG9yaXplZChhdXRob3JpemVkSGFuZGxlcikpLFxuICAgICAgdGFwKChpc1VuYXV0aG9yaXplZCkgPT4ge1xuICAgICAgICBpZiAoaXNVbmF1dGhvcml6ZWQgfHwgIXJvdXRlcikgcmV0dXJuO1xuICAgICAgICBpZiAoaXNTdHJpbmcocmVkaXJlY3RUbykpIHtcbiAgICAgICAgICBpZiAoaXNFeHRlcm5hbCkge1xuICAgICAgICAgICAgd2luZG93UmVmLmxvY2F0aW9uLmFzc2lnbihyZWRpcmVjdFRvKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwocmVkaXJlY3RUbyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmVkaXJlY3RUbykpIHtcbiAgICAgICAgICByb3V0ZXIubmF2aWdhdGUocmVkaXJlY3RUbyk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZSgxKSxcbiAgICApO1xuICB9O1xufVxuIl19
@@ -3,6 +3,6 @@ export * from './lib/helpers';
3
3
  export * from './lib/service-connect-rights.directive';
4
4
  export * from './lib/service-connect-rights.guard';
5
5
  export * from './lib/service-connect-rights.plugin';
6
+ export * from './lib/service-connect-user-language.plugin';
6
7
  export * from './lib/service-connect.config';
7
- export * from './lib/service-connect.typings';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2R0b3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS1jb25uZWN0LnR5cGluZ3MnO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2R0b3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC11c2VyLWxhbmd1YWdlLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlLWNvbm5lY3QuY29uZmlnJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2R0b3MvZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB7XG4gIGxhbmd1YWdlX2NvZGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,2 +1,3 @@
1
1
  export * from './get-service-connect-rights-response.dto';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9kdG9zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dldC1zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLXJlc3BvbnNlLmR0byc7XG4iXX0=
2
+ export * from './get-service-connect-user-response.dto';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9kdG9zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LXNlcnZpY2UtY29ubmVjdC1yaWdodHMtcmVzcG9uc2UuZHRvJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0byc7XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { authGuard } from '@odx/auth';
2
2
  import { hasRolesOrRightsHandler } from './helpers';
3
3
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
- export function serviceConnectRightsGuard(rolesOrRights, redirectTo) {
5
- return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo);
4
+ export function serviceConnectRightsGuard(rolesOrRights, redirectTo, isExternal = false) {
5
+ return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo, isExternal);
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDO0FBRW5FLDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUseUJBQXlCLENBQUMsYUFBNEIsRUFBRSxVQUEyQjtJQUNqRyxPQUFPLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhdXRoR3VhcmQgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIsIFJvbGVzT3JSaWdodHMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VDb25uZWN0UmlnaHRzR3VhcmQocm9sZXNPclJpZ2h0czogUm9sZXNPclJpZ2h0cywgcmVkaXJlY3RUbz86IHN0cmluZyB8IGFueVtdKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiBhdXRoR3VhcmQoaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIocm9sZXNPclJpZ2h0cyksIHJlZGlyZWN0VG8pO1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDO0FBRW5FLDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUseUJBQXlCLENBQUMsYUFBNEIsRUFBRSxVQUEyQixFQUFFLFVBQVUsR0FBRyxLQUFLO0lBQ3JILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhdXRoR3VhcmQgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIsIFJvbGVzT3JSaWdodHMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VDb25uZWN0UmlnaHRzR3VhcmQocm9sZXNPclJpZ2h0czogUm9sZXNPclJpZ2h0cywgcmVkaXJlY3RUbz86IHN0cmluZyB8IGFueVtdLCBpc0V4dGVybmFsID0gZmFsc2UpOiBDYW5BY3RpdmF0ZUZuIHtcbiAgcmV0dXJuIGF1dGhHdWFyZChoYXNSb2xlc09yUmlnaHRzSGFuZGxlcihyb2xlc09yUmlnaHRzKSwgcmVkaXJlY3RUbywgaXNFeHRlcm5hbCk7XG59XG4iXX0=
@@ -1,9 +1,8 @@
1
1
  import { serviceConnectPluginFactory } from './helpers';
2
2
  import { ServiceConnectEndpoints } from './service-connect.config';
3
- import './service-connect.typings';
4
3
  export const serviceConnectRightsPlugin = serviceConnectPluginFactory({
5
4
  endpoint: [ServiceConnectEndpoints.userRights],
6
5
  parseResponse: (res) => ({ rights: res?.rights ?? [] }),
7
6
  defaultValue: { rights: [] },
8
7
  });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRywyQkFBMkIsQ0FBcUM7SUFDeEcsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDO0lBQzlDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ3ZELFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Q0FDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0U2VydmljZUNvbm5lY3RSaWdodHNSZXNwb25zZUR0byB9IGZyb20gJy4vZHRvcyc7XG5pbXBvcnQgeyBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuaW1wb3J0ICcuL3NlcnZpY2UtY29ubmVjdC50eXBpbmdzJztcblxuZXhwb3J0IGNvbnN0IHNlcnZpY2VDb25uZWN0UmlnaHRzUGx1Z2luID0gc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PEdldFNlcnZpY2VDb25uZWN0UmlnaHRzUmVzcG9uc2VEdG8+KHtcbiAgZW5kcG9pbnQ6IFtTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cy51c2VyUmlnaHRzXSxcbiAgcGFyc2VSZXNwb25zZTogKHJlcykgPT4gKHsgcmlnaHRzOiByZXM/LnJpZ2h0cyA/PyBbXSB9KSxcbiAgZGVmYXVsdFZhbHVlOiB7IHJpZ2h0czogW10gfSxcbn0pO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFXbkUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsMkJBQTJCLENBQXFDO0lBQ3hHLFFBQVEsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQztJQUM5QyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN2RCxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO0NBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0UmlnaHRzUmVzcG9uc2VEdG8gfSBmcm9tICcuL2R0b3MnO1xuaW1wb3J0IHsgUmlnaHQsIHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cyB9IGZyb20gJy4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbiAgbmFtZXNwYWNlIE9keEF1dGgge1xuICAgIGludGVyZmFjZSBBdXRoUGx1Z2luUmVzdWx0IHtcbiAgICAgIHJpZ2h0czogUmlnaHRbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNlcnZpY2VDb25uZWN0UmlnaHRzUGx1Z2luID0gc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PEdldFNlcnZpY2VDb25uZWN0UmlnaHRzUmVzcG9uc2VEdG8+KHtcbiAgZW5kcG9pbnQ6IFtTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cy51c2VyUmlnaHRzXSxcbiAgcGFyc2VSZXNwb25zZTogKHJlcykgPT4gKHsgcmlnaHRzOiByZXM/LnJpZ2h0cyA/PyBbXSB9KSxcbiAgZGVmYXVsdFZhbHVlOiB7IHJpZ2h0czogW10gfSxcbn0pO1xuIl19
@@ -0,0 +1,8 @@
1
+ import { getLanguageCode } from '@odx/angular/utils';
2
+ import { serviceConnectPluginFactory } from './helpers';
3
+ import { ServiceConnectEndpoints } from './service-connect.config';
4
+ export const serviceConnectUserLanguagePlugin = serviceConnectPluginFactory({
5
+ endpoint: [ServiceConnectEndpoints.user],
6
+ parseResponse: (res) => ({ preferredLanguage: res?.language_code ? getLanguageCode(res.language_code) : undefined }),
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsMkJBQTJCLENBQW1DO0lBQzVHLFFBQVEsRUFBRSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQztJQUN4QyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztDQUNySCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMYW5ndWFnZUNvZGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgR2V0U2VydmljZUNvbm5lY3RVc2VyUmVzcG9uc2VEdG8gfSBmcm9tICcuL2R0b3MnO1xuaW1wb3J0IHsgc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW5kcG9pbnRzIH0gZnJvbSAnLi9zZXJ2aWNlLWNvbm5lY3QuY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IHNlcnZpY2VDb25uZWN0VXNlckxhbmd1YWdlUGx1Z2luID0gc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvPih7XG4gIGVuZHBvaW50OiBbU2VydmljZUNvbm5lY3RFbmRwb2ludHMudXNlcl0sXG4gIHBhcnNlUmVzcG9uc2U6IChyZXMpID0+ICh7IHByZWZlcnJlZExhbmd1YWdlOiByZXM/Lmxhbmd1YWdlX2NvZGUgPyBnZXRMYW5ndWFnZUNvZGUocmVzLmxhbmd1YWdlX2NvZGUpIDogdW5kZWZpbmVkIH0pLFxufSk7XG4iXX0=
@@ -1,7 +1,8 @@
1
+ import { AuthEnvironment } from '@odx/auth';
1
2
  export const ServiceConnnectEnvironments = {
2
- dev: 'https://api.test.connect.draeger.com',
3
- stage: 'https://api.staging.connect.draeger.com',
4
- prod: 'https://api.connect.draeger.com',
3
+ [AuthEnvironment.DEV]: 'https://api.test.connect.draeger.com',
4
+ [AuthEnvironment.STAGE]: 'https://api.staging.connect.draeger.com',
5
+ [AuthEnvironment.PROD]: 'https://api.connect.draeger.com',
5
6
  };
6
7
  export const ServiceConnectScopes = {
7
8
  BASE: 'dcid',
@@ -10,6 +11,7 @@ export const ServiceConnectScopes = {
10
11
  INSTITUTION: 'dcid.institution',
11
12
  };
12
13
  export const ServiceConnectEndpoints = {
14
+ user: '/users/me',
13
15
  userRights: '/users/me/rights',
14
16
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQW9DO0lBQzFFLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0MsS0FBSyxFQUFFLHlDQUF5QztJQUNoRCxJQUFJLEVBQUUsaUNBQWlDO0NBQ3hDLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFdBQVcsRUFBRSxrQkFBa0I7Q0FDaEMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLFVBQVUsRUFBRSxrQkFBa0I7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCB9IGZyb20gJ0BvZHgvYXV0aCc7XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQgPSB7IGN1c3RvbTogc3RyaW5nIH07XG5leHBvcnQgY29uc3QgU2VydmljZUNvbm5uZWN0RW52aXJvbm1lbnRzOiBSZWNvcmQ8QXV0aEVudmlyb25tZW50LCBzdHJpbmc+ID0ge1xuICBkZXY6ICdodHRwczovL2FwaS50ZXN0LmNvbm5lY3QuZHJhZWdlci5jb20nLFxuICBzdGFnZTogJ2h0dHBzOi8vYXBpLnN0YWdpbmcuY29ubmVjdC5kcmFlZ2VyLmNvbScsXG4gIHByb2Q6ICdodHRwczovL2FwaS5jb25uZWN0LmRyYWVnZXIuY29tJyxcbn07XG5leHBvcnQgY29uc3QgU2VydmljZUNvbm5lY3RTY29wZXMgPSB7XG4gIEJBU0U6ICdkY2lkJyxcbiAgUFJPRklMRTogJ2RjaWQucHJvZmlsZScsXG4gIFJJR0hUUzogJ2RjaWQucmlnaHRzJyxcbiAgSU5TVElUVVRJT046ICdkY2lkLmluc3RpdHV0aW9uJyxcbn07XG5leHBvcnQgY29uc3QgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgPSB7XG4gIHVzZXJSaWdodHM6ICcvdXNlcnMvbWUvcmlnaHRzJyxcbn07XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBb0M7SUFDMUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzdELENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLHlDQUF5QztJQUNsRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQ0FBaUM7Q0FDMUQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLGNBQWM7SUFDdkIsTUFBTSxFQUFFLGFBQWE7SUFDckIsV0FBVyxFQUFFLGtCQUFrQjtDQUNoQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsSUFBSSxFQUFFLFdBQVc7SUFDakIsVUFBVSxFQUFFLGtCQUFrQjtDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcblxuZXhwb3J0IHR5cGUgU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCA9IHsgY3VzdG9tOiBzdHJpbmcgfTtcbmV4cG9ydCBjb25zdCBTZXJ2aWNlQ29ubm5lY3RFbnZpcm9ubWVudHM6IFJlY29yZDxBdXRoRW52aXJvbm1lbnQsIHN0cmluZz4gPSB7XG4gIFtBdXRoRW52aXJvbm1lbnQuREVWXTogJ2h0dHBzOi8vYXBpLnRlc3QuY29ubmVjdC5kcmFlZ2VyLmNvbScsXG4gIFtBdXRoRW52aXJvbm1lbnQuU1RBR0VdOiAnaHR0cHM6Ly9hcGkuc3RhZ2luZy5jb25uZWN0LmRyYWVnZXIuY29tJyxcbiAgW0F1dGhFbnZpcm9ubWVudC5QUk9EXTogJ2h0dHBzOi8vYXBpLmNvbm5lY3QuZHJhZWdlci5jb20nLFxufTtcbmV4cG9ydCBjb25zdCBTZXJ2aWNlQ29ubmVjdFNjb3BlcyA9IHtcbiAgQkFTRTogJ2RjaWQnLFxuICBQUk9GSUxFOiAnZGNpZC5wcm9maWxlJyxcbiAgUklHSFRTOiAnZGNpZC5yaWdodHMnLFxuICBJTlNUSVRVVElPTjogJ2RjaWQuaW5zdGl0dXRpb24nLFxufTtcbmV4cG9ydCBjb25zdCBTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cyA9IHtcbiAgdXNlcjogJy91c2Vycy9tZScsXG4gIHVzZXJSaWdodHM6ICcvdXNlcnMvbWUvcmlnaHRzJyxcbn07XG4iXX0=
@@ -1,14 +1,14 @@
1
- import { isString, buildUrl } from '@odx/angular/utils';
1
+ import { isString, buildUrl, getLanguageCode } from '@odx/angular/utils';
2
+ import * as i1 from '@odx/auth';
3
+ import { AuthEnvironment, injectAuthConfig, AuthHttpCache, AuthDirective, authGuard } from '@odx/auth';
2
4
  import * as i0 from '@angular/core';
3
5
  import { inject, Directive, Input } from '@angular/core';
4
- import * as i1 from '@odx/auth';
5
- import { injectAuthConfig, AuthHttpCache, AuthDirective, authGuard } from '@odx/auth';
6
6
  import { defer, map } from 'rxjs';
7
7
 
8
8
  const ServiceConnnectEnvironments = {
9
- dev: 'https://api.test.connect.draeger.com',
10
- stage: 'https://api.staging.connect.draeger.com',
11
- prod: 'https://api.connect.draeger.com',
9
+ [AuthEnvironment.DEV]: 'https://api.test.connect.draeger.com',
10
+ [AuthEnvironment.STAGE]: 'https://api.staging.connect.draeger.com',
11
+ [AuthEnvironment.PROD]: 'https://api.connect.draeger.com',
12
12
  };
13
13
  const ServiceConnectScopes = {
14
14
  BASE: 'dcid',
@@ -17,6 +17,7 @@ const ServiceConnectScopes = {
17
17
  INSTITUTION: 'dcid.institution',
18
18
  };
19
19
  const ServiceConnectEndpoints = {
20
+ user: '/users/me',
20
21
  userRights: '/users/me/rights',
21
22
  };
22
23
 
@@ -74,8 +75,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
74
75
  }] } });
75
76
 
76
77
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
- function serviceConnectRightsGuard(rolesOrRights, redirectTo) {
78
- return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo);
78
+ function serviceConnectRightsGuard(rolesOrRights, redirectTo, isExternal = false) {
79
+ return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo, isExternal);
79
80
  }
80
81
 
81
82
  const serviceConnectRightsPlugin = serviceConnectPluginFactory({
@@ -84,9 +85,14 @@ const serviceConnectRightsPlugin = serviceConnectPluginFactory({
84
85
  defaultValue: { rights: [] },
85
86
  });
86
87
 
88
+ const serviceConnectUserLanguagePlugin = serviceConnectPluginFactory({
89
+ endpoint: [ServiceConnectEndpoints.user],
90
+ parseResponse: (res) => ({ preferredLanguage: res?.language_code ? getLanguageCode(res.language_code) : undefined }),
91
+ });
92
+
87
93
  /**
88
94
  * Generated bundle index. Do not edit.
89
95
  */
90
96
 
91
- export { ServiceConnectEndpoints, ServiceConnectRightsDirective, ServiceConnectScopes, ServiceConnnectEnvironments, buildServiceConnectUrl, hasRolesOrRights, hasRolesOrRightsHandler, serviceConnectPluginFactory, serviceConnectRightsGuard, serviceConnectRightsPlugin };
97
+ export { ServiceConnectEndpoints, ServiceConnectRightsDirective, ServiceConnectScopes, ServiceConnnectEnvironments, buildServiceConnectUrl, hasRolesOrRights, hasRolesOrRightsHandler, serviceConnectPluginFactory, serviceConnectRightsGuard, serviceConnectRightsPlugin, serviceConnectUserLanguagePlugin };
92
98
  //# sourceMappingURL=odx-auth-plugins-service-connect.mjs.map