drizzle-orm 0.38.4-b776df4 → 0.38.4-e36471e

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 (693) 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 +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 +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-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 +51 -15
  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 +161 -488
  310. package/pg-core/dialect.cjs.map +1 -1
  311. package/pg-core/dialect.d.cts +24 -7
  312. package/pg-core/dialect.d.ts +24 -7
  313. package/pg-core/dialect.js +158 -494
  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 +595 -245
  471. package/relations.cjs.map +1 -1
  472. package/relations.d.cts +276 -131
  473. package/relations.d.ts +276 -131
  474. package/relations.js +589 -239
  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-proxy/driver.cjs +1 -1
  518. package/singlestore-proxy/driver.cjs.map +1 -1
  519. package/singlestore-proxy/driver.js +3 -3
  520. package/singlestore-proxy/driver.js.map +1 -1
  521. package/singlestore-proxy/session.cjs.map +1 -1
  522. package/singlestore-proxy/session.d.cts +4 -4
  523. package/singlestore-proxy/session.d.ts +4 -4
  524. package/singlestore-proxy/session.js.map +1 -1
  525. package/sql/sql.cjs +1 -6
  526. package/sql/sql.cjs.map +1 -1
  527. package/sql/sql.d.cts +8 -9
  528. package/sql/sql.d.ts +8 -9
  529. package/sql/sql.js +1 -5
  530. package/sql/sql.js.map +1 -1
  531. package/sql-js/driver.cjs +16 -5
  532. package/sql-js/driver.cjs.map +1 -1
  533. package/sql-js/driver.d.cts +3 -2
  534. package/sql-js/driver.d.ts +3 -2
  535. package/sql-js/driver.js +6 -8
  536. package/sql-js/driver.js.map +1 -1
  537. package/sql-js/migrator.cjs.map +1 -1
  538. package/sql-js/migrator.d.cts +2 -1
  539. package/sql-js/migrator.d.ts +2 -1
  540. package/sql-js/migrator.js.map +1 -1
  541. package/sql-js/session.cjs +76 -4
  542. package/sql-js/session.cjs.map +1 -1
  543. package/sql-js/session.d.cts +15 -8
  544. package/sql-js/session.d.ts +15 -8
  545. package/sql-js/session.js +76 -4
  546. package/sql-js/session.js.map +1 -1
  547. package/sqlite-core/db.cjs +49 -31
  548. package/sqlite-core/db.cjs.map +1 -1
  549. package/sqlite-core/db.d.cts +23 -12
  550. package/sqlite-core/db.d.ts +23 -12
  551. package/sqlite-core/db.js +48 -30
  552. package/sqlite-core/db.js.map +1 -1
  553. package/sqlite-core/dialect.cjs +183 -7
  554. package/sqlite-core/dialect.cjs.map +1 -1
  555. package/sqlite-core/dialect.d.cts +28 -9
  556. package/sqlite-core/dialect.d.ts +28 -9
  557. package/sqlite-core/dialect.js +180 -13
  558. package/sqlite-core/dialect.js.map +1 -1
  559. package/sqlite-core/query-builders/_query.cjs +187 -0
  560. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  561. package/sqlite-core/query-builders/_query.d.cts +55 -0
  562. package/sqlite-core/query-builders/_query.d.ts +55 -0
  563. package/sqlite-core/query-builders/_query.js +151 -0
  564. package/sqlite-core/query-builders/_query.js.map +1 -0
  565. package/sqlite-core/query-builders/count.cjs.map +1 -1
  566. package/sqlite-core/query-builders/count.d.cts +1 -1
  567. package/sqlite-core/query-builders/count.d.ts +1 -1
  568. package/sqlite-core/query-builders/count.js.map +1 -1
  569. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  570. package/sqlite-core/query-builders/delete.d.cts +1 -1
  571. package/sqlite-core/query-builders/delete.d.ts +1 -1
  572. package/sqlite-core/query-builders/delete.js.map +1 -1
  573. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  574. package/sqlite-core/query-builders/insert.d.cts +3 -3
  575. package/sqlite-core/query-builders/insert.d.ts +3 -3
  576. package/sqlite-core/query-builders/insert.js.map +1 -1
  577. package/sqlite-core/query-builders/query-builder.cjs +11 -15
  578. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  579. package/sqlite-core/query-builders/query-builder.d.cts +6 -2
  580. package/sqlite-core/query-builders/query-builder.d.ts +6 -2
  581. package/sqlite-core/query-builders/query-builder.js +11 -15
  582. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  583. package/sqlite-core/query-builders/query.cjs +53 -32
  584. package/sqlite-core/query-builders/query.cjs.map +1 -1
  585. package/sqlite-core/query-builders/query.d.cts +18 -17
  586. package/sqlite-core/query-builders/query.d.ts +18 -17
  587. package/sqlite-core/query-builders/query.js +53 -32
  588. package/sqlite-core/query-builders/query.js.map +1 -1
  589. package/sqlite-core/query-builders/select.cjs.map +1 -1
  590. package/sqlite-core/query-builders/select.d.cts +3 -3
  591. package/sqlite-core/query-builders/select.d.ts +3 -3
  592. package/sqlite-core/query-builders/select.js.map +1 -1
  593. package/sqlite-core/query-builders/update.cjs.map +1 -1
  594. package/sqlite-core/query-builders/update.d.cts +3 -3
  595. package/sqlite-core/query-builders/update.d.ts +3 -3
  596. package/sqlite-core/query-builders/update.js.map +1 -1
  597. package/sqlite-core/session.cjs +6 -2
  598. package/sqlite-core/session.cjs.map +1 -1
  599. package/sqlite-core/session.d.cts +15 -7
  600. package/sqlite-core/session.d.ts +15 -7
  601. package/sqlite-core/session.js +6 -2
  602. package/sqlite-core/session.js.map +1 -1
  603. package/sqlite-core/subquery.cjs.map +1 -1
  604. package/sqlite-core/subquery.d.cts +2 -15
  605. package/sqlite-core/subquery.d.ts +2 -15
  606. package/sqlite-proxy/driver.cjs +23 -5
  607. package/sqlite-proxy/driver.cjs.map +1 -1
  608. package/sqlite-proxy/driver.d.cts +4 -3
  609. package/sqlite-proxy/driver.d.ts +4 -3
  610. package/sqlite-proxy/driver.js +13 -5
  611. package/sqlite-proxy/driver.js.map +1 -1
  612. package/sqlite-proxy/migrator.cjs.map +1 -1
  613. package/sqlite-proxy/migrator.d.cts +2 -1
  614. package/sqlite-proxy/migrator.d.ts +2 -1
  615. package/sqlite-proxy/migrator.js.map +1 -1
  616. package/sqlite-proxy/session.cjs +50 -6
  617. package/sqlite-proxy/session.cjs.map +1 -1
  618. package/sqlite-proxy/session.d.cts +14 -8
  619. package/sqlite-proxy/session.d.ts +14 -8
  620. package/sqlite-proxy/session.js +50 -6
  621. package/sqlite-proxy/session.js.map +1 -1
  622. package/subquery.cjs.map +1 -1
  623. package/subquery.d.cts +0 -1
  624. package/subquery.d.ts +0 -1
  625. package/subquery.js.map +1 -1
  626. package/table.cjs.map +1 -1
  627. package/table.d.cts +1 -1
  628. package/table.d.ts +1 -1
  629. package/table.js.map +1 -1
  630. package/tidb-serverless/driver.cjs +22 -5
  631. package/tidb-serverless/driver.cjs.map +1 -1
  632. package/tidb-serverless/driver.d.cts +7 -6
  633. package/tidb-serverless/driver.d.ts +7 -6
  634. package/tidb-serverless/driver.js +12 -8
  635. package/tidb-serverless/driver.js.map +1 -1
  636. package/tidb-serverless/migrator.cjs.map +1 -1
  637. package/tidb-serverless/migrator.d.cts +2 -1
  638. package/tidb-serverless/migrator.d.ts +2 -1
  639. package/tidb-serverless/migrator.js.map +1 -1
  640. package/tidb-serverless/session.cjs +62 -5
  641. package/tidb-serverless/session.cjs.map +1 -1
  642. package/tidb-serverless/session.d.cts +14 -9
  643. package/tidb-serverless/session.d.ts +14 -9
  644. package/tidb-serverless/session.js +62 -5
  645. package/tidb-serverless/session.js.map +1 -1
  646. package/utils.cjs +2 -2
  647. package/utils.cjs.map +1 -1
  648. package/utils.d.cts +3 -1
  649. package/utils.d.ts +3 -1
  650. package/utils.js +2 -2
  651. package/utils.js.map +1 -1
  652. package/vercel-postgres/driver.cjs +23 -7
  653. package/vercel-postgres/driver.cjs.map +1 -1
  654. package/vercel-postgres/driver.d.cts +9 -8
  655. package/vercel-postgres/driver.d.ts +9 -8
  656. package/vercel-postgres/driver.js +13 -10
  657. package/vercel-postgres/driver.js.map +1 -1
  658. package/vercel-postgres/migrator.cjs.map +1 -1
  659. package/vercel-postgres/migrator.d.cts +2 -1
  660. package/vercel-postgres/migrator.d.ts +2 -1
  661. package/vercel-postgres/migrator.js.map +1 -1
  662. package/vercel-postgres/session.cjs +34 -8
  663. package/vercel-postgres/session.cjs.map +1 -1
  664. package/vercel-postgres/session.d.cts +14 -10
  665. package/vercel-postgres/session.d.ts +14 -10
  666. package/vercel-postgres/session.js +34 -8
  667. package/vercel-postgres/session.js.map +1 -1
  668. package/version.cjs +1 -1
  669. package/version.d.cts +1 -1
  670. package/version.d.ts +1 -1
  671. package/version.js +1 -1
  672. package/xata-http/driver.cjs +17 -5
  673. package/xata-http/driver.cjs.map +1 -1
  674. package/xata-http/driver.d.cts +5 -4
  675. package/xata-http/driver.d.ts +5 -4
  676. package/xata-http/driver.js +7 -5
  677. package/xata-http/driver.js.map +1 -1
  678. package/xata-http/migrator.cjs.map +1 -1
  679. package/xata-http/migrator.d.cts +2 -1
  680. package/xata-http/migrator.d.ts +2 -1
  681. package/xata-http/migrator.js.map +1 -1
  682. package/xata-http/session.cjs +30 -2
  683. package/xata-http/session.cjs.map +1 -1
  684. package/xata-http/session.d.cts +13 -8
  685. package/xata-http/session.d.ts +13 -8
  686. package/xata-http/session.js +30 -2
  687. package/xata-http/session.js.map +1 -1
  688. package/neon/neon-identity.cjs +0 -38
  689. package/neon/neon-identity.cjs.map +0 -1
  690. package/neon/neon-identity.d.cts +0 -116
  691. package/neon/neon-identity.d.ts +0 -116
  692. package/neon/neon-identity.js +0 -14
  693. package/neon/neon-identity.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';
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 { SQLiteAsyncDialect } from "../sqlite-core/dialect.cjs";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.cjs";
@@ -11,20 +12,22 @@ export interface OPSQLiteSessionOptions {
11
12
  logger?: Logger;
12
13
  }
