@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 @@
1
+ {"version":3,"file":"ast-visitor.js","sourceRoot":"","sources":["../../src/parser/ast-visitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { QueryOperation } from "../query-tree/operations.js";
2
+ export declare function normalizeJoins(operation: QueryOperation): QueryOperation;
3
+ //# sourceMappingURL=normalize-joins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-joins.d.ts","sourceRoot":"","sources":["../../src/parser/normalize-joins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,6BAA6B,CAAC;AAoHrC,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAoBxE"}
@@ -0,0 +1,109 @@
1
+ import { buildResultShape } from "../visitors/join/shape.js";
2
+ function isQueryOperation(value) {
3
+ return (!!value && typeof value === "object" && "operationType" in value);
4
+ }
5
+ function normalizeSelectMany(operation) {
6
+ const normalizedSource = normalizeJoins(operation.source);
7
+ operation.source = normalizedSource;
8
+ if (isQueryOperation(operation.collection)) {
9
+ const normalizedInner = normalizeJoins(operation.collection);
10
+ if (operation.resultBindings && operation.resultBindings.length > 0) {
11
+ const properties = {};
12
+ let hasOuterBinding = false;
13
+ let hasInnerBinding = false;
14
+ for (const binding of operation.resultBindings) {
15
+ const paramIndex = binding.source === "outer" ? 0 : 1;
16
+ if (binding.source === "outer") {
17
+ hasOuterBinding = true;
18
+ }
19
+ else {
20
+ hasInnerBinding = true;
21
+ }
22
+ properties[binding.name] = {
23
+ type: "reference",
24
+ source: { type: "joinParam", paramIndex },
25
+ };
26
+ }
27
+ if (hasOuterBinding && hasInnerBinding) {
28
+ const resultSelector = {
29
+ type: "object",
30
+ properties,
31
+ };
32
+ const resultShape = buildResultShape(resultSelector, "__outer", "__inner");
33
+ const joinOperation = {
34
+ type: "queryOperation",
35
+ operationType: "join",
36
+ source: normalizedSource,
37
+ inner: normalizedInner,
38
+ outerKey: "__cross",
39
+ innerKey: "__cross",
40
+ resultSelector,
41
+ resultShape,
42
+ joinType: "cross",
43
+ };
44
+ return joinOperation;
45
+ }
46
+ }
47
+ return operation;
48
+ }
49
+ if (normalizedSource.operationType !== "groupJoin") {
50
+ return operation;
51
+ }
52
+ const groupJoin = normalizedSource;
53
+ if (!operation.usesDefaultIfEmpty ||
54
+ !operation.collectionPropertyPath ||
55
+ operation.collectionPropertyPath.length === 0 ||
56
+ !groupJoin.groupBindingName ||
57
+ operation.collectionPropertyPath[0] !== groupJoin.groupBindingName ||
58
+ !operation.resultBindings ||
59
+ operation.resultBindings.length === 0) {
60
+ return operation;
61
+ }
62
+ const normalizedOuterSource = normalizeJoins(groupJoin.source);
63
+ const normalizedInnerSource = normalizeJoins(groupJoin.inner);
64
+ const properties = {};
65
+ for (const binding of operation.resultBindings) {
66
+ const paramIndex = binding.source === "outer" ? 0 : 1;
67
+ properties[binding.name] = {
68
+ type: "reference",
69
+ source: { type: "joinParam", paramIndex },
70
+ };
71
+ }
72
+ const resultSelector = {
73
+ type: "object",
74
+ properties,
75
+ };
76
+ const resultShape = buildResultShape(resultSelector, "__outer", "__inner");
77
+ const joinOperation = {
78
+ type: "queryOperation",
79
+ operationType: "join",
80
+ source: normalizedOuterSource,
81
+ inner: normalizedInnerSource,
82
+ outerKey: groupJoin.outerKey,
83
+ innerKey: groupJoin.innerKey,
84
+ outerKeySource: groupJoin.outerKeySource,
85
+ resultSelector,
86
+ resultShape,
87
+ joinType: "left",
88
+ };
89
+ return joinOperation;
90
+ }
91
+ export function normalizeJoins(operation) {
92
+ if (operation.operationType === "selectMany") {
93
+ return normalizeSelectMany(operation);
94
+ }
95
+ if (operation.source) {
96
+ const current = operation;
97
+ if (current.source) {
98
+ current.source = normalizeJoins(current.source);
99
+ }
100
+ }
101
+ if (operation.inner) {
102
+ const op = operation;
103
+ if (op.inner && isQueryOperation(op.inner)) {
104
+ op.inner = normalizeJoins(op.inner);
105
+ }
106
+ }
107
+ return operation;
108
+ }
109
+ //# sourceMappingURL=normalize-joins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-joins.js","sourceRoot":"","sources":["../../src/parser/normalize-joins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Normalization pass that wraps queries in subqueries when WHERE clauses
3
+ * reference window function columns defined in SELECT.
4
+ *
5
+ * This is necessary because SQL does not allow referencing window function
6
+ * aliases in the WHERE clause of the same query level.
7
+ */
8
+ import type { QueryOperation } from "../query-tree/operations.js";
9
+ /**
10
+ * Main entry point: wrap queries that filter on window function columns
11
+ */
12
+ export declare function wrapWindowFilters(operation: QueryOperation): QueryOperation;
13
+ //# sourceMappingURL=normalize-window-filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-window-filters.d.ts","sourceRoot":"","sources":["../../src/parser/normalize-window-filters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,6BAA6B,CAAC;AA0RrC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAE3E"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Normalization pass that wraps queries in subqueries when WHERE clauses
3
+ * reference window function columns defined in SELECT.
4
+ *
5
+ * This is necessary because SQL does not allow referencing window function
6
+ * aliases in the WHERE clause of the same query level.
7
+ */
8
+ /**
9
+ * Extract window function column names from a SELECT operation
10
+ */
11
+ function getWindowAliasesFromSelect(selectOp, parentAliases) {
12
+ const aliases = new Set();
13
+ if (!selectOp.selector) {
14
+ // SELECT * - no new window aliases, but preserve parent ones
15
+ return parentAliases;
16
+ }
17
+ if (selectOp.selector.type === "allColumns") {
18
+ // SELECT all - preserve parent window aliases
19
+ return parentAliases;
20
+ }
21
+ if (selectOp.selector.type === "object") {
22
+ const objectExpr = selectOp.selector;
23
+ for (const [propName, expr] of Object.entries(objectExpr.properties)) {
24
+ // Direct window function
25
+ if (expr.type === "windowFunction") {
26
+ aliases.add(propName);
27
+ }
28
+ // Forwarded window alias: { newRn: r.rn } where "rn" is a window alias
29
+ else if (expr.type === "column") {
30
+ const colExpr = expr;
31
+ if (parentAliases.has(colExpr.name)) {
32
+ aliases.add(propName);
33
+ }
34
+ }
35
+ }
36
+ }
37
+ return aliases;
38
+ }
39
+ /**
40
+ * Check if a boolean expression references any columns in the given set
41
+ */
42
+ function referencesColumns(expr, columnNames) {
43
+ switch (expr.type) {
44
+ case "comparison":
45
+ return (expressionReferencesColumns(expr.left, columnNames) ||
46
+ expressionReferencesColumns(expr.right, columnNames));
47
+ case "logical":
48
+ return (referencesColumns(expr.left, columnNames) || referencesColumns(expr.right, columnNames));
49
+ case "not":
50
+ return referencesColumns(expr.expression, columnNames);
51
+ case "booleanColumn":
52
+ return columnNames.has(expr.name);
53
+ case "in":
54
+ return expressionReferencesColumns(expr.value, columnNames);
55
+ case "isNull":
56
+ return expressionReferencesColumns(expr.expression, columnNames);
57
+ case "booleanMethod":
58
+ return expressionReferencesColumns(expr.object, columnNames);
59
+ case "caseInsensitiveFunction":
60
+ return expr.arguments.some((arg) => expressionReferencesColumns(arg, columnNames));
61
+ case "booleanConstant":
62
+ case "booleanParam":
63
+ return false;
64
+ default:
65
+ return false;
66
+ }
67
+ }
68
+ /**
69
+ * Check if a value expression references any columns in the given set
70
+ */
71
+ function expressionReferencesColumns(expr, columnNames) {
72
+ if (!expr) {
73
+ return false;
74
+ }
75
+ switch (expr.type) {
76
+ case "column":
77
+ return columnNames.has(expr.name);
78
+ case "arithmetic":
79
+ return (expressionReferencesColumns(expr.left, columnNames) ||
80
+ expressionReferencesColumns(expr.right, columnNames));
81
+ case "concat":
82
+ return (expressionReferencesColumns(expr.left, columnNames) ||
83
+ expressionReferencesColumns(expr.right, columnNames));
84
+ case "stringMethod":
85
+ return expressionReferencesColumns(expr.object, columnNames);
86
+ case "case":
87
+ return (expr.conditions.some((c) => referencesColumns(c.when, columnNames) ||
88
+ expressionReferencesColumns(c.then, columnNames)) || (expr.else ? expressionReferencesColumns(expr.else, columnNames) : false));
89
+ case "coalesce":
90
+ return expr.expressions.some((e) => expressionReferencesColumns(e, columnNames));
91
+ case "object":
92
+ return Object.values(expr.properties).some((e) => expressionReferencesColumns(e, columnNames));
93
+ case "constant":
94
+ case "param":
95
+ case "reference":
96
+ case "allColumns":
97
+ case "aggregate":
98
+ case "windowFunction":
99
+ return false;
100
+ default:
101
+ return false;
102
+ }
103
+ }
104
+ /**
105
+ * Recursively normalize operations and wrap WHERE clauses that reference window columns
106
+ */
107
+ function visit(operation, parentAliases = new Set()) {
108
+ // Handle WHERE operations specially - this is where wrapping happens
109
+ if (operation.operationType === "where") {
110
+ const whereOp = operation;
111
+ // First, recursively normalize the source
112
+ const normalizedSource = visit(whereOp.source, parentAliases);
113
+ // Check if this WHERE references any window aliases from the source
114
+ if (referencesColumns(whereOp.predicate, normalizedSource.windowAliases) &&
115
+ normalizedSource.windowAliases.size > 0) {
116
+ // Need to wrap - but don't wrap if source is already a subquery FROM
117
+ const needsWrapping = !(normalizedSource.operation.operationType === "from" &&
118
+ normalizedSource.operation.subquery);
119
+ if (needsWrapping) {
120
+ // Get the original table name for aliasing
121
+ const originalTableName = getOriginalTableName(normalizedSource.operation);
122
+ // Create a subquery FROM operation
123
+ const subqueryFrom = {
124
+ type: "queryOperation",
125
+ operationType: "from",
126
+ subquery: normalizedSource.operation,
127
+ aliasHint: originalTableName,
128
+ };
129
+ // Return wrapped WHERE with the subquery
130
+ const wrappedWhere = {
131
+ type: "queryOperation",
132
+ operationType: "where",
133
+ source: subqueryFrom,
134
+ predicate: whereOp.predicate,
135
+ };
136
+ return {
137
+ operation: wrappedWhere,
138
+ windowAliases: normalizedSource.windowAliases,
139
+ };
140
+ }
141
+ }
142
+ // No wrapping needed - return normalized WHERE
143
+ const normalizedWhere = {
144
+ type: "queryOperation",
145
+ operationType: "where",
146
+ source: normalizedSource.operation,
147
+ predicate: whereOp.predicate,
148
+ };
149
+ return {
150
+ operation: normalizedWhere,
151
+ windowAliases: normalizedSource.windowAliases,
152
+ };
153
+ }
154
+ // Handle SELECT operations - track window aliases
155
+ if (operation.operationType === "select") {
156
+ const selectOp = operation;
157
+ const normalizedSource = visit(selectOp.source, parentAliases);
158
+ // Extract window aliases from this SELECT
159
+ const newAliases = getWindowAliasesFromSelect(selectOp, normalizedSource.windowAliases);
160
+ const normalizedSelect = {
161
+ type: "queryOperation",
162
+ operationType: "select",
163
+ source: normalizedSource.operation,
164
+ selector: selectOp.selector,
165
+ };
166
+ return {
167
+ operation: normalizedSelect,
168
+ windowAliases: newAliases,
169
+ };
170
+ }
171
+ // For all other operations, recursively normalize source and propagate aliases
172
+ const sourceOp = operation;
173
+ if (sourceOp.source) {
174
+ const normalizedSource = visit(sourceOp.source, parentAliases);
175
+ // We need to reconstruct the operation with the normalized source
176
+ // Since we can't spread due to type constraints, handle common operations explicitly
177
+ const reconstructed = {
178
+ ...operation,
179
+ source: normalizedSource.operation,
180
+ };
181
+ return {
182
+ operation: reconstructed,
183
+ windowAliases: normalizedSource.windowAliases,
184
+ };
185
+ }
186
+ // Base case: no source (e.g., FROM operation)
187
+ return {
188
+ operation,
189
+ windowAliases: new Set(),
190
+ };
191
+ }
192
+ /**
193
+ * Get the original table name from an operation tree
194
+ */
195
+ function getOriginalTableName(operation) {
196
+ if (operation.operationType === "from") {
197
+ const fromOp = operation;
198
+ return fromOp.aliasHint || fromOp.table;
199
+ }
200
+ const sourceOp = operation;
201
+ if (sourceOp.source) {
202
+ return getOriginalTableName(sourceOp.source);
203
+ }
204
+ return undefined;
205
+ }
206
+ /**
207
+ * Main entry point: wrap queries that filter on window function columns
208
+ */
209
+ export function wrapWindowFilters(operation) {
210
+ return visit(operation).operation;
211
+ }
212
+ //# sourceMappingURL=normalize-window-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-window-filters.js","sourceRoot":"","sources":["../../src/parser/normalize-window-filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * OXC Parser wrapper
3
+ * Wraps the OXC WASM parser for JavaScript/TypeScript parsing
4
+ */
5
+ /**
6
+ * Parses JavaScript/TypeScript code using OXC parser
7
+ * @param code The JavaScript/TypeScript code to parse
8
+ * @returns The parsed AST or null if parsing fails
9
+ */
10
+ export declare function parseJavaScript(code: string): unknown;
11
+ //# sourceMappingURL=oxc-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxc-parser.d.ts","sourceRoot":"","sources":["../../src/parser/oxc-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBrD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * OXC Parser wrapper
3
+ * Wraps the OXC WASM parser for JavaScript/TypeScript parsing
4
+ */
5
+ import { parseSync } from "oxc-parser";
6
+ /**
7
+ * Parses JavaScript/TypeScript code using OXC parser
8
+ * @param code The JavaScript/TypeScript code to parse
9
+ * @returns The parsed AST or null if parsing fails
10
+ */
11
+ export function parseJavaScript(code) {
12
+ try {
13
+ const result = parseSync("query.ts", code, {
14
+ sourceType: "module",
15
+ });
16
+ if (result.errors.length > 0) {
17
+ console.error("Parse errors:", result.errors);
18
+ return null;
19
+ }
20
+ return result.program;
21
+ }
22
+ catch (error) {
23
+ console.error("Failed to parse JavaScript:", error);
24
+ return null;
25
+ }
26
+ }
27
+ //# sourceMappingURL=oxc-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxc-parser.js","sourceRoot":"","sources":["../../src/parser/oxc-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;YACzC,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Parse cache configuration
3
+ */
4
+ /**
5
+ * Configuration options for the parse result cache
6
+ */
7
+ export interface ParseCacheConfig {
8
+ /**
9
+ * Whether caching is enabled
10
+ * @default true
11
+ */
12
+ enabled: boolean;
13
+ /**
14
+ * Maximum number of cached parse results
15
+ * @default 1024
16
+ */
17
+ capacity: number;
18
+ }
19
+ /**
20
+ * Update parse cache configuration
21
+ */
22
+ export declare function setParseCacheConfig(config: Partial<ParseCacheConfig>): void;
23
+ /**
24
+ * Get current parse cache configuration
25
+ */
26
+ export declare function getParseCacheConfig(): ParseCacheConfig;
27
+ /**
28
+ * Clear all cached parse results
29
+ */
30
+ export declare function clearParseCache(): void;
31
+ //# sourceMappingURL=parse-cache-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cache-config.d.ts","sourceRoot":"","sources":["../../src/parser/parse-cache-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAM3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Parse cache configuration
3
+ */
4
+ import { parseCache } from "./parse-cache.js";
5
+ /**
6
+ * Current cache configuration
7
+ */
8
+ let currentConfig = {
9
+ enabled: true,
10
+ capacity: 1024,
11
+ };
12
+ /**
13
+ * Update parse cache configuration
14
+ */
15
+ export function setParseCacheConfig(config) {
16
+ currentConfig = { ...currentConfig, ...config };
17
+ if (config.capacity !== undefined) {
18
+ parseCache.setCapacity(currentConfig.capacity);
19
+ }
20
+ }
21
+ /**
22
+ * Get current parse cache configuration
23
+ */
24
+ export function getParseCacheConfig() {
25
+ return { ...currentConfig };
26
+ }
27
+ /**
28
+ * Clear all cached parse results
29
+ */
30
+ export function clearParseCache() {
31
+ parseCache.clear();
32
+ }
33
+ //# sourceMappingURL=parse-cache-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cache-config.js","sourceRoot":"","sources":["../../src/parser/parse-cache-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmB9C;;GAEG;AACH,IAAI,aAAa,GAAqB;IACpC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAEhD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Parse result cache implementation using LRU (Least Recently Used) eviction
3
+ */
4
+ import type { QueryOperation } from "../query-tree/operations.js";
5
+ import type { VisitorContextSnapshot } from "../visitors/types.js";
6
+ /**
7
+ * Cached parse result containing the operation tree and auto-generated parameters
8
+ */
9
+ export interface CachedParseResult {
10
+ operation: QueryOperation;
11
+ autoParams: Record<string, unknown>;
12
+ autoParamInfos?: Record<string, unknown>;
13
+ contextSnapshot: VisitorContextSnapshot;
14
+ }
15
+ /**
16
+ * LRU cache implementation for parse results
17
+ */
18
+ export declare class ParseCache {
19
+ private capacity;
20
+ private cache;
21
+ private head;
22
+ private tail;
23
+ constructor(capacity: number);
24
+ /**
25
+ * Get a cached parse result
26
+ */
27
+ get(key: string): CachedParseResult | undefined;
28
+ /**
29
+ * Store a parse result in the cache
30
+ */
31
+ set(key: string, value: CachedParseResult): void;
32
+ /**
33
+ * Clear all cached entries
34
+ */
35
+ clear(): void;
36
+ /**
37
+ * Update the cache capacity
38
+ */
39
+ setCapacity(capacity: number): void;
40
+ /**
41
+ * Get current cache size
42
+ */
43
+ size(): number;
44
+ /**
45
+ * Move node to front of LRU list
46
+ */
47
+ private moveToFront;
48
+ /**
49
+ * Add node to front of LRU list
50
+ */
51
+ private addToFront;
52
+ /**
53
+ * Remove node from LRU list
54
+ */
55
+ private removeNode;
56
+ /**
57
+ * Evict least recently used entry
58
+ */
59
+ private evictLRU;
60
+ }
61
+ /**
62
+ * Singleton parse cache instance
63
+ */
64
+ export declare const parseCache: ParseCache;
65
+ //# sourceMappingURL=parse-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-cache.d.ts","sourceRoot":"","sources":["../../src/parser/parse-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,EAAE,sBAAsB,CAAC;CACzC;AAcD;;GAEG;AACH,qBAAa,UAAU;IAKT,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,IAAI,CAAwB;gBAEhB,QAAQ,EAAE,MAAM;IAEpC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAW/C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAwBhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcnC;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAQjB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAuB,CAAC"}