@devrev/meerkat-core 0.0.97 → 0.0.98

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 (357) hide show
  1. package/package.json +2 -2
  2. package/src/ast-builder/ast-builder.js +91 -0
  3. package/src/ast-builder/ast-builder.js.map +1 -0
  4. package/src/ast-deserializer/ast-deserializer.js +17 -0
  5. package/src/ast-deserializer/ast-deserializer.js.map +1 -0
  6. package/src/ast-serializer/ast-serializer.js +8 -0
  7. package/src/ast-serializer/ast-serializer.js.map +1 -0
  8. package/src/ast-validator/dimension-validator.js +49 -0
  9. package/src/ast-validator/dimension-validator.js.map +1 -0
  10. package/src/ast-validator/index.js +12 -0
  11. package/src/ast-validator/index.js.map +1 -0
  12. package/src/ast-validator/measure-validator.js +155 -0
  13. package/src/ast-validator/measure-validator.js.map +1 -0
  14. package/{ast-validator → src/ast-validator}/tests/test-data.js +692 -890
  15. package/src/ast-validator/tests/test-data.js.map +1 -0
  16. package/src/ast-validator/types.js +3 -0
  17. package/src/ast-validator/types.js.map +1 -0
  18. package/src/ast-validator/utils.js +24 -0
  19. package/src/ast-validator/utils.js.map +1 -0
  20. package/src/context-params/context-params-ast.js +42 -0
  21. package/src/context-params/context-params-ast.js.map +1 -0
  22. package/src/cube-filter-transformer/and/and.js +14 -0
  23. package/src/cube-filter-transformer/and/and.js.map +1 -0
  24. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +145 -0
  25. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -0
  26. package/src/cube-filter-transformer/contains/contains.js +62 -0
  27. package/src/cube-filter-transformer/contains/contains.js.map +1 -0
  28. package/src/cube-filter-transformer/equals/equals-array.js +71 -0
  29. package/src/cube-filter-transformer/equals/equals-array.js.map +1 -0
  30. package/src/cube-filter-transformer/equals/equals.js +36 -0
  31. package/src/cube-filter-transformer/equals/equals.js.map +1 -0
  32. package/src/cube-filter-transformer/factory.js +120 -0
  33. package/src/cube-filter-transformer/factory.js.map +1 -0
  34. package/src/cube-filter-transformer/gt/gt.js +28 -0
  35. package/src/cube-filter-transformer/gt/gt.js.map +1 -0
  36. package/src/cube-filter-transformer/gte/gte.js +28 -0
  37. package/src/cube-filter-transformer/gte/gte.js.map +1 -0
  38. package/src/cube-filter-transformer/in/in.js +69 -0
  39. package/src/cube-filter-transformer/in/in.js.map +1 -0
  40. package/src/cube-filter-transformer/in-date-range/in-date-range.js +21 -0
  41. package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -0
  42. package/src/cube-filter-transformer/lt/lt.js +28 -0
  43. package/src/cube-filter-transformer/lt/lt.js.map +1 -0
  44. package/src/cube-filter-transformer/lte/lte.js +28 -0
  45. package/src/cube-filter-transformer/lte/lte.js.map +1 -0
  46. package/src/cube-filter-transformer/not/not.js +14 -0
  47. package/src/cube-filter-transformer/not/not.js.map +1 -0
  48. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js +21 -0
  49. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -0
  50. package/src/cube-filter-transformer/not-contains/not-contains.js +62 -0
  51. package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -0
  52. package/src/cube-filter-transformer/not-equals/not-equals-array.js +21 -0
  53. package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -0
  54. package/src/cube-filter-transformer/not-equals/not-equals.js +36 -0
  55. package/src/cube-filter-transformer/not-equals/not-equals.js.map +1 -0
  56. package/src/cube-filter-transformer/not-in/not-in.js +76 -0
  57. package/src/cube-filter-transformer/not-in/not-in.js.map +1 -0
  58. package/src/cube-filter-transformer/not-set/not-set.js +23 -0
  59. package/src/cube-filter-transformer/not-set/not-set.js.map +1 -0
  60. package/src/cube-filter-transformer/or/or.js +14 -0
  61. package/src/cube-filter-transformer/or/or.js.map +1 -0
  62. package/src/cube-filter-transformer/set/set.js +23 -0
  63. package/src/cube-filter-transformer/set/set.js.map +1 -0
  64. package/src/cube-group-by-transformer/cube-group-by-transformer.js +19 -0
  65. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -0
  66. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js +42 -0
  67. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +1 -0
  68. package/src/cube-measure-transformer/cube-measure-transformer.js +124 -0
  69. package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -0
  70. package/src/cube-order-by-transformer/cube-order-by-transformer.js +34 -0
  71. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -0
  72. package/src/cube-to-duckdb/cube-filter-to-duckdb.js +3 -0
  73. package/src/cube-to-duckdb/cube-filter-to-duckdb.js.map +1 -0
  74. package/src/filter-params/filter-params-ast.js +114 -0
  75. package/src/filter-params/filter-params-ast.js.map +1 -0
  76. package/src/get-filter-params-sql/get-filter-params-sql.js +25 -0
  77. package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
  78. package/src/get-final-base-sql/get-final-base-sql.js +28 -0
  79. package/src/get-final-base-sql/get-final-base-sql.js.map +1 -0
  80. package/{get-wrapped-base-query-with-projections → src/get-wrapped-base-query-with-projections}/get-aliased-columns-from-filters.js +39 -64
  81. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -0
  82. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +83 -0
  83. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -0
  84. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +32 -0
  85. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -0
  86. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +32 -0
  87. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +1 -0
  88. package/src/index.js +37 -0
  89. package/src/index.js.map +1 -0
  90. package/src/joins/joins.js +162 -0
  91. package/src/joins/joins.js.map +1 -0
  92. package/src/member-formatters/constants.js +6 -0
  93. package/src/member-formatters/constants.js.map +1 -0
  94. package/src/member-formatters/index.js +10 -0
  95. package/src/member-formatters/index.js.map +1 -0
  96. package/src/member-formatters/member-key-to-safe-key.js +9 -0
  97. package/src/member-formatters/member-key-to-safe-key.js.map +1 -0
  98. package/src/member-formatters/split-into-data-source-and-fields.js +10 -0
  99. package/src/member-formatters/split-into-data-source-and-fields.js.map +1 -0
  100. package/src/resolution/resolution.js +112 -0
  101. package/src/resolution/resolution.js.map +1 -0
  102. package/src/resolution/types.js +5 -0
  103. package/src/resolution/types.js.map +1 -0
  104. package/src/types/cube-types/index.js +6 -0
  105. package/src/types/cube-types/index.js.map +1 -0
  106. package/src/types/cube-types/query.js +8 -0
  107. package/src/types/cube-types/query.js.map +1 -0
  108. package/src/types/cube-types/table.js +3 -0
  109. package/src/types/cube-types/table.js.map +1 -0
  110. package/src/types/duckdb-serialization-types/index.js +11 -0
  111. package/src/types/duckdb-serialization-types/index.js.map +1 -0
  112. package/{types → src/types}/duckdb-serialization-types/serialization/Constraint.js +6 -19
  113. package/src/types/duckdb-serialization-types/serialization/Constraint.js.map +1 -0
  114. package/{types → src/types}/duckdb-serialization-types/serialization/CreateInfo.js +10 -29
  115. package/src/types/duckdb-serialization-types/serialization/CreateInfo.js.map +1 -0
  116. package/{types → src/types}/duckdb-serialization-types/serialization/Expression.js +6 -19
  117. package/src/types/duckdb-serialization-types/serialization/Expression.js.map +1 -0
  118. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js +28 -0
  119. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +1 -0
  120. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js +10 -0
  121. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js.map +1 -0
  122. package/src/types/duckdb-serialization-types/serialization/Misc.js +3 -0
  123. package/src/types/duckdb-serialization-types/serialization/Misc.js.map +1 -0
  124. package/{types → src/types}/duckdb-serialization-types/serialization/Nodes.js +17 -45
  125. package/src/types/duckdb-serialization-types/serialization/Nodes.js.map +1 -0
  126. package/{types → src/types}/duckdb-serialization-types/serialization/ParseInfo.js +20 -54
  127. package/src/types/duckdb-serialization-types/serialization/ParseInfo.js.map +1 -0
  128. package/{types → src/types}/duckdb-serialization-types/serialization/ParsedExpression.js +6 -19
  129. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -0
  130. package/{types → src/types}/duckdb-serialization-types/serialization/QueryNode.js +8 -24
  131. package/src/types/duckdb-serialization-types/serialization/QueryNode.js.map +1 -0
  132. package/{types → src/types}/duckdb-serialization-types/serialization/ResultModifier.js +4 -9
  133. package/src/types/duckdb-serialization-types/serialization/ResultModifier.js.map +1 -0
  134. package/src/types/duckdb-serialization-types/serialization/Statement.js +3 -0
  135. package/src/types/duckdb-serialization-types/serialization/Statement.js.map +1 -0
  136. package/{types → src/types}/duckdb-serialization-types/serialization/TableFilter.js +4 -9
  137. package/src/types/duckdb-serialization-types/serialization/TableFilter.js.map +1 -0
  138. package/{types → src/types}/duckdb-serialization-types/serialization/TableRef.js +8 -24
  139. package/src/types/duckdb-serialization-types/serialization/TableRef.js.map +1 -0
  140. package/{types → src/types}/duckdb-serialization-types/serialization/Types.js +4 -9
  141. package/src/types/duckdb-serialization-types/serialization/Types.js.map +1 -0
  142. package/src/types/duckdb-serialization-types/serialization/example.js +109 -0
  143. package/src/types/duckdb-serialization-types/serialization/example.js.map +1 -0
  144. package/src/types/utils.js +69 -0
  145. package/src/types/utils.js.map +1 -0
  146. package/{utils → src/utils}/__fixtures__/joins.fixtures.js +228 -316
  147. package/src/utils/__fixtures__/joins.fixtures.js.map +1 -0
  148. package/src/utils/base-ast.js +49 -0
  149. package/src/utils/base-ast.js.map +1 -0
  150. package/src/utils/cube-filter-enrichment.js +53 -0
  151. package/src/utils/cube-filter-enrichment.js.map +1 -0
  152. package/{utils → src/utils}/cube-to-table-schema.js +25 -38
  153. package/src/utils/cube-to-table-schema.js.map +1 -0
  154. package/src/utils/cube-type-to-duckdb-type.js +12 -0
  155. package/src/utils/cube-type-to-duckdb-type.js.map +1 -0
  156. package/src/utils/find-in-table-schema.js +28 -0
  157. package/src/utils/find-in-table-schema.js.map +1 -0
  158. package/src/utils/get-column-names-from-ast.js +45 -0
  159. package/src/utils/get-column-names-from-ast.js.map +1 -0
  160. package/src/utils/get-possible-nodes.js +146 -0
  161. package/src/utils/get-possible-nodes.js.map +1 -0
  162. package/src/utils/get-type-info.js +34 -0
  163. package/src/utils/get-type-info.js.map +1 -0
  164. package/src/utils/is-array-member-type.js +8 -0
  165. package/src/utils/is-array-member-type.js.map +1 -0
  166. package/src/utils/key-from-measures-dimension.js +32 -0
  167. package/src/utils/key-from-measures-dimension.js.map +1 -0
  168. package/src/utils/meerkat-placeholder-replacer.js +10 -0
  169. package/src/utils/meerkat-placeholder-replacer.js.map +1 -0
  170. package/src/utils/modify-meerkat-filter.js +24 -0
  171. package/src/utils/modify-meerkat-filter.js.map +1 -0
  172. package/{utils → src/utils}/type-guards.js +10 -28
  173. package/src/utils/type-guards.js.map +1 -0
  174. package/ast-builder/ast-builder.js +0 -90
  175. package/ast-builder/ast-builder.js.map +0 -1
  176. package/ast-deserializer/ast-deserializer.js +0 -30
  177. package/ast-deserializer/ast-deserializer.js.map +0 -1
  178. package/ast-serializer/ast-serializer.js +0 -12
  179. package/ast-serializer/ast-serializer.js.map +0 -1
  180. package/ast-validator/dimension-validator.js +0 -54
  181. package/ast-validator/dimension-validator.js.map +0 -1
  182. package/ast-validator/index.js +0 -25
  183. package/ast-validator/index.js.map +0 -1
  184. package/ast-validator/measure-validator.js +0 -163
  185. package/ast-validator/measure-validator.js.map +0 -1
  186. package/ast-validator/tests/test-data.js.map +0 -1
  187. package/ast-validator/types.js +0 -3
  188. package/ast-validator/types.js.map +0 -1
  189. package/ast-validator/utils.js +0 -35
  190. package/ast-validator/utils.js.map +0 -1
  191. package/context-params/context-params-ast.js +0 -55
  192. package/context-params/context-params-ast.js.map +0 -1
  193. package/cube-filter-transformer/and/and.js +0 -18
  194. package/cube-filter-transformer/and/and.js.map +0 -1
  195. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js +0 -160
  196. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +0 -1
  197. package/cube-filter-transformer/contains/contains.js +0 -71
  198. package/cube-filter-transformer/contains/contains.js.map +0 -1
  199. package/cube-filter-transformer/equals/equals-array.js +0 -77
  200. package/cube-filter-transformer/equals/equals-array.js.map +0 -1
  201. package/cube-filter-transformer/equals/equals.js +0 -37
  202. package/cube-filter-transformer/equals/equals.js.map +0 -1
  203. package/cube-filter-transformer/factory.js +0 -124
  204. package/cube-filter-transformer/factory.js.map +0 -1
  205. package/cube-filter-transformer/gt/gt.js +0 -30
  206. package/cube-filter-transformer/gt/gt.js.map +0 -1
  207. package/cube-filter-transformer/gte/gte.js +0 -30
  208. package/cube-filter-transformer/gte/gte.js.map +0 -1
  209. package/cube-filter-transformer/in/in.js +0 -78
  210. package/cube-filter-transformer/in/in.js.map +0 -1
  211. package/cube-filter-transformer/in-date-range/in-date-range.js +0 -24
  212. package/cube-filter-transformer/in-date-range/in-date-range.js.map +0 -1
  213. package/cube-filter-transformer/lt/lt.js +0 -30
  214. package/cube-filter-transformer/lt/lt.js.map +0 -1
  215. package/cube-filter-transformer/lte/lte.js +0 -30
  216. package/cube-filter-transformer/lte/lte.js.map +0 -1
  217. package/cube-filter-transformer/not/not.js +0 -18
  218. package/cube-filter-transformer/not/not.js.map +0 -1
  219. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js +0 -24
  220. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +0 -1
  221. package/cube-filter-transformer/not-contains/not-contains.js +0 -71
  222. package/cube-filter-transformer/not-contains/not-contains.js.map +0 -1
  223. package/cube-filter-transformer/not-equals/not-equals-array.js +0 -26
  224. package/cube-filter-transformer/not-equals/not-equals-array.js.map +0 -1
  225. package/cube-filter-transformer/not-equals/not-equals.js +0 -37
  226. package/cube-filter-transformer/not-equals/not-equals.js.map +0 -1
  227. package/cube-filter-transformer/not-in/not-in.js +0 -85
  228. package/cube-filter-transformer/not-in/not-in.js.map +0 -1
  229. package/cube-filter-transformer/not-set/not-set.js +0 -27
  230. package/cube-filter-transformer/not-set/not-set.js.map +0 -1
  231. package/cube-filter-transformer/or/or.js +0 -18
  232. package/cube-filter-transformer/or/or.js.map +0 -1
  233. package/cube-filter-transformer/set/set.js +0 -27
  234. package/cube-filter-transformer/set/set.js.map +0 -1
  235. package/cube-group-by-transformer/cube-group-by-transformer.js +0 -25
  236. package/cube-group-by-transformer/cube-group-by-transformer.js.map +0 -1
  237. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js +0 -42
  238. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +0 -1
  239. package/cube-measure-transformer/cube-measure-transformer.js +0 -127
  240. package/cube-measure-transformer/cube-measure-transformer.js.map +0 -1
  241. package/cube-order-by-transformer/cube-order-by-transformer.js +0 -39
  242. package/cube-order-by-transformer/cube-order-by-transformer.js.map +0 -1
  243. package/cube-to-duckdb/cube-filter-to-duckdb.js +0 -3
  244. package/cube-to-duckdb/cube-filter-to-duckdb.js.map +0 -1
  245. package/filter-params/filter-params-ast.js +0 -115
  246. package/filter-params/filter-params-ast.js.map +0 -1
  247. package/get-filter-params-sql/get-filter-params-sql.js +0 -28
  248. package/get-filter-params-sql/get-filter-params-sql.js.map +0 -1
  249. package/get-final-base-sql/get-final-base-sql.js +0 -30
  250. package/get-final-base-sql/get-final-base-sql.js.map +0 -1
  251. package/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +0 -1
  252. package/get-wrapped-base-query-with-projections/get-projection-clause.js +0 -87
  253. package/get-wrapped-base-query-with-projections/get-projection-clause.js.map +0 -1
  254. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +0 -33
  255. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +0 -1
  256. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +0 -60
  257. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +0 -1
  258. package/index.js +0 -66
  259. package/index.js.map +0 -1
  260. package/joins/joins.js +0 -170
  261. package/joins/joins.js.map +0 -1
  262. package/member-formatters/constants.js +0 -19
  263. package/member-formatters/constants.js.map +0 -1
  264. package/member-formatters/index.js +0 -23
  265. package/member-formatters/index.js.map +0 -1
  266. package/member-formatters/member-key-to-safe-key.js +0 -13
  267. package/member-formatters/member-key-to-safe-key.js.map +0 -1
  268. package/member-formatters/split-into-data-source-and-fields.js +0 -17
  269. package/member-formatters/split-into-data-source-and-fields.js.map +0 -1
  270. package/resolution/resolution.js +0 -128
  271. package/resolution/resolution.js.map +0 -1
  272. package/resolution/types.js +0 -10
  273. package/resolution/types.js.map +0 -1
  274. package/types/cube-types/index.d.js +0 -6
  275. package/types/cube-types/index.d.js.map +0 -1
  276. package/types/cube-types/index.js +0 -6
  277. package/types/cube-types/index.js.map +0 -1
  278. package/types/cube-types/query.d.js +0 -5
  279. package/types/cube-types/query.d.js.map +0 -1
  280. package/types/cube-types/query.js +0 -14
  281. package/types/cube-types/query.js.map +0 -1
  282. package/types/cube-types/table.d.js +0 -3
  283. package/types/cube-types/table.d.js.map +0 -1
  284. package/types/cube-types/table.js +0 -3
  285. package/types/cube-types/table.js.map +0 -1
  286. package/types/duckdb-serialization-types/index.d.js +0 -11
  287. package/types/duckdb-serialization-types/index.d.js.map +0 -1
  288. package/types/duckdb-serialization-types/index.js +0 -11
  289. package/types/duckdb-serialization-types/index.js.map +0 -1
  290. package/types/duckdb-serialization-types/serialization/Constraint.js.map +0 -1
  291. package/types/duckdb-serialization-types/serialization/CreateInfo.js.map +0 -1
  292. package/types/duckdb-serialization-types/serialization/Expression.d.js +0 -3
  293. package/types/duckdb-serialization-types/serialization/Expression.d.js.map +0 -1
  294. package/types/duckdb-serialization-types/serialization/Expression.js.map +0 -1
  295. package/types/duckdb-serialization-types/serialization/LogicalOperator.js +0 -47
  296. package/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +0 -1
  297. package/types/duckdb-serialization-types/serialization/MacroFunction.js +0 -15
  298. package/types/duckdb-serialization-types/serialization/MacroFunction.js.map +0 -1
  299. package/types/duckdb-serialization-types/serialization/Misc.d.js +0 -3
  300. package/types/duckdb-serialization-types/serialization/Misc.d.js.map +0 -1
  301. package/types/duckdb-serialization-types/serialization/Misc.js +0 -3
  302. package/types/duckdb-serialization-types/serialization/Misc.js.map +0 -1
  303. package/types/duckdb-serialization-types/serialization/Nodes.d.js +0 -3
  304. package/types/duckdb-serialization-types/serialization/Nodes.d.js.map +0 -1
  305. package/types/duckdb-serialization-types/serialization/Nodes.js.map +0 -1
  306. package/types/duckdb-serialization-types/serialization/ParseInfo.js.map +0 -1
  307. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js +0 -3
  308. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +0 -1
  309. package/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +0 -1
  310. package/types/duckdb-serialization-types/serialization/QueryNode.d.js +0 -3
  311. package/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +0 -1
  312. package/types/duckdb-serialization-types/serialization/QueryNode.js.map +0 -1
  313. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js +0 -3
  314. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +0 -1
  315. package/types/duckdb-serialization-types/serialization/ResultModifier.js.map +0 -1
  316. package/types/duckdb-serialization-types/serialization/Statement.d.js +0 -3
  317. package/types/duckdb-serialization-types/serialization/Statement.d.js.map +0 -1
  318. package/types/duckdb-serialization-types/serialization/Statement.js +0 -3
  319. package/types/duckdb-serialization-types/serialization/Statement.js.map +0 -1
  320. package/types/duckdb-serialization-types/serialization/TableFilter.d.js +0 -3
  321. package/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +0 -1
  322. package/types/duckdb-serialization-types/serialization/TableFilter.js.map +0 -1
  323. package/types/duckdb-serialization-types/serialization/TableRef.d.js +0 -3
  324. package/types/duckdb-serialization-types/serialization/TableRef.d.js.map +0 -1
  325. package/types/duckdb-serialization-types/serialization/TableRef.js.map +0 -1
  326. package/types/duckdb-serialization-types/serialization/Types.d.js +0 -3
  327. package/types/duckdb-serialization-types/serialization/Types.d.js.map +0 -1
  328. package/types/duckdb-serialization-types/serialization/Types.js.map +0 -1
  329. package/types/duckdb-serialization-types/serialization/example.js +0 -131
  330. package/types/duckdb-serialization-types/serialization/example.js.map +0 -1
  331. package/types/utils.js +0 -108
  332. package/types/utils.js.map +0 -1
  333. package/utils/__fixtures__/joins.fixtures.js.map +0 -1
  334. package/utils/base-ast.js +0 -63
  335. package/utils/base-ast.js.map +0 -1
  336. package/utils/cube-filter-enrichment.js +0 -63
  337. package/utils/cube-filter-enrichment.js.map +0 -1
  338. package/utils/cube-to-table-schema.js.map +0 -1
  339. package/utils/cube-type-to-duckdb-type.js +0 -17
  340. package/utils/cube-type-to-duckdb-type.js.map +0 -1
  341. package/utils/find-in-table-schema.js +0 -40
  342. package/utils/find-in-table-schema.js.map +0 -1
  343. package/utils/get-column-names-from-ast.js +0 -45
  344. package/utils/get-column-names-from-ast.js.map +0 -1
  345. package/utils/get-possible-nodes.js +0 -152
  346. package/utils/get-possible-nodes.js.map +0 -1
  347. package/utils/get-type-info.js +0 -44
  348. package/utils/get-type-info.js.map +0 -1
  349. package/utils/is-array-member-type.js +0 -12
  350. package/utils/is-array-member-type.js.map +0 -1
  351. package/utils/key-from-measures-dimension.js +0 -35
  352. package/utils/key-from-measures-dimension.js.map +0 -1
  353. package/utils/meerkat-placeholder-replacer.js +0 -14
  354. package/utils/meerkat-placeholder-replacer.js.map +0 -1
  355. package/utils/modify-meerkat-filter.js +0 -30
  356. package/utils/modify-meerkat-filter.js.map +0 -1
  357. package/utils/type-guards.js.map +0 -1
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cubeFilterToDuckdbAST = void 0;
4
+ const type_guards_1 = require("../utils/type-guards");
5
+ const and_1 = require("./and/and");
6
+ const contains_1 = require("./contains/contains");
7
+ const equals_1 = require("./equals/equals");
8
+ const gt_1 = require("./gt/gt");
9
+ const gte_1 = require("./gte/gte");
10
+ const in_date_range_1 = require("./in-date-range/in-date-range");
11
+ const in_1 = require("./in/in");
12
+ const lt_1 = require("./lt/lt");
13
+ const lte_1 = require("./lte/lte");
14
+ const not_In_date_range_1 = require("./not-In-date-range/not-In-date-range");
15
+ const not_contains_1 = require("./not-contains/not-contains");
16
+ const not_equals_1 = require("./not-equals/not-equals");
17
+ const not_in_1 = require("./not-in/not-in");
18
+ const not_set_1 = require("./not-set/not-set");
19
+ const or_1 = require("./or/or");
20
+ const set_1 = require("./set/set");
21
+ // Comparison operators
22
+ const cubeFilterOperatorsToDuckdb = (cubeFilter) => {
23
+ switch (cubeFilter.operator) {
24
+ case 'equals':
25
+ return (0, equals_1.equalsTransform)(cubeFilter);
26
+ case 'notEquals':
27
+ return (0, not_equals_1.notEqualsTransform)(cubeFilter);
28
+ case 'in':
29
+ return (0, in_1.inTransform)(cubeFilter);
30
+ case 'notIn':
31
+ return (0, not_in_1.notInTransform)(cubeFilter);
32
+ case 'contains':
33
+ return (0, contains_1.containsTransform)(cubeFilter);
34
+ case 'notContains':
35
+ return (0, not_contains_1.notContainsTransform)(cubeFilter);
36
+ case 'gt':
37
+ return (0, gt_1.gtTransform)(cubeFilter);
38
+ case 'gte':
39
+ return (0, gte_1.gteTransform)(cubeFilter);
40
+ case 'lt':
41
+ return (0, lt_1.ltTransform)(cubeFilter);
42
+ case 'lte':
43
+ return (0, lte_1.lteTransform)(cubeFilter);
44
+ case 'inDateRange':
45
+ return (0, in_date_range_1.inDataRangeTransform)(cubeFilter);
46
+ case 'notInDateRange':
47
+ return (0, not_In_date_range_1.notInDataRangeTransform)(cubeFilter);
48
+ case 'notSet': {
49
+ return (0, not_set_1.notSetTransform)(cubeFilter);
50
+ }
51
+ case 'set': {
52
+ return (0, set_1.setTransform)(cubeFilter);
53
+ }
54
+ default:
55
+ throw new Error('Could not transform the filter');
56
+ }
57
+ };
58
+ const cubeFilterLogicalAndOrToDuckdb = (cubeFilter, whereObj) => {
59
+ /**
60
+ * This condition is true when you are at the leaf most level of the filter
61
+ */
62
+ if (!(0, type_guards_1.isFilterArray)(cubeFilter) && (0, type_guards_1.isQueryFilter)(cubeFilter)) {
63
+ const data = cubeFilterOperatorsToDuckdb(cubeFilter);
64
+ if (!data) {
65
+ throw new Error('Could not transform the filter');
66
+ }
67
+ return data;
68
+ }
69
+ if (!(0, type_guards_1.isFilterArray)(cubeFilter) && (0, type_guards_1.isLogicalAnd)(cubeFilter)) {
70
+ if (cubeFilter.and.length === 0) {
71
+ return null;
72
+ }
73
+ // And or Or we need to recurse
74
+ const andDuckdbExpression = (0, and_1.andDuckdbCondition)();
75
+ const data = cubeFilterLogicalAndOrToDuckdb(cubeFilter.and, andDuckdbExpression);
76
+ return data;
77
+ }
78
+ if (!(0, type_guards_1.isFilterArray)(cubeFilter) && (0, type_guards_1.isLogicalOr)(cubeFilter)) {
79
+ if (cubeFilter.or.length === 0) {
80
+ return null;
81
+ }
82
+ // And or Or we need to recurse
83
+ const orDuckdbExpression = (0, or_1.orDuckdbCondition)();
84
+ const data = cubeFilterLogicalAndOrToDuckdb(cubeFilter.or, orDuckdbExpression);
85
+ return data;
86
+ }
87
+ if ((0, type_guards_1.isFilterArray)(cubeFilter)) {
88
+ for (const filter of cubeFilter) {
89
+ const data = cubeFilterLogicalAndOrToDuckdb(filter, whereObj);
90
+ if (data) {
91
+ if ((0, type_guards_1.hasChildren)(whereObj)) {
92
+ whereObj.children.push(data);
93
+ }
94
+ else {
95
+ whereObj = data;
96
+ }
97
+ }
98
+ }
99
+ return whereObj;
100
+ }
101
+ return whereObj;
102
+ };
103
+ const cubeFilterToDuckdbAST = (cubeFilter, ast) => {
104
+ let whereObj = ast.node.where_clause || null;
105
+ if (cubeFilter.length > 1) {
106
+ console.error('We do not support multiple filters yet');
107
+ throw new Error('We do not support multiple filters yet');
108
+ }
109
+ const filter = cubeFilter[0];
110
+ if ((0, type_guards_1.isQueryFilter)(filter)) {
111
+ whereObj = cubeFilterOperatorsToDuckdb(filter);
112
+ }
113
+ if ((0, type_guards_1.isLogicalAndOR)(filter)) {
114
+ // And or Or we need to recurse
115
+ whereObj = cubeFilterLogicalAndOrToDuckdb(filter, whereObj || null);
116
+ }
117
+ return whereObj;
118
+ };
119
+ exports.cubeFilterToDuckdbAST = cubeFilterToDuckdbAST;
120
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-filter-transformer/factory.ts"],"names":[],"mappings":";;;AAQA,sDAO8B;AAC9B,mCAA+C;AAC/C,kDAAwD;AACxD,4CAAkD;AAClD,gCAAsC;AACtC,mCAAyC;AACzC,iEAAqE;AACrE,gCAAsC;AACtC,gCAAsC;AACtC,mCAAyC;AACzC,6EAAgF;AAChF,8DAAmE;AACnE,wDAA6D;AAC7D,4CAAiD;AACjD,+CAAoD;AACpD,gCAA4C;AAC5C,mCAAyC;AAMzC,uBAAuB;AACvB,MAAM,2BAA2B,GAAG,CAAC,UAAkC,EAAE,EAAE;IACzE,QAAQ,UAAU,CAAC,QAAQ,EAAE;QAC3B,KAAK,QAAQ;YACX,OAAO,IAAA,wBAAe,EAAC,UAAU,CAAC,CAAC;QACrC,KAAK,WAAW;YACd,OAAO,IAAA,+BAAkB,EAAC,UAAU,CAAC,CAAC;QACxC,KAAK,IAAI;YACP,OAAO,IAAA,gBAAW,EAAC,UAAU,CAAC,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,IAAA,uBAAc,EAAC,UAAU,CAAC,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,IAAA,4BAAiB,EAAC,UAAU,CAAC,CAAC;QACvC,KAAK,aAAa;YAChB,OAAO,IAAA,mCAAoB,EAAC,UAAU,CAAC,CAAC;QAC1C,KAAK,IAAI;YACP,OAAO,IAAA,gBAAW,EAAC,UAAU,CAAC,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,IAAA,kBAAY,EAAC,UAAU,CAAC,CAAC;QAClC,KAAK,IAAI;YACP,OAAO,IAAA,gBAAW,EAAC,UAAU,CAAC,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,IAAA,kBAAY,EAAC,UAAU,CAAC,CAAC;QAClC,KAAK,aAAa;YAChB,OAAO,IAAA,oCAAoB,EAAC,UAAU,CAAC,CAAC;QAC1C,KAAK,gBAAgB;YACnB,OAAO,IAAA,2CAAuB,EAAC,UAAU,CAAC,CAAC;QAC7C,KAAK,QAAQ,CAAC,CAAC;YACb,OAAO,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;SACpC;QACD,KAAK,KAAK,CAAC,CAAC;YACV,OAAO,IAAA,kBAAY,EAAC,UAAU,CAAC,CAAC;SACjC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACrD;AACH,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,CACrC,UAA+B,EAC/B,QAAiC,EACR,EAAE;IAC3B;;OAEG;IACH,IAAI,CAAC,IAAA,2BAAa,EAAC,UAAU,CAAC,IAAI,IAAA,2BAAa,EAAC,UAAU,CAAC,EAAE;QAC3D,MAAM,IAAI,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,IAAA,2BAAa,EAAC,UAAU,CAAC,IAAI,IAAA,0BAAY,EAAC,UAAU,CAAC,EAAE;QAC1D,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QACD,+BAA+B;QAC/B,MAAM,mBAAmB,GAAG,IAAA,wBAAkB,GAAE,CAAC;QACjD,MAAM,IAAI,GAAG,8BAA8B,CACzC,UAAU,CAAC,GAAG,EACd,mBAAmB,CACpB,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,IAAA,2BAAa,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAW,EAAC,UAAU,CAAC,EAAE;QACzD,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,IAAA,sBAAiB,GAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,8BAA8B,CACzC,UAAU,CAAC,EAAE,EACb,kBAAkB,CACnB,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAA,2BAAa,EAAC,UAAU,CAAC,EAAE;QAC7B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAC/B,MAAM,IAAI,GAAG,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,IAAI,EAAE;gBACR,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,EAAE;oBACzB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC9B;qBAAM;oBACL,QAAQ,GAAG,IAAI,CAAC;iBACjB;aACF;SACF;QACD,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CACnC,UAAgC,EAChC,GAAoB,EACpB,EAAE;IACF,IAAI,QAAQ,GACT,GAAG,CAAC,IAAmB,CAAC,YAAY,IAAI,IAAI,CAAC;IAEhD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,IAAA,2BAAa,EAAC,MAAM,CAAC,EAAE;QACzB,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;KAChD;IAED,IAAI,IAAA,4BAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,+BAA+B;QAC/B,QAAQ,GAAG,8BAA8B,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;KACrE;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAxBW,QAAA,qBAAqB,yBAwBhC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gtTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
6
+ const or_1 = require("../or/or");
7
+ const gtTransform = (query) => {
8
+ const { member, values } = query;
9
+ if (!values || values.length === 0) {
10
+ throw new Error('GT filter must have at least one value');
11
+ }
12
+ /**
13
+ * If there is only one value, we can create a simple equals condition
14
+ */
15
+ if (values.length === 1) {
16
+ return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHAN, values[0], query.memberInfo);
17
+ }
18
+ /**
19
+ * If there are multiple values, we need to create an OR condition
20
+ */
21
+ const orCondition = (0, or_1.orDuckdbCondition)();
22
+ values.forEach((value) => {
23
+ orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHAN, value, query.memberInfo));
24
+ });
25
+ return orCondition;
26
+ };
27
+ exports.gtTransform = gtTransform;
28
+ //# sourceMappingURL=gt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gt.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/gt/gt.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,WAAW,GAAmC,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,mBAAmB,EAClC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,mBAAmB,EAClC,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,WAAW,eAkCtB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gteTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
6
+ const or_1 = require("../or/or");
7
+ const gteTransform = (query) => {
8
+ const { member, values } = query;
9
+ if (!values || values.length === 0) {
10
+ throw new Error('GTE filter must have at least one value');
11
+ }
12
+ /**
13
+ * If there is only one value, we can create a simple equals condition
14
+ */
15
+ if (values.length === 1) {
16
+ return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHANOREQUALTO, values[0], query.memberInfo);
17
+ }
18
+ /**
19
+ * If there are multiple values, we need to create an OR condition
20
+ */
21
+ const orCondition = (0, or_1.orDuckdbCondition)();
22
+ values.forEach((value) => {
23
+ orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHANOREQUALTO, value, query.memberInfo));
24
+ });
25
+ return orCondition;
26
+ };
27
+ exports.gteTransform = gteTransform;
28
+ //# sourceMappingURL=gte.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gte.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/gte/gte.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,YAAY,GAAmC,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,4BAA4B,EAC3C,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,4BAA4B,EAC3C,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inTransform = void 0;
4
+ const constants_1 = require("../../member-formatters/constants");
5
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
6
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
+ const inDuckDbCondition = (columnName, values, memberInfo) => {
8
+ const sqlTreeValues = values.map((value) => {
9
+ return {
10
+ class: Expression_1.ExpressionClass.CONSTANT,
11
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
12
+ alias: '',
13
+ value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
14
+ };
15
+ });
16
+ const columnRef = {
17
+ class: 'COLUMN_REF',
18
+ type: 'COLUMN_REF',
19
+ alias: '',
20
+ column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
21
+ };
22
+ switch (memberInfo.type) {
23
+ case 'number_array':
24
+ case 'string_array': {
25
+ return {
26
+ class: Expression_1.ExpressionClass.FUNCTION,
27
+ type: Expression_1.ExpressionType.FUNCTION,
28
+ alias: '',
29
+ function_name: '&&',
30
+ schema: '',
31
+ children: [
32
+ columnRef,
33
+ {
34
+ class: Expression_1.ExpressionClass.OPERATOR,
35
+ type: Expression_1.ExpressionType.ARRAY_CONSTRUCTOR,
36
+ alias: '',
37
+ children: sqlTreeValues,
38
+ },
39
+ ],
40
+ filter: null,
41
+ order_bys: {
42
+ type: 'ORDER_MODIFIER',
43
+ orders: [],
44
+ },
45
+ distinct: false,
46
+ is_operator: true,
47
+ export_state: false,
48
+ catalog: '',
49
+ };
50
+ }
51
+ default: {
52
+ return {
53
+ class: Expression_1.ExpressionClass.OPERATOR,
54
+ type: Expression_1.ExpressionType.COMPARE_IN,
55
+ alias: '',
56
+ children: [columnRef, ...sqlTreeValues],
57
+ };
58
+ }
59
+ }
60
+ };
61
+ const inTransform = (query) => {
62
+ const { member, values, memberInfo } = query;
63
+ if (!values) {
64
+ throw new Error('In filter must have at least one value');
65
+ }
66
+ return inDuckDbCondition(member, values, memberInfo);
67
+ };
68
+ exports.inTransform = inTransform;
69
+ //# sourceMappingURL=in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/in/in.ts"],"names":[],"mappings":";;;AAAA,iEAA0E;AAE1E,gGAGyE;AACzE,6FAAgF;AAGhF,MAAM,iBAAiB,GAAG,CACxB,UAAkB,EAClB,MAAgB,EAChB,UAA+B,EAC/B,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,OAAO;YACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;YAC/B,IAAI,EAAE,2BAAc,CAAC,cAAc;YACnC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAA,qCAAY,EAAC,KAAK,EAAE,UAAU,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;KACtD,CAAC;IACF,QAAQ,UAAU,CAAC,IAAI,EAAE;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC,CAAC;YACnB,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;gBAC7B,KAAK,EAAE,EAAE;gBACT,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE;oBACR,SAAS;oBACT;wBACE,KAAK,EAAE,4BAAe,CAAC,QAAQ;wBAC/B,IAAI,EAAE,2BAAc,CAAC,iBAAiB;wBACtC,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,aAAa;qBACxB;iBACF;gBACD,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE;oBACT,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE,EAAE;iBACX;gBACD,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,EAAE;aACZ,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,UAAU;gBAC/B,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC;aACxC,CAAC;SACH;KACF;AACH,CAAC,CAAC;AAEK,MAAM,WAAW,GAAmC,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inDataRangeTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const and_1 = require("../and/and");
6
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
+ const inDataRangeTransform = (query) => {
8
+ const { member, values } = query;
9
+ if (!values || values.length === 0) {
10
+ throw new Error('GT filter must have at least one value');
11
+ }
12
+ /**
13
+ * If there are multiple values, we need to create an OR condition
14
+ */
15
+ const andCondition = (0, and_1.andDuckdbCondition)();
16
+ andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHANOREQUALTO, values[0], query.memberInfo));
17
+ andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHANOREQUALTO, values[1], query.memberInfo));
18
+ return andCondition;
19
+ };
20
+ exports.inDataRangeTransform = inDataRangeTransform;
21
+ //# sourceMappingURL=in-date-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-date-range.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/in-date-range/in-date-range.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,oCAAgD;AAChD,6FAAuF;AAGhF,MAAM,oBAAoB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC5E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;IAE1C,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,4BAA4B,EAC3C,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,yBAAyB,EACxC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA/BW,QAAA,oBAAoB,wBA+B/B"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ltTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
6
+ const or_1 = require("../or/or");
7
+ const ltTransform = (query) => {
8
+ const { member, values } = query;
9
+ if (!values || values.length === 0) {
10
+ throw new Error('lt filter must have at least one value');
11
+ }
12
+ /**
13
+ * If there is only one value, we can create a simple equals condition
14
+ */
15
+ if (values.length === 1) {
16
+ return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHAN, values[0], query.memberInfo);
17
+ }
18
+ /**
19
+ * If there are multiple values, we need to create an OR condition
20
+ */
21
+ const orCondition = (0, or_1.orDuckdbCondition)();
22
+ values.forEach((value) => {
23
+ orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHAN, value, query.memberInfo));
24
+ });
25
+ return orCondition;
26
+ };
27
+ exports.ltTransform = ltTransform;
28
+ //# sourceMappingURL=lt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lt.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/lt/lt.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,WAAW,GAAmC,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,WAAW,eAkCtB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lteTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
6
+ const or_1 = require("../or/or");
7
+ const lteTransform = (query) => {
8
+ const { member, values } = query;
9
+ if (!values || values.length === 0) {
10
+ throw new Error('lte filter must have at least one value');
11
+ }
12
+ /**
13
+ * If there is only one value, we can create a simple equals condition
14
+ */
15
+ if (values.length === 1) {
16
+ return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHANOREQUALTO, values[0], query.memberInfo);
17
+ }
18
+ /**
19
+ * If there are multiple values, we need to create an OR condition
20
+ */
21
+ const orCondition = (0, or_1.orDuckdbCondition)();
22
+ values.forEach((value) => {
23
+ orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHANOREQUALTO, value, query.memberInfo));
24
+ });
25
+ return orCondition;
26
+ };
27
+ exports.lteTransform = lteTransform;
28
+ //# sourceMappingURL=lte.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lte.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/lte/lte.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,YAAY,GAAmC,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,yBAAyB,EACxC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,yBAAyB,EACxC,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notDuckdbCondition = void 0;
4
+ const index_1 = require("../../types/duckdb-serialization-types/index");
5
+ const notDuckdbCondition = () => {
6
+ return {
7
+ class: index_1.ExpressionClass.OPERATOR,
8
+ type: index_1.ExpressionType.OPERATOR_NOT,
9
+ alias: '',
10
+ children: [],
11
+ };
12
+ };
13
+ exports.notDuckdbCondition = notDuckdbCondition;
14
+ //# sourceMappingURL=not.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not/not.ts"],"names":[],"mappings":";;;AAAA,wEAIsD;AAE/C,MAAM,kBAAkB,GAAG,GAAuB,EAAE;IACzD,OAAO;QACL,KAAK,EAAE,uBAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,sBAAc,CAAC,YAAY;QACjC,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notInDataRangeTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
6
+ const or_1 = require("../or/or");
7
+ const notInDataRangeTransform = (query) => {
8
+ const { member, values } = query;
9
+ if (!values || values.length === 0) {
10
+ throw new Error('GT filter must have at least one value');
11
+ }
12
+ /**
13
+ * If there are multiple values, we need to create an OR condition
14
+ */
15
+ const andCondition = (0, or_1.orDuckdbCondition)();
16
+ andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHAN, values[0], query.memberInfo));
17
+ andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHAN, values[1], query.memberInfo));
18
+ return andCondition;
19
+ };
20
+ exports.notInDataRangeTransform = notInDataRangeTransform;
21
+ //# sourceMappingURL=not-In-date-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-In-date-range.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-In-date-range/not-In-date-range.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,uBAAuB,GAAmC,CACrE,KAAK,EACL,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,MAAM,YAAY,GAAG,IAAA,sBAAiB,GAAE,CAAC;IAEzC,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,mBAAmB,EAClC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAjCW,QAAA,uBAAuB,2BAiClC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notContainsTransform = exports.notContainsDuckdbCondition = void 0;
4
+ const constants_1 = require("../../member-formatters/constants");
5
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
6
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
+ const or_1 = require("../or/or");
8
+ const notContainsDuckdbCondition = (columnName, value, memberInfo) => {
9
+ return {
10
+ class: Expression_1.ExpressionClass.FUNCTION,
11
+ type: Expression_1.ExpressionType.FUNCTION,
12
+ alias: '',
13
+ function_name: '!~~',
14
+ schema: '',
15
+ children: [
16
+ {
17
+ class: 'COLUMN_REF',
18
+ type: 'COLUMN_REF',
19
+ alias: '',
20
+ column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
21
+ },
22
+ {
23
+ class: 'CONSTANT',
24
+ type: 'VALUE_CONSTANT',
25
+ alias: '',
26
+ value: (0, base_condition_builder_1.valueBuilder)(`%${value}%`, memberInfo),
27
+ },
28
+ ],
29
+ filter: null,
30
+ order_bys: {
31
+ type: 'ORDER_MODIFIER',
32
+ orders: [],
33
+ },
34
+ distinct: false,
35
+ is_operator: true,
36
+ export_state: false,
37
+ catalog: '',
38
+ };
39
+ };
40
+ exports.notContainsDuckdbCondition = notContainsDuckdbCondition;
41
+ const notContainsTransform = (query) => {
42
+ const { member, values, memberInfo } = query;
43
+ if (!values || values.length === 0) {
44
+ throw new Error('Contains filter must have at least one value');
45
+ }
46
+ /**
47
+ * If there is only one value, we can create a simple Contains condition
48
+ */
49
+ if (values.length === 1) {
50
+ return (0, exports.notContainsDuckdbCondition)(member, values[0], memberInfo);
51
+ }
52
+ /**
53
+ * If there are multiple values, we need to create an OR condition
54
+ */
55
+ const orCondition = (0, or_1.orDuckdbCondition)();
56
+ values.forEach((value) => {
57
+ orCondition.children.push((0, exports.notContainsDuckdbCondition)(member, value, memberInfo));
58
+ });
59
+ return orCondition;
60
+ };
61
+ exports.notContainsTransform = notContainsTransform;
62
+ //# sourceMappingURL=not-contains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-contains.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-contains/not-contains.ts"],"names":[],"mappings":";;;AAAA,iEAA0E;AAG1E,gGAGyE;AACzE,6FAAgF;AAEhF,iCAA6C;AAQtC,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EAClB,KAAa,EACb,UAA+B,EAC/B,EAAE;IACF,OAAO;QACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;QAC7B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;aACtD;YACD;gBACE,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAA,qCAAY,EAAC,IAAI,KAAK,GAAG,EAAE,UAAU,CAAC;aAC9C;SACF;QACD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,0BAA0B,8BAmCrC;AAEK,MAAM,oBAAoB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC5E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE7C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,kCAA0B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KAClE;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,kCAA0B,EAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notEqualsArrayTransform = void 0;
4
+ const equals_array_1 = require("../equals/equals-array");
5
+ const not_1 = require("../not/not");
6
+ const notEqualsArrayTransform = (query) => {
7
+ const { values } = query;
8
+ if (!values || values.length === 0) {
9
+ throw new Error('Equals filter must have at least one value');
10
+ }
11
+ const notWrapper = (0, not_1.notDuckdbCondition)();
12
+ const equalsCondition = (0, equals_array_1.equalsArrayTransform)(query);
13
+ /**
14
+ * We need to wrap the equals condition in a not condition
15
+ * Which basically means ! of ANY of the values
16
+ */
17
+ notWrapper.children = [equalsCondition];
18
+ return notWrapper;
19
+ };
20
+ exports.notEqualsArrayTransform = notEqualsArrayTransform;
21
+ //# sourceMappingURL=not-equals-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-equals-array.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals-array.ts"],"names":[],"mappings":";;;AAAA,yDAA8D;AAE9D,oCAAgD;AAEzC,MAAM,uBAAuB,GAAmC,CACrE,KAAK,EACL,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,MAAM,UAAU,GAAG,IAAA,wBAAkB,GAAE,CAAC;IACxC,MAAM,eAAe,GAAG,IAAA,mCAAoB,EAAC,KAAK,CAAC,CAAC;IACpD;;;OAGG;IACH,UAAU,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC;IAExC,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAlBW,QAAA,uBAAuB,2BAkBlC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notEqualsTransform = void 0;
4
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
5
+ const is_array_member_type_1 = require("../../utils/is-array-member-type");
6
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
+ const or_1 = require("../or/or");
8
+ const not_equals_array_1 = require("./not-equals-array");
9
+ const notEqualsTransform = (query) => {
10
+ const { member, values } = query;
11
+ if (!values || values.length === 0) {
12
+ throw new Error('Equals filter must have at least one value');
13
+ }
14
+ /**
15
+ * If the member is an array, we need to use the array transform
16
+ */
17
+ if ((0, is_array_member_type_1.isArrayTypeMember)(query.memberInfo.type)) {
18
+ return (0, not_equals_array_1.notEqualsArrayTransform)(query);
19
+ }
20
+ /**
21
+ * If there is only one value, we can create a simple equals condition
22
+ */
23
+ if (values.length === 1) {
24
+ return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_NOTEQUAL, values[0], query.memberInfo);
25
+ }
26
+ /**
27
+ * If there are multiple values, we need to create an OR condition
28
+ */
29
+ const orCondition = (0, or_1.orDuckdbCondition)();
30
+ values.forEach((value) => {
31
+ orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_NOTEQUAL, value, query.memberInfo));
32
+ });
33
+ return orCondition;
34
+ };
35
+ exports.notEqualsTransform = notEqualsTransform;
36
+ //# sourceMappingURL=not-equals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-equals.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals.ts"],"names":[],"mappings":";;;AACA,gGAAiG;AACjG,2EAAqE;AACrE,6FAAuF;AAEvF,iCAA6C;AAC7C,yDAA6D;AAQtD,MAAM,kBAAkB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED;;OAEG;IACH,IAAI,IAAA,wCAAiB,EAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC5C,OAAO,IAAA,0CAAuB,EAAC,KAAK,CAAC,CAAC;KACvC;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAzCW,QAAA,kBAAkB,sBAyC7B"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notInTransform = void 0;
4
+ const constants_1 = require("../../member-formatters/constants");
5
+ const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
6
+ const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
+ const notInDuckDbCondition = (columnName, values, memberInfo) => {
8
+ const sqlTreeValues = values.map((value) => {
9
+ return {
10
+ class: Expression_1.ExpressionClass.CONSTANT,
11
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
12
+ alias: '',
13
+ value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
14
+ };
15
+ });
16
+ const columnRef = {
17
+ class: 'COLUMN_REF',
18
+ type: 'COLUMN_REF',
19
+ alias: '',
20
+ column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
21
+ };
22
+ switch (memberInfo.type) {
23
+ case 'number_array':
24
+ case 'string_array': {
25
+ return {
26
+ class: Expression_1.ExpressionClass.OPERATOR,
27
+ type: Expression_1.ExpressionType.OPERATOR_NOT,
28
+ alias: '',
29
+ children: [
30
+ {
31
+ class: Expression_1.ExpressionClass.FUNCTION,
32
+ type: Expression_1.ExpressionType.FUNCTION,
33
+ alias: '',
34
+ function_name: '&&',
35
+ schema: '',
36
+ children: [
37
+ columnRef,
38
+ {
39
+ class: Expression_1.ExpressionClass.OPERATOR,
40
+ type: Expression_1.ExpressionType.ARRAY_CONSTRUCTOR,
41
+ alias: '',
42
+ children: sqlTreeValues,
43
+ },
44
+ ],
45
+ filter: null,
46
+ order_bys: {
47
+ type: 'ORDER_MODIFIER',
48
+ orders: [],
49
+ },
50
+ distinct: false,
51
+ is_operator: true,
52
+ export_state: false,
53
+ catalog: '',
54
+ },
55
+ ],
56
+ };
57
+ }
58
+ default: {
59
+ return {
60
+ class: Expression_1.ExpressionClass.OPERATOR,
61
+ type: Expression_1.ExpressionType.COMPARE_NOT_IN,
62
+ alias: '',
63
+ children: [columnRef, ...sqlTreeValues],
64
+ };
65
+ }
66
+ }
67
+ };
68
+ const notInTransform = (query) => {
69
+ const { member, values, memberInfo } = query;
70
+ if (!values) {
71
+ throw new Error('Not in filter must have at least one value');
72
+ }
73
+ return notInDuckDbCondition(member, values, memberInfo);
74
+ };
75
+ exports.notInTransform = notInTransform;
76
+ //# sourceMappingURL=not-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-in.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"names":[],"mappings":";;;AAGA,iEAA0E;AAC1E,gGAGyE;AACzE,6FAAgF;AAEhF,MAAM,oBAAoB,GAAG,CAC3B,UAAkB,EAClB,MAAgB,EAChB,UAA+B,EAC/B,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,OAAO;YACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;YAC/B,IAAI,EAAE,2BAAc,CAAC,cAAc;YACnC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAA,qCAAY,EAAC,KAAK,EAAE,UAAU,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;KACtD,CAAC;IACF,QAAQ,UAAU,CAAC,IAAI,EAAE;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC,CAAC;YACnB,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,YAAY;gBACjC,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,4BAAe,CAAC,QAAQ;wBAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;wBAC7B,KAAK,EAAE,EAAE;wBACT,aAAa,EAAE,IAAI;wBACnB,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE;4BACR,SAAS;4BACT;gCACE,KAAK,EAAE,4BAAe,CAAC,QAAQ;gCAC/B,IAAI,EAAE,2BAAc,CAAC,iBAAiB;gCACtC,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,aAAa;6BACxB;yBACF;wBACD,MAAM,EAAE,IAAI;wBACZ,SAAS,EAAE;4BACT,IAAI,EAAE,gBAAgB;4BACtB,MAAM,EAAE,EAAE;yBACX;wBACD,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,KAAK;wBACnB,OAAO,EAAE,EAAE;qBACZ;iBACF;aACF,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,cAAc;gBACnC,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC;aACxC,CAAC;SACH;KACF;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAmC,CAAC,KAAK,EAAE,EAAE;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}