@odx/auth 3.4.0 → 4.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.
- package/README.md +16 -2
- package/esm2020/lib/auth.component.mjs +19 -11
- package/esm2020/lib/auth.config.mjs +10 -1
- package/esm2020/lib/auth.i18n.mjs +13 -0
- package/esm2020/lib/auth.providers.mjs +16 -11
- package/esm2020/lib/components/auth-actions/auth-actions.component.mjs +30 -0
- package/esm2020/lib/components/index.mjs +2 -1
- package/esm2020/lib/helpers/handle-auth-error.mjs +21 -0
- package/esm2020/lib/helpers/index.mjs +2 -1
- package/esm2020/lib/models/auth-http-cache.mjs +15 -6
- package/esm2020/lib/models/index.mjs +2 -1
- package/esm2020/lib/models/offline-auth-error-handler.mjs +7 -0
- package/esm2020/lib/plugins/index.mjs +2 -1
- package/esm2020/lib/plugins/user-profile-link.plugin.mjs +9 -0
- package/esm2020/plugins/service-connect/lib/helpers/service-connect-plugin-factory.mjs +5 -17
- package/esm2020/plugins/service-connect/lib/service-connect-rights.plugin.mjs +1 -2
- package/esm2020/plugins/service-connect/lib/service-connect.config.mjs +4 -3
- package/fesm2015/odx-auth-plugins-service-connect.mjs +7 -21
- package/fesm2015/odx-auth-plugins-service-connect.mjs.map +1 -1
- package/fesm2015/odx-auth.mjs +162 -68
- package/fesm2015/odx-auth.mjs.map +1 -1
- package/fesm2020/odx-auth-plugins-service-connect.mjs +7 -19
- package/fesm2020/odx-auth-plugins-service-connect.mjs.map +1 -1
- package/fesm2020/odx-auth.mjs +160 -66
- package/fesm2020/odx-auth.mjs.map +1 -1
- package/lib/auth.component.d.ts +1 -3
- package/lib/auth.config.d.ts +3 -0
- package/lib/auth.i18n.d.ts +3 -0
- package/lib/auth.providers.d.ts +1 -1
- package/lib/components/auth-actions/auth-actions.component.d.ts +7 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/helpers/handle-auth-error.d.ts +3 -0
- package/lib/helpers/index.d.ts +1 -0
- package/lib/models/auth-http-cache.d.ts +2 -1
- package/lib/models/index.d.ts +1 -0
- package/lib/models/offline-auth-error-handler.d.ts +2 -0
- package/lib/plugins/index.d.ts +1 -0
- package/lib/plugins/user-profile-link.plugin.d.ts +9 -0
- package/package.json +2 -2
- package/plugins/service-connect/lib/helpers/service-connect-plugin-factory.d.ts +3 -2
- package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +1 -1
- package/plugins/service-connect/lib/service-connect.config.d.ts +3 -0
package/README.md
CHANGED
|
@@ -9,6 +9,21 @@
|
|
|
9
9
|
npm install @odx/auth
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
+
### Library structure
|
|
13
|
+
|
|
14
|
+
- **@odx/auth**: main entry point
|
|
15
|
+
- **provideAuth**: Main provider factory to enable authentication for an Angular application
|
|
16
|
+
- **AuthModule**: Angular module which bundles all components and directives for the UI
|
|
17
|
+
- **AuthService**: Service to perform different tasks regarding authentication and authorization
|
|
18
|
+
- **authGuard**: Angular guard to protect routes that require authentication or authorization
|
|
19
|
+
- **unauthGuard**: Angular guard to protect routes that don't require authentication or authorization
|
|
20
|
+
- ...
|
|
21
|
+
- **@odx/auth/plugins/service-connect**: main entry point for service connect auth plugins
|
|
22
|
+
- **serviceConnectRightsPlugin**: Auth plugin to load user rights from service connect
|
|
23
|
+
- **serviceConnectRightsGuard**: Auth guard to check for service connect user rights
|
|
24
|
+
- **ServiceConnectRightsDirective**: Auth directive to check for service connect user rights
|
|
25
|
+
- ...
|
|
26
|
+
|
|
12
27
|
### Usage
|
|
13
28
|
|
|
14
29
|
Import the `AuthModule` from `@odx/auth` and add it to the application imports, to configure it use the `provideAuth` function.
|
|
@@ -42,6 +57,7 @@ interface AuthConfig {
|
|
|
42
57
|
storage: OAuthStorage;
|
|
43
58
|
plugins: AuthPluginFactory[];
|
|
44
59
|
showRedirectOverlay: boolean;
|
|
60
|
+
userProfileLink: string;
|
|
45
61
|
}
|
|
46
62
|
```
|
|
47
63
|
|
|
@@ -54,5 +70,3 @@ In order to add the UI for signing in and out, add the `odx-auth` component to t
|
|
|
54
70
|
</odx-auth>
|
|
55
71
|
</odx-header>
|
|
56
72
|
```
|
|
57
|
-
|
|
58
|
-
> The library provides some additional plugins that can be imported from `@odx/auth/plugins/*`
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { CoreModule } from '@odx/angular';
|
|
3
3
|
import { AreaHeaderModule } from '@odx/angular/components/area-header';
|
|
4
4
|
import { DropdownModule } from '@odx/angular/components/dropdown';
|
|
5
5
|
import { HeaderModule } from '@odx/angular/components/header';
|
|
6
6
|
import { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';
|
|
7
7
|
import { LogoDirective } from '@odx/angular/components/logo';
|
|
8
|
+
import { provideTranslations, TranslatePipe } from '@odx/angular/internal/translate';
|
|
8
9
|
import { Position } from '@odx/angular/utils';
|
|
9
10
|
import { injectAuthConfig } from './auth.config';
|
|
11
|
+
import translations from './auth.i18n';
|
|
10
12
|
import { AuthService } from './auth.service';
|
|
13
|
+
import { AuthActionsComponent } from './components';
|
|
11
14
|
import { SignInDirective, SignOutDirective } from './directives';
|
|
12
15
|
import * as i0 from "@angular/core";
|
|
13
16
|
import * as i1 from "@angular/common";
|
|
@@ -27,18 +30,23 @@ export class AuthComponent {
|
|
|
27
30
|
enableFallback: false,
|
|
28
31
|
containerClass: 'odx-auth-user-profile',
|
|
29
32
|
};
|
|
30
|
-
this.signInButtonText = 'Sign in';
|
|
31
|
-
this.signOutButtonText = 'Sign out';
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
AuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
AuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthComponent, isStandalone: true, selector: "odx-auth",
|
|
36
|
+
AuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthComponent, isStandalone: true, selector: "odx-auth", providers: [provideTranslations(translations)], ngImport: i0, template: "<odx-action-group>\n <ng-template [ngrxLet]=\"{ idClaims: authService.identityClaims$, isAuthenticated: authService.isAuthenticated$ }\" let-vm>\n <ng-template [ngIf]=\"vm.isAuthenticated\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton [odxDropdown]=\"userProfileMenu\" [odxDropdownOptions]=\"dropdownOptions\" data-testid=\"odx-auth-user-profile-button\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\"></ng-template>\n </button>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" ngProjectAs=\"odx-avatar\"></ng-template>\n {{ vm.idClaims?.username }}\n <odx-area-header-subtitle>\n {{ vm.idClaims?.email }}\n </odx-area-header-subtitle>\n </odx-area-header>\n <ng-content></ng-content>\n <odx-auth-actions [claims]=\"vm.idClaims\"></odx-auth-actions>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\" data-testid=\"odx-auth-sign-out-button\">\n {{ 'signOutButtonText' | odxTranslate | async }}\n <odx-icon name=\"logout\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"secondary\" data-testid=\"odx-auth-sign-in-button\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ 'signInButtonText' | odxTranslate | async }}\n </button>\n </ng-template>\n <ng-template #userAvatar>\n <odx-avatar class=\"odx-auth-user-avatar\">\n {{ vm.idClaims?.initials ?? '' }}\n </odx-avatar>\n </ng-template>\n </ng-template>\n</odx-action-group>\n", styles: [".odx-auth-user-profile .odx-dropdown__inner>.odx-area-header{max-width:max(360px,25vw);min-width:296px}.odx-auth-actions{display:block;margin-top:calc(var(--odx-vertical-rythm-base-size) * .5);margin-bottom:calc(var(--odx-vertical-rythm-base-size) * .5);margin-right:calc(var(--odx-vertical-rythm-base-size) * .25);margin-left:calc(var(--odx-vertical-rythm-base-size) * .25)}\n"], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: AreaHeaderModule }, { kind: "component", type: i3.AreaHeaderComponent, selector: "odx-area-header", inputs: ["size"] }, { kind: "directive", type: i3.AreaHeaderSubtitleDirective, selector: "odx-area-header-subtitle" }, { kind: "component", type: i4.AvatarComponent, selector: "odx-avatar", inputs: ["size", "variant"] }, { kind: "component", type: i5.ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: i7.IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i8.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: HeaderModule }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "directive", type: SignInDirective, selector: "[odxButton][odxAuthSignIn]", outputs: ["odxAuthSignIn"] }, { kind: "directive", type: SignOutDirective, selector: "[odxButton][odxAuthSignOut]", outputs: ["odxAuthSignOut"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "component", type: AuthActionsComponent, selector: "odx-auth-actions", inputs: ["claims"] }, { kind: "pipe", type: TranslatePipe, name: "odxTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
36
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthComponent, decorators: [{
|
|
37
38
|
type: Component,
|
|
38
|
-
args: [{ standalone: true, selector: 'odx-auth', imports: [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
args: [{ standalone: true, selector: 'odx-auth', imports: [
|
|
40
|
+
CoreModule,
|
|
41
|
+
AreaHeaderModule,
|
|
42
|
+
DropdownModule,
|
|
43
|
+
HeaderModule,
|
|
44
|
+
LogoDirective,
|
|
45
|
+
SignInDirective,
|
|
46
|
+
SignOutDirective,
|
|
47
|
+
LoadingSpinnerModule,
|
|
48
|
+
AuthActionsComponent,
|
|
49
|
+
TranslatePipe,
|
|
50
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [provideTranslations(translations)], template: "<odx-action-group>\n <ng-template [ngrxLet]=\"{ idClaims: authService.identityClaims$, isAuthenticated: authService.isAuthenticated$ }\" let-vm>\n <ng-template [ngIf]=\"vm.isAuthenticated\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton [odxDropdown]=\"userProfileMenu\" [odxDropdownOptions]=\"dropdownOptions\" data-testid=\"odx-auth-user-profile-button\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\"></ng-template>\n </button>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" ngProjectAs=\"odx-avatar\"></ng-template>\n {{ vm.idClaims?.username }}\n <odx-area-header-subtitle>\n {{ vm.idClaims?.email }}\n </odx-area-header-subtitle>\n </odx-area-header>\n <ng-content></ng-content>\n <odx-auth-actions [claims]=\"vm.idClaims\"></odx-auth-actions>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\" data-testid=\"odx-auth-sign-out-button\">\n {{ 'signOutButtonText' | odxTranslate | async }}\n <odx-icon name=\"logout\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"secondary\" data-testid=\"odx-auth-sign-in-button\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ 'signInButtonText' | odxTranslate | async }}\n </button>\n </ng-template>\n <ng-template #userAvatar>\n <odx-avatar class=\"odx-auth-user-avatar\">\n {{ vm.idClaims?.initials ?? '' }}\n </odx-avatar>\n </ng-template>\n </ng-template>\n</odx-action-group>\n", styles: [".odx-auth-user-profile .odx-dropdown__inner>.odx-area-header{max-width:max(360px,25vw);min-width:296px}.odx-auth-actions{display:block;margin-top:calc(var(--odx-vertical-rythm-base-size) * .5);margin-bottom:calc(var(--odx-vertical-rythm-base-size) * .5);margin-right:calc(var(--odx-vertical-rythm-base-size) * .25);margin-left:calc(var(--odx-vertical-rythm-base-size) * .25)}\n"] }]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQW1CLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLFlBQVksTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7O0FBdUJqRSxNQUFNLE9BQU8sYUFBYTtJQXJCMUI7UUFzQnFCLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLG9CQUFlLEdBQUc7WUFDbkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQzdCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLGNBQWMsRUFBRSx1QkFBdUI7U0FDWixDQUFDO0tBQy9COzswR0FSWSxhQUFhOzhGQUFiLGFBQWEsdURBRmIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQywwQkNsQ2hELGc3REFzQ0Esa2JEbkJJLFVBQVUsOGNBQ1YsZ0JBQWdCLG1xQkFDaEIsY0FBYywwZkFDZCxZQUFZLCtCQUNaLGFBQWEsa0ZBQ2IsZUFBZSxtR0FDZixnQkFBZ0Isb0dBQ2hCLG9CQUFvQiwrQkFDcEIsb0JBQW9CLDRFQUNwQixhQUFhOzJGQVFKLGFBQWE7a0JBckJ6QixTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLFdBQ1g7d0JBQ1AsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsYUFBYTtxQkFDZCxtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBBcmVhSGVhZGVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYXJlYS1oZWFkZXInO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUsIERyb3Bkb3duT3B0aW9ucyB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEhlYWRlck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlcic7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBMb2dvRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9nbyc7XG5pbXBvcnQgeyBwcm92aWRlVHJhbnNsYXRpb25zLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4vYXV0aC5pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU2lnbkluRGlyZWN0aXZlLCBTaWduT3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWF1dGgnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBBcmVhSGVhZGVyTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIEhlYWRlck1vZHVsZSxcbiAgICBMb2dvRGlyZWN0aXZlLFxuICAgIFNpZ25JbkRpcmVjdGl2ZSxcbiAgICBTaWduT3V0RGlyZWN0aXZlLFxuICAgIExvYWRpbmdTcGlubmVyTW9kdWxlLFxuICAgIEF1dGhBY3Rpb25zQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZVRyYW5zbGF0aW9ucyh0cmFuc2xhdGlvbnMpXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRoQ29uZmlnID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd25PcHRpb25zID0ge1xuICAgIHBvc2l0aW9uOiBQb3NpdGlvbi5CT1RUT01fRU5ELFxuICAgIGVuYWJsZUZhbGxiYWNrOiBmYWxzZSxcbiAgICBjb250YWluZXJDbGFzczogJ29keC1hdXRoLXVzZXItcHJvZmlsZScsXG4gIH0gYXMgUGFydGlhbDxEcm9wZG93bk9wdGlvbnM+O1xufVxuIiwiPG9keC1hY3Rpb24tZ3JvdXA+XG4gIDxuZy10ZW1wbGF0ZSBbbmdyeExldF09XCJ7IGlkQ2xhaW1zOiBhdXRoU2VydmljZS5pZGVudGl0eUNsYWltcyQsIGlzQXV0aGVudGljYXRlZDogYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJCB9XCIgbGV0LXZtPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ2bS5pc0F1dGhlbnRpY2F0ZWRcIiBbbmdJZkVsc2VdPVwibm90QXV0aGVudGljYXRlZFwiPlxuICAgICAgPGJ1dHRvbiBvZHhCdXR0b24gW29keERyb3Bkb3duXT1cInVzZXJQcm9maWxlTWVudVwiIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwiZHJvcGRvd25PcHRpb25zXCIgZGF0YS10ZXN0aWQ9XCJvZHgtYXV0aC11c2VyLXByb2ZpbGUtYnV0dG9uXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ1c2VyQXZhdGFyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICN1c2VyUHJvZmlsZU1lbnU+XG4gICAgICAgIDxvZHgtYXJlYS1oZWFkZXIgY2xhc3M9XCJvZHgtcGFkZGluZy14LTEyXCIgc2l6ZT1cInNtYWxsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInVzZXJBdmF0YXJcIiBuZ1Byb2plY3RBcz1cIm9keC1hdmF0YXJcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIHt7IHZtLmlkQ2xhaW1zPy51c2VybmFtZSB9fVxuICAgICAgICAgIDxvZHgtYXJlYS1oZWFkZXItc3VidGl0bGU+XG4gICAgICAgICAgICB7eyB2bS5pZENsYWltcz8uZW1haWwgfX1cbiAgICAgICAgICA8L29keC1hcmVhLWhlYWRlci1zdWJ0aXRsZT5cbiAgICAgICAgPC9vZHgtYXJlYS1oZWFkZXI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG9keC1hdXRoLWFjdGlvbnMgW2NsYWltc109XCJ2bS5pZENsYWltc1wiPjwvb2R4LWF1dGgtYWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9keC1tYXJnaW4tdG9wLTEyXCIgb2R4TGF5b3V0PVwiZmxleCB2ZXJ0aWNhbC1jZW50ZXJcIj5cbiAgICAgICAgICA8b2R4LWxvZ28gb2R4TGF5b3V0PVwiYXV0b1wiIGNsYXNzPVwib2R4LW1hcmdpbi1sZWZ0LTEyIG9keC1tYXJnaW4tcmlnaHQtYXV0b1wiPjwvb2R4LWxvZ28+XG4gICAgICAgICAgPGJ1dHRvbiBvZHhCdXR0b24gb2R4QXV0aFNpZ25PdXQgdmFyaWFudD1cImdob3N0XCIgZGF0YS10ZXN0aWQ9XCJvZHgtYXV0aC1zaWduLW91dC1idXR0b25cIj5cbiAgICAgICAgICAgIHt7ICdzaWduT3V0QnV0dG9uVGV4dCcgfCBvZHhUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgPG9keC1pY29uIG5hbWU9XCJsb2dvdXRcIiBhbGlnblJpZ2h0Pjwvb2R4LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm90QXV0aGVudGljYXRlZD5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJvZHgtYXV0aC1zaWduLWluXCIgb2R4QnV0dG9uIG9keEF1dGhTaWduSW4gdmFyaWFudD1cInNlY29uZGFyeVwiIGRhdGEtdGVzdGlkPVwib2R4LWF1dGgtc2lnbi1pbi1idXR0b25cIj5cbiAgICAgICAgPG9keC1pY29uIG5hbWU9XCJ1c2VyXCIgYWxpZ25MZWZ0Pjwvb2R4LWljb24+XG4gICAgICAgIHt7ICdzaWduSW5CdXR0b25UZXh0JyB8IG9keFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjdXNlckF2YXRhcj5cbiAgICAgIDxvZHgtYXZhdGFyIGNsYXNzPVwib2R4LWF1dGgtdXNlci1hdmF0YXJcIj5cbiAgICAgICAge3sgdm0uaWRDbGFpbXM/LmluaXRpYWxzID8/ICcnIH19XG4gICAgICA8L29keC1hdmF0YXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvb2R4LWFjdGlvbi1ncm91cD5cbiJdfQ==
|
|
@@ -7,10 +7,19 @@ export const DEFAULT_ISSUERS = {
|
|
|
7
7
|
stage: 'https://test.login.draeger.com/oauth2/default',
|
|
8
8
|
prod: 'https://login.draeger.com/oauth2/default',
|
|
9
9
|
};
|
|
10
|
+
export const DEFAULT_USER_PROFILE_URLS = {
|
|
11
|
+
dev: 'https://lemon-ocean-04a922703.3.azurestaticapps.net',
|
|
12
|
+
stage: 'https://purple-cliff-0e61c5703.3.azurestaticapps.net',
|
|
13
|
+
prod: 'https://id.draeger.com',
|
|
14
|
+
};
|
|
10
15
|
export const ODX_AUTH_CORE_PLUGINS = new InjectionToken('@odx/auth::CorePlugins', {
|
|
11
16
|
providedIn: 'root',
|
|
12
17
|
factory: () => [],
|
|
13
18
|
});
|
|
19
|
+
export const ODX_AUTH_ERROR_HANDLERS = new InjectionToken('@odx/auth::ErrorHandlers', {
|
|
20
|
+
providedIn: 'root',
|
|
21
|
+
factory: () => [],
|
|
22
|
+
});
|
|
14
23
|
export const ODX_AUTH_PLUGINS = new InjectionToken('@odx/auth::Plugins', {
|
|
15
24
|
providedIn: 'root',
|
|
16
25
|
factory: () => {
|
|
@@ -38,4 +47,4 @@ export const { AuthDefaultConfig, AuthConfig, injectAuthConfig, provideAuthConfi
|
|
|
38
47
|
enableLoadingScreen: false,
|
|
39
48
|
loadingScreenMessage: null,
|
|
40
49
|
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSTFFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUNwRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW9DO0lBQzlELEdBQUcsRUFBRSw4Q0FBOEM7SUFDbkQsS0FBSyxFQUFFLCtDQUErQztJQUN0RCxJQUFJLEVBQUUsMENBQTBDO0NBQ2pELENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBb0M7SUFDeEUsR0FBRyxFQUFFLHFEQUFxRDtJQUMxRCxLQUFLLEVBQUUsc0RBQXNEO0lBQzdELElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFzQix3QkFBd0IsRUFBRTtJQUNyRyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtDQUNsQixDQUFDLENBQUM7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsMEJBQTBCLEVBQUU7SUFDMUcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDbEIsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWUsb0JBQW9CLEVBQUU7SUFDckYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRWxELE9BQU8sQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBZ0NILE1BQU0sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtJQUM1SCxXQUFXLEVBQUUsTUFBTTtJQUNuQixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsYUFBYSxFQUFFLElBQUk7SUFDbkIsY0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUM1QixlQUFlLEVBQUUsS0FBSztJQUN0QixZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsd0JBQXdCLEVBQUUsSUFBSTtJQUM5QixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLG9CQUFvQixFQUFFLElBQUk7Q0FDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljVGV4dENvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBjcmVhdGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT0F1dGhFcnJvckV2ZW50LCBPQXV0aFN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGNyZWF0ZUluaXRpYWxzLCByZXNvbHZlRW1haWwsIHJlc29sdmVVc2VybmFtZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbmltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCwgQXV0aG9yaXplZEhhbmRsZXIsIEF1dGhQbHVnaW4sIEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIX1NDT1BFUyA9IFsnb3BlbmlkJywgJ3Byb2ZpbGUnLCAnZW1haWwnLCAnb2ZmbGluZV9hY2Nlc3MnXTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lTU1VFUlM6IFJlY29yZDxBdXRoRW52aXJvbm1lbnQsIHN0cmluZz4gPSB7XG4gIGRldjogJ2h0dHBzOi8vZGV2LmxvZ2luLmRyYWVnZXIuY29tL29hdXRoMi9kZWZhdWx0JyxcbiAgc3RhZ2U6ICdodHRwczovL3Rlc3QubG9naW4uZHJhZWdlci5jb20vb2F1dGgyL2RlZmF1bHQnLFxuICBwcm9kOiAnaHR0cHM6Ly9sb2dpbi5kcmFlZ2VyLmNvbS9vYXV0aDIvZGVmYXVsdCcsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFUl9QUk9GSUxFX1VSTFM6IFJlY29yZDxBdXRoRW52aXJvbm1lbnQsIHN0cmluZz4gPSB7XG4gIGRldjogJ2h0dHBzOi8vbGVtb24tb2NlYW4tMDRhOTIyNzAzLjMuYXp1cmVzdGF0aWNhcHBzLm5ldCcsXG4gIHN0YWdlOiAnaHR0cHM6Ly9wdXJwbGUtY2xpZmYtMGU2MWM1NzAzLjMuYXp1cmVzdGF0aWNhcHBzLm5ldCcsXG4gIHByb2Q6ICdodHRwczovL2lkLmRyYWVnZXIuY29tJyxcbn07XG5leHBvcnQgY29uc3QgT0RYX0FVVEhfQ09SRV9QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQbHVnaW5GYWN0b3J5W10+KCdAb2R4L2F1dGg6OkNvcmVQbHVnaW5zJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IFtdLFxufSk7XG5leHBvcnQgY29uc3QgT0RYX0FVVEhfRVJST1JfSEFORExFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aEVycm9ySGFuZGxlckZuW10+KCdAb2R4L2F1dGg6OkVycm9ySGFuZGxlcnMnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gW10sXG59KTtcbmV4cG9ydCBjb25zdCBPRFhfQVVUSF9QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQbHVnaW5bXT4oJ0BvZHgvYXV0aDo6UGx1Z2lucycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgY29uc3QgeyBwbHVnaW5zIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gICAgY29uc3QgY29yZVBsdWdpbnMgPSBpbmplY3QoT0RYX0FVVEhfQ09SRV9QTFVHSU5TKTtcblxuICAgIHJldHVybiBbLi4uY29yZVBsdWdpbnMsIC4uLnBsdWdpbnNdLm1hcCgocGx1Z2luRmFjdG9yeSkgPT4gcGx1Z2luRmFjdG9yeSgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgdHlwZSBBdXRoRXJyb3JIYW5kbGVyRm4gPSAoZXJyb3I6IE9BdXRoRXJyb3JFdmVudCkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIFJlc29sdmVVc2VybmFtZUZuID0gKHJhd0NsYWltczogT2R4QXV0aC5SYXdJZGVudGl0eUNsYWltcykgPT4gc3RyaW5nO1xuZXhwb3J0IHR5cGUgUmVzb2x2ZUVtYWlsRm4gPSAocmF3Q2xhaW1zOiBPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBDcmVhdGVJbml0aWFsc0ZuID0gKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoQ29uZmlnIHtcbiAgZW52aXJvbm1lbnQ6IEF1dGhFbnZpcm9ubWVudDtcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG4gIGlzc3Vlcj86IHN0cmluZztcbiAgcmVkaXJlY3RQYXRoOiBzdHJpbmc7XG4gIGFsbG93ZWRVcmxzOiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+O1xuICB0aW1lb3V0RmFjdG9yOiBudW1iZXI7XG4gIG1heE9mZmxpbmVUaW1lOiBudW1iZXI7XG4gIGxvYWRVc2VyUHJvZmlsZTogYm9vbGVhbjtcbiAgcG9zdExvZ291dFJlZGlyZWN0VXJsPzogc3RyaW5nO1xuICBzY29wZXM/OiBzdHJpbmdbXTtcbiAgZGlzY292ZXJ5VXJsPzogc3RyaW5nO1xuICBlcnJvckhhbmRsZXI6IEF1dGhFcnJvckhhbmRsZXJGbjtcbiAgY3JlYXRlSW5pdGlhbHM6IENyZWF0ZUluaXRpYWxzRm47XG4gIHJlc29sdmVFbWFpbDogUmVzb2x2ZUVtYWlsRm47XG4gIHJlc29sdmVVc2VybmFtZTogUmVzb2x2ZVVzZXJuYW1lRm47XG4gIHN0b3JhZ2U/OiBPQXV0aFN0b3JhZ2U7XG4gIHBsdWdpbnM6IEF1dGhQbHVnaW5GYWN0b3J5W107XG4gIHNob3dSZWRpcmVjdE92ZXJsYXk6IGJvb2xlYW47XG4gIGRlZmF1bHRBdXRob3JpemVkSGFuZGxlcj86IEF1dGhvcml6ZWRIYW5kbGVyIHwgbnVsbDtcbiAgZW5hYmxlTG9hZGluZ1NjcmVlbjogYm9vbGVhbjtcbiAgbG9hZGluZ1NjcmVlbk1lc3NhZ2U/OiBEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsO1xuICB1c2VyUHJvZmlsZVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IHsgQXV0aERlZmF1bHRDb25maWcsIEF1dGhDb25maWcsIGluamVjdEF1dGhDb25maWcsIHByb3ZpZGVBdXRoQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoJ0F1dGgnLCAnQG9keC9hdXRoJywge1xuICBlbnZpcm9ubWVudDogJ3Byb2QnLFxuICByZWRpcmVjdFBhdGg6ICdsb2dpbi9jYWxsYmFjaycsXG4gIGFsbG93ZWRVcmxzOiBbXSxcbiAgdGltZW91dEZhY3RvcjogMC43NSxcbiAgbWF4T2ZmbGluZVRpbWU6IDI0ICogNjAgKiA2MCwgLy8gMSBkYXlcbiAgbG9hZFVzZXJQcm9maWxlOiBmYWxzZSxcbiAgZXJyb3JIYW5kbGVyOiAoZXJyb3IpID0+IHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSxcbiAgY3JlYXRlSW5pdGlhbHMsXG4gIHJlc29sdmVFbWFpbCxcbiAgcmVzb2x2ZVVzZXJuYW1lLFxuICBzaG93UmVkaXJlY3RPdmVybGF5OiBmYWxzZSxcbiAgcGx1Z2luczogW10sXG4gIGRlZmF1bHRBdXRob3JpemVkSGFuZGxlcjogbnVsbCxcbiAgZW5hYmxlTG9hZGluZ1NjcmVlbjogZmFsc2UsXG4gIGxvYWRpbmdTY3JlZW5NZXNzYWdlOiBudWxsLFxufSBhcyBBdXRoQ29uZmlnKTtcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
en: {
|
|
3
|
+
userProfileLink: 'My profile',
|
|
4
|
+
signInButtonText: 'Sign in',
|
|
5
|
+
signOutButtonText: 'Sign out',
|
|
6
|
+
},
|
|
7
|
+
de: {
|
|
8
|
+
userProfileLink: 'Mein Profil',
|
|
9
|
+
signInButtonText: 'Einloggen',
|
|
10
|
+
signOutButtonText: 'Ausloggen',
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGguaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxlQUFlO0lBQ2IsRUFBRSxFQUFFO1FBQ0YsZUFBZSxFQUFFLFlBQVk7UUFDN0IsZ0JBQWdCLEVBQUUsU0FBUztRQUMzQixpQkFBaUIsRUFBRSxVQUFVO0tBQzlCO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsZUFBZSxFQUFFLGFBQWE7UUFDOUIsZ0JBQWdCLEVBQUUsV0FBVztRQUM3QixpQkFBaUIsRUFBRSxXQUFXO0tBQy9CO0NBQ2MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9ucyB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbC90cmFuc2xhdGUnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGVuOiB7XG4gICAgdXNlclByb2ZpbGVMaW5rOiAnTXkgcHJvZmlsZScsXG4gICAgc2lnbkluQnV0dG9uVGV4dDogJ1NpZ24gaW4nLFxuICAgIHNpZ25PdXRCdXR0b25UZXh0OiAnU2lnbiBvdXQnLFxuICB9LFxuICBkZToge1xuICAgIHVzZXJQcm9maWxlTGluazogJ01laW4gUHJvZmlsJyxcbiAgICBzaWduSW5CdXR0b25UZXh0OiAnRWlubG9nZ2VuJyxcbiAgICBzaWduT3V0QnV0dG9uVGV4dDogJ0F1c2xvZ2dlbicsXG4gIH0sXG59IGFzIFRyYW5zbGF0aW9ucztcbiJdfQ==
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { APP_INITIALIZER,
|
|
1
|
+
import { APP_INITIALIZER, ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';
|
|
2
2
|
import { WindowRef } from '@odx/angular';
|
|
3
3
|
import { buildUrl, isString } from '@odx/angular/utils';
|
|
4
4
|
import { OAuthModuleConfig, OAuthStorage, provideOAuthClient } from 'angular-oauth2-oidc';
|
|
5
5
|
import { tap } from 'rxjs';
|
|
6
|
-
import {
|
|
6
|
+
import { DEFAULT_AUTH_SCOPES, DEFAULT_ISSUERS, injectAuthConfig, ODX_AUTH_CORE_PLUGINS, ODX_AUTH_ERROR_HANDLERS, provideAuthConfig, } from './auth.config';
|
|
7
7
|
import { AuthService } from './auth.service';
|
|
8
|
-
import {
|
|
8
|
+
import { handleAuthError } from './helpers';
|
|
9
|
+
import { offlineAuthErrorHandler } from './models';
|
|
10
|
+
import { coreIdentityPlugin, loadingScreenPlugin, userProfileUrlPlugin } from './plugins';
|
|
9
11
|
export function configureInterceptor() {
|
|
10
12
|
const { allowedUrls } = injectAuthConfig();
|
|
11
13
|
return {
|
|
@@ -15,11 +17,10 @@ export function configureInterceptor() {
|
|
|
15
17
|
},
|
|
16
18
|
};
|
|
17
19
|
}
|
|
18
|
-
export function
|
|
20
|
+
export function initializeAuthErrorHandlers() {
|
|
19
21
|
const authService = inject(AuthService);
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
authService.errors$.pipe(tap((error) => injector.runInContext(() => errorHandler(error)))).subscribe();
|
|
22
|
+
const handler = handleAuthError(inject(ODX_AUTH_ERROR_HANDLERS));
|
|
23
|
+
authService.errors$.pipe(tap((error) => handler(error))).subscribe();
|
|
23
24
|
}
|
|
24
25
|
export function initalizeAuthConfig() {
|
|
25
26
|
const { clientId, scopes, redirectPath, environment, postLogoutRedirectUrl, issuer, timeoutFactor, discoveryUrl } = injectAuthConfig();
|
|
@@ -49,9 +50,13 @@ export function provideAuth(config) {
|
|
|
49
50
|
},
|
|
50
51
|
{
|
|
51
52
|
provide: ENVIRONMENT_INITIALIZER,
|
|
52
|
-
useValue:
|
|
53
|
+
useValue: initializeAuthErrorHandlers,
|
|
53
54
|
multi: true,
|
|
54
55
|
},
|
|
56
|
+
{
|
|
57
|
+
provide: ODX_AUTH_ERROR_HANDLERS,
|
|
58
|
+
useFactory: () => [offlineAuthErrorHandler, injectAuthConfig().errorHandler],
|
|
59
|
+
},
|
|
55
60
|
{
|
|
56
61
|
provide: APP_INITIALIZER,
|
|
57
62
|
useFactory: initalizeAuthConfig,
|
|
@@ -59,12 +64,12 @@ export function provideAuth(config) {
|
|
|
59
64
|
},
|
|
60
65
|
{
|
|
61
66
|
provide: OAuthStorage,
|
|
62
|
-
useFactory: () =>
|
|
67
|
+
useFactory: () => injectAuthConfig().storage ?? inject(WindowRef).nativeWindow.localStorage,
|
|
63
68
|
},
|
|
64
69
|
{
|
|
65
70
|
provide: ODX_AUTH_CORE_PLUGINS,
|
|
66
|
-
useValue: [coreIdentityPlugin, loadingScreenPlugin],
|
|
71
|
+
useValue: [coreIdentityPlugin, loadingScreenPlugin, userProfileUrlPlugin],
|
|
67
72
|
},
|
|
68
73
|
]);
|
|
69
74
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBd0IsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBc0MsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUYsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUMzQyxPQUFPO1FBQ0wsY0FBYyxFQUFFO1lBQ2QsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzdJLGVBQWUsRUFBRSxJQUFJO1NBQ3RCO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUVqRSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDdkUsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDdkksTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0RixPQUFPLEdBQUcsRUFBRSxDQUNWLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDckIsUUFBUTtRQUNSLE1BQU0sRUFBRSxNQUFNLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxLQUFLO1FBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBQzNDLHFCQUFxQixFQUFFLHFCQUFxQjtRQUM1QyxzQkFBc0IsRUFBRSxJQUFJO1FBQzVCLGlDQUFpQyxFQUFFLENBQUMsWUFBWTtRQUNoRCxZQUFZLEVBQUUsTUFBTTtRQUNwQixvQkFBb0IsRUFBRSxXQUFXLEtBQUssS0FBSztRQUMzQyxhQUFhO0tBQ2QsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQStCLE1BQThDO0lBQ3RHLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3pCLGtCQUFrQixFQUFFO1FBQ3BCO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLFlBQVksQ0FBQztTQUM3RTtRQUNEO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsWUFBWTtZQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZO1NBQzVGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFFBQVEsRUFBRSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO1NBQzFFO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIEVOVklST05NRU5UX0lOSVRJQUxJWkVSLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGJ1aWxkVXJsLCBDb25maWdEZXBlbmRlbmNpZXMsIENvbmZpZ1Byb3ZpZGVyLCBpc1N0cmluZyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPQXV0aE1vZHVsZUNvbmZpZywgT0F1dGhTdG9yYWdlLCBwcm92aWRlT0F1dGhDbGllbnQgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQXV0aENvbmZpZyxcbiAgREVGQVVMVF9BVVRIX1NDT1BFUyxcbiAgREVGQVVMVF9JU1NVRVJTLFxuICBpbmplY3RBdXRoQ29uZmlnLFxuICBPRFhfQVVUSF9DT1JFX1BMVUdJTlMsXG4gIE9EWF9BVVRIX0VSUk9SX0hBTkRMRVJTLFxuICBwcm92aWRlQXV0aENvbmZpZyxcbn0gZnJvbSAnLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IGhhbmRsZUF1dGhFcnJvciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBvZmZsaW5lQXV0aEVycm9ySGFuZGxlciB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IGNvcmVJZGVudGl0eVBsdWdpbiwgbG9hZGluZ1NjcmVlblBsdWdpbiwgdXNlclByb2ZpbGVVcmxQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlSW50ZXJjZXB0b3IoKTogT0F1dGhNb2R1bGVDb25maWcge1xuICBjb25zdCB7IGFsbG93ZWRVcmxzIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gIHJldHVybiB7XG4gICAgcmVzb3VyY2VTZXJ2ZXI6IHtcbiAgICAgIGN1c3RvbVVybFZhbGlkYXRpb246ICh1cmwpID0+IGFsbG93ZWRVcmxzLnNvbWUoKGFsbG93ZWRVcmwpID0+IChpc1N0cmluZyhhbGxvd2VkVXJsKSA/IHVybC5zdGFydHNXaXRoKGFsbG93ZWRVcmwpIDogISF1cmwubWF0Y2goYWxsb3dlZFVybCkpKSxcbiAgICAgIHNlbmRBY2Nlc3NUb2tlbjogdHJ1ZSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUF1dGhFcnJvckhhbmRsZXJzKCk6IHZvaWQge1xuICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGNvbnN0IGhhbmRsZXIgPSBoYW5kbGVBdXRoRXJyb3IoaW5qZWN0KE9EWF9BVVRIX0VSUk9SX0hBTkRMRVJTKSk7XG5cbiAgYXV0aFNlcnZpY2UuZXJyb3JzJC5waXBlKHRhcCgoZXJyb3IpID0+IGhhbmRsZXIoZXJyb3IpKSkuc3Vic2NyaWJlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0YWxpemVBdXRoQ29uZmlnKCk6ICgpID0+IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGNsaWVudElkLCBzY29wZXMsIHJlZGlyZWN0UGF0aCwgZW52aXJvbm1lbnQsIHBvc3RMb2dvdXRSZWRpcmVjdFVybCwgaXNzdWVyLCB0aW1lb3V0RmFjdG9yLCBkaXNjb3ZlcnlVcmwgfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBjb25zdCBvcmlnaW4gPSBpbmplY3QoV2luZG93UmVmKS5nZXRPcmlnaW4oKTtcbiAgY29uc3Qgc2NvcGUgPSBBcnJheS5mcm9tKG5ldyBTZXQoREVGQVVMVF9BVVRIX1NDT1BFUy5jb25jYXQoc2NvcGVzID8/IFtdKSkpLmpvaW4oJyAnKTtcblxuICByZXR1cm4gKCkgPT5cbiAgICBhdXRoU2VydmljZS5pbml0aWFsaXplKHtcbiAgICAgIGNsaWVudElkLFxuICAgICAgaXNzdWVyOiBpc3N1ZXIgPz8gREVGQVVMVF9JU1NVRVJTW2Vudmlyb25tZW50XSxcbiAgICAgIHNjb3BlLFxuICAgICAgcmVkaXJlY3RVcmk6IGJ1aWxkVXJsKG9yaWdpbiwgcmVkaXJlY3RQYXRoKSxcbiAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogcG9zdExvZ291dFJlZGlyZWN0VXJsLFxuICAgICAgcHJlc2VydmVSZXF1ZXN0ZWRSb3V0ZTogdHJ1ZSxcbiAgICAgIHN0cmljdERpc2NvdmVyeURvY3VtZW50VmFsaWRhdGlvbjogIWRpc2NvdmVyeVVybCxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2NvZGUnLFxuICAgICAgc2hvd0RlYnVnSW5mb3JtYXRpb246IGVudmlyb25tZW50ID09PSAnZGV2JyxcbiAgICAgIHRpbWVvdXRGYWN0b3IsXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQXV0aDxEIGV4dGVuZHMgQ29uZmlnRGVwZW5kZW5jaWVzPihjb25maWc6IENvbmZpZ1Byb3ZpZGVyPFBhcnRpYWw8QXV0aENvbmZpZz4sIEQ+KTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlQXV0aENvbmZpZyhjb25maWcpLFxuICAgIHByb3ZpZGVPQXV0aENsaWVudCgpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9BdXRoTW9kdWxlQ29uZmlnLFxuICAgICAgdXNlRmFjdG9yeTogY29uZmlndXJlSW50ZXJjZXB0b3IsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIHVzZVZhbHVlOiBpbml0aWFsaXplQXV0aEVycm9ySGFuZGxlcnMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9BVVRIX0VSUk9SX0hBTkRMRVJTLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gW29mZmxpbmVBdXRoRXJyb3JIYW5kbGVyLCBpbmplY3RBdXRoQ29uZmlnKCkuZXJyb3JIYW5kbGVyXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6IGluaXRhbGl6ZUF1dGhDb25maWcsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9BdXRoU3RvcmFnZSxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGluamVjdEF1dGhDb25maWcoKS5zdG9yYWdlID8/IGluamVjdChXaW5kb3dSZWYpLm5hdGl2ZVdpbmRvdy5sb2NhbFN0b3JhZ2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBPRFhfQVVUSF9DT1JFX1BMVUdJTlMsXG4gICAgICB1c2VWYWx1ZTogW2NvcmVJZGVudGl0eVBsdWdpbiwgbG9hZGluZ1NjcmVlblBsdWdpbiwgdXNlclByb2ZpbGVVcmxQbHVnaW5dLFxuICAgIH0sXG4gIF0pO1xufVxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { CoreModule } from '@odx/angular';
|
|
4
|
+
import { ListModule } from '@odx/angular/components/list';
|
|
5
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
6
|
+
import { TranslatePipe } from '@odx/angular/internal/translate';
|
|
7
|
+
import { injectElement } from '@odx/angular/utils';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "@odx/angular/components/list";
|
|
11
|
+
import * as i3 from "@odx/angular/components/icon";
|
|
12
|
+
let AuthActionsComponent = class AuthActionsComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.element = injectElement();
|
|
15
|
+
this.claims = null;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
AuthActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
AuthActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthActionsComponent, isStandalone: true, selector: "odx-auth-actions", inputs: { claims: "claims" }, ngImport: i0, template: "<odx-list>\n <a data-testid=\"odx-auth-user-profile-link\" odxListItem [href]=\"url\" rel=\"noopener\" target=\"_blank\" *ngIf=\"claims?.userProfileUrl as url\">\n <odx-icon name=\"user-administration\" iconSet=\"core\" odxListPrefix></odx-icon>\n {{ 'userProfileLink' | odxTranslate | async }}\n </a>\n</odx-list>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i2.ListComponent, selector: "odx-list", inputs: ["multiple"] }, { kind: "component", type: i2.ListItemComponent, selector: "[odxListItem]", inputs: ["danger", "selected"] }, { kind: "component", type: i3.IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "pipe", type: TranslatePipe, name: "odxTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
20
|
+
AuthActionsComponent = __decorate([
|
|
21
|
+
CSSComponent('auth-actions')
|
|
22
|
+
], AuthActionsComponent);
|
|
23
|
+
export { AuthActionsComponent };
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthActionsComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ standalone: true, selector: 'odx-auth-actions', imports: [CoreModule, ListModule, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<odx-list>\n <a data-testid=\"odx-auth-user-profile-link\" odxListItem [href]=\"url\" rel=\"noopener\" target=\"_blank\" *ngIf=\"claims?.userProfileUrl as url\">\n <odx-icon name=\"user-administration\" iconSet=\"core\" odxListPrefix></odx-icon>\n {{ 'userProfileLink' | odxTranslate | async }}\n </a>\n</odx-list>\n" }]
|
|
27
|
+
}], propDecorators: { claims: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtYWN0aW9ucy9hdXRoLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC1hY3Rpb25zL2F1dGgtYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBVzVDLElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO0lBQTFCO1FBQ1csWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBR25DLFdBQU0sR0FBaUMsSUFBSSxDQUFDO0tBQ3BEOztpSEFMWSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwwR0NoQmpDLHNVQU1BLDJDREtZLFVBQVUsdUxBQUUsVUFBVSx1VkFBRSxhQUFhO0FBS3BDLG9CQUFvQjtJQVRoQyxZQUFZLENBQUMsY0FBYyxDQUFDO0dBU2hCLG9CQUFvQixDQUtoQztTQUxZLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQVJoQyxTQUFTO2lDQUNJLElBQUksWUFDTixrQkFBa0IsV0FDbkIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxtQkFFL0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFNOUIsTUFBTTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IExpc3RNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuQENTU0NvbXBvbmVudCgnYXV0aC1hY3Rpb25zJylcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC1hdXRoLWFjdGlvbnMnLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgTGlzdE1vZHVsZSwgVHJhbnNsYXRlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aEFjdGlvbnNDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2xhaW1zOiBPZHhBdXRoLklkZW50aXlDbGFpbXMgfCBudWxsID0gbnVsbDtcbn1cbiIsIjxvZHgtbGlzdD5cbiAgPGEgZGF0YS10ZXN0aWQ9XCJvZHgtYXV0aC11c2VyLXByb2ZpbGUtbGlua1wiIG9keExpc3RJdGVtIFtocmVmXT1cInVybFwiIHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKm5nSWY9XCJjbGFpbXM/LnVzZXJQcm9maWxlVXJsIGFzIHVybFwiPlxuICAgIDxvZHgtaWNvbiBuYW1lPVwidXNlci1hZG1pbmlzdHJhdGlvblwiIGljb25TZXQ9XCJjb3JlXCIgb2R4TGlzdFByZWZpeD48L29keC1pY29uPlxuICAgIHt7ICd1c2VyUHJvZmlsZUxpbmsnIHwgb2R4VHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgPC9hPlxuPC9vZHgtbGlzdD5cbiJdfQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export * from './auth-actions/auth-actions.component';
|
|
1
2
|
export * from './auth-loading-screen/auth-loading-screen.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscURBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGgtYWN0aW9ucy9hdXRoLWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1sb2FkaW5nLXNjcmVlbi9hdXRoLWxvYWRpbmctc2NyZWVuLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EnvironmentInjector, inject } from '@angular/core';
|
|
2
|
+
import { OAuthErrorEvent } from 'angular-oauth2-oidc';
|
|
3
|
+
export function handleAuthError(handlers) {
|
|
4
|
+
const injector = inject(EnvironmentInjector);
|
|
5
|
+
return (error) => {
|
|
6
|
+
injector.runInContext(() => {
|
|
7
|
+
for (const handler of handlers) {
|
|
8
|
+
try {
|
|
9
|
+
handler(error);
|
|
10
|
+
break;
|
|
11
|
+
}
|
|
12
|
+
catch (unhandledError) {
|
|
13
|
+
if (!(unhandledError instanceof OAuthErrorEvent))
|
|
14
|
+
throw error;
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWF1dGgtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvaGVscGVycy9oYW5kbGUtYXV0aC1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQThCO0lBQzVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQ3pCLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUM5QixJQUFJO29CQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDZixNQUFNO2lCQUNQO2dCQUFDLE9BQU8sY0FBYyxFQUFFO29CQUN2QixJQUFJLENBQUMsQ0FBQyxjQUFjLFlBQVksZUFBZSxDQUFDO3dCQUFFLE1BQU0sS0FBSyxDQUFDO29CQUM5RCxTQUFTO2lCQUNWO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgQXV0aEVycm9ySGFuZGxlckZuIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQXV0aEVycm9yKGhhbmRsZXJzOiBBdXRoRXJyb3JIYW5kbGVyRm5bXSk6IChlcnJvcjogT0F1dGhFcnJvckV2ZW50KSA9PiB2b2lkIHtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgcmV0dXJuIChlcnJvcikgPT4ge1xuICAgIGluamVjdG9yLnJ1bkluQ29udGV4dCgoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgaGFuZGxlcnMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBoYW5kbGVyKGVycm9yKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBjYXRjaCAodW5oYW5kbGVkRXJyb3IpIHtcbiAgICAgICAgICBpZiAoISh1bmhhbmRsZWRFcnJvciBpbnN0YW5jZW9mIE9BdXRoRXJyb3JFdmVudCkpIHRocm93IGVycm9yO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './create-inititals';
|
|
2
|
+
export * from './handle-auth-error';
|
|
2
3
|
export * from './resolve-email';
|
|
3
4
|
export * from './resolve-username';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtaW5pdGl0YWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlLWF1dGgtZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlLWVtYWlsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZS11c2VybmFtZSc7XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { inject, Injectable, InjectionToken } from '@angular/core';
|
|
2
2
|
import { WindowRef } from '@odx/angular';
|
|
3
|
+
import { OAuthService } from 'angular-oauth2-oidc';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export const ODX_AUTH_HTTP_CACHE_STORAGE = new InjectionToken('@odx/auth::AuthHttpCacheStorage', {
|
|
5
6
|
providedIn: 'root',
|
|
@@ -8,18 +9,26 @@ export const ODX_AUTH_HTTP_CACHE_STORAGE = new InjectionToken('@odx/auth::AuthHt
|
|
|
8
9
|
export class AuthHttpCache {
|
|
9
10
|
constructor() {
|
|
10
11
|
this.cacheStorage = inject(ODX_AUTH_HTTP_CACHE_STORAGE);
|
|
12
|
+
this.oauthService = inject(OAuthService);
|
|
11
13
|
}
|
|
12
14
|
async delete(request) {
|
|
13
15
|
const cache = await this.cacheStorage.open(AuthHttpCache.CACHE_KEY);
|
|
14
16
|
return cache.delete(request);
|
|
15
17
|
}
|
|
16
|
-
async request(
|
|
18
|
+
async request(requestInfo, authentication = false) {
|
|
19
|
+
const request = new Request(requestInfo);
|
|
20
|
+
const authorizationHeader = authentication ? this.oauthService.authorizationHeader() : null;
|
|
21
|
+
if (authorizationHeader) {
|
|
22
|
+
request.headers.set('Authorization', authorizationHeader);
|
|
23
|
+
}
|
|
17
24
|
const cache = await this.cacheStorage.open(AuthHttpCache.CACHE_KEY);
|
|
18
|
-
|
|
19
|
-
|
|
25
|
+
const response = await fetch(request).catch(() => null);
|
|
26
|
+
if (response?.ok) {
|
|
27
|
+
await cache.put(request, response);
|
|
20
28
|
}
|
|
21
|
-
|
|
22
|
-
|
|
29
|
+
if (authorizationHeader && response?.status === 401) {
|
|
30
|
+
await cache.delete(request);
|
|
31
|
+
await this.oauthService.refreshToken().catch(() => null);
|
|
23
32
|
}
|
|
24
33
|
return cache.match(request).then((res) => res?.json() ?? null);
|
|
25
34
|
}
|
|
@@ -31,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
31
40
|
type: Injectable,
|
|
32
41
|
args: [{ providedIn: 'root' }]
|
|
33
42
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1odHRwLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLWh0dHAtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVuRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBZSxpQ0FBaUMsRUFBRTtJQUM3RyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNO0NBQ3JELENBQUMsQ0FBQztBQUdILE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBR21CLGlCQUFZLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDbkQsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0EwQnREO0lBeEJRLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBMEI7UUFDNUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFJLFdBQThCLEVBQUUsY0FBYyxHQUFHLEtBQUs7UUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVGLElBQUksbUJBQW1CLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7U0FDM0Q7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDcEM7UUFDRCxJQUFJLG1CQUFtQixJQUFJLFFBQVEsRUFBRSxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQ25ELE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFEO1FBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O0FBM0J1Qix1QkFBUyxHQUFHLHNCQUFzQixDQUFDOzBHQURoRCxhQUFhOzhHQUFiLGFBQWEsY0FEQSxNQUFNOzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcblxuZXhwb3J0IGNvbnN0IE9EWF9BVVRIX0hUVFBfQ0FDSEVfU1RPUkFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDYWNoZVN0b3JhZ2U+KCdAb2R4L2F1dGg6OkF1dGhIdHRwQ2FjaGVTdG9yYWdlJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IGluamVjdChXaW5kb3dSZWYpLm5hdGl2ZVdpbmRvdy5jYWNoZXMsXG59KTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoSHR0cENhY2hlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FDSEVfS0VZID0gJ0BvZHgvYXV0aC9odHRwLWNhY2hlJztcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZVN0b3JhZ2UgPSBpbmplY3QoT0RYX0FVVEhfSFRUUF9DQUNIRV9TVE9SQUdFKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvYXV0aFNlcnZpY2UgPSBpbmplY3QoT0F1dGhTZXJ2aWNlKTtcblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlKHJlcXVlc3Q6IFJlcXVlc3RJbmZvIHwgVVJMKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmNhY2hlU3RvcmFnZS5vcGVuKEF1dGhIdHRwQ2FjaGUuQ0FDSEVfS0VZKTtcblxuICAgIHJldHVybiBjYWNoZS5kZWxldGUocmVxdWVzdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdDxUPihyZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8gfCBVUkwsIGF1dGhlbnRpY2F0aW9uID0gZmFsc2UpOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHJlcXVlc3RJbmZvKTtcbiAgICBjb25zdCBhdXRob3JpemF0aW9uSGVhZGVyID0gYXV0aGVudGljYXRpb24gPyB0aGlzLm9hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyKCkgOiBudWxsO1xuICAgIGlmIChhdXRob3JpemF0aW9uSGVhZGVyKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYXV0aG9yaXphdGlvbkhlYWRlcik7XG4gICAgfVxuICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgdGhpcy5jYWNoZVN0b3JhZ2Uub3BlbihBdXRoSHR0cENhY2hlLkNBQ0hFX0tFWSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXF1ZXN0KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgICBpZiAocmVzcG9uc2U/Lm9rKSB7XG4gICAgICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgcmVzcG9uc2UpO1xuICAgIH1cbiAgICBpZiAoYXV0aG9yaXphdGlvbkhlYWRlciAmJiByZXNwb25zZT8uc3RhdHVzID09PSA0MDEpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcbiAgICAgIGF3YWl0IHRoaXMub2F1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbigpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWNoZS5tYXRjaChyZXF1ZXN0KS50aGVuKChyZXMpID0+IHJlcz8uanNvbigpID8/IG51bGwpO1xuICB9XG59XG4iXX0=
|
|
@@ -2,4 +2,5 @@ export * from './auth-environment';
|
|
|
2
2
|
export * from './auth-http-cache';
|
|
3
3
|
export * from './auth-plugin-manager';
|
|
4
4
|
export * from './authorized-handler';
|
|
5
|
-
|
|
5
|
+
export * from './offline-auth-error-handler';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0aC1lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtaHR0cC1jYWNoZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtcGx1Z2luLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRob3JpemVkLWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9vZmZsaW5lLWF1dGgtZXJyb3ItaGFuZGxlcic7XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const offlineAuthErrorHandler = (error) => {
|
|
2
|
+
if (error.type === 'discovery_document_load_error' && error.reason?.status === 504) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
throw error;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS1hdXRoLWVycm9yLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvbW9kZWxzL29mZmxpbmUtYXV0aC1lcnJvci1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF1QixDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ25FLElBQUksS0FBSyxDQUFDLElBQUksS0FBSywrQkFBK0IsSUFBSyxLQUFLLENBQUMsTUFBNEIsRUFBRSxNQUFNLEtBQUssR0FBRyxFQUFFO1FBQ3pHLE9BQU87S0FDUjtJQUNELE1BQU0sS0FBSyxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBdXRoRXJyb3JIYW5kbGVyRm4gfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBvZmZsaW5lQXV0aEVycm9ySGFuZGxlcjogQXV0aEVycm9ySGFuZGxlckZuID0gKGVycm9yKSA9PiB7XG4gIGlmIChlcnJvci50eXBlID09PSAnZGlzY292ZXJ5X2RvY3VtZW50X2xvYWRfZXJyb3InICYmIChlcnJvci5yZWFzb24gYXMgSHR0cEVycm9yUmVzcG9uc2UpPy5zdGF0dXMgPT09IDUwNCkge1xuICAgIHJldHVybjtcbiAgfVxuICB0aHJvdyBlcnJvcjtcbn07XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './core-identity.plugin';
|
|
2
2
|
export * from './loading-screen-plugin';
|
|
3
|
-
|
|
3
|
+
export * from './user-profile-link.plugin';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29yZS1pZGVudGl0eS5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLXNjcmVlbi1wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4nO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { of } from 'rxjs';
|
|
2
|
+
import { DEFAULT_USER_PROFILE_URLS, injectAuthConfig } from '../auth.config';
|
|
3
|
+
export const userProfileUrlPlugin = () => {
|
|
4
|
+
const { environment, userProfileUrl } = injectAuthConfig();
|
|
5
|
+
return () => {
|
|
6
|
+
return of({ userProfileUrl: userProfileUrl ?? DEFAULT_USER_PROFILE_URLS[environment] });
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3BsdWdpbnMvdXNlci1wcm9maWxlLWxpbmsucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFZN0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXNCLEdBQUcsRUFBRTtJQUMxRCxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFFM0QsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxjQUFjLElBQUkseUJBQXlCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBERUZBVUxUX1VTRVJfUFJPRklMRV9VUkxTLCBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICB1c2VyUHJvZmlsZVVybDogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlclByb2ZpbGVVcmxQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCB7IGVudmlyb25tZW50LCB1c2VyUHJvZmlsZVVybCB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgcmV0dXJuIG9mKHsgdXNlclByb2ZpbGVVcmw6IHVzZXJQcm9maWxlVXJsID8/IERFRkFVTFRfVVNFUl9QUk9GSUxFX1VSTFNbZW52aXJvbm1lbnRdIH0pO1xuICB9O1xufTtcbiJdfQ==
|
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
import { inject } from '@angular/core';
|
|
2
2
|
import { AuthHttpCache, injectAuthConfig } from '@odx/auth';
|
|
3
|
-
import { defer } from 'rxjs';
|
|
3
|
+
import { defer, map } from 'rxjs';
|
|
4
4
|
import { buildServiceConnectUrl } from './build-service-connect-url';
|
|
5
5
|
export function serviceConnectPluginFactory(options) {
|
|
6
6
|
return (pluginOptions) => () => {
|
|
7
|
+
options.setup?.(pluginOptions);
|
|
7
8
|
const { environment } = injectAuthConfig();
|
|
8
9
|
const httpCache = inject(AuthHttpCache);
|
|
9
|
-
options.setup?.();
|
|
10
10
|
const url = buildServiceConnectUrl(pluginOptions?.environment ?? environment, ...options.endpoint);
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const token = authService.getAccessToken();
|
|
14
|
-
let result = null;
|
|
15
|
-
if (token) {
|
|
16
|
-
request.headers.set('Authorization', `Bearer ${token}`);
|
|
17
|
-
result = await httpCache.request(request).then((res) => options.parseResponse(res));
|
|
18
|
-
}
|
|
19
|
-
else if (!authService.isAuthenticated()) {
|
|
20
|
-
await httpCache.delete(request);
|
|
21
|
-
}
|
|
22
|
-
return result ?? options.defaultValue ?? {};
|
|
23
|
-
});
|
|
24
|
-
return plugin;
|
|
11
|
+
const parseResponse = (dto) => options.parseResponse(dto) ?? options.defaultValue ?? {};
|
|
12
|
+
return () => defer(() => httpCache.request(url, true)).pipe(map((dto) => parseResponse(dto)));
|
|
25
13
|
};
|
|
26
14
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvc2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFlckUsTUFBTSxVQUFVLDJCQUEyQixDQUFnQixPQUFnRDtJQUN6RyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQWUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUVwRyxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFNLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aEh0dHBDYWNoZSwgQXV0aFBsdWdpbkZhY3RvcnksIGluamVjdEF1dGhDb25maWcgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgZGVmZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCB9IGZyb20gJy4uL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuaW1wb3J0IHsgYnVpbGRTZXJ2aWNlQ29ubmVjdFVybCB9IGZyb20gJy4vYnVpbGQtc2VydmljZS1jb25uZWN0LXVybCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZUNvbm5lY3RQbHVnaW5PcHRpb25zIHtcbiAgZW52aXJvbm1lbnQ/OiBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPiB7XG4gIGVuZHBvaW50OiBzdHJpbmdbXTtcbiAgcGFyc2VSZXNwb25zZTogKHJlczogRHRvIHwgbnVsbCkgPT4gUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xuICBkZWZhdWx0VmFsdWU/OiBQYXJ0aWFsPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD47XG4gIHNldHVwPzogKHBsdWdpbk9wdGlvbnM/OiBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSA9IChwbHVnaW5PcHRpb25zPzogU2VydmljZUNvbm5lY3RQbHVnaW5PcHRpb25zKSA9PiBBdXRoUGx1Z2luRmFjdG9yeTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxEdG8gPSB1bmtub3duPihvcHRpb25zOiBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnlPcHRpb25zPER0bz4pOiBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnkge1xuICByZXR1cm4gKHBsdWdpbk9wdGlvbnMpID0+ICgpID0+IHtcbiAgICBvcHRpb25zLnNldHVwPy4ocGx1Z2luT3B0aW9ucyk7XG4gICAgY29uc3QgeyBlbnZpcm9ubWVudCB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICAgIGNvbnN0IGh0dHBDYWNoZSA9IGluamVjdChBdXRoSHR0cENhY2hlKTtcbiAgICBjb25zdCB1cmwgPSBidWlsZFNlcnZpY2VDb25uZWN0VXJsKHBsdWdpbk9wdGlvbnM/LmVudmlyb25tZW50ID8/IGVudmlyb25tZW50LCAuLi5vcHRpb25zLmVuZHBvaW50KTtcbiAgICBjb25zdCBwYXJzZVJlc3BvbnNlID0gKGR0bzogRHRvIHwgbnVsbCkgPT4gb3B0aW9ucy5wYXJzZVJlc3BvbnNlKGR0bykgPz8gb3B0aW9ucy5kZWZhdWx0VmFsdWUgPz8ge307XG5cbiAgICByZXR1cm4gKCkgPT4gZGVmZXIoKCkgPT4gaHR0cENhY2hlLnJlcXVlc3Q8RHRvPih1cmwsIHRydWUpKS5waXBlKG1hcCgoZHRvKSA9PiBwYXJzZVJlc3BvbnNlKGR0bykpKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -5,6 +5,5 @@ export const serviceConnectRightsPlugin = serviceConnectPluginFactory({
|
|
|
5
5
|
endpoint: [ServiceConnectEndpoints.userRights],
|
|
6
6
|
parseResponse: (res) => ({ rights: res?.rights ?? [] }),
|
|
7
7
|
defaultValue: { rights: [] },
|
|
8
|
-
// setup: () => inject(AuthConfig).scopes?.push(ServiceConnectScopes.RIGHTS); // TODO: enable scope when supported by the CSI team
|
|
9
8
|
});
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvc2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sMkJBQTJCLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsMkJBQTJCLENBQXFDO0lBQ3hHLFFBQVEsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQztJQUM5QyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN2RCxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO0NBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0UmlnaHRzUmVzcG9uc2VEdG8gfSBmcm9tICcuL2R0b3MnO1xuaW1wb3J0IHsgc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW5kcG9pbnRzIH0gZnJvbSAnLi9zZXJ2aWNlLWNvbm5lY3QuY29uZmlnJztcbmltcG9ydCAnLi9zZXJ2aWNlLWNvbm5lY3QudHlwaW5ncyc7XG5cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFJpZ2h0c1BsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvPih7XG4gIGVuZHBvaW50OiBbU2VydmljZUNvbm5lY3RFbmRwb2ludHMudXNlclJpZ2h0c10sXG4gIHBhcnNlUmVzcG9uc2U6IChyZXMpID0+ICh7IHJpZ2h0czogcmVzPy5yaWdodHMgPz8gW10gfSksXG4gIGRlZmF1bHRWYWx1ZTogeyByaWdodHM6IFtdIH0sXG59KTtcbiJdfQ==
|
|
@@ -5,10 +5,11 @@ export const ServiceConnnectEnvironments = {
|
|
|
5
5
|
};
|
|
6
6
|
export const ServiceConnectScopes = {
|
|
7
7
|
BASE: 'dcid',
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
PROFILE: 'dcid.profile',
|
|
9
|
+
RIGHTS: 'dcid.rights',
|
|
10
|
+
INSTITUTION: 'dcid.instiution',
|
|
10
11
|
};
|
|
11
12
|
export const ServiceConnectEndpoints = {
|
|
12
13
|
userRights: '/users/me/rights',
|
|
13
14
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFvQztJQUMxRSxHQUFHLEVBQUUsc0NBQXNDO0lBQzNDLEtBQUssRUFBRSx5Q0FBeUM7SUFDaEQsSUFBSSxFQUFFLGlDQUFpQztDQUN4QyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsY0FBYztJQUN2QixNQUFNLEVBQUUsYUFBYTtJQUNyQixXQUFXLEVBQUUsaUJBQWlCO0NBQy9CLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxVQUFVLEVBQUUsa0JBQWtCO0NBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoRW52aXJvbm1lbnQgfSBmcm9tICdAb2R4L2F1dGgnO1xuXG5leHBvcnQgdHlwZSBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50ID0geyBjdXN0b206IHN0cmluZyB9O1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VDb25ubmVjdEVudmlyb25tZW50czogUmVjb3JkPEF1dGhFbnZpcm9ubWVudCwgc3RyaW5nPiA9IHtcbiAgZGV2OiAnaHR0cHM6Ly9hcGkudGVzdC5jb25uZWN0LmRyYWVnZXIuY29tJyxcbiAgc3RhZ2U6ICdodHRwczovL2FwaS5zdGFnaW5nLmNvbm5lY3QuZHJhZWdlci5jb20nLFxuICBwcm9kOiAnaHR0cHM6Ly9hcGkuY29ubmVjdC5kcmFlZ2VyLmNvbScsXG59O1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VDb25uZWN0U2NvcGVzID0ge1xuICBCQVNFOiAnZGNpZCcsXG4gIFBST0ZJTEU6ICdkY2lkLnByb2ZpbGUnLFxuICBSSUdIVFM6ICdkY2lkLnJpZ2h0cycsXG4gIElOU1RJVFVUSU9OOiAnZGNpZC5pbnN0aXV0aW9uJyxcbn07XG5leHBvcnQgY29uc3QgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgPSB7XG4gIHVzZXJSaWdodHM6ICcvdXNlcnMvbWUvcmlnaHRzJyxcbn07XG4iXX0=
|