13
14
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
14
- export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {
15
+ export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', QueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
15
16
  private client;
17
+ private relations;
16
18
  private schema;
17
19
  static readonly [entityKind]: string;
18
20
  private logger;
19
- constructor(client: OPSQLiteConnection, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: OPSQLiteSessionOptions);
21
+ constructor(client: OPSQLiteConnection, dialect: SQLiteAsyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: OPSQLiteSessionOptions);
20
22
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): OPSQLitePreparedQuery<T>;
21
- transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
23
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): OPSQLitePreparedQuery<T, true>;
24
+ transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T, config?: SQLiteTransactionConfig): T;
22
25
  }
23
- export declare class OPSQLiteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {
26
+ export declare class OPSQLiteTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
24
27
  static readonly [entityKind]: string;
25
- transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T;
28
+ transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T): T;
26
29
  }
27
- export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
30
+ export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
28
31
  type: 'async';
29
32
  run: QueryResult;
30
33
  all: T['all'];
@@ -37,11 +40,14 @@ export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = Prepa
37
40
  private fields;
38
41
  private _isResponseInArrayMode;
39
42
  private customResultMapper?;
43
+ private isRqbV2Query?;
40
44
  static readonly [entityKind]: string;
41
- constructor(client: OPSQLiteConnection, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
45
+ constructor(client: OPSQLiteConnection, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
42
46
  run(placeholderValues?: Record<string, unknown>): Promise<QueryResult>;
43
47
  all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
48
+ private allRqbV2;
44
49
  get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
50
+ private getRqbV2;
45
51
  values(placeholderValues?: Record<string, unknown>): Promise<T['values']>;
46
52
  }
47
53
  export {};
@@ -1,7 +1,8 @@
1
1
  import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';
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 { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.js";
@@ -11,20 +12,22 @@ export interface OPSQLiteSessionOptions {
11
12
  logger?: Logger;
12
13
  }
13
14
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
14
- export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {
15
+ export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', QueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
15
16
  private client;
17
+ private relations;
16
18
  private schema;
17
19
  static readonly [entityKind]: string;
18
20
  private logger;
19
- constructor(client: OPSQLiteConnection, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: OPSQLiteSessionOptions);
21
+ constructor(client: OPSQLiteConnection, dialect: SQLiteAsyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: OPSQLiteSessionOptions);
20
22
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): OPSQLitePreparedQuery<T>;
21
- transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
23
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): OPSQLitePreparedQuery<T, true>;
24
+ transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T, config?: SQLiteTransactionConfig): T;
22
25
  }
