drizzle-orm 0.39.2-2fb137b → 0.39.2-65ced5e

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/_relations.cjs +328 -0
  2. package/_relations.cjs.map +1 -0
  3. package/_relations.d.cts +215 -0
  4. package/_relations.d.ts +215 -0
  5. package/_relations.js +316 -0
  6. package/_relations.js.map +1 -0
  7. package/alias.cjs.map +1 -1
  8. package/alias.d.cts +3 -3
  9. package/alias.d.ts +3 -3
  10. package/alias.js.map +1 -1
  11. package/aws-data-api/pg/driver.cjs +19 -5
  12. package/aws-data-api/pg/driver.cjs.map +1 -1
  13. package/aws-data-api/pg/driver.d.cts +9 -8
  14. package/aws-data-api/pg/driver.d.ts +9 -8
  15. package/aws-data-api/pg/driver.js +9 -8
  16. package/aws-data-api/pg/driver.js.map +1 -1
  17. package/aws-data-api/pg/migrator.cjs.map +1 -1
  18. package/aws-data-api/pg/migrator.d.cts +2 -1
  19. package/aws-data-api/pg/migrator.d.ts +2 -1
  20. package/aws-data-api/pg/migrator.js.map +1 -1
  21. package/aws-data-api/pg/session.cjs +67 -4
  22. package/aws-data-api/pg/session.cjs.map +1 -1
  23. package/aws-data-api/pg/session.d.cts +13 -8
  24. package/aws-data-api/pg/session.d.ts +13 -8
  25. package/aws-data-api/pg/session.js +67 -4
  26. package/aws-data-api/pg/session.js.map +1 -1
  27. package/better-sqlite3/driver.cjs +12 -5
  28. package/better-sqlite3/driver.cjs.map +1 -1
  29. package/better-sqlite3/driver.d.cts +7 -6
  30. package/better-sqlite3/driver.d.ts +7 -6
  31. package/better-sqlite3/driver.js +12 -8
  32. package/better-sqlite3/driver.js.map +1 -1
  33. package/better-sqlite3/migrator.cjs.map +1 -1
  34. package/better-sqlite3/migrator.d.cts +2 -1
  35. package/better-sqlite3/migrator.d.ts +2 -1
  36. package/better-sqlite3/migrator.js.map +1 -1
  37. package/better-sqlite3/session.cjs +49 -4
  38. package/better-sqlite3/session.cjs.map +1 -1
  39. package/better-sqlite3/session.d.cts +14 -8
  40. package/better-sqlite3/session.d.ts +14 -8
  41. package/better-sqlite3/session.js +49 -4
  42. package/better-sqlite3/session.js.map +1 -1
  43. package/bun-sql/driver.cjs +16 -5
  44. package/bun-sql/driver.cjs.map +1 -1
  45. package/bun-sql/driver.d.cts +7 -6
  46. package/bun-sql/driver.d.ts +7 -6
  47. package/bun-sql/driver.js +6 -8
  48. package/bun-sql/driver.js.map +1 -1
  49. package/bun-sql/migrator.cjs.map +1 -1
  50. package/bun-sql/migrator.d.cts +2 -1
  51. package/bun-sql/migrator.d.ts +2 -1
  52. package/bun-sql/migrator.js.map +1 -1
  53. package/bun-sql/session.cjs +50 -6
  54. package/bun-sql/session.cjs.map +1 -1
  55. package/bun-sql/session.d.cts +14 -9
  56. package/bun-sql/session.d.ts +14 -9
  57. package/bun-sql/session.js +50 -6
  58. package/bun-sql/session.js.map +1 -1
  59. package/bun-sqlite/driver.cjs +22 -5
  60. package/bun-sqlite/driver.cjs.map +1 -1
  61. package/bun-sqlite/driver.d.cts +7 -6
  62. package/bun-sqlite/driver.d.ts +7 -6
  63. package/bun-sqlite/driver.js +12 -8
  64. package/bun-sqlite/driver.js.map +1 -1
  65. package/bun-sqlite/migrator.cjs.map +1 -1
  66. package/bun-sqlite/migrator.d.cts +2 -1
  67. package/bun-sqlite/migrator.d.ts +2 -1
  68. package/bun-sqlite/migrator.js.map +1 -1
  69. package/bun-sqlite/session.cjs +49 -4
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +14 -8
  72. package/bun-sqlite/session.d.ts +14 -8
  73. package/bun-sqlite/session.js +49 -4
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/column-builder.cjs.map +1 -1
  76. package/column-builder.d.cts +5 -6
  77. package/column-builder.d.ts +5 -6
  78. package/column-builder.js.map +1 -1
  79. package/d1/driver.cjs +22 -5
  80. package/d1/driver.cjs.map +1 -1
  81. package/d1/driver.d.cts +3 -2
  82. package/d1/driver.d.ts +3 -2
  83. package/d1/driver.js +12 -8
  84. package/d1/driver.js.map +1 -1
  85. package/d1/migrator.cjs.map +1 -1
  86. package/d1/migrator.d.cts +2 -1
  87. package/d1/migrator.d.ts +2 -1
  88. package/d1/migrator.js.map +1 -1
  89. package/d1/session.cjs +50 -8
  90. package/d1/session.cjs.map +1 -1
  91. package/d1/session.d.cts +15 -8
  92. package/d1/session.d.ts +15 -8
  93. package/d1/session.js +50 -8
  94. package/d1/session.js.map +1 -1
  95. package/durable-sqlite/driver.cjs +16 -5
  96. package/durable-sqlite/driver.cjs.map +1 -1
  97. package/durable-sqlite/driver.d.cts +3 -2
  98. package/durable-sqlite/driver.d.ts +3 -2
  99. package/durable-sqlite/driver.js +6 -8
  100. package/durable-sqlite/driver.js.map +1 -1
  101. package/durable-sqlite/migrator.cjs.map +1 -1
  102. package/durable-sqlite/migrator.d.cts +2 -1
  103. package/durable-sqlite/migrator.d.ts +2 -1
  104. package/durable-sqlite/migrator.js.map +1 -1
  105. package/durable-sqlite/session.cjs +46 -4
  106. package/durable-sqlite/session.cjs.map +1 -1
  107. package/durable-sqlite/session.d.cts +14 -8
  108. package/durable-sqlite/session.d.ts +14 -8
  109. package/durable-sqlite/session.js +46 -4
  110. package/durable-sqlite/session.js.map +1 -1
  111. package/expo-sqlite/driver.cjs +22 -5
  112. package/expo-sqlite/driver.cjs.map +1 -1
  113. package/expo-sqlite/driver.d.cts +3 -2
  114. package/expo-sqlite/driver.d.ts +3 -2
  115. package/expo-sqlite/driver.js +12 -8
  116. package/expo-sqlite/driver.js.map +1 -1
  117. package/expo-sqlite/migrator.cjs.map +1 -1
  118. package/expo-sqlite/migrator.d.cts +3 -2
  119. package/expo-sqlite/migrator.d.ts +3 -2
  120. package/expo-sqlite/migrator.js.map +1 -1
  121. package/expo-sqlite/query.cjs +13 -2
  122. package/expo-sqlite/query.cjs.map +1 -1
  123. package/expo-sqlite/query.d.cts +2 -1
  124. package/expo-sqlite/query.d.ts +2 -1
  125. package/expo-sqlite/query.js +3 -2
  126. package/expo-sqlite/query.js.map +1 -1
  127. package/expo-sqlite/session.cjs +47 -4
  128. package/expo-sqlite/session.cjs.map +1 -1
  129. package/expo-sqlite/session.d.cts +14 -8
  130. package/expo-sqlite/session.d.ts +14 -8
  131. package/expo-sqlite/session.js +47 -4
  132. package/expo-sqlite/session.js.map +1 -1
  133. package/libsql/driver-core.cjs +22 -5
  134. package/libsql/driver-core.cjs.map +1 -1
  135. package/libsql/driver-core.d.cts +2 -1
  136. package/libsql/driver-core.d.ts +2 -1
  137. package/libsql/driver-core.js +12 -8
  138. package/libsql/driver-core.js.map +1 -1
  139. package/libsql/driver.cjs.map +1 -1
  140. package/libsql/driver.d.cts +6 -5
  141. package/libsql/driver.d.ts +6 -5
  142. package/libsql/driver.js.map +1 -1
  143. package/libsql/http/index.cjs.map +1 -1
  144. package/libsql/http/index.d.cts +6 -5
  145. package/libsql/http/index.d.ts +6 -5
  146. package/libsql/http/index.js.map +1 -1
  147. package/libsql/migrator.cjs.map +1 -1
  148. package/libsql/migrator.d.cts +2 -1
  149. package/libsql/migrator.d.ts +2 -1
  150. package/libsql/migrator.js.map +1 -1
  151. package/libsql/node/index.cjs.map +1 -1
  152. package/libsql/node/index.d.cts +6 -5
  153. package/libsql/node/index.d.ts +6 -5
  154. package/libsql/node/index.js.map +1 -1
  155. package/libsql/session.cjs +56 -4
  156. package/libsql/session.cjs.map +1 -1
  157. package/libsql/session.d.cts +15 -9
  158. package/libsql/session.d.ts +15 -9
  159. package/libsql/session.js +56 -4
  160. package/libsql/session.js.map +1 -1
  161. package/libsql/sqlite3/index.cjs.map +1 -1
  162. package/libsql/sqlite3/index.d.cts +6 -5
  163. package/libsql/sqlite3/index.d.ts +6 -5
  164. package/libsql/sqlite3/index.js.map +1 -1
  165. package/libsql/wasm/index.cjs.map +1 -1
  166. package/libsql/wasm/index.d.cts +6 -5
  167. package/libsql/wasm/index.d.ts +6 -5
  168. package/libsql/wasm/index.js.map +1 -1
  169. package/libsql/web/index.cjs.map +1 -1
  170. package/libsql/web/index.d.cts +6 -5
  171. package/libsql/web/index.d.ts +6 -5
  172. package/libsql/web/index.js.map +1 -1
  173. package/libsql/ws/index.cjs.map +1 -1
  174. package/libsql/ws/index.d.cts +6 -5
  175. package/libsql/ws/index.d.ts +6 -5
  176. package/libsql/ws/index.js.map +1 -1
  177. package/mysql-core/db.cjs +30 -6
  178. package/mysql-core/db.cjs.map +1 -1
  179. package/mysql-core/db.d.cts +15 -8
  180. package/mysql-core/db.d.ts +15 -8
  181. package/mysql-core/db.js +29 -5
  182. package/mysql-core/db.js.map +1 -1
  183. package/mysql-core/dialect.cjs +187 -15
  184. package/mysql-core/dialect.cjs.map +1 -1
  185. package/mysql-core/dialect.d.cts +36 -13
  186. package/mysql-core/dialect.d.ts +36 -13
  187. package/mysql-core/dialect.js +185 -22
  188. package/mysql-core/dialect.js.map +1 -1
  189. package/mysql-core/query-builders/_query.cjs +149 -0
  190. package/mysql-core/query-builders/_query.cjs.map +1 -0
  191. package/mysql-core/query-builders/_query.d.cts +44 -0
  192. package/mysql-core/query-builders/_query.d.ts +44 -0
  193. package/mysql-core/query-builders/_query.js +114 -0
  194. package/mysql-core/query-builders/_query.js.map +1 -0
  195. package/mysql-core/query-builders/count.cjs.map +1 -1
  196. package/mysql-core/query-builders/count.d.cts +1 -1
  197. package/mysql-core/query-builders/count.d.ts +1 -1
  198. package/mysql-core/query-builders/count.js.map +1 -1
  199. package/mysql-core/query-builders/query.cjs +18 -31
  200. package/mysql-core/query-builders/query.cjs.map +1 -1
  201. package/mysql-core/query-builders/query.d.cts +8 -10
  202. package/mysql-core/query-builders/query.d.ts +8 -10
  203. package/mysql-core/query-builders/query.js +18 -31
  204. package/mysql-core/query-builders/query.js.map +1 -1
  205. package/mysql-core/session.cjs +3 -2
  206. package/mysql-core/session.cjs.map +1 -1
  207. package/mysql-core/session.d.cts +10 -7
  208. package/mysql-core/session.d.ts +10 -7
  209. package/mysql-core/session.js +3 -2
  210. package/mysql-core/session.js.map +1 -1
  211. package/mysql-proxy/driver.cjs +22 -5
  212. package/mysql-proxy/driver.cjs.map +1 -1
  213. package/mysql-proxy/driver.d.cts +3 -2
  214. package/mysql-proxy/driver.d.ts +3 -2
  215. package/mysql-proxy/driver.js +12 -8
  216. package/mysql-proxy/driver.js.map +1 -1
  217. package/mysql-proxy/migrator.cjs.map +1 -1
  218. package/mysql-proxy/migrator.d.cts +2 -1
  219. package/mysql-proxy/migrator.d.ts +2 -1
  220. package/mysql-proxy/migrator.js.map +1 -1
  221. package/mysql-proxy/session.cjs +27 -2
  222. package/mysql-proxy/session.cjs.map +1 -1
  223. package/mysql-proxy/session.d.cts +13 -8
  224. package/mysql-proxy/session.d.ts +13 -8
  225. package/mysql-proxy/session.js +27 -2
  226. package/mysql-proxy/session.js.map +1 -1
  227. package/mysql2/driver.cjs +24 -7
  228. package/mysql2/driver.cjs.map +1 -1
  229. package/mysql2/driver.d.cts +10 -9
  230. package/mysql2/driver.d.ts +10 -9
  231. package/mysql2/driver.js +14 -10
  232. package/mysql2/driver.js.map +1 -1
  233. package/mysql2/migrator.cjs.map +1 -1
  234. package/mysql2/migrator.d.cts +2 -1
  235. package/mysql2/migrator.d.ts +2 -1
  236. package/mysql2/migrator.js.map +1 -1
  237. package/mysql2/session.cjs +30 -2
  238. package/mysql2/session.cjs.map +1 -1
  239. package/mysql2/session.d.cts +13 -8
  240. package/mysql2/session.d.ts +13 -8
  241. package/mysql2/session.js +30 -2
  242. package/mysql2/session.js.map +1 -1
  243. package/neon-http/driver.cjs +21 -7
  244. package/neon-http/driver.cjs.map +1 -1
  245. package/neon-http/driver.d.cts +10 -9
  246. package/neon-http/driver.d.ts +10 -9
  247. package/neon-http/driver.js +11 -7
  248. package/neon-http/driver.js.map +1 -1
  249. package/neon-http/migrator.cjs.map +1 -1
  250. package/neon-http/migrator.d.cts +2 -1
  251. package/neon-http/migrator.d.ts +2 -1
  252. package/neon-http/migrator.js.map +1 -1
  253. package/neon-http/session.cjs +32 -2
  254. package/neon-http/session.cjs.map +1 -1
  255. package/neon-http/session.d.cts +13 -8
  256. package/neon-http/session.d.ts +13 -8
  257. package/neon-http/session.js +32 -2
  258. package/neon-http/session.js.map +1 -1
  259. package/neon-serverless/driver.cjs +18 -7
  260. package/neon-serverless/driver.cjs.map +1 -1
  261. package/neon-serverless/driver.d.cts +9 -8
  262. package/neon-serverless/driver.d.ts +9 -8
  263. package/neon-serverless/driver.js +8 -10
  264. package/neon-serverless/driver.js.map +1 -1
  265. package/neon-serverless/migrator.cjs.map +1 -1
  266. package/neon-serverless/migrator.d.cts +2 -1
  267. package/neon-serverless/migrator.d.ts +2 -1
  268. package/neon-serverless/migrator.js.map +1 -1
  269. package/neon-serverless/session.cjs +40 -5
  270. package/neon-serverless/session.cjs.map +1 -1
  271. package/neon-serverless/session.d.cts +13 -8
  272. package/neon-serverless/session.d.ts +13 -8
  273. package/neon-serverless/session.js +40 -5
  274. package/neon-serverless/session.js.map +1 -1
  275. package/node-postgres/driver.cjs +13 -7
  276. package/node-postgres/driver.cjs.map +1 -1
  277. package/node-postgres/driver.d.cts +9 -8
  278. package/node-postgres/driver.d.ts +9 -8
  279. package/node-postgres/driver.js +13 -10
  280. package/node-postgres/driver.js.map +1 -1
  281. package/node-postgres/migrator.cjs.map +1 -1
  282. package/node-postgres/migrator.d.cts +2 -1
  283. package/node-postgres/migrator.d.ts +2 -1
  284. package/node-postgres/migrator.js.map +1 -1
  285. package/node-postgres/session.cjs +45 -4
  286. package/node-postgres/session.cjs.map +1 -1
  287. package/node-postgres/session.d.cts +13 -8
  288. package/node-postgres/session.d.ts +13 -8
  289. package/node-postgres/session.js +45 -4
  290. package/node-postgres/session.js.map +1 -1
  291. package/op-sqlite/driver.cjs +22 -5
  292. package/op-sqlite/driver.cjs.map +1 -1
  293. package/op-sqlite/driver.d.cts +3 -2
  294. package/op-sqlite/driver.d.ts +3 -2
  295. package/op-sqlite/driver.js +12 -8
  296. package/op-sqlite/driver.js.map +1 -1
  297. package/op-sqlite/migrator.cjs.map +1 -1
  298. package/op-sqlite/migrator.d.cts +3 -2
  299. package/op-sqlite/migrator.d.ts +3 -2
  300. package/op-sqlite/migrator.js.map +1 -1
  301. package/op-sqlite/session.cjs +47 -4
  302. package/op-sqlite/session.cjs.map +1 -1
  303. package/op-sqlite/session.d.cts +14 -8
  304. package/op-sqlite/session.d.ts +14 -8
  305. package/op-sqlite/session.js +47 -4
  306. package/op-sqlite/session.js.map +1 -1
  307. package/package.json +99 -784
  308. package/pg-core/db.cjs +32 -5
  309. package/pg-core/db.cjs.map +1 -1
  310. package/pg-core/db.d.cts +16 -9
  311. package/pg-core/db.d.ts +16 -9
  312. package/pg-core/db.js +31 -4
  313. package/pg-core/db.js.map +1 -1
  314. package/pg-core/dialect.cjs +162 -488
  315. package/pg-core/dialect.cjs.map +1 -1
  316. package/pg-core/dialect.d.cts +27 -8
  317. package/pg-core/dialect.d.ts +27 -8
  318. package/pg-core/dialect.js +160 -495
  319. package/pg-core/dialect.js.map +1 -1
  320. package/{gel-core/query-builders/query.cjs → pg-core/query-builders/_query.cjs} +31 -15
  321. package/pg-core/query-builders/_query.cjs.map +1 -0
  322. package/pg-core/query-builders/_query.d.cts +47 -0
  323. package/pg-core/query-builders/_query.d.ts +47 -0
  324. package/{gel-core/query-builders/query.js → pg-core/query-builders/_query.js} +19 -15
  325. package/pg-core/query-builders/_query.js.map +1 -0
  326. package/pg-core/query-builders/count.cjs.map +1 -1
  327. package/pg-core/query-builders/count.d.cts +1 -1
  328. package/pg-core/query-builders/count.d.ts +1 -1
  329. package/pg-core/query-builders/count.js.map +1 -1
  330. package/pg-core/query-builders/query.cjs +15 -18
  331. package/pg-core/query-builders/query.cjs.map +1 -1
  332. package/pg-core/query-builders/query.d.cts +6 -6
  333. package/pg-core/query-builders/query.d.ts +6 -6
  334. package/pg-core/query-builders/query.js +15 -18
  335. package/pg-core/query-builders/query.js.map +1 -1
  336. package/pg-core/session.cjs +3 -2
  337. package/pg-core/session.cjs.map +1 -1
  338. package/pg-core/session.d.cts +9 -6
  339. package/pg-core/session.d.ts +9 -6
  340. package/pg-core/session.js +3 -2
  341. package/pg-core/session.js.map +1 -1
  342. package/pg-core/table.cjs +0 -2
  343. package/pg-core/table.cjs.map +1 -1
  344. package/pg-core/table.js +0 -2
  345. package/pg-core/table.js.map +1 -1
  346. package/pg-proxy/driver.cjs +21 -5
  347. package/pg-proxy/driver.cjs.map +1 -1
  348. package/pg-proxy/driver.d.cts +3 -2
  349. package/pg-proxy/driver.d.ts +3 -2
  350. package/pg-proxy/driver.js +11 -8
  351. package/pg-proxy/driver.js.map +1 -1
  352. package/pg-proxy/migrator.cjs.map +1 -1
  353. package/pg-proxy/migrator.d.cts +2 -1
  354. package/pg-proxy/migrator.d.ts +2 -1
  355. package/pg-proxy/migrator.js.map +1 -1
  356. package/pg-proxy/session.cjs +37 -2
  357. package/pg-proxy/session.cjs.map +1 -1
  358. package/pg-proxy/session.d.cts +13 -8
  359. package/pg-proxy/session.d.ts +13 -8
  360. package/pg-proxy/session.js +37 -2
  361. package/pg-proxy/session.js.map +1 -1
  362. package/pglite/driver.cjs +23 -7
  363. package/pglite/driver.cjs.map +1 -1
  364. package/pglite/driver.d.cts +9 -8
  365. package/pglite/driver.d.ts +9 -8
  366. package/pglite/driver.js +13 -10
  367. package/pglite/driver.js.map +1 -1
  368. package/pglite/migrator.cjs.map +1 -1
  369. package/pglite/migrator.d.cts +2 -1
  370. package/pglite/migrator.d.ts +2 -1
  371. package/pglite/migrator.js.map +1 -1
  372. package/pglite/session.cjs +34 -3
  373. package/pglite/session.cjs.map +1 -1
  374. package/pglite/session.d.cts +13 -8
  375. package/pglite/session.d.ts +13 -8
  376. package/pglite/session.js +34 -3
  377. package/pglite/session.js.map +1 -1
  378. package/planetscale-serverless/driver.cjs +22 -5
  379. package/planetscale-serverless/driver.cjs.map +1 -1
  380. package/planetscale-serverless/driver.d.cts +7 -6
  381. package/planetscale-serverless/driver.d.ts +7 -6
  382. package/planetscale-serverless/driver.js +12 -8
  383. package/planetscale-serverless/driver.js.map +1 -1
  384. package/planetscale-serverless/migrator.cjs.map +1 -1
  385. package/planetscale-serverless/migrator.d.cts +2 -1
  386. package/planetscale-serverless/migrator.d.ts +2 -1
  387. package/planetscale-serverless/migrator.js.map +1 -1
  388. package/planetscale-serverless/session.cjs +45 -5
  389. package/planetscale-serverless/session.cjs.map +1 -1
  390. package/planetscale-serverless/session.d.cts +14 -9
  391. package/planetscale-serverless/session.d.ts +14 -9
  392. package/planetscale-serverless/session.js +45 -5
  393. package/planetscale-serverless/session.js.map +1 -1
  394. package/postgres-js/driver.cjs +6 -5
  395. package/postgres-js/driver.cjs.map +1 -1
  396. package/postgres-js/driver.d.cts +7 -6
  397. package/postgres-js/driver.d.ts +7 -6
  398. package/postgres-js/driver.js +6 -8
  399. package/postgres-js/driver.js.map +1 -1
  400. package/postgres-js/migrator.cjs.map +1 -1
  401. package/postgres-js/migrator.d.cts +2 -1
  402. package/postgres-js/migrator.d.ts +2 -1
  403. package/postgres-js/migrator.js.map +1 -1
  404. package/postgres-js/session.cjs +51 -6
  405. package/postgres-js/session.cjs.map +1 -1
  406. package/postgres-js/session.d.cts +15 -9
  407. package/postgres-js/session.d.ts +15 -9
  408. package/postgres-js/session.js +51 -6
  409. package/postgres-js/session.js.map +1 -1
  410. package/prisma/mysql/driver.cjs +1 -1
  411. package/prisma/mysql/driver.cjs.map +1 -1
  412. package/prisma/mysql/driver.js +1 -1
  413. package/prisma/mysql/driver.js.map +1 -1
  414. package/prisma/mysql/session.cjs +3 -0
  415. package/prisma/mysql/session.cjs.map +1 -1
  416. package/prisma/mysql/session.d.cts +3 -1
  417. package/prisma/mysql/session.d.ts +3 -1
  418. package/prisma/mysql/session.js +3 -0
  419. package/prisma/mysql/session.js.map +1 -1
  420. package/prisma/pg/driver.cjs +1 -1
  421. package/prisma/pg/driver.cjs.map +1 -1
  422. package/prisma/pg/driver.js +1 -1
  423. package/prisma/pg/driver.js.map +1 -1
  424. package/prisma/pg/session.cjs +3 -0
  425. package/prisma/pg/session.cjs.map +1 -1
  426. package/prisma/pg/session.d.cts +3 -1
  427. package/prisma/pg/session.d.ts +3 -1
  428. package/prisma/pg/session.js +3 -0
  429. package/prisma/pg/session.js.map +1 -1
  430. package/prisma/sqlite/driver.cjs +1 -1
  431. package/prisma/sqlite/driver.cjs.map +1 -1
  432. package/prisma/sqlite/driver.js +1 -1
  433. package/prisma/sqlite/driver.js.map +1 -1
  434. package/prisma/sqlite/session.cjs +3 -0
  435. package/prisma/sqlite/session.cjs.map +1 -1
  436. package/prisma/sqlite/session.d.cts +4 -2
  437. package/prisma/sqlite/session.d.ts +4 -2
  438. package/prisma/sqlite/session.js +3 -0
  439. package/prisma/sqlite/session.js.map +1 -1
  440. package/relations.cjs +626 -245
  441. package/relations.cjs.map +1 -1
  442. package/relations.d.cts +305 -140
  443. package/relations.d.ts +305 -140
  444. package/relations.js +619 -240
  445. package/relations.js.map +1 -1
  446. package/singlestore/driver.cjs +1 -1
  447. package/singlestore/driver.cjs.map +1 -1
  448. package/singlestore/driver.d.cts +1 -1
  449. package/singlestore/driver.d.ts +1 -1
  450. package/singlestore/driver.js +3 -3
  451. package/singlestore/driver.js.map +1 -1
  452. package/singlestore/session.cjs.map +1 -1
  453. package/singlestore/session.d.cts +4 -4
  454. package/singlestore/session.d.ts +4 -4
  455. package/singlestore/session.js.map +1 -1
  456. package/singlestore-core/db.cjs.map +1 -1
  457. package/singlestore-core/db.d.cts +3 -3
  458. package/singlestore-core/db.d.ts +3 -3
  459. package/singlestore-core/db.js.map +1 -1
  460. package/singlestore-core/dialect.cjs +16 -6
  461. package/singlestore-core/dialect.cjs.map +1 -1
  462. package/singlestore-core/dialect.d.cts +6 -6
  463. package/singlestore-core/dialect.d.ts +6 -6
  464. package/singlestore-core/dialect.js +6 -12
  465. package/singlestore-core/dialect.js.map +1 -1
  466. package/singlestore-core/query-builders/query.cjs +12 -2
  467. package/singlestore-core/query-builders/query.cjs.map +1 -1
  468. package/singlestore-core/query-builders/query.d.cts +6 -6
  469. package/singlestore-core/query-builders/query.d.ts +6 -6
  470. package/singlestore-core/query-builders/query.js +2 -4
  471. package/singlestore-core/query-builders/query.js.map +1 -1
  472. package/singlestore-core/session.cjs.map +1 -1
  473. package/singlestore-core/session.d.cts +5 -5
  474. package/singlestore-core/session.d.ts +5 -5
  475. package/singlestore-core/session.js.map +1 -1
  476. package/singlestore-proxy/driver.cjs +1 -1
  477. package/singlestore-proxy/driver.cjs.map +1 -1
  478. package/singlestore-proxy/driver.js +3 -3
  479. package/singlestore-proxy/driver.js.map +1 -1
  480. package/singlestore-proxy/session.cjs.map +1 -1
  481. package/singlestore-proxy/session.d.cts +4 -4
  482. package/singlestore-proxy/session.d.ts +4 -4
  483. package/singlestore-proxy/session.js.map +1 -1
  484. package/sql/expressions/conditions.cjs.map +1 -1
  485. package/sql/expressions/conditions.d.cts +4 -4
  486. package/sql/expressions/conditions.d.ts +4 -4
  487. package/sql/expressions/conditions.js.map +1 -1
  488. package/sql/sql.cjs +21 -0
  489. package/sql/sql.cjs.map +1 -1
  490. package/sql/sql.d.cts +8 -8
  491. package/sql/sql.d.ts +8 -8
  492. package/sql/sql.js +22 -1
  493. package/sql/sql.js.map +1 -1
  494. package/sql-js/driver.cjs +16 -5
  495. package/sql-js/driver.cjs.map +1 -1
  496. package/sql-js/driver.d.cts +3 -2
  497. package/sql-js/driver.d.ts +3 -2
  498. package/sql-js/driver.js +6 -8
  499. package/sql-js/driver.js.map +1 -1
  500. package/sql-js/migrator.cjs.map +1 -1
  501. package/sql-js/migrator.d.cts +2 -1
  502. package/sql-js/migrator.d.ts +2 -1
  503. package/sql-js/migrator.js.map +1 -1
  504. package/sql-js/session.cjs +71 -36
  505. package/sql-js/session.cjs.map +1 -1
  506. package/sql-js/session.d.cts +16 -13
  507. package/sql-js/session.d.ts +16 -13
  508. package/sql-js/session.js +71 -36
  509. package/sql-js/session.js.map +1 -1
  510. package/sqlite-core/db.cjs +39 -12
  511. package/sqlite-core/db.cjs.map +1 -1
  512. package/sqlite-core/db.d.cts +16 -8
  513. package/sqlite-core/db.d.ts +16 -8
  514. package/sqlite-core/db.js +38 -11
  515. package/sqlite-core/db.js.map +1 -1
  516. package/sqlite-core/dialect.cjs +176 -7
  517. package/sqlite-core/dialect.cjs.map +1 -1
  518. package/sqlite-core/dialect.d.cts +31 -9
  519. package/sqlite-core/dialect.d.ts +31 -9
  520. package/sqlite-core/dialect.js +174 -14
  521. package/sqlite-core/dialect.js.map +1 -1
  522. package/sqlite-core/query-builders/_query.cjs +187 -0
  523. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  524. package/sqlite-core/query-builders/_query.d.cts +55 -0
  525. package/sqlite-core/query-builders/_query.d.ts +55 -0
  526. package/sqlite-core/query-builders/_query.js +151 -0
  527. package/sqlite-core/query-builders/_query.js.map +1 -0
  528. package/sqlite-core/query-builders/count.cjs.map +1 -1
  529. package/sqlite-core/query-builders/count.d.cts +1 -1
  530. package/sqlite-core/query-builders/count.d.ts +1 -1
  531. package/sqlite-core/query-builders/count.js.map +1 -1
  532. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  533. package/sqlite-core/query-builders/delete.d.cts +1 -1
  534. package/sqlite-core/query-builders/delete.d.ts +1 -1
  535. package/sqlite-core/query-builders/delete.js.map +1 -1
  536. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  537. package/sqlite-core/query-builders/insert.d.cts +3 -3
  538. package/sqlite-core/query-builders/insert.d.ts +3 -3
  539. package/sqlite-core/query-builders/insert.js.map +1 -1
  540. package/sqlite-core/query-builders/query.cjs +56 -35
  541. package/sqlite-core/query-builders/query.cjs.map +1 -1
  542. package/sqlite-core/query-builders/query.d.cts +18 -17
  543. package/sqlite-core/query-builders/query.d.ts +18 -17
  544. package/sqlite-core/query-builders/query.js +56 -35
  545. package/sqlite-core/query-builders/query.js.map +1 -1
  546. package/sqlite-core/query-builders/select.cjs.map +1 -1
  547. package/sqlite-core/query-builders/select.d.cts +3 -3
  548. package/sqlite-core/query-builders/select.d.ts +3 -3
  549. package/sqlite-core/query-builders/select.js.map +1 -1
  550. package/sqlite-core/query-builders/update.cjs.map +1 -1
  551. package/sqlite-core/query-builders/update.d.cts +3 -3
  552. package/sqlite-core/query-builders/update.d.ts +3 -3
  553. package/sqlite-core/query-builders/update.js.map +1 -1
  554. package/sqlite-core/session.cjs +6 -2
  555. package/sqlite-core/session.cjs.map +1 -1
  556. package/sqlite-core/session.d.cts +15 -7
  557. package/sqlite-core/session.d.ts +15 -7
  558. package/sqlite-core/session.js +6 -2
  559. package/sqlite-core/session.js.map +1 -1
  560. package/sqlite-proxy/driver.cjs +23 -5
  561. package/sqlite-proxy/driver.cjs.map +1 -1
  562. package/sqlite-proxy/driver.d.cts +4 -3
  563. package/sqlite-proxy/driver.d.ts +4 -3
  564. package/sqlite-proxy/driver.js +13 -5
  565. package/sqlite-proxy/driver.js.map +1 -1
  566. package/sqlite-proxy/migrator.cjs.map +1 -1
  567. package/sqlite-proxy/migrator.d.cts +2 -1
  568. package/sqlite-proxy/migrator.d.ts +2 -1
  569. package/sqlite-proxy/migrator.js.map +1 -1
  570. package/sqlite-proxy/session.cjs +50 -6
  571. package/sqlite-proxy/session.cjs.map +1 -1
  572. package/sqlite-proxy/session.d.cts +14 -8
  573. package/sqlite-proxy/session.d.ts +14 -8
  574. package/sqlite-proxy/session.js +50 -6
  575. package/sqlite-proxy/session.js.map +1 -1
  576. package/table.cjs.map +1 -1
  577. package/table.d.cts +2 -2
  578. package/table.d.ts +2 -2
  579. package/table.js.map +1 -1
  580. package/tidb-serverless/driver.cjs +22 -5
  581. package/tidb-serverless/driver.cjs.map +1 -1
  582. package/tidb-serverless/driver.d.cts +7 -6
  583. package/tidb-serverless/driver.d.ts +7 -6
  584. package/tidb-serverless/driver.js +12 -8
  585. package/tidb-serverless/driver.js.map +1 -1
  586. package/tidb-serverless/migrator.cjs.map +1 -1
  587. package/tidb-serverless/migrator.d.cts +2 -1
  588. package/tidb-serverless/migrator.d.ts +2 -1
  589. package/tidb-serverless/migrator.js.map +1 -1
  590. package/tidb-serverless/session.cjs +62 -5
  591. package/tidb-serverless/session.cjs.map +1 -1
  592. package/tidb-serverless/session.d.cts +14 -9
  593. package/tidb-serverless/session.d.ts +14 -9
  594. package/tidb-serverless/session.js +62 -5
  595. package/tidb-serverless/session.js.map +1 -1
  596. package/utils.cjs +2 -2
  597. package/utils.cjs.map +1 -1
  598. package/utils.d.cts +3 -1
  599. package/utils.d.ts +3 -1
  600. package/utils.js +2 -2
  601. package/utils.js.map +1 -1
  602. package/vercel-postgres/driver.cjs +23 -7
  603. package/vercel-postgres/driver.cjs.map +1 -1
  604. package/vercel-postgres/driver.d.cts +9 -8
  605. package/vercel-postgres/driver.d.ts +9 -8
  606. package/vercel-postgres/driver.js +13 -10
  607. package/vercel-postgres/driver.js.map +1 -1
  608. package/vercel-postgres/migrator.cjs.map +1 -1
  609. package/vercel-postgres/migrator.d.cts +2 -1
  610. package/vercel-postgres/migrator.d.ts +2 -1
  611. package/vercel-postgres/migrator.js.map +1 -1
  612. package/vercel-postgres/session.cjs +34 -4
  613. package/vercel-postgres/session.cjs.map +1 -1
  614. package/vercel-postgres/session.d.cts +13 -8
  615. package/vercel-postgres/session.d.ts +13 -8
  616. package/vercel-postgres/session.js +34 -4
  617. package/vercel-postgres/session.js.map +1 -1
  618. package/version.cjs +1 -1
  619. package/version.d.cts +1 -1
  620. package/version.d.ts +1 -1
  621. package/version.js +1 -1
  622. package/xata-http/driver.cjs +17 -5
  623. package/xata-http/driver.cjs.map +1 -1
  624. package/xata-http/driver.d.cts +5 -4
  625. package/xata-http/driver.d.ts +5 -4
  626. package/xata-http/driver.js +7 -5
  627. package/xata-http/driver.js.map +1 -1
  628. package/xata-http/migrator.cjs.map +1 -1
  629. package/xata-http/migrator.d.cts +2 -1
  630. package/xata-http/migrator.d.ts +2 -1
  631. package/xata-http/migrator.js.map +1 -1
  632. package/xata-http/session.cjs +30 -2
  633. package/xata-http/session.cjs.map +1 -1
  634. package/xata-http/session.d.cts +13 -8
  635. package/xata-http/session.d.ts +13 -8
  636. package/xata-http/session.js +30 -2
  637. package/xata-http/session.js.map +1 -1
  638. package/gel/driver.cjs +0 -97
  639. package/gel/driver.cjs.map +0 -1
  640. package/gel/driver.d.cts +0 -38
  641. package/gel/driver.d.ts +0 -38
  642. package/gel/driver.js +0 -74
  643. package/gel/driver.js.map +0 -1
  644. package/gel/index.cjs +0 -25
  645. package/gel/index.cjs.map +0 -1
  646. package/gel/index.d.cts +0 -2
  647. package/gel/index.d.ts +0 -2
  648. package/gel/index.js +0 -3
  649. package/gel/index.js.map +0 -1
  650. package/gel/migrator.cjs +0 -5
  651. package/gel/migrator.cjs.map +0 -1
  652. package/gel/migrator.d.cts +0 -1
  653. package/gel/migrator.d.ts +0 -1
  654. package/gel/migrator.js +0 -4
  655. package/gel/migrator.js.map +0 -1
  656. package/gel/session.cjs +0 -139
  657. package/gel/session.cjs.map +0 -1
  658. package/gel/session.d.cts +0 -47
  659. package/gel/session.d.ts +0 -47
  660. package/gel/session.js +0 -113
  661. package/gel/session.js.map +0 -1
  662. package/gel-core/alias.cjs +0 -32
  663. package/gel-core/alias.cjs.map +0 -1
  664. package/gel-core/alias.d.cts +0 -4
  665. package/gel-core/alias.d.ts +0 -4
  666. package/gel-core/alias.js +0 -8
  667. package/gel-core/alias.js.map +0 -1
  668. package/gel-core/checks.cjs +0 -58
  669. package/gel-core/checks.cjs.map +0 -1
  670. package/gel-core/checks.d.cts +0 -18
  671. package/gel-core/checks.d.ts +0 -18
  672. package/gel-core/checks.js +0 -32
  673. package/gel-core/checks.js.map +0 -1
  674. package/gel-core/columns/all.cjs +0 -72
  675. package/gel-core/columns/all.cjs.map +0 -1
  676. package/gel-core/columns/all.d.cts +0 -43
  677. package/gel-core/columns/all.d.ts +0 -43
  678. package/gel-core/columns/all.js +0 -48
  679. package/gel-core/columns/all.js.map +0 -1
  680. package/gel-core/columns/bigint.cjs +0 -54
  681. package/gel-core/columns/bigint.cjs.map +0 -1
  682. package/gel-core/columns/bigint.d.cts +0 -23
  683. package/gel-core/columns/bigint.d.ts +0 -23
  684. package/gel-core/columns/bigint.js +0 -28
  685. package/gel-core/columns/bigint.js.map +0 -1
  686. package/gel-core/columns/bigintT.cjs +0 -60
  687. package/gel-core/columns/bigintT.cjs.map +0 -1
  688. package/gel-core/columns/bigintT.d.cts +0 -24
  689. package/gel-core/columns/bigintT.d.ts +0 -24
  690. package/gel-core/columns/bigintT.js +0 -34
  691. package/gel-core/columns/bigintT.js.map +0 -1
  692. package/gel-core/columns/boolean.cjs +0 -53
  693. package/gel-core/columns/boolean.cjs.map +0 -1
  694. package/gel-core/columns/boolean.d.cts +0 -22
  695. package/gel-core/columns/boolean.d.ts +0 -22
  696. package/gel-core/columns/boolean.js +0 -27
  697. package/gel-core/columns/boolean.js.map +0 -1
  698. package/gel-core/columns/bytes.cjs +0 -56
  699. package/gel-core/columns/bytes.cjs.map +0 -1
  700. package/gel-core/columns/bytes.d.cts +0 -22
  701. package/gel-core/columns/bytes.d.ts +0 -22
  702. package/gel-core/columns/bytes.js +0 -30
  703. package/gel-core/columns/bytes.js.map +0 -1
  704. package/gel-core/columns/common.cjs +0 -213
  705. package/gel-core/columns/common.cjs.map +0 -1
  706. package/gel-core/columns/common.d.cts +0 -147
  707. package/gel-core/columns/common.d.ts +0 -147
  708. package/gel-core/columns/common.js +0 -184
  709. package/gel-core/columns/common.js.map +0 -1
  710. package/gel-core/columns/custom.cjs +0 -77
  711. package/gel-core/columns/custom.cjs.map +0 -1
  712. package/gel-core/columns/custom.d.cts +0 -155
  713. package/gel-core/columns/custom.d.ts +0 -155
  714. package/gel-core/columns/custom.js +0 -51
  715. package/gel-core/columns/custom.js.map +0 -1
  716. package/gel-core/columns/date-duration.cjs +0 -56
  717. package/gel-core/columns/date-duration.cjs.map +0 -1
  718. package/gel-core/columns/date-duration.d.cts +0 -23
  719. package/gel-core/columns/date-duration.d.ts +0 -23
  720. package/gel-core/columns/date-duration.js +0 -30
  721. package/gel-core/columns/date-duration.js.map +0 -1
  722. package/gel-core/columns/date.common.cjs +0 -37
  723. package/gel-core/columns/date.common.cjs.map +0 -1
  724. package/gel-core/columns/date.common.d.cts +0 -7
  725. package/gel-core/columns/date.common.d.ts +0 -7
  726. package/gel-core/columns/date.common.js +0 -13
  727. package/gel-core/columns/date.common.js.map +0 -1
  728. package/gel-core/columns/decimal.cjs +0 -56
  729. package/gel-core/columns/decimal.cjs.map +0 -1
  730. package/gel-core/columns/decimal.d.cts +0 -26
  731. package/gel-core/columns/decimal.d.ts +0 -26
  732. package/gel-core/columns/decimal.js +0 -30
  733. package/gel-core/columns/decimal.js.map +0 -1
  734. package/gel-core/columns/double-precision.cjs +0 -62
  735. package/gel-core/columns/double-precision.cjs.map +0 -1
  736. package/gel-core/columns/double-precision.d.cts +0 -23
  737. package/gel-core/columns/double-precision.d.ts +0 -23
  738. package/gel-core/columns/double-precision.js +0 -36
  739. package/gel-core/columns/double-precision.js.map +0 -1
  740. package/gel-core/columns/duration.cjs +0 -53
  741. package/gel-core/columns/duration.cjs.map +0 -1
  742. package/gel-core/columns/duration.d.cts +0 -23
  743. package/gel-core/columns/duration.d.ts +0 -23
  744. package/gel-core/columns/duration.js +0 -27
  745. package/gel-core/columns/duration.js.map +0 -1
  746. package/gel-core/columns/index.cjs +0 -65
  747. package/gel-core/columns/index.cjs.map +0 -1
  748. package/gel-core/columns/index.d.cts +0 -22
  749. package/gel-core/columns/index.d.ts +0 -22
  750. package/gel-core/columns/index.js +0 -23
  751. package/gel-core/columns/index.js.map +0 -1
  752. package/gel-core/columns/int.common.cjs +0 -67
  753. package/gel-core/columns/int.common.cjs.map +0 -1
  754. package/gel-core/columns/int.common.d.cts +0 -15
  755. package/gel-core/columns/int.common.d.ts +0 -15
  756. package/gel-core/columns/int.common.js +0 -43
  757. package/gel-core/columns/int.common.js.map +0 -1
  758. package/gel-core/columns/integer.cjs +0 -54
  759. package/gel-core/columns/integer.cjs.map +0 -1
  760. package/gel-core/columns/integer.d.cts +0 -23
  761. package/gel-core/columns/integer.d.ts +0 -23
  762. package/gel-core/columns/integer.js +0 -28
  763. package/gel-core/columns/integer.js.map +0 -1
  764. package/gel-core/columns/json.cjs +0 -56
  765. package/gel-core/columns/json.cjs.map +0 -1
  766. package/gel-core/columns/json.d.cts +0 -26
  767. package/gel-core/columns/json.d.ts +0 -26
  768. package/gel-core/columns/json.js +0 -30
  769. package/gel-core/columns/json.js.map +0 -1
  770. package/gel-core/columns/localdate.cjs +0 -57
  771. package/gel-core/columns/localdate.cjs.map +0 -1
  772. package/gel-core/columns/localdate.d.cts +0 -24
  773. package/gel-core/columns/localdate.d.ts +0 -24
  774. package/gel-core/columns/localdate.js +0 -31
  775. package/gel-core/columns/localdate.js.map +0 -1
  776. package/gel-core/columns/localtime.cjs +0 -57
  777. package/gel-core/columns/localtime.cjs.map +0 -1
  778. package/gel-core/columns/localtime.d.cts +0 -24
  779. package/gel-core/columns/localtime.d.ts +0 -24
  780. package/gel-core/columns/localtime.js +0 -31
  781. package/gel-core/columns/localtime.js.map +0 -1
  782. package/gel-core/columns/real.cjs +0 -57
  783. package/gel-core/columns/real.cjs.map +0 -1
  784. package/gel-core/columns/real.d.cts +0 -28
  785. package/gel-core/columns/real.d.ts +0 -28
  786. package/gel-core/columns/real.js +0 -31
  787. package/gel-core/columns/real.js.map +0 -1
  788. package/gel-core/columns/relative-duration.cjs +0 -56
  789. package/gel-core/columns/relative-duration.cjs.map +0 -1
  790. package/gel-core/columns/relative-duration.d.cts +0 -23
  791. package/gel-core/columns/relative-duration.d.ts +0 -23
  792. package/gel-core/columns/relative-duration.js +0 -30
  793. package/gel-core/columns/relative-duration.js.map +0 -1
  794. package/gel-core/columns/smallint.cjs +0 -54
  795. package/gel-core/columns/smallint.cjs.map +0 -1
  796. package/gel-core/columns/smallint.d.cts +0 -23
  797. package/gel-core/columns/smallint.d.ts +0 -23
  798. package/gel-core/columns/smallint.js +0 -28
  799. package/gel-core/columns/smallint.js.map +0 -1
  800. package/gel-core/columns/text.cjs +0 -54
  801. package/gel-core/columns/text.cjs.map +0 -1
  802. package/gel-core/columns/text.d.cts +0 -26
  803. package/gel-core/columns/text.d.ts +0 -26
  804. package/gel-core/columns/text.js +0 -28
  805. package/gel-core/columns/text.js.map +0 -1
  806. package/gel-core/columns/timestamp.cjs +0 -60
  807. package/gel-core/columns/timestamp.cjs.map +0 -1
  808. package/gel-core/columns/timestamp.d.cts +0 -28
  809. package/gel-core/columns/timestamp.d.ts +0 -28
  810. package/gel-core/columns/timestamp.js +0 -34
  811. package/gel-core/columns/timestamp.js.map +0 -1
  812. package/gel-core/columns/timestamptz.cjs +0 -60
  813. package/gel-core/columns/timestamptz.cjs.map +0 -1
  814. package/gel-core/columns/timestamptz.d.cts +0 -27
  815. package/gel-core/columns/timestamptz.d.ts +0 -27
  816. package/gel-core/columns/timestamptz.js +0 -34
  817. package/gel-core/columns/timestamptz.js.map +0 -1
  818. package/gel-core/columns/uuid.cjs +0 -53
  819. package/gel-core/columns/uuid.cjs.map +0 -1
  820. package/gel-core/columns/uuid.d.cts +0 -22
  821. package/gel-core/columns/uuid.d.ts +0 -22
  822. package/gel-core/columns/uuid.js +0 -27
  823. package/gel-core/columns/uuid.js.map +0 -1
  824. package/gel-core/db.cjs +0 -338
  825. package/gel-core/db.cjs.map +0 -1
  826. package/gel-core/db.d.cts +0 -281
  827. package/gel-core/db.d.ts +0 -281
  828. package/gel-core/db.js +0 -319
  829. package/gel-core/db.js.map +0 -1
  830. package/gel-core/dialect.cjs +0 -1142
  831. package/gel-core/dialect.cjs.map +0 -1
  832. package/gel-core/dialect.d.cts +0 -62
  833. package/gel-core/dialect.d.ts +0 -62
  834. package/gel-core/dialect.js +0 -1128
  835. package/gel-core/dialect.js.map +0 -1
  836. package/gel-core/expressions.cjs +0 -49
  837. package/gel-core/expressions.cjs.map +0 -1
  838. package/gel-core/expressions.d.cts +0 -8
  839. package/gel-core/expressions.d.ts +0 -8
  840. package/gel-core/expressions.js +0 -22
  841. package/gel-core/expressions.js.map +0 -1
  842. package/gel-core/foreign-keys.cjs +0 -100
  843. package/gel-core/foreign-keys.cjs.map +0 -1
  844. package/gel-core/foreign-keys.d.cts +0 -48
  845. package/gel-core/foreign-keys.d.ts +0 -48
  846. package/gel-core/foreign-keys.js +0 -74
  847. package/gel-core/foreign-keys.js.map +0 -1
  848. package/gel-core/index.cjs +0 -61
  849. package/gel-core/index.cjs.map +0 -1
  850. package/gel-core/index.d.cts +0 -20
  851. package/gel-core/index.d.ts +0 -20
  852. package/gel-core/index.js +0 -21
  853. package/gel-core/index.js.map +0 -1
  854. package/gel-core/indexes.cjs +0 -149
  855. package/gel-core/indexes.cjs.map +0 -1
  856. package/gel-core/indexes.d.cts +0 -79
  857. package/gel-core/indexes.d.ts +0 -79
  858. package/gel-core/indexes.js +0 -121
  859. package/gel-core/indexes.js.map +0 -1
  860. package/gel-core/policies.cjs +0 -58
  861. package/gel-core/policies.cjs.map +0 -1
  862. package/gel-core/policies.d.cts +0 -24
  863. package/gel-core/policies.d.ts +0 -24
  864. package/gel-core/policies.js +0 -33
  865. package/gel-core/policies.js.map +0 -1
  866. package/gel-core/primary-keys.cjs +0 -68
  867. package/gel-core/primary-keys.cjs.map +0 -1
  868. package/gel-core/primary-keys.d.cts +0 -30
  869. package/gel-core/primary-keys.d.ts +0 -30
  870. package/gel-core/primary-keys.js +0 -42
  871. package/gel-core/primary-keys.js.map +0 -1
  872. package/gel-core/query-builders/count.cjs +0 -73
  873. package/gel-core/query-builders/count.cjs.map +0 -1
  874. package/gel-core/query-builders/count.d.cts +0 -25
  875. package/gel-core/query-builders/count.d.ts +0 -25
  876. package/gel-core/query-builders/count.js +0 -49
  877. package/gel-core/query-builders/count.js.map +0 -1
  878. package/gel-core/query-builders/delete.cjs +0 -105
  879. package/gel-core/query-builders/delete.cjs.map +0 -1
  880. package/gel-core/query-builders/delete.d.cts +0 -99
  881. package/gel-core/query-builders/delete.d.ts +0 -99
  882. package/gel-core/query-builders/delete.js +0 -81
  883. package/gel-core/query-builders/delete.js.map +0 -1
  884. package/gel-core/query-builders/index.cjs +0 -35
  885. package/gel-core/query-builders/index.cjs.map +0 -1
  886. package/gel-core/query-builders/index.d.cts +0 -7
  887. package/gel-core/query-builders/index.d.ts +0 -7
  888. package/gel-core/query-builders/index.js +0 -8
  889. package/gel-core/query-builders/index.js.map +0 -1
  890. package/gel-core/query-builders/insert.cjs +0 -218
  891. package/gel-core/query-builders/insert.cjs.map +0 -1
  892. package/gel-core/query-builders/insert.d.cts +0 -116
  893. package/gel-core/query-builders/insert.d.ts +0 -116
  894. package/gel-core/query-builders/insert.js +0 -193
  895. package/gel-core/query-builders/insert.js.map +0 -1
  896. package/gel-core/query-builders/query-builder.cjs +0 -114
  897. package/gel-core/query-builders/query-builder.cjs.map +0 -1
  898. package/gel-core/query-builders/query-builder.d.cts +0 -40
  899. package/gel-core/query-builders/query-builder.d.ts +0 -40
  900. package/gel-core/query-builders/query-builder.js +0 -90
  901. package/gel-core/query-builders/query-builder.js.map +0 -1
  902. package/gel-core/query-builders/query.cjs.map +0 -1
  903. package/gel-core/query-builders/query.d.cts +0 -46
  904. package/gel-core/query-builders/query.d.ts +0 -46
  905. package/gel-core/query-builders/query.js.map +0 -1
  906. package/gel-core/query-builders/raw.cjs +0 -57
  907. package/gel-core/query-builders/raw.cjs.map +0 -1
  908. package/gel-core/query-builders/raw.d.cts +0 -22
  909. package/gel-core/query-builders/raw.d.ts +0 -22
  910. package/gel-core/query-builders/raw.js +0 -33
  911. package/gel-core/query-builders/raw.js.map +0 -1
  912. package/gel-core/query-builders/refresh-materialized-view.cjs +0 -77
  913. package/gel-core/query-builders/refresh-materialized-view.cjs.map +0 -1
  914. package/gel-core/query-builders/refresh-materialized-view.d.cts +0 -27
  915. package/gel-core/query-builders/refresh-materialized-view.d.ts +0 -27
  916. package/gel-core/query-builders/refresh-materialized-view.js +0 -53
  917. package/gel-core/query-builders/refresh-materialized-view.js.map +0 -1
  918. package/gel-core/query-builders/select.cjs +0 -775
  919. package/gel-core/query-builders/select.cjs.map +0 -1
  920. package/gel-core/query-builders/select.d.cts +0 -721
  921. package/gel-core/query-builders/select.d.ts +0 -721
  922. package/gel-core/query-builders/select.js +0 -748
  923. package/gel-core/query-builders/select.js.map +0 -1
  924. package/gel-core/query-builders/select.types.cjs +0 -17
  925. package/gel-core/query-builders/select.types.cjs.map +0 -1
  926. package/gel-core/query-builders/select.types.d.cts +0 -138
  927. package/gel-core/query-builders/select.types.d.ts +0 -138
  928. package/gel-core/query-builders/select.types.js +0 -1
  929. package/gel-core/query-builders/select.types.js.map +0 -1
  930. package/gel-core/query-builders/update.cjs +0 -226
  931. package/gel-core/query-builders/update.cjs.map +0 -1
  932. package/gel-core/query-builders/update.d.cts +0 -166
  933. package/gel-core/query-builders/update.d.ts +0 -166
  934. package/gel-core/query-builders/update.js +0 -205
  935. package/gel-core/query-builders/update.js.map +0 -1
  936. package/gel-core/roles.cjs +0 -57
  937. package/gel-core/roles.cjs.map +0 -1
  938. package/gel-core/roles.d.cts +0 -13
  939. package/gel-core/roles.d.ts +0 -13
  940. package/gel-core/roles.js +0 -32
  941. package/gel-core/roles.js.map +0 -1
  942. package/gel-core/schema.cjs +0 -74
  943. package/gel-core/schema.cjs.map +0 -1
  944. package/gel-core/schema.d.cts +0 -15
  945. package/gel-core/schema.d.ts +0 -15
  946. package/gel-core/schema.js +0 -48
  947. package/gel-core/schema.js.map +0 -1
  948. package/gel-core/sequence.cjs +0 -52
  949. package/gel-core/sequence.cjs.map +0 -1
  950. package/gel-core/sequence.d.cts +0 -18
  951. package/gel-core/sequence.d.ts +0 -18
  952. package/gel-core/sequence.js +0 -25
  953. package/gel-core/sequence.js.map +0 -1
  954. package/gel-core/session.cjs +0 -94
  955. package/gel-core/session.cjs.map +0 -1
  956. package/gel-core/session.d.cts +0 -56
  957. package/gel-core/session.d.ts +0 -56
  958. package/gel-core/session.js +0 -68
  959. package/gel-core/session.js.map +0 -1
  960. package/gel-core/subquery.cjs +0 -17
  961. package/gel-core/subquery.cjs.map +0 -1
  962. package/gel-core/subquery.d.cts +0 -5
  963. package/gel-core/subquery.d.ts +0 -5
  964. package/gel-core/subquery.js +0 -1
  965. package/gel-core/subquery.js.map +0 -1
  966. package/gel-core/table.cjs +0 -100
  967. package/gel-core/table.cjs.map +0 -1
  968. package/gel-core/table.d.cts +0 -95
  969. package/gel-core/table.d.ts +0 -95
  970. package/gel-core/table.js +0 -71
  971. package/gel-core/table.js.map +0 -1
  972. package/gel-core/unique-constraint.cjs +0 -89
  973. package/gel-core/unique-constraint.cjs.map +0 -1
  974. package/gel-core/unique-constraint.d.cts +0 -25
  975. package/gel-core/unique-constraint.d.ts +0 -25
  976. package/gel-core/unique-constraint.js +0 -61
  977. package/gel-core/unique-constraint.js.map +0 -1
  978. package/gel-core/utils.cjs +0 -100
  979. package/gel-core/utils.cjs.map +0 -1
  980. package/gel-core/utils.d.cts +0 -51
  981. package/gel-core/utils.d.ts +0 -51
  982. package/gel-core/utils.js +0 -74
  983. package/gel-core/utils.js.map +0 -1
  984. package/gel-core/view-base.cjs +0 -33
  985. package/gel-core/view-base.cjs.map +0 -1
  986. package/gel-core/view-base.d.cts +0 -8
  987. package/gel-core/view-base.d.ts +0 -8
  988. package/gel-core/view-base.js +0 -9
  989. package/gel-core/view-base.js.map +0 -1
  990. package/gel-core/view-common.cjs +0 -29
  991. package/gel-core/view-common.cjs.map +0 -1
  992. package/gel-core/view-common.d.cts +0 -1
  993. package/gel-core/view-common.d.ts +0 -1
  994. package/gel-core/view-common.js +0 -5
  995. package/gel-core/view-common.js.map +0 -1
  996. package/gel-core/view.cjs +0 -302
  997. package/gel-core/view.cjs.map +0 -1
  998. package/gel-core/view.d.cts +0 -150
  999. package/gel-core/view.d.ts +0 -150
  1000. package/gel-core/view.js +0 -268
  1001. package/gel-core/view.js.map +0 -1
