drizzle-orm 0.43.1-d1468f0 → 0.43.1-e3d1c4f

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 (866) hide show
  1. package/aws-data-api/pg/driver.cjs +7 -10
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +4 -4
  4. package/aws-data-api/pg/driver.d.ts +4 -4
  5. package/aws-data-api/pg/driver.js +7 -10
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +26 -20
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +6 -16
  10. package/aws-data-api/pg/session.d.ts +6 -16
  11. package/aws-data-api/pg/session.js +26 -20
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.d.cts +4 -3
  15. package/better-sqlite3/driver.d.ts +4 -3
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/session.cjs +7 -13
  18. package/better-sqlite3/session.cjs.map +1 -1
  19. package/better-sqlite3/session.d.cts +6 -16
  20. package/better-sqlite3/session.d.ts +6 -16
  21. package/better-sqlite3/session.js +7 -13
  22. package/better-sqlite3/session.js.map +1 -1
  23. package/bun-sql/driver.cjs +3 -6
  24. package/bun-sql/driver.cjs.map +1 -1
  25. package/bun-sql/driver.d.cts +4 -3
  26. package/bun-sql/driver.d.ts +4 -3
  27. package/bun-sql/driver.js +3 -6
  28. package/bun-sql/driver.js.map +1 -1
  29. package/bun-sql/session.cjs +26 -29
  30. package/bun-sql/session.cjs.map +1 -1
  31. package/bun-sql/session.d.cts +6 -15
  32. package/bun-sql/session.d.ts +6 -15
  33. package/bun-sql/session.js +26 -29
  34. package/bun-sql/session.js.map +1 -1
  35. package/bun-sqlite/driver.cjs.map +1 -1
  36. package/bun-sqlite/driver.d.cts +4 -3
  37. package/bun-sqlite/driver.d.ts +4 -3
  38. package/bun-sqlite/driver.js.map +1 -1
  39. package/bun-sqlite/session.cjs +5 -5
  40. package/bun-sqlite/session.cjs.map +1 -1
  41. package/bun-sqlite/session.d.cts +5 -5
  42. package/bun-sqlite/session.d.ts +5 -5
  43. package/bun-sqlite/session.js +5 -5
  44. package/bun-sqlite/session.js.map +1 -1
  45. package/column-builder.cjs.map +1 -1
  46. package/column-builder.d.cts +7 -2
  47. package/column-builder.d.ts +7 -2
  48. package/column-builder.js.map +1 -1
  49. package/column.cjs +2 -0
  50. package/column.cjs.map +1 -1
  51. package/column.d.cts +6 -0
  52. package/column.d.ts +6 -0
  53. package/column.js +2 -0
  54. package/column.js.map +1 -1
  55. package/d1/driver.cjs +3 -6
  56. package/d1/driver.cjs.map +1 -1
  57. package/d1/driver.d.cts +2 -1
  58. package/d1/driver.d.ts +2 -1
  59. package/d1/driver.js +3 -6
  60. package/d1/driver.js.map +1 -1
  61. package/d1/session.cjs +24 -29
  62. package/d1/session.cjs.map +1 -1
  63. package/d1/session.d.cts +8 -17
  64. package/d1/session.d.ts +8 -17
  65. package/d1/session.js +24 -29
  66. package/d1/session.js.map +1 -1
  67. package/durable-sqlite/driver.cjs.map +1 -1
  68. package/durable-sqlite/driver.d.cts +2 -1
  69. package/durable-sqlite/driver.d.ts +2 -1
  70. package/durable-sqlite/driver.js.map +1 -1
  71. package/durable-sqlite/session.cjs +6 -6
  72. package/durable-sqlite/session.cjs.map +1 -1
  73. package/durable-sqlite/session.d.cts +5 -5
  74. package/durable-sqlite/session.d.ts +5 -5
  75. package/durable-sqlite/session.js +6 -6
  76. package/durable-sqlite/session.js.map +1 -1
  77. package/expo-sqlite/driver.cjs.map +1 -1
  78. package/expo-sqlite/driver.d.cts +2 -1
  79. package/expo-sqlite/driver.d.ts +2 -1
  80. package/expo-sqlite/driver.js.map +1 -1
  81. package/expo-sqlite/session.cjs +5 -5
  82. package/expo-sqlite/session.cjs.map +1 -1
  83. package/expo-sqlite/session.d.cts +5 -5
  84. package/expo-sqlite/session.d.ts +5 -5
  85. package/expo-sqlite/session.js +5 -5
  86. package/expo-sqlite/session.js.map +1 -1
  87. package/{cache/core/cache.cjs → extension-core/gel/index.cjs} +9 -23
  88. package/extension-core/gel/index.cjs.map +1 -0
  89. package/extension-core/gel/index.d.cts +67 -0
  90. package/extension-core/gel/index.d.ts +67 -0
  91. package/extension-core/gel/index.js +9 -0
  92. package/extension-core/gel/index.js.map +1 -0
  93. package/extension-core/index.cjs +42 -0
  94. package/extension-core/index.cjs.map +1 -0
  95. package/extension-core/index.d.cts +9 -0
  96. package/extension-core/index.d.ts +9 -0
  97. package/extension-core/index.js +15 -0
  98. package/extension-core/index.js.map +1 -0
  99. package/{errors → extension-core/mysql}/index.cjs +9 -16
  100. package/extension-core/mysql/index.cjs.map +1 -0
  101. package/extension-core/mysql/index.d.cts +69 -0
  102. package/extension-core/mysql/index.d.ts +69 -0
  103. package/extension-core/mysql/index.js +9 -0
  104. package/extension-core/mysql/index.js.map +1 -0
  105. package/extension-core/pg/index.cjs +33 -0
  106. package/extension-core/pg/index.cjs.map +1 -0
  107. package/extension-core/pg/index.d.cts +67 -0
  108. package/extension-core/pg/index.d.ts +67 -0
  109. package/extension-core/pg/index.js +9 -0
  110. package/extension-core/pg/index.js.map +1 -0
  111. package/extension-core/singlestore/index.cjs +33 -0
  112. package/extension-core/singlestore/index.cjs.map +1 -0
  113. package/extension-core/singlestore/index.d.cts +67 -0
  114. package/extension-core/singlestore/index.d.ts +67 -0
  115. package/extension-core/singlestore/index.js +9 -0
  116. package/extension-core/singlestore/index.js.map +1 -0
  117. package/extension-core/sqlite/index.cjs +33 -0
  118. package/extension-core/sqlite/index.cjs.map +1 -0
  119. package/extension-core/sqlite/index.d.cts +68 -0
  120. package/extension-core/sqlite/index.d.ts +68 -0
  121. package/extension-core/sqlite/index.js +9 -0
  122. package/extension-core/sqlite/index.js.map +1 -0
  123. package/extensions/hook/gel/index.cjs +47 -0
  124. package/extensions/hook/gel/index.cjs.map +1 -0
  125. package/extensions/hook/gel/index.d.cts +11 -0
  126. package/extensions/hook/gel/index.d.ts +11 -0
  127. package/extensions/hook/gel/index.js +22 -0
  128. package/extensions/hook/gel/index.js.map +1 -0
  129. package/extensions/hook/mysql/index.cjs +47 -0
  130. package/extensions/hook/mysql/index.cjs.map +1 -0
  131. package/extensions/hook/mysql/index.d.cts +11 -0
  132. package/extensions/hook/mysql/index.d.ts +11 -0
  133. package/extensions/hook/mysql/index.js +22 -0
  134. package/extensions/hook/mysql/index.js.map +1 -0
  135. package/extensions/hook/pg/index.cjs +47 -0
  136. package/extensions/hook/pg/index.cjs.map +1 -0
  137. package/extensions/hook/pg/index.d.cts +11 -0
  138. package/extensions/hook/pg/index.d.ts +11 -0
  139. package/extensions/hook/pg/index.js +22 -0
  140. package/extensions/hook/pg/index.js.map +1 -0
  141. package/extensions/hook/singlestore/index.cjs +47 -0
  142. package/extensions/hook/singlestore/index.cjs.map +1 -0
  143. package/extensions/hook/singlestore/index.d.cts +11 -0
  144. package/extensions/hook/singlestore/index.d.ts +11 -0
  145. package/extensions/hook/singlestore/index.js +22 -0
  146. package/extensions/hook/singlestore/index.js.map +1 -0
  147. package/extensions/hook/sqlite/index.cjs +47 -0
  148. package/extensions/hook/sqlite/index.cjs.map +1 -0
  149. package/extensions/hook/sqlite/index.d.cts +11 -0
  150. package/extensions/hook/sqlite/index.d.ts +11 -0
  151. package/extensions/hook/sqlite/index.js +22 -0
  152. package/extensions/hook/sqlite/index.js.map +1 -0
  153. package/extensions/s3-file/common.cjs +321 -0
  154. package/extensions/s3-file/common.cjs.map +1 -0
  155. package/extensions/s3-file/common.d.cts +88 -0
  156. package/extensions/s3-file/common.d.ts +88 -0
  157. package/extensions/s3-file/common.js +288 -0
  158. package/extensions/s3-file/common.js.map +1 -0
  159. package/extensions/s3-file/gel/column.cjs +124 -0
  160. package/extensions/s3-file/gel/column.cjs.map +1 -0
  161. package/extensions/s3-file/gel/column.d.cts +105 -0
  162. package/extensions/s3-file/gel/column.d.ts +105 -0
  163. package/extensions/s3-file/gel/column.js +103 -0
  164. package/extensions/s3-file/gel/column.js.map +1 -0
  165. package/extensions/s3-file/gel/extension.cjs +271 -0
  166. package/extensions/s3-file/gel/extension.cjs.map +1 -0
  167. package/extensions/s3-file/gel/extension.d.cts +18 -0
  168. package/extensions/s3-file/gel/extension.d.ts +18 -0
  169. package/extensions/s3-file/gel/extension.js +257 -0
  170. package/extensions/s3-file/gel/extension.js.map +1 -0
  171. package/{cache/upstash → extensions/s3-file/gel}/index.cjs +6 -4
  172. package/extensions/s3-file/gel/index.cjs.map +1 -0
  173. package/extensions/s3-file/gel/index.d.cts +2 -0
  174. package/extensions/s3-file/gel/index.d.ts +2 -0
  175. package/extensions/s3-file/gel/index.js +3 -0
  176. package/extensions/s3-file/gel/index.js.map +1 -0
  177. package/{cache/core → extensions/s3-file}/index.cjs +4 -4
  178. package/extensions/s3-file/index.cjs.map +1 -0
  179. package/extensions/s3-file/index.d.cts +1 -0
  180. package/extensions/s3-file/index.d.ts +1 -0
  181. package/extensions/s3-file/index.js +2 -0
  182. package/extensions/s3-file/index.js.map +1 -0
  183. package/extensions/s3-file/mysql/column.cjs +121 -0
  184. package/extensions/s3-file/mysql/column.cjs.map +1 -0
  185. package/extensions/s3-file/mysql/column.d.cts +63 -0
  186. package/extensions/s3-file/mysql/column.d.ts +63 -0
  187. package/extensions/s3-file/mysql/column.js +97 -0
  188. package/extensions/s3-file/mysql/column.js.map +1 -0
  189. package/extensions/s3-file/mysql/extension.cjs +250 -0
  190. package/extensions/s3-file/mysql/extension.cjs.map +1 -0
  191. package/extensions/s3-file/mysql/extension.d.cts +18 -0
  192. package/extensions/s3-file/mysql/extension.d.ts +18 -0
  193. package/extensions/s3-file/mysql/extension.js +236 -0
  194. package/extensions/s3-file/mysql/extension.js.map +1 -0
  195. package/extensions/s3-file/mysql/index.cjs +25 -0
  196. package/extensions/s3-file/mysql/index.cjs.map +1 -0
  197. package/extensions/s3-file/mysql/index.d.cts +2 -0
  198. package/extensions/s3-file/mysql/index.d.ts +2 -0
  199. package/extensions/s3-file/mysql/index.js +3 -0
  200. package/extensions/s3-file/mysql/index.js.map +1 -0
  201. package/extensions/s3-file/pg/column.cjs +124 -0
  202. package/extensions/s3-file/pg/column.cjs.map +1 -0
  203. package/extensions/s3-file/pg/column.d.cts +105 -0
  204. package/extensions/s3-file/pg/column.d.ts +105 -0
  205. package/extensions/s3-file/pg/column.js +103 -0
  206. package/extensions/s3-file/pg/column.js.map +1 -0
  207. package/extensions/s3-file/pg/extension.cjs +272 -0
  208. package/extensions/s3-file/pg/extension.cjs.map +1 -0
  209. package/extensions/s3-file/pg/extension.d.cts +18 -0
  210. package/extensions/s3-file/pg/extension.d.ts +18 -0
  211. package/extensions/s3-file/pg/extension.js +258 -0
  212. package/extensions/s3-file/pg/extension.js.map +1 -0
  213. package/{cache/core/types.cjs → extensions/s3-file/pg/index.cjs} +11 -3
  214. package/extensions/s3-file/pg/index.cjs.map +1 -0
  215. package/extensions/s3-file/pg/index.d.cts +2 -0
  216. package/extensions/s3-file/pg/index.d.ts +2 -0
  217. package/extensions/s3-file/pg/index.js +3 -0
  218. package/extensions/s3-file/pg/index.js.map +1 -0
  219. package/extensions/s3-file/singlestore/column.cjs +121 -0
  220. package/extensions/s3-file/singlestore/column.cjs.map +1 -0
  221. package/extensions/s3-file/singlestore/column.d.cts +63 -0
  222. package/extensions/s3-file/singlestore/column.d.ts +63 -0
  223. package/extensions/s3-file/singlestore/column.js +97 -0
  224. package/extensions/s3-file/singlestore/column.js.map +1 -0
  225. package/extensions/s3-file/singlestore/extension.cjs +247 -0
  226. package/extensions/s3-file/singlestore/extension.cjs.map +1 -0
  227. package/extensions/s3-file/singlestore/extension.d.cts +18 -0
  228. package/extensions/s3-file/singlestore/extension.d.ts +18 -0
  229. package/extensions/s3-file/singlestore/extension.js +233 -0
  230. package/extensions/s3-file/singlestore/extension.js.map +1 -0
  231. package/extensions/s3-file/singlestore/index.cjs +25 -0
  232. package/extensions/s3-file/singlestore/index.cjs.map +1 -0
  233. package/extensions/s3-file/singlestore/index.d.cts +2 -0
  234. package/extensions/s3-file/singlestore/index.d.ts +2 -0
  235. package/extensions/s3-file/singlestore/index.js +3 -0
  236. package/extensions/s3-file/singlestore/index.js.map +1 -0
  237. package/extensions/s3-file/sqlite/column.cjs +121 -0
  238. package/extensions/s3-file/sqlite/column.cjs.map +1 -0
  239. package/extensions/s3-file/sqlite/column.d.cts +63 -0
  240. package/extensions/s3-file/sqlite/column.d.ts +63 -0
  241. package/extensions/s3-file/sqlite/column.js +97 -0
  242. package/extensions/s3-file/sqlite/column.js.map +1 -0
  243. package/extensions/s3-file/sqlite/extension.cjs +250 -0
  244. package/extensions/s3-file/sqlite/extension.cjs.map +1 -0
  245. package/extensions/s3-file/sqlite/extension.d.cts +18 -0
  246. package/extensions/s3-file/sqlite/extension.d.ts +18 -0
  247. package/extensions/s3-file/sqlite/extension.js +236 -0
  248. package/extensions/s3-file/sqlite/extension.js.map +1 -0
  249. package/extensions/s3-file/sqlite/index.cjs +25 -0
  250. package/extensions/s3-file/sqlite/index.cjs.map +1 -0
  251. package/extensions/s3-file/sqlite/index.d.cts +2 -0
  252. package/extensions/s3-file/sqlite/index.d.ts +2 -0
  253. package/extensions/s3-file/sqlite/index.js +3 -0
  254. package/extensions/s3-file/sqlite/index.js.map +1 -0
  255. package/gel/driver.cjs +6 -11
  256. package/gel/driver.cjs.map +1 -1
  257. package/gel/driver.d.cts +6 -6
  258. package/gel/driver.d.ts +6 -6
  259. package/gel/driver.js +6 -11
  260. package/gel/driver.js.map +1 -1
  261. package/gel/session.cjs +19 -31
  262. package/gel/session.cjs.map +1 -1
  263. package/gel/session.d.cts +5 -14
  264. package/gel/session.d.ts +5 -14
  265. package/gel/session.js +19 -31
  266. package/gel/session.js.map +1 -1
  267. package/gel-core/columns/common.cjs +8 -0
  268. package/gel-core/columns/common.cjs.map +1 -1
  269. package/gel-core/columns/common.d.cts +2 -0
  270. package/gel-core/columns/common.d.ts +2 -0
  271. package/gel-core/columns/common.js +8 -0
  272. package/gel-core/columns/common.js.map +1 -1
  273. package/gel-core/db.cjs +5 -6
  274. package/gel-core/db.cjs.map +1 -1
  275. package/gel-core/db.d.cts +3 -5
  276. package/gel-core/db.d.ts +3 -5
  277. package/gel-core/db.js +5 -6
  278. package/gel-core/db.js.map +1 -1
  279. package/gel-core/dialect.cjs +25 -19
  280. package/gel-core/dialect.cjs.map +1 -1
  281. package/gel-core/dialect.d.cts +7 -6
  282. package/gel-core/dialect.d.ts +7 -6
  283. package/gel-core/dialect.js +26 -20
  284. package/gel-core/dialect.js.map +1 -1
  285. package/gel-core/query-builders/delete.cjs +6 -5
  286. package/gel-core/query-builders/delete.cjs.map +1 -1
  287. package/gel-core/query-builders/delete.js +6 -5
  288. package/gel-core/query-builders/delete.js.map +1 -1
  289. package/gel-core/query-builders/insert.cjs +31 -9
  290. package/gel-core/query-builders/insert.cjs.map +1 -1
  291. package/gel-core/query-builders/insert.js +33 -11
  292. package/gel-core/query-builders/insert.js.map +1 -1
  293. package/gel-core/query-builders/query.cjs +12 -1
  294. package/gel-core/query-builders/query.cjs.map +1 -1
  295. package/gel-core/query-builders/query.js +12 -1
  296. package/gel-core/query-builders/query.js.map +1 -1
  297. package/gel-core/query-builders/select.cjs +12 -30
  298. package/gel-core/query-builders/select.cjs.map +1 -1
  299. package/gel-core/query-builders/select.d.cts +0 -9
  300. package/gel-core/query-builders/select.d.ts +0 -9
  301. package/gel-core/query-builders/select.js +12 -30
  302. package/gel-core/query-builders/select.js.map +1 -1
  303. package/gel-core/query-builders/update.cjs +7 -6
  304. package/gel-core/query-builders/update.cjs.map +1 -1
  305. package/gel-core/query-builders/update.js +7 -6
  306. package/gel-core/query-builders/update.js.map +1 -1
  307. package/gel-core/session.cjs +48 -82
  308. package/gel-core/session.cjs.map +1 -1
  309. package/gel-core/session.d.cts +12 -17
  310. package/gel-core/session.d.ts +12 -17
  311. package/gel-core/session.js +49 -83
  312. package/gel-core/session.js.map +1 -1
  313. package/gel-core/utils.cjs +0 -16
  314. package/gel-core/utils.cjs.map +1 -1
  315. package/gel-core/utils.d.cts +4 -8
  316. package/gel-core/utils.d.ts +4 -8
  317. package/gel-core/utils.js +0 -15
  318. package/gel-core/utils.js.map +1 -1
  319. package/libsql/driver-core.cjs +3 -6
  320. package/libsql/driver-core.cjs.map +1 -1
  321. package/libsql/driver-core.js +3 -6
  322. package/libsql/driver-core.js.map +1 -1
  323. package/libsql/driver.cjs +4 -1
  324. package/libsql/driver.cjs.map +1 -1
  325. package/libsql/driver.d.cts +4 -3
  326. package/libsql/driver.d.ts +4 -3
  327. package/libsql/driver.js +4 -1
  328. package/libsql/driver.js.map +1 -1
  329. package/libsql/http/index.cjs +4 -1
  330. package/libsql/http/index.cjs.map +1 -1
  331. package/libsql/http/index.d.cts +4 -3
  332. package/libsql/http/index.d.ts +4 -3
  333. package/libsql/http/index.js +4 -1
  334. package/libsql/http/index.js.map +1 -1
  335. package/libsql/node/index.cjs +4 -1
  336. package/libsql/node/index.cjs.map +1 -1
  337. package/libsql/node/index.d.cts +4 -3
  338. package/libsql/node/index.d.ts +4 -3
  339. package/libsql/node/index.js +4 -1
  340. package/libsql/node/index.js.map +1 -1
  341. package/libsql/session.cjs +37 -34
  342. package/libsql/session.cjs.map +1 -1
  343. package/libsql/session.d.cts +9 -18
  344. package/libsql/session.d.ts +9 -18
  345. package/libsql/session.js +37 -34
  346. package/libsql/session.js.map +1 -1
  347. package/libsql/sqlite3/index.cjs +4 -1
  348. package/libsql/sqlite3/index.cjs.map +1 -1
  349. package/libsql/sqlite3/index.d.cts +4 -3
  350. package/libsql/sqlite3/index.d.ts +4 -3
  351. package/libsql/sqlite3/index.js +4 -1
  352. package/libsql/sqlite3/index.js.map +1 -1
  353. package/libsql/wasm/index.cjs +4 -1
  354. package/libsql/wasm/index.cjs.map +1 -1
  355. package/libsql/wasm/index.d.cts +4 -3
  356. package/libsql/wasm/index.d.ts +4 -3
  357. package/libsql/wasm/index.js +4 -1
  358. package/libsql/wasm/index.js.map +1 -1
  359. package/libsql/web/index.cjs +4 -1
  360. package/libsql/web/index.cjs.map +1 -1
  361. package/libsql/web/index.d.cts +4 -3
  362. package/libsql/web/index.d.ts +4 -3
  363. package/libsql/web/index.js +4 -1
  364. package/libsql/web/index.js.map +1 -1
  365. package/libsql/ws/index.cjs +4 -1
  366. package/libsql/ws/index.cjs.map +1 -1
  367. package/libsql/ws/index.d.cts +4 -3
  368. package/libsql/ws/index.d.ts +4 -3
  369. package/libsql/ws/index.js +4 -1
  370. package/libsql/ws/index.js.map +1 -1
  371. package/mysql-core/db.cjs +5 -6
  372. package/mysql-core/db.cjs.map +1 -1
  373. package/mysql-core/db.d.cts +3 -5
  374. package/mysql-core/db.d.ts +3 -5
  375. package/mysql-core/db.js +5 -6
  376. package/mysql-core/db.js.map +1 -1
  377. package/mysql-core/dialect.cjs +30 -23
  378. package/mysql-core/dialect.cjs.map +1 -1
  379. package/mysql-core/dialect.d.cts +8 -7
  380. package/mysql-core/dialect.d.ts +8 -7
  381. package/mysql-core/dialect.js +31 -24
  382. package/mysql-core/dialect.js.map +1 -1
  383. package/mysql-core/query-builders/delete.cjs +5 -7
  384. package/mysql-core/query-builders/delete.cjs.map +1 -1
  385. package/mysql-core/query-builders/delete.js +5 -7
  386. package/mysql-core/query-builders/delete.js.map +1 -1
  387. package/mysql-core/query-builders/insert.cjs +30 -13
  388. package/mysql-core/query-builders/insert.cjs.map +1 -1
  389. package/mysql-core/query-builders/insert.d.cts +0 -2
  390. package/mysql-core/query-builders/insert.d.ts +0 -2
  391. package/mysql-core/query-builders/insert.js +32 -15
  392. package/mysql-core/query-builders/insert.js.map +1 -1
  393. package/mysql-core/query-builders/query.cjs +14 -2
  394. package/mysql-core/query-builders/query.cjs.map +1 -1
  395. package/mysql-core/query-builders/query.js +14 -2
  396. package/mysql-core/query-builders/query.js.map +1 -1
  397. package/mysql-core/query-builders/select.cjs +14 -30
  398. package/mysql-core/query-builders/select.cjs.map +1 -1
  399. package/mysql-core/query-builders/select.d.cts +0 -9
  400. package/mysql-core/query-builders/select.d.ts +0 -9
  401. package/mysql-core/query-builders/select.js +15 -31
  402. package/mysql-core/query-builders/select.js.map +1 -1
  403. package/mysql-core/query-builders/update.cjs +13 -11
  404. package/mysql-core/query-builders/update.cjs.map +1 -1
  405. package/mysql-core/query-builders/update.d.cts +0 -2
  406. package/mysql-core/query-builders/update.d.ts +0 -2
  407. package/mysql-core/query-builders/update.js +13 -11
  408. package/mysql-core/query-builders/update.js.map +1 -1
  409. package/mysql-core/session.cjs +42 -80
  410. package/mysql-core/session.cjs.map +1 -1
  411. package/mysql-core/session.d.cts +14 -18
  412. package/mysql-core/session.d.ts +14 -18
  413. package/mysql-core/session.js +43 -81
  414. package/mysql-core/session.js.map +1 -1
  415. package/mysql-core/utils.cjs +0 -16
  416. package/mysql-core/utils.cjs.map +1 -1
  417. package/mysql-core/utils.d.cts +2 -6
  418. package/mysql-core/utils.d.ts +2 -6
  419. package/mysql-core/utils.js +0 -15
  420. package/mysql-core/utils.js.map +1 -1
  421. package/mysql-proxy/driver.cjs +3 -2
  422. package/mysql-proxy/driver.cjs.map +1 -1
  423. package/mysql-proxy/driver.d.cts +2 -1
  424. package/mysql-proxy/driver.d.ts +2 -1
  425. package/mysql-proxy/driver.js +3 -2
  426. package/mysql-proxy/driver.js.map +1 -1
  427. package/mysql-proxy/session.cjs +10 -20
  428. package/mysql-proxy/session.cjs.map +1 -1
  429. package/mysql-proxy/session.d.cts +5 -16
  430. package/mysql-proxy/session.d.ts +5 -16
  431. package/mysql-proxy/session.js +10 -20
  432. package/mysql-proxy/session.js.map +1 -1
  433. package/mysql2/driver.cjs +6 -12
  434. package/mysql2/driver.cjs.map +1 -1
  435. package/mysql2/driver.d.cts +4 -4
  436. package/mysql2/driver.d.ts +4 -4
  437. package/mysql2/driver.js +6 -12
  438. package/mysql2/driver.js.map +1 -1
  439. package/mysql2/session.cjs +16 -22
  440. package/mysql2/session.cjs.map +1 -1
  441. package/mysql2/session.d.cts +5 -15
  442. package/mysql2/session.d.ts +5 -15
  443. package/mysql2/session.js +16 -22
  444. package/mysql2/session.js.map +1 -1
  445. package/neon-http/driver.cjs +5 -10
  446. package/neon-http/driver.cjs.map +1 -1
  447. package/neon-http/driver.d.cts +6 -6
  448. package/neon-http/driver.d.ts +6 -6
  449. package/neon-http/driver.js +5 -10
  450. package/neon-http/driver.js.map +1 -1
  451. package/neon-http/session.cjs +20 -28
  452. package/neon-http/session.cjs.map +1 -1
  453. package/neon-http/session.d.cts +5 -14
  454. package/neon-http/session.d.ts +5 -14
  455. package/neon-http/session.js +20 -28
  456. package/neon-http/session.js.map +1 -1
  457. package/neon-serverless/driver.cjs +6 -11
  458. package/neon-serverless/driver.cjs.map +1 -1
  459. package/neon-serverless/driver.d.cts +6 -6
  460. package/neon-serverless/driver.d.ts +6 -6
  461. package/neon-serverless/driver.js +6 -11
  462. package/neon-serverless/driver.js.map +1 -1
  463. package/neon-serverless/session.cjs +27 -27
  464. package/neon-serverless/session.cjs.map +1 -1
  465. package/neon-serverless/session.d.cts +5 -14
  466. package/neon-serverless/session.d.ts +5 -14
  467. package/neon-serverless/session.js +27 -27
  468. package/neon-serverless/session.js.map +1 -1
  469. package/node-postgres/driver.cjs +6 -11
  470. package/node-postgres/driver.cjs.map +1 -1
  471. package/node-postgres/driver.d.cts +6 -6
  472. package/node-postgres/driver.d.ts +6 -6
  473. package/node-postgres/driver.js +6 -11
  474. package/node-postgres/driver.js.map +1 -1
  475. package/node-postgres/session.cjs +21 -25
  476. package/node-postgres/session.cjs.map +1 -1
  477. package/node-postgres/session.d.cts +5 -15
  478. package/node-postgres/session.d.ts +5 -15
  479. package/node-postgres/session.js +21 -25
  480. package/node-postgres/session.js.map +1 -1
  481. package/op-sqlite/driver.cjs +1 -5
  482. package/op-sqlite/driver.cjs.map +1 -1
  483. package/op-sqlite/driver.d.cts +2 -1
  484. package/op-sqlite/driver.d.ts +2 -1
  485. package/op-sqlite/driver.js +1 -5
  486. package/op-sqlite/driver.js.map +1 -1
  487. package/op-sqlite/session.cjs +11 -25
  488. package/op-sqlite/session.cjs.map +1 -1
  489. package/op-sqlite/session.d.cts +6 -16
  490. package/op-sqlite/session.d.ts +6 -16
  491. package/op-sqlite/session.js +11 -25
  492. package/op-sqlite/session.js.map +1 -1
  493. package/package.json +331 -50
  494. package/pg-core/columns/common.cjs +2 -0
  495. package/pg-core/columns/common.cjs.map +1 -1
  496. package/pg-core/columns/common.js +2 -0
  497. package/pg-core/columns/common.js.map +1 -1
  498. package/pg-core/db.cjs +5 -6
  499. package/pg-core/db.cjs.map +1 -1
  500. package/pg-core/db.d.cts +3 -5
  501. package/pg-core/db.d.ts +3 -5
  502. package/pg-core/db.js +5 -6
  503. package/pg-core/db.js.map +1 -1
  504. package/pg-core/dialect.cjs +26 -19
  505. package/pg-core/dialect.cjs.map +1 -1
  506. package/pg-core/dialect.d.cts +7 -6
  507. package/pg-core/dialect.d.ts +7 -6
  508. package/pg-core/dialect.js +27 -20
  509. package/pg-core/dialect.js.map +1 -1
  510. package/pg-core/query-builders/delete.cjs +7 -7
  511. package/pg-core/query-builders/delete.cjs.map +1 -1
  512. package/pg-core/query-builders/delete.d.cts +0 -2
  513. package/pg-core/query-builders/delete.d.ts +0 -2
  514. package/pg-core/query-builders/delete.js +7 -7
  515. package/pg-core/query-builders/delete.js.map +1 -1
  516. package/pg-core/query-builders/insert.cjs +37 -11
  517. package/pg-core/query-builders/insert.cjs.map +1 -1
  518. package/pg-core/query-builders/insert.d.cts +0 -2
  519. package/pg-core/query-builders/insert.d.ts +0 -2
  520. package/pg-core/query-builders/insert.js +39 -13
  521. package/pg-core/query-builders/insert.js.map +1 -1
  522. package/pg-core/query-builders/query.cjs +12 -1
  523. package/pg-core/query-builders/query.cjs.map +1 -1
  524. package/pg-core/query-builders/query.js +12 -1
  525. package/pg-core/query-builders/query.js.map +1 -1
  526. package/pg-core/query-builders/select.cjs +14 -33
  527. package/pg-core/query-builders/select.cjs.map +1 -1
  528. package/pg-core/query-builders/select.d.cts +6 -15
  529. package/pg-core/query-builders/select.d.ts +6 -15
  530. package/pg-core/query-builders/select.js +14 -33
  531. package/pg-core/query-builders/select.js.map +1 -1
  532. package/pg-core/query-builders/update.cjs +8 -8
  533. package/pg-core/query-builders/update.cjs.map +1 -1
  534. package/pg-core/query-builders/update.d.cts +1 -3
  535. package/pg-core/query-builders/update.d.ts +1 -3
  536. package/pg-core/query-builders/update.js +9 -13
  537. package/pg-core/query-builders/update.js.map +1 -1
  538. package/pg-core/session.cjs +45 -78
  539. package/pg-core/session.cjs.map +1 -1
  540. package/pg-core/session.d.cts +12 -17
  541. package/pg-core/session.d.ts +12 -17
  542. package/pg-core/session.js +46 -79
  543. package/pg-core/session.js.map +1 -1
  544. package/pg-core/utils.cjs +0 -16
  545. package/pg-core/utils.cjs.map +1 -1
  546. package/pg-core/utils.d.cts +4 -8
  547. package/pg-core/utils.d.ts +4 -8
  548. package/pg-core/utils.js +1 -16
  549. package/pg-core/utils.js.map +1 -1
  550. package/pg-proxy/driver.cjs +3 -7
  551. package/pg-proxy/driver.cjs.map +1 -1
  552. package/pg-proxy/driver.d.cts +2 -1
  553. package/pg-proxy/driver.d.ts +2 -1
  554. package/pg-proxy/driver.js +3 -7
  555. package/pg-proxy/driver.js.map +1 -1
  556. package/pg-proxy/session.cjs +10 -18
  557. package/pg-proxy/session.cjs.map +1 -1
  558. package/pg-proxy/session.d.cts +5 -14
  559. package/pg-proxy/session.d.ts +5 -14
  560. package/pg-proxy/session.js +10 -18
  561. package/pg-proxy/session.js.map +1 -1
  562. package/pglite/driver.cjs +6 -11
  563. package/pglite/driver.cjs.map +1 -1
  564. package/pglite/driver.d.cts +6 -6
  565. package/pglite/driver.d.ts +6 -6
  566. package/pglite/driver.js +6 -11
  567. package/pglite/driver.js.map +1 -1
  568. package/pglite/session.cjs +23 -25
  569. package/pglite/session.cjs.map +1 -1
  570. package/pglite/session.d.cts +5 -14
  571. package/pglite/session.d.ts +5 -14
  572. package/pglite/session.js +23 -25
  573. package/pglite/session.js.map +1 -1
  574. package/planetscale-serverless/driver.cjs +3 -6
  575. package/planetscale-serverless/driver.cjs.map +1 -1
  576. package/planetscale-serverless/driver.d.cts +4 -4
  577. package/planetscale-serverless/driver.d.ts +4 -4
  578. package/planetscale-serverless/driver.js +3 -6
  579. package/planetscale-serverless/driver.js.map +1 -1
  580. package/planetscale-serverless/session.cjs +25 -25
  581. package/planetscale-serverless/session.cjs.map +1 -1
  582. package/planetscale-serverless/session.d.cts +6 -17
  583. package/planetscale-serverless/session.d.ts +6 -17
  584. package/planetscale-serverless/session.js +25 -25
  585. package/planetscale-serverless/session.js.map +1 -1
  586. package/postgres-js/driver.cjs +3 -6
  587. package/postgres-js/driver.cjs.map +1 -1
  588. package/postgres-js/driver.d.cts +4 -3
  589. package/postgres-js/driver.d.ts +4 -3
  590. package/postgres-js/driver.js +3 -6
  591. package/postgres-js/driver.js.map +1 -1
  592. package/postgres-js/session.cjs +30 -31
  593. package/postgres-js/session.cjs.map +1 -1
  594. package/postgres-js/session.d.cts +6 -15
  595. package/postgres-js/session.d.ts +6 -15
  596. package/postgres-js/session.js +30 -31
  597. package/postgres-js/session.js.map +1 -1
  598. package/prisma/mysql/driver.cjs +3 -3
  599. package/prisma/mysql/driver.cjs.map +1 -1
  600. package/prisma/mysql/driver.d.cts +3 -2
  601. package/prisma/mysql/driver.d.ts +3 -2
  602. package/prisma/mysql/driver.js +3 -3
  603. package/prisma/mysql/driver.js.map +1 -1
  604. package/prisma/mysql/session.cjs +10 -11
  605. package/prisma/mysql/session.cjs.map +1 -1
  606. package/prisma/mysql/session.d.cts +7 -6
  607. package/prisma/mysql/session.d.ts +7 -6
  608. package/prisma/mysql/session.js +10 -11
  609. package/prisma/mysql/session.js.map +1 -1
  610. package/prisma/pg/driver.cjs +3 -3
  611. package/prisma/pg/driver.cjs.map +1 -1
  612. package/prisma/pg/driver.d.cts +2 -1
  613. package/prisma/pg/driver.d.ts +2 -1
  614. package/prisma/pg/driver.js +3 -3
  615. package/prisma/pg/driver.js.map +1 -1
  616. package/prisma/pg/session.cjs +7 -7
  617. package/prisma/pg/session.cjs.map +1 -1
  618. package/prisma/pg/session.d.cts +6 -5
  619. package/prisma/pg/session.d.ts +6 -5
  620. package/prisma/pg/session.js +7 -7
  621. package/prisma/pg/session.js.map +1 -1
  622. package/prisma/sqlite/driver.cjs +7 -1
  623. package/prisma/sqlite/driver.cjs.map +1 -1
  624. package/prisma/sqlite/driver.d.cts +2 -1
  625. package/prisma/sqlite/driver.d.ts +2 -1
  626. package/prisma/sqlite/driver.js +7 -1
  627. package/prisma/sqlite/driver.js.map +1 -1
  628. package/prisma/sqlite/session.cjs +6 -6
  629. package/prisma/sqlite/session.cjs.map +1 -1
  630. package/prisma/sqlite/session.d.cts +6 -5
  631. package/prisma/sqlite/session.d.ts +6 -5
  632. package/prisma/sqlite/session.js +6 -6
  633. package/prisma/sqlite/session.js.map +1 -1
  634. package/query-builders/query-builder.cjs.map +1 -1
  635. package/query-builders/query-builder.d.cts +1 -2
  636. package/query-builders/query-builder.d.ts +1 -2
  637. package/query-builders/query-builder.js.map +1 -1
  638. package/singlestore/driver.cjs +28 -29
  639. package/singlestore/driver.cjs.map +1 -1
  640. package/singlestore/driver.d.cts +4 -4
  641. package/singlestore/driver.d.ts +4 -4
  642. package/singlestore/driver.js +28 -29
  643. package/singlestore/driver.js.map +1 -1
  644. package/singlestore/session.cjs +16 -22
  645. package/singlestore/session.cjs.map +1 -1
  646. package/singlestore/session.d.cts +5 -15
  647. package/singlestore/session.d.ts +5 -15
  648. package/singlestore/session.js +16 -22
  649. package/singlestore/session.js.map +1 -1
  650. package/singlestore-core/db.cjs +5 -6
  651. package/singlestore-core/db.cjs.map +1 -1
  652. package/singlestore-core/db.d.cts +3 -5
  653. package/singlestore-core/db.d.ts +3 -5
  654. package/singlestore-core/db.js +5 -6
  655. package/singlestore-core/db.js.map +1 -1
  656. package/singlestore-core/dialect.cjs +25 -18
  657. package/singlestore-core/dialect.cjs.map +1 -1
  658. package/singlestore-core/dialect.d.cts +7 -6
  659. package/singlestore-core/dialect.d.ts +7 -6
  660. package/singlestore-core/dialect.js +26 -19
  661. package/singlestore-core/dialect.js.map +1 -1
  662. package/singlestore-core/query-builders/delete.cjs +5 -7
  663. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  664. package/singlestore-core/query-builders/delete.js +5 -7
  665. package/singlestore-core/query-builders/delete.js.map +1 -1
  666. package/singlestore-core/query-builders/insert.cjs +30 -11
  667. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  668. package/singlestore-core/query-builders/insert.js +32 -13
  669. package/singlestore-core/query-builders/insert.js.map +1 -1
  670. package/singlestore-core/query-builders/query.cjs +12 -1
  671. package/singlestore-core/query-builders/query.cjs.map +1 -1
  672. package/singlestore-core/query-builders/query.js +12 -1
  673. package/singlestore-core/query-builders/query.js.map +1 -1
  674. package/singlestore-core/query-builders/select.cjs +14 -31
  675. package/singlestore-core/query-builders/select.cjs.map +1 -1
  676. package/singlestore-core/query-builders/select.d.cts +0 -9
  677. package/singlestore-core/query-builders/select.d.ts +0 -9
  678. package/singlestore-core/query-builders/select.js +14 -31
  679. package/singlestore-core/query-builders/select.js.map +1 -1
  680. package/singlestore-core/query-builders/update.cjs +6 -8
  681. package/singlestore-core/query-builders/update.cjs.map +1 -1
  682. package/singlestore-core/query-builders/update.js +6 -8
  683. package/singlestore-core/query-builders/update.js.map +1 -1
  684. package/singlestore-core/session.cjs +42 -80
  685. package/singlestore-core/session.cjs.map +1 -1
  686. package/singlestore-core/session.d.cts +14 -17
  687. package/singlestore-core/session.d.ts +14 -17
  688. package/singlestore-core/session.js +43 -81
  689. package/singlestore-core/session.js.map +1 -1
  690. package/singlestore-core/utils.cjs +0 -16
  691. package/singlestore-core/utils.cjs.map +1 -1
  692. package/singlestore-core/utils.d.cts +0 -3
  693. package/singlestore-core/utils.d.ts +0 -3
  694. package/singlestore-core/utils.js +0 -15
  695. package/singlestore-core/utils.js.map +1 -1
  696. package/singlestore-proxy/driver.cjs +3 -2
  697. package/singlestore-proxy/driver.cjs.map +1 -1
  698. package/singlestore-proxy/driver.d.cts +2 -1
  699. package/singlestore-proxy/driver.d.ts +2 -1
  700. package/singlestore-proxy/driver.js +3 -2
  701. package/singlestore-proxy/driver.js.map +1 -1
  702. package/singlestore-proxy/session.cjs +8 -8
  703. package/singlestore-proxy/session.cjs.map +1 -1
  704. package/singlestore-proxy/session.d.cts +5 -6
  705. package/singlestore-proxy/session.d.ts +5 -6
  706. package/singlestore-proxy/session.js +8 -8
  707. package/singlestore-proxy/session.js.map +1 -1
  708. package/sql/sql.cjs +24 -12
  709. package/sql/sql.cjs.map +1 -1
  710. package/sql/sql.d.cts +12 -0
  711. package/sql/sql.d.ts +12 -0
  712. package/sql/sql.js +23 -12
  713. package/sql/sql.js.map +1 -1
  714. package/sql-js/driver.cjs.map +1 -1
  715. package/sql-js/driver.d.cts +2 -1
  716. package/sql-js/driver.d.ts +2 -1
  717. package/sql-js/driver.js.map +1 -1
  718. package/sql-js/session.cjs +4 -4
  719. package/sql-js/session.cjs.map +1 -1
  720. package/sql-js/session.d.cts +4 -4
  721. package/sql-js/session.d.ts +4 -4
  722. package/sql-js/session.js +4 -4
  723. package/sql-js/session.js.map +1 -1
  724. package/sqlite-core/db.cjs +5 -6
  725. package/sqlite-core/db.cjs.map +1 -1
  726. package/sqlite-core/db.d.cts +3 -5
  727. package/sqlite-core/db.d.ts +3 -5
  728. package/sqlite-core/db.js +5 -6
  729. package/sqlite-core/db.js.map +1 -1
  730. package/sqlite-core/dialect.cjs +30 -19
  731. package/sqlite-core/dialect.cjs.map +1 -1
  732. package/sqlite-core/dialect.d.cts +7 -6
  733. package/sqlite-core/dialect.d.ts +7 -6
  734. package/sqlite-core/dialect.js +31 -20
  735. package/sqlite-core/dialect.js.map +1 -1
  736. package/sqlite-core/query-builders/delete.cjs +5 -5
  737. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  738. package/sqlite-core/query-builders/delete.js +5 -5
  739. package/sqlite-core/query-builders/delete.js.map +1 -1
  740. package/sqlite-core/query-builders/insert.cjs +25 -8
  741. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  742. package/sqlite-core/query-builders/insert.js +32 -10
  743. package/sqlite-core/query-builders/insert.js.map +1 -1
  744. package/sqlite-core/query-builders/query.cjs +12 -1
  745. package/sqlite-core/query-builders/query.cjs.map +1 -1
  746. package/sqlite-core/query-builders/query.js +12 -1
  747. package/sqlite-core/query-builders/query.js.map +1 -1
  748. package/sqlite-core/query-builders/select.cjs +15 -34
  749. package/sqlite-core/query-builders/select.cjs.map +1 -1
  750. package/sqlite-core/query-builders/select.d.cts +0 -9
  751. package/sqlite-core/query-builders/select.d.ts +0 -9
  752. package/sqlite-core/query-builders/select.js +15 -34
  753. package/sqlite-core/query-builders/select.js.map +1 -1
  754. package/sqlite-core/query-builders/update.cjs +6 -6
  755. package/sqlite-core/query-builders/update.cjs.map +1 -1
  756. package/sqlite-core/query-builders/update.js +6 -6
  757. package/sqlite-core/query-builders/update.js.map +1 -1
  758. package/sqlite-core/session.cjs +78 -90
  759. package/sqlite-core/session.cjs.map +1 -1
  760. package/sqlite-core/session.d.cts +20 -24
  761. package/sqlite-core/session.d.ts +20 -24
  762. package/sqlite-core/session.js +79 -91
  763. package/sqlite-core/session.js.map +1 -1
  764. package/sqlite-core/utils.cjs +0 -16
  765. package/sqlite-core/utils.cjs.map +1 -1
  766. package/sqlite-core/utils.d.cts +2 -6
  767. package/sqlite-core/utils.d.ts +2 -6
  768. package/sqlite-core/utils.js +0 -15
  769. package/sqlite-core/utils.js.map +1 -1
  770. package/sqlite-proxy/driver.cjs +4 -10
  771. package/sqlite-proxy/driver.cjs.map +1 -1
  772. package/sqlite-proxy/driver.d.cts +3 -2
  773. package/sqlite-proxy/driver.d.ts +3 -2
  774. package/sqlite-proxy/driver.js +4 -10
  775. package/sqlite-proxy/driver.js.map +1 -1
  776. package/sqlite-proxy/session.cjs +24 -29
  777. package/sqlite-proxy/session.cjs.map +1 -1
  778. package/sqlite-proxy/session.d.cts +8 -17
  779. package/sqlite-proxy/session.d.ts +8 -17
  780. package/sqlite-proxy/session.js +24 -29
  781. package/sqlite-proxy/session.js.map +1 -1
  782. package/subquery.cjs +3 -4
  783. package/subquery.cjs.map +1 -1
  784. package/subquery.d.cts +1 -2
  785. package/subquery.d.ts +1 -2
  786. package/subquery.js +3 -4
  787. package/subquery.js.map +1 -1
  788. package/tidb-serverless/driver.cjs +9 -6
  789. package/tidb-serverless/driver.cjs.map +1 -1
  790. package/tidb-serverless/driver.d.cts +4 -4
  791. package/tidb-serverless/driver.d.ts +4 -4
  792. package/tidb-serverless/driver.js +9 -6
  793. package/tidb-serverless/driver.js.map +1 -1
  794. package/tidb-serverless/session.cjs +25 -25
  795. package/tidb-serverless/session.cjs.map +1 -1
  796. package/tidb-serverless/session.d.cts +6 -17
  797. package/tidb-serverless/session.d.ts +6 -17
  798. package/tidb-serverless/session.js +25 -25
  799. package/tidb-serverless/session.js.map +1 -1
  800. package/tracing.cjs.map +1 -1
  801. package/tracing.js.map +1 -1
  802. package/utils.cjs +34 -24
  803. package/utils.cjs.map +1 -1
  804. package/utils.d.cts +5 -4
  805. package/utils.d.ts +5 -4
  806. package/utils.js +35 -15
  807. package/utils.js.map +1 -1
  808. package/vercel-postgres/driver.cjs +10 -12
  809. package/vercel-postgres/driver.cjs.map +1 -1
  810. package/vercel-postgres/driver.d.cts +6 -6
  811. package/vercel-postgres/driver.d.ts +6 -6
  812. package/vercel-postgres/driver.js +10 -12
  813. package/vercel-postgres/driver.js.map +1 -1
  814. package/vercel-postgres/session.cjs +22 -27
  815. package/vercel-postgres/session.cjs.map +1 -1
  816. package/vercel-postgres/session.d.cts +5 -14
  817. package/vercel-postgres/session.d.ts +5 -14
  818. package/vercel-postgres/session.js +22 -27
  819. package/vercel-postgres/session.js.map +1 -1
  820. package/version.cjs +1 -1
  821. package/version.d.cts +1 -1
  822. package/version.d.ts +1 -1
  823. package/version.js +1 -1
  824. package/xata-http/driver.cjs +8 -10
  825. package/xata-http/driver.cjs.map +1 -1
  826. package/xata-http/driver.d.cts +4 -4
  827. package/xata-http/driver.d.ts +4 -4
  828. package/xata-http/driver.js +8 -10
  829. package/xata-http/driver.js.map +1 -1
  830. package/xata-http/session.cjs +12 -24
  831. package/xata-http/session.cjs.map +1 -1
  832. package/xata-http/session.d.cts +5 -14
  833. package/xata-http/session.d.ts +5 -14
  834. package/xata-http/session.js +12 -24
  835. package/xata-http/session.js.map +1 -1
  836. package/cache/core/cache.cjs.map +0 -1
  837. package/cache/core/cache.d.cts +0 -35
  838. package/cache/core/cache.d.ts +0 -35
  839. package/cache/core/cache.js +0 -22
  840. package/cache/core/cache.js.map +0 -1
  841. package/cache/core/index.cjs.map +0 -1
  842. package/cache/core/index.d.cts +0 -1
  843. package/cache/core/index.d.ts +0 -1
  844. package/cache/core/index.js +0 -2
  845. package/cache/core/index.js.map +0 -1
  846. package/cache/core/types.cjs.map +0 -1
  847. package/cache/core/types.d.cts +0 -33
  848. package/cache/core/types.d.ts +0 -33
  849. package/cache/core/types.js +0 -1
  850. package/cache/core/types.js.map +0 -1
  851. package/cache/upstash/cache.cjs +0 -191
  852. package/cache/upstash/cache.cjs.map +0 -1
  853. package/cache/upstash/cache.d.cts +0 -59
  854. package/cache/upstash/cache.d.ts +0 -59
  855. package/cache/upstash/cache.js +0 -166
  856. package/cache/upstash/cache.js.map +0 -1
  857. package/cache/upstash/index.cjs.map +0 -1
  858. package/cache/upstash/index.d.cts +0 -1
  859. package/cache/upstash/index.d.ts +0 -1
  860. package/cache/upstash/index.js +0 -2
  861. package/cache/upstash/index.js.map +0 -1
  862. package/errors/index.cjs.map +0 -1
  863. package/errors/index.d.cts +0 -6
  864. package/errors/index.d.ts +0 -6
  865. package/errors/index.js +0 -16
  866. package/errors/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/query-builders/update.ts"],"sourcesContent":["import type { WithCacheConfig } from '~/cache/core/types.ts';\nimport type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport type {\n\tPgPreparedQuery,\n\tPgQueryResultHKT,\n\tPgQueryResultKind,\n\tPgSession,\n\tPreparedQueryConfig,\n} from '~/pg-core/session.ts';\nimport { PgTable } from '~/pg-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type {\n\tAppendToNullabilityMap,\n\tAppendToResult,\n\tGetSelectTableName,\n\tGetSelectTableSelection,\n\tJoinNullability,\n\tJoinType,\n\tSelectMode,\n\tSelectResult,\n} from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type Query, SQL, type SQLWrapper } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { getTableName, Table } from '~/table.ts';\nimport {\n\ttype Assume,\n\ttype DrizzleTypeError,\n\ttype Equal,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\ttype NeonAuthToken,\n\torderSelectedFields,\n\ttype Simplify,\n\ttype UpdateSet,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { PgColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { PgViewBase } from '../view-base.ts';\nimport type {\n\tPgSelectJoinConfig,\n\tSelectedFields,\n\tSelectedFieldsOrdered,\n\tTableLikeHasEmptySelection,\n} from './select.types.ts';\n\nexport interface PgUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: PgTable;\n\tfrom?: PgTable | Subquery | PgViewBase | SQL;\n\tjoins: PgSelectJoinConfig[];\n\treturningFields?: SelectedFields;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type PgUpdateSetSource<TTable extends PgTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key]>\n\t\t\t| SQL\n\t\t\t| PgColumn\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class PgUpdateBuilder<TTable extends PgTable, TQueryResult extends PgQueryResultHKT> {\n\tstatic readonly [entityKind]: string = 'PgUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: PgSession,\n\t\tprivate dialect: PgDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tprivate authToken?: NeonAuthToken;\n\tsetToken(token: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalues: PgUpdateSetSource<TTable>,\n\t): PgUpdateWithout<PgUpdateBase<TTable, TQueryResult>, false, 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'> {\n\t\treturn new PgUpdateBase<TTable, TQueryResult>(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t).setToken(this.authToken);\n\t}\n}\n\nexport type PgUpdateWithout<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tT['_']['selectedFields'],\n\t\tT['_']['returning'],\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type PgUpdateWithJoins<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tTFrom,\n\t\tT['_']['selectedFields'],\n\t\tT['_']['returning'],\n\t\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TFrom>, 'inner'>,\n\t\t[...T['_']['joins'], {\n\t\t\tname: GetSelectTableName<TFrom>;\n\t\t\tjoinType: 'inner';\n\t\t\ttable: TFrom;\n\t\t}],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type PgUpdateJoinFn<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n> = <\n\tTJoinedTable extends PgTable | Subquery | PgViewBase | SQL,\n>(\n\ttable: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<\n\t\t\t\"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause\"\n\t\t>\n\t\t: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends PgTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | PgViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => PgUpdateJoin<T, TDynamic, TJoinType, TJoinedTable>;\n\nexport type PgUpdateJoin<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n\tTJoinedTable extends PgTable | Subquery | PgViewBase | SQL,\n> = TDynamic extends true ? T : PgUpdateBase<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['selectedFields'],\n\tT['_']['returning'],\n\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TJoinedTable>, TJoinType>,\n\t[...T['_']['joins'], {\n\t\tname: GetSelectTableName<TJoinedTable>;\n\t\tjoinType: TJoinType;\n\t\ttable: TJoinedTable;\n\t}],\n\tTDynamic,\n\tT['_']['excludedMethods']\n>;\n\ntype Join = {\n\tname: string | undefined;\n\tjoinType: JoinType;\n\ttable: PgTable | Subquery | PgViewBase | SQL;\n};\n\ntype AccumulateToResult<\n\tT extends AnyPgUpdate,\n\tTSelectMode extends SelectMode,\n\tTJoins extends Join[],\n\tTSelectedFields extends ColumnsSelection,\n> = TJoins extends [infer TJoin extends Join, ...infer TRest extends Join[]] ? AccumulateToResult<\n\t\tT,\n\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple',\n\t\tTRest,\n\t\tAppendToResult<\n\t\t\tT['_']['table']['_']['name'],\n\t\t\tTSelectedFields,\n\t\t\tTJoin['name'],\n\t\t\tTJoin['table'] extends Table ? TJoin['table']['_']['columns']\n\t\t\t\t: TJoin['table'] extends Subquery ? Assume<TJoin['table']['_']['selectedFields'], SelectedFields>\n\t\t\t\t: never,\n\t\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple'\n\t\t>\n\t>\n\t: TSelectedFields;\n\nexport type PgUpdateReturningAll<T extends AnyPgUpdate, TDynamic extends boolean> = PgUpdateWithout<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tEqual<T['_']['joins'], []> extends true ? T['_']['table']['_']['columns'] : Simplify<\n\t\t\t& Record<T['_']['table']['_']['name'], T['_']['table']['_']['columns']>\n\t\t\t& {\n\t\t\t\t[K in keyof T['_']['joins'] as T['_']['joins'][K]['table']['_']['name']]:\n\t\t\t\t\tT['_']['joins'][K]['table']['_']['columns'];\n\t\t\t}\n\t\t>,\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'single',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tGetSelectTableSelection<T['_']['table']>\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type PgUpdateReturning<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = PgUpdateWithout<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tTSelectedFields,\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'partial',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tTSelectedFields\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type PgUpdatePrepare<T extends AnyPgUpdate> = PgPreparedQuery<\n\tPreparedQueryConfig & {\n\t\texecute: T['_']['returning'] extends undefined ? PgQueryResultKind<T['_']['queryResult'], never>\n\t\t\t: T['_']['returning'][];\n\t}\n>;\n\nexport type PgUpdateDynamic<T extends AnyPgUpdate> = PgUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['returning'],\n\tT['_']['nullabilityMap']\n>;\n\nexport type PgUpdate<\n\tTTable extends PgTable = PgTable,\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL | undefined = undefined,\n\tTSelectedFields extends ColumnsSelection | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n> = PgUpdateBase<TTable, TQueryResult, TFrom, TSelectedFields, TReturning, TNullabilityMap, TJoins, true, never>;\n\nexport type AnyPgUpdate = PgUpdateBase<any, any, any, any, any, any, any, any, any>;\n\nexport interface PgUpdateBase<\n\tTTable extends PgTable,\n\tTQueryResult extends PgQueryResultHKT,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL | undefined = undefined,\n\tTSelectedFields extends ColumnsSelection | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tTypedQueryBuilder<\n\t\tTSelectedFields,\n\t\tTReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[]\n\t>,\n\tQueryPromise<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[], 'pg'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly table: TTable;\n\t\treadonly joins: TJoins;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly from: TFrom;\n\t\treadonly selectedFields: TSelectedFields;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport class PgUpdateBase<\n\tTTable extends PgTable,\n\tTQueryResult extends PgQueryResultHKT,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTSelectedFields extends ColumnsSelection | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTJoins extends Join[] = [],\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[], 'pg'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'PgUpdate';\n\n\tprivate config: PgUpdateConfig;\n\tprivate tableName: string | undefined;\n\tprivate joinsNotNullableMap: Record<string, boolean>;\n\tprotected cacheConfig?: WithCacheConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: PgSession,\n\t\tprivate dialect: PgDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === 'string' ? { [this.tableName]: true } : {};\n\t}\n\n\tfrom<TFrom extends PgTable | Subquery | PgViewBase | SQL>(\n\t\tsource: TableLikeHasEmptySelection<TFrom> extends true ? DrizzleTypeError<\n\t\t\t\t\"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause\"\n\t\t\t>\n\t\t\t: TFrom,\n\t): PgUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tconst src = source as TFrom;\n\t\tconst tableName = getTableLikeName(src);\n\t\tif (typeof tableName === 'string') {\n\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t}\n\t\tthis.config.from = src;\n\t\treturn this as any;\n\t}\n\n\tprivate getTableLikeFields(table: PgTable | Subquery | PgViewBase): Record<string, unknown> {\n\t\tif (is(table, PgTable)) {\n\t\t\treturn table[Table.Symbol.Columns];\n\t\t} else if (is(table, Subquery)) {\n\t\t\treturn table._.selectedFields;\n\t\t}\n\t\treturn table[ViewBaseConfig].selectedFields;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): PgUpdateJoinFn<this, TDynamic, TJoinType> {\n\t\treturn ((\n\t\t\ttable: PgTable | Subquery | PgViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from && !is(this.config.from, SQL)\n\t\t\t\t\t? this.getTableLikeFields(this.config.from)\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\tif (typeof tableName === 'string') {\n\t\t\t\tswitch (joinType) {\n\t\t\t\t\tcase 'left': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'right': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'inner': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'full': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): PgUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): PgUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): PgUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields?: SelectedFields,\n\t): PgUpdateWithout<AnyPgUpdate, TDynamic, 'returning'> {\n\t\tif (!fields) {\n\t\t\tfields = Object.assign({}, this.config.table[Table.Symbol.Columns]);\n\n\t\t\tif (this.config.from) {\n\t\t\t\tconst tableName = getTableLikeName(this.config.from);\n\n\t\t\t\tif (typeof tableName === 'string' && this.config.from && !is(this.config.from, SQL)) {\n\t\t\t\t\tconst fromFields = this.getTableLikeFields(this.config.from);\n\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t}\n\n\t\t\t\tfor (const join of this.config.joins) {\n\t\t\t\t\tconst tableName = getTableLikeName(join.table);\n\n\t\t\t\t\tif (typeof tableName === 'string' && !is(join.table, SQL)) {\n\t\t\t\t\t\tconst fromFields = this.getTableLikeFields(join.table);\n\t\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.config.returningFields = fields;\n\t\tthis.config.returning = orderSelectedFields<PgColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): PgUpdatePrepare<this> {\n\t\tconst query = this.session.prepareQuery<\n\t\t\tPreparedQueryConfig & { execute: TReturning[] }\n\t\t>(this.dialect.sqlToQuery(this.getSQL()), this.config.returning, name, true, undefined, {\n\t\t\ttype: 'insert',\n\t\t\ttables: extractUsedTable(this.config.table),\n\t\t}, this.cacheConfig);\n\t\tquery.joinsNotNullableMap = this.joinsNotNullableMap;\n\t\treturn query;\n\t}\n\n\tprepare(name: string): PgUpdatePrepare<this> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this._prepare().execute(placeholderValues, this.authToken);\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): this['_']['selectedFields'] {\n\t\treturn (\n\t\t\tthis.config.returningFields\n\t\t\t\t? new Proxy(\n\t\t\t\t\tthis.config.returningFields,\n\t\t\t\t\tnew SelectionProxyHandler({\n\t\t\t\t\t\talias: getTableName(this.config.table),\n\t\t\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\t\t\tsqlBehavior: 'error',\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t: undefined\n\t\t) as this['_']['selectedFields'];\n\t}\n\n\t$dynamic(): PgUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["tableName"]}
