@odx/auth 15.0.0 → 15.0.1
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/CHANGELOG.md +6 -0
- package/esm2022/lib/auth.component.mjs +6 -1
- package/esm2022/lib/auth.config.mjs +38 -1
- package/esm2022/lib/auth.directive.mjs +11 -1
- package/esm2022/lib/auth.guard.mjs +9 -1
- package/esm2022/lib/auth.interceptor.mjs +8 -1
- package/esm2022/lib/auth.providers.mjs +35 -1
- package/esm2022/lib/auth.service.mjs +159 -1
- package/esm2022/lib/components/auth-actions/auth-actions.component.mjs +10 -1
- package/esm2022/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +15 -3
- package/esm2022/lib/directives/auth-action.directive.mjs +7 -1
- package/esm2022/lib/directives/sign-in.directive.mjs +20 -1
- package/esm2022/lib/directives/sign-out.directive.mjs +20 -1
- package/esm2022/lib/helpers/create-auth-host-url.mjs +13 -1
- package/esm2022/lib/helpers/create-inititals.mjs +18 -1
- package/esm2022/lib/helpers/handle-auth-error.mjs +13 -3
- package/esm2022/lib/helpers/handle-oauth-event.mjs +9 -1
- package/esm2022/lib/helpers/resolve-email.mjs +21 -1
- package/esm2022/lib/helpers/resolve-username.mjs +22 -1
- package/esm2022/lib/helpers/set-http-auth-header.mjs +10 -1
- package/esm2022/lib/helpers/user-language-loader.mjs +8 -1
- package/esm2022/lib/plugins/core-debug.plugin.mjs +10 -1
- package/esm2022/lib/plugins/core-identity.plugin.mjs +8 -1
- package/esm2022/lib/plugins/user-profile-link.plugin.mjs +10 -1
- package/esm2022/lib/unauth.guard.mjs +9 -1
- package/esm2022/plugins/service-connect/lib/helpers/build-service-connect-url.mjs +8 -1
- package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.mjs +8 -1
- package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights.mjs +8 -1
- package/esm2022/plugins/service-connect/lib/helpers/service-connect-plugin-factory.mjs +7 -1
- package/esm2022/plugins/service-connect/lib/service-connect-rights.directive.mjs +13 -1
- package/esm2022/plugins/service-connect/lib/service-connect-rights.guard.mjs +9 -1
- package/esm2022/plugins/service-connect/lib/service-connect-rights.plugin.mjs +9 -1
- package/esm2022/plugins/service-connect/lib/service-connect-user-language.plugin.mjs +15 -1
- package/esm2022/plugins/service-connect/lib/service-connect-user-profile.plugin.mjs +9 -1
- package/fesm2022/odx-auth-plugins-service-connect.mjs +77 -0
- package/fesm2022/odx-auth-plugins-service-connect.mjs.map +1 -1
- package/fesm2022/odx-auth.mjs +466 -5
- package/fesm2022/odx-auth.mjs.map +1 -1
- package/lib/auth.component.d.ts +5 -0
- package/lib/auth.config.d.ts +42 -0
- package/lib/auth.directive.d.ts +10 -0
- package/lib/auth.guard.d.ts +8 -0
- package/lib/auth.interceptor.d.ts +7 -0
- package/lib/auth.providers.d.ts +34 -0
- package/lib/auth.service.d.ts +156 -0
- package/lib/components/auth-actions/auth-actions.component.d.ts +9 -0
- package/lib/components/auth-loading-screen/auth-loading-screen.component.d.ts +13 -0
- package/lib/directives/auth-action.directive.d.ts +6 -0
- package/lib/directives/sign-in.directive.d.ts +19 -0
- package/lib/directives/sign-out.directive.d.ts +19 -0
- package/lib/helpers/create-auth-host-url.d.ts +12 -0
- package/lib/helpers/create-inititals.d.ts +17 -0
- package/lib/helpers/handle-auth-error.d.ts +10 -0
- package/lib/helpers/handle-oauth-event.d.ts +8 -0
- package/lib/helpers/resolve-email.d.ts +20 -0
- package/lib/helpers/resolve-username.d.ts +21 -0
- package/lib/helpers/set-http-auth-header.d.ts +9 -0
- package/lib/helpers/user-language-loader.d.ts +7 -0
- package/lib/plugins/core-debug.plugin.d.ts +9 -0
- package/lib/plugins/core-identity.plugin.d.ts +7 -0
- package/lib/plugins/user-profile-link.plugin.d.ts +9 -0
- package/lib/unauth.guard.d.ts +8 -0
- package/package.json +1 -1
- package/plugins/service-connect/lib/helpers/build-service-connect-url.d.ts +7 -0
- package/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.d.ts +7 -0
- package/plugins/service-connect/lib/helpers/has-roles-or-rights.d.ts +7 -0
- package/plugins/service-connect/lib/helpers/service-connect-plugin-factory.d.ts +6 -0
- package/plugins/service-connect/lib/service-connect-rights.directive.d.ts +12 -0
- package/plugins/service-connect/lib/service-connect-rights.guard.d.ts +8 -0
- package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +8 -0
- package/plugins/service-connect/lib/service-connect-user-language.plugin.d.ts +14 -0
- package/plugins/service-connect/lib/service-connect-user-profile.plugin.d.ts +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -34,6 +34,11 @@ export class AuthComponent {
|
|
|
34
34
|
idClaims: this.authService.identityClaims$,
|
|
35
35
|
isAuthenticated: this.authService.isAuthenticated$,
|
|
36
36
|
});
|
|
37
|
+
/**
|
|
38
|
+
* Whether to hide the institution information.
|
|
39
|
+
*
|
|
40
|
+
* @type {InputSignal<boolean>}
|
|
41
|
+
*/
|
|
37
42
|
this.hideInstitution = input(false);
|
|
38
43
|
}
|
|
39
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -54,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
54
59
|
AsyncPipe,
|
|
55
60
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [provideTranslations(translations)], template: "<odx-action-group>\n @if (vm$ | async; as vm) {\n <ng-container ngProjectAs=\"[odxButton]\">\n @if (vm.isAuthenticated) {\n <button odxButton [odxDropdown]=\"userProfileMenu\" [odxDropdownOptions]=\"dropdownOptions\" data-testid=\"odx-auth-user-profile-button\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" />\n </button>\n } @else {\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"secondary\" data-testid=\"odx-auth-sign-in-button\">\n <odx-icon name=\"user\" alignLeft />\n {{ 'signInButtonText' | odxTranslate | async }}\n </button>\n }\n <ng-template #userProfileMenu>\n @if (!hideInstitution() && vm.idClaims?.institutionName; as institutionName) {\n <odx-area-header class=\"odx-padding-x-12 odx-padding-bottom-8\" size=\"small\">\n <odx-area-header-subtitle class=\"odx-auth-institution-name\">{{ institutionName }}</odx-area-header-subtitle>\n </odx-area-header>\n }\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" ngProjectAs=\"odx-avatar\" />\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 />\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 />\n </button>\n </div>\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-container>\n }\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"] }]
|
|
56
61
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLGtDQUFrQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLFlBQVksTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7QUF1QmpFLE1BQU0sT0FBTyxhQUFhO0lBckIxQjtRQXNCcUIsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsb0JBQWUsR0FBRztZQUNuQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVU7WUFDN0IsY0FBYyxFQUFFLEtBQUs7WUFDckIsY0FBYyxFQUFFLHVCQUF1QjtTQUNaLENBQUM7UUFDWCxRQUFHLEdBQUcsYUFBYSxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWU7WUFDMUMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO1NBQ25ELENBQUMsQ0FBQztRQUVIOzs7O1dBSUc7UUFDYSxvQkFBZSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNoRDsrR0FuQlksYUFBYTttR0FBYixhQUFhLHlOQUZiLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUMsMEJDbkNoRCxpbUVBNENBLGtiRHhCSSxnQkFBZ0IsNjRCQUNoQixjQUFjLDBmQUNkLFlBQVksK0JBQ1osYUFBYSxrRkFDYixlQUFlLG1HQUNmLGdCQUFnQixvR0FDaEIsb0JBQW9CLCtCQUNwQixvQkFBb0IsNEVBQ3BCLGFBQWE7OzRGQVNKLGFBQWE7a0JBckJ6QixTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLFdBQ1g7d0JBQ1AsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsU0FBUztxQkFDVixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcmVhSGVhZGVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYXJlYS1oZWFkZXInO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUsIERyb3Bkb3duT3B0aW9ucyB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEhlYWRlck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlcic7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBMb2dvRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9nbyc7XG5pbXBvcnQgeyBwcm92aWRlVHJhbnNsYXRpb25zLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4vYXV0aC5pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU2lnbkluRGlyZWN0aXZlLCBTaWduT3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWF1dGgnLFxuICBpbXBvcnRzOiBbXG4gICAgQXJlYUhlYWRlck1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBIZWFkZXJNb2R1bGUsXG4gICAgTG9nb0RpcmVjdGl2ZSxcbiAgICBTaWduSW5EaXJlY3RpdmUsXG4gICAgU2lnbk91dERpcmVjdGl2ZSxcbiAgICBMb2FkaW5nU3Bpbm5lck1vZHVsZSxcbiAgICBBdXRoQWN0aW9uc0NvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRoLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtwcm92aWRlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9ucyldLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhDb25maWcgPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93bk9wdGlvbnMgPSB7XG4gICAgcG9zaXRpb246IFBvc2l0aW9uLkJPVFRPTV9FTkQsXG4gICAgZW5hYmxlRmFsbGJhY2s6IGZhbHNlLFxuICAgIGNvbnRhaW5lckNsYXNzOiAnb2R4LWF1dGgtdXNlci1wcm9maWxlJyxcbiAgfSBhcyBQYXJ0aWFsPERyb3Bkb3duT3B0aW9ucz47XG4gIHByb3RlY3RlZCByZWFkb25seSB2bSQgPSBjb21iaW5lTGF0ZXN0KHtcbiAgICBpZENsYWltczogdGhpcy5hdXRoU2VydmljZS5pZGVudGl0eUNsYWltcyQsXG4gICAgaXNBdXRoZW50aWNhdGVkOiB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIGluc3RpdHV0aW9uIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7SW5wdXRTaWduYWw8Ym9vbGVhbj59XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZUluc3RpdHV0aW9uID0gaW5wdXQoZmFsc2UpO1xufVxuIiwiPG9keC1hY3Rpb24tZ3JvdXA+XG4gIEBpZiAodm0kIHwgYXN5bmM7IGFzIHZtKSB7XG4gICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cIltvZHhCdXR0b25dXCI+XG4gICAgICBAaWYgKHZtLmlzQXV0aGVudGljYXRlZCkge1xuICAgICAgICA8YnV0dG9uIG9keEJ1dHRvbiBbb2R4RHJvcGRvd25dPVwidXNlclByb2ZpbGVNZW51XCIgW29keERyb3Bkb3duT3B0aW9uc109XCJkcm9wZG93bk9wdGlvbnNcIiBkYXRhLXRlc3RpZD1cIm9keC1hdXRoLXVzZXItcHJvZmlsZS1idXR0b25cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidXNlckF2YXRhclwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJvZHgtYXV0aC1zaWduLWluXCIgb2R4QnV0dG9uIG9keEF1dGhTaWduSW4gdmFyaWFudD1cInNlY29uZGFyeVwiIGRhdGEtdGVzdGlkPVwib2R4LWF1dGgtc2lnbi1pbi1idXR0b25cIj5cbiAgICAgICAgICA8b2R4LWljb24gbmFtZT1cInVzZXJcIiBhbGlnbkxlZnQgLz5cbiAgICAgICAgICB7eyAnc2lnbkluQnV0dG9uVGV4dCcgfCBvZHhUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdXNlclByb2ZpbGVNZW51PlxuICAgICAgICBAaWYgKCFoaWRlSW5zdGl0dXRpb24oKSAmJiB2bS5pZENsYWltcz8uaW5zdGl0dXRpb25OYW1lOyBhcyBpbnN0aXR1dGlvbk5hbWUpIHtcbiAgICAgICAgICA8b2R4LWFyZWEtaGVhZGVyIGNsYXNzPVwib2R4LXBhZGRpbmcteC0xMiBvZHgtcGFkZGluZy1ib3R0b20tOFwiIHNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgICAgPG9keC1hcmVhLWhlYWRlci1zdWJ0aXRsZSBjbGFzcz1cIm9keC1hdXRoLWluc3RpdHV0aW9uLW5hbWVcIj57eyBpbnN0aXR1dGlvbk5hbWUgfX08L29keC1hcmVhLWhlYWRlci1zdWJ0aXRsZT5cbiAgICAgICAgICA8L29keC1hcmVhLWhlYWRlcj5cbiAgICAgICAgfVxuICAgICAgICA8b2R4LWFyZWEtaGVhZGVyIGNsYXNzPVwib2R4LXBhZGRpbmcteC0xMlwiIHNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ1c2VyQXZhdGFyXCIgbmdQcm9qZWN0QXM9XCJvZHgtYXZhdGFyXCIgLz5cbiAgICAgICAgICB7eyB2bS5pZENsYWltcz8udXNlcm5hbWUgfX1cbiAgICAgICAgICA8b2R4LWFyZWEtaGVhZGVyLXN1YnRpdGxlPlxuICAgICAgICAgICAge3sgdm0uaWRDbGFpbXM/LmVtYWlsIH19XG4gICAgICAgICAgPC9vZHgtYXJlYS1oZWFkZXItc3VidGl0bGU+XG4gICAgICAgIDwvb2R4LWFyZWEtaGVhZGVyPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8b2R4LWF1dGgtYWN0aW9ucyBbY2xhaW1zXT1cInZtLmlkQ2xhaW1zXCI+PC9vZHgtYXV0aC1hY3Rpb25zPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib2R4LW1hcmdpbi10b3AtMTJcIiBvZHhMYXlvdXQ9XCJmbGV4IHZlcnRpY2FsLWNlbnRlclwiPlxuICAgICAgICAgIDxvZHgtbG9nbyBvZHhMYXlvdXQ9XCJhdXRvXCIgY2xhc3M9XCJvZHgtbWFyZ2luLWxlZnQtMTIgb2R4LW1hcmdpbi1yaWdodC1hdXRvXCI+PC9vZHgtbG9nbz5cbiAgICAgICAgICA8YnV0dG9uIG9keEJ1dHRvbiBvZHhBdXRoU2lnbk91dCB2YXJpYW50PVwiZ2hvc3RcIiBkYXRhLXRlc3RpZD1cIm9keC1hdXRoLXNpZ24tb3V0LWJ1dHRvblwiPlxuICAgICAgICAgICAge3sgJ3NpZ25PdXRCdXR0b25UZXh0JyB8IG9keFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICA8b2R4LWljb24gbmFtZT1cImxvZ291dFwiIGFsaWduUmlnaHQgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICN1c2VyQXZhdGFyPlxuICAgICAgICA8b2R4LWF2YXRhciBjbGFzcz1cIm9keC1hdXRoLXVzZXItYXZhdGFyXCI+XG4gICAgICAgICAge3sgdm0uaWRDbGFpbXM/LmluaXRpYWxzID8/ICcnIH19XG4gICAgICAgIDwvb2R4LWF2YXRhcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIH1cbjwvb2R4LWFjdGlvbi1ncm91cD5cbiJdfQ==
|
|
@@ -12,6 +12,43 @@ export const ODX_AUTH_USER_PROFILE_HOSTS = {
|
|
|
12
12
|
stage: 'https://purple-cliff-0e61c5703.3.azurestaticapps.net',
|
|
13
13
|
prod: 'https://id.draeger.com',
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Tools for injecting and providing the auth configuration with default configuration for the authentication.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Providing custom authentication configuration.
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { createInitials, resolveEmail, resolveUsername } from './helpers';
|
|
22
|
+
*
|
|
23
|
+
* providers: [provideAuthConfig({
|
|
24
|
+
* environment: 'dev',
|
|
25
|
+
* redirectPath: 'login/callback',
|
|
26
|
+
* allowedUrls: [],
|
|
27
|
+
* timeoutFactor: 0.75,
|
|
28
|
+
* maxOfflineTime: 60 * 60, // 1 hour
|
|
29
|
+
* loadUserProfile: false,
|
|
30
|
+
* errorHandler: (error) => {
|
|
31
|
+
* throw error;
|
|
32
|
+
* },
|
|
33
|
+
* createInitials,
|
|
34
|
+
* resolveEmail,
|
|
35
|
+
* resolveUsername,
|
|
36
|
+
* plugins: [],
|
|
37
|
+
* defaultAuthorizedHandler: null,
|
|
38
|
+
* enableLoadingScreen: true,
|
|
39
|
+
* loadingScreenMessage: 'Loading...',
|
|
40
|
+
* waitForTokenInMs: 500,
|
|
41
|
+
*
|
|
42
|
+
* })],
|
|
43
|
+
*
|
|
44
|
+
* // Injecting the datepicker configuration.
|
|
45
|
+
* ```ts
|
|
46
|
+
* @Component({})
|
|
47
|
+
* export class MyComponent {
|
|
48
|
+
* constructor(@Inject(injectAuthConfig()) private readonly authConfig: AuthConfig) {}
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
15
52
|
export const { AuthDefaultConfig, AuthConfig, injectAuthConfig, provideAuthConfig } = createConfigTokens('Auth', '@odx/auth', {
|
|
16
53
|
environment: 'prod',
|
|
17
54
|
redirectPath: 'login/callback',
|
|
@@ -31,4 +68,4 @@ export const { AuthDefaultConfig, AuthConfig, injectAuthConfig, provideAuthConfi
|
|
|
31
68
|
loadingScreenMessage: null,
|
|
32
69
|
waitForTokenInMs: 1000,
|
|
33
70
|
});
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJMUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO0FBQ2hELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUN4RixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW9DO0lBQzdELEdBQUcsRUFBRSwrQkFBK0I7SUFDcEMsS0FBSyxFQUFFLGdDQUFnQztJQUN2QyxJQUFJLEVBQUUsMkJBQTJCO0NBQ2xDLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBb0M7SUFDMUUsR0FBRyxFQUFFLHFEQUFxRDtJQUMxRCxLQUFLLEVBQUUsc0RBQXNEO0lBQzdELElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBQztBQTJDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO0lBQzVILFdBQVcsRUFBRSxNQUFNO0lBQ25CLFlBQVksRUFBRSxnQkFBZ0I7SUFDOUIsV0FBVyxFQUFFLEVBQUU7SUFDZixhQUFhLEVBQUUsSUFBSTtJQUNuQixjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUTtJQUN0QyxlQUFlLEVBQUUsS0FBSztJQUN0QixZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixPQUFPLEVBQUUsRUFBRTtJQUNYLHdCQUF3QixFQUFFLElBQUk7SUFDOUIsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGdCQUFnQixFQUFFLElBQUk7Q0FDVCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljVGV4dENvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBjcmVhdGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT0F1dGhFcnJvckV2ZW50LCBPQXV0aFN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGNyZWF0ZUluaXRpYWxzLCByZXNvbHZlRW1haWwsIHJlc29sdmVVc2VybmFtZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbmltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCwgQXV0aG9yaXplZEhhbmRsZXIsIEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IVFRQX0hFQURFUiA9ICdBdXRob3JpemF0aW9uJztcbmV4cG9ydCBjb25zdCBPRFhfQVVUSF9ERUZBVUxUX1NDT1BFUyA9IFsnb3BlbmlkJywgJ3Byb2ZpbGUnLCAnZW1haWwnLCAnb2ZmbGluZV9hY2Nlc3MnXTtcbmV4cG9ydCBjb25zdCBPRFhfQVVUSF9IT1NUUzogUmVjb3JkPEF1dGhFbnZpcm9ubWVudCwgc3RyaW5nPiA9IHtcbiAgZGV2OiAnaHR0cHM6Ly9kZXYubG9naW4uZHJhZWdlci5jb20nLFxuICBzdGFnZTogJ2h0dHBzOi8vdGVzdC5sb2dpbi5kcmFlZ2VyLmNvbScsXG4gIHByb2Q6ICdodHRwczovL2xvZ2luLmRyYWVnZXIuY29tJyxcbn07XG5leHBvcnQgY29uc3QgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTOiBSZWNvcmQ8QXV0aEVudmlyb25tZW50LCBzdHJpbmc+ID0ge1xuICBkZXY6ICdodHRwczovL2xlbW9uLW9jZWFuLTA0YTkyMjcwMy4zLmF6dXJlc3RhdGljYXBwcy5uZXQnLFxuICBzdGFnZTogJ2h0dHBzOi8vcHVycGxlLWNsaWZmLTBlNjFjNTcwMy4zLmF6dXJlc3RhdGljYXBwcy5uZXQnLFxuICBwcm9kOiAnaHR0cHM6Ly9pZC5kcmFlZ2VyLmNvbScsXG59O1xuXG5leHBvcnQgdHlwZSBBdXRoRXJyb3JIYW5kbGVyRm4gPSAoZXJyb3I6IE9BdXRoRXJyb3JFdmVudCkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIFJlc29sdmVVc2VybmFtZUZuID0gKHJhd0NsYWltczogT2R4QXV0aC5SYXdJZGVudGl0eUNsYWltcykgPT4gc3RyaW5nO1xuZXhwb3J0IHR5cGUgUmVzb2x2ZUVtYWlsRm4gPSAocmF3Q2xhaW1zOiBPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBDcmVhdGVJbml0aWFsc0ZuID0gKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBhdXRoZW50aWNhdGlvbiBtb2R1bGUuXG4gKlxuICogQGludGVyZmFjZSBBdXRoQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aENvbmZpZyB7XG4gIGVudmlyb25tZW50OiBBdXRoRW52aXJvbm1lbnQ7XG4gIGNsaWVudElkPzogc3RyaW5nO1xuICBpc3N1ZXI/OiBzdHJpbmc7XG4gIHJlZGlyZWN0UGF0aDogc3RyaW5nO1xuICBhbGxvd2VkVXJsczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPjtcbiAgdGltZW91dEZhY3RvcjogbnVtYmVyO1xuICBtYXhPZmZsaW5lVGltZTogbnVtYmVyO1xuICBsb2FkVXNlclByb2ZpbGU6IGJvb2xlYW47XG4gIHBvc3RMb2dvdXRSZWRpcmVjdFVybD86IHN0cmluZztcbiAgc2NvcGVzPzogc3RyaW5nW107XG4gIGRpc2NvdmVyeVVybD86IHN0cmluZztcbiAgZXJyb3JIYW5kbGVyOiBBdXRoRXJyb3JIYW5kbGVyRm47XG4gIGNyZWF0ZUluaXRpYWxzOiBDcmVhdGVJbml0aWFsc0ZuO1xuICByZXNvbHZlRW1haWw6IFJlc29sdmVFbWFpbEZuO1xuICByZXNvbHZlVXNlcm5hbWU6IFJlc29sdmVVc2VybmFtZUZuO1xuICBzdG9yYWdlPzogT0F1dGhTdG9yYWdlO1xuICBwbHVnaW5zOiBBdXRoUGx1Z2luRmFjdG9yeVtdO1xuICBwbHVnaW5zRXJyb3JIYW5kbGVyPzogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkO1xuICBkZWZhdWx0QXV0aG9yaXplZEhhbmRsZXI/OiBBdXRob3JpemVkSGFuZGxlciB8IG51bGw7XG4gIGVuYWJsZUxvYWRpbmdTY3JlZW46IGJvb2xlYW47XG4gIHJlZnJlc2hUb2tlbk9uSW5pdD86IGJvb2xlYW47XG4gIGxvYWRpbmdTY3JlZW5NZXNzYWdlPzogRHluYW1pY1RleHRDb250ZW50IHwgbnVsbDtcbiAgdXNlclByb2ZpbGVVcmw/OiBzdHJpbmc7XG4gIHJlcXVpcmVTaWduSW4/OiBib29sZWFuO1xuICByZXF1aXJlU2lnbkluRm9yUmVxdWVzdHM/OiBib29sZWFuO1xuICB3YWl0Rm9yVG9rZW5Jbk1zPzogbnVtYmVyO1xuICBzaG93RGVidWdJbmZvcm1hdGlvbj86IGJvb2xlYW47XG4gIHBsdWdpblRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVG9vbHMgZm9yIGluamVjdGluZyBhbmQgcHJvdmlkaW5nIHRoZSBhdXRoIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdXRoZW50aWNhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUHJvdmlkaW5nIGN1c3RvbSBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uLlxuICogYGBgdHNcbiAqICAgaW1wb3J0IHsgY3JlYXRlSW5pdGlhbHMsIHJlc29sdmVFbWFpbCwgcmVzb2x2ZVVzZXJuYW1lIH0gZnJvbSAnLi9oZWxwZXJzJztcbiAqXG4gKiAgIHByb3ZpZGVyczogW3Byb3ZpZGVBdXRoQ29uZmlnKHtcbiAqICAgICAgICBlbnZpcm9ubWVudDogJ2RldicsXG4gKiAgICAgICAgcmVkaXJlY3RQYXRoOiAnbG9naW4vY2FsbGJhY2snLFxuICogICAgICAgIGFsbG93ZWRVcmxzOiBbXSxcbiAqICAgICAgICB0aW1lb3V0RmFjdG9yOiAwLjc1LFxuICogICAgICAgIG1heE9mZmxpbmVUaW1lOiA2MCAqIDYwLCAvLyAxIGhvdXJcbiAqICAgICAgICBsb2FkVXNlclByb2ZpbGU6IGZhbHNlLFxuICogICAgICAgIGVycm9ySGFuZGxlcjogKGVycm9yKSA9PiB7XG4gKiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAqICAgICAgICB9LFxuICogICAgICAgIGNyZWF0ZUluaXRpYWxzLFxuICogICAgICAgIHJlc29sdmVFbWFpbCxcbiAqICAgICAgICByZXNvbHZlVXNlcm5hbWUsXG4gKiAgICAgICAgcGx1Z2luczogW10sXG4gKiAgICAgICAgZGVmYXVsdEF1dGhvcml6ZWRIYW5kbGVyOiBudWxsLFxuICogICAgICAgIGVuYWJsZUxvYWRpbmdTY3JlZW46IHRydWUsXG4gKiAgICAgICAgbG9hZGluZ1NjcmVlbk1lc3NhZ2U6ICdMb2FkaW5nLi4uJyxcbiAqICAgICAgICB3YWl0Rm9yVG9rZW5Jbk1zOiA1MDAsXG4gKlxuICogICAgfSldLFxuICpcbiAqIC8vIEluamVjdGluZyB0aGUgZGF0ZXBpY2tlciBjb25maWd1cmF0aW9uLlxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe30pXG4gKiBleHBvcnQgY2xhc3MgTXlDb21wb25lbnQge1xuICogIGNvbnN0cnVjdG9yKEBJbmplY3QoaW5qZWN0QXV0aENvbmZpZygpKSBwcml2YXRlIHJlYWRvbmx5IGF1dGhDb25maWc6IEF1dGhDb25maWcpIHt9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHsgQXV0aERlZmF1bHRDb25maWcsIEF1dGhDb25maWcsIGluamVjdEF1dGhDb25maWcsIHByb3ZpZGVBdXRoQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoJ0F1dGgnLCAnQG9keC9hdXRoJywge1xuICBlbnZpcm9ubWVudDogJ3Byb2QnLFxuICByZWRpcmVjdFBhdGg6ICdsb2dpbi9jYWxsYmFjaycsXG4gIGFsbG93ZWRVcmxzOiBbXSxcbiAgdGltZW91dEZhY3RvcjogMC43NSxcbiAgbWF4T2ZmbGluZVRpbWU6IDI0ICogNjAgKiA2MCwgLy8gMSBkYXlcbiAgbG9hZFVzZXJQcm9maWxlOiBmYWxzZSxcbiAgZXJyb3JIYW5kbGVyOiAoZXJyb3IpID0+IHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSxcbiAgY3JlYXRlSW5pdGlhbHMsXG4gIHJlc29sdmVFbWFpbCxcbiAgcmVzb2x2ZVVzZXJuYW1lLFxuICBwbHVnaW5zOiBbXSxcbiAgZGVmYXVsdEF1dGhvcml6ZWRIYW5kbGVyOiBudWxsLFxuICBlbmFibGVMb2FkaW5nU2NyZWVuOiB0cnVlLFxuICBsb2FkaW5nU2NyZWVuTWVzc2FnZTogbnVsbCxcbiAgd2FpdEZvclRva2VuSW5NczogMTAwMCxcbn0gYXMgQXV0aENvbmZpZyk7XG4iXX0=
|
|
@@ -9,8 +9,18 @@ export class AuthDirective {
|
|
|
9
9
|
this.authService = inject(AuthService);
|
|
10
10
|
this.ngIfDirective = inject(NgIf, { host: true });
|
|
11
11
|
this.takeUntilDestroyed = untilDestroyed();
|
|
12
|
+
/**
|
|
13
|
+
* The authorization handler or a string representing the handler.
|
|
14
|
+
*
|
|
15
|
+
* @type {AuthorizedHandler | null | string}
|
|
16
|
+
*/
|
|
12
17
|
this.authorizationHandler = null;
|
|
13
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Sets the template to be displayed when the authorization check fails.
|
|
21
|
+
*
|
|
22
|
+
* @param {TemplateRef<NgIfContext<unknown>>} value - The template reference.
|
|
23
|
+
*/
|
|
14
24
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
15
25
|
set elseTemplate(value) {
|
|
16
26
|
this.ngIfDirective.ngIfElse = value;
|
|
@@ -38,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
38
48
|
type: Input,
|
|
39
49
|
args: ['odxAuthElse']
|
|
40
50
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVE3QyxNQUFNLE9BQU8sYUFBYTtJQUwxQjtRQU1tQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV2RDs7OztXQUlHO1FBRUkseUJBQW9CLEdBQXVDLElBQUksQ0FBQztLQW1CeEU7SUFqQkM7Ozs7T0FJRztJQUNILDJEQUEyRDtJQUMzRCxJQUNXLFlBQVksQ0FBQyxLQUF3QztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3ZGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E3QlUsYUFBYTttR0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUx6QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ3ZCOzhCQVlRLG9CQUFvQjtzQkFEMUIsS0FBSzt1QkFBQyxTQUFTO2dCQVVMLFlBQVk7c0JBRHRCLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nSWZDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzU3RyaW5nLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhvcml6ZWRIYW5kbGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtvZHhBdXRoXScsXG4gIGhvc3REaXJlY3RpdmVzOiBbTmdJZl0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmdJZkRpcmVjdGl2ZSA9IGluamVjdChOZ0lmLCB7IGhvc3Q6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICAvKipcbiAgICogVGhlIGF1dGhvcml6YXRpb24gaGFuZGxlciBvciBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIEB0eXBlIHtBdXRob3JpemVkSGFuZGxlciB8IG51bGwgfCBzdHJpbmd9XG4gICAqL1xuICBASW5wdXQoJ29keEF1dGgnKVxuICBwdWJsaWMgYXV0aG9yaXphdGlvbkhhbmRsZXI/OiBBdXRob3JpemVkSGFuZGxlciB8IG51bGwgfCBzdHJpbmcgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0ZW1wbGF0ZSB0byBiZSBkaXNwbGF5ZWQgd2hlbiB0aGUgYXV0aG9yaXphdGlvbiBjaGVjayBmYWlscy5cbiAgICpcbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxOZ0lmQ29udGV4dDx1bmtub3duPj59IHZhbHVlIC0gVGhlIHRlbXBsYXRlIHJlZmVyZW5jZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2R4QXV0aEVsc2UnKVxuICBwdWJsaWMgc2V0IGVsc2VUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8TmdJZkNvbnRleHQ8dW5rbm93bj4+KSB7XG4gICAgdGhpcy5uZ0lmRGlyZWN0aXZlLm5nSWZFbHNlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aFNlcnZpY2UuaWRlbnRpdHlDbGFpbXMkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSBpc1N0cmluZyh0aGlzLmF1dGhvcml6YXRpb25IYW5kbGVyKSA/IG51bGwgOiB0aGlzLmF1dGhvcml6YXRpb25IYW5kbGVyO1xuICAgICAgdGhpcy5uZ0lmRGlyZWN0aXZlLm5nSWYgPSB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aG9yaXplZChoYW5kbGVyKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -4,6 +4,14 @@ import { WindowRef } from '@odx/angular';
|
|
|
4
4
|
import { isString } from '@odx/angular/utils';
|
|
5
5
|
import { EMPTY, of, switchMap, take, tap } from 'rxjs';
|
|
6
6
|
import { AuthService } from './auth.service';
|
|
7
|
+
/**
|
|
8
|
+
* Guard function to protect routes from unauthorized access.
|
|
9
|
+
*
|
|
10
|
+
* @param {AuthorizedHandler} [authorizedHandler] - Optional handler to check if the user is authorized.
|
|
11
|
+
* @param {string | any[]} [redirectTo] - Optional URL or route to redirect unauthorized users to. Can be a string or an array of strings.
|
|
12
|
+
* @param {boolean} [isExternal=false] - Optional flag to indicate if the redirection should be external. Defaults to false.
|
|
13
|
+
* @returns {CanActivateFn} A function that implements the CanActivateFn interface.
|
|
14
|
+
*/
|
|
7
15
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
16
|
export function authGuard(authorizedHandler, redirectTo, isExternal = false) {
|
|
9
17
|
return (_, state) => {
|
|
@@ -33,4 +41,4 @@ export function authGuard(authorizedHandler, redirectTo, isExternal = false) {
|
|
|
33
41
|
}), take(1));
|
|
34
42
|
};
|
|
35
43
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3Qzs7Ozs7OztHQU9HO0FBQ0gsOERBQThEO0FBQzlELE1BQU0sVUFBVSxTQUFTLENBQUMsaUJBQXFDLEVBQUUsVUFBMkIsRUFBRSxVQUFVLEdBQUcsS0FBSztJQUM5RyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWxELE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNyQixXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFOUIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxZQUFZLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDcEMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRU1QVFksIG9mLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBdXRob3JpemVkSGFuZGxlciB9IGZyb20gJy4vbW9kZWxzJztcblxuLyoqXG4gKiBHdWFyZCBmdW5jdGlvbiB0byBwcm90ZWN0IHJvdXRlcyBmcm9tIHVuYXV0aG9yaXplZCBhY2Nlc3MuXG4gKlxuICogQHBhcmFtIHtBdXRob3JpemVkSGFuZGxlcn0gW2F1dGhvcml6ZWRIYW5kbGVyXSAtIE9wdGlvbmFsIGhhbmRsZXIgdG8gY2hlY2sgaWYgdGhlIHVzZXIgaXMgYXV0aG9yaXplZC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgYW55W119IFtyZWRpcmVjdFRvXSAtIE9wdGlvbmFsIFVSTCBvciByb3V0ZSB0byByZWRpcmVjdCB1bmF1dGhvcml6ZWQgdXNlcnMgdG8uIENhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNFeHRlcm5hbD1mYWxzZV0gLSBPcHRpb25hbCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSByZWRpcmVjdGlvbiBzaG91bGQgYmUgZXh0ZXJuYWwuIERlZmF1bHRzIHRvIGZhbHNlLlxuICogQHJldHVybnMge0NhbkFjdGl2YXRlRm59IEEgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBDYW5BY3RpdmF0ZUZuIGludGVyZmFjZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBhdXRoR3VhcmQoYXV0aG9yaXplZEhhbmRsZXI/OiBBdXRob3JpemVkSGFuZGxlciwgcmVkaXJlY3RUbz86IGFueVtdIHwgc3RyaW5nLCBpc0V4dGVybmFsID0gZmFsc2UpOiBDYW5BY3RpdmF0ZUZuIHtcbiAgcmV0dXJuIChfLCBzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgICBjb25zdCB3aW5kb3dSZWYgPSBpbmplY3QoV2luZG93UmVmKTtcbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcmV0dXJuIGF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoaXNBdXRoZW50aWNhdGVkKSA9PiB7XG4gICAgICAgIGlmICghaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgYXV0aFNlcnZpY2Uuc2lnbkluKHN0YXRlLnVybCk7XG5cbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKGF1dGhTZXJ2aWNlLmlzQXV0aG9yaXplZChhdXRob3JpemVkSGFuZGxlcikpO1xuICAgICAgfSksXG4gICAgICB0YXAoKGlzQXV0aG9yaXplZCkgPT4ge1xuICAgICAgICBpZiAoaXNBdXRob3JpemVkIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICAgICAgaWYgKGlzU3RyaW5nKHJlZGlyZWN0VG8pKSB7XG4gICAgICAgICAgaWYgKGlzRXh0ZXJuYWwpIHtcbiAgICAgICAgICAgIHdpbmRvd1JlZi5sb2NhdGlvbi5hc3NpZ24ocmVkaXJlY3RUbyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJlZGlyZWN0VG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlZGlyZWN0VG8pKSB7XG4gICAgICAgICAgcm91dGVyLm5hdmlnYXRlKHJlZGlyZWN0VG8pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -5,6 +5,13 @@ import { mergeMap } from 'rxjs';
|
|
|
5
5
|
import { injectAuthConfig } from './auth.config';
|
|
6
6
|
import { AuthService } from './auth.service';
|
|
7
7
|
export const requireAuthentication = new HttpContextToken(() => false);
|
|
8
|
+
/**
|
|
9
|
+
* Interceptor to handle authentication for HTTP requests.
|
|
10
|
+
*
|
|
11
|
+
* This interceptor checks if the request URL is allowed or if the request requires authentication.
|
|
12
|
+
* If the URL is not allowed and the request does not require authentication, it simply forwards the request.
|
|
13
|
+
* Otherwise, it prepares the authentication request using the AuthService.
|
|
14
|
+
*/
|
|
8
15
|
export const authInterceptor = (req, next) => {
|
|
9
16
|
const { allowedUrls, requireSignInForRequests } = injectAuthConfig();
|
|
10
17
|
const isUrlAllowed = allowedUrls.some((allowedUrl) => matchUrl(req.url, allowedUrl));
|
|
@@ -13,4 +20,4 @@ export const authInterceptor = (req, next) => {
|
|
|
13
20
|
}
|
|
14
21
|
return inject(AuthService).prepareAuthRequest$(req, requireSignInForRequests).pipe(mergeMap(next));
|
|
15
22
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGdCQUFnQixDQUFVLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRWhGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDOUQsTUFBTSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNyRixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENvbnRleHRUb2tlbiwgSHR0cEludGVyY2VwdG9yRm4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hdGNoVXJsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVBdXRoZW50aWNhdGlvbiA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IGZhbHNlKTtcblxuLyoqXG4gKiBJbnRlcmNlcHRvciB0byBoYW5kbGUgYXV0aGVudGljYXRpb24gZm9yIEhUVFAgcmVxdWVzdHMuXG4gKlxuICogVGhpcyBpbnRlcmNlcHRvciBjaGVja3MgaWYgdGhlIHJlcXVlc3QgVVJMIGlzIGFsbG93ZWQgb3IgaWYgdGhlIHJlcXVlc3QgcmVxdWlyZXMgYXV0aGVudGljYXRpb24uXG4gKiBJZiB0aGUgVVJMIGlzIG5vdCBhbGxvd2VkIGFuZCB0aGUgcmVxdWVzdCBkb2VzIG5vdCByZXF1aXJlIGF1dGhlbnRpY2F0aW9uLCBpdCBzaW1wbHkgZm9yd2FyZHMgdGhlIHJlcXVlc3QuXG4gKiBPdGhlcndpc2UsIGl0IHByZXBhcmVzIHRoZSBhdXRoZW50aWNhdGlvbiByZXF1ZXN0IHVzaW5nIHRoZSBBdXRoU2VydmljZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxLCBuZXh0KSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dlZFVybHMsIHJlcXVpcmVTaWduSW5Gb3JSZXF1ZXN0cyB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICBjb25zdCBpc1VybEFsbG93ZWQgPSBhbGxvd2VkVXJscy5zb21lKChhbGxvd2VkVXJsKSA9PiBtYXRjaFVybChyZXEudXJsLCBhbGxvd2VkVXJsKSk7XG4gIGlmICghaXNVcmxBbGxvd2VkICYmICFyZXEuY29udGV4dC5nZXQocmVxdWlyZUF1dGhlbnRpY2F0aW9uKSkge1xuICAgIHJldHVybiBuZXh0KHJlcSk7XG4gIH1cblxuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5wcmVwYXJlQXV0aFJlcXVlc3QkKHJlcSwgcmVxdWlyZVNpZ25JbkZvclJlcXVlc3RzKS5waXBlKG1lcmdlTWFwKG5leHQpKTtcbn07XG4iXX0=
|
|
@@ -43,6 +43,11 @@ export const ODX_AUTH_PLUGINS = new InjectionToken('@odx/auth::Plugins', {
|
|
|
43
43
|
return [...corePlugins, ...plugins].map((pluginFactory) => pluginFactory());
|
|
44
44
|
},
|
|
45
45
|
});
|
|
46
|
+
/**
|
|
47
|
+
* Provides a logger for the authentication module.
|
|
48
|
+
*
|
|
49
|
+
* @returns {Provider} - The provider for the logger.
|
|
50
|
+
*/
|
|
46
51
|
export function provideAuthLogger() {
|
|
47
52
|
return {
|
|
48
53
|
provide: ENVIRONMENT_INITIALIZER,
|
|
@@ -55,11 +60,19 @@ export function provideAuthLogger() {
|
|
|
55
60
|
multi: true,
|
|
56
61
|
};
|
|
57
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Initializes the authentication error handlers.
|
|
65
|
+
*/
|
|
58
66
|
export function initializeAuthErrorHandlers() {
|
|
59
67
|
const authService = inject(AuthService);
|
|
60
68
|
const handler = handleAuthError(inject(ODX_AUTH_ERROR_HANDLERS));
|
|
61
69
|
authService.errors$.pipe(tap((error) => handler(error))).subscribe();
|
|
62
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Initializes the authentication configuration.
|
|
73
|
+
*
|
|
74
|
+
* @returns {() => Promise<void>} - A function that returns a promise resolving when the configuration is initialized.
|
|
75
|
+
*/
|
|
63
76
|
export function initalizeAuthConfig() {
|
|
64
77
|
const { clientId, scopes, redirectPath, environment, postLogoutRedirectUrl, issuer, timeoutFactor, discoveryUrl, enableLoadingScreen } = injectAuthConfig();
|
|
65
78
|
const authService = inject(AuthService);
|
|
@@ -82,6 +95,27 @@ export function initalizeAuthConfig() {
|
|
|
82
95
|
waitForTokenInMsec: 1000,
|
|
83
96
|
});
|
|
84
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Provides the authentication configuration and dependencies.
|
|
100
|
+
*
|
|
101
|
+
* @param {ConfigProvider<Partial<AuthConfig>, D>} config - The configuration provider.
|
|
102
|
+
* @returns {EnvironmentProviders} The environment providers for authentication.
|
|
103
|
+
* @template D
|
|
104
|
+
*
|
|
105
|
+
* @example Provide the authentication configuration and dependencies
|
|
106
|
+
* ```ts
|
|
107
|
+
* providers: [
|
|
108
|
+
* provideAuth({
|
|
109
|
+
* useFactory: ({ environment, auth: { clientId, loadUserProfile } }: ApplicationEnvironment) => ({
|
|
110
|
+
* environment,
|
|
111
|
+
* clientId,
|
|
112
|
+
* loadUserProfile,
|
|
113
|
+
* }),
|
|
114
|
+
* deps: [APPLICATION_ENVIRONMENT],
|
|
115
|
+
* }),
|
|
116
|
+
* ],
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
85
119
|
export function provideAuth(config) {
|
|
86
120
|
return makeEnvironmentProviders([
|
|
87
121
|
provideAuthConfig(config),
|
|
@@ -99,4 +133,4 @@ export function provideAuth(config) {
|
|
|
99
133
|
},
|
|
100
134
|
]);
|
|
101
135
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUF3QixjQUFjLEVBQVksTUFBTSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFzQyxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQWtDLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBeUQsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FB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QUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVk7U0FDNUY7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvdmlkZUh0dHBDbGllbnQsIHdpdGhJbnRlcmNlcHRvcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEVOVklST05NRU5UX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IENvbmZpZ0RlcGVuZGVuY2llcywgQ29uZmlnUHJvdmlkZXIsIGJ1aWxkVXJsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9BdXRoU3RvcmFnZSwgcHJvdmlkZU9BdXRoQ2xpZW50IH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhDb25maWcsIEF1dGhFcnJvckhhbmRsZXJGbiwgT0RYX0FVVEhfREVGQVVMVF9TQ09QRVMsIGluamVjdEF1dGhDb25maWcsIHByb3ZpZGVBdXRoQ29uZmlnIH0gZnJvbSAnLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBhdXRoSW50ZXJjZXB0b3IgfSBmcm9tICcuL2F1dGguaW50ZXJjZXB0b3InO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2F1dGgubG9nZ2VyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgY3JlYXRlQXV0aEhvc3RVcmwsIGhhbmRsZUF1dGhFcnJvciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBBdXRoUGx1Z2luLCBBdXRoUGx1Z2luRXJyb3JIYW5kbGVyLCBBdXRoUGx1Z2luRmFjdG9yeSwgb2ZmbGluZUF1dGhFcnJvckhhbmRsZXIgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBjb3JlRGVidWdQbHVnaW4sIGNvcmVJZGVudGl0eVBsdWdpbiwgdXNlclByb2ZpbGVVcmxQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMnO1xuXG5leHBvcnQgY29uc3QgT0RYX0FVVEhfRVJST1JfSEFORExFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aEVycm9ySGFuZGxlckZuW10+KCdAb2R4L2F1dGg6OkVycm9ySGFuZGxlcnMnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IHsgZXJyb3JIYW5kbGVyIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG5cbiAgICByZXR1cm4gW29mZmxpbmVBdXRoRXJyb3JIYW5kbGVyLCBlcnJvckhhbmRsZXJdO1xuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBPRFhfQVVUSF9QTFVHSU5TX0VSUk9SX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aFBsdWdpbkVycm9ySGFuZGxlciB8IG51bGw+KCdAb2R4L2F1dGg6OlBsdWdpbnNFcnJvckhhbmRsZXInLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gaW5qZWN0QXV0aENvbmZpZygpLnBsdWdpbnNFcnJvckhhbmRsZXIgPz8gbnVsbCxcbn0pO1xuXG5leHBvcnQgY29uc3QgT0RYX0FVVEhfQ09SRV9QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQbHVnaW5GYWN0b3J5W10+KCdAb2R4L2F1dGg6OkNvcmVQbHVnaW5zJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCB7IHNob3dEZWJ1Z0luZm9ybWF0aW9uIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gICAgY29uc3QgcGx1Z2lucyA9IFtjb3JlSWRlbnRpdHlQbHVnaW4sIHVzZXJQcm9maWxlVXJsUGx1Z2luXTtcbiAgICBpZiAoc2hvd0RlYnVnSW5mb3JtYXRpb24pIHtcbiAgICAgIHBsdWdpbnMucHVzaChjb3JlRGVidWdQbHVnaW4pO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVnaW5zO1xuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBPRFhfQVVUSF9QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQbHVnaW5bXT4oJ0BvZHgvYXV0aDo6UGx1Z2lucycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgY29uc3QgeyBwbHVnaW5zIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gICAgY29uc3QgY29yZVBsdWdpbnMgPSBpbmplY3QoT0RYX0FVVEhfQ09SRV9QTFVHSU5TKTtcblxuICAgIHJldHVybiBbLi4uY29yZVBsdWdpbnMsIC4uLnBsdWdpbnNdLm1hcCgocGx1Z2luRmFjdG9yeSkgPT4gcGx1Z2luRmFjdG9yeSgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUF1dGhMb2dnZXIoKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgc2hvd0RlYnVnSW5mb3JtYXRpb24gfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgICAgIGlmICghc2hvd0RlYnVnSW5mb3JtYXRpb24pIGxvZ2dlci5kaXNhYmxlKCk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB2b2lkIDA7XG4gICAgfSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVBdXRoRXJyb3JIYW5kbGVycygpOiB2b2lkIHtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBjb25zdCBoYW5kbGVyID0gaGFuZGxlQXV0aEVycm9yKGluamVjdChPRFhfQVVUSF9FUlJPUl9IQU5ETEVSUykpO1xuXG4gIGF1dGhTZXJ2aWNlLmVycm9ycyQucGlwZSh0YXAoKGVycm9yKSA9PiBoYW5kbGVyKGVycm9yKSkpLnN1YnNjcmliZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGFsaXplQXV0aENvbmZpZygpOiAoKSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBjbGllbnRJZCwgc2NvcGVzLCByZWRpcmVjdFBhdGgsIGVudmlyb25tZW50LCBwb3N0TG9nb3V0UmVkaXJlY3RVcmwsIGlzc3VlciwgdGltZW91dEZhY3RvciwgZGlzY292ZXJ5VXJsLCBlbmFibGVMb2FkaW5nU2NyZWVuIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgY29uc3QgcmVkaXJlY3RVcmkgPSBidWlsZFVybChpbmplY3QoV2luZG93UmVmKS5nZXRPcmlnaW4oKSwgcmVkaXJlY3RQYXRoKTtcbiAgY29uc3Qgc2NvcGUgPSBBcnJheS5mcm9tKG5ldyBTZXQoT0RYX0FVVEhfREVGQVVMVF9TQ09QRVMuY29uY2F0KHNjb3BlcyA/PyBbXSkpKS5qb2luKCcgJyk7XG4gIGlmIChlbmFibGVMb2FkaW5nU2NyZWVuKSB7XG4gICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5pdGlhbGl6ZShhdXRoU2VydmljZSwgaW5qZWN0KER5bmFtaWNWaWV3U2VydmljZSkpO1xuICB9XG4gIHJldHVybiAoKSA9PlxuICAgIGF1dGhTZXJ2aWNlLmluaXRpYWxpemUoe1xuICAgICAgY2xpZW50SWQsXG4gICAgICBpc3N1ZXI6IGlzc3VlciA/PyBjcmVhdGVBdXRoSG9zdFVybChlbnZpcm9ubWVudCwgJ29hdXRoMi9kZWZhdWx0JyksXG4gICAgICBzY29wZSxcbiAgICAgIHJlZGlyZWN0VXJpLFxuICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBwb3N0TG9nb3V0UmVkaXJlY3RVcmwsXG4gICAgICBwcmVzZXJ2ZVJlcXVlc3RlZFJvdXRlOiB0cnVlLFxuICAgICAgc3RyaWN0RGlzY292ZXJ5RG9jdW1lbnRWYWxpZGF0aW9uOiAhZGlzY292ZXJ5VXJsLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnY29kZScsXG4gICAgICBzaG93RGVidWdJbmZvcm1hdGlvbjogZmFsc2UsXG4gICAgICB0aW1lb3V0RmFjdG9yLFxuICAgICAgd2FpdEZvclRva2VuSW5Nc2VjOiAxMDAwLFxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUF1dGg8RCBleHRlbmRzIENvbmZpZ0RlcGVuZGVuY2llcz4oY29uZmlnOiBDb25maWdQcm92aWRlcjxQYXJ0aWFsPEF1dGhDb25maWc+LCBEPik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgcHJvdmlkZUF1dGhDb25maWcoY29uZmlnKSxcbiAgICBwcm92aWRlQXV0aExvZ2dlcigpLFxuICAgIHByb3ZpZGVPQXV0aENsaWVudCh7IHJlc291cmNlU2VydmVyOiB7IHNlbmRBY2Nlc3NUb2tlbjogZmFsc2UsIGFsbG93ZWRVcmxzOiBbXSB9IH0pLFxuICAgIHByb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnMoW2F1dGhJbnRlcmNlcHRvcl0pKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiBpbml0YWxpemVBdXRoQ29uZmlnLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBPQXV0aFN0b3JhZ2UsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBpbmplY3RBdXRoQ29uZmlnKCkuc3RvcmFnZSA/PyBpbmplY3QoV2luZG93UmVmKS5uYXRpdmVXaW5kb3cubG9jYWxTdG9yYWdlLFxuICAgIH0sXG4gIF0pO1xufVxuIl19
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUF3QixjQUFjLEVBQVksTUFBTSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFzQyxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQWtDLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBeUQsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FB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UUFDbkYsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3REO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsWUFBWTtZQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZO1NBQzVGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoSW50ZXJjZXB0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBEeW5hbWljVmlld1NlcnZpY2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDb25maWdEZXBlbmRlbmNpZXMsIENvbmZpZ1Byb3ZpZGVyLCBidWlsZFVybCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPQXV0aFN0b3JhZ2UsIHByb3ZpZGVPQXV0aENsaWVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBBdXRoRXJyb3JIYW5kbGVyRm4sIE9EWF9BVVRIX0RFRkFVTFRfU0NPUEVTLCBpbmplY3RBdXRoQ29uZmlnLCBwcm92aWRlQXV0aENvbmZpZyB9IGZyb20gJy4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgYXV0aEludGVyY2VwdG9yIH0gZnJvbSAnLi9hdXRoLmludGVyY2VwdG9yJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi9hdXRoLmxvZ2dlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IGNyZWF0ZUF1dGhIb3N0VXJsLCBoYW5kbGVBdXRoRXJyb3IgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbiwgQXV0aFBsdWdpbkVycm9ySGFuZGxlciwgQXV0aFBsdWdpbkZhY3RvcnksIG9mZmxpbmVBdXRoRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY29yZURlYnVnUGx1Z2luLCBjb3JlSWRlbnRpdHlQbHVnaW4sIHVzZXJQcm9maWxlVXJsUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zJztcblxuZXhwb3J0IGNvbnN0IE9EWF9BVVRIX0VSUk9SX0hBTkRMRVJTID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhFcnJvckhhbmRsZXJGbltdPignQG9keC9hdXRoOjpFcnJvckhhbmRsZXJzJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCB7IGVycm9ySGFuZGxlciB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuXG4gICAgcmV0dXJuIFtvZmZsaW5lQXV0aEVycm9ySGFuZGxlciwgZXJyb3JIYW5kbGVyXTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgT0RYX0FVVEhfUExVR0lOU19FUlJPUl9IQU5ETEVSID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQbHVnaW5FcnJvckhhbmRsZXIgfCBudWxsPignQG9keC9hdXRoOjpQbHVnaW5zRXJyb3JIYW5kbGVyJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IGluamVjdEF1dGhDb25maWcoKS5wbHVnaW5zRXJyb3JIYW5kbGVyID8/IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IE9EWF9BVVRIX0NPUkVfUExVR0lOUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRoUGx1Z2luRmFjdG9yeVtdPignQG9keC9hdXRoOjpDb3JlUGx1Z2lucycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgY29uc3QgeyBzaG93RGVidWdJbmZvcm1hdGlvbiB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSBbY29yZUlkZW50aXR5UGx1Z2luLCB1c2VyUHJvZmlsZVVybFBsdWdpbl07XG4gICAgaWYgKHNob3dEZWJ1Z0luZm9ybWF0aW9uKSB7XG4gICAgICBwbHVnaW5zLnB1c2goY29yZURlYnVnUGx1Z2luKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGx1Z2lucztcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgT0RYX0FVVEhfUExVR0lOUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRoUGx1Z2luW10+KCdAb2R4L2F1dGg6OlBsdWdpbnMnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IHsgcGx1Z2lucyB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICAgIGNvbnN0IGNvcmVQbHVnaW5zID0gaW5qZWN0KE9EWF9BVVRIX0NPUkVfUExVR0lOUyk7XG5cbiAgICByZXR1cm4gWy4uLmNvcmVQbHVnaW5zLCAuLi5wbHVnaW5zXS5tYXAoKHBsdWdpbkZhY3RvcnkpID0+IHBsdWdpbkZhY3RvcnkoKSk7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBhIGxvZ2dlciBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIG1vZHVsZS5cbiAqXG4gKiBAcmV0dXJucyB7UHJvdmlkZXJ9IC0gVGhlIHByb3ZpZGVyIGZvciB0aGUgbG9nZ2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUF1dGhMb2dnZXIoKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgc2hvd0RlYnVnSW5mb3JtYXRpb24gfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgICAgIGlmICghc2hvd0RlYnVnSW5mb3JtYXRpb24pIGxvZ2dlci5kaXNhYmxlKCk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB2b2lkIDA7XG4gICAgfSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgYXV0aGVudGljYXRpb24gZXJyb3IgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplQXV0aEVycm9ySGFuZGxlcnMoKTogdm9pZCB7XG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgY29uc3QgaGFuZGxlciA9IGhhbmRsZUF1dGhFcnJvcihpbmplY3QoT0RYX0FVVEhfRVJST1JfSEFORExFUlMpKTtcblxuICBhdXRoU2VydmljZS5lcnJvcnMkLnBpcGUodGFwKChlcnJvcikgPT4gaGFuZGxlcihlcnJvcikpKS5zdWJzY3JpYmUoKTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAcmV0dXJucyB7KCkgPT4gUHJvbWlzZTx2b2lkPn0gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gaXMgaW5pdGlhbGl6ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0YWxpemVBdXRoQ29uZmlnKCk6ICgpID0+IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGNsaWVudElkLCBzY29wZXMsIHJlZGlyZWN0UGF0aCwgZW52aXJvbm1lbnQsIHBvc3RMb2dvdXRSZWRpcmVjdFVybCwgaXNzdWVyLCB0aW1lb3V0RmFjdG9yLCBkaXNjb3ZlcnlVcmwsIGVuYWJsZUxvYWRpbmdTY3JlZW4gfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBjb25zdCByZWRpcmVjdFVyaSA9IGJ1aWxkVXJsKGluamVjdChXaW5kb3dSZWYpLmdldE9yaWdpbigpLCByZWRpcmVjdFBhdGgpO1xuICBjb25zdCBzY29wZSA9IEFycmF5LmZyb20obmV3IFNldChPRFhfQVVUSF9ERUZBVUxUX1NDT1BFUy5jb25jYXQoc2NvcGVzID8/IFtdKSkpLmpvaW4oJyAnKTtcbiAgaWYgKGVuYWJsZUxvYWRpbmdTY3JlZW4pIHtcbiAgICBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudC5pbml0aWFsaXplKGF1dGhTZXJ2aWNlLCBpbmplY3QoRHluYW1pY1ZpZXdTZXJ2aWNlKSk7XG4gIH1cbiAgcmV0dXJuICgpID0+XG4gICAgYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZSh7XG4gICAgICBjbGllbnRJZCxcbiAgICAgIGlzc3VlcjogaXNzdWVyID8/IGNyZWF0ZUF1dGhIb3N0VXJsKGVudmlyb25tZW50LCAnb2F1dGgyL2RlZmF1bHQnKSxcbiAgICAgIHNjb3BlLFxuICAgICAgcmVkaXJlY3RVcmksXG4gICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IHBvc3RMb2dvdXRSZWRpcmVjdFVybCxcbiAgICAgIHByZXNlcnZlUmVxdWVzdGVkUm91dGU6IHRydWUsXG4gICAgICBzdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb246ICFkaXNjb3ZlcnlVcmwsXG4gICAgICByZXNwb25zZVR5cGU6ICdjb2RlJyxcbiAgICAgIHNob3dEZWJ1Z0luZm9ybWF0aW9uOiBmYWxzZSxcbiAgICAgIHRpbWVvdXRGYWN0b3IsXG4gICAgICB3YWl0Rm9yVG9rZW5Jbk1zZWM6IDEwMDAsXG4gICAgfSk7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24gYW5kIGRlcGVuZGVuY2llcy5cbiAqXG4gKiBAcGFyYW0ge0NvbmZpZ1Byb3ZpZGVyPFBhcnRpYWw8QXV0aENvbmZpZz4sIEQ+fSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBwcm92aWRlci5cbiAqIEByZXR1cm5zIHtFbnZpcm9ubWVudFByb3ZpZGVyc30gVGhlIGVudmlyb25tZW50IHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb24uXG4gKiBAdGVtcGxhdGUgRFxuICpcbiAqIEBleGFtcGxlIFByb3ZpZGUgdGhlIGF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24gYW5kIGRlcGVuZGVuY2llc1xuICogYGBgdHNcbiAqIHByb3ZpZGVyczogW1xuICogIHByb3ZpZGVBdXRoKHtcbiAqICAgdXNlRmFjdG9yeTogKHsgZW52aXJvbm1lbnQsIGF1dGg6IHsgY2xpZW50SWQsIGxvYWRVc2VyUHJvZmlsZSB9IH06IEFwcGxpY2F0aW9uRW52aXJvbm1lbnQpID0+ICh7XG4gKiAgICAgZW52aXJvbm1lbnQsXG4gKiAgICAgY2xpZW50SWQsXG4gKiAgICAgbG9hZFVzZXJQcm9maWxlLFxuICogICB9KSxcbiAqICAgZGVwczogW0FQUExJQ0FUSU9OX0VOVklST05NRU5UXSxcbiAqICB9KSxcbiAqIF0sXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBdXRoPEQgZXh0ZW5kcyBDb25maWdEZXBlbmRlbmNpZXM+KGNvbmZpZzogQ29uZmlnUHJvdmlkZXI8UGFydGlhbDxBdXRoQ29uZmlnPiwgRD4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHByb3ZpZGVBdXRoQ29uZmlnKGNvbmZpZyksXG4gICAgcHJvdmlkZUF1dGhMb2dnZXIoKSxcbiAgICBwcm92aWRlT0F1dGhDbGllbnQoeyByZXNvdXJjZVNlcnZlcjogeyBzZW5kQWNjZXNzVG9rZW46IGZhbHNlLCBhbGxvd2VkVXJsczogW10gfSB9KSxcbiAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzKFthdXRoSW50ZXJjZXB0b3JdKSksXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogaW5pdGFsaXplQXV0aENvbmZpZyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogT0F1dGhTdG9yYWdlLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gaW5qZWN0QXV0aENvbmZpZygpLnN0b3JhZ2UgPz8gaW5qZWN0KFdpbmRvd1JlZikubmF0aXZlV2luZG93LmxvY2FsU3RvcmFnZSxcbiAgICB9LFxuICBdKTtcbn1cbiJdfQ==
|