@uwdata/mosaic-sql 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/LICENSE +47 -0
  2. package/README.md +0 -2
  3. package/dist/src/ast/aggregate.d.ts +82 -0
  4. package/dist/src/ast/aggregate.d.ts.map +1 -0
  5. package/dist/src/ast/aggregate.js +180 -0
  6. package/dist/src/ast/aggregate.js.map +1 -0
  7. package/dist/src/ast/between-op.d.ts +46 -0
  8. package/dist/src/ast/between-op.d.ts.map +1 -0
  9. package/dist/src/ast/between-op.js +60 -0
  10. package/dist/src/ast/between-op.js.map +1 -0
  11. package/dist/src/ast/binary-op.d.ts +21 -0
  12. package/dist/src/ast/binary-op.d.ts.map +1 -0
  13. package/dist/src/ast/binary-op.js +29 -0
  14. package/dist/src/ast/binary-op.js.map +1 -0
  15. package/dist/src/ast/case.d.ts +53 -0
  16. package/dist/src/ast/case.d.ts.map +1 -0
  17. package/dist/src/ast/case.js +75 -0
  18. package/dist/src/ast/case.js.map +1 -0
  19. package/dist/src/ast/cast.d.ts +18 -0
  20. package/dist/src/ast/cast.d.ts.map +1 -0
  21. package/dist/src/ast/cast.js +26 -0
  22. package/dist/src/ast/cast.js.map +1 -0
  23. package/dist/src/ast/collate.d.ts +18 -0
  24. package/dist/src/ast/collate.d.ts.map +1 -0
  25. package/dist/src/ast/collate.js +25 -0
  26. package/dist/src/ast/collate.js.map +1 -0
  27. package/dist/src/ast/column-param.d.ts +23 -0
  28. package/dist/src/ast/column-param.d.ts.map +1 -0
  29. package/dist/src/ast/column-param.js +29 -0
  30. package/dist/src/ast/column-param.js.map +1 -0
  31. package/dist/src/ast/column-ref.d.ts +40 -0
  32. package/dist/src/ast/column-ref.d.ts.map +1 -0
  33. package/dist/src/ast/column-ref.js +58 -0
  34. package/dist/src/ast/column-ref.js.map +1 -0
  35. package/dist/src/ast/fragment.d.ts +20 -0
  36. package/dist/src/ast/fragment.d.ts.map +1 -0
  37. package/dist/src/ast/fragment.js +26 -0
  38. package/dist/src/ast/fragment.js.map +1 -0
  39. package/dist/src/ast/from.d.ts +22 -0
  40. package/dist/src/ast/from.d.ts.map +1 -0
  41. package/dist/src/ast/from.js +37 -0
  42. package/dist/src/ast/from.js.map +1 -0
  43. package/dist/src/ast/function.d.ts +18 -0
  44. package/dist/src/ast/function.d.ts.map +1 -0
  45. package/dist/src/ast/function.js +26 -0
  46. package/dist/src/ast/function.js.map +1 -0
  47. package/dist/src/ast/in-op.d.ts +18 -0
  48. package/dist/src/ast/in-op.d.ts.map +1 -0
  49. package/dist/src/ast/in-op.js +25 -0
  50. package/dist/src/ast/in-op.js.map +1 -0
  51. package/dist/src/ast/interval.d.ts +18 -0
  52. package/dist/src/ast/interval.d.ts.map +1 -0
  53. package/dist/src/ast/interval.js +25 -0
  54. package/dist/src/ast/interval.js.map +1 -0
  55. package/dist/src/ast/list.d.ts +15 -0
  56. package/dist/src/ast/list.d.ts.map +1 -0
  57. package/dist/src/ast/list.js +21 -0
  58. package/dist/src/ast/list.js.map +1 -0
  59. package/dist/src/ast/literal.d.ts +16 -0
  60. package/dist/src/ast/literal.d.ts.map +1 -0
  61. package/dist/src/ast/literal.js +53 -0
  62. package/dist/src/ast/literal.js.map +1 -0
  63. package/dist/src/ast/logical-op.d.ts +32 -0
  64. package/dist/src/ast/logical-op.d.ts.map +1 -0
  65. package/dist/src/ast/logical-op.js +46 -0
  66. package/dist/src/ast/logical-op.js.map +1 -0
  67. package/dist/src/ast/node.d.ts +25 -0
  68. package/dist/src/ast/node.d.ts.map +1 -0
  69. package/dist/src/ast/node.js +36 -0
  70. package/dist/src/ast/node.js.map +1 -0
  71. package/dist/src/ast/order-by.d.ts +21 -0
  72. package/dist/src/ast/order-by.d.ts.map +1 -0
  73. package/dist/src/ast/order-by.js +36 -0
  74. package/dist/src/ast/order-by.js.map +1 -0
  75. package/dist/src/ast/param.d.ts +20 -0
  76. package/dist/src/ast/param.d.ts.map +1 -0
  77. package/dist/src/ast/param.js +28 -0
  78. package/dist/src/ast/param.js.map +1 -0
  79. package/dist/src/ast/query.d.ts +334 -0
  80. package/dist/src/ast/query.d.ts.map +1 -0
  81. package/dist/src/ast/query.js +640 -0
  82. package/dist/src/ast/query.js.map +1 -0
  83. package/dist/src/ast/sample.d.ts +27 -0
  84. package/dist/src/ast/sample.d.ts.map +1 -0
  85. package/dist/src/ast/sample.js +38 -0
  86. package/dist/src/ast/sample.js.map +1 -0
  87. package/dist/src/ast/select.d.ts +19 -0
  88. package/dist/src/ast/select.d.ts.map +1 -0
  89. package/dist/src/ast/select.js +35 -0
  90. package/dist/src/ast/select.js.map +1 -0
  91. package/dist/src/ast/subquery.d.ts +16 -0
  92. package/dist/src/ast/subquery.d.ts.map +1 -0
  93. package/dist/src/ast/subquery.js +21 -0
  94. package/dist/src/ast/subquery.js.map +1 -0
  95. package/dist/src/ast/table-ref.d.ts +24 -0
  96. package/dist/src/ast/table-ref.d.ts.map +1 -0
  97. package/dist/src/ast/table-ref.js +35 -0
  98. package/dist/src/ast/table-ref.js.map +1 -0
  99. package/dist/src/ast/unary-op.d.ts +40 -0
  100. package/dist/src/ast/unary-op.d.ts.map +1 -0
  101. package/dist/src/ast/unary-op.js +52 -0
  102. package/dist/src/ast/unary-op.js.map +1 -0
  103. package/dist/src/ast/unnest.d.ts +19 -0
  104. package/dist/src/ast/unnest.d.ts.map +1 -0
  105. package/dist/src/ast/unnest.js +29 -0
  106. package/dist/src/ast/unnest.js.map +1 -0
  107. package/dist/src/ast/verbatim.d.ts +18 -0
  108. package/dist/src/ast/verbatim.d.ts.map +1 -0
  109. package/dist/src/ast/verbatim.js +25 -0
  110. package/dist/src/ast/verbatim.js.map +1 -0
  111. package/dist/src/ast/window-frame.d.ts +54 -0
  112. package/dist/src/ast/window-frame.d.ts.map +1 -0
  113. package/dist/src/ast/window-frame.js +79 -0
  114. package/dist/src/ast/window-frame.js.map +1 -0
  115. package/dist/src/ast/window.d.ts +128 -0
  116. package/dist/src/ast/window.d.ts.map +1 -0
  117. package/dist/src/ast/window.js +194 -0
  118. package/dist/src/ast/window.js.map +1 -0
  119. package/dist/src/ast/with.d.ts +25 -0
  120. package/dist/src/ast/with.d.ts.map +1 -0
  121. package/dist/src/ast/with.js +36 -0
  122. package/dist/src/ast/with.js.map +1 -0
  123. package/dist/src/constants.d.ts +40 -0
  124. package/dist/src/constants.d.ts.map +1 -0
  125. package/dist/src/constants.js +40 -0
  126. package/dist/src/constants.js.map +1 -0
  127. package/dist/src/functions/aggregate.d.ts +236 -0
  128. package/dist/src/functions/aggregate.d.ts.map +1 -0
  129. package/dist/src/functions/aggregate.js +308 -0
  130. package/dist/src/functions/aggregate.js.map +1 -0
  131. package/dist/src/functions/case.d.ts +13 -0
  132. package/dist/src/functions/case.d.ts.map +1 -0
  133. package/dist/src/functions/case.js +17 -0
  134. package/dist/src/functions/case.js.map +1 -0
  135. package/dist/src/functions/cast.d.ts +23 -0
  136. package/dist/src/functions/cast.d.ts.map +1 -0
  137. package/dist/src/functions/cast.js +32 -0
  138. package/dist/src/functions/cast.js.map +1 -0
  139. package/dist/src/functions/collate.d.ts +10 -0
  140. package/dist/src/functions/collate.d.ts.map +1 -0
  141. package/dist/src/functions/collate.js +12 -0
  142. package/dist/src/functions/collate.js.map +1 -0
  143. package/dist/src/functions/column.d.ts +10 -0
  144. package/dist/src/functions/column.d.ts.map +1 -0
  145. package/dist/src/functions/column.js +17 -0
  146. package/dist/src/functions/column.js.map +1 -0
  147. package/dist/src/functions/cte.d.ts +13 -0
  148. package/dist/src/functions/cte.d.ts.map +1 -0
  149. package/dist/src/functions/cte.js +14 -0
  150. package/dist/src/functions/cte.js.map +1 -0
  151. package/dist/src/functions/datetime.d.ts +32 -0
  152. package/dist/src/functions/datetime.d.ts.map +1 -0
  153. package/dist/src/functions/datetime.js +45 -0
  154. package/dist/src/functions/datetime.js.map +1 -0
  155. package/dist/src/functions/interval.d.ts +48 -0
  156. package/dist/src/functions/interval.d.ts.map +1 -0
  157. package/dist/src/functions/interval.js +66 -0
  158. package/dist/src/functions/interval.js.map +1 -0
  159. package/dist/src/functions/list.d.ts +31 -0
  160. package/dist/src/functions/list.d.ts.map +1 -0
  161. package/dist/src/functions/list.js +49 -0
  162. package/dist/src/functions/list.js.map +1 -0
  163. package/dist/src/functions/literal.d.ts +16 -0
  164. package/dist/src/functions/literal.d.ts.map +1 -0
  165. package/dist/src/functions/literal.js +20 -0
  166. package/dist/src/functions/literal.js.map +1 -0
  167. package/dist/src/functions/numeric.d.ts +80 -0
  168. package/dist/src/functions/numeric.d.ts.map +1 -0
  169. package/dist/src/functions/numeric.js +110 -0
  170. package/dist/src/functions/numeric.js.map +1 -0
  171. package/dist/src/functions/operators.d.ts +169 -0
  172. package/dist/src/functions/operators.d.ts.map +1 -0
  173. package/dist/src/functions/operators.js +235 -0
  174. package/dist/src/functions/operators.js.map +1 -0
  175. package/dist/src/functions/order-by.d.ts +15 -0
  176. package/dist/src/functions/order-by.d.ts.map +1 -0
  177. package/dist/src/functions/order-by.js +19 -0
  178. package/dist/src/functions/order-by.js.map +1 -0
  179. package/dist/src/functions/spatial.d.ts +32 -0
  180. package/dist/src/functions/spatial.d.ts.map +1 -0
  181. package/dist/src/functions/spatial.js +44 -0
  182. package/dist/src/functions/spatial.js.map +1 -0
  183. package/dist/src/functions/sql-template-tag.d.ts +13 -0
  184. package/dist/src/functions/sql-template-tag.d.ts.map +1 -0
  185. package/dist/src/functions/sql-template-tag.js +44 -0
  186. package/dist/src/functions/sql-template-tag.js.map +1 -0
  187. package/dist/src/functions/string.d.ts +49 -0
  188. package/dist/src/functions/string.d.ts.map +1 -0
  189. package/dist/src/functions/string.js +67 -0
  190. package/dist/src/functions/string.js.map +1 -0
  191. package/dist/src/functions/table-ref.d.ts +10 -0
  192. package/dist/src/functions/table-ref.d.ts.map +1 -0
  193. package/dist/src/functions/table-ref.js +13 -0
  194. package/dist/src/functions/table-ref.js.map +1 -0
  195. package/dist/src/functions/unnest.d.ts +10 -0
  196. package/dist/src/functions/unnest.d.ts.map +1 -0
  197. package/dist/src/functions/unnest.js +12 -0
  198. package/dist/src/functions/unnest.js.map +1 -0
  199. package/dist/src/functions/util.d.ts +7 -0
  200. package/dist/src/functions/util.d.ts.map +1 -0
  201. package/dist/src/functions/util.js +9 -0
  202. package/dist/src/functions/util.js.map +1 -0
  203. package/dist/src/functions/window-frame.d.ts +41 -0
  204. package/dist/src/functions/window-frame.d.ts.map +1 -0
  205. package/dist/src/functions/window-frame.js +52 -0
  206. package/dist/src/functions/window-frame.js.map +1 -0
  207. package/dist/src/functions/window.d.ts +74 -0
  208. package/dist/src/functions/window.d.ts.map +1 -0
  209. package/dist/src/functions/window.js +96 -0
  210. package/dist/src/functions/window.js.map +1 -0
  211. package/dist/src/index.d.ts +73 -0
  212. package/dist/src/index.d.ts.map +1 -0
  213. package/{src → dist/src}/index.js +8 -8
  214. package/dist/src/index.js.map +1 -0
  215. package/dist/src/load/create.d.ts +10 -0
  216. package/dist/src/load/create.d.ts.map +1 -0
  217. package/dist/src/load/create.js +14 -0
  218. package/dist/src/load/create.js.map +1 -0
  219. package/dist/src/load/extension.d.ts +2 -0
  220. package/dist/src/load/extension.d.ts.map +1 -0
  221. package/dist/src/load/extension.js +4 -0
  222. package/dist/src/load/extension.js.map +1 -0
  223. package/dist/src/load/load.d.ts +18 -0
  224. package/dist/src/load/load.d.ts.map +1 -0
  225. package/dist/src/load/load.js +80 -0
  226. package/dist/src/load/load.js.map +1 -0
  227. package/dist/src/load/sql-from.d.ts +14 -0
  228. package/dist/src/load/sql-from.d.ts.map +1 -0
  229. package/dist/src/load/sql-from.js +29 -0
  230. package/dist/src/load/sql-from.js.map +1 -0
  231. package/dist/src/transforms/bin-1d.d.ts +16 -0
  232. package/dist/src/transforms/bin-1d.d.ts.map +1 -0
  233. package/dist/src/transforms/bin-1d.js +21 -0
  234. package/dist/src/transforms/bin-1d.js.map +1 -0
  235. package/dist/src/transforms/bin-2d.d.ts +19 -0
  236. package/dist/src/transforms/bin-2d.d.ts.map +1 -0
  237. package/dist/src/transforms/bin-2d.js +27 -0
  238. package/dist/src/transforms/bin-2d.js.map +1 -0
  239. package/dist/src/transforms/bin-date.d.ts +31 -0
  240. package/dist/src/transforms/bin-date.d.ts.map +1 -0
  241. package/dist/src/transforms/bin-date.js +20 -0
  242. package/dist/src/transforms/bin-date.js.map +1 -0
  243. package/dist/src/transforms/bin-histogram.d.ts +37 -0
  244. package/dist/src/transforms/bin-histogram.d.ts.map +1 -0
  245. package/dist/src/transforms/bin-histogram.js +32 -0
  246. package/dist/src/transforms/bin-histogram.js.map +1 -0
  247. package/dist/src/transforms/bin-linear-1d.d.ts +11 -0
  248. package/dist/src/transforms/bin-linear-1d.d.ts.map +1 -0
  249. package/dist/src/transforms/bin-linear-1d.js +25 -0
  250. package/dist/src/transforms/bin-linear-1d.js.map +1 -0
  251. package/dist/src/transforms/bin-linear-2d.d.ts +20 -0
  252. package/dist/src/transforms/bin-linear-2d.d.ts.map +1 -0
  253. package/dist/src/transforms/bin-linear-2d.js +49 -0
  254. package/dist/src/transforms/bin-linear-2d.js.map +1 -0
  255. package/dist/src/transforms/filter-query.d.ts +12 -0
  256. package/dist/src/transforms/filter-query.d.ts.map +1 -0
  257. package/dist/src/transforms/filter-query.js +39 -0
  258. package/dist/src/transforms/filter-query.js.map +1 -0
  259. package/dist/src/transforms/line-density.d.ts +24 -0
  260. package/dist/src/transforms/line-density.d.ts.map +1 -0
  261. package/dist/src/transforms/line-density.js +98 -0
  262. package/dist/src/transforms/line-density.js.map +1 -0
  263. package/dist/src/transforms/m4.d.ts +19 -0
  264. package/dist/src/transforms/m4.d.ts.map +1 -0
  265. package/dist/src/transforms/m4.js +38 -0
  266. package/dist/src/transforms/m4.js.map +1 -0
  267. package/dist/src/transforms/scales.d.ts +30 -0
  268. package/dist/src/transforms/scales.d.ts.map +1 -0
  269. package/dist/src/transforms/scales.js +103 -0
  270. package/dist/src/transforms/scales.js.map +1 -0
  271. package/dist/src/transforms/util/bin-step.d.ts +50 -0
  272. package/dist/src/transforms/util/bin-step.d.ts.map +1 -0
  273. package/dist/src/transforms/util/bin-step.js +53 -0
  274. package/dist/src/transforms/util/bin-step.js.map +1 -0
  275. package/dist/src/transforms/util/time-interval.d.ts +14 -0
  276. package/dist/src/transforms/util/time-interval.d.ts.map +1 -0
  277. package/dist/src/transforms/util/time-interval.js +88 -0
  278. package/dist/src/transforms/util/time-interval.js.map +1 -0
  279. package/dist/src/types.d.ts +49 -0
  280. package/dist/src/types.d.ts.map +1 -0
  281. package/dist/src/types.js +2 -0
  282. package/dist/src/types.js.map +1 -0
  283. package/dist/src/util/ast.d.ts +62 -0
  284. package/dist/src/util/ast.d.ts.map +1 -0
  285. package/{src → dist/src}/util/ast.js +36 -41
  286. package/dist/src/util/ast.js.map +1 -0
  287. package/dist/src/util/function.d.ts +56 -0
  288. package/dist/src/util/function.d.ts.map +1 -0
  289. package/dist/src/util/function.js +73 -0
  290. package/dist/src/util/function.js.map +1 -0
  291. package/dist/src/util/identity.d.ts +6 -0
  292. package/dist/src/util/identity.d.ts.map +1 -0
  293. package/dist/src/util/identity.js +8 -0
  294. package/dist/src/util/identity.js.map +1 -0
  295. package/dist/src/util/string.d.ts +4 -0
  296. package/dist/src/util/string.d.ts.map +1 -0
  297. package/dist/src/util/string.js +14 -0
  298. package/dist/src/util/string.js.map +1 -0
  299. package/dist/src/util/type-check.d.ts +17 -0
  300. package/dist/src/util/type-check.d.ts.map +1 -0
  301. package/dist/src/util/type-check.js +28 -0
  302. package/dist/src/util/type-check.js.map +1 -0
  303. package/dist/src/visit/clone.d.ts +7 -0
  304. package/dist/src/visit/clone.d.ts.map +1 -0
  305. package/dist/src/visit/clone.js +52 -0
  306. package/dist/src/visit/clone.js.map +1 -0
  307. package/dist/src/visit/recurse.d.ts +2 -0
  308. package/dist/src/visit/recurse.d.ts.map +1 -0
  309. package/dist/src/visit/recurse.js +37 -0
  310. package/dist/src/visit/recurse.js.map +1 -0
  311. package/dist/src/visit/rewrite.d.ts +9 -0
  312. package/dist/src/visit/rewrite.d.ts.map +1 -0
  313. package/dist/src/visit/rewrite.js +39 -0
  314. package/dist/src/visit/rewrite.js.map +1 -0
  315. package/dist/src/visit/visitors.d.ts +32 -0
  316. package/dist/src/visit/visitors.d.ts.map +1 -0
  317. package/dist/src/visit/visitors.js +95 -0
  318. package/dist/src/visit/visitors.js.map +1 -0
  319. package/dist/src/visit/walk.d.ts +21 -0
  320. package/dist/src/visit/walk.d.ts.map +1 -0
  321. package/dist/src/visit/walk.js +32 -0
  322. package/dist/src/visit/walk.js.map +1 -0
  323. package/package.json +13 -7
  324. package/src/ast/{aggregate.js → aggregate.ts} +49 -60
  325. package/src/ast/{between-op.js → between-op.ts} +19 -26
  326. package/src/ast/binary-op.ts +31 -0
  327. package/src/ast/{case.js → case.ts} +29 -44
  328. package/src/ast/{cast.js → cast.ts} +8 -14
  329. package/src/ast/{collate.js → collate.ts} +8 -14
  330. package/src/ast/column-param.ts +34 -0
  331. package/src/ast/{column-ref.js → column-ref.ts} +16 -25
  332. package/src/ast/fragment.ts +28 -0
  333. package/src/ast/{from.js → from.ts} +12 -21
  334. package/src/ast/{function.js → function.ts} +8 -14
  335. package/src/ast/{in-op.js → in-op.ts} +8 -14
  336. package/src/ast/{interval.js → interval.ts} +8 -14
  337. package/src/ast/list.ts +23 -0
  338. package/src/ast/{literal.js → literal.ts} +6 -9
  339. package/src/ast/logical-op.ts +50 -0
  340. package/src/ast/{node.js → node.ts} +10 -13
  341. package/src/ast/order-by.ts +38 -0
  342. package/src/ast/{param.js → param.ts} +6 -12
  343. package/src/ast/{query.js → query.ts} +224 -204
  344. package/src/ast/sample.ts +47 -0
  345. package/src/ast/{select.js → select.ts} +10 -16
  346. package/src/ast/{subquery.js → subquery.ts} +9 -8
  347. package/src/ast/{table-ref.js → table-ref.ts} +7 -12
  348. package/src/ast/{unary-op.js → unary-op.ts} +16 -23
  349. package/src/ast/unnest.ts +31 -0
  350. package/src/ast/verbatim.ts +27 -0
  351. package/src/ast/{window-frame.js → window-frame.ts} +37 -47
  352. package/src/ast/window.ts +246 -0
  353. package/src/ast/{with.js → with.ts} +19 -20
  354. package/src/{constants.js → constants.ts} +2 -0
  355. package/src/functions/aggregate.ts +344 -0
  356. package/src/functions/{case.js → case.ts} +5 -8
  357. package/src/functions/{cast.js → cast.ts} +9 -13
  358. package/src/functions/{collate.js → collate.ts} +4 -7
  359. package/src/functions/{column.js → column.ts} +9 -10
  360. package/src/functions/{cte.js → cte.ts} +9 -6
  361. package/src/functions/{datetime.js → datetime.ts} +12 -20
  362. package/src/functions/interval.ts +74 -0
  363. package/src/functions/list.ts +63 -0
  364. package/src/functions/{literal.js → literal.ts} +5 -7
  365. package/src/functions/numeric.ts +125 -0
  366. package/src/functions/operators.ts +272 -0
  367. package/src/functions/order-by.ts +21 -0
  368. package/src/functions/spatial.ts +50 -0
  369. package/src/functions/{sql-template-tag.js → sql-template-tag.ts} +16 -13
  370. package/src/functions/string.ts +79 -0
  371. package/src/functions/{table-ref.js → table-ref.ts} +4 -4
  372. package/src/functions/unnest.ts +13 -0
  373. package/src/functions/util.ts +10 -0
  374. package/src/functions/window-frame.ts +58 -0
  375. package/src/functions/{window.js → window.ts} +18 -35
  376. package/src/index.ts +79 -0
  377. package/src/load/{create.js → create.ts} +9 -3
  378. package/src/load/extension.ts +3 -0
  379. package/src/load/{load.js → load.ts} +25 -10
  380. package/src/load/{sql-from.js → sql-from.ts} +14 -7
  381. package/src/transforms/{bin-1d.js → bin-1d.ts} +13 -9
  382. package/src/transforms/{bin-2d.js → bin-2d.ts} +17 -13
  383. package/src/transforms/bin-date.ts +48 -0
  384. package/src/transforms/bin-histogram.ts +61 -0
  385. package/src/transforms/{bin-linear-1d.js → bin-linear-1d.ts} +16 -11
  386. package/src/transforms/{bin-linear-2d.js → bin-linear-2d.ts} +23 -35
  387. package/src/transforms/{filter-query.js → filter-query.ts} +10 -14
  388. package/src/transforms/{line-density.js → line-density.ts} +19 -17
  389. package/src/transforms/{m4.js → m4.ts} +17 -14
  390. package/src/transforms/{scales.js → scales.ts} +57 -14
  391. package/src/transforms/util/bin-step.ts +100 -0
  392. package/src/transforms/util/{time-interval.js → time-interval.ts} +32 -21
  393. package/src/types.ts +5 -39
  394. package/src/util/ast.ts +104 -0
  395. package/src/util/{function.js → function.ts} +40 -31
  396. package/src/util/identity.ts +7 -0
  397. package/src/util/{string.js → string.ts} +4 -4
  398. package/src/util/type-check.ts +31 -0
  399. package/src/visit/{clone.js → clone.ts} +10 -10
  400. package/src/visit/{recurse.js → recurse.ts} +3 -1
  401. package/src/visit/{rewrite.js → rewrite.ts} +7 -7
  402. package/src/visit/{visitors.js → visitors.ts} +22 -30
  403. package/src/visit/walk.ts +46 -0
  404. package/src/ast/binary-op.js +0 -40
  405. package/src/ast/column-param.js +0 -40
  406. package/src/ast/fragment.js +0 -26
  407. package/src/ast/logical-op.js +0 -67
  408. package/src/ast/order-by.js +0 -48
  409. package/src/ast/sample.js +0 -53
  410. package/src/ast/verbatim.js +0 -33
  411. package/src/ast/window.js +0 -260
  412. package/src/functions/aggregate.js +0 -347
  413. package/src/functions/interval.js +0 -83
  414. package/src/functions/numeric.js +0 -143
  415. package/src/functions/operators.js +0 -301
  416. package/src/functions/order-by.js +0 -27
  417. package/src/functions/spatial.js +0 -59
  418. package/src/functions/string.js +0 -85
  419. package/src/functions/util.js +0 -14
  420. package/src/functions/window-frame.js +0 -61
  421. package/src/index-types.ts +0 -2
  422. package/src/load/extension.js +0 -3
  423. package/src/transforms/bin-date.js +0 -38
  424. package/src/transforms/bin-histogram.js +0 -52
  425. package/src/transforms/util/bin-step.js +0 -79
  426. package/src/util/type-check.js +0 -33
  427. package/src/visit/walk.js +0 -34
  428. package/tsconfig.json +0 -8
  429. package/vitest.config.ts +0 -3
