drizzle-orm 0.39.0-2c67783 → 0.39.0-563f370

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 (727) 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 +4 -4
  9. package/alias.d.ts +4 -4
  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 +15 -9
  56. package/bun-sqlite/session.d.ts +15 -9
  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 +40 -25
  158. package/mysql-core/db.cjs.map +1 -1
  159. package/mysql-core/db.d.cts +22 -12
  160. package/mysql-core/db.d.ts +22 -12
  161. package/mysql-core/db.js +39 -24
  162. package/mysql-core/db.js.map +1 -1
  163. package/mysql-core/dialect.cjs +197 -15
  164. package/mysql-core/dialect.cjs.map +1 -1
  165. package/mysql-core/dialect.d.cts +36 -13
  166. package/mysql-core/dialect.d.ts +36 -13
  167. package/mysql-core/dialect.js +196 -22
  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-builder.cjs +11 -15
  180. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  181. package/mysql-core/query-builders/query-builder.d.cts +6 -2
  182. package/mysql-core/query-builders/query-builder.d.ts +6 -2
  183. package/mysql-core/query-builders/query-builder.js +11 -15
  184. package/mysql-core/query-builders/query-builder.js.map +1 -1
  185. package/mysql-core/query-builders/query.cjs +18 -31
  186. package/mysql-core/query-builders/query.cjs.map +1 -1
  187. package/mysql-core/query-builders/query.d.cts +8 -10
  188. package/mysql-core/query-builders/query.d.ts +8 -10
  189. package/mysql-core/query-builders/query.js +18 -31
  190. package/mysql-core/query-builders/query.js.map +1 -1
  191. package/mysql-core/session.cjs +3 -2
  192. package/mysql-core/session.cjs.map +1 -1
  193. package/mysql-core/session.d.cts +10 -7
  194. package/mysql-core/session.d.ts +10 -7
  195. package/mysql-core/session.js +3 -2
  196. package/mysql-core/session.js.map +1 -1
  197. package/mysql-core/subquery.cjs.map +1 -1
  198. package/mysql-core/subquery.d.cts +2 -15
  199. package/mysql-core/subquery.d.ts +2 -15
  200. package/mysql-proxy/driver.cjs +22 -5
  201. package/mysql-proxy/driver.cjs.map +1 -1
  202. package/mysql-proxy/driver.d.cts +3 -2
  203. package/mysql-proxy/driver.d.ts +3 -2
  204. package/mysql-proxy/driver.js +12 -8
  205. package/mysql-proxy/driver.js.map +1 -1
  206. package/mysql-proxy/migrator.cjs.map +1 -1
  207. package/mysql-proxy/migrator.d.cts +2 -1
  208. package/mysql-proxy/migrator.d.ts +2 -1
  209. package/mysql-proxy/migrator.js.map +1 -1
  210. package/mysql-proxy/session.cjs +27 -2
  211. package/mysql-proxy/session.cjs.map +1 -1
  212. package/mysql-proxy/session.d.cts +13 -8
  213. package/mysql-proxy/session.d.ts +13 -8
  214. package/mysql-proxy/session.js +27 -2
  215. package/mysql-proxy/session.js.map +1 -1
  216. package/mysql2/driver.cjs +24 -7
  217. package/mysql2/driver.cjs.map +1 -1
  218. package/mysql2/driver.d.cts +10 -9
  219. package/mysql2/driver.d.ts +10 -9
  220. package/mysql2/driver.js +14 -10
  221. package/mysql2/driver.js.map +1 -1
  222. package/mysql2/migrator.cjs.map +1 -1
  223. package/mysql2/migrator.d.cts +2 -1
  224. package/mysql2/migrator.d.ts +2 -1
  225. package/mysql2/migrator.js.map +1 -1
  226. package/mysql2/session.cjs +30 -2
  227. package/mysql2/session.cjs.map +1 -1
  228. package/mysql2/session.d.cts +13 -8
  229. package/mysql2/session.d.ts +13 -8
  230. package/mysql2/session.js +30 -2
  231. package/mysql2/session.js.map +1 -1
  232. package/neon/index.cjs +0 -2
  233. package/neon/index.cjs.map +1 -1
  234. package/neon/index.d.cts +0 -1
  235. package/neon/index.d.ts +0 -1
  236. package/neon/index.js +0 -1
  237. package/neon/index.js.map +1 -1
  238. package/neon-http/driver.cjs +21 -7
  239. package/neon-http/driver.cjs.map +1 -1
  240. package/neon-http/driver.d.cts +10 -9
  241. package/neon-http/driver.d.ts +10 -9
  242. package/neon-http/driver.js +11 -7
  243. package/neon-http/driver.js.map +1 -1
  244. package/neon-http/migrator.cjs.map +1 -1
  245. package/neon-http/migrator.d.cts +2 -1
  246. package/neon-http/migrator.d.ts +2 -1
  247. package/neon-http/migrator.js.map +1 -1
  248. package/neon-http/session.cjs +32 -2
  249. package/neon-http/session.cjs.map +1 -1
  250. package/neon-http/session.d.cts +13 -8
  251. package/neon-http/session.d.ts +13 -8
  252. package/neon-http/session.js +32 -2
  253. package/neon-http/session.js.map +1 -1
  254. package/neon-serverless/driver.cjs +18 -7
  255. package/neon-serverless/driver.cjs.map +1 -1
  256. package/neon-serverless/driver.d.cts +9 -8
  257. package/neon-serverless/driver.d.ts +9 -8
  258. package/neon-serverless/driver.js +8 -10
  259. package/neon-serverless/driver.js.map +1 -1
  260. package/neon-serverless/migrator.cjs.map +1 -1
  261. package/neon-serverless/migrator.d.cts +2 -1
  262. package/neon-serverless/migrator.d.ts +2 -1
  263. package/neon-serverless/migrator.js.map +1 -1
  264. package/neon-serverless/session.cjs +40 -5
  265. package/neon-serverless/session.cjs.map +1 -1
  266. package/neon-serverless/session.d.cts +13 -8
  267. package/neon-serverless/session.d.ts +13 -8
  268. package/neon-serverless/session.js +40 -5
  269. package/neon-serverless/session.js.map +1 -1
  270. package/node-postgres/driver.cjs +13 -7
  271. package/node-postgres/driver.cjs.map +1 -1
  272. package/node-postgres/driver.d.cts +9 -8
  273. package/node-postgres/driver.d.ts +9 -8
  274. package/node-postgres/driver.js +13 -10
  275. package/node-postgres/driver.js.map +1 -1
  276. package/node-postgres/migrator.cjs.map +1 -1
  277. package/node-postgres/migrator.d.cts +2 -1
  278. package/node-postgres/migrator.d.ts +2 -1
  279. package/node-postgres/migrator.js.map +1 -1
  280. package/node-postgres/session.cjs +45 -4
  281. package/node-postgres/session.cjs.map +1 -1
  282. package/node-postgres/session.d.cts +13 -8
  283. package/node-postgres/session.d.ts +13 -8
  284. package/node-postgres/session.js +45 -4
  285. package/node-postgres/session.js.map +1 -1
  286. package/op-sqlite/driver.cjs +22 -5
  287. package/op-sqlite/driver.cjs.map +1 -1
  288. package/op-sqlite/driver.d.cts +3 -2
  289. package/op-sqlite/driver.d.ts +3 -2
  290. package/op-sqlite/driver.js +12 -8
  291. package/op-sqlite/driver.js.map +1 -1
  292. package/op-sqlite/migrator.cjs.map +1 -1
  293. package/op-sqlite/migrator.d.cts +3 -2
  294. package/op-sqlite/migrator.d.ts +3 -2
  295. package/op-sqlite/migrator.js.map +1 -1
  296. package/op-sqlite/session.cjs +47 -4
  297. package/op-sqlite/session.cjs.map +1 -1
  298. package/op-sqlite/session.d.cts +14 -8
  299. package/op-sqlite/session.d.ts +14 -8
  300. package/op-sqlite/session.js +47 -4
  301. package/op-sqlite/session.js.map +1 -1
  302. package/package.json +52 -64
  303. package/pg-core/db.cjs +42 -24
  304. package/pg-core/db.cjs.map +1 -1
  305. package/pg-core/db.d.cts +23 -13
  306. package/pg-core/db.d.ts +23 -13
  307. package/pg-core/db.js +41 -23
  308. package/pg-core/db.js.map +1 -1
  309. package/pg-core/dialect.cjs +173 -488
  310. package/pg-core/dialect.cjs.map +1 -1
  311. package/pg-core/dialect.d.cts +27 -8
  312. package/pg-core/dialect.d.ts +27 -8
  313. package/pg-core/dialect.js +172 -495
  314. package/pg-core/dialect.js.map +1 -1
  315. package/pg-core/query-builders/_query.cjs +155 -0
  316. package/pg-core/query-builders/_query.cjs.map +1 -0
  317. package/pg-core/query-builders/_query.d.cts +47 -0
  318. package/pg-core/query-builders/_query.d.ts +47 -0
  319. package/pg-core/query-builders/_query.js +120 -0
  320. package/pg-core/query-builders/_query.js.map +1 -0
  321. package/pg-core/query-builders/count.cjs.map +1 -1
  322. package/pg-core/query-builders/count.d.cts +1 -1
  323. package/pg-core/query-builders/count.d.ts +1 -1
  324. package/pg-core/query-builders/count.js.map +1 -1
  325. package/pg-core/query-builders/delete.cjs +0 -13
  326. package/pg-core/query-builders/delete.cjs.map +1 -1
  327. package/pg-core/query-builders/delete.d.cts +10 -13
  328. package/pg-core/query-builders/delete.d.ts +10 -13
  329. package/pg-core/query-builders/delete.js +1 -14
  330. package/pg-core/query-builders/delete.js.map +1 -1
  331. package/pg-core/query-builders/insert.cjs +0 -13
  332. package/pg-core/query-builders/insert.cjs.map +1 -1
  333. package/pg-core/query-builders/insert.d.cts +8 -10
  334. package/pg-core/query-builders/insert.d.ts +8 -10
  335. package/pg-core/query-builders/insert.js +1 -14
  336. package/pg-core/query-builders/insert.js.map +1 -1
  337. package/pg-core/query-builders/query-builder.cjs +11 -15
  338. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  339. package/pg-core/query-builders/query-builder.d.cts +6 -3
  340. package/pg-core/query-builders/query-builder.d.ts +6 -3
  341. package/pg-core/query-builders/query-builder.js +11 -15
  342. package/pg-core/query-builders/query-builder.js.map +1 -1
  343. package/pg-core/query-builders/query.cjs +15 -18
  344. package/pg-core/query-builders/query.cjs.map +1 -1
  345. package/pg-core/query-builders/query.d.cts +6 -6
  346. package/pg-core/query-builders/query.d.ts +6 -6
  347. package/pg-core/query-builders/query.js +15 -18
  348. package/pg-core/query-builders/query.js.map +1 -1
  349. package/pg-core/query-builders/select.cjs +7 -8
  350. package/pg-core/query-builders/select.cjs.map +1 -1
  351. package/pg-core/query-builders/select.d.cts +3 -3
  352. package/pg-core/query-builders/select.d.ts +3 -3
  353. package/pg-core/query-builders/select.js +7 -8
  354. package/pg-core/query-builders/select.js.map +1 -1
  355. package/pg-core/query-builders/select.types.cjs.map +1 -1
  356. package/pg-core/query-builders/select.types.d.cts +2 -3
  357. package/pg-core/query-builders/select.types.d.ts +2 -3
  358. package/pg-core/query-builders/update.cjs +2 -15
  359. package/pg-core/query-builders/update.cjs.map +1 -1
  360. package/pg-core/query-builders/update.d.cts +13 -18
  361. package/pg-core/query-builders/update.d.ts +13 -18
  362. package/pg-core/query-builders/update.js +3 -16
  363. package/pg-core/query-builders/update.js.map +1 -1
  364. package/pg-core/session.cjs +3 -2
  365. package/pg-core/session.cjs.map +1 -1
  366. package/pg-core/session.d.cts +9 -6
  367. package/pg-core/session.d.ts +9 -6
  368. package/pg-core/session.js +3 -2
  369. package/pg-core/session.js.map +1 -1
  370. package/pg-core/subquery.cjs.map +1 -1
  371. package/pg-core/subquery.d.cts +2 -15
  372. package/pg-core/subquery.d.ts +2 -15
  373. package/pg-proxy/driver.cjs +21 -5
  374. package/pg-proxy/driver.cjs.map +1 -1
  375. package/pg-proxy/driver.d.cts +3 -2
  376. package/pg-proxy/driver.d.ts +3 -2
  377. package/pg-proxy/driver.js +11 -8
  378. package/pg-proxy/driver.js.map +1 -1
  379. package/pg-proxy/migrator.cjs.map +1 -1
  380. package/pg-proxy/migrator.d.cts +2 -1
  381. package/pg-proxy/migrator.d.ts +2 -1
  382. package/pg-proxy/migrator.js.map +1 -1
  383. package/pg-proxy/session.cjs +37 -2
  384. package/pg-proxy/session.cjs.map +1 -1
  385. package/pg-proxy/session.d.cts +13 -8
  386. package/pg-proxy/session.d.ts +13 -8
  387. package/pg-proxy/session.js +37 -2
  388. package/pg-proxy/session.js.map +1 -1
  389. package/pglite/driver.cjs +23 -7
  390. package/pglite/driver.cjs.map +1 -1
  391. package/pglite/driver.d.cts +9 -8
  392. package/pglite/driver.d.ts +9 -8
  393. package/pglite/driver.js +13 -10
  394. package/pglite/driver.js.map +1 -1
  395. package/pglite/migrator.cjs.map +1 -1
  396. package/pglite/migrator.d.cts +2 -1
  397. package/pglite/migrator.d.ts +2 -1
  398. package/pglite/migrator.js.map +1 -1
  399. package/pglite/session.cjs +34 -3
  400. package/pglite/session.cjs.map +1 -1
  401. package/pglite/session.d.cts +13 -8
  402. package/pglite/session.d.ts +13 -8
  403. package/pglite/session.js +34 -3
  404. package/pglite/session.js.map +1 -1
  405. package/planetscale-serverless/driver.cjs +22 -5
  406. package/planetscale-serverless/driver.cjs.map +1 -1
  407. package/planetscale-serverless/driver.d.cts +7 -6
  408. package/planetscale-serverless/driver.d.ts +7 -6
  409. package/planetscale-serverless/driver.js +12 -8
  410. package/planetscale-serverless/driver.js.map +1 -1
  411. package/planetscale-serverless/migrator.cjs.map +1 -1
  412. package/planetscale-serverless/migrator.d.cts +2 -1
  413. package/planetscale-serverless/migrator.d.ts +2 -1
  414. package/planetscale-serverless/migrator.js.map +1 -1
  415. package/planetscale-serverless/session.cjs +45 -5
  416. package/planetscale-serverless/session.cjs.map +1 -1
  417. package/planetscale-serverless/session.d.cts +14 -9
  418. package/planetscale-serverless/session.d.ts +14 -9
  419. package/planetscale-serverless/session.js +45 -5
  420. package/planetscale-serverless/session.js.map +1 -1
  421. package/postgres-js/driver.cjs +6 -5
  422. package/postgres-js/driver.cjs.map +1 -1
  423. package/postgres-js/driver.d.cts +7 -6
  424. package/postgres-js/driver.d.ts +7 -6
  425. package/postgres-js/driver.js +6 -8
  426. package/postgres-js/driver.js.map +1 -1
  427. package/postgres-js/migrator.cjs.map +1 -1
  428. package/postgres-js/migrator.d.cts +2 -1
  429. package/postgres-js/migrator.d.ts +2 -1
  430. package/postgres-js/migrator.js.map +1 -1
  431. package/postgres-js/session.cjs +51 -6
  432. package/postgres-js/session.cjs.map +1 -1
  433. package/postgres-js/session.d.cts +15 -9
  434. package/postgres-js/session.d.ts +15 -9
  435. package/postgres-js/session.js +51 -6
  436. package/postgres-js/session.js.map +1 -1
  437. package/prisma/mysql/driver.cjs +1 -1
  438. package/prisma/mysql/driver.cjs.map +1 -1
  439. package/prisma/mysql/driver.js +1 -1
  440. package/prisma/mysql/driver.js.map +1 -1
  441. package/prisma/mysql/session.cjs +3 -0
  442. package/prisma/mysql/session.cjs.map +1 -1
  443. package/prisma/mysql/session.d.cts +3 -1
  444. package/prisma/mysql/session.d.ts +3 -1
  445. package/prisma/mysql/session.js +3 -0
  446. package/prisma/mysql/session.js.map +1 -1
  447. package/prisma/pg/driver.cjs +1 -1
  448. package/prisma/pg/driver.cjs.map +1 -1
  449. package/prisma/pg/driver.js +1 -1
  450. package/prisma/pg/driver.js.map +1 -1
  451. package/prisma/pg/session.cjs +3 -0
  452. package/prisma/pg/session.cjs.map +1 -1
  453. package/prisma/pg/session.d.cts +3 -1
  454. package/prisma/pg/session.d.ts +3 -1
  455. package/prisma/pg/session.js +3 -0
  456. package/prisma/pg/session.js.map +1 -1
  457. package/prisma/sqlite/driver.cjs +1 -1
  458. package/prisma/sqlite/driver.cjs.map +1 -1
  459. package/prisma/sqlite/driver.js +1 -1
  460. package/prisma/sqlite/driver.js.map +1 -1
  461. package/prisma/sqlite/session.cjs +3 -0
  462. package/prisma/sqlite/session.cjs.map +1 -1
  463. package/prisma/sqlite/session.d.cts +4 -2
  464. package/prisma/sqlite/session.d.ts +4 -2
  465. package/prisma/sqlite/session.js +3 -0
  466. package/prisma/sqlite/session.js.map +1 -1
  467. package/query-builders/select.types.cjs.map +1 -1
  468. package/query-builders/select.types.d.cts +1 -1
  469. package/query-builders/select.types.d.ts +1 -1
  470. package/relations.cjs +593 -245
  471. package/relations.cjs.map +1 -1
  472. package/relations.d.cts +295 -140
  473. package/relations.d.ts +295 -140
  474. package/relations.js +586 -240
  475. package/relations.js.map +1 -1
  476. package/singlestore/driver.cjs +1 -1
  477. package/singlestore/driver.cjs.map +1 -1
  478. package/singlestore/driver.d.cts +1 -1
  479. package/singlestore/driver.d.ts +1 -1
  480. package/singlestore/driver.js +3 -3
  481. package/singlestore/driver.js.map +1 -1
  482. package/singlestore/session.cjs.map +1 -1
  483. package/singlestore/session.d.cts +4 -4
  484. package/singlestore/session.d.ts +4 -4
  485. package/singlestore/session.js.map +1 -1
  486. package/singlestore-core/db.cjs +11 -17
  487. package/singlestore-core/db.cjs.map +1 -1
  488. package/singlestore-core/db.d.cts +10 -7
  489. package/singlestore-core/db.d.ts +10 -7
  490. package/singlestore-core/db.js +11 -17
  491. package/singlestore-core/db.js.map +1 -1
  492. package/singlestore-core/dialect.cjs +16 -6
  493. package/singlestore-core/dialect.cjs.map +1 -1
  494. package/singlestore-core/dialect.d.cts +6 -6
  495. package/singlestore-core/dialect.d.ts +6 -6
  496. package/singlestore-core/dialect.js +6 -12
  497. package/singlestore-core/dialect.js.map +1 -1
  498. package/singlestore-core/query-builders/query-builder.cjs +11 -15
  499. package/singlestore-core/query-builders/query-builder.cjs.map +1 -1
  500. package/singlestore-core/query-builders/query-builder.d.cts +6 -2
  501. package/singlestore-core/query-builders/query-builder.d.ts +6 -2
  502. package/singlestore-core/query-builders/query-builder.js +11 -15
  503. package/singlestore-core/query-builders/query-builder.js.map +1 -1
  504. package/singlestore-core/query-builders/query.cjs +12 -2
  505. package/singlestore-core/query-builders/query.cjs.map +1 -1
  506. package/singlestore-core/query-builders/query.d.cts +6 -6
  507. package/singlestore-core/query-builders/query.d.ts +6 -6
  508. package/singlestore-core/query-builders/query.js +2 -4
  509. package/singlestore-core/query-builders/query.js.map +1 -1
  510. package/singlestore-core/session.cjs.map +1 -1
  511. package/singlestore-core/session.d.cts +5 -5
  512. package/singlestore-core/session.d.ts +5 -5
  513. package/singlestore-core/session.js.map +1 -1
  514. package/singlestore-core/subquery.cjs.map +1 -1
  515. package/singlestore-core/subquery.d.cts +2 -15
  516. package/singlestore-core/subquery.d.ts +2 -15
  517. package/singlestore-core/table.cjs.map +1 -1
  518. package/singlestore-core/table.d.cts +12 -12
  519. package/singlestore-core/table.d.ts +12 -12
  520. package/singlestore-core/table.js.map +1 -1
  521. package/singlestore-proxy/driver.cjs +1 -1
  522. package/singlestore-proxy/driver.cjs.map +1 -1
  523. package/singlestore-proxy/driver.js +3 -3
  524. package/singlestore-proxy/driver.js.map +1 -1
  525. package/singlestore-proxy/session.cjs.map +1 -1
  526. package/singlestore-proxy/session.d.cts +4 -4
  527. package/singlestore-proxy/session.d.ts +4 -4
  528. package/singlestore-proxy/session.js.map +1 -1
  529. package/sql/expressions/conditions.cjs.map +1 -1
  530. package/sql/expressions/conditions.d.cts +4 -4
  531. package/sql/expressions/conditions.d.ts +4 -4
  532. package/sql/expressions/conditions.js.map +1 -1
  533. package/sql/sql.cjs +23 -7
  534. package/sql/sql.cjs.map +1 -1
  535. package/sql/sql.d.cts +8 -9
  536. package/sql/sql.d.ts +8 -9
  537. package/sql/sql.js +24 -7
  538. package/sql/sql.js.map +1 -1
  539. package/sql-js/driver.cjs +16 -5
  540. package/sql-js/driver.cjs.map +1 -1
  541. package/sql-js/driver.d.cts +3 -2
  542. package/sql-js/driver.d.ts +3 -2
  543. package/sql-js/driver.js +6 -8
  544. package/sql-js/driver.js.map +1 -1
  545. package/sql-js/migrator.cjs.map +1 -1
  546. package/sql-js/migrator.d.cts +2 -1
  547. package/sql-js/migrator.d.ts +2 -1
  548. package/sql-js/migrator.js.map +1 -1
  549. package/sql-js/session.cjs +71 -36
  550. package/sql-js/session.cjs.map +1 -1
  551. package/sql-js/session.d.cts +16 -13
  552. package/sql-js/session.d.ts +16 -13
  553. package/sql-js/session.js +71 -36
  554. package/sql-js/session.js.map +1 -1
  555. package/sqlite-core/db.cjs +49 -31
  556. package/sqlite-core/db.cjs.map +1 -1
  557. package/sqlite-core/db.d.cts +23 -12
  558. package/sqlite-core/db.d.ts +23 -12
  559. package/sqlite-core/db.js +48 -30
  560. package/sqlite-core/db.js.map +1 -1
  561. package/sqlite-core/dialect.cjs +187 -8
  562. package/sqlite-core/dialect.cjs.map +1 -1
  563. package/sqlite-core/dialect.d.cts +31 -9
  564. package/sqlite-core/dialect.d.ts +31 -9
  565. package/sqlite-core/dialect.js +186 -15
  566. package/sqlite-core/dialect.js.map +1 -1
  567. package/sqlite-core/query-builders/_query.cjs +187 -0
  568. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  569. package/sqlite-core/query-builders/_query.d.cts +55 -0
  570. package/sqlite-core/query-builders/_query.d.ts +55 -0
  571. package/sqlite-core/query-builders/_query.js +151 -0
  572. package/sqlite-core/query-builders/_query.js.map +1 -0
  573. package/sqlite-core/query-builders/count.cjs.map +1 -1
  574. package/sqlite-core/query-builders/count.d.cts +1 -1
  575. package/sqlite-core/query-builders/count.d.ts +1 -1
  576. package/sqlite-core/query-builders/count.js.map +1 -1
  577. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  578. package/sqlite-core/query-builders/delete.d.cts +1 -1
  579. package/sqlite-core/query-builders/delete.d.ts +1 -1
  580. package/sqlite-core/query-builders/delete.js.map +1 -1
  581. package/sqlite-core/query-builders/insert.cjs +3 -9
  582. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  583. package/sqlite-core/query-builders/insert.d.cts +4 -4
  584. package/sqlite-core/query-builders/insert.d.ts +4 -4
  585. package/sqlite-core/query-builders/insert.js +3 -9
  586. package/sqlite-core/query-builders/insert.js.map +1 -1
  587. package/sqlite-core/query-builders/query-builder.cjs +11 -15
  588. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  589. package/sqlite-core/query-builders/query-builder.d.cts +6 -2
  590. package/sqlite-core/query-builders/query-builder.d.ts +6 -2
  591. package/sqlite-core/query-builders/query-builder.js +11 -15
  592. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  593. package/sqlite-core/query-builders/query.cjs +56 -35
  594. package/sqlite-core/query-builders/query.cjs.map +1 -1
  595. package/sqlite-core/query-builders/query.d.cts +18 -17
  596. package/sqlite-core/query-builders/query.d.ts +18 -17
  597. package/sqlite-core/query-builders/query.js +56 -35
  598. package/sqlite-core/query-builders/query.js.map +1 -1
  599. package/sqlite-core/query-builders/select.cjs.map +1 -1
  600. package/sqlite-core/query-builders/select.d.cts +3 -3
  601. package/sqlite-core/query-builders/select.d.ts +3 -3
  602. package/sqlite-core/query-builders/select.js.map +1 -1
  603. package/sqlite-core/query-builders/update.cjs.map +1 -1
  604. package/sqlite-core/query-builders/update.d.cts +3 -3
  605. package/sqlite-core/query-builders/update.d.ts +3 -3
  606. package/sqlite-core/query-builders/update.js.map +1 -1
  607. package/sqlite-core/session.cjs +6 -2
  608. package/sqlite-core/session.cjs.map +1 -1
  609. package/sqlite-core/session.d.cts +15 -7
  610. package/sqlite-core/session.d.ts +15 -7
  611. package/sqlite-core/session.js +6 -2
  612. package/sqlite-core/session.js.map +1 -1
  613. package/sqlite-core/subquery.cjs.map +1 -1
  614. package/sqlite-core/subquery.d.cts +2 -15
  615. package/sqlite-core/subquery.d.ts +2 -15
  616. package/sqlite-proxy/driver.cjs +23 -5
  617. package/sqlite-proxy/driver.cjs.map +1 -1
  618. package/sqlite-proxy/driver.d.cts +4 -3
  619. package/sqlite-proxy/driver.d.ts +4 -3
  620. package/sqlite-proxy/driver.js +13 -5
  621. package/sqlite-proxy/driver.js.map +1 -1
  622. package/sqlite-proxy/migrator.cjs.map +1 -1
  623. package/sqlite-proxy/migrator.d.cts +2 -1
  624. package/sqlite-proxy/migrator.d.ts +2 -1
  625. package/sqlite-proxy/migrator.js.map +1 -1
  626. package/sqlite-proxy/session.cjs +50 -6
  627. package/sqlite-proxy/session.cjs.map +1 -1
  628. package/sqlite-proxy/session.d.cts +14 -8
  629. package/sqlite-proxy/session.d.ts +14 -8
  630. package/sqlite-proxy/session.js +50 -6
  631. package/sqlite-proxy/session.js.map +1 -1
  632. package/subquery.cjs.map +1 -1
  633. package/subquery.d.cts +0 -1
  634. package/subquery.d.ts +0 -1
  635. package/subquery.js.map +1 -1
  636. package/table.cjs.map +1 -1
  637. package/table.d.cts +2 -2
  638. package/table.d.ts +2 -2
  639. package/table.js.map +1 -1
  640. package/tidb-serverless/driver.cjs +22 -5
  641. package/tidb-serverless/driver.cjs.map +1 -1
  642. package/tidb-serverless/driver.d.cts +7 -6
  643. package/tidb-serverless/driver.d.ts +7 -6
  644. package/tidb-serverless/driver.js +12 -8
  645. package/tidb-serverless/driver.js.map +1 -1
  646. package/tidb-serverless/migrator.cjs.map +1 -1
  647. package/tidb-serverless/migrator.d.cts +2 -1
  648. package/tidb-serverless/migrator.d.ts +2 -1
  649. package/tidb-serverless/migrator.js.map +1 -1
  650. package/tidb-serverless/session.cjs +62 -5
  651. package/tidb-serverless/session.cjs.map +1 -1
  652. package/tidb-serverless/session.d.cts +14 -9
  653. package/tidb-serverless/session.d.ts +14 -9
  654. package/tidb-serverless/session.js +62 -5
  655. package/tidb-serverless/session.js.map +1 -1
  656. package/utils.cjs +2 -2
  657. package/utils.cjs.map +1 -1
  658. package/utils.d.cts +3 -1
  659. package/utils.d.ts +3 -1
  660. package/utils.js +2 -2
  661. package/utils.js.map +1 -1
  662. package/vercel-postgres/driver.cjs +23 -7
  663. package/vercel-postgres/driver.cjs.map +1 -1
  664. package/vercel-postgres/driver.d.cts +9 -8
  665. package/vercel-postgres/driver.d.ts +9 -8
  666. package/vercel-postgres/driver.js +13 -10
  667. package/vercel-postgres/driver.js.map +1 -1
  668. package/vercel-postgres/migrator.cjs.map +1 -1
  669. package/vercel-postgres/migrator.d.cts +2 -1
  670. package/vercel-postgres/migrator.d.ts +2 -1
  671. package/vercel-postgres/migrator.js.map +1 -1
  672. package/vercel-postgres/session.cjs +34 -8
  673. package/vercel-postgres/session.cjs.map +1 -1
  674. package/vercel-postgres/session.d.cts +14 -10
  675. package/vercel-postgres/session.d.ts +14 -10
  676. package/vercel-postgres/session.js +34 -8
  677. package/vercel-postgres/session.js.map +1 -1
  678. package/version.cjs +1 -1
  679. package/version.d.cts +1 -1
  680. package/version.d.ts +1 -1
  681. package/version.js +1 -1
  682. package/xata-http/driver.cjs +17 -5
  683. package/xata-http/driver.cjs.map +1 -1
  684. package/xata-http/driver.d.cts +5 -4
  685. package/xata-http/driver.d.ts +5 -4
  686. package/xata-http/driver.js +7 -5
  687. package/xata-http/driver.js.map +1 -1
  688. package/xata-http/migrator.cjs.map +1 -1
  689. package/xata-http/migrator.d.cts +2 -1
  690. package/xata-http/migrator.d.ts +2 -1
  691. package/xata-http/migrator.js.map +1 -1
  692. package/xata-http/session.cjs +30 -2
  693. package/xata-http/session.cjs.map +1 -1
  694. package/xata-http/session.d.cts +13 -8
  695. package/xata-http/session.d.ts +13 -8
  696. package/xata-http/session.js +30 -2
  697. package/xata-http/session.js.map +1 -1
  698. package/bun-sql/driver.cjs +0 -96
  699. package/bun-sql/driver.cjs.map +0 -1
  700. package/bun-sql/driver.d.cts +0 -30
  701. package/bun-sql/driver.d.ts +0 -30
  702. package/bun-sql/driver.js +0 -74
  703. package/bun-sql/driver.js.map +0 -1
  704. package/bun-sql/index.cjs +0 -25
  705. package/bun-sql/index.cjs.map +0 -1
  706. package/bun-sql/index.d.cts +0 -2
  707. package/bun-sql/index.d.ts +0 -2
  708. package/bun-sql/index.js +0 -3
  709. package/bun-sql/index.js.map +0 -1
  710. package/bun-sql/migrator.cjs +0 -33
  711. package/bun-sql/migrator.cjs.map +0 -1
  712. package/bun-sql/migrator.d.cts +0 -3
  713. package/bun-sql/migrator.d.ts +0 -3
  714. package/bun-sql/migrator.js +0 -9
  715. package/bun-sql/migrator.js.map +0 -1
  716. package/bun-sql/session.cjs +0 -162
  717. package/bun-sql/session.cjs.map +0 -1
  718. package/bun-sql/session.d.cts +0 -50
  719. package/bun-sql/session.d.ts +0 -50
  720. package/bun-sql/session.js +0 -136
  721. package/bun-sql/session.js.map +0 -1
  722. package/neon/neon-identity.cjs +0 -38
  723. package/neon/neon-identity.cjs.map +0 -1
  724. package/neon/neon-identity.d.cts +0 -116
  725. package/neon/neon-identity.d.ts +0 -116
  726. package/neon/neon-identity.js +0 -14
  727. package/neon/neon-identity.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import type { Database, Statement } from 'sql.js';
