ng2-rest 19.0.2 → 19.0.3

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 (56) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/content-type.mjs +13 -0
  3. package/browser/esm2022/lib/cookie.mjs +29 -0
  4. package/browser/esm2022/lib/helpers.mjs +24 -0
  5. package/browser/esm2022/lib/index.mjs +13 -0
  6. package/browser/esm2022/lib/mapping.mjs +250 -0
  7. package/browser/esm2022/lib/models.mjs +172 -0
  8. package/browser/esm2022/lib/other/simple-resource.mjs +118 -0
  9. package/browser/esm2022/lib/params.mjs +279 -0
  10. package/browser/esm2022/lib/request-cache.mjs +101 -0
  11. package/browser/esm2022/lib/resource-service.mjs +220 -0
  12. package/browser/esm2022/lib/rest-headers.mjs +129 -0
  13. package/browser/esm2022/lib/rest-request.mjs +325 -0
  14. package/browser/esm2022/lib/rest.class.mjs +120 -0
  15. package/browser/esm2022/ng2-rest.mjs +5 -0
  16. package/browser/esm2022/public-api.mjs +2 -0
  17. package/browser/fesm2022/ng2-rest.mjs.map +1 -1
  18. package/browser/package.json +1 -1
  19. package/client/esm2022/lib/content-type.mjs +13 -0
  20. package/client/esm2022/lib/cookie.mjs +29 -0
  21. package/client/esm2022/lib/helpers.mjs +24 -0
  22. package/client/esm2022/lib/index.mjs +13 -0
  23. package/client/esm2022/lib/mapping.mjs +250 -0
  24. package/client/esm2022/lib/models.mjs +172 -0
  25. package/client/esm2022/lib/other/simple-resource.mjs +118 -0
  26. package/client/esm2022/lib/params.mjs +279 -0
  27. package/client/esm2022/lib/request-cache.mjs +101 -0
  28. package/client/esm2022/lib/resource-service.mjs +220 -0
  29. package/client/esm2022/lib/rest-headers.mjs +129 -0
  30. package/client/esm2022/lib/rest-request.mjs +325 -0
  31. package/client/esm2022/lib/rest.class.mjs +120 -0
  32. package/client/esm2022/ng2-rest.mjs +5 -0
  33. package/client/esm2022/public-api.mjs +2 -0
  34. package/client/fesm2022/ng2-rest.mjs.map +1 -1
  35. package/client/package.json +1 -1
  36. package/lib/build-info._auto-generated_.d.ts +1 -1
  37. package/lib/build-info._auto-generated_.js +1 -1
  38. package/package.json +1 -1
  39. package/tmp-environment.json +4 -3
  40. package/websql/esm2022/lib/content-type.mjs +13 -0
  41. package/websql/esm2022/lib/cookie.mjs +29 -0
  42. package/websql/esm2022/lib/helpers.mjs +24 -0
  43. package/websql/esm2022/lib/index.mjs +13 -0
  44. package/websql/esm2022/lib/mapping.mjs +250 -0
  45. package/websql/esm2022/lib/models.mjs +172 -0
  46. package/websql/esm2022/lib/other/simple-resource.mjs +118 -0
  47. package/websql/esm2022/lib/params.mjs +279 -0
  48. package/websql/esm2022/lib/request-cache.mjs +101 -0
  49. package/websql/esm2022/lib/resource-service.mjs +220 -0
  50. package/websql/esm2022/lib/rest-headers.mjs +129 -0
  51. package/websql/esm2022/lib/rest-request.mjs +325 -0
  52. package/websql/esm2022/lib/rest.class.mjs +120 -0
  53. package/websql/esm2022/ng2-rest.mjs +5 -0
  54. package/websql/esm2022/public-api.mjs +2 -0
  55. package/websql/fesm2022/ng2-rest.mjs.map +1 -1
  56. package/websql/package.json +1 -1
