drizzle-orm 1.0.0-beta.1-84d9a79 → 1.0.0-beta.1-9fb1d0d

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 (1221) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/driver.cjs +1 -1
  4. package/aws-data-api/pg/driver.cjs.map +1 -1
  5. package/aws-data-api/pg/driver.js +1 -1
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs.map +1 -1
  8. package/aws-data-api/pg/session.d.cts +6 -6
  9. package/aws-data-api/pg/session.d.ts +6 -6
  10. package/aws-data-api/pg/session.js.map +1 -1
  11. package/better-sqlite3/driver.cjs +1 -1
  12. package/better-sqlite3/driver.cjs.map +1 -1
  13. package/better-sqlite3/driver.js +1 -1
  14. package/better-sqlite3/driver.js.map +1 -1
  15. package/better-sqlite3/session.cjs.map +1 -1
  16. package/better-sqlite3/session.d.cts +6 -6
  17. package/better-sqlite3/session.d.ts +6 -6
  18. package/better-sqlite3/session.js.map +1 -1
  19. package/bun-sql/driver.cjs +1 -1
  20. package/bun-sql/driver.cjs.map +1 -1
  21. package/bun-sql/driver.js +1 -1
  22. package/bun-sql/driver.js.map +1 -1
  23. package/bun-sql/migrator.cjs.map +1 -1
  24. package/bun-sql/migrator.d.cts +2 -2
  25. package/bun-sql/migrator.d.ts +2 -2
  26. package/bun-sql/migrator.js.map +1 -1
  27. package/bun-sql/session.cjs.map +1 -1
  28. package/bun-sql/session.d.cts +7 -7
  29. package/bun-sql/session.d.ts +7 -7
  30. package/bun-sql/session.js.map +1 -1
  31. package/bun-sqlite/driver.cjs +1 -1
  32. package/bun-sqlite/driver.cjs.map +1 -1
  33. package/bun-sqlite/driver.js +1 -1
  34. package/bun-sqlite/driver.js.map +1 -1
  35. package/bun-sqlite/session.cjs.map +1 -1
  36. package/bun-sqlite/session.d.cts +6 -6
  37. package/bun-sqlite/session.d.ts +6 -6
  38. package/bun-sqlite/session.js.map +1 -1
  39. package/column-builder.cjs +9 -2
  40. package/column-builder.cjs.map +1 -1
  41. package/column-builder.d.cts +50 -65
  42. package/column-builder.d.ts +50 -65
  43. package/column-builder.js +7 -1
  44. package/column-builder.js.map +1 -1
  45. package/column.cjs +37 -21
  46. package/column.cjs.map +1 -1
  47. package/column.d.cts +20 -32
  48. package/column.d.ts +20 -32
  49. package/column.js +35 -20
  50. package/column.js.map +1 -1
  51. package/d1/driver.cjs +1 -1
  52. package/d1/driver.cjs.map +1 -1
  53. package/d1/driver.js +1 -1
  54. package/d1/driver.js.map +1 -1
  55. package/d1/session.cjs.map +1 -1
  56. package/d1/session.d.cts +6 -6
  57. package/d1/session.d.ts +6 -6
  58. package/d1/session.js.map +1 -1
  59. package/durable-sqlite/driver.cjs +1 -1
  60. package/durable-sqlite/driver.cjs.map +1 -1
  61. package/durable-sqlite/driver.js +1 -1
  62. package/durable-sqlite/driver.js.map +1 -1
  63. package/durable-sqlite/session.cjs.map +1 -1
  64. package/durable-sqlite/session.d.cts +6 -6
  65. package/durable-sqlite/session.d.ts +6 -6
  66. package/durable-sqlite/session.js.map +1 -1
  67. package/expo-sqlite/driver.cjs +1 -1
  68. package/expo-sqlite/driver.cjs.map +1 -1
  69. package/expo-sqlite/driver.js +1 -1
  70. package/expo-sqlite/driver.js.map +1 -1
  71. package/expo-sqlite/session.cjs.map +1 -1
  72. package/expo-sqlite/session.d.cts +6 -6
  73. package/expo-sqlite/session.d.ts +6 -6
  74. package/expo-sqlite/session.js.map +1 -1
  75. package/gel/driver.cjs +1 -1
  76. package/gel/driver.cjs.map +1 -1
  77. package/gel/driver.d.cts +2 -2
  78. package/gel/driver.d.ts +2 -2
  79. package/gel/driver.js +1 -1
  80. package/gel/driver.js.map +1 -1
  81. package/gel/session.cjs.map +1 -1
  82. package/gel/session.d.cts +6 -6
  83. package/gel/session.d.ts +6 -6
  84. package/gel/session.js.map +1 -1
  85. package/gel-core/columns/bigint.cjs +1 -1
  86. package/gel-core/columns/bigint.cjs.map +1 -1
  87. package/gel-core/columns/bigint.d.cts +7 -12
  88. package/gel-core/columns/bigint.d.ts +7 -12
  89. package/gel-core/columns/bigint.js +1 -1
  90. package/gel-core/columns/bigint.js.map +1 -1
  91. package/gel-core/columns/bigintT.cjs +1 -1
  92. package/gel-core/columns/bigintT.cjs.map +1 -1
  93. package/gel-core/columns/bigintT.d.cts +7 -12
  94. package/gel-core/columns/bigintT.d.ts +7 -12
  95. package/gel-core/columns/bigintT.js +1 -1
  96. package/gel-core/columns/bigintT.js.map +1 -1
  97. package/gel-core/columns/boolean.cjs.map +1 -1
  98. package/gel-core/columns/boolean.d.cts +6 -11
  99. package/gel-core/columns/boolean.d.ts +6 -11
  100. package/gel-core/columns/boolean.js.map +1 -1
  101. package/gel-core/columns/bytes.cjs +1 -1
  102. package/gel-core/columns/bytes.cjs.map +1 -1
  103. package/gel-core/columns/bytes.d.cts +7 -12
  104. package/gel-core/columns/bytes.d.ts +7 -12
  105. package/gel-core/columns/bytes.js +1 -1
  106. package/gel-core/columns/bytes.js.map +1 -1
  107. package/gel-core/columns/common.cjs +9 -9
  108. package/gel-core/columns/common.cjs.map +1 -1
  109. package/gel-core/columns/common.d.cts +24 -41
  110. package/gel-core/columns/common.d.ts +24 -41
  111. package/gel-core/columns/common.js +9 -9
  112. package/gel-core/columns/common.js.map +1 -1
  113. package/gel-core/columns/custom.cjs.map +1 -1
  114. package/gel-core/columns/custom.d.cts +10 -14
  115. package/gel-core/columns/custom.d.ts +10 -14
  116. package/gel-core/columns/custom.js.map +1 -1
  117. package/gel-core/columns/date-duration.cjs +1 -1
  118. package/gel-core/columns/date-duration.cjs.map +1 -1
  119. package/gel-core/columns/date-duration.d.cts +7 -12
  120. package/gel-core/columns/date-duration.d.ts +7 -12
  121. package/gel-core/columns/date-duration.js +1 -1
  122. package/gel-core/columns/date-duration.js.map +1 -1
  123. package/gel-core/columns/date.common.cjs.map +1 -1
  124. package/gel-core/columns/date.common.d.cts +2 -2
  125. package/gel-core/columns/date.common.d.ts +2 -2
  126. package/gel-core/columns/date.common.js.map +1 -1
  127. package/gel-core/columns/decimal.cjs +1 -1
  128. package/gel-core/columns/decimal.cjs.map +1 -1
  129. package/gel-core/columns/decimal.d.cts +8 -13
  130. package/gel-core/columns/decimal.d.ts +8 -13
  131. package/gel-core/columns/decimal.js +1 -1
  132. package/gel-core/columns/decimal.js.map +1 -1
  133. package/gel-core/columns/double-precision.cjs +1 -1
  134. package/gel-core/columns/double-precision.cjs.map +1 -1
  135. package/gel-core/columns/double-precision.d.cts +7 -12
  136. package/gel-core/columns/double-precision.d.ts +7 -12
  137. package/gel-core/columns/double-precision.js +1 -1
  138. package/gel-core/columns/double-precision.js.map +1 -1
  139. package/gel-core/columns/duration.cjs +1 -1
  140. package/gel-core/columns/duration.cjs.map +1 -1
  141. package/gel-core/columns/duration.d.cts +7 -12
  142. package/gel-core/columns/duration.d.ts +7 -12
  143. package/gel-core/columns/duration.js +1 -1
  144. package/gel-core/columns/duration.js.map +1 -1
  145. package/gel-core/columns/int.common.cjs.map +1 -1
  146. package/gel-core/columns/int.common.d.cts +2 -2
  147. package/gel-core/columns/int.common.d.ts +2 -2
  148. package/gel-core/columns/int.common.js.map +1 -1
  149. package/gel-core/columns/integer.cjs +1 -1
  150. package/gel-core/columns/integer.cjs.map +1 -1
  151. package/gel-core/columns/integer.d.cts +7 -12
  152. package/gel-core/columns/integer.d.ts +7 -12
  153. package/gel-core/columns/integer.js +1 -1
  154. package/gel-core/columns/integer.js.map +1 -1
  155. package/gel-core/columns/json.cjs +1 -1
  156. package/gel-core/columns/json.cjs.map +1 -1
  157. package/gel-core/columns/json.d.cts +8 -13
  158. package/gel-core/columns/json.d.ts +8 -13
  159. package/gel-core/columns/json.js +1 -1
  160. package/gel-core/columns/json.js.map +1 -1
  161. package/gel-core/columns/localdate.cjs +1 -1
  162. package/gel-core/columns/localdate.cjs.map +1 -1
  163. package/gel-core/columns/localdate.d.cts +7 -12
  164. package/gel-core/columns/localdate.d.ts +7 -12
  165. package/gel-core/columns/localdate.js +1 -1
  166. package/gel-core/columns/localdate.js.map +1 -1
  167. package/gel-core/columns/localtime.cjs +1 -1
  168. package/gel-core/columns/localtime.cjs.map +1 -1
  169. package/gel-core/columns/localtime.d.cts +7 -12
  170. package/gel-core/columns/localtime.d.ts +7 -12
  171. package/gel-core/columns/localtime.js +1 -1
  172. package/gel-core/columns/localtime.js.map +1 -1
  173. package/gel-core/columns/real.cjs +1 -1
  174. package/gel-core/columns/real.cjs.map +1 -1
  175. package/gel-core/columns/real.d.cts +8 -13
  176. package/gel-core/columns/real.d.ts +8 -13
  177. package/gel-core/columns/real.js +1 -1
  178. package/gel-core/columns/real.js.map +1 -1
  179. package/gel-core/columns/relative-duration.cjs +1 -1
  180. package/gel-core/columns/relative-duration.cjs.map +1 -1
  181. package/gel-core/columns/relative-duration.d.cts +7 -12
  182. package/gel-core/columns/relative-duration.d.ts +7 -12
  183. package/gel-core/columns/relative-duration.js +1 -1
  184. package/gel-core/columns/relative-duration.js.map +1 -1
  185. package/gel-core/columns/smallint.cjs +1 -1
  186. package/gel-core/columns/smallint.cjs.map +1 -1
  187. package/gel-core/columns/smallint.d.cts +7 -12
  188. package/gel-core/columns/smallint.d.ts +7 -12
  189. package/gel-core/columns/smallint.js +1 -1
  190. package/gel-core/columns/smallint.js.map +1 -1
  191. package/gel-core/columns/text.cjs.map +1 -1
  192. package/gel-core/columns/text.d.cts +6 -12
  193. package/gel-core/columns/text.d.ts +6 -12
  194. package/gel-core/columns/text.js.map +1 -1
  195. package/gel-core/columns/timestamp.cjs +1 -1
  196. package/gel-core/columns/timestamp.cjs.map +1 -1
  197. package/gel-core/columns/timestamp.d.cts +8 -13
  198. package/gel-core/columns/timestamp.d.ts +8 -13
  199. package/gel-core/columns/timestamp.js +1 -1
  200. package/gel-core/columns/timestamp.js.map +1 -1
  201. package/gel-core/columns/timestamptz.cjs +1 -1
  202. package/gel-core/columns/timestamptz.cjs.map +1 -1
  203. package/gel-core/columns/timestamptz.d.cts +8 -13
  204. package/gel-core/columns/timestamptz.d.ts +8 -13
  205. package/gel-core/columns/timestamptz.js +1 -1
  206. package/gel-core/columns/timestamptz.js.map +1 -1
  207. package/gel-core/columns/uuid.cjs +1 -1
  208. package/gel-core/columns/uuid.cjs.map +1 -1
  209. package/gel-core/columns/uuid.d.cts +7 -12
  210. package/gel-core/columns/uuid.d.ts +7 -12
  211. package/gel-core/columns/uuid.js +1 -1
  212. package/gel-core/columns/uuid.js.map +1 -1
  213. package/gel-core/db.cjs +10 -15
  214. package/gel-core/db.cjs.map +1 -1
  215. package/gel-core/db.d.cts +8 -8
  216. package/gel-core/db.d.ts +8 -8
  217. package/gel-core/db.js +10 -15
  218. package/gel-core/db.js.map +1 -1
  219. package/gel-core/dialect.cjs +13 -13
  220. package/gel-core/dialect.cjs.map +1 -1
  221. package/gel-core/dialect.d.cts +1 -3
  222. package/gel-core/dialect.d.ts +1 -3
  223. package/gel-core/dialect.js +14 -14
  224. package/gel-core/dialect.js.map +1 -1
  225. package/gel-core/query-builders/delete.cjs.map +1 -1
  226. package/gel-core/query-builders/delete.js.map +1 -1
  227. package/gel-core/query-builders/insert.cjs +1 -1
  228. package/gel-core/query-builders/insert.cjs.map +1 -1
  229. package/gel-core/query-builders/insert.d.cts +2 -2
  230. package/gel-core/query-builders/insert.d.ts +2 -2
  231. package/gel-core/query-builders/insert.js +2 -2
  232. package/gel-core/query-builders/insert.js.map +1 -1
  233. package/gel-core/query-builders/query.cjs +2 -12
  234. package/gel-core/query-builders/query.cjs.map +1 -1
  235. package/gel-core/query-builders/query.d.cts +2 -6
  236. package/gel-core/query-builders/query.d.ts +2 -6
  237. package/gel-core/query-builders/query.js +2 -12
  238. package/gel-core/query-builders/query.js.map +1 -1
  239. package/gel-core/query-builders/select.types.cjs.map +1 -1
  240. package/gel-core/query-builders/select.types.d.cts +1 -1
  241. package/gel-core/query-builders/select.types.d.ts +1 -1
  242. package/gel-core/query-builders/update.cjs.map +1 -1
  243. package/gel-core/query-builders/update.d.cts +3 -3
  244. package/gel-core/query-builders/update.d.ts +3 -3
  245. package/gel-core/query-builders/update.js.map +1 -1
  246. package/gel-core/session.cjs.map +1 -1
  247. package/gel-core/session.d.cts +7 -7
  248. package/gel-core/session.d.ts +7 -7
  249. package/gel-core/session.js.map +1 -1
  250. package/gel-core/table.cjs.map +1 -1
  251. package/gel-core/table.d.cts +9 -11
  252. package/gel-core/table.d.ts +9 -11
  253. package/gel-core/table.js +3 -1
  254. package/gel-core/table.js.map +1 -1
  255. package/gel-core/utils.d.cts +1 -1
  256. package/gel-core/utils.d.ts +1 -1
  257. package/gel-core/view.cjs.map +1 -1
  258. package/gel-core/view.d.cts +3 -4
  259. package/gel-core/view.d.ts +3 -4
  260. package/gel-core/view.js.map +1 -1
  261. package/libsql/driver-core.cjs +1 -1
  262. package/libsql/driver-core.cjs.map +1 -1
  263. package/libsql/driver-core.js +1 -1
  264. package/libsql/driver-core.js.map +1 -1
  265. package/libsql/session.cjs.map +1 -1
  266. package/libsql/session.d.cts +6 -6
  267. package/libsql/session.d.ts +6 -6
  268. package/libsql/session.js.map +1 -1
  269. package/mysql-core/columns/bigint.cjs +2 -2
  270. package/mysql-core/columns/bigint.cjs.map +1 -1
  271. package/mysql-core/columns/bigint.d.cts +19 -25
  272. package/mysql-core/columns/bigint.d.ts +19 -25
  273. package/mysql-core/columns/bigint.js +2 -2
  274. package/mysql-core/columns/bigint.js.map +1 -1
  275. package/mysql-core/columns/binary.cjs +5 -4
  276. package/mysql-core/columns/binary.cjs.map +1 -1
  277. package/mysql-core/columns/binary.d.cts +13 -14
  278. package/mysql-core/columns/binary.d.ts +13 -14
  279. package/mysql-core/columns/binary.js +5 -4
  280. package/mysql-core/columns/binary.js.map +1 -1
  281. package/mysql-core/columns/boolean.cjs.map +1 -1
  282. package/mysql-core/columns/boolean.d.cts +6 -11
  283. package/mysql-core/columns/boolean.d.ts +6 -11
  284. package/mysql-core/columns/boolean.js.map +1 -1
  285. package/mysql-core/columns/char.cjs +5 -4
  286. package/mysql-core/columns/char.cjs.map +1 -1
  287. package/mysql-core/columns/char.d.cts +18 -23
  288. package/mysql-core/columns/char.d.ts +18 -23
  289. package/mysql-core/columns/char.js +5 -4
  290. package/mysql-core/columns/char.js.map +1 -1
  291. package/mysql-core/columns/common.cjs +3 -1
  292. package/mysql-core/columns/common.cjs.map +1 -1
  293. package/mysql-core/columns/common.d.cts +10 -18
  294. package/mysql-core/columns/common.d.ts +10 -18
  295. package/mysql-core/columns/common.js +3 -1
  296. package/mysql-core/columns/common.js.map +1 -1
  297. package/mysql-core/columns/custom.cjs.map +1 -1
  298. package/mysql-core/columns/custom.d.cts +9 -14
  299. package/mysql-core/columns/custom.d.ts +9 -14
  300. package/mysql-core/columns/custom.js.map +1 -1
  301. package/mysql-core/columns/date.cjs +2 -2
  302. package/mysql-core/columns/date.cjs.map +1 -1
  303. package/mysql-core/columns/date.common.cjs +1 -1
  304. package/mysql-core/columns/date.common.cjs.map +1 -1
  305. package/mysql-core/columns/date.common.d.cts +3 -3
  306. package/mysql-core/columns/date.common.d.ts +3 -3
  307. package/mysql-core/columns/date.common.js +1 -1
  308. package/mysql-core/columns/date.common.js.map +1 -1
  309. package/mysql-core/columns/date.d.cts +16 -24
  310. package/mysql-core/columns/date.d.ts +16 -24
  311. package/mysql-core/columns/date.js +2 -2
  312. package/mysql-core/columns/date.js.map +1 -1
  313. package/mysql-core/columns/datetime.cjs +2 -2
  314. package/mysql-core/columns/datetime.cjs.map +1 -1
  315. package/mysql-core/columns/datetime.d.cts +16 -24
  316. package/mysql-core/columns/datetime.d.ts +16 -24
  317. package/mysql-core/columns/datetime.js +2 -2
  318. package/mysql-core/columns/datetime.js.map +1 -1
  319. package/mysql-core/columns/decimal.cjs +3 -3
  320. package/mysql-core/columns/decimal.cjs.map +1 -1
  321. package/mysql-core/columns/decimal.d.cts +22 -33
  322. package/mysql-core/columns/decimal.d.ts +22 -33
  323. package/mysql-core/columns/decimal.js +3 -3
  324. package/mysql-core/columns/decimal.js.map +1 -1
  325. package/mysql-core/columns/double.cjs +1 -1
  326. package/mysql-core/columns/double.cjs.map +1 -1
  327. package/mysql-core/columns/double.d.cts +11 -15
  328. package/mysql-core/columns/double.d.ts +11 -15
  329. package/mysql-core/columns/double.js +1 -1
  330. package/mysql-core/columns/double.js.map +1 -1
  331. package/mysql-core/columns/enum.cjs +2 -2
  332. package/mysql-core/columns/enum.cjs.map +1 -1
  333. package/mysql-core/columns/enum.d.cts +18 -23
  334. package/mysql-core/columns/enum.d.ts +18 -23
  335. package/mysql-core/columns/enum.js +2 -2
  336. package/mysql-core/columns/enum.js.map +1 -1
  337. package/mysql-core/columns/float.cjs +1 -1
  338. package/mysql-core/columns/float.cjs.map +1 -1
  339. package/mysql-core/columns/float.d.cts +11 -15
  340. package/mysql-core/columns/float.d.ts +11 -15
  341. package/mysql-core/columns/float.js +1 -1
  342. package/mysql-core/columns/float.js.map +1 -1
  343. package/mysql-core/columns/int.cjs +1 -1
  344. package/mysql-core/columns/int.cjs.map +1 -1
  345. package/mysql-core/columns/int.d.cts +11 -15
  346. package/mysql-core/columns/int.d.ts +11 -15
  347. package/mysql-core/columns/int.js +1 -1
  348. package/mysql-core/columns/int.js.map +1 -1
  349. package/mysql-core/columns/json.cjs +1 -1
  350. package/mysql-core/columns/json.cjs.map +1 -1
  351. package/mysql-core/columns/json.d.cts +7 -12
  352. package/mysql-core/columns/json.d.ts +7 -12
  353. package/mysql-core/columns/json.js +1 -1
  354. package/mysql-core/columns/json.js.map +1 -1
  355. package/mysql-core/columns/mediumint.cjs +1 -1
  356. package/mysql-core/columns/mediumint.cjs.map +1 -1
  357. package/mysql-core/columns/mediumint.d.cts +9 -13
  358. package/mysql-core/columns/mediumint.d.ts +9 -13
  359. package/mysql-core/columns/mediumint.js +1 -1
  360. package/mysql-core/columns/mediumint.js.map +1 -1
  361. package/mysql-core/columns/real.cjs +1 -1
  362. package/mysql-core/columns/real.cjs.map +1 -1
  363. package/mysql-core/columns/real.d.cts +8 -13
  364. package/mysql-core/columns/real.d.ts +8 -13
  365. package/mysql-core/columns/real.js +1 -1
  366. package/mysql-core/columns/real.js.map +1 -1
  367. package/mysql-core/columns/serial.cjs +1 -1
  368. package/mysql-core/columns/serial.cjs.map +1 -1
  369. package/mysql-core/columns/serial.d.cts +11 -12
  370. package/mysql-core/columns/serial.d.ts +11 -12
  371. package/mysql-core/columns/serial.js +1 -1
  372. package/mysql-core/columns/serial.js.map +1 -1
  373. package/mysql-core/columns/smallint.cjs +1 -1
  374. package/mysql-core/columns/smallint.cjs.map +1 -1
  375. package/mysql-core/columns/smallint.d.cts +9 -13
  376. package/mysql-core/columns/smallint.d.ts +9 -13
  377. package/mysql-core/columns/smallint.js +1 -1
  378. package/mysql-core/columns/smallint.js.map +1 -1
  379. package/mysql-core/columns/text.cjs +19 -1
  380. package/mysql-core/columns/text.cjs.map +1 -1
  381. package/mysql-core/columns/text.d.cts +17 -23
  382. package/mysql-core/columns/text.d.ts +17 -23
  383. package/mysql-core/columns/text.js +19 -1
  384. package/mysql-core/columns/text.js.map +1 -1
  385. package/mysql-core/columns/time.cjs +1 -1
  386. package/mysql-core/columns/time.cjs.map +1 -1
  387. package/mysql-core/columns/time.d.cts +8 -13
  388. package/mysql-core/columns/time.d.ts +8 -13
  389. package/mysql-core/columns/time.js +1 -1
  390. package/mysql-core/columns/time.js.map +1 -1
  391. package/mysql-core/columns/timestamp.cjs +2 -2
  392. package/mysql-core/columns/timestamp.cjs.map +1 -1
  393. package/mysql-core/columns/timestamp.d.cts +14 -22
  394. package/mysql-core/columns/timestamp.d.ts +14 -22
  395. package/mysql-core/columns/timestamp.js +2 -2
  396. package/mysql-core/columns/timestamp.js.map +1 -1
  397. package/mysql-core/columns/tinyint.cjs +1 -1
  398. package/mysql-core/columns/tinyint.cjs.map +1 -1
  399. package/mysql-core/columns/tinyint.d.cts +9 -13
  400. package/mysql-core/columns/tinyint.d.ts +9 -13
  401. package/mysql-core/columns/tinyint.js +1 -1
  402. package/mysql-core/columns/tinyint.js.map +1 -1
  403. package/mysql-core/columns/varbinary.cjs +2 -3
  404. package/mysql-core/columns/varbinary.cjs.map +1 -1
  405. package/mysql-core/columns/varbinary.d.cts +7 -12
  406. package/mysql-core/columns/varbinary.d.ts +7 -12
  407. package/mysql-core/columns/varbinary.js +2 -3
  408. package/mysql-core/columns/varbinary.js.map +1 -1
  409. package/mysql-core/columns/varchar.cjs +2 -3
  410. package/mysql-core/columns/varchar.cjs.map +1 -1
  411. package/mysql-core/columns/varchar.d.cts +12 -21
  412. package/mysql-core/columns/varchar.d.ts +12 -21
  413. package/mysql-core/columns/varchar.js +2 -3
  414. package/mysql-core/columns/varchar.js.map +1 -1
  415. package/mysql-core/columns/year.cjs +1 -1
  416. package/mysql-core/columns/year.cjs.map +1 -1
  417. package/mysql-core/columns/year.d.cts +7 -12
  418. package/mysql-core/columns/year.d.ts +7 -12
  419. package/mysql-core/columns/year.js +1 -1
  420. package/mysql-core/columns/year.js.map +1 -1
  421. package/mysql-core/db.cjs +10 -29
  422. package/mysql-core/db.cjs.map +1 -1
  423. package/mysql-core/db.d.cts +7 -7
  424. package/mysql-core/db.d.ts +7 -7
  425. package/mysql-core/db.js +10 -29
  426. package/mysql-core/db.js.map +1 -1
  427. package/mysql-core/dialect.cjs +8 -12
  428. package/mysql-core/dialect.cjs.map +1 -1
  429. package/mysql-core/dialect.d.cts +1 -3
  430. package/mysql-core/dialect.d.ts +1 -3
  431. package/mysql-core/dialect.js +9 -13
  432. package/mysql-core/dialect.js.map +1 -1
  433. package/mysql-core/query-builders/insert.cjs +1 -1
  434. package/mysql-core/query-builders/insert.cjs.map +1 -1
  435. package/mysql-core/query-builders/insert.d.cts +5 -5
  436. package/mysql-core/query-builders/insert.d.ts +5 -5
  437. package/mysql-core/query-builders/insert.js +2 -2
  438. package/mysql-core/query-builders/insert.js.map +1 -1
  439. package/mysql-core/query-builders/query.cjs +2 -12
  440. package/mysql-core/query-builders/query.cjs.map +1 -1
  441. package/mysql-core/query-builders/query.d.cts +2 -6
  442. package/mysql-core/query-builders/query.d.ts +2 -6
  443. package/mysql-core/query-builders/query.js +2 -12
  444. package/mysql-core/query-builders/query.js.map +1 -1
  445. package/mysql-core/query-builders/select.types.cjs.map +1 -1
  446. package/mysql-core/query-builders/select.types.d.cts +1 -1
  447. package/mysql-core/query-builders/select.types.d.ts +1 -1
  448. package/mysql-core/query-builders/update.cjs.map +1 -1
  449. package/mysql-core/query-builders/update.d.cts +3 -2
  450. package/mysql-core/query-builders/update.d.ts +3 -2
  451. package/mysql-core/query-builders/update.js.map +1 -1
  452. package/mysql-core/session.cjs.map +1 -1
  453. package/mysql-core/session.d.cts +7 -7
  454. package/mysql-core/session.d.ts +7 -7
  455. package/mysql-core/session.js.map +1 -1
  456. package/mysql-core/table.cjs.map +1 -1
  457. package/mysql-core/table.d.cts +10 -13
  458. package/mysql-core/table.d.ts +10 -13
  459. package/mysql-core/table.js +3 -1
  460. package/mysql-core/table.js.map +1 -1
  461. package/mysql-core/utils.d.cts +1 -1
  462. package/mysql-core/utils.d.ts +1 -1
  463. package/mysql-core/view.cjs.map +1 -1
  464. package/mysql-core/view.d.cts +3 -4
  465. package/mysql-core/view.d.ts +3 -4
  466. package/mysql-core/view.js.map +1 -1
  467. package/mysql-proxy/driver.cjs +1 -1
  468. package/mysql-proxy/driver.cjs.map +1 -1
  469. package/mysql-proxy/driver.js +1 -1
  470. package/mysql-proxy/driver.js.map +1 -1
  471. package/mysql-proxy/session.cjs.map +1 -1
  472. package/mysql-proxy/session.d.cts +6 -6
  473. package/mysql-proxy/session.d.ts +6 -6
  474. package/mysql-proxy/session.js.map +1 -1
  475. package/mysql2/driver.cjs +1 -1
  476. package/mysql2/driver.cjs.map +1 -1
  477. package/mysql2/driver.d.cts +2 -2
  478. package/mysql2/driver.d.ts +2 -2
  479. package/mysql2/driver.js +1 -1
  480. package/mysql2/driver.js.map +1 -1
  481. package/mysql2/session.cjs.map +1 -1
  482. package/mysql2/session.d.cts +6 -6
  483. package/mysql2/session.d.ts +6 -6
  484. package/mysql2/session.js.map +1 -1
  485. package/neon/neon-auth.d.cts +18 -25
  486. package/neon/neon-auth.d.ts +18 -25
  487. package/neon-http/driver.cjs +1 -1
  488. package/neon-http/driver.cjs.map +1 -1
  489. package/neon-http/driver.d.cts +2 -2
  490. package/neon-http/driver.d.ts +2 -2
  491. package/neon-http/driver.js +1 -1
  492. package/neon-http/driver.js.map +1 -1
  493. package/neon-http/session.cjs.map +1 -1
  494. package/neon-http/session.d.cts +5 -5
  495. package/neon-http/session.d.ts +5 -5
  496. package/neon-http/session.js.map +1 -1
  497. package/neon-serverless/driver.cjs +1 -1
  498. package/neon-serverless/driver.cjs.map +1 -1
  499. package/neon-serverless/driver.d.cts +2 -2
  500. package/neon-serverless/driver.d.ts +2 -2
  501. package/neon-serverless/driver.js +1 -1
  502. package/neon-serverless/driver.js.map +1 -1
  503. package/neon-serverless/session.cjs.map +1 -1
  504. package/neon-serverless/session.d.cts +6 -6
  505. package/neon-serverless/session.d.ts +6 -6
  506. package/neon-serverless/session.js.map +1 -1
  507. package/node-postgres/driver.cjs +1 -1
  508. package/node-postgres/driver.cjs.map +1 -1
  509. package/node-postgres/driver.d.cts +2 -2
  510. package/node-postgres/driver.d.ts +2 -2
  511. package/node-postgres/driver.js +1 -1
  512. package/node-postgres/driver.js.map +1 -1
  513. package/node-postgres/session.cjs.map +1 -1
  514. package/node-postgres/session.d.cts +6 -6
  515. package/node-postgres/session.d.ts +6 -6
  516. package/node-postgres/session.js.map +1 -1
  517. package/op-sqlite/driver.cjs +1 -1
  518. package/op-sqlite/driver.cjs.map +1 -1
  519. package/op-sqlite/driver.js +1 -1
  520. package/op-sqlite/driver.js.map +1 -1
  521. package/op-sqlite/session.cjs.map +1 -1
  522. package/op-sqlite/session.d.cts +6 -6
  523. package/op-sqlite/session.d.ts +6 -6
  524. package/op-sqlite/session.js.map +1 -1
  525. package/operations.cjs.map +1 -1
  526. package/operations.d.cts +3 -3
  527. package/operations.d.ts +3 -3
  528. package/package.json +122 -155
  529. package/pg-core/columns/bigint.cjs +3 -6
  530. package/pg-core/columns/bigint.cjs.map +1 -1
  531. package/pg-core/columns/bigint.d.cts +14 -21
  532. package/pg-core/columns/bigint.d.ts +14 -21
  533. package/pg-core/columns/bigint.js +3 -6
  534. package/pg-core/columns/bigint.js.map +1 -1
  535. package/pg-core/columns/bigserial.cjs +2 -2
  536. package/pg-core/columns/bigserial.cjs.map +1 -1
  537. package/pg-core/columns/bigserial.d.cts +16 -19
  538. package/pg-core/columns/bigserial.d.ts +16 -19
  539. package/pg-core/columns/bigserial.js +2 -2
  540. package/pg-core/columns/bigserial.js.map +1 -1
  541. package/pg-core/columns/boolean.cjs.map +1 -1
  542. package/pg-core/columns/boolean.d.cts +6 -11
  543. package/pg-core/columns/boolean.d.ts +6 -11
  544. package/pg-core/columns/boolean.js.map +1 -1
  545. package/pg-core/columns/bytea.cjs +1 -1
  546. package/pg-core/columns/bytea.cjs.map +1 -1
  547. package/pg-core/columns/bytea.d.cts +7 -12
  548. package/pg-core/columns/bytea.d.ts +7 -12
  549. package/pg-core/columns/bytea.js +1 -1
  550. package/pg-core/columns/bytea.js.map +1 -1
  551. package/pg-core/columns/char.cjs +5 -4
  552. package/pg-core/columns/char.cjs.map +1 -1
  553. package/pg-core/columns/char.d.cts +18 -29
  554. package/pg-core/columns/char.d.ts +18 -29
  555. package/pg-core/columns/char.js +5 -4
  556. package/pg-core/columns/char.js.map +1 -1
  557. package/pg-core/columns/cidr.cjs +1 -1
  558. package/pg-core/columns/cidr.cjs.map +1 -1
  559. package/pg-core/columns/cidr.d.cts +7 -12
  560. package/pg-core/columns/cidr.d.ts +7 -12
  561. package/pg-core/columns/cidr.js +1 -1
  562. package/pg-core/columns/cidr.js.map +1 -1
  563. package/pg-core/columns/common.cjs +9 -9
  564. package/pg-core/columns/common.cjs.map +1 -1
  565. package/pg-core/columns/common.d.cts +24 -41
  566. package/pg-core/columns/common.d.ts +24 -41
  567. package/pg-core/columns/common.js +9 -9
  568. package/pg-core/columns/common.js.map +1 -1
  569. package/pg-core/columns/custom.cjs.map +1 -1
  570. package/pg-core/columns/custom.d.cts +11 -18
  571. package/pg-core/columns/custom.d.ts +11 -18
  572. package/pg-core/columns/custom.js.map +1 -1
  573. package/pg-core/columns/date.cjs +2 -2
  574. package/pg-core/columns/date.cjs.map +1 -1
  575. package/pg-core/columns/date.common.cjs.map +1 -1
  576. package/pg-core/columns/date.common.d.cts +2 -2
  577. package/pg-core/columns/date.common.d.ts +2 -2
  578. package/pg-core/columns/date.common.js.map +1 -1
  579. package/pg-core/columns/date.d.cts +14 -22
  580. package/pg-core/columns/date.d.ts +14 -22
  581. package/pg-core/columns/date.js +2 -2
  582. package/pg-core/columns/date.js.map +1 -1
  583. package/pg-core/columns/double-precision.cjs +1 -1
  584. package/pg-core/columns/double-precision.cjs.map +1 -1
  585. package/pg-core/columns/double-precision.d.cts +7 -12
  586. package/pg-core/columns/double-precision.d.ts +7 -12
  587. package/pg-core/columns/double-precision.js +1 -1
  588. package/pg-core/columns/double-precision.js.map +1 -1
  589. package/pg-core/columns/enum.cjs +2 -2
  590. package/pg-core/columns/enum.cjs.map +1 -1
  591. package/pg-core/columns/enum.d.cts +23 -40
  592. package/pg-core/columns/enum.d.ts +23 -40
  593. package/pg-core/columns/enum.js +2 -2
  594. package/pg-core/columns/enum.js.map +1 -1
  595. package/pg-core/columns/inet.cjs +1 -1
  596. package/pg-core/columns/inet.cjs.map +1 -1
  597. package/pg-core/columns/inet.d.cts +7 -12
  598. package/pg-core/columns/inet.d.ts +7 -12
  599. package/pg-core/columns/inet.js +1 -1
  600. package/pg-core/columns/inet.js.map +1 -1
  601. package/pg-core/columns/int.common.cjs.map +1 -1
  602. package/pg-core/columns/int.common.d.cts +2 -2
  603. package/pg-core/columns/int.common.d.ts +2 -2
  604. package/pg-core/columns/int.common.js.map +1 -1
  605. package/pg-core/columns/integer.cjs +1 -1
  606. package/pg-core/columns/integer.cjs.map +1 -1
  607. package/pg-core/columns/integer.d.cts +7 -12
  608. package/pg-core/columns/integer.d.ts +7 -12
  609. package/pg-core/columns/integer.js +1 -1
  610. package/pg-core/columns/integer.js.map +1 -1
  611. package/pg-core/columns/interval.cjs +1 -1
  612. package/pg-core/columns/interval.cjs.map +1 -1
  613. package/pg-core/columns/interval.d.cts +8 -13
  614. package/pg-core/columns/interval.d.ts +8 -13
  615. package/pg-core/columns/interval.js +1 -1
  616. package/pg-core/columns/interval.js.map +1 -1
  617. package/pg-core/columns/json.cjs +1 -1
  618. package/pg-core/columns/json.cjs.map +1 -1
  619. package/pg-core/columns/json.d.cts +9 -16
  620. package/pg-core/columns/json.d.ts +9 -16
  621. package/pg-core/columns/json.js +1 -1
  622. package/pg-core/columns/json.js.map +1 -1
  623. package/pg-core/columns/jsonb.cjs +1 -1
  624. package/pg-core/columns/jsonb.cjs.map +1 -1
  625. package/pg-core/columns/jsonb.d.cts +9 -16
  626. package/pg-core/columns/jsonb.d.ts +9 -16
  627. package/pg-core/columns/jsonb.js +1 -1
  628. package/pg-core/columns/jsonb.js.map +1 -1
  629. package/pg-core/columns/line.cjs +2 -2
  630. package/pg-core/columns/line.cjs.map +1 -1
  631. package/pg-core/columns/line.d.cts +14 -22
  632. package/pg-core/columns/line.d.ts +14 -22
  633. package/pg-core/columns/line.js +2 -2
  634. package/pg-core/columns/line.js.map +1 -1
  635. package/pg-core/columns/macaddr.cjs +1 -1
  636. package/pg-core/columns/macaddr.cjs.map +1 -1
  637. package/pg-core/columns/macaddr.d.cts +7 -12
  638. package/pg-core/columns/macaddr.d.ts +7 -12
  639. package/pg-core/columns/macaddr.js +1 -1
  640. package/pg-core/columns/macaddr.js.map +1 -1
  641. package/pg-core/columns/macaddr8.cjs +1 -1
  642. package/pg-core/columns/macaddr8.cjs.map +1 -1
  643. package/pg-core/columns/macaddr8.d.cts +7 -12
  644. package/pg-core/columns/macaddr8.d.ts +7 -12
  645. package/pg-core/columns/macaddr8.js +1 -1
  646. package/pg-core/columns/macaddr8.js.map +1 -1
  647. package/pg-core/columns/numeric.cjs +2 -2
  648. package/pg-core/columns/numeric.cjs.map +1 -1
  649. package/pg-core/columns/numeric.d.cts +23 -39
  650. package/pg-core/columns/numeric.d.ts +23 -39
  651. package/pg-core/columns/numeric.js +2 -2
  652. package/pg-core/columns/numeric.js.map +1 -1
  653. package/pg-core/columns/point.cjs +2 -2
  654. package/pg-core/columns/point.cjs.map +1 -1
  655. package/pg-core/columns/point.d.cts +12 -20
  656. package/pg-core/columns/point.d.ts +12 -20
  657. package/pg-core/columns/point.js +2 -2
  658. package/pg-core/columns/point.js.map +1 -1
  659. package/pg-core/columns/postgis_extension/geometry.cjs +2 -2
  660. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  661. package/pg-core/columns/postgis_extension/geometry.d.cts +14 -22
  662. package/pg-core/columns/postgis_extension/geometry.d.ts +14 -22
  663. package/pg-core/columns/postgis_extension/geometry.js +2 -2
  664. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  665. package/pg-core/columns/real.cjs +1 -1
  666. package/pg-core/columns/real.cjs.map +1 -1
  667. package/pg-core/columns/real.d.cts +9 -16
  668. package/pg-core/columns/real.d.ts +9 -16
  669. package/pg-core/columns/real.js +1 -1
  670. package/pg-core/columns/real.js.map +1 -1
  671. package/pg-core/columns/serial.cjs +1 -1
  672. package/pg-core/columns/serial.cjs.map +1 -1
  673. package/pg-core/columns/serial.d.cts +9 -12
  674. package/pg-core/columns/serial.d.ts +9 -12
  675. package/pg-core/columns/serial.js +1 -1
  676. package/pg-core/columns/serial.js.map +1 -1
  677. package/pg-core/columns/smallint.cjs +1 -1
  678. package/pg-core/columns/smallint.cjs.map +1 -1
  679. package/pg-core/columns/smallint.d.cts +7 -12
  680. package/pg-core/columns/smallint.d.ts +7 -12
  681. package/pg-core/columns/smallint.js +1 -1
  682. package/pg-core/columns/smallint.js.map +1 -1
  683. package/pg-core/columns/smallserial.cjs +1 -1
  684. package/pg-core/columns/smallserial.cjs.map +1 -1
  685. package/pg-core/columns/smallserial.d.cts +9 -12
  686. package/pg-core/columns/smallserial.d.ts +9 -12
  687. package/pg-core/columns/smallserial.js +1 -1
  688. package/pg-core/columns/smallserial.js.map +1 -1
  689. package/pg-core/columns/text.cjs +7 -3
  690. package/pg-core/columns/text.cjs.map +1 -1
  691. package/pg-core/columns/text.d.cts +14 -18
  692. package/pg-core/columns/text.d.ts +14 -18
  693. package/pg-core/columns/text.js +7 -3
  694. package/pg-core/columns/text.js.map +1 -1
  695. package/pg-core/columns/time.cjs +1 -1
  696. package/pg-core/columns/time.cjs.map +1 -1
  697. package/pg-core/columns/time.d.cts +10 -17
  698. package/pg-core/columns/time.d.ts +10 -17
  699. package/pg-core/columns/time.js +1 -1
  700. package/pg-core/columns/time.js.map +1 -1
  701. package/pg-core/columns/timestamp.cjs +2 -2
  702. package/pg-core/columns/timestamp.cjs.map +1 -1
  703. package/pg-core/columns/timestamp.d.cts +17 -29
  704. package/pg-core/columns/timestamp.d.ts +17 -29
  705. package/pg-core/columns/timestamp.js +2 -2
  706. package/pg-core/columns/timestamp.js.map +1 -1
  707. package/pg-core/columns/uuid.cjs +1 -1
  708. package/pg-core/columns/uuid.cjs.map +1 -1
  709. package/pg-core/columns/uuid.d.cts +7 -12
  710. package/pg-core/columns/uuid.d.ts +7 -12
  711. package/pg-core/columns/uuid.js +1 -1
  712. package/pg-core/columns/uuid.js.map +1 -1
  713. package/pg-core/columns/varchar.cjs +1 -2
  714. package/pg-core/columns/varchar.cjs.map +1 -1
  715. package/pg-core/columns/varchar.d.cts +14 -27
  716. package/pg-core/columns/varchar.d.ts +14 -27
  717. package/pg-core/columns/varchar.js +1 -2
  718. package/pg-core/columns/varchar.js.map +1 -1
  719. package/pg-core/columns/vector_extension/bit.cjs +4 -4
  720. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  721. package/pg-core/columns/vector_extension/bit.d.cts +12 -25
  722. package/pg-core/columns/vector_extension/bit.d.ts +12 -25
  723. package/pg-core/columns/vector_extension/bit.js +4 -4
  724. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  725. package/pg-core/columns/vector_extension/halfvec.cjs +4 -4
  726. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  727. package/pg-core/columns/vector_extension/halfvec.d.cts +11 -26
  728. package/pg-core/columns/vector_extension/halfvec.d.ts +11 -26
  729. package/pg-core/columns/vector_extension/halfvec.js +4 -4
  730. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  731. package/pg-core/columns/vector_extension/sparsevec.cjs +1 -1
  732. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  733. package/pg-core/columns/vector_extension/sparsevec.d.cts +7 -11
  734. package/pg-core/columns/vector_extension/sparsevec.d.ts +7 -11
  735. package/pg-core/columns/vector_extension/sparsevec.js +1 -1
  736. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  737. package/pg-core/columns/vector_extension/vector.cjs +4 -4
  738. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  739. package/pg-core/columns/vector_extension/vector.d.cts +11 -26
  740. package/pg-core/columns/vector_extension/vector.d.ts +11 -26
  741. package/pg-core/columns/vector_extension/vector.js +4 -4
  742. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  743. package/pg-core/db.cjs +10 -15
  744. package/pg-core/db.cjs.map +1 -1
  745. package/pg-core/db.d.cts +8 -8
  746. package/pg-core/db.d.ts +8 -8
  747. package/pg-core/db.js +10 -15
  748. package/pg-core/db.js.map +1 -1
  749. package/pg-core/dialect.cjs +13 -13
  750. package/pg-core/dialect.cjs.map +1 -1
  751. package/pg-core/dialect.d.cts +1 -3
  752. package/pg-core/dialect.d.ts +1 -3
  753. package/pg-core/dialect.js +14 -14
  754. package/pg-core/dialect.js.map +1 -1
  755. package/pg-core/query-builders/delete.cjs.map +1 -1
  756. package/pg-core/query-builders/delete.js.map +1 -1
  757. package/pg-core/query-builders/insert.cjs +1 -1
  758. package/pg-core/query-builders/insert.cjs.map +1 -1
  759. package/pg-core/query-builders/insert.d.cts +2 -2
  760. package/pg-core/query-builders/insert.d.ts +2 -2
  761. package/pg-core/query-builders/insert.js +2 -2
  762. package/pg-core/query-builders/insert.js.map +1 -1
  763. package/pg-core/query-builders/query.cjs +2 -12
  764. package/pg-core/query-builders/query.cjs.map +1 -1
  765. package/pg-core/query-builders/query.d.cts +2 -6
  766. package/pg-core/query-builders/query.d.ts +2 -6
  767. package/pg-core/query-builders/query.js +2 -12
  768. package/pg-core/query-builders/query.js.map +1 -1
  769. package/pg-core/query-builders/select.types.cjs.map +1 -1
  770. package/pg-core/query-builders/select.types.d.cts +1 -1
  771. package/pg-core/query-builders/select.types.d.ts +1 -1
  772. package/pg-core/query-builders/update.cjs.map +1 -1
  773. package/pg-core/query-builders/update.d.cts +3 -3
  774. package/pg-core/query-builders/update.d.ts +3 -3
  775. package/pg-core/query-builders/update.js.map +1 -1
  776. package/pg-core/session.cjs.map +1 -1
  777. package/pg-core/session.d.cts +7 -7
  778. package/pg-core/session.d.ts +7 -7
  779. package/pg-core/session.js.map +1 -1
  780. package/pg-core/table.cjs.map +1 -1
  781. package/pg-core/table.d.cts +9 -11
  782. package/pg-core/table.d.ts +9 -11
  783. package/pg-core/table.js +3 -1
  784. package/pg-core/table.js.map +1 -1
  785. package/pg-core/utils.cjs +3 -1
  786. package/pg-core/utils.cjs.map +1 -1
  787. package/pg-core/utils.d.cts +1 -1
  788. package/pg-core/utils.d.ts +1 -1
  789. package/pg-core/utils.js +4 -2
  790. package/pg-core/utils.js.map +1 -1
  791. package/pg-core/view.cjs.map +1 -1
  792. package/pg-core/view.d.cts +5 -6
  793. package/pg-core/view.d.ts +5 -6
  794. package/pg-core/view.js.map +1 -1
  795. package/pg-proxy/driver.cjs +1 -1
  796. package/pg-proxy/driver.cjs.map +1 -1
  797. package/pg-proxy/driver.js +1 -1
  798. package/pg-proxy/driver.js.map +1 -1
  799. package/pg-proxy/session.cjs.map +1 -1
  800. package/pg-proxy/session.d.cts +6 -6
  801. package/pg-proxy/session.d.ts +6 -6
  802. package/pg-proxy/session.js.map +1 -1
  803. package/pglite/driver.cjs +1 -1
  804. package/pglite/driver.cjs.map +1 -1
  805. package/pglite/driver.d.cts +2 -2
  806. package/pglite/driver.d.ts +2 -2
  807. package/pglite/driver.js +1 -1
  808. package/pglite/driver.js.map +1 -1
  809. package/pglite/session.cjs.map +1 -1
  810. package/pglite/session.d.cts +6 -6
  811. package/pglite/session.d.ts +6 -6
  812. package/pglite/session.js.map +1 -1
  813. package/planetscale-serverless/driver.cjs +1 -1
  814. package/planetscale-serverless/driver.cjs.map +1 -1
  815. package/planetscale-serverless/driver.js +1 -1
  816. package/planetscale-serverless/driver.js.map +1 -1
  817. package/planetscale-serverless/session.cjs.map +1 -1
  818. package/planetscale-serverless/session.d.cts +7 -7
  819. package/planetscale-serverless/session.d.ts +7 -7
  820. package/planetscale-serverless/session.js.map +1 -1
  821. package/postgres-js/driver.cjs +1 -1
  822. package/postgres-js/driver.cjs.map +1 -1
  823. package/postgres-js/driver.d.cts +1 -1
  824. package/postgres-js/driver.d.ts +1 -1
  825. package/postgres-js/driver.js +1 -1
  826. package/postgres-js/driver.js.map +1 -1
  827. package/postgres-js/session.cjs.map +1 -1
  828. package/postgres-js/session.d.cts +7 -7
  829. package/postgres-js/session.d.ts +7 -7
  830. package/postgres-js/session.js.map +1 -1
  831. package/prisma/mysql/driver.cjs +7 -1
  832. package/prisma/mysql/driver.cjs.map +1 -1
  833. package/prisma/mysql/driver.js +7 -1
  834. package/prisma/mysql/driver.js.map +1 -1
  835. package/prisma/mysql/session.cjs.map +1 -1
  836. package/prisma/mysql/session.d.cts +2 -2
  837. package/prisma/mysql/session.d.ts +2 -2
  838. package/prisma/mysql/session.js.map +1 -1
  839. package/prisma/pg/driver.cjs +1 -1
  840. package/prisma/pg/driver.cjs.map +1 -1
  841. package/prisma/pg/driver.js +1 -1
  842. package/prisma/pg/driver.js.map +1 -1
  843. package/prisma/pg/session.cjs.map +1 -1
  844. package/prisma/pg/session.d.cts +2 -2
  845. package/prisma/pg/session.d.ts +2 -2
  846. package/prisma/pg/session.js.map +1 -1
  847. package/prisma/sqlite/driver.cjs +7 -1
  848. package/prisma/sqlite/driver.cjs.map +1 -1
  849. package/prisma/sqlite/driver.js +7 -1
  850. package/prisma/sqlite/driver.js.map +1 -1
  851. package/prisma/sqlite/session.cjs.map +1 -1
  852. package/prisma/sqlite/session.d.cts +3 -3
  853. package/prisma/sqlite/session.d.ts +3 -3
  854. package/prisma/sqlite/session.js.map +1 -1
  855. package/query-builders/select.types.cjs.map +1 -1
  856. package/query-builders/select.types.d.cts +2 -2
  857. package/query-builders/select.types.d.ts +2 -2
  858. package/relations.cjs +174 -163
  859. package/relations.cjs.map +1 -1
  860. package/relations.d.cts +170 -190
  861. package/relations.d.ts +170 -190
  862. package/relations.js +170 -163
  863. package/relations.js.map +1 -1
  864. package/singlestore-core/columns/bigint.cjs +2 -2
  865. package/singlestore-core/columns/bigint.cjs.map +1 -1
  866. package/singlestore-core/columns/bigint.d.cts +17 -24
  867. package/singlestore-core/columns/bigint.d.ts +17 -24
  868. package/singlestore-core/columns/bigint.js +2 -2
  869. package/singlestore-core/columns/bigint.js.map +1 -1
  870. package/singlestore-core/columns/binary.cjs +5 -4
  871. package/singlestore-core/columns/binary.cjs.map +1 -1
  872. package/singlestore-core/columns/binary.d.cts +13 -15
  873. package/singlestore-core/columns/binary.d.ts +13 -15
  874. package/singlestore-core/columns/binary.js +5 -4
  875. package/singlestore-core/columns/binary.js.map +1 -1
  876. package/singlestore-core/columns/boolean.cjs.map +1 -1
  877. package/singlestore-core/columns/boolean.d.cts +6 -12
  878. package/singlestore-core/columns/boolean.d.ts +6 -12
  879. package/singlestore-core/columns/boolean.js.map +1 -1
  880. package/singlestore-core/columns/char.cjs +5 -4
  881. package/singlestore-core/columns/char.cjs.map +1 -1
  882. package/singlestore-core/columns/char.d.cts +18 -24
  883. package/singlestore-core/columns/char.d.ts +18 -24
  884. package/singlestore-core/columns/char.js +5 -4
  885. package/singlestore-core/columns/char.js.map +1 -1
  886. package/singlestore-core/columns/common.cjs +3 -2
  887. package/singlestore-core/columns/common.cjs.map +1 -1
  888. package/singlestore-core/columns/common.d.cts +14 -18
  889. package/singlestore-core/columns/common.d.ts +14 -18
  890. package/singlestore-core/columns/common.js +3 -2
  891. package/singlestore-core/columns/common.js.map +1 -1
  892. package/singlestore-core/columns/custom.cjs.map +1 -1
  893. package/singlestore-core/columns/custom.d.cts +10 -15
  894. package/singlestore-core/columns/custom.d.ts +10 -15
  895. package/singlestore-core/columns/custom.js.map +1 -1
  896. package/singlestore-core/columns/date.cjs +2 -2
  897. package/singlestore-core/columns/date.cjs.map +1 -1
  898. package/singlestore-core/columns/date.common.cjs.map +1 -1
  899. package/singlestore-core/columns/date.common.d.cts +3 -3
  900. package/singlestore-core/columns/date.common.d.ts +3 -3
  901. package/singlestore-core/columns/date.common.js.map +1 -1
  902. package/singlestore-core/columns/date.d.cts +16 -26
  903. package/singlestore-core/columns/date.d.ts +16 -26
  904. package/singlestore-core/columns/date.js +2 -2
  905. package/singlestore-core/columns/date.js.map +1 -1
  906. package/singlestore-core/columns/datetime.cjs +3 -5
  907. package/singlestore-core/columns/datetime.cjs.map +1 -1
  908. package/singlestore-core/columns/datetime.d.cts +25 -27
  909. package/singlestore-core/columns/datetime.d.ts +25 -27
  910. package/singlestore-core/columns/datetime.js +3 -5
  911. package/singlestore-core/columns/datetime.js.map +1 -1
  912. package/singlestore-core/columns/decimal.cjs +3 -3
  913. package/singlestore-core/columns/decimal.cjs.map +1 -1
  914. package/singlestore-core/columns/decimal.d.cts +22 -36
  915. package/singlestore-core/columns/decimal.d.ts +22 -36
  916. package/singlestore-core/columns/decimal.js +3 -3
  917. package/singlestore-core/columns/decimal.js.map +1 -1
  918. package/singlestore-core/columns/double.cjs +1 -1
  919. package/singlestore-core/columns/double.cjs.map +1 -1
  920. package/singlestore-core/columns/double.d.cts +11 -16
  921. package/singlestore-core/columns/double.d.ts +11 -16
  922. package/singlestore-core/columns/double.js +1 -1
  923. package/singlestore-core/columns/double.js.map +1 -1
  924. package/singlestore-core/columns/enum.cjs +1 -1
  925. package/singlestore-core/columns/enum.cjs.map +1 -1
  926. package/singlestore-core/columns/enum.d.cts +14 -15
  927. package/singlestore-core/columns/enum.d.ts +14 -15
  928. package/singlestore-core/columns/enum.js +1 -1
  929. package/singlestore-core/columns/enum.js.map +1 -1
  930. package/singlestore-core/columns/float.cjs +1 -1
  931. package/singlestore-core/columns/float.cjs.map +1 -1
  932. package/singlestore-core/columns/float.d.cts +11 -16
  933. package/singlestore-core/columns/float.d.ts +11 -16
  934. package/singlestore-core/columns/float.js +1 -1
  935. package/singlestore-core/columns/float.js.map +1 -1
  936. package/singlestore-core/columns/int.cjs +1 -1
  937. package/singlestore-core/columns/int.cjs.map +1 -1
  938. package/singlestore-core/columns/int.d.cts +11 -16
  939. package/singlestore-core/columns/int.d.ts +11 -16
  940. package/singlestore-core/columns/int.js +1 -1
  941. package/singlestore-core/columns/int.js.map +1 -1
  942. package/singlestore-core/columns/json.cjs +1 -1
  943. package/singlestore-core/columns/json.cjs.map +1 -1
  944. package/singlestore-core/columns/json.d.cts +7 -13
  945. package/singlestore-core/columns/json.d.ts +7 -13
  946. package/singlestore-core/columns/json.js +1 -1
  947. package/singlestore-core/columns/json.js.map +1 -1
  948. package/singlestore-core/columns/mediumint.cjs +1 -1
  949. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  950. package/singlestore-core/columns/mediumint.d.cts +9 -14
  951. package/singlestore-core/columns/mediumint.d.ts +9 -14
  952. package/singlestore-core/columns/mediumint.js +1 -1
  953. package/singlestore-core/columns/mediumint.js.map +1 -1
  954. package/singlestore-core/columns/real.cjs +1 -1
  955. package/singlestore-core/columns/real.cjs.map +1 -1
  956. package/singlestore-core/columns/real.d.cts +8 -14
  957. package/singlestore-core/columns/real.d.ts +8 -14
  958. package/singlestore-core/columns/real.js +1 -1
  959. package/singlestore-core/columns/real.js.map +1 -1
  960. package/singlestore-core/columns/serial.cjs +1 -1
  961. package/singlestore-core/columns/serial.cjs.map +1 -1
  962. package/singlestore-core/columns/serial.d.cts +11 -13
  963. package/singlestore-core/columns/serial.d.ts +11 -13
  964. package/singlestore-core/columns/serial.js +1 -1
  965. package/singlestore-core/columns/serial.js.map +1 -1
  966. package/singlestore-core/columns/smallint.cjs +1 -1
  967. package/singlestore-core/columns/smallint.cjs.map +1 -1
  968. package/singlestore-core/columns/smallint.d.cts +9 -14
  969. package/singlestore-core/columns/smallint.d.ts +9 -14
  970. package/singlestore-core/columns/smallint.js +1 -1
  971. package/singlestore-core/columns/smallint.js.map +1 -1
  972. package/singlestore-core/columns/text.cjs +19 -1
  973. package/singlestore-core/columns/text.cjs.map +1 -1
  974. package/singlestore-core/columns/text.d.cts +17 -24
  975. package/singlestore-core/columns/text.d.ts +17 -24
  976. package/singlestore-core/columns/text.js +19 -1
  977. package/singlestore-core/columns/text.js.map +1 -1
  978. package/singlestore-core/columns/time.cjs +1 -1
  979. package/singlestore-core/columns/time.cjs.map +1 -1
  980. package/singlestore-core/columns/time.d.cts +7 -13
  981. package/singlestore-core/columns/time.d.ts +7 -13
  982. package/singlestore-core/columns/time.js +1 -1
  983. package/singlestore-core/columns/time.js.map +1 -1
  984. package/singlestore-core/columns/timestamp.cjs +2 -2
  985. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  986. package/singlestore-core/columns/timestamp.d.cts +14 -24
  987. package/singlestore-core/columns/timestamp.d.ts +14 -24
  988. package/singlestore-core/columns/timestamp.js +2 -2
  989. package/singlestore-core/columns/timestamp.js.map +1 -1
  990. package/singlestore-core/columns/tinyint.cjs +1 -1
  991. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  992. package/singlestore-core/columns/tinyint.d.cts +9 -14
  993. package/singlestore-core/columns/tinyint.d.ts +9 -14
  994. package/singlestore-core/columns/tinyint.js +1 -1
  995. package/singlestore-core/columns/tinyint.js.map +1 -1
  996. package/singlestore-core/columns/varbinary.cjs +2 -3
  997. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  998. package/singlestore-core/columns/varbinary.d.cts +7 -13
  999. package/singlestore-core/columns/varbinary.d.ts +7 -13
  1000. package/singlestore-core/columns/varbinary.js +2 -3
  1001. package/singlestore-core/columns/varbinary.js.map +1 -1
  1002. package/singlestore-core/columns/varchar.cjs +1 -2
  1003. package/singlestore-core/columns/varchar.cjs.map +1 -1
  1004. package/singlestore-core/columns/varchar.d.cts +12 -24
  1005. package/singlestore-core/columns/varchar.d.ts +12 -24
  1006. package/singlestore-core/columns/varchar.js +1 -2
  1007. package/singlestore-core/columns/varchar.js.map +1 -1
  1008. package/singlestore-core/columns/vector.cjs +5 -5
  1009. package/singlestore-core/columns/vector.cjs.map +1 -1
  1010. package/singlestore-core/columns/vector.d.cts +17 -14
  1011. package/singlestore-core/columns/vector.d.ts +17 -14
  1012. package/singlestore-core/columns/vector.js +5 -5
  1013. package/singlestore-core/columns/vector.js.map +1 -1
  1014. package/singlestore-core/columns/year.cjs +1 -1
  1015. package/singlestore-core/columns/year.cjs.map +1 -1
  1016. package/singlestore-core/columns/year.d.cts +7 -13
  1017. package/singlestore-core/columns/year.d.ts +7 -13
  1018. package/singlestore-core/columns/year.js +1 -1
  1019. package/singlestore-core/columns/year.js.map +1 -1
  1020. package/singlestore-core/dialect.cjs +2 -2
  1021. package/singlestore-core/dialect.cjs.map +1 -1
  1022. package/singlestore-core/dialect.js +2 -2
  1023. package/singlestore-core/dialect.js.map +1 -1
  1024. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  1025. package/singlestore-core/query-builders/insert.d.cts +3 -3
  1026. package/singlestore-core/query-builders/insert.d.ts +3 -3
  1027. package/singlestore-core/query-builders/insert.js.map +1 -1
  1028. package/singlestore-core/query-builders/select.types.cjs.map +1 -1
  1029. package/singlestore-core/query-builders/select.types.d.cts +1 -1
  1030. package/singlestore-core/query-builders/select.types.d.ts +1 -1
  1031. package/singlestore-core/query-builders/update.cjs.map +1 -1
  1032. package/singlestore-core/query-builders/update.d.cts +3 -2
  1033. package/singlestore-core/query-builders/update.d.ts +3 -2
  1034. package/singlestore-core/query-builders/update.js.map +1 -1
  1035. package/singlestore-core/table.cjs.map +1 -1
  1036. package/singlestore-core/table.d.cts +10 -13
  1037. package/singlestore-core/table.d.ts +10 -13
  1038. package/singlestore-core/table.js +3 -1
  1039. package/singlestore-core/table.js.map +1 -1
  1040. package/singlestore-core/utils.d.cts +1 -1
  1041. package/singlestore-core/utils.d.ts +1 -1
  1042. package/singlestore-core/view.cjs.map +1 -1
  1043. package/singlestore-core/view.d.cts +2 -3
  1044. package/singlestore-core/view.d.ts +2 -3
  1045. package/singlestore-core/view.js.map +1 -1
  1046. package/sql/sql.cjs +2 -2
  1047. package/sql/sql.cjs.map +1 -1
  1048. package/sql/sql.js +3 -3
  1049. package/sql/sql.js.map +1 -1
  1050. package/sql-js/driver.cjs +1 -1
  1051. package/sql-js/driver.cjs.map +1 -1
  1052. package/sql-js/driver.js +1 -1
  1053. package/sql-js/driver.js.map +1 -1
  1054. package/sql-js/session.cjs.map +1 -1
  1055. package/sql-js/session.d.cts +6 -6
  1056. package/sql-js/session.d.ts +6 -6
  1057. package/sql-js/session.js.map +1 -1
  1058. package/sqlite-core/columns/blob.cjs +3 -3
  1059. package/sqlite-core/columns/blob.cjs.map +1 -1
  1060. package/sqlite-core/columns/blob.d.cts +20 -31
  1061. package/sqlite-core/columns/blob.d.ts +20 -31
  1062. package/sqlite-core/columns/blob.js +3 -3
  1063. package/sqlite-core/columns/blob.js.map +1 -1
  1064. package/sqlite-core/columns/common.cjs +3 -1
  1065. package/sqlite-core/columns/common.cjs.map +1 -1
  1066. package/sqlite-core/columns/common.d.cts +6 -14
  1067. package/sqlite-core/columns/common.d.ts +6 -14
  1068. package/sqlite-core/columns/common.js +3 -1
  1069. package/sqlite-core/columns/common.js.map +1 -1
  1070. package/sqlite-core/columns/custom.cjs.map +1 -1
  1071. package/sqlite-core/columns/custom.d.cts +10 -14
  1072. package/sqlite-core/columns/custom.d.ts +10 -14
  1073. package/sqlite-core/columns/custom.js.map +1 -1
  1074. package/sqlite-core/columns/integer.cjs +2 -2
  1075. package/sqlite-core/columns/integer.cjs.map +1 -1
  1076. package/sqlite-core/columns/integer.d.cts +28 -44
  1077. package/sqlite-core/columns/integer.d.ts +28 -44
  1078. package/sqlite-core/columns/integer.js +2 -2
  1079. package/sqlite-core/columns/integer.js.map +1 -1
  1080. package/sqlite-core/columns/numeric.cjs +2 -2
  1081. package/sqlite-core/columns/numeric.cjs.map +1 -1
  1082. package/sqlite-core/columns/numeric.d.cts +19 -29
  1083. package/sqlite-core/columns/numeric.d.ts +19 -29
  1084. package/sqlite-core/columns/numeric.js +2 -2
  1085. package/sqlite-core/columns/numeric.js.map +1 -1
  1086. package/sqlite-core/columns/real.cjs +1 -1
  1087. package/sqlite-core/columns/real.cjs.map +1 -1
  1088. package/sqlite-core/columns/real.d.cts +7 -12
  1089. package/sqlite-core/columns/real.d.ts +7 -12
  1090. package/sqlite-core/columns/real.js +1 -1
  1091. package/sqlite-core/columns/real.js.map +1 -1
  1092. package/sqlite-core/columns/text.cjs +2 -3
  1093. package/sqlite-core/columns/text.cjs.map +1 -1
  1094. package/sqlite-core/columns/text.d.cts +20 -35
  1095. package/sqlite-core/columns/text.d.ts +20 -35
  1096. package/sqlite-core/columns/text.js +2 -3
  1097. package/sqlite-core/columns/text.js.map +1 -1
  1098. package/sqlite-core/db.cjs +13 -18
  1099. package/sqlite-core/db.cjs.map +1 -1
  1100. package/sqlite-core/db.d.cts +7 -7
  1101. package/sqlite-core/db.d.ts +7 -7
  1102. package/sqlite-core/db.js +13 -18
  1103. package/sqlite-core/db.js.map +1 -1
  1104. package/sqlite-core/dialect.cjs +8 -12
  1105. package/sqlite-core/dialect.cjs.map +1 -1
  1106. package/sqlite-core/dialect.d.cts +3 -5
  1107. package/sqlite-core/dialect.d.ts +3 -5
  1108. package/sqlite-core/dialect.js +9 -13
  1109. package/sqlite-core/dialect.js.map +1 -1
  1110. package/sqlite-core/query-builders/_query.cjs.map +1 -1
  1111. package/sqlite-core/query-builders/_query.d.cts +3 -3
  1112. package/sqlite-core/query-builders/_query.d.ts +3 -3
  1113. package/sqlite-core/query-builders/_query.js.map +1 -1
  1114. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  1115. package/sqlite-core/query-builders/delete.d.cts +1 -1
  1116. package/sqlite-core/query-builders/delete.d.ts +1 -1
  1117. package/sqlite-core/query-builders/delete.js.map +1 -1
  1118. package/sqlite-core/query-builders/insert.cjs +1 -1
  1119. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  1120. package/sqlite-core/query-builders/insert.d.cts +8 -7
  1121. package/sqlite-core/query-builders/insert.d.ts +8 -7
  1122. package/sqlite-core/query-builders/insert.js +2 -2
  1123. package/sqlite-core/query-builders/insert.js.map +1 -1
  1124. package/sqlite-core/query-builders/query.cjs +2 -18
  1125. package/sqlite-core/query-builders/query.cjs.map +1 -1
  1126. package/sqlite-core/query-builders/query.d.cts +2 -6
  1127. package/sqlite-core/query-builders/query.d.ts +2 -6
  1128. package/sqlite-core/query-builders/query.js +2 -18
  1129. package/sqlite-core/query-builders/query.js.map +1 -1
  1130. package/sqlite-core/query-builders/select.cjs.map +1 -1
  1131. package/sqlite-core/query-builders/select.d.cts +3 -3
  1132. package/sqlite-core/query-builders/select.d.ts +3 -3
  1133. package/sqlite-core/query-builders/select.js.map +1 -1
  1134. package/sqlite-core/query-builders/select.types.cjs.map +1 -1
  1135. package/sqlite-core/query-builders/select.types.d.cts +1 -1
  1136. package/sqlite-core/query-builders/select.types.d.ts +1 -1
  1137. package/sqlite-core/query-builders/update.cjs.map +1 -1
  1138. package/sqlite-core/query-builders/update.d.cts +6 -5
  1139. package/sqlite-core/query-builders/update.d.ts +6 -5
  1140. package/sqlite-core/query-builders/update.js.map +1 -1
  1141. package/sqlite-core/session.cjs.map +1 -1
  1142. package/sqlite-core/session.d.cts +6 -6
  1143. package/sqlite-core/session.d.ts +6 -6
  1144. package/sqlite-core/session.js.map +1 -1
  1145. package/sqlite-core/table.cjs.map +1 -1
  1146. package/sqlite-core/table.d.cts +9 -11
  1147. package/sqlite-core/table.d.ts +9 -11
  1148. package/sqlite-core/table.js +3 -1
  1149. package/sqlite-core/table.js.map +1 -1
  1150. package/sqlite-core/utils.d.cts +1 -1
  1151. package/sqlite-core/utils.d.ts +1 -1
  1152. package/sqlite-core/view.cjs.map +1 -1
  1153. package/sqlite-core/view.d.cts +3 -4
  1154. package/sqlite-core/view.d.ts +3 -4
  1155. package/sqlite-core/view.js.map +1 -1
  1156. package/sqlite-proxy/driver.cjs +1 -1
  1157. package/sqlite-proxy/driver.cjs.map +1 -1
  1158. package/sqlite-proxy/driver.js +1 -1
  1159. package/sqlite-proxy/driver.js.map +1 -1
  1160. package/sqlite-proxy/session.cjs.map +1 -1
  1161. package/sqlite-proxy/session.d.cts +6 -6
  1162. package/sqlite-proxy/session.d.ts +6 -6
  1163. package/sqlite-proxy/session.js.map +1 -1
  1164. package/supabase/rls.d.cts +30 -43
  1165. package/supabase/rls.d.ts +30 -43
  1166. package/table.cjs +13 -12
  1167. package/table.cjs.map +1 -1
  1168. package/table.d.cts +26 -35
  1169. package/table.d.ts +26 -35
  1170. package/table.js +11 -10
  1171. package/table.js.map +1 -1
  1172. package/tidb-serverless/driver.cjs +1 -1
  1173. package/tidb-serverless/driver.cjs.map +1 -1
  1174. package/tidb-serverless/driver.js +1 -1
  1175. package/tidb-serverless/driver.js.map +1 -1
  1176. package/tidb-serverless/session.cjs.map +1 -1
  1177. package/tidb-serverless/session.d.cts +7 -7
  1178. package/tidb-serverless/session.d.ts +7 -7
  1179. package/tidb-serverless/session.js.map +1 -1
  1180. package/utils.cjs +5 -0
  1181. package/utils.cjs.map +1 -1
  1182. package/utils.d.cts +2 -2
  1183. package/utils.d.ts +2 -2
  1184. package/utils.js +5 -0
  1185. package/utils.js.map +1 -1
  1186. package/vercel-postgres/driver.cjs +1 -1
  1187. package/vercel-postgres/driver.cjs.map +1 -1
  1188. package/vercel-postgres/driver.d.cts +2 -2
  1189. package/vercel-postgres/driver.d.ts +2 -2
  1190. package/vercel-postgres/driver.js +1 -1
  1191. package/vercel-postgres/driver.js.map +1 -1
  1192. package/vercel-postgres/session.cjs.map +1 -1
  1193. package/vercel-postgres/session.d.cts +6 -6
  1194. package/vercel-postgres/session.d.ts +6 -6
  1195. package/vercel-postgres/session.js.map +1 -1
  1196. package/version.cjs +1 -1
  1197. package/version.d.cts +1 -1
  1198. package/version.d.ts +1 -1
  1199. package/version.js +1 -1
  1200. package/xata-http/driver.cjs +1 -1
  1201. package/xata-http/driver.cjs.map +1 -1
  1202. package/xata-http/driver.d.cts +2 -2
  1203. package/xata-http/driver.d.ts +2 -2
  1204. package/xata-http/driver.js +1 -1
  1205. package/xata-http/driver.js.map +1 -1
  1206. package/xata-http/session.cjs.map +1 -1
  1207. package/xata-http/session.d.cts +6 -6
  1208. package/xata-http/session.d.ts +6 -6
  1209. package/xata-http/session.js.map +1 -1
  1210. package/knex/index.cjs +0 -2
  1211. package/knex/index.cjs.map +0 -1
  1212. package/knex/index.d.cts +0 -9
  1213. package/knex/index.d.ts +0 -9
  1214. package/knex/index.js +0 -1
  1215. package/knex/index.js.map +0 -1
  1216. package/kysely/index.cjs +0 -17
  1217. package/kysely/index.cjs.map +0 -1
  1218. package/kysely/index.d.cts +0 -16
  1219. package/kysely/index.d.ts +0 -16
  1220. package/kysely/index.js +0 -1
  1221. package/kysely/index.js.map +0 -1
