@devrev/meerkat-core 0.0.97 → 0.0.99

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 (370) hide show
  1. package/package.json +2 -2
  2. package/src/ast-builder/ast-builder.js +97 -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.d.ts +2 -1
  65. package/src/cube-group-by-transformer/cube-group-by-transformer.js +25 -0
  66. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -0
  67. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js +42 -0
  68. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +1 -0
  69. package/src/cube-measure-transformer/cube-measure-transformer.js +142 -0
  70. package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -0
  71. package/src/cube-order-by-transformer/cube-order-by-transformer.d.ts +2 -1
  72. package/src/cube-order-by-transformer/cube-order-by-transformer.js +40 -0
  73. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -0
  74. package/src/cube-to-duckdb/cube-filter-to-duckdb.js +3 -0
  75. package/src/cube-to-duckdb/cube-filter-to-duckdb.js.map +1 -0
  76. package/src/filter-params/filter-params-ast.js +114 -0
  77. package/src/filter-params/filter-params-ast.js.map +1 -0
  78. package/src/get-filter-params-sql/get-filter-params-sql.js +25 -0
  79. package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
  80. package/src/get-final-base-sql/get-final-base-sql.js +28 -0
  81. package/src/get-final-base-sql/get-final-base-sql.js.map +1 -0
  82. package/{get-wrapped-base-query-with-projections → src/get-wrapped-base-query-with-projections}/get-aliased-columns-from-filters.js +48 -61
  83. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -0
  84. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +91 -0
  85. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -0
  86. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +32 -0
  87. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -0
  88. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +32 -0
  89. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +1 -0
  90. package/src/index.js +37 -0
  91. package/src/index.js.map +1 -0
  92. package/src/joins/joins.js +162 -0
  93. package/src/joins/joins.js.map +1 -0
  94. package/src/member-formatters/constants.js +6 -0
  95. package/src/member-formatters/constants.js.map +1 -0
  96. package/src/member-formatters/get-alias.d.ts +15 -0
  97. package/src/member-formatters/get-alias.js +42 -0
  98. package/src/member-formatters/get-alias.js.map +1 -0
  99. package/src/member-formatters/get-namespaced-key.d.ts +1 -0
  100. package/src/member-formatters/get-namespaced-key.js +6 -0
  101. package/src/member-formatters/get-namespaced-key.js.map +1 -0
  102. package/src/member-formatters/index.d.ts +2 -0
  103. package/src/member-formatters/index.js +15 -0
  104. package/src/member-formatters/index.js.map +1 -0
  105. package/src/member-formatters/member-key-to-safe-key.js +9 -0
  106. package/src/member-formatters/member-key-to-safe-key.js.map +1 -0
  107. package/src/member-formatters/split-into-data-source-and-fields.js +10 -0
  108. package/src/member-formatters/split-into-data-source-and-fields.js.map +1 -0
  109. package/src/resolution/resolution.d.ts +4 -3
  110. package/src/resolution/resolution.js +141 -0
  111. package/src/resolution/resolution.js.map +1 -0
  112. package/src/resolution/types.js +5 -0
  113. package/src/resolution/types.js.map +1 -0
  114. package/src/types/cube-types/index.js +6 -0
  115. package/src/types/cube-types/index.js.map +1 -0
  116. package/src/types/cube-types/query.js +8 -0
  117. package/src/types/cube-types/query.js.map +1 -0
  118. package/src/types/cube-types/table.d.ts +2 -0
  119. package/src/types/cube-types/table.js +3 -0
  120. package/src/types/cube-types/table.js.map +1 -0
  121. package/src/types/duckdb-serialization-types/index.js +11 -0
  122. package/src/types/duckdb-serialization-types/index.js.map +1 -0
  123. package/{types → src/types}/duckdb-serialization-types/serialization/Constraint.js +6 -19
  124. package/src/types/duckdb-serialization-types/serialization/Constraint.js.map +1 -0
  125. package/{types → src/types}/duckdb-serialization-types/serialization/CreateInfo.js +10 -29
  126. package/src/types/duckdb-serialization-types/serialization/CreateInfo.js.map +1 -0
  127. package/{types → src/types}/duckdb-serialization-types/serialization/Expression.js +6 -19
  128. package/src/types/duckdb-serialization-types/serialization/Expression.js.map +1 -0
  129. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js +28 -0
  130. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +1 -0
  131. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js +10 -0
  132. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js.map +1 -0
  133. package/src/types/duckdb-serialization-types/serialization/Misc.js +3 -0
  134. package/src/types/duckdb-serialization-types/serialization/Misc.js.map +1 -0
  135. package/{types → src/types}/duckdb-serialization-types/serialization/Nodes.js +17 -45
  136. package/src/types/duckdb-serialization-types/serialization/Nodes.js.map +1 -0
  137. package/{types → src/types}/duckdb-serialization-types/serialization/ParseInfo.js +20 -54
  138. package/src/types/duckdb-serialization-types/serialization/ParseInfo.js.map +1 -0
  139. package/{types → src/types}/duckdb-serialization-types/serialization/ParsedExpression.js +6 -19
  140. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -0
  141. package/{types → src/types}/duckdb-serialization-types/serialization/QueryNode.js +8 -24
  142. package/src/types/duckdb-serialization-types/serialization/QueryNode.js.map +1 -0
  143. package/{types → src/types}/duckdb-serialization-types/serialization/ResultModifier.js +4 -9
  144. package/src/types/duckdb-serialization-types/serialization/ResultModifier.js.map +1 -0
  145. package/src/types/duckdb-serialization-types/serialization/Statement.js +3 -0
  146. package/src/types/duckdb-serialization-types/serialization/Statement.js.map +1 -0
  147. package/{types → src/types}/duckdb-serialization-types/serialization/TableFilter.js +4 -9
  148. package/src/types/duckdb-serialization-types/serialization/TableFilter.js.map +1 -0
  149. package/{types → src/types}/duckdb-serialization-types/serialization/TableRef.js +8 -24
  150. package/src/types/duckdb-serialization-types/serialization/TableRef.js.map +1 -0
  151. package/{types → src/types}/duckdb-serialization-types/serialization/Types.js +4 -9
  152. package/src/types/duckdb-serialization-types/serialization/Types.js.map +1 -0
  153. package/src/types/duckdb-serialization-types/serialization/example.js +109 -0
  154. package/src/types/duckdb-serialization-types/serialization/example.js.map +1 -0
  155. package/src/types/utils.js +69 -0
  156. package/src/types/utils.js.map +1 -0
  157. package/{utils → src/utils}/__fixtures__/joins.fixtures.js +228 -316
  158. package/src/utils/__fixtures__/joins.fixtures.js.map +1 -0
  159. package/src/utils/base-ast.js +49 -0
  160. package/src/utils/base-ast.js.map +1 -0
  161. package/src/utils/cube-filter-enrichment.js +53 -0
  162. package/src/utils/cube-filter-enrichment.js.map +1 -0
  163. package/{utils → src/utils}/cube-to-table-schema.js +25 -38
  164. package/src/utils/cube-to-table-schema.js.map +1 -0
  165. package/src/utils/cube-type-to-duckdb-type.js +12 -0
  166. package/src/utils/cube-type-to-duckdb-type.js.map +1 -0
  167. package/src/utils/find-in-table-schema.d.ts +3 -1
  168. package/src/utils/find-in-table-schema.js +55 -0
  169. package/src/utils/find-in-table-schema.js.map +1 -0
  170. package/src/utils/get-column-names-from-ast.js +45 -0
  171. package/src/utils/get-column-names-from-ast.js.map +1 -0
  172. package/src/utils/get-possible-nodes.js +146 -0
  173. package/src/utils/get-possible-nodes.js.map +1 -0
  174. package/src/utils/get-type-info.js +34 -0
  175. package/src/utils/get-type-info.js.map +1 -0
  176. package/src/utils/is-array-member-type.js +8 -0
  177. package/src/utils/is-array-member-type.js.map +1 -0
  178. package/src/utils/key-from-measures-dimension.js +32 -0
  179. package/src/utils/key-from-measures-dimension.js.map +1 -0
  180. package/src/utils/meerkat-placeholder-replacer.js +10 -0
  181. package/src/utils/meerkat-placeholder-replacer.js.map +1 -0
  182. package/src/utils/modify-meerkat-filter.d.ts +2 -3
  183. package/src/utils/modify-meerkat-filter.js +24 -0
  184. package/src/utils/modify-meerkat-filter.js.map +1 -0
  185. package/{utils → src/utils}/type-guards.js +10 -28
  186. package/src/utils/type-guards.js.map +1 -0
  187. package/ast-builder/ast-builder.js +0 -90
  188. package/ast-builder/ast-builder.js.map +0 -1
  189. package/ast-deserializer/ast-deserializer.js +0 -30
  190. package/ast-deserializer/ast-deserializer.js.map +0 -1
  191. package/ast-serializer/ast-serializer.js +0 -12
  192. package/ast-serializer/ast-serializer.js.map +0 -1
  193. package/ast-validator/dimension-validator.js +0 -54
  194. package/ast-validator/dimension-validator.js.map +0 -1
  195. package/ast-validator/index.js +0 -25
  196. package/ast-validator/index.js.map +0 -1
  197. package/ast-validator/measure-validator.js +0 -163
  198. package/ast-validator/measure-validator.js.map +0 -1
  199. package/ast-validator/tests/test-data.js.map +0 -1
  200. package/ast-validator/types.js +0 -3
  201. package/ast-validator/types.js.map +0 -1
  202. package/ast-validator/utils.js +0 -35
  203. package/ast-validator/utils.js.map +0 -1
  204. package/context-params/context-params-ast.js +0 -55
  205. package/context-params/context-params-ast.js.map +0 -1
  206. package/cube-filter-transformer/and/and.js +0 -18
  207. package/cube-filter-transformer/and/and.js.map +0 -1
  208. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js +0 -160
  209. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +0 -1
  210. package/cube-filter-transformer/contains/contains.js +0 -71
  211. package/cube-filter-transformer/contains/contains.js.map +0 -1
  212. package/cube-filter-transformer/equals/equals-array.js +0 -77
  213. package/cube-filter-transformer/equals/equals-array.js.map +0 -1
  214. package/cube-filter-transformer/equals/equals.js +0 -37
  215. package/cube-filter-transformer/equals/equals.js.map +0 -1
  216. package/cube-filter-transformer/factory.js +0 -124
  217. package/cube-filter-transformer/factory.js.map +0 -1
  218. package/cube-filter-transformer/gt/gt.js +0 -30
  219. package/cube-filter-transformer/gt/gt.js.map +0 -1
  220. package/cube-filter-transformer/gte/gte.js +0 -30
  221. package/cube-filter-transformer/gte/gte.js.map +0 -1
  222. package/cube-filter-transformer/in/in.js +0 -78
  223. package/cube-filter-transformer/in/in.js.map +0 -1
  224. package/cube-filter-transformer/in-date-range/in-date-range.js +0 -24
  225. package/cube-filter-transformer/in-date-range/in-date-range.js.map +0 -1
  226. package/cube-filter-transformer/lt/lt.js +0 -30
  227. package/cube-filter-transformer/lt/lt.js.map +0 -1
  228. package/cube-filter-transformer/lte/lte.js +0 -30
  229. package/cube-filter-transformer/lte/lte.js.map +0 -1
  230. package/cube-filter-transformer/not/not.js +0 -18
  231. package/cube-filter-transformer/not/not.js.map +0 -1
  232. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js +0 -24
  233. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +0 -1
  234. package/cube-filter-transformer/not-contains/not-contains.js +0 -71
  235. package/cube-filter-transformer/not-contains/not-contains.js.map +0 -1
  236. package/cube-filter-transformer/not-equals/not-equals-array.js +0 -26
  237. package/cube-filter-transformer/not-equals/not-equals-array.js.map +0 -1
  238. package/cube-filter-transformer/not-equals/not-equals.js +0 -37
  239. package/cube-filter-transformer/not-equals/not-equals.js.map +0 -1
  240. package/cube-filter-transformer/not-in/not-in.js +0 -85
  241. package/cube-filter-transformer/not-in/not-in.js.map +0 -1
  242. package/cube-filter-transformer/not-set/not-set.js +0 -27
  243. package/cube-filter-transformer/not-set/not-set.js.map +0 -1
  244. package/cube-filter-transformer/or/or.js +0 -18
  245. package/cube-filter-transformer/or/or.js.map +0 -1
  246. package/cube-filter-transformer/set/set.js +0 -27
  247. package/cube-filter-transformer/set/set.js.map +0 -1
  248. package/cube-group-by-transformer/cube-group-by-transformer.js +0 -25
  249. package/cube-group-by-transformer/cube-group-by-transformer.js.map +0 -1
  250. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js +0 -42
  251. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +0 -1
  252. package/cube-measure-transformer/cube-measure-transformer.js +0 -127
  253. package/cube-measure-transformer/cube-measure-transformer.js.map +0 -1
  254. package/cube-order-by-transformer/cube-order-by-transformer.js +0 -39
  255. package/cube-order-by-transformer/cube-order-by-transformer.js.map +0 -1
  256. package/cube-to-duckdb/cube-filter-to-duckdb.js +0 -3
  257. package/cube-to-duckdb/cube-filter-to-duckdb.js.map +0 -1
  258. package/filter-params/filter-params-ast.js +0 -115
  259. package/filter-params/filter-params-ast.js.map +0 -1
  260. package/get-filter-params-sql/get-filter-params-sql.js +0 -28
  261. package/get-filter-params-sql/get-filter-params-sql.js.map +0 -1
  262. package/get-final-base-sql/get-final-base-sql.js +0 -30
  263. package/get-final-base-sql/get-final-base-sql.js.map +0 -1
  264. package/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +0 -1
  265. package/get-wrapped-base-query-with-projections/get-projection-clause.js +0 -87
  266. package/get-wrapped-base-query-with-projections/get-projection-clause.js.map +0 -1
  267. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +0 -33
  268. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +0 -1
  269. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +0 -60
  270. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +0 -1
  271. package/index.js +0 -66
  272. package/index.js.map +0 -1
  273. package/joins/joins.js +0 -170
  274. package/joins/joins.js.map +0 -1
  275. package/member-formatters/constants.js +0 -19
  276. package/member-formatters/constants.js.map +0 -1
  277. package/member-formatters/index.js +0 -23
  278. package/member-formatters/index.js.map +0 -1
  279. package/member-formatters/member-key-to-safe-key.js +0 -13
  280. package/member-formatters/member-key-to-safe-key.js.map +0 -1
  281. package/member-formatters/split-into-data-source-and-fields.js +0 -17
  282. package/member-formatters/split-into-data-source-and-fields.js.map +0 -1
  283. package/resolution/resolution.js +0 -128
  284. package/resolution/resolution.js.map +0 -1
  285. package/resolution/types.js +0 -10
  286. package/resolution/types.js.map +0 -1
  287. package/types/cube-types/index.d.js +0 -6
  288. package/types/cube-types/index.d.js.map +0 -1
  289. package/types/cube-types/index.js +0 -6
  290. package/types/cube-types/index.js.map +0 -1
  291. package/types/cube-types/query.d.js +0 -5
  292. package/types/cube-types/query.d.js.map +0 -1
  293. package/types/cube-types/query.js +0 -14
  294. package/types/cube-types/query.js.map +0 -1
  295. package/types/cube-types/table.d.js +0 -3
  296. package/types/cube-types/table.d.js.map +0 -1
  297. package/types/cube-types/table.js +0 -3
  298. package/types/cube-types/table.js.map +0 -1
  299. package/types/duckdb-serialization-types/index.d.js +0 -11
  300. package/types/duckdb-serialization-types/index.d.js.map +0 -1
  301. package/types/duckdb-serialization-types/index.js +0 -11
  302. package/types/duckdb-serialization-types/index.js.map +0 -1
  303. package/types/duckdb-serialization-types/serialization/Constraint.js.map +0 -1
  304. package/types/duckdb-serialization-types/serialization/CreateInfo.js.map +0 -1
  305. package/types/duckdb-serialization-types/serialization/Expression.d.js +0 -3
  306. package/types/duckdb-serialization-types/serialization/Expression.d.js.map +0 -1
  307. package/types/duckdb-serialization-types/serialization/Expression.js.map +0 -1
  308. package/types/duckdb-serialization-types/serialization/LogicalOperator.js +0 -47
  309. package/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +0 -1
  310. package/types/duckdb-serialization-types/serialization/MacroFunction.js +0 -15
  311. package/types/duckdb-serialization-types/serialization/MacroFunction.js.map +0 -1
  312. package/types/duckdb-serialization-types/serialization/Misc.d.js +0 -3
  313. package/types/duckdb-serialization-types/serialization/Misc.d.js.map +0 -1
  314. package/types/duckdb-serialization-types/serialization/Misc.js +0 -3
  315. package/types/duckdb-serialization-types/serialization/Misc.js.map +0 -1
  316. package/types/duckdb-serialization-types/serialization/Nodes.d.js +0 -3
  317. package/types/duckdb-serialization-types/serialization/Nodes.d.js.map +0 -1
  318. package/types/duckdb-serialization-types/serialization/Nodes.js.map +0 -1
  319. package/types/duckdb-serialization-types/serialization/ParseInfo.js.map +0 -1
  320. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js +0 -3
  321. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +0 -1
  322. package/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +0 -1
  323. package/types/duckdb-serialization-types/serialization/QueryNode.d.js +0 -3
  324. package/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +0 -1
  325. package/types/duckdb-serialization-types/serialization/QueryNode.js.map +0 -1
  326. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js +0 -3
  327. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +0 -1
  328. package/types/duckdb-serialization-types/serialization/ResultModifier.js.map +0 -1
  329. package/types/duckdb-serialization-types/serialization/Statement.d.js +0 -3
  330. package/types/duckdb-serialization-types/serialization/Statement.d.js.map +0 -1
  331. package/types/duckdb-serialization-types/serialization/Statement.js +0 -3
  332. package/types/duckdb-serialization-types/serialization/Statement.js.map +0 -1
  333. package/types/duckdb-serialization-types/serialization/TableFilter.d.js +0 -3
  334. package/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +0 -1
  335. package/types/duckdb-serialization-types/serialization/TableFilter.js.map +0 -1
  336. package/types/duckdb-serialization-types/serialization/TableRef.d.js +0 -3
  337. package/types/duckdb-serialization-types/serialization/TableRef.d.js.map +0 -1
  338. package/types/duckdb-serialization-types/serialization/TableRef.js.map +0 -1
  339. package/types/duckdb-serialization-types/serialization/Types.d.js +0 -3
  340. package/types/duckdb-serialization-types/serialization/Types.d.js.map +0 -1
  341. package/types/duckdb-serialization-types/serialization/Types.js.map +0 -1
  342. package/types/duckdb-serialization-types/serialization/example.js +0 -131
  343. package/types/duckdb-serialization-types/serialization/example.js.map +0 -1
  344. package/types/utils.js +0 -108
  345. package/types/utils.js.map +0 -1
  346. package/utils/__fixtures__/joins.fixtures.js.map +0 -1
  347. package/utils/base-ast.js +0 -63
  348. package/utils/base-ast.js.map +0 -1
  349. package/utils/cube-filter-enrichment.js +0 -63
  350. package/utils/cube-filter-enrichment.js.map +0 -1
  351. package/utils/cube-to-table-schema.js.map +0 -1
  352. package/utils/cube-type-to-duckdb-type.js +0 -17
  353. package/utils/cube-type-to-duckdb-type.js.map +0 -1
  354. package/utils/find-in-table-schema.js +0 -40
  355. package/utils/find-in-table-schema.js.map +0 -1
  356. package/utils/get-column-names-from-ast.js +0 -45
  357. package/utils/get-column-names-from-ast.js.map +0 -1
  358. package/utils/get-possible-nodes.js +0 -152
  359. package/utils/get-possible-nodes.js.map +0 -1
  360. package/utils/get-type-info.js +0 -44
  361. package/utils/get-type-info.js.map +0 -1
  362. package/utils/is-array-member-type.js +0 -12
  363. package/utils/is-array-member-type.js.map +0 -1
  364. package/utils/key-from-measures-dimension.js +0 -35
  365. package/utils/key-from-measures-dimension.js.map +0 -1
  366. package/utils/meerkat-placeholder-replacer.js +0 -14
  367. package/utils/meerkat-placeholder-replacer.js.map +0 -1
  368. package/utils/modify-meerkat-filter.js +0 -30
  369. package/utils/modify-meerkat-filter.js.map +0 -1
  370. package/utils/type-guards.js.map +0 -1
