angular-odata 0.121.0 → 0.123.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/client.mjs +253 -0
- package/esm2022/lib/models/collection.mjs +862 -0
- package/esm2022/lib/models/model.mjs +519 -0
- package/esm2022/lib/models/options.mjs +1110 -0
- package/esm2022/lib/module.mjs +43 -0
- package/esm2022/lib/resources/query/builder.mjs +619 -0
- package/{esm2020 → esm2022}/lib/resources/query/expressions/base.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/query/expressions/compute.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/query/expressions/count.mjs +1 -1
- package/esm2022/lib/resources/query/expressions/expand.mjs +119 -0
- package/esm2022/lib/resources/query/expressions/filter.mjs +161 -0
- package/{esm2020 → esm2022}/lib/resources/query/expressions/orderby.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/query/expressions/search.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/query/expressions/select.mjs +1 -1
- package/esm2022/lib/resources/query/expressions/syntax.mjs +409 -0
- package/{esm2020 → esm2022}/lib/resources/query/handlers.mjs +1 -1
- package/esm2022/lib/resources/query/options.mjs +115 -0
- package/esm2022/lib/resources/responses/metadata.mjs +548 -0
- package/esm2022/lib/schema/parsers/edm.mjs +99 -0
- package/{esm2020 → esm2022}/lib/schema/parsers/enum-type.mjs +2 -2
- package/esm2022/lib/services/factory.mjs +34 -0
- package/esm2022/lib/utils/enums.mjs +61 -0
- package/{fesm2020 → fesm2022}/angular-odata.mjs +643 -614
- package/fesm2022/angular-odata.mjs.map +1 -0
- package/lib/helper.d.ts +1 -1
- package/lib/models/model.d.ts +7 -16
- package/lib/models/options.d.ts +51 -33
- package/lib/resources/path/segments.d.ts +1 -1
- package/lib/resources/query/builder.d.ts +21 -20
- package/lib/resources/query/expressions/base.d.ts +3 -3
- package/lib/resources/query/expressions/compute.d.ts +2 -2
- package/lib/resources/query/expressions/count.d.ts +3 -3
- package/lib/resources/query/expressions/expand.d.ts +13 -12
- package/lib/resources/query/expressions/filter.d.ts +15 -15
- package/lib/resources/query/expressions/orderby.d.ts +3 -3
- package/lib/resources/query/expressions/search.d.ts +3 -3
- package/lib/resources/query/expressions/select.d.ts +2 -2
- package/lib/resources/query/expressions/syntax.d.ts +59 -58
- package/lib/resources/query/handlers.d.ts +2 -2
- package/lib/resources/query/options.d.ts +1 -1
- package/lib/resources/resource.d.ts +1 -1
- package/lib/resources/responses/types.d.ts +3 -3
- package/lib/resources/types/options.d.ts +7 -7
- package/lib/schema/parsers/structured-type.d.ts +5 -5
- package/lib/types.d.ts +15 -15
- package/lib/utils/durations.d.ts +1 -1
- package/lib/utils/enums.d.ts +3 -0
- package/package.json +9 -15
- package/esm2020/lib/client.mjs +0 -252
- package/esm2020/lib/models/collection.mjs +0 -857
- package/esm2020/lib/models/model.mjs +0 -518
- package/esm2020/lib/models/options.mjs +0 -1130
- package/esm2020/lib/module.mjs +0 -42
- package/esm2020/lib/resources/query/builder.mjs +0 -588
- package/esm2020/lib/resources/query/expressions/expand.mjs +0 -115
- package/esm2020/lib/resources/query/expressions/filter.mjs +0 -161
- package/esm2020/lib/resources/query/expressions/syntax.mjs +0 -409
- package/esm2020/lib/resources/query/options.mjs +0 -115
- package/esm2020/lib/resources/responses/metadata.mjs +0 -547
- package/esm2020/lib/schema/parsers/edm.mjs +0 -104
- package/esm2020/lib/services/factory.mjs +0 -33
- package/esm2020/lib/utils/enums.mjs +0 -45
- package/fesm2015/angular-odata.mjs +0 -11841
- package/fesm2015/angular-odata.mjs.map +0 -1
- package/fesm2020/angular-odata.mjs.map +0 -1
- /package/{esm2020 → esm2022}/angular-odata.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/cache/cache.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/cache/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/cache/memory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/cache/storage.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helper.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/loaders.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/path/handlers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/path/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/path/segments.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/query/expressions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/query/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/request.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/resource.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/annotations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-annotation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-container.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-set.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-enum-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-function-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-reference.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-schema.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-singleton.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structural-property.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structured-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-type-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/response.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/batch.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/count.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/entity-set.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/entity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/media.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/metadata.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/navigation-property.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/property.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/reference.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/singleton.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/value.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/annotation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/callable.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/element.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/entity-container.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/entity-set.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/enum-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/parsers/callable.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/parsers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/parsers/structured-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/schema.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/structured-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/entity-set.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/entity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/singleton.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/settings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/arraybuffers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/arrays.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/dates.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/durations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/http.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/objects.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/odata.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/strings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/urls.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { QueryOption } from '../../../types';
|
|
2
|
-
import { Objects, Types } from '../../../utils';
|
|
3
|
-
import { Expression } from './base';
|
|
4
|
-
import { FilterExpression } from './filter';
|
|
5
|
-
import { OrderByExpression } from './orderby';
|
|
6
|
-
import { SearchExpression } from './search';
|
|
7
|
-
import { SelectExpression } from './select';
|
|
8
|
-
import { Field, render } from './syntax';
|
|
9
|
-
export class ExpandField {
|
|
10
|
-
constructor(field, values = {}) {
|
|
11
|
-
this.field = field;
|
|
12
|
-
this.values = values;
|
|
13
|
-
}
|
|
14
|
-
get [Symbol.toStringTag]() {
|
|
15
|
-
return 'ExpandField';
|
|
16
|
-
}
|
|
17
|
-
toJSON() {
|
|
18
|
-
return {
|
|
19
|
-
field: this.field.toJSON(),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
render({ aliases, escape, prefix, }) {
|
|
23
|
-
const params = [
|
|
24
|
-
QueryOption.select,
|
|
25
|
-
QueryOption.expand,
|
|
26
|
-
QueryOption.filter,
|
|
27
|
-
QueryOption.search,
|
|
28
|
-
QueryOption.orderBy,
|
|
29
|
-
QueryOption.skip,
|
|
30
|
-
QueryOption.top,
|
|
31
|
-
QueryOption.levels,
|
|
32
|
-
]
|
|
33
|
-
.filter((key) => !Types.isEmpty(this.values[key]))
|
|
34
|
-
.reduce((acc, key) => {
|
|
35
|
-
let value = this.values[key];
|
|
36
|
-
if (Types.rawType(value).endsWith('Expression')) {
|
|
37
|
-
value = value.render({ aliases, prefix, escape });
|
|
38
|
-
}
|
|
39
|
-
return Object.assign(acc, { [key]: value });
|
|
40
|
-
}, {});
|
|
41
|
-
let expand = `${render(this.field, { aliases, escape, prefix })}`;
|
|
42
|
-
if (!Types.isEmpty(params)) {
|
|
43
|
-
expand = `${expand}(${Object.keys(params)
|
|
44
|
-
.map((key) => `$${key}=${params[key]}`)
|
|
45
|
-
.join(';')})`;
|
|
46
|
-
}
|
|
47
|
-
return expand;
|
|
48
|
-
}
|
|
49
|
-
clone() {
|
|
50
|
-
const values = Object.keys(this.values).reduce((acc, key) => Object.assign(acc, { [key]: Objects.clone(this.values[key]) }), {});
|
|
51
|
-
return new ExpandField(this.field.clone(), values);
|
|
52
|
-
}
|
|
53
|
-
select(opts) {
|
|
54
|
-
return this.option(QueryOption.select, SelectExpression.select(opts, this.values[QueryOption.select]));
|
|
55
|
-
}
|
|
56
|
-
expand(opts) {
|
|
57
|
-
return this.option(QueryOption.expand, ExpandExpression.expand(opts, this.values[QueryOption.expand]));
|
|
58
|
-
}
|
|
59
|
-
filter(opts) {
|
|
60
|
-
return this.option(QueryOption.filter, FilterExpression.filter(opts, this.values[QueryOption.filter]));
|
|
61
|
-
}
|
|
62
|
-
search(opts) {
|
|
63
|
-
return this.option(QueryOption.search, SearchExpression.search(opts, this.values[QueryOption.search]));
|
|
64
|
-
}
|
|
65
|
-
orderBy(opts) {
|
|
66
|
-
return this.option(QueryOption.orderBy, OrderByExpression.orderBy(opts, this.values[QueryOption.orderBy]));
|
|
67
|
-
}
|
|
68
|
-
skip(n) {
|
|
69
|
-
return this.option(QueryOption.skip, n);
|
|
70
|
-
}
|
|
71
|
-
top(n) {
|
|
72
|
-
return this.option(QueryOption.top, n);
|
|
73
|
-
}
|
|
74
|
-
levels(n) {
|
|
75
|
-
return this.option(QueryOption.levels, n);
|
|
76
|
-
}
|
|
77
|
-
// Option Handler
|
|
78
|
-
option(name, opts) {
|
|
79
|
-
if (opts !== undefined)
|
|
80
|
-
this.values[name] = opts;
|
|
81
|
-
return this.values[name];
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
export class ExpandExpression extends Expression {
|
|
85
|
-
constructor({ children, } = {}) {
|
|
86
|
-
super({ children });
|
|
87
|
-
}
|
|
88
|
-
static expand(opts, current) {
|
|
89
|
-
return opts({
|
|
90
|
-
t: Field.factory(),
|
|
91
|
-
e: () => new ExpandExpression(),
|
|
92
|
-
}, current);
|
|
93
|
-
}
|
|
94
|
-
render({ aliases, escape, prefix, } = {}) {
|
|
95
|
-
return this._children
|
|
96
|
-
.map((n) => n.render({ aliases, escape, prefix }))
|
|
97
|
-
.join(',');
|
|
98
|
-
}
|
|
99
|
-
clone() {
|
|
100
|
-
return new ExpandExpression({
|
|
101
|
-
children: this._children.map((c) => c.clone()),
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
_add(node) {
|
|
105
|
-
this._children.push(node);
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
field(field, opts) {
|
|
109
|
-
let node = new ExpandField(field);
|
|
110
|
-
if (opts !== undefined)
|
|
111
|
-
opts(node);
|
|
112
|
-
return this._add(node);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9leHBhbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLE1BQU0sVUFBVSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUEyQixNQUFNLFVBQVUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLE1BQU0sVUFBVSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFjLE1BQU0sVUFBVSxDQUFDO0FBRXJELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ1ksS0FBVSxFQUNaLFNBQWtDLEVBQUU7UUFEbEMsVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNaLFdBQU0sR0FBTixNQUFNLENBQThCO0lBQzNDLENBQUM7SUFFSixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sR0FLUDtRQUNDLE1BQU0sTUFBTSxHQUE4QjtZQUN4QyxXQUFXLENBQUMsTUFBTTtZ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QUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5T3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JqZWN0cywgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3VzdG9tVHlwZSB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBGaWx0ZXJFeHByZXNzaW9uLCBGaWx0ZXJFeHByZXNzaW9uQnVpbGRlciB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IE9yZGVyQnlFeHByZXNzaW9uLCBPcmRlckJ5RXhwcmVzc2lvbkJ1aWxkZXIgfSBmcm9tICcuL29yZGVyYnknO1xuaW1wb3J0IHsgU2VhcmNoRXhwcmVzc2lvbiwgU2VhcmNoRXhwcmVzc2lvbkJ1aWxkZXIgfSBmcm9tICcuL3NlYXJjaCc7XG5pbXBvcnQgeyBTZWxlY3RFeHByZXNzaW9uLCBTZWxlY3RFeHByZXNzaW9uQnVpbGRlciB9IGZyb20gJy4vc2VsZWN0JztcbmltcG9ydCB7IEZpZWxkLCByZW5kZXIsIFJlbmRlcmFibGUgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBjbGFzcyBFeHBhbmRGaWVsZDxUPiBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZmllbGQ6IGFueSxcbiAgICBwcml2YXRlIHZhbHVlczogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7fVxuICApIHt9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnRXhwYW5kRmllbGQnO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZDogdGhpcy5maWVsZC50b0pTT04oKSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IFtcbiAgICAgIFF1ZXJ5T3B0aW9uLnNlbGVjdCxcbiAgICAgIFF1ZXJ5T3B0aW9uLmV4cGFuZCxcbiAgICAgIFF1ZXJ5T3B0aW9uLmZpbHRlcixcbiAgICAgIFF1ZXJ5T3B0aW9uLnNlYXJjaCxcbiAgICAgIFF1ZXJ5T3B0aW9uLm9yZGVyQnksXG4gICAgICBRdWVyeU9wdGlvbi5za2lwLFxuICAgICAgUXVlcnlPcHRpb24udG9wLFxuICAgICAgUXVlcnlPcHRpb24ubGV2ZWxzLFxuICAgIF1cbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gIVR5cGVzLmlzRW1wdHkodGhpcy52YWx1ZXNba2V5XSkpXG4gICAgICAucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBsZXQgdmFsdWU6IGFueSA9IHRoaXMudmFsdWVzW2tleV07XG4gICAgICAgIGlmIChUeXBlcy5yYXdUeXBlKHZhbHVlKS5lbmRzV2l0aCgnRXhwcmVzc2lvbicpKSB7XG4gICAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgRXhwcmVzc2lvbjxUPikucmVuZGVyKHsgYWxpYXNlcywgcHJlZml4LCBlc2NhcGUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjLCB7IFtrZXldOiB2YWx1ZSB9KTtcbiAgICAgIH0sIHt9KTtcbiAgICBsZXQgZXhwYW5kID0gYCR7cmVuZGVyKHRoaXMuZmllbGQsIHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXggfSl9YDtcbiAgICBpZiAoIVR5cGVzLmlzRW1wdHkocGFyYW1zKSkge1xuICAgICAgZXhwYW5kID0gYCR7ZXhwYW5kfSgke09iamVjdC5rZXlzKHBhcmFtcylcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBgJCR7a2V5fT0ke3BhcmFtc1trZXldfWApXG4gICAgICAgIC5qb2luKCc7Jyl9KWA7XG4gICAgfVxuICAgIHJldHVybiBleHBhbmQ7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhbHVlcykucmVkdWNlKFxuICAgICAgKGFjYywga2V5KSA9PlxuICAgICAgICBPYmplY3QuYXNzaWduKGFjYywgeyBba2V5XTogT2JqZWN0cy5jbG9uZSh0aGlzLnZhbHVlc1trZXldKSB9KSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4gbmV3IEV4cGFuZEZpZWxkKHRoaXMuZmllbGQuY2xvbmUoKSwgdmFsdWVzKTtcbiAgfVxuXG4gIHNlbGVjdDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBTZWxlY3RFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBTZWxlY3RFeHByZXNzaW9uPFQ+XG4gICAgKSA9PiBTZWxlY3RFeHByZXNzaW9uPFQ+XG4gICk6IFNlbGVjdEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbihcbiAgICAgIFF1ZXJ5T3B0aW9uLnNlbGVjdCxcbiAgICAgIFNlbGVjdEV4cHJlc3Npb24uc2VsZWN0PFQ+KG9wdHMsIHRoaXMudmFsdWVzW1F1ZXJ5T3B0aW9uLnNlbGVjdF0pXG4gICAgKTtcbiAgfVxuXG4gIGV4cGFuZDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBFeHBhbmRFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBFeHBhbmRFeHByZXNzaW9uPFQ+XG4gICAgKSA9PiBFeHBhbmRFeHByZXNzaW9uPFQ+XG4gICkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbihcbiAgICAgIFF1ZXJ5T3B0aW9uLmV4cGFuZCxcbiAgICAgIEV4cGFuZEV4cHJlc3Npb24uZXhwYW5kPFQ+KG9wdHMsIHRoaXMudmFsdWVzW1F1ZXJ5T3B0aW9uLmV4cGFuZF0pXG4gICAgKTtcbiAgfVxuXG4gIGZpbHRlcjxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBGaWx0ZXJFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBGaWx0ZXJFeHByZXNzaW9uPFQ+XG4gICAgKSA9PiBGaWx0ZXJFeHByZXNzaW9uPFQ+XG4gICkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbihcbiAgICAgIFF1ZXJ5T3B0aW9uLmZpbHRlcixcbiAgICAgIEZpbHRlckV4cHJlc3Npb24uZmlsdGVyPFQ+KG9wdHMsIHRoaXMudmFsdWVzW1F1ZXJ5T3B0aW9uLmZpbHRlcl0pXG4gICAgKTtcbiAgfVxuXG4gIHNlYXJjaDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvcHRzOiAoYnVpbGRlcjogU2VhcmNoRXhwcmVzc2lvbkJ1aWxkZXI8VD4pID0+IFNlYXJjaEV4cHJlc3Npb248VD5cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uKFxuICAgICAgUXVlcnlPcHRpb24uc2VhcmNoLFxuICAgICAgU2VhcmNoRXhwcmVzc2lvbi5zZWFyY2g8VD4ob3B0cywgdGhpcy52YWx1ZXNbUXVlcnlPcHRpb24uc2VhcmNoXSlcbiAgICApO1xuICB9XG5cbiAgb3JkZXJCeTxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBPcmRlckJ5RXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogT3JkZXJCeUV4cHJlc3Npb248VD5cbiAgICApID0+IE9yZGVyQnlFeHByZXNzaW9uPFQ+XG4gICkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbihcbiAgICAgIFF1ZXJ5T3B0aW9uLm9yZGVyQnksXG4gICAgICBPcmRlckJ5RXhwcmVzc2lvbi5vcmRlckJ5PFQ+KG9wdHMsIHRoaXMudmFsdWVzW1F1ZXJ5T3B0aW9uLm9yZGVyQnldKVxuICAgICk7XG4gIH1cblxuICBza2lwKG46IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbjxudW1iZXI+KFF1ZXJ5T3B0aW9uLnNraXAsIG4pO1xuICB9XG5cbiAgdG9wKG46IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbjxudW1iZXI+KFF1ZXJ5T3B0aW9uLnRvcCwgbik7XG4gIH1cblxuICBsZXZlbHMobjogbnVtYmVyIHwgJ21heCcpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb248bnVtYmVyIHwgJ21heCc+KFF1ZXJ5T3B0aW9uLmxldmVscywgbik7XG4gIH1cblxuICAvLyBPcHRpb24gSGFuZGxlclxuICBwcml2YXRlIG9wdGlvbjxPPihuYW1lOiBRdWVyeU9wdGlvbiwgb3B0cz86IE8pIHtcbiAgICBpZiAob3B0cyAhPT0gdW5kZWZpbmVkKSB0aGlzLnZhbHVlc1tuYW1lXSA9IG9wdHM7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzW25hbWVdO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEV4cGFuZEV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICB0OiBSZWFkb25seTxSZXF1aXJlZDxUPj47XG4gIGU6ICgpID0+IEV4cGFuZEV4cHJlc3Npb248VD47XG59O1xuZXhwb3J0IGNsYXNzIEV4cGFuZEV4cHJlc3Npb248VD4gZXh0ZW5kcyBFeHByZXNzaW9uPFQ+IHtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gIH1cblxuICBzdGF0aWMgZXhwYW5kPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIG9wdHM6IChcbiAgICAgIGJ1aWxkZXI6IEV4cGFuZEV4cHJlc3Npb25CdWlsZGVyPFQ+LFxuICAgICAgY3VycmVudD86IEV4cGFuZEV4cHJlc3Npb248VD5cbiAgICApID0+IEV4cGFuZEV4cHJlc3Npb248VD4sXG4gICAgY3VycmVudD86IEV4cGFuZEV4cHJlc3Npb248VD5cbiAgKTogRXhwYW5kRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIG9wdHMoXG4gICAgICB7XG4gICAgICAgIHQ6IEZpZWxkLmZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8VD4+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgRXhwYW5kRXhwcmVzc2lvbjxUPigpLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRcbiAgICApIGFzIEV4cGFuZEV4cHJlc3Npb248VD47XG4gIH1cblxuICByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgfToge1xuICAgIGFsaWFzZXM/OiBRdWVyeUN1c3RvbVR5cGVbXSB8IHVuZGVmaW5lZDtcbiAgICBlc2NhcGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHByZWZpeD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXggfSkpXG4gICAgICAuam9pbignLCcpO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBFeHBhbmRFeHByZXNzaW9uKHtcbiAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbi5tYXAoKGMpID0+IGMuY2xvbmUoKSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IEV4cGFuZEV4cHJlc3Npb248VD4ge1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmaWVsZDxGPihmaWVsZDogRiwgb3B0cz86IChlOiBFeHBhbmRGaWVsZDxGPikgPT4gdm9pZCk6IEV4cGFuZEV4cHJlc3Npb248Rj4ge1xuICAgIGxldCBub2RlID0gbmV3IEV4cGFuZEZpZWxkPEY+KGZpZWxkKTtcbiAgICBpZiAob3B0cyAhPT0gdW5kZWZpbmVkKSBvcHRzKG5vZGUpO1xuICAgIHJldHVybiB0aGlzLl9hZGQobm9kZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { Expression } from './base';
|
|
2
|
-
import { CountExpression } from './count';
|
|
3
|
-
import { Field, functions, Grouping, operators, syntax, } from './syntax';
|
|
4
|
-
export class FilterExpression extends Expression {
|
|
5
|
-
constructor({ children, connector, negated, } = {}) {
|
|
6
|
-
super({ children });
|
|
7
|
-
this._connector = connector || 'and';
|
|
8
|
-
this._negated = negated || false;
|
|
9
|
-
}
|
|
10
|
-
static filter(opts, current) {
|
|
11
|
-
return opts({
|
|
12
|
-
t: Field.factory(),
|
|
13
|
-
e: (connector = 'and') => new FilterExpression({ connector }),
|
|
14
|
-
o: operators,
|
|
15
|
-
f: functions,
|
|
16
|
-
}, current);
|
|
17
|
-
}
|
|
18
|
-
toJSON() {
|
|
19
|
-
return {
|
|
20
|
-
children: this._children.map((c) => c.toJSON()),
|
|
21
|
-
connector: this._connector,
|
|
22
|
-
negated: this._negated,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
connector() {
|
|
26
|
-
return this._connector;
|
|
27
|
-
}
|
|
28
|
-
negated() {
|
|
29
|
-
return this._negated;
|
|
30
|
-
}
|
|
31
|
-
render({ aliases, escape, prefix, } = {}) {
|
|
32
|
-
let content = this._children
|
|
33
|
-
.map((n) => n.render({ aliases, escape, prefix }))
|
|
34
|
-
.join(` ${this._connector} `);
|
|
35
|
-
if (this._negated) {
|
|
36
|
-
content = `not (${content})`;
|
|
37
|
-
}
|
|
38
|
-
return content;
|
|
39
|
-
}
|
|
40
|
-
clone() {
|
|
41
|
-
return new FilterExpression({
|
|
42
|
-
children: this._children.map((c) => c.clone()),
|
|
43
|
-
connector: this._connector,
|
|
44
|
-
negated: this._negated,
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
_add(node, connector) {
|
|
48
|
-
if (connector !== undefined && this._connector !== connector) {
|
|
49
|
-
let children = [];
|
|
50
|
-
if (this._children.length > 0) {
|
|
51
|
-
if (this._children.length === 1) {
|
|
52
|
-
children = [...this._children];
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
let exp = new FilterExpression({
|
|
56
|
-
children: this._children,
|
|
57
|
-
connector: this._connector,
|
|
58
|
-
negated: this._negated,
|
|
59
|
-
});
|
|
60
|
-
if (exp.length() > 1) {
|
|
61
|
-
children.push(new Grouping(exp));
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
children.push(exp);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (node instanceof FilterExpression &&
|
|
69
|
-
(node.connector() === connector || node.length() === 1)) {
|
|
70
|
-
children = [...children, ...node.children()];
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
children.push(new Grouping(node));
|
|
74
|
-
}
|
|
75
|
-
this._connector = connector;
|
|
76
|
-
this._children = children;
|
|
77
|
-
}
|
|
78
|
-
else if (node instanceof FilterExpression &&
|
|
79
|
-
!node.negated() &&
|
|
80
|
-
(node.connector() === connector || node.length() === 1)) {
|
|
81
|
-
this._children = [...this._children, ...node.children()];
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
this._children.push(node instanceof FilterExpression && !node.negated()
|
|
85
|
-
? new Grouping(node)
|
|
86
|
-
: node);
|
|
87
|
-
}
|
|
88
|
-
return this;
|
|
89
|
-
}
|
|
90
|
-
or(exp) {
|
|
91
|
-
return this._add(exp, 'or');
|
|
92
|
-
}
|
|
93
|
-
and(exp) {
|
|
94
|
-
return this._add(exp, 'and');
|
|
95
|
-
}
|
|
96
|
-
not(exp) {
|
|
97
|
-
const notExp = new FilterExpression({
|
|
98
|
-
children: exp.children(),
|
|
99
|
-
connector: exp.connector(),
|
|
100
|
-
negated: true,
|
|
101
|
-
});
|
|
102
|
-
return this._add(notExp, this._connector);
|
|
103
|
-
}
|
|
104
|
-
eq(left, right, normalize) {
|
|
105
|
-
return this._add(operators.eq(left, right, normalize));
|
|
106
|
-
}
|
|
107
|
-
ne(left, right, normalize) {
|
|
108
|
-
return this._add(operators.ne(left, right, normalize));
|
|
109
|
-
}
|
|
110
|
-
gt(left, right, normalize) {
|
|
111
|
-
return this._add(operators.gt(left, right, normalize));
|
|
112
|
-
}
|
|
113
|
-
ge(left, right, normalize) {
|
|
114
|
-
return this._add(operators.ge(left, right, normalize));
|
|
115
|
-
}
|
|
116
|
-
lt(left, right, normalize) {
|
|
117
|
-
return this._add(operators.lt(left, right, normalize));
|
|
118
|
-
}
|
|
119
|
-
le(left, right, normalize) {
|
|
120
|
-
return this._add(operators.le(left, right, normalize));
|
|
121
|
-
}
|
|
122
|
-
has(left, right, normalize) {
|
|
123
|
-
return this._add(operators.has(left, right, normalize));
|
|
124
|
-
}
|
|
125
|
-
in(left, right, normalize) {
|
|
126
|
-
return this._add(operators.in(left, right, normalize));
|
|
127
|
-
}
|
|
128
|
-
contains(left, right, normalize) {
|
|
129
|
-
return this._add(functions.contains(left, right, normalize));
|
|
130
|
-
}
|
|
131
|
-
startsWith(left, right, normalize) {
|
|
132
|
-
return this._add(functions.startsWith(left, right, normalize));
|
|
133
|
-
}
|
|
134
|
-
endsWith(left, right, normalize) {
|
|
135
|
-
return this._add(functions.endsWith(left, right, normalize));
|
|
136
|
-
}
|
|
137
|
-
any(left, opts, alias) {
|
|
138
|
-
let exp = undefined;
|
|
139
|
-
if (opts !== undefined) {
|
|
140
|
-
exp = opts({
|
|
141
|
-
t: Field.factory(),
|
|
142
|
-
e: (connector = 'and') => new FilterExpression({ connector }),
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return this._add(syntax.any(left, exp, alias));
|
|
146
|
-
}
|
|
147
|
-
all(left, opts, alias) {
|
|
148
|
-
const exp = opts({
|
|
149
|
-
t: Field.factory(),
|
|
150
|
-
e: (connector = 'and') => new FilterExpression({ connector }),
|
|
151
|
-
});
|
|
152
|
-
return this._add(syntax.all(left, exp, alias));
|
|
153
|
-
}
|
|
154
|
-
count(left, opts) {
|
|
155
|
-
return this._add(new CountExpression().field(left, opts));
|
|
156
|
-
}
|
|
157
|
-
isof(left, type) {
|
|
158
|
-
return this._add(syntax.isof(left, type));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ3RELE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFHUixTQUFTLEVBRVQsTUFBTSxHQUNQLE1BQU0sVUFBVSxDQUFDO0FBVWxCLE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBR3BELFlBQVksRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULE9BQU8sTUFLTCxFQUFFO1FBQ0osS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLElBQUksS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUNYLElBR3dCLEVBQ3hCLE9BQTZCO1FBRTdCLE9BQU8sSUFBSSxDQUNUO1lBQ0UsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQXlCO1lBQ3pDLENBQUMsRUFBRSxDQUFDLFlBQTZCLEtBQUssRUFBRSxFQUFFLENBQ3hDLElBQUksZ0JBQWdCLENBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN4QyxDQUFDLEVBQUUsU0FBOEI7WUFDakMsQ0FBQyxFQUFFLFNBQThCO1NBQ2xDLEVBQ0QsT0FBTyxDQUNlLENBQUM7SUFDM0IsQ0FBQztJQUVRLE1BQU07UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMs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QUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEdBQUcsQ0FDRCxJQUFTLEVBQ1QsSUFHeUIsRUFDekIsS0FBYztRQUVkLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQztZQUNmLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUF5QjtZQUN6QyxDQUFDLEVBQUUsQ0FBQyxZQUE2QixLQUFLLEVBQUUsRUFBRSxDQUN4QyxJQUFJLGdCQUFnQixDQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDekMsQ0FBd0IsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FDSCxJQUFTLEVBQ1QsSUFBNEQ7UUFFNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxFQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFJRCxJQUFJLENBQUMsSUFBUyxFQUFFLElBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQ291bnRFeHByZXNzaW9uLCBDb3VudEZpZWxkIH0gZnJvbSAnLi9jb3VudCc7XG5pbXBvcnQge1xuICBGaWVsZCxcbiAgZnVuY3Rpb25zLFxuICBHcm91cGluZyxcbiAgT0RhdGFGdW5jdGlvbnMsXG4gIE9EYXRhT3BlcmF0b3JzLFxuICBvcGVyYXRvcnMsXG4gIFJlbmRlcmFibGUsXG4gIHN5bnRheCxcbn0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJDb25uZWN0b3IgPSAnYW5kJyB8ICdvcic7XG5cbmV4cG9ydCB0eXBlIEZpbHRlckV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICB0OiBSZWFkb25seTxSZXF1aXJlZDxUPj47XG4gIGU6IChjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IpID0+IEZpbHRlckV4cHJlc3Npb248VD47XG4gIG86IE9EYXRhT3BlcmF0b3JzPFQ+O1xuICBmOiBPRGF0YUZ1bmN0aW9uczxUPjtcbn07XG5leHBvcnQgY2xhc3MgRmlsdGVyRXhwcmVzc2lvbjxGPiBleHRlbmRzIEV4cHJlc3Npb248Rj4ge1xuICBwcml2YXRlIF9jb25uZWN0b3I6IEZpbHRlckNvbm5lY3RvcjtcbiAgcHJpdmF0ZSBfbmVnYXRlZDogYm9vbGVhbjtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICAgIGNvbm5lY3RvcixcbiAgICBuZWdhdGVkLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gICAgY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yO1xuICAgIG5lZ2F0ZWQ/OiBib29sZWFuO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvciB8fCAnYW5kJztcbiAgICB0aGlzLl9uZWdhdGVkID0gbmVnYXRlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBmaWx0ZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogRmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogRmlsdGVyRXhwcmVzc2lvbjxUPlxuICAgICkgPT4gRmlsdGVyRXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogRmlsdGVyRXhwcmVzc2lvbjxUPlxuICApOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyhcbiAgICAgIHtcbiAgICAgICAgdDogRmllbGQuZmFjdG9yeTxSZWFkb25seTxSZXF1aXJlZDxUPj4+KCksXG4gICAgICAgIGU6IChjb25uZWN0b3I6IEZpbHRlckNvbm5lY3RvciA9ICdhbmQnKSA9PlxuICAgICAgICAgIG5ldyBGaWx0ZXJFeHByZXNzaW9uPFQ+KHsgY29ubmVjdG9yIH0pLFxuICAgICAgICBvOiBvcGVyYXRvcnMgYXMgT0RhdGFPcGVyYXRvcnM8VD4sXG4gICAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICAgIH0sXG4gICAgICBjdXJyZW50XG4gICAgKSBhcyBGaWx0ZXJFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvSlNPTigpKSxcbiAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICB9O1xuICB9XG5cbiAgY29ubmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3I7XG4gIH1cblxuICBuZWdhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9uZWdhdGVkO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCB9KSlcbiAgICAgIC5qb2luKGAgJHt0aGlzLl9jb25uZWN0b3J9IGApO1xuICAgIGlmICh0aGlzLl9uZWdhdGVkKSB7XG4gICAgICBjb250ZW50ID0gYG5vdCAoJHtjb250ZW50fSlgO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgRmlsdGVyRXhwcmVzc2lvbih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKFxuICAgIG5vZGU6IFJlbmRlcmFibGUsXG4gICAgY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yXG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIGlmIChjb25uZWN0b3IgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb25uZWN0b3IgIT09IGNvbm5lY3Rvcikge1xuICAgICAgbGV0IGNoaWxkcmVuOiBSZW5kZXJhYmxlW10gPSBbXTtcbiAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjaGlsZHJlbiA9IFsuLi50aGlzLl9jaGlsZHJlbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGV4cCA9IG5ldyBGaWx0ZXJFeHByZXNzaW9uPEY+KHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbixcbiAgICAgICAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZXhwLmxlbmd0aCgpID4gMSkge1xuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcoZXhwKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZXhwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbm9kZSBpbnN0YW5jZW9mIEZpbHRlckV4cHJlc3Npb24gJiZcbiAgICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICAgKSB7XG4gICAgICAgIGNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcobm9kZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yO1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9kZSBpbnN0YW5jZW9mIEZpbHRlckV4cHJlc3Npb24gJiZcbiAgICAgICFub2RlLm5lZ2F0ZWQoKSAmJlxuICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICkge1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW4sIC4uLm5vZGUuY2hpbGRyZW4oKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2goXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBGaWx0ZXJFeHByZXNzaW9uICYmICFub2RlLm5lZ2F0ZWQoKVxuICAgICAgICAgID8gbmV3IEdyb3VwaW5nKG5vZGUpXG4gICAgICAgICAgOiBub2RlXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9yKGV4cDogRmlsdGVyRXhwcmVzc2lvbjxGPik6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZXhwLCAnb3InKTtcbiAgfVxuXG4gIGFuZChleHA6IEZpbHRlckV4cHJlc3Npb248Rj4pOiBGaWx0ZXJFeHByZXNzaW9uPEY+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGV4cCwgJ2FuZCcpO1xuICB9XG5cbiAgbm90KGV4cDogRmlsdGVyRXhwcmVzc2lvbjxGPik6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIGNvbnN0IG5vdEV4cCA9IG5ldyBGaWx0ZXJFeHByZXNzaW9uPEY+KHtcbiAgICAgIGNoaWxkcmVuOiBleHAuY2hpbGRyZW4oKSxcbiAgICAgIGNvbm5lY3RvcjogZXhwLmNvbm5lY3RvcigpLFxuICAgICAgbmVnYXRlZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9hZGQobm90RXhwLCB0aGlzLl9jb25uZWN0b3IpO1xuICB9XG5cbiAgZXEobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuZXEobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgbmUobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMubmUobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgZ3QobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuZ3QobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgZ2UobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuZ2UobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgbHQobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMubHQobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgbGUobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMubGUobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgaGFzKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmhhcyhsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBpbihsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG9wZXJhdG9ycy5pbihsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBjb250YWlucyhsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGZ1bmN0aW9ucy5jb250YWlucyhsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBzdGFydHNXaXRoKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZnVuY3Rpb25zLnN0YXJ0c1dpdGgobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgZW5kc1dpdGgobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChmdW5jdGlvbnMuZW5kc1dpdGgobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgYW55PE4gZXh0ZW5kcyBvYmplY3Q+KFxuICAgIGxlZnQ6IE5bXSxcbiAgICBvcHRzPzogKGU6IHtcbiAgICAgIGU6IChjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IpID0+IEZpbHRlckV4cHJlc3Npb248Tj47XG4gICAgICB0OiBOO1xuICAgIH0pID0+IEZpbHRlckV4cHJlc3Npb248Tj4sXG4gICAgYWxpYXM/OiBzdHJpbmdcbiAgKTogRmlsdGVyRXhwcmVzc2lvbjxGPiB7XG4gICAgbGV0IGV4cCA9IHVuZGVmaW5lZDtcbiAgICBpZiAob3B0cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBleHAgPSBvcHRzKHtcbiAgICAgICAgdDogRmllbGQuZmFjdG9yeTxSZWFkb25seTxSZXF1aXJlZDxOPj4+KCksXG4gICAgICAgIGU6IChjb25uZWN0b3I6IEZpbHRlckNvbm5lY3RvciA9ICdhbmQnKSA9PlxuICAgICAgICAgIG5ldyBGaWx0ZXJFeHByZXNzaW9uPE4+KHsgY29ubmVjdG9yIH0pLFxuICAgICAgfSkgYXMgRmlsdGVyRXhwcmVzc2lvbjxOPjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FkZChzeW50YXguYW55KGxlZnQsIGV4cCwgYWxpYXMpKTtcbiAgfVxuXG4gIGFsbDxOIGV4dGVuZHMgb2JqZWN0PihcbiAgICBsZWZ0OiBOW10sXG4gICAgb3B0czogKGU6IHtcbiAgICAgIHQ6IE47XG4gICAgICBlOiAoY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yKSA9PiBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgIH0pID0+IEZpbHRlckV4cHJlc3Npb248Tj4sXG4gICAgYWxpYXM/OiBzdHJpbmdcbiAgKTogRmlsdGVyRXhwcmVzc2lvbjxGPiB7XG4gICAgY29uc3QgZXhwID0gb3B0cyh7XG4gICAgICB0OiBGaWVsZC5mYWN0b3J5PFJlYWRvbmx5PFJlcXVpcmVkPE4+Pj4oKSxcbiAgICAgIGU6IChjb25uZWN0b3I6IEZpbHRlckNvbm5lY3RvciA9ICdhbmQnKSA9PlxuICAgICAgICBuZXcgRmlsdGVyRXhwcmVzc2lvbjxOPih7IGNvbm5lY3RvciB9KSxcbiAgICB9KSBhcyBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgIHJldHVybiB0aGlzLl9hZGQoc3ludGF4LmFsbChsZWZ0LCBleHAsIGFsaWFzKSk7XG4gIH1cblxuICBjb3VudDxOIGV4dGVuZHMgb2JqZWN0PihcbiAgICBsZWZ0OiBOW10sXG4gICAgb3B0cz86IChlOiB7IHQ6IE47IGY6IENvdW50RmllbGQ8Tj4gfSkgPT4gQ291bnRFeHByZXNzaW9uPE4+XG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQobmV3IENvdW50RXhwcmVzc2lvbjxOPigpLmZpZWxkKGxlZnQsIG9wdHMpKTtcbiAgfVxuXG4gIGlzb2YodHlwZTogc3RyaW5nKTogRmlsdGVyRXhwcmVzc2lvbjxGPjtcbiAgaXNvZihsZWZ0OiBGLCB0eXBlOiBzdHJpbmcpOiBGaWx0ZXJFeHByZXNzaW9uPEY+O1xuICBpc29mKGxlZnQ6IGFueSwgdHlwZT86IHN0cmluZyk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoc3ludGF4Lmlzb2YobGVmdCwgdHlwZSkpO1xuICB9XG59XG4iXX0=
|