@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,19 @@
1
+ /**
2
+ * Entry point for creating DELETE queries
3
+ */
4
+ import { Deletable } from "./deletable.js";
5
+ import type { DatabaseSchema } from "./database-context.js";
6
+ /**
7
+ * Creates a new Deletable from a table name with explicit type
8
+ * @param tableName The name of the table to delete from
9
+ * @returns A new Deletable instance
10
+ */
11
+ export declare function deleteFrom<T>(tableName: string): Deletable<T>;
12
+ /**
13
+ * Creates a new Deletable from a typed database context
14
+ * @param context The database context with schema information
15
+ * @param tableName The name of the table to delete from (type-safe)
16
+ * @returns A new Deletable instance with inferred types
17
+ */
18
+ export declare function deleteFrom<TSchema, K extends keyof TSchema & string>(context: DatabaseSchema<TSchema>, tableName: K): Deletable<TSchema[K]>;
19
+ //# sourceMappingURL=delete-from.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-from.d.ts","sourceRoot":"","sources":["../../src/linq/delete-from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAClE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,CAAC,GACX,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Entry point for creating DELETE queries
3
+ */
4
+ import { Deletable } from "./deletable.js";
5
+ // Implementation
6
+ export function deleteFrom(_contextOrTable, _tableName) {
7
+ // Runtime doesn't need to differentiate - just return a Deletable
8
+ // Types are enforced at compile time through the overloads
9
+ return new Deletable();
10
+ }
11
+ //# sourceMappingURL=delete-from.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-from.js","sourceRoot":"","sources":["../../src/linq/delete-from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,eAAwB,EAAE,UAAoB;IACvE,kEAAkE;IAClE,2DAA2D;IAC3D,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Entry point for creating queries
3
+ */
4
+ import { Queryable } from "./queryable.js";
5
+ import type { DatabaseSchema } from "./database-context.js";
6
+ /**
7
+ * Creates a new Queryable from a table name with explicit type
8
+ * @param tableName The name of the table to query
9
+ * @returns A new Queryable instance
10
+ */
11
+ export declare function from<T>(tableName: string): Queryable<T>;
12
+ /**
13
+ * Creates a new Queryable from a typed database context
14
+ * @param context The database context with schema information
15
+ * @param tableName The name of the table to query (type-safe)
16
+ * @returns A new Queryable instance with inferred types
17
+ */
18
+ export declare function from<TSchema, K extends keyof TSchema & string>(context: DatabaseSchema<TSchema>, tableName: K): Queryable<TSchema[K]>;
19
+ //# sourceMappingURL=from.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from.d.ts","sourceRoot":"","sources":["../../src/linq/from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAC5D,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,CAAC,GACX,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Entry point for creating queries
3
+ */
4
+ import { Queryable } from "./queryable.js";
5
+ // Implementation
6
+ export function from(_contextOrTable, _tableName) {
7
+ // Runtime doesn't need to differentiate - just return a Queryable
8
+ // Types are enforced at compile time through the overloads
9
+ return new Queryable();
10
+ }
11
+ //# sourceMappingURL=from.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from.js","sourceRoot":"","sources":["../../src/linq/from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,iBAAiB;AACjB,MAAM,UAAU,IAAI,CAAC,eAAwB,EAAE,UAAoB;IACjE,kEAAkE;IAClE,2DAA2D;IAC3D,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Case-insensitive helper functions and window function builders for Tinqer queries
3
+ *
4
+ * These functions are available via the second parameter in query lambdas:
5
+ * (params, helpers) => helpers.functions.iequals(a, b)
6
+ * (params, helpers) => helpers.window.partitionBy(...).orderBy(...).rowNumber()
7
+ */
8
+ /**
9
+ * Hidden marker symbol to identify window function builders
10
+ */
11
+ export declare const WINDOW_MARKER: unique symbol;
12
+ /**
13
+ * Window function type
14
+ */
15
+ export type WindowFunctionType = "rowNumber" | "rank" | "denseRank";
16
+ /**
17
+ * Order specification for window functions
18
+ */
19
+ export interface WindowOrderSpec<T> {
20
+ selector: (row: T) => unknown;
21
+ direction: "asc" | "desc";
22
+ }
23
+ /**
24
+ * Window builder - initial state
25
+ * Can add partitionBy or start with orderBy
26
+ */
27
+ export declare class WindowBuilder<T> {
28
+ readonly partitionBySelectors: Array<(row: T) => unknown>;
29
+ readonly __windowMarker: symbol;
30
+ constructor(partitionBySelectors?: Array<(row: T) => unknown>);
31
+ partitionBy(...selectors: Array<(row: T) => unknown>): WindowBuilderWithPartition<T>;
32
+ orderBy(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
33
+ orderByDescending(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
34
+ }
35
+ /**
36
+ * Window builder with partition - can add more partitions or move to orderBy
37
+ */
38
+ export declare class WindowBuilderWithPartition<T> {
39
+ readonly partitionBySelectors: Array<(row: T) => unknown>;
40
+ readonly __windowMarker: symbol;
41
+ constructor(partitionBySelectors: Array<(row: T) => unknown>);
42
+ partitionBy(...selectors: Array<(row: T) => unknown>): WindowBuilderWithPartition<T>;
43
+ orderBy(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
44
+ orderByDescending(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
45
+ }
46
+ /**
47
+ * Window builder with order - can add more orderings or call terminal function
48
+ */
49
+ export declare class WindowBuilderWithOrder<T> {
50
+ readonly partitionBySelectors: Array<(row: T) => unknown>;
51
+ readonly orderBySpecs: Array<WindowOrderSpec<T>>;
52
+ readonly __windowMarker: symbol;
53
+ constructor(partitionBySelectors: Array<(row: T) => unknown>, orderBySpecs: Array<WindowOrderSpec<T>>);
54
+ thenBy(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
55
+ thenByDescending(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
56
+ rowNumber(): number;
57
+ rank(): number;
58
+ denseRank(): number;
59
+ }
60
+ /**
61
+ * Case-insensitive equality comparison
62
+ */
63
+ export declare function iequals<T>(_a: T, _b: T): boolean;
64
+ /**
65
+ * Case-insensitive string starts with
66
+ */
67
+ export declare function istartsWith(_str: string, _prefix: string): boolean;
68
+ /**
69
+ * Case-insensitive string ends with
70
+ */
71
+ export declare function iendsWith(_str: string, _suffix: string): boolean;
72
+ /**
73
+ * Case-insensitive string contains
74
+ */
75
+ export declare function icontains(_str: string, _substring: string): boolean;
76
+ /**
77
+ * Collection of case-insensitive functions
78
+ */
79
+ export declare const functions: {
80
+ readonly iequals: typeof iequals;
81
+ readonly istartsWith: typeof istartsWith;
82
+ readonly iendsWith: typeof iendsWith;
83
+ readonly icontains: typeof icontains;
84
+ };
85
+ /**
86
+ * Helper object provided as second parameter to query lambdas
87
+ */
88
+ export interface QueryHelpers {
89
+ functions: typeof functions;
90
+ window<T>(row: T): WindowBuilder<T>;
91
+ }
92
+ /**
93
+ * Create the helpers object for query execution
94
+ */
95
+ export declare function createQueryHelpers(): QueryHelpers;
96
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/linq/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Case-insensitive helper functions and window function builders for Tinqer queries
3
+ *
4
+ * These functions are available via the second parameter in query lambdas:
5
+ * (params, helpers) => helpers.functions.iequals(a, b)
6
+ * (params, helpers) => helpers.window.partitionBy(...).orderBy(...).rowNumber()
7
+ */
8
+ // ==================== Window Function Builders ====================
9
+ /**
10
+ * Hidden marker symbol to identify window function builders
11
+ */
12
+ export const WINDOW_MARKER = Symbol("window");
13
+ /**
14
+ * Window builder - initial state
15
+ * Can add partitionBy or start with orderBy
16
+ */
17
+ export class WindowBuilder {
18
+ constructor(partitionBySelectors = []) {
19
+ this.partitionBySelectors = partitionBySelectors;
20
+ this.__windowMarker = WINDOW_MARKER;
21
+ }
22
+ partitionBy(...selectors) {
23
+ return new WindowBuilderWithPartition([...this.partitionBySelectors, ...selectors]);
24
+ }
25
+ orderBy(selector) {
26
+ return new WindowBuilderWithOrder(this.partitionBySelectors, [
27
+ { selector, direction: "asc" },
28
+ ]);
29
+ }
30
+ orderByDescending(selector) {
31
+ return new WindowBuilderWithOrder(this.partitionBySelectors, [
32
+ { selector, direction: "desc" },
33
+ ]);
34
+ }
35
+ }
36
+ /**
37
+ * Window builder with partition - can add more partitions or move to orderBy
38
+ */
39
+ export class WindowBuilderWithPartition {
40
+ constructor(partitionBySelectors) {
41
+ this.partitionBySelectors = partitionBySelectors;
42
+ this.__windowMarker = WINDOW_MARKER;
43
+ }
44
+ partitionBy(...selectors) {
45
+ return new WindowBuilderWithPartition([...this.partitionBySelectors, ...selectors]);
46
+ }
47
+ orderBy(selector) {
48
+ return new WindowBuilderWithOrder(this.partitionBySelectors, [
49
+ { selector, direction: "asc" },
50
+ ]);
51
+ }
52
+ orderByDescending(selector) {
53
+ return new WindowBuilderWithOrder(this.partitionBySelectors, [
54
+ { selector, direction: "desc" },
55
+ ]);
56
+ }
57
+ }
58
+ /**
59
+ * Window builder with order - can add more orderings or call terminal function
60
+ */
61
+ export class WindowBuilderWithOrder {
62
+ constructor(partitionBySelectors, orderBySpecs) {
63
+ this.partitionBySelectors = partitionBySelectors;
64
+ this.orderBySpecs = orderBySpecs;
65
+ this.__windowMarker = WINDOW_MARKER;
66
+ }
67
+ thenBy(selector) {
68
+ return new WindowBuilderWithOrder(this.partitionBySelectors, [
69
+ ...this.orderBySpecs,
70
+ { selector, direction: "asc" },
71
+ ]);
72
+ }
73
+ thenByDescending(selector) {
74
+ return new WindowBuilderWithOrder(this.partitionBySelectors, [
75
+ ...this.orderBySpecs,
76
+ { selector, direction: "desc" },
77
+ ]);
78
+ }
79
+ // Terminal operations - these return number!
80
+ // They are never executed at runtime - only parsed by the visitor
81
+ rowNumber() {
82
+ throw new Error("Window functions are parsed for SQL generation, not executed at runtime.");
83
+ }
84
+ rank() {
85
+ throw new Error("Window functions are parsed for SQL generation, not executed at runtime.");
86
+ }
87
+ denseRank() {
88
+ throw new Error("Window functions are parsed for SQL generation, not executed at runtime.");
89
+ }
90
+ }
91
+ // ==================== Case-Insensitive Functions ====================
92
+ /**
93
+ * Case-insensitive equality comparison
94
+ */
95
+ export function iequals(_a, _b) {
96
+ throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
97
+ }
98
+ /**
99
+ * Case-insensitive string starts with
100
+ */
101
+ export function istartsWith(_str, _prefix) {
102
+ throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
103
+ }
104
+ /**
105
+ * Case-insensitive string ends with
106
+ */
107
+ export function iendsWith(_str, _suffix) {
108
+ throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
109
+ }
110
+ /**
111
+ * Case-insensitive string contains
112
+ */
113
+ export function icontains(_str, _substring) {
114
+ throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
115
+ }
116
+ /**
117
+ * Collection of case-insensitive functions
118
+ */
119
+ export const functions = {
120
+ iequals,
121
+ istartsWith,
122
+ iendsWith,
123
+ icontains,
124
+ };
125
+ /**
126
+ * Create the helpers object for query execution
127
+ */
128
+ export function createQueryHelpers() {
129
+ return {
130
+ functions,
131
+ window(_row) {
132
+ return new WindowBuilder();
133
+ },
134
+ };
135
+ }
136
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/linq/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Represents a collection of objects that have a common key
3
+ * Matches .NET LINQ Grouping pattern
4
+ */
5
+ export declare class Grouping<TKey, TElement> implements Iterable<TElement> {
6
+ readonly key: TKey;
7
+ private readonly elements;
8
+ constructor(key: TKey, elements: TElement[]);
9
+ [Symbol.iterator](): Iterator<TElement>;
10
+ /**
11
+ * Convert to array (convenience method)
12
+ */
13
+ toArray(): TElement[];
14
+ /**
15
+ * Aggregate methods - these are placeholders for type safety
16
+ * The SQL generator handles these specially and they're never actually called
17
+ */
18
+ count(): number;
19
+ sum(_selector: (element: TElement) => number): number;
20
+ avg(_selector: (element: TElement) => number): number;
21
+ average(selector: (element: TElement) => number): number;
22
+ min<TResult>(_selector: (element: TElement) => TResult): TResult;
23
+ max<TResult>(_selector: (element: TElement) => TResult): TResult;
24
+ defaultIfEmpty(_defaultValue?: TElement): Iterable<TElement>;
25
+ }
26
+ //# sourceMappingURL=grouping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../src/linq/grouping.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAE,YAAW,QAAQ,CAAC,QAAQ,CAAC;aAE/C,GAAG,EAAE,IAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADT,GAAG,EAAE,IAAI,EACR,QAAQ,EAAE,QAAQ,EAAE;IAGtC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAMxC;;OAEG;IACH,OAAO,IAAI,QAAQ,EAAE;IAIrB;;;OAGG;IAEH,KAAK,IAAI,MAAM;IAIf,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM;IAIrD,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM;IAIrD,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM;IAIxD,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO;IAIhE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO;IAIhE,cAAc,CAAC,aAAa,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;CAG7D"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Represents a collection of objects that have a common key
3
+ * Matches .NET LINQ Grouping pattern
4
+ */
5
+ export class Grouping {
6
+ constructor(key, elements) {
7
+ this.key = key;
8
+ this.elements = elements;
9
+ }
10
+ *[Symbol.iterator]() {
11
+ for (const element of this.elements) {
12
+ yield element;
13
+ }
14
+ }
15
+ /**
16
+ * Convert to array (convenience method)
17
+ */
18
+ toArray() {
19
+ return [...this.elements];
20
+ }
21
+ /**
22
+ * Aggregate methods - these are placeholders for type safety
23
+ * The SQL generator handles these specially and they're never actually called
24
+ */
25
+ count() {
26
+ throw new Error("Grouping.count() is handled by SQL generator");
27
+ }
28
+ sum(_selector) {
29
+ throw new Error("Grouping.sum() is handled by SQL generator");
30
+ }
31
+ avg(_selector) {
32
+ throw new Error("Grouping.avg() is handled by SQL generator");
33
+ }
34
+ average(selector) {
35
+ return this.avg(selector);
36
+ }
37
+ min(_selector) {
38
+ throw new Error("Grouping.min() is handled by SQL generator");
39
+ }
40
+ max(_selector) {
41
+ throw new Error("Grouping.max() is handled by SQL generator");
42
+ }
43
+ defaultIfEmpty(_defaultValue) {
44
+ throw new Error("Grouping.defaultIfEmpty() is handled by SQL generator");
45
+ }
46
+ }
47
+ //# sourceMappingURL=grouping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../src/linq/grouping.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACnB,YACkB,GAAS,EACR,QAAoB;QADrB,QAAG,GAAH,GAAG,CAAM;QACR,aAAQ,GAAR,QAAQ,CAAY;IACpC,CAAC;IAEJ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,OAAO,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH,KAAK;QACH,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,GAAG,CAAC,SAAwC;QAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,SAAwC;QAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,QAAuC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAU,SAAyC;QACpD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAU,SAAyC;QACpD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,cAAc,CAAC,aAAwB;QACrC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Entry point for creating INSERT queries
3
+ */
4
+ import { Insertable } from "./insertable.js";
5
+ import type { DatabaseSchema } from "./database-context.js";
6
+ /**
7
+ * Creates a new Insertable from a table name with explicit type
8
+ * @param tableName The name of the table to insert into
9
+ * @returns A new Insertable instance
10
+ */
11
+ export declare function insertInto<T>(tableName: string): Insertable<T>;
12
+ /**
13
+ * Creates a new Insertable from a typed database context
14
+ * @param context The database context with schema information
15
+ * @param tableName The name of the table to insert into (type-safe)
16
+ * @returns A new Insertable instance with inferred types
17
+ */
18
+ export declare function insertInto<TSchema, K extends keyof TSchema & string>(context: DatabaseSchema<TSchema>, tableName: K): Insertable<TSchema[K]>;
19
+ //# sourceMappingURL=insert-into.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-into.d.ts","sourceRoot":"","sources":["../../src/linq/insert-into.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAClE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,CAAC,GACX,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Entry point for creating INSERT queries
3
+ */
4
+ import { Insertable } from "./insertable.js";
5
+ // Implementation
6
+ export function insertInto(_contextOrTable, _tableName) {
7
+ // Runtime doesn't need to differentiate - just return an Insertable
8
+ // Types are enforced at compile time through the overloads
9
+ return new Insertable();
10
+ }
11
+ //# sourceMappingURL=insert-into.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-into.js","sourceRoot":"","sources":["../../src/linq/insert-into.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAqB7C,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,eAAwB,EAAE,UAAoB;IACvE,oEAAoE;IACpE,2DAA2D;IAC3D,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Insertable class for INSERT operations with type safety
3
+ */
4
+ /**
5
+ * Insertable provides type-safe INSERT query building
6
+ */
7
+ export declare class Insertable<T> {
8
+ constructor();
9
+ /**
10
+ * Specifies the values to insert
11
+ * @param valuesSelector Object mapping columns to values
12
+ * @returns Insertable for further chaining
13
+ */
14
+ values(_valuesSelector: Partial<T>): Insertable<T>;
15
+ /**
16
+ * Specifies columns to return after insert (PostgreSQL only)
17
+ * @param selector Function that returns the columns to return
18
+ * @returns InsertableWithReturning for type inference
19
+ */
20
+ returning<TResult>(_selector: (_item: T) => TResult): InsertableWithReturning<T, TResult>;
21
+ }
22
+ /**
23
+ * InsertableWithReturning represents an INSERT with RETURNING clause
24
+ */
25
+ export declare class InsertableWithReturning<TTable, TResult> {
26
+ constructor();
27
+ _table?: (_: TTable) => void;
28
+ _result?: (_: TResult) => void;
29
+ }
30
+ //# sourceMappingURL=insertable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertable.d.ts","sourceRoot":"","sources":["../../src/linq/insertable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC;;IAKvB;;;;OAIG;IACH,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIlD;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC;CAG1F;AAED;;GAEG;AACH,qBAAa,uBAAuB,CAAC,MAAM,EAAE,OAAO;;IAOlD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Insertable class for INSERT operations with type safety
3
+ */
4
+ /**
5
+ * Insertable provides type-safe INSERT query building
6
+ */
7
+ export class Insertable {
8
+ constructor() {
9
+ // Never actually instantiated - used only for type inference
10
+ }
11
+ /**
12
+ * Specifies the values to insert
13
+ * @param valuesSelector Object mapping columns to values
14
+ * @returns Insertable for further chaining
15
+ */
16
+ values(_valuesSelector) {
17
+ return this;
18
+ }
19
+ /**
20
+ * Specifies columns to return after insert (PostgreSQL only)
21
+ * @param selector Function that returns the columns to return
22
+ * @returns InsertableWithReturning for type inference
23
+ */
24
+ returning(_selector) {
25
+ return new InsertableWithReturning();
26
+ }
27
+ }
28
+ /**
29
+ * InsertableWithReturning represents an INSERT with RETURNING clause
30
+ */
31
+ export class InsertableWithReturning {
32
+ constructor() {
33
+ // Never actually instantiated - used only for type inference
34
+ // Type parameters TTable and TResult are preserved for external type inference
35
+ }
36
+ }
37
+ //# sourceMappingURL=insertable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertable.js","sourceRoot":"","sources":["../../src/linq/insertable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB;QACE,6DAA6D;IAC/D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAA2B;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAU,SAAgC;QACjD,OAAO,IAAI,uBAAuB,EAAc,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC;QACE,6DAA6D;QAC7D,+EAA+E;IACjF,CAAC;CAKF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Query DSL interface for type-safe query building
3
+ */
4
+ import type { DatabaseSchema } from "./database-context.js";
5
+ import type { Queryable } from "./queryable.js";
6
+ import type { Insertable } from "./insertable.js";
7
+ import type { Updatable } from "./updatable.js";
8
+ import type { Deletable } from "./deletable.js";
9
+ /**
10
+ * Query DSL interface providing type-safe query builders
11
+ */
12
+ export interface QueryBuilder<TSchema> {
13
+ from<K extends keyof TSchema & string>(table: K): Queryable<TSchema[K]>;
14
+ insertInto<K extends keyof TSchema & string>(table: K): Insertable<TSchema[K]>;
15
+ update<K extends keyof TSchema & string>(table: K): Updatable<TSchema[K]>;
16
+ deleteFrom<K extends keyof TSchema & string>(table: K): Deletable<TSchema[K]>;
17
+ }
18
+ /**
19
+ * Creates a query DSL object bound to a database context
20
+ * @param context The database context with schema information
21
+ * @returns A QueryBuilder instance with type-safe query builders
22
+ */
23
+ export declare function createQueryBuilder<TSchema>(context: DatabaseSchema<TSchema>): QueryBuilder<TSchema>;
24
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/linq/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMhD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,UAAU,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,UAAU,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EACxC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,GAC/B,YAAY,CAAC,OAAO,CAAC,CAOvB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Query DSL interface for type-safe query building
3
+ */
4
+ import { from } from "./from.js";
5
+ import { insertInto } from "./insert-into.js";
6
+ import { update } from "./update.js";
7
+ import { deleteFrom } from "./delete-from.js";
8
+ /**
9
+ * Creates a query DSL object bound to a database context
10
+ * @param context The database context with schema information
11
+ * @returns A QueryBuilder instance with type-safe query builders
12
+ */
13
+ export function createQueryBuilder(context) {
14
+ return {
15
+ from: (table) => from(context, table),
16
+ insertInto: (table) => insertInto(context, table),
17
+ update: (table) => update(context, table),
18
+ deleteFrom: (table) => deleteFrom(context, table),
19
+ };
20
+ }
21
+ //# sourceMappingURL=query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/linq/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAY9C;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgC;IAEhC,OAAO;QACL,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QACrC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACjD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;QACzC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Queryable and OrderedQueryable classes for compile-time type safety
3
+ * ONLY BASIC SQL OPERATIONS + single, last, contains, union, reverse
4
+ */
5
+ import type { Grouping } from "./grouping.js";
6
+ import { TerminalQuery } from "./terminal-query.js";
7
+ /**
8
+ * Queryable provides a fluent API for building queries with type safety.
9
+ * This class is never actually executed - it's parsed from its string representation.
10
+ */
11
+ export declare class Queryable<T> {
12
+ constructor();
13
+ where(_predicate: (_item: T) => boolean): Queryable<T>;
14
+ select<TResult>(_selector: (_item: T) => TResult): Queryable<TResult>;
15
+ join<TInner, TKey, TResult>(_inner: Queryable<TInner>, _outerKeySelector: (_outer: T) => TKey, _innerKeySelector: (_inner: TInner) => TKey, _resultSelector: (_outer: T, _inner: TInner) => TResult): Queryable<TResult>;
16
+ groupJoin<TInner, TKey, TResult>(_inner: Queryable<TInner>, _outerKeySelector: (_outer: T) => TKey, _innerKeySelector: (_inner: TInner) => TKey, _resultSelector: (_outer: T, _innerGroup: Grouping<TKey, TInner>) => TResult): Queryable<TResult>;
17
+ selectMany<TCollection>(_collectionSelector: (_item: T) => Queryable<TCollection> | Iterable<TCollection>): Queryable<TCollection>;
18
+ selectMany<TCollection, TResult>(_collectionSelector: (_item: T) => Queryable<TCollection> | Iterable<TCollection>, _resultSelector: (_item: T, _collectionItem: TCollection) => TResult): Queryable<TResult>;
19
+ groupBy<TKey>(_keySelector: (_item: T) => TKey): Queryable<Grouping<TKey, T>>;
20
+ orderBy<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
21
+ orderByDescending<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
22
+ take(_count: number): Queryable<T>;
23
+ skip(_count: number): Queryable<T>;
24
+ distinct(): Queryable<T>;
25
+ union(_second: Queryable<T>): Queryable<T>;
26
+ concat(_second: Queryable<T>): Queryable<T>;
27
+ intersect(_second: Queryable<T>): Queryable<T>;
28
+ except(_second: Queryable<T>): Queryable<T>;
29
+ reverse(): Queryable<T>;
30
+ defaultIfEmpty(_defaultValue?: T): Queryable<T>;
31
+ first(_predicate?: (_item: T) => boolean): TerminalQuery<T>;
32
+ firstOrDefault(_predicate?: (_item: T) => boolean): TerminalQuery<T | undefined>;
33
+ single(_predicate?: (_item: T) => boolean): TerminalQuery<T>;
34
+ singleOrDefault(_predicate?: (_item: T) => boolean): TerminalQuery<T | undefined>;
35
+ last(_predicate?: (_item: T) => boolean): TerminalQuery<T>;
36
+ lastOrDefault(_predicate?: (_item: T) => boolean): TerminalQuery<T | undefined>;
37
+ contains(_value: T): TerminalQuery<boolean>;
38
+ sum(_selector?: (_item: T) => number): TerminalQuery<number>;
39
+ average(_selector?: (_item: T) => number): TerminalQuery<number>;
40
+ min(): TerminalQuery<T>;
41
+ min<TResult>(_selector: (_item: T) => TResult): TerminalQuery<TResult>;
42
+ max(): TerminalQuery<T>;
43
+ max<TResult>(_selector: (_item: T) => TResult): TerminalQuery<TResult>;
44
+ any(_predicate?: (_item: T) => boolean): TerminalQuery<boolean>;
45
+ all(_predicate: (_item: T) => boolean): TerminalQuery<boolean>;
46
+ count(_predicate?: (_item: T) => boolean): TerminalQuery<number>;
47
+ }
48
+ /**
49
+ * OrderedQueryable extends Queryable with thenBy operations
50
+ * Matches .NET's IOrderedQueryable<T> : IQueryable<T> inheritance
51
+ */
52
+ export declare class OrderedQueryable<T> extends Queryable<T> {
53
+ constructor();
54
+ where(_predicate: (_item: T) => boolean): OrderedQueryable<T>;
55
+ distinct(): OrderedQueryable<T>;
56
+ take(_count: number): OrderedQueryable<T>;
57
+ skip(_count: number): OrderedQueryable<T>;
58
+ thenBy<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
59
+ thenByDescending<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
60
+ }
61
+ //# sourceMappingURL=queryable.d.ts.map