@veloceapps/api 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +7 -0
  2. package/bundles/veloce-api.umd.js +2117 -0
  3. package/bundles/veloce-api.umd.js.map +1 -0
  4. package/esm2015/index.js +14 -0
  5. package/esm2015/lib/api.module.js +59 -0
  6. package/esm2015/lib/services/configuration-api.service.js +90 -0
  7. package/esm2015/lib/services/configuration-settings-api.service.js +69 -0
  8. package/esm2015/lib/services/context-api.service.js +26 -0
  9. package/esm2015/lib/services/document-attachment-api.service.js +65 -0
  10. package/esm2015/lib/services/document-templates-api.service.js +278 -0
  11. package/esm2015/lib/services/price-api.service.js +86 -0
  12. package/esm2015/lib/services/product-model-api.service.js +232 -0
  13. package/esm2015/lib/services/quote-api.service.js +36 -0
  14. package/esm2015/lib/services/ramp-api.service.js +42 -0
  15. package/esm2015/lib/services/salesforce-api.service.js +51 -0
  16. package/esm2015/lib/services/scripts-api.service.js +75 -0
  17. package/esm2015/lib/services/ui-templates-api.service.js +262 -0
  18. package/esm2015/lib/types/attribute-dto.types.js +21 -0
  19. package/esm2015/lib/types/charge-group-item-dto.types.js +45 -0
  20. package/esm2015/lib/types/charge-item-dto.types.js +74 -0
  21. package/esm2015/lib/types/clone-request.types.js +2 -0
  22. package/esm2015/lib/types/configuration-settings-dto.types.js +22 -0
  23. package/esm2015/lib/types/domain-type-dto.types.js +27 -0
  24. package/esm2015/lib/types/line-item-dto.types.js +93 -0
  25. package/esm2015/lib/types/port-domain-dto.types.js +22 -0
  26. package/esm2015/lib/types/price-adjustment-dto.types.js +15 -0
  27. package/esm2015/lib/types/price-dto.types.js +25 -0
  28. package/esm2015/lib/types/recommended-price-dto.types.js +23 -0
  29. package/esm2015/lib/types/ui-template-dto.types.js +2 -0
  30. package/esm2015/lib/utils/ui-template.utils.js +17 -0
  31. package/esm2015/veloce-api.js +5 -0
  32. package/fesm2015/veloce-api.js +1686 -0
  33. package/fesm2015/veloce-api.js.map +1 -0
  34. package/index.d.ts +14 -0
  35. package/lib/api.module.d.ts +7 -0
  36. package/lib/services/configuration-api.service.d.ts +18 -0
  37. package/lib/services/configuration-settings-api.service.d.ts +17 -0
  38. package/lib/services/context-api.service.d.ts +11 -0
  39. package/lib/services/document-attachment-api.service.d.ts +15 -0
  40. package/lib/services/document-templates-api.service.d.ts +39 -0
  41. package/lib/services/price-api.service.d.ts +16 -0
  42. package/lib/services/product-model-api.service.d.ts +30 -0
  43. package/lib/services/quote-api.service.d.ts +14 -0
  44. package/lib/services/ramp-api.service.d.ts +12 -0
  45. package/lib/services/salesforce-api.service.d.ts +17 -0
  46. package/lib/services/scripts-api.service.d.ts +21 -0
  47. package/lib/services/ui-templates-api.service.d.ts +47 -0
  48. package/lib/types/attribute-dto.types.d.ts +11 -0
  49. package/lib/types/charge-group-item-dto.types.d.ts +24 -0
  50. package/lib/types/charge-item-dto.types.d.ts +39 -0
  51. package/lib/types/clone-request.types.d.ts +6 -0
  52. package/lib/types/configuration-settings-dto.types.d.ts +9 -0
  53. package/lib/types/domain-type-dto.types.d.ts +15 -0
  54. package/lib/types/line-item-dto.types.d.ts +50 -0
  55. package/lib/types/port-domain-dto.types.d.ts +13 -0
  56. package/lib/types/price-adjustment-dto.types.d.ts +8 -0
  57. package/lib/types/price-dto.types.d.ts +13 -0
  58. package/lib/types/recommended-price-dto.types.d.ts +12 -0
  59. package/lib/types/ui-template-dto.types.d.ts +10 -0
  60. package/lib/utils/ui-template.utils.d.ts +3 -0
  61. package/package.json +33 -0
  62. package/veloce-api.d.ts +5 -0
