drizzle-orm 0.38.4 → 0.39.0-b06bbcd

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 (609) 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/durable-sqlite/driver.cjs +16 -5
  76. package/durable-sqlite/driver.cjs.map +1 -1
  77. package/durable-sqlite/driver.d.cts +3 -2
  78. package/durable-sqlite/driver.d.ts +3 -2
  79. package/durable-sqlite/driver.js +6 -8
  80. package/durable-sqlite/driver.js.map +1 -1
  81. package/durable-sqlite/migrator.cjs.map +1 -1
  82. package/durable-sqlite/migrator.d.cts +2 -1
  83. package/durable-sqlite/migrator.d.ts +2 -1
  84. package/durable-sqlite/migrator.js.map +1 -1
  85. package/durable-sqlite/session.cjs +46 -4
  86. package/durable-sqlite/session.cjs.map +1 -1
  87. package/durable-sqlite/session.d.cts +14 -8
  88. package/durable-sqlite/session.d.ts +14 -8
  89. package/durable-sqlite/session.js +46 -4
  90. package/durable-sqlite/session.js.map +1 -1
  91. package/expo-sqlite/driver.cjs +22 -5
  92. package/expo-sqlite/driver.cjs.map +1 -1
  93. package/expo-sqlite/driver.d.cts +3 -2
  94. package/expo-sqlite/driver.d.ts +3 -2
  95. package/expo-sqlite/driver.js +12 -8
  96. package/expo-sqlite/driver.js.map +1 -1
  97. package/expo-sqlite/migrator.cjs.map +1 -1
  98. package/expo-sqlite/migrator.d.cts +3 -2
  99. package/expo-sqlite/migrator.d.ts +3 -2
  100. package/expo-sqlite/migrator.js.map +1 -1
  101. package/expo-sqlite/query.cjs +13 -2
  102. package/expo-sqlite/query.cjs.map +1 -1
  103. package/expo-sqlite/query.d.cts +2 -1
  104. package/expo-sqlite/query.d.ts +2 -1
  105. package/expo-sqlite/query.js +3 -2
  106. package/expo-sqlite/query.js.map +1 -1
  107. package/expo-sqlite/session.cjs +47 -4
  108. package/expo-sqlite/session.cjs.map +1 -1
  109. package/expo-sqlite/session.d.cts +14 -8
  110. package/expo-sqlite/session.d.ts +14 -8
  111. package/expo-sqlite/session.js +47 -4
  112. package/expo-sqlite/session.js.map +1 -1
  113. package/libsql/driver-core.cjs +22 -5
  114. package/libsql/driver-core.cjs.map +1 -1
  115. package/libsql/driver-core.d.cts +2 -1
  116. package/libsql/driver-core.d.ts +2 -1
  117. package/libsql/driver-core.js +12 -8
  118. package/libsql/driver-core.js.map +1 -1
  119. package/libsql/driver.cjs.map +1 -1
  120. package/libsql/driver.d.cts +6 -5
  121. package/libsql/driver.d.ts +6 -5
  122. package/libsql/driver.js.map +1 -1
  123. package/libsql/http/index.cjs.map +1 -1
  124. package/libsql/http/index.d.cts +6 -5
  125. package/libsql/http/index.d.ts +6 -5
  126. package/libsql/http/index.js.map +1 -1
  127. package/libsql/migrator.cjs.map +1 -1
  128. package/libsql/migrator.d.cts +2 -1
  129. package/libsql/migrator.d.ts +2 -1
  130. package/libsql/migrator.js.map +1 -1
  131. package/libsql/node/index.cjs.map +1 -1
  132. package/libsql/node/index.d.cts +6 -5
  133. package/libsql/node/index.d.ts +6 -5
  134. package/libsql/node/index.js.map +1 -1
  135. package/libsql/session.cjs +56 -4
  136. package/libsql/session.cjs.map +1 -1
  137. package/libsql/session.d.cts +15 -9
  138. package/libsql/session.d.ts +15 -9
  139. package/libsql/session.js +56 -4
  140. package/libsql/session.js.map +1 -1
  141. package/libsql/sqlite3/index.cjs.map +1 -1
  142. package/libsql/sqlite3/index.d.cts +6 -5
  143. package/libsql/sqlite3/index.d.ts +6 -5
  144. package/libsql/sqlite3/index.js.map +1 -1
  145. package/libsql/wasm/index.cjs.map +1 -1
  146. package/libsql/wasm/index.d.cts +6 -5
  147. package/libsql/wasm/index.d.ts +6 -5
  148. package/libsql/wasm/index.js.map +1 -1
  149. package/libsql/web/index.cjs.map +1 -1
  150. package/libsql/web/index.d.cts +6 -5
  151. package/libsql/web/index.d.ts +6 -5
  152. package/libsql/web/index.js.map +1 -1
  153. package/libsql/ws/index.cjs.map +1 -1
  154. package/libsql/ws/index.d.cts +6 -5
  155. package/libsql/ws/index.d.ts +6 -5
  156. package/libsql/ws/index.js.map +1 -1
  157. package/mysql-core/db.cjs +29 -8
  158. package/mysql-core/db.cjs.map +1 -1
  159. package/mysql-core/db.d.cts +15 -8
  160. package/mysql-core/db.d.ts +15 -8
  161. package/mysql-core/db.js +28 -7
  162. package/mysql-core/db.js.map +1 -1
  163. package/mysql-core/dialect.cjs +194 -15
  164. package/mysql-core/dialect.cjs.map +1 -1
  165. package/mysql-core/dialect.d.cts +33 -13
  166. package/mysql-core/dialect.d.ts +33 -13
  167. package/mysql-core/dialect.js +191 -21
  168. package/mysql-core/dialect.js.map +1 -1
  169. package/mysql-core/query-builders/_query.cjs +149 -0
  170. package/mysql-core/query-builders/_query.cjs.map +1 -0
  171. package/mysql-core/query-builders/_query.d.cts +44 -0
  172. package/mysql-core/query-builders/_query.d.ts +44 -0
  173. package/mysql-core/query-builders/_query.js +114 -0
  174. package/mysql-core/query-builders/_query.js.map +1 -0
  175. package/mysql-core/query-builders/count.cjs.map +1 -1
  176. package/mysql-core/query-builders/count.d.cts +1 -1
  177. package/mysql-core/query-builders/count.d.ts +1 -1
  178. package/mysql-core/query-builders/count.js.map +1 -1
  179. package/mysql-core/query-builders/query.cjs +18 -31
  180. package/mysql-core/query-builders/query.cjs.map +1 -1
  181. package/mysql-core/query-builders/query.d.cts +8 -10
  182. package/mysql-core/query-builders/query.d.ts +8 -10
  183. package/mysql-core/query-builders/query.js +18 -31
  184. package/mysql-core/query-builders/query.js.map +1 -1
  185. package/mysql-core/session.cjs +3 -2
  186. package/mysql-core/session.cjs.map +1 -1
  187. package/mysql-core/session.d.cts +10 -7
  188. package/mysql-core/session.d.ts +10 -7
  189. package/mysql-core/session.js +3 -2
  190. package/mysql-core/session.js.map +1 -1
  191. package/mysql-proxy/driver.cjs +22 -5
  192. package/mysql-proxy/driver.cjs.map +1 -1
  193. package/mysql-proxy/driver.d.cts +3 -2
  194. package/mysql-proxy/driver.d.ts +3 -2
  195. package/mysql-proxy/driver.js +12 -8
  196. package/mysql-proxy/driver.js.map +1 -1
  197. package/mysql-proxy/migrator.cjs.map +1 -1
  198. package/mysql-proxy/migrator.d.cts +2 -1
  199. package/mysql-proxy/migrator.d.ts +2 -1
  200. package/mysql-proxy/migrator.js.map +1 -1
  201. package/mysql-proxy/session.cjs +27 -2
  202. package/mysql-proxy/session.cjs.map +1 -1
  203. package/mysql-proxy/session.d.cts +13 -8
  204. package/mysql-proxy/session.d.ts +13 -8
  205. package/mysql-proxy/session.js +27 -2
  206. package/mysql-proxy/session.js.map +1 -1
  207. package/mysql2/driver.cjs +24 -7
  208. package/mysql2/driver.cjs.map +1 -1
  209. package/mysql2/driver.d.cts +10 -9
  210. package/mysql2/driver.d.ts +10 -9
  211. package/mysql2/driver.js +14 -10
  212. package/mysql2/driver.js.map +1 -1
  213. package/mysql2/migrator.cjs.map +1 -1
  214. package/mysql2/migrator.d.cts +2 -1
  215. package/mysql2/migrator.d.ts +2 -1
  216. package/mysql2/migrator.js.map +1 -1
  217. package/mysql2/session.cjs +30 -2
  218. package/mysql2/session.cjs.map +1 -1
  219. package/mysql2/session.d.cts +13 -8
  220. package/mysql2/session.d.ts +13 -8
  221. package/mysql2/session.js +30 -2
  222. package/mysql2/session.js.map +1 -1
  223. package/neon-http/driver.cjs +21 -7
  224. package/neon-http/driver.cjs.map +1 -1
  225. package/neon-http/driver.d.cts +10 -9
  226. package/neon-http/driver.d.ts +10 -9
  227. package/neon-http/driver.js +11 -7
  228. package/neon-http/driver.js.map +1 -1
  229. package/neon-http/migrator.cjs.map +1 -1
  230. package/neon-http/migrator.d.cts +2 -1
  231. package/neon-http/migrator.d.ts +2 -1
  232. package/neon-http/migrator.js.map +1 -1
  233. package/neon-http/session.cjs +32 -2
  234. package/neon-http/session.cjs.map +1 -1
  235. package/neon-http/session.d.cts +13 -8
  236. package/neon-http/session.d.ts +13 -8
  237. package/neon-http/session.js +32 -2
  238. package/neon-http/session.js.map +1 -1
  239. package/neon-serverless/driver.cjs +18 -7
  240. package/neon-serverless/driver.cjs.map +1 -1
  241. package/neon-serverless/driver.d.cts +9 -8
  242. package/neon-serverless/driver.d.ts +9 -8
  243. package/neon-serverless/driver.js +8 -10
  244. package/neon-serverless/driver.js.map +1 -1
  245. package/neon-serverless/migrator.cjs.map +1 -1
  246. package/neon-serverless/migrator.d.cts +2 -1
  247. package/neon-serverless/migrator.d.ts +2 -1
  248. package/neon-serverless/migrator.js.map +1 -1
  249. package/neon-serverless/session.cjs +40 -5
  250. package/neon-serverless/session.cjs.map +1 -1
  251. package/neon-serverless/session.d.cts +13 -8
  252. package/neon-serverless/session.d.ts +13 -8
  253. package/neon-serverless/session.js +40 -5
  254. package/neon-serverless/session.js.map +1 -1
  255. package/node-postgres/driver.cjs +13 -7
  256. package/node-postgres/driver.cjs.map +1 -1
  257. package/node-postgres/driver.d.cts +9 -8
  258. package/node-postgres/driver.d.ts +9 -8
  259. package/node-postgres/driver.js +13 -10
  260. package/node-postgres/driver.js.map +1 -1
  261. package/node-postgres/migrator.cjs.map +1 -1
  262. package/node-postgres/migrator.d.cts +2 -1
  263. package/node-postgres/migrator.d.ts +2 -1
  264. package/node-postgres/migrator.js.map +1 -1
  265. package/node-postgres/session.cjs +45 -4
  266. package/node-postgres/session.cjs.map +1 -1
  267. package/node-postgres/session.d.cts +13 -8
  268. package/node-postgres/session.d.ts +13 -8
  269. package/node-postgres/session.js +45 -4
  270. package/node-postgres/session.js.map +1 -1
  271. package/op-sqlite/driver.cjs +22 -5
  272. package/op-sqlite/driver.cjs.map +1 -1
  273. package/op-sqlite/driver.d.cts +3 -2
  274. package/op-sqlite/driver.d.ts +3 -2
  275. package/op-sqlite/driver.js +12 -8
  276. package/op-sqlite/driver.js.map +1 -1
  277. package/op-sqlite/migrator.cjs.map +1 -1
  278. package/op-sqlite/migrator.d.cts +3 -2
  279. package/op-sqlite/migrator.d.ts +3 -2
  280. package/op-sqlite/migrator.js.map +1 -1
  281. package/op-sqlite/session.cjs +47 -4
  282. package/op-sqlite/session.cjs.map +1 -1
  283. package/op-sqlite/session.d.cts +14 -8
  284. package/op-sqlite/session.d.ts +14 -8
  285. package/op-sqlite/session.js +47 -4
  286. package/op-sqlite/session.js.map +1 -1
  287. package/package.json +51 -3
  288. package/pg-core/db.cjs +31 -7
  289. package/pg-core/db.cjs.map +1 -1
  290. package/pg-core/db.d.cts +16 -9
  291. package/pg-core/db.d.ts +16 -9
  292. package/pg-core/db.js +30 -6
  293. package/pg-core/db.js.map +1 -1
  294. package/pg-core/dialect.cjs +161 -488
  295. package/pg-core/dialect.cjs.map +1 -1
  296. package/pg-core/dialect.d.cts +24 -7
  297. package/pg-core/dialect.d.ts +24 -7
  298. package/pg-core/dialect.js +158 -494
  299. package/pg-core/dialect.js.map +1 -1
  300. package/pg-core/query-builders/_query.cjs +155 -0
  301. package/pg-core/query-builders/_query.cjs.map +1 -0
  302. package/pg-core/query-builders/_query.d.cts +47 -0
  303. package/pg-core/query-builders/_query.d.ts +47 -0
  304. package/pg-core/query-builders/_query.js +120 -0
  305. package/pg-core/query-builders/_query.js.map +1 -0
  306. package/pg-core/query-builders/count.cjs.map +1 -1
  307. package/pg-core/query-builders/count.d.cts +1 -1
  308. package/pg-core/query-builders/count.d.ts +1 -1
  309. package/pg-core/query-builders/count.js.map +1 -1
  310. package/pg-core/query-builders/query.cjs +15 -18
  311. package/pg-core/query-builders/query.cjs.map +1 -1
  312. package/pg-core/query-builders/query.d.cts +6 -6
  313. package/pg-core/query-builders/query.d.ts +6 -6
  314. package/pg-core/query-builders/query.js +15 -18
  315. package/pg-core/query-builders/query.js.map +1 -1
  316. package/pg-core/session.cjs +3 -2
  317. package/pg-core/session.cjs.map +1 -1
  318. package/pg-core/session.d.cts +9 -6
  319. package/pg-core/session.d.ts +9 -6
  320. package/pg-core/session.js +3 -2
  321. package/pg-core/session.js.map +1 -1
  322. package/pg-proxy/driver.cjs +21 -5
  323. package/pg-proxy/driver.cjs.map +1 -1
  324. package/pg-proxy/driver.d.cts +3 -2
  325. package/pg-proxy/driver.d.ts +3 -2
  326. package/pg-proxy/driver.js +11 -8
  327. package/pg-proxy/driver.js.map +1 -1
  328. package/pg-proxy/migrator.cjs.map +1 -1
  329. package/pg-proxy/migrator.d.cts +2 -1
  330. package/pg-proxy/migrator.d.ts +2 -1
  331. package/pg-proxy/migrator.js.map +1 -1
  332. package/pg-proxy/session.cjs +37 -2
  333. package/pg-proxy/session.cjs.map +1 -1
  334. package/pg-proxy/session.d.cts +13 -8
  335. package/pg-proxy/session.d.ts +13 -8
  336. package/pg-proxy/session.js +37 -2
  337. package/pg-proxy/session.js.map +1 -1
  338. package/pglite/driver.cjs +23 -7
  339. package/pglite/driver.cjs.map +1 -1
  340. package/pglite/driver.d.cts +9 -8
  341. package/pglite/driver.d.ts +9 -8
  342. package/pglite/driver.js +13 -10
  343. package/pglite/driver.js.map +1 -1
  344. package/pglite/migrator.cjs.map +1 -1
  345. package/pglite/migrator.d.cts +2 -1
  346. package/pglite/migrator.d.ts +2 -1
  347. package/pglite/migrator.js.map +1 -1
  348. package/pglite/session.cjs +34 -3
  349. package/pglite/session.cjs.map +1 -1
  350. package/pglite/session.d.cts +13 -8
  351. package/pglite/session.d.ts +13 -8
  352. package/pglite/session.js +34 -3
  353. package/pglite/session.js.map +1 -1
  354. package/planetscale-serverless/driver.cjs +22 -5
  355. package/planetscale-serverless/driver.cjs.map +1 -1
  356. package/planetscale-serverless/driver.d.cts +7 -6
  357. package/planetscale-serverless/driver.d.ts +7 -6
  358. package/planetscale-serverless/driver.js +12 -8
  359. package/planetscale-serverless/driver.js.map +1 -1
  360. package/planetscale-serverless/migrator.cjs.map +1 -1
  361. package/planetscale-serverless/migrator.d.cts +2 -1
  362. package/planetscale-serverless/migrator.d.ts +2 -1
  363. package/planetscale-serverless/migrator.js.map +1 -1
  364. package/planetscale-serverless/session.cjs +45 -5
  365. package/planetscale-serverless/session.cjs.map +1 -1
  366. package/planetscale-serverless/session.d.cts +14 -9
  367. package/planetscale-serverless/session.d.ts +14 -9
  368. package/planetscale-serverless/session.js +45 -5
  369. package/planetscale-serverless/session.js.map +1 -1
  370. package/postgres-js/driver.cjs +6 -5
  371. package/postgres-js/driver.cjs.map +1 -1
  372. package/postgres-js/driver.d.cts +7 -6
  373. package/postgres-js/driver.d.ts +7 -6
  374. package/postgres-js/driver.js +6 -8
  375. package/postgres-js/driver.js.map +1 -1
  376. package/postgres-js/migrator.cjs.map +1 -1
  377. package/postgres-js/migrator.d.cts +2 -1
  378. package/postgres-js/migrator.d.ts +2 -1
  379. package/postgres-js/migrator.js.map +1 -1
  380. package/postgres-js/session.cjs +51 -6
  381. package/postgres-js/session.cjs.map +1 -1
  382. package/postgres-js/session.d.cts +15 -9
  383. package/postgres-js/session.d.ts +15 -9
  384. package/postgres-js/session.js +51 -6
  385. package/postgres-js/session.js.map +1 -1
  386. package/prisma/mysql/driver.cjs +1 -1
  387. package/prisma/mysql/driver.cjs.map +1 -1
  388. package/prisma/mysql/driver.js +1 -1
  389. package/prisma/mysql/driver.js.map +1 -1
  390. package/prisma/mysql/session.cjs +3 -0
  391. package/prisma/mysql/session.cjs.map +1 -1
  392. package/prisma/mysql/session.d.cts +3 -1
  393. package/prisma/mysql/session.d.ts +3 -1
  394. package/prisma/mysql/session.js +3 -0
  395. package/prisma/mysql/session.js.map +1 -1
  396. package/prisma/pg/driver.cjs +1 -1
  397. package/prisma/pg/driver.cjs.map +1 -1
  398. package/prisma/pg/driver.js +1 -1
  399. package/prisma/pg/driver.js.map +1 -1
  400. package/prisma/pg/session.cjs +3 -0
  401. package/prisma/pg/session.cjs.map +1 -1
  402. package/prisma/pg/session.d.cts +3 -1
  403. package/prisma/pg/session.d.ts +3 -1
  404. package/prisma/pg/session.js +3 -0
  405. package/prisma/pg/session.js.map +1 -1
  406. package/prisma/sqlite/driver.cjs +1 -1
  407. package/prisma/sqlite/driver.cjs.map +1 -1
  408. package/prisma/sqlite/driver.js +1 -1
  409. package/prisma/sqlite/driver.js.map +1 -1
  410. package/prisma/sqlite/session.cjs +3 -0
  411. package/prisma/sqlite/session.cjs.map +1 -1
  412. package/prisma/sqlite/session.d.cts +4 -2
  413. package/prisma/sqlite/session.d.ts +4 -2
  414. package/prisma/sqlite/session.js +3 -0
  415. package/prisma/sqlite/session.js.map +1 -1
  416. package/relations.cjs +595 -245
  417. package/relations.cjs.map +1 -1
  418. package/relations.d.cts +276 -131
  419. package/relations.d.ts +276 -131
  420. package/relations.js +589 -239
  421. package/relations.js.map +1 -1
  422. package/singlestore/driver.cjs +1 -1
  423. package/singlestore/driver.cjs.map +1 -1
  424. package/singlestore/driver.d.cts +1 -1
  425. package/singlestore/driver.d.ts +1 -1
  426. package/singlestore/driver.js +3 -3
  427. package/singlestore/driver.js.map +1 -1
  428. package/singlestore/session.cjs.map +1 -1
  429. package/singlestore/session.d.cts +4 -4
  430. package/singlestore/session.d.ts +4 -4
  431. package/singlestore/session.js.map +1 -1
  432. package/singlestore-core/db.cjs.map +1 -1
  433. package/singlestore-core/db.d.cts +3 -3
  434. package/singlestore-core/db.d.ts +3 -3
  435. package/singlestore-core/db.js.map +1 -1
  436. package/singlestore-core/dialect.cjs +16 -6
  437. package/singlestore-core/dialect.cjs.map +1 -1
  438. package/singlestore-core/dialect.d.cts +6 -6
  439. package/singlestore-core/dialect.d.ts +6 -6
  440. package/singlestore-core/dialect.js +6 -12
  441. package/singlestore-core/dialect.js.map +1 -1
  442. package/singlestore-core/query-builders/query.cjs +12 -2
  443. package/singlestore-core/query-builders/query.cjs.map +1 -1
  444. package/singlestore-core/query-builders/query.d.cts +6 -6
  445. package/singlestore-core/query-builders/query.d.ts +6 -6
  446. package/singlestore-core/query-builders/query.js +2 -4
  447. package/singlestore-core/query-builders/query.js.map +1 -1
  448. package/singlestore-core/session.cjs.map +1 -1
  449. package/singlestore-core/session.d.cts +5 -5
  450. package/singlestore-core/session.d.ts +5 -5
  451. package/singlestore-core/session.js.map +1 -1
  452. package/singlestore-proxy/driver.cjs +1 -1
  453. package/singlestore-proxy/driver.cjs.map +1 -1
  454. package/singlestore-proxy/driver.js +3 -3
  455. package/singlestore-proxy/driver.js.map +1 -1
  456. package/singlestore-proxy/session.cjs.map +1 -1
  457. package/singlestore-proxy/session.d.cts +4 -4
  458. package/singlestore-proxy/session.d.ts +4 -4
  459. package/singlestore-proxy/session.js.map +1 -1
  460. package/sql/sql.cjs +1 -1
  461. package/sql/sql.cjs.map +1 -1
  462. package/sql/sql.d.cts +8 -8
  463. package/sql/sql.d.ts +8 -8
  464. package/sql/sql.js +1 -1
  465. package/sql/sql.js.map +1 -1
  466. package/sql-js/driver.cjs +16 -5
  467. package/sql-js/driver.cjs.map +1 -1
  468. package/sql-js/driver.d.cts +3 -2
  469. package/sql-js/driver.d.ts +3 -2
  470. package/sql-js/driver.js +6 -8
  471. package/sql-js/driver.js.map +1 -1
  472. package/sql-js/migrator.cjs.map +1 -1
  473. package/sql-js/migrator.d.cts +2 -1
  474. package/sql-js/migrator.d.ts +2 -1
  475. package/sql-js/migrator.js.map +1 -1
  476. package/sql-js/session.cjs +76 -4
  477. package/sql-js/session.cjs.map +1 -1
  478. package/sql-js/session.d.cts +15 -8
  479. package/sql-js/session.d.ts +15 -8
  480. package/sql-js/session.js +76 -4
  481. package/sql-js/session.js.map +1 -1
  482. package/sqlite-core/db.cjs +38 -14
  483. package/sqlite-core/db.cjs.map +1 -1
  484. package/sqlite-core/db.d.cts +16 -8
  485. package/sqlite-core/db.d.ts +16 -8
  486. package/sqlite-core/db.js +37 -13
  487. package/sqlite-core/db.js.map +1 -1
  488. package/sqlite-core/dialect.cjs +183 -7
  489. package/sqlite-core/dialect.cjs.map +1 -1
  490. package/sqlite-core/dialect.d.cts +28 -9
  491. package/sqlite-core/dialect.d.ts +28 -9
  492. package/sqlite-core/dialect.js +180 -13
  493. package/sqlite-core/dialect.js.map +1 -1
  494. package/sqlite-core/query-builders/_query.cjs +187 -0
  495. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  496. package/sqlite-core/query-builders/_query.d.cts +55 -0
  497. package/sqlite-core/query-builders/_query.d.ts +55 -0
  498. package/sqlite-core/query-builders/_query.js +151 -0
  499. package/sqlite-core/query-builders/_query.js.map +1 -0
  500. package/sqlite-core/query-builders/count.cjs.map +1 -1
  501. package/sqlite-core/query-builders/count.d.cts +1 -1
  502. package/sqlite-core/query-builders/count.d.ts +1 -1
  503. package/sqlite-core/query-builders/count.js.map +1 -1
  504. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  505. package/sqlite-core/query-builders/delete.d.cts +1 -1
  506. package/sqlite-core/query-builders/delete.d.ts +1 -1
  507. package/sqlite-core/query-builders/delete.js.map +1 -1
  508. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  509. package/sqlite-core/query-builders/insert.d.cts +3 -3
  510. package/sqlite-core/query-builders/insert.d.ts +3 -3
  511. package/sqlite-core/query-builders/insert.js.map +1 -1
  512. package/sqlite-core/query-builders/query.cjs +53 -32
  513. package/sqlite-core/query-builders/query.cjs.map +1 -1
  514. package/sqlite-core/query-builders/query.d.cts +18 -17
  515. package/sqlite-core/query-builders/query.d.ts +18 -17
  516. package/sqlite-core/query-builders/query.js +53 -32
  517. package/sqlite-core/query-builders/query.js.map +1 -1
  518. package/sqlite-core/query-builders/select.cjs.map +1 -1
  519. package/sqlite-core/query-builders/select.d.cts +3 -3
  520. package/sqlite-core/query-builders/select.d.ts +3 -3
  521. package/sqlite-core/query-builders/select.js.map +1 -1
  522. package/sqlite-core/query-builders/update.cjs.map +1 -1
  523. package/sqlite-core/query-builders/update.d.cts +3 -3
  524. package/sqlite-core/query-builders/update.d.ts +3 -3
  525. package/sqlite-core/query-builders/update.js.map +1 -1
  526. package/sqlite-core/session.cjs +6 -2
  527. package/sqlite-core/session.cjs.map +1 -1
  528. package/sqlite-core/session.d.cts +15 -7
  529. package/sqlite-core/session.d.ts +15 -7
  530. package/sqlite-core/session.js +6 -2
  531. package/sqlite-core/session.js.map +1 -1
  532. package/sqlite-proxy/driver.cjs +23 -5
  533. package/sqlite-proxy/driver.cjs.map +1 -1
  534. package/sqlite-proxy/driver.d.cts +4 -3
  535. package/sqlite-proxy/driver.d.ts +4 -3
  536. package/sqlite-proxy/driver.js +13 -5
  537. package/sqlite-proxy/driver.js.map +1 -1
  538. package/sqlite-proxy/migrator.cjs.map +1 -1
  539. package/sqlite-proxy/migrator.d.cts +2 -1
  540. package/sqlite-proxy/migrator.d.ts +2 -1
  541. package/sqlite-proxy/migrator.js.map +1 -1
  542. package/sqlite-proxy/session.cjs +50 -6
  543. package/sqlite-proxy/session.cjs.map +1 -1
  544. package/sqlite-proxy/session.d.cts +14 -8
  545. package/sqlite-proxy/session.d.ts +14 -8
  546. package/sqlite-proxy/session.js +50 -6
  547. package/sqlite-proxy/session.js.map +1 -1
  548. package/table.cjs.map +1 -1
  549. package/table.d.cts +1 -1
  550. package/table.d.ts +1 -1
  551. package/table.js.map +1 -1
  552. package/tidb-serverless/driver.cjs +22 -5
  553. package/tidb-serverless/driver.cjs.map +1 -1
  554. package/tidb-serverless/driver.d.cts +7 -6
  555. package/tidb-serverless/driver.d.ts +7 -6
  556. package/tidb-serverless/driver.js +12 -8
  557. package/tidb-serverless/driver.js.map +1 -1
  558. package/tidb-serverless/migrator.cjs.map +1 -1
  559. package/tidb-serverless/migrator.d.cts +2 -1
  560. package/tidb-serverless/migrator.d.ts +2 -1
  561. package/tidb-serverless/migrator.js.map +1 -1
  562. package/tidb-serverless/session.cjs +62 -5
  563. package/tidb-serverless/session.cjs.map +1 -1
  564. package/tidb-serverless/session.d.cts +14 -9
  565. package/tidb-serverless/session.d.ts +14 -9
  566. package/tidb-serverless/session.js +62 -5
  567. package/tidb-serverless/session.js.map +1 -1
  568. package/utils.cjs +2 -2
  569. package/utils.cjs.map +1 -1
  570. package/utils.d.cts +3 -1
  571. package/utils.d.ts +3 -1
  572. package/utils.js +2 -2
  573. package/utils.js.map +1 -1
  574. package/vercel-postgres/driver.cjs +23 -7
  575. package/vercel-postgres/driver.cjs.map +1 -1
  576. package/vercel-postgres/driver.d.cts +9 -8
  577. package/vercel-postgres/driver.d.ts +9 -8
  578. package/vercel-postgres/driver.js +13 -10
  579. package/vercel-postgres/driver.js.map +1 -1
  580. package/vercel-postgres/migrator.cjs.map +1 -1
  581. package/vercel-postgres/migrator.d.cts +2 -1
  582. package/vercel-postgres/migrator.d.ts +2 -1
  583. package/vercel-postgres/migrator.js.map +1 -1
  584. package/vercel-postgres/session.cjs +34 -4
  585. package/vercel-postgres/session.cjs.map +1 -1
  586. package/vercel-postgres/session.d.cts +13 -8
  587. package/vercel-postgres/session.d.ts +13 -8
  588. package/vercel-postgres/session.js +34 -4
  589. package/vercel-postgres/session.js.map +1 -1
  590. package/version.cjs +1 -1
  591. package/version.d.cts +1 -1
  592. package/version.d.ts +1 -1
  593. package/version.js +1 -1
  594. package/xata-http/driver.cjs +17 -5
  595. package/xata-http/driver.cjs.map +1 -1
  596. package/xata-http/driver.d.cts +5 -4
  597. package/xata-http/driver.d.ts +5 -4
  598. package/xata-http/driver.js +7 -5
  599. package/xata-http/driver.js.map +1 -1
  600. package/xata-http/migrator.cjs.map +1 -1
  601. package/xata-http/migrator.d.cts +2 -1
  602. package/xata-http/migrator.d.ts +2 -1
  603. package/xata-http/migrator.js.map +1 -1
  604. package/xata-http/session.cjs +30 -2
  605. package/xata-http/session.cjs.map +1 -1
  606. package/xata-http/session.d.cts +13 -8
  607. package/xata-http/session.d.ts +13 -8
  608. package/xata-http/session.js +30 -2
  609. 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,10 +92,10 @@ 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>;