1
+ import type { Database } from 'sql.js';
2
+ import type * as V1 from "../_relations.cjs";
2
3
  import { entityKind } from "../entity.cjs";
3
4
  import type { Logger } from "../logger.cjs";
4
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
5
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
5
6
  import { type Query } from "../sql/sql.cjs";
6
7
  import type { SQLiteSyncDialect } from "../sqlite-core/dialect.cjs";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.cjs";
@@ -12,21 +13,22 @@ export interface SQLJsSessionOptions {
12
13
  logger?: Logger;
13
14
  }
14
15
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
15
- export declare class SQLJsSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {
16
+ export declare class SQLJsSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {
16
17
  private client;
18
+ private relations;
17
19
  private schema;
18
20
  static readonly [entityKind]: string;
19
21
  private logger;
20
- constructor(client: Database, dialect: SQLiteSyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLJsSessionOptions);
22
+ constructor(client: Database, dialect: SQLiteSyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: SQLJsSessionOptions);
21
23
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean): PreparedQuery<T>;
22
- prepareOneTimeQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): PreparedQuery<T>;
23
- transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
24
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): PreparedQuery<T, true>;
25
+ transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T, config?: SQLiteTransactionConfig): T;
24
26
  }
25
- export declare class SQLJsTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {
27
+ export declare class SQLJsTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {
26
28
  static readonly [entityKind]: string;
27
- transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T): T;
29
+ transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T): T;
28
30
  }
