@veloceapps/api 7.0.0-9 → 7.0.1-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2015/lib/api.module.js → esm2020/lib/api.module.mjs} +6 -6
- package/esm2020/lib/services/account-api.service.mjs +80 -0
- package/esm2020/lib/services/catalog-admin-api.service.mjs +165 -0
- package/{esm2015/lib/services/catalog-api.service.js → esm2020/lib/services/catalog-api.service.mjs} +4 -4
- package/esm2020/lib/services/configuration-api.service.mjs +78 -0
- package/esm2020/lib/services/configuration-settings-api.service.mjs +96 -0
- package/{esm2015/lib/services/context-api.service.js → esm2020/lib/services/context-api.service.mjs} +4 -4
- package/{esm2015/lib/services/delta-api.service.js → esm2020/lib/services/delta-api.service.mjs} +4 -4
- package/{esm2015/lib/services/document-attachment-api.service.js → esm2020/lib/services/document-attachment-api.service.mjs} +4 -4
- package/esm2020/lib/services/document-templates-api.service.mjs +298 -0
- package/{esm2015/lib/services/endpoints-api.service.js → esm2020/lib/services/endpoints-api.service.mjs} +4 -4
- package/esm2020/lib/services/flows-api.service.mjs +24 -0
- package/esm2020/lib/services/guided-sellings-admin-api.service.mjs +65 -0
- package/esm2020/lib/services/guided-sellings-api.service.mjs +27 -0
- package/{esm2015/lib/services/offers-api.service.js → esm2020/lib/services/offers-api.service.mjs} +4 -4
- package/esm2020/lib/services/org-info-api.service.mjs +19 -0
- package/{esm2015/lib/services/picklists-api.service.js → esm2020/lib/services/picklists-api.service.mjs} +8 -5
- package/{esm2015/lib/services/price-api.service.js → esm2020/lib/services/price-api.service.mjs} +4 -4
- package/{esm2015/lib/services/procedures-api.service.js → esm2020/lib/services/procedures-api.service.mjs} +4 -4
- package/{esm2015/lib/services/product-api.service.js → esm2020/lib/services/product-api.service.mjs} +4 -4
- package/esm2020/lib/services/product-model-api.service.mjs +232 -0
- package/esm2020/lib/services/quote-api.service.mjs +58 -0
- package/esm2020/lib/services/ramp-api.service.mjs +31 -0
- package/{esm2015/lib/services/rule-groups-api.service.js → esm2020/lib/services/rule-groups-api.service.mjs} +4 -4
- package/{esm2015/lib/services/rules-api.service.js → esm2020/lib/services/rules-api.service.mjs} +4 -4
- package/esm2020/lib/services/salesforce-api.service.mjs +61 -0
- package/{esm2015/lib/services/scripts-api.service.js → esm2020/lib/services/scripts-api.service.mjs} +4 -4
- package/esm2020/lib/services/shopping-cart-settings-api.service.mjs +28 -0
- package/esm2020/lib/services/ui-templates-api.service.mjs +281 -0
- package/esm2020/lib/types/dto/configuration-settings-dto.types.mjs +22 -0
- package/fesm2015/{veloceapps-api.js → veloceapps-api.mjs} +100 -101
- package/fesm2015/veloceapps-api.mjs.map +1 -0
- package/fesm2020/veloceapps-api.mjs +2468 -0
- package/fesm2020/veloceapps-api.mjs.map +1 -0
- package/lib/services/catalog-admin-api.service.d.ts +2 -2
- package/lib/services/guided-sellings-admin-api.service.d.ts +2 -2
- package/lib/services/quote-api.service.d.ts +1 -1
- package/lib/services/ui-templates-api.service.d.ts +3 -3
- package/lib/types/dto/offers-dto.types.d.ts +2 -2
- package/lib/types/search-request.types.d.ts +1 -1
- package/package.json +26 -24
- package/bundles/veloceapps-api.umd.js +0 -2880
- package/bundles/veloceapps-api.umd.js.map +0 -1
- package/esm2015/lib/services/account-api.service.js +0 -50
- package/esm2015/lib/services/catalog-admin-api.service.js +0 -165
- package/esm2015/lib/services/configuration-api.service.js +0 -72
- package/esm2015/lib/services/configuration-settings-api.service.js +0 -61
- package/esm2015/lib/services/document-templates-api.service.js +0 -284
- package/esm2015/lib/services/flows-api.service.js +0 -24
- package/esm2015/lib/services/guided-sellings-admin-api.service.js +0 -65
- package/esm2015/lib/services/guided-sellings-api.service.js +0 -27
- package/esm2015/lib/services/org-info-api.service.js +0 -20
- package/esm2015/lib/services/product-model-api.service.js +0 -232
- package/esm2015/lib/services/quote-api.service.js +0 -48
- package/esm2015/lib/services/ramp-api.service.js +0 -21
- package/esm2015/lib/services/salesforce-api.service.js +0 -43
- package/esm2015/lib/services/shopping-cart-settings-api.service.js +0 -28
- package/esm2015/lib/services/ui-templates-api.service.js +0 -282
- package/esm2015/lib/types/dto/configuration-settings-dto.types.js +0 -22
- package/fesm2015/veloceapps-api.js.map +0 -1
- package/veloceapps-api.d.ts +0 -5
- /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- /package/{esm2015/lib/types/clone-request.types.js → esm2020/lib/types/clone-request.types.mjs} +0 -0
- /package/{esm2015/lib/types/delta-request.types.js → esm2020/lib/types/delta-request.types.mjs} +0 -0
- /package/{esm2015/lib/types/dto/offers-dto.types.js → esm2020/lib/types/dto/offers-dto.types.mjs} +0 -0
- /package/{esm2015/lib/types/dto/ui-template-dto.types.js → esm2020/lib/types/dto/ui-template-dto.types.mjs} +0 -0
- /package/{esm2015/lib/types/index.js → esm2020/lib/types/index.mjs} +0 -0
- /package/{esm2015/lib/types/org-info.types.js → esm2020/lib/types/org-info.types.mjs} +0 -0
- /package/{esm2015/lib/types/price.types.js → esm2020/lib/types/price.types.mjs} +0 -0
- /package/{esm2015/lib/types/ramp-request.types.js → esm2020/lib/types/ramp-request.types.mjs} +0 -0
- /package/{esm2015/lib/types/search-request.types.js → esm2020/lib/types/search-request.types.mjs} +0 -0
- /package/{esm2015/lib/utils/ui-template.utils.js → esm2020/lib/utils/ui-template.utils.mjs} +0 -0
- /package/{esm2015/veloceapps-api.js → esm2020/veloceapps-api.mjs} +0 -0
@@ -1,282 +0,0 @@
|
|
1
|
-
import { __rest } from "tslib";
|
2
|
-
import { HttpParams } from '@angular/common/http';
|
3
|
-
import { Injectable } from '@angular/core';
|
4
|
-
import { catchError, forkJoin, map, noop, of, switchMap } from 'rxjs';
|
5
|
-
import { fromUIComponentStoryDTO } from '../utils/ui-template.utils';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "@veloceapps/core";
|
8
|
-
export class UITemplatesApiService {
|
9
|
-
constructor(baseHttpService) {
|
10
|
-
this.baseHttpService = baseHttpService;
|
11
|
-
this.serviceUrl = '/uitemplates';
|
12
|
-
this.fetchTemplates$ = (name) => {
|
13
|
-
let params = new HttpParams();
|
14
|
-
if (name) {
|
15
|
-
params = params.append('name', name);
|
16
|
-
}
|
17
|
-
return this.baseHttpService.api({ url: `${this.serviceUrl}`, params });
|
18
|
-
};
|
19
|
-
this.createTemplate$ = (template) => {
|
20
|
-
return this.baseHttpService.api({
|
21
|
-
method: 'post',
|
22
|
-
url: `${this.serviceUrl}`,
|
23
|
-
body: template,
|
24
|
-
});
|
25
|
-
};
|
26
|
-
this.updateTemplate$ = (template) => {
|
27
|
-
return this.baseHttpService.api({
|
28
|
-
method: 'put',
|
29
|
-
url: `${this.serviceUrl}/${template.id}`,
|
30
|
-
body: template,
|
31
|
-
});
|
32
|
-
};
|
33
|
-
this.duplicateTemplate$ = (template, cloneRequest) => {
|
34
|
-
return this.baseHttpService
|
35
|
-
.api({
|
36
|
-
url: `${this.serviceUrl}/${template.id}/clone`,
|
37
|
-
method: 'post',
|
38
|
-
body: cloneRequest,
|
39
|
-
})
|
40
|
-
.pipe(map(response => response.clonedRecordId));
|
41
|
-
};
|
42
|
-
this.removeTemplate$ = (id) => {
|
43
|
-
return this.baseHttpService.api({
|
44
|
-
method: 'delete',
|
45
|
-
url: `${this.serviceUrl}/${id}`,
|
46
|
-
});
|
47
|
-
};
|
48
|
-
this.restoreTemplate$ = (id) => {
|
49
|
-
return this.baseHttpService.api({
|
50
|
-
method: 'patch',
|
51
|
-
url: `${this.serviceUrl}/${id}`,
|
52
|
-
});
|
53
|
-
};
|
54
|
-
this.searchTemplates$ = (data) => {
|
55
|
-
return this.baseHttpService.api({
|
56
|
-
method: 'post',
|
57
|
-
url: `${this.serviceUrl}/search`,
|
58
|
-
params: data.params,
|
59
|
-
body: data.expression,
|
60
|
-
});
|
61
|
-
};
|
62
|
-
this.fetchComponents$ = (templateId, name) => {
|
63
|
-
let params = new HttpParams();
|
64
|
-
if (name) {
|
65
|
-
params = params.append('name', name);
|
66
|
-
}
|
67
|
-
return this.baseHttpService.api({
|
68
|
-
url: `${this.serviceUrl}/${templateId}/components`,
|
69
|
-
params,
|
70
|
-
});
|
71
|
-
};
|
72
|
-
this.fetchComponent$ = (templateId, componentId) => {
|
73
|
-
return this.baseHttpService.api({
|
74
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}`,
|
75
|
-
});
|
76
|
-
};
|
77
|
-
this.createComponent$ = (component) => {
|
78
|
-
return this.baseHttpService.api({
|
79
|
-
method: 'post',
|
80
|
-
url: `${this.serviceUrl}/${component.uiTemplateId}/components`,
|
81
|
-
body: component,
|
82
|
-
});
|
83
|
-
};
|
84
|
-
this.updateComponent$ = (component) => {
|
85
|
-
return this.baseHttpService.api({
|
86
|
-
method: 'put',
|
87
|
-
url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}`,
|
88
|
-
body: component,
|
89
|
-
});
|
90
|
-
};
|
91
|
-
this.duplicateComponent$ = (component, cloneRequest) => {
|
92
|
-
return this.baseHttpService
|
93
|
-
.api({
|
94
|
-
url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}/clone`,
|
95
|
-
method: 'post',
|
96
|
-
body: cloneRequest,
|
97
|
-
})
|
98
|
-
.pipe(map(response => response.clonedRecordId));
|
99
|
-
};
|
100
|
-
this.removeComponent$ = (templateId, componentId) => {
|
101
|
-
return this.baseHttpService.api({
|
102
|
-
method: 'delete',
|
103
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}`,
|
104
|
-
});
|
105
|
-
};
|
106
|
-
this.restoreComponent$ = (templateId, componentId) => {
|
107
|
-
return this.baseHttpService.api({
|
108
|
-
method: 'patch',
|
109
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}`,
|
110
|
-
});
|
111
|
-
};
|
112
|
-
this.searchComponents$ = (templateId, data) => {
|
113
|
-
return this.baseHttpService.api({
|
114
|
-
method: 'post',
|
115
|
-
url: `${this.serviceUrl}/${templateId}/components/search`,
|
116
|
-
params: data.params,
|
117
|
-
body: data.expression,
|
118
|
-
});
|
119
|
-
};
|
120
|
-
this.fetchStoryAttachment = (templateId, componentId, storyId, type) => {
|
121
|
-
return this.baseHttpService
|
122
|
-
.api({
|
123
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments/${type}/file`,
|
124
|
-
responseType: 'text',
|
125
|
-
errorHandler: noop,
|
126
|
-
})
|
127
|
-
.pipe(catchError(() => of('')));
|
128
|
-
};
|
129
|
-
this.convertToComponentStory$ = (templateId, componentId, storyDto) => {
|
130
|
-
return forkJoin([
|
131
|
-
this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'html'),
|
132
|
-
this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'js'),
|
133
|
-
this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'css'),
|
134
|
-
this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'json'),
|
135
|
-
]).pipe(map(([html, js, css, json]) => ({ html, js, css, json })), map(attachments => fromUIComponentStoryDTO(storyDto, attachments)));
|
136
|
-
};
|
137
|
-
this.fetchStories$ = (templateId, componentId, name) => {
|
138
|
-
let params = new HttpParams();
|
139
|
-
if (name) {
|
140
|
-
params = params.append('name', name);
|
141
|
-
}
|
142
|
-
return this.baseHttpService
|
143
|
-
.api({
|
144
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories`,
|
145
|
-
params,
|
146
|
-
})
|
147
|
-
.pipe(switchMap(dtos => {
|
148
|
-
if (!dtos.length) {
|
149
|
-
return of([]);
|
150
|
-
}
|
151
|
-
return forkJoin(dtos.map(dto => this.convertToComponentStory$(templateId, componentId, dto)));
|
152
|
-
}));
|
153
|
-
};
|
154
|
-
this.fetchStory$ = (templateId, componentId, storyId) => {
|
155
|
-
return this.baseHttpService
|
156
|
-
.api({
|
157
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,
|
158
|
-
})
|
159
|
-
.pipe(switchMap(dto => this.convertToComponentStory$(templateId, componentId, dto)));
|
160
|
-
};
|
161
|
-
this.createComponentStory$ = (templateId, story) => {
|
162
|
-
return this.baseHttpService.api({
|
163
|
-
method: 'post',
|
164
|
-
url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories`,
|
165
|
-
body: story,
|
166
|
-
});
|
167
|
-
};
|
168
|
-
this.updateComponentStory$ = (templateId, story) => {
|
169
|
-
const { script, template, styles, section } = story, rest = __rest(story, ["script", "template", "styles", "section"]);
|
170
|
-
return this.baseHttpService
|
171
|
-
.api({
|
172
|
-
method: 'put',
|
173
|
-
url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories/${story.id}`,
|
174
|
-
body: rest,
|
175
|
-
})
|
176
|
-
.pipe(map(dto => fromUIComponentStoryDTO(dto, { html: template, js: script, css: styles, json: section })));
|
177
|
-
};
|
178
|
-
this.duplicateComponentStory$ = (story, cloneRequest) => {
|
179
|
-
return this.baseHttpService
|
180
|
-
.api({
|
181
|
-
url: `${this.serviceUrl}/${story.template}/components/${story.uiComponentId}/stories/${story.id}/clone`,
|
182
|
-
method: 'post',
|
183
|
-
body: cloneRequest,
|
184
|
-
})
|
185
|
-
.pipe(map(response => response.clonedRecordId));
|
186
|
-
};
|
187
|
-
this.deleteComponentStory$ = (templateId, componentId, storyId) => {
|
188
|
-
return this.baseHttpService.api({
|
189
|
-
method: 'delete',
|
190
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,
|
191
|
-
});
|
192
|
-
};
|
193
|
-
this.restoreComponentStory$ = (templateId, componentId, storyId) => {
|
194
|
-
return this.baseHttpService.api({
|
195
|
-
method: 'patch',
|
196
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,
|
197
|
-
});
|
198
|
-
};
|
199
|
-
this.uploadStoryAttachments$ = (templateId, componentId, storyId, attachments) => {
|
200
|
-
const formData = new FormData();
|
201
|
-
if (attachments.html != null) {
|
202
|
-
formData.append('html', new Blob([attachments.html]), 'story-template.html');
|
203
|
-
}
|
204
|
-
if (attachments.css != null) {
|
205
|
-
formData.append('css', new Blob([attachments.css]), 'story-styles.css');
|
206
|
-
}
|
207
|
-
if (attachments.js != null) {
|
208
|
-
formData.append('js', new Blob([attachments.js]), 'story-script.js');
|
209
|
-
}
|
210
|
-
if (attachments.json != null) {
|
211
|
-
formData.append('json', new Blob([attachments.json]), 'story-section.json');
|
212
|
-
}
|
213
|
-
return this.baseHttpService.upload({
|
214
|
-
method: 'post',
|
215
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments`,
|
216
|
-
body: formData,
|
217
|
-
});
|
218
|
-
};
|
219
|
-
this.fetchComponentAttachments$ = (templateId, component) => {
|
220
|
-
return forkJoin([
|
221
|
-
this.fetchComponentAttachmentFile$(templateId, component.id, 'html'),
|
222
|
-
this.fetchComponentAttachmentFile$(templateId, component.id, 'js'),
|
223
|
-
this.fetchComponentAttachmentFile$(templateId, component.id, 'css'),
|
224
|
-
this.fetchComponentAttachmentFile$(templateId, component.id, 'json'),
|
225
|
-
]).pipe(map(([html, js, css, json]) => ({ html, js, css, json })));
|
226
|
-
};
|
227
|
-
this.fetchComponentAttachmentFile$ = (templateId, componentId, attachmentType) => {
|
228
|
-
return this.baseHttpService
|
229
|
-
.api({
|
230
|
-
method: 'get',
|
231
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments/${attachmentType}/file`,
|
232
|
-
responseType: 'text',
|
233
|
-
errorHandler: noop,
|
234
|
-
})
|
235
|
-
.pipe(catchError(() => of('')));
|
236
|
-
};
|
237
|
-
this.uploadComponentAttachments$ = (templateId, componentId, attachments) => {
|
238
|
-
const formData = new FormData();
|
239
|
-
if (attachments.html != null) {
|
240
|
-
formData.append('html', new Blob([attachments.html]), 'template.html');
|
241
|
-
}
|
242
|
-
if (attachments.css != null) {
|
243
|
-
formData.append('css', new Blob([attachments.css]), 'styles.css');
|
244
|
-
}
|
245
|
-
if (attachments.js != null) {
|
246
|
-
formData.append('js', new Blob([attachments.js]), 'script.js');
|
247
|
-
}
|
248
|
-
if (attachments.json != null) {
|
249
|
-
formData.append('json', new Blob([attachments.json]), 'section.json');
|
250
|
-
}
|
251
|
-
return this.baseHttpService.upload({
|
252
|
-
method: 'post',
|
253
|
-
url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments`,
|
254
|
-
body: formData,
|
255
|
-
});
|
256
|
-
};
|
257
|
-
}
|
258
|
-
getTemplateThumbnailUrl(templateId) {
|
259
|
-
return `${this.serviceUrl}/${templateId}/thumbnail/file`;
|
260
|
-
}
|
261
|
-
attachTemplateThumbnail$(templateId, file) {
|
262
|
-
const data = new FormData();
|
263
|
-
data.append('thumb', file);
|
264
|
-
return this.baseHttpService.upload({
|
265
|
-
method: 'post',
|
266
|
-
url: `${this.serviceUrl}/${templateId}/thumbnail`,
|
267
|
-
body: data,
|
268
|
-
});
|
269
|
-
}
|
270
|
-
removeTemplateThumbnail$(templateId) {
|
271
|
-
return this.baseHttpService.api({
|
272
|
-
method: 'delete',
|
273
|
-
url: `${this.serviceUrl}/${templateId}/thumbnail`,
|
274
|
-
});
|
275
|
-
}
|
276
|
-
}
|
277
|
-
UITemplatesApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UITemplatesApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
278
|
-
UITemplatesApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UITemplatesApiService });
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UITemplatesApiService, decorators: [{
|
280
|
-
type: Injectable
|
281
|
-
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGVtcGxhdGVzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvc3JjL2xpYi9zZXJ2aWNlcy91aS10ZW1wbGF0ZXMtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBR3JFLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRm5DLGVBQVUsR0FBVyxjQUFjLENBQUM7UUFJOUMsb0JBQWUsR0FBRyxDQUFDLElBQWEsRUFBNEIsRUFBRTtZQUNuRSxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzlCLElBQUksSUFBSSxFQUFFO2dCQUNSLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN0QztZQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQWUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUM7UUFFSyxvQkFBZSxHQUFHLENBQUMsUUFBdUIsRUFBMEIsRUFBRTtZQUMzRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFhO2dCQUMxQyxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsR0FB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cG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlSHR0cFNlcnZpY2UsXG4gIENvbXBvbmVudEF0dGFjaG1lbnRzLFxuICBDb21wb25lbnRTdG9yeSxcbiAgQ29tcG9uZW50U3RvcnlBdHRhY2htZW50cyxcbiAgRXhwcmVzc2lvbixcbiAgTmV3Q29tcG9uZW50U3RvcnksXG4gIE5ld1RlbXBsYXRlQ29tcG9uZW50LFxuICBOZXdVSVRlbXBsYXRlLFxuICBUZW1wbGF0ZUF0dGFjaG1lbnRUeXBlLFxuICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgVUlUZW1wbGF0ZSxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZvcmtKb2luLCBtYXAsIG5vb3AsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENsb25lUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzL2Nsb25lLXJlcXVlc3QudHlwZXMnO1xuaW1wb3J0IHsgVUlDb21wb25lbnRTdG9yeURUTyB9IGZyb20gJy4uL3R5cGVzL2R0by91aS10ZW1wbGF0ZS1kdG8udHlwZXMnO1xuaW1wb3J0IHsgZnJvbVVJQ29tcG9uZW50U3RvcnlEVE8gfSBmcm9tICcuLi91dGlscy91aS10ZW1wbGF0ZS51dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVSVRlbXBsYXRlc0FwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VVcmw6IHN0cmluZyA9ICcvdWl0ZW1wbGF0ZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGZldGNoVGVtcGxhdGVzJCA9IChuYW1lPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlW10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbmFtZScsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8VUlUZW1wbGF0ZVtdPih7IHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsIHBhcmFtcyB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlVGVtcGxhdGUkID0gKHRlbXBsYXRlOiBOZXdVSVRlbXBsYXRlKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxVSVRlbXBsYXRlPih7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsXG4gICAgICBib2R5OiB0ZW1wbGF0ZSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgdXBkYXRlVGVtcGxhdGUkID0gKHRlbXBsYXRlOiBVSVRlbXBsYXRlKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxVSVRlbXBsYXRlPih7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGUuaWR9YCxcbiAgICAgIGJvZHk6IHRlbXBsYXRlLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVUZW1wbGF0ZSQgPSAodGVtcGxhdGU6IFVJVGVtcGxhdGUsIGNsb25lUmVxdWVzdDogQ2xvbmVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZS5pZH0vY2xvbmVgLFxuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgYm9keTogY2xvbmVSZXF1ZXN0LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5jbG9uZWRSZWNvcmRJZCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZW1vdmVUZW1wbGF0ZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHJlc3RvcmVUZW1wbGF0ZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgc2VhcmNoVGVtcGxhdGVzJCA9IChkYXRhOiB7XG4gICAgcGFyYW1zPzogRGljdGlvbmFyeTxzdHJpbmc+O1xuICAgIGV4cHJlc3Npb24/OiBFeHByZXNzaW9uO1xuICB9KTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlW10+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L3NlYXJjaGAsXG4gICAgICBwYXJhbXM6IGRhdGEucGFyYW1zLFxuICAgICAgYm9keTogZGF0YS5leHByZXNzaW9uLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBmZXRjaENvbXBvbmVudHMkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgbmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8VGVtcGxhdGVDb21wb25lbnRbXT4gPT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCduYW1lJywgbmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxUZW1wbGF0ZUNvbXBvbmVudFtdPih7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzYCxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgZmV0Y2hDb21wb25lbnQkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGVtcGxhdGVDb21wb25lbnQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFRlbXBsYXRlQ29tcG9uZW50Pih7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50SWR9YCxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlQ29tcG9uZW50JCA9IChjb21wb25lbnQ6IE5ld1RlbXBsYXRlQ29tcG9uZW50KTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8VGVtcGxhdGVDb21wb25lbnQ+KHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7Y29tcG9uZW50LnVpVGVtcGxhdGVJZH0vY29tcG9uZW50c2AsXG4gICAgICBib2R5OiBjb21wb25lbnQsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHVwZGF0ZUNvbXBvbmVudCQgPSAoY29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IE9ic2VydmFibGU8VGVtcGxhdGVDb21wb25lbnQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFRlbXBsYXRlQ29tcG9uZW50Pih7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7Y29tcG9uZW50LnVpVGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudC5pZH1gLFxuICAgICAgYm9keTogY29tcG9uZW50LFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVDb21wb25lbnQkID0gKGNvbXBvbmVudDogVGVtcGxhdGVDb21wb25lbnQsIGNsb25lUmVxdWVzdDogQ2xvbmVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtjb21wb25lbnQudWlUZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50LmlkfS9jbG9uZWAsXG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBib2R5OiBjbG9uZVJlcXVlc3QsXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmNsb25lZFJlY29yZElkKSk7XG4gIH07XG5cbiAgcHVibGljIHJlbW92ZUNvbXBvbmVudCQgPSAodGVtcGxhdGVJZDogc3RyaW5nLCBjb21wb25lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHJlc3RvcmVDb21wb25lbnQkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHNlYXJjaENvbXBvbmVudHMkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBkYXRhOiB7IHBhcmFtcz86IERpY3Rpb25hcnk8c3RyaW5nPjsgZXhwcmVzc2lvbj86IEV4cHJlc3Npb24gfSxcbiAgKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudFtdPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvc2VhcmNoYCxcbiAgICAgIHBhcmFtczogZGF0YS5wYXJhbXMsXG4gICAgICBib2R5OiBkYXRhLmV4cHJlc3Npb24sXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoU3RvcnlBdHRhY2htZW50ID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIHN0b3J5SWQ6IHN0cmluZyxcbiAgICB0eXBlOiBUZW1wbGF0ZUF0dGFjaG1lbnRUeXBlLFxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxzdHJpbmc+KHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnlJZH0vYXR0YWNobWVudHMvJHt0eXBlfS9maWxlYCxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGVycm9ySGFuZGxlcjogbm9vcCxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKCcnKSkpO1xuICB9O1xuXG4gIHByaXZhdGUgY29udmVydFRvQ29tcG9uZW50U3RvcnkkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIHN0b3J5RHRvOiBVSUNvbXBvbmVudFN0b3J5RFRPLFxuICApOiBPYnNlcnZhYmxlPENvbXBvbmVudFN0b3J5PiA9PiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKFtcbiAgICAgIHRoaXMuZmV0Y2hTdG9yeUF0dGFjaG1lbnQodGVtcGxhdGVJZCwgY29tcG9uZW50SWQsIHN0b3J5RHRvLmlkLCAnaHRtbCcpLFxuICAgICAgdGhpcy5mZXRjaFN0b3J5QXR0YWNobWVudCh0ZW1wbGF0ZUlkLCBjb21wb25lbnRJZCwgc3RvcnlEdG8uaWQsICdqcycpLFxuICAgICAgdGhpcy5mZXRjaFN0b3J5QXR0YWNobWVudCh0ZW1wbGF0ZUlkLCBjb21wb25lbnRJZCwgc3RvcnlEdG8uaWQsICdjc3MnKSxcbiAgICAgIHRoaXMuZmV0Y2hTdG9yeUF0dGFjaG1lbnQodGVtcGxhdGVJZCwgY29tcG9uZW50SWQsIHN0b3J5RHRvLmlkLCAnanNvbicpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtodG1sLCBqcywgY3NzLCBqc29uXSkgPT4gKHsgaHRtbCwganMsIGNzcywganNvbiB9KSksXG4gICAgICBtYXAoYXR0YWNobWVudHMgPT4gZnJvbVVJQ29tcG9uZW50U3RvcnlEVE8oc3RvcnlEdG8sIGF0dGFjaG1lbnRzKSksXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgZmV0Y2hTdG9yaWVzJCA9ICh0ZW1wbGF0ZUlkOiBzdHJpbmcsIGNvbXBvbmVudElkOiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbXBvbmVudFN0b3J5W10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbmFtZScsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxVSUNvbXBvbmVudFN0b3J5RFRPW10+KHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzYCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZHRvcyA9PiB7XG4gICAgICAgICAgaWYgKCFkdG9zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKGR0b3MubWFwKGR0byA9PiB0aGlzLmNvbnZlcnRUb0NvbXBvbmVudFN0b3J5JCh0ZW1wbGF0ZUlkLCBjb21wb25lbnRJZCwgZHRvKSkpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoU3RvcnkkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgc3RvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21wb25lbnRTdG9yeT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxVSUNvbXBvbmVudFN0b3J5RFRPPih7XG4gICAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvJHtjb21wb25lbnRJZH0vc3Rvcmllcy8ke3N0b3J5SWR9YCxcbiAgICAgIH0pXG4gICAgICAucGlwZShzd2l0Y2hNYXAoZHRvID0+IHRoaXMuY29udmVydFRvQ29tcG9uZW50U3RvcnkkKHRlbXBsYXRlSWQsIGNvbXBvbmVudElkLCBkdG8pKSk7XG4gIH07XG5cbiAgcHVibGljIGNyZWF0ZUNvbXBvbmVudFN0b3J5JCA9ICh0ZW1wbGF0ZUlkOiBzdHJpbmcsIHN0b3J5OiBOZXdDb21wb25lbnRTdG9yeSk6IE9ic2VydmFibGU8Q29tcG9uZW50U3Rvcnk+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPENvbXBvbmVudFN0b3J5Pih7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvJHtzdG9yeS51aUNvbXBvbmVudElkfS9zdG9yaWVzYCxcbiAgICAgIGJvZHk6IHN0b3J5LFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyB1cGRhdGVDb21wb25lbnRTdG9yeSQgPSAodGVtcGxhdGVJZDogc3RyaW5nLCBzdG9yeTogQ29tcG9uZW50U3RvcnkpOiBPYnNlcnZhYmxlPENvbXBvbmVudFN0b3J5PiA9PiB7XG4gICAgY29uc3QgeyBzY3JpcHQsIHRlbXBsYXRlLCBzdHlsZXMsIHNlY3Rpb24sIC4uLnJlc3QgfSA9IHN0b3J5O1xuXG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpPFVJQ29tcG9uZW50U3RvcnlEVE8+KHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke3N0b3J5LnVpQ29tcG9uZW50SWR9L3N0b3JpZXMvJHtzdG9yeS5pZH1gLFxuICAgICAgICBib2R5OiByZXN0LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcChkdG8gPT4gZnJvbVVJQ29tcG9uZW50U3RvcnlEVE8oZHRvLCB7IGh0bWw6IHRlbXBsYXRlLCBqczogc2NyaXB0LCBjc3M6IHN0eWxlcywganNvbjogc2VjdGlvbiB9KSkpO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVDb21wb25lbnRTdG9yeSQgPSAoc3Rvcnk6IENvbXBvbmVudFN0b3J5LCBjbG9uZVJlcXVlc3Q6IENsb25lUmVxdWVzdCk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7c3RvcnkudGVtcGxhdGV9L2NvbXBvbmVudHMvJHtzdG9yeS51aUNvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnkuaWR9L2Nsb25lYCxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGJvZHk6IGNsb25lUmVxdWVzdCxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuY2xvbmVkUmVjb3JkSWQpKTtcbiAgfTtcblxuICBwdWJsaWMgZGVsZXRlQ29tcG9uZW50U3RvcnkkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgc3RvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnlJZH1gLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyByZXN0b3JlQ29tcG9uZW50U3RvcnkkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgc3RvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50SWR9L3N0b3JpZXMvJHtzdG9yeUlkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHVwbG9hZFN0b3J5QXR0YWNobWVudHMkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIHN0b3J5SWQ6IHN0cmluZyxcbiAgICBhdHRhY2htZW50czogQ29tcG9uZW50U3RvcnlBdHRhY2htZW50cyxcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAoYXR0YWNobWVudHMuaHRtbCAhPSBudWxsKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2h0bWwnLCBuZXcgQmxvYihbYXR0YWNobWVudHMuaHRtbF0pLCAnc3RvcnktdGVtcGxhdGUuaHRtbCcpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMuY3NzICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnY3NzJywgbmV3IEJsb2IoW2F0dGFjaG1lbnRzLmNzc10pLCAnc3Rvcnktc3R5bGVzLmNzcycpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMuanMgIT0gbnVsbCkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdqcycsIG5ldyBCbG9iKFthdHRhY2htZW50cy5qc10pLCAnc3Rvcnktc2NyaXB0LmpzJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2htZW50cy5qc29uICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnanNvbicsIG5ldyBCbG9iKFthdHRhY2htZW50cy5qc29uXSksICdzdG9yeS1zZWN0aW9uLmpzb24nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UudXBsb2FkKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnlJZH0vYXR0YWNobWVudHNgLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGdldFRlbXBsYXRlVGh1bWJuYWlsVXJsKHRlbXBsYXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vdGh1bWJuYWlsL2ZpbGVgO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaFRlbXBsYXRlVGh1bWJuYWlsJCh0ZW1wbGF0ZUlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZGF0YS5hcHBlbmQoJ3RodW1iJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UudXBsb2FkKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vdGh1bWJuYWlsYCxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVGVtcGxhdGVUaHVtYm5haWwkKHRlbXBsYXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L3RodW1ibmFpbGAsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hDb21wb25lbnRBdHRhY2htZW50cyQgPSAoXG4gICAgdGVtcGxhdGVJZDogc3RyaW5nLFxuICAgIGNvbXBvbmVudDogVGVtcGxhdGVDb21wb25lbnQsXG4gICk6IE9ic2VydmFibGU8Q29tcG9uZW50QXR0YWNobWVudHM+ID0+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oW1xuICAgICAgdGhpcy5mZXRjaENvbXBvbmVudEF0dGFjaG1lbnRGaWxlJCh0ZW1wbGF0ZUlkLCBjb21wb25lbnQuaWQsICdodG1sJyksXG4gICAgICB0aGlzLmZldGNoQ29tcG9uZW50QXR0YWNobWVudEZpbGUkKHRlbXBsYXRlSWQsIGNvbXBvbmVudC5pZCwgJ2pzJyksXG4gICAgICB0aGlzLmZldGNoQ29tcG9uZW50QXR0YWNobWVudEZpbGUkKHRlbXBsYXRlSWQsIGNvbXBvbmVudC5pZCwgJ2NzcycpLFxuICAgICAgdGhpcy5mZXRjaENvbXBvbmVudEF0dGFjaG1lbnRGaWxlJCh0ZW1wbGF0ZUlkLCBjb21wb25lbnQuaWQsICdqc29uJyksXG4gICAgXSkucGlwZShtYXAoKFtodG1sLCBqcywgY3NzLCBqc29uXSkgPT4gKHsgaHRtbCwganMsIGNzcywganNvbiB9KSkpO1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hDb21wb25lbnRBdHRhY2htZW50RmlsZSQgPSAoXG4gICAgdGVtcGxhdGVJZDogc3RyaW5nLFxuICAgIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudFR5cGU6IFRlbXBsYXRlQXR0YWNobWVudFR5cGUsXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9hdHRhY2htZW50cy8ke2F0dGFjaG1lbnRUeXBlfS9maWxlYCxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGVycm9ySGFuZGxlcjogbm9vcCxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKCcnKSkpO1xuICB9O1xuXG4gIHB1YmxpYyB1cGxvYWRDb21wb25lbnRBdHRhY2htZW50cyQgPSAoXG4gICAgdGVtcGxhdGVJZDogc3RyaW5nLFxuICAgIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM6IENvbXBvbmVudEF0dGFjaG1lbnRzLFxuICApOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGlmIChhdHRhY2htZW50cy5odG1sICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaHRtbCcsIG5ldyBCbG9iKFthdHRhY2htZW50cy5odG1sXSksICd0ZW1wbGF0ZS5odG1sJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2htZW50cy5jc3MgIT0gbnVsbCkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdjc3MnLCBuZXcgQmxvYihbYXR0YWNobWVudHMuY3NzXSksICdzdHlsZXMuY3NzJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2htZW50cy5qcyAhPSBudWxsKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2pzJywgbmV3IEJsb2IoW2F0dGFjaG1lbnRzLmpzXSksICdzY3JpcHQuanMnKTtcbiAgICB9XG4gICAgaWYgKGF0dGFjaG1lbnRzLmpzb24gIT0gbnVsbCkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdqc29uJywgbmV3IEJsb2IoW2F0dGFjaG1lbnRzLmpzb25dKSwgJ3NlY3Rpb24uanNvbicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50SWR9L2F0dGFjaG1lbnRzYCxcbiAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgIH0pO1xuICB9O1xufVxuIl19
|
@@ -1,22 +0,0 @@
|
|
1
|
-
export class ConfigurationSettingsDTO {
|
2
|
-
constructor(id, key, value) {
|
3
|
-
this.id = id;
|
4
|
-
this.key = key;
|
5
|
-
this.value = value;
|
6
|
-
}
|
7
|
-
static fromDTO(dto, key) {
|
8
|
-
return {
|
9
|
-
id: dto === null || dto === void 0 ? void 0 : dto.id,
|
10
|
-
key: (dto === null || dto === void 0 ? void 0 : dto.key) || key || '',
|
11
|
-
value: dto === null || dto === void 0 ? void 0 : dto.value,
|
12
|
-
};
|
13
|
-
}
|
14
|
-
static toDTO(data) {
|
15
|
-
return {
|
16
|
-
id: data.id,
|
17
|
-
key: data.key,
|
18
|
-
value: data.value,
|
19
|
-
};
|
20
|
-
}
|
21
|
-
}
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1zZXR0aW5ncy1kdG8udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3R5cGVzL2R0by9jb25maWd1cmF0aW9uLXNldHRpbmdzLWR0by50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBaUJuQyxZQUFtQixFQUFVLEVBQVMsR0FBVyxFQUFTLEtBQWE7UUFBcEQsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQztJQWhCcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUE2QixFQUFFLEdBQVk7UUFDL0QsT0FBTztZQUNMLEVBQUUsRUFBRSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsRUFBRTtZQUNYLEdBQUcsRUFBRSxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxHQUFHLEtBQUksR0FBRyxJQUFJLEVBQUU7WUFDMUIsS0FBSyxFQUFFLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxLQUFLO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUEyQjtRQUM3QyxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUM7SUFDSixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uU2V0dGluZ3MgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcblxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25TZXR0aW5nc0RUTyB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbURUTyhkdG86IENvbmZpZ3VyYXRpb25TZXR0aW5nc0RUTywga2V5Pzogc3RyaW5nKTogQ29uZmlndXJhdGlvblNldHRpbmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGR0bz8uaWQsXG4gICAgICBrZXk6IGR0bz8ua2V5IHx8IGtleSB8fCAnJyxcbiAgICAgIHZhbHVlOiBkdG8/LnZhbHVlLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvRFRPKGRhdGE6IENvbmZpZ3VyYXRpb25TZXR0aW5ncyk6IENvbmZpZ3VyYXRpb25TZXR0aW5nc0RUTyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBkYXRhLmlkLFxuICAgICAga2V5OiBkYXRhLmtleSxcbiAgICAgIHZhbHVlOiBkYXRhLnZhbHVlLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgdmFsdWU6IHN0cmluZykge31cbn1cbiJdfQ==
|