package/joins/joins.js DELETED
@@ -1,170 +0,0 @@
1
- "use strict";
2
- function _export(target, all) {
3
- for(var name in all)Object.defineProperty(target, name, {
4
- enumerable: true,
5
- get: all[name]
6
- });
7
- }
8
- _export(exports, {
9
- checkLoopInJoinPath: function() {
10
- return checkLoopInJoinPath;
11
- },
12
- createDirectedGraph: function() {
13
- return createDirectedGraph;
14
- },
15
- generateSqlQuery: function() {
16
- return generateSqlQuery;
17
- },
18
- getCombinedTableSchema: function() {
19
- return getCombinedTableSchema;
20
- }
21
- });
22
- const _extends = require("@swc/helpers/_/_extends");
23
- const _cubetypes = require("../types/cube-types");
24
- function generateSqlQuery(path, tableSchemaSqlMap, directedGraph) {
25
- if (path.length === 0) {
26
- throw new Error('Invalid path, multiple data sources are present without a join path.');
27
- }
28
- const startingNode = path[0][0].left;
29
- let query = `${tableSchemaSqlMap[startingNode]}`;
30
- /**
31
- * If the starting node is not a join node, then return the query as is.
32
- * It means that the query is a single node query.
33
- */ if (!(0, _cubetypes.isJoinNode)(path[0][0])) {
34
- return query;
35
- }
36
- const visitedNodes = new Map();
37
- for(let i = 0; i < path.length; i++){
38
- if (path[i][0].left !== startingNode) {
39
- throw new Error('Invalid path, starting node is not the same for all paths.');
40
- }
41
- for(let j = 0; j < path[i].length; j++){
42
- const currentEdge = path[i][j];
43
- if (!(0, _cubetypes.isJoinNode)(currentEdge)) {
44
- continue;
45
- }
46
- const visitedFrom = visitedNodes.get(currentEdge.right);
47
- // If node is already visited from the same edge, continue to next iteration
48
- if (visitedFrom && visitedFrom.left === currentEdge.left) {
49
- continue;
50
- }
51
- // If node is already visited from a different edge, throw ambiguity error
52
- if (visitedFrom) {
53
- throw new Error(`Path ambiguity, node ${currentEdge.right} visited from different sources`);
54
- }
55
- // If visitedFrom is undefined, this is the first visit to the node
56
- visitedNodes.set(currentEdge.right, currentEdge);
57
- query += ` LEFT JOIN (${tableSchemaSqlMap[currentEdge.right]}) AS ${currentEdge.right} ON ${directedGraph[currentEdge.left][currentEdge.right][currentEdge.on]}`;
58
- }
59
- }
60
- return query;
61
- }
62
- const createDirectedGraph = (tableSchema, tableSchemaSqlMap)=>{
63
- const directedGraph = {};
64
- function addEdge(table1, table2, joinOn, joinCondition) {
65
- if (table1 === table2 || directedGraph[table1] && directedGraph[table1][table2] && directedGraph[table1][table2][joinOn]) {
66
- throw new Error('An invalid path was detected.');
67
- }
68
- if (!directedGraph[table1]) directedGraph[table1] = {};
69
- if (!directedGraph[table1][table2]) directedGraph[table1][table2] = {};
70
- directedGraph[table1][table2][joinOn] = joinCondition;
71
- }
72
- /**
73
- * Iterate through the table schema and add the edges to the directed graph.
74
- * The edges are added based on the join conditions provided in the table schema.
75
- * The SQL is split by the '=' sign and the tables columns involved in the joins are extracted.
76
- * The tables are then added as edges to the directed graph.
77
- */ tableSchema.forEach((schema)=>{
78
- var _schema_joins;
79
- schema == null ? void 0 : (_schema_joins = schema.joins) == null ? void 0 : _schema_joins.forEach((join)=>{
80
- const tables = join.sql.split('=').map((str)=>str.split('.')[0].trim());
81
- const conditions = join.sql.split('=').map((str)=>str.split('.')[1].trim());
82
- /**
83
- * If the join SQL does not contain exactly 2 tables, then the join is invalid.
84
- */ if (tables.length !== 2) {
85
- throw new Error(`Invalid join SQL: ${join.sql}`);
86
- }
87
- /**
88
- * If the tables are the same, then the join is invalid.
89
- */ if (tables[0] === tables[1]) {
90
- throw new Error(`Invalid join SQL: ${join.sql}`);
91
- }
92
- /**
93
- * If the tables are not found in the table schema, then the join is invalid.
94
- */ if (tables[0] !== schema.name && tables[1] !== schema.name) {
95
- throw new Error(`Table "${schema.name}" not found in provided join SQL: ${join.sql}`);
96
- }
97
- /**
98
- * Check if the tables are found in the table schema SQL map.
99
- */ if (!tableSchemaSqlMap[tables[0]] || !tableSchemaSqlMap[tables[1]]) {
100
- return;
101
- }
102
- /**
103
- * If the table is the source table, then add the edge from the source to the target.
104
- * Thus find which table is the source and which is the target and add the edge accordingly.
105
- */ if (tables[0] === schema.name) {
106
- addEdge(tables[0], tables[1], conditions[0], join.sql);
107
- } else {
108
- addEdge(tables[1], tables[0], conditions[1], join.sql);
109
- }
110
- });
111
- });
112
- return directedGraph;
113
- };
114
- const checkLoopInJoinPath = (joinPath)=>{
115
- for(let i = 0; i < joinPath.length; i++){
116
- const visitedNodes = new Set();
117
- const currentJoinPath = joinPath[i];
118
- visitedNodes.add(currentJoinPath[0].left);
119
- for(let j = 0; j < currentJoinPath.length; j++){
120
- const currentEdge = currentJoinPath[j];
121
- if ((0, _cubetypes.isJoinNode)(currentEdge) && visitedNodes.has(currentEdge.right)) {
122
- if (visitedNodes.has(currentEdge.right)) {
123
- return true;
124
- }
125
- visitedNodes.add(currentEdge.right);
126
- }
127
- }
128
- }
129
- return false;
130
- };
131
- const getCombinedTableSchema = async (tableSchema, cubeQuery)=>{
132
- if (tableSchema.length === 1) {
133
- return tableSchema[0];
134
- }
135
- const tableSchemaSqlMap = tableSchema.reduce((acc, schema)=>{
136
- return _extends._({}, acc, {
137
- [schema.name]: schema.sql
138
- });
139
- }, {});
140
- const directedGraph = createDirectedGraph(tableSchema, tableSchemaSqlMap);
141
- const hasLoop = checkLoopInJoinPath(cubeQuery.joinPaths || []);
142
- if (hasLoop) {
143
- throw new Error(`A loop was detected in the joins. ${JSON.stringify(cubeQuery.joinPaths || [])}`);
144
- }
145
- const baseSql = generateSqlQuery(cubeQuery.joinPaths || [], tableSchemaSqlMap, directedGraph);
146
- const combinedTableSchema = tableSchema.reduce((acc, schema)=>{
147
- return {
148
- name: 'MEERKAT_GENERATED_TABLE',
149
- sql: baseSql,
150
- measures: [
151
- ...acc.measures,
152
- ...schema.measures
153
- ],
154
- dimensions: [
155
- ...acc.dimensions,
156
- ...schema.dimensions
157
- ],
158
- joins: []
159
- };
160
- }, {
161
- name: '',
162
- sql: '',
163
- measures: [],
164
- dimensions: [],
165
- joins: []
166
- });
167
- return combinedTableSchema;
168
- };
169
-
170
- //# sourceMappingURL=joins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/joins/joins.ts"],"sourcesContent":["import { JoinPath, Query, TableSchema, isJoinNode } from '../types/cube-types';\n\nexport type Graph = {\n [key: string]: { [key: string]: { [key: string]: string } };\n};\n\nexport function generateSqlQuery(\n path: JoinPath[],\n tableSchemaSqlMap: { [key: string]: string },\n directedGraph: Graph\n): string {\n if (path.length === 0) {\n throw new Error(\n 'Invalid path, multiple data sources are present without a join path.'\n );\n }\n\n const startingNode = path[0][0].left;\n let query = `${tableSchemaSqlMap[startingNode]}`;\n\n /**\n * If the starting node is not a join node, then return the query as is.\n * It means that the query is a single node query.\n */\n if (!isJoinNode(path[0][0])) {\n return query;\n }\n\n const visitedNodes = new Map();\n\n for (let i = 0; i < path.length; i++) {\n if (path[i][0].left !== startingNode) {\n throw new Error(\n 'Invalid path, starting node is not the same for all paths.'\n );\n }\n for (let j = 0; j < path[i].length; j++) {\n const currentEdge = path[i][j];\n\n if (!isJoinNode(currentEdge)) {\n continue;\n }\n\n const visitedFrom = visitedNodes.get(currentEdge.right);\n\n // If node is already visited from the same edge, continue to next iteration\n if (visitedFrom && visitedFrom.left === currentEdge.left) {\n continue;\n }\n // If node is already visited from a different edge, throw ambiguity error\n if (visitedFrom) {\n throw new Error(\n `Path ambiguity, node ${currentEdge.right} visited from different sources`\n );\n }\n\n // If visitedFrom is undefined, this is the first visit to the node\n visitedNodes.set(currentEdge.right, currentEdge);\n\n query += ` LEFT JOIN (${tableSchemaSqlMap[currentEdge.right]}) AS ${\n currentEdge.right\n } ON ${\n directedGraph[currentEdge.left][currentEdge.right][currentEdge.on]\n }`;\n }\n }\n\n return query;\n}\n\nexport const createDirectedGraph = (\n tableSchema: TableSchema[],\n tableSchemaSqlMap: { [key: string]: string }\n) => {\n const directedGraph: {\n [key: string]: { [key: string]: { [key: string]: string } };\n } = {};\n\n function addEdge(\n table1: string,\n table2: string,\n joinOn: string,\n joinCondition: string\n ) {\n if (\n table1 === table2 ||\n (directedGraph[table1] &&\n directedGraph[table1][table2] &&\n directedGraph[table1][table2][joinOn])\n ) {\n throw new Error('An invalid path was detected.');\n }\n if (!directedGraph[table1]) directedGraph[table1] = {};\n if (!directedGraph[table1][table2]) directedGraph[table1][table2] = {};\n directedGraph[table1][table2][joinOn] = joinCondition;\n }\n /**\n * Iterate through the table schema and add the edges to the directed graph.\n * The edges are added based on the join conditions provided in the table schema.\n * The SQL is split by the '=' sign and the tables columns involved in the joins are extracted.\n * The tables are then added as edges to the directed graph.\n */\n tableSchema.forEach((schema) => {\n schema?.joins?.forEach((join) => {\n const tables = join.sql.split('=').map((str) => str.split('.')[0].trim());\n const conditions = join.sql\n .split('=')\n .map((str) => str.split('.')[1].trim());\n\n /**\n * If the join SQL does not contain exactly 2 tables, then the join is invalid.\n */\n if (tables.length !== 2) {\n throw new Error(`Invalid join SQL: ${join.sql}`);\n }\n\n /**\n * If the tables are the same, then the join is invalid.\n */\n if (tables[0] === tables[1]) {\n throw new Error(`Invalid join SQL: ${join.sql}`);\n }\n\n /**\n * If the tables are not found in the table schema, then the join is invalid.\n */\n\n if (tables[0] !== schema.name && tables[1] !== schema.name) {\n throw new Error(\n `Table \"${schema.name}\" not found in provided join SQL: ${join.sql}`\n );\n }\n\n /**\n * Check if the tables are found in the table schema SQL map.\n */\n if (!tableSchemaSqlMap[tables[0]] || !tableSchemaSqlMap[tables[1]]) {\n return;\n }\n /**\n * If the table is the source table, then add the edge from the source to the target.\n * Thus find which table is the source and which is the target and add the edge accordingly.\n */\n if (tables[0] === schema.name) {\n addEdge(tables[0], tables[1], conditions[0], join.sql);\n } else {\n addEdge(tables[1], tables[0], conditions[1], join.sql);\n }\n });\n });\n\n return directedGraph;\n};\n\nexport const checkLoopInJoinPath = (joinPath: JoinPath[]) => {\n for (let i = 0; i < joinPath.length; i++) {\n const visitedNodes = new Set<string>();\n const currentJoinPath = joinPath[i];\n visitedNodes.add(currentJoinPath[0].left);\n for (let j = 0; j < currentJoinPath.length; j++) {\n const currentEdge = currentJoinPath[j];\n if (isJoinNode(currentEdge) && visitedNodes.has(currentEdge.right)) {\n if (visitedNodes.has(currentEdge.right)) {\n return true;\n }\n visitedNodes.add(currentEdge.right);\n }\n }\n }\n return false;\n};\n\nexport const getCombinedTableSchema = async (\n tableSchema: TableSchema[],\n cubeQuery: Query\n) => {\n if (tableSchema.length === 1) {\n return tableSchema[0];\n }\n\n const tableSchemaSqlMap = tableSchema.reduce(\n (acc: { [key: string]: string }, schema: TableSchema) => {\n return { ...acc, [schema.name]: schema.sql };\n },\n {}\n );\n\n const directedGraph = createDirectedGraph(tableSchema, tableSchemaSqlMap);\n const hasLoop = checkLoopInJoinPath(cubeQuery.joinPaths || []);\n if (hasLoop) {\n throw new Error(\n `A loop was detected in the joins. ${JSON.stringify(\n cubeQuery.joinPaths || []\n )}`\n );\n }\n\n const baseSql = generateSqlQuery(\n cubeQuery.joinPaths || [],\n tableSchemaSqlMap,\n directedGraph\n );\n\n const combinedTableSchema = tableSchema.reduce(\n (acc: TableSchema, schema: TableSchema) => {\n return {\n name: 'MEERKAT_GENERATED_TABLE',\n sql: baseSql,\n measures: [...acc.measures, ...schema.measures],\n dimensions: [...acc.dimensions, ...schema.dimensions],\n joins: [],\n };\n },\n {\n name: '',\n sql: '',\n measures: [],\n dimensions: [],\n joins: [],\n }\n );\n return combinedTableSchema;\n};\n"],"names":["checkLoopInJoinPath","createDirectedGraph","generateSqlQuery","getCombinedTableSchema","path","tableSchemaSqlMap","directedGraph","length","Error","startingNode","left","query","isJoinNode","visitedNodes","Map","i","j","currentEdge","visitedFrom","get","right","set","on","tableSchema","addEdge","table1","table2","joinOn","joinCondition","forEach","schema","joins","join","tables","sql","split","map","str","trim","conditions","name","joinPath","Set","currentJoinPath","add","has","cubeQuery","reduce","acc","hasLoop","joinPaths","JSON","stringify","baseSql","combinedTableSchema","measures","dimensions"],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- function _export(target, all) {
3
- for(var name in all)Object.defineProperty(target, name, {
4
- enumerable: true,
5
- get: all[name]
6
- });
7
- }
8
- _export(exports, {
9
- COLUMN_NAME_DELIMITER: function() {
10
- return COLUMN_NAME_DELIMITER;
11
- },
12
- MEERKAT_OUTPUT_DELIMITER: function() {
13
- return MEERKAT_OUTPUT_DELIMITER;
14
- }
15
- });
16
- const COLUMN_NAME_DELIMITER = '.';
17
- const MEERKAT_OUTPUT_DELIMITER = '__';
18
-
19
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/member-formatters/constants.ts"],"sourcesContent":["export const COLUMN_NAME_DELIMITER = '.';\nexport const MEERKAT_OUTPUT_DELIMITER = '__';\n"],"names":["COLUMN_NAME_DELIMITER","MEERKAT_OUTPUT_DELIMITER"],"mappings":";;;;;;;;IAAaA,qBAAqB;eAArBA;;IACAC,wBAAwB;eAAxBA;;;AADN,MAAMD,wBAAwB;AAC9B,MAAMC,2BAA2B"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- function _export(target, all) {
3
- for(var name in all)Object.defineProperty(target, name, {
4
- enumerable: true,
5
- get: all[name]
6
- });
7
- }
8
- _export(exports, {
9
- COLUMN_NAME_DELIMITER: function() {
10
- return _constants.COLUMN_NAME_DELIMITER;
11
- },
12
- memberKeyToSafeKey: function() {
13
- return _memberkeytosafekey.memberKeyToSafeKey;
14
- },
15
- splitIntoDataSourceAndFields: function() {
16
- return _splitintodatasourceandfields.splitIntoDataSourceAndFields;
17
- }
18
- });
19
- const _constants = require("./constants");
20
- const _memberkeytosafekey = require("./member-key-to-safe-key");
21
- const _splitintodatasourceandfields = require("./split-into-data-source-and-fields");
22
-
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/member-formatters/index.ts"],"sourcesContent":["export { COLUMN_NAME_DELIMITER } from './constants';\nexport { memberKeyToSafeKey } from './member-key-to-safe-key';\nexport { splitIntoDataSourceAndFields } from './split-into-data-source-and-fields';\n"],"names":["COLUMN_NAME_DELIMITER","memberKeyToSafeKey","splitIntoDataSourceAndFields"],"mappings":";;;;;;;;IAASA,qBAAqB;eAArBA,gCAAqB;;IACrBC,kBAAkB;eAAlBA,sCAAkB;;IAClBC,4BAA4B;eAA5BA,0DAA4B;;;2BAFC;oCACH;8CACU"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "memberKeyToSafeKey", {
3
- enumerable: true,
4
- get: function() {
5
- return memberKeyToSafeKey;
6
- }
7
- });
8
- const _constants = require("./constants");
9
- const memberKeyToSafeKey = (memberKey)=>{
10
- return memberKey.split(_constants.COLUMN_NAME_DELIMITER).join(_constants.MEERKAT_OUTPUT_DELIMITER);
11
- };
12
-
13
- //# sourceMappingURL=member-key-to-safe-key.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/member-formatters/member-key-to-safe-key.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER, MEERKAT_OUTPUT_DELIMITER } from './constants';\n\nexport const memberKeyToSafeKey = (memberKey: string) => {\n return memberKey.split(COLUMN_NAME_DELIMITER).join(MEERKAT_OUTPUT_DELIMITER);\n};\n"],"names":["memberKeyToSafeKey","memberKey","split","COLUMN_NAME_DELIMITER","join","MEERKAT_OUTPUT_DELIMITER"],"mappings":";+BAEaA;;;eAAAA;;;2BAFmD;AAEzD,MAAMA,qBAAqB,CAACC;IACjC,OAAOA,UAAUC,KAAK,CAACC,gCAAqB,EAAEC,IAAI,CAACC,mCAAwB;AAC7E"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "splitIntoDataSourceAndFields", {
3
- enumerable: true,
4
- get: function() {
5
- return splitIntoDataSourceAndFields;
6
- }
7
- });
8
- const _constants = require("./constants");
9
- const splitIntoDataSourceAndFields = (member)=>{
10
- const [dataSource, ...fields] = member.split(_constants.COLUMN_NAME_DELIMITER);
11
- return [
12
- dataSource,
13
- fields.join(_constants.COLUMN_NAME_DELIMITER)
14
- ];
15
- };
16
-
17
- //# sourceMappingURL=split-into-data-source-and-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/member-formatters/split-into-data-source-and-fields.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from './constants';\n\nexport const splitIntoDataSourceAndFields = (member: string) => {\n const [dataSource, ...fields] = member.split(COLUMN_NAME_DELIMITER);\n return [dataSource, fields.join(COLUMN_NAME_DELIMITER)];\n};\n"],"names":["splitIntoDataSourceAndFields","member","dataSource","fields","split","COLUMN_NAME_DELIMITER","join"],"mappings":";+BAEaA;;;eAAAA;;;2BAFyB;AAE/B,MAAMA,+BAA+B,CAACC;IAC3C,MAAM,CAACC,YAAY,GAAGC,OAAO,GAAGF,OAAOG,KAAK,CAACC,gCAAqB;IAClE,OAAO;QAACH;QAAYC,OAAOG,IAAI,CAACD,gCAAqB;KAAE;AACzD"}
@@ -1,128 +0,0 @@
1
- "use strict";
2
- function _export(target, all) {
3
- for(var name in all)Object.defineProperty(target, name, {
4
- enumerable: true,
5
- get: all[name]
6
- });
7
- }
8
- _export(exports, {
9
- createBaseTableSchema: function() {
10
- return createBaseTableSchema;
11
- },
12
- generateResolutionJoinPaths: function() {
13
- return generateResolutionJoinPaths;
14
- },
15
- generateResolutionSchemas: function() {
16
- return generateResolutionSchemas;
17
- },
18
- generateResolvedDimensions: function() {
19
- return generateResolvedDimensions;
20
- }
21
- });
22
- const _splitintodatasourceandfields = require("../member-formatters/split-into-data-source-and-fields");
23
- const _types = require("./types");
24
- const resolveDimension = (dim, tableSchemas)=>{
25
- const [tableName, columnName] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(dim);
26
- const tableSchema = tableSchemas.find((ts)=>ts.name === tableName);
27
- if (!tableSchema) {
28
- throw new Error(`Table schema not found for ${tableName}`);
29
- }
30
- const dimension = tableSchema.dimensions.find((d)=>d.name === columnName);
31
- if (!dimension) {
32
- throw new Error(`Dimension not found: ${dim}`);
33
- }
34
- return {
35
- name: `${generateName(dim)}`,
36
- sql: `${_types.BASE_DATA_SOURCE_NAME}.${generateName(dim)}`,
37
- type: dimension.type
38
- };
39
- };
40
- const resolveMeasure = (measure, tableSchemas)=>{
41
- const [tableName, columnName] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(measure);
42
- const tableSchema = tableSchemas.find((ts)=>ts.name === tableName);
43
- if (!tableSchema) {
44
- throw new Error(`Table schema not found for ${tableName}`);
45
- }
46
- const measureSchema = tableSchema.measures.find((m)=>m.name === columnName);
47
- if (!measureSchema) {
48
- throw new Error(`Measure not found: ${measure}`);
49
- }
50
- return {
51
- name: `${generateName(measure)}`,
52
- sql: `${_types.BASE_DATA_SOURCE_NAME}.${generateName(measure)}`,
53
- type: measureSchema.type
54
- };
55
- };
56
- const createBaseTableSchema = (baseSql, tableSchemas, resolutionConfig, measures, dimensions)=>({
57
- name: _types.BASE_DATA_SOURCE_NAME,
58
- sql: baseSql,
59
- measures: [],
60
- dimensions: [
61
- ...(dimensions || []).map((dim)=>resolveDimension(dim, tableSchemas)),
62
- ...(measures || []).map((meas)=>resolveMeasure(meas, tableSchemas))
63
- ],
64
- joins: resolutionConfig.columnConfigs.map((config)=>({
65
- sql: `${_types.BASE_DATA_SOURCE_NAME}.${generateName(config.name)} = ${generateName(config.name)}.${config.joinColumn}`
66
- }))
67
- });
68
- const generateResolutionSchemas = (config)=>{
69
- const resolutionSchemas = [];
70
- config.columnConfigs.forEach((colConfig)=>{
71
- const tableSchema = config.tableSchemas.find((ts)=>ts.name === colConfig.source);
72
- if (!tableSchema) {
73
- throw new Error(`Table schema not found for ${colConfig.source}`);
74
- }
75
- const baseName = generateName(colConfig.name);
76
- // For each column that needs to be resolved, create a copy of the relevant table schema.
77
- // We use the name of the column in the base query as the table schema name
78
- // to avoid conflicts.
79
- const resolutionSchema = {
80
- name: baseName,
81
- sql: tableSchema.sql,
82
- measures: [],
83
- dimensions: colConfig.resolutionColumns.map((col)=>{
84
- const dimension = tableSchema.dimensions.find((d)=>d.name === col);
85
- if (!dimension) {
86
- throw new Error(`Dimension not found: ${col}`);
87
- }
88
- return {
89
- name: col,
90
- sql: `${baseName}.${col}`,
91
- type: dimension.type
92
- };
93
- })
94
- };
95
- resolutionSchemas.push(resolutionSchema);
96
- });
97
- return resolutionSchemas;
98
- };
99
- const generateResolvedDimensions = (query, config)=>{
100
- const resolvedDimensions = [
101
- ...query.measures,
102
- ...query.dimensions || []
103
- ].flatMap((dimension)=>{
104
- const resolution = config.columnConfigs.find((c)=>c.name === dimension);
105
- if (!resolution) {
106
- return [
107
- `${_types.BASE_DATA_SOURCE_NAME}.${generateName(dimension)}`
108
- ];
109
- } else {
110
- return resolution.resolutionColumns.map((col)=>`${generateName(dimension)}.${col}`);
111
- }
112
- });
113
- return resolvedDimensions;
114
- };
115
- const generateResolutionJoinPaths = (resolutionConfig)=>{
116
- return resolutionConfig.columnConfigs.map((config)=>[
117
- {
118
- left: _types.BASE_DATA_SOURCE_NAME,
119
- right: generateName(config.name),
120
- on: generateName(config.name)
121
- }
122
- ]);
123
- };
124
- // Generates a valid column name from a generic reference
125
- // by replacing '.' with '__'.
126
- const generateName = (columnName)=>columnName.replace('.', '__');
127
-
128
- //# sourceMappingURL=resolution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/resolution/resolution.ts"],"sourcesContent":["import { splitIntoDataSourceAndFields } from '../member-formatters/split-into-data-source-and-fields';\nimport { JoinPath, Member, Query } from '../types/cube-types/query';\nimport { TableSchema } from '../types/cube-types/table';\nimport { BASE_DATA_SOURCE_NAME, ResolutionConfig } from './types';\n\nconst resolveDimension = (dim: string, tableSchemas: TableSchema[]) => {\n const [tableName, columnName] = splitIntoDataSourceAndFields(dim);\n const tableSchema = tableSchemas.find((ts) => ts.name === tableName);\n if (!tableSchema) {\n throw new Error(`Table schema not found for ${tableName}`);\n }\n const dimension = tableSchema.dimensions.find((d) => d.name === columnName);\n if (!dimension) {\n throw new Error(`Dimension not found: ${dim}`);\n }\n\n return {\n name: `${generateName(dim)}`,\n sql: `${BASE_DATA_SOURCE_NAME}.${generateName(dim)}`,\n type: dimension.type,\n };\n};\n\nconst resolveMeasure = (measure: string, tableSchemas: TableSchema[]) => {\n const [tableName, columnName] = splitIntoDataSourceAndFields(measure);\n const tableSchema = tableSchemas.find((ts) => ts.name === tableName);\n if (!tableSchema) {\n throw new Error(`Table schema not found for ${tableName}`);\n }\n const measureSchema = tableSchema.measures.find((m) => m.name === columnName);\n if (!measureSchema) {\n throw new Error(`Measure not found: ${measure}`);\n }\n\n return {\n name: `${generateName(measure)}`,\n sql: `${BASE_DATA_SOURCE_NAME}.${generateName(measure)}`,\n type: measureSchema.type,\n };\n};\n\nexport const createBaseTableSchema = (\n baseSql: string,\n tableSchemas: TableSchema[],\n resolutionConfig: ResolutionConfig,\n measures: Member[],\n dimensions?: Member[]\n) => ({\n name: BASE_DATA_SOURCE_NAME,\n sql: baseSql,\n measures: [],\n dimensions: [\n ...(dimensions || []).map((dim) => resolveDimension(dim, tableSchemas)),\n ...(measures || []).map((meas) => resolveMeasure(meas, tableSchemas)),\n ],\n joins: resolutionConfig.columnConfigs.map((config) => ({\n sql: `${BASE_DATA_SOURCE_NAME}.${generateName(\n config.name\n )} = ${generateName(config.name)}.${config.joinColumn}`,\n })),\n});\n\nexport const generateResolutionSchemas = (config: ResolutionConfig) => {\n const resolutionSchemas: TableSchema[] = [];\n config.columnConfigs.forEach((colConfig) => {\n const tableSchema = config.tableSchemas.find(\n (ts) => ts.name === colConfig.source\n );\n if (!tableSchema) {\n throw new Error(`Table schema not found for ${colConfig.source}`);\n }\n\n const baseName = generateName(colConfig.name);\n\n // For each column that needs to be resolved, create a copy of the relevant table schema.\n // We use the name of the column in the base query as the table schema name\n // to avoid conflicts.\n const resolutionSchema: TableSchema = {\n name: baseName,\n sql: tableSchema.sql,\n measures: [],\n dimensions: colConfig.resolutionColumns.map((col) => {\n const dimension = tableSchema.dimensions.find((d) => d.name === col);\n if (!dimension) {\n throw new Error(`Dimension not found: ${col}`);\n }\n return {\n name: col,\n sql: `${baseName}.${col}`,\n type: dimension.type,\n };\n }),\n };\n\n resolutionSchemas.push(resolutionSchema);\n });\n\n return resolutionSchemas;\n};\n\nexport const generateResolvedDimensions = (\n query: Query,\n config: ResolutionConfig\n): Member[] => {\n const resolvedDimensions: Member[] = [\n ...query.measures,\n ...(query.dimensions || []),\n ].flatMap((dimension) => {\n const resolution = config.columnConfigs.find((c) => c.name === dimension);\n\n if (!resolution) {\n return [`${BASE_DATA_SOURCE_NAME}.${generateName(dimension)}`];\n } else {\n return resolution.resolutionColumns.map(\n (col) => `${generateName(dimension)}.${col}`\n );\n }\n });\n return resolvedDimensions;\n};\n\nexport const generateResolutionJoinPaths = (\n resolutionConfig: ResolutionConfig\n): JoinPath[] => {\n return resolutionConfig.columnConfigs.map((config) => [\n {\n left: BASE_DATA_SOURCE_NAME,\n right: generateName(config.name),\n on: generateName(config.name),\n },\n ]);\n};\n\n// Generates a valid column name from a generic reference\n// by replacing '.' with '__'.\nconst generateName = (columnName: string) => columnName.replace('.', '__');\n"],"names":["createBaseTableSchema","generateResolutionJoinPaths","generateResolutionSchemas","generateResolvedDimensions","resolveDimension","dim","tableSchemas","tableName","columnName","splitIntoDataSourceAndFields","tableSchema","find","ts","name","Error","dimension","dimensions","d","generateName","sql","BASE_DATA_SOURCE_NAME","type","resolveMeasure","measure","measureSchema","measures","m","baseSql","resolutionConfig","map","meas","joins","columnConfigs","config","joinColumn","resolutionSchemas","forEach","colConfig","source","baseName","resolutionSchema","resolutionColumns","col","push","query","resolvedDimensions","flatMap","resolution","c","left","right","on","replace"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "BASE_DATA_SOURCE_NAME", {
3
- enumerable: true,
4
- get: function() {
5
- return BASE_DATA_SOURCE_NAME;
6
- }
7
- });
8
- const BASE_DATA_SOURCE_NAME = '__base_query';
9
-
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/resolution/types.ts"],"sourcesContent":["import { TableSchema } from '../types/cube-types/table';\n\nexport interface ResolutionColumnConfig {\n // Name of the column that needs resolution.\n // Should match a measure or dimension in the query.\n name: string;\n // Name of the data source to use for resolution.\n source: string;\n // Name of the column in the data source to join on.\n joinColumn: string;\n // Columns from the source table that should be included for resolution.\n resolutionColumns: string[];\n}\n\nexport interface ResolutionConfig {\n columnConfigs: ResolutionColumnConfig[];\n tableSchemas: TableSchema[];\n}\n\nexport const BASE_DATA_SOURCE_NAME = '__base_query';\n"],"names":["BASE_DATA_SOURCE_NAME"],"mappings":";+BAmBaA;;;eAAAA;;;AAAN,MAAMA,wBAAwB"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- const _export_star = require("@swc/helpers/_/_export_star");
3
- _export_star._(require("./query"), exports);
4
- _export_star._(require("./table"), exports);
5
-
6
- //# sourceMappingURL=index.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/index.d.ts"],"sourcesContent":["export * from './query';\nexport * from './table';\n"],"names":[],"mappings":";;uBAAc;uBACA"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- const _export_star = require("@swc/helpers/_/_export_star");
3
- _export_star._(require("./query"), exports);
4
- _export_star._(require("./table"), exports);
5
-
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/index.ts"],"sourcesContent":["export * from './query';\nexport * from './table';\n"],"names":[],"mappings":";;uBAAc;uBACA"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Request type data type.
3
- */ "use strict";
4
-
5
- //# sourceMappingURL=query.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/query.d.ts"],"sourcesContent":["/**\n * Request type data type.\n */\ntype RequestType = 'multi';\n/**\n * Result type data type.\n */\ntype ResultType = 'default' | 'compact';\n/**\n * API type data type.\n */\ntype ApiType = 'sql' | 'graphql' | 'rest' | 'ws' | 'stream';\n/**\n * Parsed query type data type.\n */\ntype QueryType = 'regularQuery' | 'compareDateRangeQuery' | 'blendingQuery';\n/**\n * String that represent query member type.\n */\ntype MemberType = 'measures' | 'dimensions' | 'segments';\n/**\n * Member identifier. Should satisfy to the following regexp: /^[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$/\n */\ntype Member = string;\n/**\n * Datetime member identifier. Should satisfy to the following\n * regexp: /^[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+(\\.(second|minute|hour|day|week|month|year))?$/\n */\ntype TimeMember = string;\n/**\n * Filter operator string.\n */\ntype FilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'in' | 'notIn' | 'gt' | 'gte' | 'lt' | 'lte' | 'set' | 'notSet' | 'inDateRange' | 'notInDateRange' | 'onTheDate' | 'beforeDate' | 'afterDate' | 'measureFilter';\n/**\n * Time dimension granularity data type.\n */\ntype QueryTimeDimensionGranularity = 'quarter' | 'day' | 'month' | 'year' | 'week' | 'hour' | 'minute' | 'second';\n/**\n * Query order data type.\n */\ntype QueryOrderType = 'asc' | 'desc';\n/**\n * ApiScopes data type.\n */\ntype ApiScopes = 'graphql' | 'meta' | 'data' | 'jobs';\ninterface QueryFilter {\n member: Member;\n operator: FilterOperator;\n values?: string[];\n}\n/**\n * Query 'and'-filters type definition.\n */\ntype LogicalAndFilter = {\n and: (QueryFilter | {\n or: (QueryFilter | LogicalAndFilter)[];\n })[];\n};\n/**\n * Query 'or'-filters type definition.\n */\ntype LogicalOrFilter = {\n or: (QueryFilter | LogicalAndFilter)[];\n};\n/**\n * Query datetime dimention interface.\n */\ninterface QueryTimeDimension {\n dimension: Member;\n dateRange?: string[] | string;\n granularity?: QueryTimeDimensionGranularity;\n}\n/**\n * Incoming network query data type.\n */\ninterface Query {\n measures: Member[];\n dimensions?: (Member | TimeMember)[];\n filters?: (QueryFilter | LogicalAndFilter | LogicalOrFilter)[];\n timeDimensions?: QueryTimeDimension[];\n segments?: Member[];\n limit?: null | number;\n offset?: number;\n total?: boolean;\n totalQuery?: boolean;\n order?: any;\n timezone?: string;\n renewQuery?: boolean;\n ungrouped?: boolean;\n responseFormat?: ResultType;\n}\n/**\n * Normalized filter interface.\n */\ninterface NormalizedQueryFilter extends QueryFilter {\n dimension?: Member;\n}\n/**\n * Normalized query interface.\n */\ninterface NormalizedQuery extends Query {\n filters?: NormalizedQueryFilter[];\n rowLimit?: null | number;\n order?: [{\n id: string;\n desc: boolean;\n }];\n}\nexport { ApiScopes, ApiType, FilterOperator, LogicalAndFilter, LogicalOrFilter, Member, MemberType, NormalizedQuery, NormalizedQueryFilter, Query, QueryFilter, QueryOrderType, QueryTimeDimension, QueryTimeDimensionGranularity, QueryType, RequestType, ResultType, TimeMember, };\n"],"names":[],"mappings":"AAAA;;CAEC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Request type data type.
3
- */ "use strict";
4
- Object.defineProperty(exports, "isJoinNode", {
5
- enumerable: true,
6
- get: function() {
7
- return isJoinNode;
8
- }
9
- });
10
- const isJoinNode = (node)=>{
11
- return 'right' in node;
12
- };
13
-
14
- //# sourceMappingURL=query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/query.ts"],"sourcesContent":["/**\n * Request type data type.\n */\ntype RequestType = 'multi';\n\n/**\n * Result type data type.\n */\ntype ResultType = 'default' | 'compact';\n\n/**\n * API type data type.\n */\ntype ApiType = 'sql' | 'graphql' | 'rest' | 'ws' | 'stream';\n\n/**\n * Parsed query type data type.\n */\ntype QueryType = 'regularQuery' | 'compareDateRangeQuery' | 'blendingQuery';\n\n/**\n * String that represent query member type.\n */\ntype MemberType = 'measures' | 'dimensions' | 'segments';\n\n/**\n * Member identifier. Should satisfy to the following regexp: /^[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$/\n */\ntype Member = string;\n\n\n/**\n * Filter operator string.\n */\ntype FilterOperator =\n | 'equals'\n | 'notEquals'\n | 'contains'\n | 'notContains'\n | 'in'\n | 'notIn'\n | 'gt'\n | 'gte'\n | 'lt'\n | 'lte'\n | 'set'\n | 'notSet'\n | 'inDateRange'\n | 'notInDateRange'\n | 'onTheDate'\n | 'beforeDate'\n | 'afterDate'\n | 'measureFilter';\n\n/**\n * Query order data type.\n */\ntype QueryOrderType = 'asc' | 'desc';\n\n/**\n * ApiScopes data type.\n */\ntype ApiScopes = 'graphql' | 'meta' | 'data' | 'jobs';\n\nexport type FilterType = 'BASE_FILTER' | 'PROJECTION_FILTER';\n\ninterface QueryFilter {\n member: Member;\n operator: FilterOperator;\n values?: string[];\n}\n\n/**\n * Query 'and'-filters type definition.\n */\ntype LogicalAndFilter = {\n and: (QueryFilter | { or: (QueryFilter | LogicalAndFilter)[] })[];\n};\n\n/**\n * Query 'or'-filters type definition.\n */\ntype LogicalOrFilter = {\n or: (QueryFilter | LogicalAndFilter)[];\n};\n\n\n/**\n * Join Edge data type.\n */\n\ninterface JoinNode {\n /**\n * Left node.\n */\n left: Member;\n\n /**\n * Right node.\n */\n right: Member;\n\n /**\n * On condition.\n */\n on: string;\n\n /**\n * Example\n * [\n * [\n * {\n * left: dim_ticket,\n * right: dim_user\n * on: 'created_by_id'\n * },\n * {\n * left : dim_user,\n * right: dim_user_role,\n * on: 'role_id'\n * }\n * ]\n * ]\n *\n *\n */\n}\n\n/**\n * Single node data type.\n * This is the case when there is no join. Just a single node.\n */\ninterface SingleNode {\n /**\n * Left node.\n */\n left: Member;\n}\n\ntype JoinPath = [JoinNode | SingleNode, ...JoinNode[]];\n\nexport const isJoinNode = (node: JoinNode | SingleNode): node is JoinNode => {\n return 'right' in node;\n};\n\n/**\n * Incoming network query data type.\n */\n\ntype MeerkatQueryFilter = QueryFilter | LogicalAndFilter | LogicalOrFilter;\n\ninterface Query {\n measures: Member[];\n dimensions?: Member[];\n filters?: MeerkatQueryFilter[];\n joinPaths?: JoinPath[];\n limit?: null | number;\n offset?: number;\n order?: Record<string, QueryOrderType>;\n}\n\n\nexport {\n ApiScopes,\n ApiType,\n FilterOperator,\n JoinPath,\n LogicalAndFilter,\n LogicalOrFilter,\n MeerkatQueryFilter,\n Member,\n MemberType,\n Query,\n QueryFilter,\n QueryOrderType,\n QueryType,\n RequestType,\n ResultType\n};\n"],"names":["isJoinNode","node"],"mappings":"AAAA;;CAEC;+BA2IYA;;;eAAAA;;;AAAN,MAAMA,aAAa,CAACC;IACzB,OAAO,WAAWA;AACpB"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
-
3
- //# sourceMappingURL=table.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/table.d.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
-
3
- //# sourceMappingURL=table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/table.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- const _export_star = require("@swc/helpers/_/_export_star");
3
- _export_star._(require("./serialization/Expression"), exports);
4
- _export_star._(require("./serialization/Nodes"), exports);
5
- _export_star._(require("./serialization/ParsedExpression"), exports);
6
- _export_star._(require("./serialization/QueryNode"), exports);
7
- _export_star._(require("./serialization/ResultModifier"), exports);
8
- _export_star._(require("./serialization/Statement"), exports);
9
- _export_star._(require("./serialization/TableRef"), exports);
10
-
11
- //# sourceMappingURL=index.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/duckdb-serialization-types/index.d.ts"],"sourcesContent":["export * from './serialization/Expression';\nexport * from './serialization/Nodes';\nexport * from './serialization/ParsedExpression';\nexport * from './serialization/QueryNode';\nexport * from './serialization/ResultModifier';\nexport * from './serialization/Statement';\nexport * from './serialization/TableRef';\n"],"names":[],"mappings":";;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- const _export_star = require("@swc/helpers/_/_export_star");
3
- _export_star._(require("./serialization/Expression"), exports);
4
- _export_star._(require("./serialization/Nodes"), exports);
5
- _export_star._(require("./serialization/ParsedExpression"), exports);
6
- _export_star._(require("./serialization/QueryNode"), exports);
7
- _export_star._(require("./serialization/ResultModifier"), exports);
8
- _export_star._(require("./serialization/Statement"), exports);
9
- _export_star._(require("./serialization/TableRef"), exports);
10
-
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/types/duckdb-serialization-types/index.ts"],"sourcesContent":["export * from './serialization/Expression';\nexport * from './serialization/Nodes';\nexport * from './serialization/ParsedExpression';\nexport * from './serialization/QueryNode';\nexport * from './serialization/ResultModifier';\nexport * from './serialization/Statement';\nexport * from './serialization/TableRef';\n"],"names":[],"mappings":";;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Constraint.ts"],"sourcesContent":["import { ParsedExpression } from './ParsedExpression';\n\nexport enum ConstraintType {\n INVALID = 'INVALID',\n NOT_NULL = 'NOT_NULL',\n CHECK = 'CHECK',\n UNIQUE = 'UNIQUE',\n FOREIGN_KEY = 'FOREIGN_KEY',\n}\n\nexport enum ForeignKeyType {\n FK_TYPE_PRIMARY_KEY_TABLE = 'FK_TYPE_PRIMARY_KEY_TABLE',\n FK_TYPE_FOREIGN_KEY_TABLE = 'FK_TYPE_FOREIGN_KEY_TABLE',\n FK_TYPE_SELF_REFERENCE_TABLE = 'FK_TYPE_SELF_REFERENCE_TABLE',\n}\n\nexport interface BaseConstraint {\n type: ConstraintType;\n}\n\nexport type Constraint = NotNullConstraint | CheckConstraint | ForeignKeyConstraint | UniqueConstraint;\n\nexport interface LogicalIndex {\n index: number;\n}\n\nexport interface PhysicalIndex {\n index: number;\n}\n\nexport interface NotNullConstraint extends BaseConstraint {\n enum: 'NOT_NULL';\n index: LogicalIndex;\n}\n\nexport interface CheckConstraint extends BaseConstraint {\n enum: 'CHECK';\n expression: ParsedExpression;\n}\n\nexport interface ForeignKeyConstraint extends BaseConstraint {\n enum: 'FOREIGN_KEY';\n pk_columns: string[];\n fk_columns: string[];\n fk_type: ForeignKeyType;\n schema: string;\n table: string;\n pk_keys: PhysicalIndex[];\n fk_keys: PhysicalIndex[];\n}\n\nexport interface UniqueConstraint extends BaseConstraint {\n enum: 'UNIQUE';\n is_primary_key: boolean;\n index: LogicalIndex;\n columns: string[];\n}\n"],"names":["ConstraintType","ForeignKeyType"],"mappings":";;;;;;;;;;;;;;;;UAEYA;;;;;;GAAAA,mBAAAA;;UAQAC;;;;GAAAA,mBAAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/CreateInfo.ts"],"sourcesContent":["import { Constraint } from './Constraint';\nimport { MacroFunction } from './MacroFunction';\nimport { Value } from './Misc';\nimport { ColumnList, LogicalType } from './Nodes';\nimport { ParsedExpression } from './ParsedExpression';\nimport { SelectStatement } from './Statement';\n\nexport enum OnCreateConflict {\n ERROR_ON_CONFLICT = 'ERROR_ON_CONFLICT',\n IGNORE_ON_CONFLICT = 'IGNORE_ON_CONFLICT',\n REPLACE_ON_CONFLICT = 'REPLACE_ON_CONFLICT',\n ALTER_ON_CONFLICT = 'ALTER_ON_CONFLICT',\n}\n\nexport enum CatalogType {\n INVALID = 'INVALID',\n TABLE_ENTRY = 'TABLE_ENTRY',\n SCHEMA_ENTRY = 'SCHEMA_ENTRY',\n VIEW_ENTRY = 'VIEW_ENTRY',\n INDEX_ENTRY = 'INDEX_ENTRY',\n PREPARED_STATEMENT = 'PREPARED_STATEMENT',\n SEQUENCE_ENTRY = 'SEQUENCE_ENTRY',\n COLLATION_ENTRY = 'COLLATION_ENTRY',\n TYPE_ENTRY = 'TYPE_ENTRY',\n DATABASE_ENTRY = 'DATABASE_ENTRY',\n\n // functions\n TABLE_FUNCTION_ENTRY = 'TABLE_FUNCTION_ENTRY',\n SCALAR_FUNCTION_ENTRY = 'SCALAR_FUNCTION_ENTRY',\n AGGREGATE_FUNCTION_ENTRY = 'AGGREGATE_FUNCTION_ENTRY',\n PRAGMA_FUNCTION_ENTRY = 'PRAGMA_FUNCTION_ENTRY',\n COPY_FUNCTION_ENTRY = 'COPY_FUNCTION_ENTRY',\n MACRO_ENTRY = 'MACRO_ENTRY',\n TABLE_MACRO_ENTRY = 'TABLE_MACRO_ENTRY',\n\n // version info\n UPDATED_ENTRY = 'UPDATED_ENTRY',\n DELETED_ENTRY = 'DELETED_ENTRY',\n}\n\nexport interface BaseCreateInfo {\n type: CatalogType;\n catalog: string;\n schema: string;\n temporary: boolean;\n internal: boolean;\n on_conflict: OnCreateConflict;\n sql: string;\n}\n\nexport type CreateInfo =\n | CreateIndexInfo\n | CreateTableInfo\n | CreateSchemaInfo\n | CreateViewInfo\n | CreateTypeInfo\n | CreateMacroInfo\n | CreateSequenceInfo;\n\nexport enum IndexType {\n INVALID = 'INVALID',\n ART = 'ART',\n EXTENSION = 'EXTENSION',\n}\n\nexport enum IndexConstraintType {\n NONE = 'NONE',\n UNIQUE = 'UNIQUE',\n PRIMARY = 'PRIMARY',\n FOREIGN = 'FOREIGN',\n}\n\nexport interface CreateIndexInfo extends BaseCreateInfo {\n name: string;\n table: string;\n index_type: IndexType;\n constraint_type: IndexConstraintType;\n parsed_expressions: ParsedExpression[];\n names: string[];\n column_ids: number[];\n options: Record<string, Value>;\n index_type_name: string;\n}\n\nexport interface CreateTableInfo extends BaseCreateInfo {\n table: string;\n columns: ColumnList;\n constraints: Constraint[];\n query?: SelectStatement;\n}\n\nexport type CreateSchemaInfo = BaseCreateInfo\n\nexport interface CreateViewInfo extends BaseCreateInfo {\n view_name: string;\n aliases: string[];\n types: LogicalType[];\n query?: SelectStatement;\n}\n\nexport interface CreateTypeInfo extends BaseCreateInfo {\n name: string;\n logical_type: LogicalType;\n}\n\nexport interface CreateMacroInfo extends BaseCreateInfo {\n name: string;\n function: MacroFunction;\n}\n\nexport interface CreateSequenceInfo extends BaseCreateInfo {\n name: string;\n usage_count: number;\n increment: number;\n min_value: number;\n max_value: number;\n start_value: number;\n cycle: boolean;\n}\n"],"names":["OnCreateConflict","CatalogType","IndexType","IndexConstraintType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;UAOYA;;;;;GAAAA,qBAAAA;;UAOAC;;;;;;;;;;;IAYV,YAAY;;;;;;;;IASZ,eAAe;;;GArBLA,gBAAAA;;UA6CAC;;;;GAAAA,cAAAA;;UAMAC;;;;;GAAAA,wBAAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
-
3
- //# sourceMappingURL=Expression.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Expression.d.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Expression.ts"],"sourcesContent":["import { Value } from './Misc';\nimport {\n BoundCaseCheck,\n BoundParameterData,\n ColumnBinding,\n LogicalType,\n} from './Nodes';\n\nexport enum ExpressionType {\n INVALID = 'INVALID',\n OPERATOR_CAST = 'OPERATOR_CAST',\n OPERATOR_NOT = 'OPERATOR_NOT',\n OPERATOR_IS_NULL = 'OPERATOR_IS_NULL',\n OPERATOR_IS_NOT_NULL = 'OPERATOR_IS_NOT_NULL',\n COMPARE_EQUAL = 'COMPARE_EQUAL',\n COMPARE_BOUNDARY_START = 'COMPARE_BOUNDARY_START',\n COMPARE_NOTEQUAL = 'COMPARE_NOTEQUAL',\n COMPARE_LESSTHAN = 'COMPARE_LESSTHAN',\n COMPARE_GREATERTHAN = 'COMPARE_GREATERTHAN',\n COMPARE_LESSTHANOREQUALTO = 'COMPARE_LESSTHANOREQUALTO',\n COMPARE_GREATERTHANOREQUALTO = 'COMPARE_GREATERTHANOREQUALTO',\n COMPARE_IN = 'COMPARE_IN',\n COMPARE_NOT_IN = 'COMPARE_NOT_IN',\n COMPARE_DISTINCT_FROM = 'COMPARE_DISTINCT_FROM',\n COMPARE_BETWEEN = 'COMPARE_BETWEEN',\n COMPARE_NOT_BETWEEN = 'COMPARE_NOT_BETWEEN',\n COMPARE_NOT_DISTINCT_FROM = 'COMPARE_NOT_DISTINCT_FROM',\n COMPARE_BOUNDARY_END = 'COMPARE_BOUNDARY_END',\n CONJUNCTION_AND = 'CONJUNCTION_AND',\n CONJUNCTION_OR = 'CONJUNCTION_OR',\n VALUE_CONSTANT = 'VALUE_CONSTANT',\n VALUE_PARAMETER = 'VALUE_PARAMETER',\n VALUE_TUPLE = 'VALUE_TUPLE',\n VALUE_TUPLE_ADDRESS = 'VALUE_TUPLE_ADDRESS',\n VALUE_NULL = 'VALUE_NULL',\n VALUE_VECTOR = 'VALUE_VECTOR',\n VALUE_SCALAR = 'VALUE_SCALAR',\n VALUE_DEFAULT = 'VALUE_DEFAULT',\n AGGREGATE = 'AGGREGATE',\n BOUND_AGGREGATE = 'BOUND_AGGREGATE',\n GROUPING_FUNCTION = 'GROUPING_FUNCTION',\n WINDOW_AGGREGATE = 'WINDOW_AGGREGATE',\n WINDOW_RANK = 'WINDOW_RANK',\n WINDOW_RANK_DENSE = 'WINDOW_RANK_DENSE',\n WINDOW_NTILE = 'WINDOW_NTILE',\n WINDOW_PERCENT_RANK = 'WINDOW_PERCENT_RANK',\n WINDOW_CUME_DIST = 'WINDOW_CUME_DIST',\n WINDOW_ROW_NUMBER = 'WINDOW_ROW_NUMBER',\n WINDOW_FIRST_VALUE = 'WINDOW_FIRST_VALUE',\n WINDOW_LAST_VALUE = 'WINDOW_LAST_VALUE',\n WINDOW_LEAD = 'WINDOW_LEAD',\n WINDOW_LAG = 'WINDOW_LAG',\n WINDOW_NTH_VALUE = 'WINDOW_NTH_VALUE',\n FUNCTION = 'FUNCTION',\n BOUND_FUNCTION = 'BOUND_FUNCTION',\n CASE_EXPR = 'CASE_EXPR',\n OPERATOR_NULLIF = 'OPERATOR_NULLIF',\n OPERATOR_COALESCE = 'OPERATOR_COALESCE',\n ARRAY_EXTRACT = 'ARRAY_EXTRACT',\n ARRAY_SLICE = 'ARRAY_SLICE',\n STRUCT_EXTRACT = 'STRUCT_EXTRACT',\n ARRAY_CONSTRUCTOR = 'ARRAY_CONSTRUCTOR',\n ARROW = 'ARROW',\n SUBQUERY = 'SUBQUERY',\n STAR = 'STAR',\n TABLE_STAR = 'TABLE_STAR',\n PLACEHOLDER = 'PLACEHOLDER',\n COLUMN_REF = 'COLUMN_REF',\n FUNCTION_REF = 'FUNCTION_REF',\n TABLE_REF = 'TABLE_REF',\n CAST = 'CAST',\n BOUND_REF = 'BOUND_REF',\n BOUND_COLUMN_REF = 'BOUND_COLUMN_REF',\n BOUND_UNNEST = 'BOUND_UNNEST',\n COLLATE = 'COLLATE',\n LAMBDA = 'LAMBDA',\n POSITIONAL_REFERENCE = 'POSITIONAL_REFERENCE',\n BOUND_LAMBDA_REF = 'BOUND_LAMBDA_REF',\n}\n\nexport enum ExpressionClass {\n INVALID = 'INVALID',\n AGGREGATE = 'AGGREGATE',\n CASE = 'CASE',\n CAST = 'CAST',\n COLUMN_REF = 'COLUMN_REF',\n COMPARISON = 'COMPARISON',\n CONJUNCTION = 'CONJUNCTION',\n CONSTANT = 'CONSTANT',\n DEFAULT = 'DEFAULT',\n FUNCTION = 'FUNCTION',\n OPERATOR = 'OPERATOR',\n STAR = 'STAR',\n SUBQUERY = 'SUBQUERY',\n WINDOW = 'WINDOW',\n PARAMETER = 'PARAMETER',\n COLLATE = 'COLLATE',\n LAMBDA = 'LAMBDA',\n POSITIONAL_REFERENCE = 'POSITIONAL_REFERENCE',\n BETWEEN = 'BETWEEN',\n BOUND_AGGREGATE = 'BOUND_AGGREGATE',\n BOUND_CASE = 'BOUND_CASE',\n BOUND_CAST = 'BOUND_CAST',\n BOUND_COLUMN_REF = 'BOUND_COLUMN_REF',\n BOUND_COMPARISON = 'BOUND_COMPARISON',\n BOUND_CONJUNCTION = 'BOUND_CONJUNCTION',\n BOUND_CONSTANT = 'BOUND_CONSTANT',\n BOUND_DEFAULT = 'BOUND_DEFAULT',\n BOUND_FUNCTION = 'BOUND_FUNCTION',\n BOUND_OPERATOR = 'BOUND_OPERATOR',\n BOUND_PARAMETER = 'BOUND_PARAMETER',\n BOUND_REF = 'BOUND_REF',\n BOUND_SUBQUERY = 'BOUND_SUBQUERY',\n BOUND_WINDOW = 'BOUND_WINDOW',\n BOUND_BETWEEN = 'BOUND_BETWEEN',\n BOUND_UNNEST = 'BOUND_UNNEST',\n BOUND_LAMBDA = 'BOUND_LAMBDA',\n BOUND_LAMBDA_REF = 'BOUND_LAMBDA_REF',\n BOUND_EXPRESSION = 'BOUND_EXPRESSION',\n}\n\nexport interface BaseExpression {\n expression_class: ExpressionClass;\n type: ExpressionType;\n alias: string;\n}\n\nexport type Expression =\n | BoundBetweenExpression\n | BoundCaseExpression\n | BoundCastExpression\n | BoundColumnRefExpression\n | BoundComparisonExpression\n | BoundConjunctionExpression\n | BoundConstantExpression\n | BoundDefaultExpression\n | BoundLambdaExpression\n | BoundLambdaRefExpression\n | BoundOperatorExpression\n | BoundParameterExpression\n | BoundReferenceExpression\n | BoundUnnestExpression\n | BoundFunctionExpression\n | BoundAggregateExpression\n | BoundWindowExpression;\n\nexport interface BoundBetweenExpression extends BaseExpression {\n input: Expression;\n lower: Expression;\n upper: Expression;\n lower_inclusive: boolean;\n upper_inclusive: boolean;\n}\n\nexport interface BoundCaseExpression extends BaseExpression {\n return_type: LogicalType;\n case_checks: BoundCaseCheck[];\n else_expr: Expression;\n}\n\nexport interface BoundCastExpression extends BaseExpression {\n child: Expression;\n return_type: LogicalType;\n try_cast: boolean;\n}\n\nexport interface BoundColumnRefExpression extends BaseExpression {\n return_type: LogicalType;\n binding: ColumnBinding;\n depth: number;\n}\n\nexport interface BoundComparisonExpression extends BaseExpression {\n left: Expression;\n right: Expression;\n}\n\nexport interface BoundConjunctionExpression extends BaseExpression {\n children: Expression[];\n}\n\nexport interface BoundConstantExpression extends BaseExpression {\n value: Value;\n}\n\nexport interface BoundDefaultExpression extends BaseExpression {\n return_type: LogicalType;\n}\n\nexport interface BoundLambdaExpression extends BaseExpression {\n return_type: LogicalType;\n lambda_expr: Expression;\n captures: Expression[];\n parameter_count: number;\n}\n\nexport interface BoundLambdaRefExpression extends BaseExpression {\n return_type: LogicalType;\n binding: ColumnBinding;\n lambda_index: number;\n depth: number;\n}\n\nexport interface BoundOperatorExpression extends BaseExpression {\n return_type: LogicalType;\n children: Expression[];\n}\n\nexport interface BoundParameterExpression extends BaseExpression {\n identifier: string;\n return_type: LogicalType;\n parameter_data: BoundParameterData;\n}\n\nexport interface BoundReferenceExpression extends BaseExpression {\n return_type: LogicalType;\n index: number;\n}\n\nexport interface BoundUnnestExpression extends BaseExpression {\n return_type: LogicalType;\n child: Expression;\n}\n\nexport type BoundFunctionExpression = BaseExpression;\n\nexport type BoundAggregateExpression = BaseExpression;\n\nexport type BoundWindowExpression = BaseExpression;\n"],"names":["ExpressionType","ExpressionClass"],"mappings":";;;;;;;;;;;;;;;;UAQYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAAA,mBAAAA;;UAwEAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAAA,oBAAAA"}