@@ -0,0 +1,232 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { EntityUtil, ModelTranslatorUtils, ModelUtils, ProductModelsContainer, } from '@veloce/core';
3
+ import { forkJoin } from 'rxjs';
4
+ import { catchError, map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@veloce/core";
7
+ export class ProductModelApiService {
8
+ constructor(httpService) {
9
+ this.httpService = httpService;
10
+ this.SERVICE_URL = '/models';
11
+ }
12
+ addModel(model) {
13
+ return this.httpService
14
+ .api({
15
+ method: 'post',
16
+ url: this.SERVICE_URL,
17
+ body: model,
18
+ errorHandler: this.httpService.handleValidationError,
19
+ })
20
+ .pipe(map(result => {
21
+ if (result.successful) {
22
+ return result;
23
+ }
24
+ else {
25
+ throw new Error(result.message);
26
+ }
27
+ }));
28
+ }
29
+ releaseModel(model) {
30
+ return this.httpService
31
+ .api({
32
+ method: 'put',
33
+ url: `${this.SERVICE_URL}/${model.id}/release`,
34
+ body: model,
35
+ errorHandler: this.httpService.handleValidationError,
36
+ })
37
+ .pipe(map(result => {
38
+ if (result.successful) {
39
+ return '';
40
+ }
41
+ else {
42
+ throw new Error(result.message);
43
+ }
44
+ }));
45
+ }
46
+ removeModel(modelId, successFn, failureFn) {
47
+ const observable = this.httpService
48
+ .api({
49
+ method: 'delete',
50
+ url: `${this.SERVICE_URL}/${modelId}`,
51
+ errorHandler: this.httpService.handleValidationError,
52
+ })
53
+ .pipe(map(result => {
54
+ if (result.successful) {
55
+ return '';
56
+ }
57
+ else {
58
+ throw new Error(result.message);
59
+ }
60
+ }));
61
+ observable.subscribe(() => {
62
+ successFn && successFn.apply();
63
+ }, () => {
64
+ failureFn && failureFn.apply();
65
+ });
66
+ }
67
+ getModelVersions(modelId, count = 100, skip = 0) {
68
+ return this.httpService.api({
69
+ method: 'post',
70
+ url: `${this.SERVICE_URL}/${modelId}/versions`,
71
+ body: {
72
+ skipCount: skip,
73
+ count: count,
74
+ },
75
+ });
76
+ }
77
+ getModel(id, version) {
78
+ let url = `${this.SERVICE_URL}/${id}`;
79
+ if (version) {
80
+ url += `/versions/${version}`;
81
+ }
82
+ return this.httpService.api({ url });
83
+ }
84
+ getModels(skipCount, searchText) {
85
+ return this.httpService.api({
86
+ method: 'post',
87
+ url: `${this.SERVICE_URL}/search`,
88
+ body: {
89
+ nameRegex: searchText,
90
+ skipCount: skipCount.toString(),
91
+ count: ProductModelApiService.MAX_RESULTS,
92
+ },
93
+ });
94
+ }
95
+ getLinkedModels(id, version) {
96
+ let url = `${this.SERVICE_URL}/${id}`;
97
+ if (version) {
98
+ url += `/versions/${version}`;
99
+ }
100
+ url += '/linked';
101
+ return this.httpService.api({ url }).pipe(map((linkedModels) => {
102
+ if (linkedModels) {
103
+ linkedModels.forEach(model => ModelTranslatorUtils.toLocalModel(model));
104
+ }
105
+ return linkedModels;
106
+ }));
107
+ }
108
+ load(id, version) {
109
+ return forkJoin([this.getModel(id, version), this.getLinkedModels(id, version)]).pipe(map(([model, linkedModels]) => {
110
+ const container = new ProductModelsContainer(model, linkedModels !== null && linkedModels !== void 0 ? linkedModels : []);
111
+ ModelUtils.override(container.main, container.linked);
112
+ ModelTranslatorUtils.toLocalModel(container.main, container.linked);
113
+ return container;
114
+ }));
115
+ }
116
+ getPML(modelId, version) {
117
+ let url = `${this.SERVICE_URL}/${modelId}/pml/${version}`;
118
+ if (version) {
119
+ url += `/versions/${version}`;
120
+ }
121
+ return this.httpService.api({
122
+ url,
123
+ responseType: 'text',
124
+ });
125
+ }
126
+ savePML(modelId, pml, comment) {
127
+ return this.httpService
128
+ .api({
129
+ method: 'put',
130
+ url: `${this.SERVICE_URL}/${modelId}/pml`,
131
+ body: {
132
+ id: modelId,
133
+ pml: pml,
134
+ comment: comment,
135
+ },
136
+ })
137
+ .pipe(map(result => {
138
+ if (result.successful) {
139
+ return '';
140
+ }
141
+ else {
142
+ throw new Error(result.message);
143
+ }
144
+ }), catchError(this.httpService.handleValidationError));
145
+ }
146
+ generateProducts(modelId) {
147
+ return this.httpService.api({
148
+ url: `${this.SERVICE_URL}/${modelId}/generate-products`,
149
+ });
150
+ }
151
+ saveModel(productModel, comment) {
152
+ const model = EntityUtil.clone(productModel);
153
+ model.comment = comment;
154
+ ModelTranslatorUtils.toServerModel(model);
155
+ return this.httpService
156
+ .api({
157
+ method: 'put',
158
+ url: `${this.SERVICE_URL}/${model.id}`,
159
+ body: model,
160
+ })
161
+ .pipe(map(result => {
162
+ if (result.successful) {
163
+ return '';
164
+ }
165
+ else {
166
+ throw new Error(result.message);
167
+ }
168
+ }), catchError(this.httpService.handleValidationError));
169
+ }
170
+ validateModel(productModel) {
171
+ return this.httpService
172
+ .api({
173
+ method: 'post',
174
+ url: `${this.SERVICE_URL}/validate`,
175
+ body: productModel,
176
+ errorHandler: this.httpService.handleValidationError,
177
+ })
178
+ .pipe(map(result => {
179
+ if (result.successful) {
180
+ return '';
181
+ }
182
+ else {
183
+ throw new Error(result.message);
184
+ }
185
+ }));
186
+ }
187
+ renameModel(productModel, name) {
188
+ const model = EntityUtil.clone(productModel);
189
+ model.name = name;
190
+ ModelTranslatorUtils.toServerModel(model);
191
+ return this.httpService
192
+ .api({
193
+ method: 'patch',
194
+ url: `${this.SERVICE_URL}/${model.id}`,
195
+ body: model,
196
+ })
197
+ .pipe(catchError(this.httpService.handleValidationError));
198
+ }
199
+ uploadPmlFile(file, modelId) {
200
+ const formData = new FormData();
201
+ formData.append('file', file, file.name);
202
+ return this.httpService.upload({
203
+ url: `${this.SERVICE_URL}/${modelId}/pml/upload`,
204
+ body: formData,
205
+ });
206
+ }
207
+ runPml(modelId, pml, rootType, configurationMode) {
208
+ return this.httpService.api({
209
+ method: 'post',
210
+ url: `${this.SERVICE_URL}/${modelId}/pml/run`,
211
+ body: {
212
+ pml,
213
+ rootType,
214
+ configurationMode,
215
+ },
216
+ responseType: 'text',
217
+ });
218
+ }
219
+ evictAllCache() {
220
+ return this.httpService.api({
221
+ method: 'get',
222
+ url: '/cache/evict/environment-variables',
223
+ });
224
+ }
225
+ }
226
+ ProductModelApiService.MAX_RESULTS = 200;
227
+ ProductModelApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductModelApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
228
+ ProductModelApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductModelApiService });
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ProductModelApiService, decorators: [{
230
+ type: Injectable
231
+ }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxVQUFVLEVBRVYsb0JBQW9CLEVBQ3BCLFVBQVUsRUFHVixzQkFBc0IsR0FFdkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHakQsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxTQUFTLENBQUM7SUFFVSxDQUFDO0lBRXBELFFBQVEsQ0FBQyxLQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLEdBQUcsQ0FBQztZQUNILE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3JCLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCO1NBQ3JELENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUNyQixPQUFPLE1BQU0sQ0FBQzthQUNmO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBMEI7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QkFDSixHQUFHO2dCQUNILFFBQVE7Z0JBQ1IsaUJBQWlCO2FBQ2xCO1lBQ0QsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG9DQUFvQztTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRRYSxrQ0FBVyxHQUFHLEdBQUcsQ0FBQztvSEFEckIsc0JBQXNCO3dIQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhc2VIdHRwU2VydmljZSxcbiAgRW50aXR5VXRpbCxcbiAgTW9kZWxSZWxlYXNlUmVxdWVzdCxcbiAgTW9kZWxUcmFuc2xhdG9yVXRpbHMsXG4gIE1vZGVsVXRpbHMsXG4gIFBtbENvbmZpZ3VyYXRpb25Nb2RlLFxuICBQcm9kdWN0TW9kZWwsXG4gIFByb2R1Y3RNb2RlbHNDb250YWluZXIsXG4gIFByb2R1Y3RNb2RlbFZlcnNpb24sXG59IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1vZGVsQXBpU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgTUFYX1JFU1VMVFMgPSAyMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvbW9kZWxzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgYWRkTW9kZWwobW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiB0aGlzLlNFUlZJQ0VfVVJMLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcmVsZWFzZU1vZGVsKG1vZGVsOiBNb2RlbFJlbGVhc2VSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH0vcmVsZWFzZWAsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgICBlcnJvckhhbmRsZXI6IHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHJlbW92ZU1vZGVsKG1vZGVsSWQ6IHN0cmluZywgc3VjY2Vzc0ZuPzogYW55LCBmYWlsdXJlRm4/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfWAsXG4gICAgICAgIGVycm9ySGFuZGxlcjogdGhpcy5odHRwU2VydmljZS5oYW5kbGVWYWxpZGF0aW9uRXJyb3IsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHN1Y2Nlc3NGbiAmJiBzdWNjZXNzRm4uYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGZhaWx1cmVGbiAmJiBmYWlsdXJlRm4uYXBwbHkoKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGdldE1vZGVsVmVyc2lvbnMobW9kZWxJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyID0gMTAwLCBza2lwOiBudW1iZXIgPSAwKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxWZXJzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vdmVyc2lvbnNgLFxuICAgICAgYm9keToge1xuICAgICAgICBza2lwQ291bnQ6IHNraXAsXG4gICAgICAgIGNvdW50OiBjb3VudCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRNb2RlbChpZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWw+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybCB9KTtcbiAgfVxuXG4gIGdldE1vZGVscyhza2lwQ291bnQ6IG51bWJlciwgc2VhcmNoVGV4dDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vc2VhcmNoYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgbmFtZVJlZ2V4OiBzZWFyY2hUZXh0LFxuICAgICAgICBza2lwQ291bnQ6IHNraXBDb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb3VudDogUHJvZHVjdE1vZGVsQXBpU2VydmljZS5NQVhfUkVTVUxUUyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRMaW5rZWRNb2RlbHMoaWQ6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsW10+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHVybCArPSAnL2xpbmtlZCc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmwgfSkucGlwZShcbiAgICAgIG1hcCgobGlua2VkTW9kZWxzOiBQcm9kdWN0TW9kZWxbXSkgPT4ge1xuICAgICAgICBpZiAobGlua2VkTW9kZWxzKSB7XG4gICAgICAgICAgbGlua2VkTW9kZWxzLmZvckVhY2gobW9kZWwgPT4gTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9Mb2NhbE1vZGVsKG1vZGVsKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmtlZE1vZGVscztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBsb2FkKGlkOiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3RNb2RlbHNDb250YWluZXI+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oW3RoaXMuZ2V0TW9kZWwoaWQsIHZlcnNpb24pLCB0aGlzLmdldExpbmtlZE1vZGVscyhpZCwgdmVyc2lvbildKS5waXBlKFxuICAgICAgbWFwKChbbW9kZWwsIGxpbmtlZE1vZGVsc10pID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gbmV3IFByb2R1Y3RNb2RlbHNDb250YWluZXIobW9kZWwsIGxpbmtlZE1vZGVscyA/PyBbXSk7XG5cbiAgICAgICAgTW9kZWxVdGlscy5vdmVycmlkZShjb250YWluZXIubWFpbiwgY29udGFpbmVyLmxpbmtlZCk7XG4gICAgICAgIE1vZGVsVHJhbnNsYXRvclV0aWxzLnRvTG9jYWxNb2RlbChjb250YWluZXIubWFpbiwgY29udGFpbmVyLmxpbmtlZCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRQTUwobW9kZWxJZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9wbWwvJHt2ZXJzaW9ufWA7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdXJsICs9IGAvdmVyc2lvbnMvJHt2ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybCxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgc2F2ZVBNTChtb2RlbElkOiBzdHJpbmcsIHBtbDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbGAsXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBpZDogbW9kZWxJZCxcbiAgICAgICAgICBwbWw6IHBtbCxcbiAgICAgICAgICBjb21tZW50OiBjb21tZW50LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yKSxcbiAgICAgICk7XG4gIH1cblxuICBnZW5lcmF0ZVByb2R1Y3RzKG1vZGVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9nZW5lcmF0ZS1wcm9kdWN0c2AsXG4gICAgfSk7XG4gIH1cblxuICBzYXZlTW9kZWwocHJvZHVjdE1vZGVsOiBQcm9kdWN0TW9kZWwsIGNvbW1lbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgbW9kZWwgPSBFbnRpdHlVdGlsLmNsb25lKHByb2R1Y3RNb2RlbCk7XG4gICAgbW9kZWwuY29tbWVudCA9IGNvbW1lbnQ7XG4gICAgTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9TZXJ2ZXJNb2RlbChtb2RlbCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH1gLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvciksXG4gICAgICApO1xuICB9XG5cbiAgdmFsaWRhdGVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS92YWxpZGF0ZWAsXG4gICAgICAgIGJvZHk6IHByb2R1Y3RNb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICByZW5hbWVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCwgbmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBtb2RlbCA9IEVudGl0eVV0aWwuY2xvbmUocHJvZHVjdE1vZGVsKTtcbiAgICBtb2RlbC5uYW1lID0gbmFtZTtcbiAgICBNb2RlbFRyYW5zbGF0b3JVdGlscy50b1NlcnZlck1vZGVsKG1vZGVsKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWwuaWR9YCxcbiAgICAgICAgYm9keTogbW9kZWwsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcikpO1xuICB9XG5cbiAgdXBsb2FkUG1sRmlsZShmaWxlOiBGaWxlLCBtb2RlbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbC91cGxvYWRgLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgfSk7XG4gIH1cblxuICBydW5QbWwobW9kZWxJZDogc3RyaW5nLCBwbWw6IHN0cmluZywgcm9vdFR5cGU6IHN0cmluZywgY29uZmlndXJhdGlvbk1vZGU6IFBtbENvbmZpZ3VyYXRpb25Nb2RlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vcG1sL3J1bmAsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHBtbCxcbiAgICAgICAgcm9vdFR5cGUsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25Nb2RlLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgZXZpY3RBbGxDYWNoZSgpOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiAnL2NhY2hlL2V2aWN0L2Vudmlyb25tZW50LXZhcmlhYmxlcycsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@veloce/core";
4
+ export class QuoteApiService {
5
+ constructor(httpService) {
6
+ this.httpService = httpService;
7
+ this.SERVICE_URL = '/quotes';
8
+ }
9
+ getQuote(quoteId, params) {
10
+ return this.httpService.api({
11
+ method: 'get',
12
+ url: `${this.SERVICE_URL}/${quoteId}`,
13
+ params,
14
+ });
15
+ }
16
+ upsertQuote(request) {
17
+ return this.httpService.api({
18
+ method: 'post',
19
+ url: `${this.SERVICE_URL}`,
20
+ body: request,
21
+ });
22
+ }
23
+ submitQuote(request) {
24
+ return this.httpService.api({
25
+ method: 'post',
26
+ url: `${this.SERVICE_URL}/submit`,
27
+ body: request,
28
+ });
29
+ }
30
+ }
31
+ QuoteApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
32
+ QuoteApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteApiService });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteApiService, decorators: [{
34
+ type: Injectable
35
+ }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL3F1b3RlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxTQUFTLENBQUM7SUFFVSxDQUFDO0lBRXBELFFBQVEsQ0FBQyxPQUFlLEVBQUUsTUFBMkI7UUFDbkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFO1lBQ3JDLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQW1CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzFCLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsU0FBUztZQUNqQyxJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7OzZHQTNCVSxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1b3RlQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL3F1b3Rlcyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIGdldFF1b3RlKHF1b3RlSWQ6IHN0cmluZywgcGFyYW1zPzogRGljdGlvbmFyeTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7cXVvdGVJZH1gLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgdXBzZXJ0UXVvdGUocmVxdWVzdDogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8UXVvdGVEcmFmdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH1gLFxuICAgICAgYm9keTogcmVxdWVzdCxcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdFF1b3RlKHJlcXVlc3Q6IFF1b3RlRHJhZnQpOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3N1Ym1pdGAsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@veloce/core";
4
+ export class RampApiService {
5
+ constructor(httpService) {
6
+ this.httpService = httpService;
7
+ this.SERVICE_URL = '/ramp';
8
+ }
9
+ next(request) {
10
+ return this.httpService.api({
11
+ method: 'post',
12
+ url: `${this.SERVICE_URL}/next`,
13
+ body: request,
14
+ });
15
+ }
16
+ renew(request) {
17
+ return this.httpService.api({
18
+ method: 'post',
19
+ url: `${this.SERVICE_URL}/renew`,
20
+ body: request,
21
+ });
22
+ // TODO: move out of API service
23
+ // .pipe(
24
+ // map(data => {
25
+ // if (data.context) {
26
+ // const context = this.contextService.resolveOrCreate();
27
+ // Object.keys(data.context.properties).forEach(function (key) {
28
+ // context.properties[key] = data.context.properties[key];
29
+ // });
30
+ // this.contextService.update(context);
31
+ // }
32
+ // return data;
33
+ // }),
34
+ // );
35
+ }
36
+ }
37
+ RampApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RampApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ RampApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RampApiService });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RampApiService, decorators: [{
40
+ type: Injectable
41
+ }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFtcC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcmFtcC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsT0FBTyxDQUFDO0lBRVksQ0FBQztJQUVwRCxJQUFJLENBQUMsT0FBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxPQUFPO1lBQy9CLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxRQUFRO1lBQ2hDLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsZ0NBQWdDO1FBQ2hDLFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLCtEQUErRDtRQUUvRCxzRUFBc0U7UUFDdEUsa0VBQWtFO1FBQ2xFLFlBQVk7UUFFWiw2Q0FBNkM7UUFDN0MsUUFBUTtRQUVSLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1IsS0FBSztJQUNQLENBQUM7OzRHQW5DVSxjQUFjO2dIQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgUHJpY2VTdW1tYXJ5IH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJhbXBBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvcmFtcCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIG5leHQocmVxdWVzdDogYW55KTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L25leHRgLFxuICAgICAgYm9keTogcmVxdWVzdCxcbiAgICB9KTtcbiAgfVxuXG4gIHJlbmV3KHJlcXVlc3Q6IGFueSk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9yZW5ld2AsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgIH0pO1xuICAgIC8vIFRPRE86IG1vdmUgb3V0IG9mIEFQSSBzZXJ2aWNlXG4gICAgLy8gLnBpcGUoXG4gICAgLy8gICBtYXAoZGF0YSA9PiB7XG4gICAgLy8gICAgIGlmIChkYXRhLmNvbnRleHQpIHtcbiAgICAvLyAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlT3JDcmVhdGUoKTtcblxuICAgIC8vICAgICAgIE9iamVjdC5rZXlzKGRhdGEuY29udGV4dC5wcm9wZXJ0aWVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyAgICAgICAgIGNvbnRleHQucHJvcGVydGllc1trZXldID0gZGF0YS5jb250ZXh0LnByb3BlcnRpZXNba2V5XTtcbiAgICAvLyAgICAgICB9KTtcblxuICAgIC8vICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQpO1xuICAgIC8vICAgICB9XG5cbiAgICAvLyAgICAgcmV0dXJuIGRhdGE7XG4gICAgLy8gICB9KSxcbiAgICAvLyApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@veloce/core";
5
+ export class SalesforceApiService {
6
+ constructor(httpService) {
7
+ this.httpService = httpService;
8
+ this.SERVICE_URL = '/proxy';
9
+ }
10
+ query(searchRequest, objectName) {
11
+ return this.httpService.api({
12
+ method: 'post',
13
+ body: Object.assign(Object.assign({}, searchRequest), { count: searchRequest.count || 100 }),
14
+ url: `${this.SERVICE_URL}/query/${objectName}`,
15
+ });
16
+ }
17
+ queryObjects(search) {
18
+ const params = new HttpParams();
19
+ if (search) {
20
+ params.append('search', search);
21
+ }
22
+ return this.httpService.api({
23
+ url: `${this.SERVICE_URL}/query`,
24
+ params,
25
+ });
26
+ }
27
+ describe(objectName, fieldName) {
28
+ const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');
29
+ return this.httpService.api({ url: methodUrl });
30
+ }
31
+ describe2(objectName, fields) {
32
+ const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;
33
+ return this.httpService.api({ method: 'post', url: methodUrl, body: fields });
34
+ }
35
+ apexGetRequest(path, params) {
36
+ return this.httpService.api({ url: `${this.SERVICE_URL}/apex${path}`, params });
37
+ }
38
+ apexPostRequest(path, body) {
39
+ return this.httpService.api({
40
+ method: 'post',
41
+ body,
42
+ url: `${this.SERVICE_URL}/apex${path}`,
43
+ });
44
+ }
45
+ }
46
+ SalesforceApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalesforceApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
47
+ SalesforceApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalesforceApiService });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalesforceApiService, decorators: [{
49
+ type: Injectable
50
+ }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNmb3JjZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvc2FsZXNmb3JjZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsUUFBUSxDQUFDO0lBRVcsQ0FBQztJQUVwRCxLQUFLLENBQUksYUFBNEIsRUFBRSxVQUFrQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxrQ0FBTyxhQUFhLEtBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLElBQUksR0FBRyxHQUFFO1lBQzdELEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFVBQVUsVUFBVSxFQUFFO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBZTtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDakM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFFBQVE7WUFDaEMsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsVUFBa0IsRUFBRSxTQUFrQjtRQUM3QyxNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLGFBQWEsVUFBVSxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUyxDQUFJLFVBQWtCLEVBQUUsTUFBZ0I7UUFDL0MsTUFBTSxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxhQUFhLFVBQVUsU0FBUyxDQUFDO1FBRXRFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELGNBQWMsQ0FBSSxJQUFZLEVBQUUsTUFBa0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsZUFBZSxDQUFPLElBQVksRUFBRSxJQUFPO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJO1lBQ0osR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsUUFBUSxJQUFJLEVBQUU7U0FDdkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBL0NVLG9CQUFvQjtzSEFBcEIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBTYWxlc2ZvcmNlRmllbGQsIFNhbGVzZm9yY2VPYmplY3QsIFNlYXJjaFJlcXVlc3QgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2FsZXNmb3JjZUFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy9wcm94eSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIHF1ZXJ5PFQ+KHNlYXJjaFJlcXVlc3Q6IFNlYXJjaFJlcXVlc3QsIG9iamVjdE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogeyAuLi5zZWFyY2hSZXF1ZXN0LCBjb3VudDogc2VhcmNoUmVxdWVzdC5jb3VudCB8fCAxMDAgfSxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vcXVlcnkvJHtvYmplY3ROYW1lfWAsXG4gICAgfSk7XG4gIH1cblxuICBxdWVyeU9iamVjdHMoc2VhcmNoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTYWxlc2ZvcmNlT2JqZWN0W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHBhcmFtcy5hcHBlbmQoJ3NlYXJjaCcsIHNlYXJjaCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vcXVlcnlgLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgZGVzY3JpYmUob2JqZWN0TmFtZTogc3RyaW5nLCBmaWVsZE5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNhbGVzZm9yY2VGaWVsZFtdPiB7XG4gICAgY29uc3QgbWV0aG9kVXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vZGVzY3JpYmUvJHtvYmplY3ROYW1lfS9maWVsZHNgICsgKGZpZWxkTmFtZSA/IGAvJHtmaWVsZE5hbWV9YCA6ICcnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybDogbWV0aG9kVXJsIH0pO1xuICB9XG5cbiAgZGVzY3JpYmUyPFQ+KG9iamVjdE5hbWU6IHN0cmluZywgZmllbGRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IG1ldGhvZFVybCA9IGAke3RoaXMuU0VSVklDRV9VUkx9L2Rlc2NyaWJlLyR7b2JqZWN0TmFtZX0vZmllbGRzYDtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6IG1ldGhvZFVybCwgYm9keTogZmllbGRzIH0pO1xuICB9XG5cbiAgYXBleEdldFJlcXVlc3Q8VD4ocGF0aDogc3RyaW5nLCBwYXJhbXM6IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2FwZXgke3BhdGh9YCwgcGFyYW1zIH0pO1xuICB9XG5cbiAgYXBleFBvc3RSZXF1ZXN0PFQsIFM+KHBhdGg6IHN0cmluZywgYm9keTogUyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHksXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2FwZXgke3BhdGh9YCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,75 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpParams } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@veloce/core";
5
+ export class ScriptsApiService {
6
+ constructor(baseHttpService) {
7
+ this.baseHttpService = baseHttpService;
8
+ this.serviceUrl = '/admin/scripts';
9
+ this.fetchScripts$ = () => {
10
+ return this.baseHttpService.api({ url: `${this.serviceUrl}` });
11
+ };
12
+ this.searchScripts$ = (expression, skip, count) => {
13
+ let params = new HttpParams();
14
+ params = params.set('skip', '' + skip);
15
+ params = params.set('count', '' + count);
16
+ return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });
17
+ };
18
+ this.fetchScript$ = (id) => {
19
+ return this.baseHttpService.api({ url: `${this.serviceUrl}/${id}` });
20
+ };
21
+ this.createScript$ = (script) => {
22
+ return this.baseHttpService.api({
23
+ url: `${this.serviceUrl}`,
24
+ method: 'post',
25
+ body: script,
26
+ });
27
+ };
28
+ this.updateScriptMeta$ = (script) => {
29
+ return this.baseHttpService.api({
30
+ url: `${this.serviceUrl}/${script.id}`,
31
+ method: 'post',
32
+ body: script,
33
+ });
34
+ };
35
+ this.updateScriptDetails$ = (script) => {
36
+ return this.baseHttpService.api({
37
+ url: `${this.serviceUrl}/${script.id}`,
38
+ method: 'put',
39
+ body: script,
40
+ });
41
+ };
42
+ this.cloneScript$ = (cloneRequest) => {
43
+ return this.baseHttpService.api({
44
+ url: `${this.serviceUrl}/${cloneRequest.id}/clone`,
45
+ method: 'post',
46
+ body: cloneRequest
47
+ });
48
+ };
49
+ this.removeScript$ = (id) => {
50
+ return this.baseHttpService.api({
51
+ url: `${this.serviceUrl}/${id}`,
52
+ method: 'delete',
53
+ });
54
+ };
55
+ this.restoreScript$ = (id) => {
56
+ return this.baseHttpService.api({
57
+ url: `${this.serviceUrl}/${id}/restore`,
58
+ method: 'patch',
59
+ });
60
+ };
61
+ this.execute$ = (body) => {
62
+ return this.baseHttpService.api({
63
+ url: `/scripts/execute`,
64
+ method: 'post',
65
+ body,
66
+ });
67
+ };
68
+ }
69
+ }
70
+ ScriptsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ScriptsApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
71
+ ScriptsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ScriptsApiService });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ScriptsApiService, decorators: [{
73
+ type: Injectable
74
+ }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvc2NyaXB0cy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSWxELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRm5DLGVBQVUsR0FBVyxnQkFBZ0IsQ0FBQztRQUl2RCxrQkFBYSxHQUFHLEdBQXlCLEVBQUU7WUFDekMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBd0IsRUFBRTtZQUM3RixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2xILENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsQ0FBQyxFQUFVLEVBQTZCLEVBQUU7WUFDdkQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBZ0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLENBQUMsTUFBaUIsRUFBc0IsRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFTO2dCQUN0QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLHNCQUFpQixHQUFHLENBQUMsTUFBYyxFQUFzQixFQUFFO1lBQ3pELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVM7Z0JBQ3RDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRix5QkFBb0IsR0FBRyxDQUFDLE1BQXFCLEVBQTZCLEVBQUU7WUFDMUUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBZ0I7Z0JBQzdDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsSUFBSSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixpQkFBWSxHQUFHLENBQUMsWUFBMEIsRUFBc0IsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFTO2dCQUN0QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQyxFQUFFLFFBQVE7Z0JBQ2xELE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxZQUFZO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLGtCQUFhLEdBQUcsQ0FBQyxFQUFVLEVBQXNCLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBUztnQkFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7Z0JBQy9CLE1BQU0sRUFBRSxRQUFRO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLG1CQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQXNCLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBUztnQkFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLFVBQVU7Z0JBQ3ZDLE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLGFBQVEsR0FBRyxDQUFDLElBQTBCLEVBQW1CLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztnQkFDOUIsR0FBRyxFQUFFLGtCQUFrQjtnQkFDdkIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSTthQUNMLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQXJFcUQsQ0FBQzs7K0dBSDdDLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlSHR0cFNlcnZpY2UsIEV4cHJlc3Npb24sIE5ld1NjcmlwdCwgU2NyaXB0LCBTY3JpcHREZXRhaWxzLCBTY3JpcHRFeGVjdXRlUmVxdWVzdCB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2xvbmVSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvY2xvbmUtcmVxdWVzdC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY3JpcHRzQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZVVybDogc3RyaW5nID0gJy9hZG1pbi9zY3JpcHRzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VIdHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIGZldGNoU2NyaXB0cyQgPSAoKTogT2JzZXJ2YWJsZTxTY3JpcHRbXT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8U2NyaXB0W10+KHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9YCB9KTtcbiAgfTtcblxuICBzZWFyY2hTY3JpcHRzJCA9IChleHByZXNzaW9uOiBFeHByZXNzaW9uLCBza2lwOiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPFNjcmlwdFtdPiA9PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2tpcCcsICcnICsgc2tpcCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY291bnQnLCAnJyArIGNvdW50KTtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHsgbWV0aG9kOiAncG9zdCcsIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9zZWFyY2hgLCBwYXJhbXMsIGJvZHk6IGV4cHJlc3Npb24gfSk7XG4gIH07XG5cbiAgZmV0Y2hTY3JpcHQkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjcmlwdERldGFpbHM+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdERldGFpbHM+KHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCB9KTtcbiAgfTtcblxuICBjcmVhdGVTY3JpcHQkID0gKHNjcmlwdDogTmV3U2NyaXB0KTogT2JzZXJ2YWJsZTxTY3JpcHQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdD4oe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9YCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogc2NyaXB0LFxuICAgIH0pO1xuICB9O1xuXG4gIHVwZGF0ZVNjcmlwdE1ldGEkID0gKHNjcmlwdDogU2NyaXB0KTogT2JzZXJ2YWJsZTxTY3JpcHQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdD4oe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7c2NyaXB0LmlkfWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IHNjcmlwdCxcbiAgICB9KTtcbiAgfTtcblxuICB1cGRhdGVTY3JpcHREZXRhaWxzJCA9IChzY3JpcHQ6IFNjcmlwdERldGFpbHMpOiBPYnNlcnZhYmxlPFNjcmlwdERldGFpbHM+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFNjcmlwdERldGFpbHM+KHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3NjcmlwdC5pZH1gLFxuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIGJvZHk6IHNjcmlwdCxcbiAgICB9KTtcbiAgfTtcblxuICBjbG9uZVNjcmlwdCQgPSAoY2xvbmVSZXF1ZXN0OiBDbG9uZVJlcXVlc3QpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8c3RyaW5nPih7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtjbG9uZVJlcXVlc3QuaWR9L2Nsb25lYCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keTogY2xvbmVSZXF1ZXN0XG4gICAgfSk7XG4gIH07XG5cbiAgcmVtb3ZlU2NyaXB0JCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPHN0cmluZz4oe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgfSk7XG4gIH07XG5cbiAgcmVzdG9yZVNjcmlwdCQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxzdHJpbmc+KHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfTtcblxuICBleGVjdXRlJCA9IChib2R5OiBTY3JpcHRFeGVjdXRlUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAvc2NyaXB0cy9leGVjdXRlYCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==