drizzle-orm 0.33.0 → 0.34.0-06c725b

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 (864) hide show
  1. package/aws-data-api/pg/driver.cjs +12 -9
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +5 -3
  4. package/aws-data-api/pg/driver.d.ts +5 -3
  5. package/aws-data-api/pg/driver.js +6 -3
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/migrator.cjs.map +1 -1
  8. package/aws-data-api/pg/migrator.d.cts +1 -1
  9. package/aws-data-api/pg/migrator.d.ts +1 -1
  10. package/aws-data-api/pg/migrator.js.map +1 -1
  11. package/better-sqlite3/driver.cjs +10 -2
  12. package/better-sqlite3/driver.cjs.map +1 -1
  13. package/better-sqlite3/driver.d.cts +7 -2
  14. package/better-sqlite3/driver.d.ts +7 -2
  15. package/better-sqlite3/driver.js +9 -2
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/migrator.cjs.map +1 -1
  18. package/better-sqlite3/migrator.d.cts +1 -1
  19. package/better-sqlite3/migrator.d.ts +1 -1
  20. package/better-sqlite3/migrator.js.map +1 -1
  21. package/bun-sqlite/driver.cjs +10 -2
  22. package/bun-sqlite/driver.cjs.map +1 -1
  23. package/bun-sqlite/driver.d.cts +7 -2
  24. package/bun-sqlite/driver.d.ts +7 -2
  25. package/bun-sqlite/driver.js +9 -2
  26. package/bun-sqlite/driver.js.map +1 -1
  27. package/bun-sqlite/migrator.cjs.map +1 -1
  28. package/bun-sqlite/migrator.d.cts +1 -1
  29. package/bun-sqlite/migrator.d.ts +1 -1
  30. package/bun-sqlite/migrator.js.map +1 -1
  31. package/casing.cjs +85 -0
  32. package/casing.cjs.map +1 -0
  33. package/casing.d.cts +14 -0
  34. package/casing.d.ts +14 -0
  35. package/casing.js +59 -0
  36. package/casing.js.map +1 -0
  37. package/column-builder.cjs +7 -0
  38. package/column-builder.cjs.map +1 -1
  39. package/column-builder.d.cts +7 -2
  40. package/column-builder.d.ts +7 -2
  41. package/column-builder.js +7 -0
  42. package/column-builder.js.map +1 -1
  43. package/column.cjs +3 -0
  44. package/column.cjs.map +1 -1
  45. package/column.js +3 -0
  46. package/column.js.map +1 -1
  47. package/connect.cjs +25 -0
  48. package/connect.cjs.map +1 -0
  49. package/connect.d.cts +2 -0
  50. package/connect.d.ts +2 -0
  51. package/connect.js +3 -0
  52. package/connect.js.map +1 -0
  53. package/d1/driver.cjs +4 -2
  54. package/d1/driver.cjs.map +1 -1
  55. package/d1/driver.d.cts +6 -2
  56. package/d1/driver.d.ts +6 -2
  57. package/d1/driver.js +4 -2
  58. package/d1/driver.js.map +1 -1
  59. package/d1/migrator.cjs +1 -1
  60. package/d1/migrator.cjs.map +1 -1
  61. package/d1/migrator.d.cts +1 -1
  62. package/d1/migrator.d.ts +1 -1
  63. package/d1/migrator.js +1 -1
  64. package/d1/migrator.js.map +1 -1
  65. package/expo-sqlite/driver.cjs +10 -2
  66. package/expo-sqlite/driver.cjs.map +1 -1
  67. package/expo-sqlite/driver.d.cts +7 -2
  68. package/expo-sqlite/driver.d.ts +7 -2
  69. package/expo-sqlite/driver.js +9 -2
  70. package/expo-sqlite/driver.js.map +1 -1
  71. package/expo-sqlite/query.cjs +8 -6
  72. package/expo-sqlite/query.cjs.map +1 -1
  73. package/expo-sqlite/query.js +3 -1
  74. package/expo-sqlite/query.js.map +1 -1
  75. package/libsql/driver.cjs +4 -2
  76. package/libsql/driver.cjs.map +1 -1
  77. package/libsql/driver.d.cts +3 -1
  78. package/libsql/driver.d.ts +3 -1
  79. package/libsql/driver.js +4 -2
  80. package/libsql/driver.js.map +1 -1
  81. package/libsql/migrator.cjs +2 -2
  82. package/libsql/migrator.cjs.map +1 -1
  83. package/libsql/migrator.js +2 -2
  84. package/libsql/migrator.js.map +1 -1
  85. package/libsql/session.cjs +12 -0
  86. package/libsql/session.cjs.map +1 -1
  87. package/libsql/session.d.cts +1 -0
  88. package/libsql/session.d.ts +1 -0
  89. package/libsql/session.js +12 -0
  90. package/libsql/session.js.map +1 -1
  91. package/migrator.cjs +1 -12
  92. package/migrator.cjs.map +1 -1
  93. package/migrator.d.cts +1 -1
  94. package/migrator.d.ts +1 -1
  95. package/migrator.js +1 -12
  96. package/migrator.js.map +1 -1
  97. package/monodriver.cjs +283 -0
  98. package/monodriver.cjs.map +1 -0
  99. package/monodriver.d.cts +194 -0
  100. package/monodriver.d.ts +194 -0
  101. package/monodriver.js +249 -0
  102. package/monodriver.js.map +1 -0
  103. package/monomigrator.cjs +99 -0
  104. package/monomigrator.cjs.map +1 -0
  105. package/monomigrator.d.cts +16 -0
  106. package/monomigrator.d.ts +16 -0
  107. package/monomigrator.js +65 -0
  108. package/monomigrator.js.map +1 -0
  109. package/mysql-core/columns/all.cjs +80 -0
  110. package/mysql-core/columns/all.cjs.map +1 -0
  111. package/mysql-core/columns/all.d.cts +51 -0
  112. package/mysql-core/columns/all.d.ts +51 -0
  113. package/mysql-core/columns/all.js +56 -0
  114. package/mysql-core/columns/all.js.map +1 -0
  115. package/mysql-core/columns/bigint.cjs +3 -1
  116. package/mysql-core/columns/bigint.cjs.map +1 -1
  117. package/mysql-core/columns/bigint.d.cts +2 -2
  118. package/mysql-core/columns/bigint.d.ts +2 -2
  119. package/mysql-core/columns/bigint.js +3 -1
  120. package/mysql-core/columns/bigint.js.map +1 -1
  121. package/mysql-core/columns/binary.cjs +3 -1
  122. package/mysql-core/columns/binary.cjs.map +1 -1
  123. package/mysql-core/columns/binary.d.cts +2 -0
  124. package/mysql-core/columns/binary.d.ts +2 -0
  125. package/mysql-core/columns/binary.js +3 -1
  126. package/mysql-core/columns/binary.js.map +1 -1
  127. package/mysql-core/columns/boolean.cjs +1 -1
  128. package/mysql-core/columns/boolean.cjs.map +1 -1
  129. package/mysql-core/columns/boolean.d.cts +1 -0
  130. package/mysql-core/columns/boolean.d.ts +1 -0
  131. package/mysql-core/columns/boolean.js +1 -1
  132. package/mysql-core/columns/boolean.js.map +1 -1
  133. package/mysql-core/columns/char.cjs +3 -1
  134. package/mysql-core/columns/char.cjs.map +1 -1
  135. package/mysql-core/columns/char.d.cts +4 -2
  136. package/mysql-core/columns/char.d.ts +4 -2
  137. package/mysql-core/columns/char.js +3 -1
  138. package/mysql-core/columns/char.js.map +1 -1
  139. package/mysql-core/columns/custom.cjs +4 -2
  140. package/mysql-core/columns/custom.cjs.map +1 -1
  141. package/mysql-core/columns/custom.d.cts +10 -3
  142. package/mysql-core/columns/custom.d.ts +10 -3
  143. package/mysql-core/columns/custom.js +4 -2
  144. package/mysql-core/columns/custom.js.map +1 -1
  145. package/mysql-core/columns/date.cjs +4 -2
  146. package/mysql-core/columns/date.cjs.map +1 -1
  147. package/mysql-core/columns/date.d.cts +3 -1
  148. package/mysql-core/columns/date.d.ts +3 -1
  149. package/mysql-core/columns/date.js +4 -2
  150. package/mysql-core/columns/date.js.map +1 -1
  151. package/mysql-core/columns/datetime.cjs +4 -2
  152. package/mysql-core/columns/datetime.cjs.map +1 -1
  153. package/mysql-core/columns/datetime.d.cts +3 -1
  154. package/mysql-core/columns/datetime.d.ts +3 -1
  155. package/mysql-core/columns/datetime.js +4 -2
  156. package/mysql-core/columns/datetime.js.map +1 -1
  157. package/mysql-core/columns/decimal.cjs +3 -1
  158. package/mysql-core/columns/decimal.cjs.map +1 -1
  159. package/mysql-core/columns/decimal.d.cts +2 -0
  160. package/mysql-core/columns/decimal.d.ts +2 -0
  161. package/mysql-core/columns/decimal.js +3 -1
  162. package/mysql-core/columns/decimal.js.map +1 -1
  163. package/mysql-core/columns/double.cjs +3 -1
  164. package/mysql-core/columns/double.cjs.map +1 -1
  165. package/mysql-core/columns/double.d.cts +2 -0
  166. package/mysql-core/columns/double.d.ts +2 -0
  167. package/mysql-core/columns/double.js +3 -1
  168. package/mysql-core/columns/double.js.map +1 -1
  169. package/mysql-core/columns/enum.cjs +3 -1
  170. package/mysql-core/columns/enum.cjs.map +1 -1
  171. package/mysql-core/columns/enum.d.cts +2 -1
  172. package/mysql-core/columns/enum.d.ts +2 -1
  173. package/mysql-core/columns/enum.js +3 -1
  174. package/mysql-core/columns/enum.js.map +1 -1
  175. package/mysql-core/columns/float.cjs +1 -1
  176. package/mysql-core/columns/float.cjs.map +1 -1
  177. package/mysql-core/columns/float.d.cts +1 -0
  178. package/mysql-core/columns/float.d.ts +1 -0
  179. package/mysql-core/columns/float.js +1 -1
  180. package/mysql-core/columns/float.js.map +1 -1
  181. package/mysql-core/columns/int.cjs +3 -1
  182. package/mysql-core/columns/int.cjs.map +1 -1
  183. package/mysql-core/columns/int.d.cts +2 -0
  184. package/mysql-core/columns/int.d.ts +2 -0
  185. package/mysql-core/columns/int.js +3 -1
  186. package/mysql-core/columns/int.js.map +1 -1
  187. package/mysql-core/columns/json.cjs +1 -1
  188. package/mysql-core/columns/json.cjs.map +1 -1
  189. package/mysql-core/columns/json.d.cts +1 -0
  190. package/mysql-core/columns/json.d.ts +1 -0
  191. package/mysql-core/columns/json.js +1 -1
  192. package/mysql-core/columns/json.js.map +1 -1
  193. package/mysql-core/columns/mediumint.cjs +3 -1
  194. package/mysql-core/columns/mediumint.cjs.map +1 -1
  195. package/mysql-core/columns/mediumint.d.cts +2 -0
  196. package/mysql-core/columns/mediumint.d.ts +2 -0
  197. package/mysql-core/columns/mediumint.js +3 -1
  198. package/mysql-core/columns/mediumint.js.map +1 -1
  199. package/mysql-core/columns/real.cjs +3 -1
  200. package/mysql-core/columns/real.cjs.map +1 -1
  201. package/mysql-core/columns/real.d.cts +2 -0
  202. package/mysql-core/columns/real.d.ts +2 -0
  203. package/mysql-core/columns/real.js +3 -1
  204. package/mysql-core/columns/real.js.map +1 -1
  205. package/mysql-core/columns/serial.cjs +1 -1
  206. package/mysql-core/columns/serial.cjs.map +1 -1
  207. package/mysql-core/columns/serial.d.cts +1 -0
  208. package/mysql-core/columns/serial.d.ts +1 -0
  209. package/mysql-core/columns/serial.js +1 -1
  210. package/mysql-core/columns/serial.js.map +1 -1
  211. package/mysql-core/columns/smallint.cjs +3 -1
  212. package/mysql-core/columns/smallint.cjs.map +1 -1
  213. package/mysql-core/columns/smallint.d.cts +2 -0
  214. package/mysql-core/columns/smallint.d.ts +2 -0
  215. package/mysql-core/columns/smallint.js +3 -1
  216. package/mysql-core/columns/smallint.js.map +1 -1
  217. package/mysql-core/columns/text.cjs +9 -4
  218. package/mysql-core/columns/text.cjs.map +1 -1
  219. package/mysql-core/columns/text.d.cts +10 -2
  220. package/mysql-core/columns/text.d.ts +10 -2
  221. package/mysql-core/columns/text.js +9 -4
  222. package/mysql-core/columns/text.js.map +1 -1
  223. package/mysql-core/columns/time.cjs +3 -1
  224. package/mysql-core/columns/time.cjs.map +1 -1
  225. package/mysql-core/columns/time.d.cts +2 -0
  226. package/mysql-core/columns/time.d.ts +2 -0
  227. package/mysql-core/columns/time.js +3 -1
  228. package/mysql-core/columns/time.js.map +1 -1
  229. package/mysql-core/columns/timestamp.cjs +4 -2
  230. package/mysql-core/columns/timestamp.cjs.map +1 -1
  231. package/mysql-core/columns/timestamp.d.cts +3 -1
  232. package/mysql-core/columns/timestamp.d.ts +3 -1
  233. package/mysql-core/columns/timestamp.js +4 -2
  234. package/mysql-core/columns/timestamp.js.map +1 -1
  235. package/mysql-core/columns/tinyint.cjs +3 -1
  236. package/mysql-core/columns/tinyint.cjs.map +1 -1
  237. package/mysql-core/columns/tinyint.d.cts +2 -0
  238. package/mysql-core/columns/tinyint.d.ts +2 -0
  239. package/mysql-core/columns/tinyint.js +3 -1
  240. package/mysql-core/columns/tinyint.js.map +1 -1
  241. package/mysql-core/columns/varbinary.cjs +4 -2
  242. package/mysql-core/columns/varbinary.cjs.map +1 -1
  243. package/mysql-core/columns/varbinary.d.cts +2 -1
  244. package/mysql-core/columns/varbinary.d.ts +2 -1
  245. package/mysql-core/columns/varbinary.js +4 -2
  246. package/mysql-core/columns/varbinary.js.map +1 -1
  247. package/mysql-core/columns/varchar.cjs +3 -1
  248. package/mysql-core/columns/varchar.cjs.map +1 -1
  249. package/mysql-core/columns/varchar.d.cts +3 -2
  250. package/mysql-core/columns/varchar.d.ts +3 -2
  251. package/mysql-core/columns/varchar.js +3 -1
  252. package/mysql-core/columns/varchar.js.map +1 -1
  253. package/mysql-core/columns/year.cjs +1 -1
  254. package/mysql-core/columns/year.cjs.map +1 -1
  255. package/mysql-core/columns/year.d.cts +1 -0
  256. package/mysql-core/columns/year.d.ts +1 -0
  257. package/mysql-core/columns/year.js +1 -1
  258. package/mysql-core/columns/year.js.map +1 -1
  259. package/mysql-core/db.cjs +8 -2
  260. package/mysql-core/db.cjs.map +1 -1
  261. package/mysql-core/db.d.cts +5 -2
  262. package/mysql-core/db.d.ts +5 -2
  263. package/mysql-core/db.js +8 -2
  264. package/mysql-core/db.js.map +1 -1
  265. package/mysql-core/dialect.cjs +14 -7
  266. package/mysql-core/dialect.cjs.map +1 -1
  267. package/mysql-core/dialect.d.cts +5 -1
  268. package/mysql-core/dialect.d.ts +5 -1
  269. package/mysql-core/dialect.js +14 -7
  270. package/mysql-core/dialect.js.map +1 -1
  271. package/mysql-core/foreign-keys.cjs +3 -3
  272. package/mysql-core/foreign-keys.cjs.map +1 -1
  273. package/mysql-core/foreign-keys.d.cts +1 -1
  274. package/mysql-core/foreign-keys.d.ts +1 -1
  275. package/mysql-core/foreign-keys.js +3 -3
  276. package/mysql-core/foreign-keys.js.map +1 -1
  277. package/mysql-core/query-builders/count.cjs +73 -0
  278. package/mysql-core/query-builders/count.cjs.map +1 -0
  279. package/mysql-core/query-builders/count.d.cts +26 -0
  280. package/mysql-core/query-builders/count.d.ts +26 -0
  281. package/mysql-core/query-builders/count.js +49 -0
  282. package/mysql-core/query-builders/count.js.map +1 -0
  283. package/mysql-core/query-builders/query-builder.cjs +6 -1
  284. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  285. package/mysql-core/query-builders/query-builder.d.cts +4 -0
  286. package/mysql-core/query-builders/query-builder.d.ts +4 -0
  287. package/mysql-core/query-builders/query-builder.js +7 -2
  288. package/mysql-core/query-builders/query-builder.js.map +1 -1
  289. package/mysql-core/session.cjs +6 -0
  290. package/mysql-core/session.cjs.map +1 -1
  291. package/mysql-core/session.d.cts +1 -0
  292. package/mysql-core/session.d.ts +1 -0
  293. package/mysql-core/session.js +6 -0
  294. package/mysql-core/session.js.map +1 -1
  295. package/mysql-core/table.cjs +4 -1
  296. package/mysql-core/table.cjs.map +1 -1
  297. package/mysql-core/table.d.cts +8 -1
  298. package/mysql-core/table.d.ts +8 -1
  299. package/mysql-core/table.js +4 -1
  300. package/mysql-core/table.js.map +1 -1
  301. package/mysql-core/unique-constraint.cjs +2 -2
  302. package/mysql-core/unique-constraint.cjs.map +1 -1
  303. package/mysql-core/unique-constraint.d.cts +1 -1
  304. package/mysql-core/unique-constraint.d.ts +1 -1
  305. package/mysql-core/unique-constraint.js +2 -2
  306. package/mysql-core/unique-constraint.js.map +1 -1
  307. package/mysql-proxy/driver.cjs +8 -2
  308. package/mysql-proxy/driver.cjs.map +1 -1
  309. package/mysql-proxy/driver.d.cts +4 -1
  310. package/mysql-proxy/driver.d.ts +4 -1
  311. package/mysql-proxy/driver.js +7 -2
  312. package/mysql-proxy/driver.js.map +1 -1
  313. package/mysql2/driver.cjs +13 -8
  314. package/mysql2/driver.cjs.map +1 -1
  315. package/mysql2/driver.d.cts +6 -2
  316. package/mysql2/driver.d.ts +6 -2
  317. package/mysql2/driver.js +11 -7
  318. package/mysql2/driver.js.map +1 -1
  319. package/neon-http/driver.cjs +4 -2
  320. package/neon-http/driver.cjs.map +1 -1
  321. package/neon-http/driver.d.cts +3 -1
  322. package/neon-http/driver.d.ts +3 -1
  323. package/neon-http/driver.js +4 -2
  324. package/neon-http/driver.js.map +1 -1
  325. package/neon-http/migrator.cjs +2 -2
  326. package/neon-http/migrator.cjs.map +1 -1
  327. package/neon-http/migrator.d.cts +1 -1
  328. package/neon-http/migrator.d.ts +1 -1
  329. package/neon-http/migrator.js +2 -2
  330. package/neon-http/migrator.js.map +1 -1
  331. package/neon-http/session.cjs +6 -0
  332. package/neon-http/session.cjs.map +1 -1
  333. package/neon-http/session.d.cts +2 -1
  334. package/neon-http/session.d.ts +2 -1
  335. package/neon-http/session.js +6 -0
  336. package/neon-http/session.js.map +1 -1
  337. package/neon-serverless/driver.cjs +9 -2
  338. package/neon-serverless/driver.cjs.map +1 -1
  339. package/neon-serverless/driver.d.cts +6 -2
  340. package/neon-serverless/driver.d.ts +6 -2
  341. package/neon-serverless/driver.js +8 -2
  342. package/neon-serverless/driver.js.map +1 -1
  343. package/neon-serverless/migrator.cjs.map +1 -1
  344. package/neon-serverless/migrator.d.cts +1 -1
  345. package/neon-serverless/migrator.d.ts +1 -1
  346. package/neon-serverless/migrator.js.map +1 -1
  347. package/node-postgres/driver.cjs +9 -2
  348. package/node-postgres/driver.cjs.map +1 -1
  349. package/node-postgres/driver.d.cts +6 -2
  350. package/node-postgres/driver.d.ts +6 -2
  351. package/node-postgres/driver.js +8 -2
  352. package/node-postgres/driver.js.map +1 -1
  353. package/node-postgres/migrator.cjs.map +1 -1
  354. package/node-postgres/migrator.d.cts +1 -1
  355. package/node-postgres/migrator.d.ts +1 -1
  356. package/node-postgres/migrator.js.map +1 -1
  357. package/node-postgres/session.cjs +6 -0
  358. package/node-postgres/session.cjs.map +1 -1
  359. package/node-postgres/session.d.cts +2 -1
  360. package/node-postgres/session.d.ts +2 -1
  361. package/node-postgres/session.js +6 -0
  362. package/node-postgres/session.js.map +1 -1
  363. package/op-sqlite/driver.cjs +10 -2
  364. package/op-sqlite/driver.cjs.map +1 -1
  365. package/op-sqlite/driver.d.cts +7 -2
  366. package/op-sqlite/driver.d.ts +7 -2
  367. package/op-sqlite/driver.js +9 -2
  368. package/op-sqlite/driver.js.map +1 -1
  369. package/operations.cjs.map +1 -1
  370. package/package.json +184 -51
  371. package/pg-core/columns/all.cjs +96 -0
  372. package/pg-core/columns/all.cjs.map +1 -0
  373. package/pg-core/columns/all.d.cts +67 -0
  374. package/pg-core/columns/all.d.ts +67 -0
  375. package/pg-core/columns/all.js +72 -0
  376. package/pg-core/columns/all.js.map +1 -0
  377. package/pg-core/columns/bigint.cjs +3 -1
  378. package/pg-core/columns/bigint.cjs.map +1 -1
  379. package/pg-core/columns/bigint.d.cts +2 -2
  380. package/pg-core/columns/bigint.d.ts +2 -2
  381. package/pg-core/columns/bigint.js +3 -1
  382. package/pg-core/columns/bigint.js.map +1 -1
  383. package/pg-core/columns/bigserial.cjs +4 -2
  384. package/pg-core/columns/bigserial.cjs.map +1 -1
  385. package/pg-core/columns/bigserial.d.cts +2 -2
  386. package/pg-core/columns/bigserial.d.ts +2 -2
  387. package/pg-core/columns/bigserial.js +4 -2
  388. package/pg-core/columns/bigserial.js.map +1 -1
  389. package/pg-core/columns/boolean.cjs +1 -1
  390. package/pg-core/columns/boolean.cjs.map +1 -1
  391. package/pg-core/columns/boolean.d.cts +1 -0
  392. package/pg-core/columns/boolean.d.ts +1 -0
  393. package/pg-core/columns/boolean.js +1 -1
  394. package/pg-core/columns/boolean.js.map +1 -1
  395. package/pg-core/columns/char.cjs +3 -1
  396. package/pg-core/columns/char.cjs.map +1 -1
  397. package/pg-core/columns/char.d.cts +5 -3
  398. package/pg-core/columns/char.d.ts +5 -3
  399. package/pg-core/columns/char.js +3 -1
  400. package/pg-core/columns/char.js.map +1 -1
  401. package/pg-core/columns/cidr.cjs +1 -1
  402. package/pg-core/columns/cidr.cjs.map +1 -1
  403. package/pg-core/columns/cidr.d.cts +1 -0
  404. package/pg-core/columns/cidr.d.ts +1 -0
  405. package/pg-core/columns/cidr.js +1 -1
  406. package/pg-core/columns/cidr.js.map +1 -1
  407. package/pg-core/columns/common.cjs.map +1 -1
  408. package/pg-core/columns/common.d.cts +1 -1
  409. package/pg-core/columns/common.d.ts +1 -1
  410. package/pg-core/columns/common.js.map +1 -1
  411. package/pg-core/columns/custom.cjs +4 -2
  412. package/pg-core/columns/custom.cjs.map +1 -1
  413. package/pg-core/columns/custom.d.cts +10 -3
  414. package/pg-core/columns/custom.d.ts +10 -3
  415. package/pg-core/columns/custom.js +4 -2
  416. package/pg-core/columns/custom.js.map +1 -1
  417. package/pg-core/columns/date.cjs +3 -1
  418. package/pg-core/columns/date.cjs.map +1 -1
  419. package/pg-core/columns/date.d.cts +7 -6
  420. package/pg-core/columns/date.d.ts +7 -6
  421. package/pg-core/columns/date.js +3 -1
  422. package/pg-core/columns/date.js.map +1 -1
  423. package/pg-core/columns/double-precision.cjs +1 -1
  424. package/pg-core/columns/double-precision.cjs.map +1 -1
  425. package/pg-core/columns/double-precision.d.cts +1 -0
  426. package/pg-core/columns/double-precision.d.ts +1 -0
  427. package/pg-core/columns/double-precision.js +1 -1
  428. package/pg-core/columns/double-precision.js.map +1 -1
  429. package/pg-core/columns/enum.cjs +1 -1
  430. package/pg-core/columns/enum.cjs.map +1 -1
  431. package/pg-core/columns/enum.d.cts +3 -1
  432. package/pg-core/columns/enum.d.ts +3 -1
  433. package/pg-core/columns/enum.js +1 -1
  434. package/pg-core/columns/enum.js.map +1 -1
  435. package/pg-core/columns/index.cjs +2 -0
  436. package/pg-core/columns/index.cjs.map +1 -1
  437. package/pg-core/columns/index.d.cts +1 -0
  438. package/pg-core/columns/index.d.ts +1 -0
  439. package/pg-core/columns/index.js +1 -0
  440. package/pg-core/columns/index.js.map +1 -1
  441. package/pg-core/columns/inet.cjs +1 -1
  442. package/pg-core/columns/inet.cjs.map +1 -1
  443. package/pg-core/columns/inet.d.cts +1 -0
  444. package/pg-core/columns/inet.d.ts +1 -0
  445. package/pg-core/columns/inet.js +1 -1
  446. package/pg-core/columns/inet.js.map +1 -1
  447. package/pg-core/columns/integer.cjs +1 -1
  448. package/pg-core/columns/integer.cjs.map +1 -1
  449. package/pg-core/columns/integer.d.cts +1 -0
  450. package/pg-core/columns/integer.d.ts +1 -0
  451. package/pg-core/columns/integer.js +1 -1
  452. package/pg-core/columns/integer.js.map +1 -1
  453. package/pg-core/columns/interval.cjs +3 -1
  454. package/pg-core/columns/interval.cjs.map +1 -1
  455. package/pg-core/columns/interval.d.cts +2 -0
  456. package/pg-core/columns/interval.d.ts +2 -0
  457. package/pg-core/columns/interval.js +3 -1
  458. package/pg-core/columns/interval.js.map +1 -1
  459. package/pg-core/columns/json.cjs +1 -1
  460. package/pg-core/columns/json.cjs.map +1 -1
  461. package/pg-core/columns/json.d.cts +1 -0
  462. package/pg-core/columns/json.d.ts +1 -0
  463. package/pg-core/columns/json.js +1 -1
  464. package/pg-core/columns/json.js.map +1 -1
  465. package/pg-core/columns/jsonb.cjs +1 -1
  466. package/pg-core/columns/jsonb.cjs.map +1 -1
  467. package/pg-core/columns/jsonb.d.cts +1 -0
  468. package/pg-core/columns/jsonb.d.ts +1 -0
  469. package/pg-core/columns/jsonb.js +1 -1
  470. package/pg-core/columns/jsonb.js.map +1 -1
  471. package/pg-core/columns/line.cjs +3 -1
  472. package/pg-core/columns/line.cjs.map +1 -1
  473. package/pg-core/columns/line.d.cts +3 -1
  474. package/pg-core/columns/line.d.ts +3 -1
  475. package/pg-core/columns/line.js +3 -1
  476. package/pg-core/columns/line.js.map +1 -1
  477. package/pg-core/columns/macaddr.cjs +1 -1
  478. package/pg-core/columns/macaddr.cjs.map +1 -1
  479. package/pg-core/columns/macaddr.d.cts +1 -0
  480. package/pg-core/columns/macaddr.d.ts +1 -0
  481. package/pg-core/columns/macaddr.js +1 -1
  482. package/pg-core/columns/macaddr.js.map +1 -1
  483. package/pg-core/columns/macaddr8.cjs +1 -1
  484. package/pg-core/columns/macaddr8.cjs.map +1 -1
  485. package/pg-core/columns/macaddr8.d.cts +1 -0
  486. package/pg-core/columns/macaddr8.d.ts +1 -0
  487. package/pg-core/columns/macaddr8.js +1 -1
  488. package/pg-core/columns/macaddr8.js.map +1 -1
  489. package/pg-core/columns/numeric.cjs +3 -1
  490. package/pg-core/columns/numeric.cjs.map +1 -1
  491. package/pg-core/columns/numeric.d.cts +6 -3
  492. package/pg-core/columns/numeric.d.ts +6 -3
  493. package/pg-core/columns/numeric.js +3 -1
  494. package/pg-core/columns/numeric.js.map +1 -1
  495. package/pg-core/columns/point.cjs +3 -1
  496. package/pg-core/columns/point.cjs.map +1 -1
  497. package/pg-core/columns/point.d.cts +5 -3
  498. package/pg-core/columns/point.d.ts +5 -3
  499. package/pg-core/columns/point.js +3 -1
  500. package/pg-core/columns/point.js.map +1 -1
  501. package/pg-core/columns/postgis_extension/geometry.cjs +6 -4
  502. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  503. package/pg-core/columns/postgis_extension/geometry.d.cts +4 -3
  504. package/pg-core/columns/postgis_extension/geometry.d.ts +4 -3
  505. package/pg-core/columns/postgis_extension/geometry.js +3 -1
  506. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  507. package/pg-core/columns/real.cjs +1 -1
  508. package/pg-core/columns/real.cjs.map +1 -1
  509. package/pg-core/columns/real.d.cts +2 -1
  510. package/pg-core/columns/real.d.ts +2 -1
  511. package/pg-core/columns/real.js +1 -1
  512. package/pg-core/columns/real.js.map +1 -1
  513. package/pg-core/columns/serial.cjs +1 -1
  514. package/pg-core/columns/serial.cjs.map +1 -1
  515. package/pg-core/columns/serial.d.cts +2 -1
  516. package/pg-core/columns/serial.d.ts +2 -1
  517. package/pg-core/columns/serial.js +1 -1
  518. package/pg-core/columns/serial.js.map +1 -1
  519. package/pg-core/columns/smallint.cjs +1 -1
  520. package/pg-core/columns/smallint.cjs.map +1 -1
  521. package/pg-core/columns/smallint.d.cts +1 -0
  522. package/pg-core/columns/smallint.d.ts +1 -0
  523. package/pg-core/columns/smallint.js +1 -1
  524. package/pg-core/columns/smallint.js.map +1 -1
  525. package/pg-core/columns/smallserial.cjs +1 -1
  526. package/pg-core/columns/smallserial.cjs.map +1 -1
  527. package/pg-core/columns/smallserial.d.cts +2 -1
  528. package/pg-core/columns/smallserial.d.ts +2 -1
  529. package/pg-core/columns/smallserial.js +1 -1
  530. package/pg-core/columns/smallserial.js.map +1 -1
  531. package/pg-core/columns/text.cjs +3 -1
  532. package/pg-core/columns/text.cjs.map +1 -1
  533. package/pg-core/columns/text.d.cts +4 -2
  534. package/pg-core/columns/text.d.ts +4 -2
  535. package/pg-core/columns/text.js +3 -1
  536. package/pg-core/columns/text.js.map +1 -1
  537. package/pg-core/columns/time.cjs +3 -1
  538. package/pg-core/columns/time.cjs.map +1 -1
  539. package/pg-core/columns/time.d.cts +2 -0
  540. package/pg-core/columns/time.d.ts +2 -0
  541. package/pg-core/columns/time.js +3 -1
  542. package/pg-core/columns/time.js.map +1 -1
  543. package/pg-core/columns/timestamp.cjs +5 -3
  544. package/pg-core/columns/timestamp.cjs.map +1 -1
  545. package/pg-core/columns/timestamp.d.cts +5 -3
  546. package/pg-core/columns/timestamp.d.ts +5 -3
  547. package/pg-core/columns/timestamp.js +5 -3
  548. package/pg-core/columns/timestamp.js.map +1 -1
  549. package/pg-core/columns/uuid.cjs +1 -1
  550. package/pg-core/columns/uuid.cjs.map +1 -1
  551. package/pg-core/columns/uuid.d.cts +1 -0
  552. package/pg-core/columns/uuid.d.ts +1 -0
  553. package/pg-core/columns/uuid.js +1 -1
  554. package/pg-core/columns/uuid.js.map +1 -1
  555. package/pg-core/columns/varchar.cjs +3 -1
  556. package/pg-core/columns/varchar.cjs.map +1 -1
  557. package/pg-core/columns/varchar.d.cts +5 -3
  558. package/pg-core/columns/varchar.d.ts +5 -3
  559. package/pg-core/columns/varchar.js +3 -1
  560. package/pg-core/columns/varchar.js.map +1 -1
  561. package/pg-core/columns/vector_extension/bit.cjs +3 -1
  562. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  563. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  564. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  565. package/pg-core/columns/vector_extension/bit.js +3 -1
  566. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  567. package/pg-core/columns/vector_extension/halfvec.cjs +3 -1
  568. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  569. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  570. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  571. package/pg-core/columns/vector_extension/halfvec.js +3 -1
  572. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  573. package/pg-core/columns/vector_extension/sparsevec.cjs +3 -1
  574. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  575. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  576. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  577. package/pg-core/columns/vector_extension/sparsevec.js +3 -1
  578. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  579. package/pg-core/columns/vector_extension/vector.cjs +3 -1
  580. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  581. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  582. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  583. package/pg-core/columns/vector_extension/vector.js +3 -1
  584. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  585. package/pg-core/db.cjs +10 -4
  586. package/pg-core/db.cjs.map +1 -1
  587. package/pg-core/db.d.cts +6 -3
  588. package/pg-core/db.d.ts +6 -3
  589. package/pg-core/db.js +10 -4
  590. package/pg-core/db.js.map +1 -1
  591. package/pg-core/dialect.cjs +13 -4
  592. package/pg-core/dialect.cjs.map +1 -1
  593. package/pg-core/dialect.d.cts +5 -1
  594. package/pg-core/dialect.d.ts +5 -1
  595. package/pg-core/dialect.js +13 -4
  596. package/pg-core/dialect.js.map +1 -1
  597. package/pg-core/foreign-keys.cjs +3 -3
  598. package/pg-core/foreign-keys.cjs.map +1 -1
  599. package/pg-core/foreign-keys.d.cts +1 -1
  600. package/pg-core/foreign-keys.d.ts +1 -1
  601. package/pg-core/foreign-keys.js +3 -3
  602. package/pg-core/foreign-keys.js.map +1 -1
  603. package/pg-core/query-builders/count.cjs +73 -0
  604. package/pg-core/query-builders/count.cjs.map +1 -0
  605. package/pg-core/query-builders/count.d.cts +25 -0
  606. package/pg-core/query-builders/count.d.ts +25 -0
  607. package/pg-core/query-builders/count.js +49 -0
  608. package/pg-core/query-builders/count.js.map +1 -0
  609. package/pg-core/query-builders/insert.cjs +2 -2
  610. package/pg-core/query-builders/insert.cjs.map +1 -1
  611. package/pg-core/query-builders/insert.js +2 -2
  612. package/pg-core/query-builders/insert.js.map +1 -1
  613. package/pg-core/query-builders/query-builder.cjs +6 -1
  614. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  615. package/pg-core/query-builders/query-builder.d.cts +4 -0
  616. package/pg-core/query-builders/query-builder.d.ts +4 -0
  617. package/pg-core/query-builders/query-builder.js +7 -2
  618. package/pg-core/query-builders/query-builder.js.map +1 -1
  619. package/pg-core/session.cjs +6 -0
  620. package/pg-core/session.cjs.map +1 -1
  621. package/pg-core/session.d.cts +1 -0
  622. package/pg-core/session.d.ts +1 -0
  623. package/pg-core/session.js +6 -0
  624. package/pg-core/session.js.map +1 -1
  625. package/pg-core/table.cjs +6 -2
  626. package/pg-core/table.cjs.map +1 -1
  627. package/pg-core/table.d.cts +7 -0
  628. package/pg-core/table.d.ts +7 -0
  629. package/pg-core/table.js +6 -2
  630. package/pg-core/table.js.map +1 -1
  631. package/pg-core/unique-constraint.cjs +2 -2
  632. package/pg-core/unique-constraint.cjs.map +1 -1
  633. package/pg-core/unique-constraint.d.cts +1 -1
  634. package/pg-core/unique-constraint.d.ts +1 -1
  635. package/pg-core/unique-constraint.js +2 -2
  636. package/pg-core/unique-constraint.js.map +1 -1
  637. package/pg-proxy/driver.cjs +8 -2
  638. package/pg-proxy/driver.cjs.map +1 -1
  639. package/pg-proxy/driver.d.cts +4 -1
  640. package/pg-proxy/driver.d.ts +4 -1
  641. package/pg-proxy/driver.js +7 -2
  642. package/pg-proxy/driver.js.map +1 -1
  643. package/pg-proxy/migrator.cjs.map +1 -1
  644. package/pg-proxy/migrator.d.cts +1 -1
  645. package/pg-proxy/migrator.d.ts +1 -1
  646. package/pg-proxy/migrator.js.map +1 -1
  647. package/pg-proxy/session.cjs.map +1 -1
  648. package/pg-proxy/session.js.map +1 -1
  649. package/pglite/driver.cjs +9 -2
  650. package/pglite/driver.cjs.map +1 -1
  651. package/pglite/driver.d.cts +6 -2
  652. package/pglite/driver.d.ts +6 -2
  653. package/pglite/driver.js +8 -2
  654. package/pglite/driver.js.map +1 -1
  655. package/pglite/migrator.cjs.map +1 -1
  656. package/pglite/migrator.d.cts +1 -1
  657. package/pglite/migrator.d.ts +1 -1
  658. package/pglite/migrator.js.map +1 -1
  659. package/pglite/session.cjs +6 -0
  660. package/pglite/session.cjs.map +1 -1
  661. package/pglite/session.d.cts +2 -1
  662. package/pglite/session.d.ts +2 -1
  663. package/pglite/session.js +6 -0
  664. package/pglite/session.js.map +1 -1
  665. package/planetscale-serverless/driver.cjs +10 -2
  666. package/planetscale-serverless/driver.cjs.map +1 -1
  667. package/planetscale-serverless/driver.d.cts +7 -2
  668. package/planetscale-serverless/driver.d.ts +7 -2
  669. package/planetscale-serverless/driver.js +9 -2
  670. package/planetscale-serverless/driver.js.map +1 -1
  671. package/planetscale-serverless/migrator.cjs.map +1 -1
  672. package/planetscale-serverless/migrator.js.map +1 -1
  673. package/planetscale-serverless/session.cjs +6 -0
  674. package/planetscale-serverless/session.cjs.map +1 -1
  675. package/planetscale-serverless/session.d.cts +1 -0
  676. package/planetscale-serverless/session.d.ts +1 -0
  677. package/planetscale-serverless/session.js +6 -0
  678. package/planetscale-serverless/session.js.map +1 -1
  679. package/postgres-js/driver.cjs +10 -2
  680. package/postgres-js/driver.cjs.map +1 -1
  681. package/postgres-js/driver.d.cts +7 -2
  682. package/postgres-js/driver.d.ts +7 -2
  683. package/postgres-js/driver.js +9 -2
  684. package/postgres-js/driver.js.map +1 -1
  685. package/postgres-js/migrator.cjs.map +1 -1
  686. package/postgres-js/migrator.d.cts +1 -1
  687. package/postgres-js/migrator.d.ts +1 -1
  688. package/postgres-js/migrator.js.map +1 -1
  689. package/sql/functions/vector.cjs.map +1 -1
  690. package/sql/functions/vector.d.cts +1 -1
  691. package/sql/functions/vector.d.ts +1 -1
  692. package/sql/functions/vector.js.map +1 -1
  693. package/sql/sql.cjs +4 -2
  694. package/sql/sql.cjs.map +1 -1
  695. package/sql/sql.d.cts +2 -0
  696. package/sql/sql.d.ts +2 -0
  697. package/sql/sql.js +4 -2
  698. package/sql/sql.js.map +1 -1
  699. package/sql-js/driver.cjs +1 -1
  700. package/sql-js/driver.cjs.map +1 -1
  701. package/sql-js/driver.js +1 -1
  702. package/sql-js/driver.js.map +1 -1
  703. package/sql-js/migrator.cjs.map +1 -1
  704. package/sql-js/migrator.d.cts +1 -1
  705. package/sql-js/migrator.d.ts +1 -1
  706. package/sql-js/migrator.js.map +1 -1
  707. package/sqlite-core/columns/all.cjs +44 -0
  708. package/sqlite-core/columns/all.cjs.map +1 -0
  709. package/sqlite-core/columns/all.d.cts +15 -0
  710. package/sqlite-core/columns/all.d.ts +15 -0
  711. package/sqlite-core/columns/all.js +20 -0
  712. package/sqlite-core/columns/all.js.map +1 -0
  713. package/sqlite-core/columns/blob.cjs +3 -1
  714. package/sqlite-core/columns/blob.cjs.map +1 -1
  715. package/sqlite-core/columns/blob.d.cts +3 -1
  716. package/sqlite-core/columns/blob.d.ts +3 -1
  717. package/sqlite-core/columns/blob.js +3 -1
  718. package/sqlite-core/columns/blob.js.map +1 -1
  719. package/sqlite-core/columns/custom.cjs +5 -3
  720. package/sqlite-core/columns/custom.cjs.map +1 -1
  721. package/sqlite-core/columns/custom.d.cts +10 -3
  722. package/sqlite-core/columns/custom.d.ts +10 -3
  723. package/sqlite-core/columns/custom.js +5 -3
  724. package/sqlite-core/columns/custom.js.map +1 -1
  725. package/sqlite-core/columns/integer.cjs +3 -1
  726. package/sqlite-core/columns/integer.cjs.map +1 -1
  727. package/sqlite-core/columns/integer.d.cts +3 -1
  728. package/sqlite-core/columns/integer.d.ts +3 -1
  729. package/sqlite-core/columns/integer.js +3 -1
  730. package/sqlite-core/columns/integer.js.map +1 -1
  731. package/sqlite-core/columns/numeric.cjs +1 -1
  732. package/sqlite-core/columns/numeric.cjs.map +1 -1
  733. package/sqlite-core/columns/numeric.d.cts +1 -0
  734. package/sqlite-core/columns/numeric.d.ts +1 -0
  735. package/sqlite-core/columns/numeric.js +1 -1
  736. package/sqlite-core/columns/numeric.js.map +1 -1
  737. package/sqlite-core/columns/real.cjs +1 -1
  738. package/sqlite-core/columns/real.cjs.map +1 -1
  739. package/sqlite-core/columns/real.d.cts +1 -0
  740. package/sqlite-core/columns/real.d.ts +1 -0
  741. package/sqlite-core/columns/real.js +1 -1
  742. package/sqlite-core/columns/real.js.map +1 -1
  743. package/sqlite-core/columns/text.cjs +7 -2
  744. package/sqlite-core/columns/text.cjs.map +1 -1
  745. package/sqlite-core/columns/text.d.cts +4 -2
  746. package/sqlite-core/columns/text.d.ts +4 -2
  747. package/sqlite-core/columns/text.js +7 -2
  748. package/sqlite-core/columns/text.js.map +1 -1
  749. package/sqlite-core/db.cjs +23 -17
  750. package/sqlite-core/db.cjs.map +1 -1
  751. package/sqlite-core/db.d.cts +8 -5
  752. package/sqlite-core/db.d.ts +8 -5
  753. package/sqlite-core/db.js +23 -17
  754. package/sqlite-core/db.js.map +1 -1
  755. package/sqlite-core/dialect.cjs +14 -8
  756. package/sqlite-core/dialect.cjs.map +1 -1
  757. package/sqlite-core/dialect.d.cts +5 -1
  758. package/sqlite-core/dialect.d.ts +5 -1
  759. package/sqlite-core/dialect.js +14 -8
  760. package/sqlite-core/dialect.js.map +1 -1
  761. package/sqlite-core/foreign-keys.cjs +3 -3
  762. package/sqlite-core/foreign-keys.cjs.map +1 -1
  763. package/sqlite-core/foreign-keys.d.cts +1 -1
  764. package/sqlite-core/foreign-keys.d.ts +1 -1
  765. package/sqlite-core/foreign-keys.js +3 -3
  766. package/sqlite-core/foreign-keys.js.map +1 -1
  767. package/sqlite-core/query-builders/count.cjs +72 -0
  768. package/sqlite-core/query-builders/count.cjs.map +1 -0
  769. package/sqlite-core/query-builders/count.d.cts +26 -0
  770. package/sqlite-core/query-builders/count.d.ts +26 -0
  771. package/sqlite-core/query-builders/count.js +48 -0
  772. package/sqlite-core/query-builders/count.js.map +1 -0
  773. package/sqlite-core/query-builders/query-builder.cjs +6 -1
  774. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  775. package/sqlite-core/query-builders/query-builder.d.cts +4 -0
  776. package/sqlite-core/query-builders/query-builder.d.ts +4 -0
  777. package/sqlite-core/query-builders/query-builder.js +8 -3
  778. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  779. package/sqlite-core/query-builders/raw.cjs.map +1 -1
  780. package/sqlite-core/query-builders/raw.d.cts +2 -2
  781. package/sqlite-core/query-builders/raw.d.ts +2 -2
  782. package/sqlite-core/query-builders/raw.js.map +1 -1
  783. package/sqlite-core/session.cjs +4 -0
  784. package/sqlite-core/session.cjs.map +1 -1
  785. package/sqlite-core/session.d.cts +1 -0
  786. package/sqlite-core/session.d.ts +1 -0
  787. package/sqlite-core/session.js +4 -0
  788. package/sqlite-core/session.js.map +1 -1
  789. package/sqlite-core/table.cjs +4 -1
  790. package/sqlite-core/table.cjs.map +1 -1
  791. package/sqlite-core/table.d.cts +7 -0
  792. package/sqlite-core/table.d.ts +7 -0
  793. package/sqlite-core/table.js +4 -1
  794. package/sqlite-core/table.js.map +1 -1
  795. package/sqlite-core/unique-constraint.cjs +2 -2
  796. package/sqlite-core/unique-constraint.cjs.map +1 -1
  797. package/sqlite-core/unique-constraint.d.cts +1 -1
  798. package/sqlite-core/unique-constraint.d.ts +1 -1
  799. package/sqlite-core/unique-constraint.js +2 -2
  800. package/sqlite-core/unique-constraint.js.map +1 -1
  801. package/sqlite-proxy/driver.cjs +1 -1
  802. package/sqlite-proxy/driver.cjs.map +1 -1
  803. package/sqlite-proxy/driver.js +1 -1
  804. package/sqlite-proxy/driver.js.map +1 -1
  805. package/sqlite-proxy/migrator.cjs.map +1 -1
  806. package/sqlite-proxy/migrator.d.cts +1 -1
  807. package/sqlite-proxy/migrator.d.ts +1 -1
  808. package/sqlite-proxy/migrator.js.map +1 -1
  809. package/table.cjs +6 -8
  810. package/table.cjs.map +1 -1
  811. package/table.js +1 -2
  812. package/table.js.map +1 -1
  813. package/table.utils.cjs +29 -0
  814. package/table.utils.cjs.map +1 -0
  815. package/table.utils.d.cts +1 -0
  816. package/table.utils.d.ts +1 -0
  817. package/table.utils.js +5 -0
  818. package/table.utils.js.map +1 -0
  819. package/tidb-serverless/driver.cjs +10 -2
  820. package/tidb-serverless/driver.cjs.map +1 -1
  821. package/tidb-serverless/driver.d.cts +7 -2
  822. package/tidb-serverless/driver.d.ts +7 -2
  823. package/tidb-serverless/driver.js +9 -2
  824. package/tidb-serverless/driver.js.map +1 -1
  825. package/tidb-serverless/session.cjs +6 -0
  826. package/tidb-serverless/session.cjs.map +1 -1
  827. package/tidb-serverless/session.d.cts +1 -0
  828. package/tidb-serverless/session.d.ts +1 -0
  829. package/tidb-serverless/session.js +6 -0
  830. package/tidb-serverless/session.js.map +1 -1
  831. package/utils.cjs +8 -0
  832. package/utils.cjs.map +1 -1
  833. package/utils.d.cts +3 -0
  834. package/utils.d.ts +3 -0
  835. package/utils.js +7 -0
  836. package/utils.js.map +1 -1
  837. package/vercel-postgres/driver.cjs +9 -2
  838. package/vercel-postgres/driver.cjs.map +1 -1
  839. package/vercel-postgres/driver.d.cts +6 -2
  840. package/vercel-postgres/driver.d.ts +6 -2
  841. package/vercel-postgres/driver.js +8 -2
  842. package/vercel-postgres/driver.js.map +1 -1
  843. package/vercel-postgres/migrator.cjs.map +1 -1
  844. package/vercel-postgres/migrator.d.cts +1 -1
  845. package/vercel-postgres/migrator.d.ts +1 -1
  846. package/vercel-postgres/migrator.js.map +1 -1
  847. package/version.cjs +2 -2
  848. package/version.cjs.map +1 -1
  849. package/version.d.cts +2 -2
  850. package/version.d.ts +2 -2
  851. package/version.js +2 -2
  852. package/version.js.map +1 -1
  853. package/xata-http/driver.cjs +4 -2
  854. package/xata-http/driver.cjs.map +1 -1
  855. package/xata-http/driver.d.cts +3 -1
  856. package/xata-http/driver.d.ts +3 -1
  857. package/xata-http/driver.js +4 -2
  858. package/xata-http/driver.js.map +1 -1
  859. package/xata-http/migrator.cjs +1 -1
  860. package/xata-http/migrator.cjs.map +1 -1
  861. package/xata-http/migrator.d.cts +1 -1
  862. package/xata-http/migrator.d.ts +1 -1
  863. package/xata-http/migrator.js +1 -1
  864. package/xata-http/migrator.js.map +1 -1
