drizzle-orm 0.36.4-166fb8d → 0.36.4-3c69a1f

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 (553) 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-sqlite/driver.cjs +22 -5
  44. package/bun-sqlite/driver.cjs.map +1 -1
  45. package/bun-sqlite/driver.d.cts +7 -6
  46. package/bun-sqlite/driver.d.ts +7 -6
  47. package/bun-sqlite/driver.js +12 -8
  48. package/bun-sqlite/driver.js.map +1 -1
  49. package/bun-sqlite/migrator.cjs.map +1 -1
  50. package/bun-sqlite/migrator.d.cts +2 -1
  51. package/bun-sqlite/migrator.d.ts +2 -1
  52. package/bun-sqlite/migrator.js.map +1 -1
  53. package/bun-sqlite/session.cjs +49 -4
  54. package/bun-sqlite/session.cjs.map +1 -1
  55. package/bun-sqlite/session.d.cts +14 -8
  56. package/bun-sqlite/session.d.ts +14 -8
  57. package/bun-sqlite/session.js +49 -4
  58. package/bun-sqlite/session.js.map +1 -1
  59. package/d1/driver.cjs +22 -5
  60. package/d1/driver.cjs.map +1 -1
  61. package/d1/driver.d.cts +3 -2
  62. package/d1/driver.d.ts +3 -2
  63. package/d1/driver.js +12 -8
  64. package/d1/driver.js.map +1 -1
  65. package/d1/migrator.cjs.map +1 -1
  66. package/d1/migrator.d.cts +2 -1
  67. package/d1/migrator.d.ts +2 -1
  68. package/d1/migrator.js.map +1 -1
  69. package/d1/session.cjs +48 -6
  70. package/d1/session.cjs.map +1 -1
  71. package/d1/session.d.cts +15 -8
  72. package/d1/session.d.ts +15 -8
  73. package/d1/session.js +48 -6
  74. package/d1/session.js.map +1 -1
  75. package/expo-sqlite/driver.cjs +22 -5
  76. package/expo-sqlite/driver.cjs.map +1 -1
  77. package/expo-sqlite/driver.d.cts +3 -2
  78. package/expo-sqlite/driver.d.ts +3 -2
  79. package/expo-sqlite/driver.js +12 -8
  80. package/expo-sqlite/driver.js.map +1 -1
  81. package/expo-sqlite/migrator.cjs.map +1 -1
  82. package/expo-sqlite/migrator.d.cts +3 -2
  83. package/expo-sqlite/migrator.d.ts +3 -2
  84. package/expo-sqlite/migrator.js.map +1 -1
  85. package/expo-sqlite/query.cjs +13 -2
  86. package/expo-sqlite/query.cjs.map +1 -1
  87. package/expo-sqlite/query.d.cts +2 -1
  88. package/expo-sqlite/query.d.ts +2 -1
  89. package/expo-sqlite/query.js +3 -2
  90. package/expo-sqlite/query.js.map +1 -1
  91. package/expo-sqlite/session.cjs +47 -4
  92. package/expo-sqlite/session.cjs.map +1 -1
  93. package/expo-sqlite/session.d.cts +14 -8
  94. package/expo-sqlite/session.d.ts +14 -8
  95. package/expo-sqlite/session.js +47 -4
  96. package/expo-sqlite/session.js.map +1 -1
  97. package/libsql/driver-core.cjs +22 -5
  98. package/libsql/driver-core.cjs.map +1 -1
  99. package/libsql/driver-core.d.cts +2 -1
  100. package/libsql/driver-core.d.ts +2 -1
  101. package/libsql/driver-core.js +12 -8
  102. package/libsql/driver-core.js.map +1 -1
  103. package/libsql/driver.cjs.map +1 -1
  104. package/libsql/driver.d.cts +6 -5
  105. package/libsql/driver.d.ts +6 -5
  106. package/libsql/driver.js.map +1 -1
  107. package/libsql/http/index.cjs.map +1 -1
  108. package/libsql/http/index.d.cts +6 -5
  109. package/libsql/http/index.d.ts +6 -5
  110. package/libsql/http/index.js.map +1 -1
  111. package/libsql/migrator.cjs.map +1 -1
  112. package/libsql/migrator.d.cts +2 -1
  113. package/libsql/migrator.d.ts +2 -1
  114. package/libsql/migrator.js.map +1 -1
  115. package/libsql/node/index.cjs.map +1 -1
  116. package/libsql/node/index.d.cts +6 -5
  117. package/libsql/node/index.d.ts +6 -5
  118. package/libsql/node/index.js.map +1 -1
  119. package/libsql/session.cjs +60 -4
  120. package/libsql/session.cjs.map +1 -1
  121. package/libsql/session.d.cts +15 -9
  122. package/libsql/session.d.ts +15 -9
  123. package/libsql/session.js +60 -4
  124. package/libsql/session.js.map +1 -1
  125. package/libsql/sqlite3/index.cjs.map +1 -1
  126. package/libsql/sqlite3/index.d.cts +6 -5
  127. package/libsql/sqlite3/index.d.ts +6 -5
  128. package/libsql/sqlite3/index.js.map +1 -1
  129. package/libsql/wasm/index.cjs.map +1 -1
  130. package/libsql/wasm/index.d.cts +6 -5
  131. package/libsql/wasm/index.d.ts +6 -5
  132. package/libsql/wasm/index.js.map +1 -1
  133. package/libsql/web/index.cjs.map +1 -1
  134. package/libsql/web/index.d.cts +6 -5
  135. package/libsql/web/index.d.ts +6 -5
  136. package/libsql/web/index.js.map +1 -1
  137. package/libsql/ws/index.cjs.map +1 -1
  138. package/libsql/ws/index.d.cts +6 -5
  139. package/libsql/ws/index.d.ts +6 -5
  140. package/libsql/ws/index.js.map +1 -1
  141. package/mysql-core/db.cjs +29 -8
  142. package/mysql-core/db.cjs.map +1 -1
  143. package/mysql-core/db.d.cts +15 -8
  144. package/mysql-core/db.d.ts +15 -8
  145. package/mysql-core/db.js +28 -7
  146. package/mysql-core/db.js.map +1 -1
  147. package/mysql-core/dialect.cjs +170 -15
  148. package/mysql-core/dialect.cjs.map +1 -1
  149. package/mysql-core/dialect.d.cts +29 -13
  150. package/mysql-core/dialect.d.ts +29 -13
  151. package/mysql-core/dialect.js +167 -21
  152. package/mysql-core/dialect.js.map +1 -1
  153. package/mysql-core/query-builders/_query.cjs +149 -0
  154. package/mysql-core/query-builders/_query.cjs.map +1 -0
  155. package/mysql-core/query-builders/_query.d.cts +44 -0
  156. package/mysql-core/query-builders/_query.d.ts +44 -0
  157. package/mysql-core/query-builders/_query.js +114 -0
  158. package/mysql-core/query-builders/_query.js.map +1 -0
  159. package/mysql-core/query-builders/count.cjs.map +1 -1
  160. package/mysql-core/query-builders/count.d.cts +1 -1
  161. package/mysql-core/query-builders/count.d.ts +1 -1
  162. package/mysql-core/query-builders/count.js.map +1 -1
  163. package/mysql-core/query-builders/query.cjs +18 -31
  164. package/mysql-core/query-builders/query.cjs.map +1 -1
  165. package/mysql-core/query-builders/query.d.cts +8 -10
  166. package/mysql-core/query-builders/query.d.ts +8 -10
  167. package/mysql-core/query-builders/query.js +18 -31
  168. package/mysql-core/query-builders/query.js.map +1 -1
  169. package/mysql-core/session.cjs +3 -2
  170. package/mysql-core/session.cjs.map +1 -1
  171. package/mysql-core/session.d.cts +10 -7
  172. package/mysql-core/session.d.ts +10 -7
  173. package/mysql-core/session.js +3 -2
  174. package/mysql-core/session.js.map +1 -1
  175. package/mysql-proxy/driver.cjs +22 -5
  176. package/mysql-proxy/driver.cjs.map +1 -1
  177. package/mysql-proxy/driver.d.cts +3 -2
  178. package/mysql-proxy/driver.d.ts +3 -2
  179. package/mysql-proxy/driver.js +12 -8
  180. package/mysql-proxy/driver.js.map +1 -1
  181. package/mysql-proxy/migrator.cjs.map +1 -1
  182. package/mysql-proxy/migrator.d.cts +2 -1
  183. package/mysql-proxy/migrator.d.ts +2 -1
  184. package/mysql-proxy/migrator.js.map +1 -1
  185. package/mysql-proxy/session.cjs +47 -2
  186. package/mysql-proxy/session.cjs.map +1 -1
  187. package/mysql-proxy/session.d.cts +13 -8
  188. package/mysql-proxy/session.d.ts +13 -8
  189. package/mysql-proxy/session.js +47 -2
  190. package/mysql-proxy/session.js.map +1 -1
  191. package/mysql2/driver.cjs +24 -7
  192. package/mysql2/driver.cjs.map +1 -1
  193. package/mysql2/driver.d.cts +10 -9
  194. package/mysql2/driver.d.ts +10 -9
  195. package/mysql2/driver.js +14 -10
  196. package/mysql2/driver.js.map +1 -1
  197. package/mysql2/migrator.cjs.map +1 -1
  198. package/mysql2/migrator.d.cts +2 -1
  199. package/mysql2/migrator.d.ts +2 -1
  200. package/mysql2/migrator.js.map +1 -1
  201. package/mysql2/session.cjs +51 -2
  202. package/mysql2/session.cjs.map +1 -1
  203. package/mysql2/session.d.cts +13 -8
  204. package/mysql2/session.d.ts +13 -8
  205. package/mysql2/session.js +51 -2
  206. package/mysql2/session.js.map +1 -1
  207. package/neon-http/driver.cjs +21 -7
  208. package/neon-http/driver.cjs.map +1 -1
  209. package/neon-http/driver.d.cts +10 -9
  210. package/neon-http/driver.d.ts +10 -9
  211. package/neon-http/driver.js +11 -7
  212. package/neon-http/driver.js.map +1 -1
  213. package/neon-http/migrator.cjs.map +1 -1
  214. package/neon-http/migrator.d.cts +2 -1
  215. package/neon-http/migrator.d.ts +2 -1
  216. package/neon-http/migrator.js.map +1 -1
  217. package/neon-http/session.cjs +32 -2
  218. package/neon-http/session.cjs.map +1 -1
  219. package/neon-http/session.d.cts +13 -8
  220. package/neon-http/session.d.ts +13 -8
  221. package/neon-http/session.js +32 -2
  222. package/neon-http/session.js.map +1 -1
  223. package/neon-serverless/driver.cjs +18 -7
  224. package/neon-serverless/driver.cjs.map +1 -1
  225. package/neon-serverless/driver.d.cts +9 -8
  226. package/neon-serverless/driver.d.ts +9 -8
  227. package/neon-serverless/driver.js +8 -10
  228. package/neon-serverless/driver.js.map +1 -1
  229. package/neon-serverless/migrator.cjs.map +1 -1
  230. package/neon-serverless/migrator.d.cts +2 -1
  231. package/neon-serverless/migrator.d.ts +2 -1
  232. package/neon-serverless/migrator.js.map +1 -1
  233. package/neon-serverless/session.cjs +40 -5
  234. package/neon-serverless/session.cjs.map +1 -1
  235. package/neon-serverless/session.d.cts +13 -8
  236. package/neon-serverless/session.d.ts +13 -8
  237. package/neon-serverless/session.js +40 -5
  238. package/neon-serverless/session.js.map +1 -1
  239. package/node-postgres/driver.cjs +13 -7
  240. package/node-postgres/driver.cjs.map +1 -1
  241. package/node-postgres/driver.d.cts +9 -8
  242. package/node-postgres/driver.d.ts +9 -8
  243. package/node-postgres/driver.js +13 -10
  244. package/node-postgres/driver.js.map +1 -1
  245. package/node-postgres/migrator.cjs.map +1 -1
  246. package/node-postgres/migrator.d.cts +2 -1
  247. package/node-postgres/migrator.d.ts +2 -1
  248. package/node-postgres/migrator.js.map +1 -1
  249. package/node-postgres/session.cjs +45 -4
  250. package/node-postgres/session.cjs.map +1 -1
  251. package/node-postgres/session.d.cts +13 -8
  252. package/node-postgres/session.d.ts +13 -8
  253. package/node-postgres/session.js +45 -4
  254. package/node-postgres/session.js.map +1 -1
  255. package/op-sqlite/driver.cjs +22 -5
  256. package/op-sqlite/driver.cjs.map +1 -1
  257. package/op-sqlite/driver.d.cts +3 -2
  258. package/op-sqlite/driver.d.ts +3 -2
  259. package/op-sqlite/driver.js +12 -8
  260. package/op-sqlite/driver.js.map +1 -1
  261. package/op-sqlite/migrator.cjs.map +1 -1
  262. package/op-sqlite/migrator.d.cts +3 -2
  263. package/op-sqlite/migrator.d.ts +3 -2
  264. package/op-sqlite/migrator.js.map +1 -1
  265. package/op-sqlite/session.cjs +47 -4
  266. package/op-sqlite/session.cjs.map +1 -1
  267. package/op-sqlite/session.d.cts +14 -8
  268. package/op-sqlite/session.d.ts +14 -8
  269. package/op-sqlite/session.js +47 -4
  270. package/op-sqlite/session.js.map +1 -1
  271. package/package.json +63 -15
  272. package/pg-core/db.cjs +31 -7
  273. package/pg-core/db.cjs.map +1 -1
  274. package/pg-core/db.d.cts +16 -9
  275. package/pg-core/db.d.ts +16 -9
  276. package/pg-core/db.js +30 -6
  277. package/pg-core/db.js.map +1 -1
  278. package/pg-core/dialect.cjs +146 -488
  279. package/pg-core/dialect.cjs.map +1 -1
  280. package/pg-core/dialect.d.cts +21 -7
  281. package/pg-core/dialect.d.ts +21 -7
  282. package/pg-core/dialect.js +143 -494
  283. package/pg-core/dialect.js.map +1 -1
  284. package/pg-core/query-builders/_query.cjs +155 -0
  285. package/pg-core/query-builders/_query.cjs.map +1 -0
  286. package/pg-core/query-builders/_query.d.cts +47 -0
  287. package/pg-core/query-builders/_query.d.ts +47 -0
  288. package/pg-core/query-builders/_query.js +120 -0
  289. package/pg-core/query-builders/_query.js.map +1 -0
  290. package/pg-core/query-builders/count.cjs.map +1 -1
  291. package/pg-core/query-builders/count.d.cts +1 -1
  292. package/pg-core/query-builders/count.d.ts +1 -1
  293. package/pg-core/query-builders/count.js.map +1 -1
  294. package/pg-core/query-builders/query.cjs +15 -18
  295. package/pg-core/query-builders/query.cjs.map +1 -1
  296. package/pg-core/query-builders/query.d.cts +6 -6
  297. package/pg-core/query-builders/query.d.ts +6 -6
  298. package/pg-core/query-builders/query.js +15 -18
  299. package/pg-core/query-builders/query.js.map +1 -1
  300. package/pg-core/session.cjs +3 -2
  301. package/pg-core/session.cjs.map +1 -1
  302. package/pg-core/session.d.cts +9 -6
  303. package/pg-core/session.d.ts +9 -6
  304. package/pg-core/session.js +3 -2
  305. package/pg-core/session.js.map +1 -1
  306. package/pg-proxy/driver.cjs +21 -5
  307. package/pg-proxy/driver.cjs.map +1 -1
  308. package/pg-proxy/driver.d.cts +3 -2
  309. package/pg-proxy/driver.d.ts +3 -2
  310. package/pg-proxy/driver.js +11 -8
  311. package/pg-proxy/driver.js.map +1 -1
  312. package/pg-proxy/migrator.cjs.map +1 -1
  313. package/pg-proxy/migrator.d.cts +2 -1
  314. package/pg-proxy/migrator.d.ts +2 -1
  315. package/pg-proxy/migrator.js.map +1 -1
  316. package/pg-proxy/session.cjs +37 -2
  317. package/pg-proxy/session.cjs.map +1 -1
  318. package/pg-proxy/session.d.cts +13 -8
  319. package/pg-proxy/session.d.ts +13 -8
  320. package/pg-proxy/session.js +37 -2
  321. package/pg-proxy/session.js.map +1 -1
  322. package/pglite/driver.cjs +23 -7
  323. package/pglite/driver.cjs.map +1 -1
  324. package/pglite/driver.d.cts +9 -8
  325. package/pglite/driver.d.ts +9 -8
  326. package/pglite/driver.js +13 -10
  327. package/pglite/driver.js.map +1 -1
  328. package/pglite/migrator.cjs.map +1 -1
  329. package/pglite/migrator.d.cts +2 -1
  330. package/pglite/migrator.d.ts +2 -1
  331. package/pglite/migrator.js.map +1 -1
  332. package/pglite/session.cjs +34 -3
  333. package/pglite/session.cjs.map +1 -1
  334. package/pglite/session.d.cts +13 -8
  335. package/pglite/session.d.ts +13 -8
  336. package/pglite/session.js +34 -3
  337. package/pglite/session.js.map +1 -1
  338. package/planetscale-serverless/driver.cjs +22 -5
  339. package/planetscale-serverless/driver.cjs.map +1 -1
  340. package/planetscale-serverless/driver.d.cts +7 -6
  341. package/planetscale-serverless/driver.d.ts +7 -6
  342. package/planetscale-serverless/driver.js +12 -8
  343. package/planetscale-serverless/driver.js.map +1 -1
  344. package/planetscale-serverless/migrator.cjs.map +1 -1
  345. package/planetscale-serverless/migrator.d.cts +2 -1
  346. package/planetscale-serverless/migrator.d.ts +2 -1
  347. package/planetscale-serverless/migrator.js.map +1 -1
  348. package/planetscale-serverless/session.cjs +68 -5
  349. package/planetscale-serverless/session.cjs.map +1 -1
  350. package/planetscale-serverless/session.d.cts +14 -9
  351. package/planetscale-serverless/session.d.ts +14 -9
  352. package/planetscale-serverless/session.js +68 -5
  353. package/planetscale-serverless/session.js.map +1 -1
  354. package/postgres-js/driver.cjs +12 -6
  355. package/postgres-js/driver.cjs.map +1 -1
  356. package/postgres-js/driver.d.cts +7 -6
  357. package/postgres-js/driver.d.ts +7 -6
  358. package/postgres-js/driver.js +12 -9
  359. package/postgres-js/driver.js.map +1 -1
  360. package/postgres-js/migrator.cjs.map +1 -1
  361. package/postgres-js/migrator.d.cts +2 -1
  362. package/postgres-js/migrator.d.ts +2 -1
  363. package/postgres-js/migrator.js.map +1 -1
  364. package/postgres-js/session.cjs +51 -6
  365. package/postgres-js/session.cjs.map +1 -1
  366. package/postgres-js/session.d.cts +15 -9
  367. package/postgres-js/session.d.ts +15 -9
  368. package/postgres-js/session.js +51 -6
  369. package/postgres-js/session.js.map +1 -1
  370. package/prisma/mysql/driver.cjs +1 -1
  371. package/prisma/mysql/driver.cjs.map +1 -1
  372. package/prisma/mysql/driver.js +1 -1
  373. package/prisma/mysql/driver.js.map +1 -1
  374. package/prisma/mysql/session.cjs +3 -0
  375. package/prisma/mysql/session.cjs.map +1 -1
  376. package/prisma/mysql/session.d.cts +3 -1
  377. package/prisma/mysql/session.d.ts +3 -1
  378. package/prisma/mysql/session.js +3 -0
  379. package/prisma/mysql/session.js.map +1 -1
  380. package/prisma/pg/driver.cjs +1 -1
  381. package/prisma/pg/driver.cjs.map +1 -1
  382. package/prisma/pg/driver.js +1 -1
  383. package/prisma/pg/driver.js.map +1 -1
  384. package/prisma/pg/session.cjs +3 -0
  385. package/prisma/pg/session.cjs.map +1 -1
  386. package/prisma/pg/session.d.cts +3 -1
  387. package/prisma/pg/session.d.ts +3 -1
  388. package/prisma/pg/session.js +3 -0
  389. package/prisma/pg/session.js.map +1 -1
  390. package/prisma/sqlite/driver.cjs +1 -1
  391. package/prisma/sqlite/driver.cjs.map +1 -1
  392. package/prisma/sqlite/driver.js +1 -1
  393. package/prisma/sqlite/driver.js.map +1 -1
  394. package/prisma/sqlite/session.cjs +3 -0
  395. package/prisma/sqlite/session.cjs.map +1 -1
  396. package/prisma/sqlite/session.d.cts +4 -2
  397. package/prisma/sqlite/session.d.ts +4 -2
  398. package/prisma/sqlite/session.js +3 -0
  399. package/prisma/sqlite/session.js.map +1 -1
  400. package/relations.cjs +468 -245
  401. package/relations.cjs.map +1 -1
  402. package/relations.d.cts +264 -125
  403. package/relations.d.ts +264 -125
  404. package/relations.js +455 -238
  405. package/relations.js.map +1 -1
  406. package/sql/sql.cjs.map +1 -1
  407. package/sql/sql.d.cts +4 -4
  408. package/sql/sql.d.ts +4 -4
  409. package/sql/sql.js.map +1 -1
  410. package/sql-js/driver.cjs +16 -5
  411. package/sql-js/driver.cjs.map +1 -1
  412. package/sql-js/driver.d.cts +3 -2
  413. package/sql-js/driver.d.ts +3 -2
  414. package/sql-js/driver.js +6 -8
  415. package/sql-js/driver.js.map +1 -1
  416. package/sql-js/migrator.cjs.map +1 -1
  417. package/sql-js/migrator.d.cts +2 -1
  418. package/sql-js/migrator.d.ts +2 -1
  419. package/sql-js/migrator.js.map +1 -1
  420. package/sql-js/session.cjs +58 -4
  421. package/sql-js/session.cjs.map +1 -1
  422. package/sql-js/session.d.cts +14 -8
  423. package/sql-js/session.d.ts +14 -8
  424. package/sql-js/session.js +58 -4
  425. package/sql-js/session.js.map +1 -1
  426. package/sqlite-core/db.cjs +35 -14
  427. package/sqlite-core/db.cjs.map +1 -1
  428. package/sqlite-core/db.d.cts +15 -8
  429. package/sqlite-core/db.d.ts +15 -8
  430. package/sqlite-core/db.js +34 -13
  431. package/sqlite-core/db.js.map +1 -1
  432. package/sqlite-core/dialect.cjs +164 -7
  433. package/sqlite-core/dialect.cjs.map +1 -1
  434. package/sqlite-core/dialect.d.cts +25 -9
  435. package/sqlite-core/dialect.d.ts +25 -9
  436. package/sqlite-core/dialect.js +161 -13
  437. package/sqlite-core/dialect.js.map +1 -1
  438. package/sqlite-core/query-builders/_query.cjs +187 -0
  439. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  440. package/sqlite-core/query-builders/_query.d.cts +55 -0
  441. package/sqlite-core/query-builders/_query.d.ts +55 -0
  442. package/sqlite-core/query-builders/_query.js +151 -0
  443. package/sqlite-core/query-builders/_query.js.map +1 -0
  444. package/sqlite-core/query-builders/count.cjs.map +1 -1
  445. package/sqlite-core/query-builders/count.d.cts +1 -1
  446. package/sqlite-core/query-builders/count.d.ts +1 -1
  447. package/sqlite-core/query-builders/count.js.map +1 -1
  448. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  449. package/sqlite-core/query-builders/delete.d.cts +1 -1
  450. package/sqlite-core/query-builders/delete.d.ts +1 -1
  451. package/sqlite-core/query-builders/delete.js.map +1 -1
  452. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  453. package/sqlite-core/query-builders/insert.d.cts +3 -3
  454. package/sqlite-core/query-builders/insert.d.ts +3 -3
  455. package/sqlite-core/query-builders/insert.js.map +1 -1
  456. package/sqlite-core/query-builders/query.cjs +30 -48
  457. package/sqlite-core/query-builders/query.cjs.map +1 -1
  458. package/sqlite-core/query-builders/query.d.cts +14 -16
  459. package/sqlite-core/query-builders/query.d.ts +14 -16
  460. package/sqlite-core/query-builders/query.js +30 -48
  461. package/sqlite-core/query-builders/query.js.map +1 -1
  462. package/sqlite-core/query-builders/select.cjs.map +1 -1
  463. package/sqlite-core/query-builders/select.d.cts +3 -3
  464. package/sqlite-core/query-builders/select.d.ts +3 -3
  465. package/sqlite-core/query-builders/select.js.map +1 -1
  466. package/sqlite-core/query-builders/update.cjs.map +1 -1
  467. package/sqlite-core/query-builders/update.d.cts +3 -3
  468. package/sqlite-core/query-builders/update.d.ts +3 -3
  469. package/sqlite-core/query-builders/update.js.map +1 -1
  470. package/sqlite-core/session.cjs +6 -2
  471. package/sqlite-core/session.cjs.map +1 -1
  472. package/sqlite-core/session.d.cts +14 -6
  473. package/sqlite-core/session.d.ts +14 -6
  474. package/sqlite-core/session.js +6 -2
  475. package/sqlite-core/session.js.map +1 -1
  476. package/sqlite-proxy/driver.cjs +22 -5
  477. package/sqlite-proxy/driver.cjs.map +1 -1
  478. package/sqlite-proxy/driver.d.cts +4 -3
  479. package/sqlite-proxy/driver.d.ts +4 -3
  480. package/sqlite-proxy/driver.js +12 -5
  481. package/sqlite-proxy/driver.js.map +1 -1
  482. package/sqlite-proxy/migrator.cjs.map +1 -1
  483. package/sqlite-proxy/migrator.d.cts +2 -1
  484. package/sqlite-proxy/migrator.d.ts +2 -1
  485. package/sqlite-proxy/migrator.js.map +1 -1
  486. package/sqlite-proxy/session.cjs +47 -4
  487. package/sqlite-proxy/session.cjs.map +1 -1
  488. package/sqlite-proxy/session.d.cts +14 -8
  489. package/sqlite-proxy/session.d.ts +14 -8
  490. package/sqlite-proxy/session.js +47 -4
  491. package/sqlite-proxy/session.js.map +1 -1
  492. package/table.cjs.map +1 -1
  493. package/table.d.cts +1 -1
  494. package/table.d.ts +1 -1
  495. package/table.js.map +1 -1
  496. package/tidb-serverless/driver.cjs +22 -5
  497. package/tidb-serverless/driver.cjs.map +1 -1
  498. package/tidb-serverless/driver.d.cts +7 -6
  499. package/tidb-serverless/driver.d.ts +7 -6
  500. package/tidb-serverless/driver.js +12 -8
  501. package/tidb-serverless/driver.js.map +1 -1
  502. package/tidb-serverless/migrator.cjs.map +1 -1
  503. package/tidb-serverless/migrator.d.cts +2 -1
  504. package/tidb-serverless/migrator.d.ts +2 -1
  505. package/tidb-serverless/migrator.js.map +1 -1
  506. package/tidb-serverless/session.cjs +62 -5
  507. package/tidb-serverless/session.cjs.map +1 -1
  508. package/tidb-serverless/session.d.cts +14 -9
  509. package/tidb-serverless/session.d.ts +14 -9
  510. package/tidb-serverless/session.js +62 -5
  511. package/tidb-serverless/session.js.map +1 -1
  512. package/utils.cjs +2 -2
  513. package/utils.cjs.map +1 -1
  514. package/utils.d.cts +3 -1
  515. package/utils.d.ts +3 -1
  516. package/utils.js +2 -2
  517. package/utils.js.map +1 -1
  518. package/vercel-postgres/driver.cjs +23 -7
  519. package/vercel-postgres/driver.cjs.map +1 -1
  520. package/vercel-postgres/driver.d.cts +9 -8
  521. package/vercel-postgres/driver.d.ts +9 -8
  522. package/vercel-postgres/driver.js +13 -10
  523. package/vercel-postgres/driver.js.map +1 -1
  524. package/vercel-postgres/migrator.cjs.map +1 -1
  525. package/vercel-postgres/migrator.d.cts +2 -1
  526. package/vercel-postgres/migrator.d.ts +2 -1
  527. package/vercel-postgres/migrator.js.map +1 -1
  528. package/vercel-postgres/session.cjs +34 -4
  529. package/vercel-postgres/session.cjs.map +1 -1
  530. package/vercel-postgres/session.d.cts +13 -8
  531. package/vercel-postgres/session.d.ts +13 -8
  532. package/vercel-postgres/session.js +34 -4
  533. package/vercel-postgres/session.js.map +1 -1
  534. package/version.cjs +1 -1
  535. package/version.d.cts +1 -1
  536. package/version.d.ts +1 -1
  537. package/version.js +1 -1
  538. package/xata-http/driver.cjs +17 -5
  539. package/xata-http/driver.cjs.map +1 -1
  540. package/xata-http/driver.d.cts +5 -4
  541. package/xata-http/driver.d.ts +5 -4
  542. package/xata-http/driver.js +7 -5
  543. package/xata-http/driver.js.map +1 -1
  544. package/xata-http/migrator.cjs.map +1 -1
  545. package/xata-http/migrator.d.cts +2 -1
  546. package/xata-http/migrator.d.ts +2 -1
  547. package/xata-http/migrator.js.map +1 -1
  548. package/xata-http/session.cjs +30 -2
  549. package/xata-http/session.cjs.map +1 -1
  550. package/xata-http/session.d.cts +13 -8
  551. package/xata-http/session.d.ts +13 -8
  552. package/xata-http/session.js +30 -2
  553. package/xata-http/session.js.map +1 -1
