@igo2/core 18.0.0 → 18.0.1-next.2

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.
Files changed (140) hide show
  1. package/config/config.service.d.ts +1 -1
  2. package/fesm2022/igo2-core-activity.mjs +10 -10
  3. package/fesm2022/igo2-core-activity.mjs.map +1 -1
  4. package/fesm2022/igo2-core-analytics.mjs +3 -3
  5. package/fesm2022/igo2-core-analytics.mjs.map +1 -1
  6. package/fesm2022/igo2-core-config.mjs +16 -20
  7. package/fesm2022/igo2-core-config.mjs.map +1 -1
  8. package/fesm2022/igo2-core-gesture.mjs +7 -7
  9. package/fesm2022/igo2-core-gesture.mjs.map +1 -1
  10. package/fesm2022/igo2-core-language.mjs +15 -19
  11. package/fesm2022/igo2-core-language.mjs.map +1 -1
  12. package/fesm2022/igo2-core-media.mjs +3 -3
  13. package/fesm2022/igo2-core-media.mjs.map +1 -1
  14. package/fesm2022/igo2-core-message.mjs +7 -7
  15. package/fesm2022/igo2-core-message.mjs.map +1 -1
  16. package/fesm2022/igo2-core-monitoring.mjs +6 -7
  17. package/fesm2022/igo2-core-monitoring.mjs.map +1 -1
  18. package/fesm2022/igo2-core-network.mjs +3 -3
  19. package/fesm2022/igo2-core-network.mjs.map +1 -1
  20. package/fesm2022/igo2-core-regex.mjs +3 -3
  21. package/fesm2022/igo2-core-regex.mjs.map +1 -1
  22. package/fesm2022/igo2-core-request.mjs +14 -14
  23. package/fesm2022/igo2-core-request.mjs.map +1 -1
  24. package/fesm2022/igo2-core-route.mjs +3 -3
  25. package/fesm2022/igo2-core-route.mjs.map +1 -1
  26. package/fesm2022/igo2-core-storage.mjs +3 -3
  27. package/fesm2022/igo2-core-storage.mjs.map +1 -1
  28. package/fesm2022/igo2-core.mjs +4 -4
  29. package/fesm2022/igo2-core.mjs.map +1 -1
  30. package/monitoring/monitoring.provider.d.ts +2 -2
  31. package/monitoring/sentry/sentry.provider.d.ts +2 -2
  32. package/package.json +7 -39
  33. package/src/style/style.scss +1 -1
  34. package/src/theming/prebuilt-themes/blue-theme.scss +2 -1
  35. package/src/theming/prebuilt-themes/bluedark-theme.scss +2 -1
  36. package/src/theming/prebuilt-themes/bluedq-theme.scss +2 -1
  37. package/src/theming/prebuilt-themes/bluegrey-theme.scss +2 -1
  38. package/src/theming/prebuilt-themes/dark-theme.scss +2 -1
  39. package/src/theming/prebuilt-themes/deeppurple-theme.scss +2 -1
  40. package/src/theming/prebuilt-themes/indigo-theme.scss +2 -1
  41. package/src/theming/prebuilt-themes/orange-theme.scss +2 -1
  42. package/src/theming/prebuilt-themes/teal-theme.scss +2 -1
  43. package/style/all-style.css +4 -1
  44. package/theming/prebuilt-themes/blue-theme.css +286 -272
  45. package/theming/prebuilt-themes/bluedark-theme.css +286 -272
  46. package/theming/prebuilt-themes/bluedq-theme.css +286 -272
  47. package/theming/prebuilt-themes/bluegrey-theme.css +286 -272
  48. package/theming/prebuilt-themes/dark-theme.css +286 -272
  49. package/theming/prebuilt-themes/deeppurple-theme.css +286 -272
  50. package/theming/prebuilt-themes/indigo-theme.css +286 -272
  51. package/theming/prebuilt-themes/orange-theme.css +286 -272
  52. package/theming/prebuilt-themes/teal-theme.css +286 -272
  53. package/esm2022/activity/activity.interceptor.mjs +0 -32
  54. package/esm2022/activity/activity.module.mjs +0 -30
  55. package/esm2022/activity/activity.service.mjs +0 -31
  56. package/esm2022/activity/igo2-core-activity.mjs +0 -5
  57. package/esm2022/activity/public_api.mjs +0 -4
  58. package/esm2022/analytics/analytics.interface.mjs +0 -2
  59. package/esm2022/analytics/analytics.service.mjs +0 -88
  60. package/esm2022/analytics/igo2-core-analytics.mjs +0 -5
  61. package/esm2022/analytics/public_api.mjs +0 -3
  62. package/esm2022/config/config-deprecated.mjs +0 -27
  63. package/esm2022/config/config.interface.mjs +0 -2
  64. package/esm2022/config/config.module.mjs +0 -26
  65. package/esm2022/config/config.provider.mjs +0 -21
  66. package/esm2022/config/config.service.mjs +0 -98
  67. package/esm2022/config/igo2-core-config.mjs +0 -5
  68. package/esm2022/config/public_api.mjs +0 -6
  69. package/esm2022/config/version.mjs +0 -5
  70. package/esm2022/environment/environment.interface.mjs +0 -2
  71. package/esm2022/environment/igo2-core-environment.mjs +0 -5
  72. package/esm2022/environment/public_api.mjs +0 -2
  73. package/esm2022/gesture/gesture.module.mjs +0 -29
  74. package/esm2022/gesture/gesture.provider.mjs +0 -16
  75. package/esm2022/gesture/igo2-core-gesture.mjs +0 -5
  76. package/esm2022/gesture/public_api.mjs +0 -3
  77. package/esm2022/igo2-core.mjs +0 -5
  78. package/esm2022/language/igo2-core-language.mjs +0 -5
  79. package/esm2022/language/language.module.mjs +0 -15
  80. package/esm2022/language/public_api.mjs +0 -3
  81. package/esm2022/language/shared/index.mjs +0 -7
  82. package/esm2022/language/shared/language-mock.provider.mjs +0 -13
  83. package/esm2022/language/shared/language.interface.mjs +0 -3
  84. package/esm2022/language/shared/language.loader.mjs +0 -53
  85. package/esm2022/language/shared/language.provider.mjs +0 -85
  86. package/esm2022/language/shared/language.service.mjs +0 -47
  87. package/esm2022/language/shared/missing-translation.guard.mjs +0 -16
  88. package/esm2022/lib/core.module.mjs +0 -38
  89. package/esm2022/media/igo2-core-media.mjs +0 -5
  90. package/esm2022/media/media.enum.mjs +0 -12
  91. package/esm2022/media/media.service.mjs +0 -82
  92. package/esm2022/media/public_api.mjs +0 -3
  93. package/esm2022/message/igo2-core-message.mjs +0 -5
  94. package/esm2022/message/message.module.mjs +0 -26
  95. package/esm2022/message/public_api.mjs +0 -3
  96. package/esm2022/message/shared/index.mjs +0 -5
  97. package/esm2022/message/shared/message.enum.mjs +0 -11
  98. package/esm2022/message/shared/message.interface.mjs +0 -2
  99. package/esm2022/message/shared/message.provider.mjs +0 -22
  100. package/esm2022/message/shared/message.service.mjs +0 -225
  101. package/esm2022/monitoring/__mocks__/index.mjs +0 -2
  102. package/esm2022/monitoring/__mocks__/monitoring-mock.mjs +0 -7
  103. package/esm2022/monitoring/igo2-core-monitoring.mjs +0 -5
  104. package/esm2022/monitoring/monitoring.provider.mjs +0 -20
  105. package/esm2022/monitoring/public_api.mjs +0 -5
  106. package/esm2022/monitoring/sentry/index.mjs +0 -4
  107. package/esm2022/monitoring/sentry/sentry.interface.mjs +0 -2
  108. package/esm2022/monitoring/sentry/sentry.mjs +0 -23
  109. package/esm2022/monitoring/sentry/sentry.provider.mjs +0 -31
  110. package/esm2022/monitoring/sentry/sentry.utils.mjs +0 -13
  111. package/esm2022/monitoring/shared/any-monitoring.interface.mjs +0 -2
  112. package/esm2022/monitoring/shared/index.mjs +0 -3
  113. package/esm2022/monitoring/shared/monitoring.interface.mjs +0 -2
  114. package/esm2022/network/igo2-core-network.mjs +0 -5
  115. package/esm2022/network/network.interfaces.mjs +0 -2
  116. package/esm2022/network/network.service.mjs +0 -68
  117. package/esm2022/network/public_api.mjs +0 -3
  118. package/esm2022/public_api.mjs +0 -7
  119. package/esm2022/regex/igo2-core-regex.mjs +0 -5
  120. package/esm2022/regex/public_api.mjs +0 -3
  121. package/esm2022/regex/regex.interface.mjs +0 -2
  122. package/esm2022/regex/regex.service.mjs +0 -30
  123. package/esm2022/request/error.interceptor.mjs +0 -72
  124. package/esm2022/request/error.module.mjs +0 -39
  125. package/esm2022/request/igo2-core-request.mjs +0 -5
  126. package/esm2022/request/logging.interceptor.mjs +0 -29
  127. package/esm2022/request/logging.module.mjs +0 -30
  128. package/esm2022/request/public_api.mjs +0 -5
  129. package/esm2022/route/igo2-core-route.mjs +0 -5
  130. package/esm2022/route/public_api.mjs +0 -3
  131. package/esm2022/route/route.interface.mjs +0 -2
  132. package/esm2022/route/route.service.mjs +0 -75
  133. package/esm2022/storage/igo2-core-storage.mjs +0 -5
  134. package/esm2022/storage/public_api.mjs +0 -4
  135. package/esm2022/storage/storage.interface.mjs +0 -13
  136. package/esm2022/storage/storage.mjs +0 -76
  137. package/esm2022/storage/storage.service.mjs +0 -21
  138. package/esm2022/user/igo2-core-user.mjs +0 -5
  139. package/esm2022/user/public_api.mjs +0 -2
  140. package/esm2022/user/user.interface.mjs +0 -2
@@ -1,225 +0,0 @@
1
- import { Inject, Injectable, Injector } from '@angular/core';
2
- import { ConfigService } from '@igo2/core/config';
3
- import { LanguageService } from '@igo2/core/language';
4
- import { ToastrService } from 'ngx-toastr';
5
- import { BehaviorSubject, forkJoin } from 'rxjs';
6
- import { debounceTime, first } from 'rxjs/operators';
7
- import { MessageType } from './message.enum';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@igo2/core/config";
10
- import * as i2 from "@igo2/core/language";
11
- export class MessageService {
12
- injector;
13
- configService;
14
- languageService;
15
- messages$ = new BehaviorSubject([]);
16
- options;
17
- activeMessageTranslations = [];
18
- constructor(injector, configService, languageService) {
19
- this.injector = injector;
20
- this.configService = configService;
21
- this.languageService = languageService;
22
- this.options = this.configService.getConfig('message');
23
- this.languageService.language$.pipe(debounceTime(500)).subscribe(() => {
24
- if (this.toastr.toasts.length === 0) {
25
- this.activeMessageTranslations = [];
26
- }
27
- this.toastr.toasts.map((toast) => {
28
- const activeMessageTranslation = this.activeMessageTranslations.find((amt) => amt.id === toast.toastId);
29
- if (activeMessageTranslation) {
30
- const translatedTextInterpolateParams = {
31
- ...activeMessageTranslation.textInterpolateParams
32
- };
33
- const translatedTitleInterpolateParams = {
34
- ...activeMessageTranslation.titleInterpolateParams
35
- };
36
- if (activeMessageTranslation.textInterpolateParams) {
37
- Object.keys(activeMessageTranslation.textInterpolateParams).map((k) => {
38
- if (k) {
39
- translatedTextInterpolateParams[k] =
40
- this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);
41
- }
42
- });
43
- }
44
- if (activeMessageTranslation.titleInterpolateParams) {
45
- Object.keys(activeMessageTranslation.titleInterpolateParams).map((k) => {
46
- if (k) {
47
- translatedTitleInterpolateParams[k] =
48
- this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);
49
- }
50
- });
51
- }
52
- forkJoin([
53
- this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),
54
- this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)
55
- ])
56
- .pipe(first())
57
- .subscribe((res) => {
58
- toast.toastRef.componentInstance.message = res[0];
59
- toast.toastRef.componentInstance.title = res[1];
60
- });
61
- }
62
- });
63
- });
64
- }
65
- get toastr() {
66
- return this.injector.get(ToastrService);
67
- }
68
- showError(httpError) {
69
- httpError.error.caught = true;
70
- return this.error(httpError.error.message, httpError.error.title);
71
- }
72
- message(message) {
73
- const messageType = message.type;
74
- this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;
75
- this.messages$.next(this.messages$.value.concat([message]));
76
- message.options = message.options || {};
77
- const currentDate = new Date();
78
- message.options.from = message.options.from
79
- ? message.options.from
80
- : new Date('1 jan 1900');
81
- message.options.to = message.options.to
82
- ? message.options.to
83
- : new Date('1 jan 3000');
84
- if (typeof message.options.from === 'string') {
85
- message.options.from = new Date(Date.parse(message.options.from.replace(/-/g, ' ')));
86
- }
87
- if (typeof message.options.to === 'string') {
88
- message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));
89
- }
90
- if (currentDate > message.options.from &&
91
- currentDate < message.options.to) {
92
- if (message.showIcon === false) {
93
- this.toastr.toastrConfig.iconClasses[messageType] =
94
- `toast-${messageType} toast-no-icon`;
95
- }
96
- message = this.handleTemplate(message);
97
- if (message.text) {
98
- let messageShown;
99
- switch (message.type) {
100
- case MessageType.SUCCESS:
101
- messageShown = this.success(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
102
- break;
103
- case MessageType.ERROR:
104
- messageShown = this.error(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
105
- break;
106
- case MessageType.INFO:
107
- messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
108
- break;
109
- case MessageType.SHOW:
110
- messageShown = this.show(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
111
- break;
112
- case MessageType.ALERT:
113
- case MessageType.WARNING:
114
- messageShown = this.alert(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
115
- break;
116
- default:
117
- messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
118
- break;
119
- }
120
- message.options.id = messageShown.toastId;
121
- }
122
- }
123
- }
124
- success(text, title = 'igo.core.message.success', options = {}, textInterpolateParams, titleInterpolateParams) {
125
- return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);
126
- }
127
- error(text, title = 'igo.core.message.error', options = {}, textInterpolateParams, titleInterpolateParams) {
128
- return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);
129
- }
130
- info(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
131
- return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);
132
- }
133
- alert(text, title = 'igo.core.message.alert', options = {}, textInterpolateParams, titleInterpolateParams) {
134
- return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);
135
- }
136
- show(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
137
- return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);
138
- }
139
- handleNgxToastr(type, text, title, options = {}, textInterpolateParams, titleInterpolateParams) {
140
- const translatedTextInterpolateParams = { ...textInterpolateParams };
141
- const translatedTitlenterpolateParams = { ...titleInterpolateParams };
142
- if (textInterpolateParams) {
143
- Object.keys(textInterpolateParams).map((k) => {
144
- const value = textInterpolateParams[k];
145
- if (value) {
146
- translatedTextInterpolateParams[k] =
147
- typeof value === 'string'
148
- ? this.languageService.translate.instant(value)
149
- : value;
150
- }
151
- });
152
- }
153
- if (titleInterpolateParams) {
154
- Object.keys(titleInterpolateParams).map((k) => {
155
- if (k) {
156
- const value = titleInterpolateParams[k];
157
- translatedTitlenterpolateParams[k] =
158
- typeof value === 'string'
159
- ? this.languageService.translate.instant(value)
160
- : value;
161
- }
162
- });
163
- }
164
- const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);
165
- const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);
166
- let activeToast;
167
- switch (type) {
168
- case 'success':
169
- activeToast = this.toastr.success(message, translatedTitle, options);
170
- break;
171
- case 'error':
172
- activeToast = this.toastr.error(message, translatedTitle, options);
173
- break;
174
- case 'show':
175
- case 'info':
176
- activeToast = this.toastr.info(message, translatedTitle, options);
177
- break;
178
- case 'alert':
179
- activeToast = this.toastr.warning(message, translatedTitle, options);
180
- break;
181
- }
182
- this.activeMessageTranslations.push({
183
- id: activeToast.toastId,
184
- titleKey: title,
185
- textKey: text,
186
- textInterpolateParams,
187
- titleInterpolateParams
188
- });
189
- return activeToast;
190
- }
191
- remove(id) {
192
- this.toastr.remove(id);
193
- }
194
- removeAllAreNotError() {
195
- for (const mess of this.messages$.value) {
196
- if (mess.type !== MessageType.ERROR) {
197
- this.remove(mess.options.id);
198
- }
199
- }
200
- }
201
- handleTemplate(message) {
202
- if (!this.options?.template || message.html) {
203
- return message;
204
- }
205
- let html = this.options?.template;
206
- html = html.replace('${text}', message.text);
207
- html = html.replace('${title}', message.title);
208
- message.html = undefined;
209
- message.text = html;
210
- message.title = undefined;
211
- return message;
212
- }
213
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, deps: [{ token: Injector }, { token: i1.ConfigService }, { token: i2.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
214
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, providedIn: 'root' });
215
- }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, decorators: [{
217
- type: Injectable,
218
- args: [{
219
- providedIn: 'root'
220
- }]
221
- }], ctorParameters: () => [{ type: i0.Injector, decorators: [{
222
- type: Inject,
223
- args: [Injector]
224
- }] }, { type: i1.ConfigService }, { type: i2.LanguageService }] });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tZXNzYWdlL3NyYy9zaGFyZWQvbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBaUMsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBYTdDLE1BQU0sT0FBTyxjQUFjO0lBTUc7SUFDbEI7SUFDQTtJQVBILFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQWtCO0lBQ3pCLHlCQUF5QixHQUErQixFQUFFLENBQUM7SUFFbkUsWUFDNEIsUUFBa0IsRUFDcEMsYUFBNEIsRUFDNUIsZUFBZ0M7UUFGZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUV4QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFT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LGNBQWMsa0JBTWYsUUFBUTs0R0FOUCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IEFjdGl2ZVRvYXN0LCBJbmRpdmlkdWFsQ29uZmlnLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gJy4vbWVzc2FnZS5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VPcHRpb25zIH0gZnJvbSAnLi9tZXNzYWdlLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBBY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24ge1xuICBpZDogbnVtYmVyO1xuICB0aXRsZUtleTogc3RyaW5nO1xuICB0ZXh0S2V5OiBzdHJpbmc7XG4gIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdDtcbiAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdDtcbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTZXJ2aWNlIHtcbiAgcHVibGljIG1lc3NhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVzc2FnZVtdPihbXSk7XG4gIHByaXZhdGUgb3B0aW9ucz86IE1lc3NhZ2VPcHRpb25zO1xuICBwcml2YXRlIGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnM6IEFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnbWVzc2FnZScpO1xuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudG9hc3RyLnRvYXN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb25zID0gW107XG4gICAgICB9XG4gICAgICB0aGlzLnRvYXN0ci50b2FzdHMubWFwKCh0b2FzdCkgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24gPSB0aGlzLmFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnMuZmluZChcbiAgICAgICAgICAoYW10KSA9PiBhbXQuaWQgPT09IHRvYXN0LnRvYXN0SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbikge1xuICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXMgPSB7XG4gICAgICAgICAgICAuLi5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGVJbnRlcnBvbGF0ZVBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLmFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zKS5tYXAoXG4gICAgICAgICAgICAgIChrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGspIHtcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNba10gPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zW2tdXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50aXRsZUludGVycG9sYXRlUGFyYW1zKS5tYXAoXG4gICAgICAgICAgICAgIChrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGspIHtcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRUaXRsZUludGVycG9sYXRlUGFyYW1zW2tdID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNba11cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9ya0pvaW4oW1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmdldChcbiAgICAgICAgICAgICAgYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRleHRLZXksXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuZ2V0KFxuICAgICAgICAgICAgICBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGl0bGVLZXksXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZWRUaXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApXG4gICAgICAgICAgXSlcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UubWVzc2FnZSA9IHJlc1swXTtcbiAgICAgICAgICAgICAgdG9hc3QudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UudGl0bGUgPSByZXNbMV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCB0b2FzdHIoKTogVG9hc3RyU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xuICB9XG5cbiAgc2hvd0Vycm9yKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBodHRwRXJyb3IuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5lcnJvcihodHRwRXJyb3IuZXJyb3IubWVzc2FnZSwgaHR0cEVycm9yLmVycm9yLnRpdGxlKTtcbiAgfVxuXG4gIG1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xuICAgIGNvbnN0IG1lc3NhZ2VUeXBlID0gbWVzc2FnZS50eXBlO1xuICAgIHRoaXMudG9hc3RyLnRvYXN0ckNvbmZpZy5pY29uQ2xhc3Nlc1ttZXNzYWdlVHlwZV0gPSBgdG9hc3QtJHttZXNzYWdlVHlwZX1gO1xuXG4gICAgdGhpcy5tZXNzYWdlcyQubmV4dCh0aGlzLm1lc3NhZ2VzJC52YWx1ZS5jb25jYXQoW21lc3NhZ2VdKSk7XG5cbiAgICBtZXNzYWdlLm9wdGlvbnMgPSBtZXNzYWdlLm9wdGlvbnMgfHwgKHt9IGFzIE1lc3NhZ2VPcHRpb25zKTtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBtZXNzYWdlLm9wdGlvbnMuZnJvbSA9IG1lc3NhZ2Uub3B0aW9ucy5mcm9tXG4gICAgICA/IG1lc3NhZ2Uub3B0aW9ucy5mcm9tXG4gICAgICA6IG5ldyBEYXRlKCcxIGphbiAxOTAwJyk7XG4gICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbWVzc2FnZS5vcHRpb25zLnRvXG4gICAgICA/IG1lc3NhZ2Uub3B0aW9ucy50b1xuICAgICAgOiBuZXcgRGF0ZSgnMSBqYW4gMzAwMCcpO1xuICAgIGlmICh0eXBlb2YgbWVzc2FnZS5vcHRpb25zLmZyb20gPT09ICdzdHJpbmcnKSB7XG4gICAgICBtZXNzYWdlLm9wdGlvbnMuZnJvbSA9IG5ldyBEYXRlKFxuICAgICAgICBEYXRlLnBhcnNlKG1lc3NhZ2Uub3B0aW9ucy5mcm9tLnJlcGxhY2UoLy0vZywgJyAnKSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWVzc2FnZS5vcHRpb25zLnRvID09PSAnc3RyaW5nJykge1xuICAgICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbmV3IERhdGUoXG4gICAgICAgIERhdGUucGFyc2UobWVzc2FnZS5vcHRpb25zLnRvLnJlcGxhY2UoLy0vZywgJyAnKSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGN1cnJlbnREYXRlID4gbWVzc2FnZS5vcHRpb25zLmZyb20gJiZcbiAgICAgIGN1cnJlbnREYXRlIDwgbWVzc2FnZS5vcHRpb25zLnRvXG4gICAgKSB7XG4gICAgICBpZiAobWVzc2FnZS5zaG93SWNvbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy50b2FzdHIudG9hc3RyQ29uZmlnLmljb25DbGFzc2VzW21lc3NhZ2VUeXBlXSA9XG4gICAgICAgICAgYHRvYXN0LSR7bWVzc2FnZVR5cGV9IHRvYXN0LW5vLWljb25gO1xuICAgICAgfVxuICAgICAgbWVzc2FnZSA9IHRoaXMuaGFuZGxlVGVtcGxhdGUobWVzc2FnZSk7XG5cbiAgICAgIGlmIChtZXNzYWdlLnRleHQpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2VTaG93bjogQWN0aXZlVG9hc3Q8YW55PjtcbiAgICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLlNVQ0NFU1M6XG4gICAgICAgICAgICBtZXNzYWdlU2hvd24gPSB0aGlzLnN1Y2Nlc3MoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5FUlJPUjpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuZXJyb3IoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5JTkZPOlxuICAgICAgICAgICAgbWVzc2FnZVNob3duID0gdGhpcy5pbmZvKFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHQsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGl0bGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2Uub3B0aW9ucyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0SW50ZXJwb2xhdGVQYXJhbXMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuU0hPVzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuc2hvdyhcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0LFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlLFxuICAgICAgICAgICAgICBtZXNzYWdlLm9wdGlvbnMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLkFMRVJUOlxuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuV0FSTklORzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuYWxlcnQoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuaW5mbyhcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0LFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlLFxuICAgICAgICAgICAgICBtZXNzYWdlLm9wdGlvbnMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlLm9wdGlvbnMuaWQgPSBtZXNzYWdlU2hvd24udG9hc3RJZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdWNjZXNzKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZSA9ICdpZ28uY29yZS5tZXNzYWdlLnN1Y2Nlc3MnLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdFxuICApOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoXG4gICAgICAnc3VjY2VzcycsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBlcnJvcihcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgdGl0bGUgPSAnaWdvLmNvcmUubWVzc2FnZS5lcnJvcicsXG4gICAgb3B0aW9uczogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHt9LFxuICAgIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdCxcbiAgICB0aXRsZUludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0XG4gICk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZU5neFRvYXN0cihcbiAgICAgICdlcnJvcicsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBpbmZvKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZSA9ICdpZ28uY29yZS5tZXNzYWdlLmluZm8nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdFxuICApOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoXG4gICAgICAnaW5mbycsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhbGVydChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgdGl0bGUgPSAnaWdvLmNvcmUubWVzc2FnZS5hbGVydCcsXG4gICAgb3B0aW9uczogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHt9LFxuICAgIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdCxcbiAgICB0aXRsZUludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0XG4gICk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZU5neFRvYXN0cihcbiAgICAgICdhbGVydCcsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBzaG93KFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZSA9ICdpZ28uY29yZS5tZXNzYWdlLmluZm8nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdFxuICApOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoXG4gICAgICAnc2hvdycsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5neFRvYXN0cihcbiAgICB0eXBlOiAnYWxlcnQnIHwgJ2luZm8nIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJyB8ICdzaG93JyxcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30sXG4gICAgdGV4dEludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0LFxuICAgIHRpdGxlSW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3RcbiAgKTogQWN0aXZlVG9hc3Q8YW55PiB7XG4gICAgY29uc3QgdHJhbnNsYXRlZFRleHRJbnRlcnBvbGF0ZVBhcmFtcyA9IHsgLi4udGV4dEludGVycG9sYXRlUGFyYW1zIH07XG4gICAgY29uc3QgdHJhbnNsYXRlZFRpdGxlbnRlcnBvbGF0ZVBhcmFtcyA9IHsgLi4udGl0bGVJbnRlcnBvbGF0ZVBhcmFtcyB9O1xuXG4gICAgaWYgKHRleHRJbnRlcnBvbGF0ZVBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXModGV4dEludGVycG9sYXRlUGFyYW1zKS5tYXAoKGspID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0ZXh0SW50ZXJwb2xhdGVQYXJhbXNba107XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNba10gPVxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICA/IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHZhbHVlKVxuICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKHRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpLm1hcCgoaykgPT4ge1xuICAgICAgICBpZiAoaykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1trXTtcbiAgICAgICAgICB0cmFuc2xhdGVkVGl0bGVudGVycG9sYXRlUGFyYW1zW2tdID1cbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgPyB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh2YWx1ZSlcbiAgICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgdGV4dCxcbiAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRUaXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgdGl0bGUsXG4gICAgICB0cmFuc2xhdGVkVGl0bGVudGVycG9sYXRlUGFyYW1zXG4gICAgKTtcblxuICAgIGxldCBhY3RpdmVUb2FzdDtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICBhY3RpdmVUb2FzdCA9IHRoaXMudG9hc3RyLnN1Y2Nlc3MobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIuZXJyb3IobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzaG93JzpcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICBhY3RpdmVUb2FzdCA9IHRoaXMudG9hc3RyLmluZm8obWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGVydCc6XG4gICAgICAgIGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIud2FybmluZyhtZXNzYWdlLCB0cmFuc2xhdGVkVGl0bGUsIG9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb25zLnB1c2goe1xuICAgICAgaWQ6IGFjdGl2ZVRvYXN0LnRvYXN0SWQsXG4gICAgICB0aXRsZUtleTogdGl0bGUsXG4gICAgICB0ZXh0S2V5OiB0ZXh0LFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgIH0pO1xuICAgIHJldHVybiBhY3RpdmVUb2FzdDtcbiAgfVxuXG4gIHJlbW92ZShpZD86IG51bWJlcikge1xuICAgIHRoaXMudG9hc3RyLnJlbW92ZShpZCk7XG4gIH1cblxuICByZW1vdmVBbGxBcmVOb3RFcnJvcigpIHtcbiAgICBmb3IgKGNvbnN0IG1lc3Mgb2YgdGhpcy5tZXNzYWdlcyQudmFsdWUpIHtcbiAgICAgIGlmIChtZXNzLnR5cGUgIT09IE1lc3NhZ2VUeXBlLkVSUk9SKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlKG1lc3Mub3B0aW9ucy5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUZW1wbGF0ZShtZXNzYWdlOiBNZXNzYWdlKTogTWVzc2FnZSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnM/LnRlbXBsYXRlIHx8IG1lc3NhZ2UuaHRtbCkge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgbGV0IGh0bWwgPSB0aGlzLm9wdGlvbnM/LnRlbXBsYXRlO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoJyR7dGV4dH0nLCBtZXNzYWdlLnRleHQpO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoJyR7dGl0bGV9JywgbWVzc2FnZS50aXRsZSk7XG5cbiAgICBtZXNzYWdlLmh0bWwgPSB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS50ZXh0ID0gaHRtbDtcbiAgICBtZXNzYWdlLnRpdGxlID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './monitoring-mock';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL19fbW9ja3NfXy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb25pdG9yaW5nLW1vY2snO1xuIl19
@@ -1,7 +0,0 @@
1
- export const MOCK_SENTRY_OPTIONS = {
2
- provider: 'sentry',
3
- dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0',
4
- identifyUser: true
5
- };
6
- export const MOCK_MONITORING_OPTIONS = MOCK_SENTRY_OPTIONS;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy1tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9fX21vY2tzX18vbW9uaXRvcmluZy1tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUE0QjtJQUMxRCxRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsZ0RBQWdEO0lBQ3JELFlBQVksRUFBRSxJQUFJO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FDbEMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4uL3NlbnRyeSc7XG5pbXBvcnQgeyBBbnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmV4cG9ydCBjb25zdCBNT0NLX1NFTlRSWV9PUFRJT05TOiBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyA9IHtcbiAgcHJvdmlkZXI6ICdzZW50cnknLFxuICBkc246ICdodHRwczovL2V4YW1wbGVQdWJsaWNLZXlAbzAuaW5nZXN0LnNlbnRyeS5pby8wJyxcbiAgaWRlbnRpZnlVc2VyOiB0cnVlXG59O1xuXG5leHBvcnQgY29uc3QgTU9DS19NT05JVE9SSU5HX09QVElPTlM6IEFueU1vbml0b3JpbmdPcHRpb25zID1cbiAgTU9DS19TRU5UUllfT1BUSU9OUztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb3JlLW1vbml0b3JpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL2lnbzItY29yZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { provideSentryMonitoring } from './sentry/sentry.provider';
3
- export const MONITORING_OPTIONS = new InjectionToken('monitoring.options');
4
- export function provideMonitoring(options) {
5
- if (!options) {
6
- return [];
7
- }
8
- const providers = [
9
- { provide: MONITORING_OPTIONS, useValue: options }
10
- ];
11
- switch (options.provider) {
12
- case 'sentry':
13
- providers.push(...provideSentryMonitoring(options));
14
- break;
15
- default:
16
- break;
17
- }
18
- return providers;
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNsRCxvQkFBb0IsQ0FDckIsQ0FBQztBQUVGLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsT0FBb0M7SUFFcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQWU7UUFDNUIsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtLQUNuRCxDQUFDO0lBRUYsUUFBUSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsS0FBSyxRQUFRO1lBQ1gsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTTtRQUNSO1lBQ0UsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHByb3ZpZGVTZW50cnlNb25pdG9yaW5nIH0gZnJvbSAnLi9zZW50cnkvc2VudHJ5LnByb3ZpZGVyJztcbmltcG9ydCB7IEFueU1vbml0b3JpbmdPcHRpb25zLCBNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4vc2hhcmVkJztcblxuZXhwb3J0IGNvbnN0IE1PTklUT1JJTkdfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNb25pdG9yaW5nT3B0aW9ucyB8IG51bGw+KFxuICAnbW9uaXRvcmluZy5vcHRpb25zJ1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVNb25pdG9yaW5nKFxuICBvcHRpb25zOiBBbnlNb25pdG9yaW5nT3B0aW9ucyB8IG51bGxcbik6IFByb3ZpZGVyW10ge1xuICBpZiAoIW9wdGlvbnMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAgeyBwcm92aWRlOiBNT05JVE9SSU5HX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH1cbiAgXTtcblxuICBzd2l0Y2ggKG9wdGlvbnMucHJvdmlkZXIpIHtcbiAgICBjYXNlICdzZW50cnknOlxuICAgICAgcHJvdmlkZXJzLnB1c2goLi4ucHJvdmlkZVNlbnRyeU1vbml0b3Jpbmcob3B0aW9ucykpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './sentry';
2
- export * from './shared';
3
- export * from './monitoring.provider';
4
- export * from './__mocks__';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbW9uaXRvcmluZy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZW50cnknO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb25pdG9yaW5nLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vX19tb2Nrc19fJztcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './sentry.interface';
2
- export * from './sentry.provider';
3
- export * from './sentry.utils';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL3NlbnRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VudHJ5LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbnRyeS5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3NlbnRyeS51dGlscyc7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbW9uaXRvcmluZy9zcmMvc2VudHJ5L3NlbnRyeS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyb3dzZXJPcHRpb25zLCBFcnJvckhhbmRsZXJPcHRpb25zIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuaW1wb3J0IHsgTW9uaXRvcmluZ09wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbW9uaXRvcmluZy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyA9IEJyb3dzZXJPcHRpb25zICZcbiAgTW9uaXRvcmluZ09wdGlvbnMgJiB7XG4gICAgcHJvdmlkZXI6ICdzZW50cnknO1xuICAgIGVycm9ySGFuZGxlck9wdGlvbnM/OiBFcnJvckhhbmRsZXJPcHRpb25zO1xuICB9O1xuIl19
@@ -1,23 +0,0 @@
1
- import { browserTracingIntegration, createErrorHandler, getClient, init, replayIntegration } from '@sentry/angular';
2
- import { isReplayEnabled, isTracingEnabled } from './sentry.utils';
3
- export const createSentryErrorHandler = (options) => {
4
- return createErrorHandler({
5
- logErrors: options.logErrors,
6
- ...(options.errorHandlerOptions ?? {})
7
- });
8
- };
9
- export const initSentry = (options, force) => {
10
- const client = getClient();
11
- if (!force && client) {
12
- return;
13
- }
14
- const baseConfig = {
15
- ...options,
16
- integrations: [
17
- isTracingEnabled(options) && browserTracingIntegration(),
18
- isReplayEnabled(options) && replayIntegration()
19
- ].filter(Boolean)
20
- };
21
- init(baseConfig);
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLE9BQWdDLEVBQ1osRUFBRTtJQUN0QixPQUFPLGtCQUFrQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztLQUN2QyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsT0FBZ0MsRUFDaEMsS0FBZSxFQUNULEVBQUU7SUFDUixNQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUMzQixJQUFJLENBQUMsS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQW1CO1FBQ2pDLEdBQUcsT0FBTztRQUNWLFlBQVksRUFBRTtZQUNaLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLHlCQUF5QixFQUFFO1lBQ3hELGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxpQkFBaUIsRUFBRTtTQUNoRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDbEIsQ0FBQztJQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCcm93c2VyT3B0aW9ucyxcbiAgU2VudHJ5RXJyb3JIYW5kbGVyLFxuICBicm93c2VyVHJhY2luZ0ludGVncmF0aW9uLFxuICBjcmVhdGVFcnJvckhhbmRsZXIsXG4gIGdldENsaWVudCxcbiAgaW5pdCxcbiAgcmVwbGF5SW50ZWdyYXRpb25cbn0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuaW1wb3J0IHsgU2VudHJ5TW9uaXRvcmluZ09wdGlvbnMgfSBmcm9tICcuL3NlbnRyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNSZXBsYXlFbmFibGVkLCBpc1RyYWNpbmdFbmFibGVkIH0gZnJvbSAnLi9zZW50cnkudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU2VudHJ5RXJyb3JIYW5kbGVyID0gKFxuICBvcHRpb25zOiBTZW50cnlNb25pdG9yaW5nT3B0aW9uc1xuKTogU2VudHJ5RXJyb3JIYW5kbGVyID0+IHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9ySGFuZGxlcih7XG4gICAgbG9nRXJyb3JzOiBvcHRpb25zLmxvZ0Vycm9ycyxcbiAgICAuLi4ob3B0aW9ucy5lcnJvckhhbmRsZXJPcHRpb25zID8/IHt9KVxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbml0U2VudHJ5ID0gKFxuICBvcHRpb25zOiBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyxcbiAgZm9yY2U/OiBib29sZWFuXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgY2xpZW50ID0gZ2V0Q2xpZW50KCk7XG4gIGlmICghZm9yY2UgJiYgY2xpZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYmFzZUNvbmZpZzogQnJvd3Nlck9wdGlvbnMgPSB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBpbnRlZ3JhdGlvbnM6IFtcbiAgICAgIGlzVHJhY2luZ0VuYWJsZWQob3B0aW9ucykgJiYgYnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbigpLFxuICAgICAgaXNSZXBsYXlFbmFibGVkKG9wdGlvbnMpICYmIHJlcGxheUludGVncmF0aW9uKClcbiAgICBdLmZpbHRlcihCb29sZWFuKVxuICB9O1xuXG4gIGluaXQoYmFzZUNvbmZpZyk7XG59O1xuIl19
@@ -1,31 +0,0 @@
1
- import { APP_INITIALIZER, ErrorHandler } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { TraceService } from '@sentry/angular';
4
- import { createSentryErrorHandler, initSentry } from './sentry';
5
- import { isTracingEnabled } from './sentry.utils';
6
- export const provideSentryMonitoring = (options) => {
7
- const isEnabled = options.enabled !== undefined ? options.enabled : true;
8
- if (!isEnabled) {
9
- return [];
10
- }
11
- initSentry(options);
12
- const tracingEnabled = isTracingEnabled(options);
13
- return [
14
- {
15
- provide: ErrorHandler,
16
- useFactory: () => createSentryErrorHandler(options)
17
- },
18
- tracingEnabled && {
19
- provide: TraceService,
20
- deps: [Router]
21
- },
22
- // Force instantiate TraceService to avoid require it in any constructor.
23
- tracingEnabled && {
24
- provide: APP_INITIALIZER,
25
- useFactory: () => () => void 1,
26
- deps: [TraceService],
27
- multi: true
28
- }
29
- ].filter(Boolean);
30
- };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBRWYsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUNyQyxPQUFnQyxFQUNXLEVBQUU7SUFDN0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEIsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztTQUNwRDtRQUNELGNBQWMsSUFBSTtZQUNoQixPQUFPLEVBQUUsWUFBWTtZQUNyQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDZjtRQUNELHlFQUF5RTtRQUN6RSxjQUFjLElBQUk7WUFDaEIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM5QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDcEIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFQUF9JTklUSUFMSVpFUixcbiAgQ29uc3RydWN0b3JQcm92aWRlcixcbiAgRXJyb3JIYW5kbGVyLFxuICBGYWN0b3J5UHJvdmlkZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBUcmFjZVNlcnZpY2UgfSBmcm9tICdAc2VudHJ5L2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBjcmVhdGVTZW50cnlFcnJvckhhbmRsZXIsIGluaXRTZW50cnkgfSBmcm9tICcuL3NlbnRyeSc7XG5pbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4vc2VudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBpc1RyYWNpbmdFbmFibGVkIH0gZnJvbSAnLi9zZW50cnkudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVNlbnRyeU1vbml0b3JpbmcgPSAoXG4gIG9wdGlvbnM6IFNlbnRyeU1vbml0b3JpbmdPcHRpb25zXG4pOiAoRmFjdG9yeVByb3ZpZGVyIHwgQ29uc3RydWN0b3JQcm92aWRlcilbXSA9PiB7XG4gIGNvbnN0IGlzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlZCAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5lbmFibGVkIDogdHJ1ZTtcbiAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpbml0U2VudHJ5KG9wdGlvbnMpO1xuXG4gIGNvbnN0IHRyYWNpbmdFbmFibGVkID0gaXNUcmFjaW5nRW5hYmxlZChvcHRpb25zKTtcblxuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGNyZWF0ZVNlbnRyeUVycm9ySGFuZGxlcihvcHRpb25zKVxuICAgIH0sXG4gICAgdHJhY2luZ0VuYWJsZWQgJiYge1xuICAgICAgcHJvdmlkZTogVHJhY2VTZXJ2aWNlLFxuICAgICAgZGVwczogW1JvdXRlcl1cbiAgICB9LFxuICAgIC8vIEZvcmNlIGluc3RhbnRpYXRlIFRyYWNlU2VydmljZSB0byBhdm9pZCByZXF1aXJlIGl0IGluIGFueSBjb25zdHJ1Y3Rvci5cbiAgICB0cmFjaW5nRW5hYmxlZCAmJiB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiB2b2lkIDEsXG4gICAgICBkZXBzOiBbVHJhY2VTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLmZpbHRlcihCb29sZWFuKTtcbn07XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { setUser } from '@sentry/angular';
2
- export const isTracingEnabled = (options) => !!options.tracesSampleRate || !!options.tracesSampler;
3
- export const isReplayEnabled = (options) => !!options.replaysSessionSampleRate || !!options.replaysOnErrorSampleRate;
4
- export const identifySentryUser = (user) => {
5
- setUser(user
6
- ? {
7
- id: user.id,
8
- username: `${user.firstName} ${user.lastName}`,
9
- email: user.email
10
- }
11
- : null);
12
- };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkxQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdDLEVBQVcsRUFBRSxDQUM1RSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWdDLEVBQVcsRUFBRSxDQUMzRSxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFxQixFQUFRLEVBQUU7SUFDaEUsT0FBTyxDQUNMLElBQUk7UUFDRixDQUFDLENBQUM7WUFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCO1FBQ0gsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVVzZXIgfSBmcm9tICdAaWdvMi9jb3JlL3VzZXInO1xuXG5pbXBvcnQgeyBzZXRVc2VyIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuaW1wb3J0IHsgU2VudHJ5TW9uaXRvcmluZ09wdGlvbnMgfSBmcm9tICcuL3NlbnRyeS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgaXNUcmFjaW5nRW5hYmxlZCA9IChvcHRpb25zOiBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyk6IGJvb2xlYW4gPT5cbiAgISFvcHRpb25zLnRyYWNlc1NhbXBsZVJhdGUgfHwgISFvcHRpb25zLnRyYWNlc1NhbXBsZXI7XG5cbmV4cG9ydCBjb25zdCBpc1JlcGxheUVuYWJsZWQgPSAob3B0aW9uczogU2VudHJ5TW9uaXRvcmluZ09wdGlvbnMpOiBib29sZWFuID0+XG4gICEhb3B0aW9ucy5yZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGUgfHwgISFvcHRpb25zLnJlcGxheXNPbkVycm9yU2FtcGxlUmF0ZTtcblxuZXhwb3J0IGNvbnN0IGlkZW50aWZ5U2VudHJ5VXNlciA9ICh1c2VyOiBCYXNlVXNlciB8IG51bGwpOiB2b2lkID0+IHtcbiAgc2V0VXNlcihcbiAgICB1c2VyXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogdXNlci5pZCxcbiAgICAgICAgICB1c2VybmFtZTogYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gLFxuICAgICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsXG4gICAgICAgIH1cbiAgICAgIDogbnVsbFxuICApO1xufTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LW1vbml0b3JpbmcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zaGFyZWQvYW55LW1vbml0b3JpbmcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4uL3NlbnRyeS9zZW50cnkuaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgQW55TW9uaXRvcmluZ09wdGlvbnMgPSBTZW50cnlNb25pdG9yaW5nT3B0aW9ucztcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './any-monitoring.interface';
2
- export * from './monitoring.interface';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FueS1tb25pdG9yaW5nLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL21vbml0b3JpbmcuaW50ZXJmYWNlJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL3NoYXJlZC9tb25pdG9yaW5nLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTW9uaXRvcmluZ1Byb3ZpZGVyID0gJ3NlbnRyeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZ09wdGlvbnMge1xuICBwcm92aWRlcjogTW9uaXRvcmluZ1Byb3ZpZGVyO1xuICAvKiogQWRkIHRoZSB1c2VyIGluZm8oaWQsIG5hbWUsIGVtYWlsKSB0byB0aGUgZXZlbnQgcmVxdWVzdCAqL1xuICBpZGVudGlmeVVzZXI/OiBib29sZWFuO1xuICBsb2dFcnJvcnM/OiBib29sZWFuO1xufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb3JlLW5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL25ldHdvcmsvc3JjL2lnbzItY29yZS1uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9uZXR3b3JrL3NyYy9uZXR3b3JrLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblN0YXRlIHtcbiAgY29ubmVjdGlvbjogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,68 +0,0 @@
1
- import { EventEmitter, Injectable, Injector } from '@angular/core';
2
- import { MessageService } from '@igo2/core/message';
3
- import { fromEvent } from 'rxjs';
4
- import { debounceTime, startWith } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@igo2/core/message";
7
- export class NetworkService {
8
- messageService;
9
- injector;
10
- stateChangeEventEmitter = new EventEmitter();
11
- onlineSubscription;
12
- offlineSubscription;
13
- previousMessageId;
14
- state = {
15
- connection: window.navigator.onLine
16
- };
17
- constructor(messageService, injector) {
18
- this.messageService = messageService;
19
- this.injector = injector;
20
- this.checkNetworkState();
21
- }
22
- checkNetworkState() {
23
- this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {
24
- if (this.previousMessageId) {
25
- this.messageService.remove(this.previousMessageId);
26
- }
27
- const messageObj = this.messageService.info('igo.core.network.online.message', 'igo.core.network.online.title');
28
- this.previousMessageId = messageObj.toastId;
29
- this.state.connection = true;
30
- this.emitEvent();
31
- });
32
- this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {
33
- if (this.previousMessageId) {
34
- this.messageService.remove(this.previousMessageId);
35
- }
36
- const messageObj = this.messageService.info('igo.core.network.offline.message', 'igo.core.network.offline.title');
37
- this.previousMessageId = messageObj.toastId;
38
- this.state.connection = false;
39
- this.emitEvent();
40
- });
41
- }
42
- emitEvent() {
43
- this.stateChangeEventEmitter.emit(this.state);
44
- }
45
- ngOnDestroy() {
46
- try {
47
- this.offlineSubscription.unsubscribe();
48
- this.onlineSubscription.unsubscribe();
49
- }
50
- catch {
51
- // empty
52
- }
53
- }
54
- currentState(reportState = true) {
55
- return reportState
56
- ? this.stateChangeEventEmitter.pipe(debounceTime(300), startWith(this.state))
57
- : this.stateChangeEventEmitter.pipe(debounceTime(300));
58
- }
59
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkService, deps: [{ token: i1.MessageService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
60
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkService, providedIn: 'root' });
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkService, decorators: [{
63
- type: Injectable,
64
- args: [{
65
- providedIn: 'root'
66
- }]
67
- }], ctorParameters: () => [{ type: i1.MessageService }, { type: i0.Injector }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9uZXR3b3JrL3NyYy9uZXR3b3JrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPekQsTUFBTSxPQUFPLGNBQWM7SUFXZjtJQUNBO0lBWEYsdUJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFDOUQsa0JBQWtCLENBQWU7SUFDakMsbUJBQW1CLENBQWU7SUFDbEMsaUJBQWlCLENBQUM7SUFFbEIsS0FBSyxHQUFvQjtRQUMvQixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO0tBQ3BDLENBQUM7SUFFRixZQUNVLGNBQThCLEVBQzlCLFFBQWtCO1FBRGxCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3pDLGlDQUFpQyxFQUNqQywrQkFBK0IsQ0FDaEMsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDekMsa0NBQWtDLEVBQ2xDLGdDQUFnQyxDQUNqQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxRQUFRO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUk7UUFDN0IsT0FBTyxXQUFXO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUMvQixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQ3RCO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzt3R0FqRVUsY0FBYzs0R0FBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJy4vbmV0d29yay5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmV0d29ya1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRlQ2hhbmdlRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uU3RhdGU+KCk7XG4gIHByaXZhdGUgb25saW5lU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2ZmbGluZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHByZXZpb3VzTWVzc2FnZUlkO1xuXG4gIHByaXZhdGUgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSA9IHtcbiAgICBjb25uZWN0aW9uOiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICAgIHRoaXMuY2hlY2tOZXR3b3JrU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tOZXR3b3JrU3RhdGUoKSB7XG4gICAgdGhpcy5vbmxpbmVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAnb25saW5lJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzTWVzc2FnZUlkKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlKHRoaXMucHJldmlvdXNNZXNzYWdlSWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgbWVzc2FnZU9iaiA9IHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyhcbiAgICAgICAgJ2lnby5jb3JlLm5ldHdvcmsub25saW5lLm1lc3NhZ2UnLFxuICAgICAgICAnaWdvLmNvcmUubmV0d29yay5vbmxpbmUudGl0bGUnXG4gICAgICApO1xuICAgICAgdGhpcy5wcmV2aW91c01lc3NhZ2VJZCA9IG1lc3NhZ2VPYmoudG9hc3RJZDtcbiAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRFdmVudCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5vZmZsaW5lU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHdpbmRvdywgJ29mZmxpbmUnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJldmlvdXNNZXNzYWdlSWQpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5yZW1vdmUodGhpcy5wcmV2aW91c01lc3NhZ2VJZCk7XG4gICAgICB9XG4gICAgICBjb25zdCBtZXNzYWdlT2JqID0gdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKFxuICAgICAgICAnaWdvLmNvcmUubmV0d29yay5vZmZsaW5lLm1lc3NhZ2UnLFxuICAgICAgICAnaWdvLmNvcmUubmV0d29yay5vZmZsaW5lLnRpdGxlJ1xuICAgICAgKTtcbiAgICAgIHRoaXMucHJldmlvdXNNZXNzYWdlSWQgPSBtZXNzYWdlT2JqLnRvYXN0SWQ7XG4gICAgICB0aGlzLnN0YXRlLmNvbm5lY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuZW1pdEV2ZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFdmVudCgpIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlRXZlbnRFbWl0dGVyLmVtaXQodGhpcy5zdGF0ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5vZmZsaW5lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm9ubGluZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gZW1wdHlcbiAgICB9XG4gIH1cblxuICBjdXJyZW50U3RhdGUocmVwb3J0U3RhdGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uU3RhdGU+IHtcbiAgICByZXR1cm4gcmVwb3J0U3RhdGVcbiAgICAgID8gdGhpcy5zdGF0ZUNoYW5nZUV2ZW50RW1pdHRlci5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnN0YXRlKVxuICAgICAgICApXG4gICAgICA6IHRoaXMuc3RhdGVDaGFuZ2VFdmVudEVtaXR0ZXIucGlwZShkZWJvdW5jZVRpbWUoMzAwKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './network.service';
2
- export * from './network.interfaces';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbmV0d29yay9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25ldHdvcmsuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsuaW50ZXJmYWNlcyc7XG4iXX0=
@@ -1,7 +0,0 @@
1
- /*
2
- * Public API Surface of core
3
- */
4
- export * from './lib/core.module';
5
- /** @deprecated */
6
- // export * from '@igo2/core/language';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGtCQUFrQjtBQUNsQix1Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlLm1vZHVsZSc7XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuLy8gZXhwb3J0ICogZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb3JlLXJlZ2V4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9yZWdleC9zcmMvaWdvMi1jb3JlLXJlZ2V4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './regex.service';
2
- export * from './regex.interface';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcmVnZXgvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZWdleC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnZXguaW50ZXJmYWNlJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9yZWdleC9zcmMvcmVnZXguaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWdleE9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuIl19
@@ -1,30 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ConfigService } from '@igo2/core/config';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@igo2/core/config";
5
- export class RegexService {
6
- config;
7
- options;
8
- constructor(config) {
9
- this.config = config;
10
- this.options = this.config.getConfig('regex');
11
- }
12
- getAll() {
13
- return this.options;
14
- }
15
- get(key) {
16
- if (this.options) {
17
- return this.options[key];
18
- }
19
- return;
20
- }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegexService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
22
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegexService, providedIn: 'root' });
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegexService, decorators: [{
25
- type: Injectable,
26
- args: [{
27
- providedIn: 'root'
28
- }]
29
- }], ctorParameters: () => [{ type: i1.ConfigService }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcmVnZXgvc3JjL3JlZ2V4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQU9sRCxNQUFNLE9BQU8sWUFBWTtJQUdIO0lBRlYsT0FBTyxDQUFlO0lBRWhDLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQUc7UUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO3dHQWhCVSxZQUFZOzRHQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcblxuaW1wb3J0IHsgUmVnZXhPcHRpb25zIH0gZnJvbSAnLi9yZWdleC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZWdleFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgb3B0aW9uczogUmVnZXhPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdyZWdleCcpO1xuICB9XG5cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1trZXldO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbn1cbiJdfQ==