29
- export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
31
+ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PreparedQueryBase<{
30
32
  type: 'sync';
31
33
  run: void;
32
34
  all: T['all'];
@@ -34,18 +36,19 @@ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQuery
34
36
  values: T['values'];
35
37
  execute: T['execute'];
36
38
  }> {
37
- private stmt;
39
+ private client;
38
40
  private logger;
39
41
  private fields;
40
42
  private _isResponseInArrayMode;
41
43
  private customResultMapper?;
42
- private isOneTimeQuery;
44
+ private isRqbV2Query?;
43
45
  static readonly [entityKind]: string;
44
- constructor(stmt: Statement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined, isOneTimeQuery?: boolean);
46
+ constructor(client: Database, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
45
47
  run(placeholderValues?: Record<string, unknown>): void;
46
48
  all(placeholderValues?: Record<string, unknown>): T['all'];
49
+ private allRqbV2;
47
50
  get(placeholderValues?: Record<string, unknown>): T['get'];
51
+ private getRqbV2;
48
52
  values(placeholderValues?: Record<string, unknown>): T['values'];
49
- free(): boolean;
50
53
  }
51
54
  export {};
@@ -1,7 +1,8 @@
1
- import type { Database, Statement } from 'sql.js';
1
+ import type { Database } from 'sql.js';
2
+ import type * as V1 from "../_relations.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import type { Logger } from "../logger.js";
4
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
5
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.js";
5
6
  import { type Query } from "../sql/sql.js";
6
7
  import type { SQLiteSyncDialect } from "../sqlite-core/dialect.js";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.js";
@@ -12,21 +13,22 @@ export interface SQLJsSessionOptions {
12
13
  logger?: Logger;
13
14
  }
14
15
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
15
- export declare class SQLJsSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {
16
+ export declare class SQLJsSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {
16
17
  private client;
18
+ private relations;
17
19
  private schema;
18
20
  static readonly [entityKind]: string;
19
21
  private logger;
20
- constructor(client: Database, dialect: SQLiteSyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLJsSessionOptions);
22
+ constructor(client: Database, dialect: SQLiteSyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: SQLJsSessionOptions);
21
23
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean): PreparedQuery<T>;
22
- prepareOneTimeQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): PreparedQuery<T>;
23
- transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
24
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): PreparedQuery<T, true>;
25
+ transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T, config?: SQLiteTransactionConfig): T;
24
26
  }
