angular-odata 0.122.0 → 0.124.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 (163) hide show
  1. package/esm2022/lib/api.mjs +373 -0
  2. package/esm2022/lib/cache/cache.mjs +175 -0
  3. package/{esm2020 → esm2022}/lib/cache/storage.mjs +1 -1
  4. package/esm2022/lib/client.mjs +252 -0
  5. package/{esm2020 → esm2022}/lib/helper.mjs +1 -1
  6. package/{esm2020 → esm2022}/lib/loaders.mjs +1 -1
  7. package/esm2022/lib/models/collection.mjs +865 -0
  8. package/esm2022/lib/models/model.mjs +535 -0
  9. package/esm2022/lib/models/options.mjs +1117 -0
  10. package/{esm2020 → esm2022}/lib/module.mjs +5 -5
  11. package/esm2022/lib/resources/path/segments.mjs +124 -0
  12. package/esm2022/lib/resources/query/builder.mjs +624 -0
  13. package/esm2022/lib/resources/query/expressions/base.mjs +20 -0
  14. package/esm2022/lib/resources/query/expressions/compute.mjs +39 -0
  15. package/esm2022/lib/resources/query/expressions/count.mjs +99 -0
  16. package/esm2022/lib/resources/query/expressions/expand.mjs +125 -0
  17. package/esm2022/lib/resources/query/expressions/filter.mjs +161 -0
  18. package/esm2022/lib/resources/query/expressions/orderby.mjs +56 -0
  19. package/esm2022/lib/resources/query/expressions/search.mjs +122 -0
  20. package/esm2022/lib/resources/query/expressions/select.mjs +31 -0
  21. package/esm2022/lib/resources/query/expressions/syntax.mjs +444 -0
  22. package/{esm2020 → esm2022}/lib/resources/query/handlers.mjs +1 -1
  23. package/esm2022/lib/resources/query/options.mjs +115 -0
  24. package/{esm2020 → esm2022}/lib/resources/request.mjs +1 -1
  25. package/esm2022/lib/resources/resource.mjs +257 -0
  26. package/{esm2020 → esm2022}/lib/resources/responses/annotations.mjs +1 -1
  27. package/esm2022/lib/resources/responses/csdl/csdl-annotation.mjs +33 -0
  28. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-container.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-set.mjs +1 -1
  30. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-enum-type.mjs +1 -1
  31. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-function-action.mjs +1 -1
  32. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +1 -1
  33. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-reference.mjs +1 -1
  34. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-schema.mjs +1 -1
  35. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-singleton.mjs +1 -1
  36. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structural-property.mjs +1 -1
  37. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structured-type.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-type-definition.mjs +1 -1
  39. package/esm2022/lib/resources/responses/metadata.mjs +547 -0
  40. package/{esm2020 → esm2022}/lib/resources/responses/response.mjs +1 -1
  41. package/{esm2020 → esm2022}/lib/resources/types/action.mjs +1 -1
  42. package/{esm2020 → esm2022}/lib/resources/types/batch.mjs +1 -1
  43. package/{esm2020 → esm2022}/lib/resources/types/count.mjs +1 -1
  44. package/{esm2020 → esm2022}/lib/resources/types/entity-set.mjs +1 -1
  45. package/{esm2020 → esm2022}/lib/resources/types/entity.mjs +1 -1
  46. package/{esm2020 → esm2022}/lib/resources/types/function.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/resources/types/media.mjs +1 -1
  48. package/{esm2020 → esm2022}/lib/resources/types/navigation-property.mjs +1 -1
  49. package/{esm2020 → esm2022}/lib/resources/types/property.mjs +1 -1
  50. package/{esm2020 → esm2022}/lib/resources/types/reference.mjs +1 -1
  51. package/{esm2020 → esm2022}/lib/resources/types/singleton.mjs +1 -1
  52. package/{esm2020 → esm2022}/lib/resources/types/value.mjs +1 -1
  53. package/{esm2020 → esm2022}/lib/schema/annotation.mjs +1 -1
  54. package/{esm2020 → esm2022}/lib/schema/callable.mjs +1 -1
  55. package/{esm2020 → esm2022}/lib/schema/element.mjs +1 -1
  56. package/{esm2020 → esm2022}/lib/schema/entity-container.mjs +1 -1
  57. package/{esm2020 → esm2022}/lib/schema/enum-type.mjs +1 -1
  58. package/{esm2020 → esm2022}/lib/schema/parsers/callable.mjs +1 -1
  59. package/esm2022/lib/schema/parsers/edm.mjs +99 -0
  60. package/{esm2020 → esm2022}/lib/schema/parsers/enum-type.mjs +2 -2
  61. package/esm2022/lib/schema/parsers/structured-type.mjs +502 -0
  62. package/{esm2020 → esm2022}/lib/schema/schema.mjs +1 -1
  63. package/esm2022/lib/schema/structured-type.mjs +207 -0
  64. package/esm2022/lib/services/base.mjs +29 -0
  65. package/{esm2020 → esm2022}/lib/services/entity-set.mjs +1 -1
  66. package/{esm2020 → esm2022}/lib/services/factory.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/services/singleton.mjs +1 -1
  68. package/{esm2020 → esm2022}/lib/settings.mjs +1 -1
  69. package/{esm2020 → esm2022}/lib/types.mjs +1 -1
  70. package/{esm2020 → esm2022}/lib/utils/arrays.mjs +1 -1
  71. package/{esm2020 → esm2022}/lib/utils/durations.mjs +1 -1
  72. package/esm2022/lib/utils/enums.mjs +61 -0
  73. package/{esm2020 → esm2022}/lib/utils/http.mjs +1 -1
  74. package/{esm2020 → esm2022}/lib/utils/objects.mjs +1 -1
  75. package/{esm2020 → esm2022}/lib/utils/odata.mjs +1 -1
  76. package/esm2022/lib/utils/types.mjs +136 -0
  77. package/{fesm2020 → fesm2022}/angular-odata.mjs +544 -373
  78. package/fesm2022/angular-odata.mjs.map +1 -0
  79. package/lib/helper.d.ts +1 -1
  80. package/lib/models/model.d.ts +4 -2
  81. package/lib/models/options.d.ts +7 -8
  82. package/lib/resources/path/segments.d.ts +15 -6
  83. package/lib/resources/query/builder.d.ts +21 -20
  84. package/lib/resources/query/expressions/base.d.ts +6 -4
  85. package/lib/resources/query/expressions/compute.d.ts +10 -8
  86. package/lib/resources/query/expressions/count.d.ts +14 -11
  87. package/lib/resources/query/expressions/expand.d.ts +23 -19
  88. package/lib/resources/query/expressions/filter.d.ts +22 -20
  89. package/lib/resources/query/expressions/orderby.d.ts +12 -9
  90. package/lib/resources/query/expressions/search.d.ts +12 -9
  91. package/lib/resources/query/expressions/select.d.ts +9 -7
  92. package/lib/resources/query/expressions/syntax.d.ts +75 -71
  93. package/lib/resources/query/handlers.d.ts +2 -2
  94. package/lib/resources/query/options.d.ts +15 -6
  95. package/lib/resources/resource.d.ts +2 -2
  96. package/lib/resources/responses/types.d.ts +3 -3
  97. package/lib/resources/types/options.d.ts +7 -7
  98. package/lib/schema/parsers/structured-type.d.ts +8 -5
  99. package/lib/schema/structured-type.d.ts +2 -1
  100. package/lib/types.d.ts +15 -15
  101. package/lib/utils/durations.d.ts +1 -1
  102. package/lib/utils/enums.d.ts +3 -0
  103. package/lib/utils/types.d.ts +1 -0
  104. package/package.json +9 -15
  105. package/esm2020/lib/api.mjs +0 -373
  106. package/esm2020/lib/cache/cache.mjs +0 -173
  107. package/esm2020/lib/client.mjs +0 -252
  108. package/esm2020/lib/models/collection.mjs +0 -861
  109. package/esm2020/lib/models/model.mjs +0 -507
  110. package/esm2020/lib/models/options.mjs +0 -1110
  111. package/esm2020/lib/resources/path/segments.mjs +0 -124
  112. package/esm2020/lib/resources/query/builder.mjs +0 -588
  113. package/esm2020/lib/resources/query/expressions/base.mjs +0 -20
  114. package/esm2020/lib/resources/query/expressions/compute.mjs +0 -39
  115. package/esm2020/lib/resources/query/expressions/count.mjs +0 -89
  116. package/esm2020/lib/resources/query/expressions/expand.mjs +0 -115
  117. package/esm2020/lib/resources/query/expressions/filter.mjs +0 -161
  118. package/esm2020/lib/resources/query/expressions/orderby.mjs +0 -56
  119. package/esm2020/lib/resources/query/expressions/search.mjs +0 -122
  120. package/esm2020/lib/resources/query/expressions/select.mjs +0 -31
  121. package/esm2020/lib/resources/query/expressions/syntax.mjs +0 -409
  122. package/esm2020/lib/resources/query/options.mjs +0 -115
  123. package/esm2020/lib/resources/resource.mjs +0 -251
  124. package/esm2020/lib/resources/responses/csdl/csdl-annotation.mjs +0 -33
  125. package/esm2020/lib/resources/responses/metadata.mjs +0 -547
  126. package/esm2020/lib/schema/parsers/edm.mjs +0 -104
  127. package/esm2020/lib/schema/parsers/structured-type.mjs +0 -490
  128. package/esm2020/lib/schema/structured-type.mjs +0 -202
  129. package/esm2020/lib/services/base.mjs +0 -29
  130. package/esm2020/lib/utils/enums.mjs +0 -45
  131. package/esm2020/lib/utils/types.mjs +0 -133
  132. package/fesm2015/angular-odata.mjs +0 -11811
  133. package/fesm2015/angular-odata.mjs.map +0 -1
  134. package/fesm2020/angular-odata.mjs.map +0 -1
  135. /package/{esm2020 → esm2022}/angular-odata.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/cache/index.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/cache/memory.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/constants.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/options.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/resources/index.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/resources/path/handlers.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/resources/path/index.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/resources/query/expressions/index.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/resources/query/index.mjs +0 -0
  147. /package/{esm2020 → esm2022}/lib/resources/responses/index.mjs +0 -0
  148. /package/{esm2020 → esm2022}/lib/resources/responses/options.mjs +0 -0
  149. /package/{esm2020 → esm2022}/lib/resources/responses/types.mjs +0 -0
  150. /package/{esm2020 → esm2022}/lib/resources/types/index.mjs +0 -0
  151. /package/{esm2020 → esm2022}/lib/resources/types/metadata.mjs +0 -0
  152. /package/{esm2020 → esm2022}/lib/resources/types/options.mjs +0 -0
  153. /package/{esm2020 → esm2022}/lib/schema/entity-set.mjs +0 -0
  154. /package/{esm2020 → esm2022}/lib/schema/index.mjs +0 -0
  155. /package/{esm2020 → esm2022}/lib/schema/parsers/index.mjs +0 -0
  156. /package/{esm2020 → esm2022}/lib/services/entity.mjs +0 -0
  157. /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
  158. /package/{esm2020 → esm2022}/lib/utils/arraybuffers.mjs +0 -0
  159. /package/{esm2020 → esm2022}/lib/utils/dates.mjs +0 -0
  160. /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
  161. /package/{esm2020 → esm2022}/lib/utils/strings.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/utils/urls.mjs +0 -0
  163. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,122 @@