@@ -1,9 +1,10 @@
1
+ import type * as V1 from "../_relations.cjs";
1
2
  import { entityKind } from "../entity.cjs";
2
- import type { TablesRelationalConfig } from "../relations.cjs";
3
+ import { QueryPromise } from "../query-promise.cjs";
4
+ import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.cjs";
3
5
  import type { PreparedQuery } from "../session.cjs";
4
6
  import type { Query, SQL } from "../sql/sql.cjs";
5
7
  import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.cjs";
6
- import { QueryPromise } from "../query-promise.cjs";
7
8
  import { BaseSQLiteDatabase } from "./db.cjs";
8
9
  import type { SQLiteRaw } from "./query-builders/raw.cjs";
9
10
  import type { SelectedFieldsOrdered } from "./query-builders/select.types.cjs";
@@ -44,7 +45,7 @@ export interface SQLiteTransactionConfig {
44
45
  behavior?: 'deferred' | 'immediate' | 'exclusive';
45
46
  }
46
47
  export type SQLiteExecuteMethod = 'run' | 'all' | 'get';
47
- export declare abstract class SQLiteSession<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> {
48
+ export declare abstract class SQLiteSession<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>> {
48
49
  static readonly [entityKind]: string;
49
50
  constructor(
50
51
  /** @internal */
@@ -58,7 +59,13 @@ export declare abstract class SQLiteSession<TResultKind extends 'sync' | 'async'
58
59
  prepareOneTimeQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean): SQLitePreparedQuery<PreparedQueryConfig & {
59
60
  type: TResultKind;
60
61
  }>;
61
- abstract transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
62
+ abstract prepareRelationalQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown): SQLitePreparedQuery<PreparedQueryConfig & {
63
+ type: TResultKind;
64
+ }>;
65
+ prepareOneTimeRelationalQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown): SQLitePreparedQuery<PreparedQueryConfig & {
66
+ type: TResultKind;
67
+ }>;
68
+ abstract transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
62
69
  run(query: SQL): Result<TResultKind, TRunResult>;
63
70
  all<T = unknown>(query: SQL): Result<TResultKind, T[]>;
64
71
  get<T = unknown>(query: SQL): Result<TResultKind, T>;
@@ -73,7 +80,8 @@ export type DBResult<TKind extends 'sync' | 'async', TResult> = {
73
80
  sync: TResult;
74
81
  async: SQLiteRaw<TResult>;
75
82
  }[TKind];
76
- export declare abstract class SQLiteTransaction<TResultType extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {
83
+ export declare abstract class SQLiteTransaction<TResultType 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>> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
84
+ protected relations: AnyRelations | undefined;
77
85
  protected schema: {
78
86
  fullSchema: Record<string, unknown>;
79
87
  schema: TSchema;
@@ -84,7 +92,7 @@ export declare abstract class SQLiteTransaction<TResultType extends 'sync' | 'as
84
92
  constructor(resultType: TResultType, dialect: {
85
93
  sync: SQLiteSyncDialect;
86
94
  async: SQLiteAsyncDialect;
87
- }[TResultType], session: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>, schema: {
95
+ }[TResultType], session: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>, relations: AnyRelations | undefined, schema: {
88
96
  fullSchema: Record<string, unknown>;
89
97
  schema: TSchema;
90
98
  tableNamesMap: Record<string, string>;
@@ -1,9 +1,10 @@
1
+ import type * as V1 from "../_relations.js";
1
2
  import { entityKind } from "../entity.js";
2
- import type { TablesRelationalConfig } from "../relations.js";
3
+ import { QueryPromise } from "../query-promise.js";
4
+ import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.js";
3
5
  import type { PreparedQuery } from "../session.js";
4
6
  import type { Query, SQL } from "../sql/sql.js";
5
7
  import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.js";
6
- import { QueryPromise } from "../query-promise.js";
7
8
  import { BaseSQLiteDatabase } from "./db.js";
8
9
  import type { SQLiteRaw } from "./query-builders/raw.js";
9
10
  import type { SelectedFieldsOrdered } from "./query-builders/select.types.js";
@@ -44,7 +45,7 @@ export interface SQLiteTransactionConfig {
44
45
  behavior?: 'deferred' | 'immediate' | 'exclusive';
45
46
  }
46
47
  export type SQLiteExecuteMethod = 'run' | 'all' | 'get';
47
- export declare abstract class SQLiteSession<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> {
48
+ export declare abstract class SQLiteSession<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>> {
48
49
  static readonly [entityKind]: string;
49
50
  constructor(
50
51
  /** @internal */
@@ -58,7 +59,13 @@ export declare abstract class SQLiteSession<TResultKind extends 'sync' | 'async'
58
59
  prepareOneTimeQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean): SQLitePreparedQuery<PreparedQueryConfig & {
59
60
  type: TResultKind;
60
61
  }>;
61
- abstract transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
62
+ abstract prepareRelationalQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown): SQLitePreparedQuery<PreparedQueryConfig & {
63
+ type: TResultKind;
64
+ }>;
65
+ prepareOneTimeRelationalQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown): SQLitePreparedQuery<PreparedQueryConfig & {
66
+ type: TResultKind;
67
+ }>;
68
+ abstract transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
62
69
  run(query: SQL): Result<TResultKind, TRunResult>;
63
70
  all<T = unknown>(query: SQL): Result<TResultKind, T[]>;
64
71
  get<T = unknown>(query: SQL): Result<TResultKind, T>;
@@ -73,7 +80,8 @@ export type DBResult<TKind extends 'sync' | 'async', TResult> = {
73
80
  sync: TResult;
74
81
  async: SQLiteRaw<TResult>;
75
82
  }[TKind];
76
- export declare abstract class SQLiteTransaction<TResultType extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {
83
+ export declare abstract class SQLiteTransaction<TResultType 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>> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
84
+ protected relations: AnyRelations | undefined;
77
85
  protected schema: {
78
86
  fullSchema: Record<string, unknown>;
79
87
  schema: TSchema;
@@ -84,7 +92,7 @@ export declare abstract class SQLiteTransaction<TResultType extends 'sync' | 'as
84
92
  constructor(resultType: TResultType, dialect: {
85
93
  sync: SQLiteSyncDialect;
86
94
  async: SQLiteAsyncDialect;
87
- }[TResultType], session: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>, schema: {
95
+ }[TResultType], session: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>, relations: AnyRelations | undefined, schema: {
88
96
  fullSchema: Record<string, unknown>;
89
97
  schema: TSchema;
90
98
  tableNamesMap: Record<string, string>;
@@ -64,6 +64,9 @@ class SQLiteSession {
64
64
  prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode) {
65
65
  return this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);
66
66
  }
67
+ prepareOneTimeRelationalQuery(query, fields, executeMethod, customResultMapper) {
68
+ return this.prepareRelationalQuery(query, fields, executeMethod, customResultMapper);
69
+ }
67
70
  run(query) {
68
71
  const staticQuery = this.dialect.sqlToQuery(query);
69
72
  try {
@@ -103,8 +106,9 @@ class SQLiteSession {
103
106
  }
104
107
  }
105
108
  class SQLiteTransaction extends BaseSQLiteDatabase {
106
- constructor(resultType, dialect, session, schema, nestedIndex = 0) {
107
- super(resultType, dialect, session, schema);
109
+ constructor(resultType, dialect, session, relations, schema, nestedIndex = 0) {
110
+ super(resultType, dialect, session, relations, schema);
111
+ this.relations = relations;
108
112
  this.schema = schema;
109
113
  this.nestedIndex = nestedIndex;
110
114
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\n// import { QueryPromise } from '../index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\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 = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\tabstract prepareRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareRelationalQuery(query, fields, executeMethod, customResultMapper);\n\t}\n\n\tabstract transaction<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\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType 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> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TTablesConfig, TSchema>,\n\t\tprotected relations: AnyRelations | undefined,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, relations, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var driver_exports = {};
20
30
  __export(driver_exports, {
@@ -22,9 +32,9 @@ __export(driver_exports, {
22
32
  drizzle: () => drizzle
23
33
  });
24
34
  module.exports = __toCommonJS(driver_exports);
35
+ var V1 = __toESM(require("../_relations.cjs"), 1);
25
36
  var import_entity = require("../entity.cjs");
26
37
  var import_logger = require("../logger.cjs");
27
- var import_relations = require("../relations.cjs");
28
38
  var import_db = require("../sqlite-core/db.cjs");
29
39
  var import_dialect = require("../sqlite-core/dialect.cjs");
30
40
  var import_session = require("./session.cjs");
@@ -55,9 +65,9 @@ function drizzle(callback, batchCallback, config) {
55
65
  }
56
66
  let schema;
57
67
  if (_config.schema) {
58
- const tablesConfig = (0, import_relations.extractTablesRelationalConfig)(
68
+ const tablesConfig = V1.extractTablesRelationalConfig(
59
69
  _config.schema,
60
- import_relations.createTableRelationsHelpers
70
+ V1.createTableRelationsHelpers
61
71
  );
62
72
  schema = {
63
73
  fullSchema: _config.schema,
@@ -65,8 +75,15 @@ function drizzle(callback, batchCallback, config) {
65
75
  tableNamesMap: tablesConfig.tableNamesMap
66
76
  };
67
77
  }
68
- const session = new import_session.SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger });
69
- return new SqliteRemoteDatabase("async", dialect, session, schema);
78
+ const relations = config?.relations;
79
+ const session = new import_session.SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, { logger });
80
+ return new SqliteRemoteDatabase(
81
+ "async",
82
+ dialect,
83
+ session,
84
+ relations,
85
+ schema
86
+ );
70
87
  }
71
88
  // Annotate the CommonJS export names for ESM import in node:
72
89
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema>,\n\tconfig?: DrizzleConfig<TSchema>,\n): SqliteRemoteDatabase<TSchema> {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config?.casing });\n\tlet logger;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t}\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger });\n\treturn new SqliteRemoteDatabase('async', dialect, session, schema) as SqliteRemoteDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,oBAA8B;AAC9B,uBAA2E;AAE3E,gBAAmC;AACnC,qBAAmC;AAEnC,qBAAoC;AAM7B,MAAM,6BAEH,6BAAyD;AAAA,EAClE,QAA0B,wBAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAyBO,SAAS,QACf,UACA,eACA,QACgC;AAChC,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACjE,MAAI;AACJ,MAAI;AACJ,MAAI,UAAkC,CAAC;AAEvC,MAAI,eAAe;AAClB,QAAI,OAAO,kBAAkB,YAAY;AACxC,uBAAiB;AACjB,gBAAU,UAAU,CAAC;AAAA,IACtB,OAAO;AACN,uBAAiB;AACjB,gBAAU;AAAA,IACX;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC5B,eAAS,IAAI,4BAAc;AAAA,IAC5B,WAAW,QAAQ,WAAW,OAAO;AACpC,eAAS,QAAQ;AAAA,IAClB;AAAA,EACD;AAEA,MAAI;AACJ,MAAI,QAAQ,QAAQ;AACnB,UAAM,mBAAe;AAAA,MACpB,QAAQ;AAAA,MACR;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,QAAQ;AAAA,MACpB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,mCAAoB,UAAU,SAAS,QAAQ,gBAAgB,EAAE,OAAO,CAAC;AAC7F,SAAO,IAAI,qBAAqB,SAAS,SAAS,SAAS,MAAM;AAClE;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tExtractTablesWithRelations<TRelations>,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema, TRelations>,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config?.casing });\n\tlet logger;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema, TRelations> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema, TRelations>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t}\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config?.relations;\n\tconst session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, { logger });\n\treturn new SqliteRemoteDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SqliteRemoteDatabase<TSchema, TRelations>['session'],\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as SqliteRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AAEpB,oBAA2B;AAC3B,oBAA8B;AAE9B,gBAAmC;AACnC,qBAAmC;AAEnC,qBAAoC;AAM7B,MAAM,6BAGH,6BAAqE;AAAA,EAC9E,QAA0B,wBAAU,IAAY;AAAA,EAUhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AA+BO,SAAS,QAIf,UACA,eACA,QAC4C;AAC5C,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACjE,MAAI;AACJ,MAAI;AACJ,MAAI,UAA8C,CAAC;AAEnD,MAAI,eAAe;AAClB,QAAI,OAAO,kBAAkB,YAAY;AACxC,uBAAiB;AACjB,gBAAU,UAAU,CAAC;AAAA,IACtB,OAAO;AACN,uBAAiB;AACjB,gBAAU;AAAA,IACX;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC5B,eAAS,IAAI,4BAAc;AAAA,IAC5B,WAAW,QAAQ,WAAW,OAAO;AACpC,eAAS,QAAQ;AAAA,IAClB;AAAA,EACD;AAEA,MAAI;AACJ,MAAI,QAAQ,QAAQ;AACnB,UAAM,eAAe,GAAG;AAAA,MACvB,QAAQ;AAAA,MACR,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,QAAQ;AAAA,MACpB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,QAAQ;AAC1B,QAAM,UAAU,IAAI,mCAAoB,UAAU,SAAS,WAAW,QAAQ,gBAAgB,EAAE,OAAO,CAAC;AACxG,SAAO,IAAI;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAID;","names":[]}
@@ -1,11 +1,12 @@
1
1
  import type { BatchItem, BatchResponse } from "../batch.cjs";
2
2
  import { entityKind } from "../entity.cjs";
3
+ import type { AnyRelations, EmptyRelations } from "../relations.cjs";
3
4
  import { BaseSQLiteDatabase } from "../sqlite-core/db.cjs";
4
5
  import type { DrizzleConfig } from "../utils.cjs";
5
6
  export interface SqliteRemoteResult<T = unknown> {
6
7
  rows?: T[];
7
8
  }
8
- export declare class SqliteRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema> {
9
+ export declare class SqliteRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {
9
10
  static readonly [entityKind]: string;
10
11
  batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
11
12
  }
@@ -20,5 +21,5 @@ export type AsyncBatchRemoteCallback = (batch: {
20
21
  rows: any[];
21
22
  }[]>;
22
23
  export type RemoteCallback = AsyncRemoteCallback;
23
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(callback: RemoteCallback, config?: DrizzleConfig<TSchema>): SqliteRemoteDatabase<TSchema>;
24
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(callback: RemoteCallback, batchCallback?: AsyncBatchRemoteCallback, config?: DrizzleConfig<TSchema>): SqliteRemoteDatabase<TSchema>;
24
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(callback: RemoteCallback, config?: DrizzleConfig<TSchema, TRelations>): SqliteRemoteDatabase<TSchema>;
25
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(callback: RemoteCallback, batchCallback?: AsyncBatchRemoteCallback, config?: DrizzleConfig<TSchema, TRelations>): SqliteRemoteDatabase<TSchema>;
@@ -1,11 +1,12 @@
1
1
  import type { BatchItem, BatchResponse } from "../batch.js";
2
2
  import { entityKind } from "../entity.js";
3
+ import type { AnyRelations, EmptyRelations } from "../relations.js";
3
4
  import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
4
5
  import type { DrizzleConfig } from "../utils.js";
5
6
  export interface SqliteRemoteResult<T = unknown> {
6
7
  rows?: T[];
7
8
  }
8
- export declare class SqliteRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema> {
9
+ export declare class SqliteRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {
9
10
  static readonly [entityKind]: string;
10
11
  batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
11
12
  }
@@ -20,5 +21,5 @@ export type AsyncBatchRemoteCallback = (batch: {
20
21
  rows: any[];
21
22
  }[]>;
22
23
  export type RemoteCallback = AsyncRemoteCallback;
23
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(callback: RemoteCallback, config?: DrizzleConfig<TSchema>): SqliteRemoteDatabase<TSchema>;
24
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(callback: RemoteCallback, batchCallback?: AsyncBatchRemoteCallback, config?: DrizzleConfig<TSchema>): SqliteRemoteDatabase<TSchema>;
24
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(callback: RemoteCallback, config?: DrizzleConfig<TSchema, TRelations>): SqliteRemoteDatabase<TSchema>;
25
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(callback: RemoteCallback, batchCallback?: AsyncBatchRemoteCallback, config?: DrizzleConfig<TSchema, TRelations>): SqliteRemoteDatabase<TSchema>;
@@ -1,6 +1,6 @@
1
+ import * as V1 from "../_relations.js";
1
2
  import { entityKind } from "../entity.js";
2
3
  import { DefaultLogger } from "../logger.js";
3
- import { createTableRelationsHelpers, extractTablesRelationalConfig } from "../relations.js";
4
4
  import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
5
5
  import { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
6
6
  import { SQLiteRemoteSession } from "./session.js";
@@ -31,9 +31,9 @@ function drizzle(callback, batchCallback, config) {
31
31
  }
32
32
  let schema;
33
33
  if (_config.schema) {
34
- const tablesConfig = extractTablesRelationalConfig(
34
+ const tablesConfig = V1.extractTablesRelationalConfig(
35
35
  _config.schema,
36
- createTableRelationsHelpers
36
+ V1.createTableRelationsHelpers
37
37
  );
38
38
  schema = {
39
39
  fullSchema: _config.schema,
@@ -41,8 +41,15 @@ function drizzle(callback, batchCallback, config) {
41
41
  tableNamesMap: tablesConfig.tableNamesMap
42
42
  };
43
43
  }
44
- const session = new SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger });
45
- return new SqliteRemoteDatabase("async", dialect, session, schema);
44
+ const relations = config?.relations;
45
+ const session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, { logger });
46
+ return new SqliteRemoteDatabase(
47
+ "async",
48
+ dialect,
49
+ session,
50
+ relations,
51
+ schema
52
+ );
46
53
  }
47
54
  export {
48
55
  SqliteRemoteDatabase,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema>,\n\tconfig?: DrizzleConfig<TSchema>,\n): SqliteRemoteDatabase<TSchema> {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config?.casing });\n\tlet logger;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t}\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger });\n\treturn new SqliteRemoteDatabase('async', dialect, session, schema) as SqliteRemoteDatabase<TSchema>;\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B,qCAAqC;AAE3E,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,2BAA2B;AAM7B,MAAM,6BAEH,mBAAyD;AAAA,EAClE,QAA0B,UAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAyBO,SAAS,QACf,UACA,eACA,QACgC;AAChC,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACjE,MAAI;AACJ,MAAI;AACJ,MAAI,UAAkC,CAAC;AAEvC,MAAI,eAAe;AAClB,QAAI,OAAO,kBAAkB,YAAY;AACxC,uBAAiB;AACjB,gBAAU,UAAU,CAAC;AAAA,IACtB,OAAO;AACN,uBAAiB;AACjB,gBAAU;AAAA,IACX;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC5B,eAAS,IAAI,cAAc;AAAA,IAC5B,WAAW,QAAQ,WAAW,OAAO;AACpC,eAAS,QAAQ;AAAA,IAClB;AAAA,EACD;AAEA,MAAI;AACJ,MAAI,QAAQ,QAAQ;AACnB,UAAM,eAAe;AAAA,MACpB,QAAQ;AAAA,MACR;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,QAAQ;AAAA,MACpB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,oBAAoB,UAAU,SAAS,QAAQ,gBAAgB,EAAE,OAAO,CAAC;AAC7F,SAAO,IAAI,qBAAqB,SAAS,SAAS,SAAS,MAAM;AAClE;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tExtractTablesWithRelations<TRelations>,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema, TRelations>,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config?.casing });\n\tlet logger;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema, TRelations> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema, TRelations>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t}\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config?.relations;\n\tconst session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, { logger });\n\treturn new SqliteRemoteDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SqliteRemoteDatabase<TSchema, TRelations>['session'],\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as SqliteRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAEpB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,2BAA2B;AAM7B,MAAM,6BAGH,mBAAqE;AAAA,EAC9E,QAA0B,UAAU,IAAY;AAAA,EAUhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AA+BO,SAAS,QAIf,UACA,eACA,QAC4C;AAC5C,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACjE,MAAI;AACJ,MAAI;AACJ,MAAI,UAA8C,CAAC;AAEnD,MAAI,eAAe;AAClB,QAAI,OAAO,kBAAkB,YAAY;AACxC,uBAAiB;AACjB,gBAAU,UAAU,CAAC;AAAA,IACtB,OAAO;AACN,uBAAiB;AACjB,gBAAU;AAAA,IACX;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC5B,eAAS,IAAI,cAAc;AAAA,IAC5B,WAAW,QAAQ,WAAW,OAAO;AACpC,eAAS,QAAQ;AAAA,IAClB;AAAA,EACD;AAEA,MAAI;AACJ,MAAI,QAAQ,QAAQ;AACnB,UAAM,eAAe,GAAG;AAAA,MACvB,QAAQ;AAAA,MACR,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,QAAQ;AAAA,MACpB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,QAAQ;AAC1B,QAAM,UAAU,IAAI,oBAAoB,UAAU,SAAS,WAAW,QAAQ,gBAAgB,EAAE,OAAO,CAAC;AACxG,SAAO,IAAI;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAID;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: SqliteRemoteDatabase<TSchema>,\n\tcallback: ProxyMigrator,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,iBAAoB;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: SqliteRemoteDatabase<TSchema, TRelations>,\n\tcallback: ProxyMigrator,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAEnC,iBAAoB;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import type { MigrationConfig } from "../migrator.cjs";
2
+ import type { AnyRelations } from "../relations.cjs";
2
3
  import type { SqliteRemoteDatabase } from "./driver.cjs";
3
4
  export type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;
4
- export declare function migrate<TSchema extends Record<string, unknown>>(db: SqliteRemoteDatabase<TSchema>, callback: ProxyMigrator, config: MigrationConfig): Promise<void>;
5
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: SqliteRemoteDatabase<TSchema, TRelations>, callback: ProxyMigrator, config: MigrationConfig): Promise<void>;
@@ -1,4 +1,5 @@
1
1
  import type { MigrationConfig } from "../migrator.js";
2
+ import type { AnyRelations } from "../relations.js";
2
3
  import type { SqliteRemoteDatabase } from "./driver.js";
3
4
  export type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;
4
- export declare function migrate<TSchema extends Record<string, unknown>>(db: SqliteRemoteDatabase<TSchema>, callback: ProxyMigrator, config: MigrationConfig): Promise<void>;
5
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: SqliteRemoteDatabase<TSchema, TRelations>, callback: ProxyMigrator, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: SqliteRemoteDatabase<TSchema>,\n\tcallback: ProxyMigrator,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,WAAW;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: SqliteRemoteDatabase<TSchema, TRelations>,\n\tcallback: ProxyMigrator,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAEnC,SAAS,WAAW;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
@@ -30,9 +30,10 @@ var import_sqlite_core = require("../sqlite-core/index.cjs");
30
30
  var import_session = require("../sqlite-core/session.cjs");
