angular-odata 0.124.0 → 0.126.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 (71) hide show
  1. package/README.md +2 -2
  2. package/esm2022/lib/api.mjs +3 -2
  3. package/esm2022/lib/cache/storage.mjs +3 -3
  4. package/esm2022/lib/client.mjs +3 -3
  5. package/esm2022/lib/constants.mjs +2 -1
  6. package/esm2022/lib/helper.mjs +2 -2
  7. package/esm2022/lib/models/collection.mjs +147 -193
  8. package/esm2022/lib/models/model.mjs +141 -119
  9. package/esm2022/lib/models/options.mjs +115 -88
  10. package/esm2022/lib/resources/path/segments.mjs +13 -7
  11. package/esm2022/lib/resources/query/expressions/base.mjs +8 -3
  12. package/esm2022/lib/resources/query/expressions/compute.mjs +19 -4
  13. package/esm2022/lib/resources/query/expressions/count.mjs +24 -7
  14. package/esm2022/lib/resources/query/expressions/expand.mjs +30 -8
  15. package/esm2022/lib/resources/query/expressions/filter.mjs +29 -12
  16. package/esm2022/lib/resources/query/expressions/orderby.mjs +31 -8
  17. package/esm2022/lib/resources/query/expressions/search.mjs +30 -11
  18. package/esm2022/lib/resources/query/expressions/select.mjs +16 -4
  19. package/esm2022/lib/resources/query/expressions/syntax.mjs +185 -31
  20. package/esm2022/lib/resources/query/handlers.mjs +2 -2
  21. package/esm2022/lib/resources/query/index.mjs +2 -1
  22. package/esm2022/lib/resources/query/options.mjs +22 -12
  23. package/esm2022/lib/resources/request.mjs +4 -3
  24. package/esm2022/lib/resources/resource.mjs +39 -15
  25. package/esm2022/lib/resources/responses/annotations.mjs +1 -1
  26. package/esm2022/lib/resources/responses/response.mjs +3 -3
  27. package/esm2022/lib/resources/types/batch.mjs +2 -2
  28. package/esm2022/lib/resources/types/count.mjs +7 -4
  29. package/esm2022/lib/resources/types/entity-set.mjs +2 -1
  30. package/esm2022/lib/resources/types/entity.mjs +5 -5
  31. package/esm2022/lib/resources/types/function.mjs +1 -9
  32. package/esm2022/lib/resources/types/navigation-property.mjs +3 -2
  33. package/esm2022/lib/resources/types/options.mjs +1 -1
  34. package/esm2022/lib/resources/types/property.mjs +11 -3
  35. package/esm2022/lib/schema/parsers/structured-type.mjs +5 -4
  36. package/esm2022/lib/schema/structured-type.mjs +13 -2
  37. package/esm2022/lib/utils/enums.mjs +1 -1
  38. package/fesm2022/angular-odata.mjs +3873 -3536
  39. package/fesm2022/angular-odata.mjs.map +1 -1
  40. package/lib/api.d.ts +2 -2
  41. package/lib/client.d.ts +1 -1
  42. package/lib/constants.d.ts +1 -0
  43. package/lib/helper.d.ts +10 -10
  44. package/lib/models/collection.d.ts +18 -20
  45. package/lib/models/model.d.ts +14 -13
  46. package/lib/models/options.d.ts +38 -13
  47. package/lib/resources/path/segments.d.ts +8 -11
  48. package/lib/resources/query/expressions/base.d.ts +6 -3
  49. package/lib/resources/query/expressions/compute.d.ts +13 -2
  50. package/lib/resources/query/expressions/count.d.ts +15 -4
  51. package/lib/resources/query/expressions/expand.d.ts +15 -4
  52. package/lib/resources/query/expressions/filter.d.ts +15 -4
  53. package/lib/resources/query/expressions/orderby.d.ts +16 -4
  54. package/lib/resources/query/expressions/search.d.ts +14 -5
  55. package/lib/resources/query/expressions/select.d.ts +11 -2
  56. package/lib/resources/query/expressions/syntax.d.ts +65 -16
  57. package/lib/resources/query/handlers.d.ts +1 -1
  58. package/lib/resources/query/index.d.ts +1 -0
  59. package/lib/resources/query/options.d.ts +4 -3
  60. package/lib/resources/request.d.ts +3 -2
  61. package/lib/resources/resource.d.ts +10 -5
  62. package/lib/resources/responses/annotations.d.ts +9 -9
  63. package/lib/resources/responses/response.d.ts +2 -2
  64. package/lib/resources/types/count.d.ts +5 -1
  65. package/lib/resources/types/function.d.ts +0 -3
  66. package/lib/resources/types/options.d.ts +2 -1
  67. package/lib/resources/types/property.d.ts +2 -0
  68. package/lib/schema/parsers/structured-type.d.ts +1 -0
  69. package/lib/schema/structured-type.d.ts +2 -1
  70. package/lib/utils/enums.d.ts +7 -7
  71. package/package.json +1 -1
@@ -1,12 +1,15 @@
1
1
  import { Expression } from './base';
2
2
  import { CountExpression } from './count';