91
- } | undefined, nestedIndex?: number);
99
+ } | undefined, nestedIndex?: number, rowModeRQB?: boolean);
92
100
  rollback(): never;
93
101
  }
@@ -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,10 +92,10 @@ 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>;
91
- } | undefined, nestedIndex?: number);
99
+ } | undefined, nestedIndex?: number, rowModeRQB?: boolean);
92
100
  rollback(): never;
93
101
  }
@@ -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, rowModeRQB) {
110
+ super(resultType, dialect, session, relations, schema, rowModeRQB);
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\trowModeRQB?: boolean,\n\t) {\n\t\tsuper(resultType, dialect, session, relations, schema, rowModeRQB);\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,16 @@ 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
+ true
87
+ );
70
88
  }
71
89
  // Annotate the CommonJS export names for ESM import in node:
72
90
  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, TRelations>;\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, TRelations>;\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\ttrue,\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,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, TRelations>;
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, TRelations>;
@@ -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, TRelations>;
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, TRelations>;
@@ -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,16 @@ 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
+ true
53
+ );
46
54
  }
47
55
  export {
48
56
  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, TRelations>;\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, TRelations>;\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\ttrue,\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,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
+ true,
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, void 0, true);
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,15 @@ 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
+ true
112
+ );
92
113
  await this.session.run(import_sql.sql.raw(`savepoint ${savepointName}`));
