@annalib/anna-cognito-lib 0.4.4 → 0.5.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/esm2020/lib/config/config-service.token.mjs +4 -0
- package/esm2020/lib/services/auth.service.mjs +15 -11
- package/fesm2015/annalib-anna-cognito-lib.mjs +25 -17
- package/fesm2015/annalib-anna-cognito-lib.mjs.map +1 -1
- package/fesm2020/annalib-anna-cognito-lib.mjs +25 -17
- package/fesm2020/annalib-anna-cognito-lib.mjs.map +1 -1
- package/lib/config/config-service.token.d.ts +13 -0
- package/lib/services/auth.service.d.ts +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/** Token to inject the auth service */
|
|
3
|
+
export const CONFIG_SERVICE_TOKEN = new InjectionToken('Cognito config service token');
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNlcnZpY2UudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29uZmlnL2NvbmZpZy1zZXJ2aWNlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsdUNBQXVDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUV6QixJQUFJLGNBQWMsQ0FBaUIsOEJBQThCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiogVG9rZW4gdG8gaW5qZWN0IHRoZSBhdXRoIHNlcnZpY2UgKi9cclxuZXhwb3J0IGNvbnN0IENPTkZJR19TRVJWSUNFX1RPS0VOOlxyXG4gICAgSW5qZWN0aW9uVG9rZW48SUNvbmZpZ1NlcnZpY2U+ID1cclxuICAgICAgICBuZXcgSW5qZWN0aW9uVG9rZW48SUNvbmZpZ1NlcnZpY2U+KCdDb2duaXRvIGNvbmZpZyBzZXJ2aWNlIHRva2VuJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWdTZXJ2aWNlIHtcclxuICBhbm5hQ29nbml0b0xpYnJhcnlDb25maWcgOiB7IFxyXG4gICAgbG9naW5QYWdlTG9nb0ltZ1VybDogc3RyaW5nLFxyXG4gICAgY29nbml0byA6IHtcclxuICAgICAgdXNlclBvb2xJZDogc3RyaW5nLFxyXG4gICAgICBjbGllbnRJZDogc3RyaW5nLFxyXG4gICAgfSxcclxuICAgIGN1cnJlbnRBbm5hVmVyc2lvbjogc3RyaW5nXHJcbiAgfTtcclxuXHJcbn0iXX0=
|
|
@@ -8,23 +8,24 @@ import { CognitoUserPool, CognitoUser, AuthenticationDetails } from "amazon-cogn
|
|
|
8
8
|
import { LoginConstant } from "../constants/loginConstant";
|
|
9
9
|
import { AuthenticationData, UserPoolInformation } from "../models/auth.model";
|
|
10
10
|
import { AnnaLibAclService } from './acl.service';
|
|
11
|
-
import { LibraryConfig } from '../config/library.config';
|
|
12
11
|
import { AUTH_SERVICE_TOKEN } from '../config/auth-service.token';
|
|
13
12
|
import { ToastrService } from 'ngx-toastr';
|
|
13
|
+
import { CONFIG_SERVICE_TOKEN } from '../config/config-service.token';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
import * as i1 from "@angular/router";
|
|
16
16
|
import * as i2 from "./acl.service";
|
|
17
|
-
import * as i3 from "
|
|
18
|
-
import * as i4 from "
|
|
19
|
-
import * as i5 from "ngx-toastr";
|
|
17
|
+
import * as i3 from "@angular/common/http";
|
|
18
|
+
import * as i4 from "ngx-toastr";
|
|
20
19
|
export class AnnaLibAuthService {
|
|
21
|
-
constructor(router, aclService,
|
|
20
|
+
constructor(router, aclService,
|
|
21
|
+
// public libraryConfig: LibraryConfig,
|
|
22
|
+
httpClient, toastr, consumingProjectAuthService, consumingProjectConfigService) {
|
|
22
23
|
this.router = router;
|
|
23
24
|
this.aclService = aclService;
|
|
24
|
-
this.libraryConfig = libraryConfig;
|
|
25
25
|
this.httpClient = httpClient;
|
|
26
26
|
this.toastr = toastr;
|
|
27
27
|
this.consumingProjectAuthService = consumingProjectAuthService;
|
|
28
|
+
this.consumingProjectConfigService = consumingProjectConfigService;
|
|
28
29
|
this.noOfAttempts = 0;
|
|
29
30
|
this.sessionLocked = false;
|
|
30
31
|
if (!consumingProjectAuthService) {
|
|
@@ -104,12 +105,12 @@ export class AnnaLibAuthService {
|
|
|
104
105
|
return expTime;
|
|
105
106
|
}
|
|
106
107
|
getCurrentUserDetails() {
|
|
107
|
-
let poolData = new UserPoolInformation(this.
|
|
108
|
+
let poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
|
|
108
109
|
let userPool = new CognitoUserPool(poolData);
|
|
109
110
|
return userPool.getCurrentUser();
|
|
110
111
|
}
|
|
111
112
|
getCognitoUserDetails(email) {
|
|
112
|
-
this.poolData = new UserPoolInformation(this.
|
|
113
|
+
this.poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
|
|
113
114
|
this.userPool = new CognitoUserPool(this.poolData);
|
|
114
115
|
let userData = {
|
|
115
116
|
Username: email,
|
|
@@ -252,15 +253,18 @@ export class AnnaLibAuthService {
|
|
|
252
253
|
});
|
|
253
254
|
}
|
|
254
255
|
}
|
|
255
|
-
AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i1.Router }, { token: i2.AnnaLibAclService }, { token: i3.
|
|
256
|
+
AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i1.Router }, { token: i2.AnnaLibAclService }, { token: i3.HttpClient }, { token: i4.ToastrService }, { token: AUTH_SERVICE_TOKEN }, { token: CONFIG_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
256
257
|
AnnaLibAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, providedIn: "root" });
|
|
257
258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, decorators: [{
|
|
258
259
|
type: Injectable,
|
|
259
260
|
args: [{
|
|
260
261
|
providedIn: "root",
|
|
261
262
|
}]
|
|
262
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AnnaLibAclService }, { type: i3.
|
|
263
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AnnaLibAclService }, { type: i3.HttpClient }, { type: i4.ToastrService }, { type: undefined, decorators: [{
|
|
263
264
|
type: Inject,
|
|
264
265
|
args: [AUTH_SERVICE_TOKEN]
|
|
266
|
+
}] }, { type: undefined, decorators: [{
|
|
267
|
+
type: Inject,
|
|
268
|
+
args: [CONFIG_SERVICE_TOKEN]
|
|
265
269
|
}] }]; } });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFFckgsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7O0FBSzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFxQjNCLFlBQ1ksTUFBYyxFQUNmLFVBQTZCLEVBQzdCLGFBQTRCLEVBQzVCLFVBQXFCLEVBQ3BCLE1BQXFCLEVBQ00sMkJBQXlDO1FBTHBFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3BCLFdBQU0s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QkFBbUIsRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFFLENBQUM7WUFDdEIsbUJBQW1CLEVBQUUsQ0FBQyxJQUFRLEVBQUUsRUFBRSxHQUFFLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUM3QixTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFFcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQztnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQS9RUSxrQkFBa0IsNkpBMkJmLGtCQUFrQjttSEEzQnJCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNEJRLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQ29nbml0b1VzZXJQb29sLCBDb2duaXRvVXNlciwgQXV0aGVudGljYXRpb25EZXRhaWxzLCBDb2duaXRvVXNlclNlc3Npb24gfSBmcm9tIFwiYW1hem9uLWNvZ25pdG8taWRlbnRpdHktanNcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRGF0YSwgVXNlclBvb2xJbmZvcm1hdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvYXV0aC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBbm5hTGliQWNsU2VydmljZSB9IGZyb20gJy4vYWNsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaWJyYXJ5Q29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2xpYnJhcnkuY29uZmlnJztcclxuaW1wb3J0IHsgSUF1dGhTZXJ2aWNlLCBBVVRIX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTGliQXV0aFNlcnZpY2UgIHtcclxuICAgIHBvb2xEYXRhOiBVc2VyUG9vbEluZm9ybWF0aW9uO1xyXG4gICAgdXNlclBvb2w6IENvZ25pdG9Vc2VyUG9vbDtcclxuICAgIGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlcjtcclxuICAgIGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzO1xyXG4gICAgdG9rZW5WYWxpZDogYm9vbGVhbjtcclxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XHJcbiAgICB1c2VyQXR0cmlidXRlOiBhbnk7XHJcbiAgICBsb2dpbkVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbDtcclxuICAgIHNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBzZXROZXdQYXNzd29yZEJ1dHRvbk1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uOiBzdHJpbmc7XHJcbiAgICBub09mQXR0ZW1wdHMgPSAwO1xyXG4gICAgc2Vzc2lvbkxvY2tlZCA9IGZhbHNlO1xyXG4gICAgdXNlck5hbWU6IGFueTtcclxuICAgIGFjY2Vzc1Rva2VuVGltZXJJZDogYW55O1xyXG4gICAgSWRUb2tlbjogYW55O1xyXG4gIGZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyBhY2xTZXJ2aWNlOiBBbm5hTGliQWNsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGlicmFyeUNvbmZpZzogTGlicmFyeUNvbmZpZyxcclxuICAgICAgICBwdWJsaWMgaHR0cENsaWVudDpIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQVVUSF9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlOiBJQXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgIGlmKCFjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgYXV0aFNlcnZpY2UnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAgIC8qKipcclxuICAgMS4gdGFrZXMgdXNlciBwb29sIGRhdGEgKHVzZXJQb29sIElEIGFuZCBjbGllbnQgSUQpXHJcbiAgIDIuIGlmIGN1cnJlbnQgdXNlciBpcyBudWxsIHRoZW4gaXQgbWVhbnMgdXNlciBhbHJlYWR5IGxvZ2dlZCBvdXQgdGhlbiBzaW1wbHkgcmV0dXJuIFByb21pc2U8ZmFsc2U+XHJcbiAgIDMuIGlmIGN1cnJlbnQgdXNlciBwcmVzZW50IGNoZWNrIGlmIHRva2VuIGlzIHZhbGlkIGZvciBpdC5cclxuICovXHJcbiAgICBpc1VzZXJMb2dnZWRJbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyRGV0YWlscygpO1xyXG4gICAgICAgIGlmIChjdXJyZW50VXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLmdldFNlc3Npb24oKGVycm9yOiBFcnJvciwgdG9rZW46IENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHModG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblRpbWVvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlc3Npb25UaW1lb3V0KCkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hBY2Nlc3NUb2tlbigpIHtcclxuICAgICAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyRGV0YWlscygpO1xyXG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuRXhwaXJhdGlvblwiKTtcclxuICAgICAgICBsZXQgZXhwVGltZSA9IGFjY2Vzc1Rva2VuRXhwaXJhdGlvbiA/IHBhcnNlSW50KGFjY2Vzc1Rva2VuRXhwaXJhdGlvbikgOiAwO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY291bnRlciA9IDEwMDA7XHJcbiAgICAgICAgICAgIGxldCBkZWxheUZ1bmN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuZ2V0U2Vzc2lvbigoZXJyb3I6IGFueSwgdG9rZW46IENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHModG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3RXhwVGltZSA9IHRoaXMuY29tcHV0ZVRva2VuRXhwaXJhdGlvbih0aGlzLklkVG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0V4cFRpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RXhwVGltZSA9IDEwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWxheUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChkZWxheUZ1bmN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBUaW1lID0gbmV3RXhwVGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvci5jb2RlID09PSBcIk5vdEF1dGhvcml6ZWRFeGNlcHRpb25cIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIGNvdW50ZXIpO1xyXG4gICAgICAgIH0sIGV4cFRpbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXB1dGVUb2tlbkV4cGlyYXRpb24odG9rZW46IGFueSkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gICAgICAgIGxldCB0b2tlblRpbWUgPSB0b2tlbi5wYXlsb2FkLmV4cDtcclxuICAgICAgICBsZXQgZXhwVGltZSA9ICh0b2tlblRpbWUgLSBjdXJyZW50VGltZSkgKiAxMDAwO1xyXG4gICAgICAgIHJldHVybiBleHBUaW1lO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXRDdXJyZW50VXNlckRldGFpbHMoKSB7XHJcbiAgICAgICAgbGV0IHBvb2xEYXRhID0gbmV3IFVzZXJQb29sSW5mb3JtYXRpb24odGhpcy5saWJyYXJ5Q29uZmlnLmNvZ25pdG8udXNlclBvb2xJZCwgdGhpcy5saWJyYXJ5Q29uZmlnLmNvZ25pdG8uY2xpZW50SWQpO1xyXG4gICAgICAgIGxldCB1c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2wocG9vbERhdGEpO1xyXG4gICAgICAgIHJldHVybiB1c2VyUG9vbC5nZXRDdXJyZW50VXNlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvZ25pdG9Vc2VyRGV0YWlscyhlbWFpbDogc3RyaW5nKTogQ29nbml0b1VzZXIge1xyXG4gICAgICAgIHRoaXMucG9vbERhdGEgPSBuZXcgVXNlclBvb2xJbmZvcm1hdGlvbih0aGlzLmxpYnJhcnlDb25maWcuY29nbml0by51c2VyUG9vbElkLCB0aGlzLmxpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgdGhpcy51c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2wodGhpcy5wb29sRGF0YSk7XHJcblxyXG4gICAgICAgIGxldCB1c2VyRGF0YSA9IHtcclxuICAgICAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxyXG4gICAgICAgICAgICBQb29sOiB0aGlzLnVzZXJQb29sLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGNvZ25pdG9Vc2VyID0gbmV3IENvZ25pdG9Vc2VyKHVzZXJEYXRhKTtcclxuICAgICAgICByZXR1cm4gY29nbml0b1VzZXI7XHJcbiAgICB9XHJcblxyXG4gICAgYXV0aGVudGljYXRlKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICBsZXQgYXV0aERhdGEgPSBuZXcgQXV0aGVudGljYXRpb25EYXRhKGVtYWlsLCBwYXNzd29yZCk7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsKTtcclxuICAgICAgICB0aGlzLkNvZ25pdG9BdXRoZW50aWNhdGlvbih0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscyk7XHJcbiAgICB9XHJcblxyXG4gICAgQ29nbml0b0F1dGhlbnRpY2F0aW9uKGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5hdXRoZW50aWNhdGVVc2VyKGF1dGhlbnRpY2F0aW9uRGV0YWlscywge1xyXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHJlc3VsdC5nZXRJZFRva2VuKCkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblN1Y2Nlc3NmdWxBdXRoZW50aWNhdGluZ1VzZXIocmVzdWx0KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlID09IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkRXhwaXJ5RXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRPbkV4cGlyeUVycm9yTXNnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNlbmRSZWdlbmVyYXRpb25FbWFpbCh0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscy5nZXRVc2VybmFtZSgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVyci5tZXNzYWdlID09PSBcIlBhc3N3b3JkIGF0dGVtcHRzIGV4Y2VlZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQudXNlck5hbWVQYXNzd29yZEluY29ycmVjdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyQXR0cmlidXRlID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBzZXROZXdQYXNzd29yZChuZXdQYXNzd29yZDogYW55KSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMudXNlckF0dHJpYnV0ZS5lbWFpbDtcclxuICAgICAgICBkZWxldGUgdGhpcy51c2VyQXR0cmlidXRlLmVtYWlsX3ZlcmlmaWVkO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnVzZXJBdHRyaWJ1dGUucGhvbmVfbnVtYmVyX3ZlcmlmaWVkO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIuY29tcGxldGVOZXdQYXNzd29yZENoYWxsZW5nZShuZXdQYXNzd29yZCwgdGhpcy51c2VyQXR0cmlidXRlLCB7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRmFpbHVyZTogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlID0gTG9naW5Db25zdGFudC5sb2dpbkFnYWluO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUChlbWFpbDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9IGVtYWlsO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIgPSB0aGlzLmdldENvZ25pdG9Vc2VyRGV0YWlscyhlbWFpbCk7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5mb3Jnb3RQYXNzd29yZCh7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgPVxyXG4gICAgICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlICtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQuQ29kZURlbGl2ZXJ5RGV0YWlscy5EZXN0aW5hdGlvbiArXHJcbiAgICAgICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC5wbGVhc2VFbnRlckl0QmVsb3c7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpID0+IHt9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZlcmlmeUNvZGUodmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5jb25maXJtUGFzc3dvcmQodmVyaWZpY2F0aW9uQ29kZSwgbmV3UGFzc3dvcmQsIHtcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzID0gdGhpcy5ub09mQXR0ZW1wdHMgKyAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IHRoaXMuZm9yZ290UGFzc3dvcmRFcnJvcihlcnJvciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGlyeUFsbEV4aXN0aW5nQ3VycmVudFNlc3Npb24obmV3UGFzc3dvcmQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyOiBhbnksIG5vT2ZBdHRlbXB0czogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZTtcclxuICAgICAgICBzd2l0Y2ggKGVyci5jb2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Mb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiRXhwaXJlZENvZGVFeGNlcHRpb25cIjpcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHQgKyBcIiBcIiArIG5vT2ZBdHRlbXB0cyArIExvZ2luQ29uc3RhbnQuYXR0ZW1wdE1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24pIHtcclxuICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHRva2VuLmdldEFjY2Vzc1Rva2VuKCkuZ2V0Snd0VG9rZW4oKTtcclxuICAgICAgdGhpcy5JZFRva2VuID0gdG9rZW4uZ2V0SWRUb2tlbigpO1xyXG4gICAgICBpZiAoXCJjb2duaXRvOmdyb3Vwc1wiIGluIHRva2VuLmdldEFjY2Vzc1Rva2VuKCkucGF5bG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QgPSB0b2tlbi5nZXRBY2Nlc3NUb2tlbigpLnBheWxvYWRbXCJjb2duaXRvOmdyb3Vwc1wiXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKG5ld1Bhc3N3b3JkOiBzdHJpbmcpe1xyXG4gICAgICBsZXQgdXNlcm5hbWUgPSAgdGhpcy5jb2duaXRvVXNlci5nZXRVc2VybmFtZSgpO1xyXG4gICAgICB0aGlzLnNldFVzZXJEZXRhaWxzKHVzZXJuYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICAgIHRoaXMub25Mb2dpbkluQ29nbnRpb1RvR2V0QWNjZXNzVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGV0YWlscyh1c2VybmFtZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKXtcclxuICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIGxldCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEodXNlcm5hbWUsIG5ld1Bhc3N3b3JkKTtcclxuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKHVzZXJuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbigpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmF1dGhlbnRpY2F0ZVVzZXIodGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMsIHtcclxuICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQ6IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhyZXN1bHQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2FsbEdsb2JhbFNpZ25vdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uRmFpbHVyZTogKGVycikgPT4ge30sXHJcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYWxsR2xvYmFsU2lnbm91dCgpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmdsb2JhbFNpZ25PdXQoe1xyXG4gICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4gXHJcbiAgICAgICAgeyBcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7ICAgXHJcbiAgICAgICAgICB0aGlzLmZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7IFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7fVxyXG4gICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFFckgsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUFLdEYsTUFBTSxPQUFPLGtCQUFrQjtJQXFCM0IsWUFDWSxNQUFjLEVBQ2YsVUFBNkI7SUFDcEMsdUNBQXVDO0lBQ2hDLFVBQXFCLEVBQ3BCLE1BQXFCLEVBQ00sMkJBQXlDLEVBQ3ZDLDZCQUE2QztRQU4xRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFFN0IsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxD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QUEwQixFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDL0IsQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQztZQUN0QixtQkFBbUIsRUFBRSxDQUFDLElBQVEsRUFBRSxFQUFFLEdBQUUsQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQzdCLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUVwQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFFLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBaFJRLGtCQUFrQixnSUEyQmYsa0JBQWtCLGFBQ2xCLG9CQUFvQjttSEE1QnZCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNEJRLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBDb2duaXRvVXNlclBvb2wsIENvZ25pdG9Vc2VyLCBBdXRoZW50aWNhdGlvbkRldGFpbHMsIENvZ25pdG9Vc2VyU2Vzc2lvbiB9IGZyb20gXCJhbWF6b24tY29nbml0by1pZGVudGl0eS1qc1wiO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IExvZ2luQ29uc3RhbnQgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnRcIjtcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25EYXRhLCBVc2VyUG9vbEluZm9ybWF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9hdXRoLm1vZGVsXCI7XHJcbmltcG9ydCB7IEFubmFMaWJBY2xTZXJ2aWNlIH0gZnJvbSAnLi9hY2wuc2VydmljZSc7XHJcbmltcG9ydCB7IExpYnJhcnlDb25maWcgfSBmcm9tICcuLi9jb25maWcvbGlicmFyeS5jb25maWcnO1xyXG5pbXBvcnQgeyBJQXV0aFNlcnZpY2UsIEFVVEhfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IENPTkZJR19TRVJWSUNFX1RPS0VOLCBJQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFMaWJBdXRoU2VydmljZSAge1xyXG4gICAgcG9vbERhdGE6IFVzZXJQb29sSW5mb3JtYXRpb247XHJcbiAgICB1c2VyUG9vbDogQ29nbml0b1VzZXJQb29sO1xyXG4gICAgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyO1xyXG4gICAgYXV0aGVudGljYXRpb25EZXRhaWxzOiBBdXRoZW50aWNhdGlvbkRldGFpbHM7XHJcbiAgICB0b2tlblZhbGlkOiBib29sZWFuO1xyXG4gICAgYWNjZXNzVG9rZW46IHN0cmluZztcclxuICAgIHVzZXJBdHRyaWJ1dGU6IGFueTtcclxuICAgIGxvZ2luRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRCdXR0b246IHN0cmluZztcclxuICAgIG5vT2ZBdHRlbXB0cyA9IDA7XHJcbiAgICBzZXNzaW9uTG9ja2VkID0gZmFsc2U7XHJcbiAgICB1c2VyTmFtZTogYW55O1xyXG4gICAgYWNjZXNzVG9rZW5UaW1lcklkOiBhbnk7XHJcbiAgICBJZFRva2VuOiBhbnk7XHJcbiAgZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHVibGljIGFjbFNlcnZpY2U6IEFubmFMaWJBY2xTZXJ2aWNlLFxyXG4gICAgICAgIC8vIHB1YmxpYyBsaWJyYXJ5Q29uZmlnOiBMaWJyYXJ5Q29uZmlnLFxyXG4gICAgICAgIHB1YmxpYyBodHRwQ2xpZW50Okh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBVVRIX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2U6IElBdXRoU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlKSB7XHJcbiAgICAgICAgICBpZighY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBhIGF1dGhTZXJ2aWNlJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge31cclxuXHJcbiAgICAvKioqXHJcbiAgIDEuIHRha2VzIHVzZXIgcG9vbCBkYXRhICh1c2VyUG9vbCBJRCBhbmQgY2xpZW50IElEKVxyXG4gICAyLiBpZiBjdXJyZW50IHVzZXIgaXMgbnVsbCB0aGVuIGl0IG1lYW5zIHVzZXIgYWxyZWFkeSBsb2dnZWQgb3V0IHRoZW4gc2ltcGx5IHJldHVybiBQcm9taXNlPGZhbHNlPlxyXG4gICAzLiBpZiBjdXJyZW50IHVzZXIgcHJlc2VudCBjaGVjayBpZiB0b2tlbiBpcyB2YWxpZCBmb3IgaXQuXHJcbiAqL1xyXG4gICAgaXNVc2VyTG9nZ2VkSW4oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5nZXRDdXJyZW50VXNlckRldGFpbHMoKTtcclxuICAgICAgICBpZiAoY3VycmVudFVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICBjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci5nZXRTZXNzaW9uKChlcnJvcjogRXJyb3IsIHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24gfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXNzaW9uVGltZW91dCgpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoQWNjZXNzVG9rZW4oKSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5nZXRDdXJyZW50VXNlckRldGFpbHMoKTtcclxuICAgICAgICBsZXQgYWNjZXNzVG9rZW5FeHBpcmF0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIik7XHJcbiAgICAgICAgbGV0IGV4cFRpbWUgPSBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPyBwYXJzZUludChhY2Nlc3NUb2tlbkV4cGlyYXRpb24pIDogMDtcclxuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvdW50ZXIgPSAxMDAwO1xyXG4gICAgICAgICAgICBsZXQgZGVsYXlGdW5jdGlvbiA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLmdldFNlc3Npb24oKGVycm9yOiBhbnksIHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24gfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24odGhpcy5JZFRva2VuKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdFeHBUaW1lIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0V4cFRpbWUgPSAxMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXlGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoZGVsYXlGdW5jdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwVGltZSA9IG5ld0V4cFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIsIG5ld0V4cFRpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3IuY29kZSA9PT0gXCJOb3RBdXRob3JpemVkRXhjZXB0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZEVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uVGltZW91dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCBjb3VudGVyKTtcclxuICAgICAgICB9LCBleHBUaW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wdXRlVG9rZW5FeHBpcmF0aW9uKHRva2VuOiBhbnkpIHtcclxuICAgICAgICBsZXQgY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICAgICAgICBsZXQgdG9rZW5UaW1lID0gdG9rZW4ucGF5bG9hZC5leHA7XHJcbiAgICAgICAgbGV0IGV4cFRpbWUgPSAodG9rZW5UaW1lIC0gY3VycmVudFRpbWUpICogMTAwMDtcclxuICAgICAgICByZXR1cm4gZXhwVGltZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0Q3VycmVudFVzZXJEZXRhaWxzKCkge1xyXG4gICAgICAgIGxldCBwb29sRGF0YSA9IG5ldyBVc2VyUG9vbEluZm9ybWF0aW9uKHRoaXMuY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuYW5uYUNvZ25pdG9MaWJyYXJ5Q29uZmlnLmNvZ25pdG8udXNlclBvb2xJZCwgdGhpcy5jb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hbm5hQ29nbml0b0xpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgbGV0IHVzZXJQb29sID0gbmV3IENvZ25pdG9Vc2VyUG9vbChwb29sRGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJQb29sLmdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsOiBzdHJpbmcpOiBDb2duaXRvVXNlciB7XHJcbiAgICAgICAgdGhpcy5wb29sRGF0YSA9IG5ldyBVc2VyUG9vbEluZm9ybWF0aW9uKHRoaXMuY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuYW5uYUNvZ25pdG9MaWJyYXJ5Q29uZmlnLmNvZ25pdG8udXNlclBvb2xJZCwgdGhpcy5jb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hbm5hQ29nbml0b0xpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgdGhpcy51c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2wodGhpcy5wb29sRGF0YSk7XHJcblxyXG4gICAgICAgIGxldCB1c2VyRGF0YSA9IHtcclxuICAgICAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxyXG4gICAgICAgICAgICBQb29sOiB0aGlzLnVzZXJQb29sLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGNvZ25pdG9Vc2VyID0gbmV3IENvZ25pdG9Vc2VyKHVzZXJEYXRhKTtcclxuICAgICAgICByZXR1cm4gY29nbml0b1VzZXI7XHJcbiAgICB9XHJcblxyXG4gICAgYXV0aGVudGljYXRlKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICBsZXQgYXV0aERhdGEgPSBuZXcgQXV0aGVudGljYXRpb25EYXRhKGVtYWlsLCBwYXNzd29yZCk7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsKTtcclxuICAgICAgICB0aGlzLkNvZ25pdG9BdXRoZW50aWNhdGlvbih0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscyk7XHJcbiAgICB9XHJcblxyXG4gICAgQ29nbml0b0F1dGhlbnRpY2F0aW9uKGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5hdXRoZW50aWNhdGVVc2VyKGF1dGhlbnRpY2F0aW9uRGV0YWlscywge1xyXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHJlc3VsdC5nZXRJZFRva2VuKCkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblN1Y2Nlc3NmdWxBdXRoZW50aWNhdGluZ1VzZXIocmVzdWx0KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlID09IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkRXhwaXJ5RXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRPbkV4cGlyeUVycm9yTXNnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNlbmRSZWdlbmVyYXRpb25FbWFpbCh0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscy5nZXRVc2VybmFtZSgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVyci5tZXNzYWdlID09PSBcIlBhc3N3b3JkIGF0dGVtcHRzIGV4Y2VlZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQudXNlck5hbWVQYXNzd29yZEluY29ycmVjdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyQXR0cmlidXRlID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBzZXROZXdQYXNzd29yZChuZXdQYXNzd29yZDogYW55KSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMudXNlckF0dHJpYnV0ZS5lbWFpbDtcclxuICAgICAgICBkZWxldGUgdGhpcy51c2VyQXR0cmlidXRlLmVtYWlsX3ZlcmlmaWVkO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnVzZXJBdHRyaWJ1dGUucGhvbmVfbnVtYmVyX3ZlcmlmaWVkO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIuY29tcGxldGVOZXdQYXNzd29yZENoYWxsZW5nZShuZXdQYXNzd29yZCwgdGhpcy51c2VyQXR0cmlidXRlLCB7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRmFpbHVyZTogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlID0gTG9naW5Db25zdGFudC5sb2dpbkFnYWluO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUChlbWFpbDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9IGVtYWlsO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIgPSB0aGlzLmdldENvZ25pdG9Vc2VyRGV0YWlscyhlbWFpbCk7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5mb3Jnb3RQYXNzd29yZCh7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgPVxyXG4gICAgICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlICtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQuQ29kZURlbGl2ZXJ5RGV0YWlscy5EZXN0aW5hdGlvbiArXHJcbiAgICAgICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC5wbGVhc2VFbnRlckl0QmVsb3c7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpID0+IHt9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZlcmlmeUNvZGUodmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5jb25maXJtUGFzc3dvcmQodmVyaWZpY2F0aW9uQ29kZSwgbmV3UGFzc3dvcmQsIHtcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzID0gdGhpcy5ub09mQXR0ZW1wdHMgKyAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IHRoaXMuZm9yZ290UGFzc3dvcmRFcnJvcihlcnJvciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGlyeUFsbEV4aXN0aW5nQ3VycmVudFNlc3Npb24obmV3UGFzc3dvcmQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyOiBhbnksIG5vT2ZBdHRlbXB0czogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZTtcclxuICAgICAgICBzd2l0Y2ggKGVyci5jb2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Mb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiRXhwaXJlZENvZGVFeGNlcHRpb25cIjpcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHQgKyBcIiBcIiArIG5vT2ZBdHRlbXB0cyArIExvZ2luQ29uc3RhbnQuYXR0ZW1wdE1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24pIHtcclxuICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHRva2VuLmdldEFjY2Vzc1Rva2VuKCkuZ2V0Snd0VG9rZW4oKTtcclxuICAgICAgdGhpcy5JZFRva2VuID0gdG9rZW4uZ2V0SWRUb2tlbigpO1xyXG4gICAgICBpZiAoXCJjb2duaXRvOmdyb3Vwc1wiIGluIHRva2VuLmdldEFjY2Vzc1Rva2VuKCkucGF5bG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QgPSB0b2tlbi5nZXRBY2Nlc3NUb2tlbigpLnBheWxvYWRbXCJjb2duaXRvOmdyb3Vwc1wiXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKG5ld1Bhc3N3b3JkOiBzdHJpbmcpe1xyXG4gICAgICBsZXQgdXNlcm5hbWUgPSAgdGhpcy5jb2duaXRvVXNlci5nZXRVc2VybmFtZSgpO1xyXG4gICAgICB0aGlzLnNldFVzZXJEZXRhaWxzKHVzZXJuYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICAgIHRoaXMub25Mb2dpbkluQ29nbnRpb1RvR2V0QWNjZXNzVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGV0YWlscyh1c2VybmFtZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKXtcclxuICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIGxldCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEodXNlcm5hbWUsIG5ld1Bhc3N3b3JkKTtcclxuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKHVzZXJuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbigpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmF1dGhlbnRpY2F0ZVVzZXIodGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMsIHtcclxuICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQ6IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhyZXN1bHQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2FsbEdsb2JhbFNpZ25vdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uRmFpbHVyZTogKGVycikgPT4ge30sXHJcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYWxsR2xvYmFsU2lnbm91dCgpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmdsb2JhbFNpZ25PdXQoe1xyXG4gICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4gXHJcbiAgICAgICAgeyBcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7ICAgXHJcbiAgICAgICAgICB0aGlzLmZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7IFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7fVxyXG4gICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -4,8 +4,8 @@ import { __awaiter } from 'tslib';
|
|
|
4
4
|
import { CognitoUserPool, CognitoUser, AuthenticationDetails } from 'amazon-cognito-identity-js';
|
|
5
5
|
import * as i3 from '@angular/router';
|
|
6
6
|
import { RouterModule } from '@angular/router';
|
|
7
|
-
import * as
|
|
8
|
-
import * as
|
|
7
|
+
import * as i3$1 from '@angular/common/http';
|
|
8
|
+
import * as i4 from 'ngx-toastr';
|
|
9
9
|
import * as i2 from '@angular/forms';
|
|
10
10
|
import { Validators, FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
11
|
import * as i9 from '@angular/common';
|
|
@@ -90,6 +90,9 @@ class UserState {
|
|
|
90
90
|
/** Token to inject the auth service */
|
|
91
91
|
const AUTH_SERVICE_TOKEN = new InjectionToken('Auth service token');
|
|
92
92
|
|
|
93
|
+
/** Token to inject the auth service */
|
|
94
|
+
const CONFIG_SERVICE_TOKEN = new InjectionToken('Cognito config service token');
|
|
95
|
+
|
|
93
96
|
/** Token to inject the acl service */
|
|
94
97
|
const ACL_SERVICE_TOKEN = new InjectionToken('ACL service token');
|
|
95
98
|
|
|
@@ -119,21 +122,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
119
122
|
}] }];
|
|
120
123
|
} });
|
|
121
124
|
|
|
122
|
-
class LibraryConfig {
|
|
123
|
-
constructor() {
|
|
124
|
-
this.loginPageLogoImgUrl = '';
|
|
125
|
-
this.currentAnnaVersion = '';
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
125
|
class AnnaLibAuthService {
|
|
130
|
-
constructor(router, aclService,
|
|
126
|
+
constructor(router, aclService,
|
|
127
|
+
// public libraryConfig: LibraryConfig,
|
|
128
|
+
httpClient, toastr, consumingProjectAuthService, consumingProjectConfigService) {
|
|
131
129
|
this.router = router;
|
|
132
130
|
this.aclService = aclService;
|
|
133
|
-
this.libraryConfig = libraryConfig;
|
|
134
131
|
this.httpClient = httpClient;
|
|
135
132
|
this.toastr = toastr;
|
|
136
133
|
this.consumingProjectAuthService = consumingProjectAuthService;
|
|
134
|
+
this.consumingProjectConfigService = consumingProjectConfigService;
|
|
137
135
|
this.noOfAttempts = 0;
|
|
138
136
|
this.sessionLocked = false;
|
|
139
137
|
if (!consumingProjectAuthService) {
|
|
@@ -213,12 +211,12 @@ class AnnaLibAuthService {
|
|
|
213
211
|
return expTime;
|
|
214
212
|
}
|
|
215
213
|
getCurrentUserDetails() {
|
|
216
|
-
let poolData = new UserPoolInformation(this.
|
|
214
|
+
let poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
|
|
217
215
|
let userPool = new CognitoUserPool(poolData);
|
|
218
216
|
return userPool.getCurrentUser();
|
|
219
217
|
}
|
|
220
218
|
getCognitoUserDetails(email) {
|
|
221
|
-
this.poolData = new UserPoolInformation(this.
|
|
219
|
+
this.poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
|
|
222
220
|
this.userPool = new CognitoUserPool(this.poolData);
|
|
223
221
|
let userData = {
|
|
224
222
|
Username: email,
|
|
@@ -361,7 +359,7 @@ class AnnaLibAuthService {
|
|
|
361
359
|
});
|
|
362
360
|
}
|
|
363
361
|
}
|
|
364
|
-
AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i3.Router }, { token: AnnaLibAclService }, { token:
|
|
362
|
+
AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i3.Router }, { token: AnnaLibAclService }, { token: i3$1.HttpClient }, { token: i4.ToastrService }, { token: AUTH_SERVICE_TOKEN }, { token: CONFIG_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
365
363
|
AnnaLibAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, providedIn: "root" });
|
|
366
364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, decorators: [{
|
|
367
365
|
type: Injectable,
|
|
@@ -369,12 +367,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
369
367
|
providedIn: "root",
|
|
370
368
|
}]
|
|
371
369
|
}], ctorParameters: function () {
|
|
372
|
-
return [{ type: i3.Router }, { type: AnnaLibAclService }, { type:
|
|
370
|
+
return [{ type: i3.Router }, { type: AnnaLibAclService }, { type: i3$1.HttpClient }, { type: i4.ToastrService }, { type: undefined, decorators: [{
|
|
373
371
|
type: Inject,
|
|
374
372
|
args: [AUTH_SERVICE_TOKEN]
|
|
373
|
+
}] }, { type: undefined, decorators: [{
|
|
374
|
+
type: Inject,
|
|
375
|
+
args: [CONFIG_SERVICE_TOKEN]
|
|
375
376
|
}] }];
|
|
376
377
|
} });
|
|
377
378
|
|
|
379
|
+
class LibraryConfig {
|
|
380
|
+
constructor() {
|
|
381
|
+
this.loginPageLogoImgUrl = '';
|
|
382
|
+
this.currentAnnaVersion = '';
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
|
|
378
386
|
class PoweredByLogoTemplateComponent {
|
|
379
387
|
constructor() { }
|
|
380
388
|
ngOnInit() {
|
|
@@ -693,12 +701,12 @@ class ForgotPasswordComponent {
|
|
|
693
701
|
}
|
|
694
702
|
}
|
|
695
703
|
}
|
|
696
|
-
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: AnnaLibAuthService }, { token: i2.FormBuilder }, { token:
|
|
704
|
+
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i4.ToastrService }, { token: i3.Router }, { token: LibraryConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
697
705
|
ForgotPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ForgotPasswordComponent, selector: "anna-cognito-lib-forgot-password", ngImport: i0, template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template>\r\n </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#alert-div{padding:.25rem 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div .mdi-info{color:#268bff;font-size:1rem}#alert-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem;margin-top:.9375rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"], components: [{ type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SpinnerButtonDirective, selector: "[anna-cognito-lib-SpinnerButton]", inputs: ["anna-cognito-lib-SpinnerButton", "spinnerButtonText"] }] });
|
|
698
706
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
699
707
|
type: Component,
|
|
700
708
|
args: [{ selector: 'anna-cognito-lib-forgot-password', template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template>\r\n </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#alert-div{padding:.25rem 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div .mdi-info{color:#268bff;font-size:1rem}#alert-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem;margin-top:.9375rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"] }]
|
|
701
|
-
}], ctorParameters: function () { return [{ type: AnnaLibAuthService }, { type: i2.FormBuilder }, { type:
|
|
709
|
+
}], ctorParameters: function () { return [{ type: AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i4.ToastrService }, { type: i3.Router }, { type: LibraryConfig }]; } });
|
|
702
710
|
|
|
703
711
|
// Angular import statements
|
|
704
712
|
class VerifyAndSetNewPasswordComponent {
|