@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,104 @@
1
+ /**
2
+ * Utility functions for visitor implementations
3
+ * Type guards and helper functions
4
+ */
5
+ /**
6
+ * Type guard for boolean expressions
7
+ */
8
+ export function isBooleanExpression(expr) {
9
+ if (!expr || typeof expr !== "object")
10
+ return false;
11
+ const type = expr.type;
12
+ return [
13
+ "comparison",
14
+ "logical",
15
+ "not",
16
+ "in",
17
+ "booleanColumn",
18
+ "booleanMethod",
19
+ "booleanConstant",
20
+ ].includes(type);
21
+ }
22
+ /**
23
+ * Type guard for value expressions
24
+ */
25
+ export function isValueExpression(expr) {
26
+ if (!expr || typeof expr !== "object")
27
+ return false;
28
+ const type = expr.type;
29
+ return [
30
+ "column",
31
+ "constant",
32
+ "param",
33
+ "arithmetic",
34
+ "concat",
35
+ "stringMethod",
36
+ "case",
37
+ "coalesce",
38
+ "aggregate",
39
+ "windowFunction",
40
+ "groupKey",
41
+ ].includes(type);
42
+ }
43
+ /**
44
+ * Check if a column name likely represents a string
45
+ * Used for heuristic string concatenation detection
46
+ */
47
+ export function isLikelyStringColumn(name) {
48
+ if (!name)
49
+ return false;
50
+ const lower = name.toLowerCase();
51
+ return (lower.includes("name") ||
52
+ lower.includes("title") ||
53
+ lower.includes("description") ||
54
+ lower.includes("text") ||
55
+ lower.includes("email") ||
56
+ lower.includes("url") ||
57
+ lower.includes("address") ||
58
+ lower.includes("phone") ||
59
+ lower.includes("message") ||
60
+ lower.includes("comment") ||
61
+ lower.includes("note") ||
62
+ lower.includes("code") ||
63
+ lower.includes("id") ||
64
+ lower.includes("key") ||
65
+ lower.includes("value") ||
66
+ lower.includes("path") ||
67
+ lower.includes("file") ||
68
+ lower.includes("content") ||
69
+ lower.includes("body") ||
70
+ lower.includes("subject"));
71
+ }
72
+ /**
73
+ * Check if a parameter property likely represents a string
74
+ * Used for heuristic string concatenation detection
75
+ */
76
+ export function isLikelyStringParam(property) {
77
+ if (!property)
78
+ return false;
79
+ return isLikelyStringColumn(property);
80
+ }
81
+ /**
82
+ * Extract parameter name from arrow function
83
+ */
84
+ export function getParameterName(arrowFunc) {
85
+ if (!arrowFunc.params || arrowFunc.params.length === 0)
86
+ return null;
87
+ return arrowFunc.params[0]?.name || null;
88
+ }
89
+ /**
90
+ * Get return expression from function body
91
+ */
92
+ export function getReturnExpression(body) {
93
+ if (!Array.isArray(body))
94
+ return null;
95
+ for (const stmt of body) {
96
+ if (stmt &&
97
+ typeof stmt === "object" &&
98
+ stmt.type === "ReturnStatement") {
99
+ return stmt.argument || null;
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/visitors/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Visitor for array literal expressions
3
+ * Creates array expressions from AST array literals
4
+ */
5
+ import type { ArrayExpression, Expression } from "../../expressions/expression.js";
6
+ import type { ArrayExpression as ASTArrayExpression } from "../../parser/ast-types.js";
7
+ import type { VisitorContext } from "../types.js";
8
+ /**
9
+ * Visit an array literal expression
10
+ */
11
+ export declare function visitArray(node: ASTArrayExpression, context: VisitorContext, visitExpression: (node: unknown, ctx: VisitorContext) => Expression | null): ArrayExpression | null;
12
+ //# sourceMappingURL=array-literal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-literal.d.ts","sourceRoot":"","sources":["../../../src/visitors/value/array-literal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,UAAU,GAAG,IAAI,GACzE,eAAe,GAAG,IAAI,CAgBxB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Visitor for array literal expressions
3
+ * Creates array expressions from AST array literals
4
+ */
5
+ /**
6
+ * Visit an array literal expression
7
+ */
8
+ export function visitArray(node, context, visitExpression) {
9
+ const elements = [];
10
+ for (const element of node.elements) {
11
+ if (element) {
12
+ const expr = visitExpression(element, context);
13
+ if (expr) {
14
+ elements.push(expr);
15
+ }
16
+ }
17
+ }
18
+ return {
19
+ type: "array",
20
+ elements,
21
+ };
22
+ }
23
+ //# sourceMappingURL=array-literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-literal.js","sourceRoot":"","sources":["../../../src/visitors/value/array-literal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAwB,EACxB,OAAuB,EACvB,eAA0E;IAE1E,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAElC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Visitor for call expressions (method calls, function calls)
3
+ * Handles string methods, boolean methods, aggregate functions
4
+ */
5
+ import type { Expression } from "../../expressions/expression.js";
6
+ import type { CallExpression as ASTCallExpression } from "../../parser/ast-types.js";
7
+ import type { VisitorContext } from "../types.js";
8
+ /**
9
+ * Visit a call expression
10
+ */
11
+ export declare function visitCall(node: ASTCallExpression, context: VisitorContext, visitExpression: (node: unknown, ctx: VisitorContext) => Expression | null): Expression | null;
12
+ //# sourceMappingURL=call-expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-expression.d.ts","sourceRoot":"","sources":["../../../src/visitors/value/call-expression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,UAAU,EAQX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,cAAc,IAAI,iBAAiB,EAUpC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,UAAU,GAAG,IAAI,GACzE,UAAU,GAAG,IAAI,CAsDnB"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Visitor for call expressions (method calls, function calls)
3
+ * Handles string methods, boolean methods, aggregate functions
4
+ */
5
+ import { visitLiteral } from "../common/literal.js";
6
+ import { isValueExpression, getParameterName, getReturnExpression } from "../utils.js";
7
+ import { isWindowFunctionCall, visitWindowFunction } from "../window/index.js";
8
+ /**
9
+ * Visit a call expression
10
+ */
11
+ export function visitCall(node, context, visitExpression) {
12
+ // Check for window function calls first
13
+ const windowFunctionType = isWindowFunctionCall(node, context);
14
+ if (windowFunctionType) {
15
+ return visitWindowFunction(node, windowFunctionType, context, visitExpression);
16
+ }
17
+ // Must be a method call
18
+ if (node.callee.type !== "MemberExpression") {
19
+ throw new Error(`Unsupported call expression: ${node.callee.type}. ` +
20
+ `Method calls are only supported for specific string and boolean methods.`);
21
+ }
22
+ const memberCallee = node.callee;
23
+ // Check for aggregate methods on grouping parameters
24
+ if (memberCallee.object.type === "Identifier" && memberCallee.property.type === "Identifier") {
25
+ const objName = memberCallee.object.name;
26
+ const methodName = memberCallee.property.name;
27
+ // Check if this is an aggregate method on grouping
28
+ if (context.groupingParams?.has(objName)) {
29
+ return handleAggregateMethod(methodName, node.arguments, context, visitExpression);
30
+ }
31
+ }
32
+ // Convert the object being called on
33
+ const obj = visitExpression(memberCallee.object, context);
34
+ if (!obj || memberCallee.property.type !== "Identifier") {
35
+ return null;
36
+ }
37
+ const methodName = memberCallee.property.name;
38
+ // Handle array.includes() -> IN expression (only for arrays/params)
39
+ if (methodName === "includes" && (obj.type === "array" || obj.type === "param")) {
40
+ return handleIncludesMethod(obj, node.arguments, context, visitExpression);
41
+ }
42
+ // String/boolean methods (including string.includes)
43
+ if (isValueExpression(obj)) {
44
+ return handleValueMethods(obj, methodName, node.arguments, context, visitExpression);
45
+ }
46
+ return null;
47
+ }
48
+ /**
49
+ * Handle aggregate methods on grouping parameters
50
+ */
51
+ function handleAggregateMethod(methodName, args, context, visitExpression) {
52
+ const aggregateFunc = normalizeAggregateFunction(methodName);
53
+ if (!aggregateFunc)
54
+ return null;
55
+ // Handle selector argument if present
56
+ if (args && args.length > 0) {
57
+ const selectorArg = args[0];
58
+ if (selectorArg && selectorArg.type === "ArrowFunctionExpression") {
59
+ const arrowFunc = selectorArg;
60
+ const paramName = getParameterName(arrowFunc);
61
+ // Add parameter to context
62
+ if (paramName) {
63
+ context.tableParams.add(paramName);
64
+ }
65
+ // Get body expression
66
+ const bodyExpr = arrowFunc.body.type === "BlockStatement"
67
+ ? getReturnExpression(arrowFunc.body.body)
68
+ : arrowFunc.body;
69
+ if (bodyExpr) {
70
+ const expr = visitExpression(bodyExpr, context);
71
+ if (expr && isValueExpression(expr)) {
72
+ return {
73
+ type: "aggregate",
74
+ function: aggregateFunc,
75
+ expression: expr,
76
+ };
77
+ }
78
+ }
79
+ }
80
+ }
81
+ // No arguments - COUNT(*) or similar
82
+ return {
83
+ type: "aggregate",
84
+ function: aggregateFunc,
85
+ };
86
+ }
87
+ /**
88
+ * Handle array.includes() method
89
+ */
90
+ function handleIncludesMethod(obj, args, context, visitExpression) {
91
+ const isArrayLike = obj.type === "array" || obj.type === "param";
92
+ if (isArrayLike && args && args.length === 1 && args[0]) {
93
+ const valueArg = visitExpression(args[0], context);
94
+ if (valueArg && isValueExpression(valueArg)) {
95
+ return {
96
+ type: "in",
97
+ value: valueArg,
98
+ list: obj,
99
+ };
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * Handle methods on value expressions
106
+ */
107
+ function handleValueMethods(obj, methodName, args, context, visitExpression) {
108
+ // Boolean methods
109
+ if (["startsWith", "endsWith", "includes", "contains"].includes(methodName)) {
110
+ // Convert arguments
111
+ const convertedArgs = args.map((arg) => {
112
+ // Convert literals
113
+ if (isLiteralNode(arg)) {
114
+ return visitLiteral(arg, context);
115
+ }
116
+ return visitExpression(arg, context);
117
+ });
118
+ return {
119
+ type: "booleanMethod",
120
+ object: obj,
121
+ method: methodName,
122
+ arguments: convertedArgs.filter(Boolean),
123
+ };
124
+ }
125
+ // String methods
126
+ if (["toLowerCase", "toUpperCase"].includes(methodName)) {
127
+ return {
128
+ type: "stringMethod",
129
+ object: obj,
130
+ method: methodName,
131
+ };
132
+ }
133
+ return null;
134
+ }
135
+ /**
136
+ * Normalize aggregate function name
137
+ */
138
+ function normalizeAggregateFunction(methodName) {
139
+ const lower = methodName.toLowerCase();
140
+ switch (lower) {
141
+ case "count":
142
+ return "count";
143
+ case "sum":
144
+ return "sum";
145
+ case "avg":
146
+ case "average":
147
+ return "avg";
148
+ case "min":
149
+ return "min";
150
+ case "max":
151
+ return "max";
152
+ default:
153
+ return null;
154
+ }
155
+ }
156
+ /**
157
+ * Check if node is a literal
158
+ */
159
+ function isLiteralNode(node) {
160
+ if (!node)
161
+ return false;
162
+ const type = node.type;
163
+ return ["Literal", "NumericLiteral", "StringLiteral", "BooleanLiteral", "NullLiteral"].includes(type || "");
164
+ }
165
+ //# sourceMappingURL=call-expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-expression.js","sourceRoot":"","sources":["../../../src/visitors/value/call-expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Visitor for object literal expressions
3
+ * Used primarily in SELECT projections
4
+ */
5
+ import type { ObjectExpression, Expression } from "../../expressions/expression.js";
6
+ import type { ObjectExpression as ASTObjectExpression } from "../../parser/ast-types.js";
7
+ import type { VisitorContext } from "../types.js";
8
+ /**
9
+ * Visit an object literal expression
10
+ */
11
+ export declare function visitObject(node: ASTObjectExpression, context: VisitorContext, visitExpression: (node: unknown, ctx: VisitorContext) => Expression | null): ObjectExpression | null;
12
+ //# sourceMappingURL=object-literal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-literal.d.ts","sourceRoot":"","sources":["../../../src/visitors/value/object-literal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAEX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,gBAAgB,IAAI,mBAAmB,EAIxC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,UAAU,GAAG,IAAI,GACzE,gBAAgB,GAAG,IAAI,CAyBzB"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Visitor for object literal expressions
3
+ * Used primarily in SELECT projections
4
+ */
5
+ /**
6
+ * Visit an object literal expression
7
+ */
8
+ export function visitObject(node, context, visitExpression) {
9
+ const properties = {};
10
+ for (const prop of node.properties) {
11
+ // Handle spread operator
12
+ if ("type" in prop && prop.type === "SpreadElement") {
13
+ handleSpreadElement(prop, context, properties);
14
+ continue;
15
+ }
16
+ // Handle regular properties
17
+ const key = extractPropertyKey(prop);
18
+ if (key) {
19
+ const value = visitExpression(prop.value, context);
20
+ if (!value) {
21
+ continue; // Skip null values instead of returning null for entire object
22
+ }
23
+ properties[key] = value;
24
+ }
25
+ }
26
+ return {
27
+ type: "object",
28
+ properties,
29
+ };
30
+ }
31
+ /**
32
+ * Handle spread element in object literal
33
+ */
34
+ function handleSpreadElement(prop, context, properties) {
35
+ const spreadProp = prop;
36
+ const spreadArg = spreadProp.argument;
37
+ if (spreadArg.type === "Identifier") {
38
+ const spreadName = spreadArg.name;
39
+ // Check if spreading JOIN result with known shape
40
+ if (context.joinResultParam === spreadName && context.currentResultShape) {
41
+ flattenShape(context.currentResultShape, properties);
42
+ }
43
+ else {
44
+ throw new Error(`Spread operator used without shape information. ` +
45
+ `This typically occurs when spreading a parameter '${spreadName}' that isn't from a JOIN result. ` +
46
+ `Spread is only supported for JOIN result parameters with known shapes.`);
47
+ }
48
+ }
49
+ }
50
+ /**
51
+ * Recursively flatten shape into properties
52
+ */
53
+ function flattenShape(shape, properties, prefix = "") {
54
+ for (const [propName, shapeProp] of shape.properties) {
55
+ const fullName = prefix ? `${prefix}.${propName}` : propName;
56
+ if (shapeProp.type === "column") {
57
+ // Direct column reference
58
+ const colNode = shapeProp;
59
+ properties[fullName] = {
60
+ type: "column",
61
+ name: colNode.columnName,
62
+ source: { type: "spread", sourceIndex: colNode.sourceTable || 0 },
63
+ };
64
+ }
65
+ else if (shapeProp.type === "object") {
66
+ // Nested object - recursively flatten
67
+ flattenShape(shapeProp, properties, fullName);
68
+ }
69
+ else if (shapeProp.type === "reference") {
70
+ // Reference to entire table
71
+ const refNode = shapeProp;
72
+ properties[fullName] = {
73
+ type: "column",
74
+ name: fullName,
75
+ source: { type: "spread", sourceIndex: refNode.sourceTable || 0 },
76
+ };
77
+ }
78
+ }
79
+ }
80
+ /**
81
+ * Extract property key from property node
82
+ */
83
+ function extractPropertyKey(prop) {
84
+ if (!prop)
85
+ return null;
86
+ const p = prop;
87
+ if (!p.key)
88
+ return null;
89
+ const key = p.key;
90
+ if (key.type === "Identifier") {
91
+ return key.name;
92
+ }
93
+ if (key.type === "Literal" || key.type === "StringLiteral") {
94
+ return String(key.value);
95
+ }
96
+ return null;
97
+ }
98
+ //# sourceMappingURL=object-literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-literal.js","sourceRoot":"","sources":["../../../src/visitors/value/object-literal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAyB,EACzB,OAAuB,EACvB,eAA0E;IAE1E,MAAM,UAAU,GAA+B,EAAE,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,yBAAyB;QACzB,IAAI,MAAM,IAAI,IAAI,IAAK,IAAyB,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1E,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS,CAAC,+DAA+D;YAC3E,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,IAAa,EACb,OAAuB,EACvB,UAAsC;IAEtC,MAAM,UAAU,GAAG,IAGlB,CAAC;IAEF,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;IACtC,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;QAElC,kDAAkD;QAClD,IAAI,OAAO,CAAC,eAAe,KAAK,UAAU,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACzE,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,kDAAkD;gBAChD,qDAAqD,UAAU,mCAAmC;gBAClG,wEAAwE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,KAAsB,EACtB,UAAsC,EACtC,SAAiB,EAAE;IAEnB,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE7D,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,0BAA0B;YAC1B,MAAM,OAAO,GAAG,SAA4B,CAAC;YAC7C,UAAU,CAAC,QAAQ,CAAC,GAAG;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO,CAAC,UAAU;gBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;aAC9C,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,sCAAsC;YACtC,YAAY,CAAC,SAA4B,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1C,4BAA4B;YAC5B,MAAM,OAAO,GAAG,SAA+B,CAAC;YAChD,UAAU,CAAC,QAAQ,CAAC,GAAG;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;aAC9C,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,CAAC,GAAG,IAA0C,CAAC;IACrD,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAwD,CAAC;IAEvE,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAQ,GAAkB,CAAC,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAE,GAA+B,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Utility functions for visitor implementations
3
+ */
4
+ import type { Expression, BooleanExpression, ValueExpression } from "../expressions/expression.js";
5
+ import type { ArrowFunctionExpression, Statement, Expression as ASTExpression } from "../parser/ast-types.js";
6
+ /**
7
+ * Get the parameter name from an arrow function
8
+ */
9
+ export declare function getParameterName(arrowFunc: ArrowFunctionExpression): string | null;
10
+ /**
11
+ * Get the return expression from a block statement body
12
+ */
13
+ export declare function getReturnExpression(statements: Statement[]): ASTExpression | null;
14
+ /**
15
+ * Check if an expression is a boolean expression
16
+ */
17
+ export declare function isBooleanExpression(expr: Expression): expr is BooleanExpression;
18
+ /**
19
+ * Check if an expression is a value expression
20
+ */
21
+ export declare function isValueExpression(expr: Expression): expr is ValueExpression;
22
+ //# sourceMappingURL=visitor-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-utils.d.ts","sourceRoot":"","sources":["../../src/visitors/visitor-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EACT,UAAU,IAAI,aAAa,EAE5B,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI,CAQlF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,aAAa,GAAG,IAAI,CAOjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,iBAAiB,CAe/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,eAAe,CAgB3E"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Utility functions for visitor implementations
3
+ */
4
+ /**
5
+ * Get the parameter name from an arrow function
6
+ */
7
+ export function getParameterName(arrowFunc) {
8
+ if (arrowFunc.params && arrowFunc.params.length > 0) {
9
+ const param = arrowFunc.params[0];
10
+ if (param && param.type === "Identifier") {
11
+ return param.name;
12
+ }
13
+ }
14
+ return null;
15
+ }
16
+ /**
17
+ * Get the return expression from a block statement body
18
+ */
19
+ export function getReturnExpression(statements) {
20
+ for (const stmt of statements) {
21
+ if (stmt.type === "ReturnStatement") {
22
+ return stmt.argument || null;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ /**
28
+ * Check if an expression is a boolean expression
29
+ */
30
+ export function isBooleanExpression(expr) {
31
+ if (!expr)
32
+ return false;
33
+ const booleanTypes = [
34
+ "comparison",
35
+ "logical",
36
+ "negation",
37
+ "in",
38
+ "booleanLiteral",
39
+ "booleanColumn",
40
+ "isNull",
41
+ "isNotNull",
42
+ ];
43
+ return booleanTypes.includes(expr.type);
44
+ }
45
+ /**
46
+ * Check if an expression is a value expression
47
+ */
48
+ export function isValueExpression(expr) {
49
+ if (!expr)
50
+ return false;
51
+ const valueTypes = [
52
+ "literal",
53
+ "column",
54
+ "parameter",
55
+ "arithmetic",
56
+ "concat",
57
+ "conditional",
58
+ "object",
59
+ "array",
60
+ "call",
61
+ ];
62
+ return valueTypes.includes(expr.type);
63
+ }
64
+ //# sourceMappingURL=visitor-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-utils.js","sourceRoot":"","sources":["../../src/visitors/visitor-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAkC;IACjE,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,OAAQ,KAAoB,CAAC,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAuB;IACzD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,OAAQ,IAAqC,CAAC,QAAQ,IAAI,IAAI,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,SAAS;QACT,UAAU;QACV,IAAI;QACJ,gBAAgB;QAChB,eAAe;QACf,QAAQ;QACR,WAAW;KACZ,CAAC;IAEF,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,UAAU,GAAG;QACjB,SAAS;QACT,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,OAAO;QACP,MAAM;KACP,CAAC;IAEF,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Boolean method visitor for WHERE clauses
3
+ * Handles method calls that return boolean values
4
+ */
5
+ import type { BooleanExpression } from "../../expressions/expression.js";
6
+ import type { CallExpression } from "../../parser/ast-types.js";
7
+ import type { WhereContext, VisitorResult } from "./context.js";
8
+ /**
9
+ * Visit boolean method calls
10
+ */
11
+ export declare function visitBooleanMethod(node: CallExpression, context: WhereContext): VisitorResult<BooleanExpression | null>;
12
+ //# sourceMappingURL=boolean-method.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-method.d.ts","sourceRoot":"","sources":["../../../src/visitors/where/boolean-method.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGhE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,YAAY,GACpB,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA+JzC"}