@c8y/ngx-components 1018.0.247 → 1018.0.249

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.
@@ -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(ssoConfiguration: any): void;
12
- setupConstants(ssoConfiguration: any): void;
13
- setupAadAddressAndTenant(ssoConfiguration: any): void;
14
- getAadAddressFromUrl(url: any): any;
15
- getTenantFromUrl(url: any): any;
16
- setupClientSecret(ssoConfiguration: any): void;
17
- getClientSecretFromBody(body: any): string;
18
- setupUserIdConfig(ssoConfiguration: any): void;
19
- setupSignatureVerificationConfig(ssoConfiguration: any): void;
20
- getRedirectAfterLogout(ssoConfiguration: any): boolean;
21
- getRedirectAfterLogoutUrl(ssoConfiguration: any): string;
22
- getFirstDefined(values: any): any;
23
- getQueryString(params: any): any;
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 { assign, defaults, set, at, map, defaultsDeep, has, head, reject, isUndefined } from 'lodash-es';
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.constants = {
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.getAadAddressFromUrl(ssoConfiguration.authorizationRequest.url),
113
- tenant: this.getTenantFromUrl(ssoConfiguration.authorizationRequest.url),
104
+ aadAddress: this.getAadAddress(ssoConfiguration),
105
+ tenant: this.getTenant(ssoConfiguration),
114
106
  applicationId: this.getFirstDefined(applicationsId),
115
107
  redirectToPlatform: ssoConfiguration.redirectToPlatform,
116
- clientSecret: ssoConfiguration.authorizationRequest.requestParams.client_id,
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
- setupConstants(ssoConfiguration) {
137
- assign(ssoConfiguration, this.constants);
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
- setupAadAddressAndTenant(ssoConfiguration) {
140
- const urls = at(ssoConfiguration, [
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
- setupClientSecret(ssoConfiguration) {
153
+ getClientSecret(ssoConfiguration) {
159
154
  const bodies = at(ssoConfiguration, ['tokenRequest.body', 'refreshRequest.body']);
160
155
  const clientSecrets = map(bodies, body => this.getClientSecretFromBody(body));
161
- set(ssoConfiguration, 'clientSecret', this.getFirstDefined(clientSecrets));
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, assign, set } from 'lodash-es';
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.constants = {
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.getAadAddressFromUrl(ssoConfiguration.authorizationRequest.url),
1955
- tenant: this.getTenantFromUrl(ssoConfiguration.authorizationRequest.url),
1946
+ aadAddress: this.getAadAddress(ssoConfiguration),
1947
+ tenant: this.getTenant(ssoConfiguration),
1956
1948
  applicationId: this.getFirstDefined(applicationsId),
1957
1949
  redirectToPlatform: ssoConfiguration.redirectToPlatform,
1958
- clientSecret: ssoConfiguration.authorizationRequest.requestParams.client_id,
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
- setupConstants(ssoConfiguration) {
1979
- assign(ssoConfiguration, this.constants);
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
- setupAadAddressAndTenant(ssoConfiguration) {
1982
- const urls = at(ssoConfiguration, [
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
- setupClientSecret(ssoConfiguration) {
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
- set(ssoConfiguration, 'clientSecret', this.getFirstDefined(clientSecrets));
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: {} } });