31
31
  var import_utils = require("../utils.cjs");
32
32
  class SQLiteRemoteSession extends import_session.SQLiteSession {
33
- constructor(client, dialect, schema, batchCLient, options = {}) {
33
+ constructor(client, dialect, relations, schema, batchCLient, options = {}) {
34
34
  super(dialect);
35
35
  this.client = client;
36
+ this.relations = relations;
36
37
  this.schema = schema;
37
38
  this.batchCLient = batchCLient;
38
39
  this.logger = options.logger ?? new import_logger.NoopLogger();
@@ -50,6 +51,18 @@ class SQLiteRemoteSession extends import_session.SQLiteSession {
50
51
  customResultMapper
51
52
  );
52
53
  }
54
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
55
+ return new RemotePreparedQuery(
56
+ this.client,
57
+ query,
58
+ this.logger,
59
+ fields,
60
+ executeMethod,
61
+ false,
62
+ customResultMapper,
63
+ true
64
+ );
65
+ }
53
66
  async batch(queries) {
54
67
  const preparedQueries = [];
55
68
  const builtQueries = [];
@@ -63,7 +76,7 @@ class SQLiteRemoteSession extends import_session.SQLiteSession {
63
76
  return batchResults.map((result, i) => preparedQueries[i].mapResult(result, true));
64
77
  }
65
78
  async transaction(transaction, config) {
66
- const tx = new SQLiteProxyTransaction("async", this.dialect, this, this.schema);
79
+ const tx = new SQLiteProxyTransaction("async", this.dialect, this, this.relations, this.schema);
67
80
  await this.run(import_sql.sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
68
81
  try {
69
82
  const result = await transaction(tx);
@@ -88,7 +101,14 @@ class SQLiteProxyTransaction extends import_sqlite_core.SQLiteTransaction {
88
101
  static [import_entity.entityKind] = "SQLiteProxyTransaction";
89
102
  async transaction(transaction) {
90
103
  const savepointName = `sp${this.nestedIndex}`;
91
- const tx = new SQLiteProxyTransaction("async", this.dialect, this.session, this.schema, this.nestedIndex + 1);
104
+ const tx = new SQLiteProxyTransaction(
105
+ "async",
106
+ this.dialect,
107
+ this.session,
108
+ this.relations,
109
+ this.schema,
110
+ this.nestedIndex + 1
111
+ );
92
112
  await this.session.run(import_sql.sql.raw(`savepoint ${savepointName}`));
93
113
  try {
94
114
  const result = await transaction(tx);
@@ -101,13 +121,14 @@ class SQLiteProxyTransaction extends import_sqlite_core.SQLiteTransaction {
101
121
  }
102
122
  }
103
123
  class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
104
- constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
124
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
105
125
  super("async", executeMethod, query);
106
126
  this.client = client;
107
127
  this.logger = logger;
108
128
  this.fields = fields;
109
129
  this._isResponseInArrayMode = _isResponseInArrayMode;
110
130
  this.customResultMapper = customResultMapper;
131
+ this.isRqbV2Query = isRqbV2Query;
111
132
  this.customResultMapper = customResultMapper;
112
133
  this.method = executeMethod;
113
134
  }
@@ -140,6 +161,8 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
140
161
  });
141
162
  }
142
163
  async all(placeholderValues) {
164
+ if (this.isRqbV2Query)
165
+ return this.allRqbV2(placeholderValues);
143
166
  const { query, logger, client } = this;
144
167
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
145
168
  logger.logQuery(query.sql, params);
@@ -147,12 +170,32 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
147
170
  return this.mapAllResult(rows);
148
171
  }
149
172
  async get(placeholderValues) {
173
+ if (this.isRqbV2Query)
174
+ return this.getRqbV2(placeholderValues);
150
175
  const { query, logger, client } = this;
151
176
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
152
177
  logger.logQuery(query.sql, params);
153
178
  const clientResult = await client(query.sql, params, "get");
154
179
  return this.mapGetResult(clientResult.rows);
155
180
  }
181
+ async allRqbV2(placeholderValues) {
182
+ const { query, logger, client, customResultMapper } = this;
183
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
184
+ logger.logQuery(query.sql, params);
185
+ const { rows } = await client(query.sql, params, "all");
186
+ return customResultMapper(rows);
187
+ }
188
+ async getRqbV2(placeholderValues) {
189
+ const { query, logger, client, customResultMapper } = this;
190
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
191
+ logger.logQuery(query.sql, params);
192
+ const clientResult = await client(query.sql, params, "get");
193
+ const row = clientResult.rows[0];
194
+ if (!row) {
195
+ return void 0;
196
+ }
197
+ return customResultMapper([row]);
198
+ }
156
199
  mapGetResult(rows, isFromBatch) {
157
200
  if (isFromBatch) {
158
201
  rows = rows.rows;