1
+ import { Types } from '../../../utils';
2
+ import { Expression } from './base';
3
+ import { render, Grouping } from './syntax';
4
+ export class SearchTerm {
5
+ constructor(value) {
6
+ this.value = value;
7
+ }
8
+ get [Symbol.toStringTag]() {
9
+ return 'SearchTerm';
10
+ }
11
+ toJSON() {
12
+ return {
13
+ $type: Types.rawType(this),
14
+ value: this.value,
15
+ };
16
+ }
17
+ render({ aliases, escape, prefix, parser, }) {
18
+ return `${render(this.value, { aliases, escape, prefix, parser })}`;
19
+ }
20
+ clone() {
21
+ return new SearchTerm(this.value);
22
+ }
23
+ }
24
+ export class SearchExpression extends Expression {
25
+ constructor({ children, connector, negated, } = {}) {
26
+ super({ children });
27
+ this._connector = connector || 'AND';
28
+ this._negated = negated || false;
29
+ }
30
+ static search(opts, current) {
31
+ return opts({
32
+ e: (connector = 'AND') => new SearchExpression({ connector }),
33
+ }, current);
34
+ }
35
+ _add(node, connector) {
36
+ if (connector !== undefined && this._connector !== connector) {
37
+ let children = [];
38
+ if (this._children.length > 0) {
39
+ if (this._children.length === 1) {
40
+ children = [...this._children];
41
+ }
42
+ else {
43
+ let exp = new SearchExpression({
44
+ children: this._children,
45
+ connector: this._connector,
46
+ negated: this._negated,
47
+ });
48
+ if (exp.length() > 1) {
49
+ children.push(new Grouping(exp));
50
+ }
51
+ else {
52
+ children.push(exp);
53
+ }
54
+ }
55
+ }
56
+ if (node instanceof SearchExpression &&
57
+ (node.connector() === connector || node.length() === 1)) {
58
+ children = [...children, ...node.children()];
59
+ }
60
+ else {
61
+ children.push(new Grouping(node));
62
+ }
63
+ this._connector = connector;
64
+ this._children = children;
65
+ }
66
+ else if (node instanceof SearchExpression &&
67
+ !node.negated() &&
68
+ (node.connector() === connector || node.length() === 1)) {
69
+ this._children = [...this._children, ...node.children()];
70
+ }
71
+ else {
72
+ this._children.push(node instanceof SearchExpression && !node.negated()
73
+ ? new Grouping(node)
74
+ : node);
75
+ }
76
+ return this;
77
+ }
78
+ render({ aliases, escape, prefix, parser, } = {}) {
79
+ let content = this._children
80
+ .map((n) => n.render({ aliases, escape, prefix, parser }))
81
+ .join(` ${this._connector} `);
82
+ return content;
83
+ }
84
+ clone() {
85
+ return new SearchExpression({
86
+ children: this._children.map((c) => c.clone()),
87
+ connector: this._connector,
88
+ negated: this._negated,
89
+ });
90
+ }
91
+ toJSON() {
92
+ return {
93
+ children: this._children.map((c) => c.toJSON()),
94
+ connector: this._connector,
95
+ negated: this._negated,
96
+ };
97
+ }
98
+ connector() {
99
+ return this._connector;
100
+ }
101
+ negated() {
102
+ return this._negated;
103
+ }
104
+ or(exp) {
105
+ return this._add(exp, 'OR');
106
+ }
107
+ and(exp) {
108
+ return this._add(exp, 'AND');
109
+ }
110
+ not(exp) {
111
+ const notExp = new SearchExpression({
112
+ children: exp.children(),
113
+ connector: exp.connector(),
114
+ negated: true,
115
+ });
116
+ return this._add(notExp, this._connector);
117
+ }
118
+ term(value) {
119
+ return this._add(new SearchTerm(value));
120
+ }
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFJeEQsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBc0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDO0lBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEdBTVA7UUFDQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFLRCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsVUFBYTtJQUdwRCxZQUFZLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLE1BS0wsRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxJQUd3QixFQUN4QixPQUE2QjtRQUU3QixPQUFPLElBQUksQ0FDVDtZQUNFLENBQUMsRUFBRSxDQUFDLFlBQTZCLEtBQUssRUFBRSxFQUFFLENBQ3hDLElBQUksZ0JBQWdCLENBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztTQUN6QyxFQUNELE9BQU8sQ0FDZSxDQUFDO0lBQzNCLENBQUM7SUFFTyxJQUFJLENBQ1YsSUFBZ0IsRUFDaEIsU0FBMkI7UUFFM0IsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQzVELElBQUksUUFBUSxHQUFpQixFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUMvQixRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDaEM7cUJBQU07b0JBQ0wsSUFBSSxHQUFHLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSTt3QkFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7d0JBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtxQkFDdkIsQ0FBQyxDQUFDO29CQUNILElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRTt3QkFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNsQzt5QkFBTTt3QkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUNwQjtpQkFDRjthQUNGO1lBQ0QsSUFDRSxJQUFJLFlBQVksZ0JBQWdCO2dCQUNoQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUN2RDtnQkFDQSxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzlDO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNuQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1NBQzNCO2FBQU0sSUFDTCxJQUFJLFlBQVksZ0JBQWdCO1lBQ2hDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3ZEO1lBQ0EsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzFEO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDakIsSUFBSSxZQUFZLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakQsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLE1BTUosRUFBRTtRQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDekQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksZ0JBQWdCLENBQUk7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsTUFBTTtRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsRUFBRSxDQUFDLEdBQXdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBd0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSTtZQUNyQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUN4QixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUMxQixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgcmVuZGVyLCBHcm91cGluZywgUmVuZGVyYWJsZSB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgU2VhcmNoQ29ubmVjdG9yID0gJ0FORCcgfCAnT1InO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoVGVybSBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmFsdWU6IHN0cmluZykge31cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdTZWFyY2hUZXJtJztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJHR5cGU6IFR5cGVzLnJhd1R5cGUodGhpcyksXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxhbnk+O1xuICB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cmVuZGVyKHRoaXMudmFsdWUsIHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciB9KX1gO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBTZWFyY2hUZXJtKHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNlYXJjaEV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICBlOiAoY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yKSA9PiBTZWFyY2hFeHByZXNzaW9uPFQ+O1xufTtcbmV4cG9ydCBjbGFzcyBTZWFyY2hFeHByZXNzaW9uPFQ+IGV4dGVuZHMgRXhwcmVzc2lvbjxUPiB7XG4gIHByaXZhdGUgX2Nvbm5lY3RvcjogU2VhcmNoQ29ubmVjdG9yO1xuICBwcml2YXRlIF9uZWdhdGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gICAgY29ubmVjdG9yLFxuICAgIG5lZ2F0ZWQsXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgICBjb25uZWN0b3I/OiBTZWFyY2hDb25uZWN0b3I7XG4gICAgbmVnYXRlZD86IGJvb2xlYW47XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yIHx8ICdBTkQnO1xuICAgIHRoaXMuX25lZ2F0ZWQgPSBuZWdhdGVkIHx8IGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIHNlYXJjaDxUPihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBTZWFyY2hFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBTZWFyY2hFeHByZXNzaW9uPFQ+LFxuICAgICkgPT4gU2VhcmNoRXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogU2VhcmNoRXhwcmVzc2lvbjxUPixcbiAgKTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIG9wdHMoXG4gICAgICB7XG4gICAgICAgIGU6IChjb25uZWN0b3I6IFNlYXJjaENvbm5lY3RvciA9ICdBTkQnKSA9PlxuICAgICAgICAgIG5ldyBTZWFyY2hFeHByZXNzaW9uPFQ+KHsgY29ubmVjdG9yIH0pLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnQsXG4gICAgKSBhcyBTZWFyY2hFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKFxuICAgIG5vZGU6IFJlbmRlcmFibGUsXG4gICAgY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yLFxuICApOiBTZWFyY2hFeHByZXNzaW9uPFQ+IHtcbiAgICBpZiAoY29ubmVjdG9yICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fY29ubmVjdG9yICE9PSBjb25uZWN0b3IpIHtcbiAgICAgIGxldCBjaGlsZHJlbjogUmVuZGVyYWJsZVtdID0gW107XG4gICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW5dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBleHAgPSBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7XG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4sXG4gICAgICAgICAgICBjb25uZWN0b3I6IHRoaXMuX2Nvbm5lY3RvcixcbiAgICAgICAgICAgIG5lZ2F0ZWQ6IHRoaXMuX25lZ2F0ZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGV4cC5sZW5ndGgoKSA+IDEpIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobmV3IEdyb3VwaW5nKGV4cCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGV4cCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBTZWFyY2hFeHByZXNzaW9uICYmXG4gICAgICAgIChub2RlLmNvbm5lY3RvcigpID09PSBjb25uZWN0b3IgfHwgbm9kZS5sZW5ndGgoKSA9PT0gMSlcbiAgICAgICkge1xuICAgICAgICBjaGlsZHJlbiA9IFsuLi5jaGlsZHJlbiwgLi4ubm9kZS5jaGlsZHJlbigpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2gobmV3IEdyb3VwaW5nKG5vZGUpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvcjtcbiAgICAgIHRoaXMuX2NoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vZGUgaW5zdGFuY2VvZiBTZWFyY2hFeHByZXNzaW9uICYmXG4gICAgICAhbm9kZS5uZWdhdGVkKCkgJiZcbiAgICAgIChub2RlLmNvbm5lY3RvcigpID09PSBjb25uZWN0b3IgfHwgbm9kZS5sZW5ndGgoKSA9PT0gMSlcbiAgICApIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuID0gWy4uLnRoaXMuX2NoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKFxuICAgICAgICBub2RlIGluc3RhbmNlb2YgU2VhcmNoRXhwcmVzc2lvbiAmJiAhbm9kZS5uZWdhdGVkKClcbiAgICAgICAgICA/IG5ldyBHcm91cGluZyhub2RlKVxuICAgICAgICAgIDogbm9kZSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2NoaWxkcmVuXG4gICAgICAubWFwKChuKSA9PiBuLnJlbmRlcih7IGFsaWFzZXMsIGVzY2FwZSwgcHJlZml4LCBwYXJzZXIgfSkpXG4gICAgICAuam9pbihgICR7dGhpcy5fY29ubmVjdG9yfSBgKTtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvSlNPTigpKSxcbiAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICB9O1xuICB9XG5cbiAgY29ubmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3I7XG4gIH1cblxuICBuZWdhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9uZWdhdGVkO1xuICB9XG5cbiAgb3IoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChleHAsICdPUicpO1xuICB9XG5cbiAgYW5kKGV4cDogU2VhcmNoRXhwcmVzc2lvbjxUPik6IFNlYXJjaEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZXhwLCAnQU5EJyk7XG4gIH1cblxuICBub3QoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm90RXhwID0gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGV4cC5jaGlsZHJlbigpLFxuICAgICAgY29ubmVjdG9yOiBleHAuY29ubmVjdG9yKCksXG4gICAgICBuZWdhdGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2FkZChub3RFeHAsIHRoaXMuX2Nvbm5lY3Rvcik7XG4gIH1cblxuICB0ZXJtKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5ldyBTZWFyY2hUZXJtKHZhbHVlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Expression } from './base';
2
+ import { FieldFactory } from './syntax';
3
+ export class SelectExpression extends Expression {
4
+ constructor({ children, } = {}) {
5
+ super({ children });
6
+ }
7
+ static select(opts, current) {
8
+ return opts({
9
+ t: FieldFactory(),
10
+ e: () => new SelectExpression(),
11
+ }, current);
12
+ }
13
+ render({ aliases, escape, prefix, parser, } = {}) {
14
+ return this._children
15
+ .map((n) => n.render({ aliases, escape, prefix, parser }))
16
+ .join(',');
17
+ }
18
+ clone() {
19
+ return new SelectExpression({
20
+ children: this._children.map((c) => c.clone()),
21
+ });
22
+ }
23
+ _add(node) {
24
+ this._children.push(node);
25
+ return this;
26
+ }
27
+ field(field) {
28
+ return this._add(field);
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sVUFBVSxDQUFDO0FBTXBELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBQ3BELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFHd0IsRUFDeEIsT0FBNkI7UUFFN0IsT0FBTyxJQUFJLENBQ1Q7WUFDRSxDQUFDLEVBQUUsWUFBWSxFQUF5QjtZQUN4QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsRUFBSztTQUNuQyxFQUNELE9BQU8sQ0FDZSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLE1BTUosRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVM7YUFDbEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxnQkFBZ0IsQ0FBSTtZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sSUFBSSxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZpZWxkRmFjdG9yeSwgUmVuZGVyYWJsZSB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgU2VsZWN0RXhwcmVzc2lvbkJ1aWxkZXI8VD4gPSB7XG4gIHQ6IFJlYWRvbmx5PFJlcXVpcmVkPFQ+PjtcbiAgZTogKCkgPT4gU2VsZWN0RXhwcmVzc2lvbjxUPjtcbn07XG5leHBvcnQgY2xhc3MgU2VsZWN0RXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgfVxuXG4gIHN0YXRpYyBzZWxlY3Q8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogU2VsZWN0RXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogU2VsZWN0RXhwcmVzc2lvbjxUPixcbiAgICApID0+IFNlbGVjdEV4cHJlc3Npb248VD4sXG4gICAgY3VycmVudD86IFNlbGVjdEV4cHJlc3Npb248VD4sXG4gICk6IFNlbGVjdEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKFxuICAgICAge1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8VD4+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgU2VsZWN0RXhwcmVzc2lvbjxUPigpLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnQsXG4gICAgKSBhcyBTZWxlY3RFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciB9KSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFNlbGVjdEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLm1hcCgoYykgPT4gYy5jbG9uZSgpKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZChub2RlOiBSZW5kZXJhYmxlKTogU2VsZWN0RXhwcmVzc2lvbjxUPiB7XG4gICAgdGhpcy5fY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZpZWxkKGZpZWxkOiBhbnkpOiBTZWxlY3RFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGZpZWxkKTtcbiAgfVxufVxuIl19