@micropermit/client-angular 0.4.5-alpha1 → 0.4.5-alpha2

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 (55) hide show
  1. package/{fesm2015/micropermit-client-angular.js → fesm2022/micropermit-client-angular.mjs} +354 -1513
  2. package/fesm2022/micropermit-client-angular.mjs.map +1 -0
  3. package/{micropermit-client-angular.d.ts → index.d.ts} +1 -0
  4. package/lib/components/errorindicator.component.d.ts +3 -0
  5. package/lib/components/loadingindicator.component.d.ts +3 -0
  6. package/lib/directives/call-link.directive.d.ts +3 -0
  7. package/lib/directives/linkfield.directive.d.ts +7 -4
  8. package/lib/directives/micro-link-validate.directive.d.ts +3 -0
  9. package/lib/link-field-paging-support.d.ts +1 -1
  10. package/lib/microclient.module.d.ts +10 -0
  11. package/lib/microclient.service.d.ts +3 -0
  12. package/lib/pipes/linkfield.pipe.d.ts +3 -0
  13. package/package.json +14 -12
  14. package/bundles/micropermit-client-angular.umd.js +0 -3315
  15. package/bundles/micropermit-client-angular.umd.js.map +0 -1
  16. package/bundles/micropermit-client-angular.umd.min.js +0 -16
  17. package/bundles/micropermit-client-angular.umd.min.js.map +0 -1
  18. package/esm2015/lib/components/errorindicator.component.js +0 -53
  19. package/esm2015/lib/components/loadingindicator.component.js +0 -49
  20. package/esm2015/lib/directives/call-link.directive.js +0 -110
  21. package/esm2015/lib/directives/linkfield.directive.js +0 -363
  22. package/esm2015/lib/directives/micro-link-validate.directive.js +0 -141
  23. package/esm2015/lib/error/microerror.js +0 -27
  24. package/esm2015/lib/link-field-paging-support.js +0 -318
  25. package/esm2015/lib/links/callablelink.js +0 -265
  26. package/esm2015/lib/links/linkfield.js +0 -289
  27. package/esm2015/lib/links/mock-linkfield.js +0 -42
  28. package/esm2015/lib/microclient.module.js +0 -54
  29. package/esm2015/lib/microclient.service.js +0 -515
  30. package/esm2015/lib/microobject.js +0 -222
  31. package/esm2015/lib/paramutils.js +0 -176
  32. package/esm2015/lib/pipes/linkfield.pipe.js +0 -53
  33. package/esm2015/micropermit-client-angular.js +0 -9
  34. package/esm2015/public_api.js +0 -23
  35. package/esm5/lib/components/errorindicator.component.js +0 -36
  36. package/esm5/lib/components/loadingindicator.component.js +0 -19
  37. package/esm5/lib/directives/call-link.directive.js +0 -112
  38. package/esm5/lib/directives/linkfield.directive.js +0 -420
  39. package/esm5/lib/directives/micro-link-validate.directive.js +0 -152
  40. package/esm5/lib/error/microerror.js +0 -31
  41. package/esm5/lib/link-field-paging-support.js +0 -387
  42. package/esm5/lib/links/callablelink.js +0 -336
  43. package/esm5/lib/links/linkfield.js +0 -369
  44. package/esm5/lib/links/mock-linkfield.js +0 -56
  45. package/esm5/lib/microclient.module.js +0 -61
  46. package/esm5/lib/microclient.service.js +0 -616
  47. package/esm5/lib/microobject.js +0 -296
  48. package/esm5/lib/paramutils.js +0 -228
  49. package/esm5/lib/pipes/linkfield.pipe.js +0 -60
  50. package/esm5/micropermit-client-angular.js +0 -9
  51. package/esm5/public_api.js +0 -23
  52. package/fesm2015/micropermit-client-angular.js.map +0 -1
  53. package/fesm5/micropermit-client-angular.js +0 -3116
  54. package/fesm5/micropermit-client-angular.js.map +0 -1
  55. package/micropermit-client-angular.metadata.json +0 -1