@@ -1,3 +1,4 @@
1
+ import { entityKind } from "../entity.js";
1
2
  import { DefaultLogger } from "../logger.js";
2
3
  import { MySqlDatabase } from "../mysql-core/db.js";
3
4
  import { MySqlDialect } from "../mysql-core/dialect.js";
@@ -6,8 +7,11 @@ import {
6
7
  extractTablesRelationalConfig
7
8
  } from "../relations.js";
8
9
  import { MySqlRemoteSession } from "./session.js";
10
+ class MySqlRemoteDatabase extends MySqlDatabase {
11
+ static [entityKind] = "MySqlRemoteDatabase";
12
+ }
9
13
  function drizzle(callback, config = {}) {
10
- const dialect = new MySqlDialect();
14
+ const dialect = new MySqlDialect({ casing: config.casing });
11
15
  let logger;
12
16
  if (config.logger === true) {
13
17
  logger = new DefaultLogger();
@@ -27,9 +31,10 @@ function drizzle(callback, config = {}) {
27
31
  };
28
32
  }
29
33
  const session = new MySqlRemoteSession(callback, dialect, schema, { logger });
30
- return new MySqlDatabase(dialect, session, schema, "default");
34
+ return new MySqlRemoteDatabase(dialect, session, schema, "default");
31
35
  }
