@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,313 @@
1
+ /**
2
+ * Expression Types for Tinqer Query System
3
+ *
4
+ * Precise type hierarchy for expressions that evaluate to different types.
5
+ * These are used by the parser to represent parsed lambda expressions.
6
+ */
7
+ /**
8
+ * Column source - where a column comes from
9
+ */
10
+ export type ColumnSource = {
11
+ type: "direct";
12
+ } | {
13
+ type: "table";
14
+ alias: string;
15
+ } | {
16
+ type: "joinParam";
17
+ paramIndex: number;
18
+ } | {
19
+ type: "joinResult";
20
+ tableIndex: number;
21
+ } | {
22
+ type: "spread";
23
+ sourceIndex: number;
24
+ };
25
+ /**
26
+ * Column reference - references a table column
27
+ */
28
+ export interface ColumnExpression {
29
+ type: "column";
30
+ name: string;
31
+ source?: ColumnSource;
32
+ table?: string;
33
+ }
34
+ /**
35
+ * Constant value - literal values
36
+ */
37
+ export interface ConstantExpression {
38
+ type: "constant";
39
+ value: unknown;
40
+ valueType?: "string" | "number" | "boolean" | "null" | "undefined";
41
+ }
42
+ /**
43
+ * Parameter reference - references external query parameters
44
+ */
45
+ export interface ParameterExpression {
46
+ type: "param";
47
+ param: string;
48
+ property?: string;
49
+ index?: number;
50
+ }
51
+ /**
52
+ * Arithmetic expression - mathematical operations
53
+ */
54
+ export interface ArithmeticExpression {
55
+ type: "arithmetic";
56
+ operator: "+" | "-" | "*" | "/" | "%";
57
+ left: ValueExpression;
58
+ right: ValueExpression;
59
+ }
60
+ /**
61
+ * String concatenation
62
+ */
63
+ export interface ConcatExpression {
64
+ type: "concat";
65
+ left: ValueExpression;
66
+ right: ValueExpression;
67
+ }
68
+ /**
69
+ * String method calls
70
+ */
71
+ export interface StringMethodExpression {
72
+ type: "stringMethod";
73
+ object: ValueExpression;
74
+ method: "toLowerCase" | "toUpperCase";
75
+ arguments?: ValueExpression[];
76
+ }
77
+ /**
78
+ * CASE expression (SQL CASE WHEN)
79
+ */
80
+ export interface CaseExpression {
81
+ type: "case";
82
+ conditions: Array<{
83
+ when: BooleanExpression;
84
+ then: ValueExpression;
85
+ }>;
86
+ else?: ValueExpression;
87
+ }
88
+ /**
89
+ * Coalesce expression (COALESCE / ??)
90
+ */
91
+ export interface CoalesceExpression {
92
+ type: "coalesce";
93
+ expressions: ValueExpression[];
94
+ }
95
+ /**
96
+ * Aggregate expression - for GROUP BY aggregations
97
+ * Follows C# LINQ Grouping pattern
98
+ */
99
+ export interface AggregateExpression {
100
+ type: "aggregate";
101
+ function: "count" | "sum" | "avg" | "min" | "max";
102
+ expression?: ValueExpression;
103
+ }
104
+ /**
105
+ * Window function expression - for ROW_NUMBER, RANK, DENSE_RANK
106
+ * Supports PARTITION BY and ORDER BY clauses
107
+ */
108
+ export interface WindowFunctionExpression {
109
+ type: "windowFunction";
110
+ function: "rowNumber" | "rank" | "denseRank";
111
+ partitionBy: ValueExpression[];
112
+ orderBy: Array<{
113
+ expression: ValueExpression;
114
+ direction: "asc" | "desc";
115
+ }>;
116
+ }
117
+ /**
118
+ * Reference to an entire table/object (for JOIN result selectors)
119
+ */
120
+ export interface ReferenceExpression {
121
+ type: "reference";
122
+ source?: ColumnSource;
123
+ table?: string;
124
+ }
125
+ /**
126
+ * All columns expression - represents * in SELECT or RETURNING
127
+ * Used when an identity function like (u) => u is encountered
128
+ */
129
+ export interface AllColumnsExpression {
130
+ type: "allColumns";
131
+ }
132
+ /**
133
+ * Union type for all value-producing expressions
134
+ */
135
+ export type ValueExpression = ColumnExpression | ConstantExpression | ParameterExpression | ArithmeticExpression | ConcatExpression | StringMethodExpression | CaseExpression | CoalesceExpression | AggregateExpression | WindowFunctionExpression | ReferenceExpression | AllColumnsExpression;
136
+ /**
137
+ * Comparison expression - binary comparisons
138
+ */
139
+ export interface ComparisonExpression {
140
+ type: "comparison";
141
+ operator: "==" | "!=" | ">" | ">=" | "<" | "<=";
142
+ left: ValueExpression;
143
+ right: ValueExpression;
144
+ }
145
+ /**
146
+ * Logical expression - combines boolean expressions
147
+ */
148
+ export interface LogicalExpression {
149
+ type: "logical";
150
+ operator: "and" | "or";
151
+ left: BooleanExpression;
152
+ right: BooleanExpression;
153
+ }
154
+ /**
155
+ * NOT expression - negation
156
+ */
157
+ export interface NotExpression {
158
+ type: "not";
159
+ expression: BooleanExpression;
160
+ }
161
+ /**
162
+ * Boolean constant
163
+ */
164
+ export interface BooleanConstantExpression {
165
+ type: "booleanConstant";
166
+ value: boolean;
167
+ }
168
+ /**
169
+ * Boolean column reference (for columns that are boolean)
170
+ */
171
+ export interface BooleanColumnExpression {
172
+ type: "booleanColumn";
173
+ name: string;
174
+ table?: string;
175
+ }
176
+ /**
177
+ * Boolean parameter reference
178
+ */
179
+ export interface BooleanParameterExpression {
180
+ type: "booleanParam";
181
+ param: string;
182
+ property?: string;
183
+ }
184
+ /**
185
+ * String comparison methods that return boolean
186
+ */
187
+ export interface BooleanMethodExpression {
188
+ type: "booleanMethod";
189
+ object: ValueExpression;
190
+ method: "startsWith" | "endsWith" | "includes" | "contains";
191
+ arguments: ValueExpression[];
192
+ }
193
+ /**
194
+ * Case-insensitive function calls from helpers.functions
195
+ */
196
+ export interface CaseInsensitiveFunctionExpression {
197
+ type: "caseInsensitiveFunction";
198
+ function: "iequals" | "istartsWith" | "iendsWith" | "icontains";
199
+ arguments: [ValueExpression, ValueExpression];
200
+ }
201
+ /**
202
+ * IN expression - value in list
203
+ */
204
+ export interface InExpression {
205
+ type: "in";
206
+ value: ValueExpression;
207
+ list: ValueExpression[] | ArrayExpression | ParameterExpression;
208
+ }
209
+ /**
210
+ * IS NULL / IS NOT NULL
211
+ */
212
+ export interface IsNullExpression {
213
+ type: "isNull";
214
+ expression: ValueExpression;
215
+ negated?: boolean;
216
+ }
217
+ /**
218
+ * Union type for all boolean-producing expressions
219
+ */
220
+ export type BooleanExpression = ComparisonExpression | LogicalExpression | NotExpression | BooleanConstantExpression | BooleanColumnExpression | BooleanParameterExpression | BooleanMethodExpression | CaseInsensitiveFunctionExpression | InExpression | IsNullExpression;
221
+ /**
222
+ * Object literal expression (for SELECT projections)
223
+ */
224
+ export interface ObjectExpression {
225
+ type: "object";
226
+ properties: Record<string, Expression>;
227
+ }
228
+ /**
229
+ * Array expression
230
+ */
231
+ export interface ArrayExpression {
232
+ type: "array";
233
+ elements: Expression[];
234
+ }
235
+ /**
236
+ * Member access expression (before simplification)
237
+ * Used during parsing before we determine if it's a column
238
+ */
239
+ export interface MemberAccessExpression {
240
+ type: "memberAccess";
241
+ object: Expression;
242
+ member: string;
243
+ }
244
+ /**
245
+ * Method call expression (general, before categorization)
246
+ */
247
+ export interface MethodCallExpression {
248
+ type: "methodCall";
249
+ object: Expression;
250
+ method: string;
251
+ arguments: Expression[];
252
+ }
253
+ /**
254
+ * Conditional expression (ternary)
255
+ */
256
+ export interface ConditionalExpression {
257
+ type: "conditional";
258
+ condition: BooleanExpression;
259
+ then: Expression;
260
+ else: Expression;
261
+ }
262
+ /**
263
+ * Function call expression
264
+ */
265
+ export interface FunctionCallExpression {
266
+ type: "functionCall";
267
+ name: string;
268
+ arguments: Expression[];
269
+ }
270
+ /**
271
+ * New expression (constructor call)
272
+ */
273
+ export interface NewExpression {
274
+ type: "new";
275
+ constructor: string;
276
+ arguments: Expression[];
277
+ }
278
+ /**
279
+ * Lambda parameter
280
+ */
281
+ export interface LambdaParameter {
282
+ name: string;
283
+ type?: string;
284
+ }
285
+ /**
286
+ * Lambda expression (arrow function)
287
+ */
288
+ export interface LambdaExpression {
289
+ type: "lambda";
290
+ parameters: LambdaParameter[];
291
+ body: Expression;
292
+ }
293
+ /**
294
+ * Union type for all expressions
295
+ */
296
+ export type Expression = ValueExpression | BooleanExpression | ObjectExpression | ArrayExpression | MemberAccessExpression | MethodCallExpression | ConditionalExpression | FunctionCallExpression | NewExpression | LambdaExpression;
297
+ /**
298
+ * Type guard for value expressions
299
+ */
300
+ export declare function isValueExpression(expr: Expression): expr is ValueExpression;
301
+ /**
302
+ * Type guard for boolean expressions
303
+ */
304
+ export declare function isBooleanExpression(expr: Expression): expr is BooleanExpression;
305
+ /**
306
+ * Type guard for object expressions
307
+ */
308
+ export declare function isObjectExpression(expr: Expression): expr is ObjectExpression;
309
+ /**
310
+ * Type guard for array expressions
311
+ */
312
+ export declare function isArrayExpression(expr: Expression): expr is ArrayExpression;
313
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expressions/expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Expression Types for Tinqer Query System
3
+ *
4
+ * Precise type hierarchy for expressions that evaluate to different types.
5
+ * These are used by the parser to represent parsed lambda expressions.
6
+ */
7
+ // ==================== Type Guards ====================
8
+ /**
9
+ * Type guard for value expressions
10
+ */
11
+ export function isValueExpression(expr) {
12
+ return [
13
+ "column",
14
+ "constant",
15
+ "param",
16
+ "arithmetic",
17
+ "concat",
18
+ "stringMethod",
19
+ "case",
20
+ "coalesce",
21
+ "aggregate",
22
+ "windowFunction",
23
+ "reference",
24
+ "allColumns",
25
+ ].includes(expr.type);
26
+ }
27
+ /**
28
+ * Type guard for boolean expressions
29
+ */
30
+ export function isBooleanExpression(expr) {
31
+ return [
32
+ "comparison",
33
+ "logical",
34
+ "not",
35
+ "booleanConstant",
36
+ "booleanColumn",
37
+ "booleanParam",
38
+ "booleanMethod",
39
+ "caseInsensitiveFunction",
40
+ "in",
41
+ "isNull",
42
+ ].includes(expr.type);
43
+ }
44
+ /**
45
+ * Type guard for object expressions
46
+ */
47
+ export function isObjectExpression(expr) {
48
+ return expr.type === "object";
49
+ }
50
+ /**
51
+ * Type guard for array expressions
52
+ */
53
+ export function isArrayExpression(expr) {
54
+ return expr.type === "array";
55
+ }
56
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/expressions/expression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqWH,wDAAwD;AAExD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,OAAO;QACL,QAAQ;QACR,UAAU;QACV,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,cAAc;QACd,MAAM;QACN,UAAU;QACV,WAAW;QACX,gBAAgB;QAChB,WAAW;QACX,YAAY;KACb,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,OAAO;QACL,YAAY;QACZ,SAAS;QACT,KAAK;QACL,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,eAAe;QACf,yBAAyB;QACzB,IAAI;QACJ,QAAQ;KACT,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IACjD,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Tinqer - LINQ to SQL for TypeScript
3
+ * Public API exports
4
+ */
5
+ export { Queryable, OrderedQueryable } from "./linq/queryable.js";
6
+ export { TerminalQuery } from "./linq/terminal-query.js";
7
+ export { from } from "./linq/from.js";
8
+ export { Grouping } from "./linq/grouping.js";
9
+ export { DatabaseSchema, createSchema } from "./linq/database-context.js";
10
+ export { functions, createQueryHelpers, WindowBuilder, WindowBuilderWithPartition, WindowBuilderWithOrder, WINDOW_MARKER, } from "./linq/functions.js";
11
+ export type { QueryHelpers, WindowFunctionType, WindowOrderSpec } from "./linq/functions.js";
12
+ export { createQueryBuilder } from "./linq/query-builder.js";
13
+ export type { QueryBuilder } from "./linq/query-builder.js";
14
+ export { insertInto } from "./linq/insert-into.js";
15
+ export { Insertable, InsertableWithReturning } from "./linq/insertable.js";
16
+ export { update } from "./linq/update.js";
17
+ export { Updatable, UpdatableWithSet, UpdatableComplete, UpdatableWithReturning, } from "./linq/updatable.js";
18
+ export { deleteFrom } from "./linq/delete-from.js";
19
+ export { Deletable, DeletableComplete } from "./linq/deletable.js";
20
+ export type { Expression, ValueExpression, BooleanExpression, ObjectExpression, ArrayExpression, ColumnExpression, ConstantExpression, ParameterExpression, ArithmeticExpression, ConcatExpression, StringMethodExpression, CaseExpression, CoalesceExpression, AggregateExpression, WindowFunctionExpression, ReferenceExpression, AllColumnsExpression, ComparisonExpression, LogicalExpression, NotExpression, BooleanConstantExpression, BooleanColumnExpression, BooleanParameterExpression, BooleanMethodExpression, CaseInsensitiveFunctionExpression, InExpression, IsNullExpression, MemberAccessExpression, MethodCallExpression, ConditionalExpression, FunctionCallExpression, NewExpression, LambdaExpression, LambdaParameter, } from "./expressions/expression.js";
21
+ export { isValueExpression, isBooleanExpression, isObjectExpression, isArrayExpression, } from "./expressions/expression.js";
22
+ export type { QueryOperation, ParamRef, FromOperation, WhereOperation, SelectOperation, JoinOperation, GroupJoinOperation, SelectManyOperation, DefaultIfEmptyOperation, ResultShape, ShapeNode, ColumnShapeNode, ObjectShapeNode, ReferenceShapeNode, ArrayShapeNode, GroupByOperation, OrderByOperation, ThenByOperation, DistinctOperation, TakeOperation, SkipOperation, ReverseOperation, FirstOperation, FirstOrDefaultOperation, SingleOperation, SingleOrDefaultOperation, LastOperation, LastOrDefaultOperation, ContainsOperation, AnyOperation, AllOperation, CountOperation, SumOperation, AverageOperation, MinOperation, MaxOperation, InsertOperation, UpdateOperation, DeleteOperation, ChainableOperation, TerminalOperation, AnyQueryOperation, } from "./query-tree/operations.js";
23
+ export { parseQuery } from "./parser/parse-query.js";
24
+ export type { ParseResult } from "./parser/parse-query.js";
25
+ export { parseJavaScript } from "./parser/oxc-parser.js";
26
+ export type { ParseQueryOptions } from "./parser/types.js";
27
+ export { setParseCacheConfig, getParseCacheConfig, clearParseCache, } from "./parser/parse-cache-config.js";
28
+ export type { ParseCacheConfig } from "./parser/parse-cache-config.js";
29
+ export { defineSelect, defineSelectPlan, SelectPlanHandle, SelectTerminalHandle, type SelectPlan, type SelectPlanSql, } from "./plans/select-plan.js";
30
+ export { defineUpdate, UpdatePlanHandleInitial, UpdatePlanHandleWithSet, UpdatePlanHandleComplete, UpdatePlanHandleWithReturning, type UpdatePlan, type UpdatePlanSql, } from "./plans/update-plan.js";
31
+ export { defineInsert, InsertPlanHandleInitial, InsertPlanHandleWithValues, InsertPlanHandleWithReturning, type InsertPlan, type InsertPlanSql, } from "./plans/insert-plan.js";
32
+ export { defineDelete, DeletePlanHandleInitial, DeletePlanHandleComplete, type DeletePlan, type DeletePlanSql, } from "./plans/delete-plan.js";
33
+ export { createSelectPlan, planToSqlString, isTerminalHandle } from "./plans/plan-execution.js";
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Tinqer - LINQ to SQL for TypeScript
3
+ * Public API exports
4
+ */
5
+ // ==================== LINQ API ====================
6
+ // User-facing classes and functions
7
+ export { Queryable, OrderedQueryable } from "./linq/queryable.js";
8
+ export { TerminalQuery } from "./linq/terminal-query.js";
9
+ export { from } from "./linq/from.js";
10
+ export { Grouping } from "./linq/grouping.js";
11
+ export { DatabaseSchema, createSchema } from "./linq/database-context.js";
12
+ export { functions, createQueryHelpers, WindowBuilder, WindowBuilderWithPartition, WindowBuilderWithOrder, WINDOW_MARKER, } from "./linq/functions.js";
13
+ export { createQueryBuilder } from "./linq/query-builder.js";
14
+ // Data modification builders
15
+ export { insertInto } from "./linq/insert-into.js";
16
+ export { Insertable, InsertableWithReturning } from "./linq/insertable.js";
17
+ export { update } from "./linq/update.js";
18
+ export { Updatable, UpdatableWithSet, UpdatableComplete, UpdatableWithReturning, } from "./linq/updatable.js";
19
+ export { deleteFrom } from "./linq/delete-from.js";
20
+ export { Deletable, DeletableComplete } from "./linq/deletable.js";
21
+ // Type guards
22
+ export { isValueExpression, isBooleanExpression, isObjectExpression, isArrayExpression, } from "./expressions/expression.js";
23
+ // ==================== Parser API ====================
24
+ export { parseQuery } from "./parser/parse-query.js";
25
+ export { parseJavaScript } from "./parser/oxc-parser.js";
26
+ // Parse cache configuration
27
+ export { setParseCacheConfig, getParseCacheConfig, clearParseCache, } from "./parser/parse-cache-config.js";
28
+ // ==================== Plan API ====================
29
+ export { defineSelect, defineSelectPlan, SelectPlanHandle, SelectTerminalHandle, } from "./plans/select-plan.js";
30
+ export { defineUpdate, UpdatePlanHandleInitial, UpdatePlanHandleWithSet, UpdatePlanHandleComplete, UpdatePlanHandleWithReturning, } from "./plans/update-plan.js";
31
+ export { defineInsert, InsertPlanHandleInitial, InsertPlanHandleWithValues, InsertPlanHandleWithReturning, } from "./plans/insert-plan.js";
32
+ export { defineDelete, DeletePlanHandleInitial, DeletePlanHandleComplete, } from "./plans/delete-plan.js";
33
+ export { createSelectPlan, planToSqlString, isTerminalHandle } from "./plans/plan-execution.js";
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qDAAqD;AACrD,oCAAoC;AAEpC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,6BAA6B;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgDnE,cAAc;AACd,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AA0DrC,uDAAuD;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,4BAA4B;AAC5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAGxC,qDAAqD;AAErD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAG9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,GAG9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Type-safe database context for table schemas
3
+ */
4
+ /**
5
+ * Database context that provides type information for tables
6
+ * @template TSchema The schema type defining all tables and their row types
7
+ */
8
+ export declare class DatabaseSchema<TSchema> {
9
+ private readonly _phantom?;
10
+ constructor();
11
+ }
12
+ /**
13
+ * Creates a typed database context
14
+ * @template TSchema The schema type defining all tables and their row types
15
+ * @returns A new DatabaseSchema instance
16
+ */
17
+ export declare function createSchema<TSchema>(): DatabaseSchema<TSchema>;
18
+ //# sourceMappingURL=database-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-context.d.ts","sourceRoot":"","sources":["../../src/linq/database-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,cAAc,CAAC,OAAO;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAU;;CAOrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC,CAE/D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Type-safe database context for table schemas
3
+ */
4
+ /**
5
+ * Database context that provides type information for tables
6
+ * @template TSchema The schema type defining all tables and their row types
7
+ */
8
+ export class DatabaseSchema {
9
+ constructor() {
10
+ // Context doesn't need runtime data, just provides type information
11
+ // The _phantom field is never assigned, it's only for TypeScript type checking
12
+ void this._phantom; // Mark as intentionally unused
13
+ }
14
+ }
15
+ /**
16
+ * Creates a typed database context
17
+ * @template TSchema The schema type defining all tables and their row types
18
+ * @returns A new DatabaseSchema instance
19
+ */
20
+ export function createSchema() {
21
+ return new DatabaseSchema();
22
+ }
23
+ //# sourceMappingURL=database-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-context.js","sourceRoot":"","sources":["../../src/linq/database-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,OAAO,cAAc;IAIzB;QACE,oEAAoE;QACpE,+EAA+E;QAC/E,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,+BAA+B;IACrD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,cAAc,EAAW,CAAC;AACvC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Type-safe database context for table schemas
3
+ */
4
+ /**
5
+ * Database context that provides type information for tables
6
+ * @template TSchema The schema type defining all tables and their row types
7
+ */
8
+ export declare class DatabaseSchema<TSchema> {
9
+ private readonly _phantom?;
10
+ constructor();
11
+ }
12
+ /**
13
+ * Creates a typed database context
14
+ * @template TSchema The schema type defining all tables and their row types
15
+ * @returns A new DatabaseSchema instance
16
+ */
17
+ export declare function createSchema<TSchema>(): DatabaseSchema<TSchema>;
18
+ //# sourceMappingURL=database-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../src/linq/database-schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,cAAc,CAAC,OAAO;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAU;;CAOrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,KAAK,cAAc,CAAC,OAAO,CAAC,CAE/D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Type-safe database context for table schemas
3
+ */
4
+ /**
5
+ * Database context that provides type information for tables
6
+ * @template TSchema The schema type defining all tables and their row types
7
+ */
8
+ export class DatabaseSchema {
9
+ constructor() {
10
+ // Context doesn't need runtime data, just provides type information
11
+ // The _phantom field is never assigned, it's only for TypeScript type checking
12
+ void this._phantom; // Mark as intentionally unused
13
+ }
14
+ }
15
+ /**
16
+ * Creates a typed database context
17
+ * @template TSchema The schema type defining all tables and their row types
18
+ * @returns A new DatabaseSchema instance
19
+ */
20
+ export function createSchema() {
21
+ return new DatabaseSchema();
22
+ }
23
+ //# sourceMappingURL=database-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../src/linq/database-schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,OAAO,cAAc;IAIzB;QACE,oEAAoE;QACpE,+EAA+E;QAC/E,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,+BAA+B;IACrD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,cAAc,EAAW,CAAC;AACvC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Deletable class for DELETE operations with type safety
3
+ */
4
+ /**
5
+ * Deletable provides type-safe DELETE query building
6
+ */
7
+ export declare class Deletable<T> {
8
+ private _hasWhereOrAllow;
9
+ constructor();
10
+ /**
11
+ * Specifies the WHERE condition for the delete
12
+ * @param predicate Function that returns a boolean condition
13
+ * @returns DeletableComplete
14
+ */
15
+ where(_predicate: (_item: T) => boolean): DeletableComplete<T>;
16
+ /**
17
+ * Explicitly allows a full table delete without WHERE clause
18
+ * DANGEROUS: This will delete ALL rows in the table
19
+ * @returns DeletableComplete
20
+ */
21
+ allowFullTableDelete(): DeletableComplete<T>;
22
+ }
23
+ /**
24
+ * DeletableComplete represents a complete DELETE query
25
+ */
26
+ export declare class DeletableComplete<T> {
27
+ constructor();
28
+ _?: (_: T) => void;
29
+ }
30
+ //# sourceMappingURL=deletable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deletable.d.ts","sourceRoot":"","sources":["../../src/linq/deletable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,gBAAgB,CAAS;;IAMjC;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAQ9D;;;;OAIG;IACH,oBAAoB,IAAI,iBAAiB,CAAC,CAAC,CAAC;CAO7C;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC;;IAO9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CACpB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Deletable class for DELETE operations with type safety
3
+ */
4
+ /**
5
+ * Deletable provides type-safe DELETE query building
6
+ */
7
+ export class Deletable {
8
+ constructor() {
9
+ this._hasWhereOrAllow = false;
10
+ // Never actually instantiated - used only for type inference
11
+ }
12
+ /**
13
+ * Specifies the WHERE condition for the delete
14
+ * @param predicate Function that returns a boolean condition
15
+ * @returns DeletableComplete
16
+ */
17
+ where(_predicate) {
18
+ if (this._hasWhereOrAllow) {
19
+ throw new Error("Cannot call where() after allowFullTableDelete()");
20
+ }
21
+ this._hasWhereOrAllow = true;
22
+ return new DeletableComplete();
23
+ }
24
+ /**
25
+ * Explicitly allows a full table delete without WHERE clause
26
+ * DANGEROUS: This will delete ALL rows in the table
27
+ * @returns DeletableComplete
28
+ */
29
+ allowFullTableDelete() {
30
+ if (this._hasWhereOrAllow) {
31
+ throw new Error("Cannot call allowFullTableDelete() after where()");
32
+ }
33
+ this._hasWhereOrAllow = true;
34
+ return new DeletableComplete();
35
+ }
36
+ }
37
+ /**
38
+ * DeletableComplete represents a complete DELETE query
39
+ */
40
+ export class DeletableComplete {
41
+ constructor() {
42
+ // Never actually instantiated - used only for type inference
43
+ // Type parameter T is preserved for external type inference
44
+ }
45
+ }
46
+ //# sourceMappingURL=deletable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deletable.js","sourceRoot":"","sources":["../../src/linq/deletable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,SAAS;IAGpB;QAFQ,qBAAgB,GAAG,KAAK,CAAC;QAG/B,6DAA6D;IAC/D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAiC;QACrC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,iBAAiB,EAAK,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,oBAAoB;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,iBAAiB,EAAK,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B;QACE,6DAA6D;QAC7D,4DAA4D;IAC9D,CAAC;CAIF"}