angular-odata 0.126.0 → 0.128.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/esm2022/lib/annotations.mjs +140 -0
- package/esm2022/lib/api.mjs +211 -166
- package/esm2022/lib/cache/cache.mjs +1 -1
- package/esm2022/lib/cache/memory.mjs +1 -1
- package/esm2022/lib/client.mjs +8 -48
- package/esm2022/lib/constants.mjs +4 -1
- package/esm2022/lib/index.mjs +3 -1
- package/esm2022/lib/loaders.mjs +23 -17
- package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +95 -0
- package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +27 -0
- package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +24 -0
- package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +37 -0
- package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +94 -0
- package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +7 -0
- package/esm2022/lib/metadata/csdl/csdl-reference.mjs +23 -0
- package/esm2022/lib/metadata/csdl/csdl-schema.mjs +39 -0
- package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +15 -0
- package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +70 -0
- package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +92 -0
- package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +15 -0
- package/esm2022/lib/metadata/index.mjs +3 -0
- package/esm2022/lib/metadata/metadata.mjs +14 -0
- package/esm2022/lib/metadata/parser.mjs +563 -0
- package/esm2022/lib/models/collection.mjs +202 -207
- package/esm2022/lib/models/model.mjs +48 -52
- package/esm2022/lib/models/options.mjs +172 -137
- package/esm2022/lib/module.mjs +21 -8
- package/esm2022/lib/options.mjs +2 -1
- package/esm2022/lib/resources/index.mjs +2 -2
- package/esm2022/lib/resources/options.mjs +56 -0
- package/esm2022/lib/resources/path/handlers.mjs +14 -4
- package/esm2022/lib/resources/path/segments.mjs +29 -11
- package/esm2022/lib/resources/query/builder.mjs +14 -2
- package/esm2022/lib/resources/query/expressions/apply.mjs +236 -0
- package/esm2022/lib/resources/query/expressions/base.mjs +1 -1
- package/esm2022/lib/resources/query/expressions/compute.mjs +2 -2
- package/esm2022/lib/resources/query/expressions/count.mjs +6 -6
- package/esm2022/lib/resources/query/expressions/expand.mjs +7 -7
- package/esm2022/lib/resources/query/expressions/filter.mjs +6 -6
- package/esm2022/lib/resources/query/expressions/index.mjs +2 -1
- package/esm2022/lib/resources/query/expressions/orderby.mjs +3 -3
- package/esm2022/lib/resources/query/expressions/search.mjs +6 -6
- package/esm2022/lib/resources/query/expressions/select.mjs +6 -2
- package/esm2022/lib/resources/query/expressions/syntax.mjs +161 -8
- package/esm2022/lib/resources/query/handlers.mjs +89 -54
- package/esm2022/lib/resources/query/options.mjs +91 -77
- package/esm2022/lib/resources/request.mjs +5 -5
- package/esm2022/lib/resources/resource.mjs +118 -88
- package/esm2022/lib/resources/response.mjs +174 -0
- package/esm2022/lib/resources/types/action.mjs +29 -26
- package/esm2022/lib/resources/types/batch.mjs +18 -16
- package/esm2022/lib/resources/types/count.mjs +7 -7
- package/esm2022/lib/resources/types/entity-set.mjs +38 -25
- package/esm2022/lib/resources/types/entity.mjs +14 -11
- package/esm2022/lib/resources/types/function.mjs +25 -28
- package/esm2022/lib/resources/types/metadata.mjs +9 -5
- package/esm2022/lib/resources/types/navigation-property.mjs +37 -31
- package/esm2022/lib/resources/types/property.mjs +32 -50
- package/esm2022/lib/resources/types/reference.mjs +6 -7
- package/esm2022/lib/resources/types/singleton.mjs +11 -7
- package/esm2022/lib/resources/types/value.mjs +16 -12
- package/esm2022/lib/schema/callable.mjs +10 -10
- package/esm2022/lib/schema/element.mjs +15 -9
- package/esm2022/lib/schema/entity-container.mjs +4 -2
- package/esm2022/lib/schema/enum-type.mjs +6 -7
- package/esm2022/lib/schema/index.mjs +2 -1
- package/esm2022/lib/schema/parsers/callable.mjs +10 -7
- package/esm2022/lib/schema/parsers/edm.mjs +6 -4
- package/esm2022/lib/schema/parsers/enum-type.mjs +15 -8
- package/esm2022/lib/schema/parsers/structured-type.mjs +66 -55
- package/esm2022/lib/schema/schema.mjs +18 -34
- package/esm2022/lib/schema/singleton.mjs +9 -0
- package/esm2022/lib/schema/structured-type.mjs +18 -23
- package/esm2022/lib/services/base.mjs +4 -4
- package/esm2022/lib/services/entity-set.mjs +12 -2
- package/esm2022/lib/services/entity.mjs +2 -2
- package/esm2022/lib/services/factory.mjs +22 -11
- package/esm2022/lib/services/singleton.mjs +8 -2
- package/esm2022/lib/settings.mjs +7 -99
- package/esm2022/lib/types.mjs +12 -1
- package/esm2022/lib/utils/http.mjs +8 -6
- package/fesm2022/angular-odata.mjs +7413 -6579
- package/fesm2022/angular-odata.mjs.map +1 -1
- package/lib/{resources/responses/annotations.d.ts → annotations.d.ts} +3 -2
- package/lib/api.d.ts +29 -26
- package/lib/cache/memory.d.ts +1 -1
- package/lib/client.d.ts +0 -20
- package/lib/constants.d.ts +3 -0
- package/lib/index.d.ts +1 -0
- package/lib/loaders.d.ts +7 -1
- package/lib/metadata/csdl/csdl-annotation.d.ts +123 -0
- package/lib/metadata/csdl/csdl-entity-container.d.ts +26 -0
- package/lib/metadata/csdl/csdl-entity-set.d.ts +20 -0
- package/lib/metadata/csdl/csdl-enum-type.d.ts +29 -0
- package/lib/metadata/csdl/csdl-function-action.d.ts +105 -0
- package/lib/metadata/csdl/csdl-navigation-property-binding.d.ts +8 -0
- package/lib/metadata/csdl/csdl-reference.d.ts +30 -0
- package/lib/metadata/csdl/csdl-schema.d.ts +34 -0
- package/lib/metadata/csdl/csdl-singleton.d.ts +16 -0
- package/lib/metadata/csdl/csdl-structural-property.d.ts +70 -0
- package/lib/metadata/csdl/csdl-structured-type.d.ts +73 -0
- package/lib/metadata/csdl/csdl-type-definition.d.ts +22 -0
- package/lib/metadata/index.d.ts +2 -0
- package/lib/metadata/metadata.d.ts +10 -0
- package/lib/{resources/responses/metadata.d.ts → metadata/parser.d.ts} +19 -7
- package/lib/models/collection.d.ts +23 -12
- package/lib/models/model.d.ts +19 -19
- package/lib/models/options.d.ts +43 -27
- package/lib/module.d.ts +2 -1
- package/lib/options.d.ts +5 -0
- package/lib/resources/index.d.ts +1 -1
- package/lib/resources/{responses/options.d.ts → options.d.ts} +2 -2
- package/lib/resources/path/handlers.d.ts +4 -2
- package/lib/resources/path/segments.d.ts +13 -1
- package/lib/resources/query/builder.d.ts +6 -5
- package/lib/resources/query/expressions/apply.d.ts +125 -0
- package/lib/resources/query/expressions/base.d.ts +1 -1
- package/lib/resources/query/expressions/compute.d.ts +4 -4
- package/lib/resources/query/expressions/count.d.ts +3 -3
- package/lib/resources/query/expressions/expand.d.ts +8 -8
- package/lib/resources/query/expressions/filter.d.ts +3 -3
- package/lib/resources/query/expressions/index.d.ts +1 -0
- package/lib/resources/query/expressions/orderby.d.ts +7 -6
- package/lib/resources/query/expressions/search.d.ts +2 -2
- package/lib/resources/query/expressions/select.d.ts +4 -3
- package/lib/resources/query/expressions/syntax.d.ts +77 -4
- package/lib/resources/query/handlers.d.ts +32 -9
- package/lib/resources/query/options.d.ts +20 -10
- package/lib/resources/resource.d.ts +32 -16
- package/lib/resources/{responses/response.d.ts → response.d.ts} +17 -5
- package/lib/resources/types/action.d.ts +12 -10
- package/lib/resources/types/batch.d.ts +12 -6
- package/lib/resources/types/count.d.ts +1 -5
- package/lib/resources/types/entity-set.d.ts +13 -6
- package/lib/resources/types/entity.d.ts +3 -4
- package/lib/resources/types/function.d.ts +11 -11
- package/lib/resources/types/metadata.d.ts +1 -1
- package/lib/resources/types/navigation-property.d.ts +13 -7
- package/lib/resources/types/property.d.ts +15 -8
- package/lib/resources/types/reference.d.ts +2 -4
- package/lib/resources/types/singleton.d.ts +4 -6
- package/lib/resources/types/value.d.ts +2 -6
- package/lib/schema/callable.d.ts +5 -7
- package/lib/schema/element.d.ts +11 -4
- package/lib/schema/entity-container.d.ts +2 -0
- package/lib/schema/enum-type.d.ts +4 -7
- package/lib/schema/index.d.ts +1 -0
- package/lib/schema/parsers/callable.d.ts +7 -8
- package/lib/schema/parsers/enum-type.d.ts +15 -5
- package/lib/schema/parsers/structured-type.d.ts +6 -8
- package/lib/schema/schema.d.ts +6 -9
- package/lib/schema/singleton.d.ts +10 -0
- package/lib/schema/structured-type.d.ts +5 -8
- package/lib/services/entity-set.d.ts +7 -3
- package/lib/services/factory.d.ts +14 -2
- package/lib/services/singleton.d.ts +4 -2
- package/lib/settings.d.ts +0 -10
- package/lib/types.d.ts +23 -3
- package/lib/utils/http.d.ts +1 -1
- package/package.json +5 -1
- package/schematics/apigen/angular/api-config.d.ts +15 -0
- package/schematics/apigen/angular/api-config.js +34 -0
- package/schematics/apigen/angular/api-config.js.map +1 -0
- package/schematics/apigen/angular/base.d.ts +51 -0
- package/schematics/apigen/angular/base.js +200 -0
- package/schematics/apigen/angular/base.js.map +1 -0
- package/schematics/apigen/angular/entity.d.ts +24 -0
- package/schematics/apigen/angular/entity.js +71 -0
- package/schematics/apigen/angular/entity.js.map +1 -0
- package/schematics/apigen/angular/enum.d.ts +25 -0
- package/schematics/apigen/angular/enum.js +56 -0
- package/schematics/apigen/angular/enum.js.map +1 -0
- package/schematics/apigen/angular/import.d.ts +6 -0
- package/schematics/apigen/angular/import.js +18 -0
- package/schematics/apigen/angular/import.js.map +1 -0
- package/schematics/apigen/angular/module.d.ts +18 -0
- package/schematics/apigen/angular/module.js +41 -0
- package/schematics/apigen/angular/module.js.map +1 -0
- package/schematics/apigen/angular/service.d.ts +20 -0
- package/schematics/apigen/angular/service.js +76 -0
- package/schematics/apigen/angular/service.js.map +1 -0
- package/schematics/apigen/files/api-config/__fileName__.ts +9 -0
- package/schematics/apigen/files/entity/__fileName__.ts +7 -0
- package/schematics/apigen/files/entitycontainer-service/__fileName__.ts +18 -0
- package/schematics/apigen/files/entityset-service/__fileName__.ts +27 -0
- package/schematics/apigen/files/enum/__fileName__.ts +4 -0
- package/schematics/apigen/files/index/__fileName__.ts +2 -0
- package/schematics/apigen/files/module/__fileName__.ts +9 -0
- package/schematics/apigen/files/singleton-service/__fileName__.ts +18 -0
- package/schematics/apigen/index.d.ts +3 -0
- package/schematics/apigen/index.js +106 -0
- package/schematics/apigen/index.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.d.ts +120 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.js +98 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.d.ts +26 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.js +30 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.d.ts +20 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.js +26 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.d.ts +28 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.js +33 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.d.ts +103 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.js +84 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.d.ts +8 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js +11 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.d.ts +30 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.js +29 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.d.ts +32 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.js +26 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.d.ts +18 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.js +25 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.d.ts +63 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.js +50 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.d.ts +64 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.js +71 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.d.ts +22 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.js +19 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.js.map +1 -0
- package/schematics/apigen/metadata/index.d.ts +1 -0
- package/schematics/apigen/metadata/index.js +18 -0
- package/schematics/apigen/metadata/index.js.map +1 -0
- package/schematics/apigen/metadata/metadata.d.ts +11 -0
- package/schematics/apigen/metadata/metadata.js +30 -0
- package/schematics/apigen/metadata/metadata.js.map +1 -0
- package/schematics/apigen/metadata/parser.d.ts +110 -0
- package/schematics/apigen/metadata/parser.js +568 -0
- package/schematics/apigen/metadata/parser.js.map +1 -0
- package/schematics/apigen/schema.d.ts +8 -0
- package/schematics/apigen/schema.js +3 -0
- package/schematics/apigen/schema.js.map +1 -0
- package/schematics/apigen/schema.json +36 -0
- package/schematics/apigen/utils.d.ts +1 -0
- package/schematics/apigen/utils.js +75 -0
- package/schematics/apigen/utils.js.map +1 -0
- package/schematics/collection.json +14 -0
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +13 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/random.d.ts +1 -0
- package/schematics/random.js +604 -0
- package/schematics/random.js.map +1 -0
- package/esm2022/lib/resources/responses/annotations.mjs +0 -137
- package/esm2022/lib/resources/responses/csdl/csdl-annotation.mjs +0 -33
- package/esm2022/lib/resources/responses/csdl/csdl-entity-container.mjs +0 -11
- package/esm2022/lib/resources/responses/csdl/csdl-entity-set.mjs +0 -9
- package/esm2022/lib/resources/responses/csdl/csdl-enum-type.mjs +0 -15
- package/esm2022/lib/resources/responses/csdl/csdl-function-action.mjs +0 -56
- package/esm2022/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +0 -7
- package/esm2022/lib/resources/responses/csdl/csdl-reference.mjs +0 -23
- package/esm2022/lib/resources/responses/csdl/csdl-schema.mjs +0 -18
- package/esm2022/lib/resources/responses/csdl/csdl-singleton.mjs +0 -8
- package/esm2022/lib/resources/responses/csdl/csdl-structural-property.mjs +0 -39
- package/esm2022/lib/resources/responses/csdl/csdl-structured-type.mjs +0 -34
- package/esm2022/lib/resources/responses/csdl/csdl-type-definition.mjs +0 -14
- package/esm2022/lib/resources/responses/index.mjs +0 -5
- package/esm2022/lib/resources/responses/metadata.mjs +0 -547
- package/esm2022/lib/resources/responses/options.mjs +0 -56
- package/esm2022/lib/resources/responses/response.mjs +0 -174
- package/esm2022/lib/resources/responses/types.mjs +0 -2
- package/lib/resources/responses/csdl/csdl-annotation.d.ts +0 -27
- package/lib/resources/responses/csdl/csdl-entity-container.d.ts +0 -12
- package/lib/resources/responses/csdl/csdl-entity-set.d.ts +0 -8
- package/lib/resources/responses/csdl/csdl-enum-type.d.ts +0 -12
- package/lib/resources/responses/csdl/csdl-function-action.d.ts +0 -49
- package/lib/resources/responses/csdl/csdl-navigation-property-binding.d.ts +0 -5
- package/lib/resources/responses/csdl/csdl-reference.d.ts +0 -18
- package/lib/resources/responses/csdl/csdl-schema.d.ts +0 -20
- package/lib/resources/responses/csdl/csdl-singleton.d.ts +0 -7
- package/lib/resources/responses/csdl/csdl-structural-property.d.ts +0 -31
- package/lib/resources/responses/csdl/csdl-structured-type.d.ts +0 -27
- package/lib/resources/responses/csdl/csdl-type-definition.d.ts +0 -11
- package/lib/resources/responses/index.d.ts +0 -4
- package/lib/resources/responses/types.d.ts +0 -13
|
@@ -3,55 +3,56 @@ import { Objects, Types } from '../../utils';
|
|
|
3
3
|
import { buildPathAndQuery, raw, } from './builder';
|
|
4
4
|
import { RenderableFactory, } from './expressions';
|
|
5
5
|
import { ODataQueryOptionHandler } from './handlers';
|
|
6
|
+
// Create a path and params tuple from the query options
|
|
7
|
+
export const pathAndParamsFromQueryOptions = (values, { escape, parser, options, } = {}) => {
|
|
8
|
+
const aliases = [];
|
|
9
|
+
const queryOptions = [
|
|
10
|
+
QueryOption.select,
|
|
11
|
+
QueryOption.filter,
|
|
12
|
+
QueryOption.search,
|
|
13
|
+
QueryOption.compute,
|
|
14
|
+
QueryOption.apply,
|
|
15
|
+
QueryOption.transform,
|
|
16
|
+
QueryOption.orderBy,
|
|
17
|
+
QueryOption.top,
|
|
18
|
+
QueryOption.skip,
|
|
19
|
+
QueryOption.skiptoken,
|
|
20
|
+
QueryOption.expand,
|
|
21
|
+
QueryOption.format,
|
|
22
|
+
QueryOption.levels,
|
|
23
|
+
QueryOption.count,
|
|
24
|
+
]
|
|
25
|
+
.filter((key) => values.has(key) && !Types.isEmpty(values.get(key)))
|
|
26
|
+
.reduce((acc, key) => {
|
|
27
|
+
let value = values.get(key);
|
|
28
|
+
if (Types.rawType(value).endsWith('Expression') ||
|
|
29
|
+
(Types.isArray(value) &&
|
|
30
|
+
value.some((v) => Types.rawType(v).endsWith('Expression')))) {
|
|
31
|
+
value = Types.isArray(value)
|
|
32
|
+
? value.map((v) => Types.rawType(v).endsWith('Expression')
|
|
33
|
+
? raw(v.render({ aliases, escape, parser, options }))
|
|
34
|
+
: v)
|
|
35
|
+
: raw(value.render({
|
|
36
|
+
aliases,
|
|
37
|
+
escape,
|
|
38
|
+
parser,
|
|
39
|
+
options,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
return Object.assign(acc, { [key]: value });
|
|
43
|
+
}, {});
|
|
44
|
+
return buildPathAndQuery({ ...queryOptions, aliases, escape });
|
|
45
|
+
};
|
|
6
46
|
export class ODataQueryOptions {
|
|
7
47
|
constructor(values) {
|
|
8
|
-
|
|
9
|
-
const entries = Object.entries(values || {}).map(([key, value]) => [
|
|
10
|
-
key,
|
|
11
|
-
RenderableFactory(value),
|
|
12
|
-
]);
|
|
13
|
-
values = new Map(entries);
|
|
14
|
-
}
|
|
15
|
-
this.values = values;
|
|
48
|
+
this._values = values ?? new Map();
|
|
16
49
|
}
|
|
17
|
-
// Params
|
|
18
50
|
pathAndParams({ escape, parser, options, } = {}) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
QueryOption.compute,
|
|
25
|
-
QueryOption.transform,
|
|
26
|
-
QueryOption.orderBy,
|
|
27
|
-
QueryOption.top,
|
|
28
|
-
QueryOption.skip,
|
|
29
|
-
QueryOption.skiptoken,
|
|
30
|
-
QueryOption.expand,
|
|
31
|
-
QueryOption.format,
|
|
32
|
-
QueryOption.levels,
|
|
33
|
-
QueryOption.count,
|
|
34
|
-
]
|
|
35
|
-
.filter((key) => !Types.isEmpty(this.values.get(key)))
|
|
36
|
-
.reduce((acc, key) => {
|
|
37
|
-
let value = this.values.get(key);
|
|
38
|
-
if (Types.rawType(value).endsWith('Expression') ||
|
|
39
|
-
(Types.isArray(value) &&
|
|
40
|
-
value.some((v) => Types.rawType(v).endsWith('Expression')))) {
|
|
41
|
-
value = Types.isArray(value)
|
|
42
|
-
? value.map((v) => Types.rawType(v).endsWith('Expression')
|
|
43
|
-
? raw(v.render({ aliases, escape, parser, options }))
|
|
44
|
-
: v)
|
|
45
|
-
: raw(value.render({
|
|
46
|
-
aliases,
|
|
47
|
-
escape,
|
|
48
|
-
parser,
|
|
49
|
-
options,
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
return Object.assign(acc, { [key]: value });
|
|
53
|
-
}, {});
|
|
54
|
-
return buildPathAndQuery({ ...queryOptions, aliases, escape });
|
|
51
|
+
return pathAndParamsFromQueryOptions(this._values, {
|
|
52
|
+
escape,
|
|
53
|
+
parser,
|
|
54
|
+
options,
|
|
55
|
+
});
|
|
55
56
|
}
|
|
56
57
|
toString({ escape, parser, } = {}) {
|
|
57
58
|
const [path, params] = this.pathAndParams({ escape, parser });
|
|
@@ -62,64 +63,77 @@ export class ODataQueryOptions {
|
|
|
62
63
|
.join('&'));
|
|
63
64
|
}
|
|
64
65
|
toJson() {
|
|
65
|
-
return [...this.
|
|
66
|
-
let value = this.
|
|
66
|
+
return [...this._values.keys()].reduce((acc, key) => {
|
|
67
|
+
let value = this._values.get(key);
|
|
67
68
|
value = 'toJson' in value ? value.toJson() : value;
|
|
68
69
|
return Object.assign(acc, { [key]: value });
|
|
69
70
|
}, {});
|
|
70
71
|
}
|
|
72
|
+
fromJson(json) {
|
|
73
|
+
Object.entries(json || {}).forEach(([key, value]) => {
|
|
74
|
+
this._values.set(key, RenderableFactory(value));
|
|
75
|
+
});
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
static fromJson(json) {
|
|
79
|
+
const entries = Object.entries(json || {}).map(([key, value]) => [
|
|
80
|
+
key,
|
|
81
|
+
RenderableFactory(value),
|
|
82
|
+
]);
|
|
83
|
+
new Map(entries);
|
|
84
|
+
return new ODataQueryOptions(new Map(entries));
|
|
85
|
+
}
|
|
71
86
|
toQueryArguments() {
|
|
72
87
|
return {
|
|
73
|
-
select: this.
|
|
74
|
-
expand: this.
|
|
75
|
-
transform: this.
|
|
76
|
-
compute: this.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
select: this._values.get(QueryOption.select) ?? null,
|
|
89
|
+
expand: this._values.get(QueryOption.expand) ?? null,
|
|
90
|
+
transform: this._values.get(QueryOption.transform) ?? null,
|
|
91
|
+
compute: this._values.get(QueryOption.compute) ?? null,
|
|
92
|
+
apply: this._values.get(QueryOption.apply) ?? null,
|
|
93
|
+
search: this._values.get(QueryOption.search) ?? null,
|
|
94
|
+
filter: this._values.get(QueryOption.filter) ?? null,
|
|
95
|
+
orderBy: this._values.get(QueryOption.orderBy) ?? null,
|
|
96
|
+
top: this._values.get(QueryOption.top) ?? null,
|
|
97
|
+
skip: this._values.get(QueryOption.skip) ?? null,
|
|
98
|
+
skiptoken: this._values.get(QueryOption.skiptoken) ?? null,
|
|
99
|
+
levels: this._values.get(QueryOption.levels) ?? null,
|
|
100
|
+
count: this._values.get(QueryOption.count) ?? null,
|
|
85
101
|
};
|
|
86
102
|
}
|
|
87
103
|
clone() {
|
|
88
|
-
return new ODataQueryOptions(Objects.clone(this.
|
|
104
|
+
return new ODataQueryOptions(Objects.clone(this._values));
|
|
89
105
|
}
|
|
90
106
|
// Set Renderable
|
|
91
107
|
expression(key, exp) {
|
|
92
108
|
if (exp !== undefined)
|
|
93
|
-
this.
|
|
94
|
-
return this.
|
|
109
|
+
this._values.set(key, exp);
|
|
110
|
+
return this._values.get(key);
|
|
95
111
|
}
|
|
96
112
|
// Option Handler
|
|
97
113
|
option(key, opts) {
|
|
98
114
|
if (opts !== undefined)
|
|
99
|
-
this.
|
|
100
|
-
return new ODataQueryOptionHandler(this.
|
|
115
|
+
this._values.set(key, opts);
|
|
116
|
+
return new ODataQueryOptionHandler(this._values, key);
|
|
101
117
|
}
|
|
102
118
|
// Query Options tools
|
|
103
119
|
has(key) {
|
|
104
|
-
return this.
|
|
120
|
+
return this._values.has(key);
|
|
105
121
|
}
|
|
106
122
|
remove(...keys) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
});
|
|
123
|
+
for (let key of this._values.keys()) {
|
|
124
|
+
if (keys.includes(key))
|
|
125
|
+
this._values.delete(key);
|
|
126
|
+
}
|
|
112
127
|
}
|
|
113
128
|
keep(...keys) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
});
|
|
129
|
+
for (let key of this._values.keys()) {
|
|
130
|
+
if (!keys.includes(key))
|
|
131
|
+
this._values.delete(key);
|
|
132
|
+
}
|
|
119
133
|
}
|
|
120
134
|
// Clear
|
|
121
135
|
clear() {
|
|
122
|
-
this.
|
|
136
|
+
this._values.clear();
|
|
123
137
|
}
|
|
124
138
|
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsaUJBQWlCLEVBS2pCLEdBQUcsR0FHSixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBS0wsaUJBQWlCLEdBRWxCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtCckQsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFZLE1BQXdEO1FBQ2xFLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2pFLEdBQUc7Z0JBQ0gsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2FBQ3pCLENBQXlCLENBQUM7WUFDM0IsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUErQixDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTO0lBQ1QsYUFBYSxDQUFDLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLE1BQzhELEVBQUU7UUFJdkUsSUFBSSxPQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLFlBQVksR0FBRztZQUNqQixXQUFXLENBQUMsTUFBTTtZ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MUQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixHQUFHLENBQUMsR0FBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsSUFBbUI7UUFDM0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3JDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQUcsSUFBbUI7UUFDekIsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3JDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtJQUNSLEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciwgUGFyc2VyT3B0aW9ucywgUXVlcnlPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPYmplY3RzLCBUeXBlcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIGJ1aWxkUGF0aEFuZFF1ZXJ5LFxuICBFeHBhbmQsXG4gIEZpbHRlcixcbiAgT3JkZXJCeSxcbiAgUXVlcnlDdXN0b21UeXBlLFxuICByYXcsXG4gIFNlbGVjdCxcbiAgVHJhbnNmb3JtLFxufSBmcm9tICcuL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQ29tcHV0ZUV4cHJlc3Npb24sXG4gIEV4cHJlc3Npb24sXG4gIEZpbHRlckV4cHJlc3Npb24sXG4gIE9yZGVyQnlFeHByZXNzaW9uLFxuICBSZW5kZXJhYmxlRmFjdG9yeSxcbiAgU2VhcmNoRXhwcmVzc2lvbixcbn0gZnJvbSAnLi9leHByZXNzaW9ucyc7XG5pbXBvcnQgeyBDb3VudEV4cHJlc3Npb24gfSBmcm9tICcuL2V4cHJlc3Npb25zL2NvdW50JztcbmltcG9ydCB7IEV4cGFuZEV4cHJlc3Npb24gfSBmcm9tICcuL2V4cHJlc3Npb25zL2V4cGFuZCc7XG5pbXBvcnQgeyBTZWxlY3RFeHByZXNzaW9uIH0gZnJvbSAnLi9leHByZXNzaW9ucy9zZWxlY3QnO1xuaW1wb3J0IHsgT0RhdGFRdWVyeU9wdGlvbkhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXJzJztcblxuZXhwb3J0IHR5cGUgT0RhdGFRdWVyeUFyZ3VtZW50czxUPiA9IHtcbiAgW1F1ZXJ5T3B0aW9uLnNlbGVjdF0/OiBTZWxlY3Q8VD4gfCBTZWxlY3RFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmV4cGFuZF0/OiBFeHBhbmQ8VD4gfCBFeHBhbmRFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmNvbXB1dGVdPzogc3RyaW5nIHwgQ29tcHV0ZUV4cHJlc3Npb248VD4gfCBudWxsO1xuICBbUXVlcnlPcHRpb24uZmlsdGVyXT86IEZpbHRlcjxUPiB8IEZpbHRlckV4cHJlc3Npb248VD4gfCBudWxsO1xuICBbUXVlcnlPcHRpb24uc2VhcmNoXT86IHN0cmluZyB8IFNlYXJjaEV4cHJlc3Npb248VD4gfCBudWxsO1xuICBbUXVlcnlPcHRpb24udHJhbnNmb3JtXT86IFRyYW5zZm9ybTxUPiB8IG51bGw7XG4gIFtRdWVyeU9wdGlvbi5vcmRlckJ5XT86IE9yZGVyQnk8VD4gfCBPcmRlckJ5RXhwcmVzc2lvbjxUPiB8IG51bGw7XG4gIFtRdWVyeU9wdGlvbi50b3BdPzogbnVtYmVyIHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLnNraXBdPzogbnVtYmVyIHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLnNraXB0b2tlbl0/OiBzdHJpbmcgfCBudWxsO1xuICBbUXVlcnlPcHRpb24uZm9ybWF0XT86IHN0cmluZyB8IG51bGw7XG4gIFtRdWVyeU9wdGlvbi5sZXZlbHNdPzogbnVtYmVyIHwgJ21heCcgfCBudWxsO1xuICBbUXVlcnlPcHRpb24uY291bnRdPzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgY2xhc3MgT0RhdGFRdWVyeU9wdGlvbnM8VD4ge1xuICB2YWx1ZXM6IE1hcDxRdWVyeU9wdGlvbiwgYW55PjtcblxuICBjb25zdHJ1Y3Rvcih2YWx1ZXM/OiBNYXA8UXVlcnlPcHRpb24sIGFueT4gfCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSkge1xuICAgIGlmICghKHZhbHVlcyBpbnN0YW5jZW9mIE1hcCkpIHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh2YWx1ZXMgfHwge30pLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBbXG4gICAgICAgIGtleSxcbiAgICAgICAgUmVuZGVyYWJsZUZhY3RvcnkodmFsdWUpLFxuICAgICAgXSkgYXMgW1F1ZXJ5T3B0aW9uLCBhbnldW107XG4gICAgICB2YWx1ZXMgPSBuZXcgTWFwKGVudHJpZXMpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcyBhcyBNYXA8UXVlcnlPcHRpb24sIGFueT47XG4gIH1cblxuICAvLyBQYXJhbXNcbiAgcGF0aEFuZFBhcmFtcyh7XG4gICAgZXNjYXBlLFxuICAgIHBhcnNlcixcbiAgICBvcHRpb25zLFxuICB9OiB7IGVzY2FwZT86IGJvb2xlYW47IHBhcnNlcj86IFBhcnNlcjxUPjsgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMgfSA9IHt9KTogW1xuICAgIHN0cmluZyxcbiAgICB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSxcbiAgXSB7XG4gICAgbGV0IGFsaWFzZXM6IFF1ZXJ5Q3VzdG9tVHlwZVtdID0gW107XG4gICAgbGV0IHF1ZXJ5T3B0aW9ucyA9IFtcbiAgICAgIFF1ZXJ5T3B0aW9uLnNlbGVjdCxcbiAgICAgIFF1ZXJ5T3B0aW9uLmZpbHRlcixcbiAgICAgIFF1ZXJ5T3B0aW9uLnNlYXJjaCxcbiAgICAgIFF1ZXJ5T3B0aW9uLmNvbXB1dGUsXG4gICAgICBRdWVyeU9wdGlvbi50cmFuc2Zvcm0sXG4gICAgICBRdWVyeU9wdGlvbi5vcmRlckJ5LFxuICAgICAgUXVlcnlPcHRpb24udG9wLFxuICAgICAgUXVlcnlPcHRpb24uc2tpcCxcbiAgICAgIFF1ZXJ5T3B0aW9uLnNraXB0b2tlbixcbiAgICAgIFF1ZXJ5T3B0aW9uLmV4cGFuZCxcbiAgICAgIFF1ZXJ5T3B0aW9uLmZvcm1hdCxcbiAgICAgIFF1ZXJ5T3B0aW9uLmxldmVscyxcbiAgICAgIFF1ZXJ5T3B0aW9uLmNvdW50LFxuICAgIF1cbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gIVR5cGVzLmlzRW1wdHkodGhpcy52YWx1ZXMuZ2V0KGtleSkpKVxuICAgICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy52YWx1ZXMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBUeXBlcy5yYXdUeXBlKHZhbHVlKS5lbmRzV2l0aCgnRXhwcmVzc2lvbicpIHx8XG4gICAgICAgICAgKFR5cGVzLmlzQXJyYXkodmFsdWUpICYmXG4gICAgICAgICAgICB2YWx1ZS5zb21lKCh2OiBhbnkpID0+IFR5cGVzLnJhd1R5cGUodikuZW5kc1dpdGgoJ0V4cHJlc3Npb24nKSkpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gVHlwZXMuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgID8gdmFsdWUubWFwKCh2OiBFeHByZXNzaW9uPFQ+KSA9PlxuICAgICAgICAgICAgICAgIFR5cGVzLnJhd1R5cGUodikuZW5kc1dpdGgoJ0V4cHJlc3Npb24nKVxuICAgICAgICAgICAgICAgICAgPyByYXcodi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHBhcnNlciwgb3B0aW9ucyB9KSlcbiAgICAgICAgICAgICAgICAgIDogdixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiByYXcoXG4gICAgICAgICAgICAgICAgKHZhbHVlIGFzIEV4cHJlc3Npb248VD4pLnJlbmRlcih7XG4gICAgICAgICAgICAgICAgICBhbGlhc2VzLFxuICAgICAgICAgICAgICAgICAgZXNjYXBlLFxuICAgICAgICAgICAgICAgICAgcGFyc2VyLFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY2MsIHsgW2tleV06IHZhbHVlIH0pO1xuICAgICAgfSwge30pO1xuICAgIHJldHVybiBidWlsZFBhdGhBbmRRdWVyeTxhbnk+KHsgLi4ucXVlcnlPcHRpb25zLCBhbGlhc2VzLCBlc2NhcGUgfSk7XG4gIH1cblxuICB0b1N0cmluZyh7XG4gICAgZXNjYXBlLFxuICAgIHBhcnNlcixcbiAgfTogeyBlc2NhcGU/OiBib29sZWFuOyBwYXJzZXI/OiBQYXJzZXI8VD4gfSA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBbcGF0aCwgcGFyYW1zXSA9IHRoaXMucGF0aEFuZFBhcmFtcyh7IGVzY2FwZSwgcGFyc2VyIH0pO1xuICAgIHJldHVybiAoXG4gICAgICBwYXRoICtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtcylcbiAgICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiAhVHlwZXMuaXNFbXB0eSh2YWx1ZSkpXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApXG4gICAgICAgIC5qb2luKCcmJylcbiAgICApO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIHJldHVybiBbLi4udGhpcy52YWx1ZXMua2V5cygpXS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlcy5nZXQoa2V5KTtcbiAgICAgIHZhbHVlID0gJ3RvSnNvbicgaW4gdmFsdWUgPyB2YWx1ZS50b0pzb24oKSA6IHZhbHVlO1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjLCB7IFtrZXldOiB2YWx1ZSB9KTtcbiAgICB9LCB7fSk7XG4gIH1cblxuICB0b1F1ZXJ5QXJndW1lbnRzKCk6IE9EYXRhUXVlcnlBcmd1bWVudHM8VD4ge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3Q6IHRoaXMudmFsdWVzLmdldChRdWVyeU9wdGlvbi5zZWxlY3QpIHx8IG51bGwsXG4gICAgICBleHBhbmQ6IHRoaXMudmFsdWVzLmdldChRdWVyeU9wdGlvbi5leHBhbmQpIHx8IG51bGwsXG4gICAgICB0cmFuc2Zvcm06IHRoaXMudmFsdWVzLmdldChRdWVyeU9wdGlvbi50cmFuc2Zvcm0pIHx8IG51bGwsXG4gICAgICBjb21wdXRlOiB0aGlzLnZhbHVlcy5nZXQoUXVlcnlPcHRpb24uY29tcHV0ZSkgfHwgbnVsbCxcbiAgICAgIHNlYXJjaDogdGhpcy52YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLnNlYXJjaCkgfHwgbnVsbCxcbiAgICAgIGZpbHRlcjogdGhpcy52YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLmZpbHRlcikgfHwgbnVsbCxcbiAgICAgIG9yZGVyQnk6IHRoaXMudmFsdWVzLmdldChRdWVyeU9wdGlvbi5vcmRlckJ5KSB8fCBudWxsLFxuICAgICAgdG9wOiB0aGlzLnZhbHVlcy5nZXQoUXVlcnlPcHRpb24udG9wKSB8fCBudWxsLFxuICAgICAgc2tpcDogdGhpcy52YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLnNraXApIHx8IG51bGwsXG4gICAgICBza2lwdG9rZW46IHRoaXMudmFsdWVzLmdldChRdWVyeU9wdGlvbi5za2lwdG9rZW4pIHx8IG51bGwsXG4gICAgICBsZXZlbHM6IHRoaXMudmFsdWVzLmdldChRdWVyeU9wdGlvbi5sZXZlbHMpIHx8IG51bGwsXG4gICAgICBjb3VudDogdGhpcy52YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLmNvdW50KSB8fCBudWxsLFxuICAgIH0gYXMgT0RhdGFRdWVyeUFyZ3VtZW50czxUPjtcbiAgfVxuXG4gIGNsb25lPE8+KCkge1xuICAgIHJldHVybiBuZXcgT0RhdGFRdWVyeU9wdGlvbnM8Tz4oT2JqZWN0cy5jbG9uZSh0aGlzLnZhbHVlcykpO1xuICB9XG5cbiAgLy8gU2V0IFJlbmRlcmFibGVcbiAgZXhwcmVzc2lvbihrZXk6IFF1ZXJ5T3B0aW9uLCBleHA/OiBFeHByZXNzaW9uPFQ+KSB7XG4gICAgaWYgKGV4cCAhPT0gdW5kZWZpbmVkKSB0aGlzLnZhbHVlcy5zZXQoa2V5LCBleHApO1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5nZXQoa2V5KTtcbiAgfVxuXG4gIC8vIE9wdGlvbiBIYW5kbGVyXG4gIG9wdGlvbjxPPihrZXk6IFF1ZXJ5T3B0aW9uLCBvcHRzPzogTykge1xuICAgIGlmIChvcHRzICE9PSB1bmRlZmluZWQpIHRoaXMudmFsdWVzLnNldChrZXksIG9wdHMpO1xuICAgIHJldHVybiBuZXcgT0RhdGFRdWVyeU9wdGlvbkhhbmRsZXI8Tz4odGhpcy52YWx1ZXMsIGtleSk7XG4gIH1cblxuICAvLyBRdWVyeSBPcHRpb25zIHRvb2xzXG4gIGhhcyhrZXk6IFF1ZXJ5T3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmhhcyhrZXkpO1xuICB9XG5cbiAgcmVtb3ZlKC4uLmtleXM6IFF1ZXJ5T3B0aW9uW10pIHtcbiAgICBbLi4udGhpcy52YWx1ZXMua2V5cygpXVxuICAgICAgLmZpbHRlcigoaykgPT4ga2V5cy5pbmRleE9mKGspICE9PSAtMSlcbiAgICAgIC5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZXMuZGVsZXRlKGtleSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGtlZXAoLi4ua2V5czogUXVlcnlPcHRpb25bXSkge1xuICAgIFsuLi50aGlzLnZhbHVlcy5rZXlzKCldXG4gICAgICAuZmlsdGVyKChrKSA9PiBrZXlzLmluZGV4T2YoaykgPT09IC0xKVxuICAgICAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlcy5kZWxldGUoa2V5KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xlYXJcbiAgY2xlYXIoKSB7XG4gICAgdGhpcy52YWx1ZXMuY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsaUJBQWlCLEVBS2pCLEdBQUcsR0FHSixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBS0wsaUJBQWlCLEdBRWxCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQW1CckQsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQzNDLE1BQTZCLEVBQzdCLEVBQ0UsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLE1BQzhELEVBQUUsRUFDdEMsRUFBRTtJQUNyQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxDQUFDO0lBQ3RDLE1BQU0sWUFBWSxHQUFHO1FBQ25CLFdBQVcsQ0FBQyxNQUFNO1FBQ2xCLFdBQVcsQ0FBQyxNQUFNO1FBQ2xCLFdBQVcsQ0FBQyxNQUFNO1FBQ2xCLFdBQVcsQ0FBQyxPQUFPO1FBQ25CLFdBQVcsQ0FBQyxLQUFLO1FBQ2pCLFdBQVcsQ0FBQyxTQUFTO1FBQ3JCLFdBQVcsQ0FBQyxPQUFPO1FBQ25CLFdBQVcsQ0FBQyxHQUFHO1FBQ2YsV0FBVyxDQUFDLElBQUk7UUFDaEIsV0FBVyxDQUFDLFNBQVM7UUFDckIsV0FBVyxDQUFDLE1BQU07UUFDbEIsV0FBVyxDQUFDLE1BQU07UUFDbEIsV0FBVyxDQUFDLE1BQU07UUFDbEIsV0FBVyxDQUFDLEtBQUs7S0FDbEI7U0FDRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxD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QUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLElBQW1CO1FBQ3pCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtJQUNSLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciwgUGFyc2VyT3B0aW9ucywgUXVlcnlPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPYmplY3RzLCBUeXBlcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIGJ1aWxkUGF0aEFuZFF1ZXJ5LFxuICBFeHBhbmQsXG4gIEZpbHRlcixcbiAgT3JkZXJCeSxcbiAgUXVlcnlDdXN0b21UeXBlLFxuICByYXcsXG4gIFNlbGVjdCxcbiAgVHJhbnNmb3JtLFxufSBmcm9tICcuL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQ29tcHV0ZUV4cHJlc3Npb24sXG4gIEV4cHJlc3Npb24sXG4gIEZpbHRlckV4cHJlc3Npb24sXG4gIE9yZGVyQnlFeHByZXNzaW9uLFxuICBSZW5kZXJhYmxlRmFjdG9yeSxcbiAgU2VhcmNoRXhwcmVzc2lvbixcbn0gZnJvbSAnLi9leHByZXNzaW9ucyc7XG5pbXBvcnQgeyBBcHBseUV4cHJlc3Npb24gfSBmcm9tICcuL2V4cHJlc3Npb25zL2FwcGx5JztcbmltcG9ydCB7IEV4cGFuZEV4cHJlc3Npb24gfSBmcm9tICcuL2V4cHJlc3Npb25zL2V4cGFuZCc7XG5pbXBvcnQgeyBTZWxlY3RFeHByZXNzaW9uIH0gZnJvbSAnLi9leHByZXNzaW9ucy9zZWxlY3QnO1xuaW1wb3J0IHsgT0RhdGFRdWVyeU9wdGlvbkhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXJzJztcblxuZXhwb3J0IHR5cGUgT0RhdGFRdWVyeUFyZ3VtZW50czxUPiA9IHtcbiAgW1F1ZXJ5T3B0aW9uLnNlbGVjdF0/OiBTZWxlY3Q8VD4gfCBTZWxlY3RFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmV4cGFuZF0/OiBFeHBhbmQ8VD4gfCBFeHBhbmRFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmNvbXB1dGVdPzogc3RyaW5nIHwgQ29tcHV0ZUV4cHJlc3Npb248VD4gfCBudWxsO1xuICBbUXVlcnlPcHRpb24uYXBwbHldPzogc3RyaW5nIHwgQXBwbHlFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmZpbHRlcl0/OiBGaWx0ZXI8VD4gfCBGaWx0ZXJFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLnNlYXJjaF0/OiBzdHJpbmcgfCBTZWFyY2hFeHByZXNzaW9uPFQ+IHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLnRyYW5zZm9ybV0/OiBUcmFuc2Zvcm08VD4gfCBudWxsO1xuICBbUXVlcnlPcHRpb24ub3JkZXJCeV0/OiBPcmRlckJ5PFQ+IHwgT3JkZXJCeUV4cHJlc3Npb248VD4gfCBudWxsO1xuICBbUXVlcnlPcHRpb24udG9wXT86IG51bWJlciB8IG51bGw7XG4gIFtRdWVyeU9wdGlvbi5za2lwXT86IG51bWJlciB8IG51bGw7XG4gIFtRdWVyeU9wdGlvbi5za2lwdG9rZW5dPzogc3RyaW5nIHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmZvcm1hdF0/OiBzdHJpbmcgfCBudWxsO1xuICBbUXVlcnlPcHRpb24ubGV2ZWxzXT86IG51bWJlciB8ICdtYXgnIHwgbnVsbDtcbiAgW1F1ZXJ5T3B0aW9uLmNvdW50XT86IGJvb2xlYW4gfCBudWxsO1xufTtcblxuLy8gQ3JlYXRlIGEgcGF0aCBhbmQgcGFyYW1zIHR1cGxlIGZyb20gdGhlIHF1ZXJ5IG9wdGlvbnNcbmV4cG9ydCBjb25zdCBwYXRoQW5kUGFyYW1zRnJvbVF1ZXJ5T3B0aW9ucyA9IDxUPihcbiAgdmFsdWVzOiBNYXA8UXVlcnlPcHRpb24sIGFueT4sXG4gIHtcbiAgICBlc2NhcGUsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHsgZXNjYXBlPzogYm9vbGVhbjsgcGFyc2VyPzogUGFyc2VyPFQ+OyBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyB9ID0ge30sXG4pOiBbc3RyaW5nLCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfV0gPT4ge1xuICBjb25zdCBhbGlhc2VzOiBRdWVyeUN1c3RvbVR5cGVbXSA9IFtdO1xuICBjb25zdCBxdWVyeU9wdGlvbnMgPSBbXG4gICAgUXVlcnlPcHRpb24uc2VsZWN0LFxuICAgIFF1ZXJ5T3B0aW9uLmZpbHRlcixcbiAgICBRdWVyeU9wdGlvbi5zZWFyY2gsXG4gICAgUXVlcnlPcHRpb24uY29tcHV0ZSxcbiAgICBRdWVyeU9wdGlvbi5hcHBseSxcbiAgICBRdWVyeU9wdGlvbi50cmFuc2Zvcm0sXG4gICAgUXVlcnlPcHRpb24ub3JkZXJCeSxcbiAgICBRdWVyeU9wdGlvbi50b3AsXG4gICAgUXVlcnlPcHRpb24uc2tpcCxcbiAgICBRdWVyeU9wdGlvbi5za2lwdG9rZW4sXG4gICAgUXVlcnlPcHRpb24uZXhwYW5kLFxuICAgIFF1ZXJ5T3B0aW9uLmZvcm1hdCxcbiAgICBRdWVyeU9wdGlvbi5sZXZlbHMsXG4gICAgUXVlcnlPcHRpb24uY291bnQsXG4gIF1cbiAgICAuZmlsdGVyKChrZXkpID0+IHZhbHVlcy5oYXMoa2V5KSAmJiAhVHlwZXMuaXNFbXB0eSh2YWx1ZXMuZ2V0KGtleSkpKVxuICAgIC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBsZXQgdmFsdWUgPSB2YWx1ZXMuZ2V0KGtleSk7XG4gICAgICBpZiAoXG4gICAgICAgIFR5cGVzLnJhd1R5cGUodmFsdWUpLmVuZHNXaXRoKCdFeHByZXNzaW9uJykgfHxcbiAgICAgICAgKFR5cGVzLmlzQXJyYXkodmFsdWUpICYmXG4gICAgICAgICAgdmFsdWUuc29tZSgodjogYW55KSA9PiBUeXBlcy5yYXdUeXBlKHYpLmVuZHNXaXRoKCdFeHByZXNzaW9uJykpKVxuICAgICAgKSB7XG4gICAgICAgIHZhbHVlID0gVHlwZXMuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICA/IHZhbHVlLm1hcCgodjogRXhwcmVzc2lvbjxUPikgPT5cbiAgICAgICAgICAgICAgVHlwZXMucmF3VHlwZSh2KS5lbmRzV2l0aCgnRXhwcmVzc2lvbicpXG4gICAgICAgICAgICAgICAgPyByYXcodi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHBhcnNlciwgb3B0aW9ucyB9KSlcbiAgICAgICAgICAgICAgICA6IHYsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiByYXcoXG4gICAgICAgICAgICAgICh2YWx1ZSBhcyBFeHByZXNzaW9uPFQ+KS5yZW5kZXIoe1xuICAgICAgICAgICAgICAgIGFsaWFzZXMsXG4gICAgICAgICAgICAgICAgZXNjYXBlLFxuICAgICAgICAgICAgICAgIHBhcnNlcixcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY2MsIHsgW2tleV06IHZhbHVlIH0pO1xuICAgIH0sIHt9KTtcbiAgcmV0dXJuIGJ1aWxkUGF0aEFuZFF1ZXJ5PGFueT4oeyAuLi5xdWVyeU9wdGlvbnMsIGFsaWFzZXMsIGVzY2FwZSB9KTtcbn07XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVF1ZXJ5T3B0aW9uczxUPiB7XG4gIHByaXZhdGUgX3ZhbHVlczogTWFwPFF1ZXJ5T3B0aW9uLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlcz86IE1hcDxRdWVyeU9wdGlvbiwgYW55Pikge1xuICAgIHRoaXMuX3ZhbHVlcyA9IHZhbHVlcyA/PyBuZXcgTWFwPFF1ZXJ5T3B0aW9uLCBhbnk+KCk7XG4gIH1cblxuICBwYXRoQW5kUGFyYW1zKHtcbiAgICBlc2NhcGUsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBlc2NhcGU/OiBib29sZWFuO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucztcbiAgfSA9IHt9KTogW3N0cmluZywgeyBbbmFtZTogc3RyaW5nXTogYW55IH1dIHtcbiAgICByZXR1cm4gcGF0aEFuZFBhcmFtc0Zyb21RdWVyeU9wdGlvbnM8VD4odGhpcy5fdmFsdWVzLCB7XG4gICAgICBlc2NhcGUsXG4gICAgICBwYXJzZXIsXG4gICAgICBvcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgdG9TdHJpbmcoe1xuICAgIGVzY2FwZSxcbiAgICBwYXJzZXIsXG4gIH06IHsgZXNjYXBlPzogYm9vbGVhbjsgcGFyc2VyPzogUGFyc2VyPFQ+IH0gPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3QgW3BhdGgsIHBhcmFtc10gPSB0aGlzLnBhdGhBbmRQYXJhbXMoeyBlc2NhcGUsIHBhcnNlciB9KTtcbiAgICByZXR1cm4gKFxuICAgICAgcGF0aCArXG4gICAgICBPYmplY3QuZW50cmllcyhwYXJhbXMpXG4gICAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gIVR5cGVzLmlzRW1wdHkodmFsdWUpKVxuICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgICAuam9pbignJicpXG4gICAgKTtcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3ZhbHVlcy5rZXlzKCldLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMuX3ZhbHVlcy5nZXQoa2V5KTtcbiAgICAgIHZhbHVlID0gJ3RvSnNvbicgaW4gdmFsdWUgPyB2YWx1ZS50b0pzb24oKSA6IHZhbHVlO1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjLCB7IFtrZXldOiB2YWx1ZSB9KTtcbiAgICB9LCB7fSk7XG4gIH1cblxuICBmcm9tSnNvbjxUPihqc29uOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAgIE9iamVjdC5lbnRyaWVzKGpzb24gfHwge30pLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgdGhpcy5fdmFsdWVzLnNldChrZXkgYXMgUXVlcnlPcHRpb24sIFJlbmRlcmFibGVGYWN0b3J5KHZhbHVlKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb248VD4oanNvbjogeyBbbmFtZTogc3RyaW5nXTogYW55IH0pOiBPRGF0YVF1ZXJ5T3B0aW9uczxUPiB7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGpzb24gfHwge30pLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBbXG4gICAgICBrZXksXG4gICAgICBSZW5kZXJhYmxlRmFjdG9yeSh2YWx1ZSksXG4gICAgXSkgYXMgW1F1ZXJ5T3B0aW9uLCBhbnldW107XG4gICAgbmV3IE1hcChlbnRyaWVzKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhUXVlcnlPcHRpb25zPFQ+KG5ldyBNYXAoZW50cmllcykpO1xuICB9XG5cbiAgdG9RdWVyeUFyZ3VtZW50cygpOiBPRGF0YVF1ZXJ5QXJndW1lbnRzPFQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0OiB0aGlzLl92YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLnNlbGVjdCkgPz8gbnVsbCxcbiAgICAgIGV4cGFuZDogdGhpcy5fdmFsdWVzLmdldChRdWVyeU9wdGlvbi5leHBhbmQpID8/IG51bGwsXG4gICAgICB0cmFuc2Zvcm06IHRoaXMuX3ZhbHVlcy5nZXQoUXVlcnlPcHRpb24udHJhbnNmb3JtKSA/PyBudWxsLFxuICAgICAgY29tcHV0ZTogdGhpcy5fdmFsdWVzLmdldChRdWVyeU9wdGlvbi5jb21wdXRlKSA/PyBudWxsLFxuICAgICAgYXBwbHk6IHRoaXMuX3ZhbHVlcy5nZXQoUXVlcnlPcHRpb24uYXBwbHkpID8/IG51bGwsXG4gICAgICBzZWFyY2g6IHRoaXMuX3ZhbHVlcy5nZXQoUXVlcnlPcHRpb24uc2VhcmNoKSA/PyBudWxsLFxuICAgICAgZmlsdGVyOiB0aGlzLl92YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLmZpbHRlcikgPz8gbnVsbCxcbiAgICAgIG9yZGVyQnk6IHRoaXMuX3ZhbHVlcy5nZXQoUXVlcnlPcHRpb24ub3JkZXJCeSkgPz8gbnVsbCxcbiAgICAgIHRvcDogdGhpcy5fdmFsdWVzLmdldChRdWVyeU9wdGlvbi50b3ApID8/IG51bGwsXG4gICAgICBza2lwOiB0aGlzLl92YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLnNraXApID8/IG51bGwsXG4gICAgICBza2lwdG9rZW46IHRoaXMuX3ZhbHVlcy5nZXQoUXVlcnlPcHRpb24uc2tpcHRva2VuKSA/PyBudWxsLFxuICAgICAgbGV2ZWxzOiB0aGlzLl92YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLmxldmVscykgPz8gbnVsbCxcbiAgICAgIGNvdW50OiB0aGlzLl92YWx1ZXMuZ2V0KFF1ZXJ5T3B0aW9uLmNvdW50KSA/PyBudWxsLFxuICAgIH0gYXMgT0RhdGFRdWVyeUFyZ3VtZW50czxUPjtcbiAgfVxuXG4gIGNsb25lPE8+KCkge1xuICAgIHJldHVybiBuZXcgT0RhdGFRdWVyeU9wdGlvbnM8Tz4oT2JqZWN0cy5jbG9uZSh0aGlzLl92YWx1ZXMpKTtcbiAgfVxuXG4gIC8vIFNldCBSZW5kZXJhYmxlXG4gIGV4cHJlc3Npb24oa2V5OiBRdWVyeU9wdGlvbiwgZXhwPzogRXhwcmVzc2lvbjxUPikge1xuICAgIGlmIChleHAgIT09IHVuZGVmaW5lZCkgdGhpcy5fdmFsdWVzLnNldChrZXksIGV4cCk7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcy5nZXQoa2V5KTtcbiAgfVxuXG4gIC8vIE9wdGlvbiBIYW5kbGVyXG4gIG9wdGlvbjxPPihrZXk6IFF1ZXJ5T3B0aW9uLCBvcHRzPzogTykge1xuICAgIGlmIChvcHRzICE9PSB1bmRlZmluZWQpIHRoaXMuX3ZhbHVlcy5zZXQoa2V5LCBvcHRzKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhUXVlcnlPcHRpb25IYW5kbGVyPE8+KHRoaXMuX3ZhbHVlcywga2V5KTtcbiAgfVxuXG4gIC8vIFF1ZXJ5IE9wdGlvbnMgdG9vbHNcbiAgaGFzKGtleTogUXVlcnlPcHRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzLmhhcyhrZXkpO1xuICB9XG5cbiAgcmVtb3ZlKC4uLmtleXM6IFF1ZXJ5T3B0aW9uW10pIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgdGhpcy5fdmFsdWVzLmtleXMoKSkge1xuICAgICAgaWYgKGtleXMuaW5jbHVkZXMoa2V5KSkgdGhpcy5fdmFsdWVzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIGtlZXAoLi4ua2V5czogUXVlcnlPcHRpb25bXSkge1xuICAgIGZvciAobGV0IGtleSBvZiB0aGlzLl92YWx1ZXMua2V5cygpKSB7XG4gICAgICBpZiAoIWtleXMuaW5jbHVkZXMoa2V5KSkgdGhpcy5fdmFsdWVzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENsZWFyXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuX3ZhbHVlcy5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $BATCH, $QUERY, ACCEPT, IF_MATCH_HEADER, IF_NONE_MATCH_HEADER, PREFER, TEXT_PLAIN, } from '../constants';
|
|
1
|
+
import { $BATCH, $QUERY, ACCEPT, APPLICATION_JSON, CONTENT_TYPE_ANY, IF_MATCH_HEADER, IF_NONE_MATCH_HEADER, PREFER, TEXT_PLAIN, } from '../constants';
|
|
2
2
|
import { Http, Types } from '../utils';
|
|
3
3
|
export class ODataRequest {
|
|
4
4
|
constructor(init) {
|
|
@@ -51,9 +51,9 @@ export class ODataRequest {
|
|
|
51
51
|
accept.push(`ExponentialDecimals=${this.api.options.accept?.exponentialDecimals}`);
|
|
52
52
|
if (accept.length > 0)
|
|
53
53
|
customHeaders[ACCEPT] = [
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
`${APPLICATION_JSON};${accept.join(';')}`,
|
|
55
|
+
`${TEXT_PLAIN}`,
|
|
56
|
+
`${CONTENT_TYPE_ANY}`,
|
|
57
57
|
];
|
|
58
58
|
const prefer = [];
|
|
59
59
|
// Return
|
|
@@ -193,4 +193,4 @@ export class ODataRequest {
|
|
|
193
193
|
return ['PUT', 'PATCH', 'POST', 'DELETE'].indexOf(this._method) !== -1;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sZUFBZSxFQUNmLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSXZDLE1BQU0sT0FBTyxZQUFZO0lBNkJ2QixZQUFZLElBZ0NYO1FBQ0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUU5QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFNUIsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV2QyxXQUFXO1FBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtB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Q0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ29udGV4dCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQge1xuICAkQkFUQ0gsXG4gICRRVUVSWSxcbiAgQUNDRVBULFxuICBJRl9NQVRDSF9IRUFERVIsXG4gIElGX05PTkVfTUFUQ0hfSEVBREVSLFxuICBQUkVGRVIsXG4gIFRFWFRfUExBSU4sXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSwgUGFyc2VyT3B0aW9ucywgUXVlcnlPcHRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBIdHRwLCBUeXBlcyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFSZXF1ZXN0PFQ+IHtcbiAgcmVhZG9ubHkgYXBpOiBPRGF0YUFwaTtcbiAgcmVhZG9ubHkgb2JzZXJ2ZTogJ2V2ZW50cycgfCAncmVzcG9uc2UnO1xuICByZWFkb25seSBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gIHJlYWRvbmx5IHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYm9keVF1ZXJ5T3B0aW9uczogUXVlcnlPcHRpb25bXTtcbiAgcmVhZG9ubHkgZmV0Y2hQb2xpY3k6XG4gICAgfCAnY2FjaGUtZmlyc3QnXG4gICAgfCAnY2FjaGUtYW5kLW5ldHdvcmsnXG4gICAgfCAnbmV0d29yay1vbmx5J1xuICAgIHwgJ25vLWNhY2hlJ1xuICAgIHwgJ2NhY2hlLW9ubHknO1xuICByZWFkb25seSByZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxUPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzcG9uc2VUeXBlPzpcbiAgICB8ICdhcnJheWJ1ZmZlcidcbiAgICB8ICdibG9iJ1xuICAgIHwgJ2pzb24nXG4gICAgfCAndGV4dCdcbiAgICB8ICd2YWx1ZSdcbiAgICB8ICdwcm9wZXJ0eSdcbiAgICB8ICdlbnRpdHknXG4gICAgfCAnZW50aXRpZXMnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZXRob2Q6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfYm9keTogYW55IHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGVhZGVyczogSHR0cEhlYWRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmFtczogSHR0cFBhcmFtcztcbiAgcHJpdmF0ZSByZWFkb25seSBfcGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGluaXQ6IHtcbiAgICBtZXRob2Q6IHN0cmluZztcbiAgICBhcGk6IE9EYXRhQXBpO1xuICAgIHJlc291cmNlOiBPRGF0YVJlc291cmNlPFQ+O1xuICAgIGJvZHk6IGFueTtcbiAgICBvYnNlcnZlOiAnZXZlbnRzJyB8ICdyZXNwb25zZSc7XG4gICAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICAgIGV0YWc/OiBzdHJpbmc7XG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgICBwYXJhbXM/OlxuICAgICAgfCBIdHRwUGFyYW1zXG4gICAgICB8IHtcbiAgICAgICAgICBbcGFyYW06IHN0cmluZ106XG4gICAgICAgICAgICB8IHN0cmluZ1xuICAgICAgICAgICAgfCBudW1iZXJcbiAgICAgICAgICAgIHwgYm9vbGVhblxuICAgICAgICAgICAgfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuICAgICAgICB9O1xuICAgIHJlc3BvbnNlVHlwZT86XG4gICAgICB8ICdhcnJheWJ1ZmZlcidcbiAgICAgIHwgJ2Jsb2InXG4gICAgICB8ICdqc29uJ1xuICAgICAgfCAndGV4dCdcbiAgICAgIHwgJ3ZhbHVlJ1xuICAgICAgfCAncHJvcGVydHknXG4gICAgICB8ICdlbnRpdHknXG4gICAgICB8ICdlbnRpdGllcyc7XG4gICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgICBwYXJzZXJPcHRpb25zPzogUGFyc2VyT3B0aW9ucztcbiAgICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICB9KSB7XG4gICAgdGhpcy5fbWV0aG9kID0gaW5pdC5tZXRob2Q7XG4gICAgdGhpcy5yZXNvdXJjZSA9IGluaXQucmVzb3VyY2U7XG5cbiAgICB0aGlzLmFwaSA9IGluaXQuYXBpO1xuICAgIHRoaXMucmVwb3J0UHJvZ3Jlc3MgPSBpbml0LnJlcG9ydFByb2dyZXNzO1xuICAgIHRoaXMub2JzZXJ2ZSA9IGluaXQub2JzZXJ2ZTtcbiAgICB0aGlzLmNvbnRleHQgPSBpbml0LmNvbnRleHQ7XG5cbiAgICAvLyBSZXNwb25zZSBUeXBlXG4gICAgdGhpcy5fcmVzcG9uc2VUeXBlID0gaW5pdC5yZXNwb25zZVR5cGU7XG5cbiAgICAvLyBUaGUgQm9keVxuICAgIHRoaXMuX2JvZHkgPSBpbml0LmJvZHkgIT09IHVuZGVmaW5lZCA/IGluaXQuYm9keSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2JvZHkgIT09IG51bGwpXG4gICAgICB0aGlzLl9ib2R5ID0gdGhpcy5yZXNvdXJjZS5zZXJpYWxpemUodGhpcy5fYm9keSwgaW5pdC5wYXJzZXJPcHRpb25zKTtcblxuICAgIHRoaXMud2l0aENyZWRlbnRpYWxzID1cbiAgICAgIGluaXQud2l0aENyZWRlbnRpYWxzID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLmFwaS5vcHRpb25zLndpdGhDcmVkZW50aWFsc1xuICAgICAgICA6IGluaXQud2l0aENyZWRlbnRpYWxzO1xuICAgIHRoaXMuZmV0Y2hQb2xpY3kgPSBpbml0LmZldGNoUG9saWN5IHx8IHRoaXMuYXBpLm9wdGlvbnMuZmV0Y2hQb2xpY3k7XG4gICAgdGhpcy5ib2R5UXVlcnlPcHRpb25zID0gW1xuICAgICAgLi4uKHRoaXMuYXBpLm9wdGlvbnMuYm9keVF1ZXJ5T3B0aW9ucyB8fCBbXSksXG4gICAgICAuLi4oaW5pdC5ib2R5UXVlcnlPcHRpb25zIHx8IFtdKSxcbiAgICBdO1xuXG4gICAgLy8gVGhlIFBhdGggYW5kIFBhcmFtcyBmcm9tIHJlc291cmNlXG4gICAgY29uc3QgW3Jlc291cmNlUGF0aCwgcmVzb3VyY2VQYXJhbXNdID0gdGhpcy5yZXNvdXJjZS5wYXRoQW5kUGFyYW1zKFxuICAgICAgaW5pdC5wYXJzZXJPcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5fcGF0aCA9IHJlc291cmNlUGF0aDtcblxuICAgIC8vI3JlZ2lvbiBIZWFkZXJzXG4gICAgY29uc3QgY3VzdG9tSGVhZGVyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSA9IHt9O1xuICAgIGlmICh0eXBlb2YgaW5pdC5ldGFnID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFwaS5vcHRpb25zLmV0YWcuaWZNYXRjaCAmJlxuICAgICAgICBbJ1BVVCcsICdQQVRDSCcsICdERUxFVEUnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xXG4gICAgICApXG4gICAgICAgIGN1c3RvbUhlYWRlcnNbSUZfTUFUQ0hfSEVBREVSXSA9IGluaXQuZXRhZztcbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmFwaS5vcHRpb25zLmV0YWcuaWZOb25lTWF0Y2ggJiZcbiAgICAgICAgWydHRVQnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xXG4gICAgICApXG4gICAgICAgIGN1c3RvbUhlYWRlcnNbSUZfTk9ORV9NQVRDSF9IRUFERVJdID0gaW5pdC5ldGFnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdCA9IFtdO1xuICAgIC8vIE1ldGFkYXRhXG4gICAgaWYgKHRoaXMuYXBpLm9wdGlvbnMuYWNjZXB0Py5tZXRhZGF0YSAhPT0gdW5kZWZpbmVkKVxuICAgICAgYWNjZXB0LnB1c2goYG9kYXRhLm1ldGFkYXRhPSR7dGhpcy5hcGkub3B0aW9ucy5hY2NlcHQ/Lm1ldGFkYXRhfWApO1xuICAgIC8vIElFRUU3NTRcbiAgICBpZiAodGhpcy5hcGkub3B0aW9ucy5hY2NlcHQ/LmllZWU3NTRDb21wYXRpYmxlICE9PSB1bmRlZmluZWQpXG4gICAgICBhY2NlcHQucHVzaChcbiAgICAgICAgYElFRUU3NTRDb21wYXRpYmxlPSR7dGhpcy5hcGkub3B0aW9ucy5hY2NlcHQ/LmllZWU3NTRDb21wYXRpYmxlfWAsXG4gICAgICApO1xuICAgIC8vIHN0cmVhbWluZ1xuICAgIGlmICh0aGlzLmFwaS5vcHRpb25zLmFjY2VwdD8uc3RyZWFtaW5nICE9PSB1bmRlZmluZWQpXG4gICAgICBhY2NlcHQucHVzaChgc3RyZWFtaW5nPSR7dGhpcy5hcGkub3B0aW9ucy5hY2NlcHQ/LnN0cmVhbWluZ31gKTtcbiAgICAvLyBFeHBvbmVudGlhbERlY2ltYWxzXG4gICAgaWYgKHRoaXMuYXBpLm9wdGlvbnMuYWNjZXB0Py5leHBvbmVudGlhbERlY2ltYWxzICE9PSB1bmRlZmluZWQpXG4gICAgICBhY2NlcHQucHVzaChcbiAgICAgICAgYEV4cG9uZW50aWFsRGVjaW1hbHM9JHt0aGlzLmFwaS5vcHRpb25zLmFjY2VwdD8uZXhwb25lbnRpYWxEZWNpbWFsc31gLFxuICAgICAgKTtcbiAgICBpZiAoYWNjZXB0Lmxlbmd0aCA+IDApXG4gICAgICBjdXN0b21IZWFkZXJzW0FDQ0VQVF0gPSBbXG4gICAgICAgIGBhcHBsaWNhdGlvbi9qc29uOyR7YWNjZXB0LmpvaW4oJzsnKX1gLFxuICAgICAgICAndGV4dC9wbGFpbicsXG4gICAgICAgICcqLyonLFxuICAgICAgXTtcblxuICAgIGNvbnN0IHByZWZlciA9IFtdO1xuICAgIC8vIFJldHVyblxuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5yZXR1cm4gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgWydQT1NUJywgJ1BVVCcsICdQQVRDSCddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTFcbiAgICApXG4gICAgICBwcmVmZXIucHVzaChgcmV0dXJuPSR7dGhpcy5hcGkub3B0aW9ucy5wcmVmZXI/LnJldHVybn1gKTtcbiAgICAvLyBNYXhQYWdlU2l6ZVxuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5tYXhQYWdlU2l6ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBbJ0dFVCddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTFcbiAgICApXG4gICAgICBwcmVmZXIucHVzaChgb2RhdGEubWF4cGFnZXNpemU9JHt0aGlzLmFwaS5vcHRpb25zLnByZWZlcj8ubWF4UGFnZVNpemV9YCk7XG4gICAgLy8gQW5ub3RhdGlvbnNcbiAgICBpZiAoXG4gICAgICB0aGlzLmFwaS5vcHRpb25zLnByZWZlcj8uaW5jbHVkZUFubm90YXRpb25zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIFsnR0VUJ10uaW5kZXhPZih0aGlzLl9tZXRob2QpICE9PSAtMVxuICAgIClcbiAgICAgIHByZWZlci5wdXNoKFxuICAgICAgICBgb2RhdGEuaW5jbHVkZS1hbm5vdGF0aW9ucz0ke3RoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5pbmNsdWRlQW5ub3RhdGlvbnN9YCxcbiAgICAgICk7XG4gICAgLy8gT21pdCBOdWxsIFZhbHVlc1xuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5vbWl0TnVsbFZhbHVlcyA9PT0gdHJ1ZSAmJlxuICAgICAgWydHRVQnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xXG4gICAgKVxuICAgICAgcHJlZmVyLnB1c2goYG9taXQtdmFsdWVzPW51bGxzYCk7XG4gICAgLy8gQ29udGludWUgb24gRXJyb3JcbiAgICBpZiAoXG4gICAgICB0aGlzLmFwaS5vcHRpb25zLnByZWZlcj8uY29udGludWVPbkVycm9yID09PSB0cnVlICYmXG4gICAgICBbJ1BPU1QnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xXG4gICAgKVxuICAgICAgcHJlZmVyLnB1c2goYG9kYXRhLmNvbnRpbnVlLW9uLWVycm9yYCk7XG4gICAgaWYgKHByZWZlci5sZW5ndGggPiAwKSBjdXN0b21IZWFkZXJzW1BSRUZFUl0gPSBwcmVmZXI7XG4gICAgdGhpcy5faGVhZGVycyA9IEh0dHAubWVyZ2VIdHRwSGVhZGVycyhcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMuaGVhZGVycyxcbiAgICAgIGN1c3RvbUhlYWRlcnMsXG4gICAgICBpbml0LmhlYWRlcnMgfHwge30sXG4gICAgKTtcbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiBQYXJhbXNcbiAgICBjb25zdCBjdXN0b21QYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gPSB7fTtcbiAgICBpZiAoXG4gICAgICBbJ1BPU1QnLCAnUFVUJywgJ1BBVENIJ10uaW5kZXhPZih0aGlzLl9tZXRob2QpICE9PSAtMSAmJlxuICAgICAgJyRzZWxlY3QnIGluIHJlc291cmNlUGFyYW1zXG4gICAgKSB7XG4gICAgICBjdXN0b21QYXJhbXNbJyRzZWxlY3QnXSA9IHJlc291cmNlUGFyYW1zWyckc2VsZWN0J107XG4gICAgfVxuICAgIGlmIChbJ1BPU1QnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xICYmICckZXhwYW5kJyBpbiByZXNvdXJjZVBhcmFtcykge1xuICAgICAgY3VzdG9tUGFyYW1zWyckZXhwYW5kJ10gPSByZXNvdXJjZVBhcmFtc1snJGV4cGFuZCddO1xuICAgIH1cbiAgICBpZiAoWydHRVQnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGN1c3RvbVBhcmFtcywgcmVzb3VyY2VQYXJhbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtcyA9IEh0dHAubWVyZ2VIdHRwUGFyYW1zKFxuICAgICAgdGhpcy5hcGkub3B0aW9ucy5wYXJhbXMsXG4gICAgICBjdXN0b21QYXJhbXMsXG4gICAgICBpbml0LnBhcmFtcyB8fCB7fSxcbiAgICApO1xuXG4gICAgdGhpcy5fcGFyYW1zID1cbiAgICAgIHRoaXMuX3Jlc3BvbnNlVHlwZSA9PT0gJ2VudGl0eSdcbiAgICAgICAgPyBIdHRwLndpdGhvdXRIdHRwUGFyYW1zKHBhcmFtcywgW1xuICAgICAgICAgICAgJyRmaWx0ZXInLFxuICAgICAgICAgICAgJyRvcmRlcmJ5JyxcbiAgICAgICAgICAgICckY291bnQnLFxuICAgICAgICAgICAgJyRza2lwJyxcbiAgICAgICAgICAgICckdG9wJyxcbiAgICAgICAgICBdKVxuICAgICAgICA6IHBhcmFtcztcbiAgICAvLyNlbmRyZWdpb25cbiAgfVxuXG4gIHN0YXRpYyBmYWN0b3J5KFxuICAgIGFwaTogT0RhdGFBcGksXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8YW55PixcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5PzogYW55O1xuICAgICAgZXRhZz86IHN0cmluZztcbiAgICAgIHJlc3BvbnNlVHlwZT86XG4gICAgICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgICAgICB8ICdibG9iJ1xuICAgICAgICB8ICdqc29uJ1xuICAgICAgICB8ICd0ZXh0J1xuICAgICAgICB8ICd2YWx1ZSdcbiAgICAgICAgfCAncHJvcGVydHknXG4gICAgICAgIHwgJ2VudGl0eSdcbiAgICAgICAgfCAnZW50aXRpZXMnO1xuICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycgfCAncmVzcG9uc2UnO1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH0sXG4gICkge1xuICAgIGNvbnN0IGFwaU9wdGlvbnMgPSBhcGkub3B0aW9ucztcbiAgICBsZXQgcGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG4gICAgaWYgKG9wdGlvbnMud2l0aENvdW50KSB7XG4gICAgICBwYXJhbXMgPSBIdHRwLm1lcmdlSHR0cFBhcmFtcyhwYXJhbXMsIGFwaU9wdGlvbnMuaGVscGVyLmNvdW50UGFyYW0oKSk7XG4gICAgfVxuXG4gICAgbGV0IGV0YWcgPSBvcHRpb25zLmV0YWc7XG4gICAgaWYgKGV0YWcgPT09IHVuZGVmaW5lZCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KG9wdGlvbnMuYm9keSkpIHtcbiAgICAgIGV0YWcgPSBhcGlPcHRpb25zLmhlbHBlci5ldGFnKG9wdGlvbnMuYm9keSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPRGF0YVJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgZXRhZyxcbiAgICAgIGFwaSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgcGFyYW1zLFxuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgYm9keTogb3B0aW9ucy5ib2R5LFxuICAgICAgb2JzZXJ2ZTogb3B0aW9ucy5vYnNlcnZlLFxuICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzLFxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IG9wdGlvbnMucmVwb3J0UHJvZ3Jlc3MsXG4gICAgICByZXNwb25zZVR5cGU6IG9wdGlvbnMucmVzcG9uc2VUeXBlLFxuICAgICAgZmV0Y2hQb2xpY3k6IG9wdGlvbnMuZmV0Y2hQb2xpY3ksXG4gICAgICBwYXJzZXJPcHRpb25zOiBvcHRpb25zLnBhcnNlck9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IG9wdGlvbnMud2l0aENyZWRlbnRpYWxzLFxuICAgICAgYm9keVF1ZXJ5T3B0aW9uczogb3B0aW9ucy5ib2R5UXVlcnlPcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHJlc3BvbnNlVHlwZSgpOiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VUeXBlICYmXG4gICAgICBbJ3Byb3BlcnR5JywgJ2VudGl0eScsICdlbnRpdGllcyddLmluZGV4T2YodGhpcy5fcmVzcG9uc2VUeXBlKSAhPT0gLTFcbiAgICAgID8gJ2pzb24nXG4gICAgICA6IHRoaXMuX3Jlc3BvbnNlVHlwZSA9PT0gJ3ZhbHVlJ1xuICAgICAgPyAndGV4dCdcbiAgICAgIDogPCdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc+dGhpcy5fcmVzcG9uc2VUeXBlO1xuICB9XG5cbiAgZ2V0IHBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNRdWVyeUJvZHkoKSA/IGAke3RoaXMuX3BhdGh9LyR7JFFVRVJZfWAgOiB0aGlzLl9wYXRoO1xuICB9XG5cbiAgZ2V0IG1ldGhvZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1F1ZXJ5Qm9keSgpID8gJ1BPU1QnIDogdGhpcy5fbWV0aG9kO1xuICB9XG5cbiAgZ2V0IGJvZHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNRdWVyeUJvZHkoKVxuICAgICAgPyBIdHRwLnNwbGl0SHR0cFBhcmFtcyhcbiAgICAgICAgICB0aGlzLl9wYXJhbXMsXG4gICAgICAgICAgdGhpcy5ib2R5UXVlcnlPcHRpb25zLm1hcCgobmFtZSkgPT4gYCQke25hbWV9YCksXG4gICAgICAgIClbMV0udG9TdHJpbmcoKVxuICAgICAgOiB0aGlzLl9ib2R5O1xuICB9XG5cbiAgZ2V0IHBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1F1ZXJ5Qm9keSgpXG4gICAgICA/IEh0dHAuc3BsaXRIdHRwUGFyYW1zKFxuICAgICAgICAgIHRoaXMuX3BhcmFtcyxcbiAgICAgICAgICB0aGlzLmJvZHlRdWVyeU9wdGlvbnMubWFwKChuYW1lKSA9PiBgJCR7bmFtZX1gKSxcbiAgICAgICAgKVswXVxuICAgICAgOiB0aGlzLl9wYXJhbXM7XG4gIH1cblxuICBnZXQgaGVhZGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1F1ZXJ5Qm9keSgpXG4gICAgICA/IEh0dHAubWVyZ2VIdHRwSGVhZGVycyh0aGlzLl9oZWFkZXJzLCB7IENPTlRFTlRfVFlQRTogVEVYVF9QTEFJTiB9KVxuICAgICAgOiB0aGlzLl9oZWFkZXJzO1xuICB9XG5cbiAgZ2V0IHBhdGhXaXRoUGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5rZXlzKCkubGVuZ3RoID4gMFxuICAgICAgPyBgJHt0aGlzLnBhdGh9PyR7dGhpcy5wYXJhbXN9YFxuICAgICAgOiB0aGlzLnBhdGg7XG4gIH1cblxuICBnZXQgdXJsKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmFwaS5zZXJ2aWNlUm9vdFVybH0ke3RoaXMucGF0aH1gO1xuICB9XG5cbiAgZ2V0IHVybFdpdGhQYXJhbXMoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYXBpLnNlcnZpY2VSb290VXJsfSR7dGhpcy5wYXRoV2l0aFBhcmFtc31gO1xuICB9XG5cbiAgZ2V0IGNhY2hlS2V5KCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbXMua2V5cygpLmxlbmd0aCA+IDBcbiAgICAgID8gYCR7dGhpcy5fcGF0aH0/JHt0aGlzLl9wYXJhbXN9YFxuICAgICAgOiB0aGlzLl9wYXRoO1xuICB9XG5cbiAgaXNRdWVyeUJvZHkoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX21ldGhvZCA9PT0gJ0dFVCcgJiZcbiAgICAgIHRoaXMuYm9keVF1ZXJ5T3B0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICB0aGlzLmJvZHlRdWVyeU9wdGlvbnMuc29tZSgobmFtZSkgPT4gdGhpcy5fcGFyYW1zLmhhcyhgJCR7bmFtZX1gKSlcbiAgICApO1xuICB9XG5cbiAgaXNCYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoLmVuZHNXaXRoKCRCQVRDSCk7XG4gIH1cblxuICBpc0ZldGNoKCkge1xuICAgIHJldHVybiBbJ0dFVCddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTE7XG4gIH1cblxuICBpc011dGF0ZSgpIHtcbiAgICByZXR1cm4gWydQVVQnLCAnUEFUQ0gnLCAnUE9TVCcsICdERUxFVEUnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xO1xuICB9XG59XG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJdkMsTUFBTSxPQUFPLFlBQVk7SUE2QnZCLFlBQVksSUFnQ1g7UUFDQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRTlCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1QixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZDLFdBQVc7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxD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QUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDb250ZXh0LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7XG4gICRCQVRDSCxcbiAgJFFVRVJZLFxuICBBQ0NFUFQsXG4gIEFQUExJQ0FUSU9OX0pTT04sXG4gIENPTlRFTlRfVFlQRV9BTlksXG4gIElGX01BVENIX0hFQURFUixcbiAgSUZfTk9ORV9NQVRDSF9IRUFERVIsXG4gIFBSRUZFUixcbiAgVEVYVF9QTEFJTixcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEZldGNoUG9saWN5LCBQYXJzZXJPcHRpb25zLCBRdWVyeU9wdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEh0dHAsIFR5cGVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgT0RhdGFSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVJlcXVlc3Q8VD4ge1xuICByZWFkb25seSBhcGk6IE9EYXRhQXBpO1xuICByZWFkb25seSBvYnNlcnZlOiAnZXZlbnRzJyB8ICdyZXNwb25zZSc7XG4gIHJlYWRvbmx5IGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgcmVhZG9ubHkgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICByZWFkb25seSB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICByZWFkb25seSBib2R5UXVlcnlPcHRpb25zOiBRdWVyeU9wdGlvbltdO1xuICByZWFkb25seSBmZXRjaFBvbGljeTpcbiAgICB8ICdjYWNoZS1maXJzdCdcbiAgICB8ICdjYWNoZS1hbmQtbmV0d29yaydcbiAgICB8ICduZXR3b3JrLW9ubHknXG4gICAgfCAnbm8tY2FjaGUnXG4gICAgfCAnY2FjaGUtb25seSc7XG4gIHJlYWRvbmx5IHJlc291cmNlOiBPRGF0YVJlc291cmNlPFQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNwb25zZVR5cGU/OlxuICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgIHwgJ2Jsb2InXG4gICAgfCAnanNvbidcbiAgICB8ICd0ZXh0J1xuICAgIHwgJ3ZhbHVlJ1xuICAgIHwgJ3Byb3BlcnR5J1xuICAgIHwgJ2VudGl0eSdcbiAgICB8ICdlbnRpdGllcyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21ldGhvZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ib2R5OiBhbnkgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJzOiBIdHRwSGVhZGVycztcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyYW1zOiBIdHRwUGFyYW1zO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXRoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoaW5pdDoge1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIGFwaTogT0RhdGFBcGk7XG4gICAgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG4gICAgYm9keTogYW55O1xuICAgIG9ic2VydmU6ICdldmVudHMnIHwgJ3Jlc3BvbnNlJztcbiAgICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gICAgZXRhZz86IHN0cmluZztcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICAgIHBhcmFtcz86XG4gICAgICB8IEh0dHBQYXJhbXNcbiAgICAgIHwge1xuICAgICAgICAgIFtwYXJhbTogc3RyaW5nXTpcbiAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICB8IG51bWJlclxuICAgICAgICAgICAgfCBib29sZWFuXG4gICAgICAgICAgICB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG4gICAgICAgIH07XG4gICAgcmVzcG9uc2VUeXBlPzpcbiAgICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgICAgfCAnYmxvYidcbiAgICAgIHwgJ2pzb24nXG4gICAgICB8ICd0ZXh0J1xuICAgICAgfCAndmFsdWUnXG4gICAgICB8ICdwcm9wZXJ0eSdcbiAgICAgIHwgJ2VudGl0eSdcbiAgICAgIHwgJ2VudGl0aWVzJztcbiAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgIHBhcnNlck9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gIH0pIHtcbiAgICB0aGlzLl9tZXRob2QgPSBpbml0Lm1ldGhvZDtcbiAgICB0aGlzLnJlc291cmNlID0gaW5pdC5yZXNvdXJjZTtcblxuICAgIHRoaXMuYXBpID0gaW5pdC5hcGk7XG4gICAgdGhpcy5yZXBvcnRQcm9ncmVzcyA9IGluaXQucmVwb3J0UHJvZ3Jlc3M7XG4gICAgdGhpcy5vYnNlcnZlID0gaW5pdC5vYnNlcnZlO1xuICAgIHRoaXMuY29udGV4dCA9IGluaXQuY29udGV4dDtcblxuICAgIC8vIFJlc3BvbnNlIFR5cGVcbiAgICB0aGlzLl9yZXNwb25zZVR5cGUgPSBpbml0LnJlc3BvbnNlVHlwZTtcblxuICAgIC8vIFRoZSBCb2R5XG4gICAgdGhpcy5fYm9keSA9IGluaXQuYm9keSAhPT0gdW5kZWZpbmVkID8gaW5pdC5ib2R5IDogbnVsbDtcbiAgICBpZiAodGhpcy5fYm9keSAhPT0gbnVsbClcbiAgICAgIHRoaXMuX2JvZHkgPSB0aGlzLnJlc291cmNlLnNlcmlhbGl6ZSh0aGlzLl9ib2R5LCBpbml0LnBhcnNlck9wdGlvbnMpO1xuXG4gICAgdGhpcy53aXRoQ3JlZGVudGlhbHMgPVxuICAgICAgaW5pdC53aXRoQ3JlZGVudGlhbHMgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMuYXBpLm9wdGlvbnMud2l0aENyZWRlbnRpYWxzXG4gICAgICAgIDogaW5pdC53aXRoQ3JlZGVudGlhbHM7XG4gICAgdGhpcy5mZXRjaFBvbGljeSA9IGluaXQuZmV0Y2hQb2xpY3kgfHwgdGhpcy5hcGkub3B0aW9ucy5mZXRjaFBvbGljeTtcbiAgICB0aGlzLmJvZHlRdWVyeU9wdGlvbnMgPSBbXG4gICAgICAuLi4odGhpcy5hcGkub3B0aW9ucy5ib2R5UXVlcnlPcHRpb25zIHx8IFtdKSxcbiAgICAgIC4uLihpbml0LmJvZHlRdWVyeU9wdGlvbnMgfHwgW10pLFxuICAgIF07XG5cbiAgICAvLyBUaGUgUGF0aCBhbmQgUGFyYW1zIGZyb20gcmVzb3VyY2VcbiAgICBjb25zdCBbcmVzb3VyY2VQYXRoLCByZXNvdXJjZVBhcmFtc10gPSB0aGlzLnJlc291cmNlLnBhdGhBbmRQYXJhbXMoXG4gICAgICBpbml0LnBhcnNlck9wdGlvbnMsXG4gICAgKTtcbiAgICB0aGlzLl9wYXRoID0gcmVzb3VyY2VQYXRoO1xuXG4gICAgLy8jcmVnaW9uIEhlYWRlcnNcbiAgICBjb25zdCBjdXN0b21IZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9ID0ge307XG4gICAgaWYgKHR5cGVvZiBpbml0LmV0YWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuYXBpLm9wdGlvbnMuZXRhZy5pZk1hdGNoICYmXG4gICAgICAgIFsnUFVUJywgJ1BBVENIJywgJ0RFTEVURSddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTFcbiAgICAgIClcbiAgICAgICAgY3VzdG9tSGVhZGVyc1tJRl9NQVRDSF9IRUFERVJdID0gaW5pdC5ldGFnO1xuICAgICAgZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuYXBpLm9wdGlvbnMuZXRhZy5pZk5vbmVNYXRjaCAmJlxuICAgICAgICBbJ0dFVCddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTFcbiAgICAgIClcbiAgICAgICAgY3VzdG9tSGVhZGVyc1tJRl9OT05FX01BVENIX0hFQURFUl0gPSBpbml0LmV0YWc7XG4gICAgfVxuXG4gICAgY29uc3QgYWNjZXB0ID0gW107XG4gICAgLy8gTWV0YWRhdGFcbiAgICBpZiAodGhpcy5hcGkub3B0aW9ucy5hY2NlcHQ/Lm1ldGFkYXRhICE9PSB1bmRlZmluZWQpXG4gICAgICBhY2NlcHQucHVzaChgb2RhdGEubWV0YWRhdGE9JHt0aGlzLmFwaS5vcHRpb25zLmFjY2VwdD8ubWV0YWRhdGF9YCk7XG4gICAgLy8gSUVFRTc1NFxuICAgIGlmICh0aGlzLmFwaS5vcHRpb25zLmFjY2VwdD8uaWVlZTc1NENvbXBhdGlibGUgIT09IHVuZGVmaW5lZClcbiAgICAgIGFjY2VwdC5wdXNoKFxuICAgICAgICBgSUVFRTc1NENvbXBhdGlibGU9JHt0aGlzLmFwaS5vcHRpb25zLmFjY2VwdD8uaWVlZTc1NENvbXBhdGlibGV9YCxcbiAgICAgICk7XG4gICAgLy8gc3RyZWFtaW5nXG4gICAgaWYgKHRoaXMuYXBpLm9wdGlvbnMuYWNjZXB0Py5zdHJlYW1pbmcgIT09IHVuZGVmaW5lZClcbiAgICAgIGFjY2VwdC5wdXNoKGBzdHJlYW1pbmc9JHt0aGlzLmFwaS5vcHRpb25zLmFjY2VwdD8uc3RyZWFtaW5nfWApO1xuICAgIC8vIEV4cG9uZW50aWFsRGVjaW1hbHNcbiAgICBpZiAodGhpcy5hcGkub3B0aW9ucy5hY2NlcHQ/LmV4cG9uZW50aWFsRGVjaW1hbHMgIT09IHVuZGVmaW5lZClcbiAgICAgIGFjY2VwdC5wdXNoKFxuICAgICAgICBgRXhwb25lbnRpYWxEZWNpbWFscz0ke3RoaXMuYXBpLm9wdGlvbnMuYWNjZXB0Py5leHBvbmVudGlhbERlY2ltYWxzfWAsXG4gICAgICApO1xuICAgIGlmIChhY2NlcHQubGVuZ3RoID4gMClcbiAgICAgIGN1c3RvbUhlYWRlcnNbQUNDRVBUXSA9IFtcbiAgICAgICAgYCR7QVBQTElDQVRJT05fSlNPTn07JHthY2NlcHQuam9pbignOycpfWAsXG4gICAgICAgIGAke1RFWFRfUExBSU59YCxcbiAgICAgICAgYCR7Q09OVEVOVF9UWVBFX0FOWX1gLFxuICAgICAgXTtcblxuICAgIGNvbnN0IHByZWZlciA9IFtdO1xuICAgIC8vIFJldHVyblxuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5yZXR1cm4gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgWydQT1NUJywgJ1BVVCcsICdQQVRDSCddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTFcbiAgICApXG4gICAgICBwcmVmZXIucHVzaChgcmV0dXJuPSR7dGhpcy5hcGkub3B0aW9ucy5wcmVmZXI/LnJldHVybn1gKTtcbiAgICAvLyBNYXhQYWdlU2l6ZVxuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5tYXhQYWdlU2l6ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBbJ0dFVCddLmluZGV4T2YodGhpcy5fbWV0aG9kKSAhPT0gLTFcbiAgICApXG4gICAgICBwcmVmZXIucHVzaChgb2RhdGEubWF4cGFnZXNpemU9JHt0aGlzLmFwaS5vcHRpb25zLnByZWZlcj8ubWF4UGFnZVNpemV9YCk7XG4gICAgLy8gQW5ub3RhdGlvbnNcbiAgICBpZiAoXG4gICAgICB0aGlzLmFwaS5vcHRpb25zLnByZWZlcj8uaW5jbHVkZUFubm90YXRpb25zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIFsnR0VUJ10uaW5kZXhPZih0aGlzLl9tZXRob2QpICE9PSAtMVxuICAgIClcbiAgICAgIHByZWZlci5wdXNoKFxuICAgICAgICBgb2RhdGEuaW5jbHVkZS1hbm5vdGF0aW9ucz0ke3RoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5pbmNsdWRlQW5ub3RhdGlvbnN9YCxcbiAgICAgICk7XG4gICAgLy8gT21pdCBOdWxsIFZhbHVlc1xuICAgIGlmIChcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMucHJlZmVyPy5vbWl0TnVsbFZhbHVlcyA9PT0gdHJ1ZSAmJlxuICAgICAgWydHRVQnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xXG4gICAgKVxuICAgICAgcHJlZmVyLnB1c2goYG9taXQtdmFsdWVzPW51bGxzYCk7XG4gICAgLy8gQ29udGludWUgb24gRXJyb3JcbiAgICBpZiAoXG4gICAgICB0aGlzLmFwaS5vcHRpb25zLnByZWZlcj8uY29udGludWVPbkVycm9yID09PSB0cnVlICYmXG4gICAgICBbJ1BPU1QnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xXG4gICAgKVxuICAgICAgcHJlZmVyLnB1c2goYG9kYXRhLmNvbnRpbnVlLW9uLWVycm9yYCk7XG4gICAgaWYgKHByZWZlci5sZW5ndGggPiAwKSBjdXN0b21IZWFkZXJzW1BSRUZFUl0gPSBwcmVmZXI7XG4gICAgdGhpcy5faGVhZGVycyA9IEh0dHAubWVyZ2VIdHRwSGVhZGVycyhcbiAgICAgIHRoaXMuYXBpLm9wdGlvbnMuaGVhZGVycyxcbiAgICAgIGN1c3RvbUhlYWRlcnMsXG4gICAgICBpbml0LmhlYWRlcnMgfHwge30sXG4gICAgKTtcbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiBQYXJhbXNcbiAgICBjb25zdCBjdXN0b21QYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gPSB7fTtcbiAgICBpZiAoXG4gICAgICBbJ1BPU1QnLCAnUFVUJywgJ1BBVENIJ10uaW5kZXhPZih0aGlzLl9tZXRob2QpICE9PSAtMSAmJlxuICAgICAgJyRzZWxlY3QnIGluIHJlc291cmNlUGFyYW1zXG4gICAgKSB7XG4gICAgICBjdXN0b21QYXJhbXNbJyRzZWxlY3QnXSA9IHJlc291cmNlUGFyYW1zWyckc2VsZWN0J107XG4gICAgfVxuICAgIGlmIChbJ1BPU1QnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xICYmICckZXhwYW5kJyBpbiByZXNvdXJjZVBhcmFtcykge1xuICAgICAgY3VzdG9tUGFyYW1zWyckZXhwYW5kJ10gPSByZXNvdXJjZVBhcmFtc1snJGV4cGFuZCddO1xuICAgIH1cbiAgICBpZiAoWydHRVQnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGN1c3RvbVBhcmFtcywgcmVzb3VyY2VQYXJhbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtcyA9IEh0dHAubWVyZ2VIdHRwUGFyYW1zKFxuICAgICAgdGhpcy5hcGkub3B0aW9ucy5wYXJhbXMsXG4gICAgICBjdXN0b21QYXJhbXMsXG4gICAgICBpbml0LnBhcmFtcyB8fCB7fSxcbiAgICApO1xuXG4gICAgdGhpcy5fcGFyYW1zID1cbiAgICAgIHRoaXMuX3Jlc3BvbnNlVHlwZSA9PT0gJ2VudGl0eSdcbiAgICAgICAgPyBIdHRwLndpdGhvdXRIdHRwUGFyYW1zKHBhcmFtcywgW1xuICAgICAgICAgICAgJyRmaWx0ZXInLFxuICAgICAgICAgICAgJyRvcmRlcmJ5JyxcbiAgICAgICAgICAgICckY291bnQnLFxuICAgICAgICAgICAgJyRza2lwJyxcbiAgICAgICAgICAgICckdG9wJyxcbiAgICAgICAgICBdKVxuICAgICAgICA6IHBhcmFtcztcbiAgICAvLyNlbmRyZWdpb25cbiAgfVxuXG4gIHN0YXRpYyBmYWN0b3J5KFxuICAgIGFwaTogT0RhdGFBcGksXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8YW55PixcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5PzogYW55O1xuICAgICAgZXRhZz86IHN0cmluZztcbiAgICAgIHJlc3BvbnNlVHlwZT86XG4gICAgICAgIHwgJ2FycmF5YnVmZmVyJ1xuICAgICAgICB8ICdibG9iJ1xuICAgICAgICB8ICdqc29uJ1xuICAgICAgICB8ICd0ZXh0J1xuICAgICAgICB8ICd2YWx1ZSdcbiAgICAgICAgfCAncHJvcGVydHknXG4gICAgICAgIHwgJ2VudGl0eSdcbiAgICAgICAgfCAnZW50aXRpZXMnO1xuICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycgfCAncmVzcG9uc2UnO1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH0sXG4gICkge1xuICAgIGNvbnN0IGFwaU9wdGlvbnMgPSBhcGkub3B0aW9ucztcbiAgICBsZXQgcGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG4gICAgaWYgKG9wdGlvbnMud2l0aENvdW50KSB7XG4gICAgICBwYXJhbXMgPSBIdHRwLm1lcmdlSHR0cFBhcmFtcyhwYXJhbXMsIGFwaU9wdGlvbnMuaGVscGVyLmNvdW50UGFyYW0oKSk7XG4gICAgfVxuXG4gICAgbGV0IGV0YWcgPSBvcHRpb25zLmV0YWc7XG4gICAgaWYgKGV0YWcgPT09IHVuZGVmaW5lZCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KG9wdGlvbnMuYm9keSkpIHtcbiAgICAgIGV0YWcgPSBhcGlPcHRpb25zLmhlbHBlci5ldGFnKG9wdGlvbnMuYm9keSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPRGF0YVJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgZXRhZyxcbiAgICAgIGFwaSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgcGFyYW1zLFxuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgYm9keTogb3B0aW9ucy5ib2R5LFxuICAgICAgb2JzZXJ2ZTogb3B0aW9ucy5vYnNlcnZlLFxuICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzLFxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IG9wdGlvbnMucmVwb3J0UHJvZ3Jlc3MsXG4gICAgICByZXNwb25zZVR5cGU6IG9wdGlvbnMucmVzcG9uc2VUeXBlLFxuICAgICAgZmV0Y2hQb2xpY3k6IG9wdGlvbnMuZmV0Y2hQb2xpY3ksXG4gICAgICBwYXJzZXJPcHRpb25zOiBvcHRpb25zLnBhcnNlck9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IG9wdGlvbnMud2l0aENyZWRlbnRpYWxzLFxuICAgICAgYm9keVF1ZXJ5T3B0aW9uczogb3B0aW9ucy5ib2R5UXVlcnlPcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHJlc3BvbnNlVHlwZSgpOiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VUeXBlICYmXG4gICAgICBbJ3Byb3BlcnR5JywgJ2VudGl0eScsICdlbnRpdGllcyddLmluZGV4T2YodGhpcy5fcmVzcG9uc2VUeXBlKSAhPT0gLTFcbiAgICAgID8gJ2pzb24nXG4gICAgICA6IHRoaXMuX3Jlc3BvbnNlVHlwZSA9PT0gJ3ZhbHVlJ1xuICAgICAgICA/ICd0ZXh0J1xuICAgICAgICA6IDwnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnPnRoaXMuX3Jlc3BvbnNlVHlwZTtcbiAgfVxuXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmlzUXVlcnlCb2R5KCkgPyBgJHt0aGlzLl9wYXRofS8keyRRVUVSWX1gIDogdGhpcy5fcGF0aDtcbiAgfVxuXG4gIGdldCBtZXRob2QoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNRdWVyeUJvZHkoKSA/ICdQT1NUJyA6IHRoaXMuX21ldGhvZDtcbiAgfVxuXG4gIGdldCBib2R5KCkge1xuICAgIHJldHVybiB0aGlzLmlzUXVlcnlCb2R5KClcbiAgICAgID8gSHR0cC5zcGxpdEh0dHBQYXJhbXMoXG4gICAgICAgICAgdGhpcy5fcGFyYW1zLFxuICAgICAgICAgIHRoaXMuYm9keVF1ZXJ5T3B0aW9ucy5tYXAoKG5hbWUpID0+IGAkJHtuYW1lfWApLFxuICAgICAgICApWzFdLnRvU3RyaW5nKClcbiAgICAgIDogdGhpcy5fYm9keTtcbiAgfVxuXG4gIGdldCBwYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNRdWVyeUJvZHkoKVxuICAgICAgPyBIdHRwLnNwbGl0SHR0cFBhcmFtcyhcbiAgICAgICAgICB0aGlzLl9wYXJhbXMsXG4gICAgICAgICAgdGhpcy5ib2R5UXVlcnlPcHRpb25zLm1hcCgobmFtZSkgPT4gYCQke25hbWV9YCksXG4gICAgICAgIClbMF1cbiAgICAgIDogdGhpcy5fcGFyYW1zO1xuICB9XG5cbiAgZ2V0IGhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNRdWVyeUJvZHkoKVxuICAgICAgPyBIdHRwLm1lcmdlSHR0cEhlYWRlcnModGhpcy5faGVhZGVycywgeyBDT05URU5UX1RZUEU6IFRFWFRfUExBSU4gfSlcbiAgICAgIDogdGhpcy5faGVhZGVycztcbiAgfVxuXG4gIGdldCBwYXRoV2l0aFBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMua2V5cygpLmxlbmd0aCA+IDBcbiAgICAgID8gYCR7dGhpcy5wYXRofT8ke3RoaXMucGFyYW1zfWBcbiAgICAgIDogdGhpcy5wYXRoO1xuICB9XG5cbiAgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5hcGkuc2VydmljZVJvb3RVcmx9JHt0aGlzLnBhdGh9YDtcbiAgfVxuXG4gIGdldCB1cmxXaXRoUGFyYW1zKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmFwaS5zZXJ2aWNlUm9vdFVybH0ke3RoaXMucGF0aFdpdGhQYXJhbXN9YDtcbiAgfVxuXG4gIGdldCBjYWNoZUtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1zLmtleXMoKS5sZW5ndGggPiAwXG4gICAgICA/IGAke3RoaXMuX3BhdGh9PyR7dGhpcy5fcGFyYW1zfWBcbiAgICAgIDogdGhpcy5fcGF0aDtcbiAgfVxuXG4gIGlzUXVlcnlCb2R5KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9tZXRob2QgPT09ICdHRVQnICYmXG4gICAgICB0aGlzLmJvZHlRdWVyeU9wdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgdGhpcy5ib2R5UXVlcnlPcHRpb25zLnNvbWUoKG5hbWUpID0+IHRoaXMuX3BhcmFtcy5oYXMoYCQke25hbWV9YCkpXG4gICAgKTtcbiAgfVxuXG4gIGlzQmF0Y2goKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aC5lbmRzV2l0aCgkQkFUQ0gpO1xuICB9XG5cbiAgaXNGZXRjaCgpIHtcbiAgICByZXR1cm4gWydHRVQnXS5pbmRleE9mKHRoaXMuX21ldGhvZCkgIT09IC0xO1xuICB9XG5cbiAgaXNNdXRhdGUoKSB7XG4gICAgcmV0dXJuIFsnUFVUJywgJ1BBVENIJywgJ1BPU1QnLCAnREVMRVRFJ10uaW5kZXhPZih0aGlzLl9tZXRob2QpICE9PSAtMTtcbiAgfVxufVxuIl19
|