@@ -1,318 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- export class LinkFieldPagingSupport {
6
- /**
7
- * @param {?} pageLink
8
- * @param {?} changeDetectorRef
9
- * @param {?=} pageLimit
10
- */
11
- constructor(pageLink, changeDetectorRef, pageLimit = 200) {
12
- this.pageLink = pageLink;
13
- this.changeDetectorRef = changeDetectorRef;
14
- this.pageLimit = pageLimit;
15
- this.sorts = null;
16
- this.isLoading = false;
17
- this.loadedCompletely = false;
18
- this.hasLoaded = false;
19
- this._rows = null;
20
- this.loadingSubscription = null;
21
- this.loadingCallback = (/**
22
- * @return {?}
23
- */
24
- () => {
25
- this.setLoading(false);
26
- });
27
- }
28
- /**
29
- * @return {?}
30
- */
31
- get rows() {
32
- if (!this.hasLoaded) {
33
- this.loadNextPage();
34
- }
35
- return this._rows;
36
- }
37
- /**
38
- * @param {?} pageLink
39
- * @param {?} changeDetectorRef
40
- * @param {?=} pageLimit
41
- * @return {?}
42
- */
43
- static from(pageLink, changeDetectorRef, pageLimit = 200) {
44
- return new LinkFieldPagingSupport(pageLink, changeDetectorRef, pageLimit);
45
- }
46
- /**
47
- * @param {?} sorts
48
- * @param {?=} externalSorting
49
- * @return {?}
50
- */
51
- applySort(sorts, externalSorting = true) {
52
- this.hasLoaded = false;
53
- this.sorts = null;
54
- this._rows = null;
55
- if (externalSorting) {
56
- this.sorts = sorts;
57
- this.loadNextPage();
58
- }
59
- else {
60
- if (!this.loadedCompletely) {
61
- this.loadNextPage(null);
62
- }
63
- else {
64
- this.changeDetectorRef.detectChanges();
65
- }
66
- }
67
- }
68
- /**
69
- * @param {?=} pageSize
70
- * @param {?=} resultCallback
71
- * @return {?}
72
- */
73
- loadNextPage(pageSize = this.pageLimit, resultCallback = null) {
74
- if (this.pageLink && !this.isLoading) {
75
- if (this.loadingSubscription) {
76
- this.loadingSubscription.unsubscribe();
77
- this.loadingSubscription = null;
78
- }
79
- this.hasLoaded = true;
80
- this.loadedCompletely = false;
81
- if (this._rows == null) {
82
- this.setLoading(true);
83
- /** @type {?} */
84
- const reqOptions = {};
85
- if (this.sorts != null) {
86
- reqOptions.sorting = this.sorts;
87
- }
88
- if (pageSize != null) {
89
- reqOptions.pageSize = pageSize;
90
- }
91
- this.loadingSubscription = this.pageLink.initWithObs(null, reqOptions).subscribe((/**
92
- * @param {?} firstPage
93
- * @return {?}
94
- */
95
- (firstPage) => {
96
- this.setRows(firstPage, resultCallback);
97
- }), this.loadingCallback, this.loadingCallback);
98
- }
99
- else {
100
- /** @type {?} */
101
- const lastRow = this.lastRow();
102
- if (lastRow) {
103
- if (lastRow.__meta.nextPage) {
104
- /** @type {?} */
105
- let reqOptions = null;
106
- if (pageSize != null) {
107
- reqOptions = {
108
- pageSize: pageSize
109
- };
110
- }
111
- /** @type {?} */
112
- const nextPageObs = lastRow.__meta.nextPage.initWithObs(null, reqOptions);
113
- if (nextPageObs) {
114
- this.setLoading(true);
115
- this.loadingSubscription = nextPageObs.subscribe((/**
116
- * @param {?} nextPage
117
- * @return {?}
118
- */
119
- (nextPage) => {
120
- this.setRows(nextPage, resultCallback);
121
- }), this.loadingCallback, this.loadingCallback);
122
- }
123
- }
124
- }
125
- }
126
- }
127
- else if (!this.pageLink) {
128
- this.clearRows();
129
- }
130
- }
131
- /**
132
- * @return {?}
133
- */
134
- loadEverything() {
135
- this.loadNextPage(null);
136
- }
137
- /**
138
- * @private
139
- * @return {?}
140
- */
141
- lastRow() {
142
- return this._rows[this._rows.length - 1];
143
- }
144
- /**
145
- * @private
146
- * @param {?} additionalPage
147
- * @param {?} loadCallback
148
- * @return {?}
149
- */
150
- setRows(additionalPage, loadCallback) {
151
- if (this._rows) {
152
- this._rows = [...this.rows, ...additionalPage];
153
- }
154
- else {
155
- this._rows = additionalPage;
156
- }
157
- if (loadCallback) {
158
- loadCallback(additionalPage, this._rows);
159
- }
160
- this.reflectChanges();
161
- }
162
- /**
163
- * @private
164
- * @return {?}
165
- */
166
- clearRows() {
167
- if (this._rows != null) {
168
- this._rows = null;
169
- this.reflectChanges();
170
- }
171
- }
172
- /**
173
- * @private
174
- * @return {?}
175
- */
176
- reflectChanges() {
177
- /** @type {?} */
178
- const lastRow = this.lastRow();
179
- if (lastRow && lastRow.__meta) {
180
- this.loadedCompletely = lastRow.__meta.nextPage == null;
181
- }
182
- else {
183
- this.loadedCompletely = false;
184
- }
185
- if (this.rowsChangeCallback) {
186
- this.rowsChangeCallback(this._rows);
187
- }
188
- this.changeDetectorRef.detectChanges();
189
- }
190
- /**
191
- * @private
192
- * @param {?} isLoading
193
- * @return {?}
194
- */
195
- setLoading(isLoading) {
196
- this.isLoading = isLoading;
197
- if (this.isLoadingCallback) {
198
- this.isLoadingCallback(this.isLoading);
199
- }
200
- this.changeDetectorRef.detectChanges();
201
- }
202
- /**
203
- * @return {?}
204
- */
205
- dispose() {
206
- this.rowsChangeCallback = null;
207
- this.isLoadingCallback = null;
208
- }
209
- /**
210
- * @param {?} pageLink
211
- * @return {?}
212
- */
213
- setPageLink(pageLink) {
214
- this.clearState();
215
- this.pageLink = pageLink;
216
- this.loadNextPage();
217
- }
218
- /**
219
- * @return {?}
220
- */
221
- hasLoadedCompletely() {
222
- return this.loadedCompletely;
223
- }
224
- /**
225
- * @param {?} rowsChangeCallback
226
- * @param {?=} isLoadingCallback
227
- * @return {?}
228
- */
229
- init(rowsChangeCallback, isLoadingCallback = null) {
230
- this.rowsChangeCallback = rowsChangeCallback;
231
- this.isLoadingCallback = isLoadingCallback;
232
- }
233
- /**
234
- * @private
235
- * @return {?}
236
- */
237
- clearState() {
238
- this.isLoading = false;
239
- this.loadedCompletely = false;
240
- this.hasLoaded = false;
241
- this._rows = null;
242
- if (this.loadingSubscription) {
243
- this.loadingSubscription.unsubscribe();
244
- this.loadingSubscription = null;
245
- }
246
- }
247
- }
248
- if (false) {
249
- /**
250
- * @type {?}
251
- * @private
252
- */
253
- LinkFieldPagingSupport.prototype.sorts;
254
- /** @type {?} */
255
- LinkFieldPagingSupport.prototype.isLoading;
256
- /**
257
- * @type {?}
258
- * @private
259
- */
260
- LinkFieldPagingSupport.prototype.loadedCompletely;
261
- /**
262
- * @type {?}
263
- * @private
264
- */
265
- LinkFieldPagingSupport.prototype.hasLoaded;
266
- /**
267
- * @type {?}
268
- * @private
269
- */
270
- LinkFieldPagingSupport.prototype._rows;
271
- /**
272
- * @type {?}
273
- * @private
274
- */
275
- LinkFieldPagingSupport.prototype.loadingSubscription;
276
- /** @type {?} */
277
- LinkFieldPagingSupport.prototype.rowsChangeCallback;
278
- /** @type {?} */
279
- LinkFieldPagingSupport.prototype.isLoadingCallback;
280
- /**
281
- * @type {?}
282
- * @private
283
- */
284
- LinkFieldPagingSupport.prototype.loadingCallback;
285
- /**
286
- * @type {?}
287
- * @private
288
- */
289
- LinkFieldPagingSupport.prototype.pageLink;
290
- /**
291
- * @type {?}
292
- * @private
293
- */
294
- LinkFieldPagingSupport.prototype.changeDetectorRef;
295
- /** @type {?} */
296
- LinkFieldPagingSupport.prototype.pageLimit;
297
- }
298
- export class SortInfo {
299
- /**
300
- * @param {?} field
301
- * @param {?} dir
302
- */
303
- constructor(field, dir) {
304
- this.field = field;
305
- this.dir = dir;
306
- this.dir = dir.toUpperCase();
307
- if (!(this.dir === 'ASC' || this.dir === 'DESC')) {
308
- throw Error('dir can only be \'ASC\' or \'DESC\'');
309
- }
310
- }
311
- }
312
- if (false) {
313
- /** @type {?} */
314
- SortInfo.prototype.field;
315
- /** @type {?} */
316
- SortInfo.prototype.dir;
317
- }
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1maWVsZC1wYWdpbmctc3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9saW5rLWZpZWxkLXBhZ2luZy1zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxNQUFNLE9BQU8sc0JBQXNCOzs7Ozs7SUFFL0IsWUFDWSxRQUFrQyxFQUNsQyxpQkFBb0MsRUFDckMsWUFBb0IsR0FBRztRQUZ0QixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFJMUIsVUFBSyxHQUFlLElBQUksQ0FBQztRQUUxQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFVBQUssR0FBVSxJQUFJLENBQUM7UUFDcEIsd0JBQW1CLEdBQWlCLElBQUksQ0FBQztRQXNDekMsb0JBQWU7OztRQUFHLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsRUFBQztJQWhERixDQUFDOzs7O0lBYUQsSUFBSSxJQUFJO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Ozs7Ozs7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUNkLFFBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyxZQUFvQixHQUFHO1FBRXZCLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUUsQ0FBQzs7Ozs7O0lBRU0sU0FBUyxDQUFDLEtBQWlCLEVBQUUsZUFB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QUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7SUFDTCxDQUFDO0NBQ0o7Ozs7OztJQWpMRyx1Q0FBaUM7O0lBRWpDLDJDQUF5Qjs7Ozs7SUFDekIsa0RBQWlDOzs7OztJQUNqQywyQ0FBMEI7Ozs7O0lBQzFCLHVDQUE0Qjs7Ozs7SUFDNUIscURBQWlEOztJQUVqRCxvREFBaUQ7O0lBQ2pELG1EQUF1RDs7Ozs7SUFtQ3ZELGlEQUVFOzs7OztJQXBERSwwQ0FBMEM7Ozs7O0lBQzFDLG1EQUE0Qzs7SUFDNUMsMkNBQThCOztBQXVMdEMsTUFBTSxPQUFPLFFBQVE7Ozs7O0lBQ2pCLFlBQW1CLEtBQWEsRUFBUyxHQUFXO1FBQWpDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ2hELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7Q0FDSjs7O0lBTmUseUJBQW9COztJQUFFLHVCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMaW5rRmllbGR9IGZyb20gJy4vbGlua3MvbGlua2ZpZWxkJztcbmltcG9ydCB7TWljcm9PYmplY3R9IGZyb20gJy4vbWljcm9vYmplY3QnO1xuXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkUGFnaW5nU3VwcG9ydCB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBwYWdlTGluazogTGlua0ZpZWxkPE1pY3JvT2JqZWN0W10+LFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIHBhZ2VMaW1pdDogbnVtYmVyID0gMjAwXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0czogU29ydEluZm9bXSA9IG51bGw7XG5cbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsb2FkZWRDb21wbGV0ZWx5ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBoYXNMb2FkZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yb3dzOiBhbnlbXSA9IG51bGw7XG4gICAgcHJpdmF0ZSBsb2FkaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgcHVibGljIHJvd3NDaGFuZ2VDYWxsYmFjazogKHJvd3M6IGFueVtdKSA9PiB2b2lkO1xuICAgIHB1YmxpYyBpc0xvYWRpbmdDYWxsYmFjazogKGlzTG9hZGluZzogYm9vbGVhbikgPT4gdm9pZDtcblxuICAgIGdldCByb3dzKCk6IGFueVtdIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0xvYWRlZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFBhZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgICAgIHBhZ2VMaW5rOiBMaW5rRmllbGQ8TWljcm9PYmplY3RbXT4sXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcGFnZUxpbWl0OiBudW1iZXIgPSAyMDBcbiAgICApOiBMaW5rRmllbGRQYWdpbmdTdXBwb3J0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGRQYWdpbmdTdXBwb3J0KHBhZ2VMaW5rLCBjaGFuZ2VEZXRlY3RvclJlZiwgcGFnZUxpbWl0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHlTb3J0KHNvcnRzOiBTb3J0SW5mb1tdLCBleHRlcm5hbFNvcnRpbmcgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuaGFzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc29ydHMgPSBudWxsO1xuICAgICAgICB0aGlzLl9yb3dzID0gbnVsbDtcblxuICAgICAgICBpZiAoZXh0ZXJuYWxTb3J0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNvcnRzID0gc29ydHM7XG4gICAgICAgICAgICB0aGlzLmxvYWROZXh0UGFnZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRlZENvbXBsZXRlbHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWROZXh0UGFnZShudWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZGluZ0NhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICBwdWJsaWMgbG9hZE5leHRQYWdlKHBhZ2VTaXplOiBudW1iZXIgPSB0aGlzLnBhZ2VMaW1pdCwgcmVzdWx0Q2FsbGJhY2s6ICgocGFnZTogYW55W10sIGFsbDogYW55W10pID0+IHZvaWQpID0gbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5wYWdlTGluayAmJiAhdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWRpbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmhhc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZENvbXBsZXRlbHkgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9yb3dzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRpbmcodHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXFPcHRpb25zOiBhbnkgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zb3J0cyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcU9wdGlvbnMuc29ydGluZyA9IHRoaXMuc29ydHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYWdlU2l6ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcU9wdGlvbnMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YnNjcmlwdGlvbiA9IHRoaXMucGFnZUxpbmsuaW5pdFdpdGhPYnMobnVsbCwgcmVxT3B0aW9ucykuc3Vic2NyaWJlKChmaXJzdFBhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSb3dzKGZpcnN0UGFnZSwgcmVzdWx0Q2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMubG9hZGluZ0NhbGxiYWNrLCB0aGlzLmxvYWRpbmdDYWxsYmFjayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RSb3cgPSB0aGlzLmxhc3RSb3coKTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdFJvdykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFJvdy5fX21ldGEubmV4dFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXFPcHRpb25zID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlU2l6ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dFBhZ2VPYnM6IE9ic2VydmFibGU8TWljcm9PYmplY3RbXT4gPSBsYXN0Um93Ll9fbWV0YS5uZXh0UGFnZS5pbml0V2l0aE9icyhudWxsLCByZXFPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0UGFnZU9icykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJzY3JpcHRpb24gPSBuZXh0UGFnZU9icy5zdWJzY3JpYmUoKG5leHRQYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Um93cyhuZXh0UGFnZSwgcmVzdWx0Q2FsbGJhY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMubG9hZGluZ0NhbGxiYWNrLCB0aGlzLmxvYWRpbmdDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucGFnZUxpbmspIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJSb3dzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZEV2ZXJ5dGhpbmcoKSB7XG4gICAgICAgIHRoaXMubG9hZE5leHRQYWdlKG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbGFzdFJvdygpOiBNaWNyb09iamVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dzW3RoaXMuX3Jvd3MubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRSb3dzKGFkZGl0aW9uYWxQYWdlOiBhbnlbXSwgbG9hZENhbGxiYWNrOiAoKHBhZ2U6IGFueVtdLCBhbGw6IGFueVtdKSA9PiB2b2lkKSkge1xuICAgICAgICBpZiAodGhpcy5fcm93cykge1xuICAgICAgICAgICAgdGhpcy5fcm93cyA9IFsuLi50aGlzLnJvd3MsIC4uLmFkZGl0aW9uYWxQYWdlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvd3MgPSBhZGRpdGlvbmFsUGFnZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9hZENhbGxiYWNrKSB7XG4gICAgICAgICAgICBsb2FkQ2FsbGJhY2soYWRkaXRpb25hbFBhZ2UsIHRoaXMuX3Jvd3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVmbGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyUm93cygpIHtcbiAgICAgICAgaWYgKHRoaXMuX3Jvd3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fcm93cyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnJlZmxlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZmxlY3RDaGFuZ2VzKCkge1xuICAgICAgICBjb25zdCBsYXN0Um93ID0gdGhpcy5sYXN0Um93KCk7XG4gICAgICAgIGlmIChsYXN0Um93ICYmIGxhc3RSb3cuX19tZXRhKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZENvbXBsZXRlbHkgPSBsYXN0Um93Ll9fbWV0YS5uZXh0UGFnZSA9PSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2FkZWRDb21wbGV0ZWx5ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yb3dzQ2hhbmdlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMucm93c0NoYW5nZUNhbGxiYWNrKHRoaXMuX3Jvd3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TG9hZGluZyhpc0xvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBpc0xvYWRpbmc7XG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZ0NhbGxiYWNrKSB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZ0NhbGxiYWNrKHRoaXMuaXNMb2FkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzcG9zZSgpIHtcbiAgICAgICAgdGhpcy5yb3dzQ2hhbmdlQ2FsbGJhY2sgPSBudWxsO1xuICAgICAgICB0aGlzLmlzTG9hZGluZ0NhbGxiYWNrID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGFnZUxpbmsocGFnZUxpbms6IExpbmtGaWVsZDxNaWNyb09iamVjdFtdPikge1xuICAgICAgICB0aGlzLmNsZWFyU3RhdGUoKTtcbiAgICAgICAgdGhpcy5wYWdlTGluayA9IHBhZ2VMaW5rO1xuICAgICAgICB0aGlzLmxvYWROZXh0UGFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNMb2FkZWRDb21wbGV0ZWx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZWRDb21wbGV0ZWx5O1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KHJvd3NDaGFuZ2VDYWxsYmFjazogKHJvd3M6IGFueVtdKSA9PiB2b2lkLCBpc0xvYWRpbmdDYWxsYmFjazogKChpc0xvYWRpbmc6IGJvb2xlYW4pID0+IHZvaWQpID0gbnVsbCkge1xuICAgICAgICB0aGlzLnJvd3NDaGFuZ2VDYWxsYmFjayA9IHJvd3NDaGFuZ2VDYWxsYmFjaztcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdDYWxsYmFjayA9IGlzTG9hZGluZ0NhbGxiYWNrO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZWRDb21wbGV0ZWx5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGFzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Jvd3MgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5sb2FkaW5nU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTb3J0SW5mbyB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGZpZWxkOiBzdHJpbmcsIHB1YmxpYyBkaXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLmRpciA9IGRpci50b1VwcGVyQ2FzZSgpO1xuICAgICAgICBpZiAoISh0aGlzLmRpciA9PT0gJ0FTQycgfHwgdGhpcy5kaXIgPT09ICdERVNDJykpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdkaXIgY2FuIG9ubHkgYmUgXFwnQVNDXFwnIG9yIFxcJ0RFU0NcXCcnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,265 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { MicroObject } from '../microobject';
6
- import { ParamUtils } from '../paramutils';
7
- /**
8
- * @template T
9
- */
10
- export class CallableLink {
11
- /**
12
- * @param {?} link
13
- * @param {?} microClient
14
- * @param {?=} callParams
15
- * @param {?=} requestOptions
16
- */
17
- constructor(link, microClient, callParams = null, requestOptions = null) {
18
- this.link = link;
19
- this.microClient = microClient;
20
- this.callParams = callParams;
21
- this.requestOptions = requestOptions;
22
- this.serializeTo = LinkSerializer.DONT_SERIALIZE;
23
- }
24
- /**
25
- * @return {?}
26
- */
27
- hasLink() {
28
- return this.link != null;
29
- }
30
- /**
31
- * @return {?}
32
- */
33
- getLink() {
34
- return this.link;
35
- }
36
- /**
37
- * @param {?} key
38
- * @param {?=} urlDecode
39
- * @return {?}
40
- */
41
- getQueryParam(key, urlDecode = false) {
42
- return ParamUtils.getParam(this.link, key, urlDecode);
43
- }
44
- /**
45
- * @return {?}
46
- */
47
- getSignedParams() {
48
- /** @type {?} */
49
- let params = this.getSignedMicroObjectParam('params');
50
- if (params == null) {
51
- params = this.getSignedMicroObjectParam('bParams');
52
- }
53
- return params;
54
- }
55
- /**
56
- * @param {?=} copy
57
- * @return {?}
58
- */
59
- getOpenParams(copy = false) {
60
- /** @type {?} */
61
- let params = this.getMicroObjectParam('oParams');
62
- if (params == null) {
63
- params = this.getMicroObjectParam('bOParams');
64
- }
65
- else {
66
- if (copy) {
67
- params = MicroObject.fromString(JSON.stringify(params), this.microClient);
68
- }
69
- if (this.callParams) {
70
- params = Object.assign(params, this.callParams);
71
- }
72
- }
73
- return params;
74
- }
75
- /**
76
- * @return {?}
77
- */
78
- getOptions() {
79
- /** @type {?} */
80
- let options = this.getMicroObjectParam('options');
81
- if (this.requestOptions) {
82
- if (options == null) {
83
- options = new MicroObject();
84
- }
85
- options = Object.assign(options, this.requestOptions);
86
- }
87
- return options;
88
- }
89
- /**
90
- * @private
91
- * @param {?} key
92
- * @return {?}
93
- */
94
- getSignedMicroObjectParam(key) {
95
- /** @type {?} */
96
- const paramsStr = ParamUtils.getParam(this.link, key, false);
97
- /** @type {?} */
98
- let params = null;
99
- if (paramsStr) {
100
- /** @type {?} */
101
- const splitted = paramsStr.split('.');
102
- if (splitted.length !== 3) {
103
- throw new Error('Expected a signed query param to have a JWT like structure');
104
- }
105
- params = MicroObject.fromString(atob(splitted[1]), this.microClient);
106
- }
107
- return params;
108
- }
109
- /**
110
- * @param {?} key
111
- * @return {?}
112
- */
113
- getMicroObjectParam(key) {
114
- /** @type {?} */
115
- const paramsStr = ParamUtils.getParam(this.link, key, true);
116
- /** @type {?} */
117
- let params = null;
118
- if (paramsStr) {
119
- params = MicroObject.fromString(paramsStr, this.microClient);
120
- }
121
- return params;
122
- }
123
- /**
124
- * @param {?} onNext
125
- * @return {?}
126
- */
127
- call(onNext) {
128
- return this.callWith(null, null, onNext);
129
- }
130
- /**
131
- * @param {?=} params
132
- * @param {?=} requestOptions
133
- * @param {?=} onNext
134
- * @return {?}
135
- */
136
- callWith(params = null, requestOptions = null, onNext) {
137
- return (/** @type {?} */ (this.callWithObs(params, requestOptions).toPromise().then(onNext)));
138
- }
139
- /**
140
- * @param {?=} params
141
- * @param {?=} requestOptions
142
- * @return {?}
143
- */
144
- callWithObs(params = null, requestOptions = null) {
145
- if (this.link == null) {
146
- throw Error('Can\'t use callWithObs without a provided link');
147
- }
148
- if (this.microClient == null) {
149
- throw Error('Can\'t use callWithObs without a provided microClient');
150
- }
151
- /** @type {?} */
152
- let paramsToUse = null;
153
- if (this.callParams != null) {
154
- paramsToUse = Object.assign(new MicroObject(), this.callParams);
155
- }
156
- if (params) {
157
- if (paramsToUse == null) {
158
- paramsToUse = new MicroObject();
159
- }
160
- paramsToUse = Object.assign(paramsToUse, params);
161
- }
162
- /** @type {?} */
163
- let optionsToUse = null;
164
- if (this.requestOptions != null) {
165
- optionsToUse = Object.assign(new MicroObject(), this.requestOptions);
166
- }
167
- if (requestOptions) {
168
- if (optionsToUse == null) {
169
- optionsToUse = new MicroObject();
170
- }
171
- optionsToUse = Object.assign(optionsToUse, requestOptions);
172
- }
173
- return (/** @type {?} */ (this.microClient.load(this.link, paramsToUse, optionsToUse)));
174
- }
175
- /**
176
- * @return {?}
177
- */
178
- copy() {
179
- return new CallableLink(this.link, this.microClient, this.callParams, this.requestOptions);
180
- }
181
- /**
182
- * @param {?} callParams
183
- * @param {?=} requestOptions
184
- * @return {?}
185
- */
186
- withCallParams(callParams, requestOptions = this.requestOptions) {
187
- return new CallableLink(this.link, this.microClient, callParams, requestOptions);
188
- }
189
- /**
190
- * @return {?}
191
- */
192
- toJSON() {
193
- if (this.serializeTo) {
194
- return this.serializeTo(this.link, this.callParams, this.requestOptions, undefined, undefined);
195
- }
196
- else {
197
- return undefined;
198
- }
199
- }
200
- }
201
- if (false) {
202
- /** @type {?} */
203
- CallableLink.prototype.serializeTo;
204
- /**
205
- * @type {?}
206
- * @protected
207
- */
208
- CallableLink.prototype.link;
209
- /**
210
- * @type {?}
211
- * @protected
212
- */
213
- CallableLink.prototype.microClient;
214
- /**
215
- * @type {?}
216
- * @protected
217
- */
218
- CallableLink.prototype.callParams;
219
- /**
220
- * @type {?}
221
- * @protected
222
- */
223
- CallableLink.prototype.requestOptions;
224
- }
225
- // @dynamic
226
- export class LinkSerializer {
227
- }
228
- LinkSerializer.DONT_SERIALIZE = (/**
229
- * @return {?}
230
- */
231
- function () {
232
- return undefined;
233
- });
234
- LinkSerializer.AS_LINK = (/**
235
- * @param {?} link
236
- * @return {?}
237
- */
238
- function (link) {
239
- return link;
240
- });
241
- LinkSerializer.AS_VALUE_IF_INITIALIZED = (/**
242
- * @param {?} link
243
- * @param {?} callParams
244
- * @param {?} requestOptions
245
- * @param {?} value
246
- * @param {?} isInitialized
247
- * @return {?}
248
- */
249
- function (link, callParams, requestOptions, value, isInitialized) {
250
- if (isInitialized) {
251
- return value;
252
- }
253
- else {
254
- return undefined;
255
- }
256
- });
257
- if (false) {
258
- /** @type {?} */
259
- LinkSerializer.DONT_SERIALIZE;
260
- /** @type {?} */
261
- LinkSerializer.AS_LINK;
262
- /** @type {?} */
263
- LinkSerializer.AS_VALUE_IF_INITIALIZED;
264
- }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGVsaW5rLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2NhbGxhYmxlbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFFekMsTUFBTSxPQUFPLFlBQVk7Ozs7Ozs7SUFFckIsWUFDYyxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsYUFBcUIsSUFBSSxFQUN6QixpQkFBeUIsSUFBSTtRQUg3QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUlwQyxnQkFBVyxHQUEwRyxjQUFjLENBQUMsY0FBYyxDQUFDO0lBRjFKLENBQUM7Ozs7SUFJRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztJQUM3QixDQUFDOzs7O0lBRUQsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOzs7Ozs7SUFFRCxhQUFhLENBQUMsR0FBVyxFQUFFLFlBQXFCLEtBQUs7UUFDakQsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Ozs7SUFFRCxlQUFlOztZQUNQLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDO1FBQ3JELElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtZQUNoQixNQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsT0FBTyxNQUFNLENBQUM7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b20gJy4uL21pY3JvY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWljcm9PYmplY3R9IGZyb20gJy4uL21pY3Jvb2JqZWN0JztcbmltcG9ydCB7UGFyYW1VdGlsc30gZnJvbSAnLi4vcGFyYW11dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDYWxsYWJsZUxpbms8VD4ge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBsaW5rOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBtaWNyb0NsaWVudDogTWljcm9DbGllbnQsXG4gICAgICAgIHByb3RlY3RlZCBjYWxsUGFyYW1zOiBvYmplY3QgPSBudWxsLFxuICAgICAgICBwcm90ZWN0ZWQgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGxcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VyaWFsaXplVG86IChsaW5rOiBzdHJpbmcsIGNhbGxQYXJhbXM6IG9iamVjdCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCwgdmFsdWU6IGFueSwgaXNJbml0aWFsaXplZDogYm9vbGVhbikgPT4gYW55ID0gTGlua1NlcmlhbGl6ZXIuRE9OVF9TRVJJQUxJWkU7XG5cbiAgICBoYXNMaW5rKCk6IEJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rICE9IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0TGluaygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rO1xuICAgIH1cblxuICAgIGdldFF1ZXJ5UGFyYW0oa2V5OiBzdHJpbmcsIHVybERlY29kZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBQYXJhbVV0aWxzLmdldFBhcmFtKHRoaXMubGluaywga2V5LCB1cmxEZWNvZGUpO1xuICAgIH1cblxuICAgIGdldFNpZ25lZFBhcmFtcygpOiBNaWNyb09iamVjdCB8IE1pY3JvT2JqZWN0W10ge1xuICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5nZXRTaWduZWRNaWNyb09iamVjdFBhcmFtKCdwYXJhbXMnKTtcbiAgICAgICAgaWYgKHBhcmFtcyA9PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSB0aGlzLmdldFNpZ25lZE1pY3JvT2JqZWN0UGFyYW0oJ2JQYXJhbXMnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIGdldE9wZW5QYXJhbXMoY29weTogYm9vbGVhbiA9IGZhbHNlKTogTWljcm9PYmplY3QgfCBNaWNyb09iamVjdFtdIHtcbiAgICAgICAgbGV0IHBhcmFtczogTWljcm9PYmplY3QgfCBNaWNyb09iamVjdFtdID0gdGhpcy5nZXRNaWNyb09iamVjdFBhcmFtKCdvUGFyYW1zJyk7XG4gICAgICAgIGlmIChwYXJhbXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyYW1zID0gdGhpcy5nZXRNaWNyb09iamVjdFBhcmFtKCdiT1BhcmFtcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvcHkpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBNaWNyb09iamVjdC5mcm9tU3RyaW5nKEpTT04uc3RyaW5naWZ5KHBhcmFtcyksIHRoaXMubWljcm9DbGllbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5jYWxsUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihwYXJhbXMsIHRoaXMuY2FsbFBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBnZXRPcHRpb25zKCk6IE1pY3JvT2JqZWN0IHtcbiAgICAgICAgbGV0IG9wdGlvbnMgPSB0aGlzLmdldE1pY3JvT2JqZWN0UGFyYW0oJ29wdGlvbnMnKTtcblxuICAgICAgICBpZiAodGhpcy5yZXF1ZXN0T3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBuZXcgTWljcm9PYmplY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTaWduZWRNaWNyb09iamVjdFBhcmFtKGtleTogc3RyaW5nKTogTWljcm9PYmplY3Qge1xuICAgICAgICBjb25zdCBwYXJhbXNTdHIgPSBQYXJhbVV0aWxzLmdldFBhcmFtKHRoaXMubGluaywga2V5LCBmYWxzZSk7XG4gICAgICAgIGxldCBwYXJhbXMgPSBudWxsO1xuICAgICAgICBpZiAocGFyYW1zU3RyKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZCA9IHBhcmFtc1N0ci5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKHNwbGl0dGVkLmxlbmd0aCAhPT0gMykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYSBzaWduZWQgcXVlcnkgcGFyYW0gdG8gaGF2ZSBhIEpXVCBsaWtlIHN0cnVjdHVyZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyYW1zID0gTWljcm9PYmplY3QuZnJvbVN0cmluZyhhdG9iKHNwbGl0dGVkWzFdKSwgdGhpcy5taWNyb0NsaWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBnZXRNaWNyb09iamVjdFBhcmFtKGtleTogc3RyaW5nKTogTWljcm9PYmplY3Qge1xuICAgICAgICBjb25zdCBwYXJhbXNTdHIgPSBQYXJhbVV0aWxzLmdldFBhcmFtKHRoaXMubGluaywga2V5LCB0cnVlKTtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG51bGw7XG4gICAgICAgIGlmIChwYXJhbXNTdHIpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IE1pY3JvT2JqZWN0LmZyb21TdHJpbmcocGFyYW1zU3RyLCB0aGlzLm1pY3JvQ2xpZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIGNhbGwob25OZXh0OiAoVCkgPT4gdm9pZCk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxsV2l0aChudWxsLCBudWxsLCBvbk5leHQpO1xuICAgIH1cblxuICAgIGNhbGxXaXRoKHBhcmFtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwsIG9uTmV4dDogKFQpID0+IHZvaWQpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIDxQcm9taXNlPFQ+PnRoaXMuY2FsbFdpdGhPYnMocGFyYW1zLCByZXF1ZXN0T3B0aW9ucykudG9Qcm9taXNlKCkudGhlbihvbk5leHQpO1xuICAgIH1cblxuICAgIGNhbGxXaXRoT2JzKHBhcmFtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMubGluayA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignQ2FuXFwndCB1c2UgY2FsbFdpdGhPYnMgd2l0aG91dCBhIHByb3ZpZGVkIGxpbmsnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taWNyb0NsaWVudCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignQ2FuXFwndCB1c2UgY2FsbFdpdGhPYnMgd2l0aG91dCBhIHByb3ZpZGVkIG1pY3JvQ2xpZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFyYW1zVG9Vc2UgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5jYWxsUGFyYW1zICE9IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtc1RvVXNlID0gT2JqZWN0LmFzc2lnbihuZXcgTWljcm9PYmplY3QoKSwgdGhpcy5jYWxsUGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zVG9Vc2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHBhcmFtc1RvVXNlID0gbmV3IE1pY3JvT2JqZWN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJhbXNUb1VzZSA9IE9iamVjdC5hc3NpZ24ocGFyYW1zVG9Vc2UsIHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9uc1RvVXNlID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMucmVxdWVzdE9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgICAgICAgb3B0aW9uc1RvVXNlID0gT2JqZWN0LmFzc2lnbihuZXcgTWljcm9PYmplY3QoKSwgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uc1RvVXNlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zVG9Vc2UgPSBuZXcgTWljcm9PYmplY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnNUb1VzZSA9IE9iamVjdC5hc3NpZ24ob3B0aW9uc1RvVXNlLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gPE9ic2VydmFibGU8VD4+dGhpcy5taWNyb0NsaWVudC5sb2FkKHRoaXMubGluaywgcGFyYW1zVG9Vc2UsIG9wdGlvbnNUb1VzZSk7XG4gICAgfVxuXG4gICAgY29weSgpOiBDYWxsYWJsZUxpbms8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IENhbGxhYmxlTGluayh0aGlzLmxpbmssIHRoaXMubWljcm9DbGllbnQsIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgd2l0aENhbGxQYXJhbXMoY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gdGhpcy5yZXF1ZXN0T3B0aW9ucyk6IENhbGxhYmxlTGluazxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FsbGFibGVMaW5rKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgY2FsbFBhcmFtcywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHRvSlNPTigpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5zZXJpYWxpemVUbykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplVG8odGhpcy5saW5rLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgTGlua1NlcmlhbGl6ZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgRE9OVF9TRVJJQUxJWkUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfTtcblxuICAgIHB1YmxpYyBzdGF0aWMgQVNfTElOSyA9IGZ1bmN0aW9uIChsaW5rOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGxpbms7XG4gICAgfTtcblxuICAgIHB1YmxpYyBzdGF0aWMgQVNfVkFMVUVfSUZfSU5JVElBTElaRUQgPSBmdW5jdGlvbiAobGluazogc3RyaW5nLCBjYWxsUGFyYW1zOiBvYmplY3QsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QsIHZhbHVlOiBhbnksIGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl19