@tinqerjs/tinqer 0.0.21

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 (405) hide show
  1. package/dist/expressions/expression.d.ts +313 -0
  2. package/dist/expressions/expression.d.ts.map +1 -0
  3. package/dist/expressions/expression.js +56 -0
  4. package/dist/expressions/expression.js.map +1 -0
  5. package/dist/index.d.ts +34 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +34 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/linq/database-context.d.ts +18 -0
  10. package/dist/linq/database-context.d.ts.map +1 -0
  11. package/dist/linq/database-context.js +23 -0
  12. package/dist/linq/database-context.js.map +1 -0
  13. package/dist/linq/database-schema.d.ts +18 -0
  14. package/dist/linq/database-schema.d.ts.map +1 -0
  15. package/dist/linq/database-schema.js +23 -0
  16. package/dist/linq/database-schema.js.map +1 -0
  17. package/dist/linq/deletable.d.ts +30 -0
  18. package/dist/linq/deletable.d.ts.map +1 -0
  19. package/dist/linq/deletable.js +46 -0
  20. package/dist/linq/deletable.js.map +1 -0
  21. package/dist/linq/delete-from.d.ts +19 -0
  22. package/dist/linq/delete-from.d.ts.map +1 -0
  23. package/dist/linq/delete-from.js +11 -0
  24. package/dist/linq/delete-from.js.map +1 -0
  25. package/dist/linq/from.d.ts +19 -0
  26. package/dist/linq/from.d.ts.map +1 -0
  27. package/dist/linq/from.js +11 -0
  28. package/dist/linq/from.js.map +1 -0
  29. package/dist/linq/functions.d.ts +96 -0
  30. package/dist/linq/functions.d.ts.map +1 -0
  31. package/dist/linq/functions.js +136 -0
  32. package/dist/linq/functions.js.map +1 -0
  33. package/dist/linq/grouping.d.ts +26 -0
  34. package/dist/linq/grouping.d.ts.map +1 -0
  35. package/dist/linq/grouping.js +47 -0
  36. package/dist/linq/grouping.js.map +1 -0
  37. package/dist/linq/insert-into.d.ts +19 -0
  38. package/dist/linq/insert-into.d.ts.map +1 -0
  39. package/dist/linq/insert-into.js +11 -0
  40. package/dist/linq/insert-into.js.map +1 -0
  41. package/dist/linq/insertable.d.ts +30 -0
  42. package/dist/linq/insertable.d.ts.map +1 -0
  43. package/dist/linq/insertable.js +37 -0
  44. package/dist/linq/insertable.js.map +1 -0
  45. package/dist/linq/query-builder.d.ts +24 -0
  46. package/dist/linq/query-builder.d.ts.map +1 -0
  47. package/dist/linq/query-builder.js +21 -0
  48. package/dist/linq/query-builder.js.map +1 -0
  49. package/dist/linq/queryable.d.ts +61 -0
  50. package/dist/linq/queryable.d.ts.map +1 -0
  51. package/dist/linq/queryable.js +148 -0
  52. package/dist/linq/queryable.js.map +1 -0
  53. package/dist/linq/terminal-query.d.ts +10 -0
  54. package/dist/linq/terminal-query.d.ts.map +1 -0
  55. package/dist/linq/terminal-query.js +12 -0
  56. package/dist/linq/terminal-query.js.map +1 -0
  57. package/dist/linq/updatable.d.ts +57 -0
  58. package/dist/linq/updatable.d.ts.map +1 -0
  59. package/dist/linq/updatable.js +84 -0
  60. package/dist/linq/updatable.js.map +1 -0
  61. package/dist/linq/update.d.ts +19 -0
  62. package/dist/linq/update.d.ts.map +1 -0
  63. package/dist/linq/update.js +11 -0
  64. package/dist/linq/update.js.map +1 -0
  65. package/dist/parser/ast-types.d.ts +114 -0
  66. package/dist/parser/ast-types.d.ts.map +1 -0
  67. package/dist/parser/ast-types.js +6 -0
  68. package/dist/parser/ast-types.js.map +1 -0
  69. package/dist/parser/ast-visitor.d.ts +32 -0
  70. package/dist/parser/ast-visitor.d.ts.map +1 -0
  71. package/dist/parser/ast-visitor.js +666 -0
  72. package/dist/parser/ast-visitor.js.map +1 -0
  73. package/dist/parser/normalize-joins.d.ts +3 -0
  74. package/dist/parser/normalize-joins.d.ts.map +1 -0
  75. package/dist/parser/normalize-joins.js +109 -0
  76. package/dist/parser/normalize-joins.js.map +1 -0
  77. package/dist/parser/normalize-window-filters.d.ts +13 -0
  78. package/dist/parser/normalize-window-filters.d.ts.map +1 -0
  79. package/dist/parser/normalize-window-filters.js +212 -0
  80. package/dist/parser/normalize-window-filters.js.map +1 -0
  81. package/dist/parser/oxc-parser.d.ts +11 -0
  82. package/dist/parser/oxc-parser.d.ts.map +1 -0
  83. package/dist/parser/oxc-parser.js +27 -0
  84. package/dist/parser/oxc-parser.js.map +1 -0
  85. package/dist/parser/parse-cache-config.d.ts +31 -0
  86. package/dist/parser/parse-cache-config.d.ts.map +1 -0
  87. package/dist/parser/parse-cache-config.js +33 -0
  88. package/dist/parser/parse-cache-config.js.map +1 -0
  89. package/dist/parser/parse-cache.d.ts +65 -0
  90. package/dist/parser/parse-cache.d.ts.map +1 -0
  91. package/dist/parser/parse-cache.js +146 -0
  92. package/dist/parser/parse-cache.js.map +1 -0
  93. package/dist/parser/parse-query.d.ts +24 -0
  94. package/dist/parser/parse-query.d.ts.map +1 -0
  95. package/dist/parser/parse-query.js +118 -0
  96. package/dist/parser/parse-query.js.map +1 -0
  97. package/dist/parser/types.d.ts +11 -0
  98. package/dist/parser/types.d.ts.map +1 -0
  99. package/dist/parser/types.js +2 -0
  100. package/dist/parser/types.js.map +1 -0
  101. package/dist/plans/delete-plan.d.ts +44 -0
  102. package/dist/plans/delete-plan.d.ts.map +1 -0
  103. package/dist/plans/delete-plan.js +209 -0
  104. package/dist/plans/delete-plan.js.map +1 -0
  105. package/dist/plans/insert-plan.d.ts +50 -0
  106. package/dist/plans/insert-plan.d.ts.map +1 -0
  107. package/dist/plans/insert-plan.js +240 -0
  108. package/dist/plans/insert-plan.js.map +1 -0
  109. package/dist/plans/plan-execution.d.ts +39 -0
  110. package/dist/plans/plan-execution.d.ts.map +1 -0
  111. package/dist/plans/plan-execution.js +32 -0
  112. package/dist/plans/plan-execution.js.map +1 -0
  113. package/dist/plans/select-plan.d.ts +74 -0
  114. package/dist/plans/select-plan.d.ts.map +1 -0
  115. package/dist/plans/select-plan.js +551 -0
  116. package/dist/plans/select-plan.js.map +1 -0
  117. package/dist/plans/update-plan.d.ts +61 -0
  118. package/dist/plans/update-plan.d.ts.map +1 -0
  119. package/dist/plans/update-plan.js +297 -0
  120. package/dist/plans/update-plan.js.map +1 -0
  121. package/dist/query-tree/operations.d.ts +430 -0
  122. package/dist/query-tree/operations.d.ts.map +1 -0
  123. package/dist/query-tree/operations.js +8 -0
  124. package/dist/query-tree/operations.js.map +1 -0
  125. package/dist/visitors/aggregates/average.d.ts +11 -0
  126. package/dist/visitors/aggregates/average.d.ts.map +1 -0
  127. package/dist/visitors/aggregates/average.js +56 -0
  128. package/dist/visitors/aggregates/average.js.map +1 -0
  129. package/dist/visitors/aggregates/max.d.ts +11 -0
  130. package/dist/visitors/aggregates/max.d.ts.map +1 -0
  131. package/dist/visitors/aggregates/max.js +56 -0
  132. package/dist/visitors/aggregates/max.js.map +1 -0
  133. package/dist/visitors/aggregates/min.d.ts +11 -0
  134. package/dist/visitors/aggregates/min.d.ts.map +1 -0
  135. package/dist/visitors/aggregates/min.js +56 -0
  136. package/dist/visitors/aggregates/min.js.map +1 -0
  137. package/dist/visitors/aggregates/sum.d.ts +11 -0
  138. package/dist/visitors/aggregates/sum.d.ts.map +1 -0
  139. package/dist/visitors/aggregates/sum.js +56 -0
  140. package/dist/visitors/aggregates/sum.js.map +1 -0
  141. package/dist/visitors/ast-visitor.d.ts +15 -0
  142. package/dist/visitors/ast-visitor.d.ts.map +1 -0
  143. package/dist/visitors/ast-visitor.js +20 -0
  144. package/dist/visitors/ast-visitor.js.map +1 -0
  145. package/dist/visitors/boolean/comparison.d.ts +12 -0
  146. package/dist/visitors/boolean/comparison.d.ts.map +1 -0
  147. package/dist/visitors/boolean/comparison.js +128 -0
  148. package/dist/visitors/boolean/comparison.js.map +1 -0
  149. package/dist/visitors/boolean/logical.d.ts +12 -0
  150. package/dist/visitors/boolean/logical.d.ts.map +1 -0
  151. package/dist/visitors/boolean/logical.js +68 -0
  152. package/dist/visitors/boolean/logical.js.map +1 -0
  153. package/dist/visitors/boolean-predicates/all.d.ts +11 -0
  154. package/dist/visitors/boolean-predicates/all.d.ts.map +1 -0
  155. package/dist/visitors/boolean-predicates/all.js +49 -0
  156. package/dist/visitors/boolean-predicates/all.js.map +1 -0
  157. package/dist/visitors/boolean-predicates/any.d.ts +11 -0
  158. package/dist/visitors/boolean-predicates/any.d.ts.map +1 -0
  159. package/dist/visitors/boolean-predicates/any.js +48 -0
  160. package/dist/visitors/boolean-predicates/any.js.map +1 -0
  161. package/dist/visitors/common/identifier.d.ts +13 -0
  162. package/dist/visitors/common/identifier.d.ts.map +1 -0
  163. package/dist/visitors/common/identifier.js +46 -0
  164. package/dist/visitors/common/identifier.js.map +1 -0
  165. package/dist/visitors/common/literal.d.ts +13 -0
  166. package/dist/visitors/common/literal.d.ts.map +1 -0
  167. package/dist/visitors/common/literal.js +45 -0
  168. package/dist/visitors/common/literal.js.map +1 -0
  169. package/dist/visitors/common/member-access.d.ts +15 -0
  170. package/dist/visitors/common/member-access.d.ts.map +1 -0
  171. package/dist/visitors/common/member-access.js +192 -0
  172. package/dist/visitors/common/member-access.js.map +1 -0
  173. package/dist/visitors/contains/index.d.ts +11 -0
  174. package/dist/visitors/contains/index.d.ts.map +1 -0
  175. package/dist/visitors/contains/index.js +26 -0
  176. package/dist/visitors/contains/index.js.map +1 -0
  177. package/dist/visitors/count/index.d.ts +11 -0
  178. package/dist/visitors/count/index.d.ts.map +1 -0
  179. package/dist/visitors/count/index.js +47 -0
  180. package/dist/visitors/count/index.js.map +1 -0
  181. package/dist/visitors/delete/allow-full-delete.d.ts +14 -0
  182. package/dist/visitors/delete/allow-full-delete.d.ts.map +1 -0
  183. package/dist/visitors/delete/allow-full-delete.js +26 -0
  184. package/dist/visitors/delete/allow-full-delete.js.map +1 -0
  185. package/dist/visitors/delete/index.d.ts +10 -0
  186. package/dist/visitors/delete/index.d.ts.map +1 -0
  187. package/dist/visitors/delete/index.js +53 -0
  188. package/dist/visitors/delete/index.js.map +1 -0
  189. package/dist/visitors/delete/where-delete.d.ts +15 -0
  190. package/dist/visitors/delete/where-delete.d.ts.map +1 -0
  191. package/dist/visitors/delete/where-delete.js +59 -0
  192. package/dist/visitors/delete/where-delete.js.map +1 -0
  193. package/dist/visitors/distinct/index.d.ts +16 -0
  194. package/dist/visitors/distinct/index.d.ts.map +1 -0
  195. package/dist/visitors/distinct/index.js +20 -0
  196. package/dist/visitors/distinct/index.js.map +1 -0
  197. package/dist/visitors/from/index.d.ts +12 -0
  198. package/dist/visitors/from/index.d.ts.map +1 -0
  199. package/dist/visitors/from/index.js +58 -0
  200. package/dist/visitors/from/index.js.map +1 -0
  201. package/dist/visitors/groupby/index.d.ts +11 -0
  202. package/dist/visitors/groupby/index.d.ts.map +1 -0
  203. package/dist/visitors/groupby/index.js +51 -0
  204. package/dist/visitors/groupby/index.js.map +1 -0
  205. package/dist/visitors/groupjoin/index.d.ts +8 -0
  206. package/dist/visitors/groupjoin/index.d.ts.map +1 -0
  207. package/dist/visitors/groupjoin/index.js +184 -0
  208. package/dist/visitors/groupjoin/index.js.map +1 -0
  209. package/dist/visitors/index.d.ts +13 -0
  210. package/dist/visitors/index.d.ts.map +1 -0
  211. package/dist/visitors/index.js +266 -0
  212. package/dist/visitors/index.js.map +1 -0
  213. package/dist/visitors/insert/index.d.ts +10 -0
  214. package/dist/visitors/insert/index.d.ts.map +1 -0
  215. package/dist/visitors/insert/index.js +54 -0
  216. package/dist/visitors/insert/index.js.map +1 -0
  217. package/dist/visitors/insert/returning.d.ts +15 -0
  218. package/dist/visitors/insert/returning.d.ts.map +1 -0
  219. package/dist/visitors/insert/returning.js +60 -0
  220. package/dist/visitors/insert/returning.js.map +1 -0
  221. package/dist/visitors/insert/values.d.ts +15 -0
  222. package/dist/visitors/insert/values.d.ts.map +1 -0
  223. package/dist/visitors/insert/values.js +37 -0
  224. package/dist/visitors/insert/values.js.map +1 -0
  225. package/dist/visitors/join/context.d.ts +16 -0
  226. package/dist/visitors/join/context.d.ts.map +1 -0
  227. package/dist/visitors/join/context.js +6 -0
  228. package/dist/visitors/join/context.js.map +1 -0
  229. package/dist/visitors/join/expression.d.ts +16 -0
  230. package/dist/visitors/join/expression.d.ts.map +1 -0
  231. package/dist/visitors/join/expression.js +162 -0
  232. package/dist/visitors/join/expression.js.map +1 -0
  233. package/dist/visitors/join/index.d.ts +10 -0
  234. package/dist/visitors/join/index.d.ts.map +1 -0
  235. package/dist/visitors/join/index.js +9 -0
  236. package/dist/visitors/join/index.js.map +1 -0
  237. package/dist/visitors/join/join.d.ts +12 -0
  238. package/dist/visitors/join/join.d.ts.map +1 -0
  239. package/dist/visitors/join/join.js +348 -0
  240. package/dist/visitors/join/join.js.map +1 -0
  241. package/dist/visitors/join/result-selector.d.ts +16 -0
  242. package/dist/visitors/join/result-selector.d.ts.map +1 -0
  243. package/dist/visitors/join/result-selector.js +121 -0
  244. package/dist/visitors/join/result-selector.js.map +1 -0
  245. package/dist/visitors/join/shape.d.ts +16 -0
  246. package/dist/visitors/join/shape.d.ts.map +1 -0
  247. package/dist/visitors/join/shape.js +157 -0
  248. package/dist/visitors/join/shape.js.map +1 -0
  249. package/dist/visitors/orderby/context.d.ts +20 -0
  250. package/dist/visitors/orderby/context.d.ts.map +1 -0
  251. package/dist/visitors/orderby/context.js +25 -0
  252. package/dist/visitors/orderby/context.js.map +1 -0
  253. package/dist/visitors/orderby/index.d.ts +7 -0
  254. package/dist/visitors/orderby/index.d.ts.map +1 -0
  255. package/dist/visitors/orderby/index.js +7 -0
  256. package/dist/visitors/orderby/index.js.map +1 -0
  257. package/dist/visitors/orderby/key-selector.d.ts +13 -0
  258. package/dist/visitors/orderby/key-selector.d.ts.map +1 -0
  259. package/dist/visitors/orderby/key-selector.js +236 -0
  260. package/dist/visitors/orderby/key-selector.js.map +1 -0
  261. package/dist/visitors/orderby/orderby.d.ts +20 -0
  262. package/dist/visitors/orderby/orderby.d.ts.map +1 -0
  263. package/dist/visitors/orderby/orderby.js +83 -0
  264. package/dist/visitors/orderby/orderby.js.map +1 -0
  265. package/dist/visitors/orderby/thenby.d.ts +20 -0
  266. package/dist/visitors/orderby/thenby.d.ts.map +1 -0
  267. package/dist/visitors/orderby/thenby.js +76 -0
  268. package/dist/visitors/orderby/thenby.js.map +1 -0
  269. package/dist/visitors/predicates/first.d.ts +11 -0
  270. package/dist/visitors/predicates/first.d.ts.map +1 -0
  271. package/dist/visitors/predicates/first.js +47 -0
  272. package/dist/visitors/predicates/first.js.map +1 -0
  273. package/dist/visitors/predicates/last.d.ts +11 -0
  274. package/dist/visitors/predicates/last.d.ts.map +1 -0
  275. package/dist/visitors/predicates/last.js +48 -0
  276. package/dist/visitors/predicates/last.js.map +1 -0
  277. package/dist/visitors/predicates/single.d.ts +11 -0
  278. package/dist/visitors/predicates/single.d.ts.map +1 -0
  279. package/dist/visitors/predicates/single.js +48 -0
  280. package/dist/visitors/predicates/single.js.map +1 -0
  281. package/dist/visitors/reverse/index.d.ts +11 -0
  282. package/dist/visitors/reverse/index.d.ts.map +1 -0
  283. package/dist/visitors/reverse/index.js +14 -0
  284. package/dist/visitors/reverse/index.js.map +1 -0
  285. package/dist/visitors/select/context.d.ts +30 -0
  286. package/dist/visitors/select/context.d.ts.map +1 -0
  287. package/dist/visitors/select/context.js +30 -0
  288. package/dist/visitors/select/context.js.map +1 -0
  289. package/dist/visitors/select/index.d.ts +16 -0
  290. package/dist/visitors/select/index.d.ts.map +1 -0
  291. package/dist/visitors/select/index.js +180 -0
  292. package/dist/visitors/select/index.js.map +1 -0
  293. package/dist/visitors/select/projection.d.ts +13 -0
  294. package/dist/visitors/select/projection.d.ts.map +1 -0
  295. package/dist/visitors/select/projection.js +642 -0
  296. package/dist/visitors/select/projection.js.map +1 -0
  297. package/dist/visitors/select-many/index.d.ts +8 -0
  298. package/dist/visitors/select-many/index.d.ts.map +1 -0
  299. package/dist/visitors/select-many/index.js +244 -0
  300. package/dist/visitors/select-many/index.js.map +1 -0
  301. package/dist/visitors/shared/generic-visitor.d.ts +21 -0
  302. package/dist/visitors/shared/generic-visitor.d.ts.map +1 -0
  303. package/dist/visitors/shared/generic-visitor.js +32 -0
  304. package/dist/visitors/shared/generic-visitor.js.map +1 -0
  305. package/dist/visitors/shared/predicate-visitor.d.ts +21 -0
  306. package/dist/visitors/shared/predicate-visitor.d.ts.map +1 -0
  307. package/dist/visitors/shared/predicate-visitor.js +49 -0
  308. package/dist/visitors/shared/predicate-visitor.js.map +1 -0
  309. package/dist/visitors/shared/value-visitor.d.ts +21 -0
  310. package/dist/visitors/shared/value-visitor.d.ts.map +1 -0
  311. package/dist/visitors/shared/value-visitor.js +38 -0
  312. package/dist/visitors/shared/value-visitor.js.map +1 -0
  313. package/dist/visitors/take-skip/skip.d.ts +15 -0
  314. package/dist/visitors/take-skip/skip.d.ts.map +1 -0
  315. package/dist/visitors/take-skip/skip.js +209 -0
  316. package/dist/visitors/take-skip/skip.js.map +1 -0
  317. package/dist/visitors/take-skip/take.d.ts +15 -0
  318. package/dist/visitors/take-skip/take.d.ts.map +1 -0
  319. package/dist/visitors/take-skip/take.js +76 -0
  320. package/dist/visitors/take-skip/take.js.map +1 -0
  321. package/dist/visitors/types.d.ts +170 -0
  322. package/dist/visitors/types.d.ts.map +1 -0
  323. package/dist/visitors/types.js +184 -0
  324. package/dist/visitors/types.js.map +1 -0
  325. package/dist/visitors/update/allow-full-update.d.ts +14 -0
  326. package/dist/visitors/update/allow-full-update.d.ts.map +1 -0
  327. package/dist/visitors/update/allow-full-update.js +26 -0
  328. package/dist/visitors/update/allow-full-update.js.map +1 -0
  329. package/dist/visitors/update/index.d.ts +10 -0
  330. package/dist/visitors/update/index.d.ts.map +1 -0
  331. package/dist/visitors/update/index.js +54 -0
  332. package/dist/visitors/update/index.js.map +1 -0
  333. package/dist/visitors/update/returning-update.d.ts +15 -0
  334. package/dist/visitors/update/returning-update.d.ts.map +1 -0
  335. package/dist/visitors/update/returning-update.js +60 -0
  336. package/dist/visitors/update/returning-update.js.map +1 -0
  337. package/dist/visitors/update/set.d.ts +15 -0
  338. package/dist/visitors/update/set.d.ts.map +1 -0
  339. package/dist/visitors/update/set.js +46 -0
  340. package/dist/visitors/update/set.js.map +1 -0
  341. package/dist/visitors/update/where-update.d.ts +15 -0
  342. package/dist/visitors/update/where-update.d.ts.map +1 -0
  343. package/dist/visitors/update/where-update.js +59 -0
  344. package/dist/visitors/update/where-update.js.map +1 -0
  345. package/dist/visitors/utils.d.ts +36 -0
  346. package/dist/visitors/utils.d.ts.map +1 -0
  347. package/dist/visitors/utils.js +104 -0
  348. package/dist/visitors/utils.js.map +1 -0
  349. package/dist/visitors/value/array-literal.d.ts +12 -0
  350. package/dist/visitors/value/array-literal.d.ts.map +1 -0
  351. package/dist/visitors/value/array-literal.js +23 -0
  352. package/dist/visitors/value/array-literal.js.map +1 -0
  353. package/dist/visitors/value/call-expression.d.ts +12 -0
  354. package/dist/visitors/value/call-expression.d.ts.map +1 -0
  355. package/dist/visitors/value/call-expression.js +165 -0
  356. package/dist/visitors/value/call-expression.js.map +1 -0
  357. package/dist/visitors/value/object-literal.d.ts +12 -0
  358. package/dist/visitors/value/object-literal.d.ts.map +1 -0
  359. package/dist/visitors/value/object-literal.js +98 -0
  360. package/dist/visitors/value/object-literal.js.map +1 -0
  361. package/dist/visitors/visitor-utils.d.ts +22 -0
  362. package/dist/visitors/visitor-utils.d.ts.map +1 -0
  363. package/dist/visitors/visitor-utils.js +64 -0
  364. package/dist/visitors/visitor-utils.js.map +1 -0
  365. package/dist/visitors/where/boolean-method.d.ts +12 -0
  366. package/dist/visitors/where/boolean-method.d.ts.map +1 -0
  367. package/dist/visitors/where/boolean-method.js +150 -0
  368. package/dist/visitors/where/boolean-method.js.map +1 -0
  369. package/dist/visitors/where/case-insensitive-functions.d.ts +13 -0
  370. package/dist/visitors/where/case-insensitive-functions.d.ts.map +1 -0
  371. package/dist/visitors/where/case-insensitive-functions.js +72 -0
  372. package/dist/visitors/where/case-insensitive-functions.js.map +1 -0
  373. package/dist/visitors/where/column.d.ts +14 -0
  374. package/dist/visitors/where/column.d.ts.map +1 -0
  375. package/dist/visitors/where/column.js +57 -0
  376. package/dist/visitors/where/column.js.map +1 -0
  377. package/dist/visitors/where/comparison.d.ts +12 -0
  378. package/dist/visitors/where/comparison.d.ts.map +1 -0
  379. package/dist/visitors/where/comparison.js +141 -0
  380. package/dist/visitors/where/comparison.js.map +1 -0
  381. package/dist/visitors/where/context.d.ts +32 -0
  382. package/dist/visitors/where/context.d.ts.map +1 -0
  383. package/dist/visitors/where/context.js +18 -0
  384. package/dist/visitors/where/context.js.map +1 -0
  385. package/dist/visitors/where/index.d.ts +16 -0
  386. package/dist/visitors/where/index.d.ts.map +1 -0
  387. package/dist/visitors/where/index.js +82 -0
  388. package/dist/visitors/where/index.js.map +1 -0
  389. package/dist/visitors/where/logical.d.ts +12 -0
  390. package/dist/visitors/where/logical.d.ts.map +1 -0
  391. package/dist/visitors/where/logical.js +43 -0
  392. package/dist/visitors/where/logical.js.map +1 -0
  393. package/dist/visitors/where/predicate.d.ts +13 -0
  394. package/dist/visitors/where/predicate.d.ts.map +1 -0
  395. package/dist/visitors/where/predicate.js +131 -0
  396. package/dist/visitors/where/predicate.js.map +1 -0
  397. package/dist/visitors/where/value.d.ts +13 -0
  398. package/dist/visitors/where/value.d.ts.map +1 -0
  399. package/dist/visitors/where/value.js +356 -0
  400. package/dist/visitors/where/value.js.map +1 -0
  401. package/dist/visitors/window/index.d.ts +18 -0
  402. package/dist/visitors/window/index.d.ts.map +1 -0
  403. package/dist/visitors/window/index.js +156 -0
  404. package/dist/visitors/window/index.js.map +1 -0
  405. package/package.json +50 -0