32
36
  export {
37
+ MySqlRemoteDatabase,
33
38
  drizzle
34
39
  };
35
40
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mysql-proxy/driver.ts"],"sourcesContent":["import { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type MySqlRemotePreparedQueryHKT, type MySqlRemoteQueryResultHKT, MySqlRemoteSession } from './session.ts';\n\nexport type MySqlRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<MySqlRemoteQueryResultHKT, MySqlRemotePreparedQueryHKT, TSchema>;\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema> = {},\n): MySqlRemoteDatabase<TSchema> {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new MySqlRemoteSession(callback, dialect, schema, { logger });\n\treturn new MySqlDatabase(dialect, session, schema, 'default') as MySqlRemoteDatabase<TSchema>;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAA2E,0BAA0B;AAY9F,SAAS,QACf,UACA,SAAiC,CAAC,GACH;AAC/B,QAAM,UAAU,IAAI,aAAa;AACjC,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,mBAAmB,UAAU,SAAS,QAAQ,EAAE,OAAO,CAAC;AAC5E,SAAO,IAAI,cAAc,SAAS,SAAS,QAAQ,SAAS;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../src/mysql-proxy/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type MySqlRemotePreparedQueryHKT, type MySqlRemoteQueryResultHKT, MySqlRemoteSession } from './session.ts';\n\nexport class MySqlRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<MySqlRemoteQueryResultHKT, MySqlRemotePreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'MySqlRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema> = {},\n): MySqlRemoteDatabase<TSchema> {\n\tconst dialect = new MySqlDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new MySqlRemoteSession(callback, dialect, schema, { logger });\n\treturn new MySqlRemoteDatabase(dialect, session, schema as any, 'default') as MySqlRemoteDatabase<TSchema>;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAA2E,0BAA0B;AAE9F,MAAM,4BAEH,cAA+E;AAAA,EACxF,QAAiB,UAAU,IAAY;AACxC;AAQO,SAAS,QACf,UACA,SAAiC,CAAC,GACH;AAC/B,QAAM,UAAU,IAAI,aAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,mBAAmB,UAAU,SAAS,QAAQ,EAAE,OAAO,CAAC;AAC5E,SAAO,IAAI,oBAAoB,SAAS,SAAS,QAAe,SAAS;AAC1E;","names":[]}
package/mysql2/driver.cjs CHANGED
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var driver_exports = {};
20
20
  __export(driver_exports, {
21
+ MySql2Database: () => MySql2Database,
21
22
  MySql2Driver: () => MySql2Driver,
22
23
  MySqlDatabase: () => import_db2.MySqlDatabase,
23
24
  drizzle: () => drizzle
@@ -28,7 +29,7 @@ var import_logger = require("../logger.cjs");
28
29
  var import_db = require("../mysql-core/db.cjs");
29
30
  var import_dialect = require("../mysql-core/dialect.cjs");
30
31
  var import_relations = require("../relations.cjs");
31
- var import__ = require("../index.cjs");
32
+ var import_errors = require("../errors.cjs");
32
33
  var import_session = require("./session.cjs");
33
34
  var import_db2 = require("../mysql-core/db.cjs");
34
35
  class MySql2Driver {
@@ -42,21 +43,22 @@ class MySql2Driver {
42
43
  return new import_session.MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });
43
44
  }
44
45
  }