93
114
  try {
94
115
  const result = await transaction(tx);
@@ -101,13 +122,14 @@ class SQLiteProxyTransaction extends import_sqlite_core.SQLiteTransaction {
101
122
  }
102
123
  }
103
124
  class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
104
- constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
125
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
105
126
  super("async", executeMethod, query);
106
127
  this.client = client;
107
128
  this.logger = logger;
108
129
  this.fields = fields;
109
130
  this._isResponseInArrayMode = _isResponseInArrayMode;
110
131
  this.customResultMapper = customResultMapper;
132
+ this.isRqbV2Query = isRqbV2Query;
111
133
  this.customResultMapper = customResultMapper;
112
134
  this.method = executeMethod;
113
135
  }
@@ -129,7 +151,9 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
129
151
  return rows;
130
152
  }
131
153
  if (this.customResultMapper) {
132
- return this.customResultMapper(rows);
154
+ return this.customResultMapper(
155
+ this.isRqbV2Query ? rows.map((r) => JSON.parse(r[0])) : rows
156
+ );
133
157
  }
134
158
  return rows.map((row) => {
135
159
  return (0, import_utils.mapResultRow)(
@@ -140,6 +164,8 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
140
164
  });
141
165
  }
142
166
  async all(placeholderValues) {
167
+ if (this.isRqbV2Query)
168
+ return this.allRqbV2(placeholderValues);
143
169
  const { query, logger, client } = this;
144
170
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
145
171
  logger.logQuery(query.sql, params);
@@ -147,12 +173,28 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
147
173
  return this.mapAllResult(rows);
148
174
  }
