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,238 +0,0 @@
1
- import { Expression } from './base';
2
- import { FilterExpression } from './filter';
3
- import { SearchExpression } from './search';
4
- import { FieldFactory, functions, operators, syntax, transformations, RenderableFactory, } from './syntax';
5
- export class GroupByTransformations extends Expression {
6
- methods;
7
- aliases;
8
- constructor({ children, methods, aliases, } = {}) {
9
- super({ children });
10
- this.methods = methods || [];
11
- this.aliases = aliases || [];
12
- }
13
- get [Symbol.toStringTag]() {
14
- return 'GroupByTransformations';
15
- }
16
- toJson() {
17
- const json = super.toJson();
18
- return Object.assign(json, {
19
- methods: this.methods,
20
- aliases: this.aliases,
21
- });
22
- }
23
- static fromJson(json) {
24
- return new GroupByTransformations({
25
- children: json['children'].map((c) => typeof c !== 'string' ? RenderableFactory(c) : c),
26
- methods: json['methods'],
27
- aliases: json['aliases'],
28
- });
29
- }
30
- render({ aliases, escape, prefix, parser, options, } = {}) {
31
- const children = this._children.map((n) => typeof n !== 'string'
32
- ? n.render({ aliases, escape, prefix, parser, options })
33
- : n);
34
- return `aggregate(${children
35
- .map((child, index) => !child
36
- ? `${this.methods[index]} as ${this.aliases[index]}`
37
- : `${child} with ${this.methods[index]} as ${this.aliases[index]}`)
38
- .join(',')})`;
39
- }
40
- clone() {
41
- return new GroupByTransformations({
42
- children: this._children.map((c) => typeof c !== 'string' ? c.clone() : c),
43
- methods: this.methods,
44
- aliases: this.aliases,
45
- });
46
- }
47
- _add(node, method, alias) {
48
- this._children.push(node);
49
- this.methods.push(method);
50
- this.aliases.push(alias);
51
- return this;
52
- }
53
- aggregate(value, method, alias) {
54
- return this._add(value, method, alias);
55
- }
56
- sum(value, alias) {
57
- return this.aggregate(value, 'sum', alias);
58
- }
59
- min(value, alias) {
60
- return this.aggregate(value, 'min', alias);
61
- }
62
- max(value, alias) {
63
- return this.aggregate(value, 'max', alias);
64
- }
65
- average(value, alias) {
66
- return this.aggregate(value, 'average', alias);
67
- }
68
- countdistinct(value, alias) {
69
- return this.aggregate(value, 'countdistinct', alias);
70
- }
71
- count(alias) {
72
- return this.aggregate('', '$count', alias);
73
- }
74
- }
75
- export class ApplyExpression extends Expression {
76
- constructor({ children, } = {}) {
77
- super({ children });
78
- }
79
- get [Symbol.toStringTag]() {
80
- return 'ApplyExpression';
81
- }
82
- static factory(opts, current) {
83
- return opts({
84
- t: FieldFactory(),
85
- e: () => new ApplyExpression(),
86
- }, current);
87
- }
88
- toJson() {
89
- const json = super.toJson();
90
- return Object.assign(json, {});
91
- }
92
- static fromJson(json) {
93
- return new ApplyExpression({
94
- children: json['children'].map((c) => RenderableFactory(c)),
95
- });
96
- }
97
- render({ aliases, escape, prefix, parser, options, } = {}) {
98
- return this._children
99
- .map((n) => n.render({ aliases, escape, prefix, parser, options }))
100
- .join('/');
101
- }
102
- clone() {
103
- return new ApplyExpression({
104
- children: this._children.map((c) => c.clone()),
105
- });
106
- }
107
- _add(node) {
108
- this._children.push(node);
109
- return this;
110
- }
111
- aggregate(value, method, alias) {
112
- return this._add(syntax.aggregate(value, method, alias));
113
- }
114
- //topcount
115
- topCount(opts) {
116
- const node = opts({
117
- o: operators,
118
- f: functions,
119
- });
120
- return this._add(node);
121
- }
122
- //topsum
123
- topSum(opts) {
124
- const node = opts({
125
- o: operators,
126
- f: functions,
127
- });
128
- return this._add(node);
129
- }
130
- //toppercent
131
- topPercent(opts) {
132
- const node = opts({
133
- o: operators,
134
- f: functions,
135
- });
136
- return this._add(node);
137
- }
138
- //bottomcount
139
- bottomCount(opts) {
140
- const node = opts({
141
- o: operators,
142
- f: functions,
143
- });
144
- return this._add(node);
145
- }
146
- //bottomsum
147
- bottomSum(opts) {
148
- const node = opts({
149
- o: operators,
150
- f: functions,
151
- });
152
- return this._add(node);
153
- }
154
- //bottompercent
155
- bottomPercent(opts) {
156
- const node = opts({
157
- o: operators,
158
- f: functions,
159
- });
160
- return this._add(node);
161
- }
162
- identity(opts) {
163
- const node = opts({
164
- o: operators,
165
- f: functions,
166
- });
167
- return this._add(node);
168
- }
169
- concat(opts) {
170
- const node = opts({
171
- o: operators,
172
- f: functions,
173
- });
174
- return this._add(node);
175
- }
176
- //groupby
177
- groupBy(props, opts) {
178
- let properties = props({ rollup: (e) => syntax.rollup(e) });
179
- properties = Array.isArray(properties) ? properties : [properties];
180
- const transformations = opts !== undefined ? opts(new GroupByTransformations()) : undefined;
181
- return this._add(syntax.groupby(properties, transformations));
182
- }
183
- //filter
184
- filter(opts) {
185
- const exp = opts({
186
- t: FieldFactory(),
187
- o: operators,
188
- f: functions,
189
- e: (connector = 'and') => new FilterExpression({ connector }),
190
- });
191
- return this._add(transformations.filter(exp));
192
- }
193
- /*
194
- orderBy(
195
- opts: (
196
- builder: OrderByExpressionBuilder<T>,
197
- current?: OrderByExpression<T>
198
- ) => OrderByExpression<T>,
199
- current?: OrderByExpression<T>
200
- ) {
201
- const exp = opts(
202
- {
203
- t: FieldFactory<Required<T>>(),
204
- e: () => new OrderByExpression<T>(),
205
- },
206
- current
207
- ) as OrderByExpression<T>;
208
- return this._add(transformations.orderby(exp));
209
- }
210
- */
211
- //expand
212
- expand(opts) {
213
- const node = opts({
214
- o: operators,
215
- f: functions,
216
- });
217
- return this._add(node);
218
- }
219
- //search
220
- search(opts) {
221
- const exp = opts({
222
- t: FieldFactory(),
223
- o: operators,
224
- f: functions,
225
- e: (connector = 'AND') => new SearchExpression({ connector }),
226
- });
227
- return this._add(transformations.search(exp));
228
- }
229
- //compute
230
- compute(opts) {
231
- const node = opts({
232
- o: operators,
233
- f: functions,
234
- });
235
- return this._add(node);
236
- }
237
- }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3F1ZXJ5L2V4cHJlc3Npb25zL2FwcGx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdELE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUdULFNBQVMsRUFDVCxNQUFNLEVBQ04sZUFBZSxFQUVmLGlCQUFpQixHQUVsQixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLE9BQU8sc0JBQTBCLFNBQVEsVUFBYTtJQUNoRCxPQUFPLENBQStCO0lBQ3RDLE9BQU8sQ0FBVztJQUM1QixZQUFZLEVBQ1YsUUFBUSxFQUNSLE9BQU8sRUFDUCxPQUFPLE1BS0wsRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyx3QkFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRVEsTUFBTTtRQUNiLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO0lB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WUFDaEIsQ0FBQyxFQUFFLFNBQThCO1lBQ2pDLENBQUMsRUFBRSxTQUE4QjtTQUNsQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztDQWVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZpbHRlckNvbm5lY3RvciwgRmlsdGVyRXhwcmVzc2lvbiB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IFNlYXJjaENvbm5lY3RvciwgU2VhcmNoRXhwcmVzc2lvbiB9IGZyb20gJy4vc2VhcmNoJztcbmltcG9ydCB7XG4gIEZpZWxkRmFjdG9yeSxcbiAgZnVuY3Rpb25zLFxuICBPRGF0YUZ1bmN0aW9ucyxcbiAgT0RhdGFPcGVyYXRvcnMsXG4gIG9wZXJhdG9ycyxcbiAgc3ludGF4LFxuICB0cmFuc2Zvcm1hdGlvbnMsXG4gIFJlbmRlcmFibGUsXG4gIFJlbmRlcmFibGVGYWN0b3J5LFxuICBBZ2dyZWdhdGVNZXRob2QsXG59IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGNsYXNzIEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnM8VD4gZXh0ZW5kcyBFeHByZXNzaW9uPFQ+IHtcbiAgcHJvdGVjdGVkIG1ldGhvZHM6IChBZ2dyZWdhdGVNZXRob2QgfCBzdHJpbmcpW107XG4gIHByb3RlY3RlZCBhbGlhc2VzOiBzdHJpbmdbXTtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICAgIG1ldGhvZHMsXG4gICAgYWxpYXNlcyxcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICAgIG1ldGhvZHM/OiAoQWdncmVnYXRlTWV0aG9kIHwgc3RyaW5nKVtdO1xuICAgIGFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgICB0aGlzLm1ldGhvZHMgPSBtZXRob2RzIHx8IFtdO1xuICAgIHRoaXMuYWxpYXNlcyA9IGFsaWFzZXMgfHwgW107XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdHcm91cEJ5VHJhbnNmb3JtYXRpb25zJztcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSnNvbigpIHtcbiAgICBjb25zdCBqc29uID0gc3VwZXIudG9Kc29uKCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oanNvbiwge1xuICAgICAgbWV0aG9kczogdGhpcy5tZXRob2RzLFxuICAgICAgYWxpYXNlczogdGhpcy5hbGlhc2VzLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uPFQ+KGpzb246IHsgW25hbWU6IHN0cmluZ106IGFueSB9KTogR3JvdXBCeVRyYW5zZm9ybWF0aW9uczxUPiB7XG4gICAgcmV0dXJuIG5ldyBHcm91cEJ5VHJhbnNmb3JtYXRpb25zPFQ+KHtcbiAgICAgIGNoaWxkcmVuOiBqc29uWydjaGlsZHJlbiddLm1hcCgoYzogYW55KSA9PlxuICAgICAgICB0eXBlb2YgYyAhPT0gJ3N0cmluZycgPyBSZW5kZXJhYmxlRmFjdG9yeShjKSA6IGMsXG4gICAgICApLFxuICAgICAgbWV0aG9kczoganNvblsnbWV0aG9kcyddLFxuICAgICAgYWxpYXNlczoganNvblsnYWxpYXNlcyddLFxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPFQ+O1xuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICB9ID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW4ubWFwKChuKSA9PlxuICAgICAgdHlwZW9mIG4gIT09ICdzdHJpbmcnXG4gICAgICAgID8gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCwgcGFyc2VyLCBvcHRpb25zIH0pXG4gICAgICAgIDogbixcbiAgICApO1xuICAgIHJldHVybiBgYWdncmVnYXRlKCR7Y2hpbGRyZW5cbiAgICAgIC5tYXAoKGNoaWxkLCBpbmRleCkgPT5cbiAgICAgICAgIWNoaWxkXG4gICAgICAgICAgPyBgJHt0aGlzLm1ldGhvZHNbaW5kZXhdfSBhcyAke3RoaXMuYWxpYXNlc1tpbmRleF19YFxuICAgICAgICAgIDogYCR7Y2hpbGR9IHdpdGggJHt0aGlzLm1ldGhvZHNbaW5kZXhdfSBhcyAke3RoaXMuYWxpYXNlc1tpbmRleF19YCxcbiAgICAgIClcbiAgICAgIC5qb2luKCcsJyl9KWA7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnM8VD4oe1xuICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLm1hcCgoYykgPT5cbiAgICAgICAgdHlwZW9mIGMgIT09ICdzdHJpbmcnID8gYy5jbG9uZSgpIDogYyxcbiAgICAgICksXG4gICAgICBtZXRob2RzOiB0aGlzLm1ldGhvZHMsXG4gICAgICBhbGlhc2VzOiB0aGlzLmFsaWFzZXMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQoXG4gICAgbm9kZTogUmVuZGVyYWJsZSxcbiAgICBtZXRob2Q6IEFnZ3JlZ2F0ZU1ldGhvZCB8IHN0cmluZyxcbiAgICBhbGlhczogc3RyaW5nLFxuICApOiBHcm91cEJ5VHJhbnNmb3JtYXRpb25zPFQ+IHtcbiAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgIHRoaXMubWV0aG9kcy5wdXNoKG1ldGhvZCk7XG4gICAgdGhpcy5hbGlhc2VzLnB1c2goYWxpYXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWdncmVnYXRlKFxuICAgIHZhbHVlOiBhbnksXG4gICAgbWV0aG9kOiBBZ2dyZWdhdGVNZXRob2QgfCBzdHJpbmcsXG4gICAgYWxpYXM6IHN0cmluZyxcbiAgKTogR3JvdXBCeVRyYW5zZm9ybWF0aW9uczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZCh2YWx1ZSwgbWV0aG9kLCBhbGlhcyk7XG4gIH1cblxuICBzdW0odmFsdWU6IGFueSwgYWxpYXM6IHN0cmluZyk6IEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnM8VD4ge1xuICAgIHJldHVybiB0aGlzLmFnZ3JlZ2F0ZSh2YWx1ZSwgJ3N1bScsIGFsaWFzKTtcbiAgfVxuXG4gIG1pbih2YWx1ZTogYW55LCBhbGlhczogc3RyaW5nKTogR3JvdXBCeVRyYW5zZm9ybWF0aW9uczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYWdncmVnYXRlKHZhbHVlLCAnbWluJywgYWxpYXMpO1xuICB9XG5cbiAgbWF4KHZhbHVlOiBhbnksIGFsaWFzOiBzdHJpbmcpOiBHcm91cEJ5VHJhbnNmb3JtYXRpb25zPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hZ2dyZWdhdGUodmFsdWUsICdtYXgnLCBhbGlhcyk7XG4gIH1cblxuICBhdmVyYWdlKHZhbHVlOiBhbnksIGFsaWFzOiBzdHJpbmcpOiBHcm91cEJ5VHJhbnNmb3JtYXRpb25zPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hZ2dyZWdhdGUodmFsdWUsICdhdmVyYWdlJywgYWxpYXMpO1xuICB9XG4gIGNvdW50ZGlzdGluY3QodmFsdWU6IGFueSwgYWxpYXM6IHN0cmluZyk6IEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnM8VD4ge1xuICAgIHJldHVybiB0aGlzLmFnZ3JlZ2F0ZSh2YWx1ZSwgJ2NvdW50ZGlzdGluY3QnLCBhbGlhcyk7XG4gIH1cblxuICBjb3VudChhbGlhczogc3RyaW5nKTogR3JvdXBCeVRyYW5zZm9ybWF0aW9uczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYWdncmVnYXRlKCcnIGFzIGFueSwgJyRjb3VudCcsIGFsaWFzKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBBcHBseUV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICB0OiBSZXF1aXJlZDxUPjtcbiAgZTogKCkgPT4gQXBwbHlFeHByZXNzaW9uPFQ+O1xufTtcbmV4cG9ydCBjbGFzcyBBcHBseUV4cHJlc3Npb248VD4gZXh0ZW5kcyBFeHByZXNzaW9uPFQ+IHtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdBcHBseUV4cHJlc3Npb24nO1xuICB9XG5cbiAgc3RhdGljIGZhY3Rvcnk8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogQXBwbHlFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBBcHBseUV4cHJlc3Npb248VD4sXG4gICAgKSA9PiBBcHBseUV4cHJlc3Npb248VD4sXG4gICAgY3VycmVudD86IEFwcGx5RXhwcmVzc2lvbjxUPixcbiAgKTogQXBwbHlFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyhcbiAgICAgIHtcbiAgICAgICAgdDogRmllbGRGYWN0b3J5PFJlcXVpcmVkPFQ+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgQXBwbHlFeHByZXNzaW9uPFQ+KCksXG4gICAgICB9LFxuICAgICAgY3VycmVudCxcbiAgICApIGFzIEFwcGx5RXhwcmVzc2lvbjxUPjtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSnNvbigpIHtcbiAgICBjb25zdCBqc29uID0gc3VwZXIudG9Kc29uKCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oanNvbiwge30pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uPFQ+KGpzb246IHsgW25hbWU6IHN0cmluZ106IGFueSB9KTogQXBwbHlFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gbmV3IEFwcGx5RXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjoganNvblsnY2hpbGRyZW4nXS5tYXAoKGM6IGFueSkgPT4gUmVuZGVyYWJsZUZhY3RvcnkoYykpLFxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPFQ+O1xuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICB9ID0ge30pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCwgcGFyc2VyLCBvcHRpb25zIH0pKVxuICAgICAgLmpvaW4oJy8nKTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgQXBwbHlFeHByZXNzaW9uPFQ+KHtcbiAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbi5tYXAoKGMpID0+IGMuY2xvbmUoKSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgdGhpcy5fY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFnZ3JlZ2F0ZShcbiAgICB2YWx1ZTogYW55LFxuICAgIG1ldGhvZDogQWdncmVnYXRlTWV0aG9kLFxuICAgIGFsaWFzOiBzdHJpbmcsXG4gICk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChzeW50YXguYWdncmVnYXRlKHZhbHVlLCBtZXRob2QsIGFsaWFzKSk7XG4gIH1cblxuICAvL3RvcGNvdW50XG4gIHRvcENvdW50KFxuICAgIG9wdHM6IChlOiB7IG86IE9EYXRhT3BlcmF0b3JzPFQ+OyBmOiBPRGF0YUZ1bmN0aW9uczxUPiB9KSA9PiBSZW5kZXJhYmxlLFxuICApOiBBcHBseUV4cHJlc3Npb248VD4ge1xuICAgIGNvbnN0IG5vZGUgPSBvcHRzKHtcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vZGUpO1xuICB9XG5cbiAgLy90b3BzdW1cbiAgdG9wU3VtKFxuICAgIG9wdHM6IChlOiB7IG86IE9EYXRhT3BlcmF0b3JzPFQ+OyBmOiBPRGF0YUZ1bmN0aW9uczxUPiB9KSA9PiBSZW5kZXJhYmxlLFxuICApOiBBcHBseUV4cHJlc3Npb248VD4ge1xuICAgIGNvbnN0IG5vZGUgPSBvcHRzKHtcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vZGUpO1xuICB9XG5cbiAgLy90b3BwZXJjZW50XG4gIHRvcFBlcmNlbnQoXG4gICAgb3B0czogKGU6IHsgbzogT0RhdGFPcGVyYXRvcnM8VD47IGY6IE9EYXRhRnVuY3Rpb25zPFQ+IH0pID0+IFJlbmRlcmFibGUsXG4gICk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm9kZSA9IG9wdHMoe1xuICAgICAgbzogb3BlcmF0b3JzIGFzIE9EYXRhT3BlcmF0b3JzPFQ+LFxuICAgICAgZjogZnVuY3Rpb25zIGFzIE9EYXRhRnVuY3Rpb25zPFQ+LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9hZGQobm9kZSk7XG4gIH1cblxuICAvL2JvdHRvbWNvdW50XG4gIGJvdHRvbUNvdW50KFxuICAgIG9wdHM6IChlOiB7IG86IE9EYXRhT3BlcmF0b3JzPFQ+OyBmOiBPRGF0YUZ1bmN0aW9uczxUPiB9KSA9PiBSZW5kZXJhYmxlLFxuICApOiBBcHBseUV4cHJlc3Npb248VD4ge1xuICAgIGNvbnN0IG5vZGUgPSBvcHRzKHtcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vZGUpO1xuICB9XG5cbiAgLy9ib3R0b21zdW1cbiAgYm90dG9tU3VtKFxuICAgIG9wdHM6IChlOiB7IG86IE9EYXRhT3BlcmF0b3JzPFQ+OyBmOiBPRGF0YUZ1bmN0aW9uczxUPiB9KSA9PiBSZW5kZXJhYmxlLFxuICApOiBBcHBseUV4cHJlc3Npb248VD4ge1xuICAgIGNvbnN0IG5vZGUgPSBvcHRzKHtcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vZGUpO1xuICB9XG5cbiAgLy9ib3R0b21wZXJjZW50XG4gIGJvdHRvbVBlcmNlbnQoXG4gICAgb3B0czogKGU6IHsgbzogT0RhdGFPcGVyYXRvcnM8VD47IGY6IE9EYXRhRnVuY3Rpb25zPFQ+IH0pID0+IFJlbmRlcmFibGUsXG4gICk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm9kZSA9IG9wdHMoe1xuICAgICAgbzogb3BlcmF0b3JzIGFzIE9EYXRhT3BlcmF0b3JzPFQ+LFxuICAgICAgZjogZnVuY3Rpb25zIGFzIE9EYXRhRnVuY3Rpb25zPFQ+LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9hZGQobm9kZSk7XG4gIH1cblxuICBpZGVudGl0eShcbiAgICBvcHRzOiAoZTogeyBvOiBPRGF0YU9wZXJhdG9yczxUPjsgZjogT0RhdGFGdW5jdGlvbnM8VD4gfSkgPT4gUmVuZGVyYWJsZSxcbiAgKTogQXBwbHlFeHByZXNzaW9uPFQ+IHtcbiAgICBjb25zdCBub2RlID0gb3B0cyh7XG4gICAgICBvOiBvcGVyYXRvcnMgYXMgT0RhdGFPcGVyYXRvcnM8VD4sXG4gICAgICBmOiBmdW5jdGlvbnMgYXMgT0RhdGFGdW5jdGlvbnM8VD4sXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChub2RlKTtcbiAgfVxuXG4gIGNvbmNhdChcbiAgICBvcHRzOiAoZTogeyBvOiBPRGF0YU9wZXJhdG9yczxUPjsgZjogT0RhdGFGdW5jdGlvbnM8VD4gfSkgPT4gUmVuZGVyYWJsZSxcbiAgKTogQXBwbHlFeHByZXNzaW9uPFQ+IHtcbiAgICBjb25zdCBub2RlID0gb3B0cyh7XG4gICAgICBvOiBvcGVyYXRvcnMgYXMgT0RhdGFPcGVyYXRvcnM8VD4sXG4gICAgICBmOiBmdW5jdGlvbnMgYXMgT0RhdGFGdW5jdGlvbnM8VD4sXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChub2RlKTtcbiAgfVxuXG4gIC8vZ3JvdXBieVxuICBncm91cEJ5KFxuICAgIHByb3BzOiAoZTogeyByb2xsdXA6IChmOiBhbnkpID0+IGFueSB9KSA9PiBhbnkgfCBhbnlbXSxcbiAgICBvcHRzPzogKGU6IEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnM8VD4pID0+IEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnM8VD4sXG4gICk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgbGV0IHByb3BlcnRpZXMgPSBwcm9wcyh7IHJvbGx1cDogKGU6IGFueSkgPT4gc3ludGF4LnJvbGx1cChlKSB9KTtcbiAgICBwcm9wZXJ0aWVzID0gQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSA/IHByb3BlcnRpZXMgOiBbcHJvcGVydGllc107XG4gICAgY29uc3QgdHJhbnNmb3JtYXRpb25zID1cbiAgICAgIG9wdHMgIT09IHVuZGVmaW5lZCA/IG9wdHMobmV3IEdyb3VwQnlUcmFuc2Zvcm1hdGlvbnMoKSkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChzeW50YXguZ3JvdXBieShwcm9wZXJ0aWVzLCB0cmFuc2Zvcm1hdGlvbnMpKTtcbiAgfVxuXG4gIC8vZmlsdGVyXG4gIGZpbHRlcihcbiAgICBvcHRzOiAoZToge1xuICAgICAgdDogVDtcbiAgICAgIGU6IChjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IpID0+IEZpbHRlckV4cHJlc3Npb248VD47XG4gICAgICBvOiBPRGF0YU9wZXJhdG9yczxUPjtcbiAgICAgIGY6IE9EYXRhRnVuY3Rpb25zPFQ+O1xuICAgIH0pID0+IEZpbHRlckV4cHJlc3Npb248VD4sXG4gICkge1xuICAgIGNvbnN0IGV4cCA9IG9wdHMoe1xuICAgICAgdDogRmllbGRGYWN0b3J5PFJlcXVpcmVkPFQ+PigpLFxuICAgICAgbzogb3BlcmF0b3JzIGFzIE9EYXRhT3BlcmF0b3JzPFQ+LFxuICAgICAgZjogZnVuY3Rpb25zIGFzIE9EYXRhRnVuY3Rpb25zPFQ+LFxuICAgICAgZTogKGNvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcpID0+XG4gICAgICAgIG5ldyBGaWx0ZXJFeHByZXNzaW9uPFQ+KHsgY29ubmVjdG9yIH0pLFxuICAgIH0pIGFzIEZpbHRlckV4cHJlc3Npb248VD47XG4gICAgcmV0dXJuIHRoaXMuX2FkZCh0cmFuc2Zvcm1hdGlvbnMuZmlsdGVyKGV4cCkpO1xuICB9XG5cbiAgLypcbiAgb3JkZXJCeShcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBPcmRlckJ5RXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogT3JkZXJCeUV4cHJlc3Npb248VD5cbiAgICApID0+IE9yZGVyQnlFeHByZXNzaW9uPFQ+LFxuICAgIGN1cnJlbnQ/OiBPcmRlckJ5RXhwcmVzc2lvbjxUPlxuICApIHtcbiAgICBjb25zdCBleHAgPSBvcHRzKFxuICAgICAge1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVxdWlyZWQ8VD4+KCksXG4gICAgICAgIGU6ICgpID0+IG5ldyBPcmRlckJ5RXhwcmVzc2lvbjxUPigpLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRcbiAgICApIGFzIE9yZGVyQnlFeHByZXNzaW9uPFQ+O1xuICAgIHJldHVybiB0aGlzLl9hZGQodHJhbnNmb3JtYXRpb25zLm9yZGVyYnkoZXhwKSk7XG4gIH1cbiAgKi9cblxuICAvL2V4cGFuZFxuICBleHBhbmQoXG4gICAgb3B0czogKGU6IHsgbzogT0RhdGFPcGVyYXRvcnM8VD47IGY6IE9EYXRhRnVuY3Rpb25zPFQ+IH0pID0+IFJlbmRlcmFibGUsXG4gICk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm9kZSA9IG9wdHMoe1xuICAgICAgbzogb3BlcmF0b3JzIGFzIE9EYXRhT3BlcmF0b3JzPFQ+LFxuICAgICAgZjogZnVuY3Rpb25zIGFzIE9EYXRhRnVuY3Rpb25zPFQ+LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9hZGQobm9kZSk7XG4gIH1cblxuICAvL3NlYXJjaFxuICBzZWFyY2goXG4gICAgb3B0czogKGU6IHtcbiAgICAgIHQ6IFQ7XG4gICAgICBlOiAoY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yKSA9PiBTZWFyY2hFeHByZXNzaW9uPFQ+O1xuICAgICAgbzogT0RhdGFPcGVyYXRvcnM8VD47XG4gICAgICBmOiBPRGF0YUZ1bmN0aW9uczxUPjtcbiAgICB9KSA9PiBTZWFyY2hFeHByZXNzaW9uPFQ+LFxuICApIHtcbiAgICBjb25zdCBleHAgPSBvcHRzKHtcbiAgICAgIHQ6IEZpZWxkRmFjdG9yeTxSZXF1aXJlZDxUPj4oKSxcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICAgIGU6IChjb25uZWN0b3I6IFNlYXJjaENvbm5lY3RvciA9ICdBTkQnKSA9PlxuICAgICAgICBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7IGNvbm5lY3RvciB9KSxcbiAgICB9KSBhcyBTZWFyY2hFeHByZXNzaW9uPFQ+O1xuICAgIHJldHVybiB0aGlzLl9hZGQodHJhbnNmb3JtYXRpb25zLnNlYXJjaChleHApKTtcbiAgfVxuXG4gIC8vY29tcHV0ZVxuICBjb21wdXRlKFxuICAgIG9wdHM6IChlOiB7IG86IE9EYXRhT3BlcmF0b3JzPFQ+OyBmOiBPRGF0YUZ1bmN0aW9uczxUPiB9KSA9PiBSZW5kZXJhYmxlLFxuICApOiBBcHBseUV4cHJlc3Npb248VD4ge1xuICAgIGNvbnN0IG5vZGUgPSBvcHRzKHtcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vZGUpO1xuICB9XG5cbiAgLypcbiAgc2tpcChcbiAgICB0b3RhbDogbnVtYmVyXG4gICk6IEFwcGx5RXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZCh0cmFuc2Zvcm1hdGlvbnMuc2tpcCh0b3RhbCkpO1xuICB9XG5cbiAgdG9wKFxuICAgIHRvdGFsOiBudW1iZXJcbiAgKTogQXBwbHlFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKHRyYW5zZm9ybWF0aW9ucy50b3AodG90YWwpKTtcbiAgfVxuICAqL1xufVxuIl19
@@ -1,26 +0,0 @@
1
- import { Types } from '../../../utils';
2
- export class Expression {
3
- _children;
4
- constructor({ children, } = {}) {
5
- this._children = children || [];
6
- }
7
- get [Symbol.toStringTag]() {
8
- return 'Expression';
9
- }
10
- children() {
11
- return this._children;
12
- }
13
- length() {
14
- return this._children.length;
15
- }
16
- toJson() {
17
- return {
18
- $type: Types.rawType(this),
19
- children: this._children.map((c) => c.toJson()),
20
- };
21
- }
22
- resolve(parser) {
23
- return parser;
24
- }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkMsTUFBTSxPQUFnQixVQUFVO0lBQ3BCLFNBQVMsQ0FBZTtJQUNsQyxZQUFZLEVBQ1YsUUFBUSxNQUdOLEVBQUU7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFrQkQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hELENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQVc7UUFDakIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IFJlbmRlcmFibGUgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFeHByZXNzaW9uPFQ+IGltcGxlbWVudHMgUmVuZGVyYWJsZSB7XG4gIHByb3RlY3RlZCBfY2hpbGRyZW46IFJlbmRlcmFibGVbXTtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gIH0gPSB7fSkge1xuICAgIHRoaXMuX2NoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdFeHByZXNzaW9uJztcbiAgfVxuXG4gIGFic3RyYWN0IHJlbmRlcih7XG4gICAgYWxpYXNlcyxcbiAgICBlc2NhcGUsXG4gICAgcHJlZml4LFxuICAgIHBhcnNlcixcbiAgICBvcHRpb25zLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucztcbiAgfSk6IHN0cmluZztcblxuICBhYnN0cmFjdCBjbG9uZSgpOiBFeHByZXNzaW9uPFQ+O1xuXG4gIGNoaWxkcmVuKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbjtcbiAgfVxuXG4gIGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW4ubGVuZ3RoO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIHJldHVybiB7XG4gICAgICAkdHlwZTogVHlwZXMucmF3VHlwZSh0aGlzKSxcbiAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9Kc29uKCkpLFxuICAgIH07XG4gIH1cbiAgcmVzb2x2ZShwYXJzZXI6IGFueSkge1xuICAgIHJldHVybiBwYXJzZXI7XG4gIH1cbn1cbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { Expression } from './base';
2
- import { FieldFactory, functions, operators, RenderableFactory, } from './syntax';
3
- export class ComputeExpression extends Expression {
4
- names;
5
- constructor({ children, names, } = {}) {
6
- super({ children });
7
- this.names = names || [];
8
- }
9
- get [Symbol.toStringTag]() {
10
- return 'ComputeExpression';
11
- }
12
- static factory(opts, current) {
13
- return opts({
14
- t: FieldFactory(),
15
- e: () => new ComputeExpression(),
16
- }, current);
17
- }
18
- toJson() {
19
- const json = super.toJson();
20
- return Object.assign(json, {
21
- names: this.names,
22
- });
23
- }
24
- static fromJson(json) {
25
- return new ComputeExpression({
26
- children: json['children'].map((c) => RenderableFactory(c)),
27
- names: json['names'],
28
- });
29
- }
30
- render({ aliases, escape, prefix, parser, options, } = {}) {
31
- const children = this._children.map((n) => n.render({ aliases, escape, prefix, parser, options }));
32
- return this.names
33
- .map((name, index) => `${children[index]} as ${name}`)
34
- .join(',');
35
- }
36
- clone() {
37
- return new ComputeExpression({
38
- children: this._children.map((c) => c.clone()),
39
- names: [...this.names],
40
- });
41
- }
42
- _add(name, node) {
43
- this.names.push(name);
44
- this._children.push(node);
45
- return this;
46
- }
47
- field(name, opts) {
48
- const node = opts({
49
- o: operators,
50
- f: functions,
51
- });
52
- return this._add(name, node);
53
- }
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUdULFNBQVMsRUFFVCxpQkFBaUIsR0FDbEIsTUFBTSxVQUFVLENBQUM7QUFNbEIsTUFBTSxPQUFPLGlCQUFxQixTQUFRLFVBQWE7SUFDM0MsS0FBSyxDQUFXO0lBQzFCLFlBQVksRUFDVixRQUFRLEVBQ1IsS0FBSyxNQUlILEVBQUU7UUFDSixLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FDWixJQUd5QixFQUN6QixPQUE4QjtRQUU5QixPQUFPLElBQUksQ0FDVDtZQUNFLENBQUMsRUFBRSxZQUFZLEVBQWU7WUFDOUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksaUJBQWlCLEVBQUs7U0FDcEMsRUFDRCxPQUFPLENBQ2dCLENBQUM7SUFDNUIsQ0FBQztJQUVRLE1BQU07UUFDYixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUksSUFBNkI7UUFDOUMsT0FBTyxJQUFJLGlCQUFpQixDQUFJO1lBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sTUFPTCxFQUFFO1FBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQ3ZELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksaUJBQWlCLENBQUk7WUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxJQUFJLENBQUMsSUFBWSxFQUFFLElBQWdCO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FDSCxJQUFZLEVBQ1osSUFBdUU7UUFFdkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLENBQUMsRUFBRSxTQUE4QjtZQUNqQyxDQUFDLEVBQUUsU0FBOEI7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZXIsIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRmllbGRGYWN0b3J5LFxuICBmdW5jdGlvbnMsXG4gIE9EYXRhRnVuY3Rpb25zLFxuICBPRGF0YU9wZXJhdG9ycyxcbiAgb3BlcmF0b3JzLFxuICBSZW5kZXJhYmxlLFxuICBSZW5kZXJhYmxlRmFjdG9yeSxcbn0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgdHlwZSBDb21wdXRlRXhwcmVzc2lvbkJ1aWxkZXI8VD4gPSB7XG4gIHQ6IFJlcXVpcmVkPFQ+O1xuICBlOiAoKSA9PiBDb21wdXRlRXhwcmVzc2lvbjxUPjtcbn07XG5leHBvcnQgY2xhc3MgQ29tcHV0ZUV4cHJlc3Npb248VD4gZXh0ZW5kcyBFeHByZXNzaW9uPFQ+IHtcbiAgcHJvdGVjdGVkIG5hbWVzOiBzdHJpbmdbXTtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICAgIG5hbWVzLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gICAgbmFtZXM/OiBzdHJpbmdbXTtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgICB0aGlzLm5hbWVzID0gbmFtZXMgfHwgW107XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdDb21wdXRlRXhwcmVzc2lvbic7XG4gIH1cblxuICBzdGF0aWMgZmFjdG9yeTxUPihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBDb21wdXRlRXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogQ29tcHV0ZUV4cHJlc3Npb248VD4sXG4gICAgKSA9PiBDb21wdXRlRXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogQ29tcHV0ZUV4cHJlc3Npb248VD4sXG4gICk6IENvbXB1dGVFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyhcbiAgICAgIHtcbiAgICAgICAgdDogRmllbGRGYWN0b3J5PFJlcXVpcmVkPFQ+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgQ29tcHV0ZUV4cHJlc3Npb248VD4oKSxcbiAgICAgIH0sXG4gICAgICBjdXJyZW50LFxuICAgICkgYXMgQ29tcHV0ZUV4cHJlc3Npb248VD47XG4gIH1cblxuICBvdmVycmlkZSB0b0pzb24oKSB7XG4gICAgY29uc3QganNvbiA9IHN1cGVyLnRvSnNvbigpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGpzb24sIHtcbiAgICAgIG5hbWVzOiB0aGlzLm5hbWVzLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uPFQ+KGpzb246IHsgW25hbWU6IHN0cmluZ106IGFueSB9KTogQ29tcHV0ZUV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBuZXcgQ29tcHV0ZUV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGpzb25bJ2NoaWxkcmVuJ10ubWFwKChjOiBhbnkpID0+IFJlbmRlcmFibGVGYWN0b3J5KGMpKSxcbiAgICAgIG5hbWVzOiBqc29uWyduYW1lcyddLFxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPFQ+O1xuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICB9ID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW4ubWFwKChuKSA9PlxuICAgICAgbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCwgcGFyc2VyLCBvcHRpb25zIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNcbiAgICAgIC5tYXAoKG5hbWUsIGluZGV4KSA9PiBgJHtjaGlsZHJlbltpbmRleF19IGFzICR7bmFtZX1gKVxuICAgICAgLmpvaW4oJywnKTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgQ29tcHV0ZUV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLm1hcCgoYykgPT4gYy5jbG9uZSgpKSxcbiAgICAgIG5hbWVzOiBbLi4udGhpcy5uYW1lc10sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQobmFtZTogc3RyaW5nLCBub2RlOiBSZW5kZXJhYmxlKTogQ29tcHV0ZUV4cHJlc3Npb248YW55PiB7XG4gICAgdGhpcy5uYW1lcy5wdXNoKG5hbWUpO1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmaWVsZDxUPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0czogKGU6IHsgbzogT0RhdGFPcGVyYXRvcnM8VD47IGY6IE9EYXRhRnVuY3Rpb25zPFQ+IH0pID0+IFJlbmRlcmFibGUsXG4gICk6IENvbXB1dGVFeHByZXNzaW9uPFQ+IHtcbiAgICBjb25zdCBub2RlID0gb3B0cyh7XG4gICAgICBvOiBvcGVyYXRvcnMgYXMgT0RhdGFPcGVyYXRvcnM8VD4sXG4gICAgICBmOiBmdW5jdGlvbnMgYXMgT0RhdGFGdW5jdGlvbnM8VD4sXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChuYW1lLCBub2RlKTtcbiAgfVxufVxuIl19
@@ -1,118 +0,0 @@
1
- import { QueryOption } from '../../../types';
2
- import { Objects, Types } from '../../../utils';
3
- import { Expression } from './base';
4
- import { FilterExpression } from './filter';
5
- import { render, FieldFactory, RenderableFactory, resolve, } from './syntax';
6
- export class CountField {
7
- field;
8
- values;
9
- constructor(field, values = {}) {
10
- this.field = field;
11
- this.values = values;
12
- }
13
- get [Symbol.toStringTag]() {
14
- return 'CountField';
15
- }
16
- toJson() {
17
- return {
18
- field: this.field.toJson(),
19
- };
20
- }
21
- render({ aliases, escape, prefix, parser, options, }) {
22
- const params = [
23
- QueryOption.filter,
24
- QueryOption.search,
25
- ]
26
- .filter((key) => !Types.isEmpty(this.values[key]))
27
- .reduce((acc, key) => {
28
- let value = this.values[key];
29
- if (Types.rawType(value).endsWith('Expression')) {
30
- value = value.render({
31
- aliases,
32
- prefix,
33
- escape,
34
- parser: resolve([this.field], parser),
35
- options,
36
- });
37
- }
38
- return Object.assign(acc, { [key]: value });
39
- }, {});
40
- let count = `${render(this.field, {
41
- aliases,
42
- escape,
43
- prefix,
44
- parser,
45
- options,
46
- })}/$count`;
47
- if (!Types.isEmpty(params)) {
48
- count = `${count}(${Object.keys(params)
49
- .map((key) => `$${key}=${params[key]}`)
50
- .join(';')})`;
51
- }
52
- return count;
53
- }
54
- filter(opts) {
55
- return this.option(QueryOption.filter, FilterExpression.factory(opts, this.values[QueryOption.filter]));
56
- }
57
- clone() {
58
- const values = Object.keys(this.values).reduce((acc, key) => Object.assign(acc, { [key]: Objects.clone(this.values[key]) }), {});
59
- return new CountField(this.field.clone(), values);
60
- }
61
- resolve(parser) {
62
- return this.field.resolve(parser);
63
- }
64
- // Option Handler
65
- option(name, opts) {
66
- if (opts !== undefined)
67
- this.values[name] = opts;
68
- return this.values[name];
69
- }
70
- }
71
- export class CountExpression extends Expression {
72
- constructor({ children, } = {}) {
73
- super({ children });
74
- }
75
- get [Symbol.toStringTag]() {
76
- return 'CountExpression';
77
- }
78
- static factory(opts, current) {
79
- return opts({
80
- t: FieldFactory(),
81
- e: () => new CountExpression(),
82
- }, current);
83
- }
84
- _add(node) {
85
- this._children.push(node);
86
- return this;
87
- }
88
- toJson() {
89
- const json = super.toJson();
90
- return Object.assign(json, {});
91
- }
92
- static fromJson(json) {
93
- return new CountExpression({
94
- children: json['children'].map((c) => RenderableFactory(c)),
95
- });
96
- }
97
- render({ aliases, escape, prefix, parser, options, } = {}) {
98
- let content = this._children
99
- .map((n) => n.render({ aliases, escape, prefix, parser, options }))
100
- .join(`,`);
101
- return content;
102
- }
103
- clone() {
104
- return new CountExpression({
105
- children: this._children.map((c) => c.clone()),
106
- });
107
- }
108
- field(field, opts) {
109
- let countField = new CountField(field);
110
- if (opts !== undefined)
111
- opts({
112
- t: FieldFactory(),
113
- f: countField,
114
- });
115
- return this._add(countField);
116
- }
117
- }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3F1ZXJ5L2V4cHJlc3Npb25zL2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMkIsTUFBTSxVQUFVLENBQUM7QUFDckUsT0FBTyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosaUJBQWlCLEVBQ2pCLE9BQU8sR0FDUixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLE9BQU8sVUFBVTtJQUVUO0lBQ0Y7SUFGVixZQUNZLEtBQVUsRUFDWixTQUFrQyxFQUFFO1FBRGxDLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDWixXQUFNLEdBQU4sTUFBTSxDQUE4QjtJQUMzQyxDQUFDO0lBRUosSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1NBQzNCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sR0FPUjtRQUNDLE1BQU0sTUFBTSxHQUErQjtZQUN6QyxXQUFXLENBQUMsTUFBTTtZQUNsQixXQUFXLENBQUMsTUFBTTtTQUNuQjthQUNFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMs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LEVBQUUsQ0FBQyxDQUFDO2FBQ2xFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLGVBQWUsQ0FBSTtZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUNILEtBQVUsRUFDVixJQUE0RDtRQUU1RCxJQUFJLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBSSxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLElBQUksS0FBSyxTQUFTO1lBQ3BCLElBQUksQ0FBQztnQkFDSCxDQUFDLEVBQUUsWUFBWSxFQUFlO2dCQUM5QixDQUFDLEVBQUUsVUFBVTthQUNkLENBQUMsQ0FBQztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZXIsIFBhcnNlck9wdGlvbnMsIFF1ZXJ5T3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JqZWN0cywgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvbiwgRmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXIgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQge1xuICByZW5kZXIsXG4gIEZpZWxkRmFjdG9yeSxcbiAgUmVuZGVyYWJsZSxcbiAgUmVuZGVyYWJsZUZhY3RvcnksXG4gIHJlc29sdmUsXG59IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGNsYXNzIENvdW50RmllbGQ8VD4gaW1wbGVtZW50cyBSZW5kZXJhYmxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZpZWxkOiBhbnksXG4gICAgcHJpdmF0ZSB2YWx1ZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge30sXG4gICkge31cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdDb3VudEZpZWxkJztcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6IHRoaXMuZmllbGQudG9Kc29uKCksXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7XG4gICAgYWxpYXNlcyxcbiAgICBlc2NhcGUsXG4gICAgcHJlZml4LFxuICAgIHBhcnNlcixcbiAgICBvcHRpb25zLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucztcbiAgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IFtcbiAgICAgIFF1ZXJ5T3B0aW9uLmZpbHRlcixcbiAgICAgIFF1ZXJ5T3B0aW9uLnNlYXJjaCxcbiAgICBdXG4gICAgICAuZmlsdGVyKChrZXkpID0+ICFUeXBlcy5pc0VtcHR5KHRoaXMudmFsdWVzW2tleV0pKVxuICAgICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSB0aGlzLnZhbHVlc1trZXldO1xuICAgICAgICBpZiAoVHlwZXMucmF3VHlwZSh2YWx1ZSkuZW5kc1dpdGgoJ0V4cHJlc3Npb24nKSkge1xuICAgICAgICAgIHZhbHVlID0gKHZhbHVlIGFzIEV4cHJlc3Npb248VD4pLnJlbmRlcih7XG4gICAgICAgICAgICBhbGlhc2VzLFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgZXNjYXBlLFxuICAgICAgICAgICAgcGFyc2VyOiByZXNvbHZlKFt0aGlzLmZpZWxkXSwgcGFyc2VyKSxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjLCB7IFtrZXldOiB2YWx1ZSB9KTtcbiAgICAgIH0sIHt9KTtcbiAgICBsZXQgY291bnQgPSBgJHtyZW5kZXIodGhpcy5maWVsZCwge1xuICAgICAgYWxpYXNlcyxcbiAgICAgIGVzY2FwZSxcbiAgICAgIHByZWZpeCxcbiAgICAgIHBhcnNlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgfSl9LyRjb3VudGA7XG4gICAgaWYgKCFUeXBlcy5pc0VtcHR5KHBhcmFtcykpIHtcbiAgICAgIGNvdW50ID0gYCR7Y291bnR9KCR7T2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAubWFwKChrZXkpID0+IGAkJHtrZXl9PSR7cGFyYW1zW2tleV19YClcbiAgICAgICAgLmpvaW4oJzsnKX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgZmlsdGVyKFxuICAgIG9wdHM6IChcbiAgICAgIGJ1aWxkZXI6IEZpbHRlckV4cHJlc3Npb25CdWlsZGVyPFQ+LFxuICAgICAgY3VycmVudD86IEZpbHRlckV4cHJlc3Npb248VD4sXG4gICAgKSA9PiBGaWx0ZXJFeHByZXNzaW9uPFQ+LFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb24oXG4gICAgICBRdWVyeU9wdGlvbi5maWx0ZXIsXG4gICAgICBGaWx0ZXJFeHByZXNzaW9uLmZhY3Rvcnk8VD4ob3B0cywgdGhpcy52YWx1ZXNbUXVlcnlPcHRpb24uZmlsdGVyXSksXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBrZXkpID0+XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYWNjLCB7IFtrZXldOiBPYmplY3RzLmNsb25lKHRoaXMudmFsdWVzW2tleV0pIH0pLFxuICAgICAge30sXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IENvdW50RmllbGQ8VD4odGhpcy5maWVsZC5jbG9uZSgpLCB2YWx1ZXMpO1xuICB9XG5cbiAgcmVzb2x2ZShwYXJzZXI6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnJlc29sdmUocGFyc2VyKTtcbiAgfVxuXG4gIC8vIE9wdGlvbiBIYW5kbGVyXG4gIHByaXZhdGUgb3B0aW9uPE8+KG5hbWU6IFF1ZXJ5T3B0aW9uLCBvcHRzPzogTykge1xuICAgIGlmIChvcHRzICE9PSB1bmRlZmluZWQpIHRoaXMudmFsdWVzW25hbWVdID0gb3B0cztcbiAgICByZXR1cm4gdGhpcy52YWx1ZXNbbmFtZV07XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ291bnRFeHByZXNzaW9uQnVpbGRlcjxUPiA9IHtcbiAgdDogUmVxdWlyZWQ8VD47XG4gIGU6ICgpID0+IENvdW50RXhwcmVzc2lvbjxUPjtcbn07XG5leHBvcnQgY2xhc3MgQ291bnRFeHByZXNzaW9uPFQ+IGV4dGVuZHMgRXhwcmVzc2lvbjxUPiB7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICB9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnQ291bnRFeHByZXNzaW9uJztcbiAgfVxuXG4gIHN0YXRpYyBmYWN0b3J5PFQ+KFxuICAgIG9wdHM6IChcbiAgICAgIGJ1aWxkZXI6IENvdW50RXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogQ291bnRFeHByZXNzaW9uPFQ+LFxuICAgICkgPT4gQ291bnRFeHByZXNzaW9uPFQ+LFxuICAgIGN1cnJlbnQ/OiBDb3VudEV4cHJlc3Npb248VD4sXG4gICk6IENvdW50RXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIG9wdHMoXG4gICAgICB7XG4gICAgICAgIHQ6IEZpZWxkRmFjdG9yeTxSZXF1aXJlZDxUPj4oKSxcbiAgICAgICAgZTogKCkgPT4gbmV3IENvdW50RXhwcmVzc2lvbjxUPigpLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnQsXG4gICAgKSBhcyBDb3VudEV4cHJlc3Npb248VD47XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IENvdW50RXhwcmVzc2lvbjxhbnk+IHtcbiAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci50b0pzb24oKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihqc29uLCB7fSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb248VD4oanNvbjogeyBbbmFtZTogc3RyaW5nXTogYW55IH0pOiBDb3VudEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBuZXcgQ291bnRFeHByZXNzaW9uPFQ+KHtcbiAgICAgIGNoaWxkcmVuOiBqc29uWydjaGlsZHJlbiddLm1hcCgoYzogYW55KSA9PiBSZW5kZXJhYmxlRmFjdG9yeShjKSksXG4gICAgfSk7XG4gIH1cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPFQ+O1xuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICB9ID0ge30pOiBzdHJpbmcge1xuICAgIGxldCBjb250ZW50ID0gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciwgb3B0aW9ucyB9KSlcbiAgICAgIC5qb2luKGAsYCk7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IENvdW50RXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgIH0pO1xuICB9XG5cbiAgZmllbGQ8Rj4oXG4gICAgZmllbGQ6IEZbXSxcbiAgICBvcHRzPzogKGU6IHsgdDogRjsgZjogQ291bnRGaWVsZDxGPiB9KSA9PiBDb3VudEV4cHJlc3Npb248Rj4sXG4gICk6IENvdW50RXhwcmVzc2lvbjxGPiB7XG4gICAgbGV0IGNvdW50RmllbGQgPSBuZXcgQ291bnRGaWVsZDxGPihmaWVsZCk7XG4gICAgaWYgKG9wdHMgIT09IHVuZGVmaW5lZClcbiAgICAgIG9wdHMoe1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVxdWlyZWQ8Rj4+KCksXG4gICAgICAgIGY6IGNvdW50RmllbGQsXG4gICAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGNvdW50RmllbGQpO1xuICB9XG59XG4iXX0=