package/sql-js/session.js CHANGED
@@ -5,33 +5,32 @@ 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, schema, options = {}) {
8
+ constructor(client, dialect, relations, schema, options = {}) {
9
9
  super(dialect);
10
10
  this.client = client;
11
+ this.relations = relations;
11
12
  this.schema = schema;
12
13
  this.logger = options.logger ?? new NoopLogger();
13
14
  }
14
15
  static [entityKind] = "SQLJsSession";
15
16
  logger;
16
17
  prepareQuery(query, fields, executeMethod, isResponseInArrayMode) {
17
- const stmt = this.client.prepare(query.sql);
18
- return new PreparedQuery(stmt, query, this.logger, fields, executeMethod, isResponseInArrayMode);
18
+ return new PreparedQuery(this.client, query, this.logger, fields, executeMethod, isResponseInArrayMode);
19
19
  }
20
- prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
21
- const stmt = this.client.prepare(query.sql);
20
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
22
21
  return new PreparedQuery(
23
- stmt,
22
+ this.client,
24
23
  query,
25
24
  this.logger,
26
25
  fields,
27
26
  executeMethod,
28
- isResponseInArrayMode,
27
+ false,
29
28
  customResultMapper,
30
29
  true
31
30
  );
32
31
  }
33
32
  transaction(transaction, config = {}) {
34
- const tx = new SQLJsTransaction("sync", this.dialect, this, this.schema);
33
+ const tx = new SQLJsTransaction("sync", this.dialect, this, this.relations, this.schema);
35
34
  this.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ""}`));
36
35
  try {
37
36
  const result = transaction(tx);
@@ -47,7 +46,14 @@ class SQLJsTransaction extends SQLiteTransaction {
47
46
  static [entityKind] = "SQLJsTransaction";
48
47
  transaction(transaction) {
49
48
  const savepointName = `sp${this.nestedIndex + 1}`;
50
- const tx = new SQLJsTransaction("sync", this.dialect, this.session, this.schema, 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
+ );
51
57
  tx.run(sql.raw(`savepoint ${savepointName}`));
52
58
  try {
53
59
  const result = transaction(tx);
@@ -60,27 +66,29 @@ class SQLJsTransaction extends SQLiteTransaction {
60
66
  }
61
67
  }
62
68
  class PreparedQuery extends PreparedQueryBase {
63
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isOneTimeQuery = false) {
69
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
64
70
  super("sync", executeMethod, query);
65
- this.stmt = stmt;
71
+ this.client = client;
66
72
  this.logger = logger;
67
73
  this.fields = fields;
68
74
  this._isResponseInArrayMode = _isResponseInArrayMode;
69
75
  this.customResultMapper = customResultMapper;
70
- this.isOneTimeQuery = isOneTimeQuery;
76
+ this.isRqbV2Query = isRqbV2Query;
71
77
  }
72
78
  static [entityKind] = "SQLJsPreparedQuery";
73
79
  run(placeholderValues) {
80
+ const stmt = this.client.prepare(this.query.sql);
74
81
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
75
82
  this.logger.logQuery(this.query.sql, params);
76
- const result = this.stmt.run(params);
77
- if (this.isOneTimeQuery) {
78
- this.free();
79
- }
83
+ const result = stmt.run(params);
84
+ stmt.free();
80
85
  return result;
81
86
  }
82
87
  all(placeholderValues) {
83
- const { fields, joinsNotNullableMap, logger, query, stmt, isOneTimeQuery, customResultMapper } = this;
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;
84
92
  if (!fields && !customResultMapper) {
85
93
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
86
94
  logger.logQuery(query.sql, params);
@@ -89,9 +97,7 @@ class PreparedQuery extends PreparedQueryBase {
89
97
  while (stmt.step()) {
90
98
  rows2.push(stmt.getAsObject());
91
99
  }
92
- if (isOneTimeQuery) {
93
- this.free();
94
- }
100
+ stmt.free();
95
101
  return rows2;
96
102
  }
97
103
  const rows = this.values(placeholderValues);
@@ -100,21 +106,33 @@ class PreparedQuery extends PreparedQueryBase {
100
106
  }
101
107
  return rows.map((row) => mapResultRow(fields, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));
102
108
  }
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
+ }
103
122
  get(placeholderValues) {
123
+ if (this.isRqbV2Query)
124
+ return this.getRqbV2(placeholderValues);
125
+ const stmt = this.client.prepare(this.query.sql);
104
126
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
105
127
  this.logger.logQuery(this.query.sql, params);
106
- const { fields, stmt, isOneTimeQuery, joinsNotNullableMap, customResultMapper } = this;
128
+ const { fields, joinsNotNullableMap, customResultMapper } = this;
107
129
  if (!fields && !customResultMapper) {
108
130
  const result = stmt.getAsObject(params);
109
- if (isOneTimeQuery) {
110
- this.free();
111
- }
131
+ stmt.free();
112
132
  return result;
113
133
  }
114
134
  const row = stmt.get(params);
115
- if (isOneTimeQuery) {
116
- this.free();
117
- }
135
+ stmt.free();
118
136
  if (!row || row.length === 0 && fields.length > 0) {
119
137
  return void 0;
120
138
  }
@@ -123,22 +141,39 @@ class PreparedQuery extends PreparedQueryBase {
123
141
  }
124
142
  return mapResultRow(fields, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);
125
143
  }
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
+ }
126
165
  values(placeholderValues) {
166
+ const stmt = this.client.prepare(this.query.sql);
127
167
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
128
168
  this.logger.logQuery(this.query.sql, params);
129
- this.stmt.bind(params);
169
+ stmt.bind(params);
130
170
  const rows = [];
131
- while (this.stmt.step()) {
132
- rows.push(this.stmt.get());
133
- }
134
- if (this.isOneTimeQuery) {
135
- this.free();
171
+ while (stmt.step()) {
172
+ rows.push(stmt.get());
136
173
  }
174
+ stmt.free();
137
175
  return rows;
138
176
  }
139
- free() {
140
- return this.stmt.free();
141
- }
142
177
  /** @internal */
143
178
  isResponseInArrayMode() {
144
179
  return this._isResponseInArrayMode;
@@ -1 +1 @@
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":"AACA,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,kBAA8B,WAAW;AAElD,SAAS,yBAAyB;AAOlC,SAAS,uBAAuB,mBAAmB,qBAAqB;AACxE,SAAS,oBAAoB;AAQtB,MAAM,qBAGH,cAAkD;AAAA,EAK3D,YACS,QACR,SACQ,QACR,UAA+B,CAAC,GAC/B;AACD,UAAM,OAAO;AALL;AAEA;AAIR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAYR,aACC,OACA,QACA,eACA,uBACmB;AACnB,UAAM,OAAO,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC1C,WAAO,IAAI,cAAc,MAAM,OAAO,KAAK,QAAQ,QAAQ,eAAe,qBAAqB;AAAA,EAChG;AAAA,EAES,oBACR,OACA,QACA,eACA,uBACA,oBACmB;AACnB,UAAM,OAAO,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC1C,WAAO,IAAI;AAAA,MACV;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAES,YACR,aACA,SAAkC,CAAC,GAC/B;AACJ,UAAM,KAAK,IAAI,iBAAiB,QAAQ,KAAK,SAAS,MAAM,KAAK,MAAM;AACvE,SAAK,IAAI,IAAI,IAAI,QAAQ,OAAO,WAAW,IAAI,OAAO,QAAQ,KAAK,EAAE,EAAE,CAAC;AACxE,QAAI;AACH,YAAM,SAAS,YAAY,EAAE;AAC7B,WAAK,IAAI,WAAW;AACpB,aAAO;AAAA,IACR,SAAS,KAAK;AACb,WAAK,IAAI,aAAa;AACtB,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAEO,MAAM,yBAGH,kBAAsD;AAAA,EAC/D,QAA0B,UAAU,IAAY;AAAA,EAEvC,YAAe,aAAmE;AAC1F,UAAM,gBAAgB,KAAK,KAAK,cAAc,CAAC;AAC/C,UAAM,KAAK,IAAI,iBAAiB,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,cAAc,CAAC;AACrG,OAAG,IAAI,IAAI,IAAI,aAAa,aAAa,EAAE,CAAC;AAC5C,QAAI;AACH,YAAM,SAAS,YAAY,EAAE;AAC7B,SAAG,IAAI,IAAI,IAAI,qBAAqB,aAAa,EAAE,CAAC;AACpD,aAAO;AAAA,IACR,SAAS,KAAK;AACb,SAAG,IAAI,IAAI,IAAI,yBAAyB,aAAa,EAAE,CAAC;AACxD,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,kBAEtF;AAAA,EAGD,YACS,MACR,OACQ,QACA,QACR,eACQ,wBACA,oBACA,iBAAiB,OACxB;AACD,UAAM,QAAQ,eAAe,KAAK;AAT1B;AAEA;AACA;AAEA;AACA;AACA;AAAA,EAGT;AAAA,EAbA,QAA0B,UAAU,IAAY;AAAA,EAehD,IAAI,mBAAmD;AACtD,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,UAAM,SAAS,KAAK,KAAK,IAAI,MAAoB;AAEjD,QAAI,KAAK,gBAAgB;AACxB,WAAK,KAAK;AAAA,IACX;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,IAAI,mBAAuD;AAC1D,UAAM,EAAE,QAAQ,qBAAqB,QAAQ,OAAO,MAAM,gBAAgB,mBAAmB,IAAI;AACjG,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,SAAS,iBAAiB,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AACrE,aAAO,SAAS,MAAM,KAAK,MAAM;AACjC,WAAK,KAAK,MAAoB;AAC9B,YAAMA,QAAkB,CAAC;AACzB,aAAO,KAAK,KAAK,GAAG;AACnB,QAAAA,MAAK,KAAK,KAAK,YAAY,CAAC;AAAA,MAC7B;AAEA,UAAI,gBAAgB;AACnB,aAAK,KAAK;AAAA,MACX;AAEA,aAAOA;AAAA,IACR;AAEA,UAAM,OAAO,KAAK,OAAO,iBAAiB;AAE1C,QAAI,oBAAoB;AACvB,aAAO,mBAAmB,MAAM,mBAAmB;AAAA,IACpD;AAEA,WAAO,KAAK,IAAI,CAAC,QAAQ,aAAa,QAAS,IAAI,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC,GAAG,mBAAmB,CAAC;AAAA,EAC5G;AAAA,EAEA,IAAI,mBAAuD;AAC1D,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,UAAM,EAAE,QAAQ,MAAM,gBAAgB,qBAAqB,mBAAmB,IAAI;AAClF,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,SAAS,KAAK,YAAY,MAAoB;AAEpD,UAAI,gBAAgB;AACnB,aAAK,KAAK;AAAA,MACX;AAEA,aAAO;AAAA,IACR;AAEA,UAAM,MAAM,KAAK,IAAI,MAAoB;AAEzC,QAAI,gBAAgB;AACnB,WAAK,KAAK;AAAA,IACX;AAEA,QAAI,CAAC,OAAQ,IAAI,WAAW,KAAK,OAAQ,SAAS,GAAI;AACrD,aAAO;AAAA,IACR;AAEA,QAAI,oBAAoB;AACvB,aAAO,mBAAmB,CAAC,GAAG,GAAG,mBAAmB;AAAA,IACrD;AAEA,WAAO,aAAa,QAAS,IAAI,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC,GAAG,mBAAmB;AAAA,EACzF;AAAA,EAEA,OAAO,mBAA0D;AAChE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,SAAK,KAAK,KAAK,MAAoB;AACnC,UAAM,OAAkB,CAAC;AACzB,WAAO,KAAK,KAAK,KAAK,GAAG;AACxB,WAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AAAA,IAC1B;AAEA,QAAI,KAAK,gBAAgB;AACxB,WAAK,KAAK;AAAA,IACX;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAgB;AACf,WAAO,KAAK,KAAK,KAAK;AAAA,EACvB;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;AAEA,SAAS,oBAAoB,OAAgB;AAC5C,MAAI,iBAAiB,YAAY;AAChC,QAAI,OAAO,WAAW,aAAa;AAClC,UAAI,EAAE,iBAAiB,SAAS;AAC/B,eAAO,OAAO,KAAK,KAAK;AAAA,MACzB;AACA,aAAO;AAAA,IACR;AACA,QAAI,OAAO,gBAAgB,aAAa;AACvC,aAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA,IACtC;AACA,UAAM,IAAI,MAAM,qFAAqF;AAAA,EACtG;AACA,SAAO;AACR;","names":["rows"]}
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"]}
@@ -27,41 +27,65 @@ 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");
30
31
  var import_count = require("./query-builders/count.cjs");
31
- var import_query = require("./query-builders/query.cjs");
32
+ var import_query2 = require("./query-builders/query.cjs");
32
33
  var import_raw = require("./query-builders/raw.cjs");
33
34
  class BaseSQLiteDatabase {
34
- constructor(resultKind, dialect, session, schema) {
35
+ constructor(resultKind, dialect, session, relations, _schema, rowModeRQB) {
35
36
  this.resultKind = resultKind;
36
37
  this.dialect = dialect;
37
38
  this.session = session;
38
- this._ = schema ? {
39
- schema: schema.schema,
40
- fullSchema: schema.fullSchema,
41
- tableNamesMap: schema.tableNamesMap
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
42
46
  } : {
43
47
  schema: void 0,
44
48
  fullSchema: {},
45
- tableNamesMap: {}
49
+ tableNamesMap: {},
50
+ relations: rel
46
51
  };
47
- this.query = {};
48
- const query = this.query;
52
+ this._query = {};
53
+ const query = this._query;
49
54
  if (this._.schema) {
50
55
  for (const [tableName, columns] of Object.entries(this._.schema)) {
51
- query[tableName] = new import_query.RelationalQueryBuilder(
56
+ query[tableName] = new import_query._RelationalQueryBuilder(
52
57
  resultKind,
53
- schema.fullSchema,
58
+ _schema.fullSchema,
54
59
  this._.schema,
55
60
  this._.tableNamesMap,
56
- schema.fullSchema[tableName],
61
+ _schema.fullSchema[tableName],
57
62
  columns,
58
63
  dialect,
59
64
  session
60
65
  );
61
66
  }
62
67
  }
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
+ }
63
84
  }
64
85
  static [import_entity.entityKind] = "BaseSQLiteDatabase";
86
+ /** @deprecated */
87
+ _query;
88
+ // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
65
89
  query;
66
90
  /**
67
91
  * Creates a subquery that defines a temporary named result set as a CTE.
@@ -344,6 +368,9 @@ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(
344
368
  selectDistinct,
345
369
  $count,
346
370
  with: $with,
371
+ get _query() {
372
+ return getReplica(replicas)._query;
373
+ },
347
374
  get query() {
348
375
  return getReplica(replicas).query;
349
376
  }
@@ -1 +1 @@
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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAG3B,6BAAsC;AACtC,iBAAsE;AAEtE,4BAMO;AASP,sBAA6B;AAE7B,mBAAmC;AACnC,mBAAuC;AACvC,iBAA0B;AAKnB,MAAM,mBAKX;AAAA,EAeD,YACS,YAEC,SAEA,SACT,QACC;AANO;AAEC;AAEA;AAGT,SAAK,IAAI,SACN;AAAA,MACD,QAAQ,OAAO;AAAA,MACf,YAAY,OAAO;AAAA,MACnB,eAAe,OAAO;AAAA,IACvB,IACE;AAAA,MACD,QAAQ;AAAA,MACR,YAAY,CAAC;AAAA,MACb,eAAe,CAAC;AAAA,IACjB;AACD,SAAK,QAAQ,CAAC;AACd,UAAM,QAAQ,KAAK;AAGnB,QAAI,KAAK,EAAE,QAAQ;AAClB,iBAAW,CAAC,WAAW,OAAO,KAAK,OAAO,QAAQ,KAAK,EAAE,MAAM,GAAG;AACjE,cAAM,SAA0B,IAAI,IAAI;AAAA,UACvC;AAAA,UACA,OAAQ;AAAA,UACR,KAAK,EAAE;AAAA,UACP,KAAK,EAAE;AAAA,UACP,OAAQ,WAAW,SAAS;AAAA,UAC5B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAnDA,QAAiB,wBAAU,IAAY;AAAA,EAQvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6EA,QAAqB,CAAC,OAAe,cAAiC;AACrE,UAAM,OAAO;AACb,UAAM,KAAK,CACV,OAII;AACJ,UAAI,OAAO,OAAO,YAAY;AAC7B,aAAK,GAAG,IAAI,mCAAa,KAAK,OAAO,CAAC;AAAA,MACvC;AAEA,aAAO,IAAI;AAAA,QACV,IAAI;AAAA,UACH,GAAG,OAAO;AAAA,UACV,cAAc,uBAAuB,KAAK,GAAG,kBAAkB,KAAK,CAAC,IAAI,CAAC;AAAA,UAC1E;AAAA,UACA;AAAA,QACD;AAAA,QACA,IAAI,6CAAsB,EAAE,OAAO,oBAAoB,SAAS,aAAa,QAAQ,CAAC;AAAA,MACvF;AAAA,IACD;AACA,WAAO,EAAE,GAAG;AAAA,EACb;AAAA,EAEA,OACC,QACA,SACC;AACD,WAAO,IAAI,gCAAmB,EAAE,QAAQ,SAAS,SAAS,KAAK,QAAQ,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBA,QAAQ,SAAyB;AAChC,UAAM,OAAO;AA0Cb,aAAS,OACR,QAC2E;AAC3E,aAAO,IAAI,0CAAoB;AAAA,QAC9B,QAAQ,UAAU;AAAA,QAClB,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AA+BA,aAAS,eACR,QAC2E;AAC3E,aAAO,IAAI,0CAAoB;AAAA,QAC9B,QAAQ,UAAU;AAAA,QAClB,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AA6BA,aAAS,OAAmC,OAAqE;AAChH,aAAO,IAAI,0CAAoB,OAAO,KAAK,SAAS,KAAK,SAAS,OAAO;AAAA,IAC1E;AA0BA,aAAS,OAAmC,MAAoE;AAC/G,aAAO,IAAI,0CAAoB,MAAM,KAAK,SAAS,KAAK,SAAS,OAAO;AAAA,IACzE;AA0BA,aAAS,QAAoC,MAAiE;AAC7G,aAAO,IAAI,uCAAiB,MAAM,KAAK,SAAS,KAAK,SAAS,OAAO;AAAA,IACtE;AAEA,WAAO,EAAE,QAAQ,gBAAgB,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,EAClE;AAAA,EA0CA,OAAO,QAAmG;AACzG,WAAO,IAAI,0CAAoB,EAAE,QAAQ,UAAU,QAAW,SAAS,KAAK,SAAS,SAAS,KAAK,QAAQ,CAAC;AAAA,EAC7G;AAAA,EA+BA,eACC,QAC2E;AAC3E,WAAO,IAAI,0CAAoB;AAAA,MAC9B,QAAQ,UAAU;AAAA,MAClB,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU;AAAA,IACX,CAAC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6BA,OAAmC,OAAqE;AACvG,WAAO,IAAI,0CAAoB,OAAO,KAAK,SAAS,KAAK,OAAO;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA,OAAmC,MAAoE;AACtG,WAAO,IAAI,0CAAoB,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA,OAAmC,MAAiE;AACnG,WAAO,IAAI,uCAAiB,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,EAC7D;AAAA,EAEA,IAAI,OAA+D;AAClE,UAAM,SAAS,OAAO,UAAU,WAAW,eAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,QAAI,KAAK,eAAe,SAAS;AAChC,aAAO,IAAI;AAAA,QACV,YAAY,KAAK,QAAQ,IAAI,MAAM;AAAA,QACnC,MAAM;AAAA,QACN;AAAA,QACA,KAAK;AAAA,QACL,KAAK,QAAQ,kCAAkC,KAAK,KAAK,OAAO;AAAA,MACjE;AAAA,IACD;AACA,WAAO,KAAK,QAAQ,IAAI,MAAM;AAAA,EAC/B;AAAA,EAEA,IAAiB,OAAwD;AACxE,UAAM,SAAS,OAAO,UAAU,WAAW,eAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,QAAI,KAAK,eAAe,SAAS;AAChC,aAAO,IAAI;AAAA,QACV,YAAY,KAAK,QAAQ,IAAI,MAAM;AAAA,QACnC,MAAM;AAAA,QACN;AAAA,QACA,KAAK;AAAA,QACL,KAAK,QAAQ,kCAAkC,KAAK,KAAK,OAAO;AAAA,MACjE;AAAA,IACD;AACA,WAAO,KAAK,QAAQ,IAAI,MAAM;AAAA,EAC/B;AAAA,EAEA,IAAiB,OAAsD;AACtE,UAAM,SAAS,OAAO,UAAU,WAAW,eAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,QAAI,KAAK,eAAe,SAAS;AAChC,aAAO,IAAI;AAAA,QACV,YAAY,KAAK,QAAQ,IAAI,MAAM;AAAA,QACnC,MAAM;AAAA,QACN;AAAA,QACA,KAAK;AAAA,QACL,KAAK,QAAQ,kCAAkC,KAAK,KAAK,OAAO;AAAA,MACjE;AAAA,IACD;AACA,WAAO,KAAK,QAAQ,IAAI,MAAM;AAAA,EAC/B;AAAA,EAEA,OAAwC,OAAwD;AAC/F,UAAM,SAAS,OAAO,UAAU,WAAW,eAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,QAAI,KAAK,eAAe,SAAS;AAChC,aAAO,IAAI;AAAA,QACV,YAAY,KAAK,QAAQ,OAAO,MAAM;AAAA,QACtC,MAAM;AAAA,QACN;AAAA,QACA,KAAK;AAAA,QACL,KAAK,QAAQ,qCAAqC,KAAK,KAAK,OAAO;AAAA,MACpE;AAAA,IACD;AACA,WAAO,KAAK,QAAQ,OAAO,MAAM;AAAA,EAClC;AAAA,EAEA,YACC,aACA,QACyB;AACzB,WAAO,KAAK,QAAQ,YAAY,aAAa,MAAM;AAAA,EACpD;AACD;AAIO,MAAM,eAAe,CAY3B,SACA,UACA,aAAmC,MAAM,SAAS,KAAK,MAAM,KAAK,OAAO,IAAI,SAAS,MAAM,CAAC,MAClE;AAC3B,QAAM,SAAsB,IAAI,SAAa,WAAW,QAAQ,EAAE,OAAO,GAAG,IAAI;AAChF,QAAM,iBAAsC,IAAI,SAAa,WAAW,QAAQ,EAAE,eAAe,GAAG,IAAI;AACxG,QAAM,SAAsB,IAAI,SAAgB,WAAW,QAAQ,EAAE,OAAO,GAAG,IAAI;AACnF,QAAM,QAAmB,IAAI,SAAa,WAAW,QAAQ,EAAE,KAAK,GAAG,IAAI;AAE3E,QAAM,SAAsB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACtE,QAAM,SAAsB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACtE,QAAM,UAAuB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACvE,QAAM,MAAgB,IAAI,SAAgB,QAAQ,IAAI,GAAG,IAAI;AAC7D,QAAM,MAAgB,IAAI,SAAgB,QAAQ,IAAI,GAAG,IAAI;AAC7D,QAAM,MAAgB,IAAI,SAAgB,QAAQ,IAAI,GAAG,IAAI;AAC7D,QAAM,SAAsB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACtE,QAAM,cAAgC,IAAI,SAAgB,QAAQ,YAAY,GAAG,IAAI;AAErF,SAAO;AAAA,IACN,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,IAAI,QAAQ;AACX,aAAO,WAAW,QAAQ,EAAE;AAAA,IAC7B;AAAA,EACD;AACD;","names":[]}
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,5 +1,6 @@
1
+ import type * as V1 from "../_relations.cjs";
1
2
  import { entityKind } from "../entity.cjs";
2
- import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
3
+ import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.cjs";
3
4
  import { type SQL, type SQLWrapper } from "../sql/sql.cjs";
4
5
  import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.cjs";
5
6
  import { SQLiteDeleteBase, SQLiteInsertBuilder, SQLiteSelectBuilder, SQLiteUpdateBuilder } from "./query-builders/index.cjs";
@@ -7,21 +8,28 @@ import type { DBResult, Result, SQLiteSession, SQLiteTransaction, SQLiteTransact
7
8
  import type { SQLiteTable } from "./table.cjs";
8
9
  import { WithSubquery } from "../subquery.cjs";
9
10
  import type { DrizzleTypeError } from "../utils.cjs";
11
+ import { _RelationalQueryBuilder } from "./query-builders/_query.cjs";
10
12
  import { SQLiteCountBuilder } from "./query-builders/count.cjs";
11
13
  import { RelationalQueryBuilder } from "./query-builders/query.cjs";
12
14
  import type { SelectedFields } from "./query-builders/select.types.cjs";
13
15
  import type { WithBuilder } from "./subquery.cjs";
14
16
  import type { SQLiteViewBase } from "./view-base.cjs";
15
- export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
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>> {
16
18
  private resultKind;
19
+ readonly rowModeRQB?: boolean | undefined;
17
20
  static readonly [entityKind]: string;
18
21
  readonly _: {
19
22
  readonly schema: TSchema | undefined;
20
23
  readonly fullSchema: TFullSchema;
21
24
  readonly tableNamesMap: Record<string, string>;
25
+ readonly relations: TRelations;
22
26
  };
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]>;
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]>;
25
33
  };
26
34
  constructor(resultKind: TResultKind,
27
35
  /** @internal */
@@ -30,7 +38,7 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
30
38
  async: SQLiteAsyncDialect;
31
39
  }[TResultKind],
32
40
  /** @internal */
33
- session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>, schema: RelationalSchemaConfig<TSchema> | undefined);
41
+ session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>, relations: AnyRelations | undefined, _schema: V1.RelationalSchemaConfig<TSchema> | undefined, rowModeRQB?: boolean | undefined);
34
42
  /**
35
43
  * Creates a subquery that defines a temporary named result set as a CTE.
36
44
  *
@@ -64,7 +72,7 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
64
72
  * ```
65
73
  */
66
74
  $with: WithBuilder;
67
- $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteCountBuilder<SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>>;
75
+ $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteCountBuilder<SQLiteSession<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>>;
68
76
  /**
69
77
  * Incorporates a previously defined CTE (using `$with`) into the main query.
70
78
  *
@@ -244,9 +252,9 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
244
252
  all<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
245
253
  get<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T>;
246
254
  values<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
247
- transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
255
+ transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
248
256
  }
249
257
  export type SQLiteWithReplicas<Q> = Q & {
250
258
  $primary: Q;
251
259
  };
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>;
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>;