1
+ {"version":3,"sources":["../../../src/pg-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport type {\n\tPgPreparedQuery,\n\tPgQueryResultHKT,\n\tPgQueryResultKind,\n\tPgSession,\n\tPreparedQueryConfig,\n} from '~/pg-core/session.ts';\nimport { PgTable } from '~/pg-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type {\n\tAppendToNullabilityMap,\n\tAppendToResult,\n\tGetSelectTableName,\n\tGetSelectTableSelection,\n\tJoinNullability,\n\tJoinType,\n\tSelectMode,\n\tSelectResult,\n} from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type Query, SQL, type SQLWrapper } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { getTableName, Table } from '~/table.ts';\nimport { getTableLikeName, mapUpdateSet, orderSelectedFields } from '~/utils.ts';\nimport type { Assume, DrizzleTypeError, Equal, NeonAuthToken, Simplify, UpdateSet } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { PgColumn } from '../columns/common.ts';\nimport type { PgViewBase } from '../view-base.ts';\nimport type {\n\tPgSelectJoinConfig,\n\tSelectedFields,\n\tSelectedFieldsOrdered,\n\tTableLikeHasEmptySelection,\n} from './select.types.ts';\n\nexport interface PgUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: PgTable;\n\tfrom?: PgTable | Subquery | PgViewBase | SQL;\n\tjoins: PgSelectJoinConfig[];\n\treturningFields?: SelectedFields;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type PgUpdateSetSource<TTable extends PgTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key]>\n\t\t\t| SQL\n\t\t\t| PgColumn\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class PgUpdateBuilder<TTable extends PgTable, TQueryResult extends PgQueryResultHKT> {\n\tstatic readonly [entityKind]: string = 'PgUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: PgSession,\n\t\tprivate dialect: PgDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tprivate authToken?: NeonAuthToken;\n\tsetToken(token: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalues: PgUpdateSetSource<TTable>,\n\t): PgUpdateWithout<PgUpdateBase<TTable, TQueryResult>, false, 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'> {\n\t\treturn new PgUpdateBase<TTable, TQueryResult>(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values, this.session.extensions),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t).setToken(this.authToken);\n\t}\n}\n\nexport type PgUpdateWithout<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tT['_']['selectedFields'],\n\t\tT['_']['returning'],\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type PgUpdateWithJoins<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tTFrom,\n\t\tT['_']['selectedFields'],\n\t\tT['_']['returning'],\n\t\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TFrom>, 'inner'>,\n\t\t[...T['_']['joins'], {\n\t\t\tname: GetSelectTableName<TFrom>;\n\t\t\tjoinType: 'inner';\n\t\t\ttable: TFrom;\n\t\t}],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type PgUpdateJoinFn<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n> = <\n\tTJoinedTable extends PgTable | Subquery | PgViewBase | SQL,\n>(\n\ttable: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<\n\t\t\t\"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause\"\n\t\t>\n\t\t: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends PgTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | PgViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => PgUpdateJoin<T, TDynamic, TJoinType, TJoinedTable>;\n\nexport type PgUpdateJoin<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n\tTJoinedTable extends PgTable | Subquery | PgViewBase | SQL,\n> = TDynamic extends true ? T : PgUpdateBase<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['selectedFields'],\n\tT['_']['returning'],\n\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TJoinedTable>, TJoinType>,\n\t[...T['_']['joins'], {\n\t\tname: GetSelectTableName<TJoinedTable>;\n\t\tjoinType: TJoinType;\n\t\ttable: TJoinedTable;\n\t}],\n\tTDynamic,\n\tT['_']['excludedMethods']\n>;\n\ntype Join = {\n\tname: string | undefined;\n\tjoinType: JoinType;\n\ttable: PgTable | Subquery | PgViewBase | SQL;\n};\n\ntype AccumulateToResult<\n\tT extends AnyPgUpdate,\n\tTSelectMode extends SelectMode,\n\tTJoins extends Join[],\n\tTSelectedFields extends ColumnsSelection,\n> = TJoins extends [infer TJoin extends Join, ...infer TRest extends Join[]] ? AccumulateToResult<\n\t\tT,\n\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple',\n\t\tTRest,\n\t\tAppendToResult<\n\t\t\tT['_']['table']['_']['name'],\n\t\t\tTSelectedFields,\n\t\t\tTJoin['name'],\n\t\t\tTJoin['table'] extends Table ? TJoin['table']['_']['columns']\n\t\t\t\t: TJoin['table'] extends Subquery ? Assume<TJoin['table']['_']['selectedFields'], SelectedFields>\n\t\t\t\t: never,\n\t\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple'\n\t\t>\n\t>\n\t: TSelectedFields;\n\nexport type PgUpdateReturningAll<T extends AnyPgUpdate, TDynamic extends boolean> = PgUpdateWithout<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tEqual<T['_']['joins'], []> extends true ? T['_']['table']['_']['columns'] : Simplify<\n\t\t\t& Record<T['_']['table']['_']['name'], T['_']['table']['_']['columns']>\n\t\t\t& {\n\t\t\t\t[K in keyof T['_']['joins'] as T['_']['joins'][K]['table']['_']['name']]:\n\t\t\t\t\tT['_']['joins'][K]['table']['_']['columns'];\n\t\t\t}\n\t\t>,\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'single',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tGetSelectTableSelection<T['_']['table']>\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type PgUpdateReturning<\n\tT extends AnyPgUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = PgUpdateWithout<\n\tPgUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tTSelectedFields,\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'partial',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tTSelectedFields\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type PgUpdatePrepare<T extends AnyPgUpdate> = PgPreparedQuery<\n\tPreparedQueryConfig & {\n\t\texecute: T['_']['returning'] extends undefined ? PgQueryResultKind<T['_']['queryResult'], never>\n\t\t\t: T['_']['returning'][];\n\t}\n>;\n\nexport type PgUpdateDynamic<T extends AnyPgUpdate> = PgUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['returning'],\n\tT['_']['nullabilityMap']\n>;\n\nexport type PgUpdate<\n\tTTable extends PgTable = PgTable,\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL | undefined = undefined,\n\tTSelectedFields extends ColumnsSelection | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n> = PgUpdateBase<TTable, TQueryResult, TFrom, TSelectedFields, TReturning, TNullabilityMap, TJoins, true, never>;\n\nexport type AnyPgUpdate = PgUpdateBase<any, any, any, any, any, any, any, any, any>;\n\nexport interface PgUpdateBase<\n\tTTable extends PgTable,\n\tTQueryResult extends PgQueryResultHKT,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL | undefined = undefined,\n\tTSelectedFields extends ColumnsSelection | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tTypedQueryBuilder<\n\t\tTSelectedFields,\n\t\tTReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[]\n\t>,\n\tQueryPromise<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[], 'pg'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly table: TTable;\n\t\treadonly joins: TJoins;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly from: TFrom;\n\t\treadonly selectedFields: TSelectedFields;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport class PgUpdateBase<\n\tTTable extends PgTable,\n\tTQueryResult extends PgQueryResultHKT,\n\tTFrom extends PgTable | Subquery | PgViewBase | SQL | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTSelectedFields extends ColumnsSelection | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTJoins extends Join[] = [],\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? PgQueryResultKind<TQueryResult, never> : TReturning[], 'pg'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'PgUpdate';\n\n\tprivate config: PgUpdateConfig;\n\tprivate tableName: string | undefined;\n\tprivate joinsNotNullableMap: Record<string, boolean>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: PgSession,\n\t\tprivate dialect: PgDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === 'string' ? { [this.tableName]: true } : {};\n\t}\n\n\tfrom<TFrom extends PgTable | Subquery | PgViewBase | SQL>(\n\t\tsource: TableLikeHasEmptySelection<TFrom> extends true ? DrizzleTypeError<\n\t\t\t\t\"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause\"\n\t\t\t>\n\t\t\t: TFrom,\n\t): PgUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tconst src = source as TFrom;\n\t\tconst tableName = getTableLikeName(src);\n\t\tif (typeof tableName === 'string') {\n\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t}\n\t\tthis.config.from = src;\n\t\treturn this as any;\n\t}\n\n\tprivate getTableLikeFields(table: PgTable | Subquery | PgViewBase): Record<string, unknown> {\n\t\tif (is(table, PgTable)) {\n\t\t\treturn table[Table.Symbol.Columns];\n\t\t} else if (is(table, Subquery)) {\n\t\t\treturn table._.selectedFields;\n\t\t}\n\t\treturn table[ViewBaseConfig].selectedFields;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): PgUpdateJoinFn<this, TDynamic, TJoinType> {\n\t\treturn ((\n\t\t\ttable: PgTable | Subquery | PgViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from && !is(this.config.from, SQL)\n\t\t\t\t\t? this.getTableLikeFields(this.config.from)\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\tif (typeof tableName === 'string') {\n\t\t\t\tswitch (joinType) {\n\t\t\t\t\tcase 'left': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'right': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'inner': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'full': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): PgUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): PgUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): PgUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields?: SelectedFields,\n\t): PgUpdateWithout<AnyPgUpdate, TDynamic, 'returning'> {\n\t\tif (!fields) {\n\t\t\tfields = Object.assign({}, this.config.table[Table.Symbol.Columns]);\n\n\t\t\tif (this.config.from) {\n\t\t\t\tconst tableName = getTableLikeName(this.config.from);\n\n\t\t\t\tif (typeof tableName === 'string' && this.config.from && !is(this.config.from, SQL)) {\n\t\t\t\t\tconst fromFields = this.getTableLikeFields(this.config.from);\n\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t}\n\n\t\t\t\tfor (const join of this.config.joins) {\n\t\t\t\t\tconst tableName = getTableLikeName(join.table);\n\n\t\t\t\t\tif (typeof tableName === 'string' && !is(join.table, SQL)) {\n\t\t\t\t\t\tconst fromFields = this.getTableLikeFields(join.table);\n\t\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.config.returningFields = fields;\n\t\tthis.config.returning = orderSelectedFields<PgColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config, this.session.extensions);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): PgUpdatePrepare<this> {\n\t\tconst query = this.session.prepareQuery<\n\t\t\tPreparedQueryConfig & { execute: TReturning[] }\n\t\t>(this.dialect.sqlToQuery(this.getSQL()), this.config.returning, name, true, {\n\t\t\tquery: 'update',\n\t\t\tconfig: this.config,\n\t\t\tdialect: this.dialect,\n\t\t\tsession: this.session,\n\t\t});\n\t\tquery.joinsNotNullableMap = this.joinsNotNullableMap;\n\t\treturn query;\n\t}\n\n\tprepare(name: string): PgUpdatePrepare<this> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this._prepare().execute(placeholderValues, this.authToken);\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): this['_']['selectedFields'] {\n\t\treturn (\n\t\t\tthis.config.returningFields\n\t\t\t\t? new Proxy(\n\t\t\t\t\tthis.config.returningFields,\n\t\t\t\t\tnew SelectionProxyHandler({\n\t\t\t\t\t\talias: getTableName(this.config.table),\n\t\t\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\t\t\tsqlBehavior: 'error',\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t: undefined\n\t\t) as this['_']['selectedFields'];\n\t}\n\n\t$dynamic(): PgUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["tableName"]}
@@ -23,28 +23,19 @@ __export(session_exports, {
23
23
  PgTransaction: () => PgTransaction
24
24
  });
25
25
  module.exports = __toCommonJS(session_exports);
26
- var import_cache = require("../cache/core/cache.cjs");
27
26
  var import_entity = require("../entity.cjs");
28
27
  var import_errors = require("../errors.cjs");
29
- var import_errors2 = require("../errors/index.cjs");
30
28
  var import_sql = require("../sql/index.cjs");
31
29
  var import_tracing = require("../tracing.cjs");
32
- var import_utils = require("../utils.cjs");
33
30
  var import_db = require("./db.cjs");
34
31
  class PgPreparedQuery {
35
- constructor(query, cache, queryMetadata, cacheConfig) {
32
+ constructor(query, extensions, hookContext) {
36
33
  this.query = query;
37
- this.cache = cache;
38
- this.queryMetadata = queryMetadata;
39
- this.cacheConfig = cacheConfig;
40
- if (cache && cache.strategy() === "all" && cacheConfig === void 0) {
41
- this.cacheConfig = { enable: true, autoInvalidate: true };
42
- }
43
- if (!this.cacheConfig?.enable) {
44
- this.cacheConfig = void 0;
45
- }
34
+ this.extensions = extensions;
35
+ this.hookContext = hookContext;
46
36
  }
47
37
  authToken;
38
+ extensionMetas = [];
48
39
  getQuery() {
49
40
  return this.query;
50
41
  }
@@ -60,75 +51,51 @@ class PgPreparedQuery {
60
51
  /** @internal */
61
52
  joinsNotNullableMap;
62
53
  /** @internal */
63
- async queryWithCache(queryString, params, query) {
64
- if (this.cache === void 0 || (0, import_entity.is)(this.cache, import_cache.NoopCache) || this.queryMetadata === void 0) {
65
- try {
66
- return await query();
67
- } catch (e) {
68
- throw new import_errors2.DrizzleQueryError(queryString, params, e);
69
- }
70
- }
71
- if (this.cacheConfig && !this.cacheConfig.enable) {
72
- try {
73
- return await query();
74
- } catch (e) {
75
- throw new import_errors2.DrizzleQueryError(queryString, params, e);
76
- }
77
- }
78
- if ((this.queryMetadata.type === "insert" || this.queryMetadata.type === "update" || this.queryMetadata.type === "delete") && this.queryMetadata.tables.length > 0) {
79
- try {
80
- const [res] = await Promise.all([
81
- query(),
82
- this.cache.onMutate({ tables: this.queryMetadata.tables })
83
- ]);
84
- return res;
85
- } catch (e) {
86
- throw new import_errors2.DrizzleQueryError(queryString, params, e);
87
- }
88
- }
89
- if (!this.cacheConfig) {
90
- try {
91
- return await query();
92
- } catch (e) {
93
- throw new import_errors2.DrizzleQueryError(queryString, params, e);
54
+ async execute(placeholderValues, token) {
55
+ const {
56
+ extensions,
57
+ hookContext,
58
+ query: {
59
+ sql: queryString,
60
+ params
61
+ },
62
+ extensionMetas
63
+ } = this;
64
+ if (!extensions?.length || !hookContext)
65
+ return await this._execute(placeholderValues, token);
66
+ await import_tracing.tracer.startActiveSpan("drizzle.hooks.beforeExecute", async () => {
67
+ for (const [i, extension] of extensions.entries()) {
68
+ const ext = extension;
69
+ const config = {
70
+ ...hookContext,
71
+ stage: "before",
72
+ sql: queryString,
73
+ params,
74
+ placeholders: placeholderValues,
75
+ metadata: extensionMetas[i]
76
+ };
77
+ await ext.hook(config);
78
+ extensionMetas[i] = config.metadata;
94
79
  }
95
- }
96
- if (this.queryMetadata.type === "select") {
97
- const fromCache = await this.cache.get(
98
- this.cacheConfig.tag ?? (await (0, import_utils.hashQuery)(queryString, params)),
99
- this.queryMetadata.tables,
100
- this.cacheConfig.tag !== void 0,
101
- this.cacheConfig.autoInvalidate
102
- );
103
- if (fromCache === void 0) {
104
- let result;
105
- try {
106
- result = await query();
107
- } catch (e) {
108
- throw new import_errors2.DrizzleQueryError(queryString, params, e);
109
- }
110
- await this.cache.put(
111
- this.cacheConfig.tag ?? (await (0, import_utils.hashQuery)(queryString, params)),
112
- result,
113
- // make sure we send tables that were used in a query only if user wants to invalidate it on each write
114
- this.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],
115
- this.cacheConfig.tag !== void 0,
116
- this.cacheConfig.config
117
- );
118
- return result;
80
+ });
81
+ const res = await this._execute(placeholderValues, token);
82
+ return await import_tracing.tracer.startActiveSpan("drizzle.hooks.afterExecute", async () => {
83
+ for (const [i, ext] of extensions.entries()) {
84
+ await ext.hook({
85
+ ...hookContext,
86
+ metadata: extensionMetas[i],
87
+ stage: "after",
88
+ data: res
89
+ });
119
90
  }
120
- return fromCache;
121
- }
122
- try {
123
- return await query();
124
- } catch (e) {
125
- throw new import_errors2.DrizzleQueryError(queryString, params, e);
126
- }
91
+ return res;
92
+ });
127
93
  }
128
94
  }
129
95
  class PgSession {
130
- constructor(dialect) {
96
+ constructor(dialect, extensions) {
131
97
  this.dialect = dialect;
98
+ this.extensions = extensions;
132
99
  }
133
100
  static [import_entity.entityKind] = "PgSession";
134
101
  /** @internal */
@@ -162,8 +129,8 @@ class PgSession {
162
129
  }
163
130
  }
164
131
  class PgTransaction extends import_db.PgDatabase {
165
- constructor(dialect, session, schema, nestedIndex = 0) {
166
- super(dialect, session, schema);
132
+ constructor(dialect, session, schema, nestedIndex = 0, extensions) {
133
+ super(dialect, session, schema, extensions);
167
134
  this.schema = schema;
168
135
  this.nestedIndex = nestedIndex;
169
136
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { type Cache, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport { DrizzleQueryError } from '~/errors/index.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { hashQuery, type NeonAuthToken } from '~/utils.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(\n\t\tprotected query: Query,\n\t\t// cache instance\n\t\tprivate cache: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\tprotected authToken?: NeonAuthToken;\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\ttry {\n\t\t\t\tconst [res] = await Promise.all([\n\t\t\t\t\tquery(),\n\t\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t\t]);\n\t\t\t\treturn res;\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\tthis.cacheConfig.autoInvalidate,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = await query();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t\t}\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\ttry {\n\t\t\treturn await query();\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t}\n\t}\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\t/** @internal */\n\tabstract execute(placeholderValues?: Record<string, unknown>, token?: NeonAuthToken): Promise<T['execute']>;\n\t/** @internal */\n\tabstract execute(placeholderValues?: Record<string, unknown>, token?: NeonAuthToken): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T>;\n\t/** @internal */\n\texecute<T>(query: SQL, token?: NeonAuthToken): Promise<T>;\n\t/** @internal */\n\texecute<T>(query: SQL, token?: NeonAuthToken): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.setToken(token).execute(undefined, token);\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number>;\n\t/** @internal */\n\tasync count(sql: SQL, token?: NeonAuthToken): Promise<number>;\n\t/** @internal */\n\tasync count(sql: SQL, token?: NeonAuthToken): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql, token);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"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","names":["import_errors","sql"]}
1
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { BlankPgHookContext, DrizzlePgExtension, DrizzlePgHookContext } from '~/extension-core/pg/index.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(\n\t\tprotected query: Query,\n\t\tprotected extensions?: DrizzlePgExtension[],\n\t\tprotected hookContext?: BlankPgHookContext,\n\t) {}\n\n\tprotected authToken?: NeonAuthToken;\n\tprivate extensionMetas: unknown[] = [];\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tasync execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\t/** @internal */\n\tasync execute(placeholderValues?: Record<string, unknown>, token?: NeonAuthToken): Promise<T['execute']>;\n\t/** @internal */\n\tasync execute(placeholderValues?: Record<string, unknown>, token?: NeonAuthToken): Promise<T['execute']> {\n\t\tconst {\n\t\t\textensions,\n\t\t\thookContext,\n\t\t\tquery: {\n\t\t\t\tsql: queryString,\n\t\t\t\tparams,\n\t\t\t},\n\t\t\textensionMetas,\n\t\t} = this;\n\t\tif (!extensions?.length || !hookContext) return await this._execute(placeholderValues, token);\n\n\t\tawait tracer.startActiveSpan('drizzle.hooks.beforeExecute', async () => {\n\t\t\tfor (const [i, extension] of extensions.entries()) {\n\t\t\t\tconst ext = extension!;\n\t\t\t\tconst config = {\n\t\t\t\t\t...hookContext,\n\t\t\t\t\tstage: 'before',\n\t\t\t\t\tsql: queryString,\n\t\t\t\t\tparams: params,\n\t\t\t\t\tplaceholders: placeholderValues,\n\t\t\t\t\tmetadata: extensionMetas[i],\n\t\t\t\t} as DrizzlePgHookContext;\n\n\t\t\t\tawait ext.hook(config);\n\t\t\t\textensionMetas[i] = config.metadata;\n\t\t\t}\n\t\t});\n\n\t\tconst res = await this._execute(placeholderValues, token);\n\n\t\treturn await tracer.startActiveSpan('drizzle.hooks.afterExecute', async () => {\n\t\t\tfor (const [i, ext] of extensions.entries()) {\n\t\t\t\tawait ext.hook({\n\t\t\t\t\t...hookContext,\n\t\t\t\t\tmetadata: extensionMetas[i],\n\t\t\t\t\tstage: 'after',\n\t\t\t\t\tdata: res as unknown[],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn res;\n\t\t});\n\t}\n\n\tprotected abstract _execute(\n\t\tplaceholderValues?: Record<string, unknown>,\n\t\ttoken?: NeonAuthToken,\n\t): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect, readonly extensions?: DrizzlePgExtension[]) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\thookContext?: BlankPgHookContext,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T>;\n\t/** @internal */\n\texecute<T>(query: SQL, token?: NeonAuthToken): Promise<T>;\n\t/** @internal */\n\texecute<T>(query: SQL, token?: NeonAuthToken): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.setToken(token).execute(undefined, token);\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number>;\n\t/** @internal */\n\tasync count(sql: SQL, token?: NeonAuthToken): Promise<number>;\n\t/** @internal */\n\tasync count(sql: SQL, token?: NeonAuthToken): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql, token);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t\textensions?: DrizzlePgExtension[],\n\t) {\n\t\tsuper(dialect, session, schema, extensions);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"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","names":["sql"]}
@@ -1,10 +1,9 @@
1
- import { type Cache } from "../cache/core/cache.cjs";
2
- import type { WithCacheConfig } from "../cache/core/types.cjs";
3
1
  import { entityKind } from "../entity.cjs";
2
+ import type { BlankPgHookContext, DrizzlePgExtension } from "../extension-core/pg/index.cjs";
4
3
  import type { TablesRelationalConfig } from "../relations.cjs";
5
4
  import type { PreparedQuery } from "../session.cjs";
6
5
  import { type Query, type SQL } from "../sql/index.cjs";
7
- import { type NeonAuthToken } from "../utils.cjs";
6
+ import type { NeonAuthToken } from "../utils.cjs";
8
7
  import { PgDatabase } from "./db.cjs";
9
8
  import type { PgDialect } from "./dialect.cjs";
10
9
  import type { SelectedFieldsOrdered } from "./query-builders/select.types.cjs";
@@ -15,18 +14,16 @@ export interface PreparedQueryConfig {
15
14
  }
16
15
  export declare abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {
17
16
  protected query: Query;
18
- private cache;
19
- private queryMetadata;
20
- private cacheConfig?;
21
- constructor(query: Query, cache: Cache, queryMetadata: {
22
- type: 'select' | 'update' | 'delete' | 'insert';
23
- tables: string[];
24
- } | undefined, cacheConfig?: WithCacheConfig | undefined);
17
+ protected extensions?: DrizzlePgExtension[] | undefined;
18
+ protected hookContext?: BlankPgHookContext | undefined;
19
+ constructor(query: Query, extensions?: DrizzlePgExtension[] | undefined, hookContext?: BlankPgHookContext | undefined);
25
20
  protected authToken?: NeonAuthToken;
21
+ private extensionMetas;
26
22
  getQuery(): Query;
27
23
  mapResult(response: unknown, _isFromBatch?: boolean): unknown;
28
24
  static readonly [entityKind]: string;
29
- abstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
25
+ execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
26
+ protected abstract _execute(placeholderValues?: Record<string, unknown>, token?: NeonAuthToken): Promise<T['execute']>;
30
27
  }
31
28
  export interface PgTransactionConfig {
32
29
  isolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
@@ -35,12 +32,10 @@ export interface PgTransactionConfig {
35
32
  }
36
33
  export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
37
34
  protected dialect: PgDialect;
35
+ readonly extensions?: DrizzlePgExtension[] | undefined;
38
36
  static readonly [entityKind]: string;
39
- constructor(dialect: PgDialect);
40
- abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'], queryMetadata?: {
41
- type: 'select' | 'update' | 'delete' | 'insert';
42
- tables: string[];
43
- }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
37
+ constructor(dialect: PgDialect, extensions?: DrizzlePgExtension[] | undefined);
38
+ abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, hookContext?: BlankPgHookContext, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): PgPreparedQuery<T>;
44
39
  execute<T>(query: SQL): Promise<T>;
45
40
  all<T = unknown>(query: SQL): Promise<T[]>;
46
41
  count(sql: SQL): Promise<number>;
@@ -58,7 +53,7 @@ export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHK
58
53
  fullSchema: Record<string, unknown>;
59
54
  schema: TSchema;
60
55
  tableNamesMap: Record<string, string>;
61
- } | undefined, nestedIndex?: number);
56
+ } | undefined, nestedIndex?: number, extensions?: DrizzlePgExtension[]);
62
57
  rollback(): never;
63
58
  setTransaction(config: PgTransactionConfig): Promise<void>;
64
59
  abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
@@ -1,10 +1,9 @@
1
- import { type Cache } from "../cache/core/cache.js";
2
- import type { WithCacheConfig } from "../cache/core/types.js";
3
1
  import { entityKind } from "../entity.js";
2
+ import type { BlankPgHookContext, DrizzlePgExtension } from "../extension-core/pg/index.js";
4
3
  import type { TablesRelationalConfig } from "../relations.js";
5
4
  import type { PreparedQuery } from "../session.js";
6
5
  import { type Query, type SQL } from "../sql/index.js";
7
- import { type NeonAuthToken } from "../utils.js";
6
+ import type { NeonAuthToken } from "../utils.js";
8
7
  import { PgDatabase } from "./db.js";
9
8
  import type { PgDialect } from "./dialect.js";
10
9
  import type { SelectedFieldsOrdered } from "./query-builders/select.types.js";
@@ -15,18 +14,16 @@ export interface PreparedQueryConfig {
15
14
  }
16
15
  export declare abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {
17
16
  protected query: Query;
18
- private cache;
19
- private queryMetadata;
20
- private cacheConfig?;
21
- constructor(query: Query, cache: Cache, queryMetadata: {
22
- type: 'select' | 'update' | 'delete' | 'insert';
23
- tables: string[];
24
- } | undefined, cacheConfig?: WithCacheConfig | undefined);
17
+ protected extensions?: DrizzlePgExtension[] | undefined;
18
+ protected hookContext?: BlankPgHookContext | undefined;
19
+ constructor(query: Query, extensions?: DrizzlePgExtension[] | undefined, hookContext?: BlankPgHookContext | undefined);
25
20
  protected authToken?: NeonAuthToken;
21
+ private extensionMetas;
26
22
  getQuery(): Query;
27
23
  mapResult(response: unknown, _isFromBatch?: boolean): unknown;
28
24
  static readonly [entityKind]: string;
29
- abstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
25
+ execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
26
+ protected abstract _execute(placeholderValues?: Record<string, unknown>, token?: NeonAuthToken): Promise<T['execute']>;
30
27
  }
31
28
  export interface PgTransactionConfig {
32
29
  isolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
@@ -35,12 +32,10 @@ export interface PgTransactionConfig {
35
32
  }
36
33
  export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
37
34
  protected dialect: PgDialect;
35
+ readonly extensions?: DrizzlePgExtension[] | undefined;
38
36
  static readonly [entityKind]: string;
39
- constructor(dialect: PgDialect);
40
- abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'], queryMetadata?: {
41
- type: 'select' | 'update' | 'delete' | 'insert';
42
- tables: string[];
43
- }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
37
+ constructor(dialect: PgDialect, extensions?: DrizzlePgExtension[] | undefined);
38
+ abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, hookContext?: BlankPgHookContext, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): PgPreparedQuery<T>;
44
39
  execute<T>(query: SQL): Promise<T>;
45
40
  all<T = unknown>(query: SQL): Promise<T[]>;
46
41
  count(sql: SQL): Promise<number>;
@@ -58,7 +53,7 @@ export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHK
58
53
  fullSchema: Record<string, unknown>;
59
54
  schema: TSchema;
60
55
  tableNamesMap: Record<string, string>;
61
- } | undefined, nestedIndex?: number);
56
+ } | undefined, nestedIndex?: number, extensions?: DrizzlePgExtension[]);
62
57
  rollback(): never;
63
58
  setTransaction(config: PgTransactionConfig): Promise<void>;
64
59
  abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>): Promise<T>;