@snabcentr/client-core 2.42.3 → 2.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,33 +1,20 @@
1
- import { Inject, inject, Injectable } from '@angular/core';
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { inject, Injectable } from '@angular/core';
2
3
  import { map, ReplaySubject, switchMap, tap } from 'rxjs';
4
+ import { ScAuthService } from '../../auth/services/sc-auth.service';
3
5
  import { ScTokenService } from '../../auth/services/sc-token.service';
6
+ import { ScContactsService } from '../../contacts/services/sc-contacts.service';
7
+ import { IS_BROWSER } from '../../providers/ssr.providers';
4
8
  import { SC_URLS } from '../../tokens/sc-urls';
5
9
  import { ScUserMetrikaGoalsEnum } from '../../user-metrika/enums/sc-user-metrika-goals-enum';
10
+ import { ScUserMetrikaService } from '../../user-metrika/services/sc-user-metrika.service';
6
11
  import { ScUser } from '../dto/sc-user';
7
12
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../auth/services/sc-auth.service";
9
- import * as i2 from "@angular/common/http";
10
- import * as i3 from "../../user-metrika/services/sc-user-metrika.service";
11
- import * as i4 from "../../contacts/services/sc-contacts.service";
12
13
  /**
13
14
  * Сервис информации о пользователе.
14
15
  */
