@fusionauth/angular-sdk 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/fusionauth-account.button/fusion-auth-account-button.component.mjs +18 -0
- package/esm2022/lib/components/fusionauth-login.button/fusion-auth-login-button.component.mjs +4 -4
- package/esm2022/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.mjs +4 -4
- package/esm2022/lib/components/fusionauth-register.button/fusion-auth-register-button.component.mjs +4 -4
- package/esm2022/lib/fusion-auth.module.mjs +12 -7
- package/esm2022/lib/fusion-auth.service.mjs +11 -4
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/sdkcore/SDKContext/SDKContext.mjs +1 -1
- package/esm2022/sdkcore/SDKCore/SDKCore.mjs +15 -5
- package/esm2022/sdkcore/UrlHelper/UrlHelper.mjs +11 -6
- package/esm2022/sdkcore/index.mjs +1 -2
- package/fesm2022/fusionauth-angular-sdk.mjs +69 -28
- package/fesm2022/fusionauth-angular-sdk.mjs.map +1 -1
- package/lib/components/fusionauth-account.button/fusion-auth-account-button.component.d.ts +9 -0
- package/lib/fusion-auth.module.d.ts +2 -1
- package/lib/fusion-auth.service.d.ts +10 -5
- package/lib/types.d.ts +5 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/sdkcore/SDKContext/SDKContext.d.ts +5 -1
- package/sdkcore/SDKCore/SDKCore.d.ts +7 -2
- package/sdkcore/UrlHelper/UrlHelper.d.ts +1 -0
- package/sdkcore/index.d.ts +1 -1
package/esm2022/lib/components/fusionauth-account.button/fusion-auth-account-button.component.mjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../fusion-auth.service";
|
|
4
|
+
export class FusionAuthAccountButtonComponent {
|
|
5
|
+
constructor(fusionAuth) {
|
|
6
|
+
this.fusionAuth = fusionAuth;
|
|
7
|
+
}
|
|
8
|
+
manageAccount() {
|
|
9
|
+
this.fusionAuth.manageAccount();
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthAccountButtonComponent, deps: [{ token: i1.FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthAccountButtonComponent, selector: "fa-account", ngImport: i0, template: "<button class=\"fa-button\" (click)=\"manageAccount()\">\n <span>manage account</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthAccountButtonComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'fa-account', template: "<button class=\"fa-button\" (click)=\"manageAccount()\">\n <span>manage account</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.FusionAuthService }] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgtYWNjb3VudC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvbGliL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1hY2NvdW50LmJ1dHRvbi9mdXNpb24tYXV0aC1hY2NvdW50LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy9mdXNpb25hdXRoLWFjY291bnQuYnV0dG9uL2Z1c2lvbi1hdXRoLWFjY291bnQtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVExQyxNQUFNLE9BQU8sZ0NBQWdDO0lBQzNDLFlBQW9CLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQUcsQ0FBQztJQUVyRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxDQUFDOytHQUxVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLGtEQ1I3QyxzR0FHQTs7NEZES2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnVzaW9uLWF1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhLWFjY291bnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnVzaW9uLWF1dGgtYWNjb3VudC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mdXNpb24tYXV0aC1hY2NvdW50LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGdXNpb25BdXRoQWNjb3VudEJ1dHRvbkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnVzaW9uQXV0aDogRnVzaW9uQXV0aFNlcnZpY2UpIHt9XG5cbiAgbWFuYWdlQWNjb3VudCgpIHtcbiAgICB0aGlzLmZ1c2lvbkF1dGgubWFuYWdlQWNjb3VudCgpO1xuICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiZmEtYnV0dG9uXCIgKGNsaWNrKT1cIm1hbmFnZUFjY291bnQoKVwiPlxuICA8c3Bhbj5tYW5hZ2UgYWNjb3VudDwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
|
package/esm2022/lib/components/fusionauth-login.button/fusion-auth-login-button.component.mjs
CHANGED
|
@@ -8,13 +8,13 @@ export class FusionAuthLoginButtonComponent {
|
|
|
8
8
|
login() {
|
|
9
9
|
this.fusionAuth.startLogin(this.state);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLoginButtonComponent, deps: [{ token: i1.FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthLoginButtonComponent, selector: "fa-login", inputs: { state: "state" }, ngImport: i0, template: "<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLoginButtonComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'fa-login', template: "<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }]
|
|
17
17
|
}], ctorParameters: () => [{ type: i1.FusionAuthService }], propDecorators: { state: [{
|
|
18
18
|
type: Input
|
|
19
19
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgtbG9naW4tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9jb21wb25lbnRzL2Z1c2lvbmF1dGgtbG9naW4uYnV0dG9uL2Z1c2lvbi1hdXRoLWxvZ2luLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy9mdXNpb25hdXRoLWxvZ2luLmJ1dHRvbi9mdXNpb24tYXV0aC1sb2dpbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFqRCxNQUFNLE9BQU8sOEJBQThCO0lBR3pDLFlBQW9CLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQUcsQ0FBQztJQUVyRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7K0dBUFUsOEJBQThCO21HQUE5Qiw4QkFBOEIsNEVDUjNDLHFGQUdBOzs0RkRLYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsVUFBVTtzRkFLWCxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGdXNpb25BdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2Z1c2lvbi1hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmYS1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mdXNpb24tYXV0aC1sb2dpbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mdXNpb24tYXV0aC1sb2dpbi1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnVzaW9uQXV0aExvZ2luQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZ1c2lvbkF1dGg6IEZ1c2lvbkF1dGhTZXJ2aWNlKSB7fVxuXG4gIGxvZ2luKCkge1xuICAgIHRoaXMuZnVzaW9uQXV0aC5zdGFydExvZ2luKHRoaXMuc3RhdGUpO1xuICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiZmEtYnV0dG9uXCIgKGNsaWNrKT1cImxvZ2luKClcIj5cbiAgPHNwYW4+TG9naW48L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
|
package/esm2022/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.mjs
CHANGED
|
@@ -8,11 +8,11 @@ export class FusionAuthLogoutButtonComponent {
|
|
|
8
8
|
logout() {
|
|
9
9
|
this.fusionAuth.logout();
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLogoutButtonComponent, deps: [{ token: i1.FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthLogoutButtonComponent, selector: "fa-logout", ngImport: i0, template: "<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n", styles: [".fa-logout-button{padding:7px 13px;border-radius:3px;display:block;border:solid 1px #083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:12px;text-align:center;color:#083b94}.fa-logout-button:hover{cursor:pointer}\n"] }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLogoutButtonComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'fa-logout', template: "<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n", styles: [".fa-logout-button{padding:7px 13px;border-radius:3px;display:block;border:solid 1px #083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:12px;text-align:center;color:#083b94}.fa-logout-button:hover{cursor:pointer}\n"] }]
|
|
17
17
|
}], ctorParameters: () => [{ type: i1.FusionAuthService }] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgtbG9nb3V0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy9mdXNpb25hdXRoLWxvZ291dC5idXR0b24vZnVzaW9uLWF1dGgtbG9nb3V0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy9mdXNpb25hdXRoLWxvZ291dC5idXR0b24vZnVzaW9uLWF1dGgtbG9nb3V0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRMUMsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFvQixVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUFHLENBQUM7SUFFckQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0FMVSwrQkFBK0I7bUdBQS9CLCtCQUErQixpRENSNUMsOEZBR0E7OzRGREthLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGdXNpb25BdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2Z1c2lvbi1hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmYS1sb2dvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnVzaW9uLWF1dGgtbG9nb3V0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Z1c2lvbi1hdXRoLWxvZ291dC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnVzaW9uQXV0aExvZ291dEJ1dHRvbkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnVzaW9uQXV0aDogRnVzaW9uQXV0aFNlcnZpY2UpIHt9XG5cbiAgbG9nb3V0KCkge1xuICAgIHRoaXMuZnVzaW9uQXV0aC5sb2dvdXQoKTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cImZhLWxvZ291dC1idXR0b25cIiAoY2xpY2spPVwibG9nb3V0KClcIj5cbiAgPHNwYW4+bG9nb3V0PC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
|
package/esm2022/lib/components/fusionauth-register.button/fusion-auth-register-button.component.mjs
CHANGED
|
@@ -8,13 +8,13 @@ export class FusionAuthRegisterButtonComponent {
|
|
|
8
8
|
register() {
|
|
9
9
|
this.fusionAuth.startRegistration(this.state);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthRegisterButtonComponent, deps: [{ token: i1.FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthRegisterButtonComponent, selector: "fa-register", inputs: { state: "state" }, ngImport: i0, template: "<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthRegisterButtonComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'fa-register', template: "<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }]
|
|
17
17
|
}], ctorParameters: () => [{ type: i1.FusionAuthService }], propDecorators: { state: [{
|
|
18
18
|
type: Input
|
|
19
19
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgtcmVnaXN0ZXItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9jb21wb25lbnRzL2Z1c2lvbmF1dGgtcmVnaXN0ZXIuYnV0dG9uL2Z1c2lvbi1hdXRoLXJlZ2lzdGVyLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvY29tcG9uZW50cy9mdXNpb25hdXRoLXJlZ2lzdGVyLmJ1dHRvbi9mdXNpb24tYXV0aC1yZWdpc3Rlci1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFqRCxNQUFNLE9BQU8saUNBQWlDO0lBRzVDLFlBQW9CLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQUcsQ0FBQztJQUVyRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0FQVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQywrRUNSOUMsK0ZBR0E7OzRGREthLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxhQUFhO3NGQUtkLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZ1c2lvbkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnVzaW9uLWF1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhLXJlZ2lzdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Z1c2lvbi1hdXRoLXJlZ2lzdGVyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Z1c2lvbi1hdXRoLXJlZ2lzdGVyLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGdXNpb25BdXRoUmVnaXN0ZXJCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBzdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnVzaW9uQXV0aDogRnVzaW9uQXV0aFNlcnZpY2UpIHt9XG5cbiAgcmVnaXN0ZXIoKSB7XG4gICAgdGhpcy5mdXNpb25BdXRoLnN0YXJ0UmVnaXN0cmF0aW9uKHRoaXMuc3RhdGUpO1xuICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiZmEtYnV0dG9uXCIgKGNsaWNrKT1cInJlZ2lzdGVyKClcIj5cbiAgPHNwYW4+UmVnaXN0ZXIgTm93PC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -4,6 +4,7 @@ import { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';
|
|
|
4
4
|
import { FusionAuthLoginButtonComponent } from './components/fusionauth-login.button/fusion-auth-login-button.component';
|
|
5
5
|
import { FusionAuthLogoutButtonComponent } from './components/fusionauth-logout.button/fusion-auth-logout-button.component';
|
|
6
6
|
import { FusionAuthRegisterButtonComponent } from './components/fusionauth-register.button/fusion-auth-register-button.component';
|
|
7
|
+
import { FusionAuthAccountButtonComponent } from './components/fusionauth-account.button/fusion-auth-account-button.component';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class FusionAuthModule {
|
|
9
10
|
static forRoot(fusionAuthConfig) {
|
|
@@ -15,28 +16,32 @@ export class FusionAuthModule {
|
|
|
15
16
|
],
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
19
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule, declarations: [FusionAuthLoginButtonComponent,
|
|
20
21
|
FusionAuthLogoutButtonComponent,
|
|
21
|
-
FusionAuthRegisterButtonComponent
|
|
22
|
+
FusionAuthRegisterButtonComponent,
|
|
23
|
+
FusionAuthAccountButtonComponent], exports: [FusionAuthLoginButtonComponent,
|
|
22
24
|
FusionAuthLogoutButtonComponent,
|
|
23
|
-
FusionAuthRegisterButtonComponent
|
|
24
|
-
|
|
25
|
+
FusionAuthRegisterButtonComponent,
|
|
26
|
+
FusionAuthAccountButtonComponent] }); }
|
|
27
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule }); }
|
|
25
28
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule, decorators: [{
|
|
27
30
|
type: NgModule,
|
|
28
31
|
args: [{
|
|
29
32
|
declarations: [
|
|
30
33
|
FusionAuthLoginButtonComponent,
|
|
31
34
|
FusionAuthLogoutButtonComponent,
|
|
32
35
|
FusionAuthRegisterButtonComponent,
|
|
36
|
+
FusionAuthAccountButtonComponent,
|
|
33
37
|
],
|
|
34
38
|
imports: [],
|
|
35
39
|
exports: [
|
|
36
40
|
FusionAuthLoginButtonComponent,
|
|
37
41
|
FusionAuthLogoutButtonComponent,
|
|
38
42
|
FusionAuthRegisterButtonComponent,
|
|
43
|
+
FusionAuthAccountButtonComponent,
|
|
39
44
|
],
|
|
40
45
|
}]
|
|
41
46
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvbGliL2Z1c2lvbi1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUNsSSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQzs7QUFpQi9ILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FDWixnQkFBa0M7UUFFbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDbEUsaUJBQWlCO2FBQ2xCO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBWFUsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBYnpCLDhCQUE4QjtZQUM5QiwrQkFBK0I7WUFDL0IsaUNBQWlDO1lBQ2pDLGdDQUFnQyxhQUloQyw4QkFBOEI7WUFDOUIsK0JBQStCO1lBQy9CLGlDQUFpQztZQUNqQyxnQ0FBZ0M7Z0hBR3ZCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFmNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUU7d0JBQ1AsOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3FCQUNqQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGdXNpb25BdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGdXNpb25BdXRoU2VydmljZSB9IGZyb20gJy4vZnVzaW9uLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBGVVNJT05BVVRIX1NFUlZJQ0VfQ09ORklHIH0gZnJvbSAnLi9pbmplY3Rpb25Ub2tlbic7XG5pbXBvcnQgeyBGdXNpb25BdXRoTG9naW5CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1sb2dpbi5idXR0b24vZnVzaW9uLWF1dGgtbG9naW4tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGdXNpb25BdXRoTG9nb3V0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Z1c2lvbmF1dGgtbG9nb3V0LmJ1dHRvbi9mdXNpb24tYXV0aC1sb2dvdXQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGdXNpb25BdXRoUmVnaXN0ZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1yZWdpc3Rlci5idXR0b24vZnVzaW9uLWF1dGgtcmVnaXN0ZXItYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGdXNpb25BdXRoQWNjb3VudEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdXNpb25hdXRoLWFjY291bnQuYnV0dG9uL2Z1c2lvbi1hdXRoLWFjY291bnQtYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZ1c2lvbkF1dGhMb2dpbkJ1dHRvbkNvbXBvbmVudCxcbiAgICBGdXNpb25BdXRoTG9nb3V0QnV0dG9uQ29tcG9uZW50LFxuICAgIEZ1c2lvbkF1dGhSZWdpc3RlckJ1dHRvbkNvbXBvbmVudCxcbiAgICBGdXNpb25BdXRoQWNjb3VudEJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtcbiAgICBGdXNpb25BdXRoTG9naW5CdXR0b25Db21wb25lbnQsXG4gICAgRnVzaW9uQXV0aExvZ291dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBGdXNpb25BdXRoUmVnaXN0ZXJCdXR0b25Db21wb25lbnQsXG4gICAgRnVzaW9uQXV0aEFjY291bnRCdXR0b25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZ1c2lvbkF1dGhNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBmdXNpb25BdXRoQ29uZmlnOiBGdXNpb25BdXRoQ29uZmlnLFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEZ1c2lvbkF1dGhNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEZ1c2lvbkF1dGhNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBGVVNJT05BVVRIX1NFUlZJQ0VfQ09ORklHLCB1c2VWYWx1ZTogZnVzaW9uQXV0aENvbmZpZyB9LFxuICAgICAgICBGdXNpb25BdXRoU2VydmljZSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -93,10 +93,17 @@ export class FusionAuthService {
|
|
|
93
93
|
logout() {
|
|
94
94
|
this.core.startLogout();
|
|
95
95
|
}
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Redirects to [self service account management](https://fusionauth.io/docs/lifecycle/manage-users/account-management/)
|
|
98
|
+
* Self service account management is only available in FusionAuth paid plans.
|
|
99
|
+
*/
|
|
100
|
+
manageAccount() {
|
|
101
|
+
this.core.manageAccount();
|
|
102
|
+
}
|
|
103
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthService, deps: [{ token: FUSIONAUTH_SERVICE_CONFIG }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
104
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthService, providedIn: 'root' }); }
|
|
98
105
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthService, decorators: [{
|
|
100
107
|
type: Injectable,
|
|
101
108
|
args: [{
|
|
102
109
|
providedIn: 'root',
|
|
@@ -108,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
108
115
|
type: Inject,
|
|
109
116
|
args: [PLATFORM_ID]
|
|
110
117
|
}] }] });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVzaW9uLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL2xpYi9mdXNpb24tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFN0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQ3FDLE1BQXdCLEVBQ3RDLFVBQWtCO1FBRXZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDdEIsR0FBRyxNQUFNO1lBQ1QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxhQUFhLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUtELG9HQUFvRztJQUNwRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFlBQVk7UUFDaEIsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsU0FHckI7UUFDQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksVUFBVSxDQUFJLFFBQVEsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJO2lCQUNOLGFBQWEsRUFBSztpQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDYixRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNaLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNMLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVc7UUFDZixPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUssQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBdkhVLGlCQUFpQixrQkFNbEIseUJBQXlCLGFBQ3pCLFdBQVc7bUhBUFYsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMseUJBQXlCOzswQkFDaEMsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNES0NvcmUgfSBmcm9tICcuLi9zZGtjb3JlJztcbmltcG9ydCB7IFNTUkNvb2tpZUFkYXB0ZXIgfSBmcm9tICcuL1NTUkNvb2tpZUFkYXB0ZXInO1xuaW1wb3J0IHsgRnVzaW9uQXV0aENvbmZpZywgVXNlckluZm8gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZVU0lPTkFVVEhfU0VSVklDRV9DT05GSUcgfSBmcm9tICcuL2luamVjdGlvblRva2VuJztcblxuLyoqXG4gKiBTZXJ2aWNlIGNsYXNzIHRvIHVzZSB3aXRoIEZ1c2lvbkF1dGggYmFja2VuZCBlbmRwb2ludHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGdXNpb25BdXRoU2VydmljZTxUID0gVXNlckluZm8+IHtcbiAgcHJpdmF0ZSBjb3JlOiBTREtDb3JlO1xuICBwcml2YXRlIGF1dG9SZWZyZXNoVGltZXI/OiBOb2RlSlMuVGltZW91dDtcbiAgcHJpdmF0ZSBpc0xvZ2dlZEluU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlVTSU9OQVVUSF9TRVJWSUNFX0NPTkZJRykgY29uZmlnOiBGdXNpb25BdXRoQ29uZmlnLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgKSB7XG4gICAgdGhpcy5jb3JlID0gbmV3IFNES0NvcmUoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgb25Ub2tlbkV4cGlyYXRpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvZ2dlZEluU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBjb29raWVBZGFwdGVyOiBuZXcgU1NSQ29va2llQWRhcHRlcihpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmlzTG9nZ2VkSW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmNvcmUuaXNMb2dnZWRJbik7XG4gICAgdGhpcy5pc0xvZ2dlZEluJCA9IHRoaXMuaXNMb2dnZWRJblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLmNvcmUuaGFuZGxlUG9zdFJlZGlyZWN0KGNvbmZpZy5vblJlZGlyZWN0KTtcblxuICAgIGlmIChjb25maWcuc2hvdWxkQXV0b1JlZnJlc2ggJiYgdGhpcy5jb3JlLmlzTG9nZ2VkSW4pIHtcbiAgICAgIHRoaXMuaW5pdEF1dG9SZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFuIG9ic2VydmFibGUgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLiAqL1xuICBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKiogQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgd2hldGhlciB0aGUgdXNlciBpcyBsb2dnZWQgaW4uIFRoaXMgcmV0dXJuZWQgdmFsdWUgaXMgbm9uLW9ic2VydmFibGUuICovXG4gIGlzTG9nZ2VkSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29yZS5pc0xvZ2dlZEluO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgYWNjZXNzIHRva2VuIGEgc2luZ2xlIHRpbWUuXG4gICAqIEF1dG9tYXRpYyB0b2tlbiByZWZyZXNoaW5nIGNhbiBiZSBlbmFibGVkIGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvUmVmcmVzaGAuXG4gICAqL1xuICBhc3luYyByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvcmUucmVmcmVzaFRva2VuKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYXV0b21hdGljIGFjY2VzcyB0b2tlbiByZWZyZXNoaW5nLlxuICAgKiBUaGlzIGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBpZiB0aGUgU0RLIGlzIGNvbmZpZ3VyZWQgd2l0aCBgc2hvdWxkQXV0b1JlZnJlc2hgLlxuICAgKi9cbiAgaW5pdEF1dG9SZWZyZXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9SZWZyZXNoVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9SZWZyZXNoVGltZXIpO1xuICAgIH1cblxuICAgIHRoaXMuYXV0b1JlZnJlc2hUaW1lciA9IHRoaXMuY29yZS5pbml0QXV0b1JlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgcmVxdWVzdCB0aGF0IGZldGNoZXMgdXNlckluZm8sIGFuZCBjYXRjaGVzIGVycm9yLlxuICAgKi9cbiAgZ2V0VXNlckluZm9PYnNlcnZhYmxlKGNhbGxiYWNrcz86IHtcbiAgICBvbkJlZ2luPzogKCkgPT4gdm9pZDtcbiAgICBvbkRvbmU/OiAoKSA9PiB2b2lkO1xuICB9KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY2FsbGJhY2tzPy5vbkJlZ2luPy4oKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5jb3JlXG4gICAgICAgIC5mZXRjaFVzZXJJbmZvPFQ+KClcbiAgICAgICAgLnRoZW4odXNlckluZm8gPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQodXNlckluZm8pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrcz8ub25Eb25lPy4oKTtcbiAgICAgICAgfSk7XG4gICAgfSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB1c2VySW5mbyBmcm9tIHRoZSAnbWUnIGVuZHBvaW50LlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZy5cbiAgICovXG4gIGFzeW5jIGdldFVzZXJJbmZvPFQ+KCk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvcmUuZmV0Y2hVc2VySW5mbzxUPigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBsb2dpbiBmbG93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0YXRlXSAtIE9wdGlvbmFsIHZhbHVlIHRvIGJlIGVjaG9lZCBiYWNrIHRvIHRoZSBTREsgdXBvbiByZWRpcmVjdC5cbiAgICovXG4gIHN0YXJ0TG9naW4oc3RhdGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvcmUuc3RhcnRMb2dpbihzdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIHJlZ2lzdGVyIGZsb3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RhdGVdIC0gT3B0aW9uYWwgdmFsdWUgdG8gYmUgZWNob2VkIGJhY2sgdG8gdGhlIFNESyB1cG9uIHJlZGlyZWN0LlxuICAgKi9cbiAgc3RhcnRSZWdpc3RyYXRpb24oc3RhdGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvcmUuc3RhcnRSZWdpc3RlcihzdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGxvZ291dCBmbG93LlxuICAgKi9cbiAgbG9nb3V0KCk6IHZvaWQge1xuICAgIHRoaXMuY29yZS5zdGFydExvZ291dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZGlyZWN0cyB0byBbc2VsZiBzZXJ2aWNlIGFjY291bnQgbWFuYWdlbWVudF0oaHR0cHM6Ly9mdXNpb25hdXRoLmlvL2RvY3MvbGlmZWN5Y2xlL21hbmFnZS11c2Vycy9hY2NvdW50LW1hbmFnZW1lbnQvKVxuICAgKiBTZWxmIHNlcnZpY2UgYWNjb3VudCBtYW5hZ2VtZW50IGlzIG9ubHkgYXZhaWxhYmxlIGluIEZ1c2lvbkF1dGggcGFpZCBwbGFucy5cbiAgICovXG4gIG1hbmFnZUFjY291bnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLm1hbmFnZUFjY291bnQoKTtcbiAgfVxufVxuIl19
|
package/esm2022/lib/types.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlnIGZvciBGdXNpb25BdXRoIEFuZ3VsYXIgU0RLXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVzaW9uQXV0aENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBzZXJ2ZXIgdGhhdCBwZXJmb3JtcyB0aGUgdG9rZW4gZXhjaGFuZ2UuXG4gICAqL1xuICBzZXJ2ZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBpZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgVVJJIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCBVUkkgZm9yIHBvc3QtbG9nb3V0LiBEZWZhdWx0cyB0aGUgcHJvdmlkZWQgYHJlZGlyZWN0VXJpYC5cbiAgICovXG4gIHBvc3RMb2dvdXRSZWRpcmVjdFVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9BdXRoMiBzY29wZSBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSBgL29hdXRoMi9hdXRob3JpemVgIGVuZHBvaW50LiBJZiBub3Qgc3BlY2lmaWVkIGZ1c2lvbmF1dGggd2lsbCBkZWZhdWx0IHRoaXMgdG8gYG9wZW5pZCBvZmZsaW5lX2FjY2Vzc2AuXG4gICAqL1xuICBzY29wZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlcyBhdXRvbWF0aWMgdG9rZW4gcmVmcmVzaGluZy4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBzaG91bGRBdXRvUmVmcmVzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGhlIGFjY2VzcyB0b2tlbiBleHBpcnkgd2hlbiB0aGUgYXV0byByZWZyZXNoIGZ1bmN0aW9uYWxpdHkga2lja3MgaW4gaWYgZW5hYmxlZC4gRGVmYXVsdCBpcyAxMC5cbiAgICovXG4gIGF1dG9SZWZyZXNoU2Vjb25kc0JlZm9yZUV4cGlyeT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCB3aXRoIHRoZSBgc3RhdGVgIHZhbHVlIHVwb24gcmVkaXJlY3QgZnJvbSBsb2dpbiBvciByZWdpc3Rlci5cbiAgICovXG4gIG9uUmVkaXJlY3Q/OiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGJlIGludm9rZWQgaWYgYSByZXF1ZXN0IHRvIHJlZnJlc2ggdGhlIGFjY2VzcyB0b2tlbiBmYWlscyBkdXJpbmcgYXV0b3JlZnJlc2guXG4gICAqL1xuICBvbkF1dG9SZWZyZXNoRmFpbHVyZT86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBsb2dpbiBlbmRwb2ludC5cbiAgICovXG4gIGxvZ2luUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHJlZ2lzdGVyIGVuZHBvaW50LlxuICAgKi9cbiAgcmVnaXN0ZXJQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbG9nb3V0IGVuZHBvaW50LlxuICAgKi9cbiAgbG9nb3V0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHRva2VuIHJlZnJlc2ggZW5kcG9pbnQuXG4gICAqL1xuICB0b2tlblJlZnJlc2hQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbWUgZW5kcG9pbnQuXG4gICAqL1xuICBtZVBhdGg/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlnIGZvciBGdXNpb25BdXRoIEFuZ3VsYXIgU0RLXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVzaW9uQXV0aENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBzZXJ2ZXIgdGhhdCBwZXJmb3JtcyB0aGUgdG9rZW4gZXhjaGFuZ2UuXG4gICAqL1xuICBzZXJ2ZXJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBpZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVkaXJlY3QgVVJJIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHJlZGlyZWN0VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCBVUkkgZm9yIHBvc3QtbG9nb3V0LiBEZWZhdWx0cyB0aGUgcHJvdmlkZWQgYHJlZGlyZWN0VXJpYC5cbiAgICovXG4gIHBvc3RMb2dvdXRSZWRpcmVjdFVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9BdXRoMiBzY29wZSBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSBgL29hdXRoMi9hdXRob3JpemVgIGVuZHBvaW50LiBJZiBub3Qgc3BlY2lmaWVkIGZ1c2lvbmF1dGggd2lsbCBkZWZhdWx0IHRoaXMgdG8gYG9wZW5pZCBvZmZsaW5lX2FjY2Vzc2AuXG4gICAqL1xuICBzY29wZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlcyBhdXRvbWF0aWMgdG9rZW4gcmVmcmVzaGluZy4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICBzaG91bGRBdXRvUmVmcmVzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGhlIGFjY2VzcyB0b2tlbiBleHBpcnkgd2hlbiB0aGUgYXV0byByZWZyZXNoIGZ1bmN0aW9uYWxpdHkga2lja3MgaW4gaWYgZW5hYmxlZC4gRGVmYXVsdCBpcyAxMC5cbiAgICovXG4gIGF1dG9SZWZyZXNoU2Vjb25kc0JlZm9yZUV4cGlyeT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCB3aXRoIHRoZSBgc3RhdGVgIHZhbHVlIHVwb24gcmVkaXJlY3QgZnJvbSBsb2dpbiBvciByZWdpc3Rlci5cbiAgICovXG4gIG9uUmVkaXJlY3Q/OiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGJlIGludm9rZWQgaWYgYSByZXF1ZXN0IHRvIHJlZnJlc2ggdGhlIGFjY2VzcyB0b2tlbiBmYWlscyBkdXJpbmcgYXV0b3JlZnJlc2guXG4gICAqL1xuICBvbkF1dG9SZWZyZXNoRmFpbHVyZT86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBsb2dpbiBlbmRwb2ludC5cbiAgICovXG4gIGxvZ2luUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHJlZ2lzdGVyIGVuZHBvaW50LlxuICAgKi9cbiAgcmVnaXN0ZXJQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbG9nb3V0IGVuZHBvaW50LlxuICAgKi9cbiAgbG9nb3V0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHRva2VuIHJlZnJlc2ggZW5kcG9pbnQuXG4gICAqL1xuICB0b2tlblJlZnJlc2hQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgbWUgZW5kcG9pbnQuXG4gICAqL1xuICBtZVBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckluZm8ge1xuICBhcHBsaWNhdGlvbklkPzogc3RyaW5nO1xuICBiaXJ0aGRhdGU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIGZhbWlseV9uYW1lPzogc3RyaW5nO1xuICBnaXZlbl9uYW1lPzogc3RyaW5nO1xuICBtaWRkbGVfbmFtZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBwcmVmZXJyZWRfdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJvbGVzPzogYW55W107XG4gIHNpZD86IHN0cmluZztcbiAgc3ViPzogc3RyaW5nO1xuICB0aWQ/OiBzdHJpbmc7XG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -5,6 +5,7 @@ export * from './lib/fusion-auth.service';
|
|
|
5
5
|
export * from './lib/components/fusionauth-login.button/fusion-auth-login-button.component';
|
|
6
6
|
export * from './lib/components/fusionauth-logout.button/fusion-auth-logout-button.component';
|
|
7
7
|
export * from './lib/components/fusionauth-register.button/fusion-auth-register-button.component';
|
|
8
|
+
export * from './lib/components/fusionauth-account.button/fusion-auth-account-button.component';
|
|
8
9
|
export * from './lib/fusion-auth.module';
|
|
9
10
|
export * from './lib/types';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkVBQTZFLENBQUM7QUFDNUYsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZnVzaW9uYXV0aC1hbmd1bGFyLXNka1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1c2lvbi1hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mdXNpb25hdXRoLWxvZ2luLmJ1dHRvbi9mdXNpb24tYXV0aC1sb2dpbi1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1sb2dvdXQuYnV0dG9uL2Z1c2lvbi1hdXRoLWxvZ291dC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZnVzaW9uYXV0aC1yZWdpc3Rlci5idXR0b24vZnVzaW9uLWF1dGgtcmVnaXN0ZXItYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Z1c2lvbmF1dGgtYWNjb3VudC5idXR0b24vZnVzaW9uLWF1dGgtYWNjb3VudC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1c2lvbi1hdXRoLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvU0RLQ29udGV4dC9TREtDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbnRleHQgcHJvdmlkZWQgYnkgRnVzaW9uQXV0aCBXZWIgU0RLcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTREtDb250ZXh0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLlxuICAgKi9cbiAgaXNMb2dnZWRJbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGF0YSBmZXRjaGVkIGZyb20gdGhlIGNvbmZpZ3VyZWQgJ21lJyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJJbmZvOiBVc2VySW5mbyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdXNlciBpbmZvIGZyb20gdGhlICdtZScgZW5kcG9pbnQuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvRmV0Y2hVc2VySW5mb2AuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFVzZXJJbmZvPn1cbiAgICovXG4gIGZldGNoVXNlckluZm86ICgpID0+IFByb21pc2U8VXNlckluZm8gfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZmV0Y2hVc2VySW5mbyBjYWxsIGlzIHVucmVzb2x2ZWQuXG4gICAqL1xuICBpc0ZldGNoaW5nVXNlckluZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIHVzZXJJbmZvLlxuICAgKi9cbiAgZXJyb3I6IEVycm9yIHwgbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhdGVzIGxvZ2luIGZsb3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RhdGVdIC0gT3B0aW9uYWwgdmFsdWUgdG8gYmUgZWNob2VkIGJhY2sgdG8gdGhlIFNESyB1cG9uIHJlZGlyZWN0LlxuICAgKi9cbiAgc3RhcnRMb2dpbjogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgcmVnaXN0ZXIgZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydFJlZ2lzdGVyOiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBsb2dvdXQgZmxvdy5cbiAgICovXG4gIHN0YXJ0TG9nb3V0OiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGFjY2VzcyB0b2tlbiBhIHNpbmdsZSB0aW1lLlxuICAgKiBUaGlzIGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBpZiB0aGUgU0RLIGlzIGNvbmZpZ3VyZWQgd2l0aCBgc2hvdWxkQXV0b1JlZnJlc2hgLlxuICAgKi9cbiAgcmVmcmVzaFRva2VuOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhdXRvbWF0aWMgYWNjZXNzIHRva2VuIHJlZnJlc2hpbmcuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvUmVmcmVzaGAuXG4gICAqL1xuICBpbml0QXV0b1JlZnJlc2g6ICgpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvU0RLQ29udGV4dC9TREtDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbnRleHQgcHJvdmlkZWQgYnkgRnVzaW9uQXV0aCBXZWIgU0RLcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTREtDb250ZXh0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLlxuICAgKi9cbiAgaXNMb2dnZWRJbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGF0YSBmZXRjaGVkIGZyb20gdGhlIGNvbmZpZ3VyZWQgJ21lJyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJJbmZvOiBVc2VySW5mbyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdXNlciBpbmZvIGZyb20gdGhlICdtZScgZW5kcG9pbnQuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvRmV0Y2hVc2VySW5mb2AuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFVzZXJJbmZvPn1cbiAgICovXG4gIGZldGNoVXNlckluZm86ICgpID0+IFByb21pc2U8VXNlckluZm8gfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZmV0Y2hVc2VySW5mbyBjYWxsIGlzIHVucmVzb2x2ZWQuXG4gICAqL1xuICBpc0ZldGNoaW5nVXNlckluZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIHVzZXJJbmZvLlxuICAgKi9cbiAgZXJyb3I6IEVycm9yIHwgbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhdGVzIGxvZ2luIGZsb3cuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RhdGVdIC0gT3B0aW9uYWwgdmFsdWUgdG8gYmUgZWNob2VkIGJhY2sgdG8gdGhlIFNESyB1cG9uIHJlZGlyZWN0LlxuICAgKi9cbiAgc3RhcnRMb2dpbjogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgcmVnaXN0ZXIgZmxvdy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzdGF0ZV0gLSBPcHRpb25hbCB2YWx1ZSB0byBiZSBlY2hvZWQgYmFjayB0byB0aGUgU0RLIHVwb24gcmVkaXJlY3QuXG4gICAqL1xuICBzdGFydFJlZ2lzdGVyOiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBsb2dvdXQgZmxvdy5cbiAgICovXG4gIHN0YXJ0TG9nb3V0OiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGFjY2VzcyB0b2tlbiBhIHNpbmdsZSB0aW1lLlxuICAgKiBUaGlzIGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBpZiB0aGUgU0RLIGlzIGNvbmZpZ3VyZWQgd2l0aCBgc2hvdWxkQXV0b1JlZnJlc2hgLlxuICAgKi9cbiAgcmVmcmVzaFRva2VuOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhdXRvbWF0aWMgYWNjZXNzIHRva2VuIHJlZnJlc2hpbmcuXG4gICAqIFRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIGBzaG91bGRBdXRvUmVmcmVzaGAuXG4gICAqL1xuICBpbml0QXV0b1JlZnJlc2g6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogVXNlciBpbmZvcm1hdGlvbiByZXR1cm5lZCBmcm9tIEZ1c2lvbkF1dGguXG4gKi9cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0ge1xuICBhcHBsaWNhdGlvbklkPzogc3RyaW5nO1xuICBiaXJ0aGRhdGU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIGZhbWlseV9uYW1lPzogc3RyaW5nO1xuICBnaXZlbl9uYW1lPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBtaWRkbGVfbmFtZT86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBwcmVmZXJyZWRfdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJvbGVzPzogYW55W107XG4gIHNpZD86IHN0cmluZztcbiAgc3ViPzogc3RyaW5nO1xuICB0aWQ/OiBzdHJpbmc7XG59O1xuIl19
|
|
@@ -31,6 +31,9 @@ export class SDKCore {
|
|
|
31
31
|
startLogout() {
|
|
32
32
|
window.location.assign(this.urlHelper.getLogoutUrl());
|
|
33
33
|
}
|
|
34
|
+
manageAccount() {
|
|
35
|
+
window.location.assign(this.urlHelper.getAccountManagementUrl());
|
|
36
|
+
}
|
|
34
37
|
async fetchUserInfo() {
|
|
35
38
|
const userInfoResponse = await fetch(this.urlHelper.getMeUrl(), {
|
|
36
39
|
credentials: 'include',
|
|
@@ -50,9 +53,12 @@ export class SDKCore {
|
|
|
50
53
|
},
|
|
51
54
|
});
|
|
52
55
|
if (!(response.status >= 200 && response.status < 300)) {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
const errorDetails = {
|
|
57
|
+
status: response.status,
|
|
58
|
+
details: (await response?.text()) ||
|
|
59
|
+
'Failed to refresh fusionauth access token',
|
|
60
|
+
};
|
|
61
|
+
throw new Error(JSON.stringify(errorDetails));
|
|
56
62
|
}
|
|
57
63
|
// a successful request means that app_exp was bumped into the future.
|
|
58
64
|
// reschedule the access token expiration event.
|
|
@@ -90,7 +96,11 @@ export class SDKCore {
|
|
|
90
96
|
get at_exp() {
|
|
91
97
|
return getAccessTokenExpirationMoment(this.config.accessTokenExpireCookieName, this.config.cookieAdapter);
|
|
92
98
|
}
|
|
93
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* Schedules `onTokenExpiration` at moment of access token expiration.
|
|
101
|
+
* SDKCore is not necessarily reactive like React, Angular, and Vue.
|
|
102
|
+
* so `onTokenExpiration` is for reactive frameworks to hook in and perform actions as on token expiration.
|
|
103
|
+
*/
|
|
94
104
|
scheduleTokenExpiration() {
|
|
95
105
|
clearTimeout(this.tokenExpirationTimeout);
|
|
96
106
|
const now = new Date().getTime();
|
|
@@ -100,4 +110,4 @@ export class SDKCore {
|
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvU0RLQ29yZS9TREtDb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxFLHdEQUF3RDtBQUN4RCxNQUFNLE9BQU8sT0FBTztJQU1sQixZQUFZLE1BQWlCO1FBSHJCLG1CQUFjLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7UUFJNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM3QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDakMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDekMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLHFCQUFxQjtTQUNwRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENB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QUMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBbUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCx5RUFBeUU7SUFDekUsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sOEJBQThCLENBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELDBFQUEwRTtJQUNsRSx1QkFBdUI7UUFDN0IsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVyRCxJQUFJLDBCQUEwQixHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQzdCLDBCQUEwQixDQUMzQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVybEhlbHBlciB9IGZyb20gJy4uL1VybEhlbHBlcic7XG5pbXBvcnQgeyBTREtDb25maWcgfSBmcm9tICcuLi9TREtDb25maWcnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9TREtDb250ZXh0JztcbmltcG9ydCB7IFJlZGlyZWN0SGVscGVyIH0gZnJvbSAnLi4vUmVkaXJlY3RIZWxwZXInO1xuaW1wb3J0IHsgZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50IH0gZnJvbSAnLi4vQ29va2llSGVscGVycyc7XG5cbi8qKiBBIGNsYXNzIGNvbnRhaW5pbmcgZnJhbWV3b3JrLWFnbm9zdGljIFNESyBtZXRob2RzICovXG5leHBvcnQgY2xhc3MgU0RLQ29yZSB7XG4gIHByaXZhdGUgY29uZmlnOiBTREtDb25maWc7XG4gIHByaXZhdGUgdXJsSGVscGVyOiBVcmxIZWxwZXI7XG4gIHByaXZhdGUgcmVkaXJlY3RIZWxwZXI6IFJlZGlyZWN0SGVscGVyID0gbmV3IFJlZGlyZWN0SGVscGVyKCk7XG4gIHByaXZhdGUgdG9rZW5FeHBpcmF0aW9uVGltZW91dD86IE5vZGVKUy5UaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU0RLQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy51cmxIZWxwZXIgPSBuZXcgVXJsSGVscGVyKHtcbiAgICAgIHNlcnZlclVybDogY29uZmlnLnNlcnZlclVybCxcbiAgICAgIGNsaWVudElkOiBjb25maWcuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdFVyaTogY29uZmlnLnJlZGlyZWN0VXJpLFxuICAgICAgc2NvcGU6IGNvbmZpZy5zY29wZSxcbiAgICAgIG1lUGF0aDogY29uZmlnLm1lUGF0aCxcbiAgICAgIGxvZ2luUGF0aDogY29uZmlnLmxvZ2luUGF0aCxcbiAgICAgIHJlZ2lzdGVyUGF0aDogY29uZmlnLnJlZ2lzdGVyUGF0aCxcbiAgICAgIGxvZ291dFBhdGg6IGNvbmZpZy5sb2dvdXRQYXRoLFxuICAgICAgdG9rZW5SZWZyZXNoUGF0aDogY29uZmlnLnRva2VuUmVmcmVzaFBhdGgsXG4gICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGNvbmZpZy5wb3N0TG9nb3V0UmVkaXJlY3RVcmksXG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpO1xuICB9XG5cbiAgc3RhcnRMb2dpbihzdGF0ZT86IHN0cmluZykge1xuICAgIHRoaXMucmVkaXJlY3RIZWxwZXIuaGFuZGxlUHJlUmVkaXJlY3Qoc3RhdGUpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odGhpcy51cmxIZWxwZXIuZ2V0TG9naW5Vcmwoc3RhdGUpKTtcbiAgfVxuXG4gIHN0YXJ0UmVnaXN0ZXIoc3RhdGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlZGlyZWN0SGVscGVyLmhhbmRsZVByZVJlZGlyZWN0KHN0YXRlKTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldFJlZ2lzdGVyVXJsKHN0YXRlKSk7XG4gIH1cblxuICBzdGFydExvZ291dCgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldExvZ291dFVybCgpKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoVXNlckluZm8oKSB7XG4gICAgY29uc3QgdXNlckluZm9SZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMudXJsSGVscGVyLmdldE1lVXJsKCksIHtcbiAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXJJbmZvUmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVuYWJsZSB0byBmZXRjaCB1c2VySW5mbyBpbiBmdXNpb25hdXRoLiBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICR7dXNlckluZm9SZXNwb25zZT8uc3RhdHVzfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJJbmZvOiBVc2VySW5mbyA9IGF3YWl0IHVzZXJJbmZvUmVzcG9uc2UuanNvbigpO1xuICAgIHJldHVybiB1c2VySW5mbztcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnVybEhlbHBlci5nZXRUb2tlblJlZnJlc2hVcmwoKSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmICghKHJlc3BvbnNlLnN0YXR1cyA+PSAyMDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDwgMzAwKSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgIChhd2FpdCByZXNwb25zZT8udGV4dCgpKSB8fFxuICAgICAgICAnRXJyb3IgcmVmcmVzaGluZyBhY2Nlc3MgdG9rZW4gaW4gZnVzaW9uYXV0aCc7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgLy8gYSBzdWNjZXNzZnVsIHJlcXVlc3QgbWVhbnMgdGhhdCBhcHBfZXhwIHdhcyBidW1wZWQgaW50byB0aGUgZnV0dXJlLlxuICAgIC8vIHJlc2NoZWR1bGUgdGhlIGFjY2VzcyB0b2tlbiBleHBpcmF0aW9uIGV2ZW50LlxuICAgIHRoaXMuc2NoZWR1bGVUb2tlbkV4cGlyYXRpb24oKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGluaXRBdXRvUmVmcmVzaCgpOiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmlzTG9nZ2VkSW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWNvbmRzQmVmb3JlUmVmcmVzaCA9XG4gICAgICB0aGlzLmNvbmZpZy5hdXRvUmVmcmVzaFNlY29uZHNCZWZvcmVFeHBpcnkgPz8gMTA7XG5cbiAgICBjb25zdCBtaWxsaXNlY29uZHNCZWZvcmVSZWZyZXNoID0gc2Vjb25kc0JlZm9yZVJlZnJlc2ggKiAxMDAwO1xuXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgcmVmcmVzaFRpbWUgPSB0aGlzLmF0X2V4cCAtIG1pbGxpc2Vjb25kc0JlZm9yZVJlZnJlc2g7XG4gICAgY29uc3QgdGltZVRpbGxSZWZyZXNoID0gTWF0aC5tYXgocmVmcmVzaFRpbWUgLSBub3csIDApO1xuXG4gICAgcmV0dXJuIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgdGhpcy5pbml0QXV0b1JlZnJlc2goKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLm9uQXV0b1JlZnJlc2hGYWlsdXJlPy4oZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgIH0sIHRpbWVUaWxsUmVmcmVzaCk7XG4gIH1cblxuICBoYW5kbGVQb3N0UmVkaXJlY3QoY2FsbGJhY2s/OiAoc3RhdGU/OiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy5pc0xvZ2dlZEluICYmIHRoaXMucmVkaXJlY3RIZWxwZXIuZGlkUmVkaXJlY3QpIHtcbiAgICAgIHRoaXMucmVkaXJlY3RIZWxwZXIuaGFuZGxlUG9zdFJlZGlyZWN0KGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5hdF9leHAgPiBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgfVxuXG4gIC8qKiBUaGUgbW9tZW50IG9mIGFjY2VzcyB0b2tlbiBleHBpcmF0aW9uIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaC4gKi9cbiAgcHJpdmF0ZSBnZXQgYXRfZXhwKCk6IG51bWJlciB8IC0xIHtcbiAgICByZXR1cm4gZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50KFxuICAgICAgdGhpcy5jb25maWcuYWNjZXNzVG9rZW5FeHBpcmVDb29raWVOYW1lLFxuICAgICAgdGhpcy5jb25maWcuY29va2llQWRhcHRlcixcbiAgICApO1xuICB9XG5cbiAgLyoqIFNjaGVkdWxlcyBgb25Ub2tlbkV4cGlyYXRpb25gIGF0IG1vbWVudCBvZiBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvbi4gKi9cbiAgcHJpdmF0ZSBzY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50b2tlbkV4cGlyYXRpb25UaW1lb3V0KTtcblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kc1RpbGxFeHBpcmF0aW9uID0gdGhpcy5hdF9leHAgLSBub3c7XG5cbiAgICBpZiAobWlsbGlzZWNvbmRzVGlsbEV4cGlyYXRpb24gPiAwKSB7XG4gICAgICB0aGlzLnRva2VuRXhwaXJhdGlvblRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICB0aGlzLmNvbmZpZy5vblRva2VuRXhwaXJhdGlvbixcbiAgICAgICAgbWlsbGlzZWNvbmRzVGlsbEV4cGlyYXRpb24sXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0RLQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z1c2lvbmF1dGgtYW5ndWxhci1zZGsvc3JjL3Nka2NvcmUvU0RLQ29yZS9TREtDb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxFLHdEQUF3RDtBQUN4RCxNQUFNLE9BQU8sT0FBTztJQU1sQixZQUFZLE1BQWlCO1FBSHJCLG1CQUFjLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7UUFJNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM3QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDakMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDekMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLHFCQUFxQjtTQUNwRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENB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O1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVybEhlbHBlciB9IGZyb20gJy4uL1VybEhlbHBlcic7XG5pbXBvcnQgeyBTREtDb25maWcgfSBmcm9tICcuLi9TREtDb25maWcnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9TREtDb250ZXh0JztcbmltcG9ydCB7IFJlZGlyZWN0SGVscGVyIH0gZnJvbSAnLi4vUmVkaXJlY3RIZWxwZXInO1xuaW1wb3J0IHsgZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uTW9tZW50IH0gZnJvbSAnLi4vQ29va2llSGVscGVycyc7XG5cbi8qKiBBIGNsYXNzIGNvbnRhaW5pbmcgZnJhbWV3b3JrLWFnbm9zdGljIFNESyBtZXRob2RzICovXG5leHBvcnQgY2xhc3MgU0RLQ29yZSB7XG4gIHByaXZhdGUgY29uZmlnOiBTREtDb25maWc7XG4gIHByaXZhdGUgdXJsSGVscGVyOiBVcmxIZWxwZXI7XG4gIHByaXZhdGUgcmVkaXJlY3RIZWxwZXI6IFJlZGlyZWN0SGVscGVyID0gbmV3IFJlZGlyZWN0SGVscGVyKCk7XG4gIHByaXZhdGUgdG9rZW5FeHBpcmF0aW9uVGltZW91dD86IE5vZGVKUy5UaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU0RLQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy51cmxIZWxwZXIgPSBuZXcgVXJsSGVscGVyKHtcbiAgICAgIHNlcnZlclVybDogY29uZmlnLnNlcnZlclVybCxcbiAgICAgIGNsaWVudElkOiBjb25maWcuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdFVyaTogY29uZmlnLnJlZGlyZWN0VXJpLFxuICAgICAgc2NvcGU6IGNvbmZpZy5zY29wZSxcbiAgICAgIG1lUGF0aDogY29uZmlnLm1lUGF0aCxcbiAgICAgIGxvZ2luUGF0aDogY29uZmlnLmxvZ2luUGF0aCxcbiAgICAgIHJlZ2lzdGVyUGF0aDogY29uZmlnLnJlZ2lzdGVyUGF0aCxcbiAgICAgIGxvZ291dFBhdGg6IGNvbmZpZy5sb2dvdXRQYXRoLFxuICAgICAgdG9rZW5SZWZyZXNoUGF0aDogY29uZmlnLnRva2VuUmVmcmVzaFBhdGgsXG4gICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGNvbmZpZy5wb3N0TG9nb3V0UmVkaXJlY3RVcmksXG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZVRva2VuRXhwaXJhdGlvbigpO1xuICB9XG5cbiAgc3RhcnRMb2dpbihzdGF0ZT86IHN0cmluZykge1xuICAgIHRoaXMucmVkaXJlY3RIZWxwZXIuaGFuZGxlUHJlUmVkaXJlY3Qoc3RhdGUpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odGhpcy51cmxIZWxwZXIuZ2V0TG9naW5Vcmwoc3RhdGUpKTtcbiAgfVxuXG4gIHN0YXJ0UmVnaXN0ZXIoc3RhdGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlZGlyZWN0SGVscGVyLmhhbmRsZVByZVJlZGlyZWN0KHN0YXRlKTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldFJlZ2lzdGVyVXJsKHN0YXRlKSk7XG4gIH1cblxuICBzdGFydExvZ291dCgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMudXJsSGVscGVyLmdldExvZ291dFVybCgpKTtcbiAgfVxuXG4gIG1hbmFnZUFjY291bnQoKSB7XG4gICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih0aGlzLnVybEhlbHBlci5nZXRBY2NvdW50TWFuYWdlbWVudFVybCgpKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoVXNlckluZm88VCA9IFVzZXJJbmZvPigpIHtcbiAgICBjb25zdCB1c2VySW5mb1Jlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy51cmxIZWxwZXIuZ2V0TWVVcmwoKSwge1xuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICB9KTtcblxuICAgIGlmICghdXNlckluZm9SZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIGZldGNoIHVzZXJJbmZvIGluIGZ1c2lvbmF1dGguIFJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHt1c2VySW5mb1Jlc3BvbnNlPy5zdGF0dXN9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlckluZm86IFQgPSBhd2FpdCB1c2VySW5mb1Jlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gdXNlckluZm87XG4gIH1cblxuICBhc3luYyByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy51cmxIZWxwZXIuZ2V0VG9rZW5SZWZyZXNoVXJsKCksIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKCEocmVzcG9uc2Uuc3RhdHVzID49IDIwMCAmJiByZXNwb25zZS5zdGF0dXMgPCAzMDApKSB7XG4gICAgICBjb25zdCBlcnJvckRldGFpbHMgPSB7XG4gICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICBkZXRhaWxzOlxuICAgICAgICAgIChhd2FpdCByZXNwb25zZT8udGV4dCgpKSB8fFxuICAgICAgICAgICdGYWlsZWQgdG8gcmVmcmVzaCBmdXNpb25hdXRoIGFjY2VzcyB0b2tlbicsXG4gICAgICB9O1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KGVycm9yRGV0YWlscykpO1xuICAgIH1cblxuICAgIC8vIGEgc3VjY2Vzc2Z1bCByZXF1ZXN0IG1lYW5zIHRoYXQgYXBwX2V4cCB3YXMgYnVtcGVkIGludG8gdGhlIGZ1dHVyZS5cbiAgICAvLyByZXNjaGVkdWxlIHRoZSBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvbiBldmVudC5cbiAgICB0aGlzLnNjaGVkdWxlVG9rZW5FeHBpcmF0aW9uKCk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBpbml0QXV0b1JlZnJlc2goKTogTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5pc0xvZ2dlZEluKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Vjb25kc0JlZm9yZVJlZnJlc2ggPVxuICAgICAgdGhpcy5jb25maWcuYXV0b1JlZnJlc2hTZWNvbmRzQmVmb3JlRXhwaXJ5ID8/IDEwO1xuXG4gICAgY29uc3QgbWlsbGlzZWNvbmRzQmVmb3JlUmVmcmVzaCA9IHNlY29uZHNCZWZvcmVSZWZyZXNoICogMTAwMDtcblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHJlZnJlc2hUaW1lID0gdGhpcy5hdF9leHAgLSBtaWxsaXNlY29uZHNCZWZvcmVSZWZyZXNoO1xuICAgIGNvbnN0IHRpbWVUaWxsUmVmcmVzaCA9IE1hdGgubWF4KHJlZnJlc2hUaW1lIC0gbm93LCAwKTtcblxuICAgIHJldHVybiBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgIHRoaXMuaW5pdEF1dG9SZWZyZXNoKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLmNvbmZpZy5vbkF1dG9SZWZyZXNoRmFpbHVyZT8uKGVycm9yIGFzIEVycm9yKTtcbiAgICAgIH1cbiAgICB9LCB0aW1lVGlsbFJlZnJlc2gpO1xuICB9XG5cbiAgaGFuZGxlUG9zdFJlZGlyZWN0KGNhbGxiYWNrPzogKHN0YXRlPzogc3RyaW5nKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuaXNMb2dnZWRJbiAmJiB0aGlzLnJlZGlyZWN0SGVscGVyLmRpZFJlZGlyZWN0KSB7XG4gICAgICB0aGlzLnJlZGlyZWN0SGVscGVyLmhhbmRsZVBvc3RSZWRpcmVjdChjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzTG9nZ2VkSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXRfZXhwID4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gIH1cblxuICAvKiogVGhlIG1vbWVudCBvZiBhY2Nlc3MgdG9rZW4gZXhwaXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2guICovXG4gIHByaXZhdGUgZ2V0IGF0X2V4cCgpOiBudW1iZXIgfCAtMSB7XG4gICAgcmV0dXJuIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbk1vbWVudChcbiAgICAgIHRoaXMuY29uZmlnLmFjY2Vzc1Rva2VuRXhwaXJlQ29va2llTmFtZSxcbiAgICAgIHRoaXMuY29uZmlnLmNvb2tpZUFkYXB0ZXIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2hlZHVsZXMgYG9uVG9rZW5FeHBpcmF0aW9uYCBhdCBtb21lbnQgb2YgYWNjZXNzIHRva2VuIGV4cGlyYXRpb24uXG4gICAqIFNES0NvcmUgaXMgbm90IG5lY2Vzc2FyaWx5IHJlYWN0aXZlIGxpa2UgUmVhY3QsIEFuZ3VsYXIsIGFuZCBWdWUuXG4gICAqIHNvIGBvblRva2VuRXhwaXJhdGlvbmAgaXMgZm9yIHJlYWN0aXZlIGZyYW1ld29ya3MgdG8gaG9vayBpbiBhbmQgcGVyZm9ybSBhY3Rpb25zIGFzIG9uIHRva2VuIGV4cGlyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNjaGVkdWxlVG9rZW5FeHBpcmF0aW9uKCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRva2VuRXhwaXJhdGlvblRpbWVvdXQpO1xuXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzVGlsbEV4cGlyYXRpb24gPSB0aGlzLmF0X2V4cCAtIG5vdztcblxuICAgIGlmIChtaWxsaXNlY29uZHNUaWxsRXhwaXJhdGlvbiA+IDApIHtcbiAgICAgIHRoaXMudG9rZW5FeHBpcmF0aW9uVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAgIHRoaXMuY29uZmlnLm9uVG9rZW5FeHBpcmF0aW9uLFxuICAgICAgICBtaWxsaXNlY29uZHNUaWxsRXhwaXJhdGlvbixcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -6,11 +6,11 @@ export class UrlHelper {
|
|
|
6
6
|
this.redirectUri = config.redirectUri;
|
|
7
7
|
this.scope = config.scope;
|
|
8
8
|
this.postLogoutRedirectUri = config.postLogoutRedirectUri;
|
|
9
|
-
this.mePath = config.mePath ?? '/app/me';
|
|
10
|
-
this.loginPath = config.loginPath ?? '/app/login';
|
|
11
|
-
this.registerPath = config.registerPath ?? '/app/register';
|
|
12
|
-
this.logoutPath = config.logoutPath ?? '/app/logout';
|
|
13
|
-
this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh';
|
|
9
|
+
this.mePath = config.mePath ?? '/app/me/';
|
|
10
|
+
this.loginPath = config.loginPath ?? '/app/login/';
|
|
11
|
+
this.registerPath = config.registerPath ?? '/app/register/';
|
|
12
|
+
this.logoutPath = config.logoutPath ?? '/app/logout/';
|
|
13
|
+
this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh/';
|
|
14
14
|
}
|
|
15
15
|
getMeUrl() {
|
|
16
16
|
return this.generateUrl(this.mePath);
|
|
@@ -42,6 +42,11 @@ export class UrlHelper {
|
|
|
42
42
|
client_id: this.clientId,
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
getAccountManagementUrl() {
|
|
46
|
+
return this.generateUrl('/account/', {
|
|
47
|
+
client_id: this.clientId,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
45
50
|
generateUrl(path, params) {
|
|
46
51
|
const url = new URL(this.serverUrl);
|
|
47
52
|
url.pathname = path;
|
|
@@ -61,4 +66,4 @@ export class UrlHelper {
|
|
|
61
66
|
return urlSearchParams;
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXJsSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVzaW9uYXV0aC1hbmd1bGFyLXNkay9zcmMvc2RrY29yZS9VcmxIZWxwZXIvVXJsSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGtGQUFrRjtBQUNsRixNQUFNLE9BQU8sU0FBUztJQWFwQixZQUFZLE1BQXVCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBRTFELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUM7UUFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLGVBQWUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWM7UUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3hCLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVztZQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdkMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3hCLHdCQUF3QixFQUFFLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsV0FBVztTQUN6RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDN0MsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtZQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBNkI7UUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsR0FBRyxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLHVCQUF1QixDQUM3QixNQUE0QjtRQUU1QixNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVybEhlbHBlckNvbmZpZywgVXJsSGVscGVyUXVlcnlQYXJhbXMgfSBmcm9tICcuL1VybEhlbHBlclR5cGVzJztcblxuLyoqIEEgY2xhc3MgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgVVJMcyB0aGF0IEZ1c2lvbkF1dGggU0RLcyBpbnRlcmFjdCB3aXRoLiAqL1xuZXhwb3J0IGNsYXNzIFVybEhlbHBlciB7XG4gIHNlcnZlclVybDogc3RyaW5nO1xuICBjbGllbnRJZDogc3RyaW5nO1xuICByZWRpcmVjdFVyaTogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcblxuICBtZVBhdGg6IHN0cmluZztcbiAgbG9naW5QYXRoOiBzdHJpbmc7XG4gIHJlZ2lzdGVyUGF0aDogc3RyaW5nO1xuICBsb2dvdXRQYXRoOiBzdHJpbmc7XG4gIHRva2VuUmVmcmVzaFBhdGg6IHN0cmluZztcbiAgcG9zdExvZ291dFJlZGlyZWN0VXJpPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogVXJsSGVscGVyQ29uZmlnKSB7XG4gICAgdGhpcy5zZXJ2ZXJVcmwgPSBjb25maWcuc2VydmVyVXJsO1xuICAgIHRoaXMuY2xpZW50SWQgPSBjb25maWcuY2xpZW50SWQ7XG4gICAgdGhpcy5yZWRpcmVjdFVyaSA9IGNvbmZpZy5yZWRpcmVjdFVyaTtcbiAgICB0aGlzLnNjb3BlID0gY29uZmlnLnNjb3BlO1xuICAgIHRoaXMucG9zdExvZ291dFJlZGlyZWN0VXJpID0gY29uZmlnLnBvc3RMb2dvdXRSZWRpcmVjdFVyaTtcblxuICAgIHRoaXMubWVQYXRoID0gY29uZmlnLm1lUGF0aCA/PyAnL2FwcC9tZS8nO1xuICAgIHRoaXMubG9naW5QYXRoID0gY29uZmlnLmxvZ2luUGF0aCA/PyAnL2FwcC9sb2dpbi8nO1xuICAgIHRoaXMucmVnaXN0ZXJQYXRoID0gY29uZmlnLnJlZ2lzdGVyUGF0aCA/PyAnL2FwcC9yZWdpc3Rlci8nO1xuICAgIHRoaXMubG9nb3V0UGF0aCA9IGNvbmZpZy5sb2dvdXRQYXRoID8/ICcvYXBwL2xvZ291dC8nO1xuICAgIHRoaXMudG9rZW5SZWZyZXNoUGF0aCA9IGNvbmZpZy50b2tlblJlZnJlc2hQYXRoID8/ICcvYXBwL3JlZnJlc2gvJztcbiAgfVxuXG4gIGdldE1lVXJsKCk6IFVSTCB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwodGhpcy5tZVBhdGgpO1xuICB9XG5cbiAgZ2V0TG9naW5Vcmwoc3RhdGU/OiBzdHJpbmcpOiBVUkwge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMubG9naW5QYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIHN0YXRlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVnaXN0ZXJVcmwoc3RhdGU/OiBzdHJpbmcpOiBVUkwge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlVXJsKHRoaXMucmVnaXN0ZXJQYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMucmVkaXJlY3RVcmksXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIHN0YXRlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TG9nb3V0VXJsKCk6IFVSTCB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwodGhpcy5sb2dvdXRQYXRoLCB7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRoaXMucG9zdExvZ291dFJlZGlyZWN0VXJpIHx8IHRoaXMucmVkaXJlY3RVcmksXG4gICAgfSk7XG4gIH1cblxuICBnZXRUb2tlblJlZnJlc2hVcmwoKTogVVJMIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVVybCh0aGlzLnRva2VuUmVmcmVzaFBhdGgsIHtcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jbGllbnRJZCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldEFjY291bnRNYW5hZ2VtZW50VXJsKCk6IFVSTCB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVVcmwoJy9hY2NvdW50LycsIHtcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jbGllbnRJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVVcmwocGF0aDogc3RyaW5nLCBwYXJhbXM/OiBVcmxIZWxwZXJRdWVyeVBhcmFtcyk6IFVSTCB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnNlcnZlclVybCk7XG4gICAgdXJsLnBhdGhuYW1lID0gcGF0aDtcblxuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IHRoaXMuZ2VuZXJhdGVVUkxTZWFyY2hQYXJhbXMocGFyYW1zKTtcbiAgICAgIHVybC5zZWFyY2ggPSB1cmxTZWFyY2hQYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVVSTFNlYXJjaFBhcmFtcyhcbiAgICBwYXJhbXM6IFVybEhlbHBlclF1ZXJ5UGFyYW1zLFxuICApOiBVUkxTZWFyY2hQYXJhbXMge1xuICAgIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcblxuICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdXJsU2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB1cmxTZWFyY2hQYXJhbXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './SDKCore';
|
|
2
2
|
export * from './SDKConfig';
|
|
3
|
-
export * from './SDKContext';
|
|
4
3
|
export * from './testUtils';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mdXNpb25hdXRoLWFuZ3VsYXItc2RrL3NyYy9zZGtjb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9TREtDb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vU0RLQ29uZmlnJztcbmV4cG9ydCB7IHR5cGUgU0RLQ29udGV4dCB9IGZyb20gJy4vU0RLQ29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlc3RVdGlscyc7XG5leHBvcnQgeyB0eXBlIENvb2tpZUFkYXB0ZXIgfSBmcm9tICcuL0Nvb2tpZUhlbHBlcnMnO1xuIl19
|
|
@@ -11,11 +11,11 @@ class UrlHelper {
|
|
|
11
11
|
this.redirectUri = config.redirectUri;
|
|
12
12
|
this.scope = config.scope;
|
|
13
13
|
this.postLogoutRedirectUri = config.postLogoutRedirectUri;
|
|
14
|
-
this.mePath = config.mePath ?? '/app/me';
|
|
15
|
-
this.loginPath = config.loginPath ?? '/app/login';
|
|
16
|
-
this.registerPath = config.registerPath ?? '/app/register';
|
|
17
|
-
this.logoutPath = config.logoutPath ?? '/app/logout';
|
|
18
|
-
this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh';
|
|
14
|
+
this.mePath = config.mePath ?? '/app/me/';
|
|
15
|
+
this.loginPath = config.loginPath ?? '/app/login/';
|
|
16
|
+
this.registerPath = config.registerPath ?? '/app/register/';
|
|
17
|
+
this.logoutPath = config.logoutPath ?? '/app/logout/';
|
|
18
|
+
this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh/';
|
|
19
19
|
}
|
|
20
20
|
getMeUrl() {
|
|
21
21
|
return this.generateUrl(this.mePath);
|
|
@@ -47,6 +47,11 @@ class UrlHelper {
|
|
|
47
47
|
client_id: this.clientId,
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
+
getAccountManagementUrl() {
|
|
51
|
+
return this.generateUrl('/account/', {
|
|
52
|
+
client_id: this.clientId,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
50
55
|
generateUrl(path, params) {
|
|
51
56
|
const url = new URL(this.serverUrl);
|
|
52
57
|
url.pathname = path;
|
|
@@ -178,6 +183,9 @@ class SDKCore {
|
|
|
178
183
|
startLogout() {
|
|
179
184
|
window.location.assign(this.urlHelper.getLogoutUrl());
|
|
180
185
|
}
|
|
186
|
+
manageAccount() {
|
|
187
|
+
window.location.assign(this.urlHelper.getAccountManagementUrl());
|
|
188
|
+
}
|
|
181
189
|
async fetchUserInfo() {
|
|
182
190
|
const userInfoResponse = await fetch(this.urlHelper.getMeUrl(), {
|
|
183
191
|
credentials: 'include',
|
|
@@ -197,9 +205,12 @@ class SDKCore {
|
|
|
197
205
|
},
|
|
198
206
|
});
|
|
199
207
|
if (!(response.status >= 200 && response.status < 300)) {
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
208
|
+
const errorDetails = {
|
|
209
|
+
status: response.status,
|
|
210
|
+
details: (await response?.text()) ||
|
|
211
|
+
'Failed to refresh fusionauth access token',
|
|
212
|
+
};
|
|
213
|
+
throw new Error(JSON.stringify(errorDetails));
|
|
203
214
|
}
|
|
204
215
|
// a successful request means that app_exp was bumped into the future.
|
|
205
216
|
// reschedule the access token expiration event.
|
|
@@ -237,7 +248,11 @@ class SDKCore {
|
|
|
237
248
|
get at_exp() {
|
|
238
249
|
return getAccessTokenExpirationMoment(this.config.accessTokenExpireCookieName, this.config.cookieAdapter);
|
|
239
250
|
}
|
|
240
|
-
/**
|
|
251
|
+
/**
|
|
252
|
+
* Schedules `onTokenExpiration` at moment of access token expiration.
|
|
253
|
+
* SDKCore is not necessarily reactive like React, Angular, and Vue.
|
|
254
|
+
* so `onTokenExpiration` is for reactive frameworks to hook in and perform actions as on token expiration.
|
|
255
|
+
*/
|
|
241
256
|
scheduleTokenExpiration() {
|
|
242
257
|
clearTimeout(this.tokenExpirationTimeout);
|
|
243
258
|
const now = new Date().getTime();
|
|
@@ -382,10 +397,17 @@ class FusionAuthService {
|
|
|
382
397
|
logout() {
|
|
383
398
|
this.core.startLogout();
|
|
384
399
|
}
|
|
385
|
-
|
|
386
|
-
|
|
400
|
+
/**
|
|
401
|
+
* Redirects to [self service account management](https://fusionauth.io/docs/lifecycle/manage-users/account-management/)
|
|
402
|
+
* Self service account management is only available in FusionAuth paid plans.
|
|
403
|
+
*/
|
|
404
|
+
manageAccount() {
|
|
405
|
+
this.core.manageAccount();
|
|
406
|
+
}
|
|
407
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthService, deps: [{ token: FUSIONAUTH_SERVICE_CONFIG }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
408
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthService, providedIn: 'root' }); }
|
|
387
409
|
}
|
|
388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthService, decorators: [{
|
|
389
411
|
type: Injectable,
|
|
390
412
|
args: [{
|
|
391
413
|
providedIn: 'root',
|
|
@@ -405,10 +427,10 @@ class FusionAuthLoginButtonComponent {
|
|
|
405
427
|
login() {
|
|
406
428
|
this.fusionAuth.startLogin(this.state);
|
|
407
429
|
}
|
|
408
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
409
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
430
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLoginButtonComponent, deps: [{ token: FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
431
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthLoginButtonComponent, selector: "fa-login", inputs: { state: "state" }, ngImport: i0, template: "<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }); }
|
|
410
432
|
}
|
|
411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLoginButtonComponent, decorators: [{
|
|
412
434
|
type: Component,
|
|
413
435
|
args: [{ selector: 'fa-login', template: "<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }]
|
|
414
436
|
}], ctorParameters: () => [{ type: FusionAuthService }], propDecorators: { state: [{
|
|
@@ -422,10 +444,10 @@ class FusionAuthLogoutButtonComponent {
|
|
|
422
444
|
logout() {
|
|
423
445
|
this.fusionAuth.logout();
|
|
424
446
|
}
|
|
425
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
426
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
447
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLogoutButtonComponent, deps: [{ token: FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
448
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthLogoutButtonComponent, selector: "fa-logout", ngImport: i0, template: "<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n", styles: [".fa-logout-button{padding:7px 13px;border-radius:3px;display:block;border:solid 1px #083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:12px;text-align:center;color:#083b94}.fa-logout-button:hover{cursor:pointer}\n"] }); }
|
|
427
449
|
}
|
|
428
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthLogoutButtonComponent, decorators: [{
|
|
429
451
|
type: Component,
|
|
430
452
|
args: [{ selector: 'fa-logout', template: "<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n", styles: [".fa-logout-button{padding:7px 13px;border-radius:3px;display:block;border:solid 1px #083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:12px;text-align:center;color:#083b94}.fa-logout-button:hover{cursor:pointer}\n"] }]
|
|
431
453
|
}], ctorParameters: () => [{ type: FusionAuthService }] });
|
|
@@ -437,16 +459,31 @@ class FusionAuthRegisterButtonComponent {
|
|
|
437
459
|
register() {
|
|
438
460
|
this.fusionAuth.startRegistration(this.state);
|
|
439
461
|
}
|
|
440
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
441
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
462
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthRegisterButtonComponent, deps: [{ token: FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
463
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthRegisterButtonComponent, selector: "fa-register", inputs: { state: "state" }, ngImport: i0, template: "<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }); }
|
|
442
464
|
}
|
|
443
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthRegisterButtonComponent, decorators: [{
|
|
444
466
|
type: Component,
|
|
445
467
|
args: [{ selector: 'fa-register', template: "<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }]
|
|
446
468
|
}], ctorParameters: () => [{ type: FusionAuthService }], propDecorators: { state: [{
|
|
447
469
|
type: Input
|
|
448
470
|
}] } });
|
|
449
471
|
|
|
472
|
+
class FusionAuthAccountButtonComponent {
|
|
473
|
+
constructor(fusionAuth) {
|
|
474
|
+
this.fusionAuth = fusionAuth;
|
|
475
|
+
}
|
|
476
|
+
manageAccount() {
|
|
477
|
+
this.fusionAuth.manageAccount();
|
|
478
|
+
}
|
|
479
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthAccountButtonComponent, deps: [{ token: FusionAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
480
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FusionAuthAccountButtonComponent, selector: "fa-account", ngImport: i0, template: "<button class=\"fa-button\" (click)=\"manageAccount()\">\n <span>manage account</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }); }
|
|
481
|
+
}
|
|
482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthAccountButtonComponent, decorators: [{
|
|
483
|
+
type: Component,
|
|
484
|
+
args: [{ selector: 'fa-account', template: "<button class=\"fa-button\" (click)=\"manageAccount()\">\n <span>manage account</span>\n</button>\n", styles: [".fa-button{padding:16px 16px 13px;border-radius:8px;background-color:#083b94;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:18px;font-weight:600;text-align:center;color:#fff;width:400px}.fa-button:hover{cursor:pointer}\n"] }]
|
|
485
|
+
}], ctorParameters: () => [{ type: FusionAuthService }] });
|
|
486
|
+
|
|
450
487
|
class FusionAuthModule {
|
|
451
488
|
static forRoot(fusionAuthConfig) {
|
|
452
489
|
return {
|
|
@@ -457,27 +494,31 @@ class FusionAuthModule {
|
|
|
457
494
|
],
|
|
458
495
|
};
|
|
459
496
|
}
|
|
460
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
461
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
497
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
498
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule, declarations: [FusionAuthLoginButtonComponent,
|
|
462
499
|
FusionAuthLogoutButtonComponent,
|
|
463
|
-
FusionAuthRegisterButtonComponent
|
|
500
|
+
FusionAuthRegisterButtonComponent,
|
|
501
|
+
FusionAuthAccountButtonComponent], exports: [FusionAuthLoginButtonComponent,
|
|
464
502
|
FusionAuthLogoutButtonComponent,
|
|
465
|
-
FusionAuthRegisterButtonComponent
|
|
466
|
-
|
|
503
|
+
FusionAuthRegisterButtonComponent,
|
|
504
|
+
FusionAuthAccountButtonComponent] }); }
|
|
505
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule }); }
|
|
467
506
|
}
|
|
468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FusionAuthModule, decorators: [{
|
|
469
508
|
type: NgModule,
|
|
470
509
|
args: [{
|
|
471
510
|
declarations: [
|
|
472
511
|
FusionAuthLoginButtonComponent,
|
|
473
512
|
FusionAuthLogoutButtonComponent,
|
|
474
513
|
FusionAuthRegisterButtonComponent,
|
|
514
|
+
FusionAuthAccountButtonComponent,
|
|
475
515
|
],
|
|
476
516
|
imports: [],
|
|
477
517
|
exports: [
|
|
478
518
|
FusionAuthLoginButtonComponent,
|
|
479
519
|
FusionAuthLogoutButtonComponent,
|
|
480
520
|
FusionAuthRegisterButtonComponent,
|
|
521
|
+
FusionAuthAccountButtonComponent,
|
|
481
522
|
],
|
|
482
523
|
}]
|
|
483
524
|
}] });
|
|
@@ -490,5 +531,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
490
531
|
* Generated bundle index. Do not edit.
|
|
491
532
|
*/
|
|
492
533
|
|
|
493
|
-
export { FusionAuthLoginButtonComponent, FusionAuthLogoutButtonComponent, FusionAuthModule, FusionAuthRegisterButtonComponent, FusionAuthService };
|
|
534
|
+
export { FusionAuthAccountButtonComponent, FusionAuthLoginButtonComponent, FusionAuthLogoutButtonComponent, FusionAuthModule, FusionAuthRegisterButtonComponent, FusionAuthService };
|
|
494
535
|
//# sourceMappingURL=fusionauth-angular-sdk.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusionauth-angular-sdk.mjs","sources":["../../../projects/fusionauth-angular-sdk/src/sdkcore/UrlHelper/UrlHelper.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/RedirectHelper/RedirectHelper.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/CookieHelpers/CookieHelpers.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/SDKCore/SDKCore.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/testUtils/mockLoggedIn.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/testUtils/mockWindowLocation.ts","../../../projects/fusionauth-angular-sdk/src/lib/SSRCookieAdapter.ts","../../../projects/fusionauth-angular-sdk/src/lib/injectionToken.ts","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.module.ts","../../../projects/fusionauth-angular-sdk/src/public-api.ts","../../../projects/fusionauth-angular-sdk/src/fusionauth-angular-sdk.ts"],"sourcesContent":["import { UrlHelperConfig, UrlHelperQueryParams } from './UrlHelperTypes';\n\n/** A class responsible for generating URLs that FusionAuth SDKs interact with. */\nexport class UrlHelper {\n serverUrl: string;\n clientId: string;\n redirectUri: string;\n scope?: string;\n\n mePath: string;\n loginPath: string;\n registerPath: string;\n logoutPath: string;\n tokenRefreshPath: string;\n postLogoutRedirectUri?: string;\n\n constructor(config: UrlHelperConfig) {\n this.serverUrl = config.serverUrl;\n this.clientId = config.clientId;\n this.redirectUri = config.redirectUri;\n this.scope = config.scope;\n this.postLogoutRedirectUri = config.postLogoutRedirectUri;\n\n this.mePath = config.mePath ?? '/app/me';\n this.loginPath = config.loginPath ?? '/app/login';\n this.registerPath = config.registerPath ?? '/app/register';\n this.logoutPath = config.logoutPath ?? '/app/logout';\n this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh';\n }\n\n getMeUrl(): URL {\n return this.generateUrl(this.mePath);\n }\n\n getLoginUrl(state?: string): URL {\n return this.generateUrl(this.loginPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state,\n });\n }\n\n getRegisterUrl(state?: string): URL {\n return this.generateUrl(this.registerPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state,\n });\n }\n\n getLogoutUrl(): URL {\n return this.generateUrl(this.logoutPath, {\n client_id: this.clientId,\n post_logout_redirect_uri: this.postLogoutRedirectUri || this.redirectUri,\n });\n }\n\n getTokenRefreshUrl(): URL {\n return this.generateUrl(this.tokenRefreshPath, {\n client_id: this.clientId,\n });\n }\n\n private generateUrl(path: string, params?: UrlHelperQueryParams): URL {\n const url = new URL(this.serverUrl);\n url.pathname = path;\n\n if (params) {\n const urlSearchParams = this.generateURLSearchParams(params);\n url.search = urlSearchParams.toString();\n }\n\n return url;\n }\n\n private generateURLSearchParams(\n params: UrlHelperQueryParams,\n ): URLSearchParams {\n const urlSearchParams = new URLSearchParams();\n\n Object.entries(params).forEach(([key, value]) => {\n if (value) {\n urlSearchParams.append(key, value);\n }\n });\n\n return urlSearchParams;\n }\n}\n","/** A class responsible for storing a redirect value in localStorage and cleanup afterward. */\nexport class RedirectHelper {\n private readonly REDIRECT_VALUE = 'fa-sdk-redirect-value';\n private get storage(): Storage {\n try {\n return localStorage;\n } catch {\n // fallback for non-browser environments where localStorage is not defined.\n return {\n /* eslint-disable */\n setItem(_key: string, _value: string) {},\n getItem(_key: string) {},\n removeItem(_key: string) {},\n /* eslint-enable */\n } as Storage;\n }\n }\n\n handlePreRedirect(state?: string) {\n const valueForStorage = `${this.generateRandomString()}:${state ?? ''}`;\n this.storage.setItem(this.REDIRECT_VALUE, valueForStorage);\n }\n\n handlePostRedirect(callback?: (state?: string) => void) {\n const stateValue = this.stateValue ?? undefined;\n callback?.(stateValue);\n this.storage.removeItem(this.REDIRECT_VALUE);\n }\n\n get didRedirect() {\n return Boolean(this.storage.getItem(this.REDIRECT_VALUE));\n }\n\n private get stateValue() {\n const redirectValue = this.storage.getItem(this.REDIRECT_VALUE);\n\n if (!redirectValue) {\n return null;\n }\n\n const [, ...stateValue] = redirectValue.split(':');\n return stateValue.join(':');\n }\n\n private generateRandomString() {\n const array = new Uint32Array(56 / 2);\n window.crypto.getRandomValues(array);\n return Array.from(array, (n: number) =>\n ('0' + n.toString(16)).substring(-2),\n ).join('');\n }\n}\n","/**\n * Gets the `app.at_exp` cookie and converts it to milliseconds since epoch.\n * Returns -1 if the cookie is not present.\n * @param cookieName - defaults to `app.at_exp`.\n * @param adapter - SSR frameworks like Nuxt, Next, and angular/ssr will pass in an adapter.\n */\nexport function getAccessTokenExpirationMoment(\n cookieName: string = 'app.at_exp',\n adapter?: CookieAdapter,\n): number | -1 {\n if (adapter) {\n return toMilliseconds(adapter.at_exp(cookieName));\n }\n\n let cookie;\n\n try {\n // `document` throws a ReferenceError if this runs in a\n // non-browser environment such as an SSR framework like Nuxt or Next.\n cookie = document.cookie;\n } catch {\n console.error(\n 'Error accessing cookies in fusionauth. If you are using SSR you must configure the SDK with a cookie adapter',\n );\n return -1;\n }\n\n const expCookie = cookie\n .split('; ')\n .map(c => c.split('='))\n .find(([name]) => name === cookieName);\n const cookieValue = expCookie?.[1];\n\n return toMilliseconds(cookieValue);\n}\n\nexport interface CookieAdapter {\n /** returns the `app.at_exp` cookie without manipulating the value. */\n at_exp: (cookieName?: string) => number | string | undefined;\n}\n\nfunction toMilliseconds(seconds?: number | string): number {\n if (!seconds) return -1;\n else return Number(seconds) * 1000;\n}\n","import { UrlHelper } from '../UrlHelper';\nimport { SDKConfig } from '../SDKConfig';\nimport { UserInfo } from '../SDKContext';\nimport { RedirectHelper } from '../RedirectHelper';\nimport { getAccessTokenExpirationMoment } from '../CookieHelpers';\n\n/** A class containing framework-agnostic SDK methods */\nexport class SDKCore {\n private config: SDKConfig;\n private urlHelper: UrlHelper;\n private redirectHelper: RedirectHelper = new RedirectHelper();\n private tokenExpirationTimeout?: NodeJS.Timeout;\n\n constructor(config: SDKConfig) {\n this.config = config;\n this.urlHelper = new UrlHelper({\n serverUrl: config.serverUrl,\n clientId: config.clientId,\n redirectUri: config.redirectUri,\n scope: config.scope,\n mePath: config.mePath,\n loginPath: config.loginPath,\n registerPath: config.registerPath,\n logoutPath: config.logoutPath,\n tokenRefreshPath: config.tokenRefreshPath,\n postLogoutRedirectUri: config.postLogoutRedirectUri,\n });\n this.scheduleTokenExpiration();\n }\n\n startLogin(state?: string) {\n this.redirectHelper.handlePreRedirect(state);\n window.location.assign(this.urlHelper.getLoginUrl(state));\n }\n\n startRegister(state?: string) {\n this.redirectHelper.handlePreRedirect(state);\n window.location.assign(this.urlHelper.getRegisterUrl(state));\n }\n\n startLogout() {\n window.location.assign(this.urlHelper.getLogoutUrl());\n }\n\n async fetchUserInfo() {\n const userInfoResponse = await fetch(this.urlHelper.getMeUrl(), {\n credentials: 'include',\n });\n\n if (!userInfoResponse.ok) {\n throw new Error(\n `Unable to fetch userInfo in fusionauth. Request failed with status code ${userInfoResponse?.status}`,\n );\n }\n\n const userInfo: UserInfo = await userInfoResponse.json();\n return userInfo;\n }\n\n async refreshToken(): Promise<Response> {\n const response = await fetch(this.urlHelper.getTokenRefreshUrl(), {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'text/plain',\n },\n });\n\n if (!(response.status >= 200 && response.status < 300)) {\n const message =\n (await response?.text()) ||\n 'Error refreshing access token in fusionauth';\n throw new Error(message);\n }\n\n // a successful request means that app_exp was bumped into the future.\n // reschedule the access token expiration event.\n this.scheduleTokenExpiration();\n\n return response;\n }\n\n initAutoRefresh(): NodeJS.Timeout | undefined {\n if (!this.isLoggedIn) {\n return;\n }\n\n const secondsBeforeRefresh =\n this.config.autoRefreshSecondsBeforeExpiry ?? 10;\n\n const millisecondsBeforeRefresh = secondsBeforeRefresh * 1000;\n\n const now = new Date().getTime();\n const refreshTime = this.at_exp - millisecondsBeforeRefresh;\n const timeTillRefresh = Math.max(refreshTime - now, 0);\n\n return setTimeout(async () => {\n try {\n await this.refreshToken();\n this.initAutoRefresh();\n } catch (error) {\n this.config.onAutoRefreshFailure?.(error as Error);\n }\n }, timeTillRefresh);\n }\n\n handlePostRedirect(callback?: (state?: string) => void) {\n if (this.isLoggedIn && this.redirectHelper.didRedirect) {\n this.redirectHelper.handlePostRedirect(callback);\n }\n }\n\n get isLoggedIn() {\n return this.at_exp > new Date().getTime();\n }\n\n /** The moment of access token expiration in milliseconds since epoch. */\n private get at_exp(): number | -1 {\n return getAccessTokenExpirationMoment(\n this.config.accessTokenExpireCookieName,\n this.config.cookieAdapter,\n );\n }\n\n /** Schedules `onTokenExpiration` at moment of access token expiration. */\n private scheduleTokenExpiration(): void {\n clearTimeout(this.tokenExpirationTimeout);\n\n const now = new Date().getTime();\n const millisecondsTillExpiration = this.at_exp - now;\n\n if (millisecondsTillExpiration > 0) {\n this.tokenExpirationTimeout = setTimeout(\n this.config.onTokenExpiration,\n millisecondsTillExpiration,\n );\n }\n }\n}\n","/** Sets `app.at_exp` moment cookie so the user will be logged in for 1 hour. */\nfunction mockIsLoggedIn() {\n const expirationMoment = new Date();\n expirationMoment.setHours(expirationMoment.getHours() + 1);\n const oneHourInTheFutureInMilliseconds = expirationMoment.getTime() / 1000;\n document.cookie = `app.at_exp=${oneHourInTheFutureInMilliseconds}`;\n}\n\n/** Removes the `app.at_exp` cookie. */\nfunction removeAt_expCookie() {\n document.cookie = 'app.at_exp' + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';\n}\n\nexport { mockIsLoggedIn, removeAt_expCookie };\n","import { VitestUtils } from 'vitest';\n\nfunction mockWindowLocation(vi: VitestUtils) {\n const mockedLocation = {\n ...window.location,\n assign: vi.fn(),\n };\n vi.spyOn(window, 'location', 'get').mockReturnValue(mockedLocation);\n return mockedLocation;\n}\n\nexport { mockWindowLocation };\n","import { CookieAdapter } from '../sdkcore';\n\n/** An adapter class that supports accessing cookies with SSR */\nexport class SSRCookieAdapter implements CookieAdapter {\n constructor(private isBrowser: boolean) {}\n\n at_exp(cookieName: string = 'app.at_exp') {\n if (!this.isBrowser) {\n return;\n }\n\n try {\n const expCookie = document.cookie\n .split('; ')\n .map(c => c.split('='))\n .find(([name]) => name === cookieName);\n return expCookie?.[1];\n } catch (error) {\n console.error('Error within the SSRCookieAdapter: ', error);\n return -1;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { FusionAuthConfig } from './types';\n\nexport const FUSIONAUTH_SERVICE_CONFIG = new InjectionToken<FusionAuthConfig>(\n 'FUSIONAUTH_SERVICE_CONFIG',\n);\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Observable, catchError, BehaviorSubject } from 'rxjs';\n\nimport { SDKCore } from '../sdkcore';\nimport { SSRCookieAdapter } from './SSRCookieAdapter';\nimport { FusionAuthConfig, UserInfo } from './types';\nimport { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';\n\n/**\n * Service class to use with FusionAuth backend endpoints.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FusionAuthService {\n private core: SDKCore;\n private autoRefreshTimer?: NodeJS.Timeout;\n private isLoggedInSubject: BehaviorSubject<boolean>;\n\n constructor(\n @Inject(FUSIONAUTH_SERVICE_CONFIG) config: FusionAuthConfig,\n @Inject(PLATFORM_ID) platformId: Object,\n ) {\n this.core = new SDKCore({\n ...config,\n onTokenExpiration: () => {\n this.isLoggedInSubject.next(false);\n },\n cookieAdapter: new SSRCookieAdapter(isPlatformBrowser(platformId)),\n });\n\n this.isLoggedInSubject = new BehaviorSubject(this.core.isLoggedIn);\n this.isLoggedIn$ = this.isLoggedInSubject.asObservable();\n\n this.core.handlePostRedirect(config.onRedirect);\n\n if (config.shouldAutoRefresh && this.core.isLoggedIn) {\n this.initAutoRefresh();\n }\n }\n\n /** An observable representing whether the user is logged in. */\n isLoggedIn$: Observable<boolean>;\n\n /** A function that returns whether the user is logged in. This returned value is non-observable. */\n isLoggedIn() {\n return this.core.isLoggedIn;\n }\n\n /**\n * Refreshes the access token a single time.\n * Automatic token refreshing can be enabled if the SDK is configured with `shouldAutoRefresh`.\n */\n async refreshToken(): Promise<Response> {\n return await this.core.refreshToken();\n }\n\n /**\n * Initializes automatic access token refreshing.\n * This is handled automatically if the SDK is configured with `shouldAutoRefresh`.\n */\n initAutoRefresh(): void {\n if (this.autoRefreshTimer) {\n clearTimeout(this.autoRefreshTimer);\n }\n\n this.autoRefreshTimer = this.core.initAutoRefresh();\n }\n\n /**\n * Returns an observable request that fetches userInfo, and catches error.\n */\n getUserInfoObservable(callbacks?: {\n onBegin?: () => void;\n onDone?: () => void;\n }): Observable<UserInfo> {\n callbacks?.onBegin?.();\n return new Observable<UserInfo>(observer => {\n this.core\n .fetchUserInfo()\n .then(userInfo => {\n observer.next(userInfo);\n })\n .catch(error => {\n observer.error(error);\n })\n .finally(() => {\n callbacks?.onDone?.();\n });\n }).pipe(\n catchError(error => {\n throw error;\n }),\n );\n }\n\n /**\n * Fetches userInfo from the 'me' endpoint.\n * @throws {Error} - if an error occurred while fetching.\n */\n async getUserInfo(): Promise<UserInfo> {\n return await this.core.fetchUserInfo();\n }\n\n /**\n * Initiates login flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startLogin(state?: string): void {\n this.core.startLogin(state);\n }\n\n /**\n * Initiates register flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startRegistration(state?: string): void {\n this.core.startRegister(state);\n }\n\n /**\n * Initiates logout flow.\n */\n logout(): void {\n this.core.startLogout();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-login',\n templateUrl: './fusion-auth-login-button.component.html',\n styleUrls: ['./fusion-auth-login-button.component.scss'],\n})\nexport class FusionAuthLoginButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n login() {\n this.fusionAuth.startLogin(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n","import { Component } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-logout',\n templateUrl: './fusion-auth-logout-button.component.html',\n styleUrls: ['./fusion-auth-logout-button.component.scss'],\n})\nexport class FusionAuthLogoutButtonComponent {\n constructor(private fusionAuth: FusionAuthService) {}\n\n logout() {\n this.fusionAuth.logout();\n }\n}\n","<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-register',\n templateUrl: './fusion-auth-register-button.component.html',\n styleUrls: ['./fusion-auth-register-button.component.scss'],\n})\nexport class FusionAuthRegisterButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n register() {\n this.fusionAuth.startRegistration(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FusionAuthConfig } from './types';\nimport { FusionAuthService } from './fusion-auth.service';\nimport { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';\nimport { FusionAuthLoginButtonComponent } from './components/fusionauth-login.button/fusion-auth-login-button.component';\nimport { FusionAuthLogoutButtonComponent } from './components/fusionauth-logout.button/fusion-auth-logout-button.component';\nimport { FusionAuthRegisterButtonComponent } from './components/fusionauth-register.button/fusion-auth-register-button.component';\n\n@NgModule({\n declarations: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n ],\n imports: [],\n exports: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n ],\n})\nexport class FusionAuthModule {\n static forRoot(\n fusionAuthConfig: FusionAuthConfig,\n ): ModuleWithProviders<FusionAuthModule> {\n return {\n ngModule: FusionAuthModule,\n providers: [\n { provide: FUSIONAUTH_SERVICE_CONFIG, useValue: fusionAuthConfig },\n FusionAuthService,\n ],\n };\n }\n}\n","/*\n * Public API Surface of fusionauth-angular-sdk\n */\n\nexport * from './lib/fusion-auth.service';\nexport * from './lib/components/fusionauth-login.button/fusion-auth-login-button.component';\nexport * from './lib/components/fusionauth-logout.button/fusion-auth-logout-button.component';\nexport * from './lib/components/fusionauth-register.button/fusion-auth-register-button.component';\nexport * from './lib/fusion-auth.module';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FusionAuthService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fusionauth-angular-sdk.mjs","sources":["../../../projects/fusionauth-angular-sdk/src/sdkcore/UrlHelper/UrlHelper.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/RedirectHelper/RedirectHelper.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/CookieHelpers/CookieHelpers.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/SDKCore/SDKCore.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/testUtils/mockLoggedIn.ts","../../../projects/fusionauth-angular-sdk/src/sdkcore/testUtils/mockWindowLocation.ts","../../../projects/fusionauth-angular-sdk/src/lib/SSRCookieAdapter.ts","../../../projects/fusionauth-angular-sdk/src/lib/injectionToken.ts","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts","../../../projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.html","../../../projects/fusionauth-angular-sdk/src/lib/fusion-auth.module.ts","../../../projects/fusionauth-angular-sdk/src/public-api.ts","../../../projects/fusionauth-angular-sdk/src/fusionauth-angular-sdk.ts"],"sourcesContent":["import { UrlHelperConfig, UrlHelperQueryParams } from './UrlHelperTypes';\n\n/** A class responsible for generating URLs that FusionAuth SDKs interact with. */\nexport class UrlHelper {\n serverUrl: string;\n clientId: string;\n redirectUri: string;\n scope?: string;\n\n mePath: string;\n loginPath: string;\n registerPath: string;\n logoutPath: string;\n tokenRefreshPath: string;\n postLogoutRedirectUri?: string;\n\n constructor(config: UrlHelperConfig) {\n this.serverUrl = config.serverUrl;\n this.clientId = config.clientId;\n this.redirectUri = config.redirectUri;\n this.scope = config.scope;\n this.postLogoutRedirectUri = config.postLogoutRedirectUri;\n\n this.mePath = config.mePath ?? '/app/me/';\n this.loginPath = config.loginPath ?? '/app/login/';\n this.registerPath = config.registerPath ?? '/app/register/';\n this.logoutPath = config.logoutPath ?? '/app/logout/';\n this.tokenRefreshPath = config.tokenRefreshPath ?? '/app/refresh/';\n }\n\n getMeUrl(): URL {\n return this.generateUrl(this.mePath);\n }\n\n getLoginUrl(state?: string): URL {\n return this.generateUrl(this.loginPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state,\n });\n }\n\n getRegisterUrl(state?: string): URL {\n return this.generateUrl(this.registerPath, {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n scope: this.scope,\n state,\n });\n }\n\n getLogoutUrl(): URL {\n return this.generateUrl(this.logoutPath, {\n client_id: this.clientId,\n post_logout_redirect_uri: this.postLogoutRedirectUri || this.redirectUri,\n });\n }\n\n getTokenRefreshUrl(): URL {\n return this.generateUrl(this.tokenRefreshPath, {\n client_id: this.clientId,\n });\n }\n\n getAccountManagementUrl(): URL {\n return this.generateUrl('/account/', {\n client_id: this.clientId,\n });\n }\n\n private generateUrl(path: string, params?: UrlHelperQueryParams): URL {\n const url = new URL(this.serverUrl);\n url.pathname = path;\n\n if (params) {\n const urlSearchParams = this.generateURLSearchParams(params);\n url.search = urlSearchParams.toString();\n }\n\n return url;\n }\n\n private generateURLSearchParams(\n params: UrlHelperQueryParams,\n ): URLSearchParams {\n const urlSearchParams = new URLSearchParams();\n\n Object.entries(params).forEach(([key, value]) => {\n if (value) {\n urlSearchParams.append(key, value);\n }\n });\n\n return urlSearchParams;\n }\n}\n","/** A class responsible for storing a redirect value in localStorage and cleanup afterward. */\nexport class RedirectHelper {\n private readonly REDIRECT_VALUE = 'fa-sdk-redirect-value';\n private get storage(): Storage {\n try {\n return localStorage;\n } catch {\n // fallback for non-browser environments where localStorage is not defined.\n return {\n /* eslint-disable */\n setItem(_key: string, _value: string) {},\n getItem(_key: string) {},\n removeItem(_key: string) {},\n /* eslint-enable */\n } as Storage;\n }\n }\n\n handlePreRedirect(state?: string) {\n const valueForStorage = `${this.generateRandomString()}:${state ?? ''}`;\n this.storage.setItem(this.REDIRECT_VALUE, valueForStorage);\n }\n\n handlePostRedirect(callback?: (state?: string) => void) {\n const stateValue = this.stateValue ?? undefined;\n callback?.(stateValue);\n this.storage.removeItem(this.REDIRECT_VALUE);\n }\n\n get didRedirect() {\n return Boolean(this.storage.getItem(this.REDIRECT_VALUE));\n }\n\n private get stateValue() {\n const redirectValue = this.storage.getItem(this.REDIRECT_VALUE);\n\n if (!redirectValue) {\n return null;\n }\n\n const [, ...stateValue] = redirectValue.split(':');\n return stateValue.join(':');\n }\n\n private generateRandomString() {\n const array = new Uint32Array(56 / 2);\n window.crypto.getRandomValues(array);\n return Array.from(array, (n: number) =>\n ('0' + n.toString(16)).substring(-2),\n ).join('');\n }\n}\n","/**\n * Gets the `app.at_exp` cookie and converts it to milliseconds since epoch.\n * Returns -1 if the cookie is not present.\n * @param cookieName - defaults to `app.at_exp`.\n * @param adapter - SSR frameworks like Nuxt, Next, and angular/ssr will pass in an adapter.\n */\nexport function getAccessTokenExpirationMoment(\n cookieName: string = 'app.at_exp',\n adapter?: CookieAdapter,\n): number | -1 {\n if (adapter) {\n return toMilliseconds(adapter.at_exp(cookieName));\n }\n\n let cookie;\n\n try {\n // `document` throws a ReferenceError if this runs in a\n // non-browser environment such as an SSR framework like Nuxt or Next.\n cookie = document.cookie;\n } catch {\n console.error(\n 'Error accessing cookies in fusionauth. If you are using SSR you must configure the SDK with a cookie adapter',\n );\n return -1;\n }\n\n const expCookie = cookie\n .split('; ')\n .map(c => c.split('='))\n .find(([name]) => name === cookieName);\n const cookieValue = expCookie?.[1];\n\n return toMilliseconds(cookieValue);\n}\n\nexport interface CookieAdapter {\n /** returns the `app.at_exp` cookie without manipulating the value. */\n at_exp: (cookieName?: string) => number | string | undefined;\n}\n\nfunction toMilliseconds(seconds?: number | string): number {\n if (!seconds) return -1;\n else return Number(seconds) * 1000;\n}\n","import { UrlHelper } from '../UrlHelper';\nimport { SDKConfig } from '../SDKConfig';\nimport { UserInfo } from '../SDKContext';\nimport { RedirectHelper } from '../RedirectHelper';\nimport { getAccessTokenExpirationMoment } from '../CookieHelpers';\n\n/** A class containing framework-agnostic SDK methods */\nexport class SDKCore {\n private config: SDKConfig;\n private urlHelper: UrlHelper;\n private redirectHelper: RedirectHelper = new RedirectHelper();\n private tokenExpirationTimeout?: NodeJS.Timeout;\n\n constructor(config: SDKConfig) {\n this.config = config;\n this.urlHelper = new UrlHelper({\n serverUrl: config.serverUrl,\n clientId: config.clientId,\n redirectUri: config.redirectUri,\n scope: config.scope,\n mePath: config.mePath,\n loginPath: config.loginPath,\n registerPath: config.registerPath,\n logoutPath: config.logoutPath,\n tokenRefreshPath: config.tokenRefreshPath,\n postLogoutRedirectUri: config.postLogoutRedirectUri,\n });\n this.scheduleTokenExpiration();\n }\n\n startLogin(state?: string) {\n this.redirectHelper.handlePreRedirect(state);\n window.location.assign(this.urlHelper.getLoginUrl(state));\n }\n\n startRegister(state?: string) {\n this.redirectHelper.handlePreRedirect(state);\n window.location.assign(this.urlHelper.getRegisterUrl(state));\n }\n\n startLogout() {\n window.location.assign(this.urlHelper.getLogoutUrl());\n }\n\n manageAccount() {\n window.location.assign(this.urlHelper.getAccountManagementUrl());\n }\n\n async fetchUserInfo<T = UserInfo>() {\n const userInfoResponse = await fetch(this.urlHelper.getMeUrl(), {\n credentials: 'include',\n });\n\n if (!userInfoResponse.ok) {\n throw new Error(\n `Unable to fetch userInfo in fusionauth. Request failed with status code ${userInfoResponse?.status}`,\n );\n }\n\n const userInfo: T = await userInfoResponse.json();\n return userInfo;\n }\n\n async refreshToken(): Promise<Response> {\n const response = await fetch(this.urlHelper.getTokenRefreshUrl(), {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'text/plain',\n },\n });\n if (!(response.status >= 200 && response.status < 300)) {\n const errorDetails = {\n status: response.status,\n details:\n (await response?.text()) ||\n 'Failed to refresh fusionauth access token',\n };\n throw new Error(JSON.stringify(errorDetails));\n }\n\n // a successful request means that app_exp was bumped into the future.\n // reschedule the access token expiration event.\n this.scheduleTokenExpiration();\n\n return response;\n }\n\n initAutoRefresh(): NodeJS.Timeout | undefined {\n if (!this.isLoggedIn) {\n return;\n }\n\n const secondsBeforeRefresh =\n this.config.autoRefreshSecondsBeforeExpiry ?? 10;\n\n const millisecondsBeforeRefresh = secondsBeforeRefresh * 1000;\n\n const now = new Date().getTime();\n const refreshTime = this.at_exp - millisecondsBeforeRefresh;\n const timeTillRefresh = Math.max(refreshTime - now, 0);\n\n return setTimeout(async () => {\n try {\n await this.refreshToken();\n this.initAutoRefresh();\n } catch (error) {\n this.config.onAutoRefreshFailure?.(error as Error);\n }\n }, timeTillRefresh);\n }\n\n handlePostRedirect(callback?: (state?: string) => void) {\n if (this.isLoggedIn && this.redirectHelper.didRedirect) {\n this.redirectHelper.handlePostRedirect(callback);\n }\n }\n\n get isLoggedIn() {\n return this.at_exp > new Date().getTime();\n }\n\n /** The moment of access token expiration in milliseconds since epoch. */\n private get at_exp(): number | -1 {\n return getAccessTokenExpirationMoment(\n this.config.accessTokenExpireCookieName,\n this.config.cookieAdapter,\n );\n }\n\n /**\n * Schedules `onTokenExpiration` at moment of access token expiration.\n * SDKCore is not necessarily reactive like React, Angular, and Vue.\n * so `onTokenExpiration` is for reactive frameworks to hook in and perform actions as on token expiration.\n */\n private scheduleTokenExpiration(): void {\n clearTimeout(this.tokenExpirationTimeout);\n\n const now = new Date().getTime();\n const millisecondsTillExpiration = this.at_exp - now;\n\n if (millisecondsTillExpiration > 0) {\n this.tokenExpirationTimeout = setTimeout(\n this.config.onTokenExpiration,\n millisecondsTillExpiration,\n );\n }\n }\n}\n","/** Sets `app.at_exp` moment cookie so the user will be logged in for 1 hour. */\nfunction mockIsLoggedIn() {\n const expirationMoment = new Date();\n expirationMoment.setHours(expirationMoment.getHours() + 1);\n const oneHourInTheFutureInMilliseconds = expirationMoment.getTime() / 1000;\n document.cookie = `app.at_exp=${oneHourInTheFutureInMilliseconds}`;\n}\n\n/** Removes the `app.at_exp` cookie. */\nfunction removeAt_expCookie() {\n document.cookie = 'app.at_exp' + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';\n}\n\nexport { mockIsLoggedIn, removeAt_expCookie };\n","import { VitestUtils } from 'vitest';\n\nfunction mockWindowLocation(vi: VitestUtils) {\n const mockedLocation = {\n ...window.location,\n assign: vi.fn(),\n };\n vi.spyOn(window, 'location', 'get').mockReturnValue(mockedLocation);\n return mockedLocation;\n}\n\nexport { mockWindowLocation };\n","import { CookieAdapter } from '../sdkcore';\n\n/** An adapter class that supports accessing cookies with SSR */\nexport class SSRCookieAdapter implements CookieAdapter {\n constructor(private isBrowser: boolean) {}\n\n at_exp(cookieName: string = 'app.at_exp') {\n if (!this.isBrowser) {\n return;\n }\n\n try {\n const expCookie = document.cookie\n .split('; ')\n .map(c => c.split('='))\n .find(([name]) => name === cookieName);\n return expCookie?.[1];\n } catch (error) {\n console.error('Error within the SSRCookieAdapter: ', error);\n return -1;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { FusionAuthConfig } from './types';\n\nexport const FUSIONAUTH_SERVICE_CONFIG = new InjectionToken<FusionAuthConfig>(\n 'FUSIONAUTH_SERVICE_CONFIG',\n);\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Observable, catchError, BehaviorSubject } from 'rxjs';\n\nimport { SDKCore } from '../sdkcore';\nimport { SSRCookieAdapter } from './SSRCookieAdapter';\nimport { FusionAuthConfig, UserInfo } from './types';\nimport { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';\n\n/**\n * Service class to use with FusionAuth backend endpoints.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FusionAuthService<T = UserInfo> {\n private core: SDKCore;\n private autoRefreshTimer?: NodeJS.Timeout;\n private isLoggedInSubject: BehaviorSubject<boolean>;\n\n constructor(\n @Inject(FUSIONAUTH_SERVICE_CONFIG) config: FusionAuthConfig,\n @Inject(PLATFORM_ID) platformId: Object,\n ) {\n this.core = new SDKCore({\n ...config,\n onTokenExpiration: () => {\n this.isLoggedInSubject.next(false);\n },\n cookieAdapter: new SSRCookieAdapter(isPlatformBrowser(platformId)),\n });\n\n this.isLoggedInSubject = new BehaviorSubject(this.core.isLoggedIn);\n this.isLoggedIn$ = this.isLoggedInSubject.asObservable();\n\n this.core.handlePostRedirect(config.onRedirect);\n\n if (config.shouldAutoRefresh && this.core.isLoggedIn) {\n this.initAutoRefresh();\n }\n }\n\n /** An observable representing whether the user is logged in. */\n isLoggedIn$: Observable<boolean>;\n\n /** A function that returns whether the user is logged in. This returned value is non-observable. */\n isLoggedIn() {\n return this.core.isLoggedIn;\n }\n\n /**\n * Refreshes the access token a single time.\n * Automatic token refreshing can be enabled if the SDK is configured with `shouldAutoRefresh`.\n */\n async refreshToken(): Promise<Response> {\n return await this.core.refreshToken();\n }\n\n /**\n * Initializes automatic access token refreshing.\n * This is handled automatically if the SDK is configured with `shouldAutoRefresh`.\n */\n initAutoRefresh(): void {\n if (this.autoRefreshTimer) {\n clearTimeout(this.autoRefreshTimer);\n }\n\n this.autoRefreshTimer = this.core.initAutoRefresh();\n }\n\n /**\n * Returns an observable request that fetches userInfo, and catches error.\n */\n getUserInfoObservable(callbacks?: {\n onBegin?: () => void;\n onDone?: () => void;\n }): Observable<T> {\n callbacks?.onBegin?.();\n return new Observable<T>(observer => {\n this.core\n .fetchUserInfo<T>()\n .then(userInfo => {\n observer.next(userInfo);\n })\n .catch(error => {\n observer.error(error);\n })\n .finally(() => {\n callbacks?.onDone?.();\n });\n }).pipe(\n catchError(error => {\n throw error;\n }),\n );\n }\n\n /**\n * Fetches userInfo from the 'me' endpoint.\n * @throws {Error} - if an error occurred while fetching.\n */\n async getUserInfo<T>(): Promise<T> {\n return await this.core.fetchUserInfo<T>();\n }\n\n /**\n * Initiates login flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startLogin(state?: string): void {\n this.core.startLogin(state);\n }\n\n /**\n * Initiates register flow.\n * @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.\n */\n startRegistration(state?: string): void {\n this.core.startRegister(state);\n }\n\n /**\n * Initiates logout flow.\n */\n logout(): void {\n this.core.startLogout();\n }\n\n /**\n * Redirects to [self service account management](https://fusionauth.io/docs/lifecycle/manage-users/account-management/)\n * Self service account management is only available in FusionAuth paid plans.\n */\n manageAccount(): void {\n this.core.manageAccount();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-login',\n templateUrl: './fusion-auth-login-button.component.html',\n styleUrls: ['./fusion-auth-login-button.component.scss'],\n})\nexport class FusionAuthLoginButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n login() {\n this.fusionAuth.startLogin(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"login()\">\n <span>Login</span>\n</button>\n","import { Component } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-logout',\n templateUrl: './fusion-auth-logout-button.component.html',\n styleUrls: ['./fusion-auth-logout-button.component.scss'],\n})\nexport class FusionAuthLogoutButtonComponent {\n constructor(private fusionAuth: FusionAuthService) {}\n\n logout() {\n this.fusionAuth.logout();\n }\n}\n","<button class=\"fa-logout-button\" (click)=\"logout()\">\n <span>logout</span>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-register',\n templateUrl: './fusion-auth-register-button.component.html',\n styleUrls: ['./fusion-auth-register-button.component.scss'],\n})\nexport class FusionAuthRegisterButtonComponent {\n @Input() state: string | undefined;\n\n constructor(private fusionAuth: FusionAuthService) {}\n\n register() {\n this.fusionAuth.startRegistration(this.state);\n }\n}\n","<button class=\"fa-button\" (click)=\"register()\">\n <span>Register Now</span>\n</button>\n","import { Component } from '@angular/core';\nimport { FusionAuthService } from '../../fusion-auth.service';\n\n@Component({\n selector: 'fa-account',\n templateUrl: './fusion-auth-account-button.component.html',\n styleUrls: ['./fusion-auth-account-button.component.scss'],\n})\nexport class FusionAuthAccountButtonComponent {\n constructor(private fusionAuth: FusionAuthService) {}\n\n manageAccount() {\n this.fusionAuth.manageAccount();\n }\n}\n","<button class=\"fa-button\" (click)=\"manageAccount()\">\n <span>manage account</span>\n</button>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FusionAuthConfig } from './types';\nimport { FusionAuthService } from './fusion-auth.service';\nimport { FUSIONAUTH_SERVICE_CONFIG } from './injectionToken';\nimport { FusionAuthLoginButtonComponent } from './components/fusionauth-login.button/fusion-auth-login-button.component';\nimport { FusionAuthLogoutButtonComponent } from './components/fusionauth-logout.button/fusion-auth-logout-button.component';\nimport { FusionAuthRegisterButtonComponent } from './components/fusionauth-register.button/fusion-auth-register-button.component';\nimport { FusionAuthAccountButtonComponent } from './components/fusionauth-account.button/fusion-auth-account-button.component';\n\n@NgModule({\n declarations: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n FusionAuthAccountButtonComponent,\n ],\n imports: [],\n exports: [\n FusionAuthLoginButtonComponent,\n FusionAuthLogoutButtonComponent,\n FusionAuthRegisterButtonComponent,\n FusionAuthAccountButtonComponent,\n ],\n})\nexport class FusionAuthModule {\n static forRoot(\n fusionAuthConfig: FusionAuthConfig,\n ): ModuleWithProviders<FusionAuthModule> {\n return {\n ngModule: FusionAuthModule,\n providers: [\n { provide: FUSIONAUTH_SERVICE_CONFIG, useValue: fusionAuthConfig },\n FusionAuthService,\n ],\n };\n }\n}\n","/*\n * Public API Surface of fusionauth-angular-sdk\n */\n\nexport * from './lib/fusion-auth.service';\nexport * from './lib/components/fusionauth-login.button/fusion-auth-login-button.component';\nexport * from './lib/components/fusionauth-logout.button/fusion-auth-logout-button.component';\nexport * from './lib/components/fusionauth-register.button/fusion-auth-register-button.component';\nexport * from './lib/components/fusionauth-account.button/fusion-auth-account-button.component';\nexport * from './lib/fusion-auth.module';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FusionAuthService"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FusionAuthService } from '../../fusion-auth.service';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class FusionAuthAccountButtonComponent {
|
|
4
|
+
private fusionAuth;
|
|
5
|
+
constructor(fusionAuth: FusionAuthService);
|
|
6
|
+
manageAccount(): void;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FusionAuthAccountButtonComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FusionAuthAccountButtonComponent, "fa-account", never, {}, {}, never, never, false, never>;
|
|
9
|
+
}
|
|
@@ -4,9 +4,10 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "./components/fusionauth-login.button/fusion-auth-login-button.component";
|
|
5
5
|
import * as i2 from "./components/fusionauth-logout.button/fusion-auth-logout-button.component";
|
|
6
6
|
import * as i3 from "./components/fusionauth-register.button/fusion-auth-register-button.component";
|
|
7
|
+
import * as i4 from "./components/fusionauth-account.button/fusion-auth-account-button.component";
|
|
7
8
|
export declare class FusionAuthModule {
|
|
8
9
|
static forRoot(fusionAuthConfig: FusionAuthConfig): ModuleWithProviders<FusionAuthModule>;
|
|
9
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<FusionAuthModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FusionAuthModule, [typeof i1.FusionAuthLoginButtonComponent, typeof i2.FusionAuthLogoutButtonComponent, typeof i3.FusionAuthRegisterButtonComponent], never, [typeof i1.FusionAuthLoginButtonComponent, typeof i2.FusionAuthLogoutButtonComponent, typeof i3.FusionAuthRegisterButtonComponent]>;
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FusionAuthModule, [typeof i1.FusionAuthLoginButtonComponent, typeof i2.FusionAuthLogoutButtonComponent, typeof i3.FusionAuthRegisterButtonComponent, typeof i4.FusionAuthAccountButtonComponent], never, [typeof i1.FusionAuthLoginButtonComponent, typeof i2.FusionAuthLogoutButtonComponent, typeof i3.FusionAuthRegisterButtonComponent, typeof i4.FusionAuthAccountButtonComponent]>;
|
|
11
12
|
static ɵinj: i0.ɵɵInjectorDeclaration<FusionAuthModule>;
|
|
12
13
|
}
|
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
/**
|
|
5
5
|
* Service class to use with FusionAuth backend endpoints.
|
|
6
6
|
*/
|
|
7
|
-
export declare class FusionAuthService {
|
|
7
|
+
export declare class FusionAuthService<T = UserInfo> {
|
|
8
8
|
private core;
|
|
9
9
|
private autoRefreshTimer?;
|
|
10
10
|
private isLoggedInSubject;
|
|
@@ -29,12 +29,12 @@ export declare class FusionAuthService {
|
|
|
29
29
|
getUserInfoObservable(callbacks?: {
|
|
30
30
|
onBegin?: () => void;
|
|
31
31
|
onDone?: () => void;
|
|
32
|
-
}): Observable<
|
|
32
|
+
}): Observable<T>;
|
|
33
33
|
/**
|
|
34
34
|
* Fetches userInfo from the 'me' endpoint.
|
|
35
35
|
* @throws {Error} - if an error occurred while fetching.
|
|
36
36
|
*/
|
|
37
|
-
getUserInfo(): Promise<
|
|
37
|
+
getUserInfo<T>(): Promise<T>;
|
|
38
38
|
/**
|
|
39
39
|
* Initiates login flow.
|
|
40
40
|
* @param {string} [state] - Optional value to be echoed back to the SDK upon redirect.
|
|
@@ -49,6 +49,11 @@ export declare class FusionAuthService {
|
|
|
49
49
|
* Initiates logout flow.
|
|
50
50
|
*/
|
|
51
51
|
logout(): void;
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Redirects to [self service account management](https://fusionauth.io/docs/lifecycle/manage-users/account-management/)
|
|
54
|
+
* Self service account management is only available in FusionAuth paid plans.
|
|
55
|
+
*/
|
|
56
|
+
manageAccount(): void;
|
|
57
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FusionAuthService<any>, never>;
|
|
58
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FusionAuthService<any>>;
|
|
54
59
|
}
|
package/lib/types.d.ts
CHANGED
|
@@ -61,14 +61,18 @@ export interface FusionAuthConfig {
|
|
|
61
61
|
}
|
|
62
62
|
export interface UserInfo {
|
|
63
63
|
applicationId?: string;
|
|
64
|
+
birthdate?: string;
|
|
64
65
|
email?: string;
|
|
65
66
|
email_verified?: boolean;
|
|
66
67
|
family_name?: string;
|
|
67
68
|
given_name?: string;
|
|
69
|
+
middle_name?: string;
|
|
70
|
+
name?: string;
|
|
71
|
+
phone_number?: string;
|
|
68
72
|
picture?: string;
|
|
73
|
+
preferred_username?: string;
|
|
69
74
|
roles?: any[];
|
|
70
75
|
sid?: string;
|
|
71
76
|
sub?: string;
|
|
72
77
|
tid?: string;
|
|
73
|
-
phone_number?: string;
|
|
74
78
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export * from './lib/fusion-auth.service';
|
|
|
2
2
|
export * from './lib/components/fusionauth-login.button/fusion-auth-login-button.component';
|
|
3
3
|
export * from './lib/components/fusionauth-logout.button/fusion-auth-logout-button.component';
|
|
4
4
|
export * from './lib/components/fusionauth-register.button/fusion-auth-register-button.component';
|
|
5
|
+
export * from './lib/components/fusionauth-account.button/fusion-auth-account-button.component';
|
|
5
6
|
export * from './lib/fusion-auth.module';
|
|
6
7
|
export * from './lib/types';
|
|
@@ -52,14 +52,18 @@ export interface SDKContext {
|
|
|
52
52
|
*/
|
|
53
53
|
export type UserInfo = {
|
|
54
54
|
applicationId?: string;
|
|
55
|
+
birthdate?: string;
|
|
55
56
|
email?: string;
|
|
56
57
|
email_verified?: boolean;
|
|
57
58
|
family_name?: string;
|
|
58
59
|
given_name?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
middle_name?: string;
|
|
62
|
+
phone_number?: string;
|
|
59
63
|
picture?: string;
|
|
64
|
+
preferred_username?: string;
|
|
60
65
|
roles?: any[];
|
|
61
66
|
sid?: string;
|
|
62
67
|
sub?: string;
|
|
63
68
|
tid?: string;
|
|
64
|
-
phone_number?: string;
|
|
65
69
|
};
|
|
@@ -11,13 +11,18 @@ export declare class SDKCore {
|
|
|
11
11
|
startLogin(state?: string): void;
|
|
12
12
|
startRegister(state?: string): void;
|
|
13
13
|
startLogout(): void;
|
|
14
|
-
|
|
14
|
+
manageAccount(): void;
|
|
15
|
+
fetchUserInfo<T = UserInfo>(): Promise<T>;
|
|
15
16
|
refreshToken(): Promise<Response>;
|
|
16
17
|
initAutoRefresh(): NodeJS.Timeout | undefined;
|
|
17
18
|
handlePostRedirect(callback?: (state?: string) => void): void;
|
|
18
19
|
get isLoggedIn(): boolean;
|
|
19
20
|
/** The moment of access token expiration in milliseconds since epoch. */
|
|
20
21
|
private get at_exp();
|
|
21
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Schedules `onTokenExpiration` at moment of access token expiration.
|
|
24
|
+
* SDKCore is not necessarily reactive like React, Angular, and Vue.
|
|
25
|
+
* so `onTokenExpiration` is for reactive frameworks to hook in and perform actions as on token expiration.
|
|
26
|
+
*/
|
|
22
27
|
private scheduleTokenExpiration;
|
|
23
28
|
}
|
package/sdkcore/index.d.ts
CHANGED