23
- export declare class OPSQLiteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {
26
+ export declare class OPSQLiteTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
24
27
  static readonly [entityKind]: string;
25
- transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T;
28
+ transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T): T;
26
29
  }
27
- export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
30
+ export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
28
31
  type: 'async';
29
32
  run: QueryResult;
30
33
  all: T['all'];
@@ -37,11 +40,14 @@ export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = Prepa
37
40
  private fields;
38
41
  private _isResponseInArrayMode;
39
42
  private customResultMapper?;
43
+ private isRqbV2Query?;
40
44
  static readonly [entityKind]: string;
41
- constructor(client: OPSQLiteConnection, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
45
+ constructor(client: OPSQLiteConnection, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
42
46
  run(placeholderValues?: Record<string, unknown>): Promise<QueryResult>;
43
47
  all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
48
+ private allRqbV2;
44
49
  get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
50
+ private getRqbV2;
45
51
  values(placeholderValues?: Record<string, unknown>): Promise<T['values']>;
46
52
  }
47
53
  export {};
@@ -8,9 +8,10 @@ import {
8
8
  } from "../sqlite-core/session.js";
9
9
  import { mapResultRow } from "../utils.js";
10
10
  class OPSQLiteSession extends SQLiteSession {
11
- constructor(client, dialect, schema, options = {}) {
11
+ constructor(client, dialect, relations, schema, options = {}) {
12
12
  super(dialect);
13
13
  this.client = client;
14
+ this.relations = relations;
14
15
  this.schema = schema;
15
16
  this.logger = options.logger ?? new NoopLogger();
16
17
  }
@@ -27,8 +28,20 @@ class OPSQLiteSession extends SQLiteSession {
27
28
  customResultMapper
28
29
  );
29
30
  }
31
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
32
+ return new OPSQLitePreparedQuery(
33
+ this.client,
34
+ query,
35
+ this.logger,
36
+ fields,
37
+ executeMethod,
38
+ false,
39
+ customResultMapper,
40
+ true
41
+ );
42
+ }
30
43
  transaction(transaction, config = {}) {
31
- const tx = new OPSQLiteTransaction("async", this.dialect, this, this.schema);
44
+ const tx = new OPSQLiteTransaction("async", this.dialect, this, this.relations, this.schema);
32
45
  this.run(sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
33
46
  try {
34
47
  const result = transaction(tx);
@@ -44,7 +57,14 @@ class OPSQLiteTransaction extends SQLiteTransaction {
44
57
  static [entityKind] = "OPSQLiteTransaction";
45
58
  transaction(transaction) {
46
59
  const savepointName = `sp${this.nestedIndex}`;
47
- const tx = new OPSQLiteTransaction("async", this.dialect, this.session, this.schema, this.nestedIndex + 1);
60
+ const tx = new OPSQLiteTransaction(
61
+ "async",
62
+ this.dialect,
63
+ this.session,
64
+ this.relations,
65
+ this.schema,
66
+ this.nestedIndex + 1
67
+ );
48
68
  this.session.run(sql.raw(`savepoint ${savepointName}`));
49
69
  try {
50
70
  const result = transaction(tx);
@@ -57,13 +77,14 @@ class OPSQLiteTransaction extends SQLiteTransaction {
57
77
  }
58
78
  }
59
79
  class OPSQLitePreparedQuery extends SQLitePreparedQuery {
60
- constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
80
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
61
81
  super("sync", executeMethod, query);
62
82
  this.client = client;
63
83
  this.logger = logger;
64
84
  this.fields = fields;
65
85
  this._isResponseInArrayMode = _isResponseInArrayMode;
66
86
  this.customResultMapper = customResultMapper;
87
+ this.isRqbV2Query = isRqbV2Query;
67
88
  }
68
89
  static [entityKind] = "OPSQLitePreparedQuery";
69
90
  run(placeholderValues) {
@@ -72,6 +93,8 @@ class OPSQLitePreparedQuery extends SQLitePreparedQuery {
72
93
  return this.client.executeAsync(this.query.sql, params);
73
94
  }
74
95
  async all(placeholderValues) {
96
+ if (this.isRqbV2Query)
97
+ return this.allRqbV2(placeholderValues);
75
98
  const { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = this;
76
99
  if (!fields && !customResultMapper) {
77
100
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
@@ -84,7 +107,16 @@ class OPSQLitePreparedQuery extends SQLitePreparedQuery {
84
107
  }
85
108
  return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
86
109
  }
110
+ async allRqbV2(placeholderValues) {
111
+ const { query, logger, customResultMapper, client } = this;
112
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
113
+ logger.logQuery(query.sql, params);
114
+ const rows = client.execute(query.sql, params).rows?._array || [];
115
+ return customResultMapper(rows);
116
+ }
87
117
  async get(placeholderValues) {
118
+ if (this.isRqbV2Query)
119
+ return this.getRqbV2(placeholderValues);
88
120
  const { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;
89
121
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
90
122
  logger.logQuery(query.sql, params);
@@ -102,6 +134,17 @@ class OPSQLitePreparedQuery extends SQLitePreparedQuery {
102
134
  }
103
135
  return mapResultRow(fields, row, joinsNotNullableMap);
104
136
  }
137
+ async getRqbV2(placeholderValues) {
138
+ const { customResultMapper, query, logger, client } = this;
139
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
140
+ logger.logQuery(query.sql, params);
141
+ const rows = client.execute(query.sql, params).rows?._array || [];
142
+ const row = rows[0];
143
+ if (!row) {
144
+ return void 0;
145
+ }
146
+ return customResultMapper([row]);
147
+ }
105
148
  values(placeholderValues) {
106
149
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
107
150
  this.logger.logQuery(this.query.sql, params);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/op-sqlite/session.ts"],"sourcesContent":["import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';\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 { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface OPSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class OPSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: OPSQLiteSessionOptions = {},\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\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): OPSQLitePreparedQuery<T> {\n\t\treturn new OPSQLitePreparedQuery(\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\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new OPSQLiteTransaction('async', 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 OPSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'OPSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\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[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<QueryResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\treturn this.client.executeAsync(this.query.sql, params);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn client.execute(query.sql, params).rows?._array || [];\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst rows = client.execute(query.sql, params).rows?._array || [];\n\t\t\treturn rows[0];\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client.executeRawAsync(this.query.sql, params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/op-sqlite/session.ts"],"sourcesContent":["import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';\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 { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface OPSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class OPSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'async', QueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: OPSQLiteSessionOptions = {},\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\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): OPSQLitePreparedQuery<T> {\n\t\treturn new OPSQLitePreparedQuery(\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\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\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): OPSQLitePreparedQuery<T, true> {\n\t\treturn new OPSQLitePreparedQuery(\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: OPSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new OPSQLiteTransaction('async', 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 OPSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: OPSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new OPSQLiteTransaction(\n\t\t\t'async',\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\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLitePreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'OPSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\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) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<QueryResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\treturn this.client.executeAsync(this.query.sql, params);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn client.execute(query.sql, params).rows?._array || [];\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async allRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { query, logger, customResultMapper, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = client.execute(query.sql, params).rows?._array || [];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows) as T['all'];\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst rows = client.execute(query.sql, params).rows?._array || [];\n\t\t\treturn rows[0];\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate async getRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { customResultMapper, query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = client.execute(query.sql, params).rows?._array || [];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client.executeRawAsync(this.query.sql, params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["rows"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.38.4-b776df4",
3
+ "version": "0.38.4-e36471e",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -62,7 +62,7 @@
62
62
  "@types/sql.js": "*",
63
63
  "@vercel/postgres": ">=0.8.0",
64
64
  "@xata.io/client": "*",
65
- "better-sqlite3": ">=7",
65
+ "better-sqlite3": ">=9.3.0",
66
66
  "bun-types": "*",
67
67
  "expo-sqlite": ">=14.0.0",
68
68
  "knex": "*",
@@ -184,7 +184,7 @@
184
184
  "@types/sql.js": "^1.4.4",
185
185
  "@vercel/postgres": "^0.8.0",
186
186
  "@xata.io/client": "^0.29.3",
187
- "better-sqlite3": "^8.4.0",
187
+ "better-sqlite3": "^9.3.0",
188
188
  "bun-types": "^0.6.6",
189
189
  "cpy": "^10.1.0",
190
190
  "expo-sqlite": "^14.0.0",
@@ -205,6 +205,18 @@
205
205
  "zx": "^7.2.2"
206
206
  },
207
207
  "exports": {
208
+ "./_relations": {
209
+ "import": {
210
+ "types": "./_relations.d.ts",
211
+ "default": "./_relations.js"
212
+ },
213
+ "require": {
214
+ "types": "./_relations.d.cts",
215
+ "default": "./_relations.cjs"
216
+ },
217
+ "types": "./_relations.d.ts",
218
+ "default": "./_relations.js"
219
+ },
208
220
  "./alias": {
209
221
  "import": {
210
222
  "types": "./alias.d.ts",
@@ -1177,18 +1189,6 @@
1177
1189
  "types": "./neon/index.d.ts",
1178
1190
  "default": "./neon/index.js"
1179
1191
  },
1180
- "./neon/neon-identity": {
1181
- "import": {
1182
- "types": "./neon/neon-identity.d.ts",
1183
- "default": "./neon/neon-identity.js"
1184
- },
1185
- "require": {
1186
- "types": "./neon/neon-identity.d.cts",
1187
- "default": "./neon/neon-identity.cjs"
1188
- },
1189
- "types": "./neon/neon-identity.d.ts",
1190
- "default": "./neon/neon-identity.js"
1191
- },
1192
1192
  "./neon/rls": {
1193
1193
  "import": {
1194
1194
  "types": "./neon/rls.d.ts",
@@ -3109,6 +3109,18 @@
3109
3109
  "types": "./mysql-core/columns/year.d.ts",
3110
3110
  "default": "./mysql-core/columns/year.js"
3111
3111
  },
3112
+ "./mysql-core/query-builders/_query": {
3113
+ "import": {
3114
+ "types": "./mysql-core/query-builders/_query.d.ts",
3115
+ "default": "./mysql-core/query-builders/_query.js"
3116
+ },
3117
+ "require": {
3118
+ "types": "./mysql-core/query-builders/_query.d.cts",
3119
+ "default": "./mysql-core/query-builders/_query.cjs"
3120
+ },
3121
+ "types": "./mysql-core/query-builders/_query.d.ts",
3122
+ "default": "./mysql-core/query-builders/_query.js"
3123
+ },
3112
3124
  "./mysql-core/query-builders/count": {
3113
3125
  "import": {
3114
3126
  "types": "./mysql-core/query-builders/count.d.ts",
@@ -3613,6 +3625,18 @@
3613
3625
  "types": "./pg-core/columns/varchar.d.ts",
3614
3626
  "default": "./pg-core/columns/varchar.js"
3615
3627
  },
3628
+ "./pg-core/query-builders/_query": {
3629
+ "import": {
3630
+ "types": "./pg-core/query-builders/_query.d.ts",
3631
+ "default": "./pg-core/query-builders/_query.js"
3632
+ },
3633
+ "require": {
3634
+ "types": "./pg-core/query-builders/_query.d.cts",
3635
+ "default": "./pg-core/query-builders/_query.cjs"
3636
+ },
3637
+ "types": "./pg-core/query-builders/_query.d.ts",
3638
+ "default": "./pg-core/query-builders/_query.js"
3639
+ },
3616
3640
  "./pg-core/query-builders/count": {
3617
3641
  "import": {
3618
3642
  "types": "./pg-core/query-builders/count.d.ts",
@@ -4501,6 +4525,18 @@
4501
4525
  "types": "./sqlite-core/columns/text.d.ts",
4502
4526
  "default": "./sqlite-core/columns/text.js"
4503
4527
  },
4528
+ "./sqlite-core/query-builders/_query": {
4529
+ "import": {
4530
+ "types": "./sqlite-core/query-builders/_query.d.ts",
4531
+ "default": "./sqlite-core/query-builders/_query.js"
4532
+ },
4533
+ "require": {
4534
+ "types": "./sqlite-core/query-builders/_query.d.cts",
4535
+ "default": "./sqlite-core/query-builders/_query.cjs"
4536
+ },
4537
+ "types": "./sqlite-core/query-builders/_query.d.ts",
4538
+ "default": "./sqlite-core/query-builders/_query.js"
4539
+ },
4504
4540
  "./sqlite-core/query-builders/count": {
4505
4541
  "import": {
4506
4542
  "types": "./sqlite-core/query-builders/count.d.ts",
package/pg-core/db.cjs CHANGED
@@ -27,29 +27,33 @@ var import_query_builders = require("./query-builders/index.cjs");
27
27
  var import_selection_proxy = require("../selection-proxy.cjs");
28
28
  var import_sql = require("../sql/sql.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
  var import_refresh_materialized_view = require("./query-builders/refresh-materialized-view.cjs");
34
35
  class PgDatabase {
35
- constructor(dialect, session, schema) {
36
+ constructor(dialect, session, relations, schema) {
36
37
  this.dialect = dialect;
37
38
  this.session = session;
39
+ const rel = relations ?? {};
38
40
  this._ = schema ? {
39
41
  schema: schema.schema,
40
42
  fullSchema: schema.fullSchema,
41
43
  tableNamesMap: schema.tableNamesMap,
44
+ relations: rel,
42
45
  session
43
46
  } : {
44
47
  schema: void 0,
45
48
  fullSchema: {},
46
49
  tableNamesMap: {},
50
+ relations: rel,
47
51
  session
48
52
  };
49
- this.query = {};
53
+ this._query = {};
50
54
  if (this._.schema) {
51
55
  for (const [tableName, columns] of Object.entries(this._.schema)) {
52
- this.query[tableName] = new import_query.RelationalQueryBuilder(
56
+ this._query[tableName] = new import_query._RelationalQueryBuilder(
53
57
  schema.fullSchema,
54
58
  this._.schema,
55
59
  this._.tableNamesMap,
@@ -60,8 +64,25 @@ class PgDatabase {
60
64
  );
61
65
  }
62
66
  }
67
+ this.query = {};
68
+ if (relations) {
69
+ for (const [tableName, relation] of Object.entries(relations.tablesConfig)) {
70
+ this.query[tableName] = new import_query2.RelationalQueryBuilder(
71
+ relations.tables,
72
+ relations.tablesConfig,
73
+ relations.tableNamesMap,
74
+ relation.table,
75
+ relation,
76
+ dialect,
77
+ session
78
+ );
79
+ }
80
+ }
63
81
  }
64
82
  static [import_entity.entityKind] = "PgDatabase";
83
+ /** @deprecated */
84
+ _query;
85
+ // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
65
86
  query;
66
87
  /**
67
88
  * Creates a subquery that defines a temporary named result set as a CTE.
@@ -95,24 +116,20 @@ class PgDatabase {
95
116
  * const result = await db.with(sq).select({ name: sq.name }).from(sq);
96
117
  * ```
97
118
  */
98
- $with = (alias, selection) => {
119
+ $with(alias) {
99
120
  const self = this;
100
- const as = (qb) => {
101
- if (typeof qb === "function") {
102
- qb = qb(new import_query_builders.QueryBuilder(self.dialect));
121
+ return {
122
+ as(qb) {
123
+ if (typeof qb === "function") {
124
+ qb = qb(new import_query_builders.QueryBuilder(self.dialect));
125
+ }
126
+ return new Proxy(
127
+ new import_subquery.WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true),
128
+ new import_selection_proxy.SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
129
+ );
103
130
  }
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
131
  };
114
- return { as };
115
- };
132
+ }
116
133
  $count(source, filters) {
117
134
  return new import_count.PgCountBuilder({ source, filters, session: this.session });
118
135
  }
@@ -302,14 +319,16 @@ class PgDatabase {
302
319
  );
303
320
  }
304
321
  transaction(transaction, config) {
305
- return this.session.transaction(transaction, config);
322
+ return this.session.transaction(
323
+ transaction,
324
+ config
325
+ );
306
326
  }
307
327
  }
308
328
  const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {
309
329
  const select = (...args) => getReplica(replicas).select(...args);
310
330
  const selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);
311
331
  const selectDistinctOn = (...args) => getReplica(replicas).selectDistinctOn(...args);
312
- const $count = (...args) => getReplica(replicas).$count(...args);
313
332
  const _with = (...args) => getReplica(replicas).with(...args);
314
333
  const $with = (arg) => getReplica(replicas).$with(arg);
315
334
  const update = (...args) => primary.update(...args);
@@ -330,11 +349,10 @@ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(
330
349
  select,
331
350
  selectDistinct,
332
351
  selectDistinctOn,
333
- $count,
334
352
  $with,
335
353
  with: _with,
336
- get query() {
337
- return getReplica(replicas).query;
354
+ get _query() {
355
+ return getReplica(replicas)._query;
338
356
  }
339
357
  };
340
358
  };