25
- export declare class SQLJsTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {
27
+ export declare class SQLJsTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {
26
28
  static readonly [entityKind]: string;
27
- transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T): T;
29
+ transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T): T;
28
30
  }
29
- export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
31
+ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PreparedQueryBase<{
30
32
  type: 'sync';
31
33
  run: void;
32
34
  all: T['all'];
@@ -34,18 +36,19 @@ export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQuery
34
36
  values: T['values'];
35
37
  execute: T['execute'];
36
38
  }> {
37
- private stmt;
39
+ private client;
38
40
  private logger;
39
41
  private fields;
40
42
  private _isResponseInArrayMode;
41
43
  private customResultMapper?;
42
- private isOneTimeQuery;
44
+ private isRqbV2Query?;
43
45
  static readonly [entityKind]: string;
44
- constructor(stmt: Statement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined, isOneTimeQuery?: boolean);
46
+ constructor(client: Database, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
45
47
  run(placeholderValues?: Record<string, unknown>): void;
46
48
  all(placeholderValues?: Record<string, unknown>): T['all'];
49
+ private allRqbV2;
47
50
  get(placeholderValues?: Record<string, unknown>): T['get'];
51
+ private getRqbV2;
48
52
  values(placeholderValues?: Record<string, unknown>): T['values'];
49
- free(): boolean;
50
53
  }
51
54
  export {};
package/sql-js/session.js CHANGED
@@ -5,33 +5,32 @@ import { SQLiteTransaction } from "../sqlite-core/index.js";
5
5
  import { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from "../sqlite-core/session.js";
6
6
  import { mapResultRow } from "../utils.js";
7
7
  class SQLJsSession extends SQLiteSession {
8
- constructor(client, dialect, schema, options = {}) {
8
+ constructor(client, dialect, relations, schema, options = {}) {
9
9
  super(dialect);
10
10
  this.client = client;
11
+ this.relations = relations;
11
12
  this.schema = schema;
12
13
  this.logger = options.logger ?? new NoopLogger();
13
14
  }
14
15
  static [entityKind] = "SQLJsSession";
15
16
  logger;
16
17
  prepareQuery(query, fields, executeMethod, isResponseInArrayMode) {
17
- const stmt = this.client.prepare(query.sql);
18
- return new PreparedQuery(stmt, query, this.logger, fields, executeMethod, isResponseInArrayMode);
18
+ return new PreparedQuery(this.client, query, this.logger, fields, executeMethod, isResponseInArrayMode);
19
19
  }
20
- prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
21
- const stmt = this.client.prepare(query.sql);
20
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
22
21
  return new PreparedQuery(
23
- stmt,
22
+ this.client,
24
23
  query,
25
24
  this.logger,
26
25
  fields,
27
26
  executeMethod,
28
- isResponseInArrayMode,
27
+ false,
29
28
  customResultMapper,
30
29
  true
31
30
  );
32
31
  }
33
32
  transaction(transaction, config = {}) {
34
- const tx = new SQLJsTransaction("sync", this.dialect, this, this.schema);
33
+ const tx = new SQLJsTransaction("sync", this.dialect, this, this.relations, this.schema);
35
34
  this.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ""}`));
36
35
  try {
37
36
  const result = transaction(tx);
@@ -47,7 +46,14 @@ class SQLJsTransaction extends SQLiteTransaction {
47
46
  static [entityKind] = "SQLJsTransaction";
48
47
  transaction(transaction) {
49
48
  const savepointName = `sp${this.nestedIndex + 1}`;
50
- const tx = new SQLJsTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);
49
+ const tx = new SQLJsTransaction(
50
+ "sync",
51
+ this.dialect,
52
+ this.session,
53
+ this.relations,
54
+ this.schema,
55
+ this.nestedIndex + 1
56
+ );
51
57
  tx.run(sql.raw(`savepoint ${savepointName}`));
52
58
  try {
53
59
  const result = transaction(tx);
@@ -60,27 +66,29 @@ class SQLJsTransaction extends SQLiteTransaction {
60
66
  }
61
67
  }
62
68
  class PreparedQuery extends PreparedQueryBase {
63
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isOneTimeQuery = false) {
69
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
64
70
  super("sync", executeMethod, query);
65
- this.stmt = stmt;
71
+ this.client = client;
66
72
  this.logger = logger;
67
73
  this.fields = fields;
68
74
  this._isResponseInArrayMode = _isResponseInArrayMode;
69
75
  this.customResultMapper = customResultMapper;
70
- this.isOneTimeQuery = isOneTimeQuery;
76
+ this.isRqbV2Query = isRqbV2Query;
71
77
  }
72
78
  static [entityKind] = "SQLJsPreparedQuery";
73
79
  run(placeholderValues) {
80
+ const stmt = this.client.prepare(this.query.sql);
74
81
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
75
82
  this.logger.logQuery(this.query.sql, params);
76
- const result = this.stmt.run(params);
77
- if (this.isOneTimeQuery) {
78
- this.free();
79
- }
83
+ const result = stmt.run(params);
84
+ stmt.free();
80
85
  return result;
81
86
  }
82
87
  all(placeholderValues) {
83
- const { fields, joinsNotNullableMap, logger, query, stmt, isOneTimeQuery, customResultMapper } = this;
88
+ if (this.isRqbV2Query)
89
+ return this.allRqbV2(placeholderValues);
90
+ const stmt = this.client.prepare(this.query.sql);
91
+ const { fields, joinsNotNullableMap, logger, query, customResultMapper } = this;
84
92
  if (!fields && !customResultMapper) {
85
93
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
86
94
  logger.logQuery(query.sql, params);
@@ -89,9 +97,7 @@ class PreparedQuery extends PreparedQueryBase {
89
97
  while (stmt.step()) {
90
98
  rows2.push(stmt.getAsObject());
91
99
  }
92
- if (isOneTimeQuery) {
93
- this.free();
94
- }
100
+ stmt.free();
95
101
  return rows2;
96
102
  }
97
103
  const rows = this.values(placeholderValues);
@@ -100,21 +106,33 @@ class PreparedQuery extends PreparedQueryBase {
100
106
  }
101
107
  return rows.map((row) => mapResultRow(fields, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));
102
108
  }
109
+ allRqbV2(placeholderValues) {
110
+ const stmt = this.client.prepare(this.query.sql);
111
+ const { logger, query, customResultMapper } = this;
112
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
113
+ logger.logQuery(query.sql, params);
114
+ stmt.bind(params);
115
+ const rows = [];
116
+ while (stmt.step()) {
117
+ rows.push(stmt.getAsObject());
118
+ }
119
+ stmt.free();
120
+ return customResultMapper(rows, normalizeFieldValue);
121
+ }
103
122
  get(placeholderValues) {
123
+ if (this.isRqbV2Query)
124
+ return this.getRqbV2(placeholderValues);
125
+ const stmt = this.client.prepare(this.query.sql);
104
126
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
105
127
  this.logger.logQuery(this.query.sql, params);
106
- const { fields, stmt, isOneTimeQuery, joinsNotNullableMap, customResultMapper } = this;
128
+ const { fields, joinsNotNullableMap, customResultMapper } = this;
107
129
  if (!fields && !customResultMapper) {
108
130
  const result = stmt.getAsObject(params);
109
- if (isOneTimeQuery) {
110
- this.free();
111
- }
131
+ stmt.free();
112
132
  return result;
113
133
  }
114
134
  const row = stmt.get(params);
115
- if (isOneTimeQuery) {
116
- this.free();
117
- }
135
+ stmt.free();
118
136
  if (!row || row.length === 0 && fields.length > 0) {
119
137
  return void 0;
120
138
  }
@@ -123,22 +141,39 @@ class PreparedQuery extends PreparedQueryBase {
123
141
  }
124
142
  return mapResultRow(fields, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);
125
143
  }
144
+ getRqbV2(placeholderValues) {
145
+ const stmt = this.client.prepare(this.query.sql);
146
+ const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
147
+ this.logger.logQuery(this.query.sql, params);
148
+ const { customResultMapper } = this;
149
+ const row = stmt.getAsObject(params);
150
+ stmt.free();
151
+ if (!row) {
152
+ return void 0;
153
+ }
154
+ let nonUndef = false;
155
+ for (const v of Object.values(row)) {
156
+ if (v !== void 0) {
157
+ nonUndef = true;
158
+ break;
159
+ }
160
+ }
161
+ if (!nonUndef)
162
+ return void 0;
163
+ return customResultMapper([row], normalizeFieldValue);
164
+ }
126
165
  values(placeholderValues) {
166
+ const stmt = this.client.prepare(this.query.sql);
127
167
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
128
168
  this.logger.logQuery(this.query.sql, params);
129
- this.stmt.bind(params);
169
+ stmt.bind(params);
130
170
  const rows = [];
131
- while (this.stmt.step()) {
132
- rows.push(this.stmt.get());
133
- }
134
- if (this.isOneTimeQuery) {
135
- this.free();
171
+ while (stmt.step()) {
172
+ rows.push(stmt.get());
136
173
  }
174
+ stmt.free();
137
175
  return rows;
138
176
  }
139
- free() {
140
- return this.stmt.free();
141
- }
142
177
  /** @internal */
143
178
  isResponseInArrayMode() {
144
179
  return this._isResponseInArrayMode;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sql-js/session.ts"],"sourcesContent":["import type { BindParams, Database, Statement } from 'sql.js';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLJsSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLJsSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(stmt, query, this.logger, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\toverride prepareOneTimeQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLJsTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class SQLJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLJsTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SQLJsTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\ttx.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\ttx.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\ttx.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<\n\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tprivate isOneTimeQuery = false,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst result = this.stmt.run(params as BindParams);\n\n\t\tif (this.isOneTimeQuery) {\n\t\t\tthis.free();\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, logger, query, stmt, isOneTimeQuery, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tstmt.bind(params as BindParams);\n\t\t\tconst rows: unknown[] = [];\n\t\t\twhile (stmt.step()) {\n\t\t\t\trows.push(stmt.getAsObject());\n\t\t\t}\n\n\t\t\tif (isOneTimeQuery) {\n\t\t\t\tthis.free();\n\t\t\t}\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows, normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, isOneTimeQuery, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst result = stmt.getAsObject(params as BindParams);\n\n\t\t\tif (isOneTimeQuery) {\n\t\t\t\tthis.free();\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tconst row = stmt.get(params as BindParams);\n\n\t\tif (isOneTimeQuery) {\n\t\t\tthis.free();\n\t\t}\n\n\t\tif (!row || (row.length === 0 && fields!.length > 0)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper([row], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tthis.stmt.bind(params as BindParams);\n\t\tconst rows: unknown[] = [];\n\t\twhile (this.stmt.step()) {\n\t\t\trows.push(this.stmt.get());\n\t\t}\n\n\t\tif (this.isOneTimeQuery) {\n\t\t\tthis.free();\n\t\t}\n\n\t\treturn rows;\n\t}\n\n\tfree(): boolean {\n\t\treturn this.stmt.free();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (value instanceof Uint8Array) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/sql-js/session.ts"],"sourcesContent":["import type { BindParams, Database } from 'sql.js';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLJsSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLJsSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): PreparedQuery<T> {\n\t\treturn new PreparedQuery(this.client, query, this.logger, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): PreparedQuery<T, true> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLJsTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tthis.run(sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class SQLJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLJsTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SQLJsTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\ttx.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\ttx.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\ttx.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PreparedQueryBase<\n\t\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst result = stmt.run(params as BindParams);\n\n\t\tstmt.free();\n\n\t\treturn result;\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst { fields, joinsNotNullableMap, logger, query, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\tstmt.bind(params as BindParams);\n\t\t\tconst rows: unknown[] = [];\n\t\t\twhile (stmt.step()) {\n\t\t\t\trows.push(stmt.getAsObject());\n\t\t\t}\n\n\t\t\tstmt.free();\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (\n\t\t\t\trows: unknown[][],\n\t\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t\t) => unknown)(rows, normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst { logger, query, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tstmt.bind(params as BindParams);\n\t\tconst rows: Record<string, unknown>[] = [];\n\t\twhile (stmt.step()) {\n\t\t\trows.push(stmt.getAsObject());\n\t\t}\n\n\t\tstmt.free();\n\n\t\treturn (customResultMapper as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown)(rows, normalizeFieldValue) as T['all'];\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst result = stmt.getAsObject(params as BindParams);\n\n\t\t\tstmt.free();\n\n\t\t\treturn result;\n\t\t}\n\n\t\tconst row = stmt.get(params as BindParams);\n\n\t\tstmt.free();\n\n\t\tif (!row || (row.length === 0 && fields!.length > 0)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (\n\t\t\t\trows: unknown[][],\n\t\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t\t) => unknown)([row], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row.map((v) => normalizeFieldValue(v)), joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { customResultMapper } = this;\n\n\t\tconst row = stmt.getAsObject(params as BindParams);\n\n\t\tstmt.free();\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet nonUndef = false;\n\t\tfor (const v of Object.values(row)) {\n\t\t\tif (v !== undefined) {\n\t\t\t\tnonUndef = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!nonUndef) return undefined;\n\n\t\treturn (customResultMapper as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown)([row], normalizeFieldValue) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst stmt = this.client.prepare(this.query.sql);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tstmt.bind(params as BindParams);\n\t\tconst rows: unknown[] = [];\n\t\twhile (stmt.step()) {\n\t\t\trows.push(stmt.get());\n\t\t}\n\n\t\tstmt.free();\n\n\t\treturn rows;\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (value instanceof Uint8Array) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
@@ -27,41 +27,65 @@ var import_selection_proxy = require("../selection-proxy.cjs");
27
27
  var import_sql = require("../sql/sql.cjs");
28
28
  var import_query_builders = require("./query-builders/index.cjs");
29
29
  var import_subquery = require("../subquery.cjs");
30
+ var import_query = require("./query-builders/_query.cjs");
30
31
  var import_count = require("./query-builders/count.cjs");
31
- var import_query = require("./query-builders/query.cjs");
32
+ var import_query2 = require("./query-builders/query.cjs");
32
33
  var import_raw = require("./query-builders/raw.cjs");
33
34
  class BaseSQLiteDatabase {
34
- constructor(resultKind, dialect, session, schema) {
35
+ constructor(resultKind, dialect, session, relations, _schema, rowModeRQB) {
35
36
  this.resultKind = resultKind;
36
37
  this.dialect = dialect;
37
38
  this.session = session;
38
- this._ = schema ? {
39
- schema: schema.schema,
40
- fullSchema: schema.fullSchema,
41
- tableNamesMap: schema.tableNamesMap
39
+ this.rowModeRQB = rowModeRQB;
40
+ const rel = relations ?? {};
41
+ this._ = _schema ? {
42
+ schema: _schema.schema,
43
+ fullSchema: _schema.fullSchema,
44
+ tableNamesMap: _schema.tableNamesMap,
45
+ relations: rel
42
46
  } : {
43
47
  schema: void 0,
44
48
  fullSchema: {},
45
- tableNamesMap: {}
49
+ tableNamesMap: {},
50
+ relations: rel
46
51
  };
47
- this.query = {};
48
- const query = this.query;
52
+ this._query = {};
53
+ const query = this._query;
49
54
  if (this._.schema) {
50
55
  for (const [tableName, columns] of Object.entries(this._.schema)) {
51
- query[tableName] = new import_query.RelationalQueryBuilder(
56
+ query[tableName] = new import_query._RelationalQueryBuilder(
52
57
  resultKind,
53
- schema.fullSchema,
58
+ _schema.fullSchema,
54
59
  this._.schema,
55
60
  this._.tableNamesMap,
56
- schema.fullSchema[tableName],
61
+ _schema.fullSchema[tableName],
57
62
  columns,
58
63
  dialect,
59
64
  session
60
65
  );
61
66
  }
62
67
  }
68
+ this.query = {};
69
+ if (relations) {
70
+ for (const [tableName, relation] of Object.entries(relations.tablesConfig)) {
71
+ this.query[tableName] = new import_query2.RelationalQueryBuilder(
72
+ resultKind,
73
+ relations.tables,
74
+ relations.tablesConfig,
75
+ relations.tableNamesMap,
76
+ relation.table,
77
+ relation,
78
+ dialect,
79
+ session,
80
+ rowModeRQB
81
+ );
82
+ }
83
+ }
63
84
  }
64
85
  static [import_entity.entityKind] = "BaseSQLiteDatabase";
86
+ /** @deprecated */
87
+ _query;
88
+ // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
65
89
  query;
66
90
  /**
67
91
  * Creates a subquery that defines a temporary named result set as a CTE.
@@ -95,24 +119,20 @@ class BaseSQLiteDatabase {
95
119
  * const result = await db.with(sq).select({ name: sq.name }).from(sq);
96
120
  * ```
97
121
  */
98
- $with = (alias, selection) => {
122
+ $with(alias) {
99
123
  const self = this;
100
- const as = (qb) => {
101
- if (typeof qb === "function") {
102
- qb = qb(new import_query_builders.QueryBuilder(self.dialect));
124
+ return {
125
+ as(qb) {
126
+ if (typeof qb === "function") {
127
+ qb = qb(new import_query_builders.QueryBuilder(self.dialect));
128
+ }
129
+ return new Proxy(
130
+ new import_subquery.WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true),
131
+ new import_selection_proxy.SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
132
+ );
103
133
  }
104
- return new Proxy(
105
- new import_subquery.WithSubquery(
106
- qb.getSQL(),
107
- selection ?? ("getSelectedFields" in qb ? qb.getSelectedFields() ?? {} : {}),
108
- alias,
109
- true
110
- ),
111
- new import_selection_proxy.SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
112
- );
113
134
  };
114
- return { as };
115
- };
135
+ }
116
136
  $count(source, filters) {
117
137
  return new import_count.SQLiteCountBuilder({ source, filters, session: this.session });
118
138
  }
@@ -319,7 +339,6 @@ class BaseSQLiteDatabase {
319
339
  const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {
320
340
  const select = (...args) => getReplica(replicas).select(...args);
321
341
  const selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);
322
- const $count = (...args) => getReplica(replicas).$count(...args);
323
342
  const $with = (...args) => getReplica(replicas).with(...args);
324
343
  const update = (...args) => primary.update(...args);
325
344
  const insert = (...args) => primary.insert(...args);
@@ -342,10 +361,9 @@ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(
342
361
  $primary: primary,
343
362
  select,
344
363
  selectDistinct,
345
- $count,
346
364
  with: $with,
347
- get query() {
348
- return getReplica(replicas).query;
365
+ get _query() {
366
+ return getReplica(replicas)._query;
349
367
  }
350
368
  };
351
369
  };