angular-odata 0.80.0 → 0.99.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 (237) hide show
  1. package/README.md +69 -34
  2. package/{esm2015/angular-odata.js → esm2020/angular-odata.mjs} +0 -0
  3. package/esm2020/lib/api.mjs +303 -0
  4. package/{esm2015/lib/cache/cache.js → esm2020/lib/cache/cache.mjs} +3 -3
  5. package/{esm2015/lib/cache/index.js → esm2020/lib/cache/index.mjs} +0 -0
  6. package/{esm2015/lib/cache/memory.js → esm2020/lib/cache/memory.mjs} +1 -1
  7. package/{esm2015/lib/cache/storage.js → esm2020/lib/cache/storage.mjs} +2 -2
  8. package/esm2020/lib/client.mjs +271 -0
  9. package/{esm2015/lib/constants.js → esm2020/lib/constants.mjs} +8 -3
  10. package/esm2020/lib/helper.mjs +268 -0
  11. package/esm2020/lib/index.mjs +19 -0
  12. package/esm2020/lib/models/collection.mjs +741 -0
  13. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  14. package/esm2020/lib/models/model.mjs +453 -0
  15. package/esm2020/lib/models/options.mjs +945 -0
  16. package/{esm2015/lib/module.js → esm2020/lib/module.mjs} +7 -7
  17. package/esm2020/lib/options.mjs +32 -0
  18. package/esm2020/lib/resources/index.mjs +7 -0
  19. package/esm2020/lib/resources/path/handlers.mjs +69 -0
  20. package/esm2020/lib/resources/path/index.mjs +3 -0
  21. package/esm2020/lib/resources/path/segments.mjs +124 -0
  22. package/esm2020/lib/resources/query/builder.mjs +590 -0
  23. package/esm2020/lib/resources/query/expressions/base.mjs +20 -0
  24. package/esm2020/lib/resources/query/expressions/compute.mjs +38 -0
  25. package/esm2020/lib/resources/query/expressions/expand.mjs +57 -0
  26. package/esm2020/lib/resources/query/expressions/filter.mjs +154 -0
  27. package/esm2020/lib/resources/query/expressions/index.mjs +7 -0
  28. package/esm2020/lib/resources/query/expressions/orderby.mjs +54 -0
  29. package/esm2020/lib/resources/query/expressions/search.mjs +113 -0
  30. package/esm2020/lib/resources/query/expressions/select.mjs +32 -0
  31. package/esm2020/lib/resources/query/expressions/syntax.mjs +371 -0
  32. package/esm2020/lib/resources/query/handlers.mjs +188 -0
  33. package/esm2020/lib/resources/query/index.mjs +4 -0
  34. package/esm2020/lib/resources/query/options.mjs +103 -0
  35. package/esm2020/lib/resources/request.mjs +167 -0
  36. package/esm2020/lib/resources/resource.mjs +326 -0
  37. package/esm2020/lib/resources/responses/annotations.mjs +119 -0
  38. package/{esm2015/lib/resources/responses/csdl/csdl-annotation.js → esm2020/lib/resources/responses/csdl/csdl-annotation.mjs} +0 -0
  39. package/{esm2015/lib/resources/responses/csdl/csdl-entity-container.js → esm2020/lib/resources/responses/csdl/csdl-entity-container.mjs} +0 -0
  40. package/{esm2015/lib/resources/responses/csdl/csdl-entity-set.js → esm2020/lib/resources/responses/csdl/csdl-entity-set.mjs} +0 -0
  41. package/{esm2015/lib/resources/responses/csdl/csdl-enum-type.js → esm2020/lib/resources/responses/csdl/csdl-enum-type.mjs} +0 -0
  42. package/{esm2015/lib/resources/responses/csdl/csdl-function-action.js → esm2020/lib/resources/responses/csdl/csdl-function-action.mjs} +0 -0
  43. package/{esm2015/lib/resources/responses/csdl/csdl-navigation-property-binding.js → esm2020/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs} +0 -0
  44. package/{esm2015/lib/resources/responses/csdl/csdl-reference.js → esm2020/lib/resources/responses/csdl/csdl-reference.mjs} +0 -0
  45. package/{esm2015/lib/resources/responses/csdl/csdl-schema.js → esm2020/lib/resources/responses/csdl/csdl-schema.mjs} +0 -0
  46. package/{esm2015/lib/resources/responses/csdl/csdl-singleton.js → esm2020/lib/resources/responses/csdl/csdl-singleton.mjs} +0 -0
  47. package/{esm2015/lib/resources/responses/csdl/csdl-structural-property.js → esm2020/lib/resources/responses/csdl/csdl-structural-property.mjs} +0 -0
  48. package/{esm2015/lib/resources/responses/csdl/csdl-structured-type.js → esm2020/lib/resources/responses/csdl/csdl-structured-type.mjs} +0 -0
  49. package/{esm2015/lib/resources/responses/csdl/csdl-type-definition.js → esm2020/lib/resources/responses/csdl/csdl-type-definition.mjs} +0 -0
  50. package/{esm2015/lib/resources/responses/index.js → esm2020/lib/resources/responses/index.mjs} +0 -0
  51. package/esm2020/lib/resources/responses/metadata.mjs +547 -0
  52. package/{esm2015/lib/resources/responses/options.js → esm2020/lib/resources/responses/options.mjs} +0 -0
  53. package/{esm2015/lib/resources/responses/response.js → esm2020/lib/resources/responses/response.mjs} +0 -0
  54. package/{esm2015/lib/resources/responses/types.js → esm2020/lib/resources/responses/types.mjs} +0 -0
  55. package/esm2020/lib/resources/types/action.mjs +101 -0
  56. package/esm2020/lib/resources/types/batch.mjs +309 -0
  57. package/esm2020/lib/resources/types/count.mjs +27 -0
  58. package/esm2020/lib/resources/types/entity-set.mjs +94 -0
  59. package/esm2020/lib/resources/types/entity.mjs +106 -0
  60. package/esm2020/lib/resources/types/function.mjs +137 -0
  61. package/{esm2015/lib/resources/types/index.js → esm2020/lib/resources/types/index.mjs} +0 -0
  62. package/esm2020/lib/resources/types/media.mjs +41 -0
  63. package/esm2020/lib/resources/types/metadata.mjs +30 -0
  64. package/esm2020/lib/resources/types/navigation-property.mjs +226 -0
  65. package/esm2020/lib/resources/types/options.mjs +2 -0
  66. package/esm2020/lib/resources/types/property.mjs +183 -0
  67. package/esm2020/lib/resources/types/reference.mjs +85 -0
  68. package/esm2020/lib/resources/types/singleton.mjs +126 -0
  69. package/esm2020/lib/resources/types/value.mjs +41 -0
  70. package/esm2020/lib/schema/annotation.mjs +37 -0
  71. package/esm2020/lib/schema/callable.mjs +62 -0
  72. package/esm2020/lib/schema/element.mjs +51 -0
  73. package/esm2020/lib/schema/entity-container.mjs +9 -0
  74. package/esm2020/lib/schema/entity-set.mjs +9 -0
  75. package/esm2020/lib/schema/enum-type.mjs +71 -0
  76. package/{esm2015/lib/schema/index.js → esm2020/lib/schema/index.mjs} +2 -1
  77. package/esm2020/lib/schema/parsers/callable.mjs +113 -0
  78. package/esm2020/lib/schema/parsers/edm.mjs +95 -0
  79. package/esm2020/lib/schema/parsers/enum-type.mjs +107 -0
  80. package/esm2020/lib/schema/parsers/index.mjs +5 -0
  81. package/esm2020/lib/schema/parsers/structured-type.mjs +412 -0
  82. package/esm2020/lib/schema/schema.mjs +61 -0
  83. package/esm2020/lib/schema/structured-type.mjs +198 -0
  84. package/esm2020/lib/services/base.mjs +29 -0
  85. package/esm2020/lib/services/entity-set.mjs +143 -0
  86. package/esm2020/lib/services/entity.mjs +12 -0
  87. package/{esm2015/lib/services/factory.js → esm2020/lib/services/factory.mjs} +3 -3
  88. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
  89. package/esm2020/lib/services/singleton.mjs +48 -0
  90. package/{esm2015/lib/settings.js → esm2020/lib/settings.mjs} +1 -1
  91. package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
  92. package/esm2020/lib/types.mjs +37 -0
  93. package/esm2020/lib/utils/arraybuffers.mjs +46 -0
  94. package/{esm2015/lib/utils/dates.js → esm2020/lib/utils/dates.mjs} +0 -0
  95. package/esm2020/lib/utils/durations.mjs +40 -0
  96. package/{esm2015/lib/utils/enums.js → esm2020/lib/utils/enums.mjs} +0 -0
  97. package/esm2020/lib/utils/http.mjs +93 -0
  98. package/esm2020/lib/utils/index.mjs +10 -0
  99. package/esm2020/lib/utils/objects.mjs +195 -0
  100. package/esm2020/lib/utils/odata.mjs +22 -0
  101. package/esm2020/lib/utils/strings.mjs +20 -0
  102. package/esm2020/lib/utils/types.mjs +134 -0
  103. package/{esm2015/lib/utils/urls.js → esm2020/lib/utils/urls.mjs} +0 -0
  104. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  105. package/fesm2015/{angular-odata.js → angular-odata.mjs} +4508 -3427
  106. package/fesm2015/angular-odata.mjs.map +1 -0
  107. package/fesm2020/angular-odata.mjs +10510 -0
  108. package/fesm2020/angular-odata.mjs.map +1 -0
  109. package/lib/api.d.ts +14 -14
  110. package/lib/cache/cache.d.ts +2 -2
  111. package/lib/cache/storage.d.ts +1 -1
  112. package/lib/client.d.ts +60 -9
  113. package/lib/constants.d.ts +5 -2
  114. package/lib/index.d.ts +0 -1
  115. package/lib/models/collection.d.ts +30 -42
  116. package/lib/models/model.d.ts +37 -30
  117. package/lib/models/options.d.ts +30 -38
  118. package/lib/module.d.ts +1 -1
  119. package/lib/options.d.ts +47 -0
  120. package/lib/resources/index.d.ts +2 -3
  121. package/lib/resources/path/handlers.d.ts +27 -0
  122. package/lib/resources/path/index.d.ts +2 -0
  123. package/lib/resources/{path-segments.d.ts → path/segments.d.ts} +4 -16
  124. package/lib/resources/{builder.d.ts → query/builder.d.ts} +12 -7
  125. package/lib/resources/query/expressions/base.d.ts +19 -0
  126. package/lib/resources/query/expressions/compute.d.ts +26 -0
  127. package/lib/resources/query/expressions/expand.d.ts +40 -0
  128. package/lib/resources/query/expressions/filter.d.ts +58 -0
  129. package/lib/resources/query/expressions/index.d.ts +6 -0
  130. package/lib/resources/query/expressions/orderby.d.ts +37 -0
  131. package/lib/resources/query/expressions/search.d.ts +47 -0
  132. package/lib/resources/query/expressions/select.d.ts +21 -0
  133. package/lib/resources/query/expressions/syntax.d.ts +177 -0
  134. package/lib/resources/query/handlers.d.ts +104 -0
  135. package/lib/resources/query/index.d.ts +3 -0
  136. package/lib/resources/query/options.d.ts +38 -0
  137. package/lib/resources/request.d.ts +4 -3
  138. package/lib/resources/resource.d.ts +42 -48
  139. package/lib/resources/types/action.d.ts +14 -61
  140. package/lib/resources/types/batch.d.ts +16 -3
  141. package/lib/resources/types/count.d.ts +9 -17
  142. package/lib/resources/types/entity-set.d.ts +12 -51
  143. package/lib/resources/types/entity.d.ts +13 -31
  144. package/lib/resources/types/function.d.ts +13 -60
  145. package/lib/resources/types/media.d.ts +9 -8
  146. package/lib/resources/types/metadata.d.ts +3 -5
  147. package/lib/resources/types/navigation-property.d.ts +74 -65
  148. package/lib/resources/types/options.d.ts +1 -1
  149. package/lib/resources/types/property.d.ts +49 -57
  150. package/lib/resources/types/reference.d.ts +65 -9
  151. package/lib/resources/types/singleton.d.ts +53 -31
  152. package/lib/resources/types/value.d.ts +16 -7
  153. package/lib/schema/annotation.d.ts +18 -0
  154. package/lib/schema/callable.d.ts +4 -20
  155. package/lib/schema/element.d.ts +39 -0
  156. package/lib/schema/entity-container.d.ts +2 -12
  157. package/lib/schema/entity-set.d.ts +2 -18
  158. package/lib/schema/enum-type.d.ts +19 -25
  159. package/lib/schema/index.d.ts +1 -0
  160. package/lib/{parsers → schema/parsers}/callable.d.ts +2 -2
  161. package/lib/schema/parsers/edm.d.ts +4 -0
  162. package/lib/{parsers → schema/parsers}/enum-type.d.ts +12 -11
  163. package/lib/{parsers → schema/parsers}/index.d.ts +0 -0
  164. package/lib/{parsers → schema/parsers}/structured-type.d.ts +12 -12
  165. package/lib/schema/schema.d.ts +3 -10
  166. package/lib/schema/structured-type.d.ts +65 -27
  167. package/lib/services/base.d.ts +2 -2
  168. package/lib/services/entity-set.d.ts +5 -2
  169. package/lib/services/entity.d.ts +4 -1
  170. package/lib/services/singleton.d.ts +5 -2
  171. package/lib/settings.d.ts +5 -5
  172. package/lib/types.d.ts +1 -0
  173. package/lib/utils/arraybuffers.d.ts +4 -0
  174. package/lib/{parsers/edm.d.ts → utils/durations.d.ts} +3 -3
  175. package/lib/utils/http.d.ts +1 -0
  176. package/lib/utils/index.d.ts +1 -0
  177. package/lib/utils/objects.d.ts +1 -0
  178. package/lib/utils/strings.d.ts +1 -0
  179. package/lib/utils/types.d.ts +2 -0
  180. package/package.json +21 -8
  181. package/bundles/angular-odata.umd.js +0 -11048
  182. package/bundles/angular-odata.umd.js.map +0 -1
  183. package/esm2015/lib/api.js +0 -297
  184. package/esm2015/lib/client.js +0 -221
  185. package/esm2015/lib/helper.js +0 -271
  186. package/esm2015/lib/index.js +0 -21
  187. package/esm2015/lib/models/collection.js +0 -687
  188. package/esm2015/lib/models/model.js +0 -423
  189. package/esm2015/lib/models/options.js +0 -909
  190. package/esm2015/lib/options.js +0 -31
  191. package/esm2015/lib/parsers/callable.js +0 -107
  192. package/esm2015/lib/parsers/edm.js +0 -192
  193. package/esm2015/lib/parsers/enum-type.js +0 -102
  194. package/esm2015/lib/parsers/index.js +0 -5
  195. package/esm2015/lib/parsers/structured-type.js +0 -389
  196. package/esm2015/lib/resources/builder.js +0 -537
  197. package/esm2015/lib/resources/index.js +0 -8
  198. package/esm2015/lib/resources/path-segments.js +0 -156
  199. package/esm2015/lib/resources/query-options.js +0 -157
  200. package/esm2015/lib/resources/request.js +0 -149
  201. package/esm2015/lib/resources/resource.js +0 -337
  202. package/esm2015/lib/resources/responses/annotations.js +0 -121
  203. package/esm2015/lib/resources/responses/metadata.js +0 -548
  204. package/esm2015/lib/resources/types/action.js +0 -180
  205. package/esm2015/lib/resources/types/batch.js +0 -288
  206. package/esm2015/lib/resources/types/count.js +0 -55
  207. package/esm2015/lib/resources/types/entity-set.js +0 -169
  208. package/esm2015/lib/resources/types/entity.js +0 -170
  209. package/esm2015/lib/resources/types/function.js +0 -205
  210. package/esm2015/lib/resources/types/media.js +0 -47
  211. package/esm2015/lib/resources/types/metadata.js +0 -36
  212. package/esm2015/lib/resources/types/navigation-property.js +0 -232
  213. package/esm2015/lib/resources/types/options.js +0 -2
  214. package/esm2015/lib/resources/types/property.js +0 -195
  215. package/esm2015/lib/resources/types/reference.js +0 -50
  216. package/esm2015/lib/resources/types/singleton.js +0 -159
  217. package/esm2015/lib/resources/types/value.js +0 -30
  218. package/esm2015/lib/schema/annotation.js +0 -7
  219. package/esm2015/lib/schema/callable.js +0 -82
  220. package/esm2015/lib/schema/entity-container.js +0 -22
  221. package/esm2015/lib/schema/entity-set.js +0 -33
  222. package/esm2015/lib/schema/enum-type.js +0 -101
  223. package/esm2015/lib/schema/schema.js +0 -60
  224. package/esm2015/lib/schema/structured-type.js +0 -148
  225. package/esm2015/lib/services/base.js +0 -23
  226. package/esm2015/lib/services/entity-set.js +0 -143
  227. package/esm2015/lib/services/entity.js +0 -10
  228. package/esm2015/lib/services/singleton.js +0 -46
  229. package/esm2015/lib/types.js +0 -37
  230. package/esm2015/lib/utils/http.js +0 -89
  231. package/esm2015/lib/utils/index.js +0 -9
  232. package/esm2015/lib/utils/objects.js +0 -139
  233. package/esm2015/lib/utils/odata.js +0 -21
  234. package/esm2015/lib/utils/strings.js +0 -13
  235. package/esm2015/lib/utils/types.js +0 -103
  236. package/fesm2015/angular-odata.js.map +0 -1
  237. package/lib/resources/query-options.d.ts +0 -57
