@c8y/ngx-components 1018.0.247 → 1018.0.248
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/auth-configuration/sso-configuration/templates/aad-configuration-mapper.d.ts +14 -14
- package/esm2020/auth-configuration/sso-configuration/templates/aad-configuration-mapper.mjs +20 -26
- package/fesm2015/c8y-ngx-components-auth-configuration.mjs +19 -25
- package/fesm2015/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-auth-configuration.mjs +19 -25
- package/fesm2020/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,23 +4,23 @@ import { SsoConfiguration } from '../sso-configuration.model';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class AadConfigurationMapper implements SsoConfigurationMapper<AadConfiguration> {
|
|
6
6
|
private defaults;
|
|
7
|
-
private constants;
|
|
8
7
|
private urlPattern;
|
|
9
8
|
mapFrom(templateModel: AadConfiguration): SsoConfiguration;
|
|
10
9
|
mapTo(ssoConfiguration: SsoConfiguration): AadConfiguration;
|
|
11
|
-
setupDefaults
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
private setupDefaults;
|
|
11
|
+
private getAadAddress;
|
|
12
|
+
private getTenant;
|
|
13
|
+
private getUrlsFromRequests;
|
|
14
|
+
private getAadAddressFromUrl;
|
|
15
|
+
private getTenantFromUrl;
|
|
16
|
+
private getClientSecret;
|
|
17
|
+
private getClientSecretFromBody;
|
|
18
|
+
private setupUserIdConfig;
|
|
19
|
+
private setupSignatureVerificationConfig;
|
|
20
|
+
private getRedirectAfterLogout;
|
|
21
|
+
private getRedirectAfterLogoutUrl;
|
|
22
|
+
private getFirstDefined;
|
|
23
|
+
private getQueryString;
|
|
24
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<AadConfigurationMapper, never>;
|
|
25
25
|
static ɵprov: i0.ɵɵInjectableDeclaration<AadConfigurationMapper>;
|
|
26
26
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TemplateType } from '../sso-configuration.model';
|
|
2
|
-
import {
|
|
2
|
+
import { defaults, at, map, defaultsDeep, has, head, reject, isUndefined } from 'lodash-es';
|
|
3
3
|
import { GrantType, TenantLoginOptionType, UserManagementSource } from '@c8y/client';
|
|
4
4
|
import { SignatureConfiguration } from '../template-parts/signature-configuration.model';
|
|
5
5
|
import { Injectable } from '@angular/core';
|
|
@@ -10,12 +10,7 @@ export class AadConfigurationMapper {
|
|
|
10
10
|
this.defaults = {
|
|
11
11
|
visibleOnLoginPage: true
|
|
12
12
|
};
|
|
13
|
-
this.
|
|
14
|
-
providerName: 'Azure AD',
|
|
15
|
-
type: 'oauth2',
|
|
16
|
-
grantType: 'AUTHORIZATION_CODE'
|
|
17
|
-
};
|
|
18
|
-
this.urlPattern = /^(.+)\/((.+?)\/oauth2\/authorize)$/;
|
|
13
|
+
this.urlPattern = /^(.+)\/((.+?)\/oauth2\/(authorize|token))$/;
|
|
19
14
|
}
|
|
20
15
|
mapFrom(templateModel) {
|
|
21
16
|
const baseUrl = `${templateModel.aadAddress}/${templateModel.tenant}/oauth2`;
|
|
@@ -103,17 +98,14 @@ export class AadConfigurationMapper {
|
|
|
103
98
|
mapTo(ssoConfiguration) {
|
|
104
99
|
const applicationsId = at(ssoConfiguration, ['audience', 'clientId']);
|
|
105
100
|
this.setupDefaults(ssoConfiguration);
|
|
106
|
-
this.setupConstants(ssoConfiguration);
|
|
107
|
-
this.setupAadAddressAndTenant(ssoConfiguration);
|
|
108
|
-
this.setupClientSecret(ssoConfiguration);
|
|
109
101
|
this.setupUserIdConfig(ssoConfiguration);
|
|
110
102
|
this.setupSignatureVerificationConfig(ssoConfiguration);
|
|
111
103
|
const aadConfiguration = {
|
|
112
|
-
aadAddress: this.
|
|
113
|
-
tenant: this.
|
|
104
|
+
aadAddress: this.getAadAddress(ssoConfiguration),
|
|
105
|
+
tenant: this.getTenant(ssoConfiguration),
|
|
114
106
|
applicationId: this.getFirstDefined(applicationsId),
|
|
115
107
|
redirectToPlatform: ssoConfiguration.redirectToPlatform,
|
|
116
|
-
clientSecret: ssoConfiguration
|
|
108
|
+
clientSecret: this.getClientSecret(ssoConfiguration),
|
|
117
109
|
issuer: ssoConfiguration.issuer,
|
|
118
110
|
buttonName: ssoConfiguration.buttonName,
|
|
119
111
|
visibleOnLoginPage: ssoConfiguration.visibleOnLoginPage,
|
|
@@ -133,19 +125,22 @@ export class AadConfigurationMapper {
|
|
|
133
125
|
setupDefaults(ssoConfiguration) {
|
|
134
126
|
defaults(ssoConfiguration, this.defaults);
|
|
135
127
|
}
|
|
136
|
-
|
|
137
|
-
|
|
128
|
+
getAadAddress(ssoConfiguration) {
|
|
129
|
+
const urls = this.getUrlsFromRequests(ssoConfiguration);
|
|
130
|
+
const aadAddresses = map(urls, url => this.getAadAddressFromUrl(url));
|
|
131
|
+
return this.getFirstDefined(aadAddresses);
|
|
138
132
|
}
|
|
139
|
-
|
|
140
|
-
const urls =
|
|
133
|
+
getTenant(ssoConfiguration) {
|
|
134
|
+
const urls = this.getUrlsFromRequests(ssoConfiguration);
|
|
135
|
+
const tenants = map(urls, url => this.getTenantFromUrl(url));
|
|
136
|
+
return this.getFirstDefined(tenants);
|
|
137
|
+
}
|
|
138
|
+
getUrlsFromRequests(ssoConfiguration) {
|
|
139
|
+
return at(ssoConfiguration, [
|
|
141
140
|
'authorizationRequest.url',
|
|
142
141
|
'tokenRequest.url',
|
|
143
142
|
'refreshRequest.url'
|
|
144
143
|
]);
|
|
145
|
-
const aadAddresses = map(urls, url => this.getAadAddressFromUrl(url));
|
|
146
|
-
set(ssoConfiguration, 'aadAddress', this.getFirstDefined(aadAddresses));
|
|
147
|
-
const tenants = map(urls, url => this.getTenantFromUrl(url));
|
|
148
|
-
set(ssoConfiguration, 'tenant', this.getFirstDefined(tenants));
|
|
149
144
|
}
|
|
150
145
|
getAadAddressFromUrl(url) {
|
|
151
146
|
const [, aadAddress] = (url || '').match(this.urlPattern) || [];
|
|
@@ -155,18 +150,17 @@ export class AadConfigurationMapper {
|
|
|
155
150
|
const [, , , tenant] = (url || '').match(this.urlPattern) || [];
|
|
156
151
|
return tenant;
|
|
157
152
|
}
|
|
158
|
-
|
|
153
|
+
getClientSecret(ssoConfiguration) {
|
|
159
154
|
const bodies = at(ssoConfiguration, ['tokenRequest.body', 'refreshRequest.body']);
|
|
160
155
|
const clientSecrets = map(bodies, body => this.getClientSecretFromBody(body));
|
|
161
|
-
|
|
156
|
+
return this.getFirstDefined(clientSecrets);
|
|
162
157
|
}
|
|
163
158
|
getClientSecretFromBody(body) {
|
|
164
159
|
const [, clientSecret] = (body || '').match(/client_secret=([^&]+)/) || [];
|
|
165
|
-
return decodeURIComponent(clientSecret);
|
|
160
|
+
return clientSecret ? decodeURIComponent(clientSecret) : undefined;
|
|
166
161
|
}
|
|
167
162
|
setupUserIdConfig(ssoConfiguration) {
|
|
168
163
|
defaultsDeep(ssoConfiguration, { userIdConfig: { jwtField: 'upn' } });
|
|
169
|
-
set(ssoConfiguration, 'userIdConfig.useConstantValue', false);
|
|
170
164
|
}
|
|
171
165
|
setupSignatureVerificationConfig(ssoConfiguration) {
|
|
172
166
|
defaultsDeep(ssoConfiguration, { signatureVerificationConfig: { aad: {} } });
|
|
@@ -196,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
196
190
|
providedIn: 'root'
|
|
197
191
|
}]
|
|
198
192
|
}] });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWFkLWNvbmZpZ3VyYXRpb24tbWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlcy9hYWQtY29uZmlndXJhdGlvbi1tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsRUFBRSxFQUNGLEdBQUcsRUFDSCxZQUFZLEVBQ1osR0FBRyxFQUNILElBQUksRUFDSixNQUFNLEVBQ04sV0FBVyxFQUNaLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBSzlFLE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJVSxhQUFRLEdBQUc7WUFDakIsa0JBQWtCLEVBQUUsSUFBSTtTQUN6QixDQUFDO1FBRU0sY0FBUyxHQUFHO1lBQ2xCLFlBQVksRUFBRSxVQUFVO1lBQ3hCLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLG9CQUFvQjtTQUNoQyxDQUFDO1FBRU0sZUFBVSxHQUFHLG9DQUFvQyxDQUFDO0tBa00zRDtJQWhNQyxPQUFPLENBQUMsYUFBK0I7UUFDckMsTUFBTSxPQUFPLEdBQUcsR0FBRyxhQUFhLENBQUMsVUFBVSxJQUFJLGFBQWEsQ0FBQyxNQUFNLFNBQVMsQ0FBQztRQUU3RSxNQUFNLGdCQUFnQixHQUFxQjtZQUN6QyxRQUFRLEVBQUUsYUFB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RyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7bUhBNU1VLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNzb0NvbmZpZ3VyYXRpb25NYXBwZXIgfSBmcm9tICcuL3Nzby1jb25maWd1cmF0aW9uLm1hcHBlcic7XG5pbXBvcnQgeyBBYWRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9hYWQubW9kZWwnO1xuaW1wb3J0IHsgU3NvQ29uZmlndXJhdGlvbiwgVGVtcGxhdGVUeXBlIH0gZnJvbSAnLi4vc3NvLWNvbmZpZ3VyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtcbiAgYXNzaWduLFxuICBkZWZhdWx0cyxcbiAgc2V0LFxuICBhdCxcbiAgbWFwLFxuICBkZWZhdWx0c0RlZXAsXG4gIGhhcyxcbiAgaGVhZCxcbiAgcmVqZWN0LFxuICBpc1VuZGVmaW5lZFxufSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR3JhbnRUeXBlLCBUZW5hbnRMb2dpbk9wdGlvblR5cGUsIFVzZXJNYW5hZ2VtZW50U291cmNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU2lnbmF0dXJlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3RlbXBsYXRlLXBhcnRzL3NpZ25hdHVyZS1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4dGVybmFsVG9rZW4gfSBmcm9tICcuLi90ZW1wbGF0ZS1wYXJ0cy9leHRlcm5hbC10b2tlbi1jb25maWcubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBYWRDb25maWd1cmF0aW9uTWFwcGVyIGltcGxlbWVudHMgU3NvQ29uZmlndXJhdGlvbk1hcHBlcjxBYWRDb25maWd1cmF0aW9uPiB7XG4gIHByaXZhdGUgZGVmYXVsdHMgPSB7XG4gICAgdmlzaWJsZU9uTG9naW5QYWdlOiB0cnVlXG4gIH07XG5cbiAgcHJpdmF0ZSBjb25zdGFudHMgPSB7XG4gICAgcHJvdmlkZXJOYW1lOiAnQXp1cmUgQUQnLFxuICAgIHR5cGU6ICdvYXV0aDInLFxuICAgIGdyYW50VHlwZTogJ0FVVEhPUklaQVRJT05fQ09ERSdcbiAgfTtcblxuICBwcml2YXRlIHVybFBhdHRlcm4gPSAvXiguKylcXC8oKC4rPylcXC9vYXV0aDJcXC9hdXRob3JpemUpJC87XG5cbiAgbWFwRnJvbSh0ZW1wbGF0ZU1vZGVsOiBBYWRDb25maWd1cmF0aW9uKTogU3NvQ29uZmlndXJhdGlvbiB7XG4gICAgY29uc3QgYmFzZVVybCA9IGAke3RlbXBsYXRlTW9kZWwuYWFkQWRkcmVzc30vJHt0ZW1wbGF0ZU1vZGVsLnRlbmFudH0vb2F1dGgyYDtcblxuICAgIGNvbnN0IHNzb0NvbmZpZ3VyYXRpb246IFNzb0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgICBhdWRpZW5jZTogdGVtcGxhdGVNb2RlbC5hcHBsaWNhdGlvbklkLFxuICAgICAgY2xpZW50SWQ6IHRlbXBsYXRlTW9kZWwuYXBwbGljYXRpb25JZCxcbiAgICAgIGxvZ291dFJlcXVlc3Q6IHRlbXBsYXRlTW9kZWwucmVkaXJlY3RBZnRlckxvZ291dFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgdXJsOiBgJHtiYXNlVXJsfS9sb2dvdXRgLFxuICAgICAgICAgICAgcmVxdWVzdFBhcmFtczoge1xuICAgICAgICAgICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRlbXBsYXRlTW9kZWwucmVkaXJlY3RBZnRlckxvZ291dFVybFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICAgICAgYm9keTogJycsXG4gICAgICAgICAgICBvcGVyYXRpb246ICdSRURJUkVDVCdcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogJ1JFRElSRUNUJyxcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbXM6IHt9XG4gICAgICAgICAgfSxcbiAgICAgIGF1dGhvcml6YXRpb25SZXF1ZXN0OiB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHVybDogYCR7YmFzZVVybH0vYXV0aG9yaXplYCxcbiAgICAgICAgcmVxdWVzdFBhcmFtczoge1xuICAgICAgICAgIHJlZGlyZWN0X3VyaTogJyR7cmVkaXJlY3RVcml9JyxcbiAgICAgICAgICBjbGllbnRfaWQ6ICcke2NsaWVudElkfScsXG4gICAgICAgICAgcmVzcG9uc2VfdHlwZTogJ2NvZGUnXG4gICAgICAgIH0sXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBib2R5OiAnJyxcbiAgICAgICAgb3BlcmF0aW9uOiAnUkVESVJFQ1QnXG4gICAgICB9LFxuICAgICAgdG9rZW5SZXF1ZXN0OiB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICB1cmw6IGAke2Jhc2VVcmx9L3Rva2VuYCxcbiAgICAgICAgcmVxdWVzdFBhcmFtczoge30sXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBib2R5OiB0aGlzLmdldFF1ZXJ5U3RyaW5nKHtcbiAgICAgICAgICBncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcbiAgICAgICAgICBjb2RlOiAnJHtjb2RlfScsXG4gICAgICAgICAgcmVkaXJlY3RfdXJpOiAnJHtyZWRpcmVjdFVyaX0nLFxuICAgICAgICAgIHJlc291cmNlOiAnJHtjbGllbnRJZH0nLFxuICAgICAgICAgIGNsaWVudF9pZDogJyR7Y2xpZW50SWR9JyxcbiAgICAgICAgICBjbGllbnRfc2VjcmV0OiBlbmNvZGVVUklDb21wb25lbnQodGVtcGxhdGVNb2RlbC5jbGllbnRTZWNyZXQpXG4gICAgICAgIH0pLFxuICAgICAgICBvcGVyYXRpb246ICdFWEVDVVRFJ1xuICAgICAgfSxcbiAgICAgIHJlZnJlc2hSZXF1ZXN0OiB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICB1cmw6IGAke2Jhc2VVcmx9L3Rva2VuYCxcbiAgICAgICAgcmVxdWVzdFBhcmFtczoge30sXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBib2R5OiB0aGlzLmdldFF1ZXJ5U3RyaW5nKHtcbiAgICAgICAgICBncmFudF90eXBlOiAncmVmcmVzaF90b2tlbicsXG4gICAgICAgICAgcmVmcmVzaF90b2tlbjogJyR7cmVmcmVzaFRva2VufScsXG4gICAgICAgICAgcmVzb3VyY2U6ICcke2NsaWVudElkfScsXG4gICAgICAgICAgY2xpZW50X2lkOiAnJHtjbGllbnRJZH0nLFxuICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IGVuY29kZVVSSUNvbXBvbmVudCh0ZW1wbGF0ZU1vZGVsLmNsaWVudFNlY3JldClcbiAgICAgICAgfSksXG4gICAgICAgIG9wZXJhdGlvbjogJ0VYRUNVVEUnXG4gICAgICB9LFxuICAgICAgYnV0dG9uTmFtZTogdGVtcGxhdGVNb2RlbC5idXR0b25OYW1lLFxuICAgICAgcHJvdmlkZXJOYW1lOiAnQXp1cmUgQUQnLFxuICAgICAgaXNzdWVyOiB0ZW1wbGF0ZU1vZGVsLmlzc3VlcixcbiAgICAgIG9uTmV3VXNlcjogdGVtcGxhdGVNb2RlbC5vbk5ld1VzZXIsXG4gICAgICBhY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5nczogdGVtcGxhdGVNb2RlbC5hY2Nlc3NUb2tlblRvVXNlckRhdGFNYXBwaW5ncyxcbiAgICAgIHJlZGlyZWN0VG9QbGF0Zm9ybTogdGVtcGxhdGVNb2RlbC5yZWRpcmVjdFRvUGxhdGZvcm0sXG4gICAgICB0ZW1wbGF0ZTogVGVtcGxhdGVUeXBlLkFaVVJFLFxuICAgICAgdXNlcklkQ29uZmlnOiB7XG4gICAgICAgIHVzZUNvbnN0YW50VmFsdWU6IGZhbHNlLFxuICAgICAgICBqd3RGaWVsZDogdGVtcGxhdGVNb2RlbC51c2VySWRDb25maWcuand0RmllbGRcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlT25Mb2dpblBhZ2U6IHRlbXBsYXRlTW9kZWwudmlzaWJsZU9uTG9naW5QYWdlLFxuICAgICAgc2lnbmF0dXJlVmVyaWZpY2F0aW9uQ29uZmlnOlxuICAgICAgICB0ZW1wbGF0ZU1vZGVsLnNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZy50b1NpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZygpLFxuICAgICAgdXNlck1hbmFnZW1lbnRTb3VyY2U6IFVzZXJNYW5hZ2VtZW50U291cmNlLlJFTU9URSxcbiAgICAgIHR5cGU6IFRlbmFudExvZ2luT3B0aW9uVHlwZS5PQVVUSDIsXG4gICAgICBncmFudFR5cGU6IEdyYW50VHlwZS5BVVRIT1JJWkFUSU9OX0NPREUsXG4gICAgICBleHRlcm5hbFRva2VuQ29uZmlnOiB0ZW1wbGF0ZU1vZGVsLmV4dGVybmFsVG9rZW5Db25maWcudG9FeHRlcm5hbFRva2VuQ29uZmlnKClcbiAgICB9O1xuICAgIHJldHVybiBzc29Db25maWd1cmF0aW9uO1xuICB9XG5cbiAgbWFwVG8oc3NvQ29uZmlndXJhdGlvbjogU3NvQ29uZmlndXJhdGlvbik6IEFhZENvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uc0lkID0gYXQoc3NvQ29uZmlndXJhdGlvbiwgWydhdWRpZW5jZScsICdjbGllbnRJZCddKTtcblxuICAgIHRoaXMuc2V0dXBEZWZhdWx0cyhzc29Db25maWd1cmF0aW9uKTtcbiAgICB0aGlzLnNldHVwQ29uc3RhbnRzKHNzb0NvbmZpZ3VyYXRpb24pO1xuICAgIHRoaXMuc2V0dXBBYWRBZGRyZXNzQW5kVGVuYW50KHNzb0NvbmZpZ3VyYXRpb24pO1xuICAgIHRoaXMuc2V0dXBDbGllbnRTZWNyZXQoc3NvQ29uZmlndXJhdGlvbik7XG4gICAgdGhpcy5zZXR1cFVzZXJJZENvbmZpZyhzc29Db25maWd1cmF0aW9uKTtcbiAgICB0aGlzLnNldHVwU2lnbmF0dXJlVmVyaWZpY2F0aW9uQ29uZmlnKHNzb0NvbmZpZ3VyYXRpb24pO1xuXG4gICAgY29uc3QgYWFkQ29uZmlndXJhdGlvbjogQWFkQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIGFhZEFkZHJlc3M6IHRoaXMuZ2V0QWFkQWRkcmVzc0Zyb21Vcmwoc3NvQ29uZmlndXJhdGlvbi5hdXRob3JpemF0aW9uUmVxdWVzdC51cmwpLFxuICAgICAgdGVuYW50OiB0aGlzLmdldFRlbmFudEZyb21Vcmwoc3NvQ29uZmlndXJhdGlvbi5hdXRob3JpemF0aW9uUmVxdWVzdC51cmwpLFxuICAgICAgYXBwbGljYXRpb25JZDogdGhpcy5nZXRGaXJzdERlZmluZWQoYXBwbGljYXRpb25zSWQpLFxuICAgICAgcmVkaXJlY3RUb1BsYXRmb3JtOiBzc29Db25maWd1cmF0aW9uLnJlZGlyZWN0VG9QbGF0Zm9ybSxcbiAgICAgIGNsaWVudFNlY3JldDogc3NvQ29uZmlndXJhdGlvbi5hdXRob3JpemF0aW9uUmVxdWVzdC5yZXF1ZXN0UGFyYW1zLmNsaWVudF9pZCxcbiAgICAgIGlzc3Vlcjogc3NvQ29uZmlndXJhdGlvbi5pc3N1ZXIsXG4gICAgICBidXR0b25OYW1lOiBzc29Db25maWd1cmF0aW9uLmJ1dHRvbk5hbWUsXG4gICAgICB2aXNpYmxlT25Mb2dpblBhZ2U6IHNzb0NvbmZpZ3VyYXRpb24udmlzaWJsZU9uTG9naW5QYWdlLFxuICAgICAgcmVkaXJlY3RBZnRlckxvZ291dDogdGhpcy5nZXRSZWRpcmVjdEFmdGVyTG9nb3V0KHNzb0NvbmZpZ3VyYXRpb24pLFxuICAgICAgcmVkaXJlY3RBZnRlckxvZ291dFVybDogdGhpcy5nZXRSZWRpcmVjdEFmdGVyTG9nb3V0VXJsKHNzb0NvbmZpZ3VyYXRpb24pLFxuICAgICAgYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3M6IHNzb0NvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MsXG4gICAgICB1c2VySWRDb25maWc6IHtcbiAgICAgICAgand0RmllbGQ6IHNzb0NvbmZpZ3VyYXRpb24udXNlcklkQ29uZmlnLmp3dEZpZWxkXG4gICAgICB9LFxuICAgICAgcHVibGljS2V5RGlzY292ZXJ5VXJsOiBzc29Db25maWd1cmF0aW9uLnNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZy5hYWQucHVibGljS2V5RGlzY292ZXJ5VXJsLFxuICAgICAgc2lnbmF0dXJlVmVyaWZpY2F0aW9uQ29uZmlnOiBuZXcgU2lnbmF0dXJlQ29uZmlndXJhdGlvbihcbiAgICAgICAgc3NvQ29uZmlndXJhdGlvbi5zaWduYXR1cmVWZXJpZmljYXRpb25Db25maWdcbiAgICAgICksXG4gICAgICBvbk5ld1VzZXI6IHNzb0NvbmZpZ3VyYXRpb24ub25OZXdVc2VyLFxuICAgICAgZXh0ZXJuYWxUb2tlbkNvbmZpZzogbmV3IEV4dGVybmFsVG9rZW4oc3NvQ29uZmlndXJhdGlvbi5leHRlcm5hbFRva2VuQ29uZmlnKVxuICAgIH07XG4gICAgcmV0dXJuIGFhZENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBzZXR1cERlZmF1bHRzKHNzb0NvbmZpZ3VyYXRpb24pIHtcbiAgICBkZWZhdWx0cyhzc29Db25maWd1cmF0aW9uLCB0aGlzLmRlZmF1bHRzKTtcbiAgfVxuXG4gIHNldHVwQ29uc3RhbnRzKHNzb0NvbmZpZ3VyYXRpb24pIHtcbiAgICBhc3NpZ24oc3NvQ29uZmlndXJhdGlvbiwgdGhpcy5jb25zdGFudHMpO1xuICB9XG5cbiAgc2V0dXBBYWRBZGRyZXNzQW5kVGVuYW50KHNzb0NvbmZpZ3VyYXRpb24pIHtcbiAgICBjb25zdCB1cmxzID0gYXQoc3NvQ29uZmlndXJhdGlvbiwgW1xuICAgICAgJ2F1dGhvcml6YXRpb25SZXF1ZXN0LnVybCcsXG4gICAgICAndG9rZW5SZXF1ZXN0LnVybCcsXG4gICAgICAncmVmcmVzaFJlcXVlc3QudXJsJ1xuICAgIF0pO1xuXG4gICAgY29uc3QgYWFkQWRkcmVzc2VzID0gbWFwKHVybHMsIHVybCA9PiB0aGlzLmdldEFhZEFkZHJlc3NGcm9tVXJsKHVybCkpO1xuICAgIHNldChzc29Db25maWd1cmF0aW9uLCAnYWFkQWRkcmVzcycsIHRoaXMuZ2V0Rmlyc3REZWZpbmVkKGFhZEFkZHJlc3NlcykpO1xuXG4gICAgY29uc3QgdGVuYW50cyA9IG1hcCh1cmxzLCB1cmwgPT4gdGhpcy5nZXRUZW5hbnRGcm9tVXJsKHVybCkpO1xuICAgIHNldChzc29Db25maWd1cmF0aW9uLCAndGVuYW50JywgdGhpcy5nZXRGaXJzdERlZmluZWQodGVuYW50cykpO1xuICB9XG5cbiAgZ2V0QWFkQWRkcmVzc0Zyb21VcmwodXJsKSB7XG4gICAgY29uc3QgWywgYWFkQWRkcmVzc10gPSAodXJsIHx8ICcnKS5tYXRjaCh0aGlzLnVybFBhdHRlcm4pIHx8IFtdO1xuICAgIHJldHVybiBhYWRBZGRyZXNzO1xuICB9XG5cbiAgZ2V0VGVuYW50RnJvbVVybCh1cmwpIHtcbiAgICBjb25zdCBbLCAsICwgdGVuYW50XSA9ICh1cmwgfHwgJycpLm1hdGNoKHRoaXMudXJsUGF0dGVybikgfHwgW107XG4gICAgcmV0dXJuIHRlbmFudDtcbiAgfVxuXG4gIHNldHVwQ2xpZW50U2VjcmV0KHNzb0NvbmZpZ3VyYXRpb24pIHtcbiAgICBjb25zdCBib2RpZXMgPSBhdChzc29Db25maWd1cmF0aW9uLCBbJ3Rva2VuUmVxdWVzdC5ib2R5JywgJ3JlZnJlc2hSZXF1ZXN0LmJvZHknXSk7XG4gICAgY29uc3QgY2xpZW50U2VjcmV0cyA9IG1hcChib2RpZXMsIGJvZHkgPT4gdGhpcy5nZXRDbGllbnRTZWNyZXRGcm9tQm9keShib2R5KSk7XG4gICAgc2V0KHNzb0NvbmZpZ3VyYXRpb24sICdjbGllbnRTZWNyZXQnLCB0aGlzLmdldEZpcnN0RGVmaW5lZChjbGllbnRTZWNyZXRzKSk7XG4gIH1cblxuICBnZXRDbGllbnRTZWNyZXRGcm9tQm9keShib2R5KSB7XG4gICAgY29uc3QgWywgY2xpZW50U2VjcmV0XSA9IChib2R5IHx8ICcnKS5tYXRjaCgvY2xpZW50X3NlY3JldD0oW14mXSspLykgfHwgW107XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChjbGllbnRTZWNyZXQpO1xuICB9XG5cbiAgc2V0dXBVc2VySWRDb25maWcoc3NvQ29uZmlndXJhdGlvbikge1xuICAgIGRlZmF1bHRzRGVlcChzc29Db25maWd1cmF0aW9uLCB7IHVzZXJJZENvbmZpZzogeyBqd3RGaWVsZDogJ3VwbicgfSB9KTtcbiAgICBzZXQoc3NvQ29uZmlndXJhdGlvbiwgJ3VzZXJJZENvbmZpZy51c2VDb25zdGFudFZhbHVlJywgZmFsc2UpO1xuICB9XG5cbiAgc2V0dXBTaWduYXR1cmVWZXJpZmljYXRpb25Db25maWcoc3NvQ29uZmlndXJhdGlvbikge1xuICAgIGRlZmF1bHRzRGVlcChzc29Db25maWd1cmF0aW9uLCB7IHNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZzogeyBhYWQ6IHt9IH0gfSk7XG4gIH1cblxuICBnZXRSZWRpcmVjdEFmdGVyTG9nb3V0KHNzb0NvbmZpZ3VyYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzKHNzb0NvbmZpZ3VyYXRpb24sICdsb2dvdXRSZXF1ZXN0LnJlcXVlc3RQYXJhbXMucG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJylcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIGdldFJlZGlyZWN0QWZ0ZXJMb2dvdXRVcmwoc3NvQ29uZmlndXJhdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNzb0NvbmZpZ3VyYXRpb24ubG9nb3V0UmVxdWVzdC5yZXF1ZXN0UGFyYW1zLnBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaVxuICAgICAgPyBzc29Db25maWd1cmF0aW9uLmxvZ291dFJlcXVlc3QucmVxdWVzdFBhcmFtcy5wb3N0X2xvZ291dF9yZWRpcmVjdF91cmlcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIGdldEZpcnN0RGVmaW5lZCh2YWx1ZXMpIHtcbiAgICByZXR1cm4gaGVhZChyZWplY3QodmFsdWVzLCBpc1VuZGVmaW5lZCkpO1xuICB9XG5cbiAgZ2V0UXVlcnlTdHJpbmcocGFyYW1zKSB7XG4gICAgcmV0dXJuIG1hcChwYXJhbXMsICh2YWx1ZSwga2V5KSA9PiBgJHtrZXl9PSR7dmFsdWV9YCkuam9pbignJicpO1xuICB9XG59XG4iXX0=
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWFkLWNvbmZpZ3VyYXRpb24tbWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlcy9hYWQtY29uZmlndXJhdGlvbi1tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFvQixZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQUs5RSxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBSVUsYUFBUSxHQUFHO1lBQ2pCLGtCQUFrQixFQUFFLElBQUk7U0FDekIsQ0FBQztRQUVNLGVBQVUsR0FBRyw0Q0FBNEMsQ0FBQztLQWtNbkU7SUFoTUMsT0FBTyxDQUFDLGFBQStCO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLEdBQUcsYUFBYSxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUMsTUFBTSxTQUFTLENBQUM7UUFFN0UsTUFBTSxnQkFBZ0IsR0FBcUI7WUFDekMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxhQUFhO1lBQ3JDLFFBQVEsRUFBRSxhQUFhLENBQUMsYUFBYTtZQUNyQyxhQUFhLEVBQUUsYUFBYSxDQUFDLG1CQUFtQjtnQkFDOUMsQ0FBQyxDQUFDO29CQUNFLE1BQU0sRUFBRSxN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MkJBQTJCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxnQkFBZ0I7UUFDN0MsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsc0RBQXNELENBQUM7WUFDbEYsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQztJQUVPLHlCQUF5QixDQUFDLGdCQUFnQjtRQUNoRCxPQUFPLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsd0JBQXdCO1lBQzFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHdCQUF3QjtZQUN2RSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFNO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQU07UUFDM0IsT0FBTyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7bUhBdE1VLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNzb0NvbmZpZ3VyYXRpb25NYXBwZXIgfSBmcm9tICcuL3Nzby1jb25maWd1cmF0aW9uLm1hcHBlcic7XG5pbXBvcnQgeyBBYWRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9hYWQubW9kZWwnO1xuaW1wb3J0IHsgU3NvQ29uZmlndXJhdGlvbiwgVGVtcGxhdGVUeXBlIH0gZnJvbSAnLi4vc3NvLWNvbmZpZ3VyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgZGVmYXVsdHMsIGF0LCBtYXAsIGRlZmF1bHRzRGVlcCwgaGFzLCBoZWFkLCByZWplY3QsIGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEdyYW50VHlwZSwgVGVuYW50TG9naW5PcHRpb25UeXBlLCBVc2VyTWFuYWdlbWVudFNvdXJjZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IFNpZ25hdHVyZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi90ZW1wbGF0ZS1wYXJ0cy9zaWduYXR1cmUtY29uZmlndXJhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHRlcm5hbFRva2VuIH0gZnJvbSAnLi4vdGVtcGxhdGUtcGFydHMvZXh0ZXJuYWwtdG9rZW4tY29uZmlnLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWFkQ29uZmlndXJhdGlvbk1hcHBlciBpbXBsZW1lbnRzIFNzb0NvbmZpZ3VyYXRpb25NYXBwZXI8QWFkQ29uZmlndXJhdGlvbj4ge1xuICBwcml2YXRlIGRlZmF1bHRzID0ge1xuICAgIHZpc2libGVPbkxvZ2luUGFnZTogdHJ1ZVxuICB9O1xuXG4gIHByaXZhdGUgdXJsUGF0dGVybiA9IC9eKC4rKVxcLygoLis/KVxcL29hdXRoMlxcLyhhdXRob3JpemV8dG9rZW4pKSQvO1xuXG4gIG1hcEZyb20odGVtcGxhdGVNb2RlbDogQWFkQ29uZmlndXJhdGlvbik6IFNzb0NvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSBgJHt0ZW1wbGF0ZU1vZGVsLmFhZEFkZHJlc3N9LyR7dGVtcGxhdGVNb2RlbC50ZW5hbnR9L29hdXRoMmA7XG5cbiAgICBjb25zdCBzc29Db25maWd1cmF0aW9uOiBTc29Db25maWd1cmF0aW9uID0ge1xuICAgICAgYXVkaWVuY2U6IHRlbXBsYXRlTW9kZWwuYXBwbGljYXRpb25JZCxcbiAgICAgIGNsaWVudElkOiB0ZW1wbGF0ZU1vZGVsLmFwcGxpY2F0aW9uSWQsXG4gICAgICBsb2dvdXRSZXF1ZXN0OiB0ZW1wbGF0ZU1vZGVsLnJlZGlyZWN0QWZ0ZXJMb2dvdXRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogYCR7YmFzZVVybH0vbG9nb3V0YCxcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbXM6IHtcbiAgICAgICAgICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiB0ZW1wbGF0ZU1vZGVsLnJlZGlyZWN0QWZ0ZXJMb2dvdXRVcmxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgICAgIGJvZHk6ICcnLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiAnUkVESVJFQ1QnXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgICBvcGVyYXRpb246ICdSRURJUkVDVCcsXG4gICAgICAgICAgICByZXF1ZXN0UGFyYW1zOiB7fVxuICAgICAgICAgIH0sXG4gICAgICBhdXRob3JpemF0aW9uUmVxdWVzdDoge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICB1cmw6IGAke2Jhc2VVcmx9L2F1dGhvcml6ZWAsXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IHtcbiAgICAgICAgICByZWRpcmVjdF91cmk6ICcke3JlZGlyZWN0VXJpfScsXG4gICAgICAgICAgY2xpZW50X2lkOiAnJHtjbGllbnRJZH0nLFxuICAgICAgICAgIHJlc3BvbnNlX3R5cGU6ICdjb2RlJ1xuICAgICAgICB9LFxuICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgYm9keTogJycsXG4gICAgICAgIG9wZXJhdGlvbjogJ1JFRElSRUNUJ1xuICAgICAgfSxcbiAgICAgIHRva2VuUmVxdWVzdDoge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgdXJsOiBgJHtiYXNlVXJsfS90b2tlbmAsXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IHt9LFxuICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgYm9keTogdGhpcy5nZXRRdWVyeVN0cmluZyh7XG4gICAgICAgICAgZ3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG4gICAgICAgICAgY29kZTogJyR7Y29kZX0nLFxuICAgICAgICAgIHJlZGlyZWN0X3VyaTogJyR7cmVkaXJlY3RVcml9JyxcbiAgICAgICAgICByZXNvdXJjZTogJyR7Y2xpZW50SWR9JyxcbiAgICAgICAgICBjbGllbnRfaWQ6ICcke2NsaWVudElkfScsXG4gICAgICAgICAgY2xpZW50X3NlY3JldDogZW5jb2RlVVJJQ29tcG9uZW50KHRlbXBsYXRlTW9kZWwuY2xpZW50U2VjcmV0KVxuICAgICAgICB9KSxcbiAgICAgICAgb3BlcmF0aW9uOiAnRVhFQ1VURSdcbiAgICAgIH0sXG4gICAgICByZWZyZXNoUmVxdWVzdDoge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgdXJsOiBgJHtiYXNlVXJsfS90b2tlbmAsXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IHt9LFxuICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgYm9keTogdGhpcy5nZXRRdWVyeVN0cmluZyh7XG4gICAgICAgICAgZ3JhbnRfdHlwZTogJ3JlZnJlc2hfdG9rZW4nLFxuICAgICAgICAgIHJlZnJlc2hfdG9rZW46ICcke3JlZnJlc2hUb2tlbn0nLFxuICAgICAgICAgIHJlc291cmNlOiAnJHtjbGllbnRJZH0nLFxuICAgICAgICAgIGNsaWVudF9pZDogJyR7Y2xpZW50SWR9JyxcbiAgICAgICAgICBjbGllbnRfc2VjcmV0OiBlbmNvZGVVUklDb21wb25lbnQodGVtcGxhdGVNb2RlbC5jbGllbnRTZWNyZXQpXG4gICAgICAgIH0pLFxuICAgICAgICBvcGVyYXRpb246ICdFWEVDVVRFJ1xuICAgICAgfSxcbiAgICAgIGJ1dHRvbk5hbWU6IHRlbXBsYXRlTW9kZWwuYnV0dG9uTmFtZSxcbiAgICAgIHByb3ZpZGVyTmFtZTogJ0F6dXJlIEFEJyxcbiAgICAgIGlzc3VlcjogdGVtcGxhdGVNb2RlbC5pc3N1ZXIsXG4gICAgICBvbk5ld1VzZXI6IHRlbXBsYXRlTW9kZWwub25OZXdVc2VyLFxuICAgICAgYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3M6IHRlbXBsYXRlTW9kZWwuYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MsXG4gICAgICByZWRpcmVjdFRvUGxhdGZvcm06IHRlbXBsYXRlTW9kZWwucmVkaXJlY3RUb1BsYXRmb3JtLFxuICAgICAgdGVtcGxhdGU6IFRlbXBsYXRlVHlwZS5BWlVSRSxcbiAgICAgIHVzZXJJZENvbmZpZzoge1xuICAgICAgICB1c2VDb25zdGFudFZhbHVlOiBmYWxzZSxcbiAgICAgICAgand0RmllbGQ6IHRlbXBsYXRlTW9kZWwudXNlcklkQ29uZmlnLmp3dEZpZWxkXG4gICAgICB9LFxuICAgICAgdmlzaWJsZU9uTG9naW5QYWdlOiB0ZW1wbGF0ZU1vZGVsLnZpc2libGVPbkxvZ2luUGFnZSxcbiAgICAgIHNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZzpcbiAgICAgICAgdGVtcGxhdGVNb2RlbC5zaWduYXR1cmVWZXJpZmljYXRpb25Db25maWcudG9TaWduYXR1cmVWZXJpZmljYXRpb25Db25maWcoKSxcbiAgICAgIHVzZXJNYW5hZ2VtZW50U291cmNlOiBVc2VyTWFuYWdlbWVudFNvdXJjZS5SRU1PVEUsXG4gICAgICB0eXBlOiBUZW5hbnRMb2dpbk9wdGlvblR5cGUuT0FVVEgyLFxuICAgICAgZ3JhbnRUeXBlOiBHcmFudFR5cGUuQVVUSE9SSVpBVElPTl9DT0RFLFxuICAgICAgZXh0ZXJuYWxUb2tlbkNvbmZpZzogdGVtcGxhdGVNb2RlbC5leHRlcm5hbFRva2VuQ29uZmlnLnRvRXh0ZXJuYWxUb2tlbkNvbmZpZygpXG4gICAgfTtcbiAgICByZXR1cm4gc3NvQ29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIG1hcFRvKHNzb0NvbmZpZ3VyYXRpb246IFNzb0NvbmZpZ3VyYXRpb24pOiBBYWRDb25maWd1cmF0aW9uIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvbnNJZCA9IGF0KHNzb0NvbmZpZ3VyYXRpb24sIFsnYXVkaWVuY2UnLCAnY2xpZW50SWQnXSk7XG5cbiAgICB0aGlzLnNldHVwRGVmYXVsdHMoc3NvQ29uZmlndXJhdGlvbik7XG4gICAgdGhpcy5zZXR1cFVzZXJJZENvbmZpZyhzc29Db25maWd1cmF0aW9uKTtcbiAgICB0aGlzLnNldHVwU2lnbmF0dXJlVmVyaWZpY2F0aW9uQ29uZmlnKHNzb0NvbmZpZ3VyYXRpb24pO1xuXG4gICAgY29uc3QgYWFkQ29uZmlndXJhdGlvbjogQWFkQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIGFhZEFkZHJlc3M6IHRoaXMuZ2V0QWFkQWRkcmVzcyhzc29Db25maWd1cmF0aW9uKSxcbiAgICAgIHRlbmFudDogdGhpcy5nZXRUZW5hbnQoc3NvQ29uZmlndXJhdGlvbiksXG4gICAgICBhcHBsaWNhdGlvbklkOiB0aGlzLmdldEZpcnN0RGVmaW5lZChhcHBsaWNhdGlvbnNJZCksXG4gICAgICByZWRpcmVjdFRvUGxhdGZvcm06IHNzb0NvbmZpZ3VyYXRpb24ucmVkaXJlY3RUb1BsYXRmb3JtLFxuICAgICAgY2xpZW50U2VjcmV0OiB0aGlzLmdldENsaWVudFNlY3JldChzc29Db25maWd1cmF0aW9uKSxcbiAgICAgIGlzc3Vlcjogc3NvQ29uZmlndXJhdGlvbi5pc3N1ZXIsXG4gICAgICBidXR0b25OYW1lOiBzc29Db25maWd1cmF0aW9uLmJ1dHRvbk5hbWUsXG4gICAgICB2aXNpYmxlT25Mb2dpblBhZ2U6IHNzb0NvbmZpZ3VyYXRpb24udmlzaWJsZU9uTG9naW5QYWdlLFxuICAgICAgcmVkaXJlY3RBZnRlckxvZ291dDogdGhpcy5nZXRSZWRpcmVjdEFmdGVyTG9nb3V0KHNzb0NvbmZpZ3VyYXRpb24pLFxuICAgICAgcmVkaXJlY3RBZnRlckxvZ291dFVybDogdGhpcy5nZXRSZWRpcmVjdEFmdGVyTG9nb3V0VXJsKHNzb0NvbmZpZ3VyYXRpb24pLFxuICAgICAgYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3M6IHNzb0NvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW5Ub1VzZXJEYXRhTWFwcGluZ3MsXG4gICAgICB1c2VySWRDb25maWc6IHtcbiAgICAgICAgand0RmllbGQ6IHNzb0NvbmZpZ3VyYXRpb24udXNlcklkQ29uZmlnLmp3dEZpZWxkXG4gICAgICB9LFxuICAgICAgcHVibGljS2V5RGlzY292ZXJ5VXJsOiBzc29Db25maWd1cmF0aW9uLnNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZy5hYWQucHVibGljS2V5RGlzY292ZXJ5VXJsLFxuICAgICAgc2lnbmF0dXJlVmVyaWZpY2F0aW9uQ29uZmlnOiBuZXcgU2lnbmF0dXJlQ29uZmlndXJhdGlvbihcbiAgICAgICAgc3NvQ29uZmlndXJhdGlvbi5zaWduYXR1cmVWZXJpZmljYXRpb25Db25maWdcbiAgICAgICksXG4gICAgICBvbk5ld1VzZXI6IHNzb0NvbmZpZ3VyYXRpb24ub25OZXdVc2VyLFxuICAgICAgZXh0ZXJuYWxUb2tlbkNvbmZpZzogbmV3IEV4dGVybmFsVG9rZW4oc3NvQ29uZmlndXJhdGlvbi5leHRlcm5hbFRva2VuQ29uZmlnKVxuICAgIH07XG4gICAgcmV0dXJuIGFhZENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBwcml2YXRlIHNldHVwRGVmYXVsdHMoc3NvQ29uZmlndXJhdGlvbikge1xuICAgIGRlZmF1bHRzKHNzb0NvbmZpZ3VyYXRpb24sIHRoaXMuZGVmYXVsdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBYWRBZGRyZXNzKHNzb0NvbmZpZ3VyYXRpb24pIHtcbiAgICBjb25zdCB1cmxzID0gdGhpcy5nZXRVcmxzRnJvbVJlcXVlc3RzKHNzb0NvbmZpZ3VyYXRpb24pO1xuXG4gICAgY29uc3QgYWFkQWRkcmVzc2VzID0gbWFwKHVybHMsIHVybCA9PiB0aGlzLmdldEFhZEFkZHJlc3NGcm9tVXJsKHVybCkpO1xuICAgIHJldHVybiB0aGlzLmdldEZpcnN0RGVmaW5lZChhYWRBZGRyZXNzZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZW5hbnQoc3NvQ29uZmlndXJhdGlvbikge1xuICAgIGNvbnN0IHVybHMgPSB0aGlzLmdldFVybHNGcm9tUmVxdWVzdHMoc3NvQ29uZmlndXJhdGlvbik7XG5cbiAgICBjb25zdCB0ZW5hbnRzID0gbWFwKHVybHMsIHVybCA9PiB0aGlzLmdldFRlbmFudEZyb21VcmwodXJsKSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3REZWZpbmVkKHRlbmFudHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRVcmxzRnJvbVJlcXVlc3RzKHNzb0NvbmZpZ3VyYXRpb24pIHtcbiAgICByZXR1cm4gYXQoc3NvQ29uZmlndXJhdGlvbiwgW1xuICAgICAgJ2F1dGhvcml6YXRpb25SZXF1ZXN0LnVybCcsXG4gICAgICAndG9rZW5SZXF1ZXN0LnVybCcsXG4gICAgICAncmVmcmVzaFJlcXVlc3QudXJsJ1xuICAgIF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBYWRBZGRyZXNzRnJvbVVybCh1cmwpIHtcbiAgICBjb25zdCBbLCBhYWRBZGRyZXNzXSA9ICh1cmwgfHwgJycpLm1hdGNoKHRoaXMudXJsUGF0dGVybikgfHwgW107XG4gICAgcmV0dXJuIGFhZEFkZHJlc3M7XG4gIH1cblxuICBwcml2YXRlIGdldFRlbmFudEZyb21VcmwodXJsKSB7XG4gICAgY29uc3QgWywgLCAsIHRlbmFudF0gPSAodXJsIHx8ICcnKS5tYXRjaCh0aGlzLnVybFBhdHRlcm4pIHx8IFtdO1xuICAgIHJldHVybiB0ZW5hbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldENsaWVudFNlY3JldChzc29Db25maWd1cmF0aW9uKSB7XG4gICAgY29uc3QgYm9kaWVzID0gYXQoc3NvQ29uZmlndXJhdGlvbiwgWyd0b2tlblJlcXVlc3QuYm9keScsICdyZWZyZXNoUmVxdWVzdC5ib2R5J10pO1xuICAgIGNvbnN0IGNsaWVudFNlY3JldHMgPSBtYXAoYm9kaWVzLCBib2R5ID0+IHRoaXMuZ2V0Q2xpZW50U2VjcmV0RnJvbUJvZHkoYm9keSkpO1xuICAgIHJldHVybiB0aGlzLmdldEZpcnN0RGVmaW5lZChjbGllbnRTZWNyZXRzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xpZW50U2VjcmV0RnJvbUJvZHkoYm9keSkge1xuICAgIGNvbnN0IFssIGNsaWVudFNlY3JldF0gPSAoYm9keSB8fCAnJykubWF0Y2goL2NsaWVudF9zZWNyZXQ9KFteJl0rKS8pIHx8IFtdO1xuICAgIHJldHVybiBjbGllbnRTZWNyZXQgPyBkZWNvZGVVUklDb21wb25lbnQoY2xpZW50U2VjcmV0KSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBVc2VySWRDb25maWcoc3NvQ29uZmlndXJhdGlvbikge1xuICAgIGRlZmF1bHRzRGVlcChzc29Db25maWd1cmF0aW9uLCB7IHVzZXJJZENvbmZpZzogeyBqd3RGaWVsZDogJ3VwbicgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTaWduYXR1cmVWZXJpZmljYXRpb25Db25maWcoc3NvQ29uZmlndXJhdGlvbikge1xuICAgIGRlZmF1bHRzRGVlcChzc29Db25maWd1cmF0aW9uLCB7IHNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZzogeyBhYWQ6IHt9IH0gfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlZGlyZWN0QWZ0ZXJMb2dvdXQoc3NvQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXMoc3NvQ29uZmlndXJhdGlvbiwgJ2xvZ291dFJlcXVlc3QucmVxdWVzdFBhcmFtcy5wb3N0X2xvZ291dF9yZWRpcmVjdF91cmknKVxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWRpcmVjdEFmdGVyTG9nb3V0VXJsKHNzb0NvbmZpZ3VyYXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBzc29Db25maWd1cmF0aW9uLmxvZ291dFJlcXVlc3QucmVxdWVzdFBhcmFtcy5wb3N0X2xvZ291dF9yZWRpcmVjdF91cmlcbiAgICAgID8gc3NvQ29uZmlndXJhdGlvbi5sb2dvdXRSZXF1ZXN0LnJlcXVlc3RQYXJhbXMucG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldEZpcnN0RGVmaW5lZCh2YWx1ZXMpIHtcbiAgICByZXR1cm4gaGVhZChyZWplY3QodmFsdWVzLCBpc1VuZGVmaW5lZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVyeVN0cmluZyhwYXJhbXMpIHtcbiAgICByZXR1cm4gbWFwKHBhcmFtcywgKHZhbHVlLCBrZXkpID0+IGAke2tleX09JHt2YWx1ZX1gKS5qb2luKCcmJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -12,7 +12,7 @@ import * as i4 from 'ngx-bootstrap/popover';
|
|
|
12
12
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
13
13
|
import { map, catchError, tap, switchMap, shareReplay, publishReplay, refCount, take, mapTo, mergeAll, toArray } from 'rxjs/operators';
|
|
14
14
|
import { forkJoin, from, of, BehaviorSubject, defer, throwError, Subject, EMPTY, merge } from 'rxjs';
|
|
15
|
-
import { isString, omit, defaults, omitBy, isEmpty, cloneDeep, isFinite, pickBy, identity, map as map$1, pick, findKey, has, get, reduce, pull, defaultsDeep, at, head, reject, isUndefined
|
|
15
|
+
import { isString, omit, defaults, omitBy, isEmpty, cloneDeep, isFinite, pickBy, identity, map as map$1, pick, findKey, has, get, reduce, pull, defaultsDeep, at, head, reject, isUndefined } from 'lodash-es';
|
|
16
16
|
import { __awaiter, __decorate, __metadata } from 'tslib';
|
|
17
17
|
import * as i2$1 from '@ngx-translate/core';
|
|
18
18
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
@@ -1852,12 +1852,7 @@ class AadConfigurationMapper {
|
|
|
1852
1852
|
this.defaults = {
|
|
1853
1853
|
visibleOnLoginPage: true
|
|
1854
1854
|
};
|
|
1855
|
-
this.
|
|
1856
|
-
providerName: 'Azure AD',
|
|
1857
|
-
type: 'oauth2',
|
|
1858
|
-
grantType: 'AUTHORIZATION_CODE'
|
|
1859
|
-
};
|
|
1860
|
-
this.urlPattern = /^(.+)\/((.+?)\/oauth2\/authorize)$/;
|
|
1855
|
+
this.urlPattern = /^(.+)\/((.+?)\/oauth2\/(authorize|token))$/;
|
|
1861
1856
|
}
|
|
1862
1857
|
mapFrom(templateModel) {
|
|
1863
1858
|
const baseUrl = `${templateModel.aadAddress}/${templateModel.tenant}/oauth2`;
|
|
@@ -1945,17 +1940,14 @@ class AadConfigurationMapper {
|
|
|
1945
1940
|
mapTo(ssoConfiguration) {
|
|
1946
1941
|
const applicationsId = at(ssoConfiguration, ['audience', 'clientId']);
|
|
1947
1942
|
this.setupDefaults(ssoConfiguration);
|
|
1948
|
-
this.setupConstants(ssoConfiguration);
|
|
1949
|
-
this.setupAadAddressAndTenant(ssoConfiguration);
|
|
1950
|
-
this.setupClientSecret(ssoConfiguration);
|
|
1951
1943
|
this.setupUserIdConfig(ssoConfiguration);
|
|
1952
1944
|
this.setupSignatureVerificationConfig(ssoConfiguration);
|
|
1953
1945
|
const aadConfiguration = {
|
|
1954
|
-
aadAddress: this.
|
|
1955
|
-
tenant: this.
|
|
1946
|
+
aadAddress: this.getAadAddress(ssoConfiguration),
|
|
1947
|
+
tenant: this.getTenant(ssoConfiguration),
|
|
1956
1948
|
applicationId: this.getFirstDefined(applicationsId),
|
|
1957
1949
|
redirectToPlatform: ssoConfiguration.redirectToPlatform,
|
|
1958
|
-
clientSecret: ssoConfiguration
|
|
1950
|
+
clientSecret: this.getClientSecret(ssoConfiguration),
|
|
1959
1951
|
issuer: ssoConfiguration.issuer,
|
|
1960
1952
|
buttonName: ssoConfiguration.buttonName,
|
|
1961
1953
|
visibleOnLoginPage: ssoConfiguration.visibleOnLoginPage,
|
|
@@ -1975,19 +1967,22 @@ class AadConfigurationMapper {
|
|
|
1975
1967
|
setupDefaults(ssoConfiguration) {
|
|
1976
1968
|
defaults(ssoConfiguration, this.defaults);
|
|
1977
1969
|
}
|
|
1978
|
-
|
|
1979
|
-
|
|
1970
|
+
getAadAddress(ssoConfiguration) {
|
|
1971
|
+
const urls = this.getUrlsFromRequests(ssoConfiguration);
|
|
1972
|
+
const aadAddresses = map$1(urls, url => this.getAadAddressFromUrl(url));
|
|
1973
|
+
return this.getFirstDefined(aadAddresses);
|
|
1980
1974
|
}
|
|
1981
|
-
|
|
1982
|
-
const urls =
|
|
1975
|
+
getTenant(ssoConfiguration) {
|
|
1976
|
+
const urls = this.getUrlsFromRequests(ssoConfiguration);
|
|
1977
|
+
const tenants = map$1(urls, url => this.getTenantFromUrl(url));
|
|
1978
|
+
return this.getFirstDefined(tenants);
|
|
1979
|
+
}
|
|
1980
|
+
getUrlsFromRequests(ssoConfiguration) {
|
|
1981
|
+
return at(ssoConfiguration, [
|
|
1983
1982
|
'authorizationRequest.url',
|
|
1984
1983
|
'tokenRequest.url',
|
|
1985
1984
|
'refreshRequest.url'
|
|
1986
1985
|
]);
|
|
1987
|
-
const aadAddresses = map$1(urls, url => this.getAadAddressFromUrl(url));
|
|
1988
|
-
set(ssoConfiguration, 'aadAddress', this.getFirstDefined(aadAddresses));
|
|
1989
|
-
const tenants = map$1(urls, url => this.getTenantFromUrl(url));
|
|
1990
|
-
set(ssoConfiguration, 'tenant', this.getFirstDefined(tenants));
|
|
1991
1986
|
}
|
|
1992
1987
|
getAadAddressFromUrl(url) {
|
|
1993
1988
|
const [, aadAddress] = (url || '').match(this.urlPattern) || [];
|
|
@@ -1997,18 +1992,17 @@ class AadConfigurationMapper {
|
|
|
1997
1992
|
const [, , , tenant] = (url || '').match(this.urlPattern) || [];
|
|
1998
1993
|
return tenant;
|
|
1999
1994
|
}
|
|
2000
|
-
|
|
1995
|
+
getClientSecret(ssoConfiguration) {
|
|
2001
1996
|
const bodies = at(ssoConfiguration, ['tokenRequest.body', 'refreshRequest.body']);
|
|
2002
1997
|
const clientSecrets = map$1(bodies, body => this.getClientSecretFromBody(body));
|
|
2003
|
-
|
|
1998
|
+
return this.getFirstDefined(clientSecrets);
|
|
2004
1999
|
}
|
|
2005
2000
|
getClientSecretFromBody(body) {
|
|
2006
2001
|
const [, clientSecret] = (body || '').match(/client_secret=([^&]+)/) || [];
|
|
2007
|
-
return decodeURIComponent(clientSecret);
|
|
2002
|
+
return clientSecret ? decodeURIComponent(clientSecret) : undefined;
|
|
2008
2003
|
}
|
|
2009
2004
|
setupUserIdConfig(ssoConfiguration) {
|
|
2010
2005
|
defaultsDeep(ssoConfiguration, { userIdConfig: { jwtField: 'upn' } });
|
|
2011
|
-
set(ssoConfiguration, 'userIdConfig.useConstantValue', false);
|
|
2012
2006
|
}
|
|
2013
2007
|
setupSignatureVerificationConfig(ssoConfiguration) {
|
|
2014
2008
|
defaultsDeep(ssoConfiguration, { signatureVerificationConfig: { aad: {} } });
|