drizzle-orm 0.39.2-aaa57ff → 0.39.2-eba7324

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 (1001) hide show
  1. package/alias.cjs.map +1 -1
  2. package/alias.d.cts +3 -3
  3. package/alias.d.ts +3 -3
  4. package/alias.js.map +1 -1
  5. package/aws-data-api/pg/driver.cjs +5 -19
  6. package/aws-data-api/pg/driver.cjs.map +1 -1
  7. package/aws-data-api/pg/driver.d.cts +8 -9
  8. package/aws-data-api/pg/driver.d.ts +8 -9
  9. package/aws-data-api/pg/driver.js +8 -9
  10. package/aws-data-api/pg/driver.js.map +1 -1
  11. package/aws-data-api/pg/migrator.cjs.map +1 -1
  12. package/aws-data-api/pg/migrator.d.cts +1 -2
  13. package/aws-data-api/pg/migrator.d.ts +1 -2
  14. package/aws-data-api/pg/migrator.js.map +1 -1
  15. package/aws-data-api/pg/session.cjs +4 -67
  16. package/aws-data-api/pg/session.cjs.map +1 -1
  17. package/aws-data-api/pg/session.d.cts +8 -13
  18. package/aws-data-api/pg/session.d.ts +8 -13
  19. package/aws-data-api/pg/session.js +4 -67
  20. package/aws-data-api/pg/session.js.map +1 -1
  21. package/better-sqlite3/driver.cjs +5 -12
  22. package/better-sqlite3/driver.cjs.map +1 -1
  23. package/better-sqlite3/driver.d.cts +6 -7
  24. package/better-sqlite3/driver.d.ts +6 -7
  25. package/better-sqlite3/driver.js +8 -12
  26. package/better-sqlite3/driver.js.map +1 -1
  27. package/better-sqlite3/migrator.cjs.map +1 -1
  28. package/better-sqlite3/migrator.d.cts +1 -2
  29. package/better-sqlite3/migrator.d.ts +1 -2
  30. package/better-sqlite3/migrator.js.map +1 -1
  31. package/better-sqlite3/session.cjs +4 -49
  32. package/better-sqlite3/session.cjs.map +1 -1
  33. package/better-sqlite3/session.d.cts +8 -14
  34. package/better-sqlite3/session.d.ts +8 -14
  35. package/better-sqlite3/session.js +4 -49
  36. package/better-sqlite3/session.js.map +1 -1
  37. package/bun-sql/driver.cjs +5 -16
  38. package/bun-sql/driver.cjs.map +1 -1
  39. package/bun-sql/driver.d.cts +6 -7
  40. package/bun-sql/driver.d.ts +6 -7
  41. package/bun-sql/driver.js +8 -6
  42. package/bun-sql/driver.js.map +1 -1
  43. package/bun-sql/migrator.cjs.map +1 -1
  44. package/bun-sql/migrator.d.cts +1 -2
  45. package/bun-sql/migrator.d.ts +1 -2
  46. package/bun-sql/migrator.js.map +1 -1
  47. package/bun-sql/session.cjs +6 -50
  48. package/bun-sql/session.cjs.map +1 -1
  49. package/bun-sql/session.d.cts +9 -14
  50. package/bun-sql/session.d.ts +9 -14
  51. package/bun-sql/session.js +6 -50
  52. package/bun-sql/session.js.map +1 -1
  53. package/bun-sqlite/driver.cjs +5 -22
  54. package/bun-sqlite/driver.cjs.map +1 -1
  55. package/bun-sqlite/driver.d.cts +6 -7
  56. package/bun-sqlite/driver.d.ts +6 -7
  57. package/bun-sqlite/driver.js +8 -12
  58. package/bun-sqlite/driver.js.map +1 -1
  59. package/bun-sqlite/migrator.cjs.map +1 -1
  60. package/bun-sqlite/migrator.d.cts +1 -2
  61. package/bun-sqlite/migrator.d.ts +1 -2
  62. package/bun-sqlite/migrator.js.map +1 -1
  63. package/bun-sqlite/session.cjs +4 -49
  64. package/bun-sqlite/session.cjs.map +1 -1
  65. package/bun-sqlite/session.d.cts +8 -14
  66. package/bun-sqlite/session.d.ts +8 -14
  67. package/bun-sqlite/session.js +4 -49
  68. package/bun-sqlite/session.js.map +1 -1
  69. package/column-builder.cjs.map +1 -1
  70. package/column-builder.d.cts +6 -5
  71. package/column-builder.d.ts +6 -5
  72. package/column-builder.js.map +1 -1
  73. package/d1/driver.cjs +5 -22
  74. package/d1/driver.cjs.map +1 -1
  75. package/d1/driver.d.cts +2 -3
  76. package/d1/driver.d.ts +2 -3
  77. package/d1/driver.js +8 -12
  78. package/d1/driver.js.map +1 -1
  79. package/d1/migrator.cjs.map +1 -1
  80. package/d1/migrator.d.cts +1 -2
  81. package/d1/migrator.d.ts +1 -2
  82. package/d1/migrator.js.map +1 -1
  83. package/d1/session.cjs +8 -50
  84. package/d1/session.cjs.map +1 -1
  85. package/d1/session.d.cts +8 -15
  86. package/d1/session.d.ts +8 -15
  87. package/d1/session.js +8 -50
  88. package/d1/session.js.map +1 -1
  89. package/durable-sqlite/driver.cjs +5 -16
  90. package/durable-sqlite/driver.cjs.map +1 -1
  91. package/durable-sqlite/driver.d.cts +2 -3
  92. package/durable-sqlite/driver.d.ts +2 -3
  93. package/durable-sqlite/driver.js +8 -6
  94. package/durable-sqlite/driver.js.map +1 -1
  95. package/durable-sqlite/migrator.cjs.map +1 -1
  96. package/durable-sqlite/migrator.d.cts +1 -2
  97. package/durable-sqlite/migrator.d.ts +1 -2
  98. package/durable-sqlite/migrator.js.map +1 -1
  99. package/durable-sqlite/session.cjs +4 -46
  100. package/durable-sqlite/session.cjs.map +1 -1
  101. package/durable-sqlite/session.d.cts +8 -14
  102. package/durable-sqlite/session.d.ts +8 -14
  103. package/durable-sqlite/session.js +4 -46
  104. package/durable-sqlite/session.js.map +1 -1
  105. package/expo-sqlite/driver.cjs +5 -22
  106. package/expo-sqlite/driver.cjs.map +1 -1
  107. package/expo-sqlite/driver.d.cts +2 -3
  108. package/expo-sqlite/driver.d.ts +2 -3
  109. package/expo-sqlite/driver.js +8 -12
  110. package/expo-sqlite/driver.js.map +1 -1
  111. package/expo-sqlite/migrator.cjs.map +1 -1
  112. package/expo-sqlite/migrator.d.cts +2 -3
  113. package/expo-sqlite/migrator.d.ts +2 -3
  114. package/expo-sqlite/migrator.js.map +1 -1
  115. package/expo-sqlite/query.cjs +2 -13
  116. package/expo-sqlite/query.cjs.map +1 -1
  117. package/expo-sqlite/query.d.cts +1 -2
  118. package/expo-sqlite/query.d.ts +1 -2
  119. package/expo-sqlite/query.js +2 -3
  120. package/expo-sqlite/query.js.map +1 -1
  121. package/expo-sqlite/session.cjs +4 -47
  122. package/expo-sqlite/session.cjs.map +1 -1
  123. package/expo-sqlite/session.d.cts +8 -14
  124. package/expo-sqlite/session.d.ts +8 -14
  125. package/expo-sqlite/session.js +4 -47
  126. package/expo-sqlite/session.js.map +1 -1
  127. package/gel/driver.cjs +97 -0
  128. package/gel/driver.cjs.map +1 -0
  129. package/gel/driver.d.cts +38 -0
  130. package/gel/driver.d.ts +38 -0
  131. package/gel/driver.js +74 -0
  132. package/gel/driver.js.map +1 -0
  133. package/gel/index.cjs +25 -0
  134. package/gel/index.cjs.map +1 -0
  135. package/gel/index.d.cts +2 -0
  136. package/gel/index.d.ts +2 -0
  137. package/gel/index.js +3 -0
  138. package/gel/index.js.map +1 -0
  139. package/gel/migrator.cjs +5 -0
  140. package/gel/migrator.cjs.map +1 -0
  141. package/gel/migrator.d.cts +1 -0
  142. package/gel/migrator.d.ts +1 -0
  143. package/gel/migrator.js +4 -0
  144. package/gel/migrator.js.map +1 -0
  145. package/gel/session.cjs +139 -0
  146. package/gel/session.cjs.map +1 -0
  147. package/gel/session.d.cts +47 -0
  148. package/gel/session.d.ts +47 -0
  149. package/gel/session.js +113 -0
  150. package/gel/session.js.map +1 -0
  151. package/gel-core/alias.cjs +32 -0
  152. package/gel-core/alias.cjs.map +1 -0
  153. package/gel-core/alias.d.cts +4 -0
  154. package/gel-core/alias.d.ts +4 -0
  155. package/gel-core/alias.js +8 -0
  156. package/gel-core/alias.js.map +1 -0
  157. package/gel-core/checks.cjs +58 -0
  158. package/gel-core/checks.cjs.map +1 -0
  159. package/gel-core/checks.d.cts +18 -0
  160. package/gel-core/checks.d.ts +18 -0
  161. package/gel-core/checks.js +32 -0
  162. package/gel-core/checks.js.map +1 -0
  163. package/gel-core/columns/all.cjs +72 -0
  164. package/gel-core/columns/all.cjs.map +1 -0
  165. package/gel-core/columns/all.d.cts +43 -0
  166. package/gel-core/columns/all.d.ts +43 -0
  167. package/gel-core/columns/all.js +48 -0
  168. package/gel-core/columns/all.js.map +1 -0
  169. package/gel-core/columns/bigint.cjs +54 -0
  170. package/gel-core/columns/bigint.cjs.map +1 -0
  171. package/gel-core/columns/bigint.d.cts +23 -0
  172. package/gel-core/columns/bigint.d.ts +23 -0
  173. package/gel-core/columns/bigint.js +28 -0
  174. package/gel-core/columns/bigint.js.map +1 -0
  175. package/gel-core/columns/bigintT.cjs +60 -0
  176. package/gel-core/columns/bigintT.cjs.map +1 -0
  177. package/gel-core/columns/bigintT.d.cts +24 -0
  178. package/gel-core/columns/bigintT.d.ts +24 -0
  179. package/gel-core/columns/bigintT.js +34 -0
  180. package/gel-core/columns/bigintT.js.map +1 -0
  181. package/gel-core/columns/boolean.cjs +53 -0
  182. package/gel-core/columns/boolean.cjs.map +1 -0
  183. package/gel-core/columns/boolean.d.cts +22 -0
  184. package/gel-core/columns/boolean.d.ts +22 -0
  185. package/gel-core/columns/boolean.js +27 -0
  186. package/gel-core/columns/boolean.js.map +1 -0
  187. package/gel-core/columns/bytes.cjs +56 -0
  188. package/gel-core/columns/bytes.cjs.map +1 -0
  189. package/gel-core/columns/bytes.d.cts +22 -0
  190. package/gel-core/columns/bytes.d.ts +22 -0
  191. package/gel-core/columns/bytes.js +30 -0
  192. package/gel-core/columns/bytes.js.map +1 -0
  193. package/gel-core/columns/common.cjs +213 -0
  194. package/gel-core/columns/common.cjs.map +1 -0
  195. package/gel-core/columns/common.d.cts +147 -0
  196. package/gel-core/columns/common.d.ts +147 -0
  197. package/gel-core/columns/common.js +184 -0
  198. package/gel-core/columns/common.js.map +1 -0
  199. package/gel-core/columns/custom.cjs +77 -0
  200. package/gel-core/columns/custom.cjs.map +1 -0
  201. package/gel-core/columns/custom.d.cts +155 -0
  202. package/gel-core/columns/custom.d.ts +155 -0
  203. package/gel-core/columns/custom.js +51 -0
  204. package/gel-core/columns/custom.js.map +1 -0
  205. package/gel-core/columns/date-duration.cjs +56 -0
  206. package/gel-core/columns/date-duration.cjs.map +1 -0
  207. package/gel-core/columns/date-duration.d.cts +23 -0
  208. package/gel-core/columns/date-duration.d.ts +23 -0
  209. package/gel-core/columns/date-duration.js +30 -0
  210. package/gel-core/columns/date-duration.js.map +1 -0
  211. package/gel-core/columns/date.common.cjs +37 -0
  212. package/gel-core/columns/date.common.cjs.map +1 -0
  213. package/gel-core/columns/date.common.d.cts +7 -0
  214. package/gel-core/columns/date.common.d.ts +7 -0
  215. package/gel-core/columns/date.common.js +13 -0
  216. package/gel-core/columns/date.common.js.map +1 -0
  217. package/gel-core/columns/decimal.cjs +56 -0
  218. package/gel-core/columns/decimal.cjs.map +1 -0
  219. package/gel-core/columns/decimal.d.cts +26 -0
  220. package/gel-core/columns/decimal.d.ts +26 -0
  221. package/gel-core/columns/decimal.js +30 -0
  222. package/gel-core/columns/decimal.js.map +1 -0
  223. package/gel-core/columns/double-precision.cjs +62 -0
  224. package/gel-core/columns/double-precision.cjs.map +1 -0
  225. package/gel-core/columns/double-precision.d.cts +23 -0
  226. package/gel-core/columns/double-precision.d.ts +23 -0
  227. package/gel-core/columns/double-precision.js +36 -0
  228. package/gel-core/columns/double-precision.js.map +1 -0
  229. package/gel-core/columns/duration.cjs +53 -0
  230. package/gel-core/columns/duration.cjs.map +1 -0
  231. package/gel-core/columns/duration.d.cts +23 -0
  232. package/gel-core/columns/duration.d.ts +23 -0
  233. package/gel-core/columns/duration.js +27 -0
  234. package/gel-core/columns/duration.js.map +1 -0
  235. package/gel-core/columns/index.cjs +65 -0
  236. package/gel-core/columns/index.cjs.map +1 -0
  237. package/gel-core/columns/index.d.cts +22 -0
  238. package/gel-core/columns/index.d.ts +22 -0
  239. package/gel-core/columns/index.js +23 -0
  240. package/gel-core/columns/index.js.map +1 -0
  241. package/gel-core/columns/int.common.cjs +67 -0
  242. package/gel-core/columns/int.common.cjs.map +1 -0
  243. package/gel-core/columns/int.common.d.cts +15 -0
  244. package/gel-core/columns/int.common.d.ts +15 -0
  245. package/gel-core/columns/int.common.js +43 -0
  246. package/gel-core/columns/int.common.js.map +1 -0
  247. package/gel-core/columns/integer.cjs +54 -0
  248. package/gel-core/columns/integer.cjs.map +1 -0
  249. package/gel-core/columns/integer.d.cts +23 -0
  250. package/gel-core/columns/integer.d.ts +23 -0
  251. package/gel-core/columns/integer.js +28 -0
  252. package/gel-core/columns/integer.js.map +1 -0
  253. package/gel-core/columns/json.cjs +56 -0
  254. package/gel-core/columns/json.cjs.map +1 -0
  255. package/gel-core/columns/json.d.cts +26 -0
  256. package/gel-core/columns/json.d.ts +26 -0
  257. package/gel-core/columns/json.js +30 -0
  258. package/gel-core/columns/json.js.map +1 -0
  259. package/gel-core/columns/localdate.cjs +57 -0
  260. package/gel-core/columns/localdate.cjs.map +1 -0
  261. package/gel-core/columns/localdate.d.cts +24 -0
  262. package/gel-core/columns/localdate.d.ts +24 -0
  263. package/gel-core/columns/localdate.js +31 -0
  264. package/gel-core/columns/localdate.js.map +1 -0
  265. package/gel-core/columns/localtime.cjs +57 -0
  266. package/gel-core/columns/localtime.cjs.map +1 -0
  267. package/gel-core/columns/localtime.d.cts +24 -0
  268. package/gel-core/columns/localtime.d.ts +24 -0
  269. package/gel-core/columns/localtime.js +31 -0
  270. package/gel-core/columns/localtime.js.map +1 -0
  271. package/gel-core/columns/real.cjs +57 -0
  272. package/gel-core/columns/real.cjs.map +1 -0
  273. package/gel-core/columns/real.d.cts +28 -0
  274. package/gel-core/columns/real.d.ts +28 -0
  275. package/gel-core/columns/real.js +31 -0
  276. package/gel-core/columns/real.js.map +1 -0
  277. package/gel-core/columns/relative-duration.cjs +56 -0
  278. package/gel-core/columns/relative-duration.cjs.map +1 -0
  279. package/gel-core/columns/relative-duration.d.cts +23 -0
  280. package/gel-core/columns/relative-duration.d.ts +23 -0
  281. package/gel-core/columns/relative-duration.js +30 -0
  282. package/gel-core/columns/relative-duration.js.map +1 -0
  283. package/gel-core/columns/smallint.cjs +54 -0
  284. package/gel-core/columns/smallint.cjs.map +1 -0
  285. package/gel-core/columns/smallint.d.cts +23 -0
  286. package/gel-core/columns/smallint.d.ts +23 -0
  287. package/gel-core/columns/smallint.js +28 -0
  288. package/gel-core/columns/smallint.js.map +1 -0
  289. package/gel-core/columns/text.cjs +54 -0
  290. package/gel-core/columns/text.cjs.map +1 -0
  291. package/gel-core/columns/text.d.cts +26 -0
  292. package/gel-core/columns/text.d.ts +26 -0
  293. package/gel-core/columns/text.js +28 -0
  294. package/gel-core/columns/text.js.map +1 -0
  295. package/gel-core/columns/timestamp.cjs +60 -0
  296. package/gel-core/columns/timestamp.cjs.map +1 -0
  297. package/gel-core/columns/timestamp.d.cts +28 -0
  298. package/gel-core/columns/timestamp.d.ts +28 -0
  299. package/gel-core/columns/timestamp.js +34 -0
  300. package/gel-core/columns/timestamp.js.map +1 -0
  301. package/gel-core/columns/timestamptz.cjs +60 -0
  302. package/gel-core/columns/timestamptz.cjs.map +1 -0
  303. package/gel-core/columns/timestamptz.d.cts +27 -0
  304. package/gel-core/columns/timestamptz.d.ts +27 -0
  305. package/gel-core/columns/timestamptz.js +34 -0
  306. package/gel-core/columns/timestamptz.js.map +1 -0
  307. package/gel-core/columns/uuid.cjs +53 -0
  308. package/gel-core/columns/uuid.cjs.map +1 -0
  309. package/gel-core/columns/uuid.d.cts +22 -0
  310. package/gel-core/columns/uuid.d.ts +22 -0
  311. package/gel-core/columns/uuid.js +27 -0
  312. package/gel-core/columns/uuid.js.map +1 -0
  313. package/gel-core/db.cjs +338 -0
  314. package/gel-core/db.cjs.map +1 -0
  315. package/gel-core/db.d.cts +281 -0
  316. package/gel-core/db.d.ts +281 -0
  317. package/gel-core/db.js +319 -0
  318. package/gel-core/db.js.map +1 -0
  319. package/gel-core/dialect.cjs +1142 -0
  320. package/gel-core/dialect.cjs.map +1 -0
  321. package/gel-core/dialect.d.cts +62 -0
  322. package/gel-core/dialect.d.ts +62 -0
  323. package/gel-core/dialect.js +1128 -0
  324. package/gel-core/dialect.js.map +1 -0
  325. package/gel-core/expressions.cjs +49 -0
  326. package/gel-core/expressions.cjs.map +1 -0
  327. package/gel-core/expressions.d.cts +8 -0
  328. package/gel-core/expressions.d.ts +8 -0
  329. package/gel-core/expressions.js +22 -0
  330. package/gel-core/expressions.js.map +1 -0
  331. package/gel-core/foreign-keys.cjs +100 -0
  332. package/gel-core/foreign-keys.cjs.map +1 -0
  333. package/gel-core/foreign-keys.d.cts +48 -0
  334. package/gel-core/foreign-keys.d.ts +48 -0
  335. package/gel-core/foreign-keys.js +74 -0
  336. package/gel-core/foreign-keys.js.map +1 -0
  337. package/gel-core/index.cjs +61 -0
  338. package/gel-core/index.cjs.map +1 -0
  339. package/gel-core/index.d.cts +20 -0
  340. package/gel-core/index.d.ts +20 -0
  341. package/gel-core/index.js +21 -0
  342. package/gel-core/index.js.map +1 -0
  343. package/gel-core/indexes.cjs +149 -0
  344. package/gel-core/indexes.cjs.map +1 -0
  345. package/gel-core/indexes.d.cts +79 -0
  346. package/gel-core/indexes.d.ts +79 -0
  347. package/gel-core/indexes.js +121 -0
  348. package/gel-core/indexes.js.map +1 -0
  349. package/gel-core/policies.cjs +58 -0
  350. package/gel-core/policies.cjs.map +1 -0
  351. package/gel-core/policies.d.cts +24 -0
  352. package/gel-core/policies.d.ts +24 -0
  353. package/gel-core/policies.js +33 -0
  354. package/gel-core/policies.js.map +1 -0
  355. package/gel-core/primary-keys.cjs +68 -0
  356. package/gel-core/primary-keys.cjs.map +1 -0
  357. package/gel-core/primary-keys.d.cts +30 -0
  358. package/gel-core/primary-keys.d.ts +30 -0
  359. package/gel-core/primary-keys.js +42 -0
  360. package/gel-core/primary-keys.js.map +1 -0
  361. package/gel-core/query-builders/count.cjs +73 -0
  362. package/gel-core/query-builders/count.cjs.map +1 -0
  363. package/gel-core/query-builders/count.d.cts +25 -0
  364. package/gel-core/query-builders/count.d.ts +25 -0
  365. package/gel-core/query-builders/count.js +49 -0
  366. package/gel-core/query-builders/count.js.map +1 -0
  367. package/gel-core/query-builders/delete.cjs +105 -0
  368. package/gel-core/query-builders/delete.cjs.map +1 -0
  369. package/gel-core/query-builders/delete.d.cts +99 -0
  370. package/gel-core/query-builders/delete.d.ts +99 -0
  371. package/gel-core/query-builders/delete.js +81 -0
  372. package/gel-core/query-builders/delete.js.map +1 -0
  373. package/gel-core/query-builders/index.cjs +35 -0
  374. package/gel-core/query-builders/index.cjs.map +1 -0
  375. package/gel-core/query-builders/index.d.cts +7 -0
  376. package/gel-core/query-builders/index.d.ts +7 -0
  377. package/gel-core/query-builders/index.js +8 -0
  378. package/gel-core/query-builders/index.js.map +1 -0
  379. package/gel-core/query-builders/insert.cjs +218 -0
  380. package/gel-core/query-builders/insert.cjs.map +1 -0
  381. package/gel-core/query-builders/insert.d.cts +116 -0
  382. package/gel-core/query-builders/insert.d.ts +116 -0
  383. package/gel-core/query-builders/insert.js +193 -0
  384. package/gel-core/query-builders/insert.js.map +1 -0
  385. package/gel-core/query-builders/query-builder.cjs +114 -0
  386. package/gel-core/query-builders/query-builder.cjs.map +1 -0
  387. package/gel-core/query-builders/query-builder.d.cts +40 -0
  388. package/gel-core/query-builders/query-builder.d.ts +40 -0
  389. package/gel-core/query-builders/query-builder.js +90 -0
  390. package/gel-core/query-builders/query-builder.js.map +1 -0
  391. package/{pg-core/query-builders/_query.cjs → gel-core/query-builders/query.cjs} +15 -31
  392. package/gel-core/query-builders/query.cjs.map +1 -0
  393. package/gel-core/query-builders/query.d.cts +46 -0
  394. package/gel-core/query-builders/query.d.ts +46 -0
  395. package/{pg-core/query-builders/_query.js → gel-core/query-builders/query.js} +15 -19
  396. package/gel-core/query-builders/query.js.map +1 -0
  397. package/gel-core/query-builders/raw.cjs +57 -0
  398. package/gel-core/query-builders/raw.cjs.map +1 -0
  399. package/gel-core/query-builders/raw.d.cts +22 -0
  400. package/gel-core/query-builders/raw.d.ts +22 -0
  401. package/gel-core/query-builders/raw.js +33 -0
  402. package/gel-core/query-builders/raw.js.map +1 -0
  403. package/gel-core/query-builders/refresh-materialized-view.cjs +77 -0
  404. package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  405. package/gel-core/query-builders/refresh-materialized-view.d.cts +27 -0
  406. package/gel-core/query-builders/refresh-materialized-view.d.ts +27 -0
  407. package/gel-core/query-builders/refresh-materialized-view.js +53 -0
  408. package/gel-core/query-builders/refresh-materialized-view.js.map +1 -0
  409. package/gel-core/query-builders/select.cjs +775 -0
  410. package/gel-core/query-builders/select.cjs.map +1 -0
  411. package/gel-core/query-builders/select.d.cts +721 -0
  412. package/gel-core/query-builders/select.d.ts +721 -0
  413. package/gel-core/query-builders/select.js +748 -0
  414. package/gel-core/query-builders/select.js.map +1 -0
  415. package/gel-core/query-builders/select.types.cjs +17 -0
  416. package/gel-core/query-builders/select.types.cjs.map +1 -0
  417. package/gel-core/query-builders/select.types.d.cts +138 -0
  418. package/gel-core/query-builders/select.types.d.ts +138 -0
  419. package/gel-core/query-builders/select.types.js +1 -0
  420. package/gel-core/query-builders/select.types.js.map +1 -0
  421. package/gel-core/query-builders/update.cjs +226 -0
  422. package/gel-core/query-builders/update.cjs.map +1 -0
  423. package/gel-core/query-builders/update.d.cts +166 -0
  424. package/gel-core/query-builders/update.d.ts +166 -0
  425. package/gel-core/query-builders/update.js +205 -0
  426. package/gel-core/query-builders/update.js.map +1 -0
  427. package/gel-core/roles.cjs +57 -0
  428. package/gel-core/roles.cjs.map +1 -0
  429. package/gel-core/roles.d.cts +13 -0
  430. package/gel-core/roles.d.ts +13 -0
  431. package/gel-core/roles.js +32 -0
  432. package/gel-core/roles.js.map +1 -0
  433. package/gel-core/schema.cjs +74 -0
  434. package/gel-core/schema.cjs.map +1 -0
  435. package/gel-core/schema.d.cts +15 -0
  436. package/gel-core/schema.d.ts +15 -0
  437. package/gel-core/schema.js +48 -0
  438. package/gel-core/schema.js.map +1 -0
  439. package/gel-core/sequence.cjs +52 -0
  440. package/gel-core/sequence.cjs.map +1 -0
  441. package/gel-core/sequence.d.cts +18 -0
  442. package/gel-core/sequence.d.ts +18 -0
  443. package/gel-core/sequence.js +25 -0
  444. package/gel-core/sequence.js.map +1 -0
  445. package/gel-core/session.cjs +94 -0
  446. package/gel-core/session.cjs.map +1 -0
  447. package/gel-core/session.d.cts +56 -0
  448. package/gel-core/session.d.ts +56 -0
  449. package/gel-core/session.js +68 -0
  450. package/gel-core/session.js.map +1 -0
  451. package/gel-core/subquery.cjs +17 -0
  452. package/gel-core/subquery.cjs.map +1 -0
  453. package/gel-core/subquery.d.cts +5 -0
  454. package/gel-core/subquery.d.ts +5 -0
  455. package/gel-core/subquery.js +1 -0
  456. package/gel-core/subquery.js.map +1 -0
  457. package/gel-core/table.cjs +100 -0
  458. package/gel-core/table.cjs.map +1 -0
  459. package/gel-core/table.d.cts +95 -0
  460. package/gel-core/table.d.ts +95 -0
  461. package/gel-core/table.js +71 -0
  462. package/gel-core/table.js.map +1 -0
  463. package/gel-core/unique-constraint.cjs +89 -0
  464. package/gel-core/unique-constraint.cjs.map +1 -0
  465. package/gel-core/unique-constraint.d.cts +25 -0
  466. package/gel-core/unique-constraint.d.ts +25 -0
  467. package/gel-core/unique-constraint.js +61 -0
  468. package/gel-core/unique-constraint.js.map +1 -0
  469. package/gel-core/utils.cjs +100 -0
  470. package/gel-core/utils.cjs.map +1 -0
  471. package/gel-core/utils.d.cts +51 -0
  472. package/gel-core/utils.d.ts +51 -0
  473. package/gel-core/utils.js +74 -0
  474. package/gel-core/utils.js.map +1 -0
  475. package/gel-core/view-base.cjs +33 -0
  476. package/gel-core/view-base.cjs.map +1 -0
  477. package/gel-core/view-base.d.cts +8 -0
  478. package/gel-core/view-base.d.ts +8 -0
  479. package/gel-core/view-base.js +9 -0
  480. package/gel-core/view-base.js.map +1 -0
  481. package/gel-core/view-common.cjs +29 -0
  482. package/gel-core/view-common.cjs.map +1 -0
  483. package/gel-core/view-common.d.cts +1 -0
  484. package/gel-core/view-common.d.ts +1 -0
  485. package/gel-core/view-common.js +5 -0
  486. package/gel-core/view-common.js.map +1 -0
  487. package/gel-core/view.cjs +302 -0
  488. package/gel-core/view.cjs.map +1 -0
  489. package/gel-core/view.d.cts +150 -0
  490. package/gel-core/view.d.ts +150 -0
  491. package/gel-core/view.js +268 -0
  492. package/gel-core/view.js.map +1 -0
  493. package/libsql/driver-core.cjs +5 -22
  494. package/libsql/driver-core.cjs.map +1 -1
  495. package/libsql/driver-core.d.cts +1 -2
  496. package/libsql/driver-core.d.ts +1 -2
  497. package/libsql/driver-core.js +8 -12
  498. package/libsql/driver-core.js.map +1 -1
  499. package/libsql/driver.cjs.map +1 -1
  500. package/libsql/driver.d.cts +5 -6
  501. package/libsql/driver.d.ts +5 -6
  502. package/libsql/driver.js.map +1 -1
  503. package/libsql/http/index.cjs.map +1 -1
  504. package/libsql/http/index.d.cts +5 -6
  505. package/libsql/http/index.d.ts +5 -6
  506. package/libsql/http/index.js.map +1 -1
  507. package/libsql/migrator.cjs.map +1 -1
  508. package/libsql/migrator.d.cts +1 -2
  509. package/libsql/migrator.d.ts +1 -2
  510. package/libsql/migrator.js.map +1 -1
  511. package/libsql/node/index.cjs.map +1 -1
  512. package/libsql/node/index.d.cts +5 -6
  513. package/libsql/node/index.d.ts +5 -6
  514. package/libsql/node/index.js.map +1 -1
  515. package/libsql/session.cjs +4 -56
  516. package/libsql/session.cjs.map +1 -1
  517. package/libsql/session.d.cts +9 -15
  518. package/libsql/session.d.ts +9 -15
  519. package/libsql/session.js +4 -56
  520. package/libsql/session.js.map +1 -1
  521. package/libsql/sqlite3/index.cjs.map +1 -1
  522. package/libsql/sqlite3/index.d.cts +5 -6
  523. package/libsql/sqlite3/index.d.ts +5 -6
  524. package/libsql/sqlite3/index.js.map +1 -1
  525. package/libsql/wasm/index.cjs.map +1 -1
  526. package/libsql/wasm/index.d.cts +5 -6
  527. package/libsql/wasm/index.d.ts +5 -6
  528. package/libsql/wasm/index.js.map +1 -1
  529. package/libsql/web/index.cjs.map +1 -1
  530. package/libsql/web/index.d.cts +5 -6
  531. package/libsql/web/index.d.ts +5 -6
  532. package/libsql/web/index.js.map +1 -1
  533. package/libsql/ws/index.cjs.map +1 -1
  534. package/libsql/ws/index.d.cts +5 -6
  535. package/libsql/ws/index.d.ts +5 -6
  536. package/libsql/ws/index.js.map +1 -1
  537. package/mysql-core/db.cjs +6 -30
  538. package/mysql-core/db.cjs.map +1 -1
  539. package/mysql-core/db.d.cts +8 -15
  540. package/mysql-core/db.d.ts +8 -15
  541. package/mysql-core/db.js +5 -29
  542. package/mysql-core/db.js.map +1 -1
  543. package/mysql-core/dialect.cjs +15 -197
  544. package/mysql-core/dialect.cjs.map +1 -1
  545. package/mysql-core/dialect.d.cts +13 -36
  546. package/mysql-core/dialect.d.ts +13 -36
  547. package/mysql-core/dialect.js +22 -196
  548. package/mysql-core/dialect.js.map +1 -1
  549. package/mysql-core/query-builders/count.cjs.map +1 -1
  550. package/mysql-core/query-builders/count.d.cts +1 -1
  551. package/mysql-core/query-builders/count.d.ts +1 -1
  552. package/mysql-core/query-builders/count.js.map +1 -1
  553. package/mysql-core/query-builders/query.cjs +31 -18
  554. package/mysql-core/query-builders/query.cjs.map +1 -1
  555. package/mysql-core/query-builders/query.d.cts +10 -8
  556. package/mysql-core/query-builders/query.d.ts +10 -8
  557. package/mysql-core/query-builders/query.js +31 -18
  558. package/mysql-core/query-builders/query.js.map +1 -1
  559. package/mysql-core/session.cjs +2 -3
  560. package/mysql-core/session.cjs.map +1 -1
  561. package/mysql-core/session.d.cts +7 -10
  562. package/mysql-core/session.d.ts +7 -10
  563. package/mysql-core/session.js +2 -3
  564. package/mysql-core/session.js.map +1 -1
  565. package/mysql-proxy/driver.cjs +5 -22
  566. package/mysql-proxy/driver.cjs.map +1 -1
  567. package/mysql-proxy/driver.d.cts +2 -3
  568. package/mysql-proxy/driver.d.ts +2 -3
  569. package/mysql-proxy/driver.js +8 -12
  570. package/mysql-proxy/driver.js.map +1 -1
  571. package/mysql-proxy/migrator.cjs.map +1 -1
  572. package/mysql-proxy/migrator.d.cts +1 -2
  573. package/mysql-proxy/migrator.d.ts +1 -2
  574. package/mysql-proxy/migrator.js.map +1 -1
  575. package/mysql-proxy/session.cjs +2 -27
  576. package/mysql-proxy/session.cjs.map +1 -1
  577. package/mysql-proxy/session.d.cts +8 -13
  578. package/mysql-proxy/session.d.ts +8 -13
  579. package/mysql-proxy/session.js +2 -27
  580. package/mysql-proxy/session.js.map +1 -1
  581. package/mysql2/driver.cjs +7 -24
  582. package/mysql2/driver.cjs.map +1 -1
  583. package/mysql2/driver.d.cts +9 -10
  584. package/mysql2/driver.d.ts +9 -10
  585. package/mysql2/driver.js +10 -14
  586. package/mysql2/driver.js.map +1 -1
  587. package/mysql2/migrator.cjs.map +1 -1
  588. package/mysql2/migrator.d.cts +1 -2
  589. package/mysql2/migrator.d.ts +1 -2
  590. package/mysql2/migrator.js.map +1 -1
  591. package/mysql2/session.cjs +2 -30
  592. package/mysql2/session.cjs.map +1 -1
  593. package/mysql2/session.d.cts +8 -13
  594. package/mysql2/session.d.ts +8 -13
  595. package/mysql2/session.js +2 -30
  596. package/mysql2/session.js.map +1 -1
  597. package/neon-http/driver.cjs +7 -21
  598. package/neon-http/driver.cjs.map +1 -1
  599. package/neon-http/driver.d.cts +9 -10
  600. package/neon-http/driver.d.ts +9 -10
  601. package/neon-http/driver.js +7 -11
  602. package/neon-http/driver.js.map +1 -1
  603. package/neon-http/migrator.cjs.map +1 -1
  604. package/neon-http/migrator.d.cts +1 -2
  605. package/neon-http/migrator.d.ts +1 -2
  606. package/neon-http/migrator.js.map +1 -1
  607. package/neon-http/session.cjs +2 -32
  608. package/neon-http/session.cjs.map +1 -1
  609. package/neon-http/session.d.cts +8 -13
  610. package/neon-http/session.d.ts +8 -13
  611. package/neon-http/session.js +2 -32
  612. package/neon-http/session.js.map +1 -1
  613. package/neon-serverless/driver.cjs +7 -18
  614. package/neon-serverless/driver.cjs.map +1 -1
  615. package/neon-serverless/driver.d.cts +8 -9
  616. package/neon-serverless/driver.d.ts +8 -9
  617. package/neon-serverless/driver.js +10 -8
  618. package/neon-serverless/driver.js.map +1 -1
  619. package/neon-serverless/migrator.cjs.map +1 -1
  620. package/neon-serverless/migrator.d.cts +1 -2
  621. package/neon-serverless/migrator.d.ts +1 -2
  622. package/neon-serverless/migrator.js.map +1 -1
  623. package/neon-serverless/session.cjs +5 -40
  624. package/neon-serverless/session.cjs.map +1 -1
  625. package/neon-serverless/session.d.cts +8 -13
  626. package/neon-serverless/session.d.ts +8 -13
  627. package/neon-serverless/session.js +5 -40
  628. package/neon-serverless/session.js.map +1 -1
  629. package/node-postgres/driver.cjs +7 -13
  630. package/node-postgres/driver.cjs.map +1 -1
  631. package/node-postgres/driver.d.cts +8 -9
  632. package/node-postgres/driver.d.ts +8 -9
  633. package/node-postgres/driver.js +10 -13
  634. package/node-postgres/driver.js.map +1 -1
  635. package/node-postgres/migrator.cjs.map +1 -1
  636. package/node-postgres/migrator.d.cts +1 -2
  637. package/node-postgres/migrator.d.ts +1 -2
  638. package/node-postgres/migrator.js.map +1 -1
  639. package/node-postgres/session.cjs +4 -45
  640. package/node-postgres/session.cjs.map +1 -1
  641. package/node-postgres/session.d.cts +8 -13
  642. package/node-postgres/session.d.ts +8 -13
  643. package/node-postgres/session.js +4 -45
  644. package/node-postgres/session.js.map +1 -1
  645. package/op-sqlite/driver.cjs +5 -22
  646. package/op-sqlite/driver.cjs.map +1 -1
  647. package/op-sqlite/driver.d.cts +2 -3
  648. package/op-sqlite/driver.d.ts +2 -3
  649. package/op-sqlite/driver.js +8 -12
  650. package/op-sqlite/driver.js.map +1 -1
  651. package/op-sqlite/migrator.cjs.map +1 -1
  652. package/op-sqlite/migrator.d.cts +2 -3
  653. package/op-sqlite/migrator.d.ts +2 -3
  654. package/op-sqlite/migrator.js.map +1 -1
  655. package/op-sqlite/session.cjs +4 -47
  656. package/op-sqlite/session.cjs.map +1 -1
  657. package/op-sqlite/session.d.cts +8 -14
  658. package/op-sqlite/session.d.ts +8 -14
  659. package/op-sqlite/session.js +4 -47
  660. package/op-sqlite/session.js.map +1 -1
  661. package/package.json +784 -99
  662. package/pg-core/db.cjs +5 -32
  663. package/pg-core/db.cjs.map +1 -1
  664. package/pg-core/db.d.cts +9 -16
  665. package/pg-core/db.d.ts +9 -16
  666. package/pg-core/db.js +4 -31
  667. package/pg-core/db.js.map +1 -1
  668. package/pg-core/dialect.cjs +488 -173
  669. package/pg-core/dialect.cjs.map +1 -1
  670. package/pg-core/dialect.d.cts +8 -27
  671. package/pg-core/dialect.d.ts +8 -27
  672. package/pg-core/dialect.js +495 -172
  673. package/pg-core/dialect.js.map +1 -1
  674. package/pg-core/query-builders/count.cjs.map +1 -1
  675. package/pg-core/query-builders/count.d.cts +1 -1
  676. package/pg-core/query-builders/count.d.ts +1 -1
  677. package/pg-core/query-builders/count.js.map +1 -1
  678. package/pg-core/query-builders/query.cjs +18 -15
  679. package/pg-core/query-builders/query.cjs.map +1 -1
  680. package/pg-core/query-builders/query.d.cts +6 -6
  681. package/pg-core/query-builders/query.d.ts +6 -6
  682. package/pg-core/query-builders/query.js +18 -15
  683. package/pg-core/query-builders/query.js.map +1 -1
  684. package/pg-core/session.cjs +2 -3
  685. package/pg-core/session.cjs.map +1 -1
  686. package/pg-core/session.d.cts +6 -9
  687. package/pg-core/session.d.ts +6 -9
  688. package/pg-core/session.js +2 -3
  689. package/pg-core/session.js.map +1 -1
  690. package/pg-core/table.cjs +2 -0
  691. package/pg-core/table.cjs.map +1 -1
  692. package/pg-core/table.js +2 -0
  693. package/pg-core/table.js.map +1 -1
  694. package/pg-proxy/driver.cjs +5 -21
  695. package/pg-proxy/driver.cjs.map +1 -1
  696. package/pg-proxy/driver.d.cts +2 -3
  697. package/pg-proxy/driver.d.ts +2 -3
  698. package/pg-proxy/driver.js +8 -11
  699. package/pg-proxy/driver.js.map +1 -1
  700. package/pg-proxy/migrator.cjs.map +1 -1
  701. package/pg-proxy/migrator.d.cts +1 -2
  702. package/pg-proxy/migrator.d.ts +1 -2
  703. package/pg-proxy/migrator.js.map +1 -1
  704. package/pg-proxy/session.cjs +2 -37
  705. package/pg-proxy/session.cjs.map +1 -1
  706. package/pg-proxy/session.d.cts +8 -13
  707. package/pg-proxy/session.d.ts +8 -13
  708. package/pg-proxy/session.js +2 -37
  709. package/pg-proxy/session.js.map +1 -1
  710. package/pglite/driver.cjs +7 -23
  711. package/pglite/driver.cjs.map +1 -1
  712. package/pglite/driver.d.cts +8 -9
  713. package/pglite/driver.d.ts +8 -9
  714. package/pglite/driver.js +10 -13
  715. package/pglite/driver.js.map +1 -1
  716. package/pglite/migrator.cjs.map +1 -1
  717. package/pglite/migrator.d.cts +1 -2
  718. package/pglite/migrator.d.ts +1 -2
  719. package/pglite/migrator.js.map +1 -1
  720. package/pglite/session.cjs +3 -34
  721. package/pglite/session.cjs.map +1 -1
  722. package/pglite/session.d.cts +8 -13
  723. package/pglite/session.d.ts +8 -13
  724. package/pglite/session.js +3 -34
  725. package/pglite/session.js.map +1 -1
  726. package/planetscale-serverless/driver.cjs +5 -22
  727. package/planetscale-serverless/driver.cjs.map +1 -1
  728. package/planetscale-serverless/driver.d.cts +6 -7
  729. package/planetscale-serverless/driver.d.ts +6 -7
  730. package/planetscale-serverless/driver.js +8 -12
  731. package/planetscale-serverless/driver.js.map +1 -1
  732. package/planetscale-serverless/migrator.cjs.map +1 -1
  733. package/planetscale-serverless/migrator.d.cts +1 -2
  734. package/planetscale-serverless/migrator.d.ts +1 -2
  735. package/planetscale-serverless/migrator.js.map +1 -1
  736. package/planetscale-serverless/session.cjs +5 -45
  737. package/planetscale-serverless/session.cjs.map +1 -1
  738. package/planetscale-serverless/session.d.cts +9 -14
  739. package/planetscale-serverless/session.d.ts +9 -14
  740. package/planetscale-serverless/session.js +5 -45
  741. package/planetscale-serverless/session.js.map +1 -1
  742. package/postgres-js/driver.cjs +5 -6
  743. package/postgres-js/driver.cjs.map +1 -1
  744. package/postgres-js/driver.d.cts +6 -7
  745. package/postgres-js/driver.d.ts +6 -7
  746. package/postgres-js/driver.js +8 -6
  747. package/postgres-js/driver.js.map +1 -1
  748. package/postgres-js/migrator.cjs.map +1 -1
  749. package/postgres-js/migrator.d.cts +1 -2
  750. package/postgres-js/migrator.d.ts +1 -2
  751. package/postgres-js/migrator.js.map +1 -1
  752. package/postgres-js/session.cjs +6 -51
  753. package/postgres-js/session.cjs.map +1 -1
  754. package/postgres-js/session.d.cts +9 -15
  755. package/postgres-js/session.d.ts +9 -15
  756. package/postgres-js/session.js +6 -51
  757. package/postgres-js/session.js.map +1 -1
  758. package/prisma/mysql/driver.cjs +1 -1
  759. package/prisma/mysql/driver.cjs.map +1 -1
  760. package/prisma/mysql/driver.js +1 -1
  761. package/prisma/mysql/driver.js.map +1 -1
  762. package/prisma/mysql/session.cjs +0 -3
  763. package/prisma/mysql/session.cjs.map +1 -1
  764. package/prisma/mysql/session.d.cts +1 -3
  765. package/prisma/mysql/session.d.ts +1 -3
  766. package/prisma/mysql/session.js +0 -3
  767. package/prisma/mysql/session.js.map +1 -1
  768. package/prisma/pg/driver.cjs +1 -1
  769. package/prisma/pg/driver.cjs.map +1 -1
  770. package/prisma/pg/driver.js +1 -1
  771. package/prisma/pg/driver.js.map +1 -1
  772. package/prisma/pg/session.cjs +0 -3
  773. package/prisma/pg/session.cjs.map +1 -1
  774. package/prisma/pg/session.d.cts +1 -3
  775. package/prisma/pg/session.d.ts +1 -3
  776. package/prisma/pg/session.js +0 -3
  777. package/prisma/pg/session.js.map +1 -1
  778. package/prisma/sqlite/driver.cjs +1 -1
  779. package/prisma/sqlite/driver.cjs.map +1 -1
  780. package/prisma/sqlite/driver.js +1 -1
  781. package/prisma/sqlite/driver.js.map +1 -1
  782. package/prisma/sqlite/session.cjs +0 -3
  783. package/prisma/sqlite/session.cjs.map +1 -1
  784. package/prisma/sqlite/session.d.cts +2 -4
  785. package/prisma/sqlite/session.d.ts +2 -4
  786. package/prisma/sqlite/session.js +0 -3
  787. package/prisma/sqlite/session.js.map +1 -1
  788. package/relations.cjs +245 -596
  789. package/relations.cjs.map +1 -1
  790. package/relations.d.cts +140 -292
  791. package/relations.d.ts +140 -292
  792. package/relations.js +240 -589
  793. package/relations.js.map +1 -1
  794. package/singlestore/driver.cjs +1 -1
  795. package/singlestore/driver.cjs.map +1 -1
  796. package/singlestore/driver.d.cts +1 -1
  797. package/singlestore/driver.d.ts +1 -1
  798. package/singlestore/driver.js +3 -3
  799. package/singlestore/driver.js.map +1 -1
  800. package/singlestore/session.cjs.map +1 -1
  801. package/singlestore/session.d.cts +4 -4
  802. package/singlestore/session.d.ts +4 -4
  803. package/singlestore/session.js.map +1 -1
  804. package/singlestore-core/db.cjs.map +1 -1
  805. package/singlestore-core/db.d.cts +3 -3
  806. package/singlestore-core/db.d.ts +3 -3
  807. package/singlestore-core/db.js.map +1 -1
  808. package/singlestore-core/dialect.cjs +6 -16
  809. package/singlestore-core/dialect.cjs.map +1 -1
  810. package/singlestore-core/dialect.d.cts +6 -6
  811. package/singlestore-core/dialect.d.ts +6 -6
  812. package/singlestore-core/dialect.js +12 -6
  813. package/singlestore-core/dialect.js.map +1 -1
  814. package/singlestore-core/query-builders/query.cjs +2 -12
  815. package/singlestore-core/query-builders/query.cjs.map +1 -1
  816. package/singlestore-core/query-builders/query.d.cts +6 -6
  817. package/singlestore-core/query-builders/query.d.ts +6 -6
  818. package/singlestore-core/query-builders/query.js +4 -2
  819. package/singlestore-core/query-builders/query.js.map +1 -1
  820. package/singlestore-core/session.cjs.map +1 -1
  821. package/singlestore-core/session.d.cts +5 -5
  822. package/singlestore-core/session.d.ts +5 -5
  823. package/singlestore-core/session.js.map +1 -1
  824. package/singlestore-proxy/driver.cjs +1 -1
  825. package/singlestore-proxy/driver.cjs.map +1 -1
  826. package/singlestore-proxy/driver.js +3 -3
  827. package/singlestore-proxy/driver.js.map +1 -1
  828. package/singlestore-proxy/session.cjs.map +1 -1
  829. package/singlestore-proxy/session.d.cts +4 -4
  830. package/singlestore-proxy/session.d.ts +4 -4
  831. package/singlestore-proxy/session.js.map +1 -1
  832. package/sql/expressions/conditions.cjs.map +1 -1
  833. package/sql/expressions/conditions.d.cts +4 -4
  834. package/sql/expressions/conditions.d.ts +4 -4
  835. package/sql/expressions/conditions.js.map +1 -1
  836. package/sql/sql.cjs +0 -21
  837. package/sql/sql.cjs.map +1 -1
  838. package/sql/sql.d.cts +8 -8
  839. package/sql/sql.d.ts +8 -8
  840. package/sql/sql.js +1 -22
  841. package/sql/sql.js.map +1 -1
  842. package/sql-js/driver.cjs +5 -16
  843. package/sql-js/driver.cjs.map +1 -1
  844. package/sql-js/driver.d.cts +2 -3
  845. package/sql-js/driver.d.ts +2 -3
  846. package/sql-js/driver.js +8 -6
  847. package/sql-js/driver.js.map +1 -1
  848. package/sql-js/migrator.cjs.map +1 -1
  849. package/sql-js/migrator.d.cts +1 -2
  850. package/sql-js/migrator.d.ts +1 -2
  851. package/sql-js/migrator.js.map +1 -1
  852. package/sql-js/session.cjs +36 -71
  853. package/sql-js/session.cjs.map +1 -1
  854. package/sql-js/session.d.cts +13 -16
  855. package/sql-js/session.d.ts +13 -16
  856. package/sql-js/session.js +36 -71
  857. package/sql-js/session.js.map +1 -1
  858. package/sqlite-core/db.cjs +12 -39
  859. package/sqlite-core/db.cjs.map +1 -1
  860. package/sqlite-core/db.d.cts +8 -16
  861. package/sqlite-core/db.d.ts +8 -16
  862. package/sqlite-core/db.js +11 -38
  863. package/sqlite-core/db.js.map +1 -1
  864. package/sqlite-core/dialect.cjs +7 -186
  865. package/sqlite-core/dialect.cjs.map +1 -1
  866. package/sqlite-core/dialect.d.cts +9 -31
  867. package/sqlite-core/dialect.d.ts +9 -31
  868. package/sqlite-core/dialect.js +14 -185
  869. package/sqlite-core/dialect.js.map +1 -1
  870. package/sqlite-core/query-builders/count.cjs.map +1 -1
  871. package/sqlite-core/query-builders/count.d.cts +1 -1
  872. package/sqlite-core/query-builders/count.d.ts +1 -1
  873. package/sqlite-core/query-builders/count.js.map +1 -1
  874. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  875. package/sqlite-core/query-builders/delete.d.cts +1 -1
  876. package/sqlite-core/query-builders/delete.d.ts +1 -1
  877. package/sqlite-core/query-builders/delete.js.map +1 -1
  878. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  879. package/sqlite-core/query-builders/insert.d.cts +3 -3
  880. package/sqlite-core/query-builders/insert.d.ts +3 -3
  881. package/sqlite-core/query-builders/insert.js.map +1 -1
  882. package/sqlite-core/query-builders/query.cjs +35 -56
  883. package/sqlite-core/query-builders/query.cjs.map +1 -1
  884. package/sqlite-core/query-builders/query.d.cts +17 -18
  885. package/sqlite-core/query-builders/query.d.ts +17 -18
  886. package/sqlite-core/query-builders/query.js +35 -56
  887. package/sqlite-core/query-builders/query.js.map +1 -1
  888. package/sqlite-core/query-builders/select.cjs.map +1 -1
  889. package/sqlite-core/query-builders/select.d.cts +3 -3
  890. package/sqlite-core/query-builders/select.d.ts +3 -3
  891. package/sqlite-core/query-builders/select.js.map +1 -1
  892. package/sqlite-core/query-builders/update.cjs.map +1 -1
  893. package/sqlite-core/query-builders/update.d.cts +3 -3
  894. package/sqlite-core/query-builders/update.d.ts +3 -3
  895. package/sqlite-core/query-builders/update.js.map +1 -1
  896. package/sqlite-core/session.cjs +2 -6
  897. package/sqlite-core/session.cjs.map +1 -1
  898. package/sqlite-core/session.d.cts +7 -15
  899. package/sqlite-core/session.d.ts +7 -15
  900. package/sqlite-core/session.js +2 -6
  901. package/sqlite-core/session.js.map +1 -1
  902. package/sqlite-proxy/driver.cjs +5 -23
  903. package/sqlite-proxy/driver.cjs.map +1 -1
  904. package/sqlite-proxy/driver.d.cts +3 -4
  905. package/sqlite-proxy/driver.d.ts +3 -4
  906. package/sqlite-proxy/driver.js +5 -13
  907. package/sqlite-proxy/driver.js.map +1 -1
  908. package/sqlite-proxy/migrator.cjs.map +1 -1
  909. package/sqlite-proxy/migrator.d.cts +1 -2
  910. package/sqlite-proxy/migrator.d.ts +1 -2
  911. package/sqlite-proxy/migrator.js.map +1 -1
  912. package/sqlite-proxy/session.cjs +6 -50
  913. package/sqlite-proxy/session.cjs.map +1 -1
  914. package/sqlite-proxy/session.d.cts +8 -14
  915. package/sqlite-proxy/session.d.ts +8 -14
  916. package/sqlite-proxy/session.js +6 -50
  917. package/sqlite-proxy/session.js.map +1 -1
  918. package/table.cjs.map +1 -1
  919. package/table.d.cts +2 -2
  920. package/table.d.ts +2 -2
  921. package/table.js.map +1 -1
  922. package/tidb-serverless/driver.cjs +5 -22
  923. package/tidb-serverless/driver.cjs.map +1 -1
  924. package/tidb-serverless/driver.d.cts +6 -7
  925. package/tidb-serverless/driver.d.ts +6 -7
  926. package/tidb-serverless/driver.js +8 -12
  927. package/tidb-serverless/driver.js.map +1 -1
  928. package/tidb-serverless/migrator.cjs.map +1 -1
  929. package/tidb-serverless/migrator.d.cts +1 -2
  930. package/tidb-serverless/migrator.d.ts +1 -2
  931. package/tidb-serverless/migrator.js.map +1 -1
  932. package/tidb-serverless/session.cjs +5 -62
  933. package/tidb-serverless/session.cjs.map +1 -1
  934. package/tidb-serverless/session.d.cts +9 -14
  935. package/tidb-serverless/session.d.ts +9 -14
  936. package/tidb-serverless/session.js +5 -62
  937. package/tidb-serverless/session.js.map +1 -1
  938. package/utils.cjs +2 -2
  939. package/utils.cjs.map +1 -1
  940. package/utils.d.cts +1 -3
  941. package/utils.d.ts +1 -3
  942. package/utils.js +2 -2
  943. package/utils.js.map +1 -1
  944. package/vercel-postgres/driver.cjs +7 -23
  945. package/vercel-postgres/driver.cjs.map +1 -1
  946. package/vercel-postgres/driver.d.cts +8 -9
  947. package/vercel-postgres/driver.d.ts +8 -9
  948. package/vercel-postgres/driver.js +10 -13
  949. package/vercel-postgres/driver.js.map +1 -1
  950. package/vercel-postgres/migrator.cjs.map +1 -1
  951. package/vercel-postgres/migrator.d.cts +1 -2
  952. package/vercel-postgres/migrator.d.ts +1 -2
  953. package/vercel-postgres/migrator.js.map +1 -1
  954. package/vercel-postgres/session.cjs +4 -34
  955. package/vercel-postgres/session.cjs.map +1 -1
  956. package/vercel-postgres/session.d.cts +8 -13
  957. package/vercel-postgres/session.d.ts +8 -13
  958. package/vercel-postgres/session.js +4 -34
  959. package/vercel-postgres/session.js.map +1 -1
  960. package/version.cjs +1 -1
  961. package/version.d.cts +1 -1
  962. package/version.d.ts +1 -1
  963. package/version.js +1 -1
  964. package/xata-http/driver.cjs +5 -17
  965. package/xata-http/driver.cjs.map +1 -1
  966. package/xata-http/driver.d.cts +4 -5
  967. package/xata-http/driver.d.ts +4 -5
  968. package/xata-http/driver.js +5 -7
  969. package/xata-http/driver.js.map +1 -1
  970. package/xata-http/migrator.cjs.map +1 -1
  971. package/xata-http/migrator.d.cts +1 -2
  972. package/xata-http/migrator.d.ts +1 -2
  973. package/xata-http/migrator.js.map +1 -1
  974. package/xata-http/session.cjs +2 -30
  975. package/xata-http/session.cjs.map +1 -1
  976. package/xata-http/session.d.cts +8 -13
  977. package/xata-http/session.d.ts +8 -13
  978. package/xata-http/session.js +2 -30
  979. package/xata-http/session.js.map +1 -1
  980. package/_relations.cjs +0 -328
  981. package/_relations.cjs.map +0 -1
  982. package/_relations.d.cts +0 -215
  983. package/_relations.d.ts +0 -215
  984. package/_relations.js +0 -316
  985. package/_relations.js.map +0 -1
  986. package/mysql-core/query-builders/_query.cjs +0 -149
  987. package/mysql-core/query-builders/_query.cjs.map +0 -1
  988. package/mysql-core/query-builders/_query.d.cts +0 -44
  989. package/mysql-core/query-builders/_query.d.ts +0 -44
  990. package/mysql-core/query-builders/_query.js +0 -114
  991. package/mysql-core/query-builders/_query.js.map +0 -1
  992. package/pg-core/query-builders/_query.cjs.map +0 -1
  993. package/pg-core/query-builders/_query.d.cts +0 -47
  994. package/pg-core/query-builders/_query.d.ts +0 -47
  995. package/pg-core/query-builders/_query.js.map +0 -1
  996. package/sqlite-core/query-builders/_query.cjs +0 -187
  997. package/sqlite-core/query-builders/_query.cjs.map +0 -1
  998. package/sqlite-core/query-builders/_query.d.cts +0 -55
  999. package/sqlite-core/query-builders/_query.d.ts +0 -55
  1000. package/sqlite-core/query-builders/_query.js +0 -151
  1001. package/sqlite-core/query-builders/_query.js.map +0 -1