@@ -0,0 +1,325 @@
1
+ import { firstValueFrom, Observable } from 'rxjs';
2
+ import { Subject } from 'rxjs';
3
+ import { _ } from 'tnp-core/browser';
4
+ import { Models } from './models';
5
+ import { RestHeaders } from './rest-headers';
6
+ import { Helpers } from 'tnp-core/browser';
7
+ import { Level } from 'ng2-logger/browser';
8
+ import axios from 'axios';
9
+ import { Resource } from './resource-service';
10
+ import { Log } from 'ng2-logger/browser';
11
+ import { RequestCache } from './request-cache';
12
+ const log = Log.create('[ng2-rest] rest-request', Level.__NOTHING);
13
+ /**
14
+ * TODO refactor this (remove jobid)
15
+ */
16
+ const jobIDkey = 'jobID';
17
+ const customObs = 'customObs';
18
+ const cancelFn = 'cancelFn';
19
+ const isCanceled = 'isCanceled';
20
+ export class RestRequest {
21
+ constructor() {
22
+ this.subjectInuUse = {};
23
+ this.meta = {};
24
+ this.replaySubjects = {};
25
+ }
26
+ static { this.jobId = 0; }
27
+ handlerResult(options, sourceRequest) {
28
+ if (_.isUndefined(options)) {
29
+ options = {};
30
+ }
31
+ const { res, jobid, isArray, method } = options;
32
+ if (typeof res !== 'object') {
33
+ throw new Error('No resposnse for request. ');
34
+ }
35
+ if (Helpers.isBrowser) {
36
+ res.headers = RestHeaders.from(res.headers);
37
+ }
38
+ if (res.error) {
39
+ this.subjectInuUse[jobid].error(new Models.HttpResponseError(res.error, res.data, res.headers, res.code, jobid));
40
+ return;
41
+ }
42
+ const entity = this.meta[jobid].entity;
43
+ const circular = this.meta[jobid].circular;
44
+ const success = Resource['_listenSuccess'];
45
+ const reqResp = new Models.HttpResponse(sourceRequest, res.data, res.headers, res.code, entity, circular, jobid, isArray);
46
+ success.next(reqResp);
47
+ this.subjectInuUse[jobid].next(reqResp);
48
+ this.meta[jobid] = void 0;
49
+ this.subjectInuUse[jobid].complete();
50
+ }
51
+ checkCache(sourceRequest, jobid) {
52
+ const existedInCache = RequestCache.findBy(sourceRequest);
53
+ if (existedInCache) {
54
+ const success = Resource['_listenSuccess'];
55
+ success.next(existedInCache.response);
56
+ this.subjectInuUse[jobid].next(existedInCache);
57
+ this.subjectInuUse[jobid].complete();
58
+ return true;
59
+ }
60
+ return false;
61
+ }
62
+ async req(url, method, headers, body, jobid, isArray = false, mockHttp) {
63
+ if (this.checkCache({
64
+ url,
65
+ body,
66
+ isArray,
67
+ method
68
+ }, jobid)) {
69
+ return;
70
+ }
71
+ const CancelToken = axios.CancelToken;
72
+ const source = CancelToken.source();
73
+ this.subjectInuUse[jobid][cancelFn] = source.cancel;
74
+ var response;
75
+ if (mockHttp) {
76
+ if (typeof mockHttp === 'object') {
77
+ response = {
78
+ data: mockHttp.data,
79
+ status: mockHttp.code,
80
+ headers: mockHttp.headers,
81
+ statusText: mockHttp.error,
82
+ config: {}
83
+ };
84
+ }
85
+ else if (typeof mockHttp === 'function') {
86
+ const r = mockHttp(url, method, headers, body);
87
+ response = {
88
+ data: r.data,
89
+ status: r.code,
90
+ headers: r.headers,
91
+ statusText: r.error,
92
+ config: {}
93
+ };
94
+ }
95
+ }
96
+ const headersJson = headers.toJSON();
97
+ const responseType = headersJson.responsetypeaxios ? headersJson.responsetypeaxios : 'text';
98
+ try {
99
+ if (!response) {
100
+ response = await axios({
101
+ url,
102
+ method,
103
+ data: body,
104
+ responseType,
105
+ headers: headersJson,
106
+ cancelToken: source.token,
107
+ });
108
+ }
109
+ if (this.subjectInuUse[jobid][isCanceled]) {
110
+ return;
111
+ }
112
+ this.handlerResult({
113
+ res: {
114
+ code: response.status,
115
+ data: response.data,
116
+ isArray,
117
+ jobid,
118
+ headers: RestHeaders.from(response.headers)
119
+ },
120
+ method,
121
+ jobid,
122
+ isArray
123
+ }, {
124
+ url,
125
+ body,
126
+ method,
127
+ isArray,
128
+ });
129
+ }
130
+ catch (catchedError) {
131
+ if (this.subjectInuUse[jobid][isCanceled]) {
132
+ return;
133
+ }
134
+ if (typeof catchedError === 'object' && catchedError.response && catchedError.response.data) {
135
+ const err = catchedError.response.data;
136
+ const msg = catchedError.response.data.message || '';
137
+ let stack = (err.stack || '').split('\n');
138
+ const errObs = Resource['_listenErrors'];
139
+ errObs.next({
140
+ msg,
141
+ stack,
142
+ data: catchedError.response.data
143
+ });
144
+ }
145
+ const error = (catchedError && catchedError.response) ? `[${catchedError.response.statusText}]: ` : '';
146
+ this.handlerResult({
147
+ res: {
148
+ code: (catchedError && catchedError.response) ? catchedError.response.status : void 0,
149
+ error: `${error}${catchedError.message}`,
150
+ data: (catchedError && catchedError.response) ? JSON.stringify(catchedError.response.data) : void 0,
151
+ isArray,
152
+ jobid,
153
+ headers: RestHeaders.from(catchedError && catchedError.response && catchedError.response.headers)
154
+ },
155
+ method,
156
+ jobid,
157
+ isArray
158
+ }, {
159
+ url,
160
+ body,
161
+ isArray,
162
+ method
163
+ });
164
+ }
165
+ }
166
+ getReplay(method, meta, onlyGetLastReplayForMethod) {
167
+ let replay;
168
+ if (_.isUndefined(this.replaySubjects[meta.endpoint])) {
169
+ this.replaySubjects[meta.endpoint] = {};
170
+ }
171
+ if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path])) {
172
+ this.replaySubjects[meta.endpoint][meta.path] = {};
173
+ }
174
+ if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method])) {
175
+ this.replaySubjects[meta.endpoint][meta.path][method] = {};
176
+ }
177
+ const objectIDToCreateOrLast = (Object.keys(this.replaySubjects[meta.endpoint][meta.path][method]).length) +
178
+ (onlyGetLastReplayForMethod ? 0 : 1);
179
+ if (onlyGetLastReplayForMethod && (objectIDToCreateOrLast === 0)) {
180
+ return replay;
181
+ }
182
+ if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast])) {
183
+ this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast] = {
184
+ subject: new Subject(),
185
+ data: void 0,
186
+ };
187
+ }
188
+ replay = this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast];
189
+ if (!_.isNumber(replay.id)) {
190
+ if (RestRequest.jobId === Number.MAX_SAFE_INTEGER) {
191
+ RestRequest.jobId = 0;
192
+ }
193
+ const jobid = RestRequest.jobId++;
194
+ replay.id = jobid;
195
+ const subject = replay.subject;
196
+ subject[jobIDkey] = jobid; // modify internal rxjs subject obj
197
+ this.meta[jobid] = meta;
198
+ this.subjectInuUse[jobid] = subject;
199
+ this.subjectInuUse[jobid][customObs] = new Observable((observer) => {
200
+ observer.add(() => {
201
+ if (!this.subjectInuUse[jobid][isCanceled]) {
202
+ this.subjectInuUse[jobid][isCanceled] = true;
203
+ if (typeof this.subjectInuUse[jobid][cancelFn] === 'function') {
204
+ this.subjectInuUse[jobid][cancelFn]('[ng2-rest] on purpose canceled http request');
205
+ }
206
+ }
207
+ else {
208
+ }
209
+ });
210
+ const sub = subject.subscribe({
211
+ next: a => observer.next(a),
212
+ error: a => observer.error(a),
213
+ complete: () => {
214
+ sub.unsubscribe();
215
+ observer.complete();
216
+ },
217
+ });
218
+ });
219
+ }
220
+ return replay;
221
+ }
222
+ generalReq(method, url, body, headers, meta, isArray, mockHttp) {
223
+ const replay = this.getReplay(method, meta, false);
224
+ replay.data = { url, body, headers, isArray };
225
+ ((pthis, purl, pmethod, pheaders, pbody, pid, pisArray, pmockHttp) => {
226
+ setTimeout(() => pthis.req(purl, pmethod, pheaders, pbody, pid, pisArray, pmockHttp));
227
+ })(this, url, method, headers, body, replay.id, isArray, mockHttp);
228
+ const resp = firstValueFrom(replay.subject[customObs]);
229
+ resp.observable = replay.subject[customObs];
230
+ resp.cache = RequestCache.findBy({
231
+ body,
232
+ isArray,
233
+ method,
234
+ url
235
+ });
236
+ return resp;
237
+ }
238
+ get(url, body, headers, meta, isArray, mockHttp) {
239
+ return this.generalReq('get', url, body, headers, meta, isArray, mockHttp);
240
+ }
241
+ head(url, body, headers, meta, isArray, mockHttp) {
242
+ return this.generalReq('head', url, body, headers, meta, isArray, mockHttp);
243
+ }
244
+ delete(url, body, headers, meta, isArray, mockHttp) {
245
+ return this.generalReq('delete', url, body, headers, meta, isArray, mockHttp);
246
+ }
247
+ post(url, body, headers, meta, isArray, mockHttp) {
248
+ return this.generalReq('post', url, body, headers, meta, isArray, mockHttp);
249
+ }
250
+ put(url, body, headers, meta, isArray, mockHttp) {
251
+ return this.generalReq('put', url, body, headers, meta, isArray, mockHttp);
252
+ }
253
+ patch(url, body, headers, meta, isArray, mockHttp) {
254
+ return this.generalReq('patch', url, body, headers, meta, isArray, mockHttp);
255
+ }
256
+ jsonp(url, body, headers, meta, isArray, mockHttp) {
257
+ const replay = this.getReplay('jsonp', meta, false);
258
+ const jobid = replay.id;
259
+ const method = 'jsonp';
260
+ setTimeout(() => {
261
+ if (url.endsWith('/'))
262
+ url = url.slice(0, url.length - 1);
263
+ let num = Math.round(10000 * Math.random());
264
+ let callbackMethodName = "cb_" + num;
265
+ window[callbackMethodName] = (data) => {
266
+ if (this.checkCache({
267
+ url,
268
+ body,
269
+ isArray,
270
+ method
271
+ }, jobid)) {
272
+ return;
273
+ }
274
+ this.handlerResult({
275
+ res: {
276
+ data, isArray
277
+ },
278
+ method,
279
+ jobid,
280
+ isArray
281
+ }, {
282
+ url,
283
+ body,
284
+ isArray,
285
+ method,
286
+ });
287
+ };
288
+ let sc = document.createElement('script');
289
+ sc.src = `${url}?callback=${callbackMethodName}`;
290
+ document.body.appendChild(sc);
291
+ document.body.removeChild(sc);
292
+ });
293
+ const resp = firstValueFrom(replay.subject[customObs]);
294
+ resp.observable = replay.subject[customObs];
295
+ console.log('assiging custom observable');
296
+ resp.cache = RequestCache.findBy({
297
+ body,
298
+ isArray,
299
+ method,
300
+ url
301
+ });
302
+ return resp;
303
+ }
304
+ replay(method, meta) {
305
+ const replay = this.getReplay(method, meta, true);
306
+ if (!replay || !replay.data) {
307
+ console.warn(`Canno replay first ${method} request from ${meta.endpoint}/${meta.path}`);
308
+ return;
309
+ }
310
+ ;
311
+ if (replay && replay.subject && Array.isArray(replay.subject.observers) &&
312
+ replay.subject.observers.length === 0) {
313
+ console.warn(`No observators for ${method} request from ${meta.endpoint}/${meta.path}`);
314
+ return;
315
+ }
316
+ const url = replay.data.url;
317
+ const headers = replay.data.headers;
318
+ const body = replay.data.body;
319
+ const isArray = replay.data.isArray;
320
+ setTimeout(() => this.req(url, method, headers, body, replay.id, isArray));
321
+ }
322
+ }
323
+ ;
324
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest-request.ts
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9yZXN0LXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFVLE1BQU0sb0JBQW9CLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQzVDLEtBQUssQ0FBQyxTQUFTLENBQ2xCLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQztBQUN6QixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFDOUIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUtoQyxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUlVLGtCQUFhLEdBQW1DLEVBQUUs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LEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7O0FBSUYsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx5REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuXG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBSZXN0SGVhZGVycyB9IGZyb20gJy4vcmVzdC1oZWFkZXJzJztcblxuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL2Jyb3dzZXInO1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVzcG9uc2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2Utc2VydmljZSc7XG5pbXBvcnQgeyBMb2csIExvZ2dlciB9IGZyb20gJ25nMi1sb2dnZXIvYnJvd3Nlcic7XG5cbmltcG9ydCB7IFJlcXVlc3RDYWNoZSB9IGZyb20gJy4vcmVxdWVzdC1jYWNoZSc7XG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKCdbbmcyLXJlc3RdIHJlc3QtcmVxdWVzdCdcbiAgLCBMZXZlbC5fX05PVEhJTkdcbilcblxuLyoqXG4gKiBUT0RPIHJlZmFjdG9yIHRoaXMgKHJlbW92ZSBqb2JpZClcbiAqL1xuY29uc3Qgam9iSURrZXkgPSAnam9iSUQnO1xuY29uc3QgY3VzdG9tT2JzID0gJ2N1c3RvbU9icyc7XG5jb25zdCBjYW5jZWxGbiA9ICdjYW5jZWxGbic7XG5jb25zdCBpc0NhbmNlbGVkID0gJ2lzQ2FuY2VsZWQnO1xuXG5cblxuXG5leHBvcnQgY2xhc3MgUmVzdFJlcXVlc3Qge1xuXG4gIHB1YmxpYyBzdGF0aWMgem9uZTtcbiAgcHJpdmF0ZSBzdGF0aWMgam9iSWQgPSAwO1xuICBwcml2YXRlIHN1YmplY3RJbnVVc2U6IHsgW2lkOiBudW1iZXJdOiBTdWJqZWN0PGFueT4gfSA9IHt9O1xuICBwcml2YXRlIG1ldGE6IHsgW2lkOiBudW1iZXJdOiBNb2RlbHMuTWV0YVJlcXVlc3QgfSA9IHt9O1xuXG5cbiAgcHJpdmF0ZSBoYW5kbGVyUmVzdWx0KG9wdGlvbnM6IE1vZGVscy5IYW5kbGVSZXN1bHRPcHRpb25zLFxuICAgIHNvdXJjZVJlcXVlc3Q6IE1vZGVscy5IYW5kbGVSZXN1bHRTb3VyY2VSZXF1ZXN0T3B0aW9ucykge1xuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMpKSB7XG4gICAgICBvcHRpb25zID0ge30gYXMgYW55O1xuICAgIH1cblxuICAgIGNvbnN0IHsgcmVzLCBqb2JpZCwgaXNBcnJheSwgbWV0aG9kIH0gPSBvcHRpb25zO1xuXG4gICAgaWYgKHR5cGVvZiByZXMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlc3Bvc25zZSBmb3IgcmVxdWVzdC4gJyk7XG4gICAgfVxuXG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICByZXMuaGVhZGVycyA9IFJlc3RIZWFkZXJzLmZyb20ocmVzLmhlYWRlcnMpO1xuICAgIH1cblxuXG4gICAgaWYgKHJlcy5lcnJvcikge1xuICAgICAgdGhpcy5zdWJqZWN0SW51VXNlW2pvYmlkXS5lcnJvcihuZXcgTW9kZWxzLkh0dHBSZXNwb25zZUVycm9yKHJlcy5lcnJvciwgcmVzLmRhdGEsIHJlcy5oZWFkZXJzLCByZXMuY29kZSwgam9iaWQpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5tZXRhW2pvYmlkXS5lbnRpdHk7XG4gICAgY29uc3QgY2lyY3VsYXIgPSB0aGlzLm1ldGFbam9iaWRdLmNpcmN1bGFyO1xuXG4gICAgY29uc3Qgc3VjY2VzcyA9IChSZXNvdXJjZVsnX2xpc3RlblN1Y2Nlc3MnXSBhcyBTdWJqZWN0PE1vZGVscy5IdHRwUmVzcG9uc2U8YW55Pj4pXG5cbiAgICBjb25zdCByZXFSZXNwID0gbmV3IE1vZGVscy5IdHRwUmVzcG9uc2Uoc291cmNlUmVxdWVzdCwgcmVzLmRhdGEsIHJlcy5oZWFkZXJzLCByZXMuY29kZSwgZW50aXR5LCBjaXJjdWxhciwgam9iaWQsIGlzQXJyYXkpO1xuICAgIHN1Y2Nlc3MubmV4dChyZXFSZXNwKTtcblxuICAgIHRoaXMuc3ViamVjdEludVVzZVtqb2JpZF0ubmV4dChyZXFSZXNwKTtcbiAgICB0aGlzLm1ldGFbam9iaWRdID0gdm9pZCAwO1xuICAgIHRoaXMuc3ViamVjdEludVVzZVtqb2JpZF0uY29tcGxldGUoKTtcbiAgfVxuICBjaGVja0NhY2hlKHNvdXJjZVJlcXVlc3Q6IE1vZGVscy5IYW5kbGVSZXN1bHRTb3VyY2VSZXF1ZXN0T3B0aW9ucywgam9iaWQ6IG51bWJlcikge1xuICAgIGNvbnN0IGV4aXN0ZWRJbkNhY2hlID0gUmVxdWVzdENhY2hlLmZpbmRCeShzb3VyY2VSZXF1ZXN0KTtcbiAgICBpZiAoZXhpc3RlZEluQ2FjaGUpIHtcblxuICAgICAgY29uc3Qgc3VjY2VzcyA9IChSZXNvdXJjZVsnX2xpc3RlblN1Y2Nlc3MnXSBhcyBTdWJqZWN0PE1vZGVscy5IdHRwUmVzcG9uc2U8YW55Pj4pO1xuICAgICAgc3VjY2Vzcy5uZXh0KGV4aXN0ZWRJbkNhY2hlLnJlc3BvbnNlKTtcbiAgICAgIHRoaXMuc3ViamVjdEludVVzZVtqb2JpZF0ubmV4dChleGlzdGVkSW5DYWNoZSk7XG4gICAgICB0aGlzLnN1YmplY3RJbnVVc2Vbam9iaWRdLmNvbXBsZXRlKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcShcbiAgICB1cmw6IHN0cmluZyxcbiAgICBtZXRob2Q6IE1vZGVscy5IdHRwTWV0aG9kLFxuICAgIGhlYWRlcnM/OiBSZXN0SGVhZGVycyxcbiAgICBib2R5PzogYW55LFxuICAgIGpvYmlkPzogbnVtYmVyLFxuICAgIGlzQXJyYXkgPSBmYWxzZSxcbiAgICBtb2NrSHR0cD86IE1vZGVscy5Nb2NrSHR0cFxuICApIHtcbiAgICBpZiAodGhpcy5jaGVja0NhY2hlKHtcbiAgICAgIHVybCxcbiAgICAgIGJvZHksXG4gICAgICBpc0FycmF5LFxuICAgICAgbWV0aG9kXG4gICAgfSwgam9iaWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgQ2FuY2VsVG9rZW4gPSBheGlvcy5DYW5jZWxUb2tlbjtcbiAgICBjb25zdCBzb3VyY2UgPSBDYW5jZWxUb2tlbi5zb3VyY2UoKTtcbiAgICB0aGlzLnN1YmplY3RJbnVVc2Vbam9iaWRdW2NhbmNlbEZuXSA9IHNvdXJjZS5jYW5jZWw7XG5cbiAgICB2YXIgcmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8YW55PjtcbiAgICBpZiAobW9ja0h0dHApIHtcblxuICAgICAgaWYgKHR5cGVvZiBtb2NrSHR0cCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgZGF0YTogbW9ja0h0dHAuZGF0YSxcbiAgICAgICAgICBzdGF0dXM6IG1vY2tIdHRwLmNvZGUsXG4gICAgICAgICAgaGVhZGVyczogbW9ja0h0dHAuaGVhZGVycyBhcyBhbnksXG4gICAgICAgICAgc3RhdHVzVGV4dDogbW9ja0h0dHAuZXJyb3IsXG4gICAgICAgICAgY29uZmlnOiB7fSBhcyBhbnlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbW9ja0h0dHAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgciA9IG1vY2tIdHRwKHVybCwgbWV0aG9kLCBoZWFkZXJzLCBib2R5KTtcbiAgICAgICAgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgZGF0YTogci5kYXRhLFxuICAgICAgICAgIHN0YXR1czogci5jb2RlLFxuICAgICAgICAgIGhlYWRlcnM6IHIuaGVhZGVycyBhcyBhbnksXG4gICAgICAgICAgc3RhdHVzVGV4dDogci5lcnJvcixcbiAgICAgICAgICBjb25maWc6IHt9IGFzIGFueVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBjb25zdCBoZWFkZXJzSnNvbiA9IGhlYWRlcnMudG9KU09OKCk7XG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gaGVhZGVyc0pzb24ucmVzcG9uc2V0eXBlYXhpb3MgPyBoZWFkZXJzSnNvbi5yZXNwb25zZXR5cGVheGlvcyA6ICd0ZXh0JztcblxuICAgIHRyeSB7XG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XG5cblxuXG5cbiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBkYXRhOiBib2R5LFxuICAgICAgICAgIHJlc3BvbnNlVHlwZSxcbiAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzSnNvbixcbiAgICAgICAgICBjYW5jZWxUb2tlbjogc291cmNlLnRva2VuLFxuXG4gICAgICAgIH0pO1xuXG4gICAgICB9XG5cblxuXG4gICAgICBpZiAodGhpcy5zdWJqZWN0SW51VXNlW2pvYmlkXVtpc0NhbmNlbGVkXSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaGFuZGxlclJlc3VsdCh7XG4gICAgICAgIHJlczoge1xuICAgICAgICAgIGNvZGU6IHJlc3BvbnNlLnN0YXR1cyBhcyBhbnksXG4gICAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICBpc0FycmF5LFxuICAgICAgICAgIGpvYmlkLFxuICAgICAgICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLmZyb20ocmVzcG9uc2UuaGVhZGVycyBhcyBhbnkpXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgam9iaWQsXG4gICAgICAgIGlzQXJyYXlcbiAgICAgIH0sIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBib2R5LFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIGlzQXJyYXksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChjYXRjaGVkRXJyb3IpIHtcbiAgICAgIGlmICh0aGlzLnN1YmplY3RJbnVVc2Vbam9iaWRdW2lzQ2FuY2VsZWRdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuXG4gICAgICBpZiAodHlwZW9mIGNhdGNoZWRFcnJvciA9PT0gJ29iamVjdCcgJiYgY2F0Y2hlZEVycm9yLnJlc3BvbnNlICYmIGNhdGNoZWRFcnJvci5yZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IGNhdGNoZWRFcnJvci5yZXNwb25zZS5kYXRhO1xuICAgICAgICBjb25zdCBtc2c6IHN0cmluZyA9IGNhdGNoZWRFcnJvci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UgfHwgJyc7XG5cblxuXG4gICAgICAgIGxldCBzdGFjazogc3RyaW5nW10gPSAoZXJyLnN0YWNrIHx8ICcnKS5zcGxpdCgnXFxuJyk7XG5cbiAgICAgICAgY29uc3QgZXJyT2JzID0gKFJlc291cmNlWydfbGlzdGVuRXJyb3JzJ10gYXMgU3ViamVjdDxNb2RlbHMuQmFja2VuZEVycm9yPik7XG4gICAgICAgIGVyck9icy5uZXh0KHtcbiAgICAgICAgICBtc2csXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgZGF0YTogY2F0Y2hlZEVycm9yLnJlc3BvbnNlLmRhdGFcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBlcnJvciA9IChjYXRjaGVkRXJyb3IgJiYgY2F0Y2hlZEVycm9yLnJlc3BvbnNlKSA/IGBbJHtjYXRjaGVkRXJyb3IucmVzcG9uc2Uuc3RhdHVzVGV4dH1dOiBgIDogJyc7XG4gICAgICB0aGlzLmhhbmRsZXJSZXN1bHQoe1xuICAgICAgICByZXM6IHtcbiAgICAgICAgICBjb2RlOiAoY2F0Y2hlZEVycm9yICYmIGNhdGNoZWRFcnJvci5yZXNwb25zZSkgPyBjYXRjaGVkRXJyb3IucmVzcG9uc2Uuc3RhdHVzIGFzIGFueSA6IHZvaWQgMCxcbiAgICAgICAgICBlcnJvcjogYCR7ZXJyb3J9JHtjYXRjaGVkRXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgIGRhdGE6IChjYXRjaGVkRXJyb3IgJiYgY2F0Y2hlZEVycm9yLnJlc3BvbnNlKSA/IEpTT04uc3RyaW5naWZ5KGNhdGNoZWRFcnJvci5yZXNwb25zZS5kYXRhKSA6IHZvaWQgMCxcbiAgICAgICAgICBpc0FycmF5LFxuICAgICAgICAgIGpvYmlkLFxuICAgICAgICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLmZyb20oY2F0Y2hlZEVycm9yICYmIGNhdGNoZWRFcnJvci5yZXNwb25zZSAmJiBjYXRjaGVkRXJyb3IucmVzcG9uc2UuaGVhZGVycylcbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBqb2JpZCxcbiAgICAgICAgaXNBcnJheVxuICAgICAgfSwge1xuICAgICAgICB1cmwsXG4gICAgICAgIGJvZHksXG4gICAgICAgIGlzQXJyYXksXG4gICAgICAgIG1ldGhvZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXBsYXkobWV0aG9kOiBNb2RlbHMuSHR0cE1ldGhvZCwgbWV0YTogTW9kZWxzLk1ldGFSZXF1ZXN0LCBvbmx5R2V0TGFzdFJlcGxheUZvck1ldGhvZDogYm9vbGVhbik6IE1vZGVscy5SZXBsYXlEYXRhIHtcbiAgICBsZXQgcmVwbGF5OiBNb2RlbHMuUmVwbGF5RGF0YTtcblxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5yZXBsYXlTdWJqZWN0c1ttZXRhLmVuZHBvaW50XSkpIHtcblxuICAgICAgdGhpcy5yZXBsYXlTdWJqZWN0c1ttZXRhLmVuZHBvaW50XSA9IHt9O1xuICAgIH1cbiAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLnJlcGxheVN1YmplY3RzW21ldGEuZW5kcG9pbnRdW21ldGEucGF0aF0pKSB7XG5cbiAgICAgIHRoaXMucmVwbGF5U3ViamVjdHNbbWV0YS5lbmRwb2ludF1bbWV0YS5wYXRoXSA9IHt9O1xuICAgIH1cbiAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLnJlcGxheVN1YmplY3RzW21ldGEuZW5kcG9pbnRdW21ldGEucGF0aF1bbWV0aG9kXSkpIHtcblxuICAgICAgdGhpcy5yZXBsYXlTdWJqZWN0c1ttZXRhLmVuZHBvaW50XVttZXRhLnBhdGhdW21ldGhvZF0gPSB7fTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG9iamVjdElEVG9DcmVhdGVPckxhc3QgPSAoT2JqZWN0LmtleXModGhpcy5yZXBsYXlTdWJqZWN0c1ttZXRhLmVuZHBvaW50XVttZXRhLnBhdGhdW21ldGhvZF0gYXMgT2JqZWN0KS5sZW5ndGgpICtcbiAgICAgIChvbmx5R2V0TGFzdFJlcGxheUZvck1ldGhvZCA/IDAgOiAxKTtcbiAgICBpZiAob25seUdldExhc3RSZXBsYXlGb3JNZXRob2QgJiYgKG9iamVjdElEVG9DcmVhdGVPckxhc3QgPT09IDApKSB7XG4gICAgICByZXR1cm4gcmVwbGF5O1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMucmVwbGF5U3ViamVjdHNbbWV0YS5lbmRwb2ludF1bbWV0YS5wYXRoXVttZXRob2RdW29iamVjdElEVG9DcmVhdGVPckxhc3RdKSkge1xuXG4gICAgICB0aGlzLnJlcGxheVN1YmplY3RzW21ldGEuZW5kcG9pbnRdW21ldGEucGF0aF1bbWV0aG9kXVtvYmplY3RJRFRvQ3JlYXRlT3JMYXN0XSA9IDxNb2RlbHMuUmVwbGF5RGF0YT57XG4gICAgICAgIHN1YmplY3Q6IG5ldyBTdWJqZWN0KCksXG4gICAgICAgIGRhdGE6IHZvaWQgMCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmVwbGF5ID0gdGhpcy5yZXBsYXlTdWJqZWN0c1ttZXRhLmVuZHBvaW50XVttZXRhLnBhdGhdW21ldGhvZF1bb2JqZWN0SURUb0NyZWF0ZU9yTGFzdF07XG5cbiAgICBpZiAoIV8uaXNOdW1iZXIocmVwbGF5LmlkKSkge1xuICAgICAgaWYgKFJlc3RSZXF1ZXN0LmpvYklkID09PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICBSZXN0UmVxdWVzdC5qb2JJZCA9IDA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGpvYmlkOiBudW1iZXIgPSBSZXN0UmVxdWVzdC5qb2JJZCsrO1xuICAgICAgcmVwbGF5LmlkID0gam9iaWQ7XG4gICAgICBjb25zdCBzdWJqZWN0OiBTdWJqZWN0PGFueT4gPSByZXBsYXkuc3ViamVjdDtcbiAgICAgIHN1YmplY3Rbam9iSURrZXldID0gam9iaWQ7IC8vIG1vZGlmeSBpbnRlcm5hbCByeGpzIHN1YmplY3Qgb2JqXG5cbiAgICAgIHRoaXMubWV0YVtqb2JpZF0gPSBtZXRhO1xuICAgICAgdGhpcy5zdWJqZWN0SW51VXNlW2pvYmlkXSA9IHN1YmplY3Q7XG5cbiAgICAgIHRoaXMuc3ViamVjdEludVVzZVtqb2JpZF1bY3VzdG9tT2JzXSA9IG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuXG5cblxuICAgICAgICBvYnNlcnZlci5hZGQoKCkgPT4ge1xuXG4gICAgICAgICAgaWYgKCF0aGlzLnN1YmplY3RJbnVVc2Vbam9iaWRdW2lzQ2FuY2VsZWRdKSB7XG4gICAgICAgICAgICB0aGlzLnN1YmplY3RJbnVVc2Vbam9iaWRdW2lzQ2FuY2VsZWRdID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJqZWN0SW51VXNlW2pvYmlkXVtjYW5jZWxGbl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5zdWJqZWN0SW51VXNlW2pvYmlkXVtjYW5jZWxGbl0oJ1tuZzItcmVzdF0gb24gcHVycG9zZSBjYW5jZWxlZCBodHRwIHJlcXVlc3QnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBzdWIgPSBzdWJqZWN0LnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogYSA9PiBvYnNlcnZlci5uZXh0KGEpLFxuICAgICAgICAgIGVycm9yOiBhID0+IG9ic2VydmVyLmVycm9yKGEpLFxuICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKClcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcGxheTtcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgZ2VuZXJhbFJlcShcbiAgICBtZXRob2Q6IE1vZGVscy5IdHRwTWV0aG9kLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICBoZWFkZXJzOiBSZXN0SGVhZGVycyxcbiAgICBtZXRhOiBNb2RlbHMuTWV0YVJlcXVlc3QsXG4gICAgaXNBcnJheTogYm9vbGVhbixcbiAgICBtb2NrSHR0cDogTW9kZWxzLk1vY2tIdHRwKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PGFueT4ge1xuXG4gICAgY29uc3QgcmVwbGF5OiBNb2RlbHMuUmVwbGF5RGF0YSA9IHRoaXMuZ2V0UmVwbGF5KG1ldGhvZCwgbWV0YSwgZmFsc2UpO1xuICAgIHJlcGxheS5kYXRhID0geyB1cmwsIGJvZHksIGhlYWRlcnMsIGlzQXJyYXkgfTtcblxuICAgICgocHRoaXMsIHB1cmwsIHBtZXRob2QsIHBoZWFkZXJzLCBwYm9keSwgcGlkLCBwaXNBcnJheSwgcG1vY2tIdHRwKSA9PiB7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gcHRoaXMucmVxKHB1cmwsIHBtZXRob2QsIHBoZWFkZXJzLCBwYm9keSwgcGlkLCBwaXNBcnJheSwgcG1vY2tIdHRwKSk7XG4gICAgfSkodGhpcywgdXJsLCBtZXRob2QsIGhlYWRlcnMsIGJvZHksIHJlcGxheS5pZCwgaXNBcnJheSwgbW9ja0h0dHApXG5cbiAgICBjb25zdCByZXNwOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8YW55PiA9IGZpcnN0VmFsdWVGcm9tKHJlcGxheS5zdWJqZWN0W2N1c3RvbU9ic10pIGFzIGFueTtcbiAgICByZXNwLm9ic2VydmFibGUgPSByZXBsYXkuc3ViamVjdFtjdXN0b21PYnNdO1xuICAgIHJlc3AuY2FjaGUgPSBSZXF1ZXN0Q2FjaGUuZmluZEJ5KHtcbiAgICAgIGJvZHksXG4gICAgICBpc0FycmF5LFxuICAgICAgbWV0aG9kLFxuICAgICAgdXJsXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3A7XG4gIH1cblxuICBnZXQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLFxuICAgIG1ldGE6IE1vZGVscy5NZXRhUmVxdWVzdCxcbiAgICBpc0FycmF5OiBib29sZWFuLCBtb2NrSHR0cDogTW9kZWxzLk1vY2tIdHRwXG4gICk6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmFsUmVxKCdnZXQnLCB1cmwsIGJvZHksIGhlYWRlcnMsIG1ldGEsIGlzQXJyYXksIG1vY2tIdHRwKTtcbiAgfVxuXG4gIGhlYWQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLFxuICAgIG1ldGE6IE1vZGVscy5NZXRhUmVxdWVzdCxcbiAgICBpc0FycmF5OiBib29sZWFuLCBtb2NrSHR0cDogTW9kZWxzLk1vY2tIdHRwXG4gICk6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmFsUmVxKCdoZWFkJywgdXJsLCBib2R5LCBoZWFkZXJzLCBtZXRhLCBpc0FycmF5LCBtb2NrSHR0cCk7XG4gIH1cblxuICBkZWxldGUoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLFxuICAgIG1ldGE6IE1vZGVscy5NZXRhUmVxdWVzdCxcbiAgICBpc0FycmF5OiBib29sZWFuLFxuICAgIG1vY2tIdHRwOiBNb2RlbHMuTW9ja0h0dHApOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhbFJlcSgnZGVsZXRlJywgdXJsLCBib2R5LCBoZWFkZXJzLCBtZXRhLCBpc0FycmF5LCBtb2NrSHR0cCk7XG4gIH1cblxuICBwb3N0KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICBoZWFkZXJzOiBSZXN0SGVhZGVycyxcbiAgICBtZXRhOiBNb2RlbHMuTWV0YVJlcXVlc3QsXG4gICAgaXNBcnJheTogYm9vbGVhbixcbiAgICBtb2NrSHR0cDogTW9kZWxzLk1vY2tIdHRwXG4gICk6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmFsUmVxKCdwb3N0JywgdXJsLCBib2R5LCBoZWFkZXJzLCBtZXRhLCBpc0FycmF5LCBtb2NrSHR0cCk7XG4gIH1cblxuICBwdXQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLFxuICAgIG1ldGE6IE1vZGVscy5NZXRhUmVxdWVzdCxcbiAgICBpc0FycmF5OiBib29sZWFuLFxuICAgIG1vY2tIdHRwOiBNb2RlbHMuTW9ja0h0dHBcbiAgKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYWxSZXEoJ3B1dCcsIHVybCwgYm9keSwgaGVhZGVycywgbWV0YSwgaXNBcnJheSwgbW9ja0h0dHApO1xuICB9XG5cbiAgcGF0Y2goXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM6IFJlc3RIZWFkZXJzLFxuICAgIG1ldGE6IE1vZGVscy5NZXRhUmVxdWVzdCxcbiAgICBpc0FycmF5OiBib29sZWFuLFxuICAgIG1vY2tIdHRwOiBNb2RlbHMuTW9ja0h0dHBcbiAgKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYWxSZXEoJ3BhdGNoJywgdXJsLCBib2R5LCBoZWFkZXJzLCBtZXRhLCBpc0FycmF5LCBtb2NrSHR0cCk7XG4gIH1cblxuICBqc29ucChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgaGVhZGVyczogUmVzdEhlYWRlcnMsXG4gICAgbWV0YTogTW9kZWxzLk1ldGFSZXF1ZXN0LFxuICAgIGlzQXJyYXk6IGJvb2xlYW4sXG4gICAgbW9ja0h0dHA6IE1vZGVscy5Nb2NrSHR0cFxuICApOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8YW55PiB7XG5cbiAgICBjb25zdCByZXBsYXk6IE1vZGVscy5SZXBsYXlEYXRhID0gdGhpcy5nZXRSZXBsYXkoJ2pzb25wJywgbWV0YSwgZmFsc2UpO1xuICAgIGNvbnN0IGpvYmlkID0gcmVwbGF5LmlkO1xuICAgIGNvbnN0IG1ldGhvZCA9ICdqc29ucCdcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh1cmwuZW5kc1dpdGgoJy8nKSkgdXJsID0gdXJsLnNsaWNlKDAsIHVybC5sZW5ndGggLSAxKVxuICAgICAgbGV0IG51bSA9IE1hdGgucm91bmQoMTAwMDAgKiBNYXRoLnJhbmRvbSgpKTtcbiAgICAgIGxldCBjYWxsYmFja01ldGhvZE5hbWUgPSBcImNiX1wiICsgbnVtO1xuICAgICAgd2luZG93W2NhbGxiYWNrTWV0aG9kTmFtZV0gPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jaGVja0NhY2hlKHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgYm9keSxcbiAgICAgICAgICBpc0FycmF5LFxuICAgICAgICAgIG1ldGhvZFxuICAgICAgICB9LCBqb2JpZCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVyUmVzdWx0KHtcbiAgICAgICAgICByZXM6IHtcbiAgICAgICAgICAgIGRhdGEsIGlzQXJyYXlcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBqb2JpZCxcbiAgICAgICAgICBpc0FycmF5XG4gICAgICAgIH0sIHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgYm9keSxcbiAgICAgICAgICBpc0FycmF5LFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGxldCBzYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2Muc3JjID0gYCR7dXJsfT9jYWxsYmFjaz0ke2NhbGxiYWNrTWV0aG9kTmFtZX1gO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzYyk7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNjKTtcbiAgICB9KVxuXG4gICAgY29uc3QgcmVzcDogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PGFueT4gPSBmaXJzdFZhbHVlRnJvbShyZXBsYXkuc3ViamVjdFtjdXN0b21PYnNdKSBhcyBhbnk7XG4gICAgcmVzcC5vYnNlcnZhYmxlID0gcmVwbGF5LnN1YmplY3RbY3VzdG9tT2JzXTtcbiAgICBjb25zb2xlLmxvZygnYXNzaWdpbmcgY3VzdG9tIG9ic2VydmFibGUnKVxuICAgIHJlc3AuY2FjaGUgPSBSZXF1ZXN0Q2FjaGUuZmluZEJ5KHtcbiAgICAgIGJvZHksXG4gICAgICBpc0FycmF5LFxuICAgICAgbWV0aG9kLFxuICAgICAgdXJsXG4gICAgfSlcbiAgICByZXR1cm4gcmVzcDtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGF5U3ViamVjdHMgPSB7fTtcbiAgcHVibGljIHJlcGxheShtZXRob2Q6IE1vZGVscy5IdHRwTWV0aG9kLCBtZXRhOiBNb2RlbHMuTWV0YVJlcXVlc3QpIHtcbiAgICBjb25zdCByZXBsYXk6IE1vZGVscy5SZXBsYXlEYXRhID0gdGhpcy5nZXRSZXBsYXkobWV0aG9kLCBtZXRhLCB0cnVlKTtcbiAgICBpZiAoIXJlcGxheSB8fCAhcmVwbGF5LmRhdGEpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQ2Fubm8gcmVwbGF5IGZpcnN0ICR7bWV0aG9kfSByZXF1ZXN0IGZyb20gJHttZXRhLmVuZHBvaW50fS8ke21ldGEucGF0aH1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9O1xuICAgIGlmIChyZXBsYXkgJiYgcmVwbGF5LnN1YmplY3QgJiYgQXJyYXkuaXNBcnJheShyZXBsYXkuc3ViamVjdC5vYnNlcnZlcnMpICYmXG4gICAgICByZXBsYXkuc3ViamVjdC5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE5vIG9ic2VydmF0b3JzIGZvciAke21ldGhvZH0gcmVxdWVzdCBmcm9tICR7bWV0YS5lbmRwb2ludH0vJHttZXRhLnBhdGh9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVybCA9IHJlcGxheS5kYXRhLnVybDtcbiAgICBjb25zdCBoZWFkZXJzID0gcmVwbGF5LmRhdGEuaGVhZGVycztcbiAgICBjb25zdCBib2R5ID0gcmVwbGF5LmRhdGEuYm9keTtcbiAgICBjb25zdCBpc0FycmF5ID0gcmVwbGF5LmRhdGEuaXNBcnJheTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVxKHVybCwgbWV0aG9kLCBoZWFkZXJzLCBib2R5LCByZXBsYXkuaWQsIGlzQXJyYXkpKVxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9yZXN0LXJlcXVlc3QudHMiXX0=
@@ -0,0 +1,120 @@
1
+ import { getRestParams, getParamsUrl } from './params';
2
+ import { RestHeaders } from './rest-headers';
3
+ import { CONTENT_TYPE } from './content-type';
4
+ import { CLASS } from 'typescript-class-helpers/browser';
5
+ export class Rest {
6
+ mock(mock) {
7
+ if ((typeof mock === 'function') || (typeof mock === 'object')) {
8
+ this.mockHttp = mock;
9
+ }
10
+ else {
11
+ throw `[ng2-rest]
12
+ .model(...)
13
+ .mock( < BAD MOCK DATA > )
14
+ ...
15
+ `;
16
+ }
17
+ return this;
18
+ }
19
+ get endpoint() {
20
+ let e = this.__meta_endpoint;
21
+ if (this.restQueryParams !== void 0 && this._endpointRest !== void 0
22
+ && typeof this._endpointRest === 'string' && this._endpointRest.trim() !== '')
23
+ e = this._endpointRest;
24
+ return e;
25
+ }
26
+ set __rest_endpoint(endpoint) {
27
+ this._endpointRest = endpoint;
28
+ if (endpoint === void 0) {
29
+ this.restQueryParams = void 0;
30
+ }
31
+ else {
32
+ this.restQueryParams = getRestParams(endpoint, this.__meta_endpoint);
33
+ }
34
+ }
35
+ creatUrl(params, doNotSerializeParams = false) {
36
+ return `${this.endpoint}${getParamsUrl(params, doNotSerializeParams)}`;
37
+ }
38
+ get headers() {
39
+ return this._headers;
40
+ }
41
+ constructor(endpoint, request, meta, customContentType) {
42
+ this.request = request;
43
+ this.meta = meta;
44
+ this.customContentType = customContentType;
45
+ this._headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);
46
+ this.array = {
47
+ get: (params = void 0, doNotSerializeParams) => {
48
+ return this.req('get', void 0, params, doNotSerializeParams, true);
49
+ },
50
+ head: (params = void 0, doNotSerializeParams) => {
51
+ return this.req('head', void 0, params, doNotSerializeParams, true);
52
+ },
53
+ post: (item, params, doNotSerializeParams) => {
54
+ return this.req('post', item, params, doNotSerializeParams, true);
55
+ },
56
+ put: (item, params, doNotSerializeParams) => {
57
+ return this.req('put', item, params, doNotSerializeParams, true);
58
+ },
59
+ patch: (item, params, doNotSerializeParams) => {
60
+ return this.req('patch', item, params, doNotSerializeParams, true);
61
+ },
62
+ delete: (params, doNotSerializeParams) => {
63
+ return this.req('delete', void 0, params, doNotSerializeParams, true);
64
+ },
65
+ jsonp: (params, doNotSerializeParams) => {
66
+ return this.req('jsonp', void 0, params, doNotSerializeParams, true);
67
+ }
68
+ };
69
+ this.__meta_endpoint = endpoint;
70
+ }
71
+ req(method, requestBody, params, doNotSerializeParams = false, isArray = false) {
72
+ const modelUrl = this.creatUrl(params, doNotSerializeParams);
73
+ const body = (CLASS.getNameFromObject(requestBody) === 'FormData')
74
+ ? requestBody
75
+ : (requestBody ? JSON.stringify(requestBody) : void 0);
76
+ if (this.customContentType) {
77
+ const customHeaderKeys = this.customContentType.keys();
78
+ const currentHeaderKeys = this._headers.keys();
79
+ currentHeaderKeys
80
+ .filter(key => !customHeaderKeys.includes(key))
81
+ .forEach(key => {
82
+ this.customContentType.set(key, this._headers.get(key));
83
+ });
84
+ this._headers = this.customContentType;
85
+ }
86
+ else {
87
+ this._headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);
88
+ }
89
+ const result = this.request[method.toLowerCase()](modelUrl, body, this.headers, this.meta, isArray, this.mockHttp);
90
+ this.mockHttp = void 0;
91
+ return result;
92
+ }
93
+ replay(method) {
94
+ this.request.replay(method, this.meta);
95
+ }
96
+ get(params, doNotSerializeParams = false) {
97
+ return this.req('get', void 0, params, doNotSerializeParams);
98
+ }
99
+ head(params, doNotSerializeParams = false) {
100
+ return this.req('head', void 0, params, doNotSerializeParams);
101
+ }
102
+ post(item, params, doNotSerializeParams = false) {
103
+ return this.req('post', item, params, doNotSerializeParams);
104
+ }
105
+ put(item, params, doNotSerializeParams = false) {
106
+ return this.req('put', item, params, doNotSerializeParams);
107
+ }
108
+ patch(item, params, doNotSerializeParams = false) {
109
+ return this.req('patch', item, params, doNotSerializeParams);
110
+ }
111
+ delete(params, doNotSerializeParams = false) {
112
+ return this.req('delete', void 0, params, doNotSerializeParams);
113
+ }
114
+ jsonp(params, doNotSerializeParams = false) {
115
+ return this.req('jsonp', void 0, params, doNotSerializeParams);
116
+ }
117
+ }
118
+ ;
119
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest.class.ts
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvcmVzdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd6RCxNQUFNLE9BQU8sSUFBSTtJQUdmLElBQUksQ0FBQyxJQUFxQjtRQUN4QixJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTTs7OztPQUlMLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT0QsSUFBWSxRQUFRO1FBQ2xCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDO2VBQy9ELE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEcsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBVyxlQUFlLENBQUMsUUFBUTtR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QixFQUFFLHVCQUFnQyxLQUFLO1FBQy9FLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBMkIsRUFBRSx1QkFBZ0MsS0FBSztRQUN2RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBMkIsRUFBRSx1QkFBZ0MsS0FBSztRQUN0RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FHRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvYnJvd3Nlcic7XG5cblxuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgZ2V0UmVzdFBhcmFtcywgZ2V0UGFyYW1zVXJsIH0gZnJvbSAnLi9wYXJhbXMnO1xuaW1wb3J0IHsgUmVzdFJlcXVlc3QgfSBmcm9tICcuL3Jlc3QtcmVxdWVzdCc7XG5pbXBvcnQgeyBSZXN0SGVhZGVycyB9IGZyb20gJy4vcmVzdC1oZWFkZXJzJztcbmltcG9ydCB7IENPTlRFTlRfVFlQRSB9IGZyb20gJy4vY29udGVudC10eXBlJztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL2Jyb3dzZXInO1xuXG5cbmV4cG9ydCBjbGFzcyBSZXN0PFQsIFRBID0gVFtdPiBpbXBsZW1lbnRzIE1vZGVscy5Gbk1ldGhvZHNIdHRwV2l0aE1vY2s8VCwgVEE+IHtcblxuICBwcml2YXRlIG1vY2tIdHRwOiBNb2RlbHMuTW9ja0h0dHA7XG4gIG1vY2sobW9jazogTW9kZWxzLk1vY2tIdHRwKTogTW9kZWxzLkZuTWV0aG9kc0h0dHA8VCwgVEE+IHtcbiAgICBpZiAoKHR5cGVvZiBtb2NrID09PSAnZnVuY3Rpb24nKSB8fCAodHlwZW9mIG1vY2sgPT09ICdvYmplY3QnKSkge1xuICAgICAgdGhpcy5tb2NrSHR0cCA9IG1vY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGBbbmcyLXJlc3RdXG4gICAgICAubW9kZWwoLi4uKVxuICAgICAgLm1vY2soIDwgQkFEIE1PQ0sgREFUQSA+IClcbiAgICAgIC4uLlxuICAgICAgYFxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgX19tZXRhX2VuZHBvaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgX2VuZHBvaW50UmVzdDogc3RyaW5nO1xuICBwcml2YXRlIGdldCBlbmRwb2ludCgpIHtcbiAgICBsZXQgZSA9IHRoaXMuX19tZXRhX2VuZHBvaW50O1xuICAgIGlmICh0aGlzLnJlc3RRdWVyeVBhcmFtcyAhPT0gdm9pZCAwICYmIHRoaXMuX2VuZHBvaW50UmVzdCAhPT0gdm9pZCAwXG4gICAgICAmJiB0eXBlb2YgdGhpcy5fZW5kcG9pbnRSZXN0ID09PSAnc3RyaW5nJyAmJiB0aGlzLl9lbmRwb2ludFJlc3QudHJpbSgpICE9PSAnJykgZSA9IHRoaXMuX2VuZHBvaW50UmVzdDtcbiAgICByZXR1cm4gZTtcbiAgfVxuICBwcml2YXRlIHJlc3RRdWVyeVBhcmFtczogT2JqZWN0O1xuICBwdWJsaWMgc2V0IF9fcmVzdF9lbmRwb2ludChlbmRwb2ludCkge1xuICAgIHRoaXMuX2VuZHBvaW50UmVzdCA9IGVuZHBvaW50O1xuICAgIGlmIChlbmRwb2ludCA9PT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLnJlc3RRdWVyeVBhcmFtcyA9IHZvaWQgMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXN0UXVlcnlQYXJhbXMgPSBnZXRSZXN0UGFyYW1zKGVuZHBvaW50LCB0aGlzLl9fbWV0YV9lbmRwb2ludCk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGNyZWF0VXJsKHBhcmFtczogYW55LCBkb05vdFNlcmlhbGl6ZVBhcmFtczogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW5kcG9pbnR9JHtnZXRQYXJhbXNVcmwocGFyYW1zLCBkb05vdFNlcmlhbGl6ZVBhcmFtcyl9YDtcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgX2hlYWRlcnMgPSBSZXN0SGVhZGVycy5mcm9tKENPTlRFTlRfVFlQRS5BUFBMSUNBVElPTl9KU09OKTtcbiAgZ2V0IGhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRlcnM7XG4gIH1cbiAgY29uc3RydWN0b3IoXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlcXVlc3Q6IFJlc3RSZXF1ZXN0LFxuICAgIHByaXZhdGUgbWV0YTogTW9kZWxzLk1ldGFSZXF1ZXN0LFxuICAgIHByaXZhdGUgY3VzdG9tQ29udGVudFR5cGU6IFJlc3RIZWFkZXJzLFxuICApIHtcbiAgICB0aGlzLl9fbWV0YV9lbmRwb2ludCA9IGVuZHBvaW50O1xuXG4gIH1cblxuXG5cblxuICBwcml2YXRlIHJlcShtZXRob2Q6IE1vZGVscy5IdHRwTWV0aG9kLFxuICAgIHJlcXVlc3RCb2R5OiBULFxuICAgIHBhcmFtcz86IE1vZGVscy5VcmxQYXJhbXNbXSxcbiAgICBkb05vdFNlcmlhbGl6ZVBhcmFtczogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlzQXJyYXk6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcblxuICAgIGNvbnN0IG1vZGVsVXJsID0gdGhpcy5jcmVhdFVybChwYXJhbXMsIGRvTm90U2VyaWFsaXplUGFyYW1zKTtcbiAgICBjb25zdCBib2R5ID0gKENMQVNTLmdldE5hbWVGcm9tT2JqZWN0KHJlcXVlc3RCb2R5KSA9PT0gJ0Zvcm1EYXRhJylcbiAgICAgID8gcmVxdWVzdEJvZHlcbiAgICAgIDogKHJlcXVlc3RCb2R5ID8gSlNPTi5zdHJpbmdpZnkocmVxdWVzdEJvZHkpIDogdm9pZCAwKTtcblxuXG4gICAgaWYgKHRoaXMuY3VzdG9tQ29udGVudFR5cGUpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUhlYWRlcktleXMgPSB0aGlzLmN1c3RvbUNvbnRlbnRUeXBlLmtleXMoKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRIZWFkZXJLZXlzID0gdGhpcy5faGVhZGVycy5rZXlzKCk7XG4gICAgICBjdXJyZW50SGVhZGVyS2V5c1xuICAgICAgICAuZmlsdGVyKGtleSA9PiAhY3VzdG9tSGVhZGVyS2V5cy5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFR5cGUuc2V0KGtleSwgdGhpcy5faGVhZGVycy5nZXQoa2V5KSk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5faGVhZGVycyA9IHRoaXMuY3VzdG9tQ29udGVudFR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hlYWRlcnMgPSBSZXN0SGVhZGVycy5mcm9tKENPTlRFTlRfVFlQRS5BUFBMSUNBVElPTl9KU09OKTtcbiAgICB9XG5cblxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5yZXF1ZXN0W21ldGhvZC50b0xvd2VyQ2FzZSgpXShcbiAgICAgIG1vZGVsVXJsLFxuICAgICAgYm9keSxcbiAgICAgIHRoaXMuaGVhZGVycyxcbiAgICAgIHRoaXMubWV0YSxcbiAgICAgIGlzQXJyYXksXG4gICAgICB0aGlzLm1vY2tIdHRwXG4gICAgKTtcblxuICAgIHRoaXMubW9ja0h0dHAgPSB2b2lkIDA7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG5cblxuXG5cbiAgcmVwbGF5KG1ldGhvZDogTW9kZWxzLkh0dHBNZXRob2QpIHtcbiAgICB0aGlzLnJlcXVlc3QucmVwbGF5KG1ldGhvZCwgdGhpcy5tZXRhKTtcbiAgfVxuXG5cbiAgYXJyYXkgPSB7XG4gICAgZ2V0OiAocGFyYW1zOiBNb2RlbHMuVXJsUGFyYW1zW10gPSB2b2lkIDAsIGRvTm90U2VyaWFsaXplUGFyYW1zPzogYm9vbGVhbik6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxNb2RlbHMuSHR0cFJlc3BvbnNlPFRBPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmVxKCdnZXQnLCB2b2lkIDAsIHBhcmFtcywgZG9Ob3RTZXJpYWxpemVQYXJhbXMsIHRydWUpIGFzIGFueVxuICAgIH0sXG4gICAgaGVhZDogKHBhcmFtczogTW9kZWxzLlVybFBhcmFtc1tdID0gdm9pZCAwLCBkb05vdFNlcmlhbGl6ZVBhcmFtcz86IGJvb2xlYW4pOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8TW9kZWxzLkh0dHBSZXNwb25zZTxUQT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcSgnaGVhZCcsIHZvaWQgMCwgcGFyYW1zLCBkb05vdFNlcmlhbGl6ZVBhcmFtcywgdHJ1ZSkgYXMgYW55XG4gICAgfSxcbiAgICBwb3N0OiAoaXRlbTogVEEsIHBhcmFtcz86IE1vZGVscy5VcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM/OiBib29sZWFuKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PE1vZGVscy5IdHRwUmVzcG9uc2U8VEE+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5yZXEoJ3Bvc3QnLCBpdGVtIGFzIGFueSwgcGFyYW1zLCBkb05vdFNlcmlhbGl6ZVBhcmFtcywgdHJ1ZSkgYXMgYW55O1xuICAgIH0sXG4gICAgcHV0OiAoaXRlbTogVEEsIHBhcmFtcz86IE1vZGVscy5VcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM/OiBib29sZWFuKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PE1vZGVscy5IdHRwUmVzcG9uc2U8VEE+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5yZXEoJ3B1dCcsIGl0ZW0gYXMgYW55LCBwYXJhbXMsIGRvTm90U2VyaWFsaXplUGFyYW1zLCB0cnVlKSBhcyBhbnk7XG4gICAgfSxcbiAgICBwYXRjaDogKGl0ZW06IFRBLCBwYXJhbXM/OiBNb2RlbHMuVXJsUGFyYW1zW10sIGRvTm90U2VyaWFsaXplUGFyYW1zPzogYm9vbGVhbik6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxNb2RlbHMuSHR0cFJlc3BvbnNlPFRBPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmVxKCdwYXRjaCcsIGl0ZW0gYXMgYW55LCBwYXJhbXMsIGRvTm90U2VyaWFsaXplUGFyYW1zLCB0cnVlKSBhcyBhbnk7XG4gICAgfSxcbiAgICBkZWxldGU6IChwYXJhbXM/OiBNb2RlbHMuVXJsUGFyYW1zW10sIGRvTm90U2VyaWFsaXplUGFyYW1zPzogYm9vbGVhbik6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxNb2RlbHMuSHR0cFJlc3BvbnNlPFRBPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmVxKCdkZWxldGUnLCB2b2lkIDAsIHBhcmFtcywgZG9Ob3RTZXJpYWxpemVQYXJhbXMsIHRydWUpIGFzIGFueTtcbiAgICB9LFxuICAgIGpzb25wOiAocGFyYW1zPzogTW9kZWxzLlVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZVBhcmFtcz86IGJvb2xlYW4pOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8TW9kZWxzLkh0dHBSZXNwb25zZTxUQT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcSgnanNvbnAnLCB2b2lkIDAsIHBhcmFtcywgZG9Ob3RTZXJpYWxpemVQYXJhbXMsIHRydWUpIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICBnZXQocGFyYW1zPzogTW9kZWxzLlVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZVBhcmFtczogYm9vbGVhbiA9IGZhbHNlKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PE1vZGVscy5IdHRwUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXEoJ2dldCcsIHZvaWQgMCwgcGFyYW1zLCBkb05vdFNlcmlhbGl6ZVBhcmFtcykgYXMgYW55O1xuICB9XG5cbiAgaGVhZChwYXJhbXM/OiBNb2RlbHMuVXJsUGFyYW1zW10sIGRvTm90U2VyaWFsaXplUGFyYW1zOiBib29sZWFuID0gZmFsc2UpOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8TW9kZWxzLkh0dHBSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnJlcSgnaGVhZCcsIHZvaWQgMCwgcGFyYW1zLCBkb05vdFNlcmlhbGl6ZVBhcmFtcykgYXMgYW55O1xuICB9XG5cbiAgcG9zdChpdGVtOiBULCBwYXJhbXM/OiBNb2RlbHMuVXJsUGFyYW1zW10sIGRvTm90U2VyaWFsaXplUGFyYW1zOiBib29sZWFuID0gZmFsc2UpOiBNb2RlbHMuUHJvbWlzZU9ic2VydmFibGVNaXg8TW9kZWxzLkh0dHBSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnJlcSgncG9zdCcsIGl0ZW0sIHBhcmFtcywgZG9Ob3RTZXJpYWxpemVQYXJhbXMpO1xuICB9XG5cbiAgcHV0KGl0ZW06IFQsIHBhcmFtcz86IE1vZGVscy5VcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM6IGJvb2xlYW4gPSBmYWxzZSk6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxNb2RlbHMuSHR0cFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxKCdwdXQnLCBpdGVtLCBwYXJhbXMsIGRvTm90U2VyaWFsaXplUGFyYW1zKTtcbiAgfVxuXG4gIHBhdGNoKGl0ZW06IFQsIHBhcmFtcz86IE1vZGVscy5VcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM6IGJvb2xlYW4gPSBmYWxzZSk6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxNb2RlbHMuSHR0cFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxKCdwYXRjaCcsIGl0ZW0sIHBhcmFtcywgZG9Ob3RTZXJpYWxpemVQYXJhbXMpO1xuICB9XG5cbiAgZGVsZXRlKHBhcmFtcz86IE1vZGVscy5VcmxQYXJhbXNbXSwgZG9Ob3RTZXJpYWxpemVQYXJhbXM6IGJvb2xlYW4gPSBmYWxzZSk6IE1vZGVscy5Qcm9taXNlT2JzZXJ2YWJsZU1peDxNb2RlbHMuSHR0cFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxKCdkZWxldGUnLCB2b2lkIDAsIHBhcmFtcywgZG9Ob3RTZXJpYWxpemVQYXJhbXMpO1xuICB9XG5cbiAganNvbnAocGFyYW1zPzogTW9kZWxzLlVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZVBhcmFtczogYm9vbGVhbiA9IGZhbHNlKTogTW9kZWxzLlByb21pc2VPYnNlcnZhYmxlTWl4PE1vZGVscy5IdHRwUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXEoJ2pzb25wJywgdm9pZCAwLCBwYXJhbXMsIGRvTm90U2VyaWFsaXplUGFyYW1zKTtcbiAgfVxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IGxpYi9yZXN0LmNsYXNzLnRzIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmcyLXJlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC9uZzItcmVzdC9wcm9qZWN0cy9uZzItcmVzdC9zcmMvbmcyLXJlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './lib';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWInO1xuIl19