@@ -10,7 +10,7 @@ import { QueryPromise } from "../../query-promise.cjs";
10
10
  import type { RunnableQuery } from "../../runnable-query.cjs";
11
11
  import { type ColumnsSelection, type Query, SQL, type SQLWrapper } from "../../sql/sql.cjs";
12
12
  import { Subquery } from "../../subquery.cjs";
13
- import { Table } from "../../table.cjs";
13
+ import { type InferInsertModel, Table } from "../../table.cjs";
14
14
  import { type Assume, type DrizzleTypeError, type Equal, type NeonAuthToken, type Simplify, type UpdateSet } from "../../utils.cjs";
15
15
  import type { PgColumn } from "../columns/common.cjs";
16
16
  import type { PgViewBase } from "../view-base.cjs";
@@ -25,8 +25,8 @@ export interface PgUpdateConfig {
25
25
  returning?: SelectedFieldsOrdered;
26
26
  withList?: Subquery[];
27
27
  }
28
- export type PgUpdateSetSource<TTable extends PgTable> = {
29
- [Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key]> | SQL | PgColumn | undefined;
28
+ export type PgUpdateSetSource<TTable extends PgTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = {
29
+ [Key in keyof TModel & string]?: GetColumnData<TTable['_']['columns'][Key]> | SQL | PgColumn | undefined;
30
30
  } & {};
31
31
  export declare class PgUpdateBuilder<TTable extends PgTable, TQueryResult extends PgQueryResultHKT> {
32
32
  private table;
@@ -10,7 +10,7 @@ import { QueryPromise } from "../../query-promise.js";
10
10
  import type { RunnableQuery } from "../../runnable-query.js";
11
11
  import { type ColumnsSelection, type Query, SQL, type SQLWrapper } from "../../sql/sql.js";
12
12
  import { Subquery } from "../../subquery.js";
13
- import { Table } from "../../table.js";
13
+ import { type InferInsertModel, Table } from "../../table.js";
14
14
  import { type Assume, type DrizzleTypeError, type Equal, type NeonAuthToken, type Simplify, type UpdateSet } from "../../utils.js";
15
15
  import type { PgColumn } from "../columns/common.js";
16
16
  import type { PgViewBase } from "../view-base.js";
@@ -25,8 +25,8 @@ export interface PgUpdateConfig {
25
25
  returning?: SelectedFieldsOrdered;
26
26
  withList?: Subquery[];
27
27
  }
28
- export type PgUpdateSetSource<TTable extends PgTable> = {
29
- [Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key]> | SQL | PgColumn | undefined;
28
+ export type PgUpdateSetSource<TTable extends PgTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = {
29
+ [Key in keyof TModel & string]?: GetColumnData<TTable['_']['columns'][Key]> | SQL | PgColumn | undefined;
30
30
  } & {};
31
31
  export declare class PgUpdateBuilder<TTable extends PgTable, TQueryResult extends PgQueryResultHKT> {
32
32
  private table;
@@ -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 { 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, type InferInsertModel, 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<\n\tTTable extends PgTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> =\n\t& {\n\t\t[Key in keyof TModel & string]?:\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 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, 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\t// cache instance\n\t\tprivate cache: Cache | undefined,\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\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\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\tabstract prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => 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, TRelations, TTablesConfig, 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\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any, any, any>,\n\t\tprotected relations: AnyRelations | undefined,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, 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, TRelations, TTablesConfig, 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
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport type { AnyRelations, EmptyRelations } 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\t// cache instance\n\t\tprivate cache: Cache | undefined,\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\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\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\tabstract prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => 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, TRelations, 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\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any, any>,\n\t\tprotected relations: TRelations,\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, relations, 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, TRelations, 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"]}
@@ -2,7 +2,7 @@ import type * as V1 from "../_relations.cjs";
2
2
  import { type Cache } from "../cache/core/cache.cjs";
3
3
  import type { WithCacheConfig } from "../cache/core/types.cjs";
4
4
  import { entityKind } from "../entity.cjs";
5
- import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.cjs";
5
+ import type { AnyRelations, EmptyRelations } from "../relations.cjs";
6
6
  import type { PreparedQuery } from "../session.cjs";
7
7
  import { type Query, type SQL } from "../sql/index.cjs";
8
8
  import type { NeonAuthToken } from "../utils.cjs";
@@ -34,7 +34,7 @@ export interface PgTransactionConfig {
34
34
  accessMode?: 'read only' | 'read write';
35
35
  deferrable?: boolean;
36
36
  }
37
- export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
37
+ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
38
38
  protected dialect: PgDialect;
39
39
  static readonly [entityKind]: string;
40
40
  constructor(dialect: PgDialect);
@@ -46,10 +46,10 @@ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT =
46
46
  execute<T>(query: SQL): Promise<T>;
47
47
  all<T = unknown>(query: SQL): Promise<T[]>;
48
48
  count(sql: SQL): Promise<number>;
49
- abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
49
+ abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
50
50
  }
51
- export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
52
- protected relations: AnyRelations | undefined;
51
+ export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TSchema> {
52
+ protected relations: TRelations;
53
53
  protected schema: {
54
54
  fullSchema: Record<string, unknown>;
55
55
  schema: TSchema;
@@ -57,14 +57,14 @@ export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHK
57
57
  } | undefined;
58
58
  protected readonly nestedIndex: number;
59
59
  static readonly [entityKind]: string;
60
- constructor(dialect: PgDialect, session: PgSession<any, any, any, any, any>, relations: AnyRelations | undefined, schema: {
60
+ constructor(dialect: PgDialect, session: PgSession<any, any, any, any>, relations: TRelations, schema: {
61
61
  fullSchema: Record<string, unknown>;
62
62
  schema: TSchema;
63
63
  tableNamesMap: Record<string, string>;
64
64
  } | undefined, nestedIndex?: number);
65
65
  rollback(): never;
66
66
  setTransaction(config: PgTransactionConfig): Promise<void>;
67
- abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
67
+ abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
68
68
  }
69
69
  export interface PgQueryResultHKT {
70
70
  readonly $brand: 'PgQueryResultHKT';
@@ -2,7 +2,7 @@ import type * as V1 from "../_relations.js";
2
2
  import { type Cache } from "../cache/core/cache.js";
3
3
  import type { WithCacheConfig } from "../cache/core/types.js";
4
4
  import { entityKind } from "../entity.js";
5
- import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.js";
5
+ import type { AnyRelations, EmptyRelations } from "../relations.js";
6
6
  import type { PreparedQuery } from "../session.js";
7
7
  import { type Query, type SQL } from "../sql/index.js";
8
8
  import type { NeonAuthToken } from "../utils.js";
@@ -34,7 +34,7 @@ export interface PgTransactionConfig {
34
34
  accessMode?: 'read only' | 'read write';
35
35
  deferrable?: boolean;
36
36
  }
37
- export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
37
+ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
38
38
  protected dialect: PgDialect;
39
39
  static readonly [entityKind]: string;
40
40
  constructor(dialect: PgDialect);
@@ -46,10 +46,10 @@ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT =
46
46
  execute<T>(query: SQL): Promise<T>;
47
47
  all<T = unknown>(query: SQL): Promise<T[]>;
48
48
  count(sql: SQL): Promise<number>;
49
- abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
49
+ abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
50
50
  }
51
- export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
52
- protected relations: AnyRelations | undefined;
51
+ export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TSchema> {
52
+ protected relations: TRelations;
53
53
  protected schema: {
54
54
  fullSchema: Record<string, unknown>;
55
55
  schema: TSchema;
@@ -57,14 +57,14 @@ export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHK
57
57
  } | undefined;
58
58
  protected readonly nestedIndex: number;
59
59
  static readonly [entityKind]: string;
60
- constructor(dialect: PgDialect, session: PgSession<any, any, any, any, any>, relations: AnyRelations | undefined, schema: {
60
+ constructor(dialect: PgDialect, session: PgSession<any, any, any, any>, relations: TRelations, schema: {
61
61
  fullSchema: Record<string, unknown>;
62
62
  schema: TSchema;
63
63
  tableNamesMap: Record<string, string>;
64
64
  } | undefined, nestedIndex?: number);
65
65
  rollback(): never;
66
66
  setTransaction(config: PgTransactionConfig): Promise<void>;
67
- abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
67
+ abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
68
68
  }
69
69
  export interface PgQueryResultHKT {
70
70
  readonly $brand: 'PgQueryResultHKT';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, 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\t// cache instance\n\t\tprivate cache: Cache | undefined,\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\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\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\tabstract prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => 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, TRelations, TTablesConfig, 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\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any, any, any>,\n\t\tprotected relations: AnyRelations | undefined,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, 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, TRelations, TTablesConfig, 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
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport type { AnyRelations, EmptyRelations } 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\t// cache instance\n\t\tprivate cache: Cache | undefined,\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\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\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\tabstract prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => 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, TRelations, 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\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends PgDatabase<TQueryResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any, any>,\n\t\tprotected relations: TRelations,\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, relations, 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, TRelations, 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 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getPgColumnBuilders, type PgColumnsBuilders } from './columns/all.ts';\nimport type { ExtraConfigColumn, PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy;\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\tPgTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<PgColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t\tEnableRLS: EnableRLS as typeof EnableRLS,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\t[EnableRLS]: boolean = false;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<T extends TableConfig> =\n\t& PgTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t}\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tPgTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[PgTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as PgTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\t\t\tdialect: 'pg';\n\t\t\t}>;\n\t\t},\n\t});\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAmF;AAEnF,iBAA4D;AAwBrD,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,gBAAqD,mBAAS;AAAA,EAC1E,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,IACA;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAC,SAAS,IAAa;AAAA;AAAA,EAGvB,CAAU,mBAAM,OAAO,kBAAkB,IACxC;AAAA;AAAA,EAGD,CAAU,mBAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAiBO,SAAS,kBAKf,MACA,SACA,aAGA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,gCAAoB,CAAC,IAAI;AAEpG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,QAAQ,OAAO,SAAS,IAAI;AAClC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AA2GO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport {\n\ttype InferTableColumnsModels,\n\tTable,\n\ttype TableConfig as TableConfigBase,\n\ttype UpdateTableConfig,\n} from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getPgColumnBuilders, type PgColumnsBuilders } from './columns/all.ts';\nimport type { ExtraConfigColumn, PgColumn, PgColumnBuilder, PgColumns } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy;\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\tPgTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<PgColumns>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n/** @internal */\nexport const EnableRLS = Symbol.for('drizzle:EnableRLS');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t\tEnableRLS: EnableRLS as typeof EnableRLS,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\t[EnableRLS]: boolean = false;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigColumns]: Record<string, ExtraConfigColumn> = {};\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<\n\tT extends TableConfig,\n> =\n\t& PgTable<T>\n\t& T['columns']\n\t& InferTableColumnsModels<T['columns']>\n\t& {\n\t\tenableRLS: () => Omit<\n\t\t\tPgTableWithColumns<T>,\n\t\t\t'enableRLS'\n\t\t>;\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn Object.assign(table, {\n\t\tenableRLS: () => {\n\t\t\ttable[PgTable.Symbol.EnableRLS] = true;\n\t\t\treturn table as PgTableWithColumns<{\n\t\t\t\tname: TTableName;\n\t\t\t\tschema: TSchemaName;\n\t\t\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\t\t\tdialect: 'pg';\n\t\t\t}>;\n\t\t},\n\t}) as any;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (\n\t\t\tself: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,\n\t\t) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = pgTable(\"users\", {\n\t * \tid: integer(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, ColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: PgColumnsBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAKO;AAEP,iBAA4D;AAwBrD,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,YAAY,OAAO,IAAI,mBAAmB;AAEhD,MAAM,gBAAqD,mBAAS;AAAA,EAC1E,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,IACA;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAC,SAAS,IAAa;AAAA;AAAA,EAGvB,CAAU,mBAAM,OAAO,kBAAkB,IACxC;AAAA;AAAA,EAGD,CAAU,mBAAM,OAAO,kBAAkB,IAAuC,CAAC;AAClF;AAkBO,SAAS,kBAKf,MACA,SACA,aAGA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,gCAAoB,CAAC,IAAI;AAEpG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO,OAAO,OAAO,OAAO;AAAA,IAC3B,WAAW,MAAM;AAChB,YAAM,QAAQ,OAAO,SAAS,IAAI;AAClC,aAAO;AAAA,IAMR;AAAA,EACD,CAAC;AACF;AA2GO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
@@ -1,9 +1,9 @@
1
- import type { BuildColumns, BuildExtraConfigColumns } from "../column-builder.cjs";
1
+ import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from "../column-builder.cjs";
2
2
  import { entityKind } from "../entity.cjs";
3
- import { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from "../table.cjs";
3
+ import { type InferTableColumnsModels, Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from "../table.cjs";
4
4
  import type { CheckBuilder } from "./checks.cjs";
5
5
  import { type PgColumnsBuilders } from "./columns/all.cjs";
6
- import type { PgColumn, PgColumnBuilderBase } from "./columns/common.cjs";
6
+ import type { PgColumns } from "./columns/common.cjs";
7
7
  import type { ForeignKeyBuilder } from "./foreign-keys.cjs";
8
8
  import type { AnyIndexBuilder } from "./indexes.cjs";
9
9
  import type { PgPolicy } from "./policies.cjs";
@@ -11,24 +11,22 @@ import type { PrimaryKeyBuilder } from "./primary-keys.cjs";
11
11
  import type { UniqueConstraintBuilder } from "./unique-constraint.cjs";
12
12
  export type PgTableExtraConfigValue = AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder | PgPolicy;
13
13
  export type PgTableExtraConfig = Record<string, PgTableExtraConfigValue>;
14
- export type TableConfig = TableConfigBase<PgColumn>;
14
+ export type TableConfig = TableConfigBase<PgColumns>;
15
15
  export declare class PgTable<T extends TableConfig = TableConfig> extends Table<T> {
16
16
  static readonly [entityKind]: string;
17
17
  }
18
18
  export type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;
19
- export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & {
20
- [Key in keyof T['columns']]: T['columns'][Key];
21
- } & {
19
+ export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & T['columns'] & InferTableColumnsModels<T['columns']> & {
22
20
  enableRLS: () => Omit<PgTableWithColumns<T>, 'enableRLS'>;
23
21
  };
24
22
  export interface PgTableFn<TSchema extends string | undefined = undefined> {
25
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
23
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
26
24
  name: TTableName;
27
25
  schema: TSchema;
28
26
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
29
27
  dialect: 'pg';
30
28
  }>;
31
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
29
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
32
30
  name: TTableName;
33
31
  schema: TSchema;
34
32
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
@@ -56,7 +54,7 @@ export interface PgTableFn<TSchema extends string | undefined = undefined> {
56
54
  * ]);
57
55
  * ```
58
56
  */
59
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
57
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
60
58
  name: TTableName;
61
59
  schema: TSchema;
62
60
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
@@ -84,7 +82,7 @@ export interface PgTableFn<TSchema extends string | undefined = undefined> {
84
82
  * ]);
85
83
  * ```
86
84
  */
87
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
85
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
88
86
  name: TTableName;
89
87
  schema: TSchema;
90
88
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
@@ -1,9 +1,9 @@
1
- import type { BuildColumns, BuildExtraConfigColumns } from "../column-builder.js";
1
+ import type { BuildColumns, BuildExtraConfigColumns, ColumnBuilderBase } from "../column-builder.js";
2
2
  import { entityKind } from "../entity.js";
3
- import { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from "../table.js";
3
+ import { type InferTableColumnsModels, Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from "../table.js";
4
4
  import type { CheckBuilder } from "./checks.js";
5
5
  import { type PgColumnsBuilders } from "./columns/all.js";
6
- import type { PgColumn, PgColumnBuilderBase } from "./columns/common.js";
6
+ import type { PgColumns } from "./columns/common.js";
7
7
  import type { ForeignKeyBuilder } from "./foreign-keys.js";
8
8
  import type { AnyIndexBuilder } from "./indexes.js";
9
9
  import type { PgPolicy } from "./policies.js";
@@ -11,24 +11,22 @@ import type { PrimaryKeyBuilder } from "./primary-keys.js";
11
11
  import type { UniqueConstraintBuilder } from "./unique-constraint.js";
12
12
  export type PgTableExtraConfigValue = AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder | PgPolicy;
13
13
  export type PgTableExtraConfig = Record<string, PgTableExtraConfigValue>;
14
- export type TableConfig = TableConfigBase<PgColumn>;
14
+ export type TableConfig = TableConfigBase<PgColumns>;
15
15
  export declare class PgTable<T extends TableConfig = TableConfig> extends Table<T> {
16
16
  static readonly [entityKind]: string;
17
17
  }
18
18
  export type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;
19
- export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & {
20
- [Key in keyof T['columns']]: T['columns'][Key];
21
- } & {
19
+ export type PgTableWithColumns<T extends TableConfig> = PgTable<T> & T['columns'] & InferTableColumnsModels<T['columns']> & {
22
20
  enableRLS: () => Omit<PgTableWithColumns<T>, 'enableRLS'>;
23
21
  };
24
22
  export interface PgTableFn<TSchema extends string | undefined = undefined> {
25
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
23
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
26
24
  name: TTableName;
27
25
  schema: TSchema;
28
26
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
29
27
  dialect: 'pg';
30
28
  }>;
31
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
29
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[]): PgTableWithColumns<{
32
30
  name: TTableName;
33
31
  schema: TSchema;
34
32
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
@@ -56,7 +54,7 @@ export interface PgTableFn<TSchema extends string | undefined = undefined> {
56
54
  * ]);
57
55
  * ```
58
56
  */
59
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
57
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
60
58
  name: TTableName;
61
59
  schema: TSchema;
62
60
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
@@ -84,7 +82,7 @@ export interface PgTableFn<TSchema extends string | undefined = undefined> {
84
82
  * ]);
85
83
  * ```
86
84
  */
87
- <TTableName extends string, TColumnsMap extends Record<string, PgColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
85
+ <TTableName extends string, TColumnsMap extends Record<string, ColumnBuilderBase>>(name: TTableName, columns: (columnTypes: PgColumnsBuilders) => TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig): PgTableWithColumns<{
88
86
  name: TTableName;
89
87
  schema: TSchema;
90
88
  columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;