@falcon-ng/tailwind 0.0.9 → 0.0.10
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.
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class EnvironmentViewModel {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvbW9kZWwvZW52aXJvbm1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0Isb0JBQW9CO0NBS3pDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudmlyb25tZW50Vmlld01vZGVsIHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgcHJvZHVjdGlvbjogYm9vbGVhbjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgb3BlbklEPzogSU9wZW5JZFZpZXdNb2RlbDtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgYmFzZVVybD86IHN0cmluZztcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc25hY2tCYXJFbmFibGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogSW50ZXJmYWNlIHVzZSBmb3IgYW4gYXBwIHNldHRpbmcgY29uZmlndXJhdGlvbiBmb3IgT3BlbiBJZCBDbGllbnQgc2V0dGluZy5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElPcGVuSWRWaWV3TW9kZWwge1xuICBhdXRob3JpdHk/OiBzdHJpbmc7XG4gIGNsaWVudF9pZD86IHN0cmluZztcbiAgcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICByZXNwb25zZV90eXBlPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbiAgc2lsZW50X3JlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBmaWx0ZXJQcm90b2NvbENsYWltcz86IGJvb2xlYW47XG4gIGxvYWRVc2VySW5mbz86IGJvb2xlYW47XG4gIGF1dG9tYXRpY1NpbGVudFJlbmV3PzogYm9vbGVhbjtcbiAgbW9uaXRvclNlc3Npb24/OiBib29sZWFuO1xuICBhY2Nlc3NUb2tlbkV4cGlyaW5nTm90aWZpY2F0aW9uVGltZT86IG51bWJlcjtcbiAgY2hlY2tTZXNzaW9uSW50ZXJ2YWw/OiBudW1iZXI7XG4gIHNpbGVudFJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { UserManager } from 'oidc-client';
|
|
2
|
+
import { UserManager, } from 'oidc-client-ts';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../logger.service";
|
|
5
5
|
import * as i2 from "./TokenHelperService";
|
|
6
6
|
export class AuthService {
|
|
7
|
-
static { this.USER_LOADED_EVENT =
|
|
8
|
-
static { this.USER_UNLOADED_EVENT =
|
|
7
|
+
static { this.USER_LOADED_EVENT = 'USER_LOADED'; }
|
|
8
|
+
static { this.USER_UNLOADED_EVENT = 'USER_UNLOADED'; }
|
|
9
9
|
constructor(logger, tokenHelperService) {
|
|
10
10
|
this.logger = logger;
|
|
11
11
|
this.tokenHelperService = tokenHelperService;
|
|
@@ -21,29 +21,29 @@ export class AuthService {
|
|
|
21
21
|
this.user = user;
|
|
22
22
|
});
|
|
23
23
|
this.userManager.events.addAccessTokenExpiring(() => {
|
|
24
|
-
this.logger.info(
|
|
24
|
+
this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());
|
|
25
25
|
});
|
|
26
26
|
this.userManager.events.addAccessTokenExpired(() => {
|
|
27
|
-
this.logger.info(
|
|
27
|
+
this.logger.info('IdSvr token expired ' + new Date().toLocaleString());
|
|
28
28
|
this.logout(false);
|
|
29
29
|
});
|
|
30
30
|
this.userManager.events.addSilentRenewError(e => {
|
|
31
|
-
this.logger.error(
|
|
31
|
+
this.logger.error('IdSvr silent renew error ' + e.message + new Date().toLocaleString());
|
|
32
32
|
this.logout(false);
|
|
33
33
|
});
|
|
34
34
|
this.userManager.events.addUserLoaded(user => {
|
|
35
|
-
this.logger.info(
|
|
35
|
+
this.logger.info('IdSvr user session is ready ' + new Date().toLocaleString());
|
|
36
36
|
this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);
|
|
37
37
|
this.user = user;
|
|
38
38
|
});
|
|
39
39
|
this.userManager.events.addUserUnloaded(() => {
|
|
40
|
-
this.logger.info(
|
|
40
|
+
this.logger.info('IdSvr user session has ended ' + new Date().toLocaleString());
|
|
41
41
|
if (!this.signingOut) {
|
|
42
42
|
this.startAuthentication(window.location.pathname + window.location.search);
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
this.userManager.events.addUserSignedOut(() => {
|
|
46
|
-
this.logger.info(
|
|
46
|
+
this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());
|
|
47
47
|
this.logout(false);
|
|
48
48
|
});
|
|
49
49
|
this.user = await this.userManager.getUser();
|
|
@@ -67,29 +67,17 @@ export class AuthService {
|
|
|
67
67
|
return '';
|
|
68
68
|
}
|
|
69
69
|
getAccessToken() {
|
|
70
|
-
return this.accessToken ||
|
|
71
|
-
|
|
70
|
+
return (this.accessToken ||
|
|
71
|
+
this.tokenHelperService.getPayloadFromToken(this.user.access_token, false));
|
|
72
72
|
}
|
|
73
73
|
async startAuthentication(returnUrl) {
|
|
74
|
-
this.logger.info(
|
|
74
|
+
this.logger.info('[AuthService] startAuthentication', returnUrl);
|
|
75
75
|
await this.userManager.clearStaleState();
|
|
76
|
-
await this.userManager.signinRedirect(
|
|
77
|
-
//this
|
|
76
|
+
await this.userManager.signinRedirect().catch(err => {
|
|
77
|
+
//this.log.debug("IdSvr sign in failed", err);
|
|
78
78
|
return err;
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
|
-
async completeAuthentication() {
|
|
82
|
-
this.logger.info("[AuthService] completeAuthentication");
|
|
83
|
-
let user = await new Promise((resolve, reject) => {
|
|
84
|
-
this.userManager.signinRedirectCallback().then(user => {
|
|
85
|
-
resolve(user);
|
|
86
|
-
}).catch(error => {
|
|
87
|
-
reject(error);
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
this.user = user;
|
|
91
|
-
return this.user;
|
|
92
|
-
}
|
|
93
81
|
login() {
|
|
94
82
|
return this.userManager.signinRedirect();
|
|
95
83
|
}
|
|
@@ -116,19 +104,19 @@ export class AuthService {
|
|
|
116
104
|
monitorSession: true,
|
|
117
105
|
silent_redirect_uri: environment?.openID?.silent_redirect_uri,
|
|
118
106
|
automaticSilentRenew: environment?.openID?.automaticSilentRenew,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
107
|
+
accessTokenExpiringNotificationTimeInSeconds: 2,
|
|
108
|
+
checkSessionIntervalInSeconds: 2,
|
|
109
|
+
silentRequestTimeoutInSeconds: 2,
|
|
122
110
|
};
|
|
123
111
|
}
|
|
124
112
|
async isServiceReady() {
|
|
125
113
|
return new Promise(async (resolve, reject) => {
|
|
126
114
|
if (this.initialized) {
|
|
127
|
-
this.logger.info(
|
|
115
|
+
this.logger.info('[AuthService] isServiceReady', true);
|
|
128
116
|
resolve(true);
|
|
129
117
|
}
|
|
130
118
|
else {
|
|
131
|
-
this.logger.info(
|
|
119
|
+
this.logger.info('[AuthService] isServiceReady', false);
|
|
132
120
|
reject(false);
|
|
133
121
|
}
|
|
134
122
|
});
|
|
@@ -139,7 +127,7 @@ export class AuthService {
|
|
|
139
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, decorators: [{
|
|
140
128
|
type: Injectable,
|
|
141
129
|
args: [{
|
|
142
|
-
providedIn: 'root'
|
|
130
|
+
providedIn: 'root',
|
|
143
131
|
}]
|
|
144
132
|
}], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.TokenHelperService }] });
|
|
145
133
|
export function authServiceFactory(authService, appSettings, environment) {
|
|
@@ -150,5 +138,4 @@ export function authServiceFactory(authService, appSettings, environment) {
|
|
|
150
138
|
});
|
|
151
139
|
};
|
|
152
140
|
}
|
|
153
|
-
;
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvc2VydmljZS9vcGVuLWlkL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBZ0IsV0FBVyxFQUFzQixNQUFNLGFBQWEsQ0FBQzs7OztBQVM1RSxNQUFNLE9BQU8sV0FBVzthQUNmLHNCQUFpQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7YUFDbEMsd0JBQW1CLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQVU3QyxZQUFvQixNQUFxQixFQUFVLGtCQUFzQztRQUFyRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVJqRixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQU03QixlQUFVLEdBQVksS0FBSyxDQUFDO0lBSXBDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQWlDO1FBQ2hELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUdILElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxD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LEVBQUU7WUFDdkMsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxLQUFLO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNmO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5SlUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBa0tELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUF3QixFQUFFLFdBQThCLEVBQUUsV0FBaUM7SUFDNUgsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxJQUFJLElBQUk7Z0JBQ04sV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQTtBQUNILENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UHJvZmlsZSwgVXNlciwgVXNlck1hbmFnZXIsIFVzZXJNYW5hZ2VyU2V0dGluZ3N9IGZyb20gJ29pZGMtY2xpZW50JztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtUb2tlbkhlbHBlclNlcnZpY2V9IGZyb20gJy4vVG9rZW5IZWxwZXJTZXJ2aWNlJztcbmltcG9ydCB7RW52aXJvbm1lbnRWaWV3TW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbC9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7QXBwU2V0dGluZ1NlcnZpY2V9IGZyb20gXCIuLi9hcHBzZXR0aW5nLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgVVNFUl9MT0FERURfRVZFTlQgPSBcIlVTRVJfTE9BREVEXCI7XG4gIHN0YXRpYyBVU0VSX1VOTE9BREVEX0VWRU5UID0gXCJVU0VSX1VOTE9BREVEXCI7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHVzZXJNYW5hZ2VyITogVXNlck1hbmFnZXI7XG4gIHByaXZhdGUgdXNlcjogYW55O1xuICBwdWJsaWMgc2V0dGluZ3MhOiBVc2VyTWFuYWdlclNldHRpbmdzO1xuXG4gIHByaXZhdGUgYWNjZXNzVG9rZW4hOiBPYmplY3Q7XG4gIHByaXZhdGUgc2lnbmluZ091dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcml2YXRlIHRva2VuSGVscGVyU2VydmljZTogVG9rZW5IZWxwZXJTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5nZXRDbGllbnRTZXR0aW5ncyhlbnZpcm9ubWVudCk7XG4gICAgdGhpcy51c2VyTWFuYWdlciA9IG5ldyBVc2VyTWFuYWdlcih0aGlzLnNldHRpbmdzKTtcbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRVc2VyTG9hZGVkKHVzZXIgPT4ge1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmluZygoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSWRTdnIgdG9rZW4gZXhwaXJpbmcgXCIgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJJZFN2ciB0b2tlbiBleHBpcmVkIFwiICsgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpKTtcbiAgICAgIHRoaXMubG9nb3V0KGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFNpbGVudFJlbmV3RXJyb3IoZSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIklkU3ZyIHNpbGVudCByZW5ldyBlcnJvciBcIiArIGUubWVzc2FnZSArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRVc2VyTG9hZGVkKHVzZXIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIklkU3ZyIHVzZXIgc2Vzc2lvbiBpcyByZWFkeSBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdGhpcy50b2tlbkhlbHBlclNlcnZpY2UuZ2V0UGF5bG9hZEZyb21Ub2tlbih1c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJVbmxvYWRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSWRTdnIgdXNlciBzZXNzaW9uIGhhcyBlbmRlZCBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG5cbiAgICAgIGlmICghdGhpcy5zaWduaW5nT3V0KSB7XG4gICAgICAgIHRoaXMuc3RhcnRBdXRoZW50aWNhdGlvbih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJTaWduZWRPdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIklkU3ZyIHVzZXIgc2lnbmVkIG91dCBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldFVzZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcigpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuZ2V0VXNlcigpO1xuICB9XG5cbiAgcHVibGljIGdldFByb2ZpbGUoKTogUHJvZmlsZSB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5wcm9maWxlO1xuICB9XG5cbiAgcHVibGljIGdldENsYWltcygpOiBQcm9maWxlIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLnByb2ZpbGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXNlciAhPSBudWxsKVxuICAgICAgcmV0dXJuIGAke3RoaXMudXNlci50b2tlbl90eXBlfSAke3RoaXMudXNlci5hY2Nlc3NfdG9rZW59YDtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRBY2Nlc3NUb2tlbigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuIHx8IHRoaXMudG9rZW5IZWxwZXJTZXJ2aWNlLmdldFBheWxvYWRGcm9tVG9rZW4odGhpcy51c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpO1xuICAgIDtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0QXV0aGVudGljYXRpb24ocmV0dXJuVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFwiW0F1dGhTZXJ2aWNlXSBzdGFydEF1dGhlbnRpY2F0aW9uXCIsIHJldHVyblVybCk7XG4gICAgYXdhaXQgdGhpcy51c2VyTWFuYWdlci5jbGVhclN0YWxlU3RhdGUoKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25pblJlZGlyZWN0KHtkYXRhOiB7cmV0dXJuVXJsOiByZXR1cm5Vcmx9fSkuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vdGhpcy4kbG9nLmRlYnVnKFwiSWRTdnIgc2lnbiBpbiBmYWlsZWRcIiwgZXJyKTtcbiAgICAgIHJldHVybiBlcnI7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uKCk6IFByb21pc2U8T2lkYy5Vc2VyPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcIltBdXRoU2VydmljZV0gY29tcGxldGVBdXRoZW50aWNhdGlvblwiKTtcbiAgICBsZXQgdXNlciA9IGF3YWl0IG5ldyBQcm9taXNlPE9pZGMuVXNlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy51c2VyTWFuYWdlci5zaWduaW5SZWRpcmVjdENhbGxiYWNrKCkudGhlbih1c2VyID0+IHtcbiAgICAgICAgcmVzb2x2ZSh1c2VyKVxuICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICByZXR1cm4gdGhpcy51c2VyO1xuICB9XG5cbiAgcHVibGljIGxvZ2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25pblJlZGlyZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZXdUb2tlbigpOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWduaW5TaWxlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoc2lnbm91dFJlZGlyZWN0PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgaWYgKHNpZ25vdXRSZWRpcmVjdCA9PT0gdW5kZWZpbmVkIHx8IHNpZ25vdXRSZWRpcmVjdCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc2lnbmluZ091dCA9IHRydWU7XG4gICAgICBzaWdub3V0UmVkaXJlY3QgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25vdXRSZWRpcmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGllbnRTZXR0aW5ncyhlbnZpcm9ubWVudDogRW52aXJvbm1lbnRWaWV3TW9kZWwpOiBVc2VyTWFuYWdlclNldHRpbmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aG9yaXR5OiBlbnZpcm9ubWVudD8ub3BlbklEPy5hdXRob3JpdHksXG4gICAgICBjbGllbnRfaWQ6IGVudmlyb25tZW50Py5vcGVuSUQ/LmNsaWVudF9pZCxcbiAgICAgIHJlZGlyZWN0X3VyaTogZW52aXJvbm1lbnQ/Lm9wZW5JRD8ucmVkaXJlY3RfdXJpLFxuICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudD8ub3BlbklEPy5wb3N0X2xvZ291dF9yZWRpcmVjdF91cmksXG4gICAgICByZXNwb25zZV90eXBlOiBlbnZpcm9ubWVudD8ub3BlbklEPy5yZXNwb25zZV90eXBlLFxuICAgICAgc2NvcGU6IGVudmlyb25tZW50Py5vcGVuSUQ/LnNjb3BlLFxuICAgICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM6IGVudmlyb25tZW50Py5vcGVuSUQ/LmZpbHRlclByb3RvY29sQ2xhaW1zLFxuICAgICAgbG9hZFVzZXJJbmZvOiB0cnVlLFxuICAgICAgbW9uaXRvclNlc3Npb246IHRydWUsXG4gICAgICBzaWxlbnRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudD8ub3BlbklEPy5zaWxlbnRfcmVkaXJlY3RfdXJpLFxuICAgICAgYXV0b21hdGljU2lsZW50UmVuZXc6IGVudmlyb25tZW50Py5vcGVuSUQ/LmF1dG9tYXRpY1NpbGVudFJlbmV3LFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmluZ05vdGlmaWNhdGlvblRpbWU6IDIwLCAvL2RlZmF1bHQgNjBcbiAgICAgIGNoZWNrU2Vzc2lvbkludGVydmFsOiAyMDAwLCAvL2RlZmF1bHQgMjAwMFxuICAgICAgc2lsZW50UmVxdWVzdFRpbWVvdXQ6IDIwMDAwLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpc1NlcnZpY2VSZWFkeSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIltBdXRoU2VydmljZV0gaXNTZXJ2aWNlUmVhZHlcIiwgdHJ1ZSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiW0F1dGhTZXJ2aWNlXSBpc1NlcnZpY2VSZWFkeVwiLCBmYWxzZSk7XG4gICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIGFwcFNldHRpbmdzOiBBcHBTZXR0aW5nU2VydmljZSwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsKSB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgYXBwU2V0dGluZ3MuaXNTZXJ2aWNlUmVhZHkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0pXG4gICAgICAgIGF1dGhTZXJ2aWNlLmluaXRpYWxpemUoZW52aXJvbm1lbnQpO1xuICAgIH0pO1xuICB9XG59OyJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvc2VydmljZS9vcGVuLWlkL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFFTCxXQUFXLEdBR1osTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUt4QixNQUFNLE9BQU8sV0FBVzthQUNmLHNCQUFpQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7YUFDbEMsd0JBQW1CLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQVU3QyxZQUNVLE1BQXFCLEVBQ3JCLGtCQUFzQztRQUR0QyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFWeEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFNN0IsZUFBVSxHQUFZLEtBQUssQ0FBQztJQUtqQyxDQUFDO0lBRUosS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFpQztRQUNoRCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE1BQU0s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QUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQW1LRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFdBQXdCLEVBQ3hCLFdBQThCLEVBQzlCLFdBQWlDO0lBRWpDLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDaEIsV0FBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxJQUFJO2dCQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRva2VuSGVscGVyU2VydmljZSB9IGZyb20gJy4vVG9rZW5IZWxwZXJTZXJ2aWNlJztcbmltcG9ydCB7IEVudmlyb25tZW50Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvZW52aXJvbm1lbnRzJztcbmltcG9ydCB7IEFwcFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwc2V0dGluZy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFVzZXIsXG4gIFVzZXJNYW5hZ2VyLFxuICBVc2VyTWFuYWdlclNldHRpbmdzLFxuICBVc2VyUHJvZmlsZSxcbn0gZnJvbSAnb2lkYy1jbGllbnQtdHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgVVNFUl9MT0FERURfRVZFTlQgPSAnVVNFUl9MT0FERUQnO1xuICBzdGF0aWMgVVNFUl9VTkxPQURFRF9FVkVOVCA9ICdVU0VSX1VOTE9BREVEJztcblxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB1c2VyTWFuYWdlciE6IFVzZXJNYW5hZ2VyO1xuICBwcml2YXRlIHVzZXI6IGFueTtcbiAgcHVibGljIHNldHRpbmdzITogVXNlck1hbmFnZXJTZXR0aW5ncztcblxuICBwcml2YXRlIGFjY2Vzc1Rva2VuITogT2JqZWN0O1xuICBwcml2YXRlIHNpZ25pbmdPdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHRva2VuSGVscGVyU2VydmljZTogVG9rZW5IZWxwZXJTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBpbml0aWFsaXplKGVudmlyb25tZW50OiBFbnZpcm9ubWVudFZpZXdNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMuZ2V0Q2xpZW50U2V0dGluZ3MoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMudXNlck1hbmFnZXIgPSBuZXcgVXNlck1hbmFnZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkVXNlckxvYWRlZCh1c2VyID0+IHtcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRBY2Nlc3NUb2tlbkV4cGlyaW5nKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0lkU3ZyIHRva2VuIGV4cGlyaW5nICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0lkU3ZyIHRva2VuIGV4cGlyZWQgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRTaWxlbnRSZW5ld0Vycm9yKGUgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICdJZFN2ciBzaWxlbnQgcmVuZXcgZXJyb3IgJyArIGUubWVzc2FnZSArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nb3V0KGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJMb2FkZWQodXNlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAnSWRTdnIgdXNlciBzZXNzaW9uIGlzIHJlYWR5ICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKClcbiAgICAgICk7XG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdGhpcy50b2tlbkhlbHBlclNlcnZpY2UuZ2V0UGF5bG9hZEZyb21Ub2tlbihcbiAgICAgICAgdXNlci5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJVbmxvYWRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAnSWRTdnIgdXNlciBzZXNzaW9uIGhhcyBlbmRlZCAnICsgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpXG4gICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuc2lnbmluZ091dCkge1xuICAgICAgICB0aGlzLnN0YXJ0QXV0aGVudGljYXRpb24oXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkVXNlclNpZ25lZE91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdJZFN2ciB1c2VyIHNpZ25lZCBvdXQgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldFVzZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcigpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuZ2V0VXNlcigpO1xuICB9XG5cbiAgcHVibGljIGdldFByb2ZpbGUoKTogVXNlclByb2ZpbGUge1xuICAgIHJldHVybiB0aGlzLnVzZXIucHJvZmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDbGFpbXMoKTogVXNlclByb2ZpbGUge1xuICAgIHJldHVybiB0aGlzLnVzZXIucHJvZmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy51c2VyICE9IG51bGwpXG4gICAgICByZXR1cm4gYCR7dGhpcy51c2VyLnRva2VuX3R5cGV9ICR7dGhpcy51c2VyLmFjY2Vzc190b2tlbn1gO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldEFjY2Vzc1Rva2VuKCk6IGFueSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gfHxcbiAgICAgIHRoaXMudG9rZW5IZWxwZXJTZXJ2aWNlLmdldFBheWxvYWRGcm9tVG9rZW4odGhpcy51c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0QXV0aGVudGljYXRpb24ocmV0dXJuVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIHN0YXJ0QXV0aGVudGljYXRpb24nLCByZXR1cm5VcmwpO1xuICAgIGF3YWl0IHRoaXMudXNlck1hbmFnZXIuY2xlYXJTdGFsZVN0YXRlKCk7XG4gICAgYXdhaXQgdGhpcy51c2VyTWFuYWdlci5zaWduaW5SZWRpcmVjdCgpLmNhdGNoKGVyciA9PiB7XG4gICAgICAvL3RoaXMubG9nLmRlYnVnKFwiSWRTdnIgc2lnbiBpbiBmYWlsZWRcIiwgZXJyKTtcbiAgICAgIHJldHVybiBlcnI7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9naW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuc2lnbmluUmVkaXJlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5ld1Rva2VuKCk6IFByb21pc2U8VXNlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWduaW5TaWxlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoc2lnbm91dFJlZGlyZWN0PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChzaWdub3V0UmVkaXJlY3QgPT09IHVuZGVmaW5lZCB8fCBzaWdub3V0UmVkaXJlY3QgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnNpZ25pbmdPdXQgPSB0cnVlO1xuICAgICAgc2lnbm91dFJlZGlyZWN0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWdub3V0UmVkaXJlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xpZW50U2V0dGluZ3MoXG4gICAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsXG4gICk6IFVzZXJNYW5hZ2VyU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRob3JpdHk6IGVudmlyb25tZW50Py5vcGVuSUQ/LmF1dGhvcml0eSBhcyBzdHJpbmcsXG4gICAgICBjbGllbnRfaWQ6IGVudmlyb25tZW50Py5vcGVuSUQ/LmNsaWVudF9pZCBhcyBzdHJpbmcsXG4gICAgICByZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnJlZGlyZWN0X3VyaSBhcyBzdHJpbmcsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaSxcbiAgICAgIHJlc3BvbnNlX3R5cGU6IGVudmlyb25tZW50Py5vcGVuSUQ/LnJlc3BvbnNlX3R5cGUsXG4gICAgICBzY29wZTogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uc2NvcGUsXG4gICAgICBmaWx0ZXJQcm90b2NvbENsYWltczogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uZmlsdGVyUHJvdG9jb2xDbGFpbXMsXG4gICAgICBsb2FkVXNlckluZm86IHRydWUsXG4gICAgICBtb25pdG9yU2Vzc2lvbjogdHJ1ZSxcbiAgICAgIHNpbGVudF9yZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnNpbGVudF9yZWRpcmVjdF91cmksXG4gICAgICBhdXRvbWF0aWNTaWxlbnRSZW5ldzogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uYXV0b21hdGljU2lsZW50UmVuZXcsXG4gICAgICBhY2Nlc3NUb2tlbkV4cGlyaW5nTm90aWZpY2F0aW9uVGltZUluU2Vjb25kczogMixcbiAgICAgIGNoZWNrU2Vzc2lvbkludGVydmFsSW5TZWNvbmRzOiAyLFxuICAgICAgc2lsZW50UmVxdWVzdFRpbWVvdXRJblNlY29uZHM6IDIsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGlzU2VydmljZVJlYWR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIGlzU2VydmljZVJlYWR5JywgdHJ1ZSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIGlzU2VydmljZVJlYWR5JywgZmFsc2UpO1xuICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRoU2VydmljZUZhY3RvcnkoXG4gIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgYXBwU2V0dGluZ3M6IEFwcFNldHRpbmdTZXJ2aWNlLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRWaWV3TW9kZWxcbikge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGFwcFNldHRpbmdzLmlzU2VydmljZVJlYWR5LnN1YnNjcmliZShpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtKSBhdXRoU2VydmljZS5pbml0aWFsaXplKGVudmlyb25tZW50KTtcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -84,7 +84,7 @@ import { AngularEditorModule } from '@kolkov/angular-editor';
|
|
|
84
84
|
import * as i1$7 from '@angular/common/http';
|
|
85
85
|
import { HttpEventType, HttpRequest, withInterceptors, provideHttpClient } from '@angular/common/http';
|
|
86
86
|
import { Observable, Subject, from } from 'rxjs';
|
|
87
|
-
import { UserManager } from 'oidc-client';
|
|
87
|
+
import { UserManager } from 'oidc-client-ts';
|
|
88
88
|
|
|
89
89
|
class AngularmaterialModule {
|
|
90
90
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AngularmaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -961,8 +961,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
961
961
|
}], ctorParameters: () => [] });
|
|
962
962
|
|
|
963
963
|
class AuthService {
|
|
964
|
-
static { this.USER_LOADED_EVENT =
|
|
965
|
-
static { this.USER_UNLOADED_EVENT =
|
|
964
|
+
static { this.USER_LOADED_EVENT = 'USER_LOADED'; }
|
|
965
|
+
static { this.USER_UNLOADED_EVENT = 'USER_UNLOADED'; }
|
|
966
966
|
constructor(logger, tokenHelperService) {
|
|
967
967
|
this.logger = logger;
|
|
968
968
|
this.tokenHelperService = tokenHelperService;
|
|
@@ -978,29 +978,29 @@ class AuthService {
|
|
|
978
978
|
this.user = user;
|
|
979
979
|
});
|
|
980
980
|
this.userManager.events.addAccessTokenExpiring(() => {
|
|
981
|
-
this.logger.info(
|
|
981
|
+
this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());
|
|
982
982
|
});
|
|
983
983
|
this.userManager.events.addAccessTokenExpired(() => {
|
|
984
|
-
this.logger.info(
|
|
984
|
+
this.logger.info('IdSvr token expired ' + new Date().toLocaleString());
|
|
985
985
|
this.logout(false);
|
|
986
986
|
});
|
|
987
987
|
this.userManager.events.addSilentRenewError(e => {
|
|
988
|
-
this.logger.error(
|
|
988
|
+
this.logger.error('IdSvr silent renew error ' + e.message + new Date().toLocaleString());
|
|
989
989
|
this.logout(false);
|
|
990
990
|
});
|
|
991
991
|
this.userManager.events.addUserLoaded(user => {
|
|
992
|
-
this.logger.info(
|
|
992
|
+
this.logger.info('IdSvr user session is ready ' + new Date().toLocaleString());
|
|
993
993
|
this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);
|
|
994
994
|
this.user = user;
|
|
995
995
|
});
|
|
996
996
|
this.userManager.events.addUserUnloaded(() => {
|
|
997
|
-
this.logger.info(
|
|
997
|
+
this.logger.info('IdSvr user session has ended ' + new Date().toLocaleString());
|
|
998
998
|
if (!this.signingOut) {
|
|
999
999
|
this.startAuthentication(window.location.pathname + window.location.search);
|
|
1000
1000
|
}
|
|
1001
1001
|
});
|
|
1002
1002
|
this.userManager.events.addUserSignedOut(() => {
|
|
1003
|
-
this.logger.info(
|
|
1003
|
+
this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());
|
|
1004
1004
|
this.logout(false);
|
|
1005
1005
|
});
|
|
1006
1006
|
this.user = await this.userManager.getUser();
|
|
@@ -1024,29 +1024,17 @@ class AuthService {
|
|
|
1024
1024
|
return '';
|
|
1025
1025
|
}
|
|
1026
1026
|
getAccessToken() {
|
|
1027
|
-
return this.accessToken ||
|
|
1028
|
-
|
|
1027
|
+
return (this.accessToken ||
|
|
1028
|
+
this.tokenHelperService.getPayloadFromToken(this.user.access_token, false));
|
|
1029
1029
|
}
|
|
1030
1030
|
async startAuthentication(returnUrl) {
|
|
1031
|
-
this.logger.info(
|
|
1031
|
+
this.logger.info('[AuthService] startAuthentication', returnUrl);
|
|
1032
1032
|
await this.userManager.clearStaleState();
|
|
1033
|
-
await this.userManager.signinRedirect(
|
|
1034
|
-
//this
|
|
1033
|
+
await this.userManager.signinRedirect().catch(err => {
|
|
1034
|
+
//this.log.debug("IdSvr sign in failed", err);
|
|
1035
1035
|
return err;
|
|
1036
1036
|
});
|
|
1037
1037
|
}
|
|
1038
|
-
async completeAuthentication() {
|
|
1039
|
-
this.logger.info("[AuthService] completeAuthentication");
|
|
1040
|
-
let user = await new Promise((resolve, reject) => {
|
|
1041
|
-
this.userManager.signinRedirectCallback().then(user => {
|
|
1042
|
-
resolve(user);
|
|
1043
|
-
}).catch(error => {
|
|
1044
|
-
reject(error);
|
|
1045
|
-
});
|
|
1046
|
-
});
|
|
1047
|
-
this.user = user;
|
|
1048
|
-
return this.user;
|
|
1049
|
-
}
|
|
1050
1038
|
login() {
|
|
1051
1039
|
return this.userManager.signinRedirect();
|
|
1052
1040
|
}
|
|
@@ -1073,19 +1061,19 @@ class AuthService {
|
|
|
1073
1061
|
monitorSession: true,
|
|
1074
1062
|
silent_redirect_uri: environment?.openID?.silent_redirect_uri,
|
|
1075
1063
|
automaticSilentRenew: environment?.openID?.automaticSilentRenew,
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1064
|
+
accessTokenExpiringNotificationTimeInSeconds: 2,
|
|
1065
|
+
checkSessionIntervalInSeconds: 2,
|
|
1066
|
+
silentRequestTimeoutInSeconds: 2,
|
|
1079
1067
|
};
|
|
1080
1068
|
}
|
|
1081
1069
|
async isServiceReady() {
|
|
1082
1070
|
return new Promise(async (resolve, reject) => {
|
|
1083
1071
|
if (this.initialized) {
|
|
1084
|
-
this.logger.info(
|
|
1072
|
+
this.logger.info('[AuthService] isServiceReady', true);
|
|
1085
1073
|
resolve(true);
|
|
1086
1074
|
}
|
|
1087
1075
|
else {
|
|
1088
|
-
this.logger.info(
|
|
1076
|
+
this.logger.info('[AuthService] isServiceReady', false);
|
|
1089
1077
|
reject(false);
|
|
1090
1078
|
}
|
|
1091
1079
|
});
|
|
@@ -1096,7 +1084,7 @@ class AuthService {
|
|
|
1096
1084
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, decorators: [{
|
|
1097
1085
|
type: Injectable,
|
|
1098
1086
|
args: [{
|
|
1099
|
-
providedIn: 'root'
|
|
1087
|
+
providedIn: 'root',
|
|
1100
1088
|
}]
|
|
1101
1089
|
}], ctorParameters: () => [{ type: LoggerService }, { type: TokenHelperService }] });
|
|
1102
1090
|
function authServiceFactory(authService, appSettings, environment) {
|
|
@@ -1107,7 +1095,6 @@ function authServiceFactory(authService, appSettings, environment) {
|
|
|
1107
1095
|
});
|
|
1108
1096
|
};
|
|
1109
1097
|
}
|
|
1110
|
-
;
|
|
1111
1098
|
|
|
1112
1099
|
class DialogComponent {
|
|
1113
1100
|
constructor(data) {
|