@@ -1,347 +0,0 @@
1
- /**
2
- * @import { AggregateNode } from '../ast/aggregate.js'
3
- * @import { ExprValue } from '../types.js'
4
- */
5
- import { aggFn } from '../util/function.js';
6
-
7
- /**
8
- * Compute an arg_max aggregate.
9
- * @param {ExprValue} y The argument to return.
10
- * @param {ExprValue} x The expression to maximize.
11
- * @returns {AggregateNode} A SQL aggregate function call.
12
- */
13
- export function argmax(y, x) {
14
- return aggFn('arg_max', y, x);
15
- }
16
-
17
- /**
18
- * Compute an arg_min aggregate.
19
- * @param {ExprValue} y The argument to return.
20
- * @param {ExprValue} x The expression to minimize.
21
- * @returns {AggregateNode} A SQL aggregate function call.
22
- */
23
- export function argmin(y, x) {
24
- return aggFn('arg_min', y, x);
25
- }
26
-
27
- /**
28
- * Compute an array aggregation.
29
- * @param {ExprValue} expr The expression to aggregate.
30
- * @returns {AggregateNode} A SQL aggregate function call.
31
- */
32
- export function arrayAgg(expr) {
33
- return aggFn('array_agg', expr);
34
- }
35
-
36
- /**
37
- * Compute an average aggregate.
38
- * @param {ExprValue} expr The expression to aggregate.
39
- * @returns {AggregateNode} A SQL aggregate function call.
40
- */
41
- export function avg(expr) {
42
- return aggFn('avg', expr);
43
- }
44
-
45
- /**
46
- * Compute a correlation aggregate.
47
- * @param {ExprValue} x The x expression to aggregate.
48
- * @param {ExprValue} y The y expression to aggregate.
49
- * @returns {AggregateNode} A SQL aggregate function call.
50
- */
51
- export function corr(x, y) {
52
- return aggFn('corr', x, y);
53
- }
54
-
55
- /**
56
- * Compute a count aggregate.
57
- * @param {ExprValue} [expr] An optional expression
58
- * to count. If specified, only non-null expression values are counted.
59
- * If omitted, all rows within a group are counted.
60
- * @returns {AggregateNode} A SQL aggregate function call.
61
- */
62
- export function count(expr) {
63
- return aggFn('count', expr);
64
- }
65
-
66
- /**
67
- * Compute a sample covariance aggregate.
68
- * @param {ExprValue} x The x expression to aggregate.
69
- * @param {ExprValue} y The y expression to aggregate.
70
- * @returns {AggregateNode} A SQL aggregate function call.
71
- */
72
- export function covariance(x, y) {
73
- return aggFn('covar_samp', x, y);
74
- }
75
-
76
- /**
77
- * Compute a population covariance aggregate.
78
- * @param {ExprValue} x The x expression to aggregate.
79
- * @param {ExprValue} y The y expression to aggregate.
80
- * @returns {AggregateNode} A SQL aggregate function call.
81
- */
82
- export function covarPop(x, y) {
83
- return aggFn('covar_pop', x, y);
84
- }
85
-
86
- /**
87
- * Compute an entropy aggregate.
88
- * @param {ExprValue} expr The expression to aggregate.
89
- * @returns {AggregateNode} A SQL aggregate function call.
90
- */
91
- export function entropy(expr) {
92
- return aggFn('entropy', expr);
93
- }
94
-
95
- /**
96
- * Compute a first aggregate.
97
- * @param {ExprValue} expr The expression to aggregate.
98
- * @returns {AggregateNode} A SQL aggregate function call.
99
- */
100
- export function first(expr) {
101
- return aggFn('first', expr);
102
- }
103
-
104
- /**
105
- * Compute a geomean aggregate.
106
- * @param {ExprValue} expr The expression to aggregate.
107
- * @returns {AggregateNode} A SQL aggregate function call.
108
- */
109
- export function geomean(expr) {
110
- return aggFn('geomean', expr);
111
- }
112
-
113
- /**
114
- * Compute a sample kurtosis aggregate.
115
- * @param {ExprValue} expr The expression to aggregate.
116
- * @returns {AggregateNode} A SQL aggregate function call.
117
- */
118
- export function kurtosis(expr) {
119
- return aggFn('kurtosis', expr);
120
- }
121
-
122
- /**
123
- * Compute a median absolute deviation (MAD) aggregate.
124
- * @param {ExprValue} expr The expression to aggregate.
125
- * @returns {AggregateNode} A SQL aggregate function call.
126
- */
127
- export function mad(expr) {
128
- return aggFn('mad', expr);
129
- }
130
-
131
- /**
132
- * Compute a maximum aggregate.
133
- * @param {ExprValue} expr The expression to aggregate.
134
- * @returns {AggregateNode} A SQL aggregate function call.
135
- */
136
- export function max(expr) {
137
- return aggFn('max', expr);
138
- }
139
-
140
- /**
141
- * Compute a median aggregate.
142
- * @param {ExprValue} expr The expression to aggregate.
143
- * @returns {AggregateNode} A SQL aggregate function call.
144
- */
145
- export function median(expr) {
146
- return aggFn('median', expr);
147
- }
148
-
149
- /**
150
- * Compute a minimum aggregate.
151
- * @param {ExprValue} expr The expression to aggregate.
152
- * @returns {AggregateNode} A SQL aggregate function call.
153
- */
154
- export function min(expr) {
155
- return aggFn('min', expr);
156
- }
157
-
158
- /**
159
- * Compute a mode aggregate.
160
- * @param {ExprValue} expr The expression to aggregate.
161
- * @returns {AggregateNode} A SQL aggregate function call.
162
- */
163
- export function mode(expr) {
164
- return aggFn('mode', expr);
165
- }
166
-
167
- /**
168
- * Compute a last aggregate.
169
- * @param {ExprValue} expr The expression to aggregate.
170
- * @returns {AggregateNode} A SQL aggregate function call.
171
- */
172
- export function last(expr) {
173
- return aggFn('last', expr);
174
- }
175
-
176
- /**
177
- * Compute a product aggregate.
178
- * @param {ExprValue} expr The expression to aggregate.
179
- * @returns {AggregateNode} A SQL aggregate function call.
180
- */
181
- export function product(expr) {
182
- return aggFn('product', expr);
183
- }
184
-
185
- /**
186
- * Compute a quantile aggregate.
187
- * @param {ExprValue} expr The expression to aggregate.
188
- * @param {ExprValue} p The quantile value.
189
- * @returns {AggregateNode} A SQL aggregate function call.
190
- */
191
- export function quantile(expr, p) {
192
- return aggFn('quantile', expr, p);
193
- }
194
-
195
- /**
196
- * Compute a linear regression reg_avgX aggregate.
197
- * @param {ExprValue} x The x expression to aggregate.
198
- * @param {ExprValue} y The y expression to aggregate.
199
- * @returns {AggregateNode} A SQL aggregate function call.
200
- */
201
- export function regrAvgX(x, y) {
202
- return aggFn('regr_avgx', x, y);
203
- }
204
-
205
- /**
206
- * Compute a linear regression reg_avgY aggregate.
207
- * @param {ExprValue} x The x expression to aggregate.
208
- * @param {ExprValue} y The y expression to aggregate.
209
- * @returns {AggregateNode} A SQL aggregate function call.
210
- */
211
- export function regrAvgY(x, y) {
212
- return aggFn('regr_avgy', x, y);
213
- }
214
-
215
- /**
216
- * Compute a linear regression count aggregate.
217
- * This returns the count of rows where both x and y are non-null.
218
- * @param {ExprValue} x The x expression to aggregate.
219
- * @param {ExprValue} y The y expression to aggregate.
220
- * @returns {AggregateNode} A SQL aggregate function call.
221
- */
222
- export function regrCount(x, y) {
223
- return aggFn('regr_count', x, y);
224
- }
225
-
226
- /**
227
- * Compute a linear regression intercept aggregate.
228
- * @param {ExprValue} x The x expression to aggregate.
229
- * @param {ExprValue} y The y expression to aggregate.
230
- * @returns {AggregateNode} A SQL aggregate function call.
231
- */
232
- export function regrIntercept(x, y) {
233
- return aggFn('regr_intercept', x, y);
234
- }
235
-
236
- /**
237
- * Compute a linear regression R^2 aggregate.
238
- * @param {ExprValue} x The x expression to aggregate.
239
- * @param {ExprValue} y The y expression to aggregate.
240
- * @returns {AggregateNode} A SQL aggregate function call.
241
- */
242
- export function regrR2(x, y) {
243
- return aggFn('regr_r2', x, y);
244
- }
245
-
246
- /**
247
- * Compute a linear regression regr_sxx aggregate.
248
- * @param {ExprValue} x The x expression to aggregate.
249
- * @param {ExprValue} y The y expression to aggregate.
250
- * @returns {AggregateNode} A SQL aggregate function call.
251
- */
252
- export function regrSXX(x, y) {
253
- return aggFn('regr_sxx', x, y);
254
- }
255
-
256
- /**
257
- * Compute a linear regression regr_sxy aggregate.
258
- * @param {ExprValue} x The x expression to aggregate.
259
- * @param {ExprValue} y The y expression to aggregate.
260
- * @returns {AggregateNode} A SQL aggregate function call.
261
- */
262
- export function regrSXY(x, y) {
263
- return aggFn('regr_sxy', x, y);
264
- }
265
-
266
- /**
267
- * Compute a linear regression regr_syy aggregate.
268
- * @param {ExprValue} x The x expression to aggregate.
269
- * @param {ExprValue} y The y expression to aggregate.
270
- * @returns {AggregateNode} A SQL aggregate function call.
271
- */
272
- export function regrSYY(x, y) {
273
- return aggFn('regr_syy', x, y);
274
- }
275
-
276
- /**
277
- * Compute a linear regression slope aggregate.
278
- * @param {ExprValue} x The x expression to aggregate.
279
- * @param {ExprValue} y The y expression to aggregate.
280
- * @returns {AggregateNode} A SQL aggregate function call.
281
- */
282
- export function regrSlope(x, y) {
283
- return aggFn('regr_slope', x, y);
284
- }
285
-
286
- /**
287
- * Compute a skewness aggregate.
288
- * @param {ExprValue} expr The expression to aggregate.
289
- * @returns {AggregateNode} A SQL aggregate function call.
290
- */
291
- export function skewness(expr) {
292
- return aggFn('skewness', expr);
293
- }
294
-
295
- /**
296
- * Compute a sample standard deviation aggregate.
297
- * @param {ExprValue} expr The expression to aggregate.
298
- * @returns {AggregateNode} A SQL aggregate function call.
299
- */
300
- export function stddev(expr) {
301
- return aggFn('stddev', expr);
302
- }
303
-
304
- /**
305
- * Compute a population standard deviation aggregate.
306
- * @param {ExprValue} expr The expression to aggregate.
307
- * @returns {AggregateNode} A SQL aggregate function call.
308
- */
309
- export function stddevPop(expr) {
310
- return aggFn('stddev_pop', expr);
311
- }
312
-
313
- /**
314
- * Compute a string aggregation.
315
- * @param {ExprValue} expr The expression to aggregate.
316
- * @returns {AggregateNode} A SQL aggregate function call.
317
- */
318
- export function stringAgg(expr) {
319
- return aggFn('string_agg', expr);
320
- }
321
-
322
- /**
323
- * Compute a sum aggregate.
324
- * @param {ExprValue} expr The expression to aggregate.
325
- * @returns {AggregateNode} A SQL aggregate function call.
326
- */
327
- export function sum(expr) {
328
- return aggFn('sum', expr);
329
- }
330
-
331
- /**
332
- * Compute a sample variance aggregate.
333
- * @param {ExprValue} expr The expression to aggregate.
334
- * @returns {AggregateNode} A SQL aggregate function call.
335
- */
336
- export function variance(expr) {
337
- return aggFn('var_samp', expr);
338
- }
339
-
340
- /**
341
- * Compute a population variance aggregate.
342
- * @param {ExprValue} expr The expression to aggregate.
343
- * @returns {AggregateNode} A SQL aggregate function call.
344
- */
345
- export function varPop(expr) {
346
- return aggFn('var_pop', expr);
347
- }
@@ -1,83 +0,0 @@
1
- import { IntervalNode } from '../ast/interval.js';
2
-
3
- /**
4
- * Create a new interval.
5
- * @param {string} unit The interval unit, such as day or year.
6
- * @param {number} steps The number of interval unit steps.
7
- * @returns {IntervalNode}
8
- */
9
- export function interval(unit, steps) {
10
- return new IntervalNode(unit, steps);
11
- }
12
-
13
- /**
14
- * Create a new years interval.
15
- * @param {number} steps The number of years.
16
- * @returns {IntervalNode}
17
- */
18
- export function years(steps) {
19
- return interval('YEARS', steps);
20
- }
21
-
22
- /**
23
- * Create a new months interval.
24
- * @param {number} steps The number of months.
25
- * @returns {IntervalNode}
26
- */
27
- export function months(steps) {
28
- return interval('MONTHS', steps);
29
- }
30
-
31
- /**
32
- * Create a new days interval.
33
- * @param {number} steps The number of days.
34
- * @returns {IntervalNode}
35
- */
36
- export function days(steps) {
37
- return interval('DAYS', steps);
38
- }
39
-
40
- /**
41
- * Create a new hours interval.
42
- * @param {number} steps The number of hours.
43
- * @returns {IntervalNode}
44
- */
45
- export function hours(steps) {
46
- return interval('HOURS', steps);
47
- }
48
-
49
- /**
50
- * Create a new minutes interval.
51
- * @param {number} steps The number of minutes.
52
- * @returns {IntervalNode}
53
- */
54
- export function minutes(steps) {
55
- return interval('MINUTES', steps);
56
- }
57
-
58
- /**
59
- * Create a new seconds interval.
60
- * @param {number} steps The number of seconds.
61
- * @returns {IntervalNode}
62
- */
63
- export function seconds(steps) {
64
- return interval('SECONDS', steps);
65
- }
66
-
67
- /**
68
- * Create a new milliseconds interval.
69
- * @param {number} steps The number of milliseconds.
70
- * @returns {IntervalNode}
71
- */
72
- export function milliseconds(steps) {
73
- return interval('MILLISECONDS', steps);
74
- }
75
-
76
- /**
77
- * Create a new microseconds interval.
78
- * @param {number} steps The number of microseconds.
79
- * @returns {IntervalNode}
80
- */
81
- export function microseconds(steps) {
82
- return interval('MICROSECONDS', steps);
83
- }
@@ -1,143 +0,0 @@
1
- /**
2
- * @import { FunctionNode } from '../ast/function.js'
3
- * @import { ExprValue } from '../types.js'
4
- */
5
- import { fn } from '../util/function.js';
6
-
7
- /**
8
- * Return true if the floating point value is not a number, false otherwise.
9
- * @param {ExprValue} expr The input number.
10
- * @returns {FunctionNode}
11
- */
12
- export function isNaN(expr) {
13
- return fn('isnan', expr);
14
- }
15
-
16
- /**
17
- * Return true if the floating point value is finite, false otherwise.
18
- * @param {ExprValue} expr The input number.
19
- * @returns {FunctionNode}
20
- */
21
- export function isFinite(expr) {
22
- return fn('isfinite', expr);
23
- }
24
-
25
- /**
26
- * Return true if the floating point value is infinite, false otherwise.
27
- * @param {ExprValue} expr The input number.
28
- * @returns {FunctionNode}
29
- */
30
- export function isInfinite(expr) {
31
- return fn('isinf', expr);
32
- }
33
-
34
- /**
35
- * Selects the largest value.
36
- * @param {...ExprValue} expr The input expressions.
37
- * @returns {FunctionNode}
38
- */
39
- export function greatest(...expr) {
40
- return fn('greatest', ...expr);
41
- }
42
-
43
- /**
44
- * Selects the smallest value.
45
- * @param {...ExprValue} expr The input expressions.
46
- * @returns {FunctionNode}
47
- */
48
- export function least(...expr) {
49
- return fn('least', ...expr);
50
- }
51
-
52
- /**
53
- * Compute the exponentional function `e ** expr`.
54
- * @param {ExprValue} expr The input number.
55
- * @returns {FunctionNode}
56
- */
57
- export function exp(expr) {
58
- return fn('exp', expr);
59
- }
60
-
61
- /**
62
- * Compute a base 10 logarithm.
63
- * @param {ExprValue} expr The input number.
64
- * @returns {FunctionNode}
65
- */
66
- export function log(expr) {
67
- return fn('log', expr);
68
- }
69
-
70
- /**
71
- * Compute a natural logarithm.
72
- * @param {ExprValue} expr The input number.
73
- * @returns {FunctionNode}
74
- */
75
- export function ln(expr) {
76
- return fn('ln', expr);
77
- }
78
-
79
- /**
80
- * Compute the sign of a number.
81
- * @param {ExprValue} expr The input number.
82
- * @returns {FunctionNode}
83
- */
84
- export function sign(expr) {
85
- return fn('sign', expr);
86
- }
87
-
88
- /**
89
- * Compute the absolute value of a number.
90
- * @param {ExprValue} expr The input number.
91
- * @returns {FunctionNode}
92
- */
93
- export function abs(expr) {
94
- return fn('abs', expr);
95
- }
96
-
97
- /**
98
- * Compute the square root of a number.
99
- * @param {ExprValue} expr The input number.
100
- * @returns {FunctionNode}
101
- */
102
- export function sqrt(expr) {
103
- return fn('sqrt', expr);
104
- }
105
-
106
- /**
107
- * Rounds the number up.
108
- * @param {ExprValue} expr The input number.
109
- * @returns {FunctionNode}
110
- */
111
- export function ceil(expr) {
112
- return fn('ceil', expr);
113
- }
114
-
115
- /**
116
- * Rounds the number down.
117
- * @param {ExprValue} expr The input number.
118
- * @returns {FunctionNode}
119
- */
120
- export function floor(expr) {
121
- return fn('floor', expr);
122
- }
123
-
124
- /**
125
- * Round to the given decimal places.
126
- * @param {ExprValue} expr The input number.
127
- * @param {ExprValue} [places] The decimal places.
128
- * Negative values are allowed, to round to tens, hundreds, etc.
129
- * If unspecified, defaults to zero.
130
- * @returns {FunctionNode}
131
- */
132
- export function round(expr, places) {
133
- return fn('round', expr, places);
134
- }
135
-
136
- /**
137
- * Truncates the number.
138
- * @param {ExprValue} expr The input number.
139
- * @returns {FunctionNode}
140
- */
141
- export function trunc(expr) {
142
- return fn('trunc', expr);
143
- }