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.
Files changed (159) hide show
  1. package/fesm2022/angular-odata.mjs +2298 -2162
  2. package/fesm2022/angular-odata.mjs.map +1 -1
  3. package/lib/api.d.ts +10 -11
  4. package/lib/cache/cache.d.ts +2 -2
  5. package/lib/cache/memory.d.ts +2 -2
  6. package/lib/cache/storage.d.ts +2 -2
  7. package/lib/loaders.d.ts +8 -8
  8. package/lib/metadata/csdl/csdl-annotation.d.ts +3 -3
  9. package/lib/metadata/csdl/csdl-entity-container.d.ts +2 -2
  10. package/lib/metadata/csdl/csdl-entity-set.d.ts +2 -2
  11. package/lib/metadata/csdl/csdl-enum-type.d.ts +3 -3
  12. package/lib/metadata/csdl/csdl-function-action.d.ts +4 -4
  13. package/lib/metadata/csdl/csdl-reference.d.ts +2 -2
  14. package/lib/metadata/csdl/csdl-schema.d.ts +2 -2
  15. package/lib/metadata/csdl/csdl-structural-property.d.ts +3 -3
  16. package/lib/metadata/csdl/csdl-structured-type.d.ts +3 -3
  17. package/lib/metadata/metadata.d.ts +2 -2
  18. package/lib/models/options.d.ts +2 -2
  19. package/lib/module.d.ts +3 -3
  20. package/lib/options.d.ts +3 -3
  21. package/lib/resources/query/expressions/apply.d.ts +1 -1
  22. package/lib/resources/query/expressions/compute.d.ts +1 -1
  23. package/lib/resources/query/expressions/count.d.ts +1 -1
  24. package/lib/resources/query/expressions/expand.d.ts +4 -3
  25. package/lib/resources/query/expressions/filter.d.ts +2 -1
  26. package/lib/resources/query/expressions/orderby.d.ts +2 -1
  27. package/lib/resources/query/expressions/search.d.ts +2 -1
  28. package/lib/resources/query/expressions/select.d.ts +2 -1
  29. package/lib/resources/query/handlers.d.ts +17 -5
  30. package/lib/resources/resource.d.ts +5 -5
  31. package/lib/resources/types/action.d.ts +2 -2
  32. package/lib/resources/types/entity-set.d.ts +2 -2
  33. package/lib/resources/types/navigation-property.d.ts +2 -2
  34. package/lib/resources/types/property.d.ts +2 -2
  35. package/lib/schema/annotation.d.ts +3 -3
  36. package/lib/schema/callable.d.ts +3 -3
  37. package/lib/schema/element.d.ts +3 -3
  38. package/lib/schema/entity-container.d.ts +2 -2
  39. package/lib/schema/entity-set.d.ts +2 -2
  40. package/lib/schema/enum-type.d.ts +2 -2
  41. package/lib/schema/parsers/callable.d.ts +4 -4
  42. package/lib/schema/parsers/enum-type.d.ts +3 -3
  43. package/lib/schema/parsers/structured-type.d.ts +4 -4
  44. package/lib/schema/schema.d.ts +3 -3
  45. package/lib/schema/singleton.d.ts +2 -2
  46. package/lib/schema/structured-type.d.ts +3 -3
  47. package/lib/services/entity.d.ts +1 -1
  48. package/lib/settings.d.ts +2 -2
  49. package/lib/types.d.ts +76 -74
  50. package/lib/utils/odata.d.ts +2 -2
  51. package/package.json +3 -5
  52. package/schematics/apigen/files/api-config/__fileName__.ts +4 -4
  53. package/esm2022/angular-odata.mjs +0 -5
  54. package/esm2022/lib/annotations.mjs +0 -146
  55. package/esm2022/lib/api.mjs +0 -439
  56. package/esm2022/lib/cache/cache.mjs +0 -177
  57. package/esm2022/lib/cache/index.mjs +0 -4
  58. package/esm2022/lib/cache/memory.mjs +0 -30
  59. package/esm2022/lib/cache/storage.mjs +0 -57
  60. package/esm2022/lib/client.mjs +0 -215
  61. package/esm2022/lib/constants.mjs +0 -95
  62. package/esm2022/lib/helper.mjs +0 -288
  63. package/esm2022/lib/index.mjs +0 -22
  64. package/esm2022/lib/loaders.mjs +0 -43
  65. package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +0 -273
  66. package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +0 -59
  67. package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +0 -50
  68. package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +0 -74
  69. package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +0 -204
  70. package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +0 -15
  71. package/esm2022/lib/metadata/csdl/csdl-reference.mjs +0 -76
  72. package/esm2022/lib/metadata/csdl/csdl-schema.mjs +0 -87
  73. package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +0 -37
  74. package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +0 -145
  75. package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +0 -159
  76. package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +0 -46
  77. package/esm2022/lib/metadata/index.mjs +0 -3
  78. package/esm2022/lib/metadata/metadata.mjs +0 -41
  79. package/esm2022/lib/metadata/parser.mjs +0 -564
  80. package/esm2022/lib/models/collection.mjs +0 -816
  81. package/esm2022/lib/models/index.mjs +0 -4
  82. package/esm2022/lib/models/model.mjs +0 -577
  83. package/esm2022/lib/models/options.mjs +0 -1227
  84. package/esm2022/lib/module.mjs +0 -55
  85. package/esm2022/lib/options.mjs +0 -91
  86. package/esm2022/lib/resources/index.mjs +0 -7
  87. package/esm2022/lib/resources/options.mjs +0 -66
  88. package/esm2022/lib/resources/path/handlers.mjs +0 -81
  89. package/esm2022/lib/resources/path/index.mjs +0 -3
  90. package/esm2022/lib/resources/path/segments.mjs +0 -149
  91. package/esm2022/lib/resources/query/builder.mjs +0 -645
  92. package/esm2022/lib/resources/query/expressions/apply.mjs +0 -238
  93. package/esm2022/lib/resources/query/expressions/base.mjs +0 -26
  94. package/esm2022/lib/resources/query/expressions/compute.mjs +0 -55
  95. package/esm2022/lib/resources/query/expressions/count.mjs +0 -118
  96. package/esm2022/lib/resources/query/expressions/expand.mjs +0 -154
  97. package/esm2022/lib/resources/query/expressions/filter.mjs +0 -180
  98. package/esm2022/lib/resources/query/expressions/index.mjs +0 -10
  99. package/esm2022/lib/resources/query/expressions/orderby.mjs +0 -81
  100. package/esm2022/lib/resources/query/expressions/search.mjs +0 -144
  101. package/esm2022/lib/resources/query/expressions/select.mjs +0 -49
  102. package/esm2022/lib/resources/query/expressions/syntax.mjs +0 -770
  103. package/esm2022/lib/resources/query/handlers.mjs +0 -423
  104. package/esm2022/lib/resources/query/index.mjs +0 -5
  105. package/esm2022/lib/resources/query/options.mjs +0 -140
  106. package/esm2022/lib/resources/request.mjs +0 -210
  107. package/esm2022/lib/resources/resource.mjs +0 -316
  108. package/esm2022/lib/resources/response.mjs +0 -180
  109. package/esm2022/lib/resources/types/action.mjs +0 -118
  110. package/esm2022/lib/resources/types/batch.mjs +0 -428
  111. package/esm2022/lib/resources/types/count.mjs +0 -33
  112. package/esm2022/lib/resources/types/entity-set.mjs +0 -131
  113. package/esm2022/lib/resources/types/entity.mjs +0 -112
  114. package/esm2022/lib/resources/types/function.mjs +0 -149
  115. package/esm2022/lib/resources/types/index.mjs +0 -15
  116. package/esm2022/lib/resources/types/media.mjs +0 -44
  117. package/esm2022/lib/resources/types/metadata.mjs +0 -35
  118. package/esm2022/lib/resources/types/navigation-property.mjs +0 -246
  119. package/esm2022/lib/resources/types/options.mjs +0 -2
  120. package/esm2022/lib/resources/types/property.mjs +0 -187
  121. package/esm2022/lib/resources/types/reference.mjs +0 -87
  122. package/esm2022/lib/resources/types/singleton.mjs +0 -125
  123. package/esm2022/lib/resources/types/value.mjs +0 -48
  124. package/esm2022/lib/schema/annotation.mjs +0 -44
  125. package/esm2022/lib/schema/callable.mjs +0 -69
  126. package/esm2022/lib/schema/element.mjs +0 -70
  127. package/esm2022/lib/schema/entity-container.mjs +0 -13
  128. package/esm2022/lib/schema/entity-set.mjs +0 -11
  129. package/esm2022/lib/schema/enum-type.mjs +0 -69
  130. package/esm2022/lib/schema/index.mjs +0 -9
  131. package/esm2022/lib/schema/parsers/callable.mjs +0 -123
  132. package/esm2022/lib/schema/parsers/edm.mjs +0 -101
  133. package/esm2022/lib/schema/parsers/enum-type.mjs +0 -148
  134. package/esm2022/lib/schema/parsers/index.mjs +0 -5
  135. package/esm2022/lib/schema/parsers/structured-type.mjs +0 -548
  136. package/esm2022/lib/schema/schema.mjs +0 -52
  137. package/esm2022/lib/schema/singleton.mjs +0 -11
  138. package/esm2022/lib/schema/structured-type.mjs +0 -220
  139. package/esm2022/lib/services/base.mjs +0 -32
  140. package/esm2022/lib/services/entity-set.mjs +0 -161
  141. package/esm2022/lib/services/entity.mjs +0 -12
  142. package/esm2022/lib/services/factory.mjs +0 -39
  143. package/esm2022/lib/services/index.mjs +0 -5
  144. package/esm2022/lib/services/singleton.mjs +0 -55
  145. package/esm2022/lib/settings.mjs +0 -113
  146. package/esm2022/lib/types.mjs +0 -118
  147. package/esm2022/lib/utils/arraybuffers.mjs +0 -46
  148. package/esm2022/lib/utils/arrays.mjs +0 -10
  149. package/esm2022/lib/utils/dates.mjs +0 -18
  150. package/esm2022/lib/utils/durations.mjs +0 -40
  151. package/esm2022/lib/utils/enums.mjs +0 -61
  152. package/esm2022/lib/utils/http.mjs +0 -95
  153. package/esm2022/lib/utils/index.mjs +0 -10
  154. package/esm2022/lib/utils/objects.mjs +0 -204
  155. package/esm2022/lib/utils/odata.mjs +0 -22
  156. package/esm2022/lib/utils/strings.mjs +0 -20
  157. package/esm2022/lib/utils/types.mjs +0 -136
  158. package/esm2022/lib/utils/urls.mjs +0 -24
  159. 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==