3
- import { FieldFactory, functions, Grouping, operators, syntax, } from './syntax';
3
+ import { FieldFactory, functions, Grouping, operators, RenderableFactory, syntax, } from './syntax';
4
4
  export class FilterExpression extends Expression {
5
5
  constructor({ children, connector, negated, } = {}) {
6
6
  super({ children });
7
7
  this._connector = connector || 'and';
8
8
  this._negated = negated || false;
9
9
  }
10
+ get [Symbol.toStringTag]() {
11
+ return 'FilterExpression';
12
+ }
10
13
  static filter(opts, current) {
11
14
  return opts({
12
15
  e: (connector = 'and') => new FilterExpression({ connector }),
@@ -15,12 +18,19 @@ export class FilterExpression extends Expression {
15
18
  f: functions,
16
19
  }, current);
17
20
  }
18
- toJSON() {
19
- return {
20
- children: this._children.map((c) => c.toJSON()),
21
+ toJson() {
22
+ const json = super.toJson();
23
+ return Object.assign(json, {
21
24
  connector: this._connector,
22
25
  negated: this._negated,
23
- };
26
+ });
27
+ }
28
+ static fromJson(json) {
29
+ return new FilterExpression({
30
+ children: json['children'].map((c) => RenderableFactory(c)),
31
+ connector: json['connector'],
32
+ negated: json['negated'],
33
+ });
24
34
  }
25
35
  connector() {
26
36
  return this._connector;
@@ -28,9 +38,9 @@ export class FilterExpression extends Expression {
28
38
  negated() {
29
39
  return this._negated;
30
40
  }
31
- render({ aliases, escape, prefix, parser, } = {}) {
41
+ render({ aliases, escape, prefix, parser, options, } = {}) {
32
42
  let content = this._children
33
- .map((n) => n.render({ aliases, escape, prefix, parser }))
43
+ .map((n) => n.render({ aliases, escape, prefix, parser, options }))
34
44
  .join(` ${this._connector} `);
35
45
  if (this._negated) {
36
46
  content = `not (${content})`;
@@ -139,16 +149,23 @@ export class FilterExpression extends Expression {
139
149
  if (opts !== undefined) {
140
150
  exp = opts({
141
151
  t: FieldFactory(),
152
+ o: operators,
153
+ f: functions,
142
154
  e: (connector = 'and') => new FilterExpression({ connector }),
143
155
  });
144
156
  }
145
157
  return this._add(syntax.any(left, exp, alias));
146
158
  }
147
159
  all(left, opts, alias) {
148
- const exp = opts({
149
- t: FieldFactory(),
150
- e: (connector = 'and') => new FilterExpression({ connector }),
151
- });
160
+ let exp = undefined;
161
+ if (opts !== undefined) {
162
+ exp = opts({
163
+ t: FieldFactory(),
164
+ o: operators,
165
+ f: functions,
166
+ e: (connector = 'and') => new FilterExpression({ connector }),
167
+ });
168
+ }
152
169
  return this._add(syntax.all(left, exp, alias));
153
170
  }
154
171
  count(left, opts) {
@@ -158,4 +175,4 @@ export class FilterExpression extends Expression {
158
175
  return this._add(syntax.isof(left, type));
159
176
  }
160
177
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ3RELE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFFBQVEsRUFJUixTQUFTLEVBRVQsTUFBTSxHQUNQLE1BQU0sVUFBVSxDQUFDO0FBVWxCLE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBR3BELFlBQVksRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULE9BQU8sTUFLTCxFQUFFO1FBQ0osS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLElBQUksS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUNYLElBR3dCLEVBQ3hCLE9BQTZCO1FBRTdCLE9BQU8sSUFBSSxDQUNUO1lBQ0UsQ0FBQyxFQUFFLENBQUMsWUFBNkIsS0FBSyxFQUFFLEVBQUUsQ0FDeEMsSUFBSSxnQkFBZ0IsQ0FBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLENBQUMsRUFBRSxZQUFZLEVBQXlCO1lBQ3hDLENBQUMsRUFBRSxTQUE4QjtZQUNqQyxDQUFDLEVBQUUsU0FBOEI7U0FDbEMsRUFDRCxPQUFPLENBQ2UsQ0FBQztJQUMzQixDQUFDO0lBRVEsTUFBTTtRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUs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Q0FBQzthQUN6QyxDQUF3QixDQUFDO1NBQzNCO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxHQUFHLENBQ0QsSUFBUyxFQUNULElBR3lCLEVBQ3pCLEtBQWM7UUFFZCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDZixDQUFDLEVBQUUsWUFBWSxFQUF5QjtZQUN4QyxDQUFDLEVBQUUsQ0FBQyxZQUE2QixLQUFLLEVBQUUsRUFBRSxDQUN4QyxJQUFJLGdCQUFnQixDQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDekMsQ0FBd0IsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FDSCxJQUFTLEVBQ1QsSUFBNEQ7UUFFNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxFQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFJRCxJQUFJLENBQUMsSUFBUyxFQUFFLElBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQ291bnRFeHByZXNzaW9uLCBDb3VudEZpZWxkIH0gZnJvbSAnLi9jb3VudCc7XG5pbXBvcnQge1xuICBGaWVsZEZhY3RvcnksXG4gIGZ1bmN0aW9ucyxcbiAgR3JvdXBpbmcsXG4gIE5vcm1hbGl6ZSxcbiAgT0RhdGFGdW5jdGlvbnMsXG4gIE9EYXRhT3BlcmF0b3JzLFxuICBvcGVyYXRvcnMsXG4gIFJlbmRlcmFibGUsXG4gIHN5bnRheCxcbn0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJDb25uZWN0b3IgPSAnYW5kJyB8ICdvcic7XG5cbmV4cG9ydCB0eXBlIEZpbHRlckV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICB0OiBSZWFkb25seTxSZXF1aXJlZDxUPj47XG4gIGU6IChjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IpID0+IEZpbHRlckV4cHJlc3Npb248VD47XG4gIG86IE9EYXRhT3BlcmF0b3JzPFQ+O1xuICBmOiBPRGF0YUZ1bmN0aW9uczxUPjtcbn07XG5leHBvcnQgY2xhc3MgRmlsdGVyRXhwcmVzc2lvbjxGPiBleHRlbmRzIEV4cHJlc3Npb248Rj4ge1xuICBwcml2YXRlIF9jb25uZWN0b3I6IEZpbHRlckNvbm5lY3RvcjtcbiAgcHJpdmF0ZSBfbmVnYXRlZDogYm9vbGVhbjtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICAgIGNvbm5lY3RvcixcbiAgICBuZWdhdGVkLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gICAgY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yO1xuICAgIG5lZ2F0ZWQ/OiBib29sZWFuO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvciB8fCAnYW5kJztcbiAgICB0aGlzLl9uZWdhdGVkID0gbmVnYXRlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBmaWx0ZXI8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogRmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogRmlsdGVyRXhwcmVzc2lvbjxUPixcbiAgICApID0+IEZpbHRlckV4cHJlc3Npb248VD4sXG4gICAgY3VycmVudD86IEZpbHRlckV4cHJlc3Npb248VD4sXG4gICk6IEZpbHRlckV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKFxuICAgICAge1xuICAgICAgICBlOiAoY29ubmVjdG9yOiBGaWx0ZXJDb25uZWN0b3IgPSAnYW5kJykgPT5cbiAgICAgICAgICBuZXcgRmlsdGVyRXhwcmVzc2lvbjxUPih7IGNvbm5lY3RvciB9KSxcbiAgICAgICAgdDogRmllbGRGYWN0b3J5PFJlYWRvbmx5PFJlcXVpcmVkPFQ+Pj4oKSxcbiAgICAgICAgbzogb3BlcmF0b3JzIGFzIE9EYXRhT3BlcmF0b3JzPFQ+LFxuICAgICAgICBmOiBmdW5jdGlvbnMgYXMgT0RhdGFGdW5jdGlvbnM8VD4sXG4gICAgICB9LFxuICAgICAgY3VycmVudCxcbiAgICApIGFzIEZpbHRlckV4cHJlc3Npb248VD47XG4gIH1cblxuICBvdmVycmlkZSB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbi5tYXAoKGMpID0+IGMudG9KU09OKCkpLFxuICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgIH07XG4gIH1cblxuICBjb25uZWN0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3RvcjtcbiAgfVxuXG4gIG5lZ2F0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25lZ2F0ZWQ7XG4gIH1cblxuICByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgICBwYXJzZXIsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPGFueT47XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCwgcGFyc2VyIH0pKVxuICAgICAgLmpvaW4oYCAke3RoaXMuX2Nvbm5lY3Rvcn0gYCk7XG4gICAgaWYgKHRoaXMuX25lZ2F0ZWQpIHtcbiAgICAgIGNvbnRlbnQgPSBgbm90ICgke2NvbnRlbnR9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJFeHByZXNzaW9uPEY+KHtcbiAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbi5tYXAoKGMpID0+IGMuY2xvbmUoKSksXG4gICAgICBjb25uZWN0b3I6IHRoaXMuX2Nvbm5lY3RvcixcbiAgICAgIG5lZ2F0ZWQ6IHRoaXMuX25lZ2F0ZWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQoXG4gICAgbm9kZTogUmVuZGVyYWJsZSxcbiAgICBjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IsXG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIGlmIChjb25uZWN0b3IgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb25uZWN0b3IgIT09IGNvbm5lY3Rvcikge1xuICAgICAgbGV0IGNoaWxkcmVuOiBSZW5kZXJhYmxlW10gPSBbXTtcbiAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjaGlsZHJlbiA9IFsuLi50aGlzLl9jaGlsZHJlbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGV4cCA9IG5ldyBGaWx0ZXJFeHByZXNzaW9uPEY+KHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbixcbiAgICAgICAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZXhwLmxlbmd0aCgpID4gMSkge1xuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcoZXhwKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZXhwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbm9kZSBpbnN0YW5jZW9mIEZpbHRlckV4cHJlc3Npb24gJiZcbiAgICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICAgKSB7XG4gICAgICAgIGNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcobm9kZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yO1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9kZSBpbnN0YW5jZW9mIEZpbHRlckV4cHJlc3Npb24gJiZcbiAgICAgICFub2RlLm5lZ2F0ZWQoKSAmJlxuICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICkge1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW4sIC4uLm5vZGUuY2hpbGRyZW4oKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2goXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBGaWx0ZXJFeHByZXNzaW9uICYmICFub2RlLm5lZ2F0ZWQoKVxuICAgICAgICAgID8gbmV3IEdyb3VwaW5nKG5vZGUpXG4gICAgICAgICAgOiBub2RlLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvcihleHA6IEZpbHRlckV4cHJlc3Npb248Rj4pOiBGaWx0ZXJFeHByZXNzaW9uPEY+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGV4cCwgJ29yJyk7XG4gIH1cblxuICBhbmQoZXhwOiBGaWx0ZXJFeHByZXNzaW9uPEY+KTogRmlsdGVyRXhwcmVzc2lvbjxGPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChleHAsICdhbmQnKTtcbiAgfVxuXG4gIG5vdChleHA6IEZpbHRlckV4cHJlc3Npb248Rj4pOiBGaWx0ZXJFeHByZXNzaW9uPEY+IHtcbiAgICBjb25zdCBub3RFeHAgPSBuZXcgRmlsdGVyRXhwcmVzc2lvbjxGPih7XG4gICAgICBjaGlsZHJlbjogZXhwLmNoaWxkcmVuKCksXG4gICAgICBjb25uZWN0b3I6IGV4cC5jb25uZWN0b3IoKSxcbiAgICAgIG5lZ2F0ZWQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vdEV4cCwgdGhpcy5fY29ubmVjdG9yKTtcbiAgfVxuXG4gIGVxKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuZXEobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgbmUobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU6IE5vcm1hbGl6ZSA9ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG9wZXJhdG9ycy5uZShsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBndChsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmd0KGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGdlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuZ2UobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgbHQobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU6IE5vcm1hbGl6ZSA9ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG9wZXJhdG9ycy5sdChsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBsZShsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmxlKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGhhcyhsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmhhcyhsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBpbihsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmluKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGNvbnRhaW5zKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChmdW5jdGlvbnMuY29udGFpbnMobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgc3RhcnRzV2l0aChsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZnVuY3Rpb25zLnN0YXJ0c1dpdGgobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgZW5kc1dpdGgobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU6IE5vcm1hbGl6ZSA9ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGZ1bmN0aW9ucy5lbmRzV2l0aChsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBhbnk8Tj4oXG4gICAgbGVmdDogTltdLFxuICAgIG9wdHM/OiAoZToge1xuICAgICAgZTogKGNvbm5lY3Rvcj86IEZpbHRlckNvbm5lY3RvcikgPT4gRmlsdGVyRXhwcmVzc2lvbjxOPjtcbiAgICAgIHQ6IE47XG4gICAgfSkgPT4gRmlsdGVyRXhwcmVzc2lvbjxOPixcbiAgICBhbGlhcz86IHN0cmluZyxcbiAgKTogRmlsdGVyRXhwcmVzc2lvbjxGPiB7XG4gICAgbGV0IGV4cCA9IHVuZGVmaW5lZDtcbiAgICBpZiAob3B0cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBleHAgPSBvcHRzKHtcbiAgICAgICAgdDogRmllbGRGYWN0b3J5PFJlYWRvbmx5PFJlcXVpcmVkPE4+Pj4oKSxcbiAgICAgICAgZTogKGNvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcpID0+XG4gICAgICAgICAgbmV3IEZpbHRlckV4cHJlc3Npb248Tj4oeyBjb25uZWN0b3IgfSksXG4gICAgICB9KSBhcyBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYWRkKHN5bnRheC5hbnkobGVmdCwgZXhwLCBhbGlhcykpO1xuICB9XG5cbiAgYWxsPE4+KFxuICAgIGxlZnQ6IE5bXSxcbiAgICBvcHRzOiAoZToge1xuICAgICAgdDogTjtcbiAgICAgIGU6IChjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IpID0+IEZpbHRlckV4cHJlc3Npb248Tj47XG4gICAgfSkgPT4gRmlsdGVyRXhwcmVzc2lvbjxOPixcbiAgICBhbGlhcz86IHN0cmluZyxcbiAgKTogRmlsdGVyRXhwcmVzc2lvbjxGPiB7XG4gICAgY29uc3QgZXhwID0gb3B0cyh7XG4gICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8Tj4+PigpLFxuICAgICAgZTogKGNvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcpID0+XG4gICAgICAgIG5ldyBGaWx0ZXJFeHByZXNzaW9uPE4+KHsgY29ubmVjdG9yIH0pLFxuICAgIH0pIGFzIEZpbHRlckV4cHJlc3Npb248Tj47XG4gICAgcmV0dXJuIHRoaXMuX2FkZChzeW50YXguYWxsKGxlZnQsIGV4cCwgYWxpYXMpKTtcbiAgfVxuXG4gIGNvdW50PE4+KFxuICAgIGxlZnQ6IE5bXSxcbiAgICBvcHRzPzogKGU6IHsgdDogTjsgZjogQ291bnRGaWVsZDxOPiB9KSA9PiBDb3VudEV4cHJlc3Npb248Tj4sXG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQobmV3IENvdW50RXhwcmVzc2lvbjxOPigpLmZpZWxkKGxlZnQsIG9wdHMpKTtcbiAgfVxuXG4gIGlzb2YodHlwZTogc3RyaW5nKTogRmlsdGVyRXhwcmVzc2lvbjxGPjtcbiAgaXNvZihsZWZ0OiBGLCB0eXBlOiBzdHJpbmcpOiBGaWx0ZXJFeHByZXNzaW9uPEY+O1xuICBpc29mKGxlZnQ6IGFueSwgdHlwZT86IHN0cmluZyk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoc3ludGF4Lmlzb2YobGVmdCwgdHlwZSkpO1xuICB9XG59XG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ3RELE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFFBQVEsRUFJUixTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLE1BQU0sR0FFUCxNQUFNLFVBQVUsQ0FBQztBQVVsQixNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsVUFBYTtJQUdwRCxZQUFZLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLE1BS0wsRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxJQUd3QixFQUN4QixPQUE2QjtRQUU3QixPQUFPLElBQUksQ0FDVDtZQUNFLENBQUMsRUFBRSxDQUFDLFlBQTZCLEtBQUssRUFBRSxFQUFFLENBQ3hDLElBQUksZ0JBQWdCLENBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN4QyxDQUFDLEVBQUUsWUFBWSxFQUF5QjtZQUN4QyxDQUFDLEVBQUUsU0FBOEI7WUFDakMsQ0FBQyxFQUFFLFNBQThCO1NBQ2xDLEVBQ0QsT0FBTyxDQUNlLENBQUM7SUFDM0IsQ0FB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QUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FDSCxJQUFTLEVBQ1QsSUFBNEQ7UUFFNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxFQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFJRCxJQUFJLENBQUMsSUFBUyxFQUFFLElBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQ291bnRFeHByZXNzaW9uLCBDb3VudEZpZWxkIH0gZnJvbSAnLi9jb3VudCc7XG5pbXBvcnQge1xuICBGaWVsZEZhY3RvcnksXG4gIGZ1bmN0aW9ucyxcbiAgR3JvdXBpbmcsXG4gIE5vcm1hbGl6ZSxcbiAgT0RhdGFGdW5jdGlvbnMsXG4gIE9EYXRhT3BlcmF0b3JzLFxuICBvcGVyYXRvcnMsXG4gIFJlbmRlcmFibGUsXG4gIFJlbmRlcmFibGVGYWN0b3J5LFxuICBzeW50YXgsXG4gIFR5cGUsXG59IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcgfCAnb3InO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJFeHByZXNzaW9uQnVpbGRlcjxUPiA9IHtcbiAgdDogUmVhZG9ubHk8UmVxdWlyZWQ8VD4+O1xuICBlOiAoY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yKSA9PiBGaWx0ZXJFeHByZXNzaW9uPFQ+O1xuICBvOiBPRGF0YU9wZXJhdG9yczxUPjtcbiAgZjogT0RhdGFGdW5jdGlvbnM8VD47XG59O1xuZXhwb3J0IGNsYXNzIEZpbHRlckV4cHJlc3Npb248Rj4gZXh0ZW5kcyBFeHByZXNzaW9uPEY+IHtcbiAgcHJpdmF0ZSBfY29ubmVjdG9yOiBGaWx0ZXJDb25uZWN0b3I7XG4gIHByaXZhdGUgX25lZ2F0ZWQ6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjaGlsZHJlbixcbiAgICBjb25uZWN0b3IsXG4gICAgbmVnYXRlZCxcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICAgIGNvbm5lY3Rvcj86IEZpbHRlckNvbm5lY3RvcjtcbiAgICBuZWdhdGVkPzogYm9vbGVhbjtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgICB0aGlzLl9jb25uZWN0b3IgPSBjb25uZWN0b3IgfHwgJ2FuZCc7XG4gICAgdGhpcy5fbmVnYXRlZCA9IG5lZ2F0ZWQgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdGaWx0ZXJFeHByZXNzaW9uJztcbiAgfVxuXG4gIHN0YXRpYyBmaWx0ZXI8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogRmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogRmlsdGVyRXhwcmVzc2lvbjxUPlxuICAgICkgPT4gRmlsdGVyRXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogRmlsdGVyRXhwcmVzc2lvbjxUPlxuICApOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyhcbiAgICAgIHtcbiAgICAgICAgZTogKGNvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcpID0+XG4gICAgICAgICAgbmV3IEZpbHRlckV4cHJlc3Npb248VD4oeyBjb25uZWN0b3IgfSksXG4gICAgICAgIHQ6IEZpZWxkRmFjdG9yeTxSZWFkb25seTxSZXF1aXJlZDxUPj4+KCksXG4gICAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgICAgZjogZnVuY3Rpb25zIGFzIE9EYXRhRnVuY3Rpb25zPFQ+LFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRcbiAgICApIGFzIEZpbHRlckV4cHJlc3Npb248VD47XG4gIH1cblxuICBvdmVycmlkZSB0b0pzb24oKSB7XG4gICAgY29uc3QganNvbiA9IHN1cGVyLnRvSnNvbigpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGpzb24sIHtcbiAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbjxUPihqc29uOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IEZpbHRlckV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBuZXcgRmlsdGVyRXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjoganNvblsnY2hpbGRyZW4nXS5tYXAoKGM6IGFueSkgPT4gUmVuZGVyYWJsZUZhY3RvcnkoYykpLFxuICAgICAgY29ubmVjdG9yOiBqc29uWydjb25uZWN0b3InXSxcbiAgICAgIG5lZ2F0ZWQ6IGpzb25bJ25lZ2F0ZWQnXSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbm5lY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yO1xuICB9XG5cbiAgbmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbmVnYXRlZDtcbiAgfVxuXG4gIHJlbmRlcih7XG4gICAgYWxpYXNlcyxcbiAgICBlc2NhcGUsXG4gICAgcHJlZml4LFxuICAgIHBhcnNlcixcbiAgICBvcHRpb25zLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxhbnk+O1xuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICB9ID0ge30pOiBzdHJpbmcge1xuICAgIGxldCBjb250ZW50ID0gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciwgb3B0aW9ucyB9KSlcbiAgICAgIC5qb2luKGAgJHt0aGlzLl9jb25uZWN0b3J9IGApO1xuICAgIGlmICh0aGlzLl9uZWdhdGVkKSB7XG4gICAgICBjb250ZW50ID0gYG5vdCAoJHtjb250ZW50fSlgO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgRmlsdGVyRXhwcmVzc2lvbjxGPih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKFxuICAgIG5vZGU6IFJlbmRlcmFibGUsXG4gICAgY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yXG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIGlmIChjb25uZWN0b3IgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb25uZWN0b3IgIT09IGNvbm5lY3Rvcikge1xuICAgICAgbGV0IGNoaWxkcmVuOiBSZW5kZXJhYmxlW10gPSBbXTtcbiAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjaGlsZHJlbiA9IFsuLi50aGlzLl9jaGlsZHJlbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGV4cCA9IG5ldyBGaWx0ZXJFeHByZXNzaW9uPEY+KHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbixcbiAgICAgICAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZXhwLmxlbmd0aCgpID4gMSkge1xuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcoZXhwKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZXhwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbm9kZSBpbnN0YW5jZW9mIEZpbHRlckV4cHJlc3Npb24gJiZcbiAgICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICAgKSB7XG4gICAgICAgIGNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcobm9kZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yO1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9kZSBpbnN0YW5jZW9mIEZpbHRlckV4cHJlc3Npb24gJiZcbiAgICAgICFub2RlLm5lZ2F0ZWQoKSAmJlxuICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICkge1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW4sIC4uLm5vZGUuY2hpbGRyZW4oKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2goXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBGaWx0ZXJFeHByZXNzaW9uICYmICFub2RlLm5lZ2F0ZWQoKVxuICAgICAgICAgID8gbmV3IEdyb3VwaW5nKG5vZGUpXG4gICAgICAgICAgOiBub2RlXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9yKGV4cDogRmlsdGVyRXhwcmVzc2lvbjxGPik6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZXhwLCAnb3InKTtcbiAgfVxuXG4gIGFuZChleHA6IEZpbHRlckV4cHJlc3Npb248Rj4pOiBGaWx0ZXJFeHByZXNzaW9uPEY+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGV4cCwgJ2FuZCcpO1xuICB9XG5cbiAgbm90KGV4cDogRmlsdGVyRXhwcmVzc2lvbjxGPik6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIGNvbnN0IG5vdEV4cCA9IG5ldyBGaWx0ZXJFeHByZXNzaW9uPEY+KHtcbiAgICAgIGNoaWxkcmVuOiBleHAuY2hpbGRyZW4oKSxcbiAgICAgIGNvbm5lY3RvcjogZXhwLmNvbm5lY3RvcigpLFxuICAgICAgbmVnYXRlZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9hZGQobm90RXhwLCB0aGlzLl9jb25uZWN0b3IpO1xuICB9XG5cbiAgZXEobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU6IE5vcm1hbGl6ZSA9ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG9wZXJhdG9ycy5lcShsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBuZShsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLm5lKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGd0KGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuZ3QobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgZ2UobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU6IE5vcm1hbGl6ZSA9ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG9wZXJhdG9ycy5nZShsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBsdChsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmx0KGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGxlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMubGUobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgaGFzKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuaGFzKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGluKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuaW4obGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgY29udGFpbnMobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU6IE5vcm1hbGl6ZSA9ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGZ1bmN0aW9ucy5jb250YWlucyhsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBzdGFydHNXaXRoKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSAncmlnaHQnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChmdW5jdGlvbnMuc3RhcnRzV2l0aChsZWZ0LCByaWdodCwgbm9ybWFsaXplKSk7XG4gIH1cblxuICBlbmRzV2l0aChsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZTogTm9ybWFsaXplID0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZnVuY3Rpb25zLmVuZHNXaXRoKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGFueTxOPihcbiAgICBsZWZ0OiBOW10sXG4gICAgb3B0cz86IChlOiB7XG4gICAgICBlOiAoY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yKSA9PiBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgICAgdDogTjtcbiAgICAgIG86IE9EYXRhT3BlcmF0b3JzPE4+O1xuICAgICAgZjogT0RhdGFGdW5jdGlvbnM8Tj47XG4gICAgfSkgPT4gRmlsdGVyRXhwcmVzc2lvbjxOPixcbiAgICBhbGlhcz86IHN0cmluZ1xuICApOiBGaWx0ZXJFeHByZXNzaW9uPEY+IHtcbiAgICBsZXQgZXhwID0gdW5kZWZpbmVkO1xuICAgIGlmIChvcHRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGV4cCA9IG9wdHMoe1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8Tj4+PigpLFxuICAgICAgICBvOiBvcGVyYXRvcnMgYXMgT0RhdGFPcGVyYXRvcnM8Tj4sXG4gICAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxOPixcbiAgICAgICAgZTogKGNvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcpID0+XG4gICAgICAgICAgbmV3IEZpbHRlckV4cHJlc3Npb248Tj4oeyBjb25uZWN0b3IgfSksXG4gICAgICB9KSBhcyBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYWRkKHN5bnRheC5hbnkobGVmdCwgZXhwLCBhbGlhcykpO1xuICB9XG5cbiAgYWxsPE4+KFxuICAgIGxlZnQ6IE5bXSxcbiAgICBvcHRzPzogKGU6IHtcbiAgICAgIHQ6IE47XG4gICAgICBlOiAoY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yKSA9PiBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgICAgbzogT0RhdGFPcGVyYXRvcnM8Tj47XG4gICAgICBmOiBPRGF0YUZ1bmN0aW9uczxOPjtcbiAgICB9KSA9PiBGaWx0ZXJFeHByZXNzaW9uPE4+LFxuICAgIGFsaWFzPzogc3RyaW5nXG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIGxldCBleHAgPSB1bmRlZmluZWQ7XG4gICAgaWYgKG9wdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXhwID0gb3B0cyh7XG4gICAgICAgIHQ6IEZpZWxkRmFjdG9yeTxSZWFkb25seTxSZXF1aXJlZDxOPj4+KCksXG4gICAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxOPixcbiAgICAgICAgZjogZnVuY3Rpb25zIGFzIE9EYXRhRnVuY3Rpb25zPE4+LFxuICAgICAgICBlOiAoY29ubmVjdG9yOiBGaWx0ZXJDb25uZWN0b3IgPSAnYW5kJykgPT5cbiAgICAgICAgICBuZXcgRmlsdGVyRXhwcmVzc2lvbjxOPih7IGNvbm5lY3RvciB9KSxcbiAgICAgIH0pIGFzIEZpbHRlckV4cHJlc3Npb248Tj47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hZGQoc3ludGF4LmFsbChsZWZ0LCBleHAsIGFsaWFzKSk7XG4gIH1cblxuICBjb3VudDxOPihcbiAgICBsZWZ0OiBOW10sXG4gICAgb3B0cz86IChlOiB7IHQ6IE47IGY6IENvdW50RmllbGQ8Tj4gfSkgPT4gQ291bnRFeHByZXNzaW9uPE4+XG4gICk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQobmV3IENvdW50RXhwcmVzc2lvbjxOPigpLmZpZWxkKGxlZnQsIG9wdHMpKTtcbiAgfVxuXG4gIGlzb2YodHlwZTogc3RyaW5nKTogRmlsdGVyRXhwcmVzc2lvbjxGPjtcbiAgaXNvZihsZWZ0OiBGLCB0eXBlOiBzdHJpbmcpOiBGaWx0ZXJFeHByZXNzaW9uPEY+O1xuICBpc29mKGxlZnQ6IGFueSwgdHlwZT86IHN0cmluZyk6IEZpbHRlckV4cHJlc3Npb248Rj4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoc3ludGF4Lmlzb2YobGVmdCwgdHlwZSkpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
+ import { Types } from '../../../utils';
1
2
  import { Expression } from './base';
2
- import { render, FieldFactory } from './syntax';
3
+ import { render, FieldFactory, RenderableFactory } from './syntax';
3
4
  export class OrderByField {
4
5
  constructor(field, order) {
5
6
  this.field = field;
@@ -8,23 +9,36 @@ export class OrderByField {
8
9
  get [Symbol.toStringTag]() {
9
10
  return 'OrderByField';
10
11
  }
11
- toJSON() {
12
+ toJson() {
12
13
  return {
13
- field: this.field.toJSON(),
14
+ $type: Types.rawType(this),
15
+ field: this.field.toJson(),
14
16
  order: this.order,
15
17
  };
16
18
  }
17
- render({ aliases, escape, prefix, parser, }) {
18
- return `${render(this.field, { aliases, escape, prefix, parser })} ${this.order}`;
19
+ render({ aliases, escape, prefix, parser, options, }) {
20
+ return `${render(this.field, {
21
+ aliases,
22
+ escape,
23
+ prefix,
24
+ parser,
25
+ options,
26
+ })} ${this.order}`;
19
27
  }
20
28
  clone() {
21
29
  return new OrderByField(this.field.clone(), this.order);
22
30
  }
31
+ resolve(parser) {
32
+ return parser;
33
+ }
23
34
  }
24
35
  export class OrderByExpression extends Expression {
25
36
  constructor({ children, } = {}) {
26
37
  super({ children });
27
38
  }
39
+ get [Symbol.toStringTag]() {
40
+ return 'OrderByExpression';
41
+ }
28
42
  static orderBy(opts, current) {
29
43
  return opts({
30
44
  t: FieldFactory(),
@@ -35,9 +49,18 @@ export class OrderByExpression extends Expression {
35
49
  this._children.push(node);
36
50
  return this;
37
51
  }
38
- render({ aliases, escape, prefix, parser, } = {}) {
52
+ toJson() {
53
+ const json = super.toJson();
54
+ return Object.assign(json, {});
55
+ }
56
+ static fromJson(json) {
57
+ return new OrderByExpression({
58
+ children: json['children'].map((c) => RenderableFactory(c)),
59
+ });
60
+ }
61
+ render({ aliases, escape, prefix, parser, options, } = {}) {
39
62
  let content = this._children
40
- .map((n) => n.render({ aliases, escape, prefix, parser }))
63
+ .map((n) => n.render({ aliases, escape, prefix, parser, options }))
41
64
  .join(`,`);
42
65
  return content;
43
66
  }
@@ -53,4 +76,4 @@ export class OrderByExpression extends Expression {
53
76
  return this._add(new OrderByField(field, 'desc'));
54
77
  }
55
78
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJieS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvb3JkZXJieS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFjLE1BQU0sVUFBVSxDQUFDO0FBRTVELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1ksS0FBaUIsRUFDakIsS0FBcUI7UUFEckIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUM5QixDQUFDO0lBRUosSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sR0FNUDtRQUNDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQy9ELElBQUksQ0FBQyxLQUNQLEVBQUUsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8saUJBQXFCLFNBQVEsVUFBYTtJQUNyRCxZQUFZLEVBQ1YsUUFBUSxNQUdOLEVBQUU7UUFDSixLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUNaLElBR3lCLEVBQ3pCLE9BQThCO1FBRTlCLE9BQU8sSUFBSSxDQUNUO1lBQ0UsQ0FBQyxFQUFFLFlBQVksRUFBeUI7WUFDeEMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksaUJBQWlCLEVBQUs7U0FDcEMsRUFDRCxPQUFPLENBQ2dCLENBQUM7SUFDNUIsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFnQjtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLE1BTUosRUFBRTtRQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksaUJBQWlCLENBQUk7WUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IHJlbmRlciwgRmllbGRGYWN0b3J5LCBSZW5kZXJhYmxlIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgY2xhc3MgT3JkZXJCeUZpZWxkIGltcGxlbWVudHMgUmVuZGVyYWJsZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmaWVsZDogUmVuZGVyYWJsZSxcbiAgICBwcm90ZWN0ZWQgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnLFxuICApIHt9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnT3JkZXJCeUZpZWxkJztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6IHRoaXMuZmllbGQudG9KU09OKCksXG4gICAgICBvcmRlcjogdGhpcy5vcmRlcixcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxhbnk+O1xuICB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cmVuZGVyKHRoaXMuZmllbGQsIHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciB9KX0gJHtcbiAgICAgIHRoaXMub3JkZXJcbiAgICB9YDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgT3JkZXJCeUZpZWxkKHRoaXMuZmllbGQuY2xvbmUoKSwgdGhpcy5vcmRlcik7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT3JkZXJCeUV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICB0OiBSZWFkb25seTxSZXF1aXJlZDxUPj47XG4gIGU6ICgpID0+IE9yZGVyQnlFeHByZXNzaW9uPFQ+O1xufTtcbmV4cG9ydCBjbGFzcyBPcmRlckJ5RXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgfVxuXG4gIHN0YXRpYyBvcmRlckJ5PFQ+KFxuICAgIG9wdHM6IChcbiAgICAgIGJ1aWxkZXI6IE9yZGVyQnlFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBPcmRlckJ5RXhwcmVzc2lvbjxUPixcbiAgICApID0+IE9yZGVyQnlFeHByZXNzaW9uPFQ+LFxuICAgIGN1cnJlbnQ/OiBPcmRlckJ5RXhwcmVzc2lvbjxUPixcbiAgKTogT3JkZXJCeUV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKFxuICAgICAge1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8VD4+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgT3JkZXJCeUV4cHJlc3Npb248VD4oKSxcbiAgICAgIH0sXG4gICAgICBjdXJyZW50LFxuICAgICkgYXMgT3JkZXJCeUV4cHJlc3Npb248VD47XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IE9yZGVyQnlFeHByZXNzaW9uPFQ+IHtcbiAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2NoaWxkcmVuXG4gICAgICAubWFwKChuKSA9PiBuLnJlbmRlcih7IGFsaWFzZXMsIGVzY2FwZSwgcHJlZml4LCBwYXJzZXIgfSkpXG4gICAgICAuam9pbihgLGApO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBPcmRlckJ5RXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgIH0pO1xuICB9XG5cbiAgYXNjZW5kaW5nKGZpZWxkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5ldyBPcmRlckJ5RmllbGQoZmllbGQsICdhc2MnKSk7XG4gIH1cblxuICBkZXNjZW5kaW5nKGZpZWxkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5ldyBPcmRlckJ5RmllbGQoZmllbGQsICdkZXNjJykpO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJieS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvb3JkZXJieS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYyxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFzQixLQUFpQixFQUFZLEtBQXFCO1FBQWxELFVBQUssR0FBTCxLQUFLLENBQVk7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUFHLENBQUM7SUFFNUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxHQU9SO1FBQ0MsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLE9BQU87WUFDUCxNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixPQUFPO1NBQ1IsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxNQUFXO1FBQ2pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxpQkFBcUIsU0FBUSxVQUFhO0lBQ3JELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQ1osSUFHeUIsRUFDekIsT0FBOEI7UUFFOUIsT0FBTyxJQUFJLENBQ1Q7WUFDRSxDQUFDLEVBQUUsWUFBWSxFQUF5QjtZQUN4QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxpQkFBaUIsRUFBSztTQUNwQyxFQUNELE9BQU8sQ0FDZ0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sSUFBSSxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVRLE1BQU07UUFDYixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBSSxJQUE2QjtRQUM5QyxPQUFPLElBQUksaUJBQWlCLENBQUk7WUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxNQU9MLEVBQUU7UUFDSixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxpQkFBaUIsQ0FBSTtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3VzdG9tVHlwZSB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyByZW5kZXIsIEZpZWxkRmFjdG9yeSwgUmVuZGVyYWJsZSwgUmVuZGVyYWJsZUZhY3RvcnkgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBjbGFzcyBPcmRlckJ5RmllbGQgaW1wbGVtZW50cyBSZW5kZXJhYmxlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZpZWxkOiBSZW5kZXJhYmxlLCBwcm90ZWN0ZWQgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7fVxuXG4gIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ09yZGVyQnlGaWVsZCc7XG4gIH1cblxuICB0b0pzb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICR0eXBlOiBUeXBlcy5yYXdUeXBlKHRoaXMpLFxuICAgICAgZmllbGQ6IHRoaXMuZmllbGQudG9Kc29uKCksXG4gICAgICBvcmRlcjogdGhpcy5vcmRlcixcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPGFueT47XG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG4gIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtyZW5kZXIodGhpcy5maWVsZCwge1xuICAgICAgYWxpYXNlcyxcbiAgICAgIGVzY2FwZSxcbiAgICAgIHByZWZpeCxcbiAgICAgIHBhcnNlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgfSl9ICR7dGhpcy5vcmRlcn1gO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBPcmRlckJ5RmllbGQodGhpcy5maWVsZC5jbG9uZSgpLCB0aGlzLm9yZGVyKTtcbiAgfVxuICByZXNvbHZlKHBhcnNlcjogYW55KSB7XG4gICAgcmV0dXJuIHBhcnNlcjtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBPcmRlckJ5RXhwcmVzc2lvbkJ1aWxkZXI8VD4gPSB7XG4gIHQ6IFJlYWRvbmx5PFJlcXVpcmVkPFQ+PjtcbiAgZTogKCkgPT4gT3JkZXJCeUV4cHJlc3Npb248VD47XG59O1xuZXhwb3J0IGNsYXNzIE9yZGVyQnlFeHByZXNzaW9uPFQ+IGV4dGVuZHMgRXhwcmVzc2lvbjxUPiB7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICB9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnT3JkZXJCeUV4cHJlc3Npb24nO1xuICB9XG5cbiAgc3RhdGljIG9yZGVyQnk8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogT3JkZXJCeUV4cHJlc3Npb25CdWlsZGVyPFQ+LFxuICAgICAgY3VycmVudD86IE9yZGVyQnlFeHByZXNzaW9uPFQ+XG4gICAgKSA9PiBPcmRlckJ5RXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogT3JkZXJCeUV4cHJlc3Npb248VD5cbiAgKTogT3JkZXJCeUV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKFxuICAgICAge1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8VD4+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgT3JkZXJCeUV4cHJlc3Npb248VD4oKSxcbiAgICAgIH0sXG4gICAgICBjdXJyZW50XG4gICAgKSBhcyBPcmRlckJ5RXhwcmVzc2lvbjxUPjtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZChub2RlOiBSZW5kZXJhYmxlKTogT3JkZXJCeUV4cHJlc3Npb248VD4ge1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvdmVycmlkZSB0b0pzb24oKSB7XG4gICAgY29uc3QganNvbiA9IHN1cGVyLnRvSnNvbigpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGpzb24sIHt9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbjxUPihqc29uOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IE9yZGVyQnlFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gbmV3IE9yZGVyQnlFeHByZXNzaW9uPFQ+KHtcbiAgICAgIGNoaWxkcmVuOiBqc29uWydjaGlsZHJlbiddLm1hcCgoYzogYW55KSA9PiBSZW5kZXJhYmxlRmFjdG9yeShjKSksXG4gICAgfSk7XG4gIH1cblxuICByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgICBwYXJzZXIsXG4gICAgb3B0aW9ucyxcbiAgfToge1xuICAgIGFsaWFzZXM/OiBRdWVyeUN1c3RvbVR5cGVbXTtcbiAgICBlc2NhcGU/OiBib29sZWFuO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBwYXJzZXI/OiBQYXJzZXI8VD47XG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCwgcGFyc2VyLCBvcHRpb25zIH0pKVxuICAgICAgLmpvaW4oYCxgKTtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgT3JkZXJCeUV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLm1hcCgoYykgPT4gYy5jbG9uZSgpKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzY2VuZGluZyhmaWVsZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChuZXcgT3JkZXJCeUZpZWxkKGZpZWxkLCAnYXNjJykpO1xuICB9XG5cbiAgZGVzY2VuZGluZyhmaWVsZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChuZXcgT3JkZXJCeUZpZWxkKGZpZWxkLCAnZGVzYycpKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Types } from '../../../utils';
2
2
  import { Expression } from './base';
3
- import { render, Grouping } from './syntax';
3
+ import { render, Grouping, RenderableFactory } from './syntax';
4
4
  export class SearchTerm {
5
5
  constructor(value) {
6
6
  this.value = value;
@@ -8,18 +8,27 @@ export class SearchTerm {
8
8
  get [Symbol.toStringTag]() {
9
9
  return 'SearchTerm';
10
10
  }
11
- toJSON() {
11
+ toJson() {
12
12
  return {
13
13
  $type: Types.rawType(this),
14
14
  value: this.value,
15
15
  };
16
16
  }
17
- render({ aliases, escape, prefix, parser, }) {
18
- return `${render(this.value, { aliases, escape, prefix, parser })}`;
17
+ render({ aliases, escape, prefix, parser, options, }) {
18
+ return `${render(this.value, {
19
+ aliases,
20
+ escape,
21
+ prefix,
22
+ parser,
23
+ options,
24
+ })}`;
19
25
  }
20
26
  clone() {
21
27
  return new SearchTerm(this.value);
22
28
  }
29
+ resolve(parser) {
30
+ return parser;
31
+ }
23
32
  }
24
33
  export class SearchExpression extends Expression {
25
34
  constructor({ children, connector, negated, } = {}) {
@@ -27,6 +36,9 @@ export class SearchExpression extends Expression {
27
36
  this._connector = connector || 'AND';
28
37
  this._negated = negated || false;
29
38
  }
39
+ get [Symbol.toStringTag]() {
40
+ return 'SearchExpression';
41
+ }
30
42
  static search(opts, current) {
31
43
  return opts({
32
44
  e: (connector = 'AND') => new SearchExpression({ connector }),
@@ -75,9 +87,9 @@ export class SearchExpression extends Expression {
75
87
  }
76
88
  return this;
77
89
  }
78
- render({ aliases, escape, prefix, parser, } = {}) {
90
+ render({ aliases, escape, prefix, parser, options, } = {}) {
79
91
  let content = this._children
80
- .map((n) => n.render({ aliases, escape, prefix, parser }))
92
+ .map((n) => n.render({ aliases, escape, prefix, parser, options }))
81
93
  .join(` ${this._connector} `);
82
94
  return content;
83
95
  }
@@ -88,12 +100,19 @@ export class SearchExpression extends Expression {
88
100
  negated: this._negated,
89
101
  });
90
102
  }
91
- toJSON() {
92
- return {
93
- children: this._children.map((c) => c.toJSON()),
103
+ toJson() {
104
+ const json = super.toJson();
105
+ return Object.assign(json, {
94
106
  connector: this._connector,
95
107
  negated: this._negated,
96
- };
108
+ });
109
+ }
110
+ static fromJson(json) {
111
+ return new SearchExpression({
112
+ children: json['children'].map((c) => RenderableFactory(c)),
113
+ connector: json['connector'],
114
+ negated: json['negated'],
115
+ });
97
116
  }
98
117
  connector() {
99
118
  return this._connector;
@@ -119,4 +138,4 @@ export class SearchExpression extends Expression {
119
138
  return this._add(new SearchTerm(value));
120
139
  }
121
140
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFJeEQsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBc0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDO0lBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEdBTVA7UUFDQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFLRCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsVUFBYTtJQUdwRCxZQUFZLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLE1BS0wsRUFB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QUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBd0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSTtZQUNyQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUN4QixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUMxQixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgcmVuZGVyLCBHcm91cGluZywgUmVuZGVyYWJsZSB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgU2VhcmNoQ29ubmVjdG9yID0gJ0FORCcgfCAnT1InO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoVGVybSBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmFsdWU6IHN0cmluZykge31cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdTZWFyY2hUZXJtJztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJHR5cGU6IFR5cGVzLnJhd1R5cGUodGhpcyksXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxhbnk+O1xuICB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cmVuZGVyKHRoaXMudmFsdWUsIHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciB9KX1gO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBTZWFyY2hUZXJtKHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNlYXJjaEV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICBlOiAoY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yKSA9PiBTZWFyY2hFeHByZXNzaW9uPFQ+O1xufTtcbmV4cG9ydCBjbGFzcyBTZWFyY2hFeHByZXNzaW9uPFQ+IGV4dGVuZHMgRXhwcmVzc2lvbjxUPiB7XG4gIHByaXZhdGUgX2Nvbm5lY3RvcjogU2VhcmNoQ29ubmVjdG9yO1xuICBwcml2YXRlIF9uZWdhdGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gICAgY29ubmVjdG9yLFxuICAgIG5lZ2F0ZWQsXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgICBjb25uZWN0b3I/OiBTZWFyY2hDb25uZWN0b3I7XG4gICAgbmVnYXRlZD86IGJvb2xlYW47XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yIHx8ICdBTkQnO1xuICAgIHRoaXMuX25lZ2F0ZWQgPSBuZWdhdGVkIHx8IGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIHNlYXJjaDxUPihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBTZWFyY2hFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBTZWFyY2hFeHByZXNzaW9uPFQ+LFxuICAgICkgPT4gU2VhcmNoRXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogU2VhcmNoRXhwcmVzc2lvbjxUPixcbiAgKTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIG9wdHMoXG4gICAgICB7XG4gICAgICAgIGU6IChjb25uZWN0b3I6IFNlYXJjaENvbm5lY3RvciA9ICdBTkQnKSA9PlxuICAgICAgICAgIG5ldyBTZWFyY2hFeHByZXNzaW9uPFQ+KHsgY29ubmVjdG9yIH0pLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnQsXG4gICAgKSBhcyBTZWFyY2hFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKFxuICAgIG5vZGU6IFJlbmRlcmFibGUsXG4gICAgY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yLFxuICApOiBTZWFyY2hFeHByZXNzaW9uPFQ+IHtcbiAgICBpZiAoY29ubmVjdG9yICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fY29ubmVjdG9yICE9PSBjb25uZWN0b3IpIHtcbiAgICAgIGxldCBjaGlsZHJlbjogUmVuZGVyYWJsZVtdID0gW107XG4gICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW5dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBleHAgPSBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7XG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4sXG4gICAgICAgICAgICBjb25uZWN0b3I6IHRoaXMuX2Nvbm5lY3RvcixcbiAgICAgICAgICAgIG5lZ2F0ZWQ6IHRoaXMuX25lZ2F0ZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGV4cC5sZW5ndGgoKSA+IDEpIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobmV3IEdyb3VwaW5nKGV4cCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGV4cCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBTZWFyY2hFeHByZXNzaW9uICYmXG4gICAgICAgIChub2RlLmNvbm5lY3RvcigpID09PSBjb25uZWN0b3IgfHwgbm9kZS5sZW5ndGgoKSA9PT0gMSlcbiAgICAgICkge1xuICAgICAgICBjaGlsZHJlbiA9IFsuLi5jaGlsZHJlbiwgLi4ubm9kZS5jaGlsZHJlbigpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2gobmV3IEdyb3VwaW5nKG5vZGUpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvcjtcbiAgICAgIHRoaXMuX2NoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vZGUgaW5zdGFuY2VvZiBTZWFyY2hFeHByZXNzaW9uICYmXG4gICAgICAhbm9kZS5uZWdhdGVkKCkgJiZcbiAgICAgIChub2RlLmNvbm5lY3RvcigpID09PSBjb25uZWN0b3IgfHwgbm9kZS5sZW5ndGgoKSA9PT0gMSlcbiAgICApIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuID0gWy4uLnRoaXMuX2NoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKFxuICAgICAgICBub2RlIGluc3RhbmNlb2YgU2VhcmNoRXhwcmVzc2lvbiAmJiAhbm9kZS5uZWdhdGVkKClcbiAgICAgICAgICA/IG5ldyBHcm91cGluZyhub2RlKVxuICAgICAgICAgIDogbm9kZSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2NoaWxkcmVuXG4gICAgICAubWFwKChuKSA9PiBuLnJlbmRlcih7IGFsaWFzZXMsIGVzY2FwZSwgcHJlZml4LCBwYXJzZXIgfSkpXG4gICAgICAuam9pbihgICR7dGhpcy5fY29ubmVjdG9yfSBgKTtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvSlNPTigpKSxcbiAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICB9O1xuICB9XG5cbiAgY29ubmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3I7XG4gIH1cblxuICBuZWdhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9uZWdhdGVkO1xuICB9XG5cbiAgb3IoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChleHAsICdPUicpO1xuICB9XG5cbiAgYW5kKGV4cDogU2VhcmNoRXhwcmVzc2lvbjxUPik6IFNlYXJjaEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZXhwLCAnQU5EJyk7XG4gIH1cblxuICBub3QoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm90RXhwID0gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGV4cC5jaGlsZHJlbigpLFxuICAgICAgY29ubmVjdG9yOiBleHAuY29ubmVjdG9yKCksXG4gICAgICBuZWdhdGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2FkZChub3RFeHAsIHRoaXMuX2Nvbm5lY3Rvcik7XG4gIH1cblxuICB0ZXJtKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5ldyBTZWFyY2hUZXJtKHZhbHVlKSk7XG4gIH1cbn1cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJM0UsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBc0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDO0lBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxHQU9SO1FBQ0MsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLE9BQU87WUFDUCxNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixPQUFPO1NBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLENBQUMsTUFBVztRQUNqQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NB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LENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxFQUFFLENBQUMsR0FBd0I7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUF3QjtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFJO1lBQ3JDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ3hCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q3VzdG9tVHlwZSB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyByZW5kZXIsIEdyb3VwaW5nLCBSZW5kZXJhYmxlLCBSZW5kZXJhYmxlRmFjdG9yeSB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgU2VhcmNoQ29ubmVjdG9yID0gJ0FORCcgfCAnT1InO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoVGVybSBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmFsdWU6IHN0cmluZykge31cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdTZWFyY2hUZXJtJztcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJHR5cGU6IFR5cGVzLnJhd1R5cGUodGhpcyksXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcGFyc2VyPzogUGFyc2VyPGFueT47XG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG4gIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtyZW5kZXIodGhpcy52YWx1ZSwge1xuICAgICAgYWxpYXNlcyxcbiAgICAgIGVzY2FwZSxcbiAgICAgIHByZWZpeCxcbiAgICAgIHBhcnNlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgfSl9YDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgU2VhcmNoVGVybSh0aGlzLnZhbHVlKTtcbiAgfVxuICByZXNvbHZlKHBhcnNlcjogYW55KSB7XG4gICAgcmV0dXJuIHBhcnNlcjtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hFeHByZXNzaW9uQnVpbGRlcjxUPiA9IHtcbiAgZTogKGNvbm5lY3Rvcj86IFNlYXJjaENvbm5lY3RvcikgPT4gU2VhcmNoRXhwcmVzc2lvbjxUPjtcbn07XG5leHBvcnQgY2xhc3MgU2VhcmNoRXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBwcml2YXRlIF9jb25uZWN0b3I6IFNlYXJjaENvbm5lY3RvcjtcbiAgcHJpdmF0ZSBfbmVnYXRlZDogYm9vbGVhbjtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICAgIGNvbm5lY3RvcixcbiAgICBuZWdhdGVkLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gICAgY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yO1xuICAgIG5lZ2F0ZWQ/OiBib29sZWFuO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvciB8fCAnQU5EJztcbiAgICB0aGlzLl9uZWdhdGVkID0gbmVnYXRlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ1NlYXJjaEV4cHJlc3Npb24nO1xuICB9XG5cbiAgc3RhdGljIHNlYXJjaDxUPihcbiAgICBvcHRzOiAoXG4gICAgICBidWlsZGVyOiBTZWFyY2hFeHByZXNzaW9uQnVpbGRlcjxUPixcbiAgICAgIGN1cnJlbnQ/OiBTZWFyY2hFeHByZXNzaW9uPFQ+XG4gICAgKSA9PiBTZWFyY2hFeHByZXNzaW9uPFQ+LFxuICAgIGN1cnJlbnQ/OiBTZWFyY2hFeHByZXNzaW9uPFQ+XG4gICk6IFNlYXJjaEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKFxuICAgICAge1xuICAgICAgICBlOiAoY29ubmVjdG9yOiBTZWFyY2hDb25uZWN0b3IgPSAnQU5EJykgPT5cbiAgICAgICAgICBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7IGNvbm5lY3RvciB9KSxcbiAgICAgIH0sXG4gICAgICBjdXJyZW50XG4gICAgKSBhcyBTZWFyY2hFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKFxuICAgIG5vZGU6IFJlbmRlcmFibGUsXG4gICAgY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yXG4gICk6IFNlYXJjaEV4cHJlc3Npb248VD4ge1xuICAgIGlmIChjb25uZWN0b3IgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb25uZWN0b3IgIT09IGNvbm5lY3Rvcikge1xuICAgICAgbGV0IGNoaWxkcmVuOiBSZW5kZXJhYmxlW10gPSBbXTtcbiAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjaGlsZHJlbiA9IFsuLi50aGlzLl9jaGlsZHJlbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGV4cCA9IG5ldyBTZWFyY2hFeHByZXNzaW9uPFQ+KHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbixcbiAgICAgICAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZXhwLmxlbmd0aCgpID4gMSkge1xuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcoZXhwKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZXhwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbm9kZSBpbnN0YW5jZW9mIFNlYXJjaEV4cHJlc3Npb24gJiZcbiAgICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICAgKSB7XG4gICAgICAgIGNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChuZXcgR3JvdXBpbmcobm9kZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yO1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9kZSBpbnN0YW5jZW9mIFNlYXJjaEV4cHJlc3Npb24gJiZcbiAgICAgICFub2RlLm5lZ2F0ZWQoKSAmJlxuICAgICAgKG5vZGUuY29ubmVjdG9yKCkgPT09IGNvbm5lY3RvciB8fCBub2RlLmxlbmd0aCgpID09PSAxKVxuICAgICkge1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW4sIC4uLm5vZGUuY2hpbGRyZW4oKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2goXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBTZWFyY2hFeHByZXNzaW9uICYmICFub2RlLm5lZ2F0ZWQoKVxuICAgICAgICAgID8gbmV3IEdyb3VwaW5nKG5vZGUpXG4gICAgICAgICAgOiBub2RlXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlbmRlcih7XG4gICAgYWxpYXNlcyxcbiAgICBlc2NhcGUsXG4gICAgcHJlZml4LFxuICAgIHBhcnNlcixcbiAgICBvcHRpb25zLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucztcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2NoaWxkcmVuXG4gICAgICAubWFwKChuKSA9PiBuLnJlbmRlcih7IGFsaWFzZXMsIGVzY2FwZSwgcHJlZml4LCBwYXJzZXIsIG9wdGlvbnMgfSkpXG4gICAgICAuam9pbihgICR7dGhpcy5fY29ubmVjdG9yfSBgKTtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgU2VhcmNoRXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLmNsb25lKCkpLFxuICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci50b0pzb24oKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihqc29uLCB7XG4gICAgICBjb25uZWN0b3I6IHRoaXMuX2Nvbm5lY3RvcixcbiAgICAgIG5lZ2F0ZWQ6IHRoaXMuX25lZ2F0ZWQsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb248VD4oanNvbjogeyBbbmFtZTogc3RyaW5nXTogYW55IH0pOiBTZWFyY2hFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGpzb25bJ2NoaWxkcmVuJ10ubWFwKChjOiBhbnkpID0+IFJlbmRlcmFibGVGYWN0b3J5KGMpKSxcbiAgICAgIGNvbm5lY3RvcjoganNvblsnY29ubmVjdG9yJ10sXG4gICAgICBuZWdhdGVkOiBqc29uWyduZWdhdGVkJ10sXG4gICAgfSk7XG4gIH1cbiAgY29ubmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3I7XG4gIH1cblxuICBuZWdhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9uZWdhdGVkO1xuICB9XG5cbiAgb3IoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChleHAsICdPUicpO1xuICB9XG5cbiAgYW5kKGV4cDogU2VhcmNoRXhwcmVzc2lvbjxUPik6IFNlYXJjaEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZXhwLCAnQU5EJyk7XG4gIH1cblxuICBub3QoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm90RXhwID0gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGV4cC5jaGlsZHJlbigpLFxuICAgICAgY29ubmVjdG9yOiBleHAuY29ubmVjdG9yKCksXG4gICAgICBuZWdhdGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2FkZChub3RFeHAsIHRoaXMuX2Nvbm5lY3Rvcik7XG4gIH1cblxuICB0ZXJtKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5ldyBTZWFyY2hUZXJtKHZhbHVlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,18 +1,30 @@
1
1
  import { Expression } from './base';
2
- import { FieldFactory } from './syntax';
2
+ import { FieldFactory, RenderableFactory } from './syntax';
3
3
  export class SelectExpression extends Expression {
4
4
  constructor({ children, } = {}) {
5
5
  super({ children });
6
6
  }
7
+ get [Symbol.toStringTag]() {
8
+ return 'SelectExpression';
9
+ }
7
10
  static select(opts, current) {
8
11
  return opts({
9
12
  t: FieldFactory(),
10
13
  e: () => new SelectExpression(),
11
14
  }, current);
12
15
  }
13
- render({ aliases, escape, prefix, parser, } = {}) {
16
+ toJson() {
17
+ const json = super.toJson();
18
+ return Object.assign(json, {});
19
+ }
20
+ static fromJson(json) {
21
+ return new SelectExpression({
22
+ children: json['children'].map((c) => RenderableFactory(c)),
23
+ });
24
+ }
25
+ render({ aliases, escape, prefix, parser, options, } = {}) {
14
26
  return this._children
15
- .map((n) => n.render({ aliases, escape, prefix, parser }))
27
+ .map((n) => n.render({ aliases, escape, prefix, parser, options }))
16
28
  .join(',');
17
29
  }
18
30
  clone() {
@@ -28,4 +40,4 @@ export class SelectExpression extends Expression {
28
40
  return this._add(field);
29
41
  }
30
42
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sVUFBVSxDQUFDO0FBTXBELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBQ3BELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFHd0IsRUFDeEIsT0FBNkI7UUFFN0IsT0FBTyxJQUFJLENBQ1Q7WUFDRSxDQUFDLEVBQUUsWUFBWSxFQUF5QjtZQUN4QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsRUFBSztTQUNuQyxFQUNELE9BQU8sQ0FDZSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLE1BTUosRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVM7YUFDbEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxnQkFBZ0IsQ0FBSTtZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sSUFBSSxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZpZWxkRmFjdG9yeSwgUmVuZGVyYWJsZSB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgU2VsZWN0RXhwcmVzc2lvbkJ1aWxkZXI8VD4gPSB7XG4gIHQ6IFJlYWRvbmx5PFJlcXVpcmVkPFQ+PjtcbiAgZTogKCkgPT4gU2VsZWN0RXhwcmVzc2lvbjxUPjtcbn07XG5leHBvcnQgY2xhc3MgU2VsZWN0RXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgfVxuXG4gIHN0YXRpYyBzZWxlY3Q8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogU2VsZWN0RXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogU2VsZWN0RXhwcmVzc2lvbjxUPixcbiAgICApID0+IFNlbGVjdEV4cHJlc3Npb248VD4sXG4gICAgY3VycmVudD86IFNlbGVjdEV4cHJlc3Npb248VD4sXG4gICk6IFNlbGVjdEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKFxuICAgICAge1xuICAgICAgICB0OiBGaWVsZEZhY3Rvcnk8UmVhZG9ubHk8UmVxdWlyZWQ8VD4+PigpLFxuICAgICAgICBlOiAoKSA9PiBuZXcgU2VsZWN0RXhwcmVzc2lvbjxUPigpLFxuICAgICAgfSxcbiAgICAgIGN1cnJlbnQsXG4gICAgKSBhcyBTZWxlY3RFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gICAgcGFyc2VyLFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHBhcnNlcj86IFBhcnNlcjxUPjtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXgsIHBhcnNlciB9KSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFNlbGVjdEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLm1hcCgoYykgPT4gYy5jbG9uZSgpKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZChub2RlOiBSZW5kZXJhYmxlKTogU2VsZWN0RXhwcmVzc2lvbjxUPiB7XG4gICAgdGhpcy5fY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZpZWxkKGZpZWxkOiBhbnkpOiBTZWxlY3RFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGZpZWxkKTtcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFjLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTXZFLE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBQ3BELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFHd0IsRUFDeEIsT0FBNkI7UUFFN0IsT0FBTyxJQUFJLENBQ1Q7WUFDRSxDQUFDLEVBQUUsWUFBWSxFQUF5QjtZQUN4QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsRUFBSztTQUNuQyxFQUNELE9BQU8sQ0FDZSxDQUFDO0lBQzNCLENBQUM7SUFFUSxNQUFNO1FBQ2IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUksSUFBNkI7UUFDOUMsT0FBTyxJQUFJLGdCQUFnQixDQUFJO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sTUFPTCxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsU0FBUzthQUNsQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxnQkFBZ0IsQ0FBSTtZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sSUFBSSxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciwgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZpZWxkRmFjdG9yeSwgUmVuZGVyYWJsZSwgUmVuZGVyYWJsZUZhY3RvcnkgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdEV4cHJlc3Npb25CdWlsZGVyPFQ+ID0ge1xuICB0OiBSZWFkb25seTxSZXF1aXJlZDxUPj47XG4gIGU6ICgpID0+IFNlbGVjdEV4cHJlc3Npb248VD47XG59O1xuZXhwb3J0IGNsYXNzIFNlbGVjdEV4cHJlc3Npb248VD4gZXh0ZW5kcyBFeHByZXNzaW9uPFQ+IHtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdTZWxlY3RFeHByZXNzaW9uJztcbiAgfVxuXG4gIHN0YXRpYyBzZWxlY3Q8VD4oXG4gICAgb3B0czogKFxuICAgICAgYnVpbGRlcjogU2VsZWN0RXhwcmVzc2lvbkJ1aWxkZXI8VD4sXG4gICAgICBjdXJyZW50PzogU2VsZWN0RXhwcmVzc2lvbjxUPlxuICAgICkgPT4gU2VsZWN0RXhwcmVzc2lvbjxUPixcbiAgICBjdXJyZW50PzogU2VsZWN0RXhwcmVzc2lvbjxUPlxuICApOiBTZWxlY3RFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyhcbiAgICAgIHtcbiAgICAgICAgdDogRmllbGRGYWN0b3J5PFJlYWRvbmx5PFJlcXVpcmVkPFQ+Pj4oKSxcbiAgICAgICAgZTogKCkgPT4gbmV3IFNlbGVjdEV4cHJlc3Npb248VD4oKSxcbiAgICAgIH0sXG4gICAgICBjdXJyZW50XG4gICAgKSBhcyBTZWxlY3RFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9Kc29uKCkge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci50b0pzb24oKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihqc29uLCB7fSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb248VD4oanNvbjogeyBbbmFtZTogc3RyaW5nXTogYW55IH0pOiBTZWxlY3RFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gbmV3IFNlbGVjdEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGpzb25bJ2NoaWxkcmVuJ10ubWFwKChjOiBhbnkpID0+IFJlbmRlcmFibGVGYWN0b3J5KGMpKSxcbiAgICB9KTtcbiAgfVxuICByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgICBwYXJzZXIsXG4gICAgb3B0aW9ucyxcbiAgfToge1xuICAgIGFsaWFzZXM/OiBRdWVyeUN1c3RvbVR5cGVbXTtcbiAgICBlc2NhcGU/OiBib29sZWFuO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBwYXJzZXI/OiBQYXJzZXI8VD47XG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuXG4gICAgICAubWFwKChuKSA9PiBuLnJlbmRlcih7IGFsaWFzZXMsIGVzY2FwZSwgcHJlZml4LCBwYXJzZXIsIG9wdGlvbnMgfSkpXG4gICAgICAuam9pbignLCcpO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBTZWxlY3RFeHByZXNzaW9uPFQ+KHtcbiAgICAgIGNoaWxkcmVuOiB0aGlzLl9jaGlsZHJlbi5tYXAoKGMpID0+IGMuY2xvbmUoKSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IFNlbGVjdEV4cHJlc3Npb248VD4ge1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmaWVsZChmaWVsZDogYW55KTogU2VsZWN0RXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChmaWVsZCk7XG4gIH1cbn1cbiJdfQ==