@micropermit/client-angular 0.4.4 → 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,336 +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
- var /**
11
- * @template T
12
- */
13
- CallableLink = /** @class */ (function () {
14
- function CallableLink(link, microClient, callParams, requestOptions) {
15
- if (callParams === void 0) { callParams = null; }
16
- if (requestOptions === void 0) { requestOptions = null; }
17
- this.link = link;
18
- this.microClient = microClient;
19
- this.callParams = callParams;
20
- this.requestOptions = requestOptions;
21
- this.serializeTo = LinkSerializer.DONT_SERIALIZE;
22
- }
23
- /**
24
- * @return {?}
25
- */
26
- CallableLink.prototype.hasLink = /**
27
- * @return {?}
28
- */
29
- function () {
30
- return this.link != null;
31
- };
32
- /**
33
- * @return {?}
34
- */
35
- CallableLink.prototype.getLink = /**
36
- * @return {?}
37
- */
38
- function () {
39
- return this.link;
40
- };
41
- /**
42
- * @param {?} key
43
- * @param {?=} urlDecode
44
- * @return {?}
45
- */
46
- CallableLink.prototype.getQueryParam = /**
47
- * @param {?} key
48
- * @param {?=} urlDecode
49
- * @return {?}
50
- */
51
- function (key, urlDecode) {
52
- if (urlDecode === void 0) { urlDecode = false; }
53
- return ParamUtils.getParam(this.link, key, urlDecode);
54
- };
55
- /**
56
- * @return {?}
57
- */
58
- CallableLink.prototype.getSignedParams = /**
59
- * @return {?}
60
- */
61
- function () {
62
- /** @type {?} */
63
- var params = this.getSignedMicroObjectParam('params');
64
- if (params == null) {
65
- params = this.getSignedMicroObjectParam('bParams');
66
- }
67
- return params;
68
- };
69
- /**
70
- * @param {?=} copy
71
- * @return {?}
72
- */
73
- CallableLink.prototype.getOpenParams = /**
74
- * @param {?=} copy
75
- * @return {?}
76
- */
77
- function (copy) {
78
- if (copy === void 0) { copy = false; }
79
- /** @type {?} */
80
- var params = this.getMicroObjectParam('oParams');
81
- if (params == null) {
82
- params = this.getMicroObjectParam('bOParams');
83
- }
84
- else {
85
- if (copy) {
86
- params = MicroObject.fromString(JSON.stringify(params), this.microClient);
87
- }
88
- if (this.callParams) {
89
- params = Object.assign(params, this.callParams);
90
- }
91
- }
92
- return params;
93
- };
94
- /**
95
- * @return {?}
96
- */
97
- CallableLink.prototype.getOptions = /**
98
- * @return {?}
99
- */
100
- function () {
101
- /** @type {?} */
102
- var options = this.getMicroObjectParam('options');
103
- if (this.requestOptions) {
104
- if (options == null) {
105
- options = new MicroObject();
106
- }
107
- options = Object.assign(options, this.requestOptions);
108
- }
109
- return options;
110
- };
111
- /**
112
- * @private
113
- * @param {?} key
114
- * @return {?}
115
- */
116
- CallableLink.prototype.getSignedMicroObjectParam = /**
117
- * @private
118
- * @param {?} key
119
- * @return {?}
120
- */
121
- function (key) {
122
- /** @type {?} */
123
- var paramsStr = ParamUtils.getParam(this.link, key, false);
124
- /** @type {?} */
125
- var params = null;
126
- if (paramsStr) {
127
- /** @type {?} */
128
- var splitted = paramsStr.split('.');
129
- if (splitted.length !== 3) {
130
- throw new Error('Expected a signed query param to have a JWT like structure');
131
- }
132
- params = MicroObject.fromString(atob(splitted[1]), this.microClient);
133
- }
134
- return params;
135
- };
136
- /**
137
- * @param {?} key
138
- * @return {?}
139
- */
140
- CallableLink.prototype.getMicroObjectParam = /**
141
- * @param {?} key
142
- * @return {?}
143
- */
144
- function (key) {
145
- /** @type {?} */
146
- var paramsStr = ParamUtils.getParam(this.link, key, true);
147
- /** @type {?} */
148
- var params = null;
149
- if (paramsStr) {
150
- params = MicroObject.fromString(paramsStr, this.microClient);
151
- }
152
- return params;
153
- };
154
- /**
155
- * @param {?} onNext
156
- * @return {?}
157
- */
158
- CallableLink.prototype.call = /**
159
- * @param {?} onNext
160
- * @return {?}
161
- */
162
- function (onNext) {
163
- return this.callWith(null, null, onNext);
164
- };
165
- /**
166
- * @param {?=} params
167
- * @param {?=} requestOptions
168
- * @param {?=} onNext
169
- * @return {?}
170
- */
171
- CallableLink.prototype.callWith = /**
172
- * @param {?=} params
173
- * @param {?=} requestOptions
174
- * @param {?=} onNext
175
- * @return {?}
176
- */
177
- function (params, requestOptions, onNext) {
178
- if (params === void 0) { params = null; }
179
- if (requestOptions === void 0) { requestOptions = null; }
180
- return (/** @type {?} */ (this.callWithObs(params, requestOptions).toPromise().then(onNext)));
181
- };
182
- /**
183
- * @param {?=} params
184
- * @param {?=} requestOptions
185
- * @return {?}
186
- */
187
- CallableLink.prototype.callWithObs = /**
188
- * @param {?=} params
189
- * @param {?=} requestOptions
190
- * @return {?}
191
- */
192
- function (params, requestOptions) {
193
- if (params === void 0) { params = null; }
194
- if (requestOptions === void 0) { requestOptions = null; }
195
- if (this.link == null) {
196
- throw Error('Can\'t use callWithObs without a provided link');
197
- }
198
- if (this.microClient == null) {
199
- throw Error('Can\'t use callWithObs without a provided microClient');
200
- }
201
- /** @type {?} */
202
- var paramsToUse = null;
203
- if (this.callParams != null) {
204
- paramsToUse = Object.assign(new MicroObject(), this.callParams);
205
- }
206
- if (params) {
207
- if (paramsToUse == null) {
208
- paramsToUse = new MicroObject();
209
- }
210
- paramsToUse = Object.assign(paramsToUse, params);
211
- }
212
- /** @type {?} */
213
- var optionsToUse = null;
214
- if (this.requestOptions != null) {
215
- optionsToUse = Object.assign(new MicroObject(), this.requestOptions);
216
- }
217
- if (requestOptions) {
218
- if (optionsToUse == null) {
219
- optionsToUse = new MicroObject();
220
- }
221
- optionsToUse = Object.assign(optionsToUse, requestOptions);
222
- }
223
- return (/** @type {?} */ (this.microClient.load(this.link, paramsToUse, optionsToUse)));
224
- };
225
- /**
226
- * @return {?}
227
- */
228
- CallableLink.prototype.copy = /**
229
- * @return {?}
230
- */
231
- function () {
232
- return new CallableLink(this.link, this.microClient, this.callParams, this.requestOptions);
233
- };
234
- /**
235
- * @param {?} callParams
236
- * @param {?=} requestOptions
237
- * @return {?}
238
- */
239
- CallableLink.prototype.withCallParams = /**
240
- * @param {?} callParams
241
- * @param {?=} requestOptions
242
- * @return {?}
243
- */
244
- function (callParams, requestOptions) {
245
- if (requestOptions === void 0) { requestOptions = this.requestOptions; }
246
- return new CallableLink(this.link, this.microClient, callParams, requestOptions);
247
- };
248
- /**
249
- * @return {?}
250
- */
251
- CallableLink.prototype.toJSON = /**
252
- * @return {?}
253
- */
254
- function () {
255
- if (this.serializeTo) {
256
- return this.serializeTo(this.link, this.callParams, this.requestOptions, undefined, undefined);
257
- }
258
- else {
259
- return undefined;
260
- }
261
- };
262
- return CallableLink;
263
- }());
264
- /**
265
- * @template T
266
- */
267
- export { CallableLink };
268
- if (false) {
269
- /** @type {?} */
270
- CallableLink.prototype.serializeTo;
271
- /**
272
- * @type {?}
273
- * @protected
274
- */
275
- CallableLink.prototype.link;
276
- /**
277
- * @type {?}
278
- * @protected
279
- */
280
- CallableLink.prototype.microClient;
281
- /**
282
- * @type {?}
283
- * @protected
284
- */
285
- CallableLink.prototype.callParams;
286
- /**
287
- * @type {?}
288
- * @protected
289
- */
290
- CallableLink.prototype.requestOptions;
291
- }
292
- // @dynamic
293
- var LinkSerializer = /** @class */ (function () {
294
- function LinkSerializer() {
295
- }
296
- LinkSerializer.DONT_SERIALIZE = (/**
297
- * @return {?}
298
- */
299
- function () {
300
- return undefined;
301
- });
302
- LinkSerializer.AS_LINK = (/**
303
- * @param {?} link
304
- * @return {?}
305
- */
306
- function (link) {
307
- return link;
308
- });
309
- LinkSerializer.AS_VALUE_IF_INITIALIZED = (/**
310
- * @param {?} link
311
- * @param {?} callParams
312
- * @param {?} requestOptions
313
- * @param {?} value
314
- * @param {?} isInitialized
315
- * @return {?}
316
- */
317
- function (link, callParams, requestOptions, value, isInitialized) {
318
- if (isInitialized) {
319
- return value;
320
- }
321
- else {
322
- return undefined;
323
- }
324
- });
325
- return LinkSerializer;
326
- }());
327
- export { LinkSerializer };
328
- if (false) {
329
- /** @type {?} */
330
- LinkSerializer.DONT_SERIALIZE;
331
- /** @type {?} */
332
- LinkSerializer.AS_LINK;
333
- /** @type {?} */
334
- LinkSerializer.AS_VALUE_IF_INITIALIZED;
335
- }
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGVsaW5rLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2NhbGxhYmxlbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFFekM7Ozs7SUFFSSxzQkFDYyxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsVUFBeUIsRUFDekIsY0FBNkI7UUFEN0IsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFIN0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFJcEMsZ0JBQVcsR0FBMEcsY0FBYyxDQUFDLGNBQWMsQ0FBQztJQUYxSixDQUFDOzs7O0lBSUQsOEJBQU87OztJQUFQO1FBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztJQUM3QixDQUFDOzs7O0lBRUQsOEJBQU87OztJQUFQO1FBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7Ozs7OztJQUVELG9DQUFhOzs7OztJQUFiLFVBQWMsR0FBVyxFQUFFLFNBQTBCO1FBQTFCLDBCQUFBLEVBQUEsaUJBQTBCO1FBQ2pELE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7O0lBRUQsc0NBQWU7OztJQUFmOztZQUNRLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDO1FBQ3JELElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtZQUNoQixN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QkFBTzs7OztJQUFHLFVBQVUsSUFBWTtRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLEVBQUM7SUFFWSxzQ0FBdUI7Ozs7Ozs7O0lBQUcsVUFBVSxJQUFZLEVBQUUsVUFBa0IsRUFBRSxjQUFzQixFQUFFLEtBQVUsRUFBRSxhQUFzQjtRQUMxSSxJQUFJLGFBQWEsRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDSCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtJQUNMLENBQUMsRUFBQztJQUNOLHFCQUFDO0NBQUEsQUFoQkQsSUFnQkM7U0FoQlksY0FBYzs7O0lBQ3ZCLDhCQUVFOztJQUVGLHVCQUVFOztJQUVGLHVDQU1FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNaWNyb0NsaWVudH0gZnJvbSAnLi4vbWljcm9jbGllbnQuc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtQYXJhbVV0aWxzfSBmcm9tICcuLi9wYXJhbXV0aWxzJztcblxuZXhwb3J0IGNsYXNzIENhbGxhYmxlTGluazxUPiB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGxpbms6IHN0cmluZyxcbiAgICAgICAgcHJvdGVjdGVkIG1pY3JvQ2xpZW50OiBNaWNyb0NsaWVudCxcbiAgICAgICAgcHJvdGVjdGVkIGNhbGxQYXJhbXM6IG9iamVjdCA9IG51bGwsXG4gICAgICAgIHByb3RlY3RlZCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gbnVsbFxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXJpYWxpemVUbzogKGxpbms6IHN0cmluZywgY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0LCB2YWx1ZTogYW55LCBpc0luaXRpYWxpemVkOiBib29sZWFuKSA9PiBhbnkgPSBMaW5rU2VyaWFsaXplci5ET05UX1NFUklBTElaRTtcblxuICAgIGhhc0xpbmsoKTogQm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmsgIT0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRMaW5rKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbms7XG4gICAgfVxuXG4gICAgZ2V0UXVlcnlQYXJhbShrZXk6IHN0cmluZywgdXJsRGVjb2RlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIFBhcmFtVXRpbHMuZ2V0UGFyYW0odGhpcy5saW5rLCBrZXksIHVybERlY29kZSk7XG4gICAgfVxuXG4gICAgZ2V0U2lnbmVkUGFyYW1zKCk6IE1pY3JvT2JqZWN0IHwgTWljcm9PYmplY3RbXSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLmdldFNpZ25lZE1pY3JvT2JqZWN0UGFyYW0oJ3BhcmFtcycpO1xuICAgICAgICBpZiAocGFyYW1zID09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHRoaXMuZ2V0U2lnbmVkTWljcm9PYmplY3RQYXJhbSgnYlBhcmFtcycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgZ2V0T3BlblBhcmFtcyhjb3B5OiBib29sZWFuID0gZmFsc2UpOiBNaWNyb09iamVjdCB8IE1pY3JvT2JqZWN0W10ge1xuICAgICAgICBsZXQgcGFyYW1zOiBNaWNyb09iamVjdCB8IE1pY3JvT2JqZWN0W10gPSB0aGlzLmdldE1pY3JvT2JqZWN0UGFyYW0oJ29QYXJhbXMnKTtcbiAgICAgICAgaWYgKHBhcmFtcyA9PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSB0aGlzLmdldE1pY3JvT2JqZWN0UGFyYW0oJ2JPUGFyYW1zJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY29weSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IE1pY3JvT2JqZWN0LmZyb21TdHJpbmcoSlNPTi5zdHJpbmdpZnkocGFyYW1zKSwgdGhpcy5taWNyb0NsaWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNhbGxQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHBhcmFtcywgdGhpcy5jYWxsUGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIGdldE9wdGlvbnMoKTogTWljcm9PYmplY3Qge1xuICAgICAgICBsZXQgb3B0aW9ucyA9IHRoaXMuZ2V0TWljcm9PYmplY3RQYXJhbSgnb3B0aW9ucycpO1xuXG4gICAgICAgIGlmICh0aGlzLnJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucyA9IG5ldyBNaWNyb09iamVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNpZ25lZE1pY3JvT2JqZWN0UGFyYW0oa2V5OiBzdHJpbmcpOiBNaWNyb09iamVjdCB7XG4gICAgICAgIGNvbnN0IHBhcmFtc1N0ciA9IFBhcmFtVXRpbHMuZ2V0UGFyYW0odGhpcy5saW5rLCBrZXksIGZhbHNlKTtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG51bGw7XG4gICAgICAgIGlmIChwYXJhbXNTdHIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0dGVkID0gcGFyYW1zU3RyLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBpZiAoc3BsaXR0ZWQubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIHNpZ25lZCBxdWVyeSBwYXJhbSB0byBoYXZlIGEgSldUIGxpa2Ugc3RydWN0dXJlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJhbXMgPSBNaWNyb09iamVjdC5mcm9tU3RyaW5nKGF0b2Ioc3BsaXR0ZWRbMV0pLCB0aGlzLm1pY3JvQ2xpZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIGdldE1pY3JvT2JqZWN0UGFyYW0oa2V5OiBzdHJpbmcpOiBNaWNyb09iamVjdCB7XG4gICAgICAgIGNvbnN0IHBhcmFtc1N0ciA9IFBhcmFtVXRpbHMuZ2V0UGFyYW0odGhpcy5saW5rLCBrZXksIHRydWUpO1xuICAgICAgICBsZXQgcGFyYW1zID0gbnVsbDtcbiAgICAgICAgaWYgKHBhcmFtc1N0cikge1xuICAgICAgICAgICAgcGFyYW1zID0gTWljcm9PYmplY3QuZnJvbVN0cmluZyhwYXJhbXNTdHIsIHRoaXMubWljcm9DbGllbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgY2FsbChvbk5leHQ6IChUKSA9PiB2b2lkKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxXaXRoKG51bGwsIG51bGwsIG9uTmV4dCk7XG4gICAgfVxuXG4gICAgY2FsbFdpdGgocGFyYW1zOiBvYmplY3QgPSBudWxsLCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gbnVsbCwgb25OZXh0OiAoVCkgPT4gdm9pZCk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gPFByb21pc2U8VD4+dGhpcy5jYWxsV2l0aE9icyhwYXJhbXMsIHJlcXVlc3RPcHRpb25zKS50b1Byb21pc2UoKS50aGVuKG9uTmV4dCk7XG4gICAgfVxuXG4gICAgY2FsbFdpdGhPYnMocGFyYW1zOiBvYmplY3QgPSBudWxsLCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gbnVsbCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy5saW5rID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdDYW5cXCd0IHVzZSBjYWxsV2l0aE9icyB3aXRob3V0IGEgcHJvdmlkZWQgbGluaycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pY3JvQ2xpZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdDYW5cXCd0IHVzZSBjYWxsV2l0aE9icyB3aXRob3V0IGEgcHJvdmlkZWQgbWljcm9DbGllbnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXJhbXNUb1VzZSA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmNhbGxQYXJhbXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyYW1zVG9Vc2UgPSBPYmplY3QuYXNzaWduKG5ldyBNaWNyb09iamVjdCgpLCB0aGlzLmNhbGxQYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgIGlmIChwYXJhbXNUb1VzZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zVG9Vc2UgPSBuZXcgTWljcm9PYmplY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtc1RvVXNlID0gT2JqZWN0LmFzc2lnbihwYXJhbXNUb1VzZSwgcGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvcHRpb25zVG9Vc2UgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5yZXF1ZXN0T3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICAgICAgICBvcHRpb25zVG9Vc2UgPSBPYmplY3QuYXNzaWduKG5ldyBNaWNyb09iamVjdCgpLCB0aGlzLnJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zVG9Vc2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNUb1VzZSA9IG5ldyBNaWNyb09iamVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9uc1RvVXNlID0gT2JqZWN0LmFzc2lnbihvcHRpb25zVG9Vc2UsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxUPj50aGlzLm1pY3JvQ2xpZW50LmxvYWQodGhpcy5saW5rLCBwYXJhbXNUb1VzZSwgb3B0aW9uc1RvVXNlKTtcbiAgICB9XG5cbiAgICBjb3B5KCk6IENhbGxhYmxlTGluazxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FsbGFibGVMaW5rKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zKTtcbiAgICB9XG5cbiAgICB3aXRoQ2FsbFBhcmFtcyhjYWxsUGFyYW1zOiBvYmplY3QsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSB0aGlzLnJlcXVlc3RPcHRpb25zKTogQ2FsbGFibGVMaW5rPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYWxsYWJsZUxpbmsodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCBjYWxsUGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgdG9KU09OKCk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLnNlcmlhbGl6ZVRvKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVUbyh0aGlzLmxpbmssIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucywgdW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBMaW5rU2VyaWFsaXplciB7XG4gICAgcHVibGljIHN0YXRpYyBET05UX1NFUklBTElaRSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgcHVibGljIHN0YXRpYyBBU19MSU5LID0gZnVuY3Rpb24gKGxpbms6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gbGluaztcbiAgICB9O1xuXG4gICAgcHVibGljIHN0YXRpYyBBU19WQUxVRV9JRl9JTklUSUFMSVpFRCA9IGZ1bmN0aW9uIChsaW5rOiBzdHJpbmcsIGNhbGxQYXJhbXM6IG9iamVjdCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCwgdmFsdWU6IGFueSwgaXNJbml0aWFsaXplZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH07XG59XG4iXX0=