@igo2/auth 1.15.3 → 1.15.5
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/igo2-auth.mjs +4 -4
- package/esm2020/lib/auth-form/auth-facebook.component.mjs +61 -61
- package/esm2020/lib/auth-form/auth-form.component.mjs +277 -277
- package/esm2020/lib/auth-form/auth-google.component.mjs +99 -99
- package/esm2020/lib/auth-form/auth-intern.component.mjs +119 -119
- package/esm2020/lib/auth-form/auth-microsoft.component.mjs +94 -94
- package/esm2020/lib/auth-form/auth-microsoftb2c.component.mjs +93 -93
- package/esm2020/lib/auth-form/index.mjs +5 -5
- package/esm2020/lib/auth-routing.module.mjs +24 -24
- package/esm2020/lib/auth.module.mjs +91 -91
- package/esm2020/lib/shared/admin.guard.mjs +33 -33
- package/esm2020/lib/shared/auth-microsoft.provider.mjs +84 -84
- package/esm2020/lib/shared/auth-msalBroadcastServiceb2c.service.mjs +38 -38
- package/esm2020/lib/shared/auth-msalServiceb2c.service..mjs +80 -80
- package/esm2020/lib/shared/auth.guard.mjs +32 -32
- package/esm2020/lib/shared/auth.interceptor.mjs +155 -155
- package/esm2020/lib/shared/auth.interface.mjs +2 -2
- package/esm2020/lib/shared/auth.service.mjs +158 -158
- package/esm2020/lib/shared/logged.guard.mjs +32 -32
- package/esm2020/lib/shared/profils.guard.mjs +37 -37
- package/esm2020/lib/shared/protected.directive.mjs +19 -19
- package/esm2020/lib/shared/storage.interface.mjs +2 -2
- package/esm2020/lib/shared/storage.service.mjs +91 -91
- package/esm2020/lib/shared/token.service.mjs +47 -47
- package/esm2020/public_api.mjs +19 -19
- package/fesm2015/igo2-auth.mjs +1577 -1577
- package/fesm2015/igo2-auth.mjs.map +1 -1
- package/fesm2020/igo2-auth.mjs +1475 -1475
- package/fesm2020/igo2-auth.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/auth-form/auth-facebook.component.d.ts +18 -18
- package/lib/auth-form/auth-form.component.d.ts +42 -42
- package/lib/auth-form/auth-google.component.d.ts +24 -24
- package/lib/auth-form/auth-intern.component.d.ts +21 -21
- package/lib/auth-form/auth-microsoft.component.d.ts +23 -23
- package/lib/auth-form/auth-microsoftb2c.component.d.ts +23 -23
- package/lib/auth-form/index.d.ts +4 -4
- package/lib/auth-routing.module.d.ts +7 -7
- package/lib/auth.module.d.ts +23 -23
- package/lib/shared/admin.guard.d.ts +13 -13
- package/lib/shared/auth-microsoft.provider.d.ts +30 -30
- package/lib/shared/auth-msalBroadcastServiceb2c.service.d.ts +15 -15
- package/lib/shared/auth-msalServiceb2c.service..d.ts +33 -33
- package/lib/shared/auth.guard.d.ts +13 -13
- package/lib/shared/auth.interceptor.d.ts +24 -24
- package/lib/shared/auth.interface.d.ts +99 -99
- package/lib/shared/auth.service.d.ts +44 -44
- package/lib/shared/logged.guard.d.ts +13 -13
- package/lib/shared/profils.guard.d.ts +13 -13
- package/lib/shared/protected.directive.d.ts +8 -8
- package/lib/shared/storage.interface.d.ts +4 -4
- package/lib/shared/storage.service.d.ts +18 -18
- package/lib/shared/token.service.d.ts +15 -15
- package/package.json +3 -3
- package/public_api.d.ts +15 -15
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Md5 } from 'ts-md5';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@igo2/core";
|
|
5
|
-
import * as i2 from "./token.service";
|
|
6
|
-
import * as i3 from "@angular/common/http";
|
|
7
|
-
export class AuthInterceptor {
|
|
8
|
-
constructor(config, tokenService, http) {
|
|
9
|
-
this.config = config;
|
|
10
|
-
this.tokenService = tokenService;
|
|
11
|
-
this.http = http;
|
|
12
|
-
this.refreshInProgress = false;
|
|
13
|
-
}
|
|
14
|
-
get trustHosts() {
|
|
15
|
-
const trustHosts = this.config.getConfig('auth.trustHosts') || [];
|
|
16
|
-
trustHosts.push(window.location.hostname);
|
|
17
|
-
return trustHosts;
|
|
18
|
-
}
|
|
19
|
-
get hostsWithCredentials() {
|
|
20
|
-
return this.config.getConfig('auth.hostsWithCredentials') || [];
|
|
21
|
-
}
|
|
22
|
-
get hostsWithAuthByKey() {
|
|
23
|
-
return this.config.getConfig('auth.hostsByKey') || [];
|
|
24
|
-
}
|
|
25
|
-
intercept(originalReq, next) {
|
|
26
|
-
const withCredentials = this.handleHostsWithCredentials(originalReq.url);
|
|
27
|
-
let req = originalReq.clone();
|
|
28
|
-
const hostWithKey = this.handleHostsAuthByKey(originalReq.url);
|
|
29
|
-
if (hostWithKey) {
|
|
30
|
-
req = req.clone({
|
|
31
|
-
params: req.params.set(hostWithKey.key, hostWithKey.value)
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
if (withCredentials) {
|
|
35
|
-
req = originalReq.clone({
|
|
36
|
-
withCredentials
|
|
37
|
-
});
|
|
38
|
-
return next.handle(req);
|
|
39
|
-
}
|
|
40
|
-
this.refreshToken();
|
|
41
|
-
const token = this.tokenService.get();
|
|
42
|
-
const element = document.createElement('a');
|
|
43
|
-
element.href = req.url;
|
|
44
|
-
if (element.host === '') {
|
|
45
|
-
element.href = element.href; // FIX IE11, DO NOT REMOVE
|
|
46
|
-
}
|
|
47
|
-
if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
|
|
48
|
-
return next.handle(req);
|
|
49
|
-
}
|
|
50
|
-
const authHeader = `Bearer ${token}`;
|
|
51
|
-
let authReq = req.clone({
|
|
52
|
-
headers: req.headers.set('Authorization', authHeader)
|
|
53
|
-
});
|
|
54
|
-
const tokenDecoded = this.tokenService.decode();
|
|
55
|
-
if (authReq.params.get('_i') === 'true' &&
|
|
56
|
-
tokenDecoded &&
|
|
57
|
-
tokenDecoded.user &&
|
|
58
|
-
tokenDecoded.user.sourceId) {
|
|
59
|
-
const hashUser = Md5.hashStr(tokenDecoded.user.sourceId);
|
|
60
|
-
authReq = authReq.clone({
|
|
61
|
-
params: authReq.params.set('_i', hashUser)
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
else if (authReq.params.get('_i') === 'true') {
|
|
65
|
-
authReq = authReq.clone({
|
|
66
|
-
params: authReq.params.delete('_i')
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
return next.handle(authReq);
|
|
70
|
-
}
|
|
71
|
-
interceptXhr(xhr, url) {
|
|
72
|
-
const withCredentials = this.handleHostsWithCredentials(url);
|
|
73
|
-
if (withCredentials) {
|
|
74
|
-
xhr.withCredentials = withCredentials;
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
this.refreshToken();
|
|
78
|
-
const element = document.createElement('a');
|
|
79
|
-
element.href = url;
|
|
80
|
-
const token = this.tokenService.get();
|
|
81
|
-
if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
alterUrlWithKeyAuth(url) {
|
|
88
|
-
const hostWithKey = this.handleHostsAuthByKey(url);
|
|
89
|
-
let interceptedUrl = url;
|
|
90
|
-
if (hostWithKey) {
|
|
91
|
-
const urlDecomposed = interceptedUrl.split(/[?&]/);
|
|
92
|
-
let urlWithKeyAdded = urlDecomposed.shift();
|
|
93
|
-
const paramsToKeep = urlDecomposed.filter(p => p.length !== 0);
|
|
94
|
-
paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);
|
|
95
|
-
if (paramsToKeep.length) {
|
|
96
|
-
urlWithKeyAdded += '?' + paramsToKeep.join('&');
|
|
97
|
-
}
|
|
98
|
-
return urlWithKeyAdded;
|
|
99
|
-
}
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
handleHostsWithCredentials(reqUrl) {
|
|
103
|
-
let withCredentials = false;
|
|
104
|
-
for (const hostWithCredentials of this.hostsWithCredentials) {
|
|
105
|
-
const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);
|
|
106
|
-
if (domainRegex.test(reqUrl)) {
|
|
107
|
-
withCredentials = hostWithCredentials.withCredentials !== undefined ? hostWithCredentials.withCredentials : undefined;
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return withCredentials;
|
|
112
|
-
}
|
|
113
|
-
handleHostsAuthByKey(reqUrl) {
|
|
114
|
-
let hostWithKey;
|
|
115
|
-
for (const hostWithAuthByKey of this.hostsWithAuthByKey) {
|
|
116
|
-
const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);
|
|
117
|
-
if (domainRegex.test(reqUrl)) {
|
|
118
|
-
var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;
|
|
119
|
-
var keyAdded = new RegExp(replace, "gm");
|
|
120
|
-
if (!keyAdded.test(reqUrl)) {
|
|
121
|
-
hostWithKey = { key: hostWithAuthByKey.keyProperty, value: hostWithAuthByKey.keyValue };
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return hostWithKey;
|
|
127
|
-
}
|
|
128
|
-
refreshToken() {
|
|
129
|
-
const jwt = this.tokenService.decode();
|
|
130
|
-
const currentTime = new Date().getTime() / 1000;
|
|
131
|
-
if (!this.refreshInProgress &&
|
|
132
|
-
jwt &&
|
|
133
|
-
currentTime < jwt.exp &&
|
|
134
|
-
currentTime > jwt.exp - 1800) {
|
|
135
|
-
this.refreshInProgress = true;
|
|
136
|
-
const url = this.config.getConfig('auth.url');
|
|
137
|
-
return this.http.post(`${url}/refresh`, {}).subscribe((data) => {
|
|
138
|
-
this.tokenService.set(data.token);
|
|
139
|
-
this.refreshInProgress = false;
|
|
140
|
-
}, err => {
|
|
141
|
-
err.error.caught = true;
|
|
142
|
-
return err;
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
AuthInterceptor.ɵfac = function AuthInterceptor_Factory(t) { return new (t || AuthInterceptor)(i0.ɵɵinject(i1.ConfigService), i0.ɵɵinject(i2.TokenService), i0.ɵɵinject(i3.HttpClient)); };
|
|
148
|
-
AuthInterceptor.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthInterceptor, factory: AuthInterceptor.ɵfac, providedIn: 'root' });
|
|
149
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthInterceptor, [{
|
|
150
|
-
type: Injectable,
|
|
151
|
-
args: [{
|
|
152
|
-
providedIn: 'root'
|
|
153
|
-
}]
|
|
154
|
-
}], function () { return [{ type: i1.ConfigService }, { type: i2.TokenService }, { type: i3.HttpClient }]; }, null); })();
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7O0FBUzdCLE1BQU0sT0FBTyxlQUFlO0lBaUIxQixZQUNVLE1BQXFCLEVBQ3JCLFlBQTBCLEVBQzFCLElBQWdCO1FBRmhCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQW5CbEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBb0IvQixDQUFDO0lBbEJKLElBQVksVUFBVTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVksb0JBQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQVksa0JBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQVFELFNBQVMsQ0FDUCxXQUE2QixFQUM3QixJQUFpQjtRQUVqQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FB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dGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBIYW5kbGVyLFxyXG4gIEh0dHBSZXF1ZXN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1kNSB9IGZyb20gJ3RzLW1kNSc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhCeUtleU9wdGlvbnMsIFdpdGhDcmVkZW50aWFsc09wdGlvbnMgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcHJpdmF0ZSByZWZyZXNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGdldCB0cnVzdEhvc3RzKCkge1xyXG4gICAgY29uc3QgdHJ1c3RIb3N0cyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC50cnVzdEhvc3RzJykgfHwgW107XHJcbiAgICB0cnVzdEhvc3RzLnB1c2god2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTtcclxuICAgIHJldHVybiB0cnVzdEhvc3RzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaG9zdHNXaXRoQ3JlZGVudGlhbHMoKTogV2l0aENyZWRlbnRpYWxzT3B0aW9uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGguaG9zdHNXaXRoQ3JlZGVudGlhbHMnKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGhvc3RzV2l0aEF1dGhCeUtleSgpOiBBdXRoQnlLZXlPcHRpb25zW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC5ob3N0c0J5S2V5JykgfHwgW107XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge31cclxuXHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgb3JpZ2luYWxSZXE6IEh0dHBSZXF1ZXN0PGFueT4sXHJcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIGNvbnN0IHdpdGhDcmVkZW50aWFscyA9IHRoaXMuaGFuZGxlSG9zdHNXaXRoQ3JlZGVudGlhbHMob3JpZ2luYWxSZXEudXJsKTtcclxuICAgIGxldCByZXEgPSBvcmlnaW5hbFJlcS5jbG9uZSgpO1xyXG4gICAgY29uc3QgaG9zdFdpdGhLZXkgPSB0aGlzLmhhbmRsZUhvc3RzQXV0aEJ5S2V5KG9yaWdpbmFsUmVxLnVybCk7XHJcbiAgICBpZiAoaG9zdFdpdGhLZXkpIHtcclxuICAgICAgcmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICBwYXJhbXM6IHJlcS5wYXJhbXMuc2V0KGhvc3RXaXRoS2V5LmtleSwgaG9zdFdpdGhLZXkudmFsdWUpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpdGhDcmVkZW50aWFscykge1xyXG4gICAgICByZXEgPSBvcmlnaW5hbFJlcS5jbG9uZSh7XHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldCgpO1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGVsZW1lbnQuaHJlZiA9IHJlcS51cmw7XHJcbiAgICBpZiAoZWxlbWVudC5ob3N0ID09PSAnJykge1xyXG4gICAgICBlbGVtZW50LmhyZWYgPSBlbGVtZW50LmhyZWY7IC8vIEZJWCBJRTExLCBETyBOT1QgUkVNT1ZFXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0b2tlbiB8fCB0aGlzLnRydXN0SG9zdHMuaW5kZXhPZihlbGVtZW50Lmhvc3RuYW1lKSA9PT0gLTEpIHtcclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYXV0aEhlYWRlciA9IGBCZWFyZXIgJHt0b2tlbn1gO1xyXG4gICAgbGV0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBhdXRoSGVhZGVyKVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgdG9rZW5EZWNvZGVkOiBhbnkgPSB0aGlzLnRva2VuU2VydmljZS5kZWNvZGUoKTtcclxuICAgIGlmIChcclxuICAgICAgYXV0aFJlcS5wYXJhbXMuZ2V0KCdfaScpID09PSAndHJ1ZScgJiZcclxuICAgICAgdG9rZW5EZWNvZGVkICYmXHJcbiAgICAgIHRva2VuRGVjb2RlZC51c2VyICYmXHJcbiAgICAgIHRva2VuRGVjb2RlZC51c2VyLnNvdXJjZUlkXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgaGFzaFVzZXIgPSBNZDUuaGFzaFN0cih0b2tlbkRlY29kZWQudXNlci5zb3VyY2VJZCkgYXMgc3RyaW5nO1xyXG4gICAgICBhdXRoUmVxID0gYXV0aFJlcS5jbG9uZSh7XHJcbiAgICAgICAgcGFyYW1zOiBhdXRoUmVxLnBhcmFtcy5zZXQoJ19pJywgaGFzaFVzZXIpXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChhdXRoUmVxLnBhcmFtcy5nZXQoJ19pJykgPT09ICd0cnVlJykge1xyXG4gICAgICBhdXRoUmVxID0gYXV0aFJlcS5jbG9uZSh7XHJcbiAgICAgICAgcGFyYW1zOiBhdXRoUmVxLnBhcmFtcy5kZWxldGUoJ19pJylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJjZXB0WGhyKHhociwgdXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHdpdGhDcmVkZW50aWFscyA9IHRoaXMuaGFuZGxlSG9zdHNXaXRoQ3JlZGVudGlhbHModXJsKTtcclxuICAgIGlmICh3aXRoQ3JlZGVudGlhbHMpIHtcclxuICAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7XHJcbiAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGVsZW1lbnQuaHJlZiA9IHVybDtcclxuXHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldCgpO1xyXG4gICAgaWYgKCF0b2tlbiB8fCB0aGlzLnRydXN0SG9zdHMuaW5kZXhPZihlbGVtZW50Lmhvc3RuYW1lKSA9PT0gLTEpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0b2tlbik7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFsdGVyVXJsV2l0aEtleUF1dGgodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaG9zdFdpdGhLZXkgPSB0aGlzLmhhbmRsZUhvc3RzQXV0aEJ5S2V5KHVybCk7XHJcbiAgICBsZXQgaW50ZXJjZXB0ZWRVcmwgPSB1cmw7XHJcbiAgICBpZiAoaG9zdFdpdGhLZXkpIHtcclxuICAgICAgY29uc3QgdXJsRGVjb21wb3NlZCA9IGludGVyY2VwdGVkVXJsLnNwbGl0KC9bPyZdLyk7XHJcbiAgICAgIGxldCB1cmxXaXRoS2V5QWRkZWQgPSB1cmxEZWNvbXBvc2VkLnNoaWZ0KCk7XHJcbiAgICAgIGNvbnN0IHBhcmFtc1RvS2VlcCA9IHVybERlY29tcG9zZWQuZmlsdGVyKHAgPT4gcC5sZW5ndGggIT09IDApO1xyXG4gICAgICBwYXJhbXNUb0tlZXAucHVzaChgJHtob3N0V2l0aEtleS5rZXl9PSR7aG9zdFdpdGhLZXkudmFsdWV9YCk7XHJcbiAgICAgIGlmIChwYXJhbXNUb0tlZXAubGVuZ3RoKSB7XHJcbiAgICAgICAgdXJsV2l0aEtleUFkZGVkICs9ICc/JyArIHBhcmFtc1RvS2VlcC5qb2luKCcmJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVybFdpdGhLZXlBZGRlZDtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSG9zdHNXaXRoQ3JlZGVudGlhbHMocmVxVXJsOiBzdHJpbmcpIHtcclxuICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZTtcclxuICAgIGZvciAoY29uc3QgaG9zdFdpdGhDcmVkZW50aWFscyBvZiB0aGlzLmhvc3RzV2l0aENyZWRlbnRpYWxzKSB7XHJcbiAgICAgIGNvbnN0IGRvbWFpblJlZ2V4ID0gbmV3IFJlZ0V4cChob3N0V2l0aENyZWRlbnRpYWxzLmRvbWFpblJlZ0ZpbHRlcnMpO1xyXG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdChyZXFVcmwpKSB7XHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzID0gaG9zdFdpdGhDcmVkZW50aWFscy53aXRoQ3JlZGVudGlhbHMgIT09IHVuZGVmaW5lZCA/IGhvc3RXaXRoQ3JlZGVudGlhbHMud2l0aENyZWRlbnRpYWxzIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2l0aENyZWRlbnRpYWxzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVIb3N0c0F1dGhCeUtleShyZXFVcmw6IHN0cmluZyk6IHtrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZ30ge1xyXG4gICAgbGV0IGhvc3RXaXRoS2V5O1xyXG4gICAgZm9yIChjb25zdCBob3N0V2l0aEF1dGhCeUtleSBvZiB0aGlzLmhvc3RzV2l0aEF1dGhCeUtleSkge1xyXG4gICAgICBjb25zdCBkb21haW5SZWdleCA9IG5ldyBSZWdFeHAoaG9zdFdpdGhBdXRoQnlLZXkuZG9tYWluUmVnRmlsdGVycyk7XHJcbiAgICAgIGlmIChkb21haW5SZWdleC50ZXN0KHJlcVVybCkpIHtcclxuICAgICAgICB2YXIgcmVwbGFjZSA9IGAke2hvc3RXaXRoQXV0aEJ5S2V5LmtleVByb3BlcnR5fT0ke2hvc3RXaXRoQXV0aEJ5S2V5LmtleVZhbHVlfWA7XHJcbiAgICAgICAgdmFyIGtleUFkZGVkID0gbmV3IFJlZ0V4cChyZXBsYWNlLFwiZ21cIik7XHJcbiAgICAgICAgaWYgKCFrZXlBZGRlZC50ZXN0KHJlcVVybCkpIHtcclxuICAgICAgICAgIGhvc3RXaXRoS2V5ID0ge2tleSA6IGhvc3RXaXRoQXV0aEJ5S2V5LmtleVByb3BlcnR5LCB2YWx1ZTogaG9zdFdpdGhBdXRoQnlLZXkua2V5VmFsdWV9O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaG9zdFdpdGhLZXk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKSB7XHJcbiAgICBjb25zdCBqd3QgPSB0aGlzLnRva2VuU2VydmljZS5kZWNvZGUoKTtcclxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMucmVmcmVzaEluUHJvZ3Jlc3MgJiZcclxuICAgICAgand0ICYmXHJcbiAgICAgIGN1cnJlbnRUaW1lIDwgand0LmV4cCAmJlxyXG4gICAgICBjdXJyZW50VGltZSA+IGp3dC5leHAgLSAxODAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyA9IHRydWU7XHJcblxyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgudXJsJyk7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt1cmx9L3JlZnJlc2hgLCB7fSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChkYXRhLnRva2VuKTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICBlcnIuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybiBlcnI7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Md5 } from 'ts-md5';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@igo2/core";
|
|
5
|
+
import * as i2 from "./token.service";
|
|
6
|
+
import * as i3 from "@angular/common/http";
|
|
7
|
+
export class AuthInterceptor {
|
|
8
|
+
constructor(config, tokenService, http) {
|
|
9
|
+
this.config = config;
|
|
10
|
+
this.tokenService = tokenService;
|
|
11
|
+
this.http = http;
|
|
12
|
+
this.refreshInProgress = false;
|
|
13
|
+
}
|
|
14
|
+
get trustHosts() {
|
|
15
|
+
const trustHosts = this.config.getConfig('auth.trustHosts') || [];
|
|
16
|
+
trustHosts.push(window.location.hostname);
|
|
17
|
+
return trustHosts;
|
|
18
|
+
}
|
|
19
|
+
get hostsWithCredentials() {
|
|
20
|
+
return this.config.getConfig('auth.hostsWithCredentials') || [];
|
|
21
|
+
}
|
|
22
|
+
get hostsWithAuthByKey() {
|
|
23
|
+
return this.config.getConfig('auth.hostsByKey') || [];
|
|
24
|
+
}
|
|
25
|
+
intercept(originalReq, next) {
|
|
26
|
+
const withCredentials = this.handleHostsWithCredentials(originalReq.url);
|
|
27
|
+
let req = originalReq.clone();
|
|
28
|
+
const hostWithKey = this.handleHostsAuthByKey(originalReq.url);
|
|
29
|
+
if (hostWithKey) {
|
|
30
|
+
req = req.clone({
|
|
31
|
+
params: req.params.set(hostWithKey.key, hostWithKey.value)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (withCredentials) {
|
|
35
|
+
req = originalReq.clone({
|
|
36
|
+
withCredentials
|
|
37
|
+
});
|
|
38
|
+
return next.handle(req);
|
|
39
|
+
}
|
|
40
|
+
this.refreshToken();
|
|
41
|
+
const token = this.tokenService.get();
|
|
42
|
+
const element = document.createElement('a');
|
|
43
|
+
element.href = req.url;
|
|
44
|
+
if (element.host === '') {
|
|
45
|
+
element.href = element.href; // FIX IE11, DO NOT REMOVE
|
|
46
|
+
}
|
|
47
|
+
if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
|
|
48
|
+
return next.handle(req);
|
|
49
|
+
}
|
|
50
|
+
const authHeader = `Bearer ${token}`;
|
|
51
|
+
let authReq = req.clone({
|
|
52
|
+
headers: req.headers.set('Authorization', authHeader)
|
|
53
|
+
});
|
|
54
|
+
const tokenDecoded = this.tokenService.decode();
|
|
55
|
+
if (authReq.params.get('_i') === 'true' &&
|
|
56
|
+
tokenDecoded &&
|
|
57
|
+
tokenDecoded.user &&
|
|
58
|
+
tokenDecoded.user.sourceId) {
|
|
59
|
+
const hashUser = Md5.hashStr(tokenDecoded.user.sourceId);
|
|
60
|
+
authReq = authReq.clone({
|
|
61
|
+
params: authReq.params.set('_i', hashUser)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else if (authReq.params.get('_i') === 'true') {
|
|
65
|
+
authReq = authReq.clone({
|
|
66
|
+
params: authReq.params.delete('_i')
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return next.handle(authReq);
|
|
70
|
+
}
|
|
71
|
+
interceptXhr(xhr, url) {
|
|
72
|
+
const withCredentials = this.handleHostsWithCredentials(url);
|
|
73
|
+
if (withCredentials) {
|
|
74
|
+
xhr.withCredentials = withCredentials;
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
this.refreshToken();
|
|
78
|
+
const element = document.createElement('a');
|
|
79
|
+
element.href = url;
|
|
80
|
+
const token = this.tokenService.get();
|
|
81
|
+
if (!token || this.trustHosts.indexOf(element.hostname) === -1) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
alterUrlWithKeyAuth(url) {
|
|
88
|
+
const hostWithKey = this.handleHostsAuthByKey(url);
|
|
89
|
+
let interceptedUrl = url;
|
|
90
|
+
if (hostWithKey) {
|
|
91
|
+
const urlDecomposed = interceptedUrl.split(/[?&]/);
|
|
92
|
+
let urlWithKeyAdded = urlDecomposed.shift();
|
|
93
|
+
const paramsToKeep = urlDecomposed.filter(p => p.length !== 0);
|
|
94
|
+
paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);
|
|
95
|
+
if (paramsToKeep.length) {
|
|
96
|
+
urlWithKeyAdded += '?' + paramsToKeep.join('&');
|
|
97
|
+
}
|
|
98
|
+
return urlWithKeyAdded;
|
|
99
|
+
}
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
handleHostsWithCredentials(reqUrl) {
|
|
103
|
+
let withCredentials = false;
|
|
104
|
+
for (const hostWithCredentials of this.hostsWithCredentials) {
|
|
105
|
+
const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);
|
|
106
|
+
if (domainRegex.test(reqUrl)) {
|
|
107
|
+
withCredentials = hostWithCredentials.withCredentials !== undefined ? hostWithCredentials.withCredentials : undefined;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return withCredentials;
|
|
112
|
+
}
|
|
113
|
+
handleHostsAuthByKey(reqUrl) {
|
|
114
|
+
let hostWithKey;
|
|
115
|
+
for (const hostWithAuthByKey of this.hostsWithAuthByKey) {
|
|
116
|
+
const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);
|
|
117
|
+
if (domainRegex.test(reqUrl)) {
|
|
118
|
+
var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;
|
|
119
|
+
var keyAdded = new RegExp(replace, "gm");
|
|
120
|
+
if (!keyAdded.test(reqUrl)) {
|
|
121
|
+
hostWithKey = { key: hostWithAuthByKey.keyProperty, value: hostWithAuthByKey.keyValue };
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return hostWithKey;
|
|
127
|
+
}
|
|
128
|
+
refreshToken() {
|
|
129
|
+
const jwt = this.tokenService.decode();
|
|
130
|
+
const currentTime = new Date().getTime() / 1000;
|
|
131
|
+
if (!this.refreshInProgress &&
|
|
132
|
+
jwt &&
|
|
133
|
+
currentTime < jwt.exp &&
|
|
134
|
+
currentTime > jwt.exp - 1800) {
|
|
135
|
+
this.refreshInProgress = true;
|
|
136
|
+
const url = this.config.getConfig('auth.url');
|
|
137
|
+
return this.http.post(`${url}/refresh`, {}).subscribe((data) => {
|
|
138
|
+
this.tokenService.set(data.token);
|
|
139
|
+
this.refreshInProgress = false;
|
|
140
|
+
}, err => {
|
|
141
|
+
err.error.caught = true;
|
|
142
|
+
return err;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
AuthInterceptor.ɵfac = function AuthInterceptor_Factory(t) { return new (t || AuthInterceptor)(i0.ɵɵinject(i1.ConfigService), i0.ɵɵinject(i2.TokenService), i0.ɵɵinject(i3.HttpClient)); };
|
|
148
|
+
AuthInterceptor.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthInterceptor, factory: AuthInterceptor.ɵfac, providedIn: 'root' });
|
|
149
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthInterceptor, [{
|
|
150
|
+
type: Injectable,
|
|
151
|
+
args: [{
|
|
152
|
+
providedIn: 'root'
|
|
153
|
+
}]
|
|
154
|
+
}], function () { return [{ type: i1.ConfigService }, { type: i2.TokenService }, { type: i3.HttpClient }]; }, null); })();
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7O0FBUzdCLE1BQU0sT0FBTyxlQUFlO0lBaUIxQixZQUNVLE1BQXFCLEVBQ3JCLFlBQTBCLEVBQzFCLElBQWdCO1FBRmhCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQW5CbEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBb0IvQixDQUFDO0lBbEJKLElBQVksVUFBVTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVksb0JBQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQVksa0JBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQVFELFNBQVMsQ0FDUCxXQUE2QixFQUM3QixJQUFpQjtRQUVqQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FB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dGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBSZXF1ZXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1kNSB9IGZyb20gJ3RzLW1kNSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoQnlLZXlPcHRpb25zLCBXaXRoQ3JlZGVudGlhbHNPcHRpb25zIH0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgcmVmcmVzaEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIGdldCB0cnVzdEhvc3RzKCkge1xuICAgIGNvbnN0IHRydXN0SG9zdHMgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgudHJ1c3RIb3N0cycpIHx8IFtdO1xuICAgIHRydXN0SG9zdHMucHVzaCh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpO1xuICAgIHJldHVybiB0cnVzdEhvc3RzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdHNXaXRoQ3JlZGVudGlhbHMoKTogV2l0aENyZWRlbnRpYWxzT3B0aW9uc1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLmhvc3RzV2l0aENyZWRlbnRpYWxzJykgfHwgW107XG4gIH1cblxuICBwcml2YXRlIGdldCBob3N0c1dpdGhBdXRoQnlLZXkoKTogQXV0aEJ5S2V5T3B0aW9uc1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLmhvc3RzQnlLZXknKSB8fCBbXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9rZW5TZXJ2aWNlOiBUb2tlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkge31cblxuICBpbnRlcmNlcHQoXG4gICAgb3JpZ2luYWxSZXE6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGNvbnN0IHdpdGhDcmVkZW50aWFscyA9IHRoaXMuaGFuZGxlSG9zdHNXaXRoQ3JlZGVudGlhbHMob3JpZ2luYWxSZXEudXJsKTtcbiAgICBsZXQgcmVxID0gb3JpZ2luYWxSZXEuY2xvbmUoKTtcbiAgICBjb25zdCBob3N0V2l0aEtleSA9IHRoaXMuaGFuZGxlSG9zdHNBdXRoQnlLZXkob3JpZ2luYWxSZXEudXJsKTtcbiAgICBpZiAoaG9zdFdpdGhLZXkpIHtcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIHBhcmFtczogcmVxLnBhcmFtcy5zZXQoaG9zdFdpdGhLZXkua2V5LCBob3N0V2l0aEtleS52YWx1ZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAod2l0aENyZWRlbnRpYWxzKSB7XG4gICAgICByZXEgPSBvcmlnaW5hbFJlcS5jbG9uZSh7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsc1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG4gICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldCgpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgZWxlbWVudC5ocmVmID0gcmVxLnVybDtcbiAgICBpZiAoZWxlbWVudC5ob3N0ID09PSAnJykge1xuICAgICAgZWxlbWVudC5ocmVmID0gZWxlbWVudC5ocmVmOyAvLyBGSVggSUUxMSwgRE8gTk9UIFJFTU9WRVxuICAgIH1cblxuICAgIGlmICghdG9rZW4gfHwgdGhpcy50cnVzdEhvc3RzLmluZGV4T2YoZWxlbWVudC5ob3N0bmFtZSkgPT09IC0xKSB7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG5cbiAgICBjb25zdCBhdXRoSGVhZGVyID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgbGV0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xuICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYXV0aEhlYWRlcilcbiAgICB9KTtcblxuICAgIGNvbnN0IHRva2VuRGVjb2RlZDogYW55ID0gdGhpcy50b2tlblNlcnZpY2UuZGVjb2RlKCk7XG4gICAgaWYgKFxuICAgICAgYXV0aFJlcS5wYXJhbXMuZ2V0KCdfaScpID09PSAndHJ1ZScgJiZcbiAgICAgIHRva2VuRGVjb2RlZCAmJlxuICAgICAgdG9rZW5EZWNvZGVkLnVzZXIgJiZcbiAgICAgIHRva2VuRGVjb2RlZC51c2VyLnNvdXJjZUlkXG4gICAgKSB7XG4gICAgICBjb25zdCBoYXNoVXNlciA9IE1kNS5oYXNoU3RyKHRva2VuRGVjb2RlZC51c2VyLnNvdXJjZUlkKSBhcyBzdHJpbmc7XG4gICAgICBhdXRoUmVxID0gYXV0aFJlcS5jbG9uZSh7XG4gICAgICAgIHBhcmFtczogYXV0aFJlcS5wYXJhbXMuc2V0KCdfaScsIGhhc2hVc2VyKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChhdXRoUmVxLnBhcmFtcy5nZXQoJ19pJykgPT09ICd0cnVlJykge1xuICAgICAgYXV0aFJlcSA9IGF1dGhSZXEuY2xvbmUoe1xuICAgICAgICBwYXJhbXM6IGF1dGhSZXEucGFyYW1zLmRlbGV0ZSgnX2knKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpO1xuICB9XG5cbiAgaW50ZXJjZXB0WGhyKHhociwgdXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHMgPSB0aGlzLmhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKHVybCk7XG4gICAgaWYgKHdpdGhDcmVkZW50aWFscykge1xuICAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7XG4gICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGVsZW1lbnQuaHJlZiA9IHVybDtcblxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk7XG4gICAgaWYgKCF0b2tlbiB8fCB0aGlzLnRydXN0SG9zdHMuaW5kZXhPZihlbGVtZW50Lmhvc3RuYW1lKSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0b2tlbik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhbHRlclVybFdpdGhLZXlBdXRoKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3N0V2l0aEtleSA9IHRoaXMuaGFuZGxlSG9zdHNBdXRoQnlLZXkodXJsKTtcbiAgICBsZXQgaW50ZXJjZXB0ZWRVcmwgPSB1cmw7XG4gICAgaWYgKGhvc3RXaXRoS2V5KSB7XG4gICAgICBjb25zdCB1cmxEZWNvbXBvc2VkID0gaW50ZXJjZXB0ZWRVcmwuc3BsaXQoL1s/Jl0vKTtcbiAgICAgIGxldCB1cmxXaXRoS2V5QWRkZWQgPSB1cmxEZWNvbXBvc2VkLnNoaWZ0KCk7XG4gICAgICBjb25zdCBwYXJhbXNUb0tlZXAgPSB1cmxEZWNvbXBvc2VkLmZpbHRlcihwID0+IHAubGVuZ3RoICE9PSAwKTtcbiAgICAgIHBhcmFtc1RvS2VlcC5wdXNoKGAke2hvc3RXaXRoS2V5LmtleX09JHtob3N0V2l0aEtleS52YWx1ZX1gKTtcbiAgICAgIGlmIChwYXJhbXNUb0tlZXAubGVuZ3RoKSB7XG4gICAgICAgIHVybFdpdGhLZXlBZGRlZCArPSAnPycgKyBwYXJhbXNUb0tlZXAuam9pbignJicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVybFdpdGhLZXlBZGRlZDtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIb3N0c1dpdGhDcmVkZW50aWFscyhyZXFVcmw6IHN0cmluZykge1xuICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGhvc3RXaXRoQ3JlZGVudGlhbHMgb2YgdGhpcy5ob3N0c1dpdGhDcmVkZW50aWFscykge1xuICAgICAgY29uc3QgZG9tYWluUmVnZXggPSBuZXcgUmVnRXhwKGhvc3RXaXRoQ3JlZGVudGlhbHMuZG9tYWluUmVnRmlsdGVycyk7XG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdChyZXFVcmwpKSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IGhvc3RXaXRoQ3JlZGVudGlhbHMud2l0aENyZWRlbnRpYWxzICE9PSB1bmRlZmluZWQgPyBob3N0V2l0aENyZWRlbnRpYWxzLndpdGhDcmVkZW50aWFscyA6IHVuZGVmaW5lZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3aXRoQ3JlZGVudGlhbHM7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUhvc3RzQXV0aEJ5S2V5KHJlcVVybDogc3RyaW5nKToge2tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfSB7XG4gICAgbGV0IGhvc3RXaXRoS2V5O1xuICAgIGZvciAoY29uc3QgaG9zdFdpdGhBdXRoQnlLZXkgb2YgdGhpcy5ob3N0c1dpdGhBdXRoQnlLZXkpIHtcbiAgICAgIGNvbnN0IGRvbWFpblJlZ2V4ID0gbmV3IFJlZ0V4cChob3N0V2l0aEF1dGhCeUtleS5kb21haW5SZWdGaWx0ZXJzKTtcbiAgICAgIGlmIChkb21haW5SZWdleC50ZXN0KHJlcVVybCkpIHtcbiAgICAgICAgdmFyIHJlcGxhY2UgPSBgJHtob3N0V2l0aEF1dGhCeUtleS5rZXlQcm9wZXJ0eX09JHtob3N0V2l0aEF1dGhCeUtleS5rZXlWYWx1ZX1gO1xuICAgICAgICB2YXIga2V5QWRkZWQgPSBuZXcgUmVnRXhwKHJlcGxhY2UsXCJnbVwiKTtcbiAgICAgICAgaWYgKCFrZXlBZGRlZC50ZXN0KHJlcVVybCkpIHtcbiAgICAgICAgICBob3N0V2l0aEtleSA9IHtrZXkgOiBob3N0V2l0aEF1dGhCeUtleS5rZXlQcm9wZXJ0eSwgdmFsdWU6IGhvc3RXaXRoQXV0aEJ5S2V5LmtleVZhbHVlfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaG9zdFdpdGhLZXk7XG4gIH1cblxuICByZWZyZXNoVG9rZW4oKSB7XG4gICAgY29uc3Qgand0ID0gdGhpcy50b2tlblNlcnZpY2UuZGVjb2RlKCk7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7XG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyAmJlxuICAgICAgand0ICYmXG4gICAgICBjdXJyZW50VGltZSA8IGp3dC5leHAgJiZcbiAgICAgIGN1cnJlbnRUaW1lID4gand0LmV4cCAtIDE4MDBcbiAgICApIHtcbiAgICAgIHRoaXMucmVmcmVzaEluUHJvZ3Jlc3MgPSB0cnVlO1xuXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgudXJsJyk7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dXJsfS9yZWZyZXNoYCwge30pLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChkYXRhLnRva2VuKTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2F1dGguaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcm93c2VyQXV0aE9wdGlvbnMgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24gfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoSW50ZXJuT3B0aW9ucyB7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhGYWNlYm9va09wdGlvbnMge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgYXBwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoR29vZ2xlT3B0aW9ucyB7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBhcGlLZXk6IHN0cmluZztcbiAgY2xpZW50SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoTWljcm9zb2Z0T3B0aW9ucyB7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBjbGllbnRJZDogc3RyaW5nO1xuICByZWRpcmVjdFVyaT86IHN0cmluZztcbiAgYXV0aG9yaXR5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zIHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIGJyb3dzZXJBdXRoT3B0aW9ucz86IEJyb3dzZXJBdXRoT3B0aW9ucztcbiAgb3B0aW9ucz86IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zT3B0aW9ucztcbiAgc2NvcGVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aE1pY3Jvc29mdGIyY09wdGlvbnNPcHRpb25zIHtcbiAgbmFtZXM6IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zTmFtZXM7XG4gIGF1dGhvcml0aWVzOiBBdXRoTWljcm9zb2Z0YjJjT3B0aW9uc0F1dGhvcml0aWVzO1xuICBhdXRob3JpdHlEb21haW46IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zTmFtZXMge1xuICBzaWduVXBTaWduSW46IHN0cmluZztcbiAgZm9yZ290UGFzc3dvcmQ6IHN0cmluZztcbiAgZWRpdFByb2ZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoTWljcm9zb2Z0YjJjT3B0aW9uc0F1dGhvcml0aWVzIHtcbiAgc2lnblVwU2lnbkluOiBBdXRoTWljcm9zb2Z0YjJjT3B0aW9uc0F1dGhvcml0eTtcbiAgZm9yZ290UGFzc3dvcmQ6IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zQXV0aG9yaXR5O1xuICBlZGl0UHJvZmlsZTogQXV0aE1pY3Jvc29mdGIyY09wdGlvbnNBdXRob3JpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aE1pY3Jvc29mdGIyY09wdGlvbnNBdXRob3JpdHkge1xuICBhdXRob3JpdHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoT3B0aW9ucyB7XG4gIHVybD86IHN0cmluZztcbiAgdG9rZW5LZXk6IHN0cmluZztcbiAgYWxsb3dBbm9ueW1vdXM/OiBib29sZWFuO1xuICBsb2dpblJvdXRlPzogc3RyaW5nO1xuICBsb2dvdXRSb3V0ZT86IHN0cmluZztcbiAgaG9tZVJvdXRlPzogc3RyaW5nO1xuICBpbnRlcm4/OiBBdXRoSW50ZXJuT3B0aW9ucztcbiAgZmFjZWJvb2s/OiBBdXRoRmFjZWJvb2tPcHRpb25zO1xuICBnb29nbGU/OiBBdXRoR29vZ2xlT3B0aW9ucztcbiAgbWljcm9zb2Z0PzogQXV0aE1pY3Jvc29mdE9wdGlvbnM7XG4gIG1pY3Jvc29mdGIyYz86IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zO1xuICB0cnVzdEhvc3RzPzogc3RyaW5nW107XG4gIHByb2ZpbHNHdWFyZD86IHN0cmluZ1tdO1xuICBob3N0c1dpdGhDcmVkZW50aWFscz86IFdpdGhDcmVkZW50aWFsc09wdGlvbnNbXTtcbiAgaG9zdHNCeUtleT86IEF1dGhCeUtleU9wdGlvbnNbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEJ5S2V5T3B0aW9ucyB7XG4gIGRvbWFpblJlZ0ZpbHRlcnM/OiBzdHJpbmc7XG4gIGtleVByb3BlcnR5Pzogc3RyaW5nO1xuICBrZXlWYWx1ZT86IHN0cmluZztcblxufVxuZXhwb3J0IGludGVyZmFjZSBXaXRoQ3JlZGVudGlhbHNPcHRpb25zIHtcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgZG9tYWluUmVnRmlsdGVycz86IHN0cmluZztcbiB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiBleHRlbmRzIE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiBleHRlbmRzIE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiBleHRlbmRzIE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiBleHRlbmRzIE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiBleHRlbmRzIE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gIHNvdXJjZT86IHN0cmluZztcbiAgc291cmNlSWQ/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBsb2NhbGU/OiBzdHJpbmc7XG4gIGlzRXhwaXJlZD86IGJvb2xlYW47XG4gIGFkbWluPzogYm9vbGVhbjtcbiAgZGVmYXVsdENvbnRleHRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSW5mb3NVc2VyIHtcbiAgdG9rZW5JZDogc3RyaW5nO1xufVxuIl19
|