@@ -0,0 +1,642 @@
1
+ /**
2
+ * SELECT projection visitor
3
+ * Converts AST expressions to projection expressions (columns, objects, values)
4
+ */
5
+ import { createAutoParam } from "./context.js";
6
+ import { isWindowFunctionCall, visitWindowFunction } from "../window/index.js";
7
+ /**
8
+ * Visit a projection expression in SELECT context
9
+ * Returns Expression (ValueExpression or ObjectExpression)
10
+ */
11
+ export function visitProjection(node, context) {
12
+ if (!node)
13
+ return null;
14
+ switch (node.type) {
15
+ case "ObjectExpression": {
16
+ // Object projection: { id: x.id, name: x.name }
17
+ return visitObjectProjection(node, context);
18
+ }
19
+ case "MemberExpression": {
20
+ // Column projection: x.name
21
+ return visitColumnProjection(node, context);
22
+ }
23
+ case "Identifier": {
24
+ // Direct identifier (could be table param or query param)
25
+ return visitIdentifierProjection(node, context);
26
+ }
27
+ case "Literal":
28
+ case "NumericLiteral":
29
+ case "StringLiteral":
30
+ case "BooleanLiteral":
31
+ case "NullLiteral": {
32
+ // Literal value projection
33
+ return visitLiteralProjection(node, context);
34
+ }
35
+ case "BinaryExpression": {
36
+ // Arithmetic, concatenation, or comparison
37
+ return visitBinaryProjection(node, context);
38
+ }
39
+ case "CallExpression": {
40
+ // Method calls (string methods, etc.)
41
+ return visitMethodProjection(node, context);
42
+ }
43
+ case "UnaryExpression": {
44
+ // Unary operations (negation, etc.)
45
+ return visitUnaryProjection(node, context);
46
+ }
47
+ case "ConditionalExpression": {
48
+ // Ternary operator (CASE WHEN)
49
+ return visitConditionalProjection(node, context);
50
+ }
51
+ case "LogicalExpression": {
52
+ // Null coalescing operator (??)
53
+ const logical = node;
54
+ if (logical.operator === "??") {
55
+ const left = visitProjection(logical.left, context);
56
+ const right = visitProjection(logical.right, context);
57
+ if (left && right) {
58
+ return {
59
+ type: "coalesce",
60
+ expressions: [left, right],
61
+ };
62
+ }
63
+ }
64
+ return null;
65
+ }
66
+ case "ParenthesizedExpression": {
67
+ // Unwrap parentheses
68
+ const paren = node;
69
+ return visitProjection(paren.expression, context);
70
+ }
71
+ default:
72
+ return null;
73
+ }
74
+ }
75
+ /**
76
+ * Visit object projection
77
+ */
78
+ function visitObjectProjection(node, context) {
79
+ const properties = {};
80
+ for (const prop of node.properties) {
81
+ // Handle spread operator
82
+ if ("type" in prop && prop.type === "SpreadElement") {
83
+ // Spread operator expands to all columns from the source
84
+ // Use a special key that will be detected by the SQL generator
85
+ properties["__spread__"] = {
86
+ type: "allColumns",
87
+ };
88
+ continue;
89
+ }
90
+ // Extract property key
91
+ let key = null;
92
+ if (prop.key?.type === "Identifier") {
93
+ key = prop.key.name;
94
+ }
95
+ else if (prop.key?.type === "Literal" || prop.key?.type === "StringLiteral") {
96
+ key = String(prop.key.value);
97
+ }
98
+ if (key && prop.value) {
99
+ const value = visitProjection(prop.value, context);
100
+ if (value) {
101
+ properties[key] = value;
102
+ }
103
+ }
104
+ }
105
+ return {
106
+ type: "object",
107
+ properties,
108
+ };
109
+ }
110
+ /**
111
+ * Visit column projection
112
+ */
113
+ function visitColumnProjection(node, context) {
114
+ if (!node.computed && node.property.type === "Identifier") {
115
+ const propertyName = node.property.name;
116
+ // Simple member access: x.name
117
+ if (node.object.type === "Identifier") {
118
+ const objectName = node.object.name;
119
+ // Check if this is accessing JOIN result shape (e.g., result.joined or joined.u)
120
+ if (context.tableParams.has(objectName) && context.currentResultShape) {
121
+ // Look up the property in the result shape
122
+ const shapeProp = context.currentResultShape.properties.get(propertyName);
123
+ if (shapeProp) {
124
+ if (shapeProp.type === "reference") {
125
+ // It's a table reference - return a reference expression
126
+ const refShape = shapeProp;
127
+ return {
128
+ type: "reference",
129
+ source: { type: "joinParam", paramIndex: refShape.sourceTable },
130
+ };
131
+ }
132
+ else if (shapeProp.type === "column") {
133
+ // It's a column from the JOIN result
134
+ const colShape = shapeProp;
135
+ return {
136
+ type: "column",
137
+ name: colShape.columnName,
138
+ source: { type: "joinParam", paramIndex: colShape.sourceTable },
139
+ };
140
+ }
141
+ else if (shapeProp.type === "object") {
142
+ // It's a nested object from the JOIN result
143
+ // We need to return this as a placeholder that will be resolved further
144
+ // when accessing properties on it
145
+ return {
146
+ type: "column",
147
+ name: propertyName, // Keep the property name for now
148
+ table: objectName, // Mark that this is from the joined result
149
+ };
150
+ }
151
+ }
152
+ }
153
+ // Grouping parameter access (g.key, g.count(), etc.)
154
+ if (context.groupingParams.has(objectName)) {
155
+ if (propertyName === "key") {
156
+ // g.key refers to the GROUP BY key expression
157
+ return context.groupKeyExpression || null;
158
+ }
159
+ // Other properties on grouping params will be handled by method calls
160
+ return null;
161
+ }
162
+ // Table parameter column
163
+ if (context.tableParams.has(objectName)) {
164
+ return {
165
+ type: "column",
166
+ name: propertyName,
167
+ };
168
+ }
169
+ // Query parameter property
170
+ if (context.queryParams.has(objectName)) {
171
+ return {
172
+ type: "param",
173
+ param: objectName,
174
+ property: propertyName,
175
+ };
176
+ }
177
+ }
178
+ // Nested member access: x.address.city or g.key.category or joined.u.name
179
+ if (node.object.type === "MemberExpression") {
180
+ const innerMember = node.object;
181
+ // Special case for JOIN result shape: joined.u.name or result.joined.user.name
182
+ // We need to handle deeper nesting
183
+ if (innerMember.object.type === "Identifier" &&
184
+ innerMember.property.type === "Identifier" &&
185
+ !innerMember.computed) {
186
+ const outerName = innerMember.object.name;
187
+ const middleName = innerMember.property.name;
188
+ // Check if this is accessing JOIN result shape
189
+ if (context.tableParams.has(outerName) && context.currentResultShape) {
190
+ // Look up the middle property in the result shape
191
+ const shapeProp = context.currentResultShape.properties.get(middleName);
192
+ if (shapeProp && shapeProp.type === "reference") {
193
+ // It's a table reference - return column with table marker
194
+ const refShape = shapeProp;
195
+ return {
196
+ type: "column",
197
+ name: propertyName,
198
+ source: { type: "joinParam", paramIndex: refShape.sourceTable },
199
+ };
200
+ }
201
+ else if (shapeProp && shapeProp.type === "object") {
202
+ // It's a nested object - look deeper
203
+ const nestedShape = shapeProp;
204
+ const deepProp = nestedShape.properties.get(propertyName);
205
+ if (deepProp && deepProp.type === "reference") {
206
+ // Found a table reference at the deeper level
207
+ const refShape = deepProp;
208
+ // We're accessing a property on this reference, so return just the table marker
209
+ // The actual column name will be added by the outer expression
210
+ return {
211
+ type: "reference",
212
+ source: { type: "joinParam", paramIndex: refShape.sourceTable },
213
+ };
214
+ }
215
+ }
216
+ }
217
+ }
218
+ else if (innerMember.object.type === "MemberExpression") {
219
+ // Even deeper nesting: result.joined.user accessing .name
220
+ // First resolve the inner member expression
221
+ const innerResult = visitColumnProjection(innerMember, context);
222
+ if (innerResult && innerResult.type === "reference") {
223
+ // We got a reference back, now access the property on it
224
+ const refExpr = innerResult;
225
+ return {
226
+ type: "column",
227
+ name: propertyName,
228
+ source: refExpr.source, // Use the same source as the reference
229
+ };
230
+ }
231
+ }
232
+ const innerExpr = visitColumnProjection(innerMember, context);
233
+ // If inner expression is an object (like g.key returning a composite key)
234
+ if (innerExpr && innerExpr.type === "object") {
235
+ const objExpr = innerExpr;
236
+ // Extract the specific property from the object
237
+ if (objExpr.properties[propertyName]) {
238
+ return objExpr.properties[propertyName];
239
+ }
240
+ }
241
+ // If inner expression is a reference, convert to column access
242
+ if (innerExpr && innerExpr.type === "reference") {
243
+ const refExpr = innerExpr;
244
+ return {
245
+ type: "column",
246
+ name: propertyName,
247
+ source: refExpr.source, // Use the same source as the reference
248
+ };
249
+ }
250
+ // Regular nested column access
251
+ if (innerExpr && innerExpr.type === "column") {
252
+ const innerCol = innerExpr;
253
+ // If the inner column has a table, use it
254
+ if (innerCol.table) {
255
+ return {
256
+ type: "column",
257
+ name: propertyName,
258
+ table: innerCol.name, // The inner column's name becomes the table reference
259
+ };
260
+ }
261
+ // Otherwise concatenate for nested property access
262
+ return {
263
+ type: "column",
264
+ name: `${innerCol.name}.${propertyName}`,
265
+ };
266
+ }
267
+ }
268
+ }
269
+ return null;
270
+ }
271
+ /**
272
+ * Visit identifier projection
273
+ */
274
+ function visitIdentifierProjection(node, context) {
275
+ const name = node.name;
276
+ // Table parameter (entire row)
277
+ if (context.tableParams.has(name)) {
278
+ return {
279
+ type: "column",
280
+ name,
281
+ };
282
+ }
283
+ // Query parameter
284
+ if (context.queryParams.has(name)) {
285
+ return {
286
+ type: "param",
287
+ param: name,
288
+ };
289
+ }
290
+ return null;
291
+ }
292
+ /**
293
+ * Visit literal projection
294
+ */
295
+ function visitLiteralProjection(node, context) {
296
+ // NULL is special - not parameterized
297
+ if (node.value === null) {
298
+ return {
299
+ type: "constant",
300
+ value: null,
301
+ valueType: "null",
302
+ };
303
+ }
304
+ // Auto-parameterize other literals
305
+ const paramName = createAutoParam(context, node.value);
306
+ return {
307
+ type: "param",
308
+ param: paramName,
309
+ };
310
+ }
311
+ /**
312
+ * Visit binary expression in projection
313
+ */
314
+ function visitBinaryProjection(node, context) {
315
+ // Comparison operators - return as boolean expressions
316
+ if (["==", "===", "!=", "!==", ">", ">=", "<", "<="].includes(node.operator)) {
317
+ const left = visitProjection(node.left, context);
318
+ const right = visitProjection(node.right, context);
319
+ if (!left || !right)
320
+ return null;
321
+ const op = node.operator === "===" ? "==" : node.operator === "!==" ? "!=" : node.operator;
322
+ return {
323
+ type: "comparison",
324
+ operator: op,
325
+ left: left,
326
+ right: right,
327
+ };
328
+ }
329
+ // Arithmetic operators
330
+ if (["+", "-", "*", "/", "%"].includes(node.operator)) {
331
+ const left = visitProjection(node.left, context);
332
+ const right = visitProjection(node.right, context);
333
+ if (!left || !right)
334
+ return null;
335
+ // Check for string concatenation (+)
336
+ if (node.operator === "+" && (isStringExpression(left) || isStringExpression(right))) {
337
+ return {
338
+ type: "concat",
339
+ left: left,
340
+ right: right,
341
+ };
342
+ }
343
+ // Regular arithmetic
344
+ return {
345
+ type: "arithmetic",
346
+ operator: node.operator,
347
+ left: left,
348
+ right: right,
349
+ };
350
+ }
351
+ return null;
352
+ }
353
+ /**
354
+ * Visit method call in projection
355
+ */
356
+ function visitMethodProjection(node, context) {
357
+ // Check for window function calls first
358
+ const windowFunctionType = isWindowFunctionCall(node, context);
359
+ if (windowFunctionType) {
360
+ // Create a wrapper that adapts visitProjection to the expected signature
361
+ const expressionVisitor = (node, ctx) => visitProjection(node, ctx);
362
+ return visitWindowFunction(node, windowFunctionType, context, expressionVisitor);
363
+ }
364
+ if (node.callee.type !== "MemberExpression")
365
+ return null;
366
+ const memberCallee = node.callee;
367
+ if (memberCallee.property.type !== "Identifier")
368
+ return null;
369
+ const methodName = memberCallee.property.name;
370
+ // Check if this is a method call on a grouping parameter (e.g., g.count())
371
+ if (memberCallee.object.type === "Identifier") {
372
+ const objectName = memberCallee.object.name;
373
+ if (context.groupingParams.has(objectName)) {
374
+ // Handle aggregate methods on grouping parameter
375
+ if (methodName === "count") {
376
+ return {
377
+ type: "aggregate",
378
+ function: "count",
379
+ };
380
+ }
381
+ else if (methodName === "sum") {
382
+ // sum() requires a selector argument
383
+ if (node.arguments && node.arguments.length > 0) {
384
+ const arg = node.arguments[0];
385
+ if (arg && arg.type === "ArrowFunctionExpression") {
386
+ const lambda = arg;
387
+ // Parse the selector lambda
388
+ const selector = parseSelectorLambda(lambda, context);
389
+ if (selector) {
390
+ // Accept any value expression, not just columns
391
+ return {
392
+ type: "aggregate",
393
+ function: "sum",
394
+ expression: selector,
395
+ };
396
+ }
397
+ }
398
+ }
399
+ }
400
+ else if (["avg", "average", "min", "max"].includes(methodName)) {
401
+ // Similar handling for other aggregates
402
+ if (node.arguments && node.arguments.length > 0) {
403
+ const arg = node.arguments[0];
404
+ if (arg && arg.type === "ArrowFunctionExpression") {
405
+ const lambda = arg;
406
+ const selector = parseSelectorLambda(lambda, context);
407
+ if (selector) {
408
+ // Accept any value expression, not just columns
409
+ // Map "average" to "avg" for SQL
410
+ const functionName = methodName === "average" ? "avg" : methodName;
411
+ return {
412
+ type: "aggregate",
413
+ function: functionName,
414
+ expression: selector,
415
+ };
416
+ }
417
+ }
418
+ }
419
+ }
420
+ }
421
+ }
422
+ // String methods
423
+ if (["toLowerCase", "toUpperCase"].includes(methodName)) {
424
+ const obj = visitProjection(memberCallee.object, context);
425
+ if (!obj)
426
+ return null;
427
+ return {
428
+ type: "stringMethod",
429
+ object: obj,
430
+ method: methodName,
431
+ };
432
+ }
433
+ // Check for unsupported Date methods
434
+ if (methodName === "getTime") {
435
+ throw new Error(`Unsupported method: ${methodName}(). Date arithmetic is not supported.`);
436
+ }
437
+ // Check for Date.now() static call
438
+ if (memberCallee.object.type === "Identifier" &&
439
+ memberCallee.object.name === "Date" &&
440
+ methodName === "now") {
441
+ throw new Error("Unsupported call expression: Date.now(). External functions are not supported.");
442
+ }
443
+ return null;
444
+ }
445
+ /**
446
+ * Helper to parse selector lambda in aggregate functions
447
+ */
448
+ function parseSelectorLambda(lambda, context) {
449
+ // Get the lambda body
450
+ let bodyExpr = null;
451
+ if (lambda.body.type === "BlockStatement") {
452
+ const returnStmt = lambda.body.body.find((stmt) => stmt.type === "ReturnStatement");
453
+ if (returnStmt) {
454
+ bodyExpr = returnStmt.argument || null;
455
+ }
456
+ }
457
+ else {
458
+ bodyExpr = lambda.body;
459
+ }
460
+ if (!bodyExpr)
461
+ return null;
462
+ // Add lambda parameter to table params temporarily
463
+ const tempContext = { ...context };
464
+ tempContext.tableParams = new Set(context.tableParams);
465
+ if (lambda.params && lambda.params.length > 0) {
466
+ const firstParam = lambda.params[0];
467
+ if (firstParam && firstParam.type === "Identifier") {
468
+ tempContext.tableParams.add(firstParam.name);
469
+ }
470
+ }
471
+ return visitProjection(bodyExpr, tempContext);
472
+ }
473
+ /**
474
+ * Visit unary expression in projection
475
+ */
476
+ function visitUnaryProjection(node, context) {
477
+ // Unary minus
478
+ if (node.operator === "-") {
479
+ if (node.argument.type === "NumericLiteral" || node.argument.type === "Literal") {
480
+ const lit = node.argument;
481
+ if (typeof lit.value === "number") {
482
+ const value = -lit.value;
483
+ const paramName = createAutoParam(context, value);
484
+ return {
485
+ type: "param",
486
+ param: paramName,
487
+ };
488
+ }
489
+ }
490
+ // Negate other expressions
491
+ const arg = visitProjection(node.argument, context);
492
+ if (arg) {
493
+ return {
494
+ type: "arithmetic",
495
+ operator: "*",
496
+ left: { type: "constant", value: -1 },
497
+ right: arg,
498
+ };
499
+ }
500
+ }
501
+ // Unary plus (pass through)
502
+ if (node.operator === "+") {
503
+ return visitProjection(node.argument, context);
504
+ }
505
+ return null;
506
+ }
507
+ /**
508
+ * Visit conditional (ternary) expression
509
+ */
510
+ function visitConditionalProjection(node, context) {
511
+ // Ternary operator: condition ? thenExpr : elseExpr
512
+ // Converts to SQL: CASE WHEN condition THEN thenExpr ELSE elseExpr END
513
+ if (!node.test || !node.consequent || !node.alternate) {
514
+ return null;
515
+ }
516
+ // Parse the condition (this should produce a boolean expression)
517
+ // We need to convert it from AST to our expression format
518
+ // For now, we'll handle simple comparisons
519
+ const condition = visitBooleanCondition(node.test, context);
520
+ if (!condition) {
521
+ return null;
522
+ }
523
+ // Parse the then branch
524
+ const thenExpr = visitProjection(node.consequent, context);
525
+ if (!thenExpr) {
526
+ return null;
527
+ }
528
+ // Parse the else branch
529
+ const elseExpr = visitProjection(node.alternate, context);
530
+ if (!elseExpr) {
531
+ return null;
532
+ }
533
+ return {
534
+ type: "case",
535
+ conditions: [
536
+ {
537
+ when: condition,
538
+ then: thenExpr,
539
+ },
540
+ ],
541
+ else: elseExpr,
542
+ };
543
+ }
544
+ /**
545
+ * Helper to convert AST boolean expressions for CASE WHEN
546
+ */
547
+ function visitBooleanCondition(node, context) {
548
+ if (!node)
549
+ return null;
550
+ switch (node.type) {
551
+ case "BinaryExpression": {
552
+ // Comparison operators
553
+ if (["==", "===", "!=", "!==", ">", ">=", "<", "<="].includes(node.operator)) {
554
+ const left = visitProjection(node.left, context);
555
+ const right = visitProjection(node.right, context);
556
+ if (left && right) {
557
+ const op = node.operator === "===" ? "==" : node.operator === "!==" ? "!=" : node.operator;
558
+ return {
559
+ type: "comparison",
560
+ operator: op,
561
+ left: left,
562
+ right: right,
563
+ };
564
+ }
565
+ }
566
+ break;
567
+ }
568
+ case "LogicalExpression": {
569
+ // AND/OR operators
570
+ if (["&&", "||"].includes(node.operator)) {
571
+ const left = visitBooleanCondition(node.left, context);
572
+ const right = visitBooleanCondition(node.right, context);
573
+ if (left && right) {
574
+ return {
575
+ type: "logical",
576
+ operator: node.operator === "&&" ? "and" : "or",
577
+ left: left,
578
+ right: right,
579
+ };
580
+ }
581
+ }
582
+ break;
583
+ }
584
+ case "UnaryExpression": {
585
+ // NOT operator
586
+ if (node.operator === "!") {
587
+ const inner = visitBooleanCondition(node.argument, context);
588
+ if (inner) {
589
+ return {
590
+ type: "not",
591
+ expression: inner,
592
+ };
593
+ }
594
+ }
595
+ break;
596
+ }
597
+ case "Identifier": {
598
+ // Direct boolean column or parameter
599
+ const expr = visitProjection(node, context);
600
+ if (expr && expr.type === "column") {
601
+ // Convert column to IS NOT NULL check
602
+ return {
603
+ type: "isNull",
604
+ expression: expr,
605
+ negated: true,
606
+ };
607
+ }
608
+ return expr;
609
+ }
610
+ case "MemberExpression": {
611
+ // Boolean property access
612
+ const expr = visitProjection(node, context);
613
+ if (expr && expr.type === "column") {
614
+ // Convert column to IS NOT NULL check
615
+ return {
616
+ type: "isNull",
617
+ expression: expr,
618
+ negated: true,
619
+ };
620
+ }
621
+ return expr;
622
+ }
623
+ }
624
+ return null;
625
+ }
626
+ /**
627
+ * Check if expression is likely a string
628
+ */
629
+ function isStringExpression(expr) {
630
+ if (expr.type === "constant") {
631
+ return typeof expr.value === "string";
632
+ }
633
+ if (expr.type === "concat") {
634
+ return true;
635
+ }
636
+ if (expr.type === "column") {
637
+ const name = expr.name.toLowerCase();
638
+ return name.includes("name") || name.includes("title") || name.includes("description");
639
+ }
640
+ return false;
641
+ }
642
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/visitors/select/projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { QueryOperation, SelectManyOperation } from "../../query-tree/operations.js";
2
+ import type { CallExpression as ASTCallExpression } from "../../parser/ast-types.js";
3
+ import type { VisitorContext } from "../types.js";
4
+ export declare function visitSelectManyOperation(ast: ASTCallExpression, source: QueryOperation, _methodName: string, _visitorContext: VisitorContext): {
5
+ operation: SelectManyOperation;
6
+ autoParams: Record<string, unknown>;
7
+ } | null;
8
+ //# sourceMappingURL=index.d.ts.map