46
+ class MySql2Database extends import_db.MySqlDatabase {
47
+ static [import_entity.entityKind] = "MySql2Database";
48
+ }
45
49
  function drizzle(client, config = {}) {
46
- const dialect = new import_dialect.MySqlDialect();
50
+ const dialect = new import_dialect.MySqlDialect({ casing: config.casing });
47
51
  let logger;
48
52
  if (config.logger === true) {
49
53
  logger = new import_logger.DefaultLogger();
50
54
  } else if (config.logger !== false) {
51
55
  logger = config.logger;
52
56
  }
53
- if (isCallbackClient(client)) {
54
- client = client.promise();
55
- }
57
+ const clientForInstance = isCallbackClient(client) ? client.promise() : client;
56
58
  let schema;
57
59
  if (config.schema) {
58
60
  if (config.mode === void 0) {
59
- throw new import__.DrizzleError({
61
+ throw new import_errors.DrizzleError({
60
62
  message: 'You need to specify "mode": "planetscale" or "default" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes'
61
63
  });
62
64
  }
@@ -71,15 +73,18 @@ function drizzle(client, config = {}) {
71
73
  };
72
74
  }
73
75
  const mode = config.mode ?? "default";
74
- const driver = new MySql2Driver(client, dialect, { logger });
76
+ const driver = new MySql2Driver(clientForInstance, dialect, { logger });
75
77
  const session = driver.createSession(schema, mode);
76
- return new import_db.MySqlDatabase(dialect, session, schema, mode);
78
+ const db = new MySql2Database(dialect, session, schema, mode);
79
+ db.$client = client;
80
+ return db;
77
81
  }
78
82
  function isCallbackClient(client) {
79
83
  return typeof client.promise === "function";
80
84
  }
81
85
  // Annotate the CommonJS export names for ESM import in node:
82
86
  0 && (module.exports = {
87
+ MySql2Database,
83
88
  MySql2Driver,
84
89
  MySqlDatabase,
85
90
  drizzle
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import type { Connection as CallbackConnection, Pool as CallbackPool } from 'mysql2';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { DrizzleError } from '../index.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport type MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema>;\n\nexport type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: MySql2Client | CallbackConnection | CallbackPool,\n\tconfig: MySql2DrizzleConfig<TSchema> = {},\n): MySql2Database<TSchema> {\n\tconst dialect = new MySqlDialect();\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\tif (isCallbackClient(client)) {\n\t\tclient = client.promise();\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst driver = new MySql2Driver(client as MySql2Client, dialect, { logger });\n\tconst session = driver.createSession(schema, mode);\n\treturn new MySqlDatabase(dialect, session, schema, mode) as MySql2Database<TSchema>;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAE7B,uBAKO;AAEP,eAA6B;AAE7B,qBAA8B;AAwB9B,IAAAA,aAA8B;AAlBvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA8B,CAAC,GACtC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACA,MACiE;AACjE,WAAO,IAAI,6BAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAAA,EAClG;AACD;AAYO,SAAS,QACf,QACA,SAAuC,CAAC,GACd;AAC1B,QAAM,UAAU,IAAI,4BAAa;AACjC,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AACA,MAAI,iBAAiB,MAAM,GAAG;AAC7B,aAAS,OAAO,QAAQ;AAAA,EACzB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,QAAI,OAAO,SAAS,QAAW;AAC9B,YAAM,IAAI,sBAAa;AAAA,QACtB,SACC;AAAA,MACF,CAAC;AAAA,IACF;AAEA,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ;AAE5B,QAAM,SAAS,IAAI,aAAa,QAAwB,SAAS,EAAE,OAAO,CAAC;AAC3E,QAAM,UAAU,OAAO,cAAc,QAAQ,IAAI;AACjD,SAAO,IAAI,wBAAc,SAAS,SAAS,QAAQ,IAAI;AACxD;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;","names":["import_db"]}
1
+ {"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import type { Connection as CallbackConnection, Pool as CallbackPool } from 'mysql2';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { DrizzleError } from '../errors.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport class MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'MySql2Database';\n}\n\nexport type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends MySql2Client | CallbackConnection | CallbackPool = MySql2Client | CallbackConnection | CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: MySql2DrizzleConfig<TSchema> = {},\n): MySql2Database<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new MySqlDialect({ 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\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst driver = new MySql2Driver(clientForInstance as MySql2Client, dialect, { logger });\n\tconst session = driver.createSession(schema, mode);\n\tconst db = new MySql2Database(dialect, session, schema as any, mode) as MySql2Database<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAE7B,uBAKO;AAEP,oBAA6B;AAE7B,qBAA8B;AAwB9B,IAAAA,aAA8B;AAlBvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA8B,CAAC,GACtC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACA,MACiE;AACjE,WAAO,IAAI,6BAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAAA,EAClG;AACD;AAIO,MAAM,uBAEH,wBAAqE;AAAA,EAC9E,QAAiB,wBAAU,IAAY;AACxC;AAMO,SAAS,QAIf,QACA,SAAuC,CAAC,GAGvC;AACD,QAAM,UAAU,IAAI,4BAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,QAAI,OAAO,SAAS,QAAW;AAC9B,YAAM,IAAI,2BAAa;AAAA,QACtB,SACC;AAAA,MACF,CAAC;AAAA,IACF;AAEA,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ;AAE5B,QAAM,SAAS,IAAI,aAAa,mBAAmC,SAAS,EAAE,OAAO,CAAC;AACtF,QAAM,UAAU,OAAO,cAAc,QAAQ,IAAI;AACjD,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,QAAe,IAAI;AACnE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;","names":["import_db"]}
@@ -20,7 +20,9 @@ export declare class MySql2Driver {
20
20
  createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined, mode: Mode): MySql2Session<Record<string, unknown>, TablesRelationalConfig>;
21
21
  }
22
22
  export { MySqlDatabase } from "../mysql-core/db.cjs";
23
- export type MySql2Database<TSchema extends Record<string, unknown> = Record<string, never>> = MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema>;
23
+ export declare class MySql2Database<TSchema extends Record<string, unknown> = Record<string, never>> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema> {
24
+ static readonly [entityKind]: string;
25
+ }
24
26
  export type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> = Omit<DrizzleConfig<TSchema>, 'schema'> & ({
25
27
  schema: TSchema;
26
28
  mode: Mode;
@@ -28,4 +30,6 @@ export type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record
28
30
  schema?: undefined;
29
31
  mode?: Mode;
30
32
  });
31
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: MySql2Client | CallbackConnection | CallbackPool, config?: MySql2DrizzleConfig<TSchema>): MySql2Database<TSchema>;
33
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends MySql2Client | CallbackConnection | CallbackPool = MySql2Client | CallbackConnection | CallbackPool>(client: TClient, config?: MySql2DrizzleConfig<TSchema>): MySql2Database<TSchema> & {
34
+ $client: TClient;
35
+ };
@@ -20,7 +20,9 @@ export declare class MySql2Driver {
20
20
  createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined, mode: Mode): MySql2Session<Record<string, unknown>, TablesRelationalConfig>;
21
21
  }
22
22
  export { MySqlDatabase } from "../mysql-core/db.js";
23
- export type MySql2Database<TSchema extends Record<string, unknown> = Record<string, never>> = MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema>;
23
+ export declare class MySql2Database<TSchema extends Record<string, unknown> = Record<string, never>> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema> {
24
+ static readonly [entityKind]: string;
25
+ }
24
26
  export type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> = Omit<DrizzleConfig<TSchema>, 'schema'> & ({
25
27
  schema: TSchema;
26
28
  mode: Mode;
@@ -28,4 +30,6 @@ export type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record
28
30
  schema?: undefined;
29
31
  mode?: Mode;
30
32
  });
31
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: MySql2Client | CallbackConnection | CallbackPool, config?: MySql2DrizzleConfig<TSchema>): MySql2Database<TSchema>;
33
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends MySql2Client | CallbackConnection | CallbackPool = MySql2Client | CallbackConnection | CallbackPool>(client: TClient, config?: MySql2DrizzleConfig<TSchema>): MySql2Database<TSchema> & {
34
+ $client: TClient;
35
+ };
package/mysql2/driver.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  createTableRelationsHelpers,
7
7
  extractTablesRelationalConfig
