@odx/auth 1.0.0-alpha.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/README.md +38 -0
- package/esm2020/index.mjs +10 -0
- package/esm2020/lib/auth.component.mjs +50 -0
- package/esm2020/lib/auth.config.mjs +8 -0
- package/esm2020/lib/auth.interceptor.mjs +25 -0
- package/esm2020/lib/auth.module.mjs +28 -0
- package/esm2020/lib/auth.providers.mjs +50 -0
- package/esm2020/lib/auth.service.mjs +37 -0
- package/esm2020/lib/directives/index.mjs +3 -0
- package/esm2020/lib/directives/sign-in.directive.mjs +38 -0
- package/esm2020/lib/directives/sign-out.directive.mjs +38 -0
- package/esm2020/lib/helpers/get-user-initials.mjs +12 -0
- package/esm2020/lib/helpers/index.mjs +3 -0
- package/esm2020/lib/helpers/resolve-issuer.mjs +13 -0
- package/esm2020/lib/models/auth-environment.mjs +2 -0
- package/esm2020/lib/models/index.mjs +3 -0
- package/esm2020/lib/models/user.mjs +2 -0
- package/esm2020/odx-auth.mjs +5 -0
- package/fesm2015/odx-auth.mjs +283 -0
- package/fesm2015/odx-auth.mjs.map +1 -0
- package/fesm2020/odx-auth.mjs +273 -0
- package/fesm2020/odx-auth.mjs.map +1 -0
- package/index.d.ts +9 -0
- package/lib/auth.component.d.ts +12 -0
- package/lib/auth.config.d.ts +12 -0
- package/lib/auth.interceptor.d.ts +11 -0
- package/lib/auth.module.d.ts +14 -0
- package/lib/auth.providers.d.ts +6 -0
- package/lib/auth.service.d.ts +19 -0
- package/lib/directives/index.d.ts +2 -0
- package/lib/directives/sign-in.directive.d.ts +12 -0
- package/lib/directives/sign-out.directive.d.ts +12 -0
- package/lib/helpers/get-user-initials.d.ts +2 -0
- package/lib/helpers/index.d.ts +2 -0
- package/lib/helpers/resolve-issuer.d.ts +2 -0
- package/lib/models/auth-environment.d.ts +1 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/user.d.ts +4 -0
- package/package.json +37 -0
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# @odx/auth
|
|
2
|
+
|
|
3
|
+
[<img src="https://img.shields.io/npm/v/@odx/angular" />](https://npmjs.org/package/@odx/auth)
|
|
4
|
+
[<img src="https://img.shields.io/npm/dependency-version/@odx/auth/peer/@odx/angular" />](https://npmjs.org/package/@odx/angular)
|
|
5
|
+
|
|
6
|
+
### Install 🚀
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
npm install @odx/auth
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
### Usage
|
|
13
|
+
|
|
14
|
+
Import the `AuthModule` from `@odx/auth` and add it to the application imports with configuration:
|
|
15
|
+
|
|
16
|
+
```TS
|
|
17
|
+
@NgModule({
|
|
18
|
+
imports: [
|
|
19
|
+
AuthModule.forRoot({
|
|
20
|
+
environment: 'dev',
|
|
21
|
+
clientId: '<oktaClientId>',
|
|
22
|
+
scopes: ['offline_access'],
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
})
|
|
26
|
+
export class AppModule {
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
In order to add the UI for signing in and out, add the `odx-auth` component to the `odx-header`:
|
|
31
|
+
|
|
32
|
+
```HTML
|
|
33
|
+
<odx-header>
|
|
34
|
+
<odx-auth>
|
|
35
|
+
<!-- custom content -->
|
|
36
|
+
</odx-auth>
|
|
37
|
+
</odx-header>
|
|
38
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { OktaAuthGuard as AuthGuard } from '@okta/okta-angular';
|
|
2
|
+
export * from './lib/auth.component';
|
|
3
|
+
export * from './lib/auth.config';
|
|
4
|
+
export * from './lib/auth.interceptor';
|
|
5
|
+
export * from './lib/auth.module';
|
|
6
|
+
export * from './lib/auth.providers';
|
|
7
|
+
export * from './lib/auth.service';
|
|
8
|
+
export * from './lib/directives';
|
|
9
|
+
export * from './lib/helpers';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLElBQUksU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE9rdGFBdXRoR3VhcmQgYXMgQXV0aEd1YXJkIH0gZnJvbSAnQG9rdGEvb2t0YS1hbmd1bGFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { CoreModule } from '@odx/angular';
|
|
4
|
+
import { AreaHeaderModule } from '@odx/angular/components/area-header';
|
|
5
|
+
import { DropdownModule } from '@odx/angular/components/dropdown';
|
|
6
|
+
import { HeaderModule } from '@odx/angular/components/header';
|
|
7
|
+
import { LogoDirective } from '@odx/angular/components/logo';
|
|
8
|
+
import { Pure } from '@odx/angular/utils';
|
|
9
|
+
import { injectAuthModuleConfig } from './auth.config';
|
|
10
|
+
import { AuthService } from './auth.service';
|
|
11
|
+
import { SignInDirective, SignOutDirective } from './directives';
|
|
12
|
+
import { getUserInitials } from './helpers';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@odx/angular";
|
|
16
|
+
import * as i3 from "@odx/angular/components/area-header";
|
|
17
|
+
import * as i4 from "@odx/angular/components/avatar";
|
|
18
|
+
import * as i5 from "@odx/angular/components/action-group";
|
|
19
|
+
import * as i6 from "@odx/angular/components/button";
|
|
20
|
+
import * as i7 from "@odx/angular/components/icon";
|
|
21
|
+
import * as i8 from "@odx/angular/components/dropdown";
|
|
22
|
+
import * as i9 from "@odx/angular/components/header";
|
|
23
|
+
export class AuthComponent {
|
|
24
|
+
constructor() {
|
|
25
|
+
this.config = injectAuthModuleConfig();
|
|
26
|
+
this.authService = inject(AuthService);
|
|
27
|
+
this.signInButtonText = 'Sign in';
|
|
28
|
+
this.signOutButtonText = 'Sign out';
|
|
29
|
+
}
|
|
30
|
+
getInitials(user) {
|
|
31
|
+
return getUserInitials(user);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
AuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
AuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: AuthComponent, isStandalone: true, selector: "odx-auth", inputs: { signInButtonText: "signInButtonText", signOutButtonText: "signOutButtonText" }, ngImport: i0, template: "<odx-action-group *odxLet=\"authService.user$ | async as user\">\n <ng-template [ngIf]=\"authService.isAuthenticated$ | async\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton odxHeaderAvatar [odxDropdown]=\"userProfileMenu\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n </button>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"primary\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n <h2 class=\"odx-title\">{{ user?.name }}</h2>\n <h5 class=\"odx-subtitle\">{{ user?.email_address }}</h5>\n </odx-area-header>\n <ng-content></ng-content>\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\">\n {{ signOutButtonText }}\n <odx-icon name=\"arrow-right\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n</odx-action-group>\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: "directive", type: i2.LetDirective, selector: "ng-template[odxLet]", inputs: ["odxLet"] }, { kind: "ngmodule", type: AreaHeaderModule }, { kind: "component", type: i3.AreaHeaderComponent, selector: "odx-area-header", inputs: ["size"] }, { 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"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i8.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: HeaderModule }, { kind: "directive", type: i9.HeaderAvatarDirective, selector: "button[odxButton][odxHeaderAvatar]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
36
|
+
__decorate([
|
|
37
|
+
Pure,
|
|
38
|
+
__metadata("design:type", Function),
|
|
39
|
+
__metadata("design:paramtypes", [Object]),
|
|
40
|
+
__metadata("design:returntype", String)
|
|
41
|
+
], AuthComponent.prototype, "getInitials", null);
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ standalone: true, selector: 'odx-auth', imports: [CoreModule, AreaHeaderModule, DropdownModule, HeaderModule, LogoDirective, SignInDirective, SignOutDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<odx-action-group *odxLet=\"authService.user$ | async as user\">\n <ng-template [ngIf]=\"authService.isAuthenticated$ | async\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton odxHeaderAvatar [odxDropdown]=\"userProfileMenu\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n </button>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"primary\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n <h2 class=\"odx-title\">{{ user?.name }}</h2>\n <h5 class=\"odx-subtitle\">{{ user?.email_address }}</h5>\n </odx-area-header>\n <ng-content></ng-content>\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\">\n {{ signOutButtonText }}\n <odx-icon name=\"arrow-right\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n</odx-action-group>\n" }]
|
|
45
|
+
}], propDecorators: { signInButtonText: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], signOutButtonText: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], getInitials: [] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7QUFXNUMsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTcUIsV0FBTSxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFHOUMscUJBQWdCLEdBQUcsU0FBUyxDQUFDO1FBRzdCLHNCQUFpQixHQUFHLFVBQVUsQ0FBQztLQU12QztJQUhRLFdBQVcsQ0FBQyxJQUFrQjtRQUNuQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOzswR0FiVSxhQUFhOzhGQUFiLGFBQWEsOEpDckIxQiw0eUNBZ0NBLDJDRGhCWSxVQUFVLDBSQUFFLGdCQUFnQixxakJBQUUsY0FBYyx5ZEFBRSxZQUFZLHNJQUFFLGFBQWEsa0ZBQUUsZUFBZSxtR0FBRSxnQkFBZ0I7QUFldEg7SUFBQyxJQUFJOzs7O2dEQUdKOzJGQWJVLGFBQWE7a0JBUnpCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFVBQVUsV0FDWCxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsbUJBRXRHLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTzlCLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEFyZWFIZWFkZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hcmVhLWhlYWRlcic7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEhlYWRlck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlcic7XG5pbXBvcnQgeyBMb2dvRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9nbyc7XG5pbXBvcnQgeyBQdXJlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGluamVjdEF1dGhNb2R1bGVDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbkluRGlyZWN0aXZlLCBTaWduT3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IGdldFVzZXJJbml0aWFscyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtYXV0aCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBBcmVhSGVhZGVyTW9kdWxlLCBEcm9wZG93bk1vZHVsZSwgSGVhZGVyTW9kdWxlLCBMb2dvRGlyZWN0aXZlLCBTaWduSW5EaXJlY3RpdmUsIFNpZ25PdXREaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdEF1dGhNb2R1bGVDb25maWcoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lnbkluQnV0dG9uVGV4dCA9ICdTaWduIGluJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lnbk91dEJ1dHRvblRleHQgPSAnU2lnbiBvdXQnO1xuXG4gIEBQdXJlXG4gIHB1YmxpYyBnZXRJbml0aWFscyh1c2VyPzogVXNlciB8IG51bGwpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRVc2VySW5pdGlhbHModXNlcik7XG4gIH1cbn1cbiIsIjxvZHgtYWN0aW9uLWdyb3VwICpvZHhMZXQ9XCJhdXRoU2VydmljZS51c2VyJCB8IGFzeW5jIGFzIHVzZXJcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQgfCBhc3luY1wiIFtuZ0lmRWxzZV09XCJub3RBdXRoZW50aWNhdGVkXCI+XG4gICAgPGJ1dHRvbiBvZHhCdXR0b24gb2R4SGVhZGVyQXZhdGFyIFtvZHhEcm9wZG93bl09XCJ1c2VyUHJvZmlsZU1lbnVcIj5cbiAgICAgIDxvZHgtYXZhdGFyPlxuICAgICAgICB7eyBnZXRJbml0aWFscyh1c2VyKSB9fVxuICAgICAgPC9vZHgtYXZhdGFyPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI25vdEF1dGhlbnRpY2F0ZWQ+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9keC1hdXRoLXNpZ24taW5cIiBvZHhCdXR0b24gb2R4QXV0aFNpZ25JbiB2YXJpYW50PVwicHJpbWFyeVwiPlxuICAgICAgPG9keC1pY29uIG5hbWU9XCJ1c2VyXCIgYWxpZ25MZWZ0Pjwvb2R4LWljb24+XG4gICAgICB7eyBzaWduSW5CdXR0b25UZXh0IH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjdXNlclByb2ZpbGVNZW51PlxuICAgIDxvZHgtYXJlYS1oZWFkZXIgY2xhc3M9XCJvZHgtcGFkZGluZy14LTEyXCIgc2l6ZT1cInNtYWxsXCI+XG4gICAgICA8b2R4LWF2YXRhcj5cbiAgICAgICAge3sgZ2V0SW5pdGlhbHModXNlcikgfX1cbiAgICAgIDwvb2R4LWF2YXRhcj5cbiAgICAgIDxoMiBjbGFzcz1cIm9keC10aXRsZVwiPnt7IHVzZXI/Lm5hbWUgfX08L2gyPlxuICAgICAgPGg1IGNsYXNzPVwib2R4LXN1YnRpdGxlXCI+e3sgdXNlcj8uZW1haWxfYWRkcmVzcyB9fTwvaDU+XG4gICAgPC9vZHgtYXJlYS1oZWFkZXI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtbWFyZ2luLXRvcC0xMlwiIG9keExheW91dD1cImZsZXggdmVydGljYWwtY2VudGVyXCI+XG4gICAgICA8b2R4LWxvZ28gb2R4TGF5b3V0PVwiYXV0b1wiIGNsYXNzPVwib2R4LW1hcmdpbi1sZWZ0LTEyIG9keC1tYXJnaW4tcmlnaHQtYXV0b1wiPjwvb2R4LWxvZ28+XG4gICAgICA8YnV0dG9uIG9keEJ1dHRvbiBvZHhBdXRoU2lnbk91dCB2YXJpYW50PVwiZ2hvc3RcIj5cbiAgICAgICAge3sgc2lnbk91dEJ1dHRvblRleHQgfX1cbiAgICAgICAgPG9keC1pY29uIG5hbWU9XCJhcnJvdy1yaWdodFwiIGFsaWduUmlnaHQ+PC9vZHgtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createModuleConfigTokens } from '@odx/angular/utils';
|
|
2
|
+
export const DEFAULT_AUTH_SCOPES = ['openid', 'profile'];
|
|
3
|
+
export const { AuthDefaultModuleConfig, AuthModuleConfig, injectAuthModuleConfig } = createModuleConfigTokens('Auth', '@odx/auth', {
|
|
4
|
+
environment: 'prod',
|
|
5
|
+
redirectPath: 'login/callback',
|
|
6
|
+
disallowedOrigins: [],
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUs5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztBQVd6RCxNQUFNLENBQUMsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtJQUNqSSxXQUFXLEVBQUUsTUFBTTtJQUNuQixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLGlCQUFpQixFQUFFLEVBQUU7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVNb2R1bGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5pbXBvcnQgeyBPa3RhQXV0aE9wdGlvbnMgfSBmcm9tICdAb2t0YS9va3RhLWF1dGgtanMnO1xuaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIX1NDT1BFUyA9IFsnb3BlbmlkJywgJ3Byb2ZpbGUnXTtcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoTW9kdWxlQ29uZmlnIGV4dGVuZHMgUGljazxPa3RhQXV0aE9wdGlvbnMsICdjbGllbnRJZCcgfCAnc2NvcGVzJz4ge1xuICBlbnZpcm9ubWVudDogQXV0aEVudmlyb25tZW50O1xuICByZWRpcmVjdFBhdGg6IHN0cmluZztcbiAgc2lnblVwVXJsPzogc3RyaW5nO1xuICBkaXNhbGxvd2VkT3JpZ2luczogc3RyaW5nW107XG4gIHBvc3RMb2dvdXRSZWRpcmVjdFBhdGg/OiBzdHJpbmc7XG4gIGlzc3Vlck92ZXJyaWRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgeyBBdXRoRGVmYXVsdE1vZHVsZUNvbmZpZywgQXV0aE1vZHVsZUNvbmZpZywgaW5qZWN0QXV0aE1vZHVsZUNvbmZpZyB9ID0gY3JlYXRlTW9kdWxlQ29uZmlnVG9rZW5zKCdBdXRoJywgJ0BvZHgvYXV0aCcsIHtcbiAgZW52aXJvbm1lbnQ6ICdwcm9kJyxcbiAgcmVkaXJlY3RQYXRoOiAnbG9naW4vY2FsbGJhY2snLFxuICBkaXNhbGxvd2VkT3JpZ2luczogW10sXG59IGFzIEF1dGhNb2R1bGVDb25maWcpO1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { injectAuthModuleConfig } from './auth.config';
|
|
3
|
+
import { AuthService } from './auth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AuthInterceptor {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.config = injectAuthModuleConfig();
|
|
8
|
+
this.authService = inject(AuthService);
|
|
9
|
+
}
|
|
10
|
+
intercept(request, next) {
|
|
11
|
+
return next.handle(this.addAuthHeader(request));
|
|
12
|
+
}
|
|
13
|
+
addAuthHeader(request) {
|
|
14
|
+
if (!this.config.disallowedOrigins.find((origin) => !!request.url.match(origin))) {
|
|
15
|
+
return request.clone({ setHeaders: this.authService.getAuthHeader() });
|
|
16
|
+
}
|
|
17
|
+
return request;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
|
+
AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthInterceptor });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthInterceptor, decorators: [{
|
|
23
|
+
type: Injectable
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFbUIsV0FBTSxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FZcEQ7SUFWUSxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUMvRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxhQUFhLENBQUMsT0FBNkI7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtZQUNoRixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDeEU7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs0R0FiVSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdEF1dGhNb2R1bGVDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3RBdXRoTW9kdWxlQ29uZmlnKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuXG4gIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5hZGRBdXRoSGVhZGVyKHJlcXVlc3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQXV0aEhlYWRlcihyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPik6IEh0dHBSZXF1ZXN0PHVua25vd24+IHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmRpc2FsbG93ZWRPcmlnaW5zLmZpbmQoKG9yaWdpbikgPT4gISFyZXF1ZXN0LnVybC5tYXRjaChvcmlnaW4pKSkge1xuICAgICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoeyBzZXRIZWFkZXJzOiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhIZWFkZXIoKSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { provideModuleConfig } from '@odx/angular/utils';
|
|
3
|
+
import { OktaAuthModule } from '@okta/okta-angular';
|
|
4
|
+
import { AuthComponent } from './auth.component';
|
|
5
|
+
import { AuthModuleConfig } from './auth.config';
|
|
6
|
+
import authProviders from './auth.providers';
|
|
7
|
+
import { SignInDirective, SignOutDirective } from './directives';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const modules = [AuthComponent, SignInDirective, SignOutDirective];
|
|
10
|
+
export class AuthModule {
|
|
11
|
+
static forRoot(config) {
|
|
12
|
+
return {
|
|
13
|
+
ngModule: AuthModule,
|
|
14
|
+
providers: [provideModuleConfig(AuthModuleConfig, config), ...authProviders],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, imports: [AuthComponent, SignInDirective, SignOutDirective], exports: [OktaAuthModule, AuthComponent, SignInDirective, SignOutDirective] });
|
|
20
|
+
AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, imports: [AuthComponent, OktaAuthModule] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, decorators: [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
imports: [...modules],
|
|
25
|
+
exports: [OktaAuthModule, ...modules],
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQWtELG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFakUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFNbkUsTUFBTSxPQUFPLFVBQVU7SUFDZCxNQUFNLENBQUMsT0FBTyxDQUFxQyxNQUEwRDtRQUNsSCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFVBQVU7WUFDcEIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUM7U0FDN0UsQ0FBQztJQUNKLENBQUM7O3VHQU5VLFVBQVU7d0dBQVYsVUFBVSxZQU5OLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLGFBSXJELGNBQWMsRUFKVCxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQjt3R0FNcEQsVUFBVSxZQU5OLGFBQWEsRUFJbEIsY0FBYzsyRkFFYixVQUFVO2tCQUp0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ0RlcGVuZGVuY2llcywgTW9kdWxlQ29uZmlnUHJvdmlkZXIsIHByb3ZpZGVNb2R1bGVDb25maWcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT2t0YUF1dGhNb2R1bGUgfSBmcm9tICdAb2t0YS9va3RhLWFuZ3VsYXInO1xuaW1wb3J0IHsgQXV0aENvbXBvbmVudCB9IGZyb20gJy4vYXV0aC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vYXV0aC5jb25maWcnO1xuaW1wb3J0IGF1dGhQcm92aWRlcnMgZnJvbSAnLi9hdXRoLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTaWduSW5EaXJlY3RpdmUsIFNpZ25PdXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG5jb25zdCBtb2R1bGVzID0gW0F1dGhDb21wb25lbnQsIFNpZ25JbkRpcmVjdGl2ZSwgU2lnbk91dERpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5tb2R1bGVzXSxcbiAgZXhwb3J0czogW09rdGFBdXRoTW9kdWxlLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdDxEIGV4dGVuZHMgTW9kdWxlQ29uZmlnRGVwZW5kZW5jaWVzPihjb25maWc6IE1vZHVsZUNvbmZpZ1Byb3ZpZGVyPFBhcnRpYWw8QXV0aE1vZHVsZUNvbmZpZz4sIEQ+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBdXRoTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBdXRoTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZU1vZHVsZUNvbmZpZyhBdXRoTW9kdWxlQ29uZmlnLCBjb25maWcpLCAuLi5hdXRoUHJvdmlkZXJzXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
2
|
+
import { APP_INITIALIZER, inject } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { WindowRef } from '@odx/angular';
|
|
5
|
+
import { buildUrl } from '@odx/angular/utils';
|
|
6
|
+
import { OktaCallbackComponent, OKTA_CONFIG } from '@okta/okta-angular';
|
|
7
|
+
import { OktaAuth } from '@okta/okta-auth-js';
|
|
8
|
+
import { DEFAULT_AUTH_SCOPES, injectAuthModuleConfig } from './auth.config';
|
|
9
|
+
import { AuthInterceptor } from './auth.interceptor';
|
|
10
|
+
import { resolveIssuer } from './helpers';
|
|
11
|
+
export function registerAuthCallbackRoute() {
|
|
12
|
+
const { redirectPath } = injectAuthModuleConfig();
|
|
13
|
+
const router = inject(Router);
|
|
14
|
+
return () => {
|
|
15
|
+
router.config.unshift({ path: redirectPath, component: OktaCallbackComponent });
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function initalizeAuthConfig() {
|
|
19
|
+
const { clientId, scopes, redirectPath, environment, postLogoutRedirectPath, issuerOverride } = injectAuthModuleConfig();
|
|
20
|
+
const origin = inject(WindowRef).getOrigin();
|
|
21
|
+
const postLogoutRedirectUri = postLogoutRedirectPath ? buildUrl(origin, postLogoutRedirectPath) : undefined;
|
|
22
|
+
return {
|
|
23
|
+
oktaAuth: new OktaAuth({
|
|
24
|
+
issuer: resolveIssuer(environment, issuerOverride),
|
|
25
|
+
clientId,
|
|
26
|
+
redirectUri: buildUrl(origin, redirectPath),
|
|
27
|
+
scopes: Array.from(new Set(DEFAULT_AUTH_SCOPES.concat(scopes ?? []))),
|
|
28
|
+
pkce: true,
|
|
29
|
+
devMode: environment === 'dev',
|
|
30
|
+
postLogoutRedirectUri,
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export default [
|
|
35
|
+
{
|
|
36
|
+
provide: APP_INITIALIZER,
|
|
37
|
+
useFactory: registerAuthCallbackRoute,
|
|
38
|
+
multi: true,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
provide: OKTA_CONFIG,
|
|
42
|
+
useFactory: initalizeAuthConfig,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
provide: HTTP_INTERCEPTORS,
|
|
46
|
+
useClass: AuthInterceptor,
|
|
47
|
+
multi: true,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFjLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUIsT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDekgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdDLE1BQU0scUJBQXFCLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRTVHLE9BQU87UUFDTCxRQUFRLEVBQUUsSUFBSSxRQUFRLENBQUM7WUFDckIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1lBQ2xELFFBQVE7WUFDUixXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUM7WUFDM0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLFdBQVcsS0FBSyxLQUFLO1lBQzlCLHFCQUFxQjtTQUN0QixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxlQUFlO0lBQ2I7UUFDRSxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUseUJBQXlCO1FBQ3JDLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLFVBQVUsRUFBRSxtQkFBbUI7S0FDaEM7SUFDRDtRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsUUFBUSxFQUFFLGVBQWU7UUFDekIsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgaW5qZWN0LCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBidWlsZFVybCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPa3RhQ2FsbGJhY2tDb21wb25lbnQsIE9rdGFDb25maWcsIE9LVEFfQ09ORklHIH0gZnJvbSAnQG9rdGEvb2t0YS1hbmd1bGFyJztcbmltcG9ydCB7IE9rdGFBdXRoIH0gZnJvbSAnQG9rdGEvb2t0YS1hdXRoLWpzJztcbmltcG9ydCB7IERFRkFVTFRfQVVUSF9TQ09QRVMsIGluamVjdEF1dGhNb2R1bGVDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJy4vYXV0aC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyByZXNvbHZlSXNzdWVyIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQXV0aENhbGxiYWNrUm91dGUoKTogKCkgPT4gdm9pZCB7XG4gIGNvbnN0IHsgcmVkaXJlY3RQYXRoIH0gPSBpbmplY3RBdXRoTW9kdWxlQ29uZmlnKCk7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgcm91dGVyLmNvbmZpZy51bnNoaWZ0KHsgcGF0aDogcmVkaXJlY3RQYXRoLCBjb21wb25lbnQ6IE9rdGFDYWxsYmFja0NvbXBvbmVudCB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRhbGl6ZUF1dGhDb25maWcoKTogT2t0YUNvbmZpZyB7XG4gIGNvbnN0IHsgY2xpZW50SWQsIHNjb3BlcywgcmVkaXJlY3RQYXRoLCBlbnZpcm9ubWVudCwgcG9zdExvZ291dFJlZGlyZWN0UGF0aCwgaXNzdWVyT3ZlcnJpZGUgfSA9IGluamVjdEF1dGhNb2R1bGVDb25maWcoKTtcbiAgY29uc3Qgb3JpZ2luID0gaW5qZWN0KFdpbmRvd1JlZikuZ2V0T3JpZ2luKCk7XG4gIGNvbnN0IHBvc3RMb2dvdXRSZWRpcmVjdFVyaSA9IHBvc3RMb2dvdXRSZWRpcmVjdFBhdGggPyBidWlsZFVybChvcmlnaW4sIHBvc3RMb2dvdXRSZWRpcmVjdFBhdGgpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgb2t0YUF1dGg6IG5ldyBPa3RhQXV0aCh7XG4gICAgICBpc3N1ZXI6IHJlc29sdmVJc3N1ZXIoZW52aXJvbm1lbnQsIGlzc3Vlck92ZXJyaWRlKSxcbiAgICAgIGNsaWVudElkLFxuICAgICAgcmVkaXJlY3RVcmk6IGJ1aWxkVXJsKG9yaWdpbiwgcmVkaXJlY3RQYXRoKSxcbiAgICAgIHNjb3BlczogQXJyYXkuZnJvbShuZXcgU2V0KERFRkFVTFRfQVVUSF9TQ09QRVMuY29uY2F0KHNjb3BlcyA/PyBbXSkpKSxcbiAgICAgIHBrY2U6IHRydWUsXG4gICAgICBkZXZNb2RlOiBlbnZpcm9ubWVudCA9PT0gJ2RldicsXG4gICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmksXG4gICAgfSksXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFtcbiAge1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiByZWdpc3RlckF1dGhDYWxsYmFja1JvdXRlLFxuICAgIG11bHRpOiB0cnVlLFxuICB9LFxuICB7XG4gICAgcHJvdmlkZTogT0tUQV9DT05GSUcsXG4gICAgdXNlRmFjdG9yeTogaW5pdGFsaXplQXV0aENvbmZpZyxcbiAgfSxcbiAge1xuICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgIHVzZUNsYXNzOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgbXVsdGk6IHRydWUsXG4gIH0sXG5dIGFzIFByb3ZpZGVyW107XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { OktaAuthStateService, OKTA_AUTH } from '@okta/okta-angular';
|
|
3
|
+
import { map, shareReplay } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AuthService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.auth = inject(OKTA_AUTH);
|
|
8
|
+
this.authState = inject(OktaAuthStateService);
|
|
9
|
+
this.isAuthenticated$ = this.authState.authState$.pipe(map(({ isAuthenticated }) => !!isAuthenticated), shareReplay({ refCount: true }));
|
|
10
|
+
this.user$ = this.authState.authState$.pipe(map(({ idToken }) => idToken?.claims ?? null), shareReplay({ refCount: true }));
|
|
11
|
+
}
|
|
12
|
+
async signIn() {
|
|
13
|
+
await this.auth.signInWithRedirect();
|
|
14
|
+
}
|
|
15
|
+
async signOut() {
|
|
16
|
+
await this.auth.signOut();
|
|
17
|
+
}
|
|
18
|
+
getAccessToken() {
|
|
19
|
+
return this.auth.getAccessToken() ?? null;
|
|
20
|
+
}
|
|
21
|
+
getRefreshToken() {
|
|
22
|
+
return this.auth.getRefreshToken() ?? null;
|
|
23
|
+
}
|
|
24
|
+
getAuthHeader() {
|
|
25
|
+
return { Authorization: `Bearer ${this.getAccessToken()}` };
|
|
26
|
+
}
|
|
27
|
+
hasAnyGroups$(groups) {
|
|
28
|
+
return this.authState.hasAnyGroups(groups);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthService, decorators: [{
|
|
34
|
+
type: Injectable,
|
|
35
|
+
args: [{ providedIn: 'root' }]
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJcEQsTUFBTSxPQUFPLFdBQVc7SUFEeEI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFMUMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQy9DLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO1FBQ2MsVUFBSyxHQUE0QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzdFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLEVBQzdDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0tBeUJIO0lBdkJRLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFTSxhQUFhLENBQUMsTUFBb0Q7UUFDdkUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDOzt3R0FuQ1UsV0FBVzs0R0FBWCxXQUFXLGNBREUsTUFBTTsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9rdGFBdXRoU3RhdGVTZXJ2aWNlLCBPS1RBX0FVVEggfSBmcm9tICdAb2t0YS9va3RhLWFuZ3VsYXInO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vbW9kZWxzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChPS1RBX0FVVEgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTdGF0ZSA9IGluamVjdChPa3RhQXV0aFN0YXRlU2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLmF1dGhTdGF0ZS5hdXRoU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh7IGlzQXV0aGVudGljYXRlZCB9KSA9PiAhIWlzQXV0aGVudGljYXRlZCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8VXNlciB8IG51bGw+ID0gdGhpcy5hdXRoU3RhdGUuYXV0aFN0YXRlJC5waXBlKFxuICAgIG1hcCgoeyBpZFRva2VuIH0pID0+IGlkVG9rZW4/LmNsYWltcyA/PyBudWxsKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcHVibGljIGFzeW5jIHNpZ25JbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmF1dGguc2lnbkluV2l0aFJlZGlyZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmF1dGguc2lnbk91dCgpO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmF1dGguZ2V0QWNjZXNzVG9rZW4oKSA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoLmdldFJlZnJlc2hUb2tlbigpID8/IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXV0aEhlYWRlcigpOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtzdHJpbmd9YCB9IHtcbiAgICByZXR1cm4geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5nZXRBY2Nlc3NUb2tlbigpfWAgfTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNBbnlHcm91cHMkKGdyb3Vwczogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU3RhdGUuaGFzQW55R3JvdXBzKGdyb3Vwcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './sign-in.directive';
|
|
2
|
+
export * from './sign-out.directive';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2lnbi1pbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduLW91dC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';
|
|
2
|
+
import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
|
|
3
|
+
import { AuthService } from '../auth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@odx/angular/components/loading-spinner";
|
|
6
|
+
export class SignInDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.authService = inject(AuthService);
|
|
9
|
+
this.loadingSpinnerDirective = inject(LoadingSpinnerDirective, { self: true });
|
|
10
|
+
// eslint-disable-next-line @angular-eslint/no-output-rename
|
|
11
|
+
this.afterSignIn = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.loadingSpinnerDirective.autoColor = true;
|
|
15
|
+
}
|
|
16
|
+
async signIn() {
|
|
17
|
+
this.loadingSpinnerDirective.isLoading = true;
|
|
18
|
+
await this.authService.signIn();
|
|
19
|
+
this.afterSignIn.emit();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
SignInDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignInDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
+
SignInDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SignInDirective, isStandalone: true, selector: "[odxButton][odxAuthSignIn]", outputs: { afterSignIn: "odxAuthSignIn" }, host: { listeners: { "click": "signIn()" } }, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignInDirective, decorators: [{
|
|
25
|
+
type: Directive,
|
|
26
|
+
args: [{
|
|
27
|
+
standalone: true,
|
|
28
|
+
selector: '[odxButton][odxAuthSignIn]',
|
|
29
|
+
hostDirectives: [LoadingSpinnerDirective],
|
|
30
|
+
}]
|
|
31
|
+
}], propDecorators: { afterSignIn: [{
|
|
32
|
+
type: Output,
|
|
33
|
+
args: ['odxAuthSignIn']
|
|
34
|
+
}], signIn: [{
|
|
35
|
+
type: HostListener,
|
|
36
|
+
args: ['click']
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL3NpZ24taW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTzlDLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBTW1CLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNGLDREQUE0RDtRQUVyRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FZL0M7SUFWUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDaEQsQ0FBQztJQUdTLEtBQUssQ0FBQyxNQUFNO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzlDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7OzRHQWpCVSxlQUFlO2dHQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQzFDOzhCQU9RLFdBQVc7c0JBRGpCLE1BQU07dUJBQUMsZUFBZTtnQkFRUCxNQUFNO3NCQURyQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhCdXR0b25dW29keEF1dGhTaWduSW5dJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25JbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTcGlubmVyRGlyZWN0aXZlID0gaW5qZWN0KExvYWRpbmdTcGlubmVyRGlyZWN0aXZlLCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gIEBPdXRwdXQoJ29keEF1dGhTaWduSW4nKVxuICBwdWJsaWMgYWZ0ZXJTaWduSW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1NwaW5uZXJEaXJlY3RpdmUuYXV0b0NvbG9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIGFzeW5jIHNpZ25JbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmdTcGlubmVyRGlyZWN0aXZlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5hdXRoU2VydmljZS5zaWduSW4oKTtcbiAgICB0aGlzLmFmdGVyU2lnbkluLmVtaXQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';
|
|
2
|
+
import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
|
|
3
|
+
import { AuthService } from '../auth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@odx/angular/components/loading-spinner";
|
|
6
|
+
export class SignOutDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.authService = inject(AuthService);
|
|
9
|
+
this.loadingSpinnerDirective = inject(LoadingSpinnerDirective, { self: true });
|
|
10
|
+
// eslint-disable-next-line @angular-eslint/no-output-rename
|
|
11
|
+
this.afterSignOut = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.loadingSpinnerDirective.autoColor = true;
|
|
15
|
+
}
|
|
16
|
+
async signIn() {
|
|
17
|
+
this.loadingSpinnerDirective.isLoading = true;
|
|
18
|
+
await this.authService.signOut();
|
|
19
|
+
this.afterSignOut.emit();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
SignOutDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignOutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
+
SignOutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SignOutDirective, isStandalone: true, selector: "[odxButton][odxAuthSignOut]", outputs: { afterSignOut: "odxAuthSignOut" }, host: { listeners: { "click": "signIn()" } }, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignOutDirective, decorators: [{
|
|
25
|
+
type: Directive,
|
|
26
|
+
args: [{
|
|
27
|
+
standalone: true,
|
|
28
|
+
selector: '[odxButton][odxAuthSignOut]',
|
|
29
|
+
hostDirectives: [LoadingSpinnerDirective],
|
|
30
|
+
}]
|
|
31
|
+
}], propDecorators: { afterSignOut: [{
|
|
32
|
+
type: Output,
|
|
33
|
+
args: ['odxAuthSignOut']
|
|
34
|
+
}], signIn: [{
|
|
35
|
+
type: HostListener,
|
|
36
|
+
args: ['click']
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvZGlyZWN0aXZlcy9zaWduLW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFPOUMsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1tQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUzRiw0REFBNEQ7UUFFckQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBWWhEO0lBVlEsUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFHUyxLQUFLLENBQUMsTUFBTTtRQUNwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM5QyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs2R0FqQlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQzFDOzhCQU9RLFlBQVk7c0JBRGxCLE1BQU07dUJBQUMsZ0JBQWdCO2dCQVFSLE1BQU07c0JBRHJCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW29keEJ1dHRvbl1bb2R4QXV0aFNpZ25PdXRdJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25PdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSA9IGluamVjdChMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICBAT3V0cHV0KCdvZHhBdXRoU2lnbk91dCcpXG4gIHB1YmxpYyBhZnRlclNpZ25PdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1NwaW5uZXJEaXJlY3RpdmUuYXV0b0NvbG9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIGFzeW5jIHNpZ25JbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmdTcGlubmVyRGlyZWN0aXZlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5hdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgdGhpcy5hZnRlclNpZ25PdXQuZW1pdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function getUserInitials(user) {
|
|
2
|
+
if (!user?.name)
|
|
3
|
+
return '';
|
|
4
|
+
const names = user.name.trim().split(' ');
|
|
5
|
+
return names.reduce((initials, curr, index) => {
|
|
6
|
+
if (index === 0 || index === names.length - 1) {
|
|
7
|
+
initials = `${initials}${curr.charAt(0).toUpperCase()}`;
|
|
8
|
+
}
|
|
9
|
+
return initials;
|
|
10
|
+
}, '');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVzZXItaW5pdGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2dldC11c2VyLWluaXRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBa0I7SUFDaEQsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM1QyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdDLFFBQVEsR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7U0FDekQ7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VySW5pdGlhbHModXNlcj86IFVzZXIgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCF1c2VyPy5uYW1lKSByZXR1cm4gJyc7XG4gIGNvbnN0IG5hbWVzID0gdXNlci5uYW1lLnRyaW0oKS5zcGxpdCgnICcpO1xuXG4gIHJldHVybiBuYW1lcy5yZWR1Y2UoKGluaXRpYWxzLCBjdXJyLCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gMCB8fCBpbmRleCA9PT0gbmFtZXMubGVuZ3RoIC0gMSkge1xuICAgICAgaW5pdGlhbHMgPSBgJHtpbml0aWFsc30ke2N1cnIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxzO1xuICB9LCAnJyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './get-user-initials';
|
|
2
|
+
export * from './resolve-issuer';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LXVzZXItaW5pdGlhbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlLWlzc3Vlcic7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function resolveIssuer(environment, issuerOverride) {
|
|
2
|
+
if (issuerOverride)
|
|
3
|
+
return issuerOverride;
|
|
4
|
+
switch (environment) {
|
|
5
|
+
case 'dev':
|
|
6
|
+
return 'https://dev.login.draeger.com/oauth2/default';
|
|
7
|
+
case 'stage':
|
|
8
|
+
return 'https://test.login.draeger.com/oauth2/default';
|
|
9
|
+
default:
|
|
10
|
+
return 'https://login.draeger.com/oauth2/default';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1pc3N1ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3Jlc29sdmUtaXNzdWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBNEIsRUFBRSxjQUE4QjtJQUN4RixJQUFJLGNBQWM7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUMxQyxRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLEtBQUs7WUFDUixPQUFPLDhDQUE4QyxDQUFDO1FBQ3hELEtBQUssT0FBTztZQUNWLE9BQU8sK0NBQStDLENBQUM7UUFDekQ7WUFDRSxPQUFPLDBDQUEwQyxDQUFDO0tBQ3JEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSXNzdWVyKGVudmlyb25tZW50OiBBdXRoRW52aXJvbm1lbnQsIGlzc3Vlck92ZXJyaWRlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gIGlmIChpc3N1ZXJPdmVycmlkZSkgcmV0dXJuIGlzc3Vlck92ZXJyaWRlO1xuICBzd2l0Y2ggKGVudmlyb25tZW50KSB7XG4gICAgY2FzZSAnZGV2JzpcbiAgICAgIHJldHVybiAnaHR0cHM6Ly9kZXYubG9naW4uZHJhZWdlci5jb20vb2F1dGgyL2RlZmF1bHQnO1xuICAgIGNhc2UgJ3N0YWdlJzpcbiAgICAgIHJldHVybiAnaHR0cHM6Ly90ZXN0LmxvZ2luLmRyYWVnZXIuY29tL29hdXRoMi9kZWZhdWx0JztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdodHRwczovL2xvZ2luLmRyYWVnZXIuY29tL29hdXRoMi9kZWZhdWx0JztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBdXRoRW52aXJvbm1lbnQgPSAnZGV2JyB8ICdzdGFnZScgfCAncHJvZCc7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './auth-environment';
|
|
2
|
+
export * from './user';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0aC1lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyQ2xhaW1zIH0gZnJvbSAnQG9rdGEvb2t0YS1hdXRoLWpzJztcblxuZXhwb3J0IHR5cGUgVXNlciA9IFVzZXJDbGFpbXM8eyBlbWFpbF9hZGRyZXNzPzogc3RyaW5nIH0+O1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL29keC1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|