15
16
  export class ScUserService {
16
- /**
17
- * Инициализирует экземпляр класса {@link ScUserService}.
18
- *
19
- * @param authService Сервис аутентификации.
20
- * @param urls Список ссылок на разделы backend'a.
21
- * @param http HTTP-клиент.
22
- * @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
23
- * @param contactsService Сервис для работы с контактными лицами.
24
- */
25
- constructor(authService, urls, http, userMetrikaService, contactsService) {
26
- this.authService = authService;
27
- this.urls = urls;
28
- this.http = http;
29
- this.userMetrikaService = userMetrikaService;
30
- this.contactsService = contactsService;
17
+ constructor() {
31
18
  /**
32
19
  * {@link ReplaySubject} данных о текущем пользователе.
33
20
  */
@@ -36,18 +23,47 @@ export class ScUserService {
36
23
  * Сервис для работы с токенами.
37
24
  */
38
25
  this.tokenService = inject(ScTokenService);
26
+ /**
27
+ * Признак, что скрипт выполняется в браузере.
28
+ */
29
+ this.isBrowser = inject(IS_BROWSER);
30
+ /**
31
+ * Сервис аутентификации.
32
+ */
33
+ this.authService = inject(ScAuthService);
34
+ /**
35
+ * Список ссылок на разделы backend'a.
36
+ */
37
+ this.urls = inject(SC_URLS);
38
+ /**
39
+ * HTTP-клиент.
40
+ */
41
+ this.http = inject(HttpClient);
42
+ /**
43
+ * Сервис для сбора метрик о действиях пользователей.
44
+ */
45
+ this.userMetrikaService = inject(ScUserMetrikaService);
46
+ /**
47
+ * Сервис для работы с контактными лицами.
48
+ */
49
+ this.contactsService = inject(ScContactsService);
39
50
  }
40
51
  /**
41
52
  * Выполняет инициализацию сервиса.
42
53
  */
43
54
  initService() {
44
- this.authService
45
- .getAuthChange()
46
- .pipe(switchMap((state) => (state ? this.getUserInfo$() : this.getGuestInfo$())))
47
- .subscribe((user) => {
48
- this.userMetrikaService.setUserParams(user.id, user.userType);
49
- this.user$.next(user);
50
- });
55
+ if (this.isBrowser) {
56
+ this.authService
57
+ .getAuthChange()
58
+ .pipe(switchMap((state) => (state ? this.getUserInfo$() : this.getGuestInfo$())))
59
+ .subscribe((user) => {
60
+ this.userMetrikaService.setUserParams(user.id, user.userType);
61
+ this.user$.next(user);
62
+ });
63
+ }
64
+ else {
65
+ this.user$.next(new ScUser({ metadata: {} }));
66
+ }
51
67
  }
52
68
  /**
53
69
  * Возвращает {@link Observable} запроса изменения информации о текущем пользователе.
@@ -158,7 +174,7 @@ export class ScUserService {
158
174
  deleteUserContact$(contactId) {
159
175
  return this.contactsService.deleteContact$(contactId);
160
176
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [{ token: i1.ScAuthService }, { token: SC_URLS }, { token: i2.HttpClient }, { token: i3.ScUserMetrikaService }, { token: i4.ScContactsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
162
178
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, providedIn: 'root' }); }
163
179
  }
164
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, decorators: [{
@@ -166,8 +182,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
166
182
  args: [{
167
183
  providedIn: 'root',
168
184
  }]
169
- }], ctorParameters: () => [{ type: i1.ScAuthService }, { type: undefined, decorators: [{
170
- type: Inject,
171
- args: [SC_URLS]
172
- }] }, { type: i2.HttpClient }, { type: i3.ScUserMetrikaService }, { type: i4.ScContactsService }] });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBVzdGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR3hDOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFXdEI7Ozs7Ozs7O09BUUc7SUFDSCxZQUNxQixXQUEwQixFQUNULElBQWEsRUFDOUIsSUFBZ0IsRUFDaEIsa0JBQXdDLEVBQ3hDLGVBQWtDO1FBSmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQ1QsU0FBSSxHQUFKLElBQUksQ0FBUztRQUM5QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBeEJ2RDs7V0FFRztRQUNLLFVBQUssR0FBMEIsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFcEU7O1dBRUc7UUFDYyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQWlCcEQsQ0FBQztJQUVKOztPQUVHO0lBQ0ksV0FBVztRQUNkLElBQUksQ0FBQyxXQUFXO2FBQ1gsYUFBYSxFQUFFO2FB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QUM7SUFDMUQsQ0FBQzsrR0ExS1EsYUFBYSwrQ0FzQlYsT0FBTzttSEF0QlYsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkF1QlEsTUFBTTsyQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElBdXRoVG9rZW4gfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2NBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvc2VydmljZXMvc2MtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNjSVVybHMgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS11cmxzJztcbmltcG9ydCB7IFNjQ29udGFjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udGFjdHMvc2VydmljZXMvc2MtY29udGFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkIH0gZnJvbSAnLi4vZHRvL3NjLWktY2hhbmdlLXBhc3N3b3JkJztcbmltcG9ydCB7IFNjSUNvbnRhY3QgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0JztcbmltcG9ydCB7IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0LW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zIH0gZnJvbSAnLi4vZHRvL3NjLWktY29udGFjdC13aXRoLXJlbGF0aW9ucyc7XG5pbXBvcnQgeyBTY0lQYXNzd29yZE9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhc3N3b3JkLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVBob25lT25EYXRhQXBwcm92ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBob25lLW9uLWRhdGEtYXBwcm92ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLXVwZGF0ZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY0lVc2VyRFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VzZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVzZXIkOiBSZXBsYXlTdWJqZWN0PFNjVXNlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YLQvtC60LXQvdCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChTY1Rva2VuU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjVXNlclNlcnZpY2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGF1dGhTZXJ2aWNlINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB1cmxzINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICogQHBhcmFtIGh0dHAgSFRUUC3QutC70LjQtdC90YIuXG4gICAgICogQHBhcmFtIHVzZXJNZXRyaWthU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKiBAcGFyYW0gY29udGFjdHNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60L7QvdGC0LDQutGC0L3Ri9C80Lgg0LvQuNGG0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogU2NBdXRoU2VydmljZSxcbiAgICAgICAgQEluamVjdChTQ19VUkxTKSBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhY3RzU2VydmljZTogU2NDb250YWN0c1NlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QXV0aENoYW5nZSgpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKHN0YXRlKSA9PiAoc3RhdGUgPyB0aGlzLmdldFVzZXJJbmZvJCgpIDogdGhpcy5nZXRHdWVzdEluZm8kKCkpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5zZXRVc2VyUGFyYW1zKHVzZXIuaWQsIHVzZXIudXNlclR5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlciQubmV4dCh1c2VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld0RhdGEg0JTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LrQvtGC0L7RgNGL0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVVc2VySW5mbyQobmV3RGF0YTogU2NJVXNlck9uRGF0YVVwZGF0ZSB8IFNjSUNoYW5nZVBhc3N3b3JkIHwgU2NJUGhvbmVPbkRhdGFBcHByb3ZlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXJgLCBuZXdEYXRhKS5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS51c2VyUHJvZmlsZUVkaXRlZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUt0LPQvtGB0YLQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8t0LPQvtGB0YLRjywg0LrQvtGC0L7RgNGL0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVHdWVzdEluZm8kKG5ld0RhdGE6IFBpY2s8U2NJVXNlck9uRGF0YVVwZGF0ZSwgJ21ldGFkYXRhJz4pOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vZ3Vlc3RgLCBuZXdEYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlciDQlNCw0L3QvdGL0LUg0LTQu9GPINGA0LXQs9C40YHRgtGA0LDRhtC40LguXG4gICAgICogQHBhcmFtIHdpdGhBdXRoINCk0LvQsNCzLCDRg9C60LDQt9GL0LLQsNGO0YnQuNC5LCDQvdGD0LbQvdC+INC70Lgg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNGC0Ywg0YLQvtC60LXQvSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzaWduVXAkKHVzZXI6IFNjSVVzZXJPbkRhdGFDcmVhdGUgfCBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlLCB3aXRoQXV0aDogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPElBdXRoVG9rZW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PElBdXRoVG9rZW4+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXIvcmVnaXN0ZXJgLCB1c2VyKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnNpZ25lZFVwLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhBdXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldEF1dGhUb2tlbih0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQvtGC0L/RgNCw0LLQutGDINC60L7QtNCwINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8g0L3QsCDRjdC70LXQutGC0YDQvtC90L3Rg9GOINC/0L7Rh9GC0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW1haWwg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YsuXG4gICAgICovXG4gICAgcHVibGljIHNlbmRSZXNldFBhc3N3b3JkQ29kZSQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgeyBwYXJhbXM6IHsgZW1haWw6IGVtYWlsIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3UGFzc3dvcmQg0JTQsNC90L3Ri9C1INC00LvRjyDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkJChuZXdQYXNzd29yZDogU2NJUGFzc3dvcmRPbkRhdGFVcGRhdGUpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS9hdXRoL3Bhc3N3b3JkL3Jlc3RvcmVgLCBuZXdQYXNzd29yZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LXQutGD0YnQtdCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm8kKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlciQubmV4dCh1c2VyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L/QvtC70YPRh9C10L3QuNC1INC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckluZm8kKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXJgKS5waXBlKG1hcCgodXNlcikgPT4gbmV3IFNjVXNlcih1c2VyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQtNCw0L3QvdGL0LUge0BsaW5rIE9ic2VydmFibGV9INGC0LXQutGD0YnQtdCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVHdWVzdENoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R3Vlc3RJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRHdWVzdEluZm8kKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDQutC+0L3RgtCw0LrRgtC90YvRhSDQu9C40YYg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyQ29udGFjdHMkKCk6IE9ic2VydmFibGU8U2NJQ29udGFjdFtdIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWN0c1NlcnZpY2UudXNlckNvbnRhY3RzLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC30LDQv9GA0L7RgSDRgdC+0LfQtNCw0L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0LrQu9C40LXQvdGC0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKiBAcGFyYW0gbmV3Q29udGFjdCDQlNCw0L3QvdGL0LUg0YLRgNC10LHRg9C10LzRi9C1INC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZVVzZXJDb250YWN0JCh1c2VySWQ6IG51bWJlciwgbmV3Q29udGFjdDogU2NJQ29udGFjdE9uRGF0YUNyZWF0ZSk6IE9ic2VydmFibGU8U2NJQ29udGFjdFdpdGhSZWxhdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLmNyZWF0ZUNvbnRhY3QkKHsgLi4ubmV3Q29udGFjdCwgY2xpZW50OiB7IGlkOiB1c2VySWQgfSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRhY3RJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVVc2VyQ29udGFjdCQoY29udGFjdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWN0c1NlcnZpY2UuZGVsZXRlQ29udGFjdCQoY29udGFjdElkKTtcbiAgICB9XG59XG4iXX0=
185
+ }] });
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFVM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUk7O1dBRUc7UUFDSyxVQUFLLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXBFOztXQUVHO1FBQ2MsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxjQUFTLEdBQVksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFckQ7O1dBRUc7UUFDYyxTQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDOztXQUVHO1FBQ2MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzQzs7V0FFRztRQUNjLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRW5FOztXQUVHO1FBQ2Msb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFKaEU7SUFuSkc7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVc7aUJBQ1gsYUFBYSxFQUFFO2lCQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ2hGLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxPQUF3RTtRQUMzRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxpQkFBaUI7YUFDbkQsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsT0FBOEM7UUFDbEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUFDLElBQXFELEVBQUUsV0FBb0IsSUFBSTtRQUMxRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDN0UsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxRQUFRO2FBQzFDLENBQUMsQ0FBQztZQUVILElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFDLEtBQWE7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsV0FBb0M7UUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSx3QkFBd0IsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksa0JBQWtCLENBQUMsTUFBYyxFQUFFLFVBQWtDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsU0FBaUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTNMUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUF1dGhUb2tlbiB9IGZyb20gJy4uLy4uL2F1dGgvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NUb2tlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2VzL3NjLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NDb250YWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250YWN0cy9zZXJ2aWNlcy9zYy1jb250YWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvc3NyLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkIH0gZnJvbSAnLi4vZHRvL3NjLWktY2hhbmdlLXBhc3N3b3JkJztcbmltcG9ydCB7IFNjSUNvbnRhY3QgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0JztcbmltcG9ydCB7IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0LW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zIH0gZnJvbSAnLi4vZHRvL3NjLWktY29udGFjdC13aXRoLXJlbGF0aW9ucyc7XG5pbXBvcnQgeyBTY0lQYXNzd29yZE9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhc3N3b3JkLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVBob25lT25EYXRhQXBwcm92ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBob25lLW9uLWRhdGEtYXBwcm92ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLXVwZGF0ZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY0lVc2VyRFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VzZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVzZXIkOiBSZXBsYXlTdWJqZWN0PFNjVXNlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YLQvtC60LXQvdCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChTY1Rva2VuU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGB0LrRgNC40L/RgiDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCyINCx0YDQsNGD0LfQtdGA0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfQlJPV1NFUik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutC+0L3RgtCw0LrRgtC90YvQvNC4INC70LjRhtCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhY3RzU2VydmljZSA9IGluamVjdChTY0NvbnRhY3RzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0QXV0aENoYW5nZSgpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKChzdGF0ZSkgPT4gKHN0YXRlID8gdGhpcy5nZXRVc2VySW5mbyQoKSA6IHRoaXMuZ2V0R3Vlc3RJbmZvJCgpKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5zZXRVc2VyUGFyYW1zKHVzZXIuaWQsIHVzZXIudXNlclR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQobmV3IFNjVXNlcih7IG1ldGFkYXRhOiB7fSB9KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LjQt9C80LXQvdC10L3QuNGPINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckluZm8kKG5ld0RhdGE6IFNjSVVzZXJPbkRhdGFVcGRhdGUgfCBTY0lDaGFuZ2VQYXNzd29yZCB8IFNjSVBob25lT25EYXRhQXBwcm92ZSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCwgbmV3RGF0YSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0udXNlclByb2ZpbGVFZGl0ZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LdCz0L7RgdGC0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3RGF0YSDQlNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLdCz0L7RgdGC0Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RJbmZvJChuZXdEYXRhOiBQaWNrPFNjSVVzZXJPbkRhdGFVcGRhdGUsICdtZXRhZGF0YSc+KTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCwgbmV3RGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIg0JTQsNC90L3Ri9C1INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB3aXRoQXV0aCDQpNC70LDQsywg0YPQutCw0LfRi9Cy0LDRjtGJ0LjQuSwg0L3Rg9C20L3QviDQu9C4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDRgtGMINGC0L7QutC10L0g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2lnblVwJCh1c2VyOiBTY0lVc2VyT25EYXRhQ3JlYXRlIHwgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSwgd2l0aEF1dGg6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxJQXV0aFRva2VuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQXV0aFRva2VuPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL3JlZ2lzdGVyYCwgdXNlcikucGlwZShcbiAgICAgICAgICAgIHRhcCgodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduZWRVcCxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aXRoQXV0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXRBdXRoVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L7RgtC/0YDQsNCy0LrRgyDQutC+0LTQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPINC90LAg0Y3Qu9C10LrRgtGA0L7QvdC90YPRjiDQv9C+0YfRgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVtYWlsINCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZW5kUmVzZXRQYXNzd29yZENvZGUkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2F1dGgvcGFzc3dvcmQvcmVzdG9yZWAsIHsgcGFyYW1zOiB7IGVtYWlsOiBlbWFpbCB9IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1Bhc3N3b3JkINCU0LDQvdC90YvQtSDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0LDRgNC+0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRQYXNzd29yZCQobmV3UGFzc3dvcmQ6IFNjSVBhc3N3b3JkT25EYXRhVXBkYXRlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgbmV3UGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC00LDQvdC90YvQtSB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFVzZXJJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEd1ZXN0SW5mbyQoKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyJC5uZXh0KHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0R3Vlc3RJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS9ndWVzdGApLnBpcGUobWFwKCh1c2VyKSA9PiBuZXcgU2NVc2VyKHVzZXIpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LrQvtC90YLQsNC60YLQvdGL0YUg0LvQuNGGINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNvbnRhY3RzJCgpOiBPYnNlcnZhYmxlPFNjSUNvbnRhY3RbXSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLnVzZXJDb250YWN0cy5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINC60LvQuNC10L3RgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICogQHBhcmFtIG5ld0NvbnRhY3Qg0JTQsNC90L3Ri9C1INGC0YDQtdCx0YPQtdC80YvQtSDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVVc2VyQ29udGFjdCQodXNlcklkOiBudW1iZXIsIG5ld0NvbnRhY3Q6IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUpOiBPYnNlcnZhYmxlPFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhY3RzU2VydmljZS5jcmVhdGVDb250YWN0JCh7IC4uLm5ld0NvbnRhY3QsIGNsaWVudDogeyBpZDogdXNlcklkIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINGD0LTQsNC70LXQvdC40Y8g0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250YWN0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlVXNlckNvbnRhY3QkKGNvbnRhY3RJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLmRlbGV0ZUNvbnRhY3QkKGNvbnRhY3RJZCk7XG4gICAgfVxufVxuIl19
@@ -7,7 +7,7 @@ import { startWith, Subject, ReplaySubject, partition, combineLatest, map, debou
7
7
  import { isPlatformBrowser, isPlatformServer, DOCUMENT, formatDate } from '@angular/common';
8
8
  import { tuiCreateTokenFromFactory, tuiCreateToken, TuiDay, tuiIsPresent, tuiPure } from '@taiga-ui/cdk';
9
9
  import * as i1$1 from '@angular/common/http';
10
- import { HttpContextToken, HttpContext, HttpHeaders, HttpParams, HttpClient, HttpResponse, HttpErrorResponse } from '@angular/common/http';
10
+ import { HttpContextToken, HttpContext, HttpHeaders, HttpClient, HttpParams, HttpResponse, HttpErrorResponse } from '@angular/common/http';
11
11
  import { tuiCleanObject } from '@taiga-ui/addon-doc/utils';
12
12
  import { __decorate } from 'tslib';
13
13
  import * as i2 from '@angular/router';
@@ -50,6 +50,10 @@ const IS_BROWSER = tuiCreateTokenFromFactory(() => isPlatformBrowser(inject(PLAT
50
50
  * Токен для получения признака, что скрипт выполняется на сервере.
51
51
  */
52
52
  const IS_SERVER = tuiCreateTokenFromFactory(() => isPlatformServer(inject(PLATFORM_ID)));
53
+ /**
54
+ * Токен для получения данных об ответе на запрос.
55
+ */
56
+ const RESPONSE = new InjectionToken('RESPONSE');
53
57
 
54
58
  /**
55
59
  * Токен внедрения заголовков ключей доступа к API.
@@ -708,6 +712,10 @@ class ScAuthService {
708
712
  * {@link ReplaySubject} для событийной модели сервиса аутентификации.
709
713
  */
710
714
  this.authSubject = new ReplaySubject(1);
715
+ /**
716
+ * Признак, что скрипт выполняется на сервере.
717
+ */
718
+ this.isServer = inject(IS_SERVER);
711
719
  const [authState$, actions$] = partition(combineLatest({
712
720
  access: this.tokenService.accessAuthToken$.pipe(map((token) => token !== null)),
713
721
  guest: this.tokenService.guestToken$.pipe(map((token) => token !== null)),
@@ -725,6 +733,9 @@ class ScAuthService {
725
733
  return this.getGuestToken$();
726
734
  }))
727
735
  .subscribe();
736
+ if (this.isServer) {
737
+ this.authSubject.next(false);
738
+ }
728
739
  }
729
740
  /**
730
741
  * Возвращает {@link Observable} состояния аутентификации, чтобы реагировать на изменения.
@@ -1614,21 +1625,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
1614
1625
  * Сервис информации о пользователе.
1615
1626
  */
1616
1627
  class ScUserService {
1617
- /**
1618
- * Инициализирует экземпляр класса {@link ScUserService}.
1619
- *
1620
- * @param authService Сервис аутентификации.
1621
- * @param urls Список ссылок на разделы backend'a.
1622
- * @param http HTTP-клиент.
1623
- * @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
1624
- * @param contactsService Сервис для работы с контактными лицами.
1625
- */
1626
- constructor(authService, urls, http, userMetrikaService, contactsService) {
1627
- this.authService = authService;
1628
- this.urls = urls;
1629
- this.http = http;
1630
- this.userMetrikaService = userMetrikaService;
1631
- this.contactsService = contactsService;
1628
+ constructor() {
1632
1629
  /**
1633
1630
  * {@link ReplaySubject} данных о текущем пользователе.
1634
1631
  */
@@ -1637,18 +1634,47 @@ class ScUserService {
1637
1634
  * Сервис для работы с токенами.
1638
1635
  */
1639
1636
  this.tokenService = inject(ScTokenService);
1637
+ /**
1638
+ * Признак, что скрипт выполняется в браузере.
1639
+ */
1640
+ this.isBrowser = inject(IS_BROWSER);
1641
+ /**
1642
+ * Сервис аутентификации.
1643
+ */
1644
+ this.authService = inject(ScAuthService);
1645
+ /**
1646
+ * Список ссылок на разделы backend'a.
1647
+ */
1648
+ this.urls = inject(SC_URLS);
1649
+ /**
1650
+ * HTTP-клиент.
1651
+ */
1652
+ this.http = inject(HttpClient);
1653
+ /**
1654
+ * Сервис для сбора метрик о действиях пользователей.
1655
+ */
1656
+ this.userMetrikaService = inject(ScUserMetrikaService);
1657
+ /**
1658
+ * Сервис для работы с контактными лицами.
1659
+ */
1660
+ this.contactsService = inject(ScContactsService);
1640
1661
  }
1641
1662
  /**
1642
1663
  * Выполняет инициализацию сервиса.
1643
1664
  */
1644
1665
  initService() {
1645
- this.authService
1646
- .getAuthChange()
1647
- .pipe(switchMap((state) => (state ? this.getUserInfo$() : this.getGuestInfo$())))
1648
- .subscribe((user) => {
1649
- this.userMetrikaService.setUserParams(user.id, user.userType);
1650
- this.user$.next(user);
1651
- });
1666
+ if (this.isBrowser) {
1667
+ this.authService
1668
+ .getAuthChange()
1669
+ .pipe(switchMap((state) => (state ? this.getUserInfo$() : this.getGuestInfo$())))
1670
+ .subscribe((user) => {
1671
+ this.userMetrikaService.setUserParams(user.id, user.userType);
1672
+ this.user$.next(user);
1673
+ });
1674
+ }
1675
+ else {
1676
+ this.user$.next(new ScUser({ metadata: {} }));
1677
+ }
1652
1678
  }
1653
1679
  /**
1654
1680
  * Возвращает {@link Observable} запроса изменения информации о текущем пользователе.
@@ -1759,7 +1785,7 @@ class ScUserService {
1759
1785
  deleteUserContact$(contactId) {
1760
1786
  return this.contactsService.deleteContact$(contactId);
1761
1787
  }
1762
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [{ token: ScAuthService }, { token: SC_URLS }, { token: i1$1.HttpClient }, { token: ScUserMetrikaService }, { token: ScContactsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1763
1789
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, providedIn: 'root' }); }
1764
1790
  }
1765
1791
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, decorators: [{
@@ -1767,10 +1793,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
1767
1793
  args: [{
1768
1794
  providedIn: 'root',
1769
1795
  }]
1770
- }], ctorParameters: () => [{ type: ScAuthService }, { type: undefined, decorators: [{
1771
- type: Inject,
1772
- args: [SC_URLS]
1773
- }] }, { type: i1$1.HttpClient }, { type: ScUserMetrikaService }, { type: ScContactsService }] });
1796
+ }] });
1774
1797
 
1775
1798
  /**
1776
1799
  * Перечисление названий справочников.
@@ -2558,12 +2581,18 @@ class ScCartService {
2558
2581
  * {@link ReplaySubject} для содержимого корзины.
2559
2582
  */
2560
2583
  this.cart$ = new ReplaySubject(1);
2561
- authService
2562
- .getAuthChange()
2563
- .pipe(switchMap(() => this.updateCart$()))
2564
- .subscribe((cart) => {
2565
- this.cart$.next(cart);
2566
- });
2584
+ /**
2585
+ * Признак, что скрипт выполняется в браузере.
2586
+ */
2587
+ this.isBrowser = inject(IS_BROWSER);
2588
+ if (this.isBrowser) {
2589
+ authService
2590
+ .getAuthChange()
2591
+ .pipe(switchMap(() => this.updateCart$()))
2592
+ .subscribe((cart) => {
2593
+ this.cart$.next(cart);
2594
+ });
2595
+ }
2567
2596
  this.cartDirections$ = referencesService.directions$.pipe(switchMap((directions) => this.cart$.pipe(switchMap((cart) => this.warehouseService.getWarehouseSelectChange$().pipe(map((warehouse) => directions
2568
2597
  .map((direction) => new ScISalesDirectionCart(direction, cart.items.filter((cartItem) => cartItem.salesDirection === direction.id), cart.directionsSum[direction.id], warehouse.id))
2569
2598
  .filter((direction) => direction.items.length > 0 || direction.itemsOnOrder.length > 0 || direction.itemsNotInWarehouseStock.length > 0)))))));
@@ -5107,25 +5136,11 @@ var ScReclamationStatus;
5107
5136
  * Сервис для получения списков стран, регионов, городов.
5108
5137
  */
5109
5138
  class ScLocationsService {
5110
- /**
5111
- * Инициализирует экземпляр класса {@link ScLocationsService}.
5112
- *
5113
- * @param authService Сервис аутентификации.
5114
- * @param referencesService Сервис справочников.
5115
- */
5116
- constructor(authService, referencesService) {
5117
- this.authService = authService;
5118
- this.referencesService = referencesService;
5139
+ constructor() {
5119
5140
  /**
5120
- * Данные о городе текущего пользователя.
5141
+ * Сервис справочников.
5121
5142
  */
5122
- this.currentUserCity = undefined;
5123
- authService
5124
- .getAuthChange()
5125
- .pipe(filter((state) => !state))
5126
- .subscribe(() => {
5127
- this.currentUserCity = undefined;
5128
- });
5143
+ this.referencesService = inject(ScReferencesService);
5129
5144
  }
5130
5145
  /**
5131
5146
  * Создает запрос получения списка стран.
@@ -5139,6 +5154,14 @@ class ScLocationsService {
5139
5154
  * @param countryId Идентификатор записи страны {@link number}.
5140
5155
  */
5141
5156
  getRegions$(countryId) {
5157
+ return this.referencesService.getReference$(ScReferenceName.region, { countryId: countryId });
5158
+ }
5159
+ /**
5160
+ * Создает запрос получения списка регионов указанной страны с информацией о стране.
5161
+ *
5162
+ * @param countryId Идентификатор записи страны {@link number}.
5163
+ */
5164
+ getRegionsWithCountry$(countryId) {
5142
5165
  return this.referencesService.getReference$(ScReferenceName.regionWithCountry, { countryId: countryId });
5143
5166
  }
5144
5167
  /**
@@ -5148,10 +5171,28 @@ class ScLocationsService {
5148
5171
  * @param regionId Идентификатор записи региона {@link regionId}.
5149
5172
  */
5150
5173
  getCities$(countryId, regionId) {
5174
+ return this.referencesService.getReference$(ScReferenceName.city, { countryId: countryId, regionId: regionId });
5175
+ }
5176
+ /**
5177
+ * Создает запрос получения списка городов указанного региона и страны с информацией о регионе.
5178
+ *
5179
+ * @param countryId Идентификатор записи страны {@link number}.
5180
+ * @param regionId Идентификатор записи региона {@link regionId}.
5181
+ */
5182
+ getCitiesWithRegion$(countryId, regionId) {
5151
5183
  return this.referencesService.getReference$(ScReferenceName.cityWithRegion, { countryId: countryId, regionId: regionId });
5152
5184
  }
5153
5185
  /**
5154
- * Создает запрос получения списка городов указанного региона.
5186
+ * Создает запрос получения списка городов указанного региона и страны с информацией о регионе и стране.
5187
+ *
5188
+ * @param countryId Идентификатор записи страны {@link number}.
5189
+ * @param regionId Идентификатор записи региона {@link regionId}.
5190
+ */
5191
+ getCityesWithRegionAndCountry$(countryId, regionId) {
5192
+ return this.referencesService.getReference$(ScReferenceName.cityWithRegionAndCountry, { countryId: countryId, regionId: regionId });
5193
+ }
5194
+ /**
5195
+ * Создает запрос получения списка городов указанного региона и страны по поисковому запросу.
5155
5196
  *
5156
5197
  * @param term Поисковый запрос.
5157
5198
  * @param countryId Идентификатор записи страны.
@@ -5161,26 +5202,14 @@ class ScLocationsService {
5161
5202
  return this.referencesService.getReferenceByTerm$(ScReferenceName.cityWithRegion, term, { countryId: countryId, regionId: regionId });
5162
5203
  }
5163
5204
  /**
5164
- * Создает запрос получения информации о городе по идентификатору.
5205
+ * Создает запрос получения информации о городе с информацией о регионе и стране.
5165
5206
  *
5166
5207
  * @param cityId Идентификатор записи города.
5167
5208
  */
5168
5209
  getCityById$(cityId) {
5169
5210
  return this.referencesService.getReferenceById$(ScReferenceName.cityWithRegionAndCountry, cityId);
5170
5211
  }
5171
- /**
5172
- * Создает запрос получения информации о городе текшего пользователя по идентификатору города.
5173
- *
5174
- * @param cityId Идентификатор записи города.
5175
- */
5176
- getUserCity$(cityId) {
5177
- if (this.currentUserCity && this.currentUserCity.id === cityId) {
5178
- return of(this.currentUserCity);
5179
- }
5180
- // eslint-disable-next-line no-return-assign
5181
- return this.getCityById$(cityId).pipe(tap((city) => (this.currentUserCity = city)));
5182
- }
5183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScLocationsService, deps: [{ token: ScAuthService }, { token: ScReferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScLocationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5184
5213
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScLocationsService, providedIn: 'root' }); }
5185
5214
  }
5186
5215
  __decorate([
@@ -5189,9 +5218,18 @@ __decorate([
5189
5218
  __decorate([
5190
5219
  tuiPure
5191
5220
  ], ScLocationsService.prototype, "getRegions$", null);
5221
+ __decorate([
5222
+ tuiPure
5223
+ ], ScLocationsService.prototype, "getRegionsWithCountry$", null);
5192
5224
  __decorate([
5193
5225
  tuiPure
5194
5226
  ], ScLocationsService.prototype, "getCities$", null);
5227
+ __decorate([
5228
+ tuiPure
5229
+ ], ScLocationsService.prototype, "getCitiesWithRegion$", null);
5230
+ __decorate([
5231
+ tuiPure
5232
+ ], ScLocationsService.prototype, "getCityesWithRegionAndCountry$", null);
5195
5233
  __decorate([
5196
5234
  tuiPure
5197
5235
  ], ScLocationsService.prototype, "getCitiesByTerm$", null);
@@ -5203,7 +5241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
5203
5241
  args: [{
5204
5242
  providedIn: 'root',
5205
5243
  }]
5206
- }], ctorParameters: () => [{ type: ScAuthService }, { type: ScReferencesService }], propDecorators: { getCountries$: [], getRegions$: [], getCities$: [], getCitiesByTerm$: [], getCityById$: [] } });
5244
+ }], propDecorators: { getCountries$: [], getRegions$: [], getRegionsWithCountry$: [], getCities$: [], getCitiesWithRegion$: [], getCityesWithRegionAndCountry$: [], getCitiesByTerm$: [], getCityById$: [] } });
5207
5245
 
5208
5246
  /**
5209
5247
  * Модель данных новости.
@@ -7079,5 +7117,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
7079
7117
  * Generated bundle index. Do not edit.
7080
7118
  */
7081
7119
 
7082
- export { EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DEFAULT_PAGE_META, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartItem, ScCartService, ScCatalogFormat, ScCatalogService, ScCategory, ScClientType, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForm, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScISalesDirectionCart, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScImageHelper, ScJsonLdComponent, ScJsonLdModule, ScLocationsService, ScMimeTypes, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReferenceName, ScReferencesService, ScRequisitesService, ScSearchService, ScSeoResource, ScSeoService, ScSocialType, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, runningOnTerminalFactory, searchTermFactory };
7120
+ export { EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DEFAULT_PAGE_META, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartItem, ScCartService, ScCatalogFormat, ScCatalogService, ScCategory, ScClientType, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForm, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScISalesDirectionCart, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScImageHelper, ScJsonLdComponent, ScJsonLdModule, ScLocationsService, ScMimeTypes, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReferenceName, ScReferencesService, ScRequisitesService, ScSearchService, ScSeoResource, ScSeoService, ScSocialType, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, runningOnTerminalFactory, searchTermFactory };
7083
7121
  //# sourceMappingURL=snabcentr-client-core.mjs.map