@@ -0,0 +1,20 @@
1
+ export class Expression {
2
+ constructor({ children, } = {}) {
3
+ this._children = children || [];
4
+ }
5
+ get [Symbol.toStringTag]() {
6
+ return 'Expression';
7
+ }
8
+ children() {
9
+ return this._children;
10
+ }
11
+ length() {
12
+ return this._children.length;
13
+ }
14
+ toJSON() {
15
+ return {
16
+ children: this._children.map((c) => c.toJSON()),
17
+ };
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQWdCLFVBQVU7SUFFOUIsWUFBWSxFQUNWLFFBQVEsTUFHTixFQUFFO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBWUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEQsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBSZW5kZXJhYmxlIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXhwcmVzc2lvbjxUPiBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBwcm90ZWN0ZWQgX2NoaWxkcmVuOiBSZW5kZXJhYmxlW107XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICB9ID0ge30pIHtcbiAgICB0aGlzLl9jaGlsZHJlbiA9IGNoaWxkcmVuIHx8IFtdO1xuICB9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnRXhwcmVzc2lvbic7XG4gIH1cblxuICBhYnN0cmFjdCByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgfToge1xuICAgIGFsaWFzZXM/OiBRdWVyeUN1c3RvbVR5cGVbXSB8IHVuZGVmaW5lZDtcbiAgICBlc2NhcGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHByZWZpeD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfSk6IHN0cmluZztcblxuICBjaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW47XG4gIH1cblxuICBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuLmxlbmd0aDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLm1hcCgoYykgPT4gYy50b0pTT04oKSksXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { Expression } from './base';
2
+ import { Field, functions, operators, } from './syntax';
3
+ export class ComputeExpression extends Expression {
4
+ constructor({ children, names, } = {}) {
5
+ super({ children });
6
+ this.names = names || [];
7
+ }
8
+ static e() {
9
+ return new ComputeExpression();
10
+ }
11
+ static s() {
12
+ return Field.factory();
13
+ }
14
+ static compute(opts) {
15
+ return opts({
16
+ s: ComputeExpression.s(),
17
+ e: ComputeExpression.e,
18
+ });
19
+ }
20
+ render({ aliases, escape, prefix, } = {}) {
21
+ let children = this._children
22
+ .map((n) => n.render({ aliases, escape, prefix }));
23
+ return this.names.map((name, index) => `${children[index]} as ${name}`).join(',');
24
+ }
25
+ _add(name, node) {
26
+ this.names.push(name);
27
+ this._children.push(node);
28
+ return this;
29
+ }
30
+ field(name, opts) {
31
+ const node = opts({
32
+ o: operators,
33
+ f: functions,
34
+ });
35
+ return this._add(name, node);
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUdULFNBQVMsR0FFVixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLE9BQU8saUJBQXFCLFNBQVEsVUFBYTtJQUVyRCxZQUFZLEVBQ1YsUUFBUSxFQUNSLEtBQUssTUFJSCxFQUFFO1FBQ0osS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxJQUFJLGlCQUFpQixFQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQ1osSUFBMEU7UUFFMUUsT0FBTyxJQUFJLENBQUM7WUFDVixDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxFQUFLO1lBQzNCLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZCLENBQXlCLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxNQUtKLEVBQUU7UUFDSixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFZLEVBQUUsSUFBZ0I7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUNILElBQVksRUFDWixJQUF1RTtRQUV2RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxFQUFFLFNBQThCO1lBQ2pDLENBQUMsRUFBRSxTQUE4QjtTQUNsQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIEZpZWxkLFxuICBmdW5jdGlvbnMsXG4gIE9EYXRhRnVuY3Rpb25zLFxuICBPRGF0YU9wZXJhdG9ycyxcbiAgb3BlcmF0b3JzLFxuICBSZW5kZXJhYmxlLFxufSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBjbGFzcyBDb21wdXRlRXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBuYW1lczogc3RyaW5nW107XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjaGlsZHJlbixcbiAgICBuYW1lcyxcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICAgIG5hbWVzPzogc3RyaW5nW107XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gICAgdGhpcy5uYW1lcyA9IG5hbWVzIHx8IFtdO1xuICB9XG5cbiAgc3RhdGljIGU8VD4oKSB7XG4gICAgcmV0dXJuIG5ldyBDb21wdXRlRXhwcmVzc2lvbjxUPigpO1xuICB9XG5cbiAgc3RhdGljIHM8VCBleHRlbmRzIG9iamVjdD4oKTogVCB7XG4gICAgcmV0dXJuIEZpZWxkLmZhY3Rvcnk8VD4oKTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wdXRlPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIG9wdHM6IChlOiB7IHM6IFQ7IGU6ICgpID0+IENvbXB1dGVFeHByZXNzaW9uPFQ+IH0pID0+IENvbXB1dGVFeHByZXNzaW9uPFQ+XG4gICk6IENvbXB1dGVFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyh7XG4gICAgICBzOiBDb21wdXRlRXhwcmVzc2lvbi5zPFQ+KCksXG4gICAgICBlOiBDb21wdXRlRXhwcmVzc2lvbi5lLFxuICAgIH0pIGFzIENvbXB1dGVFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW10gfCB1bmRlZmluZWQ7XG4gICAgZXNjYXBlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBwcmVmaXg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXggfSkpO1xuICAgIHJldHVybiB0aGlzLm5hbWVzLm1hcCgobmFtZSwgaW5kZXgpID0+IGAke2NoaWxkcmVuW2luZGV4XX0gYXMgJHtuYW1lfWApLmpvaW4oJywnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZChuYW1lOiBzdHJpbmcsIG5vZGU6IFJlbmRlcmFibGUpOiBDb21wdXRlRXhwcmVzc2lvbjxUPiB7XG4gICAgdGhpcy5uYW1lcy5wdXNoKG5hbWUpO1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmaWVsZDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0czogKGU6IHsgbzogT0RhdGFPcGVyYXRvcnM8VD47IGY6IE9EYXRhRnVuY3Rpb25zPFQ+IH0pID0+IFJlbmRlcmFibGVcbiAgKTogQ29tcHV0ZUV4cHJlc3Npb248VD4ge1xuICAgIGNvbnN0IG5vZGUgPSBvcHRzKHtcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5hbWUsIG5vZGUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { Expression } from './base';
2
+ import { Field, render } from './syntax';
3
+ export class ExpandField {
4
+ constructor(field) {
5
+ this.field = field;
6
+ }
7
+ get [Symbol.toStringTag]() {
8
+ return 'ExpandField';
9
+ }
10
+ toJSON() {
11
+ return {
12
+ field: this.field.toJSON(),
13
+ };
14
+ }
15
+ render({ aliases, escape, prefix, }) {
16
+ return `${render(this.field, { aliases, escape, prefix })}`;
17
+ }
18
+ select() { }
19
+ filter() { }
20
+ levels() { }
21
+ orderBy() { }
22
+ top() { }
23
+ skip() { }
24
+ }
25
+ export class ExpandExpression extends Expression {
26
+ constructor({ children, } = {}) {
27
+ super({ children });
28
+ }
29
+ static e() {
30
+ return new ExpandExpression();
31
+ }
32
+ static s() {
33
+ return Field.factory();
34
+ }
35
+ static expand(opts) {
36
+ return opts({
37
+ s: ExpandExpression.s(),
38
+ e: ExpandExpression.e,
39
+ });
40
+ }
41
+ render({ aliases, escape, prefix, } = {}) {
42
+ return this._children
43
+ .map((n) => n.render({ aliases, escape, prefix }))
44
+ .join(',');
45
+ }
46
+ _add(node) {
47
+ this._children.push(node);
48
+ return this;
49
+ }
50
+ field(field, opts) {
51
+ let node = new ExpandField(field);
52
+ if (opts !== undefined)
53
+ opts(node);
54
+ return this._add(node);
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9leHBhbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYyxNQUFNLFVBQVUsQ0FBQztBQUVyRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFzQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUUzQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sR0FLUDtRQUNDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLEtBQUksQ0FBQztJQUNYLE1BQU0sS0FBSSxDQUFDO0lBQ1gsTUFBTSxLQUFJLENBQUM7SUFDWCxPQUFPLEtBQUksQ0FBQztJQUNaLEdBQUcsS0FBSSxDQUFDO0lBQ1IsSUFBSSxLQUFJLENBQUM7Q0FDVjtBQUVELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBQ3BELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxJQUFJLGdCQUFnQixFQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFBd0U7UUFFeEUsT0FBTyxJQUFJLENBQUM7WUFDVixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxFQUFLO1lBQzFCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3RCLENBQXdCLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxNQUtKLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTO2FBQ2xCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRU8sSUFBSSxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FDSCxLQUFVLEVBQ1YsSUFBd0M7UUFFeEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxJQUE0QixDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZpZWxkLCByZW5kZXIsIFJlbmRlcmFibGUgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBjbGFzcyBFeHBhbmRGaWVsZDxUPiBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZmllbGQ6IFJlbmRlcmFibGUpIHt9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnRXhwYW5kRmllbGQnO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZDogdGhpcy5maWVsZC50b0pTT04oKSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtyZW5kZXIodGhpcy5maWVsZCwgeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCB9KX1gO1xuICB9XG5cbiAgc2VsZWN0KCkge31cbiAgZmlsdGVyKCkge31cbiAgbGV2ZWxzKCkge31cbiAgb3JkZXJCeSgpIHt9XG4gIHRvcCgpIHt9XG4gIHNraXAoKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgRXhwYW5kRXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoeyBjaGlsZHJlbiB9KTtcbiAgfVxuXG4gIHN0YXRpYyBlPFQ+KCkge1xuICAgIHJldHVybiBuZXcgRXhwYW5kRXhwcmVzc2lvbjxUPigpO1xuICB9XG5cbiAgc3RhdGljIHM8VCBleHRlbmRzIG9iamVjdD4oKTogVCB7XG4gICAgcmV0dXJuIEZpZWxkLmZhY3Rvcnk8VD4oKTtcbiAgfVxuXG4gIHN0YXRpYyBleHBhbmQ8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgb3B0czogKGU6IHsgczogVDsgZTogKCkgPT4gRXhwYW5kRXhwcmVzc2lvbjxUPiB9KSA9PiBFeHBhbmRFeHByZXNzaW9uPFQ+XG4gICk6IEV4cGFuZEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKHtcbiAgICAgIHM6IEV4cGFuZEV4cHJlc3Npb24uczxUPigpLFxuICAgICAgZTogRXhwYW5kRXhwcmVzc2lvbi5lLFxuICAgIH0pIGFzIEV4cGFuZEV4cHJlc3Npb248VD47XG4gIH1cblxuICByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgfToge1xuICAgIGFsaWFzZXM/OiBRdWVyeUN1c3RvbVR5cGVbXSB8IHVuZGVmaW5lZDtcbiAgICBlc2NhcGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHByZWZpeD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgfSA9IHt9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5cbiAgICAgIC5tYXAoKG4pID0+IG4ucmVuZGVyKHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXggfSkpXG4gICAgICAuam9pbignLCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKG5vZGU6IFJlbmRlcmFibGUpOiBFeHBhbmRFeHByZXNzaW9uPFQ+IHtcbiAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmllbGQ8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgZmllbGQ6IGFueSxcbiAgICBvcHRzPzogKGU6IEV4cGFuZEZpZWxkPGtleW9mIFQ+KSA9PiB2b2lkXG4gICk6IEV4cGFuZEV4cHJlc3Npb248VD4ge1xuICAgIGxldCBub2RlID0gbmV3IEV4cGFuZEZpZWxkKGZpZWxkKTtcbiAgICBpZiAob3B0cyAhPT0gdW5kZWZpbmVkKSBvcHRzKG5vZGUgYXMgRXhwYW5kRmllbGQ8a2V5b2YgVD4pO1xuICAgIHJldHVybiB0aGlzLl9hZGQobm9kZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,154 @@
1
+ import { Expression } from './base';
2
+ import { Field, functions, Grouping, operators, } from './syntax';
3
+ import { syntax } from './syntax';
4
+ export class FilterExpression extends Expression {
5
+ constructor({ children, connector, negated, } = {}) {
6
+ super({ children });
7
+ this._connector = connector || 'and';
8
+ this._negated = negated || false;
9
+ }
10
+ static s() {
11
+ return Field.factory();
12
+ }
13
+ static e(connector = 'and') {
14
+ return new FilterExpression({ connector });
15
+ }
16
+ static filter(opts) {
17
+ return opts({
18
+ s: FilterExpression.s(),
19
+ e: FilterExpression.e,
20
+ o: operators,
21
+ f: functions,
22
+ });
23
+ }
24
+ toJSON() {
25
+ return {
26
+ children: this._children.map((c) => c.toJSON()),
27
+ connector: this._connector,
28
+ negated: this._negated,
29
+ };
30
+ }
31
+ connector() {
32
+ return this._connector;
33
+ }
34
+ negated() {
35
+ return this._negated;
36
+ }
37
+ render({ aliases, escape, prefix, } = {}) {
38
+ let content = this._children
39
+ .map((n) => n.render({ aliases, escape, prefix }))
40
+ .join(` ${this._connector} `);
41
+ if (this._negated) {
42
+ content = `not (${content})`;
43
+ }
44
+ return content;
45
+ }
46
+ _add(node, connector) {
47
+ if (connector !== undefined && this._connector !== connector) {
48
+ let children = [];
49
+ if (this._children.length > 0) {
50
+ if (this._children.length === 1) {
51
+ children = [...this._children];
52
+ }
53
+ else {
54
+ let exp = new FilterExpression({
55
+ children: this._children,
56
+ connector: this._connector,
57
+ negated: this._negated,
58
+ });
59
+ if (exp.length() > 1) {
60
+ children.push(new Grouping(exp));
61
+ }
62
+ else {
63
+ children.push(exp);
64
+ }
65
+ }
66
+ }
67
+ if (node instanceof FilterExpression &&
68
+ (node.connector() === connector || node.length() === 1)) {
69
+ children = [...children, ...node.children()];
70
+ }
71
+ else {
72
+ children.push(new Grouping(node));
73
+ }
74
+ this._connector = connector;
75
+ this._children = children;
76
+ }
77
+ else if (node instanceof FilterExpression &&
78
+ !node.negated() &&
79
+ (node.connector() === connector || node.length() === 1)) {
80
+ this._children = [...this._children, ...node.children()];
81
+ }
82
+ else {
83
+ this._children.push(node instanceof FilterExpression && !node.negated()
84
+ ? new Grouping(node)
85
+ : node);
86
+ }
87
+ return this;
88
+ }
89
+ or(exp) {
90
+ return this._add(exp, 'or');
91
+ }
92
+ and(exp) {
93
+ return this._add(exp, 'and');
94
+ }
95
+ not(exp) {
96
+ const notExp = new FilterExpression({
97
+ children: exp.children(),
98
+ connector: exp.connector(),
99
+ negated: true,
100
+ });
101
+ return this._add(notExp, this._connector);
102
+ }
103
+ eq(left, right, normalize) {
104
+ return this._add(operators.eq(left, right, normalize));
105
+ }
106
+ ne(left, right, normalize) {
107
+ return this._add(operators.ne(left, right, normalize));
108
+ }
109
+ gt(left, right, normalize) {
110
+ return this._add(operators.gt(left, right, normalize));
111
+ }
112
+ ge(left, right, normalize) {
113
+ return this._add(operators.ge(left, right, normalize));
114
+ }
115
+ lt(left, right, normalize) {
116
+ return this._add(operators.lt(left, right, normalize));
117
+ }
118
+ le(left, right, normalize) {
119
+ return this._add(operators.le(left, right, normalize));
120
+ }
121
+ has(left, right, normalize) {
122
+ return this._add(operators.has(left, right, normalize));
123
+ }
124
+ in(left, right, normalize) {
125
+ return this._add(operators.in(left, right, normalize));
126
+ }
127
+ contains(left, right, normalize) {
128
+ return this._add(functions.contains(left, right, normalize));
129
+ }
130
+ startsWith(left, right, normalize) {
131
+ return this._add(functions.startsWith(left, right, normalize));
132
+ }
133
+ endsWith(left, right, normalize) {
134
+ return this._add(functions.endsWith(left, right, normalize));
135
+ }
136
+ any(left, opts, alias) {
137
+ const exp = opts({
138
+ s: Field.factory(),
139
+ e: FilterExpression.e,
140
+ });
141
+ return this._add(syntax.any(left, exp, alias));
142
+ }
143
+ all(left, opts, alias) {
144
+ const exp = opts({
145
+ s: Field.factory(),
146
+ e: FilterExpression.e,
147
+ });
148
+ return this._add(syntax.all(left, exp, alias));
149
+ }
150
+ isof(left, type) {
151
+ return this._add(syntax.isof(left, type));
152
+ }
153
+ }
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBR1IsU0FBUyxHQUVWLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJbEMsTUFBTSxPQUFPLGdCQUFvQixTQUFRLFVBQWE7SUFHcEQsWUFBWSxFQUNWLFFBQVEsRUFDUixTQUFTLEVBQ1QsT0FBTyxNQUtMLEVBQUU7UUFDSixLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDLENBQUksWUFBNkIsS0FBSztRQUM1QyxPQUFPLElBQUksZ0JBQWdCLENBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUNYLElBS3lCO1FBRXpCLE9BQU8sSUFBSSxDQUFDO1lBQ1YsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsRUFBSztZQUMxQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNyQixDQUFDLEVBQUUsU0FBOEI7WUFDakMsQ0FBQyxFQUFFLFNBQThCO1NBQ2xDLENBQXdCLENB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QUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLFNBQW1CO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsRUFBRSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsU0FBbUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxTQUFtQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELEVBQUUsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLFNBQW1CO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsU0FBbUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxFQUFFLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxTQUFtQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLFNBQW1CO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVMsRUFBRSxLQUFVLEVBQUUsU0FBbUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUyxFQUFFLEtBQVUsRUFBRSxTQUFtQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEdBQUcsQ0FDRCxJQUFTLEVBQ1QsSUFHeUIsRUFDekIsS0FBYztRQUVkLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQztZQUNmLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFLO1lBQ3JCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3RCLENBQXdCLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxHQUFHLENBQ0QsSUFBUyxFQUNULElBR3lCLEVBQ3pCLEtBQWM7UUFFZCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDZixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBSztZQUNyQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUN0QixDQUF3QixDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBSUQsSUFBSSxDQUFDLElBQVMsRUFBRSxJQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIEZpZWxkLFxuICBmdW5jdGlvbnMsXG4gIEdyb3VwaW5nLFxuICBPRGF0YUZ1bmN0aW9ucyxcbiAgT0RhdGFPcGVyYXRvcnMsXG4gIG9wZXJhdG9ycyxcbiAgUmVuZGVyYWJsZSxcbn0gZnJvbSAnLi9zeW50YXgnO1xuaW1wb3J0IHsgc3ludGF4IH0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJDb25uZWN0b3IgPSAnYW5kJyB8ICdvcic7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJFeHByZXNzaW9uPFQ+IGV4dGVuZHMgRXhwcmVzc2lvbjxUPiB7XG4gIHByaXZhdGUgX2Nvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yO1xuICBwcml2YXRlIF9uZWdhdGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgY2hpbGRyZW4sXG4gICAgY29ubmVjdG9yLFxuICAgIG5lZ2F0ZWQsXG4gIH06IHtcbiAgICBjaGlsZHJlbj86IFJlbmRlcmFibGVbXTtcbiAgICBjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3I7XG4gICAgbmVnYXRlZD86IGJvb2xlYW47XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gICAgdGhpcy5fY29ubmVjdG9yID0gY29ubmVjdG9yIHx8ICdhbmQnO1xuICAgIHRoaXMuX25lZ2F0ZWQgPSBuZWdhdGVkIHx8IGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIHM8VCBleHRlbmRzIG9iamVjdD4oKTogVCB7XG4gICAgcmV0dXJuIEZpZWxkLmZhY3Rvcnk8VD4oKTtcbiAgfVxuXG4gIHN0YXRpYyBlPFQ+KGNvbm5lY3RvcjogRmlsdGVyQ29ubmVjdG9yID0gJ2FuZCcpIHtcbiAgICByZXR1cm4gbmV3IEZpbHRlckV4cHJlc3Npb248VD4oeyBjb25uZWN0b3IgfSk7XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIG9wdHM6IChlOiB7XG4gICAgICBzOiBUO1xuICAgICAgZTogKGNvbm5lY3Rvcj86IEZpbHRlckNvbm5lY3RvcikgPT4gRmlsdGVyRXhwcmVzc2lvbjxUPjtcbiAgICAgIG86IE9EYXRhT3BlcmF0b3JzPFQ+O1xuICAgICAgZjogT0RhdGFGdW5jdGlvbnM8VD47XG4gICAgfSkgPT4gRmlsdGVyRXhwcmVzc2lvbjxUPlxuICApOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gb3B0cyh7XG4gICAgICBzOiBGaWx0ZXJFeHByZXNzaW9uLnM8VD4oKSxcbiAgICAgIGU6IEZpbHRlckV4cHJlc3Npb24uZSxcbiAgICAgIG86IG9wZXJhdG9ycyBhcyBPRGF0YU9wZXJhdG9yczxUPixcbiAgICAgIGY6IGZ1bmN0aW9ucyBhcyBPRGF0YUZ1bmN0aW9uczxUPixcbiAgICB9KSBhcyBGaWx0ZXJFeHByZXNzaW9uPFQ+O1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvSlNPTigpKSxcbiAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICB9O1xuICB9XG5cbiAgY29ubmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3I7XG4gIH1cblxuICBuZWdhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9uZWdhdGVkO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW107XG4gICAgZXNjYXBlPzogYm9vbGVhbjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCB9KSlcbiAgICAgIC5qb2luKGAgJHt0aGlzLl9jb25uZWN0b3J9IGApO1xuICAgIGlmICh0aGlzLl9uZWdhdGVkKSB7XG4gICAgICBjb250ZW50ID0gYG5vdCAoJHtjb250ZW50fSlgO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZChcbiAgICBub2RlOiBSZW5kZXJhYmxlLFxuICAgIGNvbm5lY3Rvcj86IEZpbHRlckNvbm5lY3RvclxuICApOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICBpZiAoY29ubmVjdG9yICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fY29ubmVjdG9yICE9PSBjb25uZWN0b3IpIHtcbiAgICAgIGxldCBjaGlsZHJlbjogUmVuZGVyYWJsZVtdID0gW107XG4gICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgY2hpbGRyZW4gPSBbLi4udGhpcy5fY2hpbGRyZW5dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBleHAgPSBuZXcgRmlsdGVyRXhwcmVzc2lvbjxUPih7XG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4sXG4gICAgICAgICAgICBjb25uZWN0b3I6IHRoaXMuX2Nvbm5lY3RvcixcbiAgICAgICAgICAgIG5lZ2F0ZWQ6IHRoaXMuX25lZ2F0ZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGV4cC5sZW5ndGgoKSA+IDEpIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobmV3IEdyb3VwaW5nKGV4cCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGV4cCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUgaW5zdGFuY2VvZiBGaWx0ZXJFeHByZXNzaW9uICYmXG4gICAgICAgIChub2RlLmNvbm5lY3RvcigpID09PSBjb25uZWN0b3IgfHwgbm9kZS5sZW5ndGgoKSA9PT0gMSlcbiAgICAgICkge1xuICAgICAgICBjaGlsZHJlbiA9IFsuLi5jaGlsZHJlbiwgLi4ubm9kZS5jaGlsZHJlbigpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2gobmV3IEdyb3VwaW5nKG5vZGUpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvcjtcbiAgICAgIHRoaXMuX2NoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vZGUgaW5zdGFuY2VvZiBGaWx0ZXJFeHByZXNzaW9uICYmXG4gICAgICAhbm9kZS5uZWdhdGVkKCkgJiZcbiAgICAgIChub2RlLmNvbm5lY3RvcigpID09PSBjb25uZWN0b3IgfHwgbm9kZS5sZW5ndGgoKSA9PT0gMSlcbiAgICApIHtcbiAgICAgIHRoaXMuX2NoaWxkcmVuID0gWy4uLnRoaXMuX2NoaWxkcmVuLCAuLi5ub2RlLmNoaWxkcmVuKCldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKFxuICAgICAgICBub2RlIGluc3RhbmNlb2YgRmlsdGVyRXhwcmVzc2lvbiAmJiAhbm9kZS5uZWdhdGVkKClcbiAgICAgICAgICA/IG5ldyBHcm91cGluZyhub2RlKVxuICAgICAgICAgIDogbm9kZVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvcihleHA6IEZpbHRlckV4cHJlc3Npb248VD4pOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGV4cCwgJ29yJyk7XG4gIH1cblxuICBhbmQoZXhwOiBGaWx0ZXJFeHByZXNzaW9uPFQ+KTogRmlsdGVyRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChleHAsICdhbmQnKTtcbiAgfVxuXG4gIG5vdChleHA6IEZpbHRlckV4cHJlc3Npb248VD4pOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICBjb25zdCBub3RFeHAgPSBuZXcgRmlsdGVyRXhwcmVzc2lvbjxUPih7XG4gICAgICBjaGlsZHJlbjogZXhwLmNoaWxkcmVuKCksXG4gICAgICBjb25uZWN0b3I6IGV4cC5jb25uZWN0b3IoKSxcbiAgICAgIG5lZ2F0ZWQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fYWRkKG5vdEV4cCwgdGhpcy5fY29ubmVjdG9yKTtcbiAgfVxuXG4gIGVxKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmVxKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIG5lKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLm5lKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGd0KGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmd0KGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGdlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmdlKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGx0KGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmx0KGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGxlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQob3BlcmF0b3JzLmxlKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGhhcyhsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG9wZXJhdG9ycy5oYXMobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgaW4obGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChvcGVyYXRvcnMuaW4obGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgY29udGFpbnMobGVmdDogYW55LCByaWdodDogYW55LCBub3JtYWxpemU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChmdW5jdGlvbnMuY29udGFpbnMobGVmdCwgcmlnaHQsIG5vcm1hbGl6ZSkpO1xuICB9XG5cbiAgc3RhcnRzV2l0aChsZWZ0OiBhbnksIHJpZ2h0OiBhbnksIG5vcm1hbGl6ZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKGZ1bmN0aW9ucy5zdGFydHNXaXRoKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGVuZHNXaXRoKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgbm9ybWFsaXplPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZnVuY3Rpb25zLmVuZHNXaXRoKGxlZnQsIHJpZ2h0LCBub3JtYWxpemUpKTtcbiAgfVxuXG4gIGFueTxOIGV4dGVuZHMgb2JqZWN0PihcbiAgICBsZWZ0OiBOW10sXG4gICAgb3B0czogKGU6IHtcbiAgICAgIHM6IE47XG4gICAgICBlOiAoY29ubmVjdG9yPzogRmlsdGVyQ29ubmVjdG9yKSA9PiBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgIH0pID0+IEZpbHRlckV4cHJlc3Npb248Tj4sXG4gICAgYWxpYXM/OiBzdHJpbmdcbiAgKTogRmlsdGVyRXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3QgZXhwID0gb3B0cyh7XG4gICAgICBzOiBGaWVsZC5mYWN0b3J5PE4+KCksXG4gICAgICBlOiBGaWx0ZXJFeHByZXNzaW9uLmUsXG4gICAgfSkgYXMgRmlsdGVyRXhwcmVzc2lvbjxOPjtcbiAgICByZXR1cm4gdGhpcy5fYWRkKHN5bnRheC5hbnkobGVmdCwgZXhwLCBhbGlhcykpO1xuICB9XG5cbiAgYWxsPE4gZXh0ZW5kcyBvYmplY3Q+KFxuICAgIGxlZnQ6IE5bXSxcbiAgICBvcHRzOiAoZToge1xuICAgICAgczogTjtcbiAgICAgIGU6IChjb25uZWN0b3I/OiBGaWx0ZXJDb25uZWN0b3IpID0+IEZpbHRlckV4cHJlc3Npb248Tj47XG4gICAgfSkgPT4gRmlsdGVyRXhwcmVzc2lvbjxOPixcbiAgICBhbGlhcz86IHN0cmluZ1xuICApOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICBjb25zdCBleHAgPSBvcHRzKHtcbiAgICAgIHM6IEZpZWxkLmZhY3Rvcnk8Tj4oKSxcbiAgICAgIGU6IEZpbHRlckV4cHJlc3Npb24uZSxcbiAgICB9KSBhcyBGaWx0ZXJFeHByZXNzaW9uPE4+O1xuICAgIHJldHVybiB0aGlzLl9hZGQoc3ludGF4LmFsbChsZWZ0LCBleHAsIGFsaWFzKSk7XG4gIH1cblxuICBpc29mKHR5cGU6IHN0cmluZyk6IEZpbHRlckV4cHJlc3Npb248VD47XG4gIGlzb2YobGVmdDogVCwgdHlwZTogc3RyaW5nKTogRmlsdGVyRXhwcmVzc2lvbjxUPjtcbiAgaXNvZihsZWZ0OiBhbnksIHR5cGU/OiBzdHJpbmcpOiBGaWx0ZXJFeHByZXNzaW9uPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKHN5bnRheC5pc29mKGxlZnQsIHR5cGUpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './base';
2
+ export * from './compute';
3
+ export * from './filter';
4
+ export * from './orderby';
5
+ export * from './search';
6
+ export * from './syntax';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3F1ZXJ5L2V4cHJlc3Npb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcHV0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyYnknO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9zeW50YXgnO1xuIl19
@@ -0,0 +1,54 @@
1
+ import { Expression } from './base';
2
+ import { render, Field } from './syntax';
3
+ export class OrderByField {
4
+ constructor(field, order) {
5
+ this.field = field;
6
+ this.order = order;
7
+ }
8
+ get [Symbol.toStringTag]() {
9
+ return 'OrderByField';
10
+ }
11
+ toJSON() {
12
+ return {
13
+ field: this.field.toJSON(),
14
+ order: this.order,
15
+ };
16
+ }
17
+ render({ aliases, escape, prefix, }) {
18
+ return `${render(this.field, { aliases, escape, prefix })} ${this.order}`;
19
+ }
20
+ }
21
+ export class OrderByExpression extends Expression {
22
+ constructor({ children, } = {}) {
23
+ super({ children });
24
+ }
25
+ static e() {
26
+ return new OrderByExpression();
27
+ }
28
+ static s() {
29
+ return Field.factory();
30
+ }
31
+ static orderBy(opts) {
32
+ return opts({
33
+ s: OrderByExpression.s(),
34
+ e: OrderByExpression.e,
35
+ });
36
+ }
37
+ _add(node) {
38
+ this._children.push(node);
39
+ return this;
40
+ }
41
+ render({ aliases, escape, prefix, } = {}) {
42
+ let content = this._children
43
+ .map((n) => n.render({ aliases, escape, prefix }))
44
+ .join(`,`);
45
+ return content;
46
+ }
47
+ ascending(field) {
48
+ return this._add(new OrderByField(field, 'asc'));
49
+ }
50
+ descending(field) {
51
+ return this._add(new OrderByField(field, 'desc'));
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJieS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvcXVlcnkvZXhwcmVzc2lvbnMvb3JkZXJieS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFjLE1BQU0sVUFBVSxDQUFDO0FBRXJELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQXNCLEtBQWlCLEVBQVksS0FBcUI7UUFBbEQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFZLFVBQUssR0FBTCxLQUFLLENBQWdCO0lBQUcsQ0FBQztJQUU1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEdBS1A7UUFDQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVFLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBcUIsU0FBUSxVQUFhO0lBQ3JELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxJQUFJLGlCQUFpQixFQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQ1osSUFBMEU7UUFFMUUsT0FBTyxJQUFJLENBQUM7WUFDVixDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxFQUFLO1lBQzNCLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZCLENBQXlCLENBQUM7SUFDN0IsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFnQjtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDTCxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sTUFLSixFQUFFO1FBQ0osSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVM7YUFDekIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFF1ZXJ5Q3VzdG9tVHlwZSB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyByZW5kZXIsIEZpZWxkLCBSZW5kZXJhYmxlIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgY2xhc3MgT3JkZXJCeUZpZWxkIGltcGxlbWVudHMgUmVuZGVyYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmaWVsZDogUmVuZGVyYWJsZSwgcHJvdGVjdGVkIG9yZGVyOiAnYXNjJyB8ICdkZXNjJykge31cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdPcmRlckJ5RmllbGQnO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZDogdGhpcy5maWVsZC50b0pTT04oKSxcbiAgICAgIG9yZGVyOiB0aGlzLm9yZGVyLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIoe1xuICAgIGFsaWFzZXMsXG4gICAgZXNjYXBlLFxuICAgIHByZWZpeCxcbiAgfToge1xuICAgIGFsaWFzZXM/OiBRdWVyeUN1c3RvbVR5cGVbXTtcbiAgICBlc2NhcGU/OiBib29sZWFuO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3JlbmRlcih0aGlzLmZpZWxkLCB7IGFsaWFzZXMsIGVzY2FwZSwgcHJlZml4IH0pfSAke3RoaXMub3JkZXJ9YDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JkZXJCeUV4cHJlc3Npb248VD4gZXh0ZW5kcyBFeHByZXNzaW9uPFQ+IHtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHsgY2hpbGRyZW4gfSk7XG4gIH1cblxuICBzdGF0aWMgZTxUPigpIHtcbiAgICByZXR1cm4gbmV3IE9yZGVyQnlFeHByZXNzaW9uPFQ+KCk7XG4gIH1cblxuICBzdGF0aWMgczxUIGV4dGVuZHMgb2JqZWN0PigpOiBUIHtcbiAgICByZXR1cm4gRmllbGQuZmFjdG9yeTxUPigpO1xuICB9XG5cbiAgc3RhdGljIG9yZGVyQnk8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgb3B0czogKGU6IHsgczogVDsgZTogKCkgPT4gT3JkZXJCeUV4cHJlc3Npb248VD4gfSkgPT4gT3JkZXJCeUV4cHJlc3Npb248VD5cbiAgKTogT3JkZXJCeUV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiBvcHRzKHtcbiAgICAgIHM6IE9yZGVyQnlFeHByZXNzaW9uLnM8VD4oKSxcbiAgICAgIGU6IE9yZGVyQnlFeHByZXNzaW9uLmUsXG4gICAgfSkgYXMgT3JkZXJCeUV4cHJlc3Npb248VD47XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IE9yZGVyQnlFeHByZXNzaW9uPFQ+IHtcbiAgICB0aGlzLl9jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW10gfCB1bmRlZmluZWQ7XG4gICAgZXNjYXBlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBwcmVmaXg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCB9KSlcbiAgICAgIC5qb2luKGAsYCk7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBhc2NlbmRpbmcoZmllbGQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl9hZGQobmV3IE9yZGVyQnlGaWVsZChmaWVsZCwgJ2FzYycpKTtcbiAgfVxuXG4gIGRlc2NlbmRpbmcoZmllbGQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl9hZGQobmV3IE9yZGVyQnlGaWVsZChmaWVsZCwgJ2Rlc2MnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,113 @@
1
+ import { Expression } from './base';
2
+ import { render, Grouping } from './syntax';
3
+ export class SearchTerm {
4
+ constructor(value) {
5
+ this.value = value;
6
+ }
7
+ get [Symbol.toStringTag]() {
8
+ return 'SearchTerm';
9
+ }
10
+ toJSON() {
11
+ return {
12
+ value: this.value,
13
+ };
14
+ }
15
+ render({ aliases, escape, prefix, }) {
16
+ return `${render(this.value, { aliases, escape, prefix })}`;
17
+ }
18
+ }
19
+ export class SearchExpression extends Expression {
20
+ constructor({ children, connector, negated, } = {}) {
21
+ super({ children });
22
+ this._connector = connector || 'AND';
23
+ this._negated = negated || false;
24
+ }
25
+ static e(connector = 'AND') {
26
+ return new SearchExpression({ connector });
27
+ }
28
+ static search(opts) {
29
+ return opts({
30
+ e: SearchExpression.e,
31
+ });
32
+ }
33
+ _add(node, connector) {
34
+ if (connector !== undefined && this._connector !== connector) {
35
+ let children = [];
36
+ if (this._children.length > 0) {
37
+ if (this._children.length === 1) {
38
+ children = [...this._children];
39
+ }
40
+ else {
41
+ let exp = new SearchExpression({
42
+ children: this._children,
43
+ connector: this._connector,
44
+ negated: this._negated,
45
+ });
46
+ if (exp.length() > 1) {
47
+ children.push(new Grouping(exp));
48
+ }
49
+ else {
50
+ children.push(exp);
51
+ }
52
+ }
53
+ }
54
+ if (node instanceof SearchExpression &&
55
+ (node.connector() === connector || node.length() === 1)) {
56
+ children = [...children, ...node.children()];
57
+ }
58
+ else {
59
+ children.push(new Grouping(node));
60
+ }
61
+ this._connector = connector;
62
+ this._children = children;
63
+ }
64
+ else if (node instanceof SearchExpression &&
65
+ !node.negated() &&
66
+ (node.connector() === connector || node.length() === 1)) {
67
+ this._children = [...this._children, ...node.children()];
68
+ }
69
+ else {
70
+ this._children.push(node instanceof SearchExpression && !node.negated()
71
+ ? new Grouping(node)
72
+ : node);
73
+ }
74
+ return this;
75
+ }
76
+ render({ aliases, escape, prefix, } = {}) {
77
+ let content = this._children
78
+ .map((n) => n.render({ aliases, escape, prefix }))
79
+ .join(` ${this._connector} `);
80
+ return content;
81
+ }
82
+ toJSON() {
83
+ return {
84
+ children: this._children.map((c) => c.toJSON()),
85
+ connector: this._connector,
86
+ negated: this._negated,
87
+ };
88
+ }
89
+ connector() {
90
+ return this._connector;
91
+ }
92
+ negated() {
93
+ return this._negated;
94
+ }
95
+ or(exp) {
96
+ return this._add(exp, 'OR');
97
+ }
98
+ and(exp) {
99
+ return this._add(exp, 'AND');
100
+ }
101
+ not(exp) {
102
+ const notExp = new SearchExpression({
103
+ children: exp.children(),
104
+ connector: exp.connector(),
105
+ negated: true,
106
+ });
107
+ return this._add(notExp, this._connector);
108
+ }
109
+ term(value) {
110
+ return this._add(new SearchTerm(value));
111
+ }
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYyxNQUFNLFVBQVUsQ0FBQztBQUl4RCxNQUFNLE9BQU8sVUFBVTtJQUNyQixZQUFzQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUFHLENBQUM7SUFFdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQ0wsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEdBS1A7UUFDQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsVUFBYTtJQUdwRCxZQUFZLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxPQUFPLE1BS0wsRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLENBQUMsQ0FBSSxZQUE2QixLQUFL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aW1wb3J0IHR5cGUgeyBRdWVyeUN1c3RvbVR5cGUgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgcmVuZGVyLCBHcm91cGluZywgUmVuZGVyYWJsZSB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IHR5cGUgU2VhcmNoQ29ubmVjdG9yID0gJ0FORCcgfCAnT1InO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoVGVybSBpbXBsZW1lbnRzIFJlbmRlcmFibGUge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmFsdWU6IHN0cmluZykge31cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdTZWFyY2hUZXJtJztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7XG4gICAgYWxpYXNlcyxcbiAgICBlc2NhcGUsXG4gICAgcHJlZml4LFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdO1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cmVuZGVyKHRoaXMudmFsdWUsIHsgYWxpYXNlcywgZXNjYXBlLCBwcmVmaXggfSl9YDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VhcmNoRXhwcmVzc2lvbjxUPiBleHRlbmRzIEV4cHJlc3Npb248VD4ge1xuICBwcml2YXRlIF9jb25uZWN0b3I6IFNlYXJjaENvbm5lY3RvcjtcbiAgcHJpdmF0ZSBfbmVnYXRlZDogYm9vbGVhbjtcbiAgY29uc3RydWN0b3Ioe1xuICAgIGNoaWxkcmVuLFxuICAgIGNvbm5lY3RvcixcbiAgICBuZWdhdGVkLFxuICB9OiB7XG4gICAgY2hpbGRyZW4/OiBSZW5kZXJhYmxlW107XG4gICAgY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yO1xuICAgIG5lZ2F0ZWQ/OiBib29sZWFuO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICAgIHRoaXMuX2Nvbm5lY3RvciA9IGNvbm5lY3RvciB8fCAnQU5EJztcbiAgICB0aGlzLl9uZWdhdGVkID0gbmVnYXRlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBlPFQ+KGNvbm5lY3RvcjogU2VhcmNoQ29ubmVjdG9yID0gJ0FORCcpIHtcbiAgICByZXR1cm4gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oeyBjb25uZWN0b3IgfSk7XG4gIH1cblxuICBzdGF0aWMgc2VhcmNoPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIG9wdHM6IChlOiB7XG4gICAgICBlOiAoY29ubmVjdG9yPzogU2VhcmNoQ29ubmVjdG9yKSA9PiBTZWFyY2hFeHByZXNzaW9uPFQ+O1xuICAgIH0pID0+IFNlYXJjaEV4cHJlc3Npb248VD5cbiAgKTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIG9wdHMoe1xuICAgICAgZTogU2VhcmNoRXhwcmVzc2lvbi5lLFxuICAgIH0pIGFzIFNlYXJjaEV4cHJlc3Npb248VD47XG4gIH1cblxuICBwcml2YXRlIF9hZGQoXG4gICAgbm9kZTogUmVuZGVyYWJsZSxcbiAgICBjb25uZWN0b3I/OiBTZWFyY2hDb25uZWN0b3JcbiAgKTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgaWYgKGNvbm5lY3RvciAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2Nvbm5lY3RvciAhPT0gY29ubmVjdG9yKSB7XG4gICAgICBsZXQgY2hpbGRyZW46IFJlbmRlcmFibGVbXSA9IFtdO1xuICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGNoaWxkcmVuID0gWy4uLnRoaXMuX2NoaWxkcmVuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZXhwID0gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oe1xuICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMuX2NoaWxkcmVuLFxuICAgICAgICAgICAgY29ubmVjdG9yOiB0aGlzLl9jb25uZWN0b3IsXG4gICAgICAgICAgICBuZWdhdGVkOiB0aGlzLl9uZWdhdGVkLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChleHAubGVuZ3RoKCkgPiAxKSB7XG4gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKG5ldyBHcm91cGluZyhleHApKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChleHApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBub2RlIGluc3RhbmNlb2YgU2VhcmNoRXhwcmVzc2lvbiAmJlxuICAgICAgICAobm9kZS5jb25uZWN0b3IoKSA9PT0gY29ubmVjdG9yIHx8IG5vZGUubGVuZ3RoKCkgPT09IDEpXG4gICAgICApIHtcbiAgICAgICAgY2hpbGRyZW4gPSBbLi4uY2hpbGRyZW4sIC4uLm5vZGUuY2hpbGRyZW4oKV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKG5ldyBHcm91cGluZyhub2RlKSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9jb25uZWN0b3IgPSBjb25uZWN0b3I7XG4gICAgICB0aGlzLl9jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBub2RlIGluc3RhbmNlb2YgU2VhcmNoRXhwcmVzc2lvbiAmJlxuICAgICAgIW5vZGUubmVnYXRlZCgpICYmXG4gICAgICAobm9kZS5jb25uZWN0b3IoKSA9PT0gY29ubmVjdG9yIHx8IG5vZGUubGVuZ3RoKCkgPT09IDEpXG4gICAgKSB7XG4gICAgICB0aGlzLl9jaGlsZHJlbiA9IFsuLi50aGlzLl9jaGlsZHJlbiwgLi4ubm9kZS5jaGlsZHJlbigpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaChcbiAgICAgICAgbm9kZSBpbnN0YW5jZW9mIFNlYXJjaEV4cHJlc3Npb24gJiYgIW5vZGUubmVnYXRlZCgpXG4gICAgICAgICAgPyBuZXcgR3JvdXBpbmcobm9kZSlcbiAgICAgICAgICA6IG5vZGVcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVuZGVyKHtcbiAgICBhbGlhc2VzLFxuICAgIGVzY2FwZSxcbiAgICBwcmVmaXgsXG4gIH06IHtcbiAgICBhbGlhc2VzPzogUXVlcnlDdXN0b21UeXBlW10gfCB1bmRlZmluZWQ7XG4gICAgZXNjYXBlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBwcmVmaXg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCB9KSlcbiAgICAgIC5qb2luKGAgJHt0aGlzLl9jb25uZWN0b3J9IGApO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogdGhpcy5fY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvSlNPTigpKSxcbiAgICAgIGNvbm5lY3RvcjogdGhpcy5fY29ubmVjdG9yLFxuICAgICAgbmVnYXRlZDogdGhpcy5fbmVnYXRlZCxcbiAgICB9O1xuICB9XG5cbiAgY29ubmVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3I7XG4gIH1cblxuICBuZWdhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9uZWdhdGVkO1xuICB9XG5cbiAgb3IoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChleHAsICdPUicpO1xuICB9XG5cbiAgYW5kKGV4cDogU2VhcmNoRXhwcmVzc2lvbjxUPik6IFNlYXJjaEV4cHJlc3Npb248VD4ge1xuICAgIHJldHVybiB0aGlzLl9hZGQoZXhwLCAnQU5EJyk7XG4gIH1cblxuICBub3QoZXhwOiBTZWFyY2hFeHByZXNzaW9uPFQ+KTogU2VhcmNoRXhwcmVzc2lvbjxUPiB7XG4gICAgY29uc3Qgbm90RXhwID0gbmV3IFNlYXJjaEV4cHJlc3Npb248VD4oe1xuICAgICAgY2hpbGRyZW46IGV4cC5jaGlsZHJlbigpLFxuICAgICAgY29ubmVjdG9yOiBleHAuY29ubmVjdG9yKCksXG4gICAgICBuZWdhdGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2FkZChub3RFeHAsIHRoaXMuX2Nvbm5lY3Rvcik7XG4gIH1cblxuICB0ZXJtKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkKG5ldyBTZWFyY2hUZXJtKHZhbHVlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ import { Expression } from './base';
2
+ import { Field, } from './syntax';
3
+ export class SelectExpression extends Expression {
4
+ constructor({ children, } = {}) {
5
+ super({ children });
6
+ }
7
+ static e() {
8
+ return new SelectExpression();
9
+ }
10
+ static s() {
11
+ return Field.factory();
12
+ }
13
+ static select(opts) {
14
+ return opts({
15
+ s: SelectExpression.s(),
16
+ e: SelectExpression.e,
17
+ });
18
+ }
19
+ render({ aliases, escape, prefix, } = {}) {
20
+ return this._children
21
+ .map((n) => n.render({ aliases, escape, prefix }))
22
+ .join(',');
23
+ }
24
+ _add(node) {
25
+ this._children.push(node);
26
+ return this;
27
+ }
28
+ field(field) {
29
+ return this._add(field);
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy9xdWVyeS9leHByZXNzaW9ucy9zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsS0FBSyxHQU1OLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxVQUFhO0lBQ3BELFlBQVksRUFDVixRQUFRLE1BR04sRUFBRTtRQUNKLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxJQUFJLGdCQUFnQixFQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDO1FBQ04sT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFBd0U7UUFFeEUsT0FBTyxJQUFJLENBQUM7WUFDVixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxFQUFLO1lBQzFCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3RCLENBQXdCLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxNQUtKLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTO2FBQ2xCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRU8sSUFBSSxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnlDdXN0b21UeXBlIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIEZpZWxkLFxuICBmdW5jdGlvbnMsXG4gIE9EYXRhRnVuY3Rpb25zLFxuICBPRGF0YU9wZXJhdG9ycyxcbiAgb3BlcmF0b3JzLFxuICBSZW5kZXJhYmxlLFxufSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RFeHByZXNzaW9uPFQ+IGV4dGVuZHMgRXhwcmVzc2lvbjxUPiB7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuPzogUmVuZGVyYWJsZVtdO1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7IGNoaWxkcmVuIH0pO1xuICB9XG5cbiAgc3RhdGljIGU8VD4oKSB7XG4gICAgcmV0dXJuIG5ldyBTZWxlY3RFeHByZXNzaW9uPFQ+KCk7XG4gIH1cblxuICBzdGF0aWMgczxUIGV4dGVuZHMgb2JqZWN0PigpOiBUIHtcbiAgICByZXR1cm4gRmllbGQuZmFjdG9yeTxUPigpO1xuICB9XG5cbiAgc3RhdGljIHNlbGVjdDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvcHRzOiAoZTogeyBzOiBUOyBlOiAoKSA9PiBTZWxlY3RFeHByZXNzaW9uPFQ+IH0pID0+IFNlbGVjdEV4cHJlc3Npb248VD5cbiAgKTogU2VsZWN0RXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIG9wdHMoe1xuICAgICAgczogU2VsZWN0RXhwcmVzc2lvbi5zPFQ+KCksXG4gICAgICBlOiBTZWxlY3RFeHByZXNzaW9uLmUsXG4gICAgfSkgYXMgU2VsZWN0RXhwcmVzc2lvbjxUPjtcbiAgfVxuXG4gIHJlbmRlcih7XG4gICAgYWxpYXNlcyxcbiAgICBlc2NhcGUsXG4gICAgcHJlZml4LFxuICB9OiB7XG4gICAgYWxpYXNlcz86IFF1ZXJ5Q3VzdG9tVHlwZVtdIHwgdW5kZWZpbmVkO1xuICAgIGVzY2FwZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgcHJlZml4Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9ID0ge30pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jaGlsZHJlblxuICAgICAgLm1hcCgobikgPT4gbi5yZW5kZXIoeyBhbGlhc2VzLCBlc2NhcGUsIHByZWZpeCB9KSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICBwcml2YXRlIF9hZGQobm9kZTogUmVuZGVyYWJsZSk6IFNlbGVjdEV4cHJlc3Npb248VD4ge1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmaWVsZChmaWVsZDogYW55KTogU2VsZWN0RXhwcmVzc2lvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChmaWVsZCk7XG4gIH1cbn1cbiJdfQ==