8
8
  } from "../relations.js";
9
- import { DrizzleError } from "../index.js";
9
+ import { DrizzleError } from "../errors.js";
10
10
  import { MySql2Session } from "./session.js";
11
11
  class MySql2Driver {
12
12
  constructor(client, dialect, options = {}) {
@@ -20,17 +20,18 @@ class MySql2Driver {
20
20
  }
21
21
  }
22
22
  import { MySqlDatabase as MySqlDatabase2 } from "../mysql-core/db.js";
23
+ class MySql2Database extends MySqlDatabase {
24
+ static [entityKind] = "MySql2Database";
25
+ }
23
26
  function drizzle(client, config = {}) {
24
- const dialect = new MySqlDialect();
27
+ const dialect = new MySqlDialect({ casing: config.casing });
25
28
  let logger;
26
29
  if (config.logger === true) {
27
30
  logger = new DefaultLogger();
28
31
  } else if (config.logger !== false) {
29
32
  logger = config.logger;
30
33
  }
31
- if (isCallbackClient(client)) {
32
- client = client.promise();
33
- }
34
+ const clientForInstance = isCallbackClient(client) ? client.promise() : client;
34
35
  let schema;
35
36
  if (config.schema) {
36
37
  if (config.mode === void 0) {
@@ -49,14 +50,17 @@ function drizzle(client, config = {}) {
49
50
  };
50
51
  }
51
52
  const mode = config.mode ?? "default";
52
- const driver = new MySql2Driver(client, dialect, { logger });
53
+ const driver = new MySql2Driver(clientForInstance, dialect, { logger });
53
54
  const session = driver.createSession(schema, mode);
54
- return new MySqlDatabase(dialect, session, schema, mode);
55
+ const db = new MySql2Database(dialect, session, schema, mode);
56
+ db.$client = client;
57
+ return db;
55
58
  }
56
59
  function isCallbackClient(client) {
57
60
  return typeof client.promise === "function";
58
61
  }
59
62
  export {
63
+ MySql2Database,
60
64
  MySql2Driver,
61
65
  MySqlDatabase2 as MySqlDatabase,
62
66
  drizzle
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import type { Connection as CallbackConnection, Pool as CallbackPool } from 'mysql2';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { DrizzleError } from '../index.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport type MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema>;\n\nexport type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: MySql2Client | CallbackConnection | CallbackPool,\n\tconfig: MySql2DrizzleConfig<TSchema> = {},\n): MySql2Database<TSchema> {\n\tconst dialect = new MySqlDialect();\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\tif (isCallbackClient(client)) {\n\t\tclient = client.promise();\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst driver = new MySql2Driver(client as MySql2Client, dialect, { logger });\n\tconst session = driver.createSession(schema, mode);\n\treturn new MySqlDatabase(dialect, session, schema, mode) as MySql2Database<TSchema>;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAE7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA8B,CAAC,GACtC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACA,MACiE;AACjE,WAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAAA,EAClG;AACD;AAEA,SAAS,iBAAAA,sBAAqB;AAUvB,SAAS,QACf,QACA,SAAuC,CAAC,GACd;AAC1B,QAAM,UAAU,IAAI,aAAa;AACjC,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AACA,MAAI,iBAAiB,MAAM,GAAG;AAC7B,aAAS,OAAO,QAAQ;AAAA,EACzB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,QAAI,OAAO,SAAS,QAAW;AAC9B,YAAM,IAAI,aAAa;AAAA,QACtB,SACC;AAAA,MACF,CAAC;AAAA,IACF;AAEA,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ;AAE5B,QAAM,SAAS,IAAI,aAAa,QAAwB,SAAS,EAAE,OAAO,CAAC;AAC3E,QAAM,UAAU,OAAO,cAAc,QAAQ,IAAI;AACjD,SAAO,IAAI,cAAc,SAAS,SAAS,QAAQ,IAAI;AACxD;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;","names":["MySqlDatabase"]}
1
+ {"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import type { Connection as CallbackConnection, Pool as CallbackPool } from 'mysql2';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { DrizzleError } from '../errors.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport class MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'MySql2Database';\n}\n\nexport type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends MySql2Client | CallbackConnection | CallbackPool = MySql2Client | CallbackConnection | CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: MySql2DrizzleConfig<TSchema> = {},\n): MySql2Database<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new MySqlDialect({ 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\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst driver = new MySql2Driver(clientForInstance as MySql2Client, dialect, { logger });\n\tconst session = driver.createSession(schema, mode);\n\tconst db = new MySql2Database(dialect, session, schema as any, mode) as MySql2Database<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAE7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA8B,CAAC,GACtC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACA,MACiE;AACjE,WAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAAA,EAClG;AACD;AAEA,SAAS,iBAAAA,sBAAqB;AAEvB,MAAM,uBAEH,cAAqE;AAAA,EAC9E,QAAiB,UAAU,IAAY;AACxC;AAMO,SAAS,QAIf,QACA,SAAuC,CAAC,GAGvC;AACD,QAAM,UAAU,IAAI,aAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,QAAI,OAAO,SAAS,QAAW;AAC9B,YAAM,IAAI,aAAa;AAAA,QACtB,SACC;AAAA,MACF,CAAC;AAAA,IACF;AAEA,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ;AAE5B,QAAM,SAAS,IAAI,aAAa,mBAAmC,SAAS,EAAE,OAAO,CAAC;AACtF,QAAM,UAAU,OAAO,cAAc,QAAQ,IAAI;AACjD,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,QAAe,IAAI;AACnE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;","names":["MySqlDatabase"]}
@@ -55,7 +55,7 @@ class NeonHttpDatabase extends import_db.PgDatabase {
55
55
  }
56
56
  }
57
57
  function drizzle(client, config = {}) {
58
- const dialect = new import_dialect.PgDialect();
58
+ const dialect = new import_dialect.PgDialect({ casing: config.casing });
59
59
  let logger;
60
60
  if (config.logger === true) {
61
61
  logger = new import_logger.DefaultLogger();
@@ -76,11 +76,13 @@ function drizzle(client, config = {}) {
76
76
  }
77
77
  const driver = new NeonHttpDriver(client, dialect, { logger });
78
78
  const session = driver.createSession(schema);
79
- return new NeonHttpDatabase(
79
+ const db = new NeonHttpDatabase(
80
80
  dialect,
81
81
  session,
82
82
  schema
83
83
  );
84
+ db.$client = client;
85
+ return db;
84
86
  }
85
87
  // Annotate the CommonJS export names for ESM import in node:
86
88
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/neon-http/driver.ts"],"sourcesContent":["import type { NeonQueryFunction } from '@neondatabase/serverless';\nimport { types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.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 { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type NeonHttpClient, type NeonHttpQueryResultHKT, NeonHttpSession } from './session.ts';\n\nexport interface NeonDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonHttpDriver {\n\tstatic readonly [entityKind]: string = 'NeonDriver';\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: NeonDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): NeonHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new NeonHttpSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n\n\tinitMappers() {\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\t}\n}\n\nexport class NeonHttpDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<NeonHttpQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: NeonHttpSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: NeonQueryFunction<any, any>,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NeonHttpDatabase<TSchema> {\n\tconst dialect = new PgDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NeonHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\n\treturn new NeonHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\tschema as RelationalSchemaConfig<ExtractTablesWithRelations<TSchema>> | undefined,\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAsB;AAEtB,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAA2E;AAG3E,qBAAkF;AAM3E,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,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC9F;AAAA,EAEA,cAAc;AACb,4BAAM,cAAc,wBAAM,SAAS,aAAa,CAAC,QAAQ,GAAG;AAC5D,4BAAM,cAAc,wBAAM,SAAS,WAAW,CAAC,QAAQ,GAAG;AAC1D,4BAAM,cAAc,wBAAM,SAAS,MAAM,CAAC,QAAQ,GAAG;AACrD,4BAAM,cAAc,wBAAM,SAAS,UAAU,CAAC,QAAQ,GAAG;AAAA,EAC1D;AACD;AAEO,MAAM,yBAEH,qBAA4C;AAAA,EACrD,QAAiB,wBAAU,IAAY;AAAA,EAKvC,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GACN;AAC5B,QAAM,UAAU,IAAI,yBAAU;AAC9B,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,MAAM;AAE3C,SAAO,IAAI;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/neon-http/driver.ts"],"sourcesContent":["import type { NeonQueryFunction } from '@neondatabase/serverless';\nimport { types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.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 { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type NeonHttpClient, type NeonHttpQueryResultHKT, NeonHttpSession } from './session.ts';\n\nexport interface NeonDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonHttpDriver {\n\tstatic readonly [entityKind]: string = 'NeonDriver';\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: NeonDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): NeonHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new NeonHttpSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n\n\tinitMappers() {\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\t}\n}\n\nexport class NeonHttpDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<NeonHttpQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: NeonHttpSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NeonQueryFunction<any, any> = NeonQueryFunction<any, any>,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NeonHttpDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NeonHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\n\tconst db = new NeonHttpDatabase(\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;AACA,wBAAsB;AAEtB,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAA2E;AAG3E,qBAAkF;AAM3E,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,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC9F;AAAA,EAEA,cAAc;AACb,4BAAM,cAAc,wBAAM,SAAS,aAAa,CAAC,QAAQ,GAAG;AAC5D,4BAAM,cAAc,wBAAM,SAAS,WAAW,CAAC,QAAQ,GAAG;AAC1D,4BAAM,cAAc,wBAAM,SAAS,MAAM,CAAC,QAAQ,GAAG;AACrD,4BAAM,cAAc,wBAAM,SAAS,UAAU,CAAC,QAAQ,GAAG;AAAA,EAC1D;AACD;AAEO,MAAM,yBAEH,qBAA4C;AAAA,EACrD,QAAiB,wBAAU,IAAY;AAAA,EAKvC,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QAIf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,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":[]}
@@ -23,4 +23,6 @@ export declare class NeonHttpDatabase<TSchema extends Record<string, unknown> =
23
23
  static readonly [entityKind]: string;
24
24
  batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
25
25
  }
26
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: NeonQueryFunction<any, any>, config?: DrizzleConfig<TSchema>): NeonHttpDatabase<TSchema>;
26
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends NeonQueryFunction<any, any> = NeonQueryFunction<any, any>>(client: TClient, config?: DrizzleConfig<TSchema>): NeonHttpDatabase<TSchema> & {
27
+ $client: TClient;
28
+ };
@@ -23,4 +23,6 @@ export declare class NeonHttpDatabase<TSchema extends Record<string, unknown> =
23
23
  static readonly [entityKind]: string;
24
24
  batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
25
25
  }
26
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: NeonQueryFunction<any, any>, config?: DrizzleConfig<TSchema>): NeonHttpDatabase<TSchema>;
26
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends NeonQueryFunction<any, any> = NeonQueryFunction<any, any>>(client: TClient, config?: DrizzleConfig<TSchema>): NeonHttpDatabase<TSchema> & {
27
+ $client: TClient;
28
+ };
@@ -30,7 +30,7 @@ class NeonHttpDatabase extends PgDatabase {
30
30
  }
31
31
  }
32
32
  function drizzle(client, config = {}) {
33
- const dialect = new PgDialect();
33
+ const dialect = new PgDialect({ casing: config.casing });
34
34
  let logger;
35
35
  if (config.logger === true) {
36
36
  logger = new DefaultLogger();
@@ -51,11 +51,13 @@ function drizzle(client, config = {}) {
51
51
  }
52
52
  const driver = new NeonHttpDriver(client, dialect, { logger });
53
53
  const session = driver.createSession(schema);
54
- return new NeonHttpDatabase(
54
+ const db = new NeonHttpDatabase(
55
55
  dialect,
56
56
  session,
57
57
  schema
58
58
  );
59
+ db.$client = client;
60
+ return db;
59
61
  }
60
62
  export {
61
63
  NeonHttpDatabase,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/neon-http/driver.ts"],"sourcesContent":["import type { NeonQueryFunction } from '@neondatabase/serverless';\nimport { types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.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 { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type NeonHttpClient, type NeonHttpQueryResultHKT, NeonHttpSession } from './session.ts';\n\nexport interface NeonDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonHttpDriver {\n\tstatic readonly [entityKind]: string = 'NeonDriver';\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: NeonDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): NeonHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new NeonHttpSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n\n\tinitMappers() {\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\t}\n}\n\nexport class NeonHttpDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<NeonHttpQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: NeonHttpSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: NeonQueryFunction<any, any>,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NeonHttpDatabase<TSchema> {\n\tconst dialect = new PgDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NeonHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\n\treturn new NeonHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\tschema as RelationalSchemaConfig<ExtractTablesWithRelations<TSchema>> | undefined,\n\t);\n}\n"],"mappings":"AACA,SAAS,aAAa;AAEtB,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,6BAA6B,qCAAqC;AAG3E,SAA2D,uBAAuB;AAM3E,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,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC9F;AAAA,EAEA,cAAc;AACb,UAAM,cAAc,MAAM,SAAS,aAAa,CAAC,QAAQ,GAAG;AAC5D,UAAM,cAAc,MAAM,SAAS,WAAW,CAAC,QAAQ,GAAG;AAC1D,UAAM,cAAc,MAAM,SAAS,MAAM,CAAC,QAAQ,GAAG;AACrD,UAAM,cAAc,MAAM,SAAS,UAAU,CAAC,QAAQ,GAAG;AAAA,EAC1D;AACD;AAEO,MAAM,yBAEH,WAA4C;AAAA,EACrD,QAAiB,UAAU,IAAY;AAAA,EAKvC,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GACN;AAC5B,QAAM,UAAU,IAAI,UAAU;AAC9B,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,MAAM;AAE3C,SAAO,IAAI;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/neon-http/driver.ts"],"sourcesContent":["import type { NeonQueryFunction } from '@neondatabase/serverless';\nimport { types } from '@neondatabase/serverless';\nimport type { BatchItem, BatchResponse } from '~/batch.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 { createTableRelationsHelpers, extractTablesRelationalConfig } from '~/relations.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type NeonHttpClient, type NeonHttpQueryResultHKT, NeonHttpSession } from './session.ts';\n\nexport interface NeonDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonHttpDriver {\n\tstatic readonly [entityKind]: string = 'NeonDriver';\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: NeonDriverOptions = {},\n\t) {\n\t\tthis.initMappers();\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): NeonHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new NeonHttpSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n\n\tinitMappers() {\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMPTZ, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.TIMESTAMP, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.DATE, (val) => val);\n\t\ttypes.setTypeParser(types.builtins.INTERVAL, (val) => val);\n\t}\n}\n\nexport class NeonHttpDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<NeonHttpQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: NeonHttpSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NeonQueryFunction<any, any> = NeonQueryFunction<any, any>,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NeonHttpDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new NeonHttpDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\n\tconst db = new NeonHttpDatabase(\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":"AACA,SAAS,aAAa;AAEtB,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,6BAA6B,qCAAqC;AAG3E,SAA2D,uBAAuB;AAM3E,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,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC9F;AAAA,EAEA,cAAc;AACb,UAAM,cAAc,MAAM,SAAS,aAAa,CAAC,QAAQ,GAAG;AAC5D,UAAM,cAAc,MAAM,SAAS,WAAW,CAAC,QAAQ,GAAG;AAC1D,UAAM,cAAc,MAAM,SAAS,MAAM,CAAC,QAAQ,GAAG;AACrD,UAAM,cAAc,MAAM,SAAS,UAAU,CAAC,QAAQ,GAAG;AAAA,EAC1D;AACD;AAEO,MAAM,yBAEH,WAA4C;AAAA,EACrD,QAAiB,UAAU,IAAY;AAAA,EAKvC,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QAIf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,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":[]}
@@ -25,8 +25,8 @@ var import_migrator = require("../migrator.cjs");
25
25
  var import_sql = require("../sql/sql.cjs");
26
26
  async function migrate(db, config) {
27
27
  const migrations = (0, import_migrator.readMigrationFiles)(config);
28
- const migrationsTable = typeof config === "string" ? "__drizzle_migrations" : config.migrationsTable ?? "__drizzle_migrations";
29
- const migrationsSchema = typeof config === "string" ? "drizzle" : config.migrationsSchema ?? "drizzle";
28
+ const migrationsTable = config.migrationsTable ?? "__drizzle_migrations";
29
+ const migrationsSchema = config.migrationsSchema ?? "drizzle";
30
30
  const migrationTableCreate = import_sql.sql`
31
31
  CREATE TABLE IF NOT EXISTS ${import_sql.sql.identifier(migrationsSchema)}.${import_sql.sql.identifier(migrationsTable)} (
32
32
  id SERIAL PRIMARY KEY,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/neon-http/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { type SQL, sql } from '~/sql/sql.ts';\nimport type { NeonHttpDatabase } from './driver.ts';\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Neon 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 */\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: NeonHttpDatabase<TSchema>,\n\tconfig: string | MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationsSchema = typeof config === 'string' ? 'drizzle' : config.migrationsSchema ?? 'drizzle';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${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(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(migrationsSchema)}`);\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{ id: number; hash: string; created_at: string }>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsSchema)}.${\n\t\t\tsql.identifier(migrationsTable)\n\t\t} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\tconst rowsToInsert: SQL[] = [];\n\tfor await (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration.created_at) < migration.folderMillis\n\t\t) {\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\trowsToInsert.push(\n\t\t\t\tsql`insert into ${sql.identifier(migrationsSchema)}.${\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\tfor await (const rowToInsert of rowsToInsert) {\n\t\tawait db.session.execute(rowToInsert);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,iBAA8B;AAW9B,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAC7B,QAAM,mBAAmB,OAAO,WAAW,WAAW,YAAY,OAAO,oBAAoB;AAC7F,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,gBAAgB,CAAC,IAAI,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMjG,QAAM,GAAG,QAAQ,QAAQ,6CAAkC,eAAI,WAAW,gBAAgB,CAAC,EAAE;AAC7F,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IACrC,kDAAuC,eAAI,WAAW,gBAAgB,CAAC,IACtE,eAAI,WAAW,eAAe,CAC/B;AAAA,EACD;AAEA,QAAM,kBAAkB,aAAa,CAAC;AACtC,QAAM,eAAsB,CAAC;AAC7B,mBAAiB,aAAa,YAAY;AACzC,QACC,CAAC,mBACE,OAAO,gBAAgB,UAAU,IAAI,UAAU,cACjD;AACD,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,eAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,mBAAa;AAAA,QACZ,6BAAkB,eAAI,WAAW,gBAAgB,CAAC,IACjD,eAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AAEA,mBAAiB,eAAe,cAAc;AAC7C,UAAM,GAAG,QAAQ,QAAQ,WAAW;AAAA,EACrC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/neon-http/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { type SQL, sql } from '~/sql/sql.ts';\nimport type { NeonHttpDatabase } from './driver.ts';\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Neon 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 */\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: NeonHttpDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationsSchema = config.migrationsSchema ?? 'drizzle';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${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(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(migrationsSchema)}`);\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{ id: number; hash: string; created_at: string }>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsSchema)}.${\n\t\t\tsql.identifier(migrationsTable)\n\t\t} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\tconst rowsToInsert: SQL[] = [];\n\tfor await (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration.created_at) < migration.folderMillis\n\t\t) {\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\trowsToInsert.push(\n\t\t\t\tsql`insert into ${sql.identifier(migrationsSchema)}.${\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\tfor await (const rowToInsert of rowsToInsert) {\n\t\tawait db.session.execute(rowToInsert);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,iBAA8B;AAW9B,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAClD,QAAM,mBAAmB,OAAO,oBAAoB;AACpD,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,gBAAgB,CAAC,IAAI,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMjG,QAAM,GAAG,QAAQ,QAAQ,6CAAkC,eAAI,WAAW,gBAAgB,CAAC,EAAE;AAC7F,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IACrC,kDAAuC,eAAI,WAAW,gBAAgB,CAAC,IACtE,eAAI,WAAW,eAAe,CAC/B;AAAA,EACD;AAEA,QAAM,kBAAkB,aAAa,CAAC;AACtC,QAAM,eAAsB,CAAC;AAC7B,mBAAiB,aAAa,YAAY;AACzC,QACC,CAAC,mBACE,OAAO,gBAAgB,UAAU,IAAI,UAAU,cACjD;AACD,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,eAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,mBAAa;AAAA,QACZ,6BAAkB,eAAI,WAAW,gBAAgB,CAAC,IACjD,eAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AAEA,mBAAiB,eAAe,cAAc;AAC7C,UAAM,GAAG,QAAQ,QAAQ,WAAW;AAAA,EACrC;AACD;","names":[]}
@@ -8,4 +8,4 @@ import type { NeonHttpDatabase } from "./driver.cjs";
8
8
  * @param db - drizzle db instance
9
9
  * @param config - path to migration folder generated by drizzle-kit
10
10
  */
11
- export declare function migrate<TSchema extends Record<string, unknown>>(db: NeonHttpDatabase<TSchema>, config: string | MigrationConfig): Promise<void>;
11
+ export declare function migrate<TSchema extends Record<string, unknown>>(db: NeonHttpDatabase<TSchema>, config: MigrationConfig): Promise<void>;
@@ -8,4 +8,4 @@ import type { NeonHttpDatabase } from "./driver.js";
8
8
  * @param db - drizzle db instance
9
9
  * @param config - path to migration folder generated by drizzle-kit
10
10
  */
11
- export declare function migrate<TSchema extends Record<string, unknown>>(db: NeonHttpDatabase<TSchema>, config: string | MigrationConfig): Promise<void>;
11
+ export declare function migrate<TSchema extends Record<string, unknown>>(db: NeonHttpDatabase<TSchema>, config: MigrationConfig): Promise<void>;
@@ -2,8 +2,8 @@ import { readMigrationFiles } from "../migrator.js";
2
2
  import { sql } from "../sql/sql.js";
3
3
  async function migrate(db, config) {
4
4
  const migrations = readMigrationFiles(config);
5
- const migrationsTable = typeof config === "string" ? "__drizzle_migrations" : config.migrationsTable ?? "__drizzle_migrations";
6
- const migrationsSchema = typeof config === "string" ? "drizzle" : config.migrationsSchema ?? "drizzle";
5
+ const migrationsTable = config.migrationsTable ?? "__drizzle_migrations";
6
+ const migrationsSchema = config.migrationsSchema ?? "drizzle";
7
7
  const migrationTableCreate = sql`
8
8
  CREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${sql.identifier(migrationsTable)} (
9
9
  id SERIAL PRIMARY KEY,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/neon-http/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { type SQL, sql } from '~/sql/sql.ts';\nimport type { NeonHttpDatabase } from './driver.ts';\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Neon 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 */\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: NeonHttpDatabase<TSchema>,\n\tconfig: string | MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationsSchema = typeof config === 'string' ? 'drizzle' : config.migrationsSchema ?? 'drizzle';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${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(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(migrationsSchema)}`);\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{ id: number; hash: string; created_at: string }>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsSchema)}.${\n\t\t\tsql.identifier(migrationsTable)\n\t\t} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\tconst rowsToInsert: SQL[] = [];\n\tfor await (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration.created_at) < migration.folderMillis\n\t\t) {\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\trowsToInsert.push(\n\t\t\t\tsql`insert into ${sql.identifier(migrationsSchema)}.${\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\tfor await (const rowToInsert of rowsToInsert) {\n\t\tawait db.session.execute(rowToInsert);\n\t}\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAmB,WAAW;AAW9B,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAC7B,QAAM,mBAAmB,OAAO,WAAW,WAAW,YAAY,OAAO,oBAAoB;AAC7F,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,gBAAgB,CAAC,IAAI,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMjG,QAAM,GAAG,QAAQ,QAAQ,kCAAkC,IAAI,WAAW,gBAAgB,CAAC,EAAE;AAC7F,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IACrC,uCAAuC,IAAI,WAAW,gBAAgB,CAAC,IACtE,IAAI,WAAW,eAAe,CAC/B;AAAA,EACD;AAEA,QAAM,kBAAkB,aAAa,CAAC;AACtC,QAAM,eAAsB,CAAC;AAC7B,mBAAiB,aAAa,YAAY;AACzC,QACC,CAAC,mBACE,OAAO,gBAAgB,UAAU,IAAI,UAAU,cACjD;AACD,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,IAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,mBAAa;AAAA,QACZ,kBAAkB,IAAI,WAAW,gBAAgB,CAAC,IACjD,IAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AAEA,mBAAiB,eAAe,cAAc;AAC7C,UAAM,GAAG,QAAQ,QAAQ,WAAW;AAAA,EACrC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/neon-http/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { type SQL, sql } from '~/sql/sql.ts';\nimport type { NeonHttpDatabase } from './driver.ts';\n\n/**\n * This function reads migrationFolder and execute each unapplied migration and mark it as executed in database\n *\n * NOTE: The Neon 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 */\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: NeonHttpDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\tconst migrationsSchema = config.migrationsSchema ?? 'drizzle';\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${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(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(migrationsSchema)}`);\n\tawait db.session.execute(migrationTableCreate);\n\n\tconst dbMigrations = await db.session.all<{ id: number; hash: string; created_at: string }>(\n\t\tsql`select id, hash, created_at from ${sql.identifier(migrationsSchema)}.${\n\t\t\tsql.identifier(migrationsTable)\n\t\t} order by created_at desc limit 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0];\n\tconst rowsToInsert: SQL[] = [];\n\tfor await (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration.created_at) < migration.folderMillis\n\t\t) {\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\trowsToInsert.push(\n\t\t\t\tsql`insert into ${sql.identifier(migrationsSchema)}.${\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\tfor await (const rowToInsert of rowsToInsert) {\n\t\tawait db.session.execute(rowToInsert);\n\t}\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAmB,WAAW;AAW9B,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAClD,QAAM,mBAAmB,OAAO,oBAAoB;AACpD,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,gBAAgB,CAAC,IAAI,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMjG,QAAM,GAAG,QAAQ,QAAQ,kCAAkC,IAAI,WAAW,gBAAgB,CAAC,EAAE;AAC7F,QAAM,GAAG,QAAQ,QAAQ,oBAAoB;AAE7C,QAAM,eAAe,MAAM,GAAG,QAAQ;AAAA,IACrC,uCAAuC,IAAI,WAAW,gBAAgB,CAAC,IACtE,IAAI,WAAW,eAAe,CAC/B;AAAA,EACD;AAEA,QAAM,kBAAkB,aAAa,CAAC;AACtC,QAAM,eAAsB,CAAC;AAC7B,mBAAiB,aAAa,YAAY;AACzC,QACC,CAAC,mBACE,OAAO,gBAAgB,UAAU,IAAI,UAAU,cACjD;AACD,iBAAW,QAAQ,UAAU,KAAK;AACjC,cAAM,GAAG,QAAQ,QAAQ,IAAI,IAAI,IAAI,CAAC;AAAA,MACvC;AAEA,mBAAa;AAAA,QACZ,kBAAkB,IAAI,WAAW,gBAAgB,CAAC,IACjD,IAAI,WAAW,eAAe,CAC/B,kCAAkC,UAAU,IAAI,KAAK,UAAU,YAAY;AAAA,MAC5E;AAAA,IACD;AAAA,EACD;AAEA,mBAAiB,eAAe,cAAc;AAC7C,UAAM,GAAG,QAAQ,QAAQ,WAAW;AAAA,EACrC;AACD;","names":[]}
@@ -129,6 +129,12 @@ class NeonHttpSession extends import_session.PgSession {
129
129
  async queryObjects(query, params) {
130
130
  return this.client(query, params, { arrayMode: false, fullResults: true });
131
131
  }
132
+ async count(sql) {
133
+ const res = await this.execute(sql);
134
+ return Number(
135
+ res["rows"][0]["count"]
136
+ );
137
+ }
132
138
  async transaction(_transaction, _config = {}) {
133
139
  throw new Error("No transactions support in neon-http driver");
134
140
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/neon-http/session.ts"],"sourcesContent":["import type { FullQueryResults, NeonQueryFunction, NeonQueryPromise } from '@neondatabase/serverless';\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery as PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type NeonHttpClient = NeonQueryFunction<any, any>;\n\nconst rawQueryConfig = {\n\tarrayMode: false,\n\tfullResults: true,\n} as const;\nconst queryConfig = {\n\tarrayMode: true,\n\tfullResults: true,\n} as const;\n\nexport class NeonHttpPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'NeonHttpPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper(query);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, query, customResultMapper } = this;\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client(query.sql, params, rawQueryConfig);\n\t\t}\n\n\t\tconst result = await client(query.sql, params, queryConfig);\n\n\t\treturn this.mapResult(result);\n\t}\n\n\toverride mapResult(result: unknown): unknown {\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst rows = (result as FullQueryResults<true>).rows;\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client(this.query.sql, params, rawQueryConfig).then((result) => result.rows);\n\t}\n\n\tvalues(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client(this.query.sql, params, { arrayMode: true, fullResults: true }).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode() {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NeonHttpSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonHttpSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<NeonHttpQueryResultHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NeonHttpSessionOptions = {},\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 NeonHttpPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: NeonQueryPromise<any, true>[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push(\n\t\t\t\tthis.client(builtQuery.sql, builtQuery.params, {\n\t\t\t\t\tfullResults: true,\n\t\t\t\t\tarrayMode: preparedQuery.isResponseInArrayMode(),\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tconst batchResults = await this.client.transaction(builtQueries, queryConfig);\n\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\t// change return type to QueryRows<true>\n\tasync query(query: string, params: unknown[]): Promise<FullQueryResults<true>> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client(query, params, { arrayMode: true, fullResults: true });\n\t\treturn result;\n\t}\n\n\t// change return type to QueryRows<false>\n\tasync queryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<FullQueryResults<false>> {\n\t\treturn this.client(query, params, { arrayMode: false, fullResults: true });\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t_config: PgTransactionConfig = {},\n\t): Promise<T> {\n\t\tthrow new Error('No transactions support in neon-http driver');\n\t}\n}\n\nexport class NeonTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<NeonHttpQueryResultHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpTransaction';\n\n\toverride async transaction<T>(_transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tthrow new Error('No transactions support in neon-http driver');\n\t\t// const savepointName = `sp${this.nestedIndex + 1}`;\n\t\t// const tx = new NeonTransaction(this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\t// await tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\t// try {\n\t\t// \tconst result = await transaction(tx);\n\t\t// \tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t// \treturn result;\n\t\t// } catch (e) {\n\t\t// \tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t// \tthrow e;\n\t\t// }\n\t}\n}\n\nexport type NeonHttpQueryResult<T> = Omit<FullQueryResults<false>, 'rows'> & { rows: T[] };\n\nexport interface NeonHttpQueryResultHKT extends PgQueryResultHKT {\n\ttype: NeonHttpQueryResult<this['row']>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAA2B;AAE3B,qBAA8B;AAG9B,qBAA8D;AAG9D,iBAA6C;AAC7C,mBAA6B;AAI7B,MAAM,iBAAiB;AAAA,EACtB,WAAW;AAAA,EACX,aAAa;AACd;AACA,MAAM,cAAc;AAAA,EACnB,WAAW;AAAA,EACX,aAAa;AACd;AAEO,MAAM,8BAA6D,+BAAmB;AAAA,EAG5F,YACS,QACR,OACQ,QACA,QACA,wBACA,oBACP;AACD,UAAM,KAAK;AAPH;AAEA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAXA,QAAiB,wBAAU,IAAY;AAAA,EAavC,MAAM,QAAQ,oBAAyD,CAAC,GAA0B;AACjG,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,iBAAiB;AAEpE,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,UAAM,EAAE,QAAQ,QAAQ,OAAO,mBAAmB,IAAI;AAEtD,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,aAAO,OAAO,MAAM,KAAK,QAAQ,cAAc;AAAA,IAChD;AAEA,UAAM,SAAS,MAAM,OAAO,MAAM,KAAK,QAAQ,WAAW;AAE1D,WAAO,KAAK,UAAU,MAAM;AAAA,EAC7B;AAAA,EAES,UAAU,QAA0B;AAC5C,QAAI,CAAC,KAAK,UAAU,CAAC,KAAK,oBAAoB;AAC7C,aAAO;AAAA,IACR;AAEA,UAAM,OAAQ,OAAkC;AAEhD,QAAI,KAAK,oBAAoB;AAC5B,aAAO,KAAK,mBAAmB,IAAI;AAAA,IACpC;AAEA,WAAO,KAAK,IAAI,CAAC,YAAQ,2BAAa,KAAK,QAAS,KAAK,KAAK,mBAAmB,CAAC;AAAA,EACnF;AAAA,EAEA,IAAI,oBAAyD,CAAC,GAAsB;AACnF,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,iBAAiB;AACpE,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,KAAK,MAAM,KAAK,QAAQ,cAAc,EAAE,KAAK,CAAC,WAAW,OAAO,IAAI;AAAA,EACxF;AAAA,EAEA,OAAO,oBAAyD,CAAC,GAAyB;AACzF,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,iBAAiB;AACpE,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,KAAK,MAAM,KAAK,QAAQ,EAAE,WAAW,MAAM,aAAa,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,OAAO,IAAI;AAAA,EAChH;AAAA;AAAA,EAGA,wBAAwB;AACvB,WAAO,KAAK;AAAA,EACb;AACD;AAMO,MAAM,wBAGH,yBAAwD;AAAA,EAKjE,YACS,QACR,SACQ,QACA,UAAkC,CAAC,GAC1C;AACD,UAAM,OAAO;AALL;AAEA;AACA;AAGR,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAZA,QAAiB,wBAAU,IAAY;AAAA,EAE/B;AAAA,EAYR,aACC,OACA,QACA,MACA,uBACA,oBACqB;AACrB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,MAAkE,SAAY;AACnF,UAAM,kBAAmC,CAAC;AAC1C,UAAM,eAA8C,CAAC;AAErD,eAAW,SAAS,SAAS;AAC5B,YAAM,gBAAgB,MAAM,SAAS;AACrC,YAAM,aAAa,cAAc,SAAS;AAC1C,sBAAgB,KAAK,aAAa;AAClC,mBAAa;AAAA,QACZ,KAAK,OAAO,WAAW,KAAK,WAAW,QAAQ;AAAA,UAC9C,aAAa;AAAA,UACb,WAAW,cAAc,sBAAsB;AAAA,QAChD,CAAC;AAAA,MACF;AAAA,IACD;AAEA,UAAM,eAAe,MAAM,KAAK,OAAO,YAAY,cAAc,WAAW;AAE5E,WAAO,aAAa,IAAI,CAAC,QAAQ,MAAM,gBAAgB,CAAC,EAAG,UAAU,QAAQ,IAAI,CAAC;AAAA,EACnF;AAAA;AAAA,EAGA,MAAM,MAAM,OAAe,QAAoD;AAC9E,SAAK,OAAO,SAAS,OAAO,MAAM;AAClC,UAAM,SAAS,MAAM,KAAK,OAAO,OAAO,QAAQ,EAAE,WAAW,MAAM,aAAa,KAAK,CAAC;AACtF,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,aACL,OACA,QACmC;AACnC,WAAO,KAAK,OAAO,OAAO,QAAQ,EAAE,WAAW,OAAO,aAAa,KAAK,CAAC;AAAA,EAC1E;AAAA,EAEA,MAAe,YACd,cAEA,UAA+B,CAAC,GACnB;AACb,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC9D;AACD;AAEO,MAAM,wBAGH,6BAA4D;AAAA,EACrE,QAAiB,wBAAU,IAAY;AAAA,EAEvC,MAAe,YAAe,cAAqF;AAClH,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAY9D;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/neon-http/session.ts"],"sourcesContent":["import type { FullQueryResults, NeonQueryFunction, NeonQueryPromise } from '@neondatabase/serverless';\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery as PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type NeonHttpClient = NeonQueryFunction<any, any>;\n\nconst rawQueryConfig = {\n\tarrayMode: false,\n\tfullResults: true,\n} as const;\nconst queryConfig = {\n\tarrayMode: true,\n\tfullResults: true,\n} as const;\n\nexport class NeonHttpPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'NeonHttpPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper(query);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, query, customResultMapper } = this;\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client(query.sql, params, rawQueryConfig);\n\t\t}\n\n\t\tconst result = await client(query.sql, params, queryConfig);\n\n\t\treturn this.mapResult(result);\n\t}\n\n\toverride mapResult(result: unknown): unknown {\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst rows = (result as FullQueryResults<true>).rows;\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client(this.query.sql, params, rawQueryConfig).then((result) => result.rows);\n\t}\n\n\tvalues(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues);\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client(this.query.sql, params, { arrayMode: true, fullResults: true }).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode() {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface NeonHttpSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class NeonHttpSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<NeonHttpQueryResultHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NeonHttpClient,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NeonHttpSessionOptions = {},\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 NeonHttpPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: NeonQueryPromise<any, true>[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push(\n\t\t\t\tthis.client(builtQuery.sql, builtQuery.params, {\n\t\t\t\t\tfullResults: true,\n\t\t\t\t\tarrayMode: preparedQuery.isResponseInArrayMode(),\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tconst batchResults = await this.client.transaction(builtQueries, queryConfig);\n\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\t// change return type to QueryRows<true>\n\tasync query(query: string, params: unknown[]): Promise<FullQueryResults<true>> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client(query, params, { arrayMode: true, fullResults: true });\n\t\treturn result;\n\t}\n\n\t// change return type to QueryRows<false>\n\tasync queryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<FullQueryResults<false>> {\n\t\treturn this.client(query, params, { arrayMode: false, fullResults: true });\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t_config: PgTransactionConfig = {},\n\t): Promise<T> {\n\t\tthrow new Error('No transactions support in neon-http driver');\n\t}\n}\n\nexport class NeonTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<NeonHttpQueryResultHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'NeonHttpTransaction';\n\n\toverride async transaction<T>(_transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tthrow new Error('No transactions support in neon-http driver');\n\t\t// const savepointName = `sp${this.nestedIndex + 1}`;\n\t\t// const tx = new NeonTransaction(this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\t// await tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\t// try {\n\t\t// \tconst result = await transaction(tx);\n\t\t// \tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t// \treturn result;\n\t\t// } catch (e) {\n\t\t// \tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t// \tthrow e;\n\t\t// }\n\t}\n}\n\nexport type NeonHttpQueryResult<T> = Omit<FullQueryResults<false>, 'rows'> & { rows: T[] };\n\nexport interface NeonHttpQueryResultHKT extends PgQueryResultHKT {\n\ttype: NeonHttpQueryResult<this['row']>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAA2B;AAE3B,qBAA8B;AAG9B,qBAA8D;AAG9D,iBAAuD;AACvD,mBAA6B;AAI7B,MAAM,iBAAiB;AAAA,EACtB,WAAW;AAAA,EACX,aAAa;AACd;AACA,MAAM,cAAc;AAAA,EACnB,WAAW;AAAA,EACX,aAAa;AACd;AAEO,MAAM,8BAA6D,+BAAmB;AAAA,EAG5F,YACS,QACR,OACQ,QACA,QACA,wBACA,oBACP;AACD,UAAM,KAAK;AAPH;AAEA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAXA,QAAiB,wBAAU,IAAY;AAAA,EAavC,MAAM,QAAQ,oBAAyD,CAAC,GAA0B;AACjG,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,iBAAiB;AAEpE,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,UAAM,EAAE,QAAQ,QAAQ,OAAO,mBAAmB,IAAI;AAEtD,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,aAAO,OAAO,MAAM,KAAK,QAAQ,cAAc;AAAA,IAChD;AAEA,UAAM,SAAS,MAAM,OAAO,MAAM,KAAK,QAAQ,WAAW;AAE1D,WAAO,KAAK,UAAU,MAAM;AAAA,EAC7B;AAAA,EAES,UAAU,QAA0B;AAC5C,QAAI,CAAC,KAAK,UAAU,CAAC,KAAK,oBAAoB;AAC7C,aAAO;AAAA,IACR;AAEA,UAAM,OAAQ,OAAkC;AAEhD,QAAI,KAAK,oBAAoB;AAC5B,aAAO,KAAK,mBAAmB,IAAI;AAAA,IACpC;AAEA,WAAO,KAAK,IAAI,CAAC,YAAQ,2BAAa,KAAK,QAAS,KAAK,KAAK,mBAAmB,CAAC;AAAA,EACnF;AAAA,EAEA,IAAI,oBAAyD,CAAC,GAAsB;AACnF,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,iBAAiB;AACpE,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,KAAK,MAAM,KAAK,QAAQ,cAAc,EAAE,KAAK,CAAC,WAAW,OAAO,IAAI;AAAA,EACxF;AAAA,EAEA,OAAO,oBAAyD,CAAC,GAAyB;AACzF,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,iBAAiB;AACpE,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,KAAK,MAAM,KAAK,QAAQ,EAAE,WAAW,MAAM,aAAa,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,OAAO,IAAI;AAAA,EAChH;AAAA;AAAA,EAGA,wBAAwB;AACvB,WAAO,KAAK;AAAA,EACb;AACD;AAMO,MAAM,wBAGH,yBAAwD;AAAA,EAKjE,YACS,QACR,SACQ,QACA,UAAkC,CAAC,GAC1C;AACD,UAAM,OAAO;AALL;AAEA;AACA;AAGR,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAZA,QAAiB,wBAAU,IAAY;AAAA,EAE/B;AAAA,EAYR,aACC,OACA,QACA,MACA,uBACA,oBACqB;AACrB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,MAAkE,SAAY;AACnF,UAAM,kBAAmC,CAAC;AAC1C,UAAM,eAA8C,CAAC;AAErD,eAAW,SAAS,SAAS;AAC5B,YAAM,gBAAgB,MAAM,SAAS;AACrC,YAAM,aAAa,cAAc,SAAS;AAC1C,sBAAgB,KAAK,aAAa;AAClC,mBAAa;AAAA,QACZ,KAAK,OAAO,WAAW,KAAK,WAAW,QAAQ;AAAA,UAC9C,aAAa;AAAA,UACb,WAAW,cAAc,sBAAsB;AAAA,QAChD,CAAC;AAAA,MACF;AAAA,IACD;AAEA,UAAM,eAAe,MAAM,KAAK,OAAO,YAAY,cAAc,WAAW;AAE5E,WAAO,aAAa,IAAI,CAAC,QAAQ,MAAM,gBAAgB,CAAC,EAAG,UAAU,QAAQ,IAAI,CAAC;AAAA,EACnF;AAAA;AAAA,EAGA,MAAM,MAAM,OAAe,QAAoD;AAC9E,SAAK,OAAO,SAAS,OAAO,MAAM;AAClC,UAAM,SAAS,MAAM,KAAK,OAAO,OAAO,QAAQ,EAAE,WAAW,MAAM,aAAa,KAAK,CAAC;AACtF,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,MAAM,aACL,OACA,QACmC;AACnC,WAAO,KAAK,OAAO,OAAO,QAAQ,EAAE,WAAW,OAAO,aAAa,KAAK,CAAC;AAAA,EAC1E;AAAA,EAEA,MAAe,MAAM,KAA2B;AAC/C,UAAM,MAAM,MAAM,KAAK,QAAuC,GAAG;AAEjE,WAAO;AAAA,MACN,IAAI,MAAM,EAAE,CAAC,EAAE,OAAO;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,MAAe,YACd,cAEA,UAA+B,CAAC,GACnB;AACb,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC9D;AACD;AAEO,MAAM,wBAGH,6BAA4D;AAAA,EACrE,QAAiB,wBAAU,IAAY;AAAA,EAEvC,MAAe,YAAe,cAAqF;AAClH,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAY9D;AACD;","names":[]}
@@ -8,7 +8,7 @@ import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.typ
8
8
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.cjs";
9
9
  import { PgPreparedQuery as PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
10
10
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
11
- import { type Query } from "../sql/sql.cjs";
11
+ import { type Query, type SQL } from "../sql/sql.cjs";
12
12
  export type NeonHttpClient = NeonQueryFunction<any, any>;
13
13
  export declare class NeonHttpPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
14
14
  private client;
@@ -37,6 +37,7 @@ export declare class NeonHttpSession<TFullSchema extends Record<string, unknown>
37
37
  batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(queries: T): Promise<unknown[]>;
38
38
  query(query: string, params: unknown[]): Promise<FullQueryResults<true>>;
39
39
  queryObjects(query: string, params: unknown[]): Promise<FullQueryResults<false>>;
40
+ count(sql: SQL): Promise<number>;
40
41
  transaction<T>(_transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: PgTransactionConfig): Promise<T>;
41
42
  }
42
43
  export declare class NeonTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<NeonHttpQueryResultHKT, TFullSchema, TSchema> {
@@ -8,7 +8,7 @@ import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.typ
8
8
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.js";
9
9
  import { PgPreparedQuery as PgPreparedQuery, PgSession } from "../pg-core/session.js";
10
10
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
11
- import { type Query } from "../sql/sql.js";
11
+ import { type Query, type SQL } from "../sql/sql.js";
12
12
  export type NeonHttpClient = NeonQueryFunction<any, any>;
13
13
  export declare class NeonHttpPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
14
14
  private client;
@@ -37,6 +37,7 @@ export declare class NeonHttpSession<TFullSchema extends Record<string, unknown>
37
37
  batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(queries: T): Promise<unknown[]>;
38
38
  query(query: string, params: unknown[]): Promise<FullQueryResults<true>>;
39
39
  queryObjects(query: string, params: unknown[]): Promise<FullQueryResults<false>>;
40
+ count(sql: SQL): Promise<number>;
40
41
  transaction<T>(_transaction: (tx: NeonTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: PgTransactionConfig): Promise<T>;
41
42
  }
42
43
  export declare class NeonTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<NeonHttpQueryResultHKT, TFullSchema, TSchema> {
@@ -104,6 +104,12 @@ class NeonHttpSession extends PgSession {
104
104
  async queryObjects(query, params) {
105
105
  return this.client(query, params, { arrayMode: false, fullResults: true });
106
106
  }
107
+ async count(sql) {
108
+ const res = await this.execute(sql);
109
+ return Number(
110
+ res["rows"][0]["count"]
111
+ );
112
+ }
107
113
  async transaction(_transaction, _config = {}) {
108
114
  throw new Error("No transactions support in neon-http driver");
109
115
  }