angular-odata 0.130.0 → 0.131.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/fesm2022/angular-odata.mjs +2298 -2162
- package/fesm2022/angular-odata.mjs.map +1 -1
- package/lib/api.d.ts +10 -11
- package/lib/cache/cache.d.ts +2 -2
- package/lib/cache/memory.d.ts +2 -2
- package/lib/cache/storage.d.ts +2 -2
- package/lib/loaders.d.ts +8 -8
- package/lib/metadata/csdl/csdl-annotation.d.ts +3 -3
- package/lib/metadata/csdl/csdl-entity-container.d.ts +2 -2
- package/lib/metadata/csdl/csdl-entity-set.d.ts +2 -2
- package/lib/metadata/csdl/csdl-enum-type.d.ts +3 -3
- package/lib/metadata/csdl/csdl-function-action.d.ts +4 -4
- package/lib/metadata/csdl/csdl-reference.d.ts +2 -2
- package/lib/metadata/csdl/csdl-schema.d.ts +2 -2
- package/lib/metadata/csdl/csdl-structural-property.d.ts +3 -3
- package/lib/metadata/csdl/csdl-structured-type.d.ts +3 -3
- package/lib/metadata/metadata.d.ts +2 -2
- package/lib/models/options.d.ts +2 -2
- package/lib/module.d.ts +3 -3
- package/lib/options.d.ts +3 -3
- package/lib/resources/query/expressions/apply.d.ts +1 -1
- package/lib/resources/query/expressions/compute.d.ts +1 -1
- package/lib/resources/query/expressions/count.d.ts +1 -1
- package/lib/resources/query/expressions/expand.d.ts +4 -3
- package/lib/resources/query/expressions/filter.d.ts +2 -1
- package/lib/resources/query/expressions/orderby.d.ts +2 -1
- package/lib/resources/query/expressions/search.d.ts +2 -1
- package/lib/resources/query/expressions/select.d.ts +2 -1
- package/lib/resources/query/handlers.d.ts +17 -5
- package/lib/resources/resource.d.ts +5 -5
- package/lib/resources/types/action.d.ts +2 -2
- package/lib/resources/types/entity-set.d.ts +2 -2
- package/lib/resources/types/navigation-property.d.ts +2 -2
- package/lib/resources/types/property.d.ts +2 -2
- package/lib/schema/annotation.d.ts +3 -3
- package/lib/schema/callable.d.ts +3 -3
- package/lib/schema/element.d.ts +3 -3
- package/lib/schema/entity-container.d.ts +2 -2
- package/lib/schema/entity-set.d.ts +2 -2
- package/lib/schema/enum-type.d.ts +2 -2
- package/lib/schema/parsers/callable.d.ts +4 -4
- package/lib/schema/parsers/enum-type.d.ts +3 -3
- package/lib/schema/parsers/structured-type.d.ts +4 -4
- package/lib/schema/schema.d.ts +3 -3
- package/lib/schema/singleton.d.ts +2 -2
- package/lib/schema/structured-type.d.ts +3 -3
- package/lib/services/entity.d.ts +1 -1
- package/lib/settings.d.ts +2 -2
- package/lib/types.d.ts +76 -74
- package/lib/utils/odata.d.ts +2 -2
- package/package.json +3 -5
- package/schematics/apigen/files/api-config/__fileName__.ts +4 -4
- package/esm2022/angular-odata.mjs +0 -5
- package/esm2022/lib/annotations.mjs +0 -146
- package/esm2022/lib/api.mjs +0 -439
- package/esm2022/lib/cache/cache.mjs +0 -177
- package/esm2022/lib/cache/index.mjs +0 -4
- package/esm2022/lib/cache/memory.mjs +0 -30
- package/esm2022/lib/cache/storage.mjs +0 -57
- package/esm2022/lib/client.mjs +0 -215
- package/esm2022/lib/constants.mjs +0 -95
- package/esm2022/lib/helper.mjs +0 -288
- package/esm2022/lib/index.mjs +0 -22
- package/esm2022/lib/loaders.mjs +0 -43
- package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +0 -273
- package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +0 -59
- package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +0 -50
- package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +0 -74
- package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +0 -204
- package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +0 -15
- package/esm2022/lib/metadata/csdl/csdl-reference.mjs +0 -76
- package/esm2022/lib/metadata/csdl/csdl-schema.mjs +0 -87
- package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +0 -37
- package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +0 -145
- package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +0 -159
- package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +0 -46
- package/esm2022/lib/metadata/index.mjs +0 -3
- package/esm2022/lib/metadata/metadata.mjs +0 -41
- package/esm2022/lib/metadata/parser.mjs +0 -564
- package/esm2022/lib/models/collection.mjs +0 -816
- package/esm2022/lib/models/index.mjs +0 -4
- package/esm2022/lib/models/model.mjs +0 -577
- package/esm2022/lib/models/options.mjs +0 -1227
- package/esm2022/lib/module.mjs +0 -55
- package/esm2022/lib/options.mjs +0 -91
- package/esm2022/lib/resources/index.mjs +0 -7
- package/esm2022/lib/resources/options.mjs +0 -66
- package/esm2022/lib/resources/path/handlers.mjs +0 -81
- package/esm2022/lib/resources/path/index.mjs +0 -3
- package/esm2022/lib/resources/path/segments.mjs +0 -149
- package/esm2022/lib/resources/query/builder.mjs +0 -645
- package/esm2022/lib/resources/query/expressions/apply.mjs +0 -238
- package/esm2022/lib/resources/query/expressions/base.mjs +0 -26
- package/esm2022/lib/resources/query/expressions/compute.mjs +0 -55
- package/esm2022/lib/resources/query/expressions/count.mjs +0 -118
- package/esm2022/lib/resources/query/expressions/expand.mjs +0 -154
- package/esm2022/lib/resources/query/expressions/filter.mjs +0 -180
- package/esm2022/lib/resources/query/expressions/index.mjs +0 -10
- package/esm2022/lib/resources/query/expressions/orderby.mjs +0 -81
- package/esm2022/lib/resources/query/expressions/search.mjs +0 -144
- package/esm2022/lib/resources/query/expressions/select.mjs +0 -49
- package/esm2022/lib/resources/query/expressions/syntax.mjs +0 -770
- package/esm2022/lib/resources/query/handlers.mjs +0 -423
- package/esm2022/lib/resources/query/index.mjs +0 -5
- package/esm2022/lib/resources/query/options.mjs +0 -140
- package/esm2022/lib/resources/request.mjs +0 -210
- package/esm2022/lib/resources/resource.mjs +0 -316
- package/esm2022/lib/resources/response.mjs +0 -180
- package/esm2022/lib/resources/types/action.mjs +0 -118
- package/esm2022/lib/resources/types/batch.mjs +0 -428
- package/esm2022/lib/resources/types/count.mjs +0 -33
- package/esm2022/lib/resources/types/entity-set.mjs +0 -131
- package/esm2022/lib/resources/types/entity.mjs +0 -112
- package/esm2022/lib/resources/types/function.mjs +0 -149
- package/esm2022/lib/resources/types/index.mjs +0 -15
- package/esm2022/lib/resources/types/media.mjs +0 -44
- package/esm2022/lib/resources/types/metadata.mjs +0 -35
- package/esm2022/lib/resources/types/navigation-property.mjs +0 -246
- package/esm2022/lib/resources/types/options.mjs +0 -2
- package/esm2022/lib/resources/types/property.mjs +0 -187
- package/esm2022/lib/resources/types/reference.mjs +0 -87
- package/esm2022/lib/resources/types/singleton.mjs +0 -125
- package/esm2022/lib/resources/types/value.mjs +0 -48
- package/esm2022/lib/schema/annotation.mjs +0 -44
- package/esm2022/lib/schema/callable.mjs +0 -69
- package/esm2022/lib/schema/element.mjs +0 -70
- package/esm2022/lib/schema/entity-container.mjs +0 -13
- package/esm2022/lib/schema/entity-set.mjs +0 -11
- package/esm2022/lib/schema/enum-type.mjs +0 -69
- package/esm2022/lib/schema/index.mjs +0 -9
- package/esm2022/lib/schema/parsers/callable.mjs +0 -123
- package/esm2022/lib/schema/parsers/edm.mjs +0 -101
- package/esm2022/lib/schema/parsers/enum-type.mjs +0 -148
- package/esm2022/lib/schema/parsers/index.mjs +0 -5
- package/esm2022/lib/schema/parsers/structured-type.mjs +0 -548
- package/esm2022/lib/schema/schema.mjs +0 -52
- package/esm2022/lib/schema/singleton.mjs +0 -11
- package/esm2022/lib/schema/structured-type.mjs +0 -220
- package/esm2022/lib/services/base.mjs +0 -32
- package/esm2022/lib/services/entity-set.mjs +0 -161
- package/esm2022/lib/services/entity.mjs +0 -12
- package/esm2022/lib/services/factory.mjs +0 -39
- package/esm2022/lib/services/index.mjs +0 -5
- package/esm2022/lib/services/singleton.mjs +0 -55
- package/esm2022/lib/settings.mjs +0 -113
- package/esm2022/lib/types.mjs +0 -118
- package/esm2022/lib/utils/arraybuffers.mjs +0 -46
- package/esm2022/lib/utils/arrays.mjs +0 -10
- package/esm2022/lib/utils/dates.mjs +0 -18
- package/esm2022/lib/utils/durations.mjs +0 -40
- package/esm2022/lib/utils/enums.mjs +0 -61
- package/esm2022/lib/utils/http.mjs +0 -95
- package/esm2022/lib/utils/index.mjs +0 -10
- package/esm2022/lib/utils/objects.mjs +0 -204
- package/esm2022/lib/utils/odata.mjs +0 -22
- package/esm2022/lib/utils/strings.mjs +0 -20
- package/esm2022/lib/utils/types.mjs +0 -136
- package/esm2022/lib/utils/urls.mjs +0 -24
- package/esm2022/public-api.mjs +0 -5
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
export class CsdlAnnotable {
|
|
2
|
-
Annotation;
|
|
3
|
-
constructor({ Annotation }) {
|
|
4
|
-
this.Annotation = Annotation?.map((a) => new CsdlAnnotation(a));
|
|
5
|
-
}
|
|
6
|
-
toJson() {
|
|
7
|
-
const json = {};
|
|
8
|
-
if (Array.isArray(this.Annotation) && this.Annotation.length > 0) {
|
|
9
|
-
json['Annotation'] = this.Annotation.map((a) => a.toJson());
|
|
10
|
-
}
|
|
11
|
-
return json;
|
|
12
|
-
}
|
|
13
|
-
toConfig() {
|
|
14
|
-
const config = {};
|
|
15
|
-
if (this.Annotation) {
|
|
16
|
-
config['annotations'] = this.Annotation.map((a) => a.toConfig());
|
|
17
|
-
}
|
|
18
|
-
return config;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export class CsdlAnnotations extends CsdlAnnotable {
|
|
22
|
-
schema;
|
|
23
|
-
Target;
|
|
24
|
-
Qualifier;
|
|
25
|
-
constructor(schema, { Target, Qualifier, Annotation, }) {
|
|
26
|
-
super({ Annotation });
|
|
27
|
-
this.schema = schema;
|
|
28
|
-
this.Target = Target;
|
|
29
|
-
this.Qualifier = Qualifier;
|
|
30
|
-
}
|
|
31
|
-
toJson() {
|
|
32
|
-
const json = {
|
|
33
|
-
...super.toJson(),
|
|
34
|
-
Target: this.Target,
|
|
35
|
-
};
|
|
36
|
-
if (this.Qualifier !== undefined) {
|
|
37
|
-
json['Qualifier'] = this.Qualifier;
|
|
38
|
-
}
|
|
39
|
-
return json;
|
|
40
|
-
}
|
|
41
|
-
toConfig() {
|
|
42
|
-
return (this.Annotation ?? []).map((a) => a.toConfig());
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export class CsdlAnnotation {
|
|
46
|
-
Term;
|
|
47
|
-
String;
|
|
48
|
-
Bool;
|
|
49
|
-
Int;
|
|
50
|
-
Collection;
|
|
51
|
-
Record;
|
|
52
|
-
EnumMember;
|
|
53
|
-
constructor({ Term, String, Bool, Int, Collection, Record, EnumMember, }) {
|
|
54
|
-
this.Term = Term;
|
|
55
|
-
this.String = String;
|
|
56
|
-
this.Bool = Bool;
|
|
57
|
-
this.Int = Int;
|
|
58
|
-
this.Collection = Collection?.map((a) => new CsdlCollection(a));
|
|
59
|
-
this.Record = Record?.map((a) => new CsdlRecord(a));
|
|
60
|
-
this.EnumMember = EnumMember?.map((a) => new CsdlEnumMember(a));
|
|
61
|
-
}
|
|
62
|
-
toJson() {
|
|
63
|
-
const json = { Term: this.Term };
|
|
64
|
-
if (this.String !== undefined) {
|
|
65
|
-
json['String'] = this.String;
|
|
66
|
-
}
|
|
67
|
-
if (this.Bool !== undefined) {
|
|
68
|
-
json['Bool'] = this.Bool;
|
|
69
|
-
}
|
|
70
|
-
if (this.Int !== undefined) {
|
|
71
|
-
json['Int'] = this.Int;
|
|
72
|
-
}
|
|
73
|
-
if (Array.isArray(this.Collection) && this.Collection.length > 0) {
|
|
74
|
-
json['Collection'] = this.Collection.map((m) => m.toJson());
|
|
75
|
-
}
|
|
76
|
-
if (Array.isArray(this.Record) && this.Record.length > 0) {
|
|
77
|
-
json['Record'] = this.Record.map((m) => m.toJson());
|
|
78
|
-
}
|
|
79
|
-
if (Array.isArray(this.EnumMember) && this.EnumMember.length > 0) {
|
|
80
|
-
json['EnumMember'] = this.EnumMember.map((m) => m.toJson());
|
|
81
|
-
}
|
|
82
|
-
return json;
|
|
83
|
-
}
|
|
84
|
-
toConfig() {
|
|
85
|
-
return {
|
|
86
|
-
term: this.Term,
|
|
87
|
-
string: this.String,
|
|
88
|
-
bool: this.Bool,
|
|
89
|
-
int: this.Int,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
export class CsdlTerm {
|
|
94
|
-
schema;
|
|
95
|
-
Name;
|
|
96
|
-
Type;
|
|
97
|
-
BaseTerm;
|
|
98
|
-
DefaultValue;
|
|
99
|
-
AppliesTo;
|
|
100
|
-
Nullable;
|
|
101
|
-
MaxLength;
|
|
102
|
-
Precision;
|
|
103
|
-
Scale;
|
|
104
|
-
SRID;
|
|
105
|
-
String;
|
|
106
|
-
Bool;
|
|
107
|
-
Int;
|
|
108
|
-
constructor(schema, { Name, Type, BaseTerm, DefaultValue, AppliesTo, Nullable, MaxLength, Precision, Scale, SRID, String, Bool, Int, }) {
|
|
109
|
-
this.schema = schema;
|
|
110
|
-
this.Name = Name;
|
|
111
|
-
this.Type = Type;
|
|
112
|
-
this.BaseTerm = BaseTerm;
|
|
113
|
-
this.DefaultValue = DefaultValue;
|
|
114
|
-
this.AppliesTo = AppliesTo;
|
|
115
|
-
this.Nullable = Nullable;
|
|
116
|
-
this.MaxLength = MaxLength;
|
|
117
|
-
this.Precision = Precision;
|
|
118
|
-
this.Scale = Scale;
|
|
119
|
-
this.SRID = SRID;
|
|
120
|
-
this.String = String;
|
|
121
|
-
this.Bool = Bool;
|
|
122
|
-
this.Int = Int;
|
|
123
|
-
}
|
|
124
|
-
toJson() {
|
|
125
|
-
const json = { Name: this.Name, Type: this.Type };
|
|
126
|
-
if (this.BaseTerm !== undefined) {
|
|
127
|
-
json['BaseTerm'] = this.BaseTerm;
|
|
128
|
-
}
|
|
129
|
-
if (this.DefaultValue !== undefined) {
|
|
130
|
-
json['DefaultValue'] = this.DefaultValue;
|
|
131
|
-
}
|
|
132
|
-
if (this.AppliesTo !== undefined) {
|
|
133
|
-
json['AppliesTo'] = this.AppliesTo;
|
|
134
|
-
}
|
|
135
|
-
if (this.Nullable !== undefined) {
|
|
136
|
-
json['Nullable'] = this.Nullable;
|
|
137
|
-
}
|
|
138
|
-
if (this.MaxLength !== undefined) {
|
|
139
|
-
json['MaxLength'] = this.MaxLength;
|
|
140
|
-
}
|
|
141
|
-
if (this.Precision !== undefined) {
|
|
142
|
-
json['Precision'] = this.Precision;
|
|
143
|
-
}
|
|
144
|
-
if (this.Scale !== undefined) {
|
|
145
|
-
json['Scale'] = this.Scale;
|
|
146
|
-
}
|
|
147
|
-
if (this.SRID !== undefined) {
|
|
148
|
-
json['SRID'] = this.SRID;
|
|
149
|
-
}
|
|
150
|
-
if (this.String !== undefined) {
|
|
151
|
-
json['String'] = this.String;
|
|
152
|
-
}
|
|
153
|
-
if (this.Bool !== undefined) {
|
|
154
|
-
json['Bool'] = this.Bool;
|
|
155
|
-
}
|
|
156
|
-
if (this.Int !== undefined) {
|
|
157
|
-
json['Int'] = this.Int;
|
|
158
|
-
}
|
|
159
|
-
return json;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
export class CsdlCollection {
|
|
163
|
-
String;
|
|
164
|
-
Record;
|
|
165
|
-
PropertyPath;
|
|
166
|
-
NavigationPropertyPath;
|
|
167
|
-
constructor({ String, Record, PropertyPath, NavigationPropertyPath, }) {
|
|
168
|
-
this.String = String?.map((a) => new CsdlString(a));
|
|
169
|
-
this.Record = Record?.map((a) => new CsdlRecord(a));
|
|
170
|
-
this.PropertyPath = PropertyPath?.map((a) => new CsdlPropertyPath(a));
|
|
171
|
-
this.NavigationPropertyPath = NavigationPropertyPath?.map((a) => new CsdlNavigationPropertyPath(a));
|
|
172
|
-
}
|
|
173
|
-
toJson() {
|
|
174
|
-
const json = {};
|
|
175
|
-
if (Array.isArray(this.String) && this.String.length > 0) {
|
|
176
|
-
json['String'] = this.String.map((s) => s.toJson());
|
|
177
|
-
}
|
|
178
|
-
if (Array.isArray(this.Record) && this.Record.length > 0) {
|
|
179
|
-
json['Record'] = this.Record.map((r) => r.toJson());
|
|
180
|
-
}
|
|
181
|
-
if (Array.isArray(this.PropertyPath) && this.PropertyPath.length > 0) {
|
|
182
|
-
json['PropertyPath'] = this.PropertyPath.map((p) => p.toJson());
|
|
183
|
-
}
|
|
184
|
-
if (Array.isArray(this.NavigationPropertyPath) &&
|
|
185
|
-
this.NavigationPropertyPath.length > 0) {
|
|
186
|
-
json['NavigationPropertyPath'] = this.NavigationPropertyPath.map((p) => p.toJson());
|
|
187
|
-
}
|
|
188
|
-
return json;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
export class CsdlRecord {
|
|
192
|
-
PropertyValue;
|
|
193
|
-
constructor({ PropertyValue }) {
|
|
194
|
-
this.PropertyValue = PropertyValue?.map((a) => new CsdlPropertyValue(a));
|
|
195
|
-
}
|
|
196
|
-
toJson() {
|
|
197
|
-
const json = {};
|
|
198
|
-
if (Array.isArray(this.PropertyValue) && this.PropertyValue.length > 0) {
|
|
199
|
-
json['PropertyValue'] = this.PropertyValue.map((p) => p.toJson());
|
|
200
|
-
}
|
|
201
|
-
return json;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
export class CsdlPropertyValue {
|
|
205
|
-
Name;
|
|
206
|
-
String;
|
|
207
|
-
Date;
|
|
208
|
-
EnumMember;
|
|
209
|
-
constructor({ Name, String, Date, EnumMember, }) {
|
|
210
|
-
this.Name = Name;
|
|
211
|
-
this.String = String;
|
|
212
|
-
this.Date = Date;
|
|
213
|
-
this.EnumMember = EnumMember?.map((a) => new CsdlEnumMember(a));
|
|
214
|
-
}
|
|
215
|
-
toJson() {
|
|
216
|
-
const json = { Name: this.Name };
|
|
217
|
-
if (this.String !== undefined) {
|
|
218
|
-
json['String'] = this.String;
|
|
219
|
-
}
|
|
220
|
-
if (this.Date !== undefined) {
|
|
221
|
-
json['Date'] = this.Date;
|
|
222
|
-
}
|
|
223
|
-
if (Array.isArray(this.EnumMember) && this.EnumMember.length > 0) {
|
|
224
|
-
json['EnumMember'] = this.EnumMember.map((m) => m.toJson());
|
|
225
|
-
}
|
|
226
|
-
return json;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
export class CsdlEnumMember {
|
|
230
|
-
TextContent;
|
|
231
|
-
constructor({ TextContent }) {
|
|
232
|
-
this.TextContent = TextContent;
|
|
233
|
-
}
|
|
234
|
-
toJson() {
|
|
235
|
-
return {
|
|
236
|
-
TextContent: this.TextContent,
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
export class CsdlString {
|
|
241
|
-
TextContent;
|
|
242
|
-
constructor({ TextContent }) {
|
|
243
|
-
this.TextContent = TextContent;
|
|
244
|
-
}
|
|
245
|
-
toJson() {
|
|
246
|
-
return {
|
|
247
|
-
TextContent: this.TextContent,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
export class CsdlPropertyPath {
|
|
252
|
-
TextContent;
|
|
253
|
-
constructor({ TextContent }) {
|
|
254
|
-
this.TextContent = TextContent;
|
|
255
|
-
}
|
|
256
|
-
toJson() {
|
|
257
|
-
return {
|
|
258
|
-
TextContent: this.TextContent,
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
export class CsdlNavigationPropertyPath {
|
|
263
|
-
TextContent;
|
|
264
|
-
constructor({ TextContent }) {
|
|
265
|
-
this.TextContent = TextContent;
|
|
266
|
-
}
|
|
267
|
-
toJson() {
|
|
268
|
-
return {
|
|
269
|
-
TextContent: this.TextContent,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NkbC1hbm5vdGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL21ldGFkYXRhL2NzZGwvY3NkbC1hbm5vdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFVBQVUsQ0FBb0I7SUFDOUIsWUFBWSxFQUFFLFVBQVUsRUFBMEI7UUFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxJQUFJLEdBQTJCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQUVE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TUFBTTtRQUNKLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDOUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsV0FBVyxDQUFTO0lBQ3BCLFlBQVksRUFBRSxXQUFXLEVBQTJCO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM5QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxXQUFXLENBQVM7SUFDcEIsWUFBWSxFQUFFLFdBQVcsRUFBMkI7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBDc2RsU2NoZW1hIH0gZnJvbSAnLi9jc2RsLXNjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBDc2RsQW5ub3RhYmxlIHtcbiAgQW5ub3RhdGlvbj86IENzZGxBbm5vdGF0aW9uW107XG4gIGNvbnN0cnVjdG9yKHsgQW5ub3RhdGlvbiB9OiB7IEFubm90YXRpb24/OiBhbnlbXSB9KSB7XG4gICAgdGhpcy5Bbm5vdGF0aW9uID0gQW5ub3RhdGlvbj8ubWFwKChhKSA9PiBuZXcgQ3NkbEFubm90YXRpb24oYSkpO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb246IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLkFubm90YXRpb24pICYmIHRoaXMuQW5ub3RhdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICBqc29uWydBbm5vdGF0aW9uJ10gPSB0aGlzLkFubm90YXRpb24ubWFwKChhKSA9PiBhLnRvSnNvbigpKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICB0b0NvbmZpZygpIHtcbiAgICBjb25zdCBjb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAodGhpcy5Bbm5vdGF0aW9uKSB7XG4gICAgICBjb25maWdbJ2Fubm90YXRpb25zJ10gPSB0aGlzLkFubm90YXRpb24ubWFwKChhKSA9PiBhLnRvQ29uZmlnKCkpO1xuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDc2RsQW5ub3RhdGlvbnMgZXh0ZW5kcyBDc2RsQW5ub3RhYmxlIHtcbiAgVGFyZ2V0OiBzdHJpbmc7XG4gIFF1YWxpZmllcj86IHN0cmluZztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY2hlbWE6IENzZGxTY2hlbWEsXG4gICAge1xuICAgICAgVGFyZ2V0LFxuICAgICAgUXVhbGlmaWVyLFxuICAgICAgQW5ub3RhdGlvbixcbiAgICB9OiB7XG4gICAgICBUYXJnZXQ6IHN0cmluZztcbiAgICAgIFF1YWxpZmllcj86IHN0cmluZztcbiAgICAgIEFubm90YXRpb246IGFueVtdO1xuICAgIH0sXG4gICkge1xuICAgIHN1cGVyKHsgQW5ub3RhdGlvbiB9KTtcbiAgICB0aGlzLlRhcmdldCA9IFRhcmdldDtcbiAgICB0aGlzLlF1YWxpZmllciA9IFF1YWxpZmllcjtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSnNvbigpIHtcbiAgICBjb25zdCBqc29uOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgLi4uc3VwZXIudG9Kc29uKCksXG4gICAgICBUYXJnZXQ6IHRoaXMuVGFyZ2V0LFxuICAgIH07XG4gICAgaWYgKHRoaXMuUXVhbGlmaWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGpzb25bJ1F1YWxpZmllciddID0gdGhpcy5RdWFsaWZpZXI7XG4gICAgfVxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Db25maWcoKTogQW5ub3RhdGlvbkNvbmZpZ1tdIHtcbiAgICByZXR1cm4gKHRoaXMuQW5ub3RhdGlvbiA/PyBbXSkubWFwKChhKSA9PiBhLnRvQ29uZmlnKCkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDc2RsQW5ub3RhdGlvbiB7XG4gIFRlcm06IHN0cmluZztcbiAgU3RyaW5nPzogc3RyaW5nO1xuICBCb29sPzogYm9vbGVhbjtcbiAgSW50PzogbnVtYmVyO1xuICBDb2xsZWN0aW9uPzogQ3NkbENvbGxlY3Rpb25bXTtcbiAgUmVjb3JkPzogQ3NkbFJlY29yZFtdO1xuICBFbnVtTWVtYmVyPzogQ3NkbEVudW1NZW1iZXJbXTtcbiAgY29uc3RydWN0b3Ioe1xuICAgIFRlcm0sXG4gICAgU3RyaW5nLFxuICAgIEJvb2wsXG4gICAgSW50LFxuICAgIENvbGxlY3Rpb24sXG4gICAgUmVjb3JkLFxuICAgIEVudW1NZW1iZXIsXG4gIH06IHtcbiAgICBUZXJtOiBzdHJpbmc7XG4gICAgU3RyaW5nPzogc3RyaW5nO1xuICAgIEJvb2w/OiBib29sZWFuO1xuICAgIEludD86IG51bWJlcjtcbiAgICBDb2xsZWN0aW9uPzogYW55W107XG4gICAgUmVjb3JkPzogYW55W107XG4gICAgRW51bU1lbWJlcj86IGFueVtdO1xuICB9KSB7XG4gICAgdGhpcy5UZXJtID0gVGVybTtcbiAgICB0aGlzLlN0cmluZyA9IFN0cmluZztcbiAgICB0aGlzLkJvb2wgPSBCb29sO1xuICAgIHRoaXMuSW50ID0gSW50O1xuICAgIHRoaXMuQ29sbGVjdGlvbiA9IENvbGxlY3Rpb24/Lm1hcCgoYSkgPT4gbmV3IENzZGxDb2xsZWN0aW9uKGEpKTtcbiAgICB0aGlzLlJlY29yZCA9IFJlY29yZD8ubWFwKChhKSA9PiBuZXcgQ3NkbFJlY29yZChhKSk7XG4gICAgdGhpcy5FbnVtTWVtYmVyID0gRW51bU1lbWJlcj8ubWFwKChhKSA9PiBuZXcgQ3NkbEVudW1NZW1iZXIoYSkpO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb246IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7IFRlcm06IHRoaXMuVGVybSB9O1xuICAgIGlmICh0aGlzLlN0cmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydTdHJpbmcnXSA9IHRoaXMuU3RyaW5nO1xuICAgIH1cbiAgICBpZiAodGhpcy5Cb29sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGpzb25bJ0Jvb2wnXSA9IHRoaXMuQm9vbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuSW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGpzb25bJ0ludCddID0gdGhpcy5JbnQ7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuQ29sbGVjdGlvbikgJiYgdGhpcy5Db2xsZWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgIGpzb25bJ0NvbGxlY3Rpb24nXSA9IHRoaXMuQ29sbGVjdGlvbi5tYXAoKG0pID0+IG0udG9Kc29uKCkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLlJlY29yZCkgJiYgdGhpcy5SZWNvcmQubGVuZ3RoID4gMCkge1xuICAgICAganNvblsnUmVjb3JkJ10gPSB0aGlzLlJlY29yZC5tYXAoKG0pID0+IG0udG9Kc29uKCkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLkVudW1NZW1iZXIpICYmIHRoaXMuRW51bU1lbWJlci5sZW5ndGggPiAwKSB7XG4gICAgICBqc29uWydFbnVtTWVtYmVyJ10gPSB0aGlzLkVudW1NZW1iZXIubWFwKChtKSA9PiBtLnRvSnNvbigpKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICB0b0NvbmZpZygpOiBBbm5vdGF0aW9uQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGVybTogdGhpcy5UZXJtLFxuICAgICAgc3RyaW5nOiB0aGlzLlN0cmluZyxcbiAgICAgIGJvb2w6IHRoaXMuQm9vbCxcbiAgICAgIGludDogdGhpcy5JbnQsXG4gICAgfSBhcyBBbm5vdGF0aW9uQ29uZmlnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDc2RsVGVybSB7XG4gIE5hbWU6IHN0cmluZztcbiAgVHlwZTogc3RyaW5nO1xuICBCYXNlVGVybT86IHN0cmluZztcbiAgRGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICBBcHBsaWVzVG8/OiBzdHJpbmc7XG4gIE51bGxhYmxlPzogYm9vbGVhbjtcbiAgTWF4TGVuZ3RoPzogbnVtYmVyO1xuICBQcmVjaXNpb24/OiBudW1iZXI7XG4gIFNjYWxlPzogbnVtYmVyO1xuICBTUklEPzogc3RyaW5nO1xuICBTdHJpbmc/OiBzdHJpbmc7XG4gIEJvb2w/OiBib29sZWFuO1xuICBJbnQ/OiBudW1iZXI7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2NoZW1hOiBDc2RsU2NoZW1hLFxuICAgIHtcbiAgICAgIE5hbWUsXG4gICAgICBUeXBlLFxuICAgICAgQmFzZVRlcm0sXG4gICAgICBEZWZhdWx0VmFsdWUsXG4gICAgICBBcHBsaWVzVG8sXG4gICAgICBOdWxsYWJsZSxcbiAgICAgIE1heExlbmd0aCxcbiAgICAgIFByZWNpc2lvbixcbiAgICAgIFNjYWxlLFxuICAgICAgU1JJRCxcbiAgICAgIFN0cmluZyxcbiAgICAgIEJvb2wsXG4gICAgICBJbnQsXG4gICAgfToge1xuICAgICAgTmFtZTogc3RyaW5nO1xuICAgICAgVHlwZTogc3RyaW5nO1xuICAgICAgQmFzZVRlcm0/OiBzdHJpbmc7XG4gICAgICBEZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gICAgICBBcHBsaWVzVG8/OiBzdHJpbmc7XG4gICAgICBOdWxsYWJsZT86IGJvb2xlYW47XG4gICAgICBNYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgICBQcmVjaXNpb24/OiBudW1iZXI7XG4gICAgICBTY2FsZT86IG51bWJlcjtcbiAgICAgIFNSSUQ/OiBzdHJpbmc7XG4gICAgICBTdHJpbmc/OiBzdHJpbmc7XG4gICAgICBCb29sPzogYm9vbGVhbjtcbiAgICAgIEludD86IG51bWJlcjtcbiAgICB9LFxuICApIHtcbiAgICB0aGlzLk5hbWUgPSBOYW1lO1xuICAgIHRoaXMuVHlwZSA9IFR5cGU7XG4gICAgdGhpcy5CYXNlVGVybSA9IEJhc2VUZXJtO1xuICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gRGVmYXVsdFZhbHVlO1xuICAgIHRoaXMuQXBwbGllc1RvID0gQXBwbGllc1RvO1xuICAgIHRoaXMuTnVsbGFibGUgPSBOdWxsYWJsZTtcbiAgICB0aGlzLk1heExlbmd0aCA9IE1heExlbmd0aDtcbiAgICB0aGlzLlByZWNpc2lvbiA9IFByZWNpc2lvbjtcbiAgICB0aGlzLlNjYWxlID0gU2NhbGU7XG4gICAgdGhpcy5TUklEID0gU1JJRDtcbiAgICB0aGlzLlN0cmluZyA9IFN0cmluZztcbiAgICB0aGlzLkJvb2wgPSBCb29sO1xuICAgIHRoaXMuSW50ID0gSW50O1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb246IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7IE5hbWU6IHRoaXMuTmFtZSwgVHlwZTogdGhpcy5UeXBlIH07XG4gICAgaWYgKHRoaXMuQmFzZVRlcm0gIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnQmFzZVRlcm0nXSA9IHRoaXMuQmFzZVRlcm07XG4gICAgfVxuICAgIGlmICh0aGlzLkRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydEZWZhdWx0VmFsdWUnXSA9IHRoaXMuRGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5BcHBsaWVzVG8gIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnQXBwbGllc1RvJ10gPSB0aGlzLkFwcGxpZXNUbztcbiAgICB9XG4gICAgaWYgKHRoaXMuTnVsbGFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnTnVsbGFibGUnXSA9IHRoaXMuTnVsbGFibGU7XG4gICAgfVxuICAgIGlmICh0aGlzLk1heExlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydNYXhMZW5ndGgnXSA9IHRoaXMuTWF4TGVuZ3RoO1xuICAgIH1cbiAgICBpZiAodGhpcy5QcmVjaXNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnUHJlY2lzaW9uJ10gPSB0aGlzLlByZWNpc2lvbjtcbiAgICB9XG4gICAgaWYgKHRoaXMuU2NhbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnU2NhbGUnXSA9IHRoaXMuU2NhbGU7XG4gICAgfVxuICAgIGlmICh0aGlzLlNSSUQgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnU1JJRCddID0gdGhpcy5TUklEO1xuICAgIH1cbiAgICBpZiAodGhpcy5TdHJpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnU3RyaW5nJ10gPSB0aGlzLlN0cmluZztcbiAgICB9XG4gICAgaWYgKHRoaXMuQm9vbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydCb29sJ10gPSB0aGlzLkJvb2w7XG4gICAgfVxuICAgIGlmICh0aGlzLkludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydJbnQnXSA9IHRoaXMuSW50O1xuICAgIH1cbiAgICByZXR1cm4ganNvbjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3NkbENvbGxlY3Rpb24ge1xuICBTdHJpbmc6IENzZGxTdHJpbmdbXTtcbiAgUmVjb3JkOiBDc2RsUmVjb3JkW107XG4gIFByb3BlcnR5UGF0aDogQ3NkbFByb3BlcnR5UGF0aFtdO1xuICBOYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBDc2RsTmF2aWdhdGlvblByb3BlcnR5UGF0aFtdO1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgU3RyaW5nLFxuICAgIFJlY29yZCxcbiAgICBQcm9wZXJ0eVBhdGgsXG4gICAgTmF2aWdhdGlvblByb3BlcnR5UGF0aCxcbiAgfToge1xuICAgIFN0cmluZzogYW55W107XG4gICAgUmVjb3JkOiBhbnlbXTtcbiAgICBQcm9wZXJ0eVBhdGg6IGFueVtdO1xuICAgIE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IGFueVtdO1xuICB9KSB7XG4gICAgdGhpcy5TdHJpbmcgPSBTdHJpbmc/Lm1hcCgoYSkgPT4gbmV3IENzZGxTdHJpbmcoYSkpO1xuICAgIHRoaXMuUmVjb3JkID0gUmVjb3JkPy5tYXAoKGEpID0+IG5ldyBDc2RsUmVjb3JkKGEpKTtcbiAgICB0aGlzLlByb3BlcnR5UGF0aCA9IFByb3BlcnR5UGF0aD8ubWFwKChhKSA9PiBuZXcgQ3NkbFByb3BlcnR5UGF0aChhKSk7XG4gICAgdGhpcy5OYXZpZ2F0aW9uUHJvcGVydHlQYXRoID0gTmF2aWdhdGlvblByb3BlcnR5UGF0aD8ubWFwKFxuICAgICAgKGEpID0+IG5ldyBDc2RsTmF2aWdhdGlvblByb3BlcnR5UGF0aChhKSxcbiAgICApO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb246IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLlN0cmluZykgJiYgdGhpcy5TdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAganNvblsnU3RyaW5nJ10gPSB0aGlzLlN0cmluZy5tYXAoKHMpID0+IHMudG9Kc29uKCkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLlJlY29yZCkgJiYgdGhpcy5SZWNvcmQubGVuZ3RoID4gMCkge1xuICAgICAganNvblsnUmVjb3JkJ10gPSB0aGlzLlJlY29yZC5tYXAoKHIpID0+IHIudG9Kc29uKCkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLlByb3BlcnR5UGF0aCkgJiYgdGhpcy5Qcm9wZXJ0eVBhdGgubGVuZ3RoID4gMCkge1xuICAgICAganNvblsnUHJvcGVydHlQYXRoJ10gPSB0aGlzLlByb3BlcnR5UGF0aC5tYXAoKHApID0+IHAudG9Kc29uKCkpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBBcnJheS5pc0FycmF5KHRoaXMuTmF2aWdhdGlvblByb3BlcnR5UGF0aCkgJiZcbiAgICAgIHRoaXMuTmF2aWdhdGlvblByb3BlcnR5UGF0aC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBqc29uWydOYXZpZ2F0aW9uUHJvcGVydHlQYXRoJ10gPSB0aGlzLk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubWFwKChwKSA9PlxuICAgICAgICBwLnRvSnNvbigpLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENzZGxSZWNvcmQge1xuICBQcm9wZXJ0eVZhbHVlOiBDc2RsUHJvcGVydHlWYWx1ZVtdO1xuICBjb25zdHJ1Y3Rvcih7IFByb3BlcnR5VmFsdWUgfTogeyBQcm9wZXJ0eVZhbHVlOiBhbnlbXSB9KSB7XG4gICAgdGhpcy5Qcm9wZXJ0eVZhbHVlID0gUHJvcGVydHlWYWx1ZT8ubWFwKChhKSA9PiBuZXcgQ3NkbFByb3BlcnR5VmFsdWUoYSkpO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb246IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLlByb3BlcnR5VmFsdWUpICYmIHRoaXMuUHJvcGVydHlWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBqc29uWydQcm9wZXJ0eVZhbHVlJ10gPSB0aGlzLlByb3BlcnR5VmFsdWUubWFwKChwKSA9PiBwLnRvSnNvbigpKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENzZGxQcm9wZXJ0eVZhbHVlIHtcbiAgTmFtZTogc3RyaW5nO1xuICBTdHJpbmc/OiBzdHJpbmc7XG4gIERhdGU/OiBEYXRlO1xuICBFbnVtTWVtYmVyPzogQ3NkbEVudW1NZW1iZXJbXTtcbiAgY29uc3RydWN0b3Ioe1xuICAgIE5hbWUsXG4gICAgU3RyaW5nLFxuICAgIERhdGUsXG4gICAgRW51bU1lbWJlcixcbiAgfToge1xuICAgIE5hbWU6IHN0cmluZztcbiAgICBTdHJpbmc/OiBzdHJpbmc7XG4gICAgRGF0ZT86IERhdGU7XG4gICAgRW51bU1lbWJlcj86IGFueVtdO1xuICB9KSB7XG4gICAgdGhpcy5OYW1lID0gTmFtZTtcbiAgICB0aGlzLlN0cmluZyA9IFN0cmluZztcbiAgICB0aGlzLkRhdGUgPSBEYXRlO1xuICAgIHRoaXMuRW51bU1lbWJlciA9IEVudW1NZW1iZXI/Lm1hcCgoYSkgPT4gbmV3IENzZGxFbnVtTWVtYmVyKGEpKTtcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICBjb25zdCBqc29uOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0geyBOYW1lOiB0aGlzLk5hbWUgfTtcbiAgICBpZiAodGhpcy5TdHJpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnU3RyaW5nJ10gPSB0aGlzLlN0cmluZztcbiAgICB9XG4gICAgaWYgKHRoaXMuRGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydEYXRlJ10gPSB0aGlzLkRhdGU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuRW51bU1lbWJlcikgJiYgdGhpcy5FbnVtTWVtYmVyLmxlbmd0aCA+IDApIHtcbiAgICAgIGpzb25bJ0VudW1NZW1iZXInXSA9IHRoaXMuRW51bU1lbWJlci5tYXAoKG0pID0+IG0udG9Kc29uKCkpO1xuICAgIH1cbiAgICByZXR1cm4ganNvbjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3NkbEVudW1NZW1iZXIge1xuICBUZXh0Q29udGVudDogc3RyaW5nO1xuICBjb25zdHJ1Y3Rvcih7IFRleHRDb250ZW50IH06IHsgVGV4dENvbnRlbnQ6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5UZXh0Q29udGVudCA9IFRleHRDb250ZW50O1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBUZXh0Q29udGVudDogdGhpcy5UZXh0Q29udGVudCxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDc2RsU3RyaW5nIHtcbiAgVGV4dENvbnRlbnQ6IHN0cmluZztcbiAgY29uc3RydWN0b3IoeyBUZXh0Q29udGVudCB9OiB7IFRleHRDb250ZW50OiBzdHJpbmcgfSkge1xuICAgIHRoaXMuVGV4dENvbnRlbnQgPSBUZXh0Q29udGVudDtcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVGV4dENvbnRlbnQ6IHRoaXMuVGV4dENvbnRlbnQsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3NkbFByb3BlcnR5UGF0aCB7XG4gIFRleHRDb250ZW50OiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHsgVGV4dENvbnRlbnQgfTogeyBUZXh0Q29udGVudDogc3RyaW5nIH0pIHtcbiAgICB0aGlzLlRleHRDb250ZW50ID0gVGV4dENvbnRlbnQ7XG4gIH1cblxuICB0b0pzb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFRleHRDb250ZW50OiB0aGlzLlRleHRDb250ZW50LFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENzZGxOYXZpZ2F0aW9uUHJvcGVydHlQYXRoIHtcbiAgVGV4dENvbnRlbnQ6IHN0cmluZztcbiAgY29uc3RydWN0b3IoeyBUZXh0Q29udGVudCB9OiB7IFRleHRDb250ZW50OiBzdHJpbmcgfSkge1xuICAgIHRoaXMuVGV4dENvbnRlbnQgPSBUZXh0Q29udGVudDtcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVGV4dENvbnRlbnQ6IHRoaXMuVGV4dENvbnRlbnQsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { CsdlEntitySet } from './csdl-entity-set';
|
|
2
|
-
import { CsdlSingleton } from './csdl-singleton';
|
|
3
|
-
import { CsdlFunctionImport, CsdlActionImport } from './csdl-function-action';
|
|
4
|
-
import { CsdlAnnotable } from './csdl-annotation';
|
|
5
|
-
export class CsdlEntityContainer extends CsdlAnnotable {
|
|
6
|
-
schema;
|
|
7
|
-
Name;
|
|
8
|
-
Extend;
|
|
9
|
-
EntitySet;
|
|
10
|
-
Singleton;
|
|
11
|
-
FunctionImport;
|
|
12
|
-
ActionImport;
|
|
13
|
-
constructor(schema, { Name, Extend, EntitySet, Singleton, FunctionImport, ActionImport, Annotation, }) {
|
|
14
|
-
super({ Annotation });
|
|
15
|
-
this.schema = schema;
|
|
16
|
-
this.Name = Name;
|
|
17
|
-
this.Extend = Extend;
|
|
18
|
-
this.EntitySet = EntitySet?.map((e) => new CsdlEntitySet(this, e));
|
|
19
|
-
this.Singleton = Singleton?.map((s) => new CsdlSingleton(this, s));
|
|
20
|
-
this.FunctionImport = FunctionImport?.map((f) => new CsdlFunctionImport(this, f));
|
|
21
|
-
this.ActionImport = ActionImport?.map((a) => new CsdlActionImport(this, a));
|
|
22
|
-
}
|
|
23
|
-
toJson() {
|
|
24
|
-
const json = { ...super.toJson() };
|
|
25
|
-
if (this.Extend !== undefined) {
|
|
26
|
-
json['Extend'] = this.Extend;
|
|
27
|
-
}
|
|
28
|
-
if (Array.isArray(this.EntitySet) && this.EntitySet.length > 0) {
|
|
29
|
-
json['EntitySet'] = this.EntitySet.map((a) => a.toJson());
|
|
30
|
-
}
|
|
31
|
-
if (Array.isArray(this.Singleton) && this.Singleton.length > 0) {
|
|
32
|
-
json['Singleton'] = this.Singleton.map((a) => a.toJson());
|
|
33
|
-
}
|
|
34
|
-
if (Array.isArray(this.FunctionImport) && this.FunctionImport.length > 0) {
|
|
35
|
-
json['FunctionImport'] = this.FunctionImport.map((a) => a.toJson());
|
|
36
|
-
}
|
|
37
|
-
if (Array.isArray(this.ActionImport) && this.ActionImport.length > 0) {
|
|
38
|
-
json['ActionImport'] = this.ActionImport.map((a) => a.toJson());
|
|
39
|
-
}
|
|
40
|
-
return json;
|
|
41
|
-
}
|
|
42
|
-
name() {
|
|
43
|
-
return `${this.Name}`;
|
|
44
|
-
}
|
|
45
|
-
namespace() {
|
|
46
|
-
return `${this.schema.Namespace}`;
|
|
47
|
-
}
|
|
48
|
-
fullName() {
|
|
49
|
-
return `${this.schema.Namespace}.${this.Name}`;
|
|
50
|
-
}
|
|
51
|
-
toConfig(base) {
|
|
52
|
-
return {
|
|
53
|
-
...super.toConfig(),
|
|
54
|
-
name: this.Name,
|
|
55
|
-
entitySets: this.EntitySet?.map((t) => t.toConfig()),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NkbC1lbnRpdHktY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL21ldGFkYXRhL2NzZGwvY3NkbC1lbnRpdHktY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWxELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBUzFDO0lBUkgsSUFBSSxDQUFTO0lBQ2IsTUFBTSxDQUFVO0lBQ2hCLFNBQVMsQ0FBbUI7SUFDNUIsU0FBUyxDQUFtQjtJQUM1QixjQUFjLENBQXdCO0lBQ3RDLFlBQVksQ0FBc0I7SUFFekMsWUFDVSxNQUFrQixFQUMxQixFQUNFLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxjQUFjLEVBQ2QsWUFBWSxFQUNaLFVBQVUsR0FTWDtRQUVELEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFuQmQsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQXFCMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsRUFBRSxH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RyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckQsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENzZGxFbnRpdHlTZXQgfSBmcm9tICcuL2NzZGwtZW50aXR5LXNldCc7XG5pbXBvcnQgeyBDc2RsU2luZ2xldG9uIH0gZnJvbSAnLi9jc2RsLXNpbmdsZXRvbic7XG5pbXBvcnQgeyBDc2RsRnVuY3Rpb25JbXBvcnQsIENzZGxBY3Rpb25JbXBvcnQgfSBmcm9tICcuL2NzZGwtZnVuY3Rpb24tYWN0aW9uJztcbmltcG9ydCB7IENzZGxBbm5vdGFibGUgfSBmcm9tICcuL2NzZGwtYW5ub3RhdGlvbic7XG5pbXBvcnQgdHlwZSB7IENzZGxTY2hlbWEgfSBmcm9tICcuL2NzZGwtc2NoZW1hJztcbmltcG9ydCB7IEVudGl0eUNvbnRhaW5lckNvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIENzZGxFbnRpdHlDb250YWluZXIgZXh0ZW5kcyBDc2RsQW5ub3RhYmxlIHtcbiAgcHVibGljIE5hbWU6IHN0cmluZztcbiAgcHVibGljIEV4dGVuZD86IHN0cmluZztcbiAgcHVibGljIEVudGl0eVNldD86IENzZGxFbnRpdHlTZXRbXTtcbiAgcHVibGljIFNpbmdsZXRvbj86IENzZGxTaW5nbGV0b25bXTtcbiAgcHVibGljIEZ1bmN0aW9uSW1wb3J0PzogQ3NkbEZ1bmN0aW9uSW1wb3J0W107XG4gIHB1YmxpYyBBY3Rpb25JbXBvcnQ/OiBDc2RsQWN0aW9uSW1wb3J0W107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY2hlbWE6IENzZGxTY2hlbWEsXG4gICAge1xuICAgICAgTmFtZSxcbiAgICAgIEV4dGVuZCxcbiAgICAgIEVudGl0eVNldCxcbiAgICAgIFNpbmdsZXRvbixcbiAgICAgIEZ1bmN0aW9uSW1wb3J0LFxuICAgICAgQWN0aW9uSW1wb3J0LFxuICAgICAgQW5ub3RhdGlvbixcbiAgICB9OiB7XG4gICAgICBOYW1lOiBzdHJpbmc7XG4gICAgICBFeHRlbmQ/OiBzdHJpbmc7XG4gICAgICBFbnRpdHlTZXQ/OiBhbnlbXTtcbiAgICAgIFNpbmdsZXRvbj86IGFueVtdO1xuICAgICAgRnVuY3Rpb25JbXBvcnQ/OiBhbnlbXTtcbiAgICAgIEFjdGlvbkltcG9ydD86IGFueVtdO1xuICAgICAgQW5ub3RhdGlvbj86IGFueVtdO1xuICAgIH0sXG4gICkge1xuICAgIHN1cGVyKHsgQW5ub3RhdGlvbiB9KTtcblxuICAgIHRoaXMuTmFtZSA9IE5hbWU7XG4gICAgdGhpcy5FeHRlbmQgPSBFeHRlbmQ7XG4gICAgdGhpcy5FbnRpdHlTZXQgPSBFbnRpdHlTZXQ/Lm1hcCgoZSkgPT4gbmV3IENzZGxFbnRpdHlTZXQodGhpcywgZSkpO1xuICAgIHRoaXMuU2luZ2xldG9uID0gU2luZ2xldG9uPy5tYXAoKHMpID0+IG5ldyBDc2RsU2luZ2xldG9uKHRoaXMsIHMpKTtcbiAgICB0aGlzLkZ1bmN0aW9uSW1wb3J0ID0gRnVuY3Rpb25JbXBvcnQ/Lm1hcChcbiAgICAgIChmKSA9PiBuZXcgQ3NkbEZ1bmN0aW9uSW1wb3J0KHRoaXMsIGYpLFxuICAgICk7XG4gICAgdGhpcy5BY3Rpb25JbXBvcnQgPSBBY3Rpb25JbXBvcnQ/Lm1hcCgoYSkgPT4gbmV3IENzZGxBY3Rpb25JbXBvcnQodGhpcywgYSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb246IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7IC4uLnN1cGVyLnRvSnNvbigpIH07XG4gICAgaWYgKHRoaXMuRXh0ZW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGpzb25bJ0V4dGVuZCddID0gdGhpcy5FeHRlbmQ7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuRW50aXR5U2V0KSAmJiB0aGlzLkVudGl0eVNldC5sZW5ndGggPiAwKSB7XG4gICAgICBqc29uWydFbnRpdHlTZXQnXSA9IHRoaXMuRW50aXR5U2V0Lm1hcCgoYSkgPT4gYS50b0pzb24oKSk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuU2luZ2xldG9uKSAmJiB0aGlzLlNpbmdsZXRvbi5sZW5ndGggPiAwKSB7XG4gICAgICBqc29uWydTaW5nbGV0b24nXSA9IHRoaXMuU2luZ2xldG9uLm1hcCgoYSkgPT4gYS50b0pzb24oKSk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuRnVuY3Rpb25JbXBvcnQpICYmIHRoaXMuRnVuY3Rpb25JbXBvcnQubGVuZ3RoID4gMCkge1xuICAgICAganNvblsnRnVuY3Rpb25JbXBvcnQnXSA9IHRoaXMuRnVuY3Rpb25JbXBvcnQubWFwKChhKSA9PiBhLnRvSnNvbigpKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5BY3Rpb25JbXBvcnQpICYmIHRoaXMuQWN0aW9uSW1wb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGpzb25bJ0FjdGlvbkltcG9ydCddID0gdGhpcy5BY3Rpb25JbXBvcnQubWFwKChhKSA9PiBhLnRvSnNvbigpKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBuYW1lKCkge1xuICAgIHJldHVybiBgJHt0aGlzLk5hbWV9YDtcbiAgfVxuXG4gIG5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zY2hlbWEuTmFtZXNwYWNlfWA7XG4gIH1cblxuICBmdWxsTmFtZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zY2hlbWEuTmFtZXNwYWNlfS4ke3RoaXMuTmFtZX1gO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Db25maWcoXG4gICAgYmFzZT86IFBhcnRpYWw8RW50aXR5Q29udGFpbmVyQ29uZmlnPixcbiAgKTogRW50aXR5Q29udGFpbmVyQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIudG9Db25maWcoKSxcbiAgICAgIG5hbWU6IHRoaXMuTmFtZSxcbiAgICAgIGVudGl0eVNldHM6IHRoaXMuRW50aXR5U2V0Py5tYXAoKHQpID0+IHQudG9Db25maWcoKSksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { CsdlAnnotable } from './csdl-annotation';
|
|
2
|
-
import { CsdlNavigationPropertyBinding } from './csdl-navigation-property-binding';
|
|
3
|
-
export class CsdlEntitySet extends CsdlAnnotable {
|
|
4
|
-
container;
|
|
5
|
-
Name;
|
|
6
|
-
EntityType;
|
|
7
|
-
NavigationPropertyBinding;
|
|
8
|
-
IncludeInServiceDocument;
|
|
9
|
-
constructor(container, { Name, EntityType, NavigationPropertyBinding, IncludeInServiceDocument, Annotation, }) {
|
|
10
|
-
super({ Annotation });
|
|
11
|
-
this.container = container;
|
|
12
|
-
this.Name = Name;
|
|
13
|
-
this.EntityType = EntityType;
|
|
14
|
-
this.NavigationPropertyBinding = NavigationPropertyBinding?.map((n) => new CsdlNavigationPropertyBinding(n));
|
|
15
|
-
this.IncludeInServiceDocument = IncludeInServiceDocument;
|
|
16
|
-
}
|
|
17
|
-
toJson() {
|
|
18
|
-
const json = {
|
|
19
|
-
...super.toJson(),
|
|
20
|
-
Name: this.Name,
|
|
21
|
-
EntityType: this.EntityType,
|
|
22
|
-
};
|
|
23
|
-
if (Array.isArray(this.NavigationPropertyBinding) &&
|
|
24
|
-
this.NavigationPropertyBinding.length > 0) {
|
|
25
|
-
json['NavigationPropertyBinding'] = this.NavigationPropertyBinding.map((n) => n.toJson());
|
|
26
|
-
}
|
|
27
|
-
if (this.IncludeInServiceDocument !== undefined) {
|
|
28
|
-
json['IncludeInServiceDocument'] = this.IncludeInServiceDocument;
|
|
29
|
-
}
|
|
30
|
-
return json;
|
|
31
|
-
}
|
|
32
|
-
name() {
|
|
33
|
-
return `${this.Name}`;
|
|
34
|
-
}
|
|
35
|
-
namespace() {
|
|
36
|
-
return `${this.container.namespace()}`;
|
|
37
|
-
}
|
|
38
|
-
fullName() {
|
|
39
|
-
return `${this.container.namespace()}.${this.Name}`;
|
|
40
|
-
}
|
|
41
|
-
toConfig() {
|
|
42
|
-
return {
|
|
43
|
-
...super.toConfig(),
|
|
44
|
-
name: this.Name,
|
|
45
|
-
entityType: this.EntityType,
|
|
46
|
-
service: {},
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NkbC1lbnRpdHktc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL21ldGFkYXRhL2NzZGwvY3NkbC1lbnRpdHktc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRixNQUFNLE9BQU8sYUFBYyxTQUFRLGFBQWE7SUFPcEM7SUFOSCxJQUFJLENBQVM7SUFDYixVQUFVLENBQVM7SUFDbkIseUJBQXlCLENBQW1DO0lBQzVELHdCQUF3QixDQUFXO0lBRTFDLFlBQ1UsU0FBOEIsRUFDdEMsRUFDRSxJQUFJLEVBQ0osVUFBVSxFQUNWLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsVUFBVSxHQU9YO1FBRUQsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQWZkLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBaUJ0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMseUJBQXlCLEdBQUcseUJBQXlCLEVBQUUsR0FBRyxDQUM3RCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FDNUMsQ0FBQztRQUNGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztJQUMzRCxDQUFDO0lBRVEsTUFBTTtRQUNiLE1BQU0sSUFBSSxHQUEyQjtZQUNuQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7UUFDRixJQUNFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1lBQzdDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN6QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FDcEUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FDbEIsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRVEsUUFBUTtRQUNmLE9BQU87WUFDTCxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE9BQU8sRUFBRSxFQUFFO1NBQ08sQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTZXRDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDc2RsQW5ub3RhYmxlIH0gZnJvbSAnLi9jc2RsLWFubm90YXRpb24nO1xuaW1wb3J0IHR5cGUgeyBDc2RsRW50aXR5Q29udGFpbmVyIH0gZnJvbSAnLi9jc2RsLWVudGl0eS1jb250YWluZXInO1xuaW1wb3J0IHsgQ3NkbE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcgfSBmcm9tICcuL2NzZGwtbmF2aWdhdGlvbi1wcm9wZXJ0eS1iaW5kaW5nJztcblxuZXhwb3J0IGNsYXNzIENzZGxFbnRpdHlTZXQgZXh0ZW5kcyBDc2RsQW5ub3RhYmxlIHtcbiAgcHVibGljIE5hbWU6IHN0cmluZztcbiAgcHVibGljIEVudGl0eVR5cGU6IHN0cmluZztcbiAgcHVibGljIE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmc/OiBDc2RsTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tdO1xuICBwdWJsaWMgSW5jbHVkZUluU2VydmljZURvY3VtZW50PzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogQ3NkbEVudGl0eUNvbnRhaW5lcixcbiAgICB7XG4gICAgICBOYW1lLFxuICAgICAgRW50aXR5VHlwZSxcbiAgICAgIE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcsXG4gICAgICBJbmNsdWRlSW5TZXJ2aWNlRG9jdW1lbnQsXG4gICAgICBBbm5vdGF0aW9uLFxuICAgIH06IHtcbiAgICAgIE5hbWU6IHN0cmluZztcbiAgICAgIEVudGl0eVR5cGU6IHN0cmluZztcbiAgICAgIE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmc/OiBhbnlbXTtcbiAgICAgIEluY2x1ZGVJblNlcnZpY2VEb2N1bWVudD86IGJvb2xlYW47XG4gICAgICBBbm5vdGF0aW9uPzogYW55W107XG4gICAgfSxcbiAgKSB7XG4gICAgc3VwZXIoeyBBbm5vdGF0aW9uIH0pO1xuXG4gICAgdGhpcy5OYW1lID0gTmFtZTtcbiAgICB0aGlzLkVudGl0eVR5cGUgPSBFbnRpdHlUeXBlO1xuICAgIHRoaXMuTmF2aWdhdGlvblByb3BlcnR5QmluZGluZyA9IE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmc/Lm1hcChcbiAgICAgIChuKSA9PiBuZXcgQ3NkbE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcobiksXG4gICAgKTtcbiAgICB0aGlzLkluY2x1ZGVJblNlcnZpY2VEb2N1bWVudCA9IEluY2x1ZGVJblNlcnZpY2VEb2N1bWVudDtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSnNvbigpIHtcbiAgICBjb25zdCBqc29uOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgLi4uc3VwZXIudG9Kc29uKCksXG4gICAgICBOYW1lOiB0aGlzLk5hbWUsXG4gICAgICBFbnRpdHlUeXBlOiB0aGlzLkVudGl0eVR5cGUsXG4gICAgfTtcbiAgICBpZiAoXG4gICAgICBBcnJheS5pc0FycmF5KHRoaXMuTmF2aWdhdGlvblByb3BlcnR5QmluZGluZykgJiZcbiAgICAgIHRoaXMuTmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBqc29uWydOYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nJ10gPSB0aGlzLk5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcubWFwKFxuICAgICAgICAobikgPT4gbi50b0pzb24oKSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLkluY2x1ZGVJblNlcnZpY2VEb2N1bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBqc29uWydJbmNsdWRlSW5TZXJ2aWNlRG9jdW1lbnQnXSA9IHRoaXMuSW5jbHVkZUluU2VydmljZURvY3VtZW50O1xuICAgIH1cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIG5hbWUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuTmFtZX1gO1xuICB9XG5cbiAgbmFtZXNwYWNlKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbnRhaW5lci5uYW1lc3BhY2UoKX1gO1xuICB9XG5cbiAgZnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29udGFpbmVyLm5hbWVzcGFjZSgpfS4ke3RoaXMuTmFtZX1gO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Db25maWcoKTogRW50aXR5U2V0Q29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIudG9Db25maWcoKSxcbiAgICAgIG5hbWU6IHRoaXMuTmFtZSxcbiAgICAgIGVudGl0eVR5cGU6IHRoaXMuRW50aXR5VHlwZSxcbiAgICAgIHNlcnZpY2U6IHt9LFxuICAgIH0gYXMgRW50aXR5U2V0Q29uZmlnO1xuICB9XG59XG4iXX0=
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { CsdlAnnotable } from './csdl-annotation';
|
|
2
|
-
export class CsdlEnumType extends CsdlAnnotable {
|
|
3
|
-
schema;
|
|
4
|
-
Name;
|
|
5
|
-
Member;
|
|
6
|
-
UnderlyingType;
|
|
7
|
-
IsFlags;
|
|
8
|
-
constructor(schema, { Name, Member, UnderlyingType, IsFlags, Annotation, }) {
|
|
9
|
-
super({ Annotation });
|
|
10
|
-
this.schema = schema;
|
|
11
|
-
this.Name = Name;
|
|
12
|
-
this.Member = Member.map((m) => new CsdlMember(m));
|
|
13
|
-
this.UnderlyingType = UnderlyingType;
|
|
14
|
-
this.IsFlags = IsFlags;
|
|
15
|
-
}
|
|
16
|
-
toJson() {
|
|
17
|
-
const json = {
|
|
18
|
-
...super.toJson(),
|
|
19
|
-
Name: this.Name,
|
|
20
|
-
Member: this.Member.map((m) => m.toJson()),
|
|
21
|
-
};
|
|
22
|
-
if (this.UnderlyingType !== undefined) {
|
|
23
|
-
json['UnderlyingType'] = this.UnderlyingType;
|
|
24
|
-
}
|
|
25
|
-
if (this.IsFlags !== undefined) {
|
|
26
|
-
json['IsFlags'] = this.IsFlags;
|
|
27
|
-
}
|
|
28
|
-
return json;
|
|
29
|
-
}
|
|
30
|
-
name() {
|
|
31
|
-
return `${this.Name}`;
|
|
32
|
-
}
|
|
33
|
-
namespace() {
|
|
34
|
-
return `${this.schema.Namespace}`;
|
|
35
|
-
}
|
|
36
|
-
fullName() {
|
|
37
|
-
return `${this.schema.Namespace}.${this.Name}`;
|
|
38
|
-
}
|
|
39
|
-
toConfig(base) {
|
|
40
|
-
return {
|
|
41
|
-
...super.toConfig(),
|
|
42
|
-
name: this.Name,
|
|
43
|
-
fields: this.Member.reduce((acc, m) => ({
|
|
44
|
-
...acc,
|
|
45
|
-
[m.Name]: m.toConfig(),
|
|
46
|
-
}), {}),
|
|
47
|
-
flags: this.IsFlags,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export class CsdlMember extends CsdlAnnotable {
|
|
52
|
-
Name;
|
|
53
|
-
Value;
|
|
54
|
-
constructor({ Name, Value, Annotation, }) {
|
|
55
|
-
super({ Annotation });
|
|
56
|
-
this.Name = Name;
|
|
57
|
-
this.Value = Value;
|
|
58
|
-
}
|
|
59
|
-
toJson() {
|
|
60
|
-
const json = { ...super.toJson(), Name: this.Name };
|
|
61
|
-
if (this.Value !== undefined) {
|
|
62
|
-
json['Value'] = this.Value;
|
|
63
|
-
}
|
|
64
|
-
return json;
|
|
65
|
-
}
|
|
66
|
-
toConfig(base) {
|
|
67
|
-
const config = {
|
|
68
|
-
...super.toConfig(),
|
|
69
|
-
value: this.Value,
|
|
70
|
-
};
|
|
71
|
-
return config;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NkbC1lbnVtLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvbWV0YWRhdGEvY3NkbC9jc2RsLWVudW0tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsTUFBTSxPQUFPLFlBQWEsU0FBUSxhQUFhO0lBTW5DO0lBTFYsSUFBSSxDQUFTO0lBQ2IsTUFBTSxDQUFlO0lBQ3JCLGNBQWMsQ0FBVTtJQUN4QixPQUFPLENBQVc7SUFDbEIsWUFDVSxNQUFrQixFQUMxQixFQUNFLElBQUksRUFDSixNQUFNLEVBQ04sY0FBYyxFQUNkLE9BQU8sRUFDUCxVQUFVLEdBT1g7UUFFRCxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBZmQsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQWdCMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFUSxNQUFNO1FBQ2IsTUFBTSxJQUFJLEdBQTJCO1lBQ25DLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzQyxDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVRLFFBQVEsQ0FBQyxJQUE4QjtRQUM5QyxPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNYLEdBQUcsR0FBRztnQkFDTixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO2FBQ3ZCLENBQUMsRUFDRixFQUFFLENBQ0g7WUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDRixDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQUMzQyxJQUFJLENBQVM7SUFDYixLQUFLLENBQVU7SUFDZixZQUFZLEVBQ1YsSUFBSSxFQUNKLEtBQUssRUFDTCxVQUFVLEdBS1g7UUFDQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFUSxNQUFNO1FBQ2IsTUFBTSxJQUFJLEdBQTJCLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVRLFFBQVEsQ0FBQyxJQUFtQztRQUNuRCxNQUFNLE1BQU0sR0FBMkI7WUFDckMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO1FBQ0YsT0FBTyxNQUE2QixDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudW1UeXBlQ29uZmlnLCBFbnVtVHlwZUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ3NkbEFubm90YWJsZSB9IGZyb20gJy4vY3NkbC1hbm5vdGF0aW9uJztcbmltcG9ydCB0eXBlIHsgQ3NkbFNjaGVtYSB9IGZyb20gJy4vY3NkbC1zY2hlbWEnO1xuXG5leHBvcnQgY2xhc3MgQ3NkbEVudW1UeXBlIGV4dGVuZHMgQ3NkbEFubm90YWJsZSB7XG4gIE5hbWU6IHN0cmluZztcbiAgTWVtYmVyOiBDc2RsTWVtYmVyW107XG4gIFVuZGVybHlpbmdUeXBlPzogc3RyaW5nO1xuICBJc0ZsYWdzPzogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY2hlbWE6IENzZGxTY2hlbWEsXG4gICAge1xuICAgICAgTmFtZSxcbiAgICAgIE1lbWJlcixcbiAgICAgIFVuZGVybHlpbmdUeXBlLFxuICAgICAgSXNGbGFncyxcbiAgICAgIEFubm90YXRpb24sXG4gICAgfToge1xuICAgICAgTmFtZTogc3RyaW5nO1xuICAgICAgTWVtYmVyOiBhbnlbXTtcbiAgICAgIFVuZGVybHlpbmdUeXBlPzogc3RyaW5nO1xuICAgICAgSXNGbGFncz86IGJvb2xlYW47XG4gICAgICBBbm5vdGF0aW9uPzogYW55W107XG4gICAgfSxcbiAgKSB7XG4gICAgc3VwZXIoeyBBbm5vdGF0aW9uIH0pO1xuICAgIHRoaXMuTmFtZSA9IE5hbWU7XG4gICAgdGhpcy5NZW1iZXIgPSBNZW1iZXIubWFwKChtKSA9PiBuZXcgQ3NkbE1lbWJlcihtKSk7XG4gICAgdGhpcy5VbmRlcmx5aW5nVHlwZSA9IFVuZGVybHlpbmdUeXBlO1xuICAgIHRoaXMuSXNGbGFncyA9IElzRmxhZ3M7XG4gIH1cblxuICBvdmVycmlkZSB0b0pzb24oKSB7XG4gICAgY29uc3QganNvbjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgIC4uLnN1cGVyLnRvSnNvbigpLFxuICAgICAgTmFtZTogdGhpcy5OYW1lLFxuICAgICAgTWVtYmVyOiB0aGlzLk1lbWJlci5tYXAoKG0pID0+IG0udG9Kc29uKCkpLFxuICAgIH07XG4gICAgaWYgKHRoaXMuVW5kZXJseWluZ1R5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnVW5kZXJseWluZ1R5cGUnXSA9IHRoaXMuVW5kZXJseWluZ1R5cGU7XG4gICAgfVxuICAgIGlmICh0aGlzLklzRmxhZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnSXNGbGFncyddID0gdGhpcy5Jc0ZsYWdzO1xuICAgIH1cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIG5hbWUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuTmFtZX1gO1xuICB9XG5cbiAgbmFtZXNwYWNlKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnNjaGVtYS5OYW1lc3BhY2V9YDtcbiAgfVxuXG4gIGZ1bGxOYW1lKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnNjaGVtYS5OYW1lc3BhY2V9LiR7dGhpcy5OYW1lfWA7XG4gIH1cblxuICBvdmVycmlkZSB0b0NvbmZpZyhiYXNlPzogUGFydGlhbDxFbnVtVHlwZUNvbmZpZz4pOiBFbnVtVHlwZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnRvQ29uZmlnKCksXG4gICAgICBuYW1lOiB0aGlzLk5hbWUsXG4gICAgICBmaWVsZHM6IHRoaXMuTWVtYmVyLnJlZHVjZShcbiAgICAgICAgKGFjYywgbSkgPT4gKHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgW20uTmFtZV06IG0udG9Db25maWcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIHt9LFxuICAgICAgKSxcbiAgICAgIGZsYWdzOiB0aGlzLklzRmxhZ3MsXG4gICAgfSBhcyBFbnVtVHlwZUNvbmZpZztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3NkbE1lbWJlciBleHRlbmRzIENzZGxBbm5vdGFibGUge1xuICBOYW1lOiBzdHJpbmc7XG4gIFZhbHVlPzogbnVtYmVyO1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgTmFtZSxcbiAgICBWYWx1ZSxcbiAgICBBbm5vdGF0aW9uLFxuICB9OiB7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIFZhbHVlPzogbnVtYmVyO1xuICAgIEFubm90YXRpb24/OiBhbnlbXTtcbiAgfSkge1xuICAgIHN1cGVyKHsgQW5ub3RhdGlvbiB9KTtcbiAgICB0aGlzLk5hbWUgPSBOYW1lO1xuICAgIHRoaXMuVmFsdWUgPSBWYWx1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSnNvbigpIHtcbiAgICBjb25zdCBqc29uOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0geyAuLi5zdXBlci50b0pzb24oKSwgTmFtZTogdGhpcy5OYW1lIH07XG4gICAgaWYgKHRoaXMuVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAganNvblsnVmFsdWUnXSA9IHRoaXMuVmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Db25maWcoYmFzZT86IFBhcnRpYWw8RW51bVR5cGVGaWVsZENvbmZpZz4pOiBFbnVtVHlwZUZpZWxkQ29uZmlnIHtcbiAgICBjb25zdCBjb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICAuLi5zdXBlci50b0NvbmZpZygpLFxuICAgICAgdmFsdWU6IHRoaXMuVmFsdWUsXG4gICAgfTtcbiAgICByZXR1cm4gY29uZmlnIGFzIEVudW1UeXBlRmllbGRDb25maWc7XG4gIH1cbn1cbiJdfQ==
|