149
175
  async get(placeholderValues) {
176
+ if (this.isRqbV2Query)
177
+ return this.getRqbV2(placeholderValues);
150
178
  const { query, logger, client } = this;
151
179
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
152
180
  logger.logQuery(query.sql, params);
153
181
  const clientResult = await client(query.sql, params, "get");
154
182
  return this.mapGetResult(clientResult.rows);
155
183
  }
184
+ async allRqbV2(placeholderValues) {
185
+ const { query, logger, client } = this;
186
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
187
+ logger.logQuery(query.sql, params);
188
+ const { rows } = await client(query.sql, params, "all");
189
+ return this.mapAllResult(rows);
190
+ }
191
+ async getRqbV2(placeholderValues) {
192
+ const { query, logger, client } = this;
193
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
194
+ logger.logQuery(query.sql, params);
195
+ const { rows } = await client(query.sql, params, "get");
196
+ return this.mapGetResult(rows);
197
+ }
156
198
  mapGetResult(rows, isFromBatch) {
157
199
  if (isFromBatch) {
158
200
  rows = rows.rows;
@@ -165,7 +207,9 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
165
207
  return void 0;
166
208
  }
167
209
  if (this.customResultMapper) {
168
- return this.customResultMapper([rows]);
210
+ return this.customResultMapper(
211
+ [this.isRqbV2Query ? JSON.parse(row) : rows]
212
+ );
169
213
  }
170
214
  return (0, import_utils.mapResultRow)(
171
215
  this.fields,