package/sql-js/session.js CHANGED
@@ -5,32 +5,33 @@ import { SQLiteTransaction } from "../sqlite-core/index.js";
5
5
  import { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from "../sqlite-core/session.js";
6
6
  import { mapResultRow } from "../utils.js";
7
7
  class SQLJsSession extends SQLiteSession {
8
- constructor(client, dialect, relations, schema, options = {}) {
8
+ constructor(client, dialect, schema, options = {}) {
9
9
  super(dialect);
10
10
  this.client = client;
11
- this.relations = relations;
12
11
  this.schema = schema;
13
12
  this.logger = options.logger ?? new NoopLogger();
14
13
  }
15
14
  static [entityKind] = "SQLJsSession";
16
15
  logger;
17
16
  prepareQuery(query, fields, executeMethod, isResponseInArrayMode) {
18
- return new PreparedQuery(this.client, query, this.logger, fields, executeMethod, isResponseInArrayMode);
17
+ const stmt = this.client.prepare(query.sql);
18
+ return new PreparedQuery(stmt, query, this.logger, fields, executeMethod, isResponseInArrayMode);
19
19
  }
20
- prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
20
+ prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
21
+ const stmt = this.client.prepare(query.sql);
21
22
  return new PreparedQuery(
22
- this.client,
23
+ stmt,
23
24
  query,
24
25
  this.logger,
25
26
  fields,
26
27
  executeMethod,
27
- false,
28
+ isResponseInArrayMode,
28
29
  customResultMapper,
29
30
  true
30
31
  );
31
32
  }
32
33
  transaction(transaction, config = {}) {
33
- const tx = new SQLJsTransaction("sync", this.dialect, this, this.relations, this.schema);
34
+ const tx = new SQLJsTransaction("sync", this.dialect, this, this.schema);
34
35
  this.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ""}`));
35
36
  try {
36
37
  const result = transaction(tx);
@@ -46,14 +47,7 @@ class SQLJsTransaction extends SQLiteTransaction {
46
47
  static [entityKind] = "SQLJsTransaction";
47
48
  transaction(transaction) {
48
49
  const savepointName = `sp${this.nestedIndex + 1}`;
49
- const tx = new SQLJsTransaction(
50
- "sync",
51
- this.dialect,
52
- this.session,
53
- this.relations,
54
- this.schema,
55
- this.nestedIndex + 1
56
- );
50
+ const tx = new SQLJsTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);
57
51
  tx.run(sql.raw(`savepoint ${savepointName}`));
58
52
  try {
59
53
  const result = transaction(tx);
@@ -66,29 +60,27 @@ class SQLJsTransaction extends SQLiteTransaction {
66
60
  }
67
61
  }
68
62
  class PreparedQuery extends PreparedQueryBase {
69
- constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
63
+ constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isOneTimeQuery = false) {
70
64
  super("sync", executeMethod, query);
71
- this.client = client;
65
+ this.stmt = stmt;
72
66
  this.logger = logger;
73
67
  this.fields = fields;
74
68
  this._isResponseInArrayMode = _isResponseInArrayMode;
75
69
  this.customResultMapper = customResultMapper;
76
- this.isRqbV2Query = isRqbV2Query;
70
+ this.isOneTimeQuery = isOneTimeQuery;
77
71
  }
78
72
  static [entityKind] = "SQLJsPreparedQuery";
79
73
  run(placeholderValues) {
80
- const stmt = this.client.prepare(this.query.sql);
81
74
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
82
75
  this.logger.logQuery(this.query.sql, params);
83
- const result = stmt.run(params);
84
- stmt.free();
76
+ const result = this.stmt.run(params);
77
+ if (this.isOneTimeQuery) {
78
+ this.free();
79
+ }
85
80
  return result;
86
81
  }
87
82
  all(placeholderValues) {
88
- if (this.isRqbV2Query)
89
- return this.allRqbV2(placeholderValues);
90
- const stmt = this.client.prepare(this.query.sql);
91
- const { fields, joinsNotNullableMap, logger, query, customResultMapper } = this;
83
+ const { fields, joinsNotNullableMap, logger, query, stmt, isOneTimeQuery, customResultMapper } = this;
92
84
  if (!fields && !customResultMapper) {
93
85
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
94
86
  logger.logQuery(query.sql, params);
@@ -97,7 +89,9 @@ class PreparedQuery extends PreparedQueryBase {
97
89
  while (stmt.step()) {
98
90
  rows2.push(stmt.getAsObject());
99
91
  }
100
- stmt.free();
92
+ if (isOneTimeQuery) {
93
+ this.free();
94
+ }
101
95
  return rows2;
102
96
  }
103
97
  const rows = this.values(placeholderValues);
@@ -106,33 +100,21 @@ class PreparedQuery extends PreparedQueryBase {
106
100
  }
107
101
  return rows.map((row) => mapResultRow(fields, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));
108
102
  }
109
- allRqbV2(placeholderValues) {
110
- const stmt = this.client.prepare(this.query.sql);
111
- const { logger, query, customResultMapper } = this;
112
- const params = fillPlaceholders(query.params, placeholderValues ?? {});
113
- logger.logQuery(query.sql, params);
114
- stmt.bind(params);
115
- const rows = [];
116
- while (stmt.step()) {
117
- rows.push(stmt.getAsObject());
118
- }
119
- stmt.free();
120
- return customResultMapper(rows, normalizeFieldValue);
121
- }
122
103
  get(placeholderValues) {
123
- if (this.isRqbV2Query)
124
- return this.getRqbV2(placeholderValues);
125
- const stmt = this.client.prepare(this.query.sql);
126
104
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
127
105
  this.logger.logQuery(this.query.sql, params);
128
- const { fields, joinsNotNullableMap, customResultMapper } = this;
106
+ const { fields, stmt, isOneTimeQuery, joinsNotNullableMap, customResultMapper } = this;
129
107
  if (!fields && !customResultMapper) {
130
108
  const result = stmt.getAsObject(params);
131
- stmt.free();
109
+ if (isOneTimeQuery) {
110
+ this.free();
111
+ }
132
112
  return result;
133
113
  }
134
114
  const row = stmt.get(params);
135
- stmt.free();
115
+ if (isOneTimeQuery) {
116
+ this.free();
117
+ }
136
118
  if (!row || row.length === 0 && fields.length > 0) {
137
119
  return void 0;
138
120
  }
@@ -141,39 +123,22 @@ class PreparedQuery extends PreparedQueryBase {
141
123
  }
142
124
  return mapResultRow(fields, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);
143
125
  }
144
- getRqbV2(placeholderValues) {
145
- const stmt = this.client.prepare(this.query.sql);
146
- const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
147
- this.logger.logQuery(this.query.sql, params);
148
- const { customResultMapper } = this;
149
- const row = stmt.getAsObject(params);
150
- stmt.free();
151
- if (!row) {
152
- return void 0;
153
- }
154
- let nonUndef = false;
155
- for (const v of Object.values(row)) {
156
- if (v !== void 0) {
157
- nonUndef = true;
158
- break;
159
- }
160
- }
161
- if (!nonUndef)
162
- return void 0;
163
- return customResultMapper([row], normalizeFieldValue);
164
- }
165
126
  values(placeholderValues) {
166
- const stmt = this.client.prepare(this.query.sql);
167
127
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
168
128
  this.logger.logQuery(this.query.sql, params);
169
- stmt.bind(params);
129
+ this.stmt.bind(params);
170
130
  const rows = [];
171
- while (stmt.step()) {
172
- rows.push(stmt.get());
131
+ while (this.stmt.step()) {
132
+ rows.push(this.stmt.get());
133
+ }
134
+ if (this.isOneTimeQuery) {
135
+ this.free();
173
136
  }
174
- stmt.free();
175
137
  return rows;
176
138
  }
139
+ free() {
140
+ return this.stmt.free();
141
+ }
177
142
  /** @internal */
178
143
  isResponseInArrayMode() {
179
144
  return this._isResponseInArrayMode;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sql-js/session.ts"],"sourcesContent":["import type { BindParams, Database } from 'sql.js';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLJsSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLJsSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): PreparedQuery<T> {\n\t\treturn new PreparedQuery(this.client, query, this.logger, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): PreparedQuery<T, true> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLJsTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tthis.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class SQLJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SQLJsTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\ttx.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\ttx.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\ttx.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PreparedQueryBase<\n\t\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst result = stmt.run(params as BindParams);\n\n\t\tstmt.free();\n\n\t\treturn result;\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst { fields, joinsNotNullableMap, logger, query, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tstmt.bind(params as BindParams);\n\t\t\tconst rows: unknown[] = [];\n\t\t\twhile (stmt.step()) {\n\t\t\t\trows.push(stmt.getAsObject());\n\t\t\t}\n\n\t\t\tstmt.free();\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (\n\t\t\t\trows: unknown[][],\n\t\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t\t) => unknown)(rows, normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst { logger, query, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tstmt.bind(params as BindParams);\n\t\tconst rows: Record<string, unknown>[] = [];\n\t\twhile (stmt.step()) {\n\t\t\trows.push(stmt.getAsObject());\n\t\t}\n\n\t\tstmt.free();\n\n\t\treturn (customResultMapper as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown)(rows, normalizeFieldValue) as T['all'];\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst result = stmt.getAsObject(params as BindParams);\n\n\t\t\tstmt.free();\n\n\t\t\treturn result;\n\t\t}\n\n\t\tconst row = stmt.get(params as BindParams);\n\n\t\tstmt.free();\n\n\t\tif (!row || (row.length === 0 && fields!.length > 0)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (\n\t\t\t\trows: unknown[][],\n\t\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t\t) => unknown)([row], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { customResultMapper } = this;\n\n\t\tconst row = stmt.getAsObject(params as BindParams);\n\n\t\tstmt.free();\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet nonUndef = false;\n\t\tfor (const v of Object.values(row)) {\n\t\t\tif (v !== undefined) {\n\t\t\t\tnonUndef = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!nonUndef) return undefined;\n\n\t\treturn (customResultMapper as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown)([row], normalizeFieldValue) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tstmt.bind(params as BindParams);\n\t\tconst rows: unknown[] = [];\n\t\twhile (stmt.step()) {\n\t\t\trows.push(stmt.get());\n\t\t}\n\n\t\tstmt.free();\n\n\t\treturn rows;\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (value instanceof Uint8Array) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/sql-js/session.ts"],"sourcesContent":["import type { BindParams, Database, Statement } from 'sql.js';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLJsSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLJsSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(stmt, query, this.logger, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\toverride prepareOneTimeQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLJsTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class SQLJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SQLJsTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\ttx.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\ttx.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\ttx.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<\n\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tprivate isOneTimeQuery = false,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst result = this.stmt.run(params as BindParams);\n\n\t\tif (this.isOneTimeQuery) {\n\t\t\tthis.free();\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, logger, query, stmt, isOneTimeQuery, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tstmt.bind(params as BindParams);\n\t\t\tconst rows: unknown[] = [];\n\t\t\twhile (stmt.step()) {\n\t\t\t\trows.push(stmt.getAsObject());\n\t\t\t}\n\n\t\t\tif (isOneTimeQuery) {\n\t\t\t\tthis.free();\n\t\t\t}\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows, normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, isOneTimeQuery, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst result = stmt.getAsObject(params as BindParams);\n\n\t\t\tif (isOneTimeQuery) {\n\t\t\t\tthis.free();\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tconst row = stmt.get(params as BindParams);\n\n\t\tif (isOneTimeQuery) {\n\t\t\tthis.free();\n\t\t}\n\n\t\tif (!row || (row.length === 0 && fields!.length > 0)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper([row], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tthis.stmt.bind(params as BindParams);\n\t\tconst rows: unknown[] = [];\n\t\twhile (this.stmt.step()) {\n\t\t\trows.push(this.stmt.get());\n\t\t}\n\n\t\tif (this.isOneTimeQuery) {\n\t\t\tthis.free();\n\t\t}\n\n\t\treturn rows;\n\t}\n\n\tfree(): boolean {\n\t\treturn this.stmt.free();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (value instanceof Uint8Array) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
@@ -27,65 +27,41 @@ var import_selection_proxy = require("../selection-proxy.cjs");
27
27
  var import_sql = require("../sql/sql.cjs");
28
28
  var import_query_builders = require("./query-builders/index.cjs");
29
29
  var import_subquery = require("../subquery.cjs");
30
- var import_query = require("./query-builders/_query.cjs");
31
30
  var import_count = require("./query-builders/count.cjs");
32
- var import_query2 = require("./query-builders/query.cjs");
31
+ var import_query = require("./query-builders/query.cjs");
33
32
  var import_raw = require("./query-builders/raw.cjs");
34
33
  class BaseSQLiteDatabase {
35
- constructor(resultKind, dialect, session, relations, _schema, rowModeRQB) {
34
+ constructor(resultKind, dialect, session, schema) {
36
35
  this.resultKind = resultKind;
37
36
  this.dialect = dialect;
38
37
  this.session = session;
39
- this.rowModeRQB = rowModeRQB;
40
- const rel = relations ?? {};
41
- this._ = _schema ? {
42
- schema: _schema.schema,
43
- fullSchema: _schema.fullSchema,
44
- tableNamesMap: _schema.tableNamesMap,
45
- relations: rel
38
+ this._ = schema ? {
39
+ schema: schema.schema,
40
+ fullSchema: schema.fullSchema,
41
+ tableNamesMap: schema.tableNamesMap
46
42
  } : {
47
43
  schema: void 0,
48
44
  fullSchema: {},
49
- tableNamesMap: {},
50
- relations: rel
45
+ tableNamesMap: {}
51
46
  };
52
- this._query = {};
53
- const query = this._query;
47
+ this.query = {};
48
+ const query = this.query;
54
49
  if (this._.schema) {
55
50
  for (const [tableName, columns] of Object.entries(this._.schema)) {
56
- query[tableName] = new import_query._RelationalQueryBuilder(
51
+ query[tableName] = new import_query.RelationalQueryBuilder(
57
52
  resultKind,
58
- _schema.fullSchema,
53
+ schema.fullSchema,
59
54
  this._.schema,
60
55
  this._.tableNamesMap,
61
- _schema.fullSchema[tableName],
56
+ schema.fullSchema[tableName],
62
57
  columns,
63
58
  dialect,
64
59
  session
65
60
  );
66
61
  }
67
62
  }
68
- this.query = {};
69
- if (relations) {
70
- for (const [tableName, relation] of Object.entries(relations.tablesConfig)) {
71
- this.query[tableName] = new import_query2.RelationalQueryBuilder(
72
- resultKind,
73
- relations.tables,
74
- relations.tablesConfig,
75
- relations.tableNamesMap,
76
- relation.table,
77
- relation,
78
- dialect,
79
- session,
80
- rowModeRQB
81
- );
82
- }
83
- }
84
63
  }
85
64
  static [import_entity.entityKind] = "BaseSQLiteDatabase";
86
- /** @deprecated */
87
- _query;
88
- // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
89
65
  query;
90
66
  /**
91
67
  * Creates a subquery that defines a temporary named result set as a CTE.
@@ -368,9 +344,6 @@ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(
368
344
  selectDistinct,
369
345
  $count,
370
346
  with: $with,
371
- get _query() {
372
- return getReplica(replicas)._query;
373
- },
374
347
  get query() {
375
348
  return getReplica(replicas).query;
376
349
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/db.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteSelectBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport type {\n\tDBResult,\n\tResult,\n\tSQLiteSession,\n\tSQLiteTransaction,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { _RelationalQueryBuilder } from './query-builders/_query.ts';\nimport { SQLiteCountBuilder } from './query-builders/count.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithBuilder } from './subquery.ts';\nimport type { SQLiteViewBase } from './view-base.ts';\n\nexport class BaseSQLiteDatabase<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'BaseSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t\treadonly relations: TRelations;\n\t};\n\n\t/** @deprecated */\n\t_query: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<TResultKind, TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\t// TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas\n\tquery: {\n\t\t[K in keyof TRelations['tables']]: RelationalQueryBuilder<\n\t\t\tTResultKind,\n\t\t\tTTablesConfig,\n\t\t\tTTablesConfig[K]\n\t\t>;\n\t};\n\n\tconstructor(\n\t\tprivate resultKind: TResultKind,\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t\t/** @internal */\n\t\treadonly session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>,\n\t\trelations: AnyRelations | undefined,\n\t\t_schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly rowModeRQB?: boolean,\n\t) {\n\t\tconst rel = relations ?? {} as EmptyRelations;\n\n\t\tthis._ = _schema\n\t\t\t? {\n\t\t\t\tschema: _schema.schema,\n\t\t\t\tfullSchema: _schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: _schema.tableNamesMap,\n\t\t\t\trelations: rel as TRelations,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t\trelations: rel as TRelations,\n\t\t\t};\n\n\t\tthis._query = {} as typeof this['_query'];\n\t\tconst query = this._query as {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<TResultKind, TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new _RelationalQueryBuilder(\n\t\t\t\t\tresultKind,\n\t\t\t\t\t_schema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\t_schema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession<any, any, any, any, any>,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t\tthis.query = {} as typeof this['query'];\n\t\tif (relations) {\n\t\t\tfor (const [tableName, relation] of Object.entries(relations.tablesConfig)) {\n\t\t\t\t(this.query as BaseSQLiteDatabase<\n\t\t\t\t\tTResultKind,\n\t\t\t\t\tTRunResult,\n\t\t\t\t\tTSchema,\n\t\t\t\t\tAnyRelations,\n\t\t\t\t\tTablesRelationalConfig,\n\t\t\t\t\tV1.TablesRelationalConfig\n\t\t\t\t>['query'])[tableName] = new RelationalQueryBuilder(\n\t\t\t\t\tresultKind,\n\t\t\t\t\trelations.tables,\n\t\t\t\t\trelations.tablesConfig,\n\t\t\t\t\trelations.tableNamesMap,\n\t\t\t\t\trelation.table as SQLiteTable,\n\t\t\t\t\trelation,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession<any, any, any, any, any>,\n\t\t\t\t\trowModeRQB,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with: WithBuilder = (alias: string, selection?: ColumnsSelection) => {\n\t\tconst self = this;\n\t\tconst as = (\n\t\t\tqb:\n\t\t\t\t| TypedQueryBuilder<ColumnsSelection | undefined>\n\t\t\t\t| SQL\n\t\t\t\t| ((qb: QueryBuilder) => TypedQueryBuilder<ColumnsSelection | undefined> | SQL),\n\t\t) => {\n\t\t\tif (typeof qb === 'function') {\n\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t}\n\n\t\t\treturn new Proxy(\n\t\t\t\tnew WithSubquery(\n\t\t\t\t\tqb.getSQL(),\n\t\t\t\t\tselection ?? ('getSelectedFields' in qb ? qb.getSelectedFields() ?? {} : {}) as SelectedFields,\n\t\t\t\t\talias,\n\t\t\t\t\ttrue,\n\t\t\t\t),\n\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t);\n\t\t};\n\t\treturn { as };\n\t};\n\n\t$count(\n\t\tsource: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new SQLiteCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = await db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * await db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * await db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = await db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = await db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselect(fields?: SelectedFields): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * await db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, TResultKind, TRunResult> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, TResultKind, TRunResult> {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, TResultKind, TRunResult> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\trun(query: SQLWrapper | string): DBResult<TResultKind, TRunResult> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.run(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'run',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawRunValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, TRunResult>;\n\t\t}\n\t\treturn this.session.run(sequel) as DBResult<TResultKind, TRunResult>;\n\t}\n\n\tall<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.all(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'all',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawAllValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.all(sequel) as DBResult<TResultKind, T[]>;\n\t}\n\n\tget<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.get(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'get',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawGetValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, T>;\n\t\t}\n\t\treturn this.session.get(sequel) as DBResult<TResultKind, T>;\n\t}\n\n\tvalues<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.values(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'values',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawValuesValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.values(sequel) as DBResult<TResultKind, T[]>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>,\n\t\t) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T> {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n\tQ extends BaseSQLiteDatabase<\n\t\tTResultKind,\n\t\tTRunResult,\n\t\tTFullSchema,\n\t\tTRelations,\n\t\tTTablesConfig,\n\t\tTSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\t$count,\n\t\twith: $with,\n\t\tget _query() {\n\t\t\treturn getReplica(replicas)._query;\n\t\t},\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":["import_query"]}
1
+ {"version":3,"sources":["../../src/sqlite-core/db.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteSelectBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport type {\n\tDBResult,\n\tResult,\n\tSQLiteSession,\n\tSQLiteTransaction,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { SQLiteCountBuilder } from './query-builders/count.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithBuilder } from './subquery.ts';\nimport type { SQLiteViewBase } from './view-base.ts';\n\nexport class BaseSQLiteDatabase<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'BaseSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t};\n\n\tquery: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder<TResultKind, TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\tconstructor(\n\t\tprivate resultKind: TResultKind,\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t\t/** @internal */\n\t\treadonly session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t) {\n\t\tthis._ = schema\n\t\t\t? {\n\t\t\t\tschema: schema.schema,\n\t\t\t\tfullSchema: schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: schema.tableNamesMap,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t};\n\t\tthis.query = {} as typeof this['query'];\n\t\tconst query = this.query as {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder<TResultKind, TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new RelationalQueryBuilder(\n\t\t\t\t\tresultKind,\n\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\tschema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession<any, any, any, any> as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with: WithBuilder = (alias: string, selection?: ColumnsSelection) => {\n\t\tconst self = this;\n\t\tconst as = (\n\t\t\tqb:\n\t\t\t\t| TypedQueryBuilder<ColumnsSelection | undefined>\n\t\t\t\t| SQL\n\t\t\t\t| ((qb: QueryBuilder) => TypedQueryBuilder<ColumnsSelection | undefined> | SQL),\n\t\t) => {\n\t\t\tif (typeof qb === 'function') {\n\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t}\n\n\t\t\treturn new Proxy(\n\t\t\t\tnew WithSubquery(\n\t\t\t\t\tqb.getSQL(),\n\t\t\t\t\tselection ?? ('getSelectedFields' in qb ? qb.getSelectedFields() ?? {} : {}) as SelectedFields,\n\t\t\t\t\talias,\n\t\t\t\t\ttrue,\n\t\t\t\t),\n\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t);\n\t\t};\n\t\treturn { as };\n\t};\n\n\t$count(\n\t\tsource: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new SQLiteCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = await db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * await db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * await db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = await db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = await db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselect(fields?: SelectedFields): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * await db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, TResultKind, TRunResult> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, TResultKind, TRunResult> {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, TResultKind, TRunResult> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\trun(query: SQLWrapper | string): DBResult<TResultKind, TRunResult> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.run(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'run',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawRunValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, TRunResult>;\n\t\t}\n\t\treturn this.session.run(sequel) as DBResult<TResultKind, TRunResult>;\n\t}\n\n\tall<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.all(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'all',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawAllValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.all(sequel) as DBResult<TResultKind, T[]>;\n\t}\n\n\tget<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.get(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'get',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawGetValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, T>;\n\t\t}\n\t\treturn this.session.get(sequel) as DBResult<TResultKind, T>;\n\t}\n\n\tvalues<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.values(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'values',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawValuesValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.values(sequel) as DBResult<TResultKind, T[]>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T> {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n\tQ extends BaseSQLiteDatabase<\n\t\tTResultKind,\n\t\tTRunResult,\n\t\tTFullSchema,\n\t\tTSchema extends Record<string, unknown> ? ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\t$count,\n\t\twith: $with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":[]}
@@ -1,6 +1,5 @@
1
- import type * as V1 from "../_relations.cjs";
2
1
  import { entityKind } from "../entity.cjs";
3
- import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.cjs";
2
+ import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
4
3
  import { type SQL, type SQLWrapper } from "../sql/sql.cjs";
5
4
  import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.cjs";
6
5
  import { SQLiteDeleteBase, SQLiteInsertBuilder, SQLiteSelectBuilder, SQLiteUpdateBuilder } from "./query-builders/index.cjs";
@@ -8,28 +7,21 @@ import type { DBResult, Result, SQLiteSession, SQLiteTransaction, SQLiteTransact
8
7
  import type { SQLiteTable } from "./table.cjs";
9
8
  import { WithSubquery } from "../subquery.cjs";
10
9
  import type { DrizzleTypeError } from "../utils.cjs";
11
- import { _RelationalQueryBuilder } from "./query-builders/_query.cjs";
12
10
  import { SQLiteCountBuilder } from "./query-builders/count.cjs";
13
11
  import { RelationalQueryBuilder } from "./query-builders/query.cjs";
14
12
  import type { SelectedFields } from "./query-builders/select.types.cjs";
15
13
  import type { WithBuilder } from "./subquery.cjs";
16
14
  import type { SQLiteViewBase } from "./view-base.cjs";
17
- export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
15
+ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
18
16
  private resultKind;
19
- readonly rowModeRQB?: boolean | undefined;
20
17
  static readonly [entityKind]: string;
21
18
  readonly _: {
22
19
  readonly schema: TSchema | undefined;
23
20
  readonly fullSchema: TFullSchema;
24
21
  readonly tableNamesMap: Record<string, string>;
25
- readonly relations: TRelations;
26
22
  };
27
- /** @deprecated */
28
- _query: TFullSchema extends Record<string, never> ? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'> : {
29
- [K in keyof TSchema]: _RelationalQueryBuilder<TResultKind, TFullSchema, TSchema, TSchema[K]>;
30
- };
31
- query: {
32
- [K in keyof TRelations['tables']]: RelationalQueryBuilder<TResultKind, TTablesConfig, TTablesConfig[K]>;
23
+ query: TFullSchema extends Record<string, never> ? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'> : {
24
+ [K in keyof TSchema]: RelationalQueryBuilder<TResultKind, TFullSchema, TSchema, TSchema[K]>;
33
25
  };
34
26
  constructor(resultKind: TResultKind,
35
27
  /** @internal */
@@ -38,7 +30,7 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
38
30
  async: SQLiteAsyncDialect;
39
31
  }[TResultKind],
40
32
  /** @internal */
41
- session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>, relations: AnyRelations | undefined, _schema: V1.RelationalSchemaConfig<TSchema> | undefined, rowModeRQB?: boolean | undefined);
33
+ session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>, schema: RelationalSchemaConfig<TSchema> | undefined);
42
34
  /**
43
35
  * Creates a subquery that defines a temporary named result set as a CTE.
44
36
  *
@@ -72,7 +64,7 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
72
64
  * ```
73
65
  */
74
66
  $with: WithBuilder;
75
- $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteCountBuilder<SQLiteSession<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>>;
67
+ $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteCountBuilder<SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>>;
76
68
  /**
77
69
  * Incorporates a previously defined CTE (using `$with`) into the main query.
78
70
  *
@@ -252,9 +244,9 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
252
244
  all<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
253
245
  get<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T>;
254
246
  values<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
255
- transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
247
+ transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
256
248
  }
257
249
  export type SQLiteWithReplicas<Q> = Q & {
258
250
  $primary: Q;
259
251
  };
260
- export declare const withReplicas: <TResultKind extends "sync" | "async", TRunResult, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig, Q extends BaseSQLiteDatabase<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => SQLiteWithReplicas<Q>;
252
+ export declare const withReplicas: <TResultKind extends "sync" | "async", TRunResult, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig, Q extends BaseSQLiteDatabase<TResultKind, TRunResult, TFullSchema, TSchema extends Record<string, unknown> ? ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => SQLiteWithReplicas<Q>;