angular-odata 0.105.0 → 0.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/api.mjs +44 -6
- package/esm2020/lib/client.mjs +9 -34
- package/esm2020/lib/constants.mjs +10 -5
- package/esm2020/lib/helper.mjs +17 -7
- package/esm2020/lib/models/collection.mjs +58 -44
- package/esm2020/lib/models/model.mjs +36 -9
- package/esm2020/lib/models/options.mjs +13 -15
- package/esm2020/lib/module.mjs +4 -4
- package/esm2020/lib/options.mjs +1 -1
- package/esm2020/lib/resources/query/expressions/count.mjs +89 -0
- package/esm2020/lib/resources/query/expressions/filter.mjs +5 -1
- package/esm2020/lib/resources/request.mjs +35 -2
- package/esm2020/lib/resources/resource.mjs +8 -51
- package/esm2020/lib/resources/responses/annotations.mjs +16 -4
- package/esm2020/lib/resources/responses/options.mjs +6 -1
- package/esm2020/lib/resources/responses/response.mjs +9 -5
- package/esm2020/lib/resources/responses/types.mjs +1 -1
- package/esm2020/lib/resources/types/batch.mjs +6 -9
- package/esm2020/lib/resources/types/count.mjs +1 -1
- package/esm2020/lib/resources/types/entity-set.mjs +34 -12
- package/esm2020/lib/resources/types/entity.mjs +1 -1
- package/esm2020/lib/resources/types/media.mjs +1 -1
- package/esm2020/lib/resources/types/metadata.mjs +3 -5
- package/esm2020/lib/resources/types/navigation-property.mjs +26 -6
- package/esm2020/lib/resources/types/options.mjs +1 -1
- package/esm2020/lib/resources/types/property.mjs +29 -4
- package/esm2020/lib/resources/types/reference.mjs +1 -1
- package/esm2020/lib/resources/types/singleton.mjs +1 -4
- package/esm2020/lib/resources/types/value.mjs +2 -2
- package/esm2020/lib/schema/parsers/callable.mjs +1 -1
- package/esm2020/lib/schema/parsers/edm.mjs +9 -9
- package/esm2020/lib/schema/parsers/enum-type.mjs +1 -1
- package/esm2020/lib/services/entity-set.mjs +9 -7
- package/esm2020/lib/services/factory.mjs +3 -3
- package/esm2020/lib/utils/http.mjs +1 -1
- package/esm2020/lib/utils/objects.mjs +1 -1
- package/fesm2015/angular-odata.mjs +435 -209
- package/fesm2015/angular-odata.mjs.map +1 -1
- package/fesm2020/angular-odata.mjs +444 -214
- package/fesm2020/angular-odata.mjs.map +1 -1
- package/lib/api.d.ts +10 -3
- package/lib/client.d.ts +139 -1425
- package/lib/constants.d.ts +5 -3
- package/lib/helper.d.ts +1 -1
- package/lib/models/collection.d.ts +26 -5
- package/lib/models/model.d.ts +21 -11
- package/lib/models/options.d.ts +4 -3
- package/lib/options.d.ts +4 -0
- package/lib/resources/query/expressions/count.d.ts +44 -0
- package/lib/resources/query/expressions/filter.d.ts +5 -0
- package/lib/resources/query/handlers.d.ts +3 -1
- package/lib/resources/request.d.ts +13 -2
- package/lib/resources/resource.d.ts +3 -10
- package/lib/resources/responses/annotations.d.ts +17 -12
- package/lib/resources/responses/options.d.ts +1 -0
- package/lib/resources/responses/types.d.ts +3 -3
- package/lib/resources/types/count.d.ts +1 -1
- package/lib/resources/types/entity-set.d.ts +24 -6
- package/lib/resources/types/entity.d.ts +8 -24
- package/lib/resources/types/media.d.ts +7 -15
- package/lib/resources/types/metadata.d.ts +1 -1
- package/lib/resources/types/navigation-property.d.ts +26 -28
- package/lib/resources/types/options.d.ts +4 -2
- package/lib/resources/types/property.d.ts +28 -15
- package/lib/resources/types/reference.d.ts +3 -12
- package/lib/resources/types/singleton.d.ts +8 -27
- package/lib/services/entity-set.d.ts +20 -6
- package/lib/utils/http.d.ts +1 -1
- package/lib/utils/objects.d.ts +19 -5
- package/package.json +1 -1
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { map } from 'rxjs/operators';
|
|
2
1
|
import { DEFAULT_VERSION, PARAM_SEPARATOR, QUERY_SEPARATOR, VALUE_SEPARATOR, } from '../constants';
|
|
3
2
|
import { ODataHelper } from '../helper';
|
|
4
3
|
import { ODataStructuredType } from '../schema';
|
|
5
4
|
import { PathSegmentNames, } from '../types';
|
|
6
|
-
import {
|
|
5
|
+
import { Objects, Types } from '../utils/index';
|
|
7
6
|
import { ODataPathSegments, ODataPathSegmentsHandler } from './path';
|
|
8
7
|
import { isQueryCustomType, ODataQueryOptions, ODataQueryOptionsHandler, } from './query';
|
|
9
|
-
import { ODataRequest } from './request';
|
|
10
8
|
export class ODataResource {
|
|
11
9
|
constructor(api, { segments, query, schema, } = {}) {
|
|
12
10
|
this.api = api;
|
|
@@ -45,7 +43,7 @@ export class ODataResource {
|
|
|
45
43
|
return this.pathSegments.last({ key: true })?.clearKey();
|
|
46
44
|
}
|
|
47
45
|
//#region Models
|
|
48
|
-
asModel(entity, { annots, reset } = {}) {
|
|
46
|
+
asModel(entity, { annots, reset, } = {}) {
|
|
49
47
|
let resource = this;
|
|
50
48
|
const type = annots?.type || this.returnType();
|
|
51
49
|
if (type === undefined)
|
|
@@ -232,61 +230,20 @@ export class ODataResource {
|
|
|
232
230
|
return ODataResource.resolveKey(value, this.schema);
|
|
233
231
|
}
|
|
234
232
|
//#endregion
|
|
235
|
-
// Base Requests
|
|
236
|
-
request(method, options) {
|
|
237
|
-
const apiOptions = this.api.options;
|
|
238
|
-
let params = options.params || {};
|
|
239
|
-
if (options.withCount) {
|
|
240
|
-
params = Http.mergeHttpParams(params, apiOptions.helper.countParam());
|
|
241
|
-
}
|
|
242
|
-
let etag = options.etag;
|
|
243
|
-
if (etag === undefined && Types.isPlainObject(options.body)) {
|
|
244
|
-
etag = apiOptions.helper.etag(options.body);
|
|
245
|
-
}
|
|
246
|
-
const request = new ODataRequest({
|
|
247
|
-
method,
|
|
248
|
-
etag,
|
|
249
|
-
body: options.body,
|
|
250
|
-
api: this.api,
|
|
251
|
-
resource: this,
|
|
252
|
-
observe: 'response',
|
|
253
|
-
headers: options.headers,
|
|
254
|
-
reportProgress: options.reportProgress,
|
|
255
|
-
params: params,
|
|
256
|
-
responseType: options.responseType,
|
|
257
|
-
fetchPolicy: options.fetchPolicy,
|
|
258
|
-
withCredentials: options.withCredentials,
|
|
259
|
-
bodyQueryOptions: options.bodyQueryOptions,
|
|
260
|
-
});
|
|
261
|
-
const res$ = this.api.request(request);
|
|
262
|
-
switch (options.responseType) {
|
|
263
|
-
case 'entities':
|
|
264
|
-
return res$.pipe(map((res) => res.entities()));
|
|
265
|
-
case 'entity':
|
|
266
|
-
return res$.pipe(map((res) => res.entity()));
|
|
267
|
-
case 'property':
|
|
268
|
-
return res$.pipe(map((res) => res.property()));
|
|
269
|
-
case 'value':
|
|
270
|
-
return res$.pipe(map((res) => res.value()));
|
|
271
|
-
default:
|
|
272
|
-
// Other responseTypes (arraybuffer, blob, json, text) return body
|
|
273
|
-
return res$.pipe(map((res) => res.body));
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
233
|
get(options = {}) {
|
|
277
|
-
return this.request('GET', options);
|
|
234
|
+
return this.api.request('GET', this, options);
|
|
278
235
|
}
|
|
279
236
|
post(body, options = {}) {
|
|
280
|
-
return this.request('POST', { body, ...options });
|
|
237
|
+
return this.api.request('POST', this, { body, ...options });
|
|
281
238
|
}
|
|
282
239
|
put(body, options = {}) {
|
|
283
|
-
return this.request('PUT', { body, ...options });
|
|
240
|
+
return this.api.request('PUT', this, { body, ...options });
|
|
284
241
|
}
|
|
285
242
|
patch(body, options = {}) {
|
|
286
|
-
return this.request('PATCH', { body, ...options });
|
|
243
|
+
return this.api.request('PATCH', this, { body, ...options });
|
|
287
244
|
}
|
|
288
245
|
delete(options = {}) {
|
|
289
|
-
return this.request('DELETE', options);
|
|
246
|
+
return this.api.request('DELETE', this, options);
|
|
290
247
|
}
|
|
291
248
|
}
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVoRCxPQUFPLEVBSUwsZ0JBQWdCLEdBQ2pCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQix3QkFBd0IsR0FFekIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWdCekMsTUFBTSxPQUFPLGFBQWE7SUFNeEIsWUFDRSxHQUFhLEVBQ2IsRUFDRSxRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sTUFLSixFQUFFO1FBRU4sSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsSUFBSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLElBQUksSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZC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Q0FBQztJQUNwRCxDQUFDO0lBRVMsR0FBRyxDQUNYLElBQVMsRUFDVCxVQVlJLEVBQUU7UUFFTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRVMsS0FBSyxDQUNiLElBQVMsRUFDVCxVQVlJLEVBQUU7UUFFTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRVMsTUFBTSxDQUNkLFVBWUksRUFBRTtRQUVOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9WRVJTSU9OLFxuICBQQVJBTV9TRVBBUkFUT1IsXG4gIFFVRVJZX1NFUEFSQVRPUixcbiAgVkFMVUVfU0VQQVJBVE9SLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT0RhdGFIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXInO1xuaW1wb3J0IHsgT0RhdGFDb2xsZWN0aW9uLCBPRGF0YU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhU3RydWN0dXJlZFR5cGUgfSBmcm9tICcuLi9zY2hlbWEnO1xuaW1wb3J0IHsgT0RhdGFTY2hlbWFFbGVtZW50IH0gZnJvbSAnLi4vc2NoZW1hL2VsZW1lbnQnO1xuaW1wb3J0IHtcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUGFyc2VyLFxuICBRdWVyeU9wdGlvbk5hbWVzLFxuICBQYXRoU2VnbWVudE5hbWVzLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBIdHRwLCBPYmplY3RzLCBUeXBlcyB9IGZyb20gJy4uL3V0aWxzL2luZGV4JztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzLCBPRGF0YVBhdGhTZWdtZW50c0hhbmRsZXIgfSBmcm9tICcuL3BhdGgnO1xuaW1wb3J0IHtcbiAgaXNRdWVyeUN1c3RvbVR5cGUsXG4gIE9EYXRhUXVlcnlPcHRpb25zLFxuICBPRGF0YVF1ZXJ5T3B0aW9uc0hhbmRsZXIsXG4gIFF1ZXJ5Q3VzdG9tVHlwZSxcbn0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBPRGF0YVJlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zLFxuICBPRGF0YUVudGl0eUFubm90YXRpb25zLFxuICBPRGF0YVJlc3BvbnNlLFxufSBmcm9tICcuL3Jlc3BvbnNlcy9pbmRleCc7XG5pbXBvcnQgeyBPRGF0YU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRW50aXR5S2V5PFQ+ID1cbiAgfCB7XG4gICAgICByZWFkb25seSBbUCBpbiBrZXlvZiBUXT86IFRbUF07XG4gICAgfVxuICB8IFF1ZXJ5Q3VzdG9tVHlwZVxuICB8IHN0cmluZ1xuICB8IG51bWJlcjtcblxuZXhwb3J0IGNsYXNzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyBWQVJJQUJMRVNcbiAgcHVibGljIGFwaTogT0RhdGFBcGk7XG4gIHB1YmxpYyBzY2hlbWE/OiBPRGF0YVNjaGVtYUVsZW1lbnQ7XG4gIHByb3RlY3RlZCBwYXRoU2VnbWVudHM6IE9EYXRhUGF0aFNlZ21lbnRzO1xuICBwcm90ZWN0ZWQgcXVlcnlPcHRpb25zOiBPRGF0YVF1ZXJ5T3B0aW9uczxUPjtcbiAgY29uc3RydWN0b3IoXG4gICAgYXBpOiBPRGF0YUFwaSxcbiAgICB7XG4gICAgICBzZWdtZW50cyxcbiAgICAgIHF1ZXJ5LFxuICAgICAgc2NoZW1hLFxuICAgIH06IHtcbiAgICAgIHNlZ21lbnRzPzogT0RhdGFQYXRoU2VnbWVudHM7XG4gICAgICBxdWVyeT86IE9EYXRhUXVlcnlPcHRpb25zPFQ+O1xuICAgICAgc2NoZW1hPzogT0RhdGFTY2hlbWFFbGVtZW50O1xuICAgIH0gPSB7fVxuICApIHtcbiAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICB0aGlzLnBhdGhTZWdtZW50cyA9IHNlZ21lbnRzIHx8IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIHRoaXMucXVlcnlPcHRpb25zID0gcXVlcnkgfHwgbmV3IE9EYXRhUXVlcnlPcHRpb25zKCk7XG4gICAgdGhpcy5zY2hlbWEgPSBzY2hlbWE7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgc3RyaW5nIFRoZSB0eXBlIG9mIHRoZSByZXNvdXJjZVxuICAgKi9cbiAgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoU2VnbWVudHMubGFzdCgpPy50eXBlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgc3RyaW5nIFRoZSB0eXBlIG9mIHRoZSByZXR1cm5cbiAgICovXG4gIHJldHVyblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aFNlZ21lbnRzLmxhc3QoKT8udHlwZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHN0cmluZyBBbGwgY292ZXJlZCB0eXBlcyBvZiB0aGUgcmVzb3VyY2VcbiAgICovXG4gIHR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoU2VnbWVudHMudHlwZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBib29sZWFuIFRoZSByZXNvdXJjZSBoYXMga2V5ID9cbiAgICovXG4gIGhhc0tleSgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLnBhdGhTZWdtZW50cy5sYXN0KHsga2V5OiB0cnVlIH0pPy5oYXNLZXkoKSk7XG4gIH1cblxuICBoYXNFbnRpdHlLZXkoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5wYXRoU2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50TmFtZXMuZW50aXR5U2V0KT8uaGFzS2V5KCkpO1xuICB9XG5cbiAgY2xlYXJLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aFNlZ21lbnRzLmxhc3QoeyBrZXk6IHRydWUgfSk/LmNsZWFyS2V5KCk7XG4gIH1cblxuICAvLyNyZWdpb24gTW9kZWxzXG4gIGFzTW9kZWw8TSBleHRlbmRzIE9EYXRhTW9kZWw8VD4+KFxuICAgIGVudGl0eT86IFBhcnRpYWw8VD4gfCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSxcbiAgICB7IGFubm90cywgcmVzZXQgfTogeyBhbm5vdHM/OiBPRGF0YUVudGl0eUFubm90YXRpb25zOyByZXNldD86IGJvb2xlYW4gfSA9IHt9XG4gICk6IE0ge1xuICAgIGxldCByZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxUPiA9IHRoaXMgYXMgT0RhdGFSZXNvdXJjZTxUPjtcbiAgICBjb25zdCB0eXBlID0gYW5ub3RzPy50eXBlIHx8IHRoaXMucmV0dXJuVHlwZSgpO1xuICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHRocm93IEVycm9yKCcnKTtcbiAgICBjb25zdCBNb2RlbCA9IHRoaXMuYXBpLm1vZGVsRm9yVHlwZSh0eXBlKTtcbiAgICBsZXQgZW50aXR5U2V0ID0gYW5ub3RzPy5lbnRpdHlTZXQ7XG4gICAgaWYgKGVudGl0eVNldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXNvdXJjZSA9IHRoaXMuYXBpLmVudGl0eVNldDxUPihlbnRpdHlTZXQpLmVudGl0eShlbnRpdHkgYXMgUGFydGlhbDxUPik7XG4gICAgICByZXNvdXJjZS5xdWVyeSgocSkgPT4gcS5hcHBseSh0aGlzLnF1ZXJ5T3B0aW9ucy50b1F1ZXJ5QXJndW1lbnRzKCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBNb2RlbChlbnRpdHksIHsgcmVzb3VyY2UsIGFubm90cywgcmVzZXQgfSkgYXMgTTtcbiAgfVxuXG4gIGFzQ29sbGVjdGlvbjxNIGV4dGVuZHMgT0RhdGFNb2RlbDxUPiwgQyBleHRlbmRzIE9EYXRhQ29sbGVjdGlvbjxULCBNPj4oXG4gICAgZW50aXRpZXM/OiBQYXJ0aWFsPFQ+W10gfCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVtdLFxuICAgIHtcbiAgICAgIGFubm90cyxcbiAgICAgIHJlc2V0LFxuICAgIH06IHsgYW5ub3RzPzogT0RhdGFFbnRpdGllc0Fubm90YXRpb25zOyByZXNldD86IGJvb2xlYW4gfSA9IHt9XG4gICk6IEMge1xuICAgIGxldCByZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxUPiA9IHRoaXMgYXMgT0RhdGFSZXNvdXJjZTxUPjtcbiAgICBjb25zdCB0eXBlID0gYW5ub3RzPy50eXBlIHx8IHRoaXMucmV0dXJuVHlwZSgpO1xuICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHRocm93IEVycm9yKCcnKTtcbiAgICBjb25zdCBDb2xsZWN0aW9uID0gdGhpcy5hcGkuY29sbGVjdGlvbkZvclR5cGUodHlwZSk7XG4gICAgbGV0IHBhdGggPSBhbm5vdHM/LmVudGl0eVNldDtcbiAgICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXNvdXJjZSA9IHRoaXMuYXBpLmVudGl0eVNldDxUPihwYXRoKTtcbiAgICAgIHJlc291cmNlLnF1ZXJ5KChxKSA9PiBxLmFwcGx5KHRoaXMucXVlcnlPcHRpb25zLnRvUXVlcnlBcmd1bWVudHMoKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24oZW50aXRpZXMsIHsgcmVzb3VyY2UsIGFubm90cywgcmVzZXQgfSkgYXMgQztcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBpc1N1YnR5cGVPZihvdGhlcjogT0RhdGFSZXNvdXJjZTxhbnk+KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG90aGVyLnNjaGVtYSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLnNjaGVtYT8uaXNTdWJ0eXBlT2Yob3RoZXIuc2NoZW1hKVxuICAgICk7XG4gIH1cblxuICBpc1N1cGVydHlwZU9mKG90aGVyOiBPRGF0YVJlc291cmNlPGFueT4pIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zY2hlbWEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb3RoZXIuc2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuc2NoZW1hPy5pc1N1cGVydHlwZU9mKG90aGVyLnNjaGVtYSlcbiAgICApO1xuICB9XG5cbiAgaXNFcXVhbFRvKG90aGVyOiBPRGF0YVJlc291cmNlPGFueT4sIHRlc3Q/OiAncGF0aCcgfCAncGFyYW1zJykge1xuICAgIGNvbnN0IFtzZWxmUGF0aCwgc2VsZlBhcmFtc10gPSB0aGlzLnBhdGhBbmRQYXJhbXMoKTtcbiAgICBjb25zdCBbb3RoZXJQYXRoLCBvdGhlclBhcmFtc10gPSBvdGhlci5wYXRoQW5kUGFyYW1zKCk7XG4gICAgcmV0dXJuIHRlc3QgPT09ICdwYXRoJ1xuICAgICAgPyBvdGhlclBhdGggPT09IHNlbGZQYXRoXG4gICAgICA6IHRlc3QgPT09ICdwYXJhbXMnXG4gICAgICA/IFR5cGVzLmlzRXF1YWwoc2VsZlBhcmFtcywgb3RoZXJQYXJhbXMpXG4gICAgICA6IG90aGVyUGF0aCA9PT0gc2VsZlBhdGggJiYgVHlwZXMuaXNFcXVhbChzZWxmUGFyYW1zLCBvdGhlclBhcmFtcyk7XG4gIH1cblxuICBwYXRoQW5kUGFyYW1zKGVzY2FwZTogYm9vbGVhbiA9IGZhbHNlKTogW3N0cmluZywgeyBbbmFtZTogc3RyaW5nXTogYW55IH1dIHtcbiAgICBjb25zdCBbc3BhdGgsIHNwYXJhbXNdID0gdGhpcy5wYXRoU2VnbWVudHMucGF0aEFuZFBhcmFtcyhlc2NhcGUpO1xuICAgIGNvbnN0IFssIHFwYXJhbXNdID0gdGhpcy5xdWVyeU9wdGlvbnMucGF0aEFuZFBhcmFtcyhlc2NhcGUpO1xuXG4gICAgcmV0dXJuIFtzcGF0aCwgeyAuLi5zcGFyYW1zLCAuLi5xcGFyYW1zIH1dO1xuICB9XG5cbiAgZW5kcG9pbnRVcmwocGFyYW1zOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmFwaS5zZXJ2aWNlUm9vdFVybH0ke3RoaXN9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IFtwYXRoXSA9IHRoaXMucGF0aEFuZFBhcmFtcygpO1xuICAgICAgcmV0dXJuIGAke3RoaXMuYXBpLnNlcnZpY2VSb290VXJsfSR7cGF0aH1gO1xuICAgIH1cbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgbGV0IFtwYXRoLCBwYXJhbXNdID0gdGhpcy5wYXRoQW5kUGFyYW1zKCk7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKVxuICAgICAgLm1hcCgoZSkgPT4gYCR7ZVswXX0ke1ZBTFVFX1NFUEFSQVRPUn0ke2VbMV19YClcbiAgICAgIC5qb2luKFBBUkFNX1NFUEFSQVRPUik7XG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nID8gYCR7cGF0aH0ke1FVRVJZX1NFUEFSQVRPUn0ke3F1ZXJ5U3RyaW5nfWAgOiBwYXRoO1xuICB9XG5cbiAgY2xvbmUoKTogT0RhdGFSZXNvdXJjZTxUPiB7XG4gICAgY29uc3QgQ3RvciA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIE9EYXRhUmVzb3VyY2U7XG4gICAgcmV0dXJuIG5ldyBDdG9yKHRoaXMuYXBpLCB7XG4gICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgc2VnbWVudHM6IHRoaXMuY2xvbmVTZWdtZW50cygpLFxuICAgICAgcXVlcnk6IHRoaXMuY2xvbmVRdWVyeTxUPigpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfX3BhcnNlcihcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zLFxuICAgIHR5cGU/OiBzdHJpbmdcbiAgKTogUGFyc2VyPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRhVHlwZSA9XG4gICAgICBvcHRpb25zICE9PSB1bmRlZmluZWQgJiYgVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSlcbiAgICAgICAgPyBPRGF0YUhlbHBlcltvcHRpb25zLnZlcnNpb24gfHwgREVGQVVMVF9WRVJTSU9OXS50eXBlKHZhbHVlKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAoZGF0YVR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gUGFyc2VyIGZyb20gZGF0YSB0eXBlXG4gICAgICByZXR1cm4gdGhpcy5hcGkucGFyc2VyRm9yVHlwZTxUPihkYXRhVHlwZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNjaGVtYSAhPT0gdW5kZWZpbmVkICYmICdwYXJzZXInIGluIHRoaXMuc2NoZW1hKSB7XG4gICAgICAvLyBQYXJzZXIgZnJvbSByZXNvdXJjZSBzY2hlbWFcbiAgICAgIHJldHVybiAoPGFueT50aGlzLnNjaGVtYSkucGFyc2VyIGFzIFBhcnNlcjxUPiB8IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gUGFyc2VyIGZyb20gcmVzb3VyY2UgdHlwZVxuICAgICAgcmV0dXJuIHRoaXMuYXBpLnBhcnNlckZvclR5cGU8VD4odHlwZSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBkZXNlcmlhbGl6ZSh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy5yZXR1cm5UeXBlKCk7XG4gICAgY29uc3QgX2QgPSAodmFsdWU6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlciA9IHRoaXMuX19wYXJzZXIodmFsdWUsIG9wdGlvbnMsIHJlc291cmNlVHlwZSk7XG4gICAgICByZXR1cm4gcGFyc2VyICE9PSB1bmRlZmluZWQgJiYgJ2Rlc2VyaWFsaXplJyBpbiBwYXJzZXJcbiAgICAgICAgPyBwYXJzZXIuZGVzZXJpYWxpemUodmFsdWUsIG9wdGlvbnMpXG4gICAgICAgIDogdmFsdWU7XG4gICAgfTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiBfZCh2LCBvcHRpb25zKSlcbiAgICAgIDogX2QodmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCByZXNvdXJjZVR5cGUgPSB0aGlzLnR5cGUoKTtcbiAgICBjb25zdCBfcyA9ICh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcGFyc2VyID0gdGhpcy5fX3BhcnNlcih2YWx1ZSwgb3B0aW9ucywgcmVzb3VyY2VUeXBlKTtcbiAgICAgIHJldHVybiBwYXJzZXIgIT09IHVuZGVmaW5lZCAmJiAnc2VyaWFsaXplJyBpbiBwYXJzZXJcbiAgICAgICAgPyBwYXJzZXIuc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKVxuICAgICAgICA6IHZhbHVlO1xuICAgIH07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gX3Modiwgb3B0aW9ucykpXG4gICAgICA6IF9zKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVuY29kZSh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy50eXBlKCk7XG4gICAgY29uc3QgX2UgPSAodmFsdWU6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlciA9IHRoaXMuX19wYXJzZXIodmFsdWUsIG9wdGlvbnMsIHJlc291cmNlVHlwZSk7XG4gICAgICByZXR1cm4gcGFyc2VyICE9PSB1bmRlZmluZWQgJiYgJ2VuY29kZScgaW4gcGFyc2VyXG4gICAgICAgID8gcGFyc2VyLmVuY29kZSh2YWx1ZSwgb3B0aW9ucylcbiAgICAgICAgOiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZS5tYXAoKHYpID0+IF9lKHYsIG9wdGlvbnMpKVxuICAgICAgOiBfZSh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlZ21lbnRzOiB0aGlzLnBhdGhTZWdtZW50cy50b0pTT04oKSxcbiAgICAgIG9wdGlvbnM6IHRoaXMucXVlcnlPcHRpb25zLnRvSlNPTigpLFxuICAgIH07XG4gIH1cblxuICBjbG9uZVNlZ21lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnBhdGhTZWdtZW50cy5jbG9uZSgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIFF1ZXJ5IE9wdGlvbnNcbiAgY2xlYXJRdWVyeSgpIHtcbiAgICB0aGlzLnF1ZXJ5T3B0aW9ucy5jbGVhcigpO1xuICB9XG5cbiAgY2xvbmVRdWVyeTxQPigpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU9wdGlvbnMuY2xvbmU8UD4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHBhdGggc2VnbWVudHMgb2YgdGhlIHJlc291cmNlXG4gICAqIENyZWF0ZSBhbiBvYmplY3QgaGFuZGxlciBmb3IgbXV0YXRlIHRoZSBwYXRoIHNlZ21lbnRzIG9mIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gZiBGdW5jdGlvbiBjb250ZXh0IGZvciBoYW5kbGUgdGhlIHNlZ21lbnRzXG4gICAqIEByZXR1cm5zIE9EYXRhQWN0aW9uUmVzb3VyY2VcbiAgICovXG4gIHNlZ21lbnQoXG4gICAgZjogKHE6IE9EYXRhUGF0aFNlZ21lbnRzSGFuZGxlcjxUPiwgcz86IE9EYXRhU3RydWN0dXJlZFR5cGU8VD4pID0+IHZvaWRcbiAgKSB7XG4gICAgLypcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlKCk7XG4gICAgY29uc3Qgc2NoZW1hID0gdHlwZSA/IHRoaXMuYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8VD4odHlwZSkgOiB1bmRlZmluZWQ7XG4gICAgKi9cbiAgICBmKFxuICAgICAgbmV3IE9EYXRhUGF0aFNlZ21lbnRzSGFuZGxlcjxUPih0aGlzLnBhdGhTZWdtZW50cyksXG4gICAgICB0aGlzLnNjaGVtYSBpbnN0YW5jZW9mIE9EYXRhU3RydWN0dXJlZFR5cGUgPyB0aGlzLnNjaGVtYSA6IHVuZGVmaW5lZFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHRoZSBxdWVyeSBvcHRpb25zIG9mIHRoZSByZXNvdXJjZVxuICAgKiBDcmVhdGUgYW4gb2JqZWN0IGhhbmRsZXIgZm9yIG11dGF0ZSB0aGUgcXVlcnkgb3B0aW9ucyBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIGYgRnVuY3Rpb24gY29udGV4dCBmb3IgaGFuZGxlIHRoZSBxdWVyeSBvcHRpb25zXG4gICAqL1xuICBxdWVyeShcbiAgICBmOiAocTogT0RhdGFRdWVyeU9wdGlvbnNIYW5kbGVyPFQ+LCBzPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxUPikgPT4gdm9pZFxuICApIHtcbiAgICAvKlxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLnJldHVyblR5cGUoKTtcbiAgICBjb25zdCBzY2hlbWEgPSB0eXBlID8gdGhpcy5hcGkuZmluZFN0cnVjdHVyZWRUeXBlRm9yVHlwZTxUPih0eXBlKSA6IHVuZGVmaW5lZDtcbiAgICAqL1xuICAgIGYoXG4gICAgICBuZXcgT0RhdGFRdWVyeU9wdGlvbnNIYW5kbGVyPFQ+KHRoaXMucXVlcnlPcHRpb25zKSxcbiAgICAgIHRoaXMuc2NoZW1hIGluc3RhbmNlb2YgT0RhdGFTdHJ1Y3R1cmVkVHlwZSA/IHRoaXMuc2NoZW1hIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YXRpYyByZXNvbHZlS2V5PFQ+KFxuICAgIHZhbHVlOiBhbnksXG4gICAgc2NoZW1hPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxUPlxuICApOiBFbnRpdHlLZXk8VD4gfCB1bmRlZmluZWQge1xuICAgIGlmIChpc1F1ZXJ5Q3VzdG9tVHlwZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICByZXR1cm4gc2NoZW1hIGluc3RhbmNlb2YgT0RhdGFTdHJ1Y3R1cmVkVHlwZVxuICAgICAgICA/IHNjaGVtYS5yZXNvbHZlS2V5KHZhbHVlKVxuICAgICAgICA6IE9iamVjdHMucmVzb2x2ZUtleSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSBhcyBFbnRpdHlLZXk8VD4gfCB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzb2x2ZUtleSh2YWx1ZTogYW55KTogRW50aXR5S2V5PFQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gT0RhdGFSZXNvdXJjZS5yZXNvbHZlS2V5PFQ+KFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLnNjaGVtYSBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+XG4gICAgKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyBCYXNlIFJlcXVlc3RzXG4gIHByb3RlY3RlZCByZXF1ZXN0KFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHk/OiBhbnk7XG4gICAgICBldGFnPzogc3RyaW5nO1xuICAgICAgcmVzcG9uc2VUeXBlPzpcbiAgICAgICAgfCAnYXJyYXlidWZmZXInXG4gICAgICAgIHwgJ2Jsb2InXG4gICAgICAgIHwgJ2pzb24nXG4gICAgICAgIHwgJ3RleHQnXG4gICAgICAgIHwgJ3ZhbHVlJ1xuICAgICAgICB8ICdwcm9wZXJ0eSdcbiAgICAgICAgfCAnZW50aXR5J1xuICAgICAgICB8ICdlbnRpdGllcyc7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYXBpT3B0aW9ucyA9IHRoaXMuYXBpLm9wdGlvbnM7XG4gICAgbGV0IHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zIHx8IHt9O1xuICAgIGlmIChvcHRpb25zLndpdGhDb3VudCkge1xuICAgICAgcGFyYW1zID0gSHR0cC5tZXJnZUh0dHBQYXJhbXMocGFyYW1zLCBhcGlPcHRpb25zLmhlbHBlci5jb3VudFBhcmFtKCkpO1xuICAgIH1cblxuICAgIGxldCBldGFnID0gb3B0aW9ucy5ldGFnO1xuICAgIGlmIChldGFnID09PSB1bmRlZmluZWQgJiYgVHlwZXMuaXNQbGFpbk9iamVjdChvcHRpb25zLmJvZHkpKSB7XG4gICAgICBldGFnID0gYXBpT3B0aW9ucy5oZWxwZXIuZXRhZyhvcHRpb25zLmJvZHkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgT0RhdGFSZXF1ZXN0KHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGV0YWcsXG4gICAgICBib2R5OiBvcHRpb25zLmJvZHksXG4gICAgICBhcGk6IHRoaXMuYXBpLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzLFxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IG9wdGlvbnMucmVwb3J0UHJvZ3Jlc3MsXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucy5yZXNwb25zZVR5cGUsXG4gICAgICBmZXRjaFBvbGljeTogb3B0aW9ucy5mZXRjaFBvbGljeSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogb3B0aW9ucy53aXRoQ3JlZGVudGlhbHMsXG4gICAgICBib2R5UXVlcnlPcHRpb25zOiBvcHRpb25zLmJvZHlRdWVyeU9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXMkID0gdGhpcy5hcGkucmVxdWVzdChyZXF1ZXN0KTtcbiAgICBzd2l0Y2ggKG9wdGlvbnMucmVzcG9uc2VUeXBlKSB7XG4gICAgICBjYXNlICdlbnRpdGllcyc6XG4gICAgICAgIHJldHVybiByZXMkLnBpcGUobWFwKChyZXM6IE9EYXRhUmVzcG9uc2U8VD4pID0+IHJlcy5lbnRpdGllcygpKSk7XG4gICAgICBjYXNlICdlbnRpdHknOlxuICAgICAgICByZXR1cm4gcmVzJC5waXBlKG1hcCgocmVzOiBPRGF0YVJlc3BvbnNlPFQ+KSA9PiByZXMuZW50aXR5KCkpKTtcbiAgICAgIGNhc2UgJ3Byb3BlcnR5JzpcbiAgICAgICAgcmV0dXJuIHJlcyQucGlwZShtYXAoKHJlczogT0RhdGFSZXNwb25zZTxUPikgPT4gcmVzLnByb3BlcnR5KCkpKTtcbiAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgcmV0dXJuIHJlcyQucGlwZShtYXAoKHJlczogT0RhdGFSZXNwb25zZTxUPikgPT4gcmVzLnZhbHVlKCkgYXMgVCkpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gT3RoZXIgcmVzcG9uc2VUeXBlcyAoYXJyYXlidWZmZXIsIGJsb2IsIGpzb24sIHRleHQpIHJldHVybiBib2R5XG4gICAgICAgIHJldHVybiByZXMkLnBpcGUobWFwKChyZXM6IE9EYXRhUmVzcG9uc2U8VD4pID0+IHJlcy5ib2R5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldChcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBldGFnPzogc3RyaW5nO1xuICAgICAgcmVzcG9uc2VUeXBlPzpcbiAgICAgICAgfCAnYXJyYXlidWZmZXInXG4gICAgICAgIHwgJ2Jsb2InXG4gICAgICAgIHwgJ2pzb24nXG4gICAgICAgIHwgJ3RleHQnXG4gICAgICAgIHwgJ3ZhbHVlJ1xuICAgICAgICB8ICdwcm9wZXJ0eSdcbiAgICAgICAgfCAnZW50aXR5J1xuICAgICAgICB8ICdlbnRpdGllcyc7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KCdHRVQnLCBvcHRpb25zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwb3N0KFxuICAgIGJvZHk6IGFueSxcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICByZXNwb25zZVR5cGU/OlxuICAgICAgICB8ICdhcnJheWJ1ZmZlcidcbiAgICAgICAgfCAnYmxvYidcbiAgICAgICAgfCAnanNvbidcbiAgICAgICAgfCAndGV4dCdcbiAgICAgICAgfCAndmFsdWUnXG4gICAgICAgIHwgJ3Byb3BlcnR5J1xuICAgICAgICB8ICdlbnRpdHknXG4gICAgICAgIHwgJ2VudGl0aWVzJztcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnUE9TVCcsIHsgYm9keSwgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwdXQoXG4gICAgYm9keTogYW55LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGV0YWc/OiBzdHJpbmc7XG4gICAgICByZXNwb25zZVR5cGU/OlxuICAgICAgICB8ICdhcnJheWJ1ZmZlcidcbiAgICAgICAgfCAnYmxvYidcbiAgICAgICAgfCAnanNvbidcbiAgICAgICAgfCAndGV4dCdcbiAgICAgICAgfCAndmFsdWUnXG4gICAgICAgIHwgJ3Byb3BlcnR5J1xuICAgICAgICB8ICdlbnRpdHknXG4gICAgICAgIHwgJ2VudGl0aWVzJztcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnUFVUJywgeyBib2R5LCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhdGNoKFxuICAgIGJvZHk6IGFueSxcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBldGFnPzogc3RyaW5nO1xuICAgICAgcmVzcG9uc2VUeXBlPzpcbiAgICAgICAgfCAnYXJyYXlidWZmZXInXG4gICAgICAgIHwgJ2Jsb2InXG4gICAgICAgIHwgJ2pzb24nXG4gICAgICAgIHwgJ3RleHQnXG4gICAgICAgIHwgJ3ZhbHVlJ1xuICAgICAgICB8ICdwcm9wZXJ0eSdcbiAgICAgICAgfCAnZW50aXR5J1xuICAgICAgICB8ICdlbnRpdGllcyc7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ1BBVENIJywgeyBib2R5LCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlbGV0ZShcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBldGFnPzogc3RyaW5nO1xuICAgICAgcmVzcG9uc2VUeXBlPzpcbiAgICAgICAgfCAnYXJyYXlidWZmZXInXG4gICAgICAgIHwgJ2Jsb2InXG4gICAgICAgIHwgJ2pzb24nXG4gICAgICAgIHwgJ3RleHQnXG4gICAgICAgIHwgJ3ZhbHVlJ1xuICAgICAgICB8ICdwcm9wZXJ0eSdcbiAgICAgICAgfCAnZW50aXR5J1xuICAgICAgICB8ICdlbnRpdGllcyc7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ0RFTEVURScsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWhELE9BQU8sRUFJTCxnQkFBZ0IsR0FDakIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBRXpCLE1BQU0sU0FBUyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQ0UsR0FBYSxFQUNiLEVBQ0UsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLE1BS0osRUFBRTtRQUVOLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLElBQUksSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxJQUFJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFDLENB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LENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUyxJQUFJLENBQ1osSUFBUyxFQUNULFVBV0ksRUFBRTtRQUVOLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVTLEdBQUcsQ0FDWCxJQUFTLEVBQ1QsVUFZSSxFQUFFO1FBRU4sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRVMsS0FBSyxDQUNiLElBQVMsRUFDVCxVQVlJLEVBQUU7UUFFTixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUyxNQUFNLENBQ2QsVUFZSSxFQUFFO1FBRU4sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBSSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7XG4gIERFRkFVTFRfVkVSU0lPTixcbiAgUEFSQU1fU0VQQVJBVE9SLFxuICBRVUVSWV9TRVBBUkFUT1IsXG4gIFZBTFVFX1NFUEFSQVRPUixcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9EYXRhSGVscGVyIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiwgT0RhdGFNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlIH0gZnJvbSAnLi4vc2NoZW1hJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hRWxlbWVudCB9IGZyb20gJy4uL3NjaGVtYS9lbGVtZW50JztcbmltcG9ydCB7XG4gIFBhcnNlck9wdGlvbnMsXG4gIFBhcnNlcixcbiAgUXVlcnlPcHRpb25OYW1lcyxcbiAgUGF0aFNlZ21lbnROYW1lcyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JqZWN0cywgVHlwZXMgfSBmcm9tICcuLi91dGlscy9pbmRleCc7XG5pbXBvcnQgeyBPRGF0YVBhdGhTZWdtZW50cywgT0RhdGFQYXRoU2VnbWVudHNIYW5kbGVyIH0gZnJvbSAnLi9wYXRoJztcbmltcG9ydCB7XG4gIGlzUXVlcnlDdXN0b21UeXBlLFxuICBPRGF0YVF1ZXJ5T3B0aW9ucyxcbiAgT0RhdGFRdWVyeU9wdGlvbnNIYW5kbGVyLFxuICBRdWVyeUN1c3RvbVR5cGUsXG59IGZyb20gJy4vcXVlcnknO1xuaW1wb3J0IHtcbiAgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zLFxuICBPRGF0YUVudGl0eUFubm90YXRpb25zLFxufSBmcm9tICcuL3Jlc3BvbnNlcy9pbmRleCc7XG5pbXBvcnQgeyBPRGF0YU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRW50aXR5S2V5PFQ+ID1cbiAgfCB7XG4gICAgICByZWFkb25seSBbUCBpbiBrZXlvZiBUXT86IFRbUF07XG4gICAgfVxuICB8IFF1ZXJ5Q3VzdG9tVHlwZVxuICB8IHN0cmluZ1xuICB8IG51bWJlcjtcblxuZXhwb3J0IGNsYXNzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyBWQVJJQUJMRVNcbiAgcHVibGljIGFwaTogT0RhdGFBcGk7XG4gIHB1YmxpYyBzY2hlbWE/OiBPRGF0YVNjaGVtYUVsZW1lbnQ7XG4gIHByb3RlY3RlZCBwYXRoU2VnbWVudHM6IE9EYXRhUGF0aFNlZ21lbnRzO1xuICBwcm90ZWN0ZWQgcXVlcnlPcHRpb25zOiBPRGF0YVF1ZXJ5T3B0aW9uczxUPjtcbiAgY29uc3RydWN0b3IoXG4gICAgYXBpOiBPRGF0YUFwaSxcbiAgICB7XG4gICAgICBzZWdtZW50cyxcbiAgICAgIHF1ZXJ5LFxuICAgICAgc2NoZW1hLFxuICAgIH06IHtcbiAgICAgIHNlZ21lbnRzPzogT0RhdGFQYXRoU2VnbWVudHM7XG4gICAgICBxdWVyeT86IE9EYXRhUXVlcnlPcHRpb25zPFQ+O1xuICAgICAgc2NoZW1hPzogT0RhdGFTY2hlbWFFbGVtZW50O1xuICAgIH0gPSB7fVxuICApIHtcbiAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICB0aGlzLnBhdGhTZWdtZW50cyA9IHNlZ21lbnRzIHx8IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIHRoaXMucXVlcnlPcHRpb25zID0gcXVlcnkgfHwgbmV3IE9EYXRhUXVlcnlPcHRpb25zKCk7XG4gICAgdGhpcy5zY2hlbWEgPSBzY2hlbWE7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgc3RyaW5nIFRoZSB0eXBlIG9mIHRoZSByZXNvdXJjZVxuICAgKi9cbiAgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoU2VnbWVudHMubGFzdCgpPy50eXBlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgc3RyaW5nIFRoZSB0eXBlIG9mIHRoZSByZXR1cm5cbiAgICovXG4gIHJldHVyblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aFNlZ21lbnRzLmxhc3QoKT8udHlwZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHN0cmluZyBBbGwgY292ZXJlZCB0eXBlcyBvZiB0aGUgcmVzb3VyY2VcbiAgICovXG4gIHR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoU2VnbWVudHMudHlwZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBib29sZWFuIFRoZSByZXNvdXJjZSBoYXMga2V5ID9cbiAgICovXG4gIGhhc0tleSgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLnBhdGhTZWdtZW50cy5sYXN0KHsga2V5OiB0cnVlIH0pPy5oYXNLZXkoKSk7XG4gIH1cblxuICBoYXNFbnRpdHlLZXkoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5wYXRoU2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50TmFtZXMuZW50aXR5U2V0KT8uaGFzS2V5KCkpO1xuICB9XG5cbiAgY2xlYXJLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aFNlZ21lbnRzLmxhc3QoeyBrZXk6IHRydWUgfSk/LmNsZWFyS2V5KCk7XG4gIH1cblxuICAvLyNyZWdpb24gTW9kZWxzXG4gIGFzTW9kZWw8TSBleHRlbmRzIE9EYXRhTW9kZWw8VD4+KFxuICAgIGVudGl0eT86IFBhcnRpYWw8VD4gfCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSxcbiAgICB7XG4gICAgICBhbm5vdHMsXG4gICAgICByZXNldCxcbiAgICB9OiB7IGFubm90cz86IE9EYXRhRW50aXR5QW5ub3RhdGlvbnM8VD47IHJlc2V0PzogYm9vbGVhbiB9ID0ge31cbiAgKTogTSB7XG4gICAgbGV0IHJlc291cmNlOiBPRGF0YVJlc291cmNlPFQ+ID0gdGhpcyBhcyBPRGF0YVJlc291cmNlPFQ+O1xuICAgIGNvbnN0IHR5cGUgPSBhbm5vdHM/LnR5cGUgfHwgdGhpcy5yZXR1cm5UeXBlKCk7XG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCkgdGhyb3cgRXJyb3IoJycpO1xuICAgIGNvbnN0IE1vZGVsID0gdGhpcy5hcGkubW9kZWxGb3JUeXBlKHR5cGUpO1xuICAgIGxldCBlbnRpdHlTZXQgPSBhbm5vdHM/LmVudGl0eVNldDtcbiAgICBpZiAoZW50aXR5U2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc291cmNlID0gdGhpcy5hcGkuZW50aXR5U2V0PFQ+KGVudGl0eVNldCkuZW50aXR5KGVudGl0eSBhcyBQYXJ0aWFsPFQ+KTtcbiAgICAgIHJlc291cmNlLnF1ZXJ5KChxKSA9PiBxLmFwcGx5KHRoaXMucXVlcnlPcHRpb25zLnRvUXVlcnlBcmd1bWVudHMoKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE1vZGVsKGVudGl0eSwgeyByZXNvdXJjZSwgYW5ub3RzLCByZXNldCB9KSBhcyBNO1xuICB9XG5cbiAgYXNDb2xsZWN0aW9uPE0gZXh0ZW5kcyBPRGF0YU1vZGVsPFQ+LCBDIGV4dGVuZHMgT0RhdGFDb2xsZWN0aW9uPFQsIE0+PihcbiAgICBlbnRpdGllcz86IFBhcnRpYWw8VD5bXSB8IHsgW25hbWU6IHN0cmluZ106IGFueSB9W10sXG4gICAge1xuICAgICAgYW5ub3RzLFxuICAgICAgcmVzZXQsXG4gICAgfTogeyBhbm5vdHM/OiBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8VD47IHJlc2V0PzogYm9vbGVhbiB9ID0ge31cbiAgKTogQyB7XG4gICAgbGV0IHJlc291cmNlOiBPRGF0YVJlc291cmNlPFQ+ID0gdGhpcyBhcyBPRGF0YVJlc291cmNlPFQ+O1xuICAgIGNvbnN0IHR5cGUgPSBhbm5vdHM/LnR5cGUgfHwgdGhpcy5yZXR1cm5UeXBlKCk7XG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCkgdGhyb3cgRXJyb3IoJycpO1xuICAgIGNvbnN0IENvbGxlY3Rpb24gPSB0aGlzLmFwaS5jb2xsZWN0aW9uRm9yVHlwZSh0eXBlKTtcbiAgICBsZXQgcGF0aCA9IGFubm90cz8uZW50aXR5U2V0O1xuICAgIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc291cmNlID0gdGhpcy5hcGkuZW50aXR5U2V0PFQ+KHBhdGgpO1xuICAgICAgcmVzb3VyY2UucXVlcnkoKHEpID0+IHEuYXBwbHkodGhpcy5xdWVyeU9wdGlvbnMudG9RdWVyeUFyZ3VtZW50cygpKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbihlbnRpdGllcywgeyByZXNvdXJjZSwgYW5ub3RzLCByZXNldCB9KSBhcyBDO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGlzU3VidHlwZU9mKG90aGVyOiBPRGF0YVJlc291cmNlPGFueT4pIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zY2hlbWEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb3RoZXIuc2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuc2NoZW1hPy5pc1N1YnR5cGVPZihvdGhlci5zY2hlbWEpXG4gICAgKTtcbiAgfVxuXG4gIGlzU3VwZXJ0eXBlT2Yob3RoZXI6IE9EYXRhUmVzb3VyY2U8YW55Pikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNjaGVtYSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBvdGhlci5zY2hlbWEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5zY2hlbWE/LmlzU3VwZXJ0eXBlT2Yob3RoZXIuc2NoZW1hKVxuICAgICk7XG4gIH1cblxuICBpc0VxdWFsVG8ob3RoZXI6IE9EYXRhUmVzb3VyY2U8YW55PiwgdGVzdD86ICdwYXRoJyB8ICdwYXJhbXMnKSB7XG4gICAgY29uc3QgW3NlbGZQYXRoLCBzZWxmUGFyYW1zXSA9IHRoaXMucGF0aEFuZFBhcmFtcygpO1xuICAgIGNvbnN0IFtvdGhlclBhdGgsIG90aGVyUGFyYW1zXSA9IG90aGVyLnBhdGhBbmRQYXJhbXMoKTtcbiAgICByZXR1cm4gdGVzdCA9PT0gJ3BhdGgnXG4gICAgICA/IG90aGVyUGF0aCA9PT0gc2VsZlBhdGhcbiAgICAgIDogdGVzdCA9PT0gJ3BhcmFtcydcbiAgICAgID8gVHlwZXMuaXNFcXVhbChzZWxmUGFyYW1zLCBvdGhlclBhcmFtcylcbiAgICAgIDogb3RoZXJQYXRoID09PSBzZWxmUGF0aCAmJiBUeXBlcy5pc0VxdWFsKHNlbGZQYXJhbXMsIG90aGVyUGFyYW1zKTtcbiAgfVxuXG4gIHBhdGhBbmRQYXJhbXMoZXNjYXBlOiBib29sZWFuID0gZmFsc2UpOiBbc3RyaW5nLCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfV0ge1xuICAgIGNvbnN0IFtzcGF0aCwgc3BhcmFtc10gPSB0aGlzLnBhdGhTZWdtZW50cy5wYXRoQW5kUGFyYW1zKGVzY2FwZSk7XG4gICAgY29uc3QgWywgcXBhcmFtc10gPSB0aGlzLnF1ZXJ5T3B0aW9ucy5wYXRoQW5kUGFyYW1zKGVzY2FwZSk7XG5cbiAgICByZXR1cm4gW3NwYXRoLCB7IC4uLnNwYXJhbXMsIC4uLnFwYXJhbXMgfV07XG4gIH1cblxuICBlbmRwb2ludFVybChwYXJhbXM6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgcmV0dXJuIGAke3RoaXMuYXBpLnNlcnZpY2VSb290VXJsfSR7dGhpc31gO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgW3BhdGhdID0gdGhpcy5wYXRoQW5kUGFyYW1zKCk7XG4gICAgICByZXR1cm4gYCR7dGhpcy5hcGkuc2VydmljZVJvb3RVcmx9JHtwYXRofWA7XG4gICAgfVxuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBsZXQgW3BhdGgsIHBhcmFtc10gPSB0aGlzLnBhdGhBbmRQYXJhbXMoKTtcbiAgICBsZXQgcXVlcnlTdHJpbmcgPSBPYmplY3QuZW50cmllcyhwYXJhbXMpXG4gICAgICAubWFwKChlKSA9PiBgJHtlWzBdfSR7VkFMVUVfU0VQQVJBVE9SfSR7ZVsxXX1gKVxuICAgICAgLmpvaW4oUEFSQU1fU0VQQVJBVE9SKTtcbiAgICByZXR1cm4gcXVlcnlTdHJpbmcgPyBgJHtwYXRofSR7UVVFUllfU0VQQVJBVE9SfSR7cXVlcnlTdHJpbmd9YCA6IHBhdGg7XG4gIH1cblxuICBjbG9uZSgpOiBPRGF0YVJlc291cmNlPFQ+IHtcbiAgICBjb25zdCBDdG9yID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgT0RhdGFSZXNvdXJjZTtcbiAgICByZXR1cm4gbmV3IEN0b3IodGhpcy5hcGksIHtcbiAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICBzZWdtZW50czogdGhpcy5jbG9uZVNlZ21lbnRzKCksXG4gICAgICBxdWVyeTogdGhpcy5jbG9uZVF1ZXJ5PFQ+KCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9fcGFyc2VyKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMsXG4gICAgdHlwZT86IHN0cmluZ1xuICApOiBQYXJzZXI8VD4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGRhdGFUeXBlID1cbiAgICAgIG9wdGlvbnMgIT09IHVuZGVmaW5lZCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KHZhbHVlKVxuICAgICAgICA/IE9EYXRhSGVscGVyW29wdGlvbnMudmVyc2lvbiB8fCBERUZBVUxUX1ZFUlNJT05dLnR5cGUodmFsdWUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGlmIChkYXRhVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBQYXJzZXIgZnJvbSBkYXRhIHR5cGVcbiAgICAgIHJldHVybiB0aGlzLmFwaS5wYXJzZXJGb3JUeXBlPFQ+KGRhdGFUeXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2NoZW1hICE9PSB1bmRlZmluZWQgJiYgJ3BhcnNlcicgaW4gdGhpcy5zY2hlbWEpIHtcbiAgICAgIC8vIFBhcnNlciBmcm9tIHJlc291cmNlIHNjaGVtYVxuICAgICAgcmV0dXJuICg8YW55PnRoaXMuc2NoZW1hKS5wYXJzZXIgYXMgUGFyc2VyPFQ+IHwgdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBQYXJzZXIgZnJvbSByZXNvdXJjZSB0eXBlXG4gICAgICByZXR1cm4gdGhpcy5hcGkucGFyc2VyRm9yVHlwZTxUPih0eXBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCByZXNvdXJjZVR5cGUgPSB0aGlzLnJldHVyblR5cGUoKTtcbiAgICBjb25zdCBfZCA9ICh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcGFyc2VyID0gdGhpcy5fX3BhcnNlcih2YWx1ZSwgb3B0aW9ucywgcmVzb3VyY2VUeXBlKTtcbiAgICAgIHJldHVybiBwYXJzZXIgIT09IHVuZGVmaW5lZCAmJiAnZGVzZXJpYWxpemUnIGluIHBhcnNlclxuICAgICAgICA/IHBhcnNlci5kZXNlcmlhbGl6ZSh2YWx1ZSwgb3B0aW9ucylcbiAgICAgICAgOiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZS5tYXAoKHYpID0+IF9kKHYsIG9wdGlvbnMpKVxuICAgICAgOiBfZCh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICBzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IHRoaXMudHlwZSgpO1xuICAgIGNvbnN0IF9zID0gKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZXIgPSB0aGlzLl9fcGFyc2VyKHZhbHVlLCBvcHRpb25zLCByZXNvdXJjZVR5cGUpO1xuICAgICAgcmV0dXJuIHBhcnNlciAhPT0gdW5kZWZpbmVkICYmICdzZXJpYWxpemUnIGluIHBhcnNlclxuICAgICAgICA/IHBhcnNlci5zZXJpYWxpemUodmFsdWUsIG9wdGlvbnMpXG4gICAgICAgIDogdmFsdWU7XG4gICAgfTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiBfcyh2LCBvcHRpb25zKSlcbiAgICAgIDogX3ModmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZW5jb2RlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCByZXNvdXJjZVR5cGUgPSB0aGlzLnR5cGUoKTtcbiAgICBjb25zdCBfZSA9ICh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcGFyc2VyID0gdGhpcy5fX3BhcnNlcih2YWx1ZSwgb3B0aW9ucywgcmVzb3VyY2VUeXBlKTtcbiAgICAgIHJldHVybiBwYXJzZXIgIT09IHVuZGVmaW5lZCAmJiAnZW5jb2RlJyBpbiBwYXJzZXJcbiAgICAgICAgPyBwYXJzZXIuZW5jb2RlKHZhbHVlLCBvcHRpb25zKVxuICAgICAgICA6IHZhbHVlO1xuICAgIH07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gX2Uodiwgb3B0aW9ucykpXG4gICAgICA6IF9lKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VnbWVudHM6IHRoaXMucGF0aFNlZ21lbnRzLnRvSlNPTigpLFxuICAgICAgb3B0aW9uczogdGhpcy5xdWVyeU9wdGlvbnMudG9KU09OKCksXG4gICAgfTtcbiAgfVxuXG4gIGNsb25lU2VnbWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aFNlZ21lbnRzLmNsb25lKCk7XG4gIH1cblxuICAvLyNyZWdpb24gUXVlcnkgT3B0aW9uc1xuICBjbGVhclF1ZXJ5KCkge1xuICAgIHRoaXMucXVlcnlPcHRpb25zLmNsZWFyKCk7XG4gIH1cblxuICBjbG9uZVF1ZXJ5PFA+KCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T3B0aW9ucy5jbG9uZTxQPigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcGF0aCBzZWdtZW50cyBvZiB0aGUgcmVzb3VyY2VcbiAgICogQ3JlYXRlIGFuIG9iamVjdCBoYW5kbGVyIGZvciBtdXRhdGUgdGhlIHBhdGggc2VnbWVudHMgb2YgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSBmIEZ1bmN0aW9uIGNvbnRleHQgZm9yIGhhbmRsZSB0aGUgc2VnbWVudHNcbiAgICogQHJldHVybnMgT0RhdGFBY3Rpb25SZXNvdXJjZVxuICAgKi9cbiAgc2VnbWVudChcbiAgICBmOiAocTogT0RhdGFQYXRoU2VnbWVudHNIYW5kbGVyPFQ+LCBzPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxUPikgPT4gdm9pZFxuICApIHtcbiAgICAvKlxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUoKTtcbiAgICBjb25zdCBzY2hlbWEgPSB0eXBlID8gdGhpcy5hcGkuZmluZFN0cnVjdHVyZWRUeXBlRm9yVHlwZTxUPih0eXBlKSA6IHVuZGVmaW5lZDtcbiAgICAqL1xuICAgIGYoXG4gICAgICBuZXcgT0RhdGFQYXRoU2VnbWVudHNIYW5kbGVyPFQ+KHRoaXMucGF0aFNlZ21lbnRzKSxcbiAgICAgIHRoaXMuc2NoZW1hIGluc3RhbmNlb2YgT0RhdGFTdHJ1Y3R1cmVkVHlwZSA/IHRoaXMuc2NoZW1hIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHF1ZXJ5IG9wdGlvbnMgb2YgdGhlIHJlc291cmNlXG4gICAqIENyZWF0ZSBhbiBvYmplY3QgaGFuZGxlciBmb3IgbXV0YXRlIHRoZSBxdWVyeSBvcHRpb25zIG9mIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gZiBGdW5jdGlvbiBjb250ZXh0IGZvciBoYW5kbGUgdGhlIHF1ZXJ5IG9wdGlvbnNcbiAgICovXG4gIHF1ZXJ5KFxuICAgIGY6IChxOiBPRGF0YVF1ZXJ5T3B0aW9uc0hhbmRsZXI8VD4sIHM/OiBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+KSA9PiB2b2lkXG4gICkge1xuICAgIC8qXG4gICAgY29uc3QgdHlwZSA9IHRoaXMucmV0dXJuVHlwZSgpO1xuICAgIGNvbnN0IHNjaGVtYSA9IHR5cGUgPyB0aGlzLmFwaS5maW5kU3RydWN0dXJlZFR5cGVGb3JUeXBlPFQ+KHR5cGUpIDogdW5kZWZpbmVkO1xuICAgICovXG4gICAgZihcbiAgICAgIG5ldyBPRGF0YVF1ZXJ5T3B0aW9uc0hhbmRsZXI8VD4odGhpcy5xdWVyeU9wdGlvbnMpLFxuICAgICAgdGhpcy5zY2hlbWEgaW5zdGFuY2VvZiBPRGF0YVN0cnVjdHVyZWRUeXBlID8gdGhpcy5zY2hlbWEgOiB1bmRlZmluZWRcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhdGljIHJlc29sdmVLZXk8VD4oXG4gICAgdmFsdWU6IGFueSxcbiAgICBzY2hlbWE/OiBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+XG4gICk6IEVudGl0eUtleTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGlzUXVlcnlDdXN0b21UeXBlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBzY2hlbWEgaW5zdGFuY2VvZiBPRGF0YVN0cnVjdHVyZWRUeXBlXG4gICAgICAgID8gc2NoZW1hLnJlc29sdmVLZXkodmFsdWUpXG4gICAgICAgIDogT2JqZWN0cy5yZXNvbHZlS2V5KHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlIGFzIEVudGl0eUtleTxUPiB8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNvbHZlS2V5KHZhbHVlOiBhbnkpOiBFbnRpdHlLZXk8VD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBPRGF0YVJlc291cmNlLnJlc29sdmVLZXk8VD4oXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMuc2NoZW1hIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD5cbiAgICApO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHByb3RlY3RlZCBnZXQoXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zICYge1xuICAgICAgZXRhZz86IHN0cmluZztcbiAgICAgIHJlc3BvbnNlVHlwZT86XG4gICAgICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgICAgICB8ICdibG9iJ1xuICAgICAgICB8ICdqc29uJ1xuICAgICAgICB8ICd0ZXh0J1xuICAgICAgICB8ICd2YWx1ZSdcbiAgICAgICAgfCAncHJvcGVydHknXG4gICAgICAgIHwgJ2VudGl0eSdcbiAgICAgICAgfCAnZW50aXRpZXMnO1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbk5hbWVzW107XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpLnJlcXVlc3Q8VD4oJ0dFVCcsIHRoaXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBvc3QoXG4gICAgYm9keTogYW55LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHJlc3BvbnNlVHlwZT86XG4gICAgICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgICAgICB8ICdibG9iJ1xuICAgICAgICB8ICdqc29uJ1xuICAgICAgICB8ICd0ZXh0J1xuICAgICAgICB8ICd2YWx1ZSdcbiAgICAgICAgfCAncHJvcGVydHknXG4gICAgICAgIHwgJ2VudGl0eSdcbiAgICAgICAgfCAnZW50aXRpZXMnO1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hcGkucmVxdWVzdDxUPignUE9TVCcsIHRoaXMsIHsgYm9keSwgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwdXQoXG4gICAgYm9keTogYW55LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGV0YWc/OiBzdHJpbmc7XG4gICAgICByZXNwb25zZVR5cGU/OlxuICAgICAgICB8ICdhcnJheWJ1ZmZlcidcbiAgICAgICAgfCAnYmxvYidcbiAgICAgICAgfCAnanNvbidcbiAgICAgICAgfCAndGV4dCdcbiAgICAgICAgfCAndmFsdWUnXG4gICAgICAgIHwgJ3Byb3BlcnR5J1xuICAgICAgICB8ICdlbnRpdHknXG4gICAgICAgIHwgJ2VudGl0aWVzJztcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpLnJlcXVlc3Q8VD4oJ1BVVCcsIHRoaXMsIHsgYm9keSwgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXRjaChcbiAgICBib2R5OiBhbnksXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zICYge1xuICAgICAgZXRhZz86IHN0cmluZztcbiAgICAgIHJlc3BvbnNlVHlwZT86XG4gICAgICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgICAgICB8ICdibG9iJ1xuICAgICAgICB8ICdqc29uJ1xuICAgICAgICB8ICd0ZXh0J1xuICAgICAgICB8ICd2YWx1ZSdcbiAgICAgICAgfCAncHJvcGVydHknXG4gICAgICAgIHwgJ2VudGl0eSdcbiAgICAgICAgfCAnZW50aXRpZXMnO1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hcGkucmVxdWVzdDxUPignUEFUQ0gnLCB0aGlzLCB7IGJvZHksIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVsZXRlKFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGV0YWc/OiBzdHJpbmc7XG4gICAgICByZXNwb25zZVR5cGU/OlxuICAgICAgICB8ICdhcnJheWJ1ZmZlcidcbiAgICAgICAgfCAnYmxvYidcbiAgICAgICAgfCAnanNvbidcbiAgICAgICAgfCAndGV4dCdcbiAgICAgICAgfCAndmFsdWUnXG4gICAgICAgIHwgJ3Byb3BlcnR5J1xuICAgICAgICB8ICdlbnRpdHknXG4gICAgICAgIHwgJ2VudGl0aWVzJztcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpLnJlcXVlc3Q8VD4oJ0RFTEVURScsIHRoaXMsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
@@ -21,6 +21,9 @@ export class ODataAnnotations {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
export class ODataPropertyAnnotations extends ODataAnnotations {
|
|
24
|
+
union(other) {
|
|
25
|
+
return new ODataPropertyAnnotations(this.helper, new Map([...this.annotations, ...other.annotations]), Object.assign({}, this.context, other.context));
|
|
26
|
+
}
|
|
24
27
|
clone() {
|
|
25
28
|
return new ODataPropertyAnnotations(this.helper, new Map(this.annotations), this.context);
|
|
26
29
|
}
|
|
@@ -29,6 +32,9 @@ export class ODataPropertyAnnotations extends ODataAnnotations {
|
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
export class ODataEntityAnnotations extends ODataAnnotations {
|
|
35
|
+
union(other) {
|
|
36
|
+
return new ODataEntityAnnotations(this.helper, new Map([...this.annotations, ...other.annotations]), Object.assign({}, this.context, other.context));
|
|
37
|
+
}
|
|
32
38
|
clone() {
|
|
33
39
|
return new ODataEntityAnnotations(this.helper, new Map(this.annotations), this.context);
|
|
34
40
|
}
|
|
@@ -68,8 +74,11 @@ export class ODataEntityAnnotations extends ODataAnnotations {
|
|
|
68
74
|
}
|
|
69
75
|
return this._properties;
|
|
70
76
|
}
|
|
71
|
-
property(name) {
|
|
72
|
-
|
|
77
|
+
property(name, type) {
|
|
78
|
+
const props = this.properties.get(name);
|
|
79
|
+
return type === 'collection'
|
|
80
|
+
? new ODataEntitiesAnnotations(this.helper, props)
|
|
81
|
+
: new ODataEntityAnnotations(this.helper, props);
|
|
73
82
|
}
|
|
74
83
|
get functions() {
|
|
75
84
|
if (this._functions === undefined) {
|
|
@@ -82,6 +91,9 @@ export class ODataEntityAnnotations extends ODataAnnotations {
|
|
|
82
91
|
}
|
|
83
92
|
}
|
|
84
93
|
export class ODataEntitiesAnnotations extends ODataAnnotations {
|
|
94
|
+
union(other) {
|
|
95
|
+
return new ODataEntitiesAnnotations(this.helper, new Map([...this.annotations, ...other.annotations]), Object.assign({}, this.context, other.context));
|
|
96
|
+
}
|
|
85
97
|
clone() {
|
|
86
98
|
return new ODataEntitiesAnnotations(this.helper, new Map(this.annotations), this.context);
|
|
87
99
|
}
|
|
@@ -109,7 +121,7 @@ export class ODataEntitiesAnnotations extends ODataAnnotations {
|
|
|
109
121
|
return match !== null ? Number(match[1]) : undefined;
|
|
110
122
|
}
|
|
111
123
|
get skiptoken() {
|
|
112
|
-
let match = (this.nextLink || '').match(/[&?]{1}\$skiptoken=([\d\w\s']+)/);
|
|
124
|
+
let match = (this.nextLink || '').match(/[&?]{1}\$skiptoken=([\d\w\s'\-]+)/);
|
|
113
125
|
return match !== null ? match[1] : undefined;
|
|
114
126
|
}
|
|
115
127
|
get functions() {
|
|
@@ -122,4 +134,4 @@ export class ODataEntitiesAnnotations extends ODataAnnotations {
|
|
|
122
134
|
return this.functions[name];
|
|
123
135
|
}
|
|
124
136
|
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy9hbm5vdGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLGdCQUFnQjtJQUNwQyxZQUNTLE1BQTBCLEVBQ3ZCLGNBQWdDLElBQUksR0FBRyxFQUFlLEVBQ3RELE9BQXNCO1FBRnpCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCxZQUFPLEdBQVAsT0FBTyxDQUFlO0lBQy9CLENBQUM7SUFFSixVQUFVLENBQUksSUFBNEIsRUFBRSxRQUEyQjtRQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLENBQU0sQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQTRCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQWM7WUFDdEMsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7SUFDbEUsQ0FBQztDQUtGO0FBRUQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUM1RCxLQUFLO1FBQ0gsT0FBTyxJQUFJLHdCQUF3QixDQUNqQyxJQUFJLENBQUMsTUFBTSxF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QUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDM0UsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBSSxTQUFTO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9EYXRhQ29udGV4dCwgT0RhdGFWZXJzaW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVyJztcblxuaW1wb3J0IHsgT0RhdGFNZXRhZGF0YVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPRGF0YUFubm90YXRpb25zIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGhlbHBlcjogT0RhdGFWZXJzaW9uSGVscGVyLFxuICAgIHByb3RlY3RlZCBhbm5vdGF0aW9uczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCksXG4gICAgcHJvdGVjdGVkIGNvbnRleHQ/OiBPRGF0YUNvbnRleHRcbiAgKSB7fVxuXG4gIGF0dHJpYnV0ZXM8VD4oZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgbWV0YWRhdGE6IE9EYXRhTWV0YWRhdGFUeXBlKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLmF0dHJpYnV0ZXMoZGF0YSwgbWV0YWRhdGEpIGFzIFQ7XG4gIH1cblxuICB1cGRhdGUoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIHRoaXMuYW5ub3RhdGlvbnMgPSBuZXcgTWFwPHN0cmluZywgYW55PihbXG4gICAgICAuLi50aGlzLmFubm90YXRpb25zLFxuICAgICAgLi4udGhpcy5oZWxwZXIuYW5ub3RhdGlvbnMoZGF0YSksXG4gICAgXSk7XG4gIH1cblxuICBnZXQgZW50aXR5U2V0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ/LmVudGl0eVNldDtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci50eXBlKHRoaXMuYW5ub3RhdGlvbnMpIHx8IHRoaXMuY29udGV4dD8udHlwZTtcbiAgfVxuXG4gIC8vIE1ldGhvZFxuICBhYnN0cmFjdCBjbG9uZSgpOiBPRGF0YUFubm90YXRpb25zO1xuICBhYnN0cmFjdCBkYXRhKGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgY2xhc3MgT0RhdGFQcm9wZXJ0eUFubm90YXRpb25zIGV4dGVuZHMgT0RhdGFBbm5vdGF0aW9ucyB7XG4gIGNsb25lKCk6IE9EYXRhUHJvcGVydHlBbm5vdGF0aW9ucyB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnMoXG4gICAgICB0aGlzLmhlbHBlcixcbiAgICAgIG5ldyBNYXAodGhpcy5hbm5vdGF0aW9ucyksXG4gICAgICB0aGlzLmNvbnRleHRcbiAgICApO1xuICB9XG5cbiAgZGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLnByb3BlcnR5KGRhdGEpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUVudGl0eUFubm90YXRpb25zIGV4dGVuZHMgT0RhdGFBbm5vdGF0aW9ucyB7XG4gIGNsb25lKCk6IE9EYXRhRW50aXR5QW5ub3RhdGlvbnMge1xuICAgIHJldHVybiBuZXcgT0RhdGFFbnRpdHlBbm5vdGF0aW9ucyhcbiAgICAgIHRoaXMuaGVscGVyLFxuICAgICAgbmV3IE1hcCh0aGlzLmFubm90YXRpb25zKSxcbiAgICAgIHRoaXMuY29udGV4dFxuICAgICk7XG4gIH1cblxuICBkYXRhKGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuZW50aXR5KGRhdGEpO1xuICB9XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5pZCh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIGdldCBldGFnKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5ldGFnKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IG1lZGlhRXRhZygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIubWVkaWFFdGFnKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IG1ldGFkYXRhRXRhZygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIubWV0YWRhdGFFdGFnKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IHJlYWRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5yZWFkTGluayh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIGdldCBlZGl0TGluaygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuZWRpdExpbmsodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgbWVkaWFSZWFkTGluaygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIubWVkaWFSZWFkTGluayh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIGdldCBtZWRpYUVkaXRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5tZWRpYUVkaXRMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IG1lZGlhQ29udGVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLm1lZGlhQ29udGVudFR5cGUodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9wZXJ0aWVzPzogTWFwPHN0cmluZywgTWFwPHN0cmluZywgYW55Pj47XG4gIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIGlmICh0aGlzLl9wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Byb3BlcnRpZXMgPSB0aGlzLmhlbHBlci5wcm9wZXJ0aWVzKHRoaXMuYW5ub3RhdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcHJvcGVydGllcztcbiAgfVxuXG4gIHByb3BlcnR5KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuZ2V0KG5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnVuY3Rpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgZ2V0IGZ1bmN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5fZnVuY3Rpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IHRoaXMuaGVscGVyLmZ1bmN0aW9ucyh0aGlzLmFubm90YXRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9ucztcbiAgfVxuXG4gIGZ1bmN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uc1tuYW1lXTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zIGV4dGVuZHMgT0RhdGFBbm5vdGF0aW9ucyB7XG4gIGNsb25lKCk6IE9EYXRhRW50aXRpZXNBbm5vdGF0aW9ucyB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnMoXG4gICAgICB0aGlzLmhlbHBlcixcbiAgICAgIG5ldyBNYXAodGhpcy5hbm5vdGF0aW9ucyksXG4gICAgICB0aGlzLmNvbnRleHRcbiAgICApO1xuICB9XG5cbiAgZGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLmVudGl0aWVzKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHJlYWRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5yZWFkTGluayh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIGdldCBjb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuY291bnQodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgbmV4dExpbmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLm5leHRMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGRlbHRhTGluaygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuZGVsdGFMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IHRvcCgpIHtcbiAgICBsZXQgbWF0Y2ggPSAodGhpcy5uZXh0TGluayB8fCAnJykubWF0Y2goL1smP117MX1cXCR0b3A9KFxcZCspLyk7XG4gICAgcmV0dXJuIG1hdGNoICE9PSBudWxsID8gTnVtYmVyKG1hdGNoWzFdKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBza2lwKCkge1xuICAgIGxldCBtYXRjaCA9ICh0aGlzLm5leHRMaW5rIHx8ICcnKS5tYXRjaCgvWyY/XXsxfVxcJHNraXA9KFxcZCspLyk7XG4gICAgcmV0dXJuIG1hdGNoICE9PSBudWxsID8gTnVtYmVyKG1hdGNoWzFdKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBza2lwdG9rZW4oKSB7XG4gICAgbGV0IG1hdGNoID0gKHRoaXMubmV4dExpbmsgfHwgJycpLm1hdGNoKC9bJj9dezF9XFwkc2tpcHRva2VuPShbXFxkXFx3XFxzJ10rKS8pO1xuICAgIHJldHVybiBtYXRjaCAhPT0gbnVsbCA/IG1hdGNoWzFdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnVuY3Rpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgZ2V0IGZ1bmN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5fZnVuY3Rpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IHRoaXMuaGVscGVyLmZ1bmN0aW9ucyh0aGlzLmFubm90YXRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9ucztcbiAgfVxuICBmdW5jdGlvbihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mdW5jdGlvbnNbbmFtZV07XG4gIH1cbn1cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy9hbm5vdGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLGdCQUFnQjtJQUNwQyxZQUNTLE1BQTBCLEVBQ3ZCLGNBQWdDLElBQUksR0FBRyxFQUFlLEVBQ3RELE9BQXNCO1FBRnpCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCxZQUFPLEdBQVAsT0FBTyxDQUFlO0lBQy9CLENBQUM7SUFFSixVQUFVLENBQ1IsSUFBNEIsRUFDNUIsUUFBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFlLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUE0QjtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFjO1lBQ3RDLEdBQUcsSUFBSSxDQUFDLFdBQVc7WUFDbkIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQ2xFLENBQUM7Q0FNRjtBQUVELE1BQU0sT0FBTyx3QkFBNEIsU0FBUSxnQkFBbUI7SUFDbEUsS0FBSyxDQUFDLEtBQW9DO1FBQ3hDLE9BQU8sSUFBSSx3QkFBd0IsQ0FDakMsSUFB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QUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQ3JDLG1DQUFtQyxDQUNwQyxDQUFDO1FBQ0YsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBSSxTQUFTO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9EYXRhQ29udGV4dCwgT0RhdGFWZXJzaW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVyJztcblxuaW1wb3J0IHsgT0RhdGFNZXRhZGF0YVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPRGF0YUFubm90YXRpb25zPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGhlbHBlcjogT0RhdGFWZXJzaW9uSGVscGVyLFxuICAgIHByb3RlY3RlZCBhbm5vdGF0aW9uczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCksXG4gICAgcHJvdGVjdGVkIGNvbnRleHQ/OiBPRGF0YUNvbnRleHRcbiAgKSB7fVxuXG4gIGF0dHJpYnV0ZXMoXG4gICAgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICBtZXRhZGF0YTogT0RhdGFNZXRhZGF0YVR5cGVcbiAgKTogUGFydGlhbDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLmF0dHJpYnV0ZXMoZGF0YSwgbWV0YWRhdGEpIGFzIFBhcnRpYWw8VD47XG4gIH1cblxuICB1cGRhdGUoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIHRoaXMuYW5ub3RhdGlvbnMgPSBuZXcgTWFwPHN0cmluZywgYW55PihbXG4gICAgICAuLi50aGlzLmFubm90YXRpb25zLFxuICAgICAgLi4udGhpcy5oZWxwZXIuYW5ub3RhdGlvbnMoZGF0YSksXG4gICAgXSk7XG4gIH1cblxuICBnZXQgZW50aXR5U2V0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ/LmVudGl0eVNldDtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci50eXBlKHRoaXMuYW5ub3RhdGlvbnMpIHx8IHRoaXMuY29udGV4dD8udHlwZTtcbiAgfVxuXG4gIC8vIE1ldGhvZFxuICBhYnN0cmFjdCB1bmlvbihvdGhlcjogT0RhdGFBbm5vdGF0aW9uczxhbnk+KTogT0RhdGFBbm5vdGF0aW9uczxhbnk+O1xuICBhYnN0cmFjdCBjbG9uZSgpOiBPRGF0YUFubm90YXRpb25zPGFueT47XG4gIGFic3RyYWN0IGRhdGEoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnM8VD4gZXh0ZW5kcyBPRGF0YUFubm90YXRpb25zPFQ+IHtcbiAgdW5pb24ob3RoZXI6IE9EYXRhUHJvcGVydHlBbm5vdGF0aW9uczxhbnk+KTogT0RhdGFQcm9wZXJ0eUFubm90YXRpb25zPGFueT4ge1xuICAgIHJldHVybiBuZXcgT0RhdGFQcm9wZXJ0eUFubm90YXRpb25zPGFueT4oXG4gICAgICB0aGlzLmhlbHBlcixcbiAgICAgIG5ldyBNYXA8c3RyaW5nLCBhbnk+KFsuLi50aGlzLmFubm90YXRpb25zLCAuLi5vdGhlci5hbm5vdGF0aW9uc10pLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb250ZXh0LCBvdGhlci5jb250ZXh0KVxuICAgICk7XG4gIH1cblxuICBjbG9uZSgpOiBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnM8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnM8YW55PihcbiAgICAgIHRoaXMuaGVscGVyLFxuICAgICAgbmV3IE1hcCh0aGlzLmFubm90YXRpb25zKSxcbiAgICAgIHRoaXMuY29udGV4dFxuICAgICk7XG4gIH1cblxuICBkYXRhKGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIucHJvcGVydHkoZGF0YSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5QW5ub3RhdGlvbnM8VD4gZXh0ZW5kcyBPRGF0YUFubm90YXRpb25zPFQ+IHtcbiAgdW5pb24ob3RoZXI6IE9EYXRhRW50aXR5QW5ub3RhdGlvbnM8YW55Pik6IE9EYXRhRW50aXR5QW5ub3RhdGlvbnM8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUVudGl0eUFubm90YXRpb25zPGFueT4oXG4gICAgICB0aGlzLmhlbHBlcixcbiAgICAgIG5ldyBNYXA8c3RyaW5nLCBhbnk+KFsuLi50aGlzLmFubm90YXRpb25zLCAuLi5vdGhlci5hbm5vdGF0aW9uc10pLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb250ZXh0LCBvdGhlci5jb250ZXh0KVxuICAgICk7XG4gIH1cblxuICBjbG9uZSgpOiBPRGF0YUVudGl0eUFubm90YXRpb25zPGFueT4ge1xuICAgIHJldHVybiBuZXcgT0RhdGFFbnRpdHlBbm5vdGF0aW9uczxhbnk+KFxuICAgICAgdGhpcy5oZWxwZXIsXG4gICAgICBuZXcgTWFwKHRoaXMuYW5ub3RhdGlvbnMpLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgfVxuXG4gIGRhdGEoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5lbnRpdHkoZGF0YSk7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLmlkKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGV0YWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLmV0YWcodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgbWVkaWFFdGFnKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5tZWRpYUV0YWcodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgbWV0YWRhdGFFdGFnKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5tZXRhZGF0YUV0YWcodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgcmVhZExpbmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLnJlYWRMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGVkaXRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5lZGl0TGluayh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIGdldCBtZWRpYVJlYWRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5tZWRpYVJlYWRMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IG1lZGlhRWRpdExpbmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLm1lZGlhRWRpdExpbmsodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgbWVkaWFDb250ZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIubWVkaWFDb250ZW50VHlwZSh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Byb3BlcnRpZXM/OiBNYXA8a2V5b2YgVCwgTWFwPHN0cmluZywgYW55Pj47XG4gIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIGlmICh0aGlzLl9wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Byb3BlcnRpZXMgPSB0aGlzLmhlbHBlci5wcm9wZXJ0aWVzPFQ+KHRoaXMuYW5ub3RhdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcHJvcGVydGllcztcbiAgfVxuXG4gIHByb3BlcnR5PEY+KG5hbWU6IGtleW9mIFQsIHR5cGU6ICdjb2xsZWN0aW9uJyk6IE9EYXRhRW50aXRpZXNBbm5vdGF0aW9uczxGPjtcbiAgcHJvcGVydHk8Rj4obmFtZToga2V5b2YgVCwgdHlwZTogJ3NpbmdsZScpOiBPRGF0YUVudGl0eUFubm90YXRpb25zPEY+O1xuICBwcm9wZXJ0eTxGPihcbiAgICBuYW1lOiBrZXlvZiBULFxuICAgIHR5cGU6ICdzaW5nbGUnIHwgJ2NvbGxlY3Rpb24nXG4gICk6IE9EYXRhRW50aXR5QW5ub3RhdGlvbnM8Rj4gfCBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8Rj4ge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wZXJ0aWVzLmdldChuYW1lKTtcbiAgICByZXR1cm4gdHlwZSA9PT0gJ2NvbGxlY3Rpb24nXG4gICAgICA/IG5ldyBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8Rj4odGhpcy5oZWxwZXIsIHByb3BzKVxuICAgICAgOiBuZXcgT0RhdGFFbnRpdHlBbm5vdGF0aW9uczxGPih0aGlzLmhlbHBlciwgcHJvcHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnVuY3Rpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgZ2V0IGZ1bmN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5fZnVuY3Rpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IHRoaXMuaGVscGVyLmZ1bmN0aW9ucyh0aGlzLmFubm90YXRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9ucztcbiAgfVxuXG4gIGZ1bmN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uc1tuYW1lXTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zPFQ+IGV4dGVuZHMgT0RhdGFBbm5vdGF0aW9uczxUPiB7XG4gIHVuaW9uKG90aGVyOiBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8YW55Pik6IE9EYXRhRW50aXRpZXNBbm5vdGF0aW9uczxhbnk+IHtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXRpZXNBbm5vdGF0aW9uczxhbnk+KFxuICAgICAgdGhpcy5oZWxwZXIsXG4gICAgICBuZXcgTWFwPHN0cmluZywgYW55PihbLi4udGhpcy5hbm5vdGF0aW9ucywgLi4ub3RoZXIuYW5ub3RhdGlvbnNdKSxcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29udGV4dCwgb3RoZXIuY29udGV4dClcbiAgICApO1xuICB9XG5cbiAgY2xvbmUoKTogT0RhdGFFbnRpdGllc0Fubm90YXRpb25zPGFueT4ge1xuICAgIHJldHVybiBuZXcgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zPGFueT4oXG4gICAgICB0aGlzLmhlbHBlcixcbiAgICAgIG5ldyBNYXAodGhpcy5hbm5vdGF0aW9ucyksXG4gICAgICB0aGlzLmNvbnRleHRcbiAgICApO1xuICB9XG5cbiAgZGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLmVudGl0aWVzKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHJlYWRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5yZWFkTGluayh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIGdldCBjb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuY291bnQodGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBnZXQgbmV4dExpbmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyLm5leHRMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGRlbHRhTGluaygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuZGVsdGFMaW5rKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgZ2V0IHRvcCgpIHtcbiAgICBsZXQgbWF0Y2ggPSAodGhpcy5uZXh0TGluayB8fCAnJykubWF0Y2goL1smP117MX1cXCR0b3A9KFxcZCspLyk7XG4gICAgcmV0dXJuIG1hdGNoICE9PSBudWxsID8gTnVtYmVyKG1hdGNoWzFdKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBza2lwKCkge1xuICAgIGxldCBtYXRjaCA9ICh0aGlzLm5leHRMaW5rIHx8ICcnKS5tYXRjaCgvWyY/XXsxfVxcJHNraXA9KFxcZCspLyk7XG4gICAgcmV0dXJuIG1hdGNoICE9PSBudWxsID8gTnVtYmVyKG1hdGNoWzFdKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBza2lwdG9rZW4oKSB7XG4gICAgbGV0IG1hdGNoID0gKHRoaXMubmV4dExpbmsgfHwgJycpLm1hdGNoKFxuICAgICAgL1smP117MX1cXCRza2lwdG9rZW49KFtcXGRcXHdcXHMnXFwtXSspL1xuICAgICk7XG4gICAgcmV0dXJuIG1hdGNoICE9PSBudWxsID8gbWF0Y2hbMV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9mdW5jdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICBnZXQgZnVuY3Rpb25zKCkge1xuICAgIGlmICh0aGlzLl9mdW5jdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fZnVuY3Rpb25zID0gdGhpcy5oZWxwZXIuZnVuY3Rpb25zKHRoaXMuYW5ub3RhdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zO1xuICB9XG4gIGZ1bmN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uc1tuYW1lXTtcbiAgfVxufVxuIl19
|
|
@@ -35,6 +35,11 @@ export class ODataResponseOptions {
|
|
|
35
35
|
// TODO: resolve location?
|
|
36
36
|
this.location = location;
|
|
37
37
|
}
|
|
38
|
+
setPreferenceApplied(preference) {
|
|
39
|
+
preference.split(',').forEach((prefer) => {
|
|
40
|
+
// TODO: resolve preference
|
|
41
|
+
});
|
|
42
|
+
}
|
|
38
43
|
setCache(cacheControl) {
|
|
39
44
|
cacheControl.split(',').forEach((directive) => {
|
|
40
45
|
if (directive.startsWith(MAX_AGE)) {
|
|
@@ -48,4 +53,4 @@ export class ODataResponseOptions {
|
|
|
48
53
|
});
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcmVzcG9uc2VzL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLGVBQWUsRUFDZixPQUFPLEVBQ1AsV0FBVyxFQUNYLFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsWUFBWSxNQUFxQjtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxnQkFBZ0I7b0JBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBc0IsQ0FBQztvQkFDdkMsTUFBTTtnQkFDUixLQUFLLGlCQUFpQjtvQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDO29CQUM3QixNQUFNO2dCQUNSLEtBQUssbUJBQW1CO29CQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQztvQkFDckMsTUFBTTthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQXFCLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWtCO1FBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkMsMkJBQTJCO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUFvQjtRQUMzQixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzVDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDakMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2FBQ2pEO1lBQ0QsSUFDRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdkU7Z0JBQ0EsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUE4QixDQUFDO2FBQ3BEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDYWNoZUNhY2hlYWJpbGl0eSxcbiAgT0RhdGFNZXRhZGF0YVR5cGUsXG4gIE9EYXRhVmVyc2lvbixcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUmVzcG9uc2VPcHRpb25zLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICBERUZBVUxUX1ZFUlNJT04sXG4gIE1BWF9BR0UsXG4gIFZFUlNJT05fMl8wLFxuICBWRVJTSU9OXzNfMCxcbiAgVkVSU0lPTl80XzAsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IE9EYXRhSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVyJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhUmVzcG9uc2VPcHRpb25zIGltcGxlbWVudHMgUmVzcG9uc2VPcHRpb25zIHtcbiAgdmVyc2lvbjogT0RhdGFWZXJzaW9uO1xuICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICAvLyBPRGF0YVxuICBtZXRhZGF0YT86IE9EYXRhTWV0YWRhdGFUeXBlO1xuICBpZWVlNzU0Q29tcGF0aWJsZT86IGJvb2xlYW47XG4gIC8vIExvY2F0aW9uXG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICAvLyBDYWNoZVxuICBjYWNoZWFiaWxpdHk/OiAncHVibGljJyB8ICdwcml2YXRlJyB8ICduby1jYWNoZScgfCAnbm8tc3RvcmUnO1xuICBtYXhBZ2U/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQYXJzZXJPcHRpb25zKSB7XG4gICAgdGhpcy52ZXJzaW9uID0gY29uZmlnLnZlcnNpb24gfHwgREVGQVVMVF9WRVJTSU9OO1xuICB9XG5cbiAgZ2V0IGhlbHBlcigpIHtcbiAgICByZXR1cm4gT0RhdGFIZWxwZXJbdGhpcy52ZXJzaW9uXTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgT0RhdGFSZXNwb25zZU9wdGlvbnModGhpcyk7XG4gIH1cblxuICBzZXRGZWF0dXJlcyhmZWF0dXJlczogc3RyaW5nKSB7XG4gICAgZmVhdHVyZXMuc3BsaXQoJzsnKS5mb3JFYWNoKChvKSA9PiB7XG4gICAgICBsZXQgW2ssIHZdID0gby5zcGxpdCgnPScpO1xuICAgICAgc3dpdGNoIChrLnRyaW0oKSkge1xuICAgICAgICBjYXNlICdvZGF0YS5tZXRhZGF0YSc6XG4gICAgICAgICAgdGhpcy5tZXRhZGF0YSA9IHYgYXMgT0RhdGFNZXRhZGF0YVR5cGU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29kYXRhLnN0cmVhbWluZyc6XG4gICAgICAgICAgdGhpcy5zdHJlYW1pbmcgPSB2ID09ICd0cnVlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSUVFRTc1NENvbXBhdGlibGUnOlxuICAgICAgICAgIHRoaXMuaWVlZTc1NENvbXBhdGlibGUgPSB2ID09ICd0cnVlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldFZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3QgdmFsdWUgPSB2ZXJzaW9uLnJlcGxhY2UoL1xcOy9nLCAnJykudHJpbSgpO1xuICAgIGlmIChbVkVSU0lPTl8yXzAsIFZFUlNJT05fM18wLCBWRVJTSU9OXzRfMF0uaW5kZXhPZih2YWx1ZSkgIT09IC0xKVxuICAgICAgdGhpcy52ZXJzaW9uID0gdmFsdWUgYXMgT0RhdGFWZXJzaW9uO1xuICB9XG5cbiAgc2V0TG9jYXRpb24obG9jYXRpb246IHN0cmluZykge1xuICAgIC8vIFRPRE86IHJlc29sdmUgbG9jYXRpb24/XG4gICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuICB9XG5cbiAgc2V0UHJlZmVyZW5jZUFwcGxpZWQocHJlZmVyZW5jZTogc3RyaW5nKSB7XG4gICAgcHJlZmVyZW5jZS5zcGxpdCgnLCcpLmZvckVhY2goKHByZWZlcikgPT4ge1xuICAgICAgLy8gVE9ETzogcmVzb2x2ZSBwcmVmZXJlbmNlXG4gICAgfSk7XG4gIH1cblxuICBzZXRDYWNoZShjYWNoZUNvbnRyb2w6IHN0cmluZykge1xuICAgIGNhY2hlQ29udHJvbC5zcGxpdCgnLCcpLmZvckVhY2goKGRpcmVjdGl2ZSkgPT4ge1xuICAgICAgaWYgKGRpcmVjdGl2ZS5zdGFydHNXaXRoKE1BWF9BR0UpKSB7XG4gICAgICAgIGxldCBtYXhBZ2UgPSBOdW1iZXIoZGlyZWN0aXZlLnNwbGl0KCc9JylbMV0pO1xuICAgICAgICBpZiAoIU51bWJlci5pc05hTihtYXhBZ2UpKSB0aGlzLm1heEFnZSA9IG1heEFnZTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgWydwdWJsaWMnLCAncHJpdmF0ZScsICduby1jYWNoZScsICduby1zdG9yZSddLmluZGV4T2YoZGlyZWN0aXZlKSAhPT0gLTFcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNhY2hlYWJpbGl0eSA9IGRpcmVjdGl2ZSBhcyBDYWNoZUNhY2hlYWJpbGl0eTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpHeaders, HttpResponse } from '@angular/common/http';
|
|
2
2
|
import { ODataEntityAnnotations, ODataEntitiesAnnotations, ODataPropertyAnnotations, } from './annotations';
|
|
3
3
|
import { Types } from '../../utils/types';
|
|
4
|
-
import { APPLICATION_JSON, ODATA_VERSION_HEADERS, CONTENT_TYPE, CACHE_CONTROL, LOCATION_HEADER, ETAG_HEADERS, ODATA_ENTITYID_HEADERS, } from '../../constants';
|
|
4
|
+
import { APPLICATION_JSON, ODATA_VERSION_HEADERS, CONTENT_TYPE, CACHE_CONTROL, LOCATION_HEADER, ETAG_HEADERS, ODATA_ENTITYID_HEADERS, PREFERENCE_APPLIED, } from '../../constants';
|
|
5
5
|
import { ODataResponseOptions } from './options';
|
|
6
6
|
import { Http } from '../../utils/http';
|
|
7
7
|
/**
|
|
@@ -57,11 +57,15 @@ export class ODataResponse extends HttpResponse {
|
|
|
57
57
|
.find((p) => p.startsWith(APPLICATION_JSON));
|
|
58
58
|
this._options.setFeatures(features);
|
|
59
59
|
}
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
62
|
-
const version = (this.headers.get(
|
|
60
|
+
const headerKey = Http.resolveHeaderKey(this.headers, ODATA_VERSION_HEADERS);
|
|
61
|
+
if (headerKey) {
|
|
62
|
+
const version = (this.headers.get(headerKey) || '').replace(/\;/g, '');
|
|
63
63
|
this._options.setVersion(version);
|
|
64
64
|
}
|
|
65
|
+
const preferenceApplied = this.headers.get(PREFERENCE_APPLIED);
|
|
66
|
+
if (preferenceApplied) {
|
|
67
|
+
this._options.setPreferenceApplied(preferenceApplied);
|
|
68
|
+
}
|
|
65
69
|
const location = this.headers.get(LOCATION_HEADER);
|
|
66
70
|
if (location) {
|
|
67
71
|
this._options.setLocation(location);
|
|
@@ -167,4 +171,4 @@ export class ODataResponse extends HttpResponse {
|
|
|
167
171
|
return value;
|
|
168
172
|
}
|
|
169
173
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHdCQUF3QixHQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGFBQWEsRUFDYixlQUFlLEVBQ2YsWUFBWSxFQUNaLHNCQUFzQixHQUN2QixNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHeEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBaUIsU0FBUSxZQUFlO0lBSW5ELFlBQVksSUFRWDtRQUNDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBSSxHQUFvQixFQUFFLEdBQW9CO1FBQ25FLE9BQU8sSUFBSSxhQUFhLENBQUk7WUFDMUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO1lBQ1osUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLE9BQU8sRUFBRSxH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QUksS0FBSyxLQUFLLElBQUk7WUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBTSxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIE9EYXRhRW50aXR5QW5ub3RhdGlvbnMsXG4gIE9EYXRhRW50aXRpZXNBbm5vdGF0aW9ucyxcbiAgT0RhdGFQcm9wZXJ0eUFubm90YXRpb25zLFxufSBmcm9tICcuL2Fubm90YXRpb25zJztcbmltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFSZXNvdXJjZSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhRW50aXRpZXMsIE9EYXRhRW50aXR5LCBPRGF0YVByb3BlcnR5IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBBUFBMSUNBVElPTl9KU09OLFxuICBPREFUQV9WRVJTSU9OX0hFQURFUlMsXG4gIENPTlRFTlRfVFlQRSxcbiAgQ0FDSEVfQ09OVFJPTCxcbiAgTE9DQVRJT05fSEVBREVSLFxuICBFVEFHX0hFQURFUlMsXG4gIE9EQVRBX0VOVElUWUlEX0hFQURFUlMsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBPRGF0YVJlcXVlc3QgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IE9EYXRhUmVzcG9uc2VPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IEh0dHAgfSBmcm9tICcuLi8uLi91dGlscy9odHRwJztcbmltcG9ydCB7IE9EYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2hlbHBlcic7XG5cbi8qKlxuICogT0RhdGEgUmVzcG9uc2VcbiAqL1xuZXhwb3J0IGNsYXNzIE9EYXRhUmVzcG9uc2U8VD4gZXh0ZW5kcyBIdHRwUmVzcG9uc2U8VD4ge1xuICByZWFkb25seSBhcGk6IE9EYXRhQXBpO1xuICByZWFkb25seSByZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxUPjtcblxuICBjb25zdHJ1Y3Rvcihpbml0OiB7XG4gICAgYXBpOiBPRGF0YUFwaTtcbiAgICByZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxUPjtcbiAgICBib2R5OiBUIHwgbnVsbDtcbiAgICBoZWFkZXJzOiBIdHRwSGVhZGVycztcbiAgICBzdGF0dXM6IG51bWJlcjtcbiAgICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9KSB7XG4gICAgc3VwZXIoaW5pdCk7XG4gICAgdGhpcy5hcGkgPSBpbml0LmFwaTtcbiAgICB0aGlzLnJlc291cmNlID0gaW5pdC5yZXNvdXJjZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSHR0cFJlc3BvbnNlPFQ+KHJlcTogT0RhdGFSZXF1ZXN0PFQ+LCByZXM6IEh0dHBSZXNwb25zZTxUPikge1xuICAgIHJldHVybiBuZXcgT0RhdGFSZXNwb25zZTxUPih7XG4gICAgICBhcGk6IHJlcS5hcGksXG4gICAgICByZXNvdXJjZTogcmVxLnJlc291cmNlLFxuICAgICAgYm9keTogcmVzLmJvZHksXG4gICAgICBoZWFkZXJzOiByZXMuaGVhZGVycyxcbiAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHJlcy5zdGF0dXNUZXh0LFxuICAgICAgdXJsOiByZXMudXJsIHx8IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTjxUPihcbiAgICByZXE6IE9EYXRhUmVxdWVzdDxUPixcbiAgICBqc29uOiB7XG4gICAgICBib2R5OiBUIHwgbnVsbDtcbiAgICAgIGhlYWRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gICAgICBzdGF0dXM6IG51bWJlcjtcbiAgICAgIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgICAgIHVybDogc3RyaW5nIHwgbnVsbDtcbiAgICB9XG4gICkge1xuICAgIHJldHVybiBuZXcgT0RhdGFSZXNwb25zZTxUPih7XG4gICAgICBhcGk6IHJlcS5hcGksXG4gICAgICByZXNvdXJjZTogcmVxLnJlc291cmNlLFxuICAgICAgYm9keToganNvbi5ib2R5LFxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKGpzb24uaGVhZGVycyksXG4gICAgICBzdGF0dXM6IGpzb24uc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDoganNvbi5zdGF0dXNUZXh0LFxuICAgICAgdXJsOiBqc29uLnVybCB8fCB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IHRoaXMuYm9keSxcbiAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVyc1xuICAgICAgICAua2V5cygpXG4gICAgICAgIC5tYXAoKG5hbWUpID0+ICh7IFtuYW1lXTogdGhpcy5oZWFkZXJzLmdldEFsbChuYW1lKSB8fCBbXSB9KSlcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBoZWFkZXIpID0+IE9iamVjdC5hc3NpZ24oYWNjLCBoZWFkZXIpLCB7fSksXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogdGhpcy5zdGF0dXNUZXh0LFxuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfb3B0aW9ucz86IE9EYXRhUmVzcG9uc2VPcHRpb25zO1xuICBnZXQgb3B0aW9ucygpOiBPRGF0YVJlc3BvbnNlT3B0aW9ucyB7XG4gICAgaWYgKHRoaXMuX29wdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IG5ldyBPRGF0YVJlc3BvbnNlT3B0aW9ucyh0aGlzLmFwaS5vcHRpb25zLnBhcnNlck9wdGlvbnMpO1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLmhlYWRlcnMuZ2V0KENPTlRFTlRfVFlQRSk7XG4gICAgICBpZiAoY29udGVudFR5cGUgJiYgY29udGVudFR5cGUuaW5kZXhPZihBUFBMSUNBVElPTl9KU09OKSAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBjb250ZW50VHlwZVxuICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgLmZpbmQoKHApID0+IHAuc3RhcnRzV2l0aChBUFBMSUNBVElPTl9KU09OKSkgYXMgc3RyaW5nO1xuICAgICAgICB0aGlzLl9vcHRpb25zLnNldEZlYXR1cmVzKGZlYXR1cmVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhlYWRlciA9IEh0dHAucmVzb2x2ZUhlYWRlcktleSh0aGlzLmhlYWRlcnMsIE9EQVRBX1ZFUlNJT05fSEVBREVSUyk7XG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSAodGhpcy5oZWFkZXJzLmdldChoZWFkZXIpIHx8ICcnKS5yZXBsYWNlKC9cXDsvZywgJycpIGFzXG4gICAgICAgICAgfCAnMi4wJ1xuICAgICAgICAgIHwgJzMuMCdcbiAgICAgICAgICB8ICc0LjAnO1xuICAgICAgICB0aGlzLl9vcHRpb25zLnNldFZlcnNpb24odmVyc2lvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5oZWFkZXJzLmdldChMT0NBVElPTl9IRUFERVIpO1xuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0TG9jYXRpb24obG9jYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWNoZUNvbnRyb2wgPSB0aGlzLmhlYWRlcnMuZ2V0KENBQ0hFX0NPTlRST0wpO1xuICAgICAgaWYgKGNhY2hlQ29udHJvbCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zLnNldENhY2hlKGNhY2hlQ29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGF5bG9hZD86IGFueTtcbiAgZ2V0IHBheWxvYWQoKSB7XG4gICAgaWYgKHRoaXMuX3BheWxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcGF5bG9hZCA9XG4gICAgICAgIHRoaXMuYm9keSAmJiB0aGlzLm9wdGlvbnMudmVyc2lvbiA9PT0gJzIuMCdcbiAgICAgICAgICA/ICg8YW55PnRoaXMuYm9keSlbJ2QnXVxuICAgICAgICAgIDogdGhpcy5ib2R5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGF5bG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRleHQ/OiBhbnk7XG4gIGdldCBjb250ZXh0KCk6IE9EYXRhQ29udGV4dCB7XG4gICAgaWYgKHRoaXMuX2NvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29udGV4dCA9IHRoaXMub3B0aW9ucy5oZWxwZXIuY29udGV4dChcbiAgICAgICAgVHlwZXMuaXNQbGFpbk9iamVjdCh0aGlzLnBheWxvYWQpID8gdGhpcy5wYXlsb2FkIDoge31cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYW5ub3RhdGlvbnM/OiBNYXA8c3RyaW5nLCBhbnk+O1xuICBnZXQgYW5ub3RhdGlvbnMoKTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgaWYgKHRoaXMuX2Fubm90YXRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICB0aGlzLl9hbm5vdGF0aW9ucyA9IG9wdGlvbnMuaGVscGVyLmFubm90YXRpb25zKHRoaXMucGF5bG9hZCB8fCB7fSk7XG4gICAgICBsZXQga2V5ID0gSHR0cC5yZXNvbHZlSGVhZGVyS2V5KHRoaXMuaGVhZGVycywgRVRBR19IRUFERVJTKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgZXRhZyA9IHRoaXMuaGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGV0YWcpIHRoaXMuX2Fubm90YXRpb25zLnNldChvcHRpb25zLmhlbHBlci5PREFUQV9FVEFHLCBldGFnKTtcbiAgICAgIH1cbiAgICAgIGtleSA9IEh0dHAucmVzb2x2ZUhlYWRlcktleSh0aGlzLmhlYWRlcnMsIE9EQVRBX0VOVElUWUlEX0hFQURFUlMpO1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBjb25zdCBlbnRpdHlJZCA9IHRoaXMuaGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGVudGl0eUlkKSB0aGlzLl9hbm5vdGF0aW9ucy5zZXQob3B0aW9ucy5oZWxwZXIuT0RBVEFfSUQsIGVudGl0eUlkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Fubm90YXRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcmVzcG9uc2UgYm9keSBhcyBhbiBlbnRpdHlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGVudGl0eSgpOiBPRGF0YUVudGl0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YUVudGl0eUFubm90YXRpb25zKFxuICAgICAgb3B0aW9ucy5oZWxwZXIsXG4gICAgICB0aGlzLmFubm90YXRpb25zLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gcGF5bG9hZCA/IGFubm90cy5kYXRhKHBheWxvYWQpIDogbnVsbDtcbiAgICBsZXQgZW50aXR5ID0gKFxuICAgICAgZGF0YSAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KGRhdGEpXG4gICAgICAgID8gb3B0aW9ucy5oZWxwZXIuYXR0cmlidXRlcyhkYXRhLCB0aGlzLmFwaS5vcHRpb25zLnN0cmlwTWV0YWRhdGEpXG4gICAgICAgIDogZGF0YVxuICAgICkgYXMgVCB8IG51bGw7XG5cbiAgICBpZiAoZW50aXR5ICE9PSBudWxsKVxuICAgICAgZW50aXR5ID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdHksIG9wdGlvbnMpIGFzIFQ7XG4gICAgcmV0dXJuIHsgZW50aXR5LCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgZW50aXRpZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGVudGl0aWVzKCk6IE9EYXRhRW50aXRpZXM8VD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcbiAgICBjb25zdCBhbm5vdHMgPSBuZXcgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zKFxuICAgICAgb3B0aW9ucy5oZWxwZXIsXG4gICAgICB0aGlzLmFubm90YXRpb25zLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgICBsZXQgZW50aXRpZXMgPSBwYXlsb2FkID8gYW5ub3RzLmRhdGEocGF5bG9hZCkgOiBudWxsO1xuICAgIGlmIChlbnRpdGllcyAhPT0gbnVsbClcbiAgICAgIGVudGl0aWVzID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdGllcywgb3B0aW9ucykgYXMgVFtdO1xuICAgIHJldHVybiB7IGVudGl0aWVzLCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYSBwcm9wZXJ0eVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvcGVydHkoKTogT0RhdGFQcm9wZXJ0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnMoXG4gICAgICBvcHRpb25zLmhlbHBlcixcbiAgICAgIHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICB0aGlzLmNvbnRleHRcbiAgICApO1xuICAgIGNvbnN0IGRhdGEgPSBwYXlsb2FkID8gKGFubm90cy5kYXRhKHBheWxvYWQpIGFzIFQpIDogbnVsbDtcbiAgICBsZXQgcHJvcGVydHkgPSAoXG4gICAgICBkYXRhICE9PSBudWxsICYmIFR5cGVzLmlzUGxhaW5PYmplY3QoZGF0YSlcbiAgICAgICAgPyBvcHRpb25zLmhlbHBlci5hdHRyaWJ1dGVzKGRhdGEsIHRoaXMuYXBpLm9wdGlvbnMuc3RyaXBNZXRhZGF0YSlcbiAgICAgICAgOiBkYXRhXG4gICAgKSBhcyBUIHwgbnVsbDtcblxuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbClcbiAgICAgIHByb3BlcnR5ID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShwcm9wZXJ0eSwgb3B0aW9ucykgYXMgVDtcbiAgICByZXR1cm4geyBwcm9wZXJ0eSwgYW5ub3RzIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHRoZSByZXNwb25zZSBib2R5IGFzIGEgdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLnBheWxvYWQ7XG4gICAgbGV0IHZhbHVlID0gKFxuICAgICAgcGF5bG9hZCAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KHBheWxvYWQpXG4gICAgICAgID8gb3B0aW9ucy5oZWxwZXIuYXR0cmlidXRlcyhwYXlsb2FkLCB0aGlzLmFwaS5vcHRpb25zLnN0cmlwTWV0YWRhdGEpXG4gICAgICAgIDogcGF5bG9hZFxuICAgICkgYXMgVCB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHZhbHVlID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZSh2YWx1ZSwgb3B0aW9ucykgYXMgVDtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHdCQUF3QixHQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGFBQWEsRUFDYixlQUFlLEVBQ2YsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDbkIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3hDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWlCLFNBQVEsWUFBZTtJQUluRCxZQUFZLElBUVg7UUFDQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUksR0FBb0IsRUFBRSxHQUFvQjtRQUNuRSxPQUFPLElBQUksYUFBYSxDQUFJO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztZQUNaLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFD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QUFJLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDOUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDcEUsQ0FBQyxDQUFDLE9BQU8sQ0FDQSxDQUFDO1FBRWQsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFNLENBQUM7UUFDM0UsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgT0RhdGFFbnRpdHlBbm5vdGF0aW9ucyxcbiAgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zLFxuICBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnMsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdGllcywgT0RhdGFFbnRpdHksIE9EYXRhUHJvcGVydHkgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIEFQUExJQ0FUSU9OX0pTT04sXG4gIE9EQVRBX1ZFUlNJT05fSEVBREVSUyxcbiAgQ09OVEVOVF9UWVBFLFxuICBDQUNIRV9DT05UUk9MLFxuICBMT0NBVElPTl9IRUFERVIsXG4gIEVUQUdfSEVBREVSUyxcbiAgT0RBVEFfRU5USVRZSURfSEVBREVSUyxcbiAgUFJFRkVSRU5DRV9BUFBMSUVELFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgT0RhdGFSZXF1ZXN0IH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBPRGF0YVJlc3BvbnNlT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBIdHRwIH0gZnJvbSAnLi4vLi4vdXRpbHMvaHR0cCc7XG5pbXBvcnQgeyBPRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9oZWxwZXInO1xuXG4vKipcbiAqIE9EYXRhIFJlc3BvbnNlXG4gKi9cbmV4cG9ydCBjbGFzcyBPRGF0YVJlc3BvbnNlPFQ+IGV4dGVuZHMgSHR0cFJlc3BvbnNlPFQ+IHtcbiAgcmVhZG9ubHkgYXBpOiBPRGF0YUFwaTtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG5cbiAgY29uc3RydWN0b3IoaW5pdDoge1xuICAgIGFwaTogT0RhdGFBcGk7XG4gICAgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG4gICAgYm9keTogVCB8IG51bGw7XG4gICAgaGVhZGVyczogSHR0cEhlYWRlcnM7XG4gICAgc3RhdHVzOiBudW1iZXI7XG4gICAgc3RhdHVzVGV4dDogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgfSkge1xuICAgIHN1cGVyKGluaXQpO1xuICAgIHRoaXMuYXBpID0gaW5pdC5hcGk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IGluaXQucmVzb3VyY2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbUh0dHBSZXNwb25zZTxUPihyZXE6IE9EYXRhUmVxdWVzdDxUPiwgcmVzOiBIdHRwUmVzcG9uc2U8VD4pIHtcbiAgICByZXR1cm4gbmV3IE9EYXRhUmVzcG9uc2U8VD4oe1xuICAgICAgYXBpOiByZXEuYXBpLFxuICAgICAgcmVzb3VyY2U6IHJlcS5yZXNvdXJjZSxcbiAgICAgIGJvZHk6IHJlcy5ib2R5LFxuICAgICAgaGVhZGVyczogcmVzLmhlYWRlcnMsXG4gICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiByZXMuc3RhdHVzVGV4dCxcbiAgICAgIHVybDogcmVzLnVybCB8fCB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT048VD4oXG4gICAgcmVxOiBPRGF0YVJlcXVlc3Q8VD4sXG4gICAganNvbjoge1xuICAgICAgYm9keTogVCB8IG51bGw7XG4gICAgICBoZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgICB1cmw6IHN0cmluZyB8IG51bGw7XG4gICAgfVxuICApIHtcbiAgICByZXR1cm4gbmV3IE9EYXRhUmVzcG9uc2U8VD4oe1xuICAgICAgYXBpOiByZXEuYXBpLFxuICAgICAgcmVzb3VyY2U6IHJlcS5yZXNvdXJjZSxcbiAgICAgIGJvZHk6IGpzb24uYm9keSxcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyhqc29uLmhlYWRlcnMpLFxuICAgICAgc3RhdHVzOiBqc29uLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IGpzb24uc3RhdHVzVGV4dCxcbiAgICAgIHVybDoganNvbi51cmwgfHwgdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiB0aGlzLmJvZHksXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnNcbiAgICAgICAgLmtleXMoKVxuICAgICAgICAubWFwKChuYW1lKSA9PiAoeyBbbmFtZV06IHRoaXMuaGVhZGVycy5nZXRBbGwobmFtZSkgfHwgW10gfSkpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgaGVhZGVyKSA9PiBPYmplY3QuYXNzaWduKGFjYywgaGVhZGVyKSwge30pLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX29wdGlvbnM/OiBPRGF0YVJlc3BvbnNlT3B0aW9ucztcbiAgZ2V0IG9wdGlvbnMoKTogT0RhdGFSZXNwb25zZU9wdGlvbnMge1xuICAgIGlmICh0aGlzLl9vcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBuZXcgT0RhdGFSZXNwb25zZU9wdGlvbnModGhpcy5hcGkub3B0aW9ucy5wYXJzZXJPcHRpb25zKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5oZWFkZXJzLmdldChDT05URU5UX1RZUEUpO1xuICAgICAgaWYgKGNvbnRlbnRUeXBlICYmIGNvbnRlbnRUeXBlLmluZGV4T2YoQVBQTElDQVRJT05fSlNPTikgIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gY29udGVudFR5cGVcbiAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgIC5maW5kKChwKSA9PiBwLnN0YXJ0c1dpdGgoQVBQTElDQVRJT05fSlNPTikpIGFzIHN0cmluZztcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5zZXRGZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgICB9XG4gICAgICBjb25zdCBoZWFkZXJLZXkgPSBIdHRwLnJlc29sdmVIZWFkZXJLZXkoXG4gICAgICAgIHRoaXMuaGVhZGVycyxcbiAgICAgICAgT0RBVEFfVkVSU0lPTl9IRUFERVJTXG4gICAgICApO1xuICAgICAgaWYgKGhlYWRlcktleSkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gKHRoaXMuaGVhZGVycy5nZXQoaGVhZGVyS2V5KSB8fCAnJykucmVwbGFjZShcbiAgICAgICAgICAvXFw7L2csXG4gICAgICAgICAgJydcbiAgICAgICAgKSBhcyAnMi4wJyB8ICczLjAnIHwgJzQuMCc7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0VmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJlZmVyZW5jZUFwcGxpZWQgPSB0aGlzLmhlYWRlcnMuZ2V0KFBSRUZFUkVOQ0VfQVBQTElFRCk7XG4gICAgICBpZiAocHJlZmVyZW5jZUFwcGxpZWQpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5zZXRQcmVmZXJlbmNlQXBwbGllZChwcmVmZXJlbmNlQXBwbGllZCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5oZWFkZXJzLmdldChMT0NBVElPTl9IRUFERVIpO1xuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0TG9jYXRpb24obG9jYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWNoZUNvbnRyb2wgPSB0aGlzLmhlYWRlcnMuZ2V0KENBQ0hFX0NPTlRST0wpO1xuICAgICAgaWYgKGNhY2hlQ29udHJvbCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zLnNldENhY2hlKGNhY2hlQ29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGF5bG9hZD86IGFueTtcbiAgZ2V0IHBheWxvYWQoKSB7XG4gICAgaWYgKHRoaXMuX3BheWxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcGF5bG9hZCA9XG4gICAgICAgIHRoaXMuYm9keSAmJiB0aGlzLm9wdGlvbnMudmVyc2lvbiA9PT0gJzIuMCdcbiAgICAgICAgICA/ICg8YW55PnRoaXMuYm9keSlbJ2QnXVxuICAgICAgICAgIDogdGhpcy5ib2R5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGF5bG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRleHQ/OiBhbnk7XG4gIGdldCBjb250ZXh0KCk6IE9EYXRhQ29udGV4dCB7XG4gICAgaWYgKHRoaXMuX2NvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29udGV4dCA9IHRoaXMub3B0aW9ucy5oZWxwZXIuY29udGV4dChcbiAgICAgICAgVHlwZXMuaXNQbGFpbk9iamVjdCh0aGlzLnBheWxvYWQpID8gdGhpcy5wYXlsb2FkIDoge31cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYW5ub3RhdGlvbnM/OiBNYXA8c3RyaW5nLCBhbnk+O1xuICBnZXQgYW5ub3RhdGlvbnMoKTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgaWYgKHRoaXMuX2Fubm90YXRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICB0aGlzLl9hbm5vdGF0aW9ucyA9IG9wdGlvbnMuaGVscGVyLmFubm90YXRpb25zKHRoaXMucGF5bG9hZCB8fCB7fSk7XG4gICAgICBsZXQga2V5ID0gSHR0cC5yZXNvbHZlSGVhZGVyS2V5KHRoaXMuaGVhZGVycywgRVRBR19IRUFERVJTKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgZXRhZyA9IHRoaXMuaGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGV0YWcpIHRoaXMuX2Fubm90YXRpb25zLnNldChvcHRpb25zLmhlbHBlci5PREFUQV9FVEFHLCBldGFnKTtcbiAgICAgIH1cbiAgICAgIGtleSA9IEh0dHAucmVzb2x2ZUhlYWRlcktleSh0aGlzLmhlYWRlcnMsIE9EQVRBX0VOVElUWUlEX0hFQURFUlMpO1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBjb25zdCBlbnRpdHlJZCA9IHRoaXMuaGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGVudGl0eUlkKSB0aGlzLl9hbm5vdGF0aW9ucy5zZXQob3B0aW9ucy5oZWxwZXIuT0RBVEFfSUQsIGVudGl0eUlkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Fubm90YXRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcmVzcG9uc2UgYm9keSBhcyBhbiBlbnRpdHlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGVudGl0eSgpOiBPRGF0YUVudGl0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YUVudGl0eUFubm90YXRpb25zPFQ+KFxuICAgICAgb3B0aW9ucy5oZWxwZXIsXG4gICAgICB0aGlzLmFubm90YXRpb25zLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gcGF5bG9hZCA/IGFubm90cy5kYXRhKHBheWxvYWQpIDogbnVsbDtcbiAgICBsZXQgZW50aXR5ID0gKFxuICAgICAgZGF0YSAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KGRhdGEpXG4gICAgICAgID8gb3B0aW9ucy5oZWxwZXIuYXR0cmlidXRlcyhkYXRhLCB0aGlzLmFwaS5vcHRpb25zLnN0cmlwTWV0YWRhdGEpXG4gICAgICAgIDogZGF0YVxuICAgICkgYXMgVCB8IG51bGw7XG5cbiAgICBpZiAoZW50aXR5ICE9PSBudWxsKVxuICAgICAgZW50aXR5ID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdHksIG9wdGlvbnMpIGFzIFQ7XG4gICAgcmV0dXJuIHsgZW50aXR5LCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgZW50aXRpZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGVudGl0aWVzKCk6IE9EYXRhRW50aXRpZXM8VD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcbiAgICBjb25zdCBhbm5vdHMgPSBuZXcgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zPFQ+KFxuICAgICAgb3B0aW9ucy5oZWxwZXIsXG4gICAgICB0aGlzLmFubm90YXRpb25zLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgICBsZXQgZW50aXRpZXMgPSBwYXlsb2FkID8gYW5ub3RzLmRhdGEocGF5bG9hZCkgOiBudWxsO1xuICAgIGlmIChlbnRpdGllcyAhPT0gbnVsbClcbiAgICAgIGVudGl0aWVzID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdGllcywgb3B0aW9ucykgYXMgVFtdO1xuICAgIHJldHVybiB7IGVudGl0aWVzLCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYSBwcm9wZXJ0eVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvcGVydHkoKTogT0RhdGFQcm9wZXJ0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnM8VD4oXG4gICAgICBvcHRpb25zLmhlbHBlcixcbiAgICAgIHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICB0aGlzLmNvbnRleHRcbiAgICApO1xuICAgIGNvbnN0IGRhdGEgPSBwYXlsb2FkID8gKGFubm90cy5kYXRhKHBheWxvYWQpIGFzIFQpIDogbnVsbDtcbiAgICBsZXQgcHJvcGVydHkgPSAoXG4gICAgICBkYXRhICE9PSBudWxsICYmIFR5cGVzLmlzUGxhaW5PYmplY3QoZGF0YSlcbiAgICAgICAgPyBvcHRpb25zLmhlbHBlci5hdHRyaWJ1dGVzKFxuICAgICAgICAgICAgZGF0YSBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgICAgICAgICAgdGhpcy5hcGkub3B0aW9ucy5zdHJpcE1ldGFkYXRhXG4gICAgICAgICAgKVxuICAgICAgICA6IGRhdGFcbiAgICApIGFzIFQgfCBudWxsO1xuXG4gICAgaWYgKHByb3BlcnR5ICE9PSBudWxsKVxuICAgICAgcHJvcGVydHkgPSB0aGlzLnJlc291cmNlLmRlc2VyaWFsaXplKHByb3BlcnR5LCBvcHRpb25zKSBhcyBUO1xuICAgIHJldHVybiB7IHByb3BlcnR5LCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdmFsdWUoKTogVCB8IG51bGwge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcbiAgICBsZXQgdmFsdWUgPSAoXG4gICAgICBwYXlsb2FkICE9PSBudWxsICYmIFR5cGVzLmlzUGxhaW5PYmplY3QocGF5bG9hZClcbiAgICAgICAgPyBvcHRpb25zLmhlbHBlci5hdHRyaWJ1dGVzKHBheWxvYWQsIHRoaXMuYXBpLm9wdGlvbnMuc3RyaXBNZXRhZGF0YSlcbiAgICAgICAgOiBwYXlsb2FkXG4gICAgKSBhcyBUIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkgdmFsdWUgPSB0aGlzLnJlc291cmNlLmRlc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKSBhcyBUO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zLFxuICBPRGF0YUVudGl0eUFubm90YXRpb25zLFxuICBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnMsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBPRGF0YUVudGl0eTxUPiA9IHtcbiAgZW50aXR5OiBUIHwgbnVsbDtcbiAgYW5ub3RzOiBPRGF0YUVudGl0eUFubm90YXRpb25zPFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgT0RhdGFFbnRpdGllczxUPiA9IHtcbiAgZW50aXRpZXM6IFRbXSB8IG51bGw7XG4gIGFubm90czogT0RhdGFFbnRpdGllc0Fubm90YXRpb25zPFQ+O1xufTtcblxuZXhwb3J0IHR5cGUgT0RhdGFQcm9wZXJ0eTxUPiA9IHtcbiAgcHJvcGVydHk6IFQgfCBudWxsO1xuICBhbm5vdHM6IE9EYXRhUHJvcGVydHlBbm5vdGF0aW9uczxUPjtcbn07XG4iXX0=
|