drizzle-orm 0.39.0-b06bbcd → 0.39.0

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 (721) hide show
  1. package/alias.cjs.map +1 -1
  2. package/alias.d.cts +3 -3
  3. package/alias.d.ts +3 -3
  4. package/alias.js.map +1 -1
  5. package/aws-data-api/pg/driver.cjs +5 -19
  6. package/aws-data-api/pg/driver.cjs.map +1 -1
  7. package/aws-data-api/pg/driver.d.cts +8 -9
  8. package/aws-data-api/pg/driver.d.ts +8 -9
  9. package/aws-data-api/pg/driver.js +8 -9
  10. package/aws-data-api/pg/driver.js.map +1 -1
  11. package/aws-data-api/pg/migrator.cjs.map +1 -1
  12. package/aws-data-api/pg/migrator.d.cts +1 -2
  13. package/aws-data-api/pg/migrator.d.ts +1 -2
  14. package/aws-data-api/pg/migrator.js.map +1 -1
  15. package/aws-data-api/pg/session.cjs +4 -67
  16. package/aws-data-api/pg/session.cjs.map +1 -1
  17. package/aws-data-api/pg/session.d.cts +8 -13
  18. package/aws-data-api/pg/session.d.ts +8 -13
  19. package/aws-data-api/pg/session.js +4 -67
  20. package/aws-data-api/pg/session.js.map +1 -1
  21. package/better-sqlite3/driver.cjs +5 -12
  22. package/better-sqlite3/driver.cjs.map +1 -1
  23. package/better-sqlite3/driver.d.cts +6 -7
  24. package/better-sqlite3/driver.d.ts +6 -7
  25. package/better-sqlite3/driver.js +8 -12
  26. package/better-sqlite3/driver.js.map +1 -1
  27. package/better-sqlite3/migrator.cjs.map +1 -1
  28. package/better-sqlite3/migrator.d.cts +1 -2
  29. package/better-sqlite3/migrator.d.ts +1 -2
  30. package/better-sqlite3/migrator.js.map +1 -1
  31. package/better-sqlite3/session.cjs +4 -49
  32. package/better-sqlite3/session.cjs.map +1 -1
  33. package/better-sqlite3/session.d.cts +8 -14
  34. package/better-sqlite3/session.d.ts +8 -14
  35. package/better-sqlite3/session.js +4 -49
  36. package/better-sqlite3/session.js.map +1 -1
  37. package/bun-sql/driver.cjs +96 -0
  38. package/bun-sql/driver.cjs.map +1 -0
  39. package/bun-sql/driver.d.cts +30 -0
  40. package/bun-sql/driver.d.ts +30 -0
  41. package/bun-sql/driver.js +74 -0
  42. package/bun-sql/driver.js.map +1 -0
  43. package/bun-sql/index.cjs +25 -0
  44. package/bun-sql/index.cjs.map +1 -0
  45. package/bun-sql/index.d.cts +2 -0
  46. package/bun-sql/index.d.ts +2 -0
  47. package/bun-sql/index.js +3 -0
  48. package/bun-sql/index.js.map +1 -0
  49. package/bun-sql/migrator.cjs +33 -0
  50. package/bun-sql/migrator.cjs.map +1 -0
  51. package/bun-sql/migrator.d.cts +3 -0
  52. package/bun-sql/migrator.d.ts +3 -0
  53. package/bun-sql/migrator.js +9 -0
  54. package/bun-sql/migrator.js.map +1 -0
  55. package/bun-sql/session.cjs +162 -0
  56. package/bun-sql/session.cjs.map +1 -0
  57. package/bun-sql/session.d.cts +50 -0
  58. package/bun-sql/session.d.ts +50 -0
  59. package/bun-sql/session.js +136 -0
  60. package/bun-sql/session.js.map +1 -0
  61. package/bun-sqlite/driver.cjs +5 -22
  62. package/bun-sqlite/driver.cjs.map +1 -1
  63. package/bun-sqlite/driver.d.cts +6 -7
  64. package/bun-sqlite/driver.d.ts +6 -7
  65. package/bun-sqlite/driver.js +8 -12
  66. package/bun-sqlite/driver.js.map +1 -1
  67. package/bun-sqlite/migrator.cjs.map +1 -1
  68. package/bun-sqlite/migrator.d.cts +1 -2
  69. package/bun-sqlite/migrator.d.ts +1 -2
  70. package/bun-sqlite/migrator.js.map +1 -1
  71. package/bun-sqlite/session.cjs +4 -49
  72. package/bun-sqlite/session.cjs.map +1 -1
  73. package/bun-sqlite/session.d.cts +9 -15
  74. package/bun-sqlite/session.d.ts +9 -15
  75. package/bun-sqlite/session.js +4 -49
  76. package/bun-sqlite/session.js.map +1 -1
  77. package/d1/driver.cjs +5 -22
  78. package/d1/driver.cjs.map +1 -1
  79. package/d1/driver.d.cts +2 -3
  80. package/d1/driver.d.ts +2 -3
  81. package/d1/driver.js +8 -12
  82. package/d1/driver.js.map +1 -1
  83. package/d1/migrator.cjs.map +1 -1
  84. package/d1/migrator.d.cts +1 -2
  85. package/d1/migrator.d.ts +1 -2
  86. package/d1/migrator.js.map +1 -1
  87. package/d1/session.cjs +6 -48
  88. package/d1/session.cjs.map +1 -1
  89. package/d1/session.d.cts +8 -15
  90. package/d1/session.d.ts +8 -15
  91. package/d1/session.js +6 -48
  92. package/d1/session.js.map +1 -1
  93. package/durable-sqlite/driver.cjs +5 -16
  94. package/durable-sqlite/driver.cjs.map +1 -1
  95. package/durable-sqlite/driver.d.cts +2 -3
  96. package/durable-sqlite/driver.d.ts +2 -3
  97. package/durable-sqlite/driver.js +8 -6
  98. package/durable-sqlite/driver.js.map +1 -1
  99. package/durable-sqlite/migrator.cjs.map +1 -1
  100. package/durable-sqlite/migrator.d.cts +1 -2
  101. package/durable-sqlite/migrator.d.ts +1 -2
  102. package/durable-sqlite/migrator.js.map +1 -1
  103. package/durable-sqlite/session.cjs +4 -46
  104. package/durable-sqlite/session.cjs.map +1 -1
  105. package/durable-sqlite/session.d.cts +8 -14
  106. package/durable-sqlite/session.d.ts +8 -14
  107. package/durable-sqlite/session.js +4 -46
  108. package/durable-sqlite/session.js.map +1 -1
  109. package/expo-sqlite/driver.cjs +5 -22
  110. package/expo-sqlite/driver.cjs.map +1 -1
  111. package/expo-sqlite/driver.d.cts +2 -3
  112. package/expo-sqlite/driver.d.ts +2 -3
  113. package/expo-sqlite/driver.js +8 -12
  114. package/expo-sqlite/driver.js.map +1 -1
  115. package/expo-sqlite/migrator.cjs.map +1 -1
  116. package/expo-sqlite/migrator.d.cts +2 -3
  117. package/expo-sqlite/migrator.d.ts +2 -3
  118. package/expo-sqlite/migrator.js.map +1 -1
  119. package/expo-sqlite/query.cjs +2 -13
  120. package/expo-sqlite/query.cjs.map +1 -1
  121. package/expo-sqlite/query.d.cts +1 -2
  122. package/expo-sqlite/query.d.ts +1 -2
  123. package/expo-sqlite/query.js +2 -3
  124. package/expo-sqlite/query.js.map +1 -1
  125. package/expo-sqlite/session.cjs +4 -47
  126. package/expo-sqlite/session.cjs.map +1 -1
  127. package/expo-sqlite/session.d.cts +8 -14
  128. package/expo-sqlite/session.d.ts +8 -14
  129. package/expo-sqlite/session.js +4 -47
  130. package/expo-sqlite/session.js.map +1 -1
  131. package/libsql/driver-core.cjs +5 -22
  132. package/libsql/driver-core.cjs.map +1 -1
  133. package/libsql/driver-core.d.cts +1 -2
  134. package/libsql/driver-core.d.ts +1 -2
  135. package/libsql/driver-core.js +8 -12
  136. package/libsql/driver-core.js.map +1 -1
  137. package/libsql/driver.cjs.map +1 -1
  138. package/libsql/driver.d.cts +5 -6
  139. package/libsql/driver.d.ts +5 -6
  140. package/libsql/driver.js.map +1 -1
  141. package/libsql/http/index.cjs.map +1 -1
  142. package/libsql/http/index.d.cts +5 -6
  143. package/libsql/http/index.d.ts +5 -6
  144. package/libsql/http/index.js.map +1 -1
  145. package/libsql/migrator.cjs.map +1 -1
  146. package/libsql/migrator.d.cts +1 -2
  147. package/libsql/migrator.d.ts +1 -2
  148. package/libsql/migrator.js.map +1 -1
  149. package/libsql/node/index.cjs.map +1 -1
  150. package/libsql/node/index.d.cts +5 -6
  151. package/libsql/node/index.d.ts +5 -6
  152. package/libsql/node/index.js.map +1 -1
  153. package/libsql/session.cjs +4 -56
  154. package/libsql/session.cjs.map +1 -1
  155. package/libsql/session.d.cts +9 -15
  156. package/libsql/session.d.ts +9 -15
  157. package/libsql/session.js +4 -56
  158. package/libsql/session.js.map +1 -1
  159. package/libsql/sqlite3/index.cjs.map +1 -1
  160. package/libsql/sqlite3/index.d.cts +5 -6
  161. package/libsql/sqlite3/index.d.ts +5 -6
  162. package/libsql/sqlite3/index.js.map +1 -1
  163. package/libsql/wasm/index.cjs.map +1 -1
  164. package/libsql/wasm/index.d.cts +5 -6
  165. package/libsql/wasm/index.d.ts +5 -6
  166. package/libsql/wasm/index.js.map +1 -1
  167. package/libsql/web/index.cjs.map +1 -1
  168. package/libsql/web/index.d.cts +5 -6
  169. package/libsql/web/index.d.ts +5 -6
  170. package/libsql/web/index.js.map +1 -1
  171. package/libsql/ws/index.cjs.map +1 -1
  172. package/libsql/ws/index.d.cts +5 -6
  173. package/libsql/ws/index.d.ts +5 -6
  174. package/libsql/ws/index.js.map +1 -1
  175. package/mysql-core/db.cjs +25 -40
  176. package/mysql-core/db.cjs.map +1 -1
  177. package/mysql-core/db.d.cts +12 -22
  178. package/mysql-core/db.d.ts +12 -22
  179. package/mysql-core/db.js +24 -39
  180. package/mysql-core/db.js.map +1 -1
  181. package/mysql-core/dialect.cjs +15 -194
  182. package/mysql-core/dialect.cjs.map +1 -1
  183. package/mysql-core/dialect.d.cts +13 -33
  184. package/mysql-core/dialect.d.ts +13 -33
  185. package/mysql-core/dialect.js +21 -191
  186. package/mysql-core/dialect.js.map +1 -1
  187. package/mysql-core/query-builders/count.cjs.map +1 -1
  188. package/mysql-core/query-builders/count.d.cts +1 -1
  189. package/mysql-core/query-builders/count.d.ts +1 -1
  190. package/mysql-core/query-builders/count.js.map +1 -1
  191. package/mysql-core/query-builders/query-builder.cjs +15 -11
  192. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  193. package/mysql-core/query-builders/query-builder.d.cts +2 -6
  194. package/mysql-core/query-builders/query-builder.d.ts +2 -6
  195. package/mysql-core/query-builders/query-builder.js +15 -11
  196. package/mysql-core/query-builders/query-builder.js.map +1 -1
  197. package/mysql-core/query-builders/query.cjs +31 -18
  198. package/mysql-core/query-builders/query.cjs.map +1 -1
  199. package/mysql-core/query-builders/query.d.cts +10 -8
  200. package/mysql-core/query-builders/query.d.ts +10 -8
  201. package/mysql-core/query-builders/query.js +31 -18
  202. package/mysql-core/query-builders/query.js.map +1 -1
  203. package/mysql-core/session.cjs +2 -3
  204. package/mysql-core/session.cjs.map +1 -1
  205. package/mysql-core/session.d.cts +7 -10
  206. package/mysql-core/session.d.ts +7 -10
  207. package/mysql-core/session.js +2 -3
  208. package/mysql-core/session.js.map +1 -1
  209. package/mysql-core/subquery.cjs.map +1 -1
  210. package/mysql-core/subquery.d.cts +15 -2
  211. package/mysql-core/subquery.d.ts +15 -2
  212. package/mysql-proxy/driver.cjs +5 -22
  213. package/mysql-proxy/driver.cjs.map +1 -1
  214. package/mysql-proxy/driver.d.cts +2 -3
  215. package/mysql-proxy/driver.d.ts +2 -3
  216. package/mysql-proxy/driver.js +8 -12
  217. package/mysql-proxy/driver.js.map +1 -1
  218. package/mysql-proxy/migrator.cjs.map +1 -1
  219. package/mysql-proxy/migrator.d.cts +1 -2
  220. package/mysql-proxy/migrator.d.ts +1 -2
  221. package/mysql-proxy/migrator.js.map +1 -1
  222. package/mysql-proxy/session.cjs +2 -27
  223. package/mysql-proxy/session.cjs.map +1 -1
  224. package/mysql-proxy/session.d.cts +8 -13
  225. package/mysql-proxy/session.d.ts +8 -13
  226. package/mysql-proxy/session.js +2 -27
  227. package/mysql-proxy/session.js.map +1 -1
  228. package/mysql2/driver.cjs +7 -24
  229. package/mysql2/driver.cjs.map +1 -1
  230. package/mysql2/driver.d.cts +9 -10
  231. package/mysql2/driver.d.ts +9 -10
  232. package/mysql2/driver.js +10 -14
  233. package/mysql2/driver.js.map +1 -1
  234. package/mysql2/migrator.cjs.map +1 -1
  235. package/mysql2/migrator.d.cts +1 -2
  236. package/mysql2/migrator.d.ts +1 -2
  237. package/mysql2/migrator.js.map +1 -1
  238. package/mysql2/session.cjs +2 -30
  239. package/mysql2/session.cjs.map +1 -1
  240. package/mysql2/session.d.cts +8 -13
  241. package/mysql2/session.d.ts +8 -13
  242. package/mysql2/session.js +2 -30
  243. package/mysql2/session.js.map +1 -1
  244. package/neon/index.cjs +2 -0
  245. package/neon/index.cjs.map +1 -1
  246. package/neon/index.d.cts +1 -0
  247. package/neon/index.d.ts +1 -0
  248. package/neon/index.js +1 -0
  249. package/neon/index.js.map +1 -1
  250. package/neon/neon-identity.cjs +38 -0
  251. package/neon/neon-identity.cjs.map +1 -0
  252. package/neon/neon-identity.d.cts +116 -0
  253. package/neon/neon-identity.d.ts +116 -0
  254. package/neon/neon-identity.js +14 -0
  255. package/neon/neon-identity.js.map +1 -0
  256. package/neon-http/driver.cjs +7 -21
  257. package/neon-http/driver.cjs.map +1 -1
  258. package/neon-http/driver.d.cts +9 -10
  259. package/neon-http/driver.d.ts +9 -10
  260. package/neon-http/driver.js +7 -11
  261. package/neon-http/driver.js.map +1 -1
  262. package/neon-http/migrator.cjs.map +1 -1
  263. package/neon-http/migrator.d.cts +1 -2
  264. package/neon-http/migrator.d.ts +1 -2
  265. package/neon-http/migrator.js.map +1 -1
  266. package/neon-http/session.cjs +2 -32
  267. package/neon-http/session.cjs.map +1 -1
  268. package/neon-http/session.d.cts +8 -13
  269. package/neon-http/session.d.ts +8 -13
  270. package/neon-http/session.js +2 -32
  271. package/neon-http/session.js.map +1 -1
  272. package/neon-serverless/driver.cjs +7 -18
  273. package/neon-serverless/driver.cjs.map +1 -1
  274. package/neon-serverless/driver.d.cts +8 -9
  275. package/neon-serverless/driver.d.ts +8 -9
  276. package/neon-serverless/driver.js +10 -8
  277. package/neon-serverless/driver.js.map +1 -1
  278. package/neon-serverless/migrator.cjs.map +1 -1
  279. package/neon-serverless/migrator.d.cts +1 -2
  280. package/neon-serverless/migrator.d.ts +1 -2
  281. package/neon-serverless/migrator.js.map +1 -1
  282. package/neon-serverless/session.cjs +5 -40
  283. package/neon-serverless/session.cjs.map +1 -1
  284. package/neon-serverless/session.d.cts +8 -13
  285. package/neon-serverless/session.d.ts +8 -13
  286. package/neon-serverless/session.js +5 -40
  287. package/neon-serverless/session.js.map +1 -1
  288. package/node-postgres/driver.cjs +7 -13
  289. package/node-postgres/driver.cjs.map +1 -1
  290. package/node-postgres/driver.d.cts +8 -9
  291. package/node-postgres/driver.d.ts +8 -9
  292. package/node-postgres/driver.js +10 -13
  293. package/node-postgres/driver.js.map +1 -1
  294. package/node-postgres/migrator.cjs.map +1 -1
  295. package/node-postgres/migrator.d.cts +1 -2
  296. package/node-postgres/migrator.d.ts +1 -2
  297. package/node-postgres/migrator.js.map +1 -1
  298. package/node-postgres/session.cjs +4 -45
  299. package/node-postgres/session.cjs.map +1 -1
  300. package/node-postgres/session.d.cts +8 -13
  301. package/node-postgres/session.d.ts +8 -13
  302. package/node-postgres/session.js +4 -45
  303. package/node-postgres/session.js.map +1 -1
  304. package/op-sqlite/driver.cjs +5 -22
  305. package/op-sqlite/driver.cjs.map +1 -1
  306. package/op-sqlite/driver.d.cts +2 -3
  307. package/op-sqlite/driver.d.ts +2 -3
  308. package/op-sqlite/driver.js +8 -12
  309. package/op-sqlite/driver.js.map +1 -1
  310. package/op-sqlite/migrator.cjs.map +1 -1
  311. package/op-sqlite/migrator.d.cts +2 -3
  312. package/op-sqlite/migrator.d.ts +2 -3
  313. package/op-sqlite/migrator.js.map +1 -1
  314. package/op-sqlite/session.cjs +4 -47
  315. package/op-sqlite/session.cjs.map +1 -1
  316. package/op-sqlite/session.d.cts +8 -14
  317. package/op-sqlite/session.d.ts +8 -14
  318. package/op-sqlite/session.js +4 -47
  319. package/op-sqlite/session.js.map +1 -1
  320. package/package.json +64 -52
  321. package/pg-core/db.cjs +24 -42
  322. package/pg-core/db.cjs.map +1 -1
  323. package/pg-core/db.d.cts +13 -23
  324. package/pg-core/db.d.ts +13 -23
  325. package/pg-core/db.js +23 -41
  326. package/pg-core/db.js.map +1 -1
  327. package/pg-core/dialect.cjs +488 -161
  328. package/pg-core/dialect.cjs.map +1 -1
  329. package/pg-core/dialect.d.cts +7 -24
  330. package/pg-core/dialect.d.ts +7 -24
  331. package/pg-core/dialect.js +494 -158
  332. package/pg-core/dialect.js.map +1 -1
  333. package/pg-core/query-builders/count.cjs.map +1 -1
  334. package/pg-core/query-builders/count.d.cts +1 -1
  335. package/pg-core/query-builders/count.d.ts +1 -1
  336. package/pg-core/query-builders/count.js.map +1 -1
  337. package/pg-core/query-builders/delete.cjs +13 -0
  338. package/pg-core/query-builders/delete.cjs.map +1 -1
  339. package/pg-core/query-builders/delete.d.cts +13 -10
  340. package/pg-core/query-builders/delete.d.ts +13 -10
  341. package/pg-core/query-builders/delete.js +14 -1
  342. package/pg-core/query-builders/delete.js.map +1 -1
  343. package/pg-core/query-builders/insert.cjs +13 -0
  344. package/pg-core/query-builders/insert.cjs.map +1 -1
  345. package/pg-core/query-builders/insert.d.cts +10 -8
  346. package/pg-core/query-builders/insert.d.ts +10 -8
  347. package/pg-core/query-builders/insert.js +14 -1
  348. package/pg-core/query-builders/insert.js.map +1 -1
  349. package/pg-core/query-builders/query-builder.cjs +15 -11
  350. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  351. package/pg-core/query-builders/query-builder.d.cts +3 -6
  352. package/pg-core/query-builders/query-builder.d.ts +3 -6
  353. package/pg-core/query-builders/query-builder.js +15 -11
  354. package/pg-core/query-builders/query-builder.js.map +1 -1
  355. package/pg-core/query-builders/query.cjs +18 -15
  356. package/pg-core/query-builders/query.cjs.map +1 -1
  357. package/pg-core/query-builders/query.d.cts +6 -6
  358. package/pg-core/query-builders/query.d.ts +6 -6
  359. package/pg-core/query-builders/query.js +18 -15
  360. package/pg-core/query-builders/query.js.map +1 -1
  361. package/pg-core/query-builders/select.cjs +8 -7
  362. package/pg-core/query-builders/select.cjs.map +1 -1
  363. package/pg-core/query-builders/select.d.cts +3 -3
  364. package/pg-core/query-builders/select.d.ts +3 -3
  365. package/pg-core/query-builders/select.js +8 -7
  366. package/pg-core/query-builders/select.js.map +1 -1
  367. package/pg-core/query-builders/select.types.cjs.map +1 -1
  368. package/pg-core/query-builders/select.types.d.cts +3 -2
  369. package/pg-core/query-builders/select.types.d.ts +3 -2
  370. package/pg-core/query-builders/update.cjs +15 -2
  371. package/pg-core/query-builders/update.cjs.map +1 -1
  372. package/pg-core/query-builders/update.d.cts +18 -13
  373. package/pg-core/query-builders/update.d.ts +18 -13
  374. package/pg-core/query-builders/update.js +16 -3
  375. package/pg-core/query-builders/update.js.map +1 -1
  376. package/pg-core/session.cjs +2 -3
  377. package/pg-core/session.cjs.map +1 -1
  378. package/pg-core/session.d.cts +6 -9
  379. package/pg-core/session.d.ts +6 -9
  380. package/pg-core/session.js +2 -3
  381. package/pg-core/session.js.map +1 -1
  382. package/pg-core/subquery.cjs.map +1 -1
  383. package/pg-core/subquery.d.cts +15 -2
  384. package/pg-core/subquery.d.ts +15 -2
  385. package/pg-proxy/driver.cjs +5 -21
  386. package/pg-proxy/driver.cjs.map +1 -1
  387. package/pg-proxy/driver.d.cts +2 -3
  388. package/pg-proxy/driver.d.ts +2 -3
  389. package/pg-proxy/driver.js +8 -11
  390. package/pg-proxy/driver.js.map +1 -1
  391. package/pg-proxy/migrator.cjs.map +1 -1
  392. package/pg-proxy/migrator.d.cts +1 -2
  393. package/pg-proxy/migrator.d.ts +1 -2
  394. package/pg-proxy/migrator.js.map +1 -1
  395. package/pg-proxy/session.cjs +2 -37
  396. package/pg-proxy/session.cjs.map +1 -1
  397. package/pg-proxy/session.d.cts +8 -13
  398. package/pg-proxy/session.d.ts +8 -13
  399. package/pg-proxy/session.js +2 -37
  400. package/pg-proxy/session.js.map +1 -1
  401. package/pglite/driver.cjs +7 -23
  402. package/pglite/driver.cjs.map +1 -1
  403. package/pglite/driver.d.cts +8 -9
  404. package/pglite/driver.d.ts +8 -9
  405. package/pglite/driver.js +10 -13
  406. package/pglite/driver.js.map +1 -1
  407. package/pglite/migrator.cjs.map +1 -1
  408. package/pglite/migrator.d.cts +1 -2
  409. package/pglite/migrator.d.ts +1 -2
  410. package/pglite/migrator.js.map +1 -1
  411. package/pglite/session.cjs +3 -34
  412. package/pglite/session.cjs.map +1 -1
  413. package/pglite/session.d.cts +8 -13
  414. package/pglite/session.d.ts +8 -13
  415. package/pglite/session.js +3 -34
  416. package/pglite/session.js.map +1 -1
  417. package/planetscale-serverless/driver.cjs +5 -22
  418. package/planetscale-serverless/driver.cjs.map +1 -1
  419. package/planetscale-serverless/driver.d.cts +6 -7
  420. package/planetscale-serverless/driver.d.ts +6 -7
  421. package/planetscale-serverless/driver.js +8 -12
  422. package/planetscale-serverless/driver.js.map +1 -1
  423. package/planetscale-serverless/migrator.cjs.map +1 -1
  424. package/planetscale-serverless/migrator.d.cts +1 -2
  425. package/planetscale-serverless/migrator.d.ts +1 -2
  426. package/planetscale-serverless/migrator.js.map +1 -1
  427. package/planetscale-serverless/session.cjs +5 -45
  428. package/planetscale-serverless/session.cjs.map +1 -1
  429. package/planetscale-serverless/session.d.cts +9 -14
  430. package/planetscale-serverless/session.d.ts +9 -14
  431. package/planetscale-serverless/session.js +5 -45
  432. package/planetscale-serverless/session.js.map +1 -1
  433. package/postgres-js/driver.cjs +5 -6
  434. package/postgres-js/driver.cjs.map +1 -1
  435. package/postgres-js/driver.d.cts +6 -7
  436. package/postgres-js/driver.d.ts +6 -7
  437. package/postgres-js/driver.js +8 -6
  438. package/postgres-js/driver.js.map +1 -1
  439. package/postgres-js/migrator.cjs.map +1 -1
  440. package/postgres-js/migrator.d.cts +1 -2
  441. package/postgres-js/migrator.d.ts +1 -2
  442. package/postgres-js/migrator.js.map +1 -1
  443. package/postgres-js/session.cjs +6 -51
  444. package/postgres-js/session.cjs.map +1 -1
  445. package/postgres-js/session.d.cts +9 -15
  446. package/postgres-js/session.d.ts +9 -15
  447. package/postgres-js/session.js +6 -51
  448. package/postgres-js/session.js.map +1 -1
  449. package/prisma/mysql/driver.cjs +1 -1
  450. package/prisma/mysql/driver.cjs.map +1 -1
  451. package/prisma/mysql/driver.js +1 -1
  452. package/prisma/mysql/driver.js.map +1 -1
  453. package/prisma/mysql/session.cjs +0 -3
  454. package/prisma/mysql/session.cjs.map +1 -1
  455. package/prisma/mysql/session.d.cts +1 -3
  456. package/prisma/mysql/session.d.ts +1 -3
  457. package/prisma/mysql/session.js +0 -3
  458. package/prisma/mysql/session.js.map +1 -1
  459. package/prisma/pg/driver.cjs +1 -1
  460. package/prisma/pg/driver.cjs.map +1 -1
  461. package/prisma/pg/driver.js +1 -1
  462. package/prisma/pg/driver.js.map +1 -1
  463. package/prisma/pg/session.cjs +0 -3
  464. package/prisma/pg/session.cjs.map +1 -1
  465. package/prisma/pg/session.d.cts +1 -3
  466. package/prisma/pg/session.d.ts +1 -3
  467. package/prisma/pg/session.js +0 -3
  468. package/prisma/pg/session.js.map +1 -1
  469. package/prisma/sqlite/driver.cjs +1 -1
  470. package/prisma/sqlite/driver.cjs.map +1 -1
  471. package/prisma/sqlite/driver.js +1 -1
  472. package/prisma/sqlite/driver.js.map +1 -1
  473. package/prisma/sqlite/session.cjs +0 -3
  474. package/prisma/sqlite/session.cjs.map +1 -1
  475. package/prisma/sqlite/session.d.cts +2 -4
  476. package/prisma/sqlite/session.d.ts +2 -4
  477. package/prisma/sqlite/session.js +0 -3
  478. package/prisma/sqlite/session.js.map +1 -1
  479. package/query-builders/select.types.cjs.map +1 -1
  480. package/query-builders/select.types.d.cts +1 -1
  481. package/query-builders/select.types.d.ts +1 -1
  482. package/relations.cjs +245 -595
  483. package/relations.cjs.map +1 -1
  484. package/relations.d.cts +131 -276
  485. package/relations.d.ts +131 -276
  486. package/relations.js +239 -589
  487. package/relations.js.map +1 -1
  488. package/singlestore/driver.cjs +1 -1
  489. package/singlestore/driver.cjs.map +1 -1
  490. package/singlestore/driver.d.cts +1 -1
  491. package/singlestore/driver.d.ts +1 -1
  492. package/singlestore/driver.js +3 -3
  493. package/singlestore/driver.js.map +1 -1
  494. package/singlestore/session.cjs.map +1 -1
  495. package/singlestore/session.d.cts +4 -4
  496. package/singlestore/session.d.ts +4 -4
  497. package/singlestore/session.js.map +1 -1
  498. package/singlestore-core/db.cjs +17 -11
  499. package/singlestore-core/db.cjs.map +1 -1
  500. package/singlestore-core/db.d.cts +7 -10
  501. package/singlestore-core/db.d.ts +7 -10
  502. package/singlestore-core/db.js +17 -11
  503. package/singlestore-core/db.js.map +1 -1
  504. package/singlestore-core/dialect.cjs +6 -16
  505. package/singlestore-core/dialect.cjs.map +1 -1
  506. package/singlestore-core/dialect.d.cts +6 -6
  507. package/singlestore-core/dialect.d.ts +6 -6
  508. package/singlestore-core/dialect.js +12 -6
  509. package/singlestore-core/dialect.js.map +1 -1
  510. package/singlestore-core/query-builders/query-builder.cjs +15 -11
  511. package/singlestore-core/query-builders/query-builder.cjs.map +1 -1
  512. package/singlestore-core/query-builders/query-builder.d.cts +2 -6
  513. package/singlestore-core/query-builders/query-builder.d.ts +2 -6
  514. package/singlestore-core/query-builders/query-builder.js +15 -11
  515. package/singlestore-core/query-builders/query-builder.js.map +1 -1
  516. package/singlestore-core/query-builders/query.cjs +2 -12
  517. package/singlestore-core/query-builders/query.cjs.map +1 -1
  518. package/singlestore-core/query-builders/query.d.cts +6 -6
  519. package/singlestore-core/query-builders/query.d.ts +6 -6
  520. package/singlestore-core/query-builders/query.js +4 -2
  521. package/singlestore-core/query-builders/query.js.map +1 -1
  522. package/singlestore-core/session.cjs.map +1 -1
  523. package/singlestore-core/session.d.cts +5 -5
  524. package/singlestore-core/session.d.ts +5 -5
  525. package/singlestore-core/session.js.map +1 -1
  526. package/singlestore-core/subquery.cjs.map +1 -1
  527. package/singlestore-core/subquery.d.cts +15 -2
  528. package/singlestore-core/subquery.d.ts +15 -2
  529. package/singlestore-core/table.cjs.map +1 -1
  530. package/singlestore-core/table.d.cts +12 -12
  531. package/singlestore-core/table.d.ts +12 -12
  532. package/singlestore-core/table.js.map +1 -1
  533. package/singlestore-proxy/driver.cjs +1 -1
  534. package/singlestore-proxy/driver.cjs.map +1 -1
  535. package/singlestore-proxy/driver.js +3 -3
  536. package/singlestore-proxy/driver.js.map +1 -1
  537. package/singlestore-proxy/session.cjs.map +1 -1
  538. package/singlestore-proxy/session.d.cts +4 -4
  539. package/singlestore-proxy/session.d.ts +4 -4
  540. package/singlestore-proxy/session.js.map +1 -1
  541. package/sql/sql.cjs +6 -1
  542. package/sql/sql.cjs.map +1 -1
  543. package/sql/sql.d.cts +9 -8
  544. package/sql/sql.d.ts +9 -8
  545. package/sql/sql.js +5 -1
  546. package/sql/sql.js.map +1 -1
  547. package/sql-js/driver.cjs +5 -16
  548. package/sql-js/driver.cjs.map +1 -1
  549. package/sql-js/driver.d.cts +2 -3
  550. package/sql-js/driver.d.ts +2 -3
  551. package/sql-js/driver.js +8 -6
  552. package/sql-js/driver.js.map +1 -1
  553. package/sql-js/migrator.cjs.map +1 -1
  554. package/sql-js/migrator.d.cts +1 -2
  555. package/sql-js/migrator.d.ts +1 -2
  556. package/sql-js/migrator.js.map +1 -1
  557. package/sql-js/session.cjs +4 -76
  558. package/sql-js/session.cjs.map +1 -1
  559. package/sql-js/session.d.cts +8 -15
  560. package/sql-js/session.d.ts +8 -15
  561. package/sql-js/session.js +4 -76
  562. package/sql-js/session.js.map +1 -1
  563. package/sqlite-core/db.cjs +31 -49
  564. package/sqlite-core/db.cjs.map +1 -1
  565. package/sqlite-core/db.d.cts +12 -23
  566. package/sqlite-core/db.d.ts +12 -23
  567. package/sqlite-core/db.js +30 -48
  568. package/sqlite-core/db.js.map +1 -1
  569. package/sqlite-core/dialect.cjs +7 -183
  570. package/sqlite-core/dialect.cjs.map +1 -1
  571. package/sqlite-core/dialect.d.cts +9 -28
  572. package/sqlite-core/dialect.d.ts +9 -28
  573. package/sqlite-core/dialect.js +13 -180
  574. package/sqlite-core/dialect.js.map +1 -1
  575. package/sqlite-core/query-builders/count.cjs.map +1 -1
  576. package/sqlite-core/query-builders/count.d.cts +1 -1
  577. package/sqlite-core/query-builders/count.d.ts +1 -1
  578. package/sqlite-core/query-builders/count.js.map +1 -1
  579. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  580. package/sqlite-core/query-builders/delete.d.cts +1 -1
  581. package/sqlite-core/query-builders/delete.d.ts +1 -1
  582. package/sqlite-core/query-builders/delete.js.map +1 -1
  583. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  584. package/sqlite-core/query-builders/insert.d.cts +3 -3
  585. package/sqlite-core/query-builders/insert.d.ts +3 -3
  586. package/sqlite-core/query-builders/insert.js.map +1 -1
  587. package/sqlite-core/query-builders/query-builder.cjs +15 -11
  588. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  589. package/sqlite-core/query-builders/query-builder.d.cts +2 -6
  590. package/sqlite-core/query-builders/query-builder.d.ts +2 -6
  591. package/sqlite-core/query-builders/query-builder.js +15 -11
  592. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  593. package/sqlite-core/query-builders/query.cjs +32 -53
  594. package/sqlite-core/query-builders/query.cjs.map +1 -1
  595. package/sqlite-core/query-builders/query.d.cts +17 -18
  596. package/sqlite-core/query-builders/query.d.ts +17 -18
  597. package/sqlite-core/query-builders/query.js +32 -53
  598. package/sqlite-core/query-builders/query.js.map +1 -1
  599. package/sqlite-core/query-builders/select.cjs.map +1 -1
  600. package/sqlite-core/query-builders/select.d.cts +3 -3
  601. package/sqlite-core/query-builders/select.d.ts +3 -3
  602. package/sqlite-core/query-builders/select.js.map +1 -1
  603. package/sqlite-core/query-builders/update.cjs.map +1 -1
  604. package/sqlite-core/query-builders/update.d.cts +3 -3
  605. package/sqlite-core/query-builders/update.d.ts +3 -3
  606. package/sqlite-core/query-builders/update.js.map +1 -1
  607. package/sqlite-core/session.cjs +2 -6
  608. package/sqlite-core/session.cjs.map +1 -1
  609. package/sqlite-core/session.d.cts +7 -15
  610. package/sqlite-core/session.d.ts +7 -15
  611. package/sqlite-core/session.js +2 -6
  612. package/sqlite-core/session.js.map +1 -1
  613. package/sqlite-core/subquery.cjs.map +1 -1
  614. package/sqlite-core/subquery.d.cts +15 -2
  615. package/sqlite-core/subquery.d.ts +15 -2
  616. package/sqlite-proxy/driver.cjs +5 -23
  617. package/sqlite-proxy/driver.cjs.map +1 -1
  618. package/sqlite-proxy/driver.d.cts +3 -4
  619. package/sqlite-proxy/driver.d.ts +3 -4
  620. package/sqlite-proxy/driver.js +5 -13
  621. package/sqlite-proxy/driver.js.map +1 -1
  622. package/sqlite-proxy/migrator.cjs.map +1 -1
  623. package/sqlite-proxy/migrator.d.cts +1 -2
  624. package/sqlite-proxy/migrator.d.ts +1 -2
  625. package/sqlite-proxy/migrator.js.map +1 -1
  626. package/sqlite-proxy/session.cjs +6 -50
  627. package/sqlite-proxy/session.cjs.map +1 -1
  628. package/sqlite-proxy/session.d.cts +8 -14
  629. package/sqlite-proxy/session.d.ts +8 -14
  630. package/sqlite-proxy/session.js +6 -50
  631. package/sqlite-proxy/session.js.map +1 -1
  632. package/subquery.cjs.map +1 -1
  633. package/subquery.d.cts +1 -0
  634. package/subquery.d.ts +1 -0
  635. package/subquery.js.map +1 -1
  636. package/table.cjs.map +1 -1
  637. package/table.d.cts +1 -1
  638. package/table.d.ts +1 -1
  639. package/table.js.map +1 -1
  640. package/tidb-serverless/driver.cjs +5 -22
  641. package/tidb-serverless/driver.cjs.map +1 -1
  642. package/tidb-serverless/driver.d.cts +6 -7
  643. package/tidb-serverless/driver.d.ts +6 -7
  644. package/tidb-serverless/driver.js +8 -12
  645. package/tidb-serverless/driver.js.map +1 -1
  646. package/tidb-serverless/migrator.cjs.map +1 -1
  647. package/tidb-serverless/migrator.d.cts +1 -2
  648. package/tidb-serverless/migrator.d.ts +1 -2
  649. package/tidb-serverless/migrator.js.map +1 -1
  650. package/tidb-serverless/session.cjs +5 -62
  651. package/tidb-serverless/session.cjs.map +1 -1
  652. package/tidb-serverless/session.d.cts +9 -14
  653. package/tidb-serverless/session.d.ts +9 -14
  654. package/tidb-serverless/session.js +5 -62
  655. package/tidb-serverless/session.js.map +1 -1
  656. package/utils.cjs +2 -2
  657. package/utils.cjs.map +1 -1
  658. package/utils.d.cts +1 -3
  659. package/utils.d.ts +1 -3
  660. package/utils.js +2 -2
  661. package/utils.js.map +1 -1
  662. package/vercel-postgres/driver.cjs +7 -23
  663. package/vercel-postgres/driver.cjs.map +1 -1
  664. package/vercel-postgres/driver.d.cts +8 -9
  665. package/vercel-postgres/driver.d.ts +8 -9
  666. package/vercel-postgres/driver.js +10 -13
  667. package/vercel-postgres/driver.js.map +1 -1
  668. package/vercel-postgres/migrator.cjs.map +1 -1
  669. package/vercel-postgres/migrator.d.cts +1 -2
  670. package/vercel-postgres/migrator.d.ts +1 -2
  671. package/vercel-postgres/migrator.js.map +1 -1
  672. package/vercel-postgres/session.cjs +8 -34
  673. package/vercel-postgres/session.cjs.map +1 -1
  674. package/vercel-postgres/session.d.cts +10 -14
  675. package/vercel-postgres/session.d.ts +10 -14
  676. package/vercel-postgres/session.js +8 -34
  677. package/vercel-postgres/session.js.map +1 -1
  678. package/version.cjs +1 -1
  679. package/version.d.cts +1 -1
  680. package/version.d.ts +1 -1
  681. package/version.js +1 -1
  682. package/xata-http/driver.cjs +5 -17
  683. package/xata-http/driver.cjs.map +1 -1
  684. package/xata-http/driver.d.cts +4 -5
  685. package/xata-http/driver.d.ts +4 -5
  686. package/xata-http/driver.js +5 -7
  687. package/xata-http/driver.js.map +1 -1
  688. package/xata-http/migrator.cjs.map +1 -1
  689. package/xata-http/migrator.d.cts +1 -2
  690. package/xata-http/migrator.d.ts +1 -2
  691. package/xata-http/migrator.js.map +1 -1
  692. package/xata-http/session.cjs +2 -30
  693. package/xata-http/session.cjs.map +1 -1
  694. package/xata-http/session.d.cts +8 -13
  695. package/xata-http/session.d.ts +8 -13
  696. package/xata-http/session.js +2 -30
  697. package/xata-http/session.js.map +1 -1
  698. package/_relations.cjs +0 -328
  699. package/_relations.cjs.map +0 -1
  700. package/_relations.d.cts +0 -215
  701. package/_relations.d.ts +0 -215
  702. package/_relations.js +0 -316
  703. package/_relations.js.map +0 -1
  704. package/mysql-core/query-builders/_query.cjs +0 -149
  705. package/mysql-core/query-builders/_query.cjs.map +0 -1
  706. package/mysql-core/query-builders/_query.d.cts +0 -44
  707. package/mysql-core/query-builders/_query.d.ts +0 -44
  708. package/mysql-core/query-builders/_query.js +0 -114
  709. package/mysql-core/query-builders/_query.js.map +0 -1
  710. package/pg-core/query-builders/_query.cjs +0 -155
  711. package/pg-core/query-builders/_query.cjs.map +0 -1
  712. package/pg-core/query-builders/_query.d.cts +0 -47
  713. package/pg-core/query-builders/_query.d.ts +0 -47
  714. package/pg-core/query-builders/_query.js +0 -120
  715. package/pg-core/query-builders/_query.js.map +0 -1
  716. package/sqlite-core/query-builders/_query.cjs +0 -187
  717. package/sqlite-core/query-builders/_query.cjs.map +0 -1
  718. package/sqlite-core/query-builders/_query.d.cts +0 -55
  719. package/sqlite-core/query-builders/_query.d.ts +0 -55
  720. package/sqlite-core/query-builders/_query.js +0 -151
  721. package/sqlite-core/query-builders/_query.js.map +0 -1
@@ -1,52 +1,48 @@
1
1
  import { type QueryResult, type QueryResultRow, type VercelClient, VercelPool, type VercelPoolClient } from '@vercel/postgres';
2
- import type * as V1 from "../_relations.cjs";
3
2
  import { entityKind } from "../entity.cjs";
4
3
  import { type Logger } from "../logger.cjs";
5
4
  import { type PgDialect, PgTransaction } from "../pg-core/index.cjs";
6
5
  import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.cjs";
7
6
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.cjs";
8
7
  import { PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
9
- import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
10
- import { type Query } from "../sql/sql.cjs";
8
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
9
+ import { type Query, type SQL } from "../sql/sql.cjs";
11
10
  import { type Assume } from "../utils.cjs";
12
11
  export type VercelPgClient = VercelPool | VercelClient | VercelPoolClient;
13
- export declare class VercelPgPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
12
+ export declare class VercelPgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
14
13
  private client;
15
14
  private params;
16
15
  private logger;
17
16
  private fields;
18
17
  private _isResponseInArrayMode;
19
18
  private customResultMapper?;
20
- private isRqbV2Query?;
21
19
  static readonly [entityKind]: string;
22
20
  private rawQuery;
23
21
  private queryConfig;
24
- constructor(client: VercelPgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
22
+ constructor(client: VercelPgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
25
23
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
26
- private executeRqbV2;
27
24
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
28
25
  values(placeholderValues?: Record<string, unknown> | undefined): Promise<T['values']>;
29
26
  }
30
27
  export interface VercelPgSessionOptions {
31
28
  logger?: Logger;
32
29
  }
33
- export declare class VercelPgSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgSession<VercelPgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
30
+ export declare class VercelPgSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<VercelPgQueryResultHKT, TFullSchema, TSchema> {
34
31
  private client;
35
- private relations;
36
32
  private schema;
37
33
  private options;
38
34
  static readonly [entityKind]: string;
39
35
  private logger;
40
- constructor(client: VercelPgClient, dialect: PgDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: VercelPgSessionOptions);
36
+ constructor(client: VercelPgClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: VercelPgSessionOptions);
41
37
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
42
- prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
43
38
  query(query: string, params: unknown[]): Promise<QueryResult>;
44
39
  queryObjects<T extends QueryResultRow>(query: string, params: unknown[]): Promise<QueryResult<T>>;
45
- transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
40
+ count(sql: SQL): Promise<number>;
41
+ transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
46
42
  }
47
- export declare class VercelPgTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<VercelPgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
43
+ export declare class VercelPgTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<VercelPgQueryResultHKT, TFullSchema, TSchema> {
48
44
  static readonly [entityKind]: string;
49
- transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
45
+ transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
50
46
  }
51
47
  export interface VercelPgQueryResultHKT extends PgQueryResultHKT {
52
48
  type: QueryResult<Assume<this['row'], QueryResultRow>>;
@@ -1,52 +1,48 @@
1
1
  import { type QueryResult, type QueryResultRow, type VercelClient, VercelPool, type VercelPoolClient } from '@vercel/postgres';
2
- import type * as V1 from "../_relations.js";
3
2
  import { entityKind } from "../entity.js";
4
3
  import { type Logger } from "../logger.js";
5
4
  import { type PgDialect, PgTransaction } from "../pg-core/index.js";
6
5
  import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.js";
7
6
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.js";
8
7
  import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
9
- import type { AnyRelations, TablesRelationalConfig } from "../relations.js";
10
- import { type Query } from "../sql/sql.js";
8
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
9
+ import { type Query, type SQL } from "../sql/sql.js";
11
10
  import { type Assume } from "../utils.js";
12
11
  export type VercelPgClient = VercelPool | VercelClient | VercelPoolClient;
13
- export declare class VercelPgPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
12
+ export declare class VercelPgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
14
13
  private client;
15
14
  private params;
16
15
  private logger;
17
16
  private fields;
18
17
  private _isResponseInArrayMode;
19
18
  private customResultMapper?;
20
- private isRqbV2Query?;
21
19
  static readonly [entityKind]: string;
22
20
  private rawQuery;
23
21
  private queryConfig;
24
- constructor(client: VercelPgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
22
+ constructor(client: VercelPgClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
25
23
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
26
- private executeRqbV2;
27
24
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
28
25
  values(placeholderValues?: Record<string, unknown> | undefined): Promise<T['values']>;
29
26
  }
30
27
  export interface VercelPgSessionOptions {
31
28
  logger?: Logger;
32
29
  }
33
- export declare class VercelPgSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgSession<VercelPgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
30
+ export declare class VercelPgSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<VercelPgQueryResultHKT, TFullSchema, TSchema> {
34
31
  private client;
35
- private relations;
36
32
  private schema;
37
33
  private options;
38
34
  static readonly [entityKind]: string;
39
35
  private logger;
40
- constructor(client: VercelPgClient, dialect: PgDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: VercelPgSessionOptions);
36
+ constructor(client: VercelPgClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: VercelPgSessionOptions);
41
37
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
42
- prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
43
38
  query(query: string, params: unknown[]): Promise<QueryResult>;
44
39
  queryObjects<T extends QueryResultRow>(query: string, params: unknown[]): Promise<QueryResult<T>>;
45
- transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
40
+ count(sql: SQL): Promise<number>;
41
+ transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
46
42
  }
47
- export declare class VercelPgTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<VercelPgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
43
+ export declare class VercelPgTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<VercelPgQueryResultHKT, TFullSchema, TSchema> {
48
44
  static readonly [entityKind]: string;
49
- transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
45
+ transaction<T>(transaction: (tx: VercelPgTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
50
46
  }
51
47
  export interface VercelPgQueryResultHKT extends PgQueryResultHKT {
52
48
  type: QueryResult<Assume<this['row'], QueryResultRow>>;
@@ -9,7 +9,7 @@ import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
9
9
  import { fillPlaceholders, sql } from "../sql/sql.js";
10
10
  import { mapResultRow } from "../utils.js";
11
11
  class VercelPgPreparedQuery extends PgPreparedQuery {
12
- constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
12
+ constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, customResultMapper) {
13
13
  super({ sql: queryString, params });
14
14
  this.client = client;
15
15
  this.params = params;
@@ -17,7 +17,6 @@ class VercelPgPreparedQuery extends PgPreparedQuery {
17
17
  this.fields = fields;
18
18
  this._isResponseInArrayMode = _isResponseInArrayMode;
19
19
  this.customResultMapper = customResultMapper;
20
- this.isRqbV2Query = isRqbV2Query;
21
20
  this.rawQuery = {
22
21
  name,
23
22
  text: queryString,
@@ -68,8 +67,6 @@ class VercelPgPreparedQuery extends PgPreparedQuery {
68
67
  rawQuery;
69
68
  queryConfig;
70
69
  async execute(placeholderValues = {}) {
71
- if (this.isRqbV2Query)
72
- return this.executeRqbV2(placeholderValues);
73
70
  const params = fillPlaceholders(this.params, placeholderValues);
74
71
  this.logger.logQuery(this.rawQuery.text, params);
75
72
  const { fields, rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } = this;
@@ -82,13 +79,6 @@ class VercelPgPreparedQuery extends PgPreparedQuery {
82
79
  }
83
80
  return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
84
81
  }
85
- async executeRqbV2(placeholderValues = {}) {
86
- const params = fillPlaceholders(this.params, placeholderValues);
87
- this.logger.logQuery(this.rawQuery.text, params);
88
- const { rawQuery, client, customResultMapper } = this;
89
- const { rows } = await client.query(rawQuery, params);
90
- return customResultMapper(rows);
91
- }
92
82
  all(placeholderValues = {}) {
93
83
  const params = fillPlaceholders(this.params, placeholderValues);
94
84
  this.logger.logQuery(this.rawQuery.text, params);
@@ -105,10 +95,9 @@ class VercelPgPreparedQuery extends PgPreparedQuery {
105
95
  }
106
96
  }
107
97
  class VercelPgSession extends PgSession {
108
- constructor(client, dialect, relations, schema, options = {}) {
98
+ constructor(client, dialect, schema, options = {}) {
109
99
  super(dialect);
110
100
  this.client = client;
111
- this.relations = relations;
112
101
  this.schema = schema;
113
102
  this.options = options;
114
103
  this.logger = options.logger ?? new NoopLogger();
@@ -127,19 +116,6 @@ class VercelPgSession extends PgSession {
127
116
  customResultMapper
128
117
  );
129
118
  }
130
- prepareRelationalQuery(query, fields, name, customResultMapper) {
131
- return new VercelPgPreparedQuery(
132
- this.client,
133
- query.sql,
134
- query.params,
135
- this.logger,
136
- fields,
137
- name,
138
- false,
139
- customResultMapper,
140
- true
141
- );
142
- }
143
119
  async query(query, params) {
144
120
  this.logger.logQuery(query, params);
145
121
  const result = await this.client.query({
@@ -152,14 +128,13 @@ class VercelPgSession extends PgSession {
152
128
  async queryObjects(query, params) {
153
129
  return this.client.query(query, params);
154
130
  }
131
+ async count(sql2) {
132
+ const result = await this.execute(sql2);
133
+ return Number(result["rows"][0]["count"]);
134
+ }
155
135
  async transaction(transaction, config) {
156
- const session = this.client instanceof VercelPool ? new VercelPgSession(await this.client.connect(), this.dialect, this.relations, this.schema, this.options) : this;
157
- const tx = new VercelPgTransaction(
158
- this.dialect,
159
- session,
160
- this.relations,
161
- this.schema
162
- );
136
+ const session = this.client instanceof VercelPool ? new VercelPgSession(await this.client.connect(), this.dialect, this.schema, this.options) : this;
137
+ const tx = new VercelPgTransaction(this.dialect, session, this.schema);
163
138
  await tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : void 0}`);
164
139
  try {
165
140
  const result = await transaction(tx);
@@ -182,7 +157,6 @@ class VercelPgTransaction extends PgTransaction {
182
157
  const tx = new VercelPgTransaction(
183
158
  this.dialect,
184
159
  this.session,
185
- this.relations,
186
160
  this.schema,
187
161
  this.nestedIndex + 1
188
162
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/vercel-postgres/session.ts"],"sourcesContent":["import {\n\ttype QueryArrayConfig,\n\ttype QueryConfig,\n\ttype QueryResult,\n\ttype QueryResultRow,\n\ttypes,\n\ttype VercelClient,\n\tVercelPool,\n\ttype VercelPoolClient,\n} from '@vercel/postgres';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport { type PgDialect, PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport type VercelPgClient = VercelPool | VercelClient | VercelPoolClient;\n\nexport class VercelPgPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PgPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'VercelPgPreparedQuery';\n\n\tprivate rawQuery: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQuery = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\n\t\tconst { fields, rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.query(rawQuery, params);\n\t\t}\n\n\t\tconst { rows } = await client.query(query, params);\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => T['execute'])(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\n\t\tconst { rawQuery, client, customResultMapper } = this;\n\n\t\tconst { rows } = await client.query(rawQuery, params);\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\t\treturn this.client.query(this.rawQuery, params).then((result) => result.rows);\n\t}\n\n\tvalues(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\t\treturn this.client.query(this.queryConfig, params).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface VercelPgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class VercelPgSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<VercelPgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: VercelPgSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new VercelPgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new VercelPgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<QueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\trowMode: 'array',\n\t\t\ttext: query,\n\t\t\tvalues: params,\n\t\t});\n\t\treturn result;\n\t}\n\n\tasync queryObjects<T extends QueryResultRow>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<QueryResult<T>> {\n\t\treturn this.client.query<T>(query, params);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof VercelPool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new VercelPgSession(await this.client.connect(), this.dialect, this.relations, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof VercelPool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as VercelPoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class VercelPgTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<VercelPgQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new VercelPgTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface VercelPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/vercel-postgres/session.ts"],"sourcesContent":["import {\n\ttype QueryArrayConfig,\n\ttype QueryConfig,\n\ttype QueryResult,\n\ttype QueryResultRow,\n\ttypes,\n\ttype VercelClient,\n\tVercelPool,\n\ttype VercelPoolClient,\n} from '@vercel/postgres';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport { type PgDialect, PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport type VercelPgClient = VercelPool | VercelClient | VercelPoolClient;\n\nexport class VercelPgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'VercelPgPreparedQuery';\n\n\tprivate rawQuery: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQuery = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\n\t\tconst { fields, rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.query(rawQuery, params);\n\t\t}\n\n\t\tconst { rows } = await client.query(query, params);\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\t\treturn this.client.query(this.rawQuery, params).then((result) => result.rows);\n\t}\n\n\tvalues(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.rawQuery.text, params);\n\t\treturn this.client.query(this.queryConfig, params).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface VercelPgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class VercelPgSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<VercelPgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: VercelPgSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new VercelPgPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<QueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\trowMode: 'array',\n\t\t\ttext: query,\n\t\t\tvalues: params,\n\t\t});\n\t\treturn result;\n\t}\n\n\tasync queryObjects<T extends QueryResultRow>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<QueryResult<T>> {\n\t\treturn this.client.query<T>(query, params);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst result = await this.execute(sql);\n\n\t\treturn Number((result as any)['rows'][0]['count']);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: VercelPgTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof VercelPool // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t? new VercelPgSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new VercelPgTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof VercelPool) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t(session.client as VercelPoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class VercelPgTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<VercelPgQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: VercelPgTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new VercelPgTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface VercelPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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","names":["sql"]}
package/version.cjs CHANGED
@@ -26,7 +26,7 @@ __export(version_exports, {
26
26
  module.exports = __toCommonJS(version_exports);
27
27
 
28
28
  // package.json
29
- var version = "0.39.0-b06bbcd";
29
+ var version = "0.39.0";
30
30
 
31
31
  // src/version.ts
32
32
  var compatibilityVersion = 10;
package/version.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.39.0-b06bbcd";
1
+ var version = "0.39.0";
2
2
 
3
3
  declare const compatibilityVersion = 10;
4
4
 
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.39.0-b06bbcd";
1
+ var version = "0.39.0";
2
2
 
3
3
  declare const compatibilityVersion = 10;
4
4
 
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.39.0-b06bbcd";
2
+ var version = "0.39.0";
3
3
 
4
4
  // src/version.ts
5
5
  var compatibilityVersion = 10;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var driver_exports = {};
30
20
  __export(driver_exports, {
@@ -33,11 +23,11 @@ __export(driver_exports, {
33
23
  drizzle: () => drizzle
34
24
  });
35
25
  module.exports = __toCommonJS(driver_exports);
36
- var V1 = __toESM(require("../_relations.cjs"), 1);
37
26
  var import_entity = require("../entity.cjs");
38
27
  var import_logger = require("../logger.cjs");
39
28
  var import_db = require("../pg-core/db.cjs");
40
29
  var import_dialect = require("../pg-core/dialect.cjs");
30
+ var import_relations = require("../relations.cjs");
41
31
  var import_session = require("./session.cjs");
42
32
  class XataHttpDriver {
43
33
  constructor(client, dialect, options = {}) {
@@ -47,8 +37,8 @@ class XataHttpDriver {
47
37
  this.initMappers();
48
38
  }
49
39
  static [import_entity.entityKind] = "XataDriver";
50
- createSession(relations, schema) {
51
- return new import_session.XataHttpSession(this.client, this.dialect, relations, schema, {
40
+ createSession(schema) {
41
+ return new import_session.XataHttpSession(this.client, this.dialect, schema, {
52
42
  logger: this.options.logger
53
43
  });
54
44
  }
@@ -68,20 +58,18 @@ function drizzle(client, config = {}) {
68
58
  }
69
59
  let schema;
70
60
  if (config.schema) {
71
- const tablesConfig = V1.extractTablesRelationalConfig(config.schema, V1.createTableRelationsHelpers);
61
+ const tablesConfig = (0, import_relations.extractTablesRelationalConfig)(config.schema, import_relations.createTableRelationsHelpers);
72
62
  schema = {
73
63
  fullSchema: config.schema,
74
64
  schema: tablesConfig.tables,
75
65
  tableNamesMap: tablesConfig.tableNamesMap
76
66
  };
77
67
  }
78
- const relations = config.relations;
79
68
  const driver = new XataHttpDriver(client, dialect, { logger });
80
- const session = driver.createSession(relations, schema);
69
+ const session = driver.createSession(schema);
81
70
  const db = new XataHttpDatabase(
82
71
  dialect,
83
72
  session,
84
- relations,
85
73
  schema
86
74
  );
87
75
  db.$client = client;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/xata-http/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { XataHttpClient, XataHttpQueryResultHKT } from './session.ts';\nimport { XataHttpSession } from './session.ts';\n\nexport interface XataDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class XataHttpDriver {\n\tstatic readonly [entityKind]: string = 'XataDriver';\n\n\tconstructor(\n\t\tprivate client: XataHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: XataDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\trelations: AnyRelations | undefined,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): XataHttpSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig> {\n\t\treturn new XataHttpSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t});\n\t}\n\n\tinitMappers() {\n\t\t// TODO: Add custom type parsers\n\t}\n}\n\nexport class XataHttpDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<XataHttpQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'XataHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: XataHttpSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tExtractTablesWithRelations<TRelations>,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: XataHttpClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): XataHttpDatabase<TSchema, TRelations> & {\n\t$client: XataHttpClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(config.schema, V1.createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst driver = new XataHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(relations, schema);\n\n\tconst db = new XataHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<V1.ExtractTablesWithRelations<TSchema>> | undefined,\n\t);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAI1B,qBAAgC;AAMzB,MAAM,eAAe;AAAA,EAG3B,YACS,QACA,SACA,UAA6B,CAAC,GACrC;AAHO;AACA;AACA;AAER,SAAK,YAAY;AAAA,EAClB;AAAA,EARA,QAAiB,wBAAU,IAAY;AAAA,EAUvC,cACC,WACA,QAC4G;AAC5G,WAAO,IAAI,+BAAgB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;AAAA,MACxE,QAAQ,KAAK,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF;AAAA,EAEA,cAAc;AAAA,EAEd;AACD;AAEO,MAAM,yBAGH,qBAAwD;AAAA,EACjE,QAA0B,wBAAU,IAAY;AASjD;AAEO,SAAS,QAIf,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG,8BAA8B,OAAO,QAAQ,GAAG,2BAA2B;AACnG,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,WAAW,MAAM;AAEtD,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/xata-http/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { XataHttpClient, XataHttpQueryResultHKT } from './session.ts';\nimport { XataHttpSession } from './session.ts';\n\nexport interface XataDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class XataHttpDriver {\n\tstatic readonly [entityKind]: string = 'XataDriver';\n\n\tconstructor(\n\t\tprivate client: XataHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: XataDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): XataHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new XataHttpSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t});\n\t}\n\n\tinitMappers() {\n\t\t// TODO: Add custom type parsers\n\t}\n}\n\nexport class XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends PgDatabase<XataHttpQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'XataHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: XataHttpSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: XataHttpClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): XataHttpDatabase<TSchema> & {\n\t$client: XataHttpClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new XataHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\n\tconst db = new XataHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\tschema as RelationalSchemaConfig<ExtractTablesWithRelations<TSchema>> | undefined,\n\t);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAE1B,uBAA2E;AAG3E,qBAAgC;AAMzB,MAAM,eAAe;AAAA,EAG3B,YACS,QACA,SACA,UAA6B,CAAC,GACrC;AAHO;AACA;AACA;AAER,SAAK,YAAY;AAAA,EAClB;AAAA,EARA,QAAiB,wBAAU,IAAY;AAAA,EAUvC,cACC,QACmE;AACnE,WAAO,IAAI,+BAAgB,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC7D,QAAQ,KAAK,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF;AAAA,EAEA,cAAc;AAAA,EAEd;AACD;AAEO,MAAM,yBACJ,qBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAIjD;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe,gDAA8B,OAAO,QAAQ,4CAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,MAAM;AAE3C,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1,9 +1,8 @@
1
- import * as V1 from "../_relations.cjs";
2
1
  import { entityKind } from "../entity.cjs";
3
2
  import type { Logger } from "../logger.cjs";
4
3
  import { PgDatabase } from "../pg-core/db.cjs";
5
4
  import { PgDialect } from "../pg-core/dialect.cjs";
6
- import type { AnyRelations, EmptyRelations, TablesRelationalConfig } from "../relations.cjs";
5
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
7
6
  import type { DrizzleConfig } from "../utils.cjs";
8
7
  import type { XataHttpClient, XataHttpQueryResultHKT } from "./session.cjs";
9
8
  import { XataHttpSession } from "./session.cjs";
@@ -16,12 +15,12 @@ export declare class XataHttpDriver {
16
15
  private options;
17
16
  static readonly [entityKind]: string;
18
17
  constructor(client: XataHttpClient, dialect: PgDialect, options?: XataDriverOptions);
19
- createSession(relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined): XataHttpSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig>;
18
+ createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): XataHttpSession<Record<string, unknown>, TablesRelationalConfig>;
20
19
  initMappers(): void;
21
20
  }
22
- export declare class XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<XataHttpQueryResultHKT, TSchema, TRelations> {
21
+ export declare class XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<XataHttpQueryResultHKT, TSchema> {
23
22
  static readonly [entityKind]: string;
24
23
  }
25
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(client: XataHttpClient, config?: DrizzleConfig<TSchema, TRelations>): XataHttpDatabase<TSchema, TRelations> & {
24
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: XataHttpClient, config?: DrizzleConfig<TSchema>): XataHttpDatabase<TSchema> & {
26
25
  $client: XataHttpClient;
27
26
  };
@@ -1,9 +1,8 @@
1
- import * as V1 from "../_relations.js";
2
1
  import { entityKind } from "../entity.js";
3
2
  import type { Logger } from "../logger.js";
4
3
  import { PgDatabase } from "../pg-core/db.js";
5
4
  import { PgDialect } from "../pg-core/dialect.js";
6
- import type { AnyRelations, EmptyRelations, TablesRelationalConfig } from "../relations.js";
5
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
7
6
  import type { DrizzleConfig } from "../utils.js";
8
7
  import type { XataHttpClient, XataHttpQueryResultHKT } from "./session.js";
9
8
  import { XataHttpSession } from "./session.js";
@@ -16,12 +15,12 @@ export declare class XataHttpDriver {
16
15
  private options;
17
16
  static readonly [entityKind]: string;
18
17
  constructor(client: XataHttpClient, dialect: PgDialect, options?: XataDriverOptions);
19
- createSession(relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined): XataHttpSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig>;
18
+ createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): XataHttpSession<Record<string, unknown>, TablesRelationalConfig>;
20
19
  initMappers(): void;
21
20
  }
22
- export declare class XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<XataHttpQueryResultHKT, TSchema, TRelations> {
21
+ export declare class XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<XataHttpQueryResultHKT, TSchema> {
23
22
  static readonly [entityKind]: string;
24
23
  }
25
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(client: XataHttpClient, config?: DrizzleConfig<TSchema, TRelations>): XataHttpDatabase<TSchema, TRelations> & {
24
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: XataHttpClient, config?: DrizzleConfig<TSchema>): XataHttpDatabase<TSchema> & {
26
25
  $client: XataHttpClient;
27
26
  };
@@ -1,8 +1,8 @@
1
- import * as V1 from "../_relations.js";
2
1
  import { entityKind } from "../entity.js";
3
2
  import { DefaultLogger } from "../logger.js";
4
3
  import { PgDatabase } from "../pg-core/db.js";
5
4
  import { PgDialect } from "../pg-core/dialect.js";
5
+ import { createTableRelationsHelpers, extractTablesRelationalConfig } from "../relations.js";
6
6
  import { XataHttpSession } from "./session.js";
7
7
  class XataHttpDriver {
8
8
  constructor(client, dialect, options = {}) {
@@ -12,8 +12,8 @@ class XataHttpDriver {
12
12
  this.initMappers();
13
13
  }
14
14
  static [entityKind] = "XataDriver";
15
- createSession(relations, schema) {
16
- return new XataHttpSession(this.client, this.dialect, relations, schema, {
15
+ createSession(schema) {
16
+ return new XataHttpSession(this.client, this.dialect, schema, {
17
17
  logger: this.options.logger
18
18
  });
19
19
  }
@@ -33,20 +33,18 @@ function drizzle(client, config = {}) {
33
33
  }
34
34
  let schema;
35
35
  if (config.schema) {
36
- const tablesConfig = V1.extractTablesRelationalConfig(config.schema, V1.createTableRelationsHelpers);
36
+ const tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);
37
37
  schema = {
38
38
  fullSchema: config.schema,
39
39
  schema: tablesConfig.tables,
40
40
  tableNamesMap: tablesConfig.tableNamesMap
41
41
  };
42
42
  }
43
- const relations = config.relations;
44
43
  const driver = new XataHttpDriver(client, dialect, { logger });
45
- const session = driver.createSession(relations, schema);
44
+ const session = driver.createSession(schema);
46
45
  const db = new XataHttpDatabase(
47
46
  dialect,
48
47
  session,
49
- relations,
50
48
  schema
51
49
  );
52
50
  db.$client = client;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/xata-http/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { XataHttpClient, XataHttpQueryResultHKT } from './session.ts';\nimport { XataHttpSession } from './session.ts';\n\nexport interface XataDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class XataHttpDriver {\n\tstatic readonly [entityKind]: string = 'XataDriver';\n\n\tconstructor(\n\t\tprivate client: XataHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: XataDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\trelations: AnyRelations | undefined,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): XataHttpSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig> {\n\t\treturn new XataHttpSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t});\n\t}\n\n\tinitMappers() {\n\t\t// TODO: Add custom type parsers\n\t}\n}\n\nexport class XataHttpDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<XataHttpQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'XataHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: XataHttpSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tExtractTablesWithRelations<TRelations>,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: XataHttpClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): XataHttpDatabase<TSchema, TRelations> & {\n\t$client: XataHttpClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(config.schema, V1.createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst driver = new XataHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(relations, schema);\n\n\tconst db = new XataHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<V1.ExtractTablesWithRelations<TSchema>> | undefined,\n\t);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAI1B,SAAS,uBAAuB;AAMzB,MAAM,eAAe;AAAA,EAG3B,YACS,QACA,SACA,UAA6B,CAAC,GACrC;AAHO;AACA;AACA;AAER,SAAK,YAAY;AAAA,EAClB;AAAA,EARA,QAAiB,UAAU,IAAY;AAAA,EAUvC,cACC,WACA,QAC4G;AAC5G,WAAO,IAAI,gBAAgB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;AAAA,MACxE,QAAQ,KAAK,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF;AAAA,EAEA,cAAc;AAAA,EAEd;AACD;AAEO,MAAM,yBAGH,WAAwD;AAAA,EACjE,QAA0B,UAAU,IAAY;AASjD;AAEO,SAAS,QAIf,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG,8BAA8B,OAAO,QAAQ,GAAG,2BAA2B;AACnG,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,WAAW,MAAM;AAEtD,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/xata-http/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { XataHttpClient, XataHttpQueryResultHKT } from './session.ts';\nimport { XataHttpSession } from './session.ts';\n\nexport interface XataDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class XataHttpDriver {\n\tstatic readonly [entityKind]: string = 'XataDriver';\n\n\tconstructor(\n\t\tprivate client: XataHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: XataDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): XataHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new XataHttpSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t});\n\t}\n\n\tinitMappers() {\n\t\t// TODO: Add custom type parsers\n\t}\n}\n\nexport class XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends PgDatabase<XataHttpQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'XataHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: XataHttpSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: XataHttpClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): XataHttpDatabase<TSchema> & {\n\t$client: XataHttpClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new XataHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\n\tconst db = new XataHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\tschema as RelationalSchemaConfig<ExtractTablesWithRelations<TSchema>> | undefined,\n\t);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAE1B,SAAS,6BAA6B,qCAAqC;AAG3E,SAAS,uBAAuB;AAMzB,MAAM,eAAe;AAAA,EAG3B,YACS,QACA,SACA,UAA6B,CAAC,GACrC;AAHO;AACA;AACA;AAER,SAAK,YAAY;AAAA,EAClB;AAAA,EARA,QAAiB,UAAU,IAAY;AAAA,EAUvC,cACC,QACmE;AACnE,WAAO,IAAI,gBAAgB,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC7D,QAAQ,KAAK,QAAQ;AAAA,IACtB,CAAC;AAAA,EACF;AAAA,EAEA,cAAc;AAAA,EAEd;AACD;AAEO,MAAM,yBACJ,WACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAIjD;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,8BAA8B,OAAO,QAAQ,2BAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,MAAM;AAE3C,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/xata-http/migrator.ts"],"sourcesContent":["import { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { XataHttpDatabase } from './driver.ts';\n\nexport interface MigrationConfig {\n\tmigrationsFolder: string;\n\tmigrationsTable?: string;\n}\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Xata HTTP driver does not support transactions. This means that if any part of a migration fails,\n * no rollback will be executed. Currently, you will need to handle unsuccessful migration yourself.\n * @param db - drizzle db instance\n * @param config - path to migration folder generated by drizzle-kit\n */ export async function migrate<\n\tTSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tdb: XataHttpDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at bigint\n\t\t)\n\t`;\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{\n\t\tid: number;\n\t\thash: string;\n\t\tcreated_at: string;\n\t}>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsTable)} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\n\tfor await (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tawait db.session.execute(sql.raw(stmt));\n\t\t\t}\n\n\t\t\tawait db.session.execute(\n\t\t\t\tsql`insert into ${\n\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t} (\"hash\", \"created_at\") values(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAmC;AAEnC,iBAAoB;AAehB,eAAsB,QAIzB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAClD,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IAKrC,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC;AAEtC,mBAAiB,aAAa,YAAY;AACzC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,UAAU,IAAI,UAAU,cAAc;AACpF,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,eAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,YAAM,GAAG,QAAQ;AAAA,QAChB,6BACC,eAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/xata-http/migrator.ts"],"sourcesContent":["import { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { XataHttpDatabase } from './driver.ts';\n\nexport interface MigrationConfig {\n\tmigrationsFolder: string;\n\tmigrationsTable?: string;\n}\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Xata HTTP driver does not support transactions. This means that if any part of a migration fails,\n * no rollback will be executed. Currently, you will need to handle unsuccessful migration yourself.\n * @param db - drizzle db instance\n * @param config - path to migration folder generated by drizzle-kit\n */ export async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: XataHttpDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at bigint\n\t\t)\n\t`;\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{\n\t\tid: number;\n\t\thash: string;\n\t\tcreated_at: string;\n\t}>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsTable)} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\n\tfor await (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tawait db.session.execute(sql.raw(stmt));\n\t\t\t}\n\n\t\t\tawait db.session.execute(\n\t\t\t\tsql`insert into ${\n\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t} (\"hash\", \"created_at\") values(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAmC;AACnC,iBAAoB;AAehB,eAAsB,QACzB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAClD,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IAKrC,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC;AAEtC,mBAAiB,aAAa,YAAY;AACzC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,UAAU,IAAI,UAAU,cAAc;AACpF,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,eAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,YAAM,GAAG,QAAQ;AAAA,QAChB,6BACC,eAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -1,4 +1,3 @@
1
- import type { AnyRelations, EmptyRelations } from "../relations.cjs";
2
1
  import type { XataHttpDatabase } from "./driver.cjs";
3
2
  export interface MigrationConfig {
4
3
  migrationsFolder: string;
@@ -11,4 +10,4 @@ export interface MigrationConfig {
11
10
  * no rollback will be executed. Currently, you will need to handle unsuccessful migration yourself.
12
11
  * @param db - drizzle db instance
13
12
  * @param config - path to migration folder generated by drizzle-kit
14
- */ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations = EmptyRelations>(db: XataHttpDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
13
+ */ export declare function migrate<TSchema extends Record<string, unknown>>(db: XataHttpDatabase<TSchema>, config: MigrationConfig): Promise<void>;
@@ -1,4 +1,3 @@
1
- import type { AnyRelations, EmptyRelations } from "../relations.js";
2
1
  import type { XataHttpDatabase } from "./driver.js";
3
2
  export interface MigrationConfig {
4
3
  migrationsFolder: string;
@@ -11,4 +10,4 @@ export interface MigrationConfig {
11
10
  * no rollback will be executed. Currently, you will need to handle unsuccessful migration yourself.
12
11
  * @param db - drizzle db instance
13
12
  * @param config - path to migration folder generated by drizzle-kit
14
- */ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations = EmptyRelations>(db: XataHttpDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
13
+ */ export declare function migrate<TSchema extends Record<string, unknown>>(db: XataHttpDatabase<TSchema>, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/xata-http/migrator.ts"],"sourcesContent":["import { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { XataHttpDatabase } from './driver.ts';\n\nexport interface MigrationConfig {\n\tmigrationsFolder: string;\n\tmigrationsTable?: string;\n}\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Xata HTTP driver does not support transactions. This means that if any part of a migration fails,\n * no rollback will be executed. Currently, you will need to handle unsuccessful migration yourself.\n * @param db - drizzle db instance\n * @param config - path to migration folder generated by drizzle-kit\n */ export async function migrate<\n\tTSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tdb: XataHttpDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at bigint\n\t\t)\n\t`;\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{\n\t\tid: number;\n\t\thash: string;\n\t\tcreated_at: string;\n\t}>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsTable)} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\n\tfor await (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tawait db.session.execute(sql.raw(stmt));\n\t\t\t}\n\n\t\t\tawait db.session.execute(\n\t\t\t\tsql`insert into ${\n\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t} (\"hash\", \"created_at\") values(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AAEnC,SAAS,WAAW;AAehB,eAAsB,QAIzB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAClD,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IAKrC,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC;AAEtC,mBAAiB,aAAa,YAAY;AACzC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,UAAU,IAAI,UAAU,cAAc;AACpF,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,IAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,YAAM,GAAG,QAAQ;AAAA,QAChB,kBACC,IAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/xata-http/migrator.ts"],"sourcesContent":["import { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { XataHttpDatabase } from './driver.ts';\n\nexport interface MigrationConfig {\n\tmigrationsFolder: string;\n\tmigrationsTable?: string;\n}\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Xata HTTP driver does not support transactions. This means that if any part of a migration fails,\n * no rollback will be executed. Currently, you will need to handle unsuccessful migration yourself.\n * @param db - drizzle db instance\n * @param config - path to migration folder generated by drizzle-kit\n */ export async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: XataHttpDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at bigint\n\t\t)\n\t`;\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{\n\t\tid: number;\n\t\thash: string;\n\t\tcreated_at: string;\n\t}>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsTable)} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\n\tfor await (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tawait db.session.execute(sql.raw(stmt));\n\t\t\t}\n\n\t\t\tawait db.session.execute(\n\t\t\t\tsql`insert into ${\n\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t} (\"hash\", \"created_at\") values(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AACnC,SAAS,WAAW;AAehB,eAAsB,QACzB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAClD,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IAKrC,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC;AAEtC,mBAAiB,aAAa,YAAY;AACzC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,UAAU,IAAI,UAAU,cAAc;AACpF,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,IAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,YAAM,GAAG,QAAQ;AAAA,QAChB,kBACC,IAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AACD;","names":[]}