drizzle-orm 0.36.4-14e59f4 → 0.36.4-3c69a1f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (971) 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/column-builder.cjs.map +1 -1
  60. package/column-builder.d.cts +3 -4
  61. package/column-builder.d.ts +3 -4
  62. package/column-builder.js.map +1 -1
  63. package/d1/driver.cjs +22 -5
  64. package/d1/driver.cjs.map +1 -1
  65. package/d1/driver.d.cts +3 -2
  66. package/d1/driver.d.ts +3 -2
  67. package/d1/driver.js +12 -8
  68. package/d1/driver.js.map +1 -1
  69. package/d1/migrator.cjs.map +1 -1
  70. package/d1/migrator.d.cts +2 -1
  71. package/d1/migrator.d.ts +2 -1
  72. package/d1/migrator.js.map +1 -1
  73. package/d1/session.cjs +48 -6
  74. package/d1/session.cjs.map +1 -1
  75. package/d1/session.d.cts +15 -8
  76. package/d1/session.d.ts +15 -8
  77. package/d1/session.js +48 -6
  78. package/d1/session.js.map +1 -1
  79. package/expo-sqlite/driver.cjs +22 -5
  80. package/expo-sqlite/driver.cjs.map +1 -1
  81. package/expo-sqlite/driver.d.cts +3 -2
  82. package/expo-sqlite/driver.d.ts +3 -2
  83. package/expo-sqlite/driver.js +12 -8
  84. package/expo-sqlite/driver.js.map +1 -1
  85. package/expo-sqlite/migrator.cjs.map +1 -1
  86. package/expo-sqlite/migrator.d.cts +3 -2
  87. package/expo-sqlite/migrator.d.ts +3 -2
  88. package/expo-sqlite/migrator.js.map +1 -1
  89. package/expo-sqlite/query.cjs +13 -2
  90. package/expo-sqlite/query.cjs.map +1 -1
  91. package/expo-sqlite/query.d.cts +2 -1
  92. package/expo-sqlite/query.d.ts +2 -1
  93. package/expo-sqlite/query.js +3 -2
  94. package/expo-sqlite/query.js.map +1 -1
  95. package/expo-sqlite/session.cjs +47 -4
  96. package/expo-sqlite/session.cjs.map +1 -1
  97. package/expo-sqlite/session.d.cts +14 -8
  98. package/expo-sqlite/session.d.ts +14 -8
  99. package/expo-sqlite/session.js +47 -4
  100. package/expo-sqlite/session.js.map +1 -1
  101. package/libsql/driver-core.cjs +22 -5
  102. package/libsql/driver-core.cjs.map +1 -1
  103. package/libsql/driver-core.d.cts +2 -1
  104. package/libsql/driver-core.d.ts +2 -1
  105. package/libsql/driver-core.js +12 -8
  106. package/libsql/driver-core.js.map +1 -1
  107. package/libsql/driver.cjs.map +1 -1
  108. package/libsql/driver.d.cts +6 -5
  109. package/libsql/driver.d.ts +6 -5
  110. package/libsql/driver.js.map +1 -1
  111. package/libsql/http/index.cjs.map +1 -1
  112. package/libsql/http/index.d.cts +6 -5
  113. package/libsql/http/index.d.ts +6 -5
  114. package/libsql/http/index.js.map +1 -1
  115. package/libsql/migrator.cjs.map +1 -1
  116. package/libsql/migrator.d.cts +2 -1
  117. package/libsql/migrator.d.ts +2 -1
  118. package/libsql/migrator.js.map +1 -1
  119. package/libsql/node/index.cjs.map +1 -1
  120. package/libsql/node/index.d.cts +6 -5
  121. package/libsql/node/index.d.ts +6 -5
  122. package/libsql/node/index.js.map +1 -1
  123. package/libsql/session.cjs +60 -4
  124. package/libsql/session.cjs.map +1 -1
  125. package/libsql/session.d.cts +15 -9
  126. package/libsql/session.d.ts +15 -9
  127. package/libsql/session.js +60 -4
  128. package/libsql/session.js.map +1 -1
  129. package/libsql/sqlite3/index.cjs.map +1 -1
  130. package/libsql/sqlite3/index.d.cts +6 -5
  131. package/libsql/sqlite3/index.d.ts +6 -5
  132. package/libsql/sqlite3/index.js.map +1 -1
  133. package/libsql/wasm/index.cjs.map +1 -1
  134. package/libsql/wasm/index.d.cts +6 -5
  135. package/libsql/wasm/index.d.ts +6 -5
  136. package/libsql/wasm/index.js.map +1 -1
  137. package/libsql/web/index.cjs.map +1 -1
  138. package/libsql/web/index.d.cts +6 -5
  139. package/libsql/web/index.d.ts +6 -5
  140. package/libsql/web/index.js.map +1 -1
  141. package/libsql/ws/index.cjs.map +1 -1
  142. package/libsql/ws/index.d.cts +6 -5
  143. package/libsql/ws/index.d.ts +6 -5
  144. package/libsql/ws/index.js.map +1 -1
  145. package/mysql-core/db.cjs +29 -8
  146. package/mysql-core/db.cjs.map +1 -1
  147. package/mysql-core/db.d.cts +15 -8
  148. package/mysql-core/db.d.ts +15 -8
  149. package/mysql-core/db.js +28 -7
  150. package/mysql-core/db.js.map +1 -1
  151. package/mysql-core/dialect.cjs +170 -15
  152. package/mysql-core/dialect.cjs.map +1 -1
  153. package/mysql-core/dialect.d.cts +29 -13
  154. package/mysql-core/dialect.d.ts +29 -13
  155. package/mysql-core/dialect.js +167 -21
  156. package/mysql-core/dialect.js.map +1 -1
  157. package/{singlestore-core/query-builders/query.cjs → mysql-core/query-builders/_query.cjs} +41 -18
  158. package/mysql-core/query-builders/_query.cjs.map +1 -0
  159. package/mysql-core/query-builders/_query.d.cts +44 -0
  160. package/mysql-core/query-builders/_query.d.ts +44 -0
  161. package/{singlestore-core/query-builders/query.js → mysql-core/query-builders/_query.js} +29 -18
  162. package/mysql-core/query-builders/_query.js.map +1 -0
  163. package/mysql-core/query-builders/count.cjs.map +1 -1
  164. package/mysql-core/query-builders/count.d.cts +1 -1
  165. package/mysql-core/query-builders/count.d.ts +1 -1
  166. package/mysql-core/query-builders/count.js.map +1 -1
  167. package/mysql-core/query-builders/query.cjs +18 -31
  168. package/mysql-core/query-builders/query.cjs.map +1 -1
  169. package/mysql-core/query-builders/query.d.cts +8 -10
  170. package/mysql-core/query-builders/query.d.ts +8 -10
  171. package/mysql-core/query-builders/query.js +18 -31
  172. package/mysql-core/query-builders/query.js.map +1 -1
  173. package/mysql-core/session.cjs +3 -2
  174. package/mysql-core/session.cjs.map +1 -1
  175. package/mysql-core/session.d.cts +10 -7
  176. package/mysql-core/session.d.ts +10 -7
  177. package/mysql-core/session.js +3 -2
  178. package/mysql-core/session.js.map +1 -1
  179. package/mysql-proxy/driver.cjs +22 -5
  180. package/mysql-proxy/driver.cjs.map +1 -1
  181. package/mysql-proxy/driver.d.cts +3 -2
  182. package/mysql-proxy/driver.d.ts +3 -2
  183. package/mysql-proxy/driver.js +12 -8
  184. package/mysql-proxy/driver.js.map +1 -1
  185. package/mysql-proxy/migrator.cjs.map +1 -1
  186. package/mysql-proxy/migrator.d.cts +2 -1
  187. package/mysql-proxy/migrator.d.ts +2 -1
  188. package/mysql-proxy/migrator.js.map +1 -1
  189. package/mysql-proxy/session.cjs +47 -2
  190. package/mysql-proxy/session.cjs.map +1 -1
  191. package/mysql-proxy/session.d.cts +13 -8
  192. package/mysql-proxy/session.d.ts +13 -8
  193. package/mysql-proxy/session.js +47 -2
  194. package/mysql-proxy/session.js.map +1 -1
  195. package/mysql2/driver.cjs +24 -7
  196. package/mysql2/driver.cjs.map +1 -1
  197. package/mysql2/driver.d.cts +10 -9
  198. package/mysql2/driver.d.ts +10 -9
  199. package/mysql2/driver.js +14 -10
  200. package/mysql2/driver.js.map +1 -1
  201. package/mysql2/migrator.cjs.map +1 -1
  202. package/mysql2/migrator.d.cts +2 -1
  203. package/mysql2/migrator.d.ts +2 -1
  204. package/mysql2/migrator.js.map +1 -1
  205. package/mysql2/session.cjs +51 -2
  206. package/mysql2/session.cjs.map +1 -1
  207. package/mysql2/session.d.cts +13 -8
  208. package/mysql2/session.d.ts +13 -8
  209. package/mysql2/session.js +51 -2
  210. package/mysql2/session.js.map +1 -1
  211. package/neon-http/driver.cjs +22 -8
  212. package/neon-http/driver.cjs.map +1 -1
  213. package/neon-http/driver.d.cts +11 -10
  214. package/neon-http/driver.d.ts +11 -10
  215. package/neon-http/driver.js +12 -8
  216. package/neon-http/driver.js.map +1 -1
  217. package/neon-http/migrator.cjs.map +1 -1
  218. package/neon-http/migrator.d.cts +2 -1
  219. package/neon-http/migrator.d.ts +2 -1
  220. package/neon-http/migrator.js.map +1 -1
  221. package/neon-http/session.cjs +32 -2
  222. package/neon-http/session.cjs.map +1 -1
  223. package/neon-http/session.d.cts +13 -8
  224. package/neon-http/session.d.ts +13 -8
  225. package/neon-http/session.js +32 -2
  226. package/neon-http/session.js.map +1 -1
  227. package/neon-serverless/driver.cjs +18 -7
  228. package/neon-serverless/driver.cjs.map +1 -1
  229. package/neon-serverless/driver.d.cts +9 -8
  230. package/neon-serverless/driver.d.ts +9 -8
  231. package/neon-serverless/driver.js +8 -10
  232. package/neon-serverless/driver.js.map +1 -1
  233. package/neon-serverless/migrator.cjs.map +1 -1
  234. package/neon-serverless/migrator.d.cts +2 -1
  235. package/neon-serverless/migrator.d.ts +2 -1
  236. package/neon-serverless/migrator.js.map +1 -1
  237. package/neon-serverless/session.cjs +40 -5
  238. package/neon-serverless/session.cjs.map +1 -1
  239. package/neon-serverless/session.d.cts +13 -8
  240. package/neon-serverless/session.d.ts +13 -8
  241. package/neon-serverless/session.js +40 -5
  242. package/neon-serverless/session.js.map +1 -1
  243. package/node-postgres/driver.cjs +13 -7
  244. package/node-postgres/driver.cjs.map +1 -1
  245. package/node-postgres/driver.d.cts +9 -8
  246. package/node-postgres/driver.d.ts +9 -8
  247. package/node-postgres/driver.js +13 -10
  248. package/node-postgres/driver.js.map +1 -1
  249. package/node-postgres/migrator.cjs.map +1 -1
  250. package/node-postgres/migrator.d.cts +2 -1
  251. package/node-postgres/migrator.d.ts +2 -1
  252. package/node-postgres/migrator.js.map +1 -1
  253. package/node-postgres/session.cjs +45 -4
  254. package/node-postgres/session.cjs.map +1 -1
  255. package/node-postgres/session.d.cts +13 -8
  256. package/node-postgres/session.d.ts +13 -8
  257. package/node-postgres/session.js +45 -4
  258. package/node-postgres/session.js.map +1 -1
  259. package/op-sqlite/driver.cjs +22 -5
  260. package/op-sqlite/driver.cjs.map +1 -1
  261. package/op-sqlite/driver.d.cts +3 -2
  262. package/op-sqlite/driver.d.ts +3 -2
  263. package/op-sqlite/driver.js +12 -8
  264. package/op-sqlite/driver.js.map +1 -1
  265. package/op-sqlite/migrator.cjs.map +1 -1
  266. package/op-sqlite/migrator.d.cts +3 -2
  267. package/op-sqlite/migrator.d.ts +3 -2
  268. package/op-sqlite/migrator.js.map +1 -1
  269. package/op-sqlite/session.cjs +47 -4
  270. package/op-sqlite/session.cjs.map +1 -1
  271. package/op-sqlite/session.d.cts +14 -8
  272. package/op-sqlite/session.d.ts +14 -8
  273. package/op-sqlite/session.js +47 -4
  274. package/op-sqlite/session.js.map +1 -1
  275. package/package.json +65 -798
  276. package/pg-core/db.cjs +31 -7
  277. package/pg-core/db.cjs.map +1 -1
  278. package/pg-core/db.d.cts +18 -11
  279. package/pg-core/db.d.ts +18 -11
  280. package/pg-core/db.js +30 -6
  281. package/pg-core/db.js.map +1 -1
  282. package/pg-core/dialect.cjs +146 -488
  283. package/pg-core/dialect.cjs.map +1 -1
  284. package/pg-core/dialect.d.cts +21 -7
  285. package/pg-core/dialect.d.ts +21 -7
  286. package/pg-core/dialect.js +143 -494
  287. package/pg-core/dialect.js.map +1 -1
  288. package/pg-core/query-builders/_query.cjs +155 -0
  289. package/pg-core/query-builders/_query.cjs.map +1 -0
  290. package/pg-core/query-builders/_query.d.cts +47 -0
  291. package/pg-core/query-builders/_query.d.ts +47 -0
  292. package/pg-core/query-builders/_query.js +120 -0
  293. package/pg-core/query-builders/_query.js.map +1 -0
  294. package/pg-core/query-builders/count.cjs +0 -1
  295. package/pg-core/query-builders/count.cjs.map +1 -1
  296. package/pg-core/query-builders/count.d.cts +2 -3
  297. package/pg-core/query-builders/count.d.ts +2 -3
  298. package/pg-core/query-builders/count.js +0 -1
  299. package/pg-core/query-builders/count.js.map +1 -1
  300. package/pg-core/query-builders/delete.cjs.map +1 -1
  301. package/pg-core/query-builders/delete.js.map +1 -1
  302. package/pg-core/query-builders/insert.cjs +9 -1
  303. package/pg-core/query-builders/insert.cjs.map +1 -1
  304. package/pg-core/query-builders/insert.js +9 -1
  305. package/pg-core/query-builders/insert.js.map +1 -1
  306. package/pg-core/query-builders/query.cjs +15 -18
  307. package/pg-core/query-builders/query.cjs.map +1 -1
  308. package/pg-core/query-builders/query.d.cts +6 -6
  309. package/pg-core/query-builders/query.d.ts +6 -6
  310. package/pg-core/query-builders/query.js +15 -18
  311. package/pg-core/query-builders/query.js.map +1 -1
  312. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  313. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  314. package/pg-core/query-builders/select.cjs +10 -2
  315. package/pg-core/query-builders/select.cjs.map +1 -1
  316. package/pg-core/query-builders/select.js +11 -8
  317. package/pg-core/query-builders/select.js.map +1 -1
  318. package/pg-core/query-builders/update.cjs +7 -1
  319. package/pg-core/query-builders/update.cjs.map +1 -1
  320. package/pg-core/query-builders/update.d.cts +2 -2
  321. package/pg-core/query-builders/update.d.ts +2 -2
  322. package/pg-core/query-builders/update.js +8 -6
  323. package/pg-core/query-builders/update.js.map +1 -1
  324. package/pg-core/session.cjs +3 -2
  325. package/pg-core/session.cjs.map +1 -1
  326. package/pg-core/session.d.cts +10 -8
  327. package/pg-core/session.d.ts +10 -8
  328. package/pg-core/session.js +3 -2
  329. package/pg-core/session.js.map +1 -1
  330. package/pg-proxy/driver.cjs +21 -5
  331. package/pg-proxy/driver.cjs.map +1 -1
  332. package/pg-proxy/driver.d.cts +3 -2
  333. package/pg-proxy/driver.d.ts +3 -2
  334. package/pg-proxy/driver.js +11 -8
  335. package/pg-proxy/driver.js.map +1 -1
  336. package/pg-proxy/migrator.cjs.map +1 -1
  337. package/pg-proxy/migrator.d.cts +2 -1
  338. package/pg-proxy/migrator.d.ts +2 -1
  339. package/pg-proxy/migrator.js.map +1 -1
  340. package/pg-proxy/session.cjs +37 -2
  341. package/pg-proxy/session.cjs.map +1 -1
  342. package/pg-proxy/session.d.cts +13 -8
  343. package/pg-proxy/session.d.ts +13 -8
  344. package/pg-proxy/session.js +37 -2
  345. package/pg-proxy/session.js.map +1 -1
  346. package/pglite/driver.cjs +23 -7
  347. package/pglite/driver.cjs.map +1 -1
  348. package/pglite/driver.d.cts +9 -8
  349. package/pglite/driver.d.ts +9 -8
  350. package/pglite/driver.js +13 -10
  351. package/pglite/driver.js.map +1 -1
  352. package/pglite/migrator.cjs.map +1 -1
  353. package/pglite/migrator.d.cts +2 -1
  354. package/pglite/migrator.d.ts +2 -1
  355. package/pglite/migrator.js.map +1 -1
  356. package/pglite/session.cjs +34 -3
  357. package/pglite/session.cjs.map +1 -1
  358. package/pglite/session.d.cts +13 -8
  359. package/pglite/session.d.ts +13 -8
  360. package/pglite/session.js +34 -3
  361. package/pglite/session.js.map +1 -1
  362. package/planetscale-serverless/driver.cjs +22 -5
  363. package/planetscale-serverless/driver.cjs.map +1 -1
  364. package/planetscale-serverless/driver.d.cts +7 -6
  365. package/planetscale-serverless/driver.d.ts +7 -6
  366. package/planetscale-serverless/driver.js +12 -8
  367. package/planetscale-serverless/driver.js.map +1 -1
  368. package/planetscale-serverless/migrator.cjs.map +1 -1
  369. package/planetscale-serverless/migrator.d.cts +2 -1
  370. package/planetscale-serverless/migrator.d.ts +2 -1
  371. package/planetscale-serverless/migrator.js.map +1 -1
  372. package/planetscale-serverless/session.cjs +68 -5
  373. package/planetscale-serverless/session.cjs.map +1 -1
  374. package/planetscale-serverless/session.d.cts +14 -9
  375. package/planetscale-serverless/session.d.ts +14 -9
  376. package/planetscale-serverless/session.js +68 -5
  377. package/planetscale-serverless/session.js.map +1 -1
  378. package/postgres-js/driver.cjs +12 -6
  379. package/postgres-js/driver.cjs.map +1 -1
  380. package/postgres-js/driver.d.cts +7 -6
  381. package/postgres-js/driver.d.ts +7 -6
  382. package/postgres-js/driver.js +12 -9
  383. package/postgres-js/driver.js.map +1 -1
  384. package/postgres-js/migrator.cjs.map +1 -1
  385. package/postgres-js/migrator.d.cts +2 -1
  386. package/postgres-js/migrator.d.ts +2 -1
  387. package/postgres-js/migrator.js.map +1 -1
  388. package/postgres-js/session.cjs +51 -6
  389. package/postgres-js/session.cjs.map +1 -1
  390. package/postgres-js/session.d.cts +15 -9
  391. package/postgres-js/session.d.ts +15 -9
  392. package/postgres-js/session.js +51 -6
  393. package/postgres-js/session.js.map +1 -1
  394. package/prisma/mysql/driver.cjs +1 -1
  395. package/prisma/mysql/driver.cjs.map +1 -1
  396. package/prisma/mysql/driver.js +1 -1
  397. package/prisma/mysql/driver.js.map +1 -1
  398. package/prisma/mysql/session.cjs +3 -0
  399. package/prisma/mysql/session.cjs.map +1 -1
  400. package/prisma/mysql/session.d.cts +3 -1
  401. package/prisma/mysql/session.d.ts +3 -1
  402. package/prisma/mysql/session.js +3 -0
  403. package/prisma/mysql/session.js.map +1 -1
  404. package/prisma/pg/driver.cjs +1 -1
  405. package/prisma/pg/driver.cjs.map +1 -1
  406. package/prisma/pg/driver.js +1 -1
  407. package/prisma/pg/driver.js.map +1 -1
  408. package/prisma/pg/session.cjs +3 -0
  409. package/prisma/pg/session.cjs.map +1 -1
  410. package/prisma/pg/session.d.cts +3 -1
  411. package/prisma/pg/session.d.ts +3 -1
  412. package/prisma/pg/session.js +3 -0
  413. package/prisma/pg/session.js.map +1 -1
  414. package/prisma/sqlite/driver.cjs +1 -1
  415. package/prisma/sqlite/driver.cjs.map +1 -1
  416. package/prisma/sqlite/driver.js +1 -1
  417. package/prisma/sqlite/driver.js.map +1 -1
  418. package/prisma/sqlite/session.cjs +3 -0
  419. package/prisma/sqlite/session.cjs.map +1 -1
  420. package/prisma/sqlite/session.d.cts +4 -2
  421. package/prisma/sqlite/session.d.ts +4 -2
  422. package/prisma/sqlite/session.js +3 -0
  423. package/prisma/sqlite/session.js.map +1 -1
  424. package/relations.cjs +468 -245
  425. package/relations.cjs.map +1 -1
  426. package/relations.d.cts +264 -125
  427. package/relations.d.ts +264 -125
  428. package/relations.js +455 -238
  429. package/relations.js.map +1 -1
  430. package/sql/sql.cjs.map +1 -1
  431. package/sql/sql.d.cts +4 -4
  432. package/sql/sql.d.ts +4 -4
  433. package/sql/sql.js.map +1 -1
  434. package/sql-js/driver.cjs +16 -5
  435. package/sql-js/driver.cjs.map +1 -1
  436. package/sql-js/driver.d.cts +3 -2
  437. package/sql-js/driver.d.ts +3 -2
  438. package/sql-js/driver.js +6 -8
  439. package/sql-js/driver.js.map +1 -1
  440. package/sql-js/migrator.cjs.map +1 -1
  441. package/sql-js/migrator.d.cts +2 -1
  442. package/sql-js/migrator.d.ts +2 -1
  443. package/sql-js/migrator.js.map +1 -1
  444. package/sql-js/session.cjs +58 -4
  445. package/sql-js/session.cjs.map +1 -1
  446. package/sql-js/session.d.cts +14 -8
  447. package/sql-js/session.d.ts +14 -8
  448. package/sql-js/session.js +58 -4
  449. package/sql-js/session.js.map +1 -1
  450. package/sqlite-core/columns/blob.cjs +2 -16
  451. package/sqlite-core/columns/blob.cjs.map +1 -1
  452. package/sqlite-core/columns/blob.d.cts +2 -2
  453. package/sqlite-core/columns/blob.d.ts +2 -2
  454. package/sqlite-core/columns/blob.js +2 -16
  455. package/sqlite-core/columns/blob.js.map +1 -1
  456. package/sqlite-core/db.cjs +35 -14
  457. package/sqlite-core/db.cjs.map +1 -1
  458. package/sqlite-core/db.d.cts +15 -8
  459. package/sqlite-core/db.d.ts +15 -8
  460. package/sqlite-core/db.js +34 -13
  461. package/sqlite-core/db.js.map +1 -1
  462. package/sqlite-core/dialect.cjs +164 -7
  463. package/sqlite-core/dialect.cjs.map +1 -1
  464. package/sqlite-core/dialect.d.cts +25 -9
  465. package/sqlite-core/dialect.d.ts +25 -9
  466. package/sqlite-core/dialect.js +161 -13
  467. package/sqlite-core/dialect.js.map +1 -1
  468. package/sqlite-core/query-builders/_query.cjs +187 -0
  469. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  470. package/sqlite-core/query-builders/_query.d.cts +55 -0
  471. package/sqlite-core/query-builders/_query.d.ts +55 -0
  472. package/sqlite-core/query-builders/_query.js +151 -0
  473. package/sqlite-core/query-builders/_query.js.map +1 -0
  474. package/sqlite-core/query-builders/count.cjs.map +1 -1
  475. package/sqlite-core/query-builders/count.d.cts +1 -1
  476. package/sqlite-core/query-builders/count.d.ts +1 -1
  477. package/sqlite-core/query-builders/count.js.map +1 -1
  478. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  479. package/sqlite-core/query-builders/delete.d.cts +1 -1
  480. package/sqlite-core/query-builders/delete.d.ts +1 -1
  481. package/sqlite-core/query-builders/delete.js.map +1 -1
  482. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  483. package/sqlite-core/query-builders/insert.d.cts +3 -3
  484. package/sqlite-core/query-builders/insert.d.ts +3 -3
  485. package/sqlite-core/query-builders/insert.js.map +1 -1
  486. package/sqlite-core/query-builders/query.cjs +30 -48
  487. package/sqlite-core/query-builders/query.cjs.map +1 -1
  488. package/sqlite-core/query-builders/query.d.cts +14 -16
  489. package/sqlite-core/query-builders/query.d.ts +14 -16
  490. package/sqlite-core/query-builders/query.js +30 -48
  491. package/sqlite-core/query-builders/query.js.map +1 -1
  492. package/sqlite-core/query-builders/select.cjs.map +1 -1
  493. package/sqlite-core/query-builders/select.d.cts +3 -3
  494. package/sqlite-core/query-builders/select.d.ts +3 -3
  495. package/sqlite-core/query-builders/select.js.map +1 -1
  496. package/sqlite-core/query-builders/update.cjs.map +1 -1
  497. package/sqlite-core/query-builders/update.d.cts +3 -3
  498. package/sqlite-core/query-builders/update.d.ts +3 -3
  499. package/sqlite-core/query-builders/update.js.map +1 -1
  500. package/sqlite-core/session.cjs +6 -2
  501. package/sqlite-core/session.cjs.map +1 -1
  502. package/sqlite-core/session.d.cts +14 -6
  503. package/sqlite-core/session.d.ts +14 -6
  504. package/sqlite-core/session.js +6 -2
  505. package/sqlite-core/session.js.map +1 -1
  506. package/sqlite-proxy/driver.cjs +22 -5
  507. package/sqlite-proxy/driver.cjs.map +1 -1
  508. package/sqlite-proxy/driver.d.cts +4 -3
  509. package/sqlite-proxy/driver.d.ts +4 -3
  510. package/sqlite-proxy/driver.js +12 -5
  511. package/sqlite-proxy/driver.js.map +1 -1
  512. package/sqlite-proxy/migrator.cjs.map +1 -1
  513. package/sqlite-proxy/migrator.d.cts +2 -1
  514. package/sqlite-proxy/migrator.d.ts +2 -1
  515. package/sqlite-proxy/migrator.js.map +1 -1
  516. package/sqlite-proxy/session.cjs +47 -4
  517. package/sqlite-proxy/session.cjs.map +1 -1
  518. package/sqlite-proxy/session.d.cts +14 -8
  519. package/sqlite-proxy/session.d.ts +14 -8
  520. package/sqlite-proxy/session.js +47 -4
  521. package/sqlite-proxy/session.js.map +1 -1
  522. package/table.cjs.map +1 -1
  523. package/table.d.cts +1 -1
  524. package/table.d.ts +1 -1
  525. package/table.js.map +1 -1
  526. package/tidb-serverless/driver.cjs +22 -5
  527. package/tidb-serverless/driver.cjs.map +1 -1
  528. package/tidb-serverless/driver.d.cts +7 -6
  529. package/tidb-serverless/driver.d.ts +7 -6
  530. package/tidb-serverless/driver.js +12 -8
  531. package/tidb-serverless/driver.js.map +1 -1
  532. package/tidb-serverless/migrator.cjs.map +1 -1
  533. package/tidb-serverless/migrator.d.cts +2 -1
  534. package/tidb-serverless/migrator.d.ts +2 -1
  535. package/tidb-serverless/migrator.js.map +1 -1
  536. package/tidb-serverless/session.cjs +62 -5
  537. package/tidb-serverless/session.cjs.map +1 -1
  538. package/tidb-serverless/session.d.cts +14 -9
  539. package/tidb-serverless/session.d.ts +14 -9
  540. package/tidb-serverless/session.js +62 -5
  541. package/tidb-serverless/session.js.map +1 -1
  542. package/utils.cjs +2 -2
  543. package/utils.cjs.map +1 -1
  544. package/utils.d.cts +3 -2
  545. package/utils.d.ts +3 -2
  546. package/utils.js +2 -2
  547. package/utils.js.map +1 -1
  548. package/vercel-postgres/driver.cjs +23 -7
  549. package/vercel-postgres/driver.cjs.map +1 -1
  550. package/vercel-postgres/driver.d.cts +9 -8
  551. package/vercel-postgres/driver.d.ts +9 -8
  552. package/vercel-postgres/driver.js +13 -10
  553. package/vercel-postgres/driver.js.map +1 -1
  554. package/vercel-postgres/migrator.cjs.map +1 -1
  555. package/vercel-postgres/migrator.d.cts +2 -1
  556. package/vercel-postgres/migrator.d.ts +2 -1
  557. package/vercel-postgres/migrator.js.map +1 -1
  558. package/vercel-postgres/session.cjs +34 -4
  559. package/vercel-postgres/session.cjs.map +1 -1
  560. package/vercel-postgres/session.d.cts +13 -8
  561. package/vercel-postgres/session.d.ts +13 -8
  562. package/vercel-postgres/session.js +34 -4
  563. package/vercel-postgres/session.js.map +1 -1
  564. package/version.cjs +1 -1
  565. package/version.d.cts +1 -1
  566. package/version.d.ts +1 -1
  567. package/version.js +1 -1
  568. package/xata-http/driver.cjs +17 -5
  569. package/xata-http/driver.cjs.map +1 -1
  570. package/xata-http/driver.d.cts +5 -4
  571. package/xata-http/driver.d.ts +5 -4
  572. package/xata-http/driver.js +7 -5
  573. package/xata-http/driver.js.map +1 -1
  574. package/xata-http/migrator.cjs.map +1 -1
  575. package/xata-http/migrator.d.cts +2 -1
  576. package/xata-http/migrator.d.ts +2 -1
  577. package/xata-http/migrator.js.map +1 -1
  578. package/xata-http/session.cjs +30 -2
  579. package/xata-http/session.cjs.map +1 -1
  580. package/xata-http/session.d.cts +13 -8
  581. package/xata-http/session.d.ts +13 -8
  582. package/xata-http/session.js +30 -2
  583. package/xata-http/session.js.map +1 -1
  584. package/durable-sqlite/driver.cjs +0 -64
  585. package/durable-sqlite/driver.cjs.map +0 -1
  586. package/durable-sqlite/driver.d.cts +0 -9
  587. package/durable-sqlite/driver.d.ts +0 -9
  588. package/durable-sqlite/driver.js +0 -42
  589. package/durable-sqlite/driver.js.map +0 -1
  590. package/durable-sqlite/index.cjs +0 -25
  591. package/durable-sqlite/index.cjs.map +0 -1
  592. package/durable-sqlite/index.d.cts +0 -2
  593. package/durable-sqlite/index.d.ts +0 -2
  594. package/durable-sqlite/index.js +0 -3
  595. package/durable-sqlite/index.js.map +0 -1
  596. package/durable-sqlite/migrator.cjs +0 -85
  597. package/durable-sqlite/migrator.cjs.map +0 -1
  598. package/durable-sqlite/migrator.d.cts +0 -14
  599. package/durable-sqlite/migrator.d.ts +0 -14
  600. package/durable-sqlite/migrator.js +0 -61
  601. package/durable-sqlite/migrator.js.map +0 -1
  602. package/durable-sqlite/session.cjs +0 -131
  603. package/durable-sqlite/session.cjs.map +0 -1
  604. package/durable-sqlite/session.d.cts +0 -46
  605. package/durable-sqlite/session.d.ts +0 -46
  606. package/durable-sqlite/session.js +0 -107
  607. package/durable-sqlite/session.js.map +0 -1
  608. package/singlestore/driver.cjs +0 -113
  609. package/singlestore/driver.cjs.map +0 -1
  610. package/singlestore/driver.d.cts +0 -52
  611. package/singlestore/driver.d.ts +0 -52
  612. package/singlestore/driver.js +0 -89
  613. package/singlestore/driver.js.map +0 -1
  614. package/singlestore/index.cjs +0 -25
  615. package/singlestore/index.cjs.map +0 -1
  616. package/singlestore/index.d.cts +0 -2
  617. package/singlestore/index.d.ts +0 -2
  618. package/singlestore/index.js +0 -3
  619. package/singlestore/index.js.map +0 -1
  620. package/singlestore/migrator.cjs +0 -33
  621. package/singlestore/migrator.cjs.map +0 -1
  622. package/singlestore/migrator.d.cts +0 -3
  623. package/singlestore/migrator.d.ts +0 -3
  624. package/singlestore/migrator.js +0 -9
  625. package/singlestore/migrator.js.map +0 -1
  626. package/singlestore/session.cjs +0 -258
  627. package/singlestore/session.cjs.map +0 -1
  628. package/singlestore/session.d.cts +0 -52
  629. package/singlestore/session.d.ts +0 -52
  630. package/singlestore/session.js +0 -236
  631. package/singlestore/session.js.map +0 -1
  632. package/singlestore-core/alias.cjs +0 -32
  633. package/singlestore-core/alias.cjs.map +0 -1
  634. package/singlestore-core/alias.d.cts +0 -4
  635. package/singlestore-core/alias.d.ts +0 -4
  636. package/singlestore-core/alias.js +0 -8
  637. package/singlestore-core/alias.js.map +0 -1
  638. package/singlestore-core/columns/all.cjs +0 -80
  639. package/singlestore-core/columns/all.cjs.map +0 -1
  640. package/singlestore-core/columns/all.d.cts +0 -51
  641. package/singlestore-core/columns/all.d.ts +0 -51
  642. package/singlestore-core/columns/all.js +0 -56
  643. package/singlestore-core/columns/all.js.map +0 -1
  644. package/singlestore-core/columns/bigint.cjs +0 -96
  645. package/singlestore-core/columns/bigint.cjs.map +0 -1
  646. package/singlestore-core/columns/bigint.d.cts +0 -54
  647. package/singlestore-core/columns/bigint.d.ts +0 -54
  648. package/singlestore-core/columns/bigint.js +0 -68
  649. package/singlestore-core/columns/bigint.js.map +0 -1
  650. package/singlestore-core/columns/binary.cjs +0 -60
  651. package/singlestore-core/columns/binary.cjs.map +0 -1
  652. package/singlestore-core/columns/binary.d.cts +0 -28
  653. package/singlestore-core/columns/binary.d.ts +0 -28
  654. package/singlestore-core/columns/binary.js +0 -34
  655. package/singlestore-core/columns/binary.js.map +0 -1
  656. package/singlestore-core/columns/boolean.cjs +0 -62
  657. package/singlestore-core/columns/boolean.cjs.map +0 -1
  658. package/singlestore-core/columns/boolean.d.cts +0 -24
  659. package/singlestore-core/columns/boolean.d.ts +0 -24
  660. package/singlestore-core/columns/boolean.js +0 -36
  661. package/singlestore-core/columns/boolean.js.map +0 -1
  662. package/singlestore-core/columns/char.cjs +0 -62
  663. package/singlestore-core/columns/char.cjs.map +0 -1
  664. package/singlestore-core/columns/char.d.cts +0 -31
  665. package/singlestore-core/columns/char.d.ts +0 -31
  666. package/singlestore-core/columns/char.js +0 -36
  667. package/singlestore-core/columns/char.js.map +0 -1
  668. package/singlestore-core/columns/common.cjs +0 -82
  669. package/singlestore-core/columns/common.cjs.map +0 -1
  670. package/singlestore-core/columns/common.d.cts +0 -42
  671. package/singlestore-core/columns/common.d.ts +0 -42
  672. package/singlestore-core/columns/common.js +0 -55
  673. package/singlestore-core/columns/common.js.map +0 -1
  674. package/singlestore-core/columns/custom.cjs +0 -77
  675. package/singlestore-core/columns/custom.cjs.map +0 -1
  676. package/singlestore-core/columns/custom.d.cts +0 -156
  677. package/singlestore-core/columns/custom.d.ts +0 -156
  678. package/singlestore-core/columns/custom.js +0 -51
  679. package/singlestore-core/columns/custom.js.map +0 -1
  680. package/singlestore-core/columns/date.cjs +0 -93
  681. package/singlestore-core/columns/date.cjs.map +0 -1
  682. package/singlestore-core/columns/date.common.cjs +0 -48
  683. package/singlestore-core/columns/date.common.cjs.map +0 -1
  684. package/singlestore-core/columns/date.common.d.cts +0 -16
  685. package/singlestore-core/columns/date.common.d.ts +0 -16
  686. package/singlestore-core/columns/date.common.js +0 -23
  687. package/singlestore-core/columns/date.common.js.map +0 -1
  688. package/singlestore-core/columns/date.d.cts +0 -53
  689. package/singlestore-core/columns/date.d.ts +0 -53
  690. package/singlestore-core/columns/date.js +0 -65
  691. package/singlestore-core/columns/date.js.map +0 -1
  692. package/singlestore-core/columns/datetime.cjs +0 -106
  693. package/singlestore-core/columns/datetime.cjs.map +0 -1
  694. package/singlestore-core/columns/datetime.d.cts +0 -54
  695. package/singlestore-core/columns/datetime.d.ts +0 -54
  696. package/singlestore-core/columns/datetime.js +0 -78
  697. package/singlestore-core/columns/datetime.js.map +0 -1
  698. package/singlestore-core/columns/decimal.cjs +0 -76
  699. package/singlestore-core/columns/decimal.cjs.map +0 -1
  700. package/singlestore-core/columns/decimal.d.cts +0 -32
  701. package/singlestore-core/columns/decimal.d.ts +0 -32
  702. package/singlestore-core/columns/decimal.js +0 -50
  703. package/singlestore-core/columns/decimal.js.map +0 -1
  704. package/singlestore-core/columns/double.cjs +0 -72
  705. package/singlestore-core/columns/double.cjs.map +0 -1
  706. package/singlestore-core/columns/double.d.cts +0 -32
  707. package/singlestore-core/columns/double.d.ts +0 -32
  708. package/singlestore-core/columns/double.js +0 -46
  709. package/singlestore-core/columns/double.js.map +0 -1
  710. package/singlestore-core/columns/enum.cjs +0 -67
  711. package/singlestore-core/columns/enum.cjs.map +0 -1
  712. package/singlestore-core/columns/enum.d.cts +0 -31
  713. package/singlestore-core/columns/enum.d.ts +0 -31
  714. package/singlestore-core/columns/enum.js +0 -41
  715. package/singlestore-core/columns/enum.js.map +0 -1
  716. package/singlestore-core/columns/float.cjs +0 -72
  717. package/singlestore-core/columns/float.cjs.map +0 -1
  718. package/singlestore-core/columns/float.d.cts +0 -32
  719. package/singlestore-core/columns/float.d.ts +0 -32
  720. package/singlestore-core/columns/float.js +0 -46
  721. package/singlestore-core/columns/float.js.map +0 -1
  722. package/singlestore-core/columns/index.cjs +0 -71
  723. package/singlestore-core/columns/index.cjs.map +0 -1
  724. package/singlestore-core/columns/index.d.cts +0 -25
  725. package/singlestore-core/columns/index.d.ts +0 -25
  726. package/singlestore-core/columns/index.js +0 -26
  727. package/singlestore-core/columns/index.js.map +0 -1
  728. package/singlestore-core/columns/int.cjs +0 -65
  729. package/singlestore-core/columns/int.cjs.map +0 -1
  730. package/singlestore-core/columns/int.d.cts +0 -28
  731. package/singlestore-core/columns/int.d.ts +0 -28
  732. package/singlestore-core/columns/int.js +0 -39
  733. package/singlestore-core/columns/int.js.map +0 -1
  734. package/singlestore-core/columns/json.cjs +0 -59
  735. package/singlestore-core/columns/json.cjs.map +0 -1
  736. package/singlestore-core/columns/json.d.cts +0 -24
  737. package/singlestore-core/columns/json.d.ts +0 -24
  738. package/singlestore-core/columns/json.js +0 -33
  739. package/singlestore-core/columns/json.js.map +0 -1
  740. package/singlestore-core/columns/mediumint.cjs +0 -65
  741. package/singlestore-core/columns/mediumint.cjs.map +0 -1
  742. package/singlestore-core/columns/mediumint.d.cts +0 -26
  743. package/singlestore-core/columns/mediumint.d.ts +0 -26
  744. package/singlestore-core/columns/mediumint.js +0 -39
  745. package/singlestore-core/columns/mediumint.js.map +0 -1
  746. package/singlestore-core/columns/real.cjs +0 -68
  747. package/singlestore-core/columns/real.cjs.map +0 -1
  748. package/singlestore-core/columns/real.d.cts +0 -30
  749. package/singlestore-core/columns/real.d.ts +0 -30
  750. package/singlestore-core/columns/real.js +0 -42
  751. package/singlestore-core/columns/real.js.map +0 -1
  752. package/singlestore-core/columns/serial.cjs +0 -64
  753. package/singlestore-core/columns/serial.cjs.map +0 -1
  754. package/singlestore-core/columns/serial.d.cts +0 -24
  755. package/singlestore-core/columns/serial.d.ts +0 -24
  756. package/singlestore-core/columns/serial.js +0 -38
  757. package/singlestore-core/columns/serial.js.map +0 -1
  758. package/singlestore-core/columns/smallint.cjs +0 -65
  759. package/singlestore-core/columns/smallint.cjs.map +0 -1
  760. package/singlestore-core/columns/smallint.d.cts +0 -26
  761. package/singlestore-core/columns/smallint.d.ts +0 -26
  762. package/singlestore-core/columns/smallint.js +0 -39
  763. package/singlestore-core/columns/smallint.js.map +0 -1
  764. package/singlestore-core/columns/text.cjs +0 -80
  765. package/singlestore-core/columns/text.cjs.map +0 -1
  766. package/singlestore-core/columns/text.d.cts +0 -46
  767. package/singlestore-core/columns/text.d.ts +0 -46
  768. package/singlestore-core/columns/text.js +0 -51
  769. package/singlestore-core/columns/text.js.map +0 -1
  770. package/singlestore-core/columns/time.cjs +0 -56
  771. package/singlestore-core/columns/time.cjs.map +0 -1
  772. package/singlestore-core/columns/time.d.cts +0 -23
  773. package/singlestore-core/columns/time.d.ts +0 -23
  774. package/singlestore-core/columns/time.js +0 -30
  775. package/singlestore-core/columns/time.js.map +0 -1
  776. package/singlestore-core/columns/timestamp.cjs +0 -97
  777. package/singlestore-core/columns/timestamp.cjs.map +0 -1
  778. package/singlestore-core/columns/timestamp.d.cts +0 -49
  779. package/singlestore-core/columns/timestamp.d.ts +0 -49
  780. package/singlestore-core/columns/timestamp.js +0 -69
  781. package/singlestore-core/columns/timestamp.js.map +0 -1
  782. package/singlestore-core/columns/tinyint.cjs +0 -65
  783. package/singlestore-core/columns/tinyint.cjs.map +0 -1
  784. package/singlestore-core/columns/tinyint.d.cts +0 -26
  785. package/singlestore-core/columns/tinyint.d.ts +0 -26
  786. package/singlestore-core/columns/tinyint.js +0 -39
  787. package/singlestore-core/columns/tinyint.js.map +0 -1
  788. package/singlestore-core/columns/varbinary.cjs +0 -61
  789. package/singlestore-core/columns/varbinary.cjs.map +0 -1
  790. package/singlestore-core/columns/varbinary.d.cts +0 -26
  791. package/singlestore-core/columns/varbinary.d.ts +0 -26
  792. package/singlestore-core/columns/varbinary.js +0 -35
  793. package/singlestore-core/columns/varbinary.js.map +0 -1
  794. package/singlestore-core/columns/varchar.cjs +0 -63
  795. package/singlestore-core/columns/varchar.cjs.map +0 -1
  796. package/singlestore-core/columns/varchar.d.cts +0 -29
  797. package/singlestore-core/columns/varchar.d.ts +0 -29
  798. package/singlestore-core/columns/varchar.js +0 -37
  799. package/singlestore-core/columns/varchar.js.map +0 -1
  800. package/singlestore-core/columns/year.cjs +0 -56
  801. package/singlestore-core/columns/year.cjs.map +0 -1
  802. package/singlestore-core/columns/year.d.cts +0 -23
  803. package/singlestore-core/columns/year.d.ts +0 -23
  804. package/singlestore-core/columns/year.js +0 -30
  805. package/singlestore-core/columns/year.js.map +0 -1
  806. package/singlestore-core/db.cjs +0 -261
  807. package/singlestore-core/db.cjs.map +0 -1
  808. package/singlestore-core/db.d.cts +0 -231
  809. package/singlestore-core/db.d.ts +0 -231
  810. package/singlestore-core/db.js +0 -242
  811. package/singlestore-core/db.js.map +0 -1
  812. package/singlestore-core/dialect.cjs +0 -607
  813. package/singlestore-core/dialect.cjs.map +0 -1
  814. package/singlestore-core/dialect.d.cts +0 -64
  815. package/singlestore-core/dialect.d.ts +0 -64
  816. package/singlestore-core/dialect.js +0 -589
  817. package/singlestore-core/dialect.js.map +0 -1
  818. package/singlestore-core/expressions.cjs +0 -49
  819. package/singlestore-core/expressions.cjs.map +0 -1
  820. package/singlestore-core/expressions.d.cts +0 -8
  821. package/singlestore-core/expressions.d.ts +0 -8
  822. package/singlestore-core/expressions.js +0 -22
  823. package/singlestore-core/expressions.js.map +0 -1
  824. package/singlestore-core/index.cjs +0 -47
  825. package/singlestore-core/index.cjs.map +0 -1
  826. package/singlestore-core/index.d.cts +0 -13
  827. package/singlestore-core/index.d.ts +0 -13
  828. package/singlestore-core/index.js +0 -14
  829. package/singlestore-core/index.js.map +0 -1
  830. package/singlestore-core/indexes.cjs +0 -88
  831. package/singlestore-core/indexes.cjs.map +0 -1
  832. package/singlestore-core/indexes.d.cts +0 -62
  833. package/singlestore-core/indexes.d.ts +0 -62
  834. package/singlestore-core/indexes.js +0 -60
  835. package/singlestore-core/indexes.js.map +0 -1
  836. package/singlestore-core/primary-keys.cjs +0 -68
  837. package/singlestore-core/primary-keys.cjs.map +0 -1
  838. package/singlestore-core/primary-keys.d.cts +0 -30
  839. package/singlestore-core/primary-keys.d.ts +0 -30
  840. package/singlestore-core/primary-keys.js +0 -42
  841. package/singlestore-core/primary-keys.js.map +0 -1
  842. package/singlestore-core/query-builders/count.cjs +0 -73
  843. package/singlestore-core/query-builders/count.cjs.map +0 -1
  844. package/singlestore-core/query-builders/count.d.cts +0 -25
  845. package/singlestore-core/query-builders/count.d.ts +0 -25
  846. package/singlestore-core/query-builders/count.js +0 -49
  847. package/singlestore-core/query-builders/count.js.map +0 -1
  848. package/singlestore-core/query-builders/delete.cjs +0 -123
  849. package/singlestore-core/query-builders/delete.cjs.map +0 -1
  850. package/singlestore-core/query-builders/delete.d.cts +0 -83
  851. package/singlestore-core/query-builders/delete.d.ts +0 -83
  852. package/singlestore-core/query-builders/delete.js +0 -99
  853. package/singlestore-core/query-builders/delete.js.map +0 -1
  854. package/singlestore-core/query-builders/index.cjs +0 -33
  855. package/singlestore-core/query-builders/index.cjs.map +0 -1
  856. package/singlestore-core/query-builders/index.d.cts +0 -6
  857. package/singlestore-core/query-builders/index.d.ts +0 -6
  858. package/singlestore-core/query-builders/index.js +0 -7
  859. package/singlestore-core/query-builders/index.js.map +0 -1
  860. package/singlestore-core/query-builders/insert.cjs +0 -146
  861. package/singlestore-core/query-builders/insert.cjs.map +0 -1
  862. package/singlestore-core/query-builders/insert.d.cts +0 -106
  863. package/singlestore-core/query-builders/insert.d.ts +0 -106
  864. package/singlestore-core/query-builders/insert.js +0 -121
  865. package/singlestore-core/query-builders/insert.js.map +0 -1
  866. package/singlestore-core/query-builders/query-builder.cjs +0 -99
  867. package/singlestore-core/query-builders/query-builder.cjs.map +0 -1
  868. package/singlestore-core/query-builders/query-builder.d.cts +0 -33
  869. package/singlestore-core/query-builders/query-builder.d.ts +0 -33
  870. package/singlestore-core/query-builders/query-builder.js +0 -75
  871. package/singlestore-core/query-builders/query-builder.js.map +0 -1
  872. package/singlestore-core/query-builders/query.cjs.map +0 -1
  873. package/singlestore-core/query-builders/query.d.cts +0 -42
  874. package/singlestore-core/query-builders/query.d.ts +0 -42
  875. package/singlestore-core/query-builders/query.js.map +0 -1
  876. package/singlestore-core/query-builders/select.cjs +0 -687
  877. package/singlestore-core/query-builders/select.cjs.map +0 -1
  878. package/singlestore-core/query-builders/select.d.cts +0 -585
  879. package/singlestore-core/query-builders/select.d.ts +0 -585
  880. package/singlestore-core/query-builders/select.js +0 -662
  881. package/singlestore-core/query-builders/select.js.map +0 -1
  882. package/singlestore-core/query-builders/select.types.cjs +0 -17
  883. package/singlestore-core/query-builders/select.types.cjs.map +0 -1
  884. package/singlestore-core/query-builders/select.types.d.cts +0 -137
  885. package/singlestore-core/query-builders/select.types.d.ts +0 -137
  886. package/singlestore-core/query-builders/select.types.js +0 -1
  887. package/singlestore-core/query-builders/select.types.js.map +0 -1
  888. package/singlestore-core/query-builders/update.cjs +0 -147
  889. package/singlestore-core/query-builders/update.cjs.map +0 -1
  890. package/singlestore-core/query-builders/update.d.cts +0 -102
  891. package/singlestore-core/query-builders/update.d.ts +0 -102
  892. package/singlestore-core/query-builders/update.js +0 -122
  893. package/singlestore-core/query-builders/update.js.map +0 -1
  894. package/singlestore-core/schema.cjs +0 -56
  895. package/singlestore-core/schema.cjs.map +0 -1
  896. package/singlestore-core/schema.d.cts +0 -22
  897. package/singlestore-core/schema.d.ts +0 -22
  898. package/singlestore-core/schema.js +0 -29
  899. package/singlestore-core/schema.js.map +0 -1
  900. package/singlestore-core/session.cjs +0 -87
  901. package/singlestore-core/session.cjs.map +0 -1
  902. package/singlestore-core/session.d.cts +0 -66
  903. package/singlestore-core/session.d.ts +0 -66
  904. package/singlestore-core/session.js +0 -61
  905. package/singlestore-core/session.js.map +0 -1
  906. package/singlestore-core/subquery.cjs +0 -17
  907. package/singlestore-core/subquery.cjs.map +0 -1
  908. package/singlestore-core/subquery.d.cts +0 -5
  909. package/singlestore-core/subquery.d.ts +0 -5
  910. package/singlestore-core/subquery.js +0 -1
  911. package/singlestore-core/subquery.js.map +0 -1
  912. package/singlestore-core/table.cjs +0 -73
  913. package/singlestore-core/table.cjs.map +0 -1
  914. package/singlestore-core/table.d.cts +0 -40
  915. package/singlestore-core/table.d.ts +0 -40
  916. package/singlestore-core/table.js +0 -46
  917. package/singlestore-core/table.js.map +0 -1
  918. package/singlestore-core/unique-constraint.cjs +0 -82
  919. package/singlestore-core/unique-constraint.cjs.map +0 -1
  920. package/singlestore-core/unique-constraint.d.cts +0 -24
  921. package/singlestore-core/unique-constraint.d.ts +0 -24
  922. package/singlestore-core/unique-constraint.js +0 -54
  923. package/singlestore-core/unique-constraint.js.map +0 -1
  924. package/singlestore-core/utils.cjs +0 -65
  925. package/singlestore-core/utils.cjs.map +0 -1
  926. package/singlestore-core/utils.d.cts +0 -13
  927. package/singlestore-core/utils.d.ts +0 -13
  928. package/singlestore-core/utils.js +0 -41
  929. package/singlestore-core/utils.js.map +0 -1
  930. package/singlestore-core/view-base.cjs +0 -33
  931. package/singlestore-core/view-base.cjs.map +0 -1
  932. package/singlestore-core/view-base.d.cts +0 -9
  933. package/singlestore-core/view-base.d.ts +0 -9
  934. package/singlestore-core/view-base.js +0 -9
  935. package/singlestore-core/view-base.js.map +0 -1
  936. package/singlestore-core/view-common.cjs +0 -29
  937. package/singlestore-core/view-common.cjs.map +0 -1
  938. package/singlestore-core/view-common.d.cts +0 -1
  939. package/singlestore-core/view-common.d.ts +0 -1
  940. package/singlestore-core/view-common.js +0 -5
  941. package/singlestore-core/view-common.js.map +0 -1
  942. package/singlestore-core/view.cjs +0 -146
  943. package/singlestore-core/view.cjs.map +0 -1
  944. package/singlestore-core/view.d.cts +0 -65
  945. package/singlestore-core/view.d.ts +0 -65
  946. package/singlestore-core/view.js +0 -119
  947. package/singlestore-core/view.js.map +0 -1
  948. package/singlestore-proxy/driver.cjs +0 -62
  949. package/singlestore-proxy/driver.cjs.map +0 -1
  950. package/singlestore-proxy/driver.d.cts +0 -13
  951. package/singlestore-proxy/driver.d.ts +0 -13
  952. package/singlestore-proxy/driver.js +0 -42
  953. package/singlestore-proxy/driver.js.map +0 -1
  954. package/singlestore-proxy/index.cjs +0 -25
  955. package/singlestore-proxy/index.cjs.map +0 -1
  956. package/singlestore-proxy/index.d.cts +0 -2
  957. package/singlestore-proxy/index.d.ts +0 -2
  958. package/singlestore-proxy/index.js +0 -3
  959. package/singlestore-proxy/index.js.map +0 -1
  960. package/singlestore-proxy/migrator.cjs +0 -60
  961. package/singlestore-proxy/migrator.cjs.map +0 -1
  962. package/singlestore-proxy/migrator.d.cts +0 -4
  963. package/singlestore-proxy/migrator.d.ts +0 -4
  964. package/singlestore-proxy/migrator.js +0 -36
  965. package/singlestore-proxy/migrator.js.map +0 -1
  966. package/singlestore-proxy/session.cjs +0 -127
  967. package/singlestore-proxy/session.cjs.map +0 -1
  968. package/singlestore-proxy/session.d.cts +0 -50
  969. package/singlestore-proxy/session.d.ts +0 -50
  970. package/singlestore-proxy/session.js +0 -101
  971. package/singlestore-proxy/session.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/neon-serverless/session.ts"],"sourcesContent":["import {\n\ttype Client,\n\tPool,\n\ttype PoolClient,\n\ttype QueryArrayConfig,\n\ttype QueryConfig,\n\ttype QueryResult,\n\ttype QueryResultRow,\n\ttypes,\n} from '@neondatabase/serverless';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport type NeonClient = Pool | PoolClient | Client;\n\nexport class NeonPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NeonPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: NeonClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\tconst { fields, client, rawQueryConfig: rawQuery, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.query(rawQuery, params);\n\t\t}\n\n\t\tconst result = await client.query(query, params);\n\n\t\treturn customResultMapper\n\t\t\t? customResultMapper(result.rows)\n\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t}\n\n\tvalues(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\treturn this.client.query(this.queryConfig, params).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NeonSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<NeonQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NeonSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NeonClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NeonSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NeonPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<QueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\trowMode: 'array',\n\t\t\ttext: query,\n\t\t\tvalues: params,\n\t\t});\n\t\treturn result;\n\t}\n\n\tasync queryObjects<T extends QueryResultRow>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<QueryResult<T>> {\n\t\treturn this.client.query<T>(query, params);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig: PgTransactionConfig = {},\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new NeonSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NeonTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin ${tx.getTransactionConfigSQL(config)}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class NeonTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<NeonQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NeonTransaction';\n\n\toverride async transaction<T>(transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NeonTransaction<TFullSchema, TSchema>(this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport interface NeonQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":["sql"]}
1
+ {"version":3,"sources":["../../src/neon-serverless/session.ts"],"sourcesContent":["import {\n\ttype Client,\n\tPool,\n\ttype PoolClient,\n\ttype QueryArrayConfig,\n\ttype QueryConfig,\n\ttype QueryResult,\n\ttype QueryResultRow,\n\ttypes,\n} from '@neondatabase/serverless';\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 { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport type NeonClient = Pool | PoolClient | Client;\n\nexport class NeonPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PgPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'NeonPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: NeonClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\tconst { fields, client, rawQueryConfig: rawQuery, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.query(rawQuery, params);\n\t\t}\n\n\t\tconst result = await client.query(query, params);\n\n\t\treturn customResultMapper\n\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result.rows)\n\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\tconst { client, rawQueryConfig: rawQuery, customResultMapper } = this;\n\n\t\tconst result = await client.query(rawQuery, params);\n\n\t\treturn customResultMapper!(result.rows);\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t}\n\n\tvalues(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\treturn this.client.query(this.queryConfig, params).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NeonSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<NeonQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NeonSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NeonClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NeonSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NeonPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NeonPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<QueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\trowMode: 'array',\n\t\t\ttext: query,\n\t\t\tvalues: params,\n\t\t});\n\t\treturn result;\n\t}\n\n\tasync queryObjects<T extends QueryResultRow>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<QueryResult<T>> {\n\t\treturn this.client.query<T>(query, params);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NeonTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig: PgTransactionConfig = {},\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new NeonSession(await this.client.connect(), this.dialect, this.relations, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NeonTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t);\n\t\tawait tx.execute(sql`begin ${tx.getTransactionConfigSQL(config)}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class NeonTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<NeonQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NeonTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NeonTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NeonTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\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\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport interface NeonQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"AAAA;AAAA,EAEC;AAAA,EAMA;AAAA,OACM;AAEP,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAG9B,SAAS,iBAAiB,iBAAiB;AAE3C,SAAS,kBAAwC,WAAW;AAC5D,SAAsB,oBAAoB;AAInC,MAAM,0BACJ,gBACT;AAAA,EAMC,YACS,QACR,aACQ,QACA,QACA,QACR,MACQ,wBACA,oBAGA,cACP;AACD,UAAM,EAAE,KAAK,aAAa,OAAO,CAAC;AAZ1B;AAEA;AACA;AACA;AAEA;AACA;AAGA;AAGR,SAAK,iBAAiB;AAAA,MACrB;AAAA,MACA,MAAM;AAAA,MACN,OAAO;AAAA;AAAA,QAEN,eAAe,CAAC,QAAQ,WAAW;AAClC,cAAI,WAAW,MAAM,SAAS,aAAa;AAC1C,mBAAO,CAAC,QAAa;AAAA,UACtB;AACA,cAAI,WAAW,MAAM,SAAS,WAAW;AACxC,mBAAO,CAAC,QAAa;AAAA,UACtB;AACA,cAAI,WAAW,MAAM,SAAS,MAAM;AACnC,mBAAO,CAAC,QAAa;AAAA,UACtB;AACA,cAAI,WAAW,MAAM,SAAS,UAAU;AACvC,mBAAO,CAAC,QAAa;AAAA,UACtB;AAEA,iBAAO,MAAM,cAAc,QAAQ,MAAM;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AACA,SAAK,cAAc;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA;AAAA,QAEN,eAAe,CAAC,QAAQ,WAAW;AAClC,cAAI,WAAW,MAAM,SAAS,aAAa;AAC1C,mBAAO,CAAC,QAAa;AAAA,UACtB;AACA,cAAI,WAAW,MAAM,SAAS,WAAW;AACxC,mBAAO,CAAC,QAAa;AAAA,UACtB;AACA,cAAI,WAAW,MAAM,SAAS,MAAM;AACnC,mBAAO,CAAC,QAAa;AAAA,UACtB;AACA,cAAI,WAAW,MAAM,SAAS,UAAU;AACvC,mBAAO,CAAC,QAAa;AAAA,UACtB;AAEA,iBAAO,MAAM,cAAc,QAAQ,MAAM;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAlEA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EAiER,MAAM,QAAQ,oBAAyD,CAAC,GAA0B;AACjG,QAAI,KAAK;AAAc,aAAO,KAAK,aAAa,iBAAiB;AAEjE,UAAM,SAAS,iBAAiB,KAAK,QAAQ,iBAAiB;AAE9D,SAAK,OAAO,SAAS,KAAK,eAAe,MAAM,MAAM;AAErD,UAAM,EAAE,QAAQ,QAAQ,gBAAgB,UAAU,aAAa,OAAO,qBAAqB,mBAAmB,IAC7G;AACD,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,aAAO,OAAO,MAAM,UAAU,MAAM;AAAA,IACrC;AAEA,UAAM,SAAS,MAAM,OAAO,MAAM,OAAO,MAAM;AAE/C,WAAO,qBACH,mBAA2D,OAAO,IAAI,IACvE,OAAO,KAAK,IAAI,CAAC,QAAQ,aAA2B,QAAS,KAAK,mBAAmB,CAAC;AAAA,EAC1F;AAAA,EAEA,MAAc,aAAa,oBAAyD,CAAC,GAA0B;AAC9G,UAAM,SAAS,iBAAiB,KAAK,QAAQ,iBAAiB;AAE9D,SAAK,OAAO,SAAS,KAAK,eAAe,MAAM,MAAM;AAErD,UAAM,EAAE,QAAQ,gBAAgB,UAAU,mBAAmB,IAAI;AAEjE,UAAM,SAAS,MAAM,OAAO,MAAM,UAAU,MAAM;AAElD,WAAO,mBAAoB,OAAO,IAAI;AAAA,EACvC;AAAA,EAEA,IAAI,oBAAyD,CAAC,GAAsB;AACnF,UAAM,SAAS,iBAAiB,KAAK,QAAQ,iBAAiB;AAC9D,SAAK,OAAO,SAAS,KAAK,eAAe,MAAM,MAAM;AACrD,WAAO,KAAK,OAAO,MAAM,KAAK,gBAAgB,MAAM,EAAE,KAAK,CAAC,WAAW,OAAO,IAAI;AAAA,EACnF;AAAA,EAEA,OAAO,oBAAyD,CAAC,GAAyB;AACzF,UAAM,SAAS,iBAAiB,KAAK,QAAQ,iBAAiB;AAC9D,SAAK,OAAO,SAAS,KAAK,eAAe,MAAM,MAAM;AACrD,WAAO,KAAK,OAAO,MAAM,KAAK,aAAa,MAAM,EAAE,KAAK,CAAC,WAAW,OAAO,IAAI;AAAA,EAChF;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;AAMO,MAAM,oBAKH,UAA+E;AAAA,EAKxF,YACS,QACR,SACQ,WACA,QACA,UAA8B,CAAC,GACtC;AACD,UAAM,OAAO;AANL;AAEA;AACA;AACA;AAGR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAbA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAaR,aACC,OACA,QACA,MACA,uBACA,oBACqB;AACrB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,uBACC,OACA,QACA,MACA,oBACqB;AACrB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,MAAM,OAAe,QAAyC;AACnE,SAAK,OAAO,SAAS,OAAO,MAAM;AAClC,UAAM,SAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACtC,SAAS;AAAA,MACT,MAAM;AAAA,MACN,QAAQ;AAAA,IACT,CAAC;AACD,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,aACL,OACA,QAC0B;AAC1B,WAAO,KAAK,OAAO,MAAS,OAAO,MAAM;AAAA,EAC1C;AAAA,EAEA,MAAe,MAAMA,MAA2B;AAC/C,UAAM,MAAM,MAAM,KAAK,QAAuCA,IAAG;AAEjE,WAAO;AAAA,MACN,IAAI,MAAM,EAAE,CAAC,EAAE,OAAO;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,MAAe,YACd,aACA,SAA8B,CAAC,GAClB;AACb,UAAM,UAAU,KAAK,kBAAkB,OACpC,IAAI,YAAY,MAAM,KAAK,OAAO,QAAQ,GAAG,KAAK,SAAS,KAAK,WAAW,KAAK,QAAQ,KAAK,OAAO,IACpG;AACH,UAAM,KAAK,IAAI;AAAA,MACd,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,UAAM,GAAG,QAAQ,YAAY,GAAG,wBAAwB,MAAM,CAAC,EAAE;AACjE,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,EAAE;AACnC,YAAM,GAAG,QAAQ,WAAW;AAC5B,aAAO;AAAA,IACR,SAAS,OAAO;AACf,YAAM,GAAG,QAAQ,aAAa;AAC9B,YAAM;AAAA,IACP,UAAE;AACD,UAAI,KAAK,kBAAkB,MAAM;AAChC,QAAC,QAAQ,OAAsB,QAAQ;AAAA,MACxC;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,wBAKH,cAAmF;AAAA,EAC5F,QAA0B,UAAU,IAAY;AAAA,EAEhD,MAAe,YACd,aACa;AACb,UAAM,gBAAgB,KAAK,KAAK,cAAc,CAAC;AAC/C,UAAM,KAAK,IAAI;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,cAAc;AAAA,IACpB;AACA,UAAM,GAAG,QAAQ,IAAI,IAAI,aAAa,aAAa,EAAE,CAAC;AACtD,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,EAAE;AACnC,YAAM,GAAG,QAAQ,IAAI,IAAI,qBAAqB,aAAa,EAAE,CAAC;AAC9D,aAAO;AAAA,IACR,SAAS,GAAG;AACX,YAAM,GAAG,QAAQ,IAAI,IAAI,yBAAyB,aAAa,EAAE,CAAC;AAClE,YAAM;AAAA,IACP;AAAA,EACD;AACD;","names":["sql"]}
@@ -34,11 +34,11 @@ __export(driver_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(driver_exports);
36
36
  var import_pg = __toESM(require("pg"), 1);
37
+ var V1 = __toESM(require("../_relations.cjs"), 1);
37
38
  var import_entity = require("../entity.cjs");
38
39
  var import_logger = require("../logger.cjs");
39
40
  var import_db = require("../pg-core/db.cjs");
40
41
  var import_dialect = require("../pg-core/dialect.cjs");
41
- var import_relations = require("../relations.cjs");
42
42
  var import_utils = require("../utils.cjs");
43
43
  var import_session = require("./session.cjs");
44
44
  class NodePgDriver {
@@ -48,8 +48,8 @@ class NodePgDriver {
48
48
  this.options = options;
49
49
  }
50
50
  static [import_entity.entityKind] = "NodePgDriver";
51
- createSession(schema) {
52
- return new import_session.NodePgSession(this.client, this.dialect, schema, { logger: this.options.logger });
51
+ createSession(relations, schema) {
52
+ return new import_session.NodePgSession(this.client, this.dialect, relations, schema, { logger: this.options.logger });
53
53
  }
54
54
  }
55
55
  class NodePgDatabase extends import_db.PgDatabase {
@@ -65,9 +65,9 @@ function construct(client, config = {}) {
65
65
  }
66
66
  let schema;
67
67
  if (config.schema) {
68
- const tablesConfig = (0, import_relations.extractTablesRelationalConfig)(
68
+ const tablesConfig = V1.extractTablesRelationalConfig(
69
69
  config.schema,
70
- import_relations.createTableRelationsHelpers
70
+ V1.createTableRelationsHelpers
71
71
  );
72
72
  schema = {
73
73
  fullSchema: config.schema,
@@ -75,9 +75,15 @@ function construct(client, config = {}) {
75
75
  tableNamesMap: tablesConfig.tableNamesMap
76
76
  };
77
77
  }
78
+ const relations = config.relations;
78
79
  const driver = new NodePgDriver(client, dialect, { logger });
79
- const session = driver.createSession(schema);
80
- const db = new NodePgDatabase(dialect, session, schema);
80
+ const session = driver.createSession(relations, schema);
81
+ const db = new NodePgDatabase(
82
+ dialect,
83
+ session,
84
+ relations,
85
+ schema
86
+ );
81
87
  db.$client = client;
82
88
  return db;
83
89
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-postgres/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { NodePgClient, NodePgQueryResultHKT } from './session.ts';\nimport { NodePgSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgDriver {\n\tstatic readonly [entityKind]: string = 'NodePgDriver';\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): NodePgSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new NodePgSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class NodePgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<NodePgQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodePgClient = NodePgClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodePgDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NodePgDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new NodePgDatabase(dialect, session, schema as any) as NodePgDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodePgClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodePgDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? new pg.Pool({\n\t\t\t\tconnectionString: connection,\n\t\t\t})\n\t\t\t: new pg.Pool(connection!);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodePgDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA+C;AAC/C,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AACP,mBAA6C;AAE7C,qBAA8B;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA2B,CAAC,GACnC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACiE;AACjE,WAAO,IAAI,6BAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC5F;AACD;AAEO,MAAM,uBAEH,qBAA0C;AAAA,EACnD,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,aAAa,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC3D,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,MAAa;AAC7D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAoBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,UAAAA,QAAG,KAAK;AAAA,MAC5B,kBAAkB,OAAO,CAAC;AAAA,IAC3B,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WACpC,IAAI,UAAAA,QAAG,KAAK;AAAA,MACb,kBAAkB;AAAA,IACnB,CAAC,IACC,IAAI,UAAAA,QAAG,KAAK,UAAW;AAE1B,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["pg","drizzle"]}
1
+ {"version":3,"sources":["../../src/node-postgres/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { NodePgClient, NodePgQueryResultHKT } from './session.ts';\nimport { NodePgSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgDriver {\n\tstatic readonly [entityKind]: string = 'NodePgDriver';\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\trelations: AnyRelations | undefined,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodePgSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig> {\n\t\treturn new NodePgSession(this.client, this.dialect, relations, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class NodePgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<NodePgQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'NodePgDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends NodePgClient = NodePgClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): NodePgDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst driver = new NodePgDriver(client, dialect, { logger });\n\tconst session = driver.createSession(relations, schema);\n\tconst db = new NodePgDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as NodePgDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends NodePgClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema, TRelations>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodePgDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? new pg.Pool({\n\t\t\t\tconnectionString: connection,\n\t\t\t})\n\t\t\t: new pg.Pool(connection!);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): NodePgDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA+C;AAC/C,SAAoB;AACpB,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAE1B,mBAA6C;AAE7C,qBAA8B;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA2B,CAAC,GACnC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,WACA,QAC0G;AAC1G,WAAO,IAAI,6BAAc,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACvG;AACD;AAEO,MAAM,uBAGH,qBAAsD;AAAA,EAC/D,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAKR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,SAAS,IAAI,aAAa,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC3D,QAAM,UAAU,OAAO,cAAc,WAAW,MAAM;AACtD,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAKZ,QAoBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,UAAAA,QAAG,KAAK;AAAA,MAC5B,kBAAkB,OAAO,CAAC;AAAA,IAC3B,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAmD;AAAA,EACvF;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WACpC,IAAI,UAAAA,QAAG,KAAK;AAAA,MACb,kBAAkB;AAAA,IACnB,CAAC,IACC,IAAI,UAAAA,QAAG,KAAK,UAAW;AAE1B,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AATO,EAAAA,SAAS;AAAA,GADA;","names":["pg","drizzle"]}
@@ -1,9 +1,10 @@
1
1
  import { type Pool, type PoolConfig } from 'pg';
2
+ import * as V1 from "../_relations.cjs";
2
3
  import { entityKind } from "../entity.cjs";
3
4
  import type { Logger } from "../logger.cjs";
4
5
  import { PgDatabase } from "../pg-core/db.cjs";
5
6
  import { PgDialect } from "../pg-core/dialect.cjs";
6
- import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.cjs";
7
+ import type { AnyRelations, EmptyRelations, TablesRelationalConfig } from "../relations.cjs";
7
8
  import { type DrizzleConfig } from "../utils.cjs";
8
9
  import type { NodePgClient, NodePgQueryResultHKT } from "./session.cjs";
9
10
  import { NodePgSession } from "./session.cjs";
@@ -16,27 +17,27 @@ export declare class NodePgDriver {
16
17
  private options;
17
18
  static readonly [entityKind]: string;
18
19
  constructor(client: NodePgClient, dialect: PgDialect, options?: PgDriverOptions);
19
- createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): NodePgSession<Record<string, unknown>, TablesRelationalConfig>;
20
+ createSession(relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined): NodePgSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig>;
20
21
  }
21
- export declare class NodePgDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<NodePgQueryResultHKT, TSchema> {
22
+ export declare class NodePgDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<NodePgQueryResultHKT, TSchema, TRelations> {
22
23
  static readonly [entityKind]: string;
23
24
  }
24
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends NodePgClient = Pool>(...params: [
25
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends NodePgClient = Pool>(...params: [
25
26
  TClient | string
26
27
  ] | [
27
28
  TClient | string,
28
- DrizzleConfig<TSchema>
29
+ DrizzleConfig<TSchema, TRelations>
29
30
  ] | [
30
- (DrizzleConfig<TSchema> & ({
31
+ (DrizzleConfig<TSchema, TRelations> & ({
31
32
  connection: string | PoolConfig;
32
33
  } | {
33
34
  client: TClient;
34
35
  }))
35
- ]): NodePgDatabase<TSchema> & {
36
+ ]): NodePgDatabase<TSchema, TRelations> & {
36
37
  $client: TClient;
37
38
  };
38
39
  export declare namespace drizzle {
39
- function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): NodePgDatabase<TSchema> & {
40
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): NodePgDatabase<TSchema, TRelations> & {
40
41
  $client: '$client is not available on drizzle.mock()';
41
42
  };
42
43
  }
@@ -1,9 +1,10 @@
1
1
  import { type Pool, type PoolConfig } from 'pg';
2
+ import * as V1 from "../_relations.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import type { Logger } from "../logger.js";
4
5
  import { PgDatabase } from "../pg-core/db.js";
5
6
  import { PgDialect } from "../pg-core/dialect.js";
6
- import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.js";
7
+ import type { AnyRelations, EmptyRelations, TablesRelationalConfig } from "../relations.js";
7
8
  import { type DrizzleConfig } from "../utils.js";
8
9
  import type { NodePgClient, NodePgQueryResultHKT } from "./session.js";
9
10
  import { NodePgSession } from "./session.js";
@@ -16,27 +17,27 @@ export declare class NodePgDriver {
16
17
  private options;
17
18
  static readonly [entityKind]: string;
18
19
  constructor(client: NodePgClient, dialect: PgDialect, options?: PgDriverOptions);
19
- createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): NodePgSession<Record<string, unknown>, TablesRelationalConfig>;
20
+ createSession(relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined): NodePgSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig>;
20
21
  }
21
- export declare class NodePgDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<NodePgQueryResultHKT, TSchema> {
22
+ export declare class NodePgDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<NodePgQueryResultHKT, TSchema, TRelations> {
22
23
  static readonly [entityKind]: string;
23
24
  }
24
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends NodePgClient = Pool>(...params: [
25
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends NodePgClient = Pool>(...params: [
25
26
  TClient | string
26
27
  ] | [
27
28
  TClient | string,
28
- DrizzleConfig<TSchema>
29
+ DrizzleConfig<TSchema, TRelations>
29
30
  ] | [
30
- (DrizzleConfig<TSchema> & ({
31
+ (DrizzleConfig<TSchema, TRelations> & ({
31
32
  connection: string | PoolConfig;
32
33
  } | {
33
34
  client: TClient;
34
35
  }))
35
- ]): NodePgDatabase<TSchema> & {
36
+ ]): NodePgDatabase<TSchema, TRelations> & {
36
37
  $client: TClient;
37
38
  };
38
39
  export declare namespace drizzle {
39
- function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): NodePgDatabase<TSchema> & {
40
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): NodePgDatabase<TSchema, TRelations> & {
40
41
  $client: '$client is not available on drizzle.mock()';
41
42
  };
42
43
  }
@@ -1,12 +1,9 @@
1
1
  import pg from "pg";
2
+ import * as V1 from "../_relations.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import { DefaultLogger } from "../logger.js";
4
5
  import { PgDatabase } from "../pg-core/db.js";
5
6
  import { PgDialect } from "../pg-core/dialect.js";
6
- import {
7
- createTableRelationsHelpers,
8
- extractTablesRelationalConfig
9
- } from "../relations.js";
10
7
  import { isConfig } from "../utils.js";
11
8
  import { NodePgSession } from "./session.js";
12
9
  class NodePgDriver {
@@ -16,8 +13,8 @@ class NodePgDriver {
16
13
  this.options = options;
17
14
  }
18
15
  static [entityKind] = "NodePgDriver";
19
- createSession(schema) {
20
- return new NodePgSession(this.client, this.dialect, schema, { logger: this.options.logger });
16
+ createSession(relations, schema) {
17
+ return new NodePgSession(this.client, this.dialect, relations, schema, { logger: this.options.logger });
21
18
  }
22
19
  }
23
20
  class NodePgDatabase extends PgDatabase {
@@ -33,9 +30,9 @@ function construct(client, config = {}) {
33
30
  }
34
31
  let schema;
35
32
  if (config.schema) {
36
- const tablesConfig = extractTablesRelationalConfig(
33
+ const tablesConfig = V1.extractTablesRelationalConfig(
37
34
  config.schema,
38
- createTableRelationsHelpers
35
+ V1.createTableRelationsHelpers
39
36
  );
40
37
  schema = {
41
38
  fullSchema: config.schema,
@@ -43,9 +40,15 @@ function construct(client, config = {}) {
43
40
  tableNamesMap: tablesConfig.tableNamesMap
44
41
  };
45
42
  }
43
+ const relations = config.relations;
46
44
  const driver = new NodePgDriver(client, dialect, { logger });
47
- const session = driver.createSession(schema);
48
- const db = new NodePgDatabase(dialect, session, schema);
45
+ const session = driver.createSession(relations, schema);
46
+ const db = new NodePgDatabase(
47
+ dialect,
48
+ session,
49
+ relations,
50
+ schema
51
+ );
49
52
  db.$client = client;
50
53
  return db;
51
54
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-postgres/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { NodePgClient, NodePgQueryResultHKT } from './session.ts';\nimport { NodePgSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgDriver {\n\tstatic readonly [entityKind]: string = 'NodePgDriver';\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): NodePgSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new NodePgSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class NodePgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<NodePgQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodePgClient = NodePgClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodePgDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NodePgDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new NodePgDatabase(dialect, session, schema as any) as NodePgDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodePgClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodePgDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? new pg.Pool({\n\t\t\t\tconnectionString: connection,\n\t\t\t})\n\t\t\t: new pg.Pool(connection!);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodePgDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,OAAO,QAAwC;AAC/C,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,qBAAqB;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA2B,CAAC,GACnC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACiE;AACjE,WAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC5F;AACD;AAEO,MAAM,uBAEH,WAA0C;AAAA,EACnD,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,aAAa,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC3D,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,MAAa;AAC7D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAoBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,GAAG,KAAK;AAAA,MAC5B,kBAAkB,OAAO,CAAC;AAAA,IAC3B,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WACpC,IAAI,GAAG,KAAK;AAAA,MACb,kBAAkB;AAAA,IACnB,CAAC,IACC,IAAI,GAAG,KAAK,UAAW;AAE1B,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../src/node-postgres/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { NodePgClient, NodePgQueryResultHKT } from './session.ts';\nimport { NodePgSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgDriver {\n\tstatic readonly [entityKind]: string = 'NodePgDriver';\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\trelations: AnyRelations | undefined,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodePgSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig> {\n\t\treturn new NodePgSession(this.client, this.dialect, relations, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class NodePgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<NodePgQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'NodePgDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends NodePgClient = NodePgClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): NodePgDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst driver = new NodePgDriver(client, dialect, { logger });\n\tconst session = driver.createSession(relations, schema);\n\tconst db = new NodePgDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as NodePgDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends NodePgClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema, TRelations>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodePgDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? new pg.Pool({\n\t\t\t\tconnectionString: connection,\n\t\t\t})\n\t\t\t: new pg.Pool(connection!);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): NodePgDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,OAAO,QAAwC;AAC/C,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAE1B,SAA6B,gBAAgB;AAE7C,SAAS,qBAAqB;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA2B,CAAC,GACnC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,WACA,QAC0G;AAC1G,WAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACvG;AACD;AAEO,MAAM,uBAGH,WAAsD;AAAA,EAC/D,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAKR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,SAAS,IAAI,aAAa,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC3D,QAAM,UAAU,OAAO,cAAc,WAAW,MAAM;AACtD,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAKZ,QAoBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,GAAG,KAAK;AAAA,MAC5B,kBAAkB,OAAO,CAAC;AAAA,IAC3B,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAmD;AAAA,EACvF;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WACpC,IAAI,GAAG,KAAK;AAAA,MACb,kBAAkB;AAAA,IACnB,CAAC,IACC,IAAI,GAAG,KAAK,UAAW;AAE1B,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AATO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-postgres/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { NodePgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: NodePgDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/node-postgres/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { NodePgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: NodePgDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -1,3 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.cjs";
2
+ import type { AnyRelations } from "../relations.cjs";
2
3
  import type { NodePgDatabase } from "./driver.cjs";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: NodePgDatabase<TSchema>, config: MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: NodePgDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -1,3 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.js";
2
+ import type { AnyRelations } from "../relations.js";
2
3
  import type { NodePgDatabase } from "./driver.js";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: NodePgDatabase<TSchema>, config: MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: NodePgDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-postgres/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { NodePgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: NodePgDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/node-postgres/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { NodePgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: NodePgDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -43,7 +43,7 @@ var import_tracing = require("../tracing.cjs");
43
43
  var import_utils = require("../utils.cjs");
44
44
  const { Pool, types } = import_pg.default;
45
45
  class NodePgPreparedQuery extends import_session.PgPreparedQuery {
46
- constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, customResultMapper) {
46
+ constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
47
47
  super({ sql: queryString, params });
48
48
  this.client = client;
49
49
  this.params = params;
@@ -51,6 +51,7 @@ class NodePgPreparedQuery extends import_session.PgPreparedQuery {
51
51
  this.fields = fields;
52
52
  this._isResponseInArrayMode = _isResponseInArrayMode;
53
53
  this.customResultMapper = customResultMapper;
54
+ this.isRqbV2Query = isRqbV2Query;
54
55
  this.rawQueryConfig = {
55
56
  name,
56
57
  text: queryString,
@@ -101,6 +102,8 @@ class NodePgPreparedQuery extends import_session.PgPreparedQuery {
101
102
  rawQueryConfig;
102
103
  queryConfig;
103
104
  async execute(placeholderValues = {}) {
105
+ if (this.isRqbV2Query)
106
+ return this.executeRqbV2(placeholderValues);
104
107
  return import_tracing.tracer.startActiveSpan("drizzle.execute", async () => {
105
108
  const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
106
109
  this.logger.logQuery(this.rawQueryConfig.text, params);
@@ -128,6 +131,24 @@ class NodePgPreparedQuery extends import_session.PgPreparedQuery {
128
131
  });
129
132
  });
130
133
  }
134
+ async executeRqbV2(placeholderValues = {}) {
135
+ return import_tracing.tracer.startActiveSpan("drizzle.execute", async () => {
136
+ const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
137
+ this.logger.logQuery(this.rawQueryConfig.text, params);
138
+ const { rawQueryConfig: rawQuery, client, customResultMapper } = this;
139
+ const result = await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", (span) => {
140
+ span?.setAttributes({
141
+ "drizzle.query.name": rawQuery.name,
142
+ "drizzle.query.text": rawQuery.text,
143
+ "drizzle.query.params": JSON.stringify(params)
144
+ });
145
+ return client.query(rawQuery, params);
146
+ });
147
+ return import_tracing.tracer.startActiveSpan("drizzle.mapResponse", () => {
148
+ return customResultMapper(result.rows);
149
+ });
150
+ });
151
+ }
131
152
  all(placeholderValues = {}) {
132
153
  return import_tracing.tracer.startActiveSpan("drizzle.execute", () => {
133
154
  const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
@@ -148,9 +169,10 @@ class NodePgPreparedQuery extends import_session.PgPreparedQuery {
148
169
  }
149
170
  }
150
171
  class NodePgSession extends import_session.PgSession {
151
- constructor(client, dialect, schema, options = {}) {
172
+ constructor(client, dialect, relations, schema, options = {}) {
152
173
  super(dialect);
153
174
  this.client = client;
175
+ this.relations = relations;
154
176
  this.schema = schema;
155
177
  this.options = options;
156
178
  this.logger = options.logger ?? new import_logger.NoopLogger();
@@ -169,9 +191,27 @@ class NodePgSession extends import_session.PgSession {
169
191
  customResultMapper
170
192
  );
171
193
  }
194
+ prepareRelationalQuery(query, fields, name, customResultMapper) {
195
+ return new NodePgPreparedQuery(
196
+ this.client,
197
+ query.sql,
198
+ query.params,
199
+ this.logger,
200
+ fields,
201
+ name,
202
+ false,
203
+ customResultMapper,
204
+ true
205
+ );
206
+ }
172
207
  async transaction(transaction, config) {
173
- const session = this.client instanceof Pool ? new NodePgSession(await this.client.connect(), this.dialect, this.schema, this.options) : this;
174
- const tx = new NodePgTransaction(this.dialect, session, this.schema);
208
+ const session = this.client instanceof Pool ? new NodePgSession(await this.client.connect(), this.dialect, this.relations, this.schema, this.options) : this;
209
+ const tx = new NodePgTransaction(
210
+ this.dialect,
211
+ session,
212
+ this.relations,
213
+ this.schema
214
+ );
175
215
  await tx.execute(import_sql.sql`begin${config ? import_sql.sql` ${tx.getTransactionConfigSQL(config)}` : void 0}`);
176
216
  try {
177
217
  const result = await transaction(tx);
@@ -200,6 +240,7 @@ class NodePgTransaction extends import_pg_core.PgTransaction {
200
240
  const tx = new NodePgTransaction(
201
241
  this.dialect,
202
242
  this.session,
243
+ this.relations,
203
244
  this.schema,
204
245
  this.nestedIndex + 1
205
246
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-postgres/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodePgClient = pg.Pool | PoolClient | Client;\n\nexport class NodePgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodePgPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NodePgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<NodePgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodePgSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NodePgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new NodePgSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodePgTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<NodePgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgTransaction';\n\n\toverride async transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface NodePgQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":["pg","sql"]}
1
+ {"version":3,"sources":["../../src/node-postgres/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodePgClient = pg.Pool | PoolClient | Client;\n\nexport class NodePgPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PgPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'NodePgPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { rawQueryConfig: rawQuery, client, customResultMapper } = this;\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(result.rows);\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NodePgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NodePgSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<NodePgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodePgClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodePgSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NodePgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new NodePgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodePgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new NodePgSession(await this.client.connect(), this.dialect, this.relations, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodePgTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<NodePgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodePgTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodePgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodePgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\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\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface NodePgQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":["pg","sql"]}
@@ -1,5 +1,6 @@
1
1
  import type { Client, PoolClient, QueryResult, QueryResultRow } from 'pg';
2
2
  import pg from 'pg';
3
+ import type * as V1 from "../_relations.cjs";
3
4
  import { entityKind } from "../entity.cjs";
4
5
  import { type Logger } from "../logger.cjs";
5
6
  import type { PgDialect } from "../pg-core/dialect.cjs";
@@ -7,41 +8,45 @@ import { PgTransaction } from "../pg-core/index.cjs";
7
8
  import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.cjs";
8
9
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.cjs";
9
10
  import { PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
10
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
11
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
11
12
  import { type Query, type SQL } from "../sql/sql.cjs";
12
13
  import { type Assume } from "../utils.cjs";
13
14
  export type NodePgClient = pg.Pool | PoolClient | Client;
14
- export declare class NodePgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
15
+ export declare class NodePgPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
15
16
  private client;
16
17
  private params;
17
18
  private logger;
18
19
  private fields;
19
20
  private _isResponseInArrayMode;
20
21
  private customResultMapper?;
22
+ private isRqbV2Query?;
21
23
  static readonly [entityKind]: string;
22
24
  private rawQueryConfig;
23
25
  private queryConfig;
24
- constructor(client: NodePgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
26
+ constructor(client: NodePgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
25
27
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
28
+ private executeRqbV2;
26
29
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
27
30
  }
28
31
  export interface NodePgSessionOptions {
29
32
  logger?: Logger;
30
33
  }
31
- export declare class NodePgSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<NodePgQueryResultHKT, TFullSchema, TSchema> {
34
+ export declare class NodePgSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgSession<NodePgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
32
35
  private client;
36
+ private relations;
33
37
  private schema;
34
38
  private options;
35
39
  static readonly [entityKind]: string;
36
40
  private logger;
37
- constructor(client: NodePgClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: NodePgSessionOptions);
41
+ constructor(client: NodePgClient, dialect: PgDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: NodePgSessionOptions);
38
42
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
39
- transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
43
+ prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper?: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
44
+ transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
40
45
  count(sql: SQL): Promise<number>;
41
46
  }
42
- export declare class NodePgTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<NodePgQueryResultHKT, TFullSchema, TSchema> {
47
+ export declare class NodePgTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<NodePgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
43
48
  static readonly [entityKind]: string;
44
- transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
49
+ transaction<T>(transaction: (tx: NodePgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
45
50
  }
46
51
  export interface NodePgQueryResultHKT extends PgQueryResultHKT {
47
52
  type: QueryResult<Assume<this['row'], QueryResultRow>>;