drizzle-orm 0.33.0-ff1dcd9 → 0.34.0-05b9e35

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 (848) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/driver.cjs +12 -9
  4. package/aws-data-api/pg/driver.cjs.map +1 -1
  5. package/aws-data-api/pg/driver.d.cts +4 -2
  6. package/aws-data-api/pg/driver.d.ts +4 -2
  7. package/aws-data-api/pg/driver.js +6 -3
  8. package/aws-data-api/pg/driver.js.map +1 -1
  9. package/aws-data-api/pg/migrator.cjs.map +1 -1
  10. package/aws-data-api/pg/migrator.d.cts +1 -1
  11. package/aws-data-api/pg/migrator.d.ts +1 -1
  12. package/aws-data-api/pg/migrator.js.map +1 -1
  13. package/better-sqlite3/driver.cjs +10 -2
  14. package/better-sqlite3/driver.cjs.map +1 -1
  15. package/better-sqlite3/driver.d.cts +7 -2
  16. package/better-sqlite3/driver.d.ts +7 -2
  17. package/better-sqlite3/driver.js +9 -2
  18. package/better-sqlite3/driver.js.map +1 -1
  19. package/better-sqlite3/migrator.cjs.map +1 -1
  20. package/better-sqlite3/migrator.d.cts +1 -1
  21. package/better-sqlite3/migrator.d.ts +1 -1
  22. package/better-sqlite3/migrator.js.map +1 -1
  23. package/bun-sqlite/driver.cjs +10 -2
  24. package/bun-sqlite/driver.cjs.map +1 -1
  25. package/bun-sqlite/driver.d.cts +7 -2
  26. package/bun-sqlite/driver.d.ts +7 -2
  27. package/bun-sqlite/driver.js +9 -2
  28. package/bun-sqlite/driver.js.map +1 -1
  29. package/bun-sqlite/migrator.cjs.map +1 -1
  30. package/bun-sqlite/migrator.d.cts +1 -1
  31. package/bun-sqlite/migrator.d.ts +1 -1
  32. package/bun-sqlite/migrator.js.map +1 -1
  33. package/casing.cjs +85 -0
  34. package/casing.cjs.map +1 -0
  35. package/casing.d.cts +14 -0
  36. package/casing.d.ts +14 -0
  37. package/casing.js +59 -0
  38. package/casing.js.map +1 -0
  39. package/column-builder.cjs +7 -0
  40. package/column-builder.cjs.map +1 -1
  41. package/column-builder.d.cts +7 -2
  42. package/column-builder.d.ts +7 -2
  43. package/column-builder.js +7 -0
  44. package/column-builder.js.map +1 -1
  45. package/column.cjs +3 -0
  46. package/column.cjs.map +1 -1
  47. package/column.js +3 -0
  48. package/column.js.map +1 -1
  49. package/d1/driver.cjs +4 -2
  50. package/d1/driver.cjs.map +1 -1
  51. package/d1/driver.d.cts +6 -2
  52. package/d1/driver.d.ts +6 -2
  53. package/d1/driver.js +4 -2
  54. package/d1/driver.js.map +1 -1
  55. package/d1/migrator.cjs +1 -1
  56. package/d1/migrator.cjs.map +1 -1
  57. package/d1/migrator.d.cts +1 -1
  58. package/d1/migrator.d.ts +1 -1
  59. package/d1/migrator.js +1 -1
  60. package/d1/migrator.js.map +1 -1
  61. package/expo-sqlite/driver.cjs +10 -2
  62. package/expo-sqlite/driver.cjs.map +1 -1
  63. package/expo-sqlite/driver.d.cts +7 -2
  64. package/expo-sqlite/driver.d.ts +7 -2
  65. package/expo-sqlite/driver.js +9 -2
  66. package/expo-sqlite/driver.js.map +1 -1
  67. package/index.cjs +4 -0
  68. package/index.cjs.map +1 -1
  69. package/index.d.cts +2 -0
  70. package/index.d.ts +2 -0
  71. package/index.js +2 -0
  72. package/index.js.map +1 -1
  73. package/libsql/driver.cjs +4 -2
  74. package/libsql/driver.cjs.map +1 -1
  75. package/libsql/driver.d.cts +3 -1
  76. package/libsql/driver.d.ts +3 -1
  77. package/libsql/driver.js +4 -2
  78. package/libsql/driver.js.map +1 -1
  79. package/libsql/migrator.cjs +1 -1
  80. package/libsql/migrator.cjs.map +1 -1
  81. package/libsql/migrator.js +1 -1
  82. package/libsql/migrator.js.map +1 -1
  83. package/migrator.cjs +1 -12
  84. package/migrator.cjs.map +1 -1
  85. package/migrator.d.cts +1 -1
  86. package/migrator.d.ts +1 -1
  87. package/migrator.js +1 -12
  88. package/migrator.js.map +1 -1
  89. package/monodriver.cjs +283 -0
  90. package/monodriver.cjs.map +1 -0
  91. package/monodriver.d.cts +194 -0
  92. package/monodriver.d.ts +194 -0
  93. package/monodriver.js +249 -0
  94. package/monodriver.js.map +1 -0
  95. package/monomigrator.cjs +99 -0
  96. package/monomigrator.cjs.map +1 -0
  97. package/monomigrator.d.cts +16 -0
  98. package/monomigrator.d.ts +16 -0
  99. package/monomigrator.js +65 -0
  100. package/monomigrator.js.map +1 -0
  101. package/mysql-core/columns/all.cjs +80 -0
  102. package/mysql-core/columns/all.cjs.map +1 -0
  103. package/mysql-core/columns/all.d.cts +51 -0
  104. package/mysql-core/columns/all.d.ts +51 -0
  105. package/mysql-core/columns/all.js +56 -0
  106. package/mysql-core/columns/all.js.map +1 -0
  107. package/mysql-core/columns/bigint.cjs +3 -1
  108. package/mysql-core/columns/bigint.cjs.map +1 -1
  109. package/mysql-core/columns/bigint.d.cts +2 -2
  110. package/mysql-core/columns/bigint.d.ts +2 -2
  111. package/mysql-core/columns/bigint.js +3 -1
  112. package/mysql-core/columns/bigint.js.map +1 -1
  113. package/mysql-core/columns/binary.cjs +3 -1
  114. package/mysql-core/columns/binary.cjs.map +1 -1
  115. package/mysql-core/columns/binary.d.cts +2 -0
  116. package/mysql-core/columns/binary.d.ts +2 -0
  117. package/mysql-core/columns/binary.js +3 -1
  118. package/mysql-core/columns/binary.js.map +1 -1
  119. package/mysql-core/columns/boolean.cjs +1 -1
  120. package/mysql-core/columns/boolean.cjs.map +1 -1
  121. package/mysql-core/columns/boolean.d.cts +1 -0
  122. package/mysql-core/columns/boolean.d.ts +1 -0
  123. package/mysql-core/columns/boolean.js +1 -1
  124. package/mysql-core/columns/boolean.js.map +1 -1
  125. package/mysql-core/columns/char.cjs +3 -1
  126. package/mysql-core/columns/char.cjs.map +1 -1
  127. package/mysql-core/columns/char.d.cts +4 -2
  128. package/mysql-core/columns/char.d.ts +4 -2
  129. package/mysql-core/columns/char.js +3 -1
  130. package/mysql-core/columns/char.js.map +1 -1
  131. package/mysql-core/columns/custom.cjs +4 -2
  132. package/mysql-core/columns/custom.cjs.map +1 -1
  133. package/mysql-core/columns/custom.d.cts +10 -3
  134. package/mysql-core/columns/custom.d.ts +10 -3
  135. package/mysql-core/columns/custom.js +4 -2
  136. package/mysql-core/columns/custom.js.map +1 -1
  137. package/mysql-core/columns/date.cjs +4 -2
  138. package/mysql-core/columns/date.cjs.map +1 -1
  139. package/mysql-core/columns/date.d.cts +3 -1
  140. package/mysql-core/columns/date.d.ts +3 -1
  141. package/mysql-core/columns/date.js +4 -2
  142. package/mysql-core/columns/date.js.map +1 -1
  143. package/mysql-core/columns/datetime.cjs +4 -2
  144. package/mysql-core/columns/datetime.cjs.map +1 -1
  145. package/mysql-core/columns/datetime.d.cts +3 -1
  146. package/mysql-core/columns/datetime.d.ts +3 -1
  147. package/mysql-core/columns/datetime.js +4 -2
  148. package/mysql-core/columns/datetime.js.map +1 -1
  149. package/mysql-core/columns/decimal.cjs +3 -1
  150. package/mysql-core/columns/decimal.cjs.map +1 -1
  151. package/mysql-core/columns/decimal.d.cts +2 -0
  152. package/mysql-core/columns/decimal.d.ts +2 -0
  153. package/mysql-core/columns/decimal.js +3 -1
  154. package/mysql-core/columns/decimal.js.map +1 -1
  155. package/mysql-core/columns/double.cjs +3 -1
  156. package/mysql-core/columns/double.cjs.map +1 -1
  157. package/mysql-core/columns/double.d.cts +2 -0
  158. package/mysql-core/columns/double.d.ts +2 -0
  159. package/mysql-core/columns/double.js +3 -1
  160. package/mysql-core/columns/double.js.map +1 -1
  161. package/mysql-core/columns/enum.cjs +3 -1
  162. package/mysql-core/columns/enum.cjs.map +1 -1
  163. package/mysql-core/columns/enum.d.cts +2 -1
  164. package/mysql-core/columns/enum.d.ts +2 -1
  165. package/mysql-core/columns/enum.js +3 -1
  166. package/mysql-core/columns/enum.js.map +1 -1
  167. package/mysql-core/columns/float.cjs +1 -1
  168. package/mysql-core/columns/float.cjs.map +1 -1
  169. package/mysql-core/columns/float.d.cts +1 -0
  170. package/mysql-core/columns/float.d.ts +1 -0
  171. package/mysql-core/columns/float.js +1 -1
  172. package/mysql-core/columns/float.js.map +1 -1
  173. package/mysql-core/columns/int.cjs +3 -1
  174. package/mysql-core/columns/int.cjs.map +1 -1
  175. package/mysql-core/columns/int.d.cts +2 -0
  176. package/mysql-core/columns/int.d.ts +2 -0
  177. package/mysql-core/columns/int.js +3 -1
  178. package/mysql-core/columns/int.js.map +1 -1
  179. package/mysql-core/columns/json.cjs +1 -1
  180. package/mysql-core/columns/json.cjs.map +1 -1
  181. package/mysql-core/columns/json.d.cts +1 -0
  182. package/mysql-core/columns/json.d.ts +1 -0
  183. package/mysql-core/columns/json.js +1 -1
  184. package/mysql-core/columns/json.js.map +1 -1
  185. package/mysql-core/columns/mediumint.cjs +3 -1
  186. package/mysql-core/columns/mediumint.cjs.map +1 -1
  187. package/mysql-core/columns/mediumint.d.cts +2 -0
  188. package/mysql-core/columns/mediumint.d.ts +2 -0
  189. package/mysql-core/columns/mediumint.js +3 -1
  190. package/mysql-core/columns/mediumint.js.map +1 -1
  191. package/mysql-core/columns/real.cjs +3 -1
  192. package/mysql-core/columns/real.cjs.map +1 -1
  193. package/mysql-core/columns/real.d.cts +2 -0
  194. package/mysql-core/columns/real.d.ts +2 -0
  195. package/mysql-core/columns/real.js +3 -1
  196. package/mysql-core/columns/real.js.map +1 -1
  197. package/mysql-core/columns/serial.cjs +1 -1
  198. package/mysql-core/columns/serial.cjs.map +1 -1
  199. package/mysql-core/columns/serial.d.cts +1 -0
  200. package/mysql-core/columns/serial.d.ts +1 -0
  201. package/mysql-core/columns/serial.js +1 -1
  202. package/mysql-core/columns/serial.js.map +1 -1
  203. package/mysql-core/columns/smallint.cjs +3 -1
  204. package/mysql-core/columns/smallint.cjs.map +1 -1
  205. package/mysql-core/columns/smallint.d.cts +2 -0
  206. package/mysql-core/columns/smallint.d.ts +2 -0
  207. package/mysql-core/columns/smallint.js +3 -1
  208. package/mysql-core/columns/smallint.js.map +1 -1
  209. package/mysql-core/columns/text.cjs +9 -4
  210. package/mysql-core/columns/text.cjs.map +1 -1
  211. package/mysql-core/columns/text.d.cts +10 -2
  212. package/mysql-core/columns/text.d.ts +10 -2
  213. package/mysql-core/columns/text.js +9 -4
  214. package/mysql-core/columns/text.js.map +1 -1
  215. package/mysql-core/columns/time.cjs +3 -1
  216. package/mysql-core/columns/time.cjs.map +1 -1
  217. package/mysql-core/columns/time.d.cts +2 -0
  218. package/mysql-core/columns/time.d.ts +2 -0
  219. package/mysql-core/columns/time.js +3 -1
  220. package/mysql-core/columns/time.js.map +1 -1
  221. package/mysql-core/columns/timestamp.cjs +4 -2
  222. package/mysql-core/columns/timestamp.cjs.map +1 -1
  223. package/mysql-core/columns/timestamp.d.cts +3 -1
  224. package/mysql-core/columns/timestamp.d.ts +3 -1
  225. package/mysql-core/columns/timestamp.js +4 -2
  226. package/mysql-core/columns/timestamp.js.map +1 -1
  227. package/mysql-core/columns/tinyint.cjs +3 -1
  228. package/mysql-core/columns/tinyint.cjs.map +1 -1
  229. package/mysql-core/columns/tinyint.d.cts +2 -0
  230. package/mysql-core/columns/tinyint.d.ts +2 -0
  231. package/mysql-core/columns/tinyint.js +3 -1
  232. package/mysql-core/columns/tinyint.js.map +1 -1
  233. package/mysql-core/columns/varbinary.cjs +4 -2
  234. package/mysql-core/columns/varbinary.cjs.map +1 -1
  235. package/mysql-core/columns/varbinary.d.cts +2 -1
  236. package/mysql-core/columns/varbinary.d.ts +2 -1
  237. package/mysql-core/columns/varbinary.js +4 -2
  238. package/mysql-core/columns/varbinary.js.map +1 -1
  239. package/mysql-core/columns/varchar.cjs +3 -1
  240. package/mysql-core/columns/varchar.cjs.map +1 -1
  241. package/mysql-core/columns/varchar.d.cts +3 -2
  242. package/mysql-core/columns/varchar.d.ts +3 -2
  243. package/mysql-core/columns/varchar.js +3 -1
  244. package/mysql-core/columns/varchar.js.map +1 -1
  245. package/mysql-core/columns/year.cjs +1 -1
  246. package/mysql-core/columns/year.cjs.map +1 -1
  247. package/mysql-core/columns/year.d.cts +1 -0
  248. package/mysql-core/columns/year.d.ts +1 -0
  249. package/mysql-core/columns/year.js +1 -1
  250. package/mysql-core/columns/year.js.map +1 -1
  251. package/mysql-core/db.cjs +8 -2
  252. package/mysql-core/db.cjs.map +1 -1
  253. package/mysql-core/db.d.cts +5 -2
  254. package/mysql-core/db.d.ts +5 -2
  255. package/mysql-core/db.js +8 -2
  256. package/mysql-core/db.js.map +1 -1
  257. package/mysql-core/dialect.cjs +14 -7
  258. package/mysql-core/dialect.cjs.map +1 -1
  259. package/mysql-core/dialect.d.cts +5 -1
  260. package/mysql-core/dialect.d.ts +5 -1
  261. package/mysql-core/dialect.js +14 -7
  262. package/mysql-core/dialect.js.map +1 -1
  263. package/mysql-core/foreign-keys.cjs +3 -3
  264. package/mysql-core/foreign-keys.cjs.map +1 -1
  265. package/mysql-core/foreign-keys.d.cts +1 -1
  266. package/mysql-core/foreign-keys.d.ts +1 -1
  267. package/mysql-core/foreign-keys.js +3 -3
  268. package/mysql-core/foreign-keys.js.map +1 -1
  269. package/mysql-core/query-builders/count.cjs +73 -0
  270. package/mysql-core/query-builders/count.cjs.map +1 -0
  271. package/mysql-core/query-builders/count.d.cts +27 -0
  272. package/mysql-core/query-builders/count.d.ts +27 -0
  273. package/mysql-core/query-builders/count.js +49 -0
  274. package/mysql-core/query-builders/count.js.map +1 -0
  275. package/mysql-core/query-builders/query-builder.cjs +6 -1
  276. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  277. package/mysql-core/query-builders/query-builder.d.cts +4 -0
  278. package/mysql-core/query-builders/query-builder.d.ts +4 -0
  279. package/mysql-core/query-builders/query-builder.js +7 -2
  280. package/mysql-core/query-builders/query-builder.js.map +1 -1
  281. package/mysql-core/session.cjs +6 -0
  282. package/mysql-core/session.cjs.map +1 -1
  283. package/mysql-core/session.d.cts +1 -0
  284. package/mysql-core/session.d.ts +1 -0
  285. package/mysql-core/session.js +6 -0
  286. package/mysql-core/session.js.map +1 -1
  287. package/mysql-core/table.cjs +4 -1
  288. package/mysql-core/table.cjs.map +1 -1
  289. package/mysql-core/table.d.cts +8 -1
  290. package/mysql-core/table.d.ts +8 -1
  291. package/mysql-core/table.js +4 -1
  292. package/mysql-core/table.js.map +1 -1
  293. package/mysql-core/unique-constraint.cjs +2 -2
  294. package/mysql-core/unique-constraint.cjs.map +1 -1
  295. package/mysql-core/unique-constraint.d.cts +1 -1
  296. package/mysql-core/unique-constraint.d.ts +1 -1
  297. package/mysql-core/unique-constraint.js +2 -2
  298. package/mysql-core/unique-constraint.js.map +1 -1
  299. package/mysql-proxy/driver.cjs +8 -2
  300. package/mysql-proxy/driver.cjs.map +1 -1
  301. package/mysql-proxy/driver.d.cts +4 -1
  302. package/mysql-proxy/driver.d.ts +4 -1
  303. package/mysql-proxy/driver.js +7 -2
  304. package/mysql-proxy/driver.js.map +1 -1
  305. package/mysql2/driver.cjs +13 -8
  306. package/mysql2/driver.cjs.map +1 -1
  307. package/mysql2/driver.d.cts +6 -2
  308. package/mysql2/driver.d.ts +6 -2
  309. package/mysql2/driver.js +11 -7
  310. package/mysql2/driver.js.map +1 -1
  311. package/neon-http/driver.cjs +4 -2
  312. package/neon-http/driver.cjs.map +1 -1
  313. package/neon-http/driver.d.cts +3 -1
  314. package/neon-http/driver.d.ts +3 -1
  315. package/neon-http/driver.js +4 -2
  316. package/neon-http/driver.js.map +1 -1
  317. package/neon-http/migrator.cjs +2 -2
  318. package/neon-http/migrator.cjs.map +1 -1
  319. package/neon-http/migrator.d.cts +1 -1
  320. package/neon-http/migrator.d.ts +1 -1
  321. package/neon-http/migrator.js +2 -2
  322. package/neon-http/migrator.js.map +1 -1
  323. package/neon-http/session.cjs +6 -0
  324. package/neon-http/session.cjs.map +1 -1
  325. package/neon-http/session.d.cts +2 -1
  326. package/neon-http/session.d.ts +2 -1
  327. package/neon-http/session.js +6 -0
  328. package/neon-http/session.js.map +1 -1
  329. package/neon-serverless/driver.cjs +9 -2
  330. package/neon-serverless/driver.cjs.map +1 -1
  331. package/neon-serverless/driver.d.cts +6 -2
  332. package/neon-serverless/driver.d.ts +6 -2
  333. package/neon-serverless/driver.js +8 -2
  334. package/neon-serverless/driver.js.map +1 -1
  335. package/neon-serverless/migrator.cjs.map +1 -1
  336. package/neon-serverless/migrator.d.cts +1 -1
  337. package/neon-serverless/migrator.d.ts +1 -1
  338. package/neon-serverless/migrator.js.map +1 -1
  339. package/node-postgres/driver.cjs +9 -2
  340. package/node-postgres/driver.cjs.map +1 -1
  341. package/node-postgres/driver.d.cts +6 -2
  342. package/node-postgres/driver.d.ts +6 -2
  343. package/node-postgres/driver.js +8 -2
  344. package/node-postgres/driver.js.map +1 -1
  345. package/node-postgres/migrator.cjs.map +1 -1
  346. package/node-postgres/migrator.d.cts +1 -1
  347. package/node-postgres/migrator.d.ts +1 -1
  348. package/node-postgres/migrator.js.map +1 -1
  349. package/node-postgres/session.cjs +6 -0
  350. package/node-postgres/session.cjs.map +1 -1
  351. package/node-postgres/session.d.cts +2 -1
  352. package/node-postgres/session.d.ts +2 -1
  353. package/node-postgres/session.js +6 -0
  354. package/node-postgres/session.js.map +1 -1
  355. package/op-sqlite/driver.cjs +10 -2
  356. package/op-sqlite/driver.cjs.map +1 -1
  357. package/op-sqlite/driver.d.cts +7 -2
  358. package/op-sqlite/driver.d.ts +7 -2
  359. package/op-sqlite/driver.js +9 -2
  360. package/op-sqlite/driver.js.map +1 -1
  361. package/operations.cjs.map +1 -1
  362. package/package.json +170 -49
  363. package/pg-core/columns/all.cjs +96 -0
  364. package/pg-core/columns/all.cjs.map +1 -0
  365. package/pg-core/columns/all.d.cts +67 -0
  366. package/pg-core/columns/all.d.ts +67 -0
  367. package/pg-core/columns/all.js +72 -0
  368. package/pg-core/columns/all.js.map +1 -0
  369. package/pg-core/columns/bigint.cjs +3 -1
  370. package/pg-core/columns/bigint.cjs.map +1 -1
  371. package/pg-core/columns/bigint.d.cts +2 -2
  372. package/pg-core/columns/bigint.d.ts +2 -2
  373. package/pg-core/columns/bigint.js +3 -1
  374. package/pg-core/columns/bigint.js.map +1 -1
  375. package/pg-core/columns/bigserial.cjs +4 -2
  376. package/pg-core/columns/bigserial.cjs.map +1 -1
  377. package/pg-core/columns/bigserial.d.cts +2 -2
  378. package/pg-core/columns/bigserial.d.ts +2 -2
  379. package/pg-core/columns/bigserial.js +4 -2
  380. package/pg-core/columns/bigserial.js.map +1 -1
  381. package/pg-core/columns/boolean.cjs +1 -1
  382. package/pg-core/columns/boolean.cjs.map +1 -1
  383. package/pg-core/columns/boolean.d.cts +1 -0
  384. package/pg-core/columns/boolean.d.ts +1 -0
  385. package/pg-core/columns/boolean.js +1 -1
  386. package/pg-core/columns/boolean.js.map +1 -1
  387. package/pg-core/columns/char.cjs +3 -1
  388. package/pg-core/columns/char.cjs.map +1 -1
  389. package/pg-core/columns/char.d.cts +5 -3
  390. package/pg-core/columns/char.d.ts +5 -3
  391. package/pg-core/columns/char.js +3 -1
  392. package/pg-core/columns/char.js.map +1 -1
  393. package/pg-core/columns/cidr.cjs +1 -1
  394. package/pg-core/columns/cidr.cjs.map +1 -1
  395. package/pg-core/columns/cidr.d.cts +1 -0
  396. package/pg-core/columns/cidr.d.ts +1 -0
  397. package/pg-core/columns/cidr.js +1 -1
  398. package/pg-core/columns/cidr.js.map +1 -1
  399. package/pg-core/columns/custom.cjs +4 -2
  400. package/pg-core/columns/custom.cjs.map +1 -1
  401. package/pg-core/columns/custom.d.cts +10 -3
  402. package/pg-core/columns/custom.d.ts +10 -3
  403. package/pg-core/columns/custom.js +4 -2
  404. package/pg-core/columns/custom.js.map +1 -1
  405. package/pg-core/columns/date.cjs +3 -1
  406. package/pg-core/columns/date.cjs.map +1 -1
  407. package/pg-core/columns/date.d.cts +7 -6
  408. package/pg-core/columns/date.d.ts +7 -6
  409. package/pg-core/columns/date.js +3 -1
  410. package/pg-core/columns/date.js.map +1 -1
  411. package/pg-core/columns/double-precision.cjs +1 -1
  412. package/pg-core/columns/double-precision.cjs.map +1 -1
  413. package/pg-core/columns/double-precision.d.cts +1 -0
  414. package/pg-core/columns/double-precision.d.ts +1 -0
  415. package/pg-core/columns/double-precision.js +1 -1
  416. package/pg-core/columns/double-precision.js.map +1 -1
  417. package/pg-core/columns/enum.cjs +1 -1
  418. package/pg-core/columns/enum.cjs.map +1 -1
  419. package/pg-core/columns/enum.d.cts +3 -1
  420. package/pg-core/columns/enum.d.ts +3 -1
  421. package/pg-core/columns/enum.js +1 -1
  422. package/pg-core/columns/enum.js.map +1 -1
  423. package/pg-core/columns/index.cjs +2 -0
  424. package/pg-core/columns/index.cjs.map +1 -1
  425. package/pg-core/columns/index.d.cts +1 -0
  426. package/pg-core/columns/index.d.ts +1 -0
  427. package/pg-core/columns/index.js +1 -0
  428. package/pg-core/columns/index.js.map +1 -1
  429. package/pg-core/columns/inet.cjs +1 -1
  430. package/pg-core/columns/inet.cjs.map +1 -1
  431. package/pg-core/columns/inet.d.cts +1 -0
  432. package/pg-core/columns/inet.d.ts +1 -0
  433. package/pg-core/columns/inet.js +1 -1
  434. package/pg-core/columns/inet.js.map +1 -1
  435. package/pg-core/columns/integer.cjs +1 -1
  436. package/pg-core/columns/integer.cjs.map +1 -1
  437. package/pg-core/columns/integer.d.cts +1 -0
  438. package/pg-core/columns/integer.d.ts +1 -0
  439. package/pg-core/columns/integer.js +1 -1
  440. package/pg-core/columns/integer.js.map +1 -1
  441. package/pg-core/columns/interval.cjs +3 -1
  442. package/pg-core/columns/interval.cjs.map +1 -1
  443. package/pg-core/columns/interval.d.cts +2 -0
  444. package/pg-core/columns/interval.d.ts +2 -0
  445. package/pg-core/columns/interval.js +3 -1
  446. package/pg-core/columns/interval.js.map +1 -1
  447. package/pg-core/columns/json.cjs +1 -1
  448. package/pg-core/columns/json.cjs.map +1 -1
  449. package/pg-core/columns/json.d.cts +1 -0
  450. package/pg-core/columns/json.d.ts +1 -0
  451. package/pg-core/columns/json.js +1 -1
  452. package/pg-core/columns/json.js.map +1 -1
  453. package/pg-core/columns/jsonb.cjs +1 -1
  454. package/pg-core/columns/jsonb.cjs.map +1 -1
  455. package/pg-core/columns/jsonb.d.cts +1 -0
  456. package/pg-core/columns/jsonb.d.ts +1 -0
  457. package/pg-core/columns/jsonb.js +1 -1
  458. package/pg-core/columns/jsonb.js.map +1 -1
  459. package/pg-core/columns/line.cjs +3 -1
  460. package/pg-core/columns/line.cjs.map +1 -1
  461. package/pg-core/columns/line.d.cts +3 -1
  462. package/pg-core/columns/line.d.ts +3 -1
  463. package/pg-core/columns/line.js +3 -1
  464. package/pg-core/columns/line.js.map +1 -1
  465. package/pg-core/columns/macaddr.cjs +1 -1
  466. package/pg-core/columns/macaddr.cjs.map +1 -1
  467. package/pg-core/columns/macaddr.d.cts +1 -0
  468. package/pg-core/columns/macaddr.d.ts +1 -0
  469. package/pg-core/columns/macaddr.js +1 -1
  470. package/pg-core/columns/macaddr.js.map +1 -1
  471. package/pg-core/columns/macaddr8.cjs +1 -1
  472. package/pg-core/columns/macaddr8.cjs.map +1 -1
  473. package/pg-core/columns/macaddr8.d.cts +1 -0
  474. package/pg-core/columns/macaddr8.d.ts +1 -0
  475. package/pg-core/columns/macaddr8.js +1 -1
  476. package/pg-core/columns/macaddr8.js.map +1 -1
  477. package/pg-core/columns/numeric.cjs +3 -1
  478. package/pg-core/columns/numeric.cjs.map +1 -1
  479. package/pg-core/columns/numeric.d.cts +6 -3
  480. package/pg-core/columns/numeric.d.ts +6 -3
  481. package/pg-core/columns/numeric.js +3 -1
  482. package/pg-core/columns/numeric.js.map +1 -1
  483. package/pg-core/columns/point.cjs +3 -1
  484. package/pg-core/columns/point.cjs.map +1 -1
  485. package/pg-core/columns/point.d.cts +5 -3
  486. package/pg-core/columns/point.d.ts +5 -3
  487. package/pg-core/columns/point.js +3 -1
  488. package/pg-core/columns/point.js.map +1 -1
  489. package/pg-core/columns/postgis_extension/geometry.cjs +6 -4
  490. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  491. package/pg-core/columns/postgis_extension/geometry.d.cts +4 -3
  492. package/pg-core/columns/postgis_extension/geometry.d.ts +4 -3
  493. package/pg-core/columns/postgis_extension/geometry.js +3 -1
  494. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  495. package/pg-core/columns/real.cjs +1 -1
  496. package/pg-core/columns/real.cjs.map +1 -1
  497. package/pg-core/columns/real.d.cts +2 -1
  498. package/pg-core/columns/real.d.ts +2 -1
  499. package/pg-core/columns/real.js +1 -1
  500. package/pg-core/columns/real.js.map +1 -1
  501. package/pg-core/columns/serial.cjs +1 -1
  502. package/pg-core/columns/serial.cjs.map +1 -1
  503. package/pg-core/columns/serial.d.cts +2 -1
  504. package/pg-core/columns/serial.d.ts +2 -1
  505. package/pg-core/columns/serial.js +1 -1
  506. package/pg-core/columns/serial.js.map +1 -1
  507. package/pg-core/columns/smallint.cjs +1 -1
  508. package/pg-core/columns/smallint.cjs.map +1 -1
  509. package/pg-core/columns/smallint.d.cts +1 -0
  510. package/pg-core/columns/smallint.d.ts +1 -0
  511. package/pg-core/columns/smallint.js +1 -1
  512. package/pg-core/columns/smallint.js.map +1 -1
  513. package/pg-core/columns/smallserial.cjs +1 -1
  514. package/pg-core/columns/smallserial.cjs.map +1 -1
  515. package/pg-core/columns/smallserial.d.cts +2 -1
  516. package/pg-core/columns/smallserial.d.ts +2 -1
  517. package/pg-core/columns/smallserial.js +1 -1
  518. package/pg-core/columns/smallserial.js.map +1 -1
  519. package/pg-core/columns/text.cjs +3 -1
  520. package/pg-core/columns/text.cjs.map +1 -1
  521. package/pg-core/columns/text.d.cts +4 -2
  522. package/pg-core/columns/text.d.ts +4 -2
  523. package/pg-core/columns/text.js +3 -1
  524. package/pg-core/columns/text.js.map +1 -1
  525. package/pg-core/columns/time.cjs +3 -1
  526. package/pg-core/columns/time.cjs.map +1 -1
  527. package/pg-core/columns/time.d.cts +2 -0
  528. package/pg-core/columns/time.d.ts +2 -0
  529. package/pg-core/columns/time.js +3 -1
  530. package/pg-core/columns/time.js.map +1 -1
  531. package/pg-core/columns/timestamp.cjs +5 -3
  532. package/pg-core/columns/timestamp.cjs.map +1 -1
  533. package/pg-core/columns/timestamp.d.cts +5 -3
  534. package/pg-core/columns/timestamp.d.ts +5 -3
  535. package/pg-core/columns/timestamp.js +5 -3
  536. package/pg-core/columns/timestamp.js.map +1 -1
  537. package/pg-core/columns/uuid.cjs +1 -1
  538. package/pg-core/columns/uuid.cjs.map +1 -1
  539. package/pg-core/columns/uuid.d.cts +1 -0
  540. package/pg-core/columns/uuid.d.ts +1 -0
  541. package/pg-core/columns/uuid.js +1 -1
  542. package/pg-core/columns/uuid.js.map +1 -1
  543. package/pg-core/columns/varchar.cjs +3 -1
  544. package/pg-core/columns/varchar.cjs.map +1 -1
  545. package/pg-core/columns/varchar.d.cts +5 -3
  546. package/pg-core/columns/varchar.d.ts +5 -3
  547. package/pg-core/columns/varchar.js +3 -1
  548. package/pg-core/columns/varchar.js.map +1 -1
  549. package/pg-core/columns/vector_extension/bit.cjs +3 -1
  550. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  551. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  552. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  553. package/pg-core/columns/vector_extension/bit.js +3 -1
  554. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  555. package/pg-core/columns/vector_extension/halfvec.cjs +3 -1
  556. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  557. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  558. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  559. package/pg-core/columns/vector_extension/halfvec.js +3 -1
  560. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  561. package/pg-core/columns/vector_extension/sparsevec.cjs +3 -1
  562. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  563. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  564. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  565. package/pg-core/columns/vector_extension/sparsevec.js +3 -1
  566. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  567. package/pg-core/columns/vector_extension/vector.cjs +3 -1
  568. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  569. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  570. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  571. package/pg-core/columns/vector_extension/vector.js +3 -1
  572. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  573. package/pg-core/db.cjs +10 -4
  574. package/pg-core/db.cjs.map +1 -1
  575. package/pg-core/db.d.cts +6 -3
  576. package/pg-core/db.d.ts +6 -3
  577. package/pg-core/db.js +10 -4
  578. package/pg-core/db.js.map +1 -1
  579. package/pg-core/dialect.cjs +13 -4
  580. package/pg-core/dialect.cjs.map +1 -1
  581. package/pg-core/dialect.d.cts +5 -1
  582. package/pg-core/dialect.d.ts +5 -1
  583. package/pg-core/dialect.js +13 -4
  584. package/pg-core/dialect.js.map +1 -1
  585. package/pg-core/foreign-keys.cjs +3 -3
  586. package/pg-core/foreign-keys.cjs.map +1 -1
  587. package/pg-core/foreign-keys.d.cts +1 -1
  588. package/pg-core/foreign-keys.d.ts +1 -1
  589. package/pg-core/foreign-keys.js +3 -3
  590. package/pg-core/foreign-keys.js.map +1 -1
  591. package/pg-core/query-builders/count.cjs +73 -0
  592. package/pg-core/query-builders/count.cjs.map +1 -0
  593. package/pg-core/query-builders/count.d.cts +26 -0
  594. package/pg-core/query-builders/count.d.ts +26 -0
  595. package/pg-core/query-builders/count.js +49 -0
  596. package/pg-core/query-builders/count.js.map +1 -0
  597. package/pg-core/query-builders/insert.cjs +2 -2
  598. package/pg-core/query-builders/insert.cjs.map +1 -1
  599. package/pg-core/query-builders/insert.js +2 -2
  600. package/pg-core/query-builders/insert.js.map +1 -1
  601. package/pg-core/query-builders/query-builder.cjs +6 -1
  602. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  603. package/pg-core/query-builders/query-builder.d.cts +4 -0
  604. package/pg-core/query-builders/query-builder.d.ts +4 -0
  605. package/pg-core/query-builders/query-builder.js +7 -2
  606. package/pg-core/query-builders/query-builder.js.map +1 -1
  607. package/pg-core/session.cjs +6 -0
  608. package/pg-core/session.cjs.map +1 -1
  609. package/pg-core/session.d.cts +1 -0
  610. package/pg-core/session.d.ts +1 -0
  611. package/pg-core/session.js +6 -0
  612. package/pg-core/session.js.map +1 -1
  613. package/pg-core/table.cjs +6 -2
  614. package/pg-core/table.cjs.map +1 -1
  615. package/pg-core/table.d.cts +7 -0
  616. package/pg-core/table.d.ts +7 -0
  617. package/pg-core/table.js +6 -2
  618. package/pg-core/table.js.map +1 -1
  619. package/pg-core/unique-constraint.cjs +2 -2
  620. package/pg-core/unique-constraint.cjs.map +1 -1
  621. package/pg-core/unique-constraint.d.cts +1 -1
  622. package/pg-core/unique-constraint.d.ts +1 -1
  623. package/pg-core/unique-constraint.js +2 -2
  624. package/pg-core/unique-constraint.js.map +1 -1
  625. package/pg-core/view.cjs +22 -2
  626. package/pg-core/view.cjs.map +1 -1
  627. package/pg-core/view.d.cts +25 -5
  628. package/pg-core/view.d.ts +25 -5
  629. package/pg-core/view.js +21 -3
  630. package/pg-core/view.js.map +1 -1
  631. package/pg-proxy/driver.cjs +8 -2
  632. package/pg-proxy/driver.cjs.map +1 -1
  633. package/pg-proxy/driver.d.cts +4 -1
  634. package/pg-proxy/driver.d.ts +4 -1
  635. package/pg-proxy/driver.js +7 -2
  636. package/pg-proxy/driver.js.map +1 -1
  637. package/pg-proxy/migrator.cjs.map +1 -1
  638. package/pg-proxy/migrator.d.cts +1 -1
  639. package/pg-proxy/migrator.d.ts +1 -1
  640. package/pg-proxy/migrator.js.map +1 -1
  641. package/pg-proxy/session.cjs.map +1 -1
  642. package/pg-proxy/session.js.map +1 -1
  643. package/pglite/driver.cjs +9 -2
  644. package/pglite/driver.cjs.map +1 -1
  645. package/pglite/driver.d.cts +6 -2
  646. package/pglite/driver.d.ts +6 -2
  647. package/pglite/driver.js +8 -2
  648. package/pglite/driver.js.map +1 -1
  649. package/pglite/migrator.cjs.map +1 -1
  650. package/pglite/migrator.d.cts +1 -1
  651. package/pglite/migrator.d.ts +1 -1
  652. package/pglite/migrator.js.map +1 -1
  653. package/pglite/session.cjs +6 -0
  654. package/pglite/session.cjs.map +1 -1
  655. package/pglite/session.d.cts +2 -1
  656. package/pglite/session.d.ts +2 -1
  657. package/pglite/session.js +6 -0
  658. package/pglite/session.js.map +1 -1
  659. package/planetscale-serverless/driver.cjs +10 -2
  660. package/planetscale-serverless/driver.cjs.map +1 -1
  661. package/planetscale-serverless/driver.d.cts +7 -2
  662. package/planetscale-serverless/driver.d.ts +7 -2
  663. package/planetscale-serverless/driver.js +9 -2
  664. package/planetscale-serverless/driver.js.map +1 -1
  665. package/planetscale-serverless/migrator.cjs.map +1 -1
  666. package/planetscale-serverless/migrator.js.map +1 -1
  667. package/planetscale-serverless/session.cjs +6 -0
  668. package/planetscale-serverless/session.cjs.map +1 -1
  669. package/planetscale-serverless/session.d.cts +1 -0
  670. package/planetscale-serverless/session.d.ts +1 -0
  671. package/planetscale-serverless/session.js +6 -0
  672. package/planetscale-serverless/session.js.map +1 -1
  673. package/postgres-js/driver.cjs +10 -2
  674. package/postgres-js/driver.cjs.map +1 -1
  675. package/postgres-js/driver.d.cts +7 -2
  676. package/postgres-js/driver.d.ts +7 -2
  677. package/postgres-js/driver.js +9 -2
  678. package/postgres-js/driver.js.map +1 -1
  679. package/postgres-js/migrator.cjs.map +1 -1
  680. package/postgres-js/migrator.d.cts +1 -1
  681. package/postgres-js/migrator.d.ts +1 -1
  682. package/postgres-js/migrator.js.map +1 -1
  683. package/sql/sql.cjs +4 -2
  684. package/sql/sql.cjs.map +1 -1
  685. package/sql/sql.d.cts +2 -0
  686. package/sql/sql.d.ts +2 -0
  687. package/sql/sql.js +4 -2
  688. package/sql/sql.js.map +1 -1
  689. package/sql-js/driver.cjs +1 -1
  690. package/sql-js/driver.cjs.map +1 -1
  691. package/sql-js/driver.js +1 -1
  692. package/sql-js/driver.js.map +1 -1
  693. package/sql-js/migrator.cjs.map +1 -1
  694. package/sql-js/migrator.d.cts +1 -1
  695. package/sql-js/migrator.d.ts +1 -1
  696. package/sql-js/migrator.js.map +1 -1
  697. package/sqlite-core/columns/all.cjs +44 -0
  698. package/sqlite-core/columns/all.cjs.map +1 -0
  699. package/sqlite-core/columns/all.d.cts +15 -0
  700. package/sqlite-core/columns/all.d.ts +15 -0
  701. package/sqlite-core/columns/all.js +20 -0
  702. package/sqlite-core/columns/all.js.map +1 -0
  703. package/sqlite-core/columns/blob.cjs +3 -1
  704. package/sqlite-core/columns/blob.cjs.map +1 -1
  705. package/sqlite-core/columns/blob.d.cts +3 -1
  706. package/sqlite-core/columns/blob.d.ts +3 -1
  707. package/sqlite-core/columns/blob.js +3 -1
  708. package/sqlite-core/columns/blob.js.map +1 -1
  709. package/sqlite-core/columns/custom.cjs +5 -3
  710. package/sqlite-core/columns/custom.cjs.map +1 -1
  711. package/sqlite-core/columns/custom.d.cts +10 -3
  712. package/sqlite-core/columns/custom.d.ts +10 -3
  713. package/sqlite-core/columns/custom.js +5 -3
  714. package/sqlite-core/columns/custom.js.map +1 -1
  715. package/sqlite-core/columns/integer.cjs +3 -1
  716. package/sqlite-core/columns/integer.cjs.map +1 -1
  717. package/sqlite-core/columns/integer.d.cts +3 -1
  718. package/sqlite-core/columns/integer.d.ts +3 -1
  719. package/sqlite-core/columns/integer.js +3 -1
  720. package/sqlite-core/columns/integer.js.map +1 -1
  721. package/sqlite-core/columns/numeric.cjs +1 -1
  722. package/sqlite-core/columns/numeric.cjs.map +1 -1
  723. package/sqlite-core/columns/numeric.d.cts +1 -0
  724. package/sqlite-core/columns/numeric.d.ts +1 -0
  725. package/sqlite-core/columns/numeric.js +1 -1
  726. package/sqlite-core/columns/numeric.js.map +1 -1
  727. package/sqlite-core/columns/real.cjs +1 -1
  728. package/sqlite-core/columns/real.cjs.map +1 -1
  729. package/sqlite-core/columns/real.d.cts +1 -0
  730. package/sqlite-core/columns/real.d.ts +1 -0
  731. package/sqlite-core/columns/real.js +1 -1
  732. package/sqlite-core/columns/real.js.map +1 -1
  733. package/sqlite-core/columns/text.cjs +7 -2
  734. package/sqlite-core/columns/text.cjs.map +1 -1
  735. package/sqlite-core/columns/text.d.cts +4 -2
  736. package/sqlite-core/columns/text.d.ts +4 -2
  737. package/sqlite-core/columns/text.js +7 -2
  738. package/sqlite-core/columns/text.js.map +1 -1
  739. package/sqlite-core/db.cjs +23 -17
  740. package/sqlite-core/db.cjs.map +1 -1
  741. package/sqlite-core/db.d.cts +8 -5
  742. package/sqlite-core/db.d.ts +8 -5
  743. package/sqlite-core/db.js +23 -17
  744. package/sqlite-core/db.js.map +1 -1
  745. package/sqlite-core/dialect.cjs +14 -8
  746. package/sqlite-core/dialect.cjs.map +1 -1
  747. package/sqlite-core/dialect.d.cts +5 -1
  748. package/sqlite-core/dialect.d.ts +5 -1
  749. package/sqlite-core/dialect.js +14 -8
  750. package/sqlite-core/dialect.js.map +1 -1
  751. package/sqlite-core/foreign-keys.cjs +3 -3
  752. package/sqlite-core/foreign-keys.cjs.map +1 -1
  753. package/sqlite-core/foreign-keys.d.cts +1 -1
  754. package/sqlite-core/foreign-keys.d.ts +1 -1
  755. package/sqlite-core/foreign-keys.js +3 -3
  756. package/sqlite-core/foreign-keys.js.map +1 -1
  757. package/sqlite-core/query-builders/count.cjs +72 -0
  758. package/sqlite-core/query-builders/count.cjs.map +1 -0
  759. package/sqlite-core/query-builders/count.d.cts +27 -0
  760. package/sqlite-core/query-builders/count.d.ts +27 -0
  761. package/sqlite-core/query-builders/count.js +48 -0
  762. package/sqlite-core/query-builders/count.js.map +1 -0
  763. package/sqlite-core/query-builders/query-builder.cjs +6 -1
  764. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  765. package/sqlite-core/query-builders/query-builder.d.cts +4 -0
  766. package/sqlite-core/query-builders/query-builder.d.ts +4 -0
  767. package/sqlite-core/query-builders/query-builder.js +8 -3
  768. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  769. package/sqlite-core/session.cjs +4 -0
  770. package/sqlite-core/session.cjs.map +1 -1
  771. package/sqlite-core/session.d.cts +1 -0
  772. package/sqlite-core/session.d.ts +1 -0
  773. package/sqlite-core/session.js +4 -0
  774. package/sqlite-core/session.js.map +1 -1
  775. package/sqlite-core/table.cjs +4 -1
  776. package/sqlite-core/table.cjs.map +1 -1
  777. package/sqlite-core/table.d.cts +7 -0
  778. package/sqlite-core/table.d.ts +7 -0
  779. package/sqlite-core/table.js +4 -1
  780. package/sqlite-core/table.js.map +1 -1
  781. package/sqlite-core/unique-constraint.cjs +2 -2
  782. package/sqlite-core/unique-constraint.cjs.map +1 -1
  783. package/sqlite-core/unique-constraint.d.cts +1 -1
  784. package/sqlite-core/unique-constraint.d.ts +1 -1
  785. package/sqlite-core/unique-constraint.js +2 -2
  786. package/sqlite-core/unique-constraint.js.map +1 -1
  787. package/sqlite-proxy/driver.cjs +1 -1
  788. package/sqlite-proxy/driver.cjs.map +1 -1
  789. package/sqlite-proxy/driver.js +1 -1
  790. package/sqlite-proxy/driver.js.map +1 -1
  791. package/sqlite-proxy/migrator.cjs.map +1 -1
  792. package/sqlite-proxy/migrator.d.cts +1 -1
  793. package/sqlite-proxy/migrator.d.ts +1 -1
  794. package/sqlite-proxy/migrator.js.map +1 -1
  795. package/table.cjs +6 -8
  796. package/table.cjs.map +1 -1
  797. package/table.js +1 -2
  798. package/table.js.map +1 -1
  799. package/table.utils.cjs +29 -0
  800. package/table.utils.cjs.map +1 -0
  801. package/table.utils.d.cts +1 -0
  802. package/table.utils.d.ts +1 -0
  803. package/table.utils.js +5 -0
  804. package/table.utils.js.map +1 -0
  805. package/tidb-serverless/driver.cjs +10 -2
  806. package/tidb-serverless/driver.cjs.map +1 -1
  807. package/tidb-serverless/driver.d.cts +7 -2
  808. package/tidb-serverless/driver.d.ts +7 -2
  809. package/tidb-serverless/driver.js +9 -2
  810. package/tidb-serverless/driver.js.map +1 -1
  811. package/tidb-serverless/session.cjs +6 -0
  812. package/tidb-serverless/session.cjs.map +1 -1
  813. package/tidb-serverless/session.d.cts +1 -0
  814. package/tidb-serverless/session.d.ts +1 -0
  815. package/tidb-serverless/session.js +6 -0
  816. package/tidb-serverless/session.js.map +1 -1
  817. package/utils.cjs +8 -0
  818. package/utils.cjs.map +1 -1
  819. package/utils.d.cts +4 -0
  820. package/utils.d.ts +4 -0
  821. package/utils.js +7 -0
  822. package/utils.js.map +1 -1
  823. package/vercel-postgres/driver.cjs +9 -2
  824. package/vercel-postgres/driver.cjs.map +1 -1
  825. package/vercel-postgres/driver.d.cts +6 -2
  826. package/vercel-postgres/driver.d.ts +6 -2
  827. package/vercel-postgres/driver.js +8 -2
  828. package/vercel-postgres/driver.js.map +1 -1
  829. package/vercel-postgres/migrator.cjs.map +1 -1
  830. package/vercel-postgres/migrator.d.cts +1 -1
  831. package/vercel-postgres/migrator.d.ts +1 -1
  832. package/vercel-postgres/migrator.js.map +1 -1
  833. package/version.cjs +1 -1
  834. package/version.d.cts +1 -1
  835. package/version.d.ts +1 -1
  836. package/version.js +1 -1
  837. package/xata-http/driver.cjs +4 -2
  838. package/xata-http/driver.cjs.map +1 -1
  839. package/xata-http/driver.d.cts +3 -1
  840. package/xata-http/driver.d.ts +3 -1
  841. package/xata-http/driver.js +4 -2
  842. package/xata-http/driver.js.map +1 -1
  843. package/xata-http/migrator.cjs +1 -1
  844. package/xata-http/migrator.cjs.map +1 -1
  845. package/xata-http/migrator.d.cts +1 -1
  846. package/xata-http/migrator.d.ts +1 -1
  847. package/xata-http/migrator.js +1 -1
  848. package/xata-http/migrator.js.map +1 -1
@@ -18,15 +18,20 @@ 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
+ PlanetScaleDatabase: () => PlanetScaleDatabase,
21
22
  drizzle: () => drizzle
22
23
  });
23
24
  module.exports = __toCommonJS(driver_exports);
24
25
  var import_database = require("@planetscale/database");
26
+ var import_entity = require("../entity.cjs");
25
27
  var import_logger = require("../logger.cjs");
26
28
  var import_db = require("../mysql-core/db.cjs");
27
29
  var import_dialect = require("../mysql-core/dialect.cjs");
28
30
  var import_relations = require("../relations.cjs");
29
31
  var import_session = require("./session.cjs");
32
+ class PlanetScaleDatabase extends import_db.MySqlDatabase {
33
+ static [import_entity.entityKind] = "PlanetScaleDatabase";
34
+ }
30
35
  function drizzle(client, config = {}) {
31
36
  if (!(client instanceof import_database.Client)) {
32
37
  console.log(`Warning: You need to pass an instance of Client:
@@ -45,7 +50,7 @@ Starting from version 0.30.0, you will encounter an error if you attempt to use
45
50
  Please make the necessary changes now to prevent any runtime errors in the future
46
51
  `);
47
52
  }
48
- const dialect = new import_dialect.MySqlDialect();
53
+ const dialect = new import_dialect.MySqlDialect({ casing: config.casing });
49
54
  let logger;
50
55
  if (config.logger === true) {
51
56
  logger = new import_logger.DefaultLogger();
@@ -65,10 +70,13 @@ Please make the necessary changes now to prevent any runtime errors in the futur
65
70
  };
66
71
  }
67
72
  const session = new import_session.PlanetscaleSession(client, dialect, void 0, schema, { logger });
68
- return new import_db.MySqlDatabase(dialect, session, schema, "planetscale");
73
+ const db = new PlanetScaleDatabase(dialect, session, schema, "planetscale");
74
+ db.$client = client;
75
+ return db;
69
76
  }
70
77
  // Annotate the CommonJS export names for ESM import in node:
71
78
  0 && (module.exports = {
79
+ PlanetScaleDatabase,
72
80
  drizzle
73
81
  });
74
82
  //# sourceMappingURL=driver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/planetscale-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@planetscale/database';\nimport { Client } from '@planetscale/database';\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 {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from './session.ts';\nimport { PlanetscaleSession } from './session.ts';\n\nexport interface PlanetscaleSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport type PlanetScaleDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Client | Connection,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PlanetScaleDatabase<TSchema> {\n\t// Client is not Drizzle Object, so we can ignore this rule here\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (!(client instanceof Client)) {\n\t\t// Should use error on 0.30.0 release\n\t\t// \t\tthrow new DrizzleError({\n\t\t// \t\t\tmessage: `You need to pass an instance of Client:\n\n\t\t// import { Client } from \"@planetscale/database\";\n\n\t\t// const client = new Client({\n\t\t// host: process.env[\"DATABASE_HOST\"],\n\t\t// username: process.env[\"DATABASE_USERNAME\"],\n\t\t// password: process.env[\"DATABASE_PASSWORD\"],\n\t\t// });\n\n\t\t// const db = drizzle(client);\n\t\t// `,\n\t\t// \t\t});\n\t\tconsole.log(`Warning: You need to pass an instance of Client:\n\nimport { Client } from \"@planetscale/database\";\n\nconst client = new Client({\n host: process.env[\"DATABASE_HOST\"],\n username: process.env[\"DATABASE_USERNAME\"],\n password: process.env[\"DATABASE_PASSWORD\"],\n});\n\nconst db = drizzle(client);\n\t\t\nStarting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.\\nPlease make the necessary changes now to prevent any runtime errors in the future\n\t\t`);\n\t}\n\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 PlanetscaleSession(client, dialect, undefined, schema, { logger });\n\treturn new MySqlDatabase(dialect, session, schema, 'planetscale') as PlanetScaleDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAuB;AAEvB,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAC7B,uBAKO;AAGP,qBAAmC;AAU5B,SAAS,QACf,QACA,SAAiC,CAAC,GACH;AAG/B,MAAI,EAAE,kBAAkB,yBAAS;AAgBhC,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAaX;AAAA,EACF;AAEA,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;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,UAAU,IAAI,kCAAmB,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACrF,SAAO,IAAI,wBAAc,SAAS,SAAS,QAAQ,aAAa;AACjE;","names":[]}
1
+ {"version":3,"sources":["../../src/planetscale-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@planetscale/database';\nimport { Client } from '@planetscale/database';\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 {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from './session.ts';\nimport { PlanetscaleSession } from './session.ts';\n\nexport interface PlanetscaleSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class PlanetScaleDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetScaleDatabase';\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client | Connection = Client | Connection,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PlanetScaleDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// Client is not Drizzle Object, so we can ignore this rule here\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (!(client instanceof Client)) {\n\t\t// Should use error on 0.30.0 release\n\t\t// \t\tthrow new DrizzleError({\n\t\t// \t\t\tmessage: `You need to pass an instance of Client:\n\n\t\t// import { Client } from \"@planetscale/database\";\n\n\t\t// const client = new Client({\n\t\t// host: process.env[\"DATABASE_HOST\"],\n\t\t// username: process.env[\"DATABASE_USERNAME\"],\n\t\t// password: process.env[\"DATABASE_PASSWORD\"],\n\t\t// });\n\n\t\t// const db = drizzle(client);\n\t\t// `,\n\t\t// \t\t});\n\t\tconsole.log(`Warning: You need to pass an instance of Client:\n\nimport { Client } from \"@planetscale/database\";\n\nconst client = new Client({\n host: process.env[\"DATABASE_HOST\"],\n username: process.env[\"DATABASE_USERNAME\"],\n password: process.env[\"DATABASE_PASSWORD\"],\n});\n\nconst db = drizzle(client);\n\t\t\nStarting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.\\nPlease make the necessary changes now to prevent any runtime errors in the future\n\t\t`);\n\t}\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\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 PlanetscaleSession(client, dialect, undefined, schema, { logger });\n\tconst db = new PlanetScaleDatabase(dialect, session, schema as any, 'planetscale') as PlanetScaleDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAuB;AACvB,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAC7B,uBAKO;AAGP,qBAAmC;AAM5B,MAAM,4BAEH,wBAA+E;AAAA,EACxF,QAAiB,wBAAU,IAAY;AACxC;AAEO,SAAS,QAIf,QACA,SAAiC,CAAC,GAGjC;AAGD,MAAI,EAAE,kBAAkB,yBAAS;AAgBhC,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAaX;AAAA,EACF;AAEA,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,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,UAAU,IAAI,kCAAmB,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACrF,QAAM,KAAK,IAAI,oBAAoB,SAAS,SAAS,QAAe,aAAa;AACjF,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import type { Connection } from '@planetscale/database';
2
2
  import { Client } from '@planetscale/database';
3
+ import { entityKind } from "../entity.cjs";
3
4
  import type { Logger } from "../logger.cjs";
4
5
  import { MySqlDatabase } from "../mysql-core/db.cjs";
5
6
  import type { DrizzleConfig } from "../utils.cjs";
@@ -7,5 +8,9 @@ import type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from "./s
7
8
  export interface PlanetscaleSDriverOptions {
8
9
  logger?: Logger;
9
10
  }
10
- export type PlanetScaleDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema>;
11
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Client | Connection, config?: DrizzleConfig<TSchema>): PlanetScaleDatabase<TSchema>;
11
+ export declare class PlanetScaleDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema> {
12
+ static readonly [entityKind]: string;
13
+ }
14
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends Client | Connection = Client | Connection>(client: TClient, config?: DrizzleConfig<TSchema>): PlanetScaleDatabase<TSchema> & {
15
+ $client: TClient;
16
+ };
@@ -1,5 +1,6 @@
1
1
  import type { Connection } from '@planetscale/database';
2
2
  import { Client } from '@planetscale/database';
3
+ import { entityKind } from "../entity.js";
3
4
  import type { Logger } from "../logger.js";
4
5
  import { MySqlDatabase } from "../mysql-core/db.js";
5
6
  import type { DrizzleConfig } from "../utils.js";
@@ -7,5 +8,9 @@ import type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from "./s
7
8
  export interface PlanetscaleSDriverOptions {
8
9
  logger?: Logger;
9
10
  }
10
- export type PlanetScaleDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema>;
11
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Client | Connection, config?: DrizzleConfig<TSchema>): PlanetScaleDatabase<TSchema>;
11
+ export declare class PlanetScaleDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema> {
12
+ static readonly [entityKind]: string;
13
+ }
14
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends Client | Connection = Client | Connection>(client: TClient, config?: DrizzleConfig<TSchema>): PlanetScaleDatabase<TSchema> & {
15
+ $client: TClient;
16
+ };
@@ -1,4 +1,5 @@
1
1
  import { Client } from "@planetscale/database";
2
+ import { entityKind } from "../entity.js";
2
3
  import { DefaultLogger } from "../logger.js";
3
4
  import { MySqlDatabase } from "../mysql-core/db.js";
4
5
  import { MySqlDialect } from "../mysql-core/dialect.js";
@@ -7,6 +8,9 @@ import {
7
8
  extractTablesRelationalConfig
8
9
  } from "../relations.js";
9
10
  import { PlanetscaleSession } from "./session.js";
11
+ class PlanetScaleDatabase extends MySqlDatabase {
12
+ static [entityKind] = "PlanetScaleDatabase";
13
+ }
10
14
  function drizzle(client, config = {}) {
11
15
  if (!(client instanceof Client)) {
12
16
  console.log(`Warning: You need to pass an instance of Client:
@@ -25,7 +29,7 @@ Starting from version 0.30.0, you will encounter an error if you attempt to use
25
29
  Please make the necessary changes now to prevent any runtime errors in the future
26
30
  `);
27
31
  }
28
- const dialect = new MySqlDialect();
32
+ const dialect = new MySqlDialect({ casing: config.casing });
29
33
  let logger;
30
34
  if (config.logger === true) {
31
35
  logger = new DefaultLogger();
@@ -45,9 +49,12 @@ Please make the necessary changes now to prevent any runtime errors in the futur
45
49
  };
46
50
  }
47
51
  const session = new PlanetscaleSession(client, dialect, void 0, schema, { logger });
48
- return new MySqlDatabase(dialect, session, schema, "planetscale");
52
+ const db = new PlanetScaleDatabase(dialect, session, schema, "planetscale");
53
+ db.$client = client;
54
+ return db;
49
55
  }
50
56
  export {
57
+ PlanetScaleDatabase,
51
58
  drizzle
52
59
  };
53
60
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/planetscale-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@planetscale/database';\nimport { Client } from '@planetscale/database';\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 {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from './session.ts';\nimport { PlanetscaleSession } from './session.ts';\n\nexport interface PlanetscaleSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport type PlanetScaleDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Client | Connection,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PlanetScaleDatabase<TSchema> {\n\t// Client is not Drizzle Object, so we can ignore this rule here\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (!(client instanceof Client)) {\n\t\t// Should use error on 0.30.0 release\n\t\t// \t\tthrow new DrizzleError({\n\t\t// \t\t\tmessage: `You need to pass an instance of Client:\n\n\t\t// import { Client } from \"@planetscale/database\";\n\n\t\t// const client = new Client({\n\t\t// host: process.env[\"DATABASE_HOST\"],\n\t\t// username: process.env[\"DATABASE_USERNAME\"],\n\t\t// password: process.env[\"DATABASE_PASSWORD\"],\n\t\t// });\n\n\t\t// const db = drizzle(client);\n\t\t// `,\n\t\t// \t\t});\n\t\tconsole.log(`Warning: You need to pass an instance of Client:\n\nimport { Client } from \"@planetscale/database\";\n\nconst client = new Client({\n host: process.env[\"DATABASE_HOST\"],\n username: process.env[\"DATABASE_USERNAME\"],\n password: process.env[\"DATABASE_PASSWORD\"],\n});\n\nconst db = drizzle(client);\n\t\t\nStarting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.\\nPlease make the necessary changes now to prevent any runtime errors in the future\n\t\t`);\n\t}\n\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 PlanetscaleSession(client, dialect, undefined, schema, { logger });\n\treturn new MySqlDatabase(dialect, session, schema, 'planetscale') as PlanetScaleDatabase<TSchema>;\n}\n"],"mappings":"AACA,SAAS,cAAc;AAEvB,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,0BAA0B;AAU5B,SAAS,QACf,QACA,SAAiC,CAAC,GACH;AAG/B,MAAI,EAAE,kBAAkB,SAAS;AAgBhC,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAaX;AAAA,EACF;AAEA,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,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACrF,SAAO,IAAI,cAAc,SAAS,SAAS,QAAQ,aAAa;AACjE;","names":[]}
1
+ {"version":3,"sources":["../../src/planetscale-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@planetscale/database';\nimport { Client } from '@planetscale/database';\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 {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PlanetScalePreparedQueryHKT, PlanetscaleQueryResultHKT } from './session.ts';\nimport { PlanetscaleSession } from './session.ts';\n\nexport interface PlanetscaleSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class PlanetScaleDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetScaleDatabase';\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client | Connection = Client | Connection,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PlanetScaleDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// Client is not Drizzle Object, so we can ignore this rule here\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (!(client instanceof Client)) {\n\t\t// Should use error on 0.30.0 release\n\t\t// \t\tthrow new DrizzleError({\n\t\t// \t\t\tmessage: `You need to pass an instance of Client:\n\n\t\t// import { Client } from \"@planetscale/database\";\n\n\t\t// const client = new Client({\n\t\t// host: process.env[\"DATABASE_HOST\"],\n\t\t// username: process.env[\"DATABASE_USERNAME\"],\n\t\t// password: process.env[\"DATABASE_PASSWORD\"],\n\t\t// });\n\n\t\t// const db = drizzle(client);\n\t\t// `,\n\t\t// \t\t});\n\t\tconsole.log(`Warning: You need to pass an instance of Client:\n\nimport { Client } from \"@planetscale/database\";\n\nconst client = new Client({\n host: process.env[\"DATABASE_HOST\"],\n username: process.env[\"DATABASE_USERNAME\"],\n password: process.env[\"DATABASE_PASSWORD\"],\n});\n\nconst db = drizzle(client);\n\t\t\nStarting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.\\nPlease make the necessary changes now to prevent any runtime errors in the future\n\t\t`);\n\t}\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\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 PlanetscaleSession(client, dialect, undefined, schema, { logger });\n\tconst db = new PlanetScaleDatabase(dialect, session, schema as any, 'planetscale') as PlanetScaleDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AACA,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,0BAA0B;AAM5B,MAAM,4BAEH,cAA+E;AAAA,EACxF,QAAiB,UAAU,IAAY;AACxC;AAEO,SAAS,QAIf,QACA,SAAiC,CAAC,GAGjC;AAGD,MAAI,EAAE,kBAAkB,SAAS;AAgBhC,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAaX;AAAA,EACF;AAEA,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,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACrF,QAAM,KAAK,IAAI,oBAAoB,SAAS,SAAS,QAAe,aAAa;AACjF,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/planetscale-serverless/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PlanetScaleDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PlanetScaleDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/planetscale-serverless/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PlanetScaleDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PlanetScaleDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAE5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/planetscale-serverless/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PlanetScaleDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PlanetScaleDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/planetscale-serverless/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PlanetScaleDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PlanetScaleDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAE5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -129,6 +129,12 @@ class PlanetscaleSession extends import_session.MySqlSession {
129
129
  this.logger.logQuery(querySql.sql, querySql.params);
130
130
  return this.client.execute(querySql.sql, querySql.params, { as: "object" }).then((eQuery) => eQuery.rows);
131
131
  }
132
+ async count(sql2) {
133
+ const res = await this.execute(sql2);
134
+ return Number(
135
+ res["rows"][0]["count"]
136
+ );
137
+ }
132
138
  transaction(transaction) {
133
139
  return this.baseClient.transaction((pstx) => {
134
140
  const session = new PlanetscaleSession(this.baseClient, this.dialect, pstx, this.schema, this.options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/planetscale-serverless/session.ts"],"sourcesContent":["import type { Client, Connection, ExecutedQuery, Transaction } from '@planetscale/database';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PlanetScalePreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'PlanetScalePreparedQuery';\n\n\tprivate rawQuery = { as: 'object' } as const;\n\tprivate query = { as: 'array' } as const;\n\n\tconstructor(\n\t\tprivate client: Client | Transaction | Connection,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tqueryString,\n\t\t\trawQuery,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, rawQuery);\n\n\t\t\tconst insertId = Number.parseFloat(res.insertId);\n\t\t\tconst affectedRows = res.rowsAffected;\n\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t\tconst { rows } = await client.execute(queryString, params, query);\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row as unknown[], joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the PlanetScale Serverless driver');\n\t}\n}\n\nexport interface PlanetscaleSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PlanetscaleSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetscaleSession';\n\n\tprivate logger: Logger;\n\tprivate client: Client | Transaction | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Client | Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Transaction | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: PlanetscaleSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PlanetScalePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<ExecutedQuery> {\n\t\tthis.logger.logQuery(query, params);\n\n\t\treturn await this.client.execute(query, params, { as: 'array' });\n\t}\n\n\tasync queryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<ExecutedQuery> {\n\t\treturn this.client.execute(query, params, { as: 'object' });\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\n\t\treturn this.client.execute(querySql.sql, querySql.params, { as: 'object' }).then((\n\t\t\teQuery,\n\t\t) => eQuery.rows as T[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.baseClient.transaction((pstx) => {\n\t\t\tconst session = new PlanetscaleSession(this.baseClient, this.dialect, pstx, this.schema, this.options);\n\t\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t});\n\t}\n}\n\nexport class PlanetScaleTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetScaleTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'planetscale');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface PlanetscaleQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: ExecutedQuery;\n}\n\nexport interface PlanetScalePreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PlanetScalePreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/planetscale-serverless/session.ts"],"sourcesContent":["import type { Client, Connection, ExecutedQuery, Transaction } from '@planetscale/database';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PlanetScalePreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'PlanetScalePreparedQuery';\n\n\tprivate rawQuery = { as: 'object' } as const;\n\tprivate query = { as: 'array' } as const;\n\n\tconstructor(\n\t\tprivate client: Client | Transaction | Connection,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tqueryString,\n\t\t\trawQuery,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, rawQuery);\n\n\t\t\tconst insertId = Number.parseFloat(res.insertId);\n\t\t\tconst affectedRows = res.rowsAffected;\n\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t\tconst { rows } = await client.execute(queryString, params, query);\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row as unknown[], joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the PlanetScale Serverless driver');\n\t}\n}\n\nexport interface PlanetscaleSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PlanetscaleSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetscaleSession';\n\n\tprivate logger: Logger;\n\tprivate client: Client | Transaction | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Client | Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Transaction | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: PlanetscaleSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PlanetScalePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<ExecutedQuery> {\n\t\tthis.logger.logQuery(query, params);\n\n\t\treturn await this.client.execute(query, params, { as: 'array' });\n\t}\n\n\tasync queryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<ExecutedQuery> {\n\t\treturn this.client.execute(query, params, { as: 'object' });\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\n\t\treturn this.client.execute(querySql.sql, querySql.params, { as: 'object' }).then((\n\t\t\teQuery,\n\t\t) => eQuery.rows as T[]);\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 transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.baseClient.transaction((pstx) => {\n\t\t\tconst session = new PlanetscaleSession(this.baseClient, this.dialect, pstx, this.schema, this.options);\n\t\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t});\n\t}\n}\n\nexport class PlanetScaleTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetScaleTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'planetscale');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface PlanetscaleQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: ExecutedQuery;\n}\n\nexport interface PlanetScalePreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PlanetScalePreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":["sql"]}
@@ -38,6 +38,7 @@ export declare class PlanetscaleSession<TFullSchema extends Record<string, unkno
38
38
  query(query: string, params: unknown[]): Promise<ExecutedQuery>;
39
39
  queryObjects(query: string, params: unknown[]): Promise<ExecutedQuery>;
40
40
  all<T = unknown>(query: SQL): Promise<T[]>;
41
+ count(sql: SQL): Promise<number>;
41
42
  transaction<T>(transaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
42
43
  }
43
44
  export declare class PlanetScaleTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {
@@ -38,6 +38,7 @@ export declare class PlanetscaleSession<TFullSchema extends Record<string, unkno
38
38
  query(query: string, params: unknown[]): Promise<ExecutedQuery>;
39
39
  queryObjects(query: string, params: unknown[]): Promise<ExecutedQuery>;
40
40
  all<T = unknown>(query: SQL): Promise<T[]>;
41
+ count(sql: SQL): Promise<number>;
41
42
  transaction<T>(transaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
42
43
  }
43
44
  export declare class PlanetScaleTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {
@@ -108,6 +108,12 @@ class PlanetscaleSession extends MySqlSession {
108
108
  this.logger.logQuery(querySql.sql, querySql.params);
109
109
  return this.client.execute(querySql.sql, querySql.params, { as: "object" }).then((eQuery) => eQuery.rows);
110
110
  }
111
+ async count(sql2) {
112
+ const res = await this.execute(sql2);
113
+ return Number(
114
+ res["rows"][0]["count"]
115
+ );
116
+ }
111
117
  transaction(transaction) {
112
118
  return this.baseClient.transaction((pstx) => {
113
119
  const session = new PlanetscaleSession(this.baseClient, this.dialect, pstx, this.schema, this.options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/planetscale-serverless/session.ts"],"sourcesContent":["import type { Client, Connection, ExecutedQuery, Transaction } from '@planetscale/database';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PlanetScalePreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'PlanetScalePreparedQuery';\n\n\tprivate rawQuery = { as: 'object' } as const;\n\tprivate query = { as: 'array' } as const;\n\n\tconstructor(\n\t\tprivate client: Client | Transaction | Connection,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tqueryString,\n\t\t\trawQuery,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, rawQuery);\n\n\t\t\tconst insertId = Number.parseFloat(res.insertId);\n\t\t\tconst affectedRows = res.rowsAffected;\n\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t\tconst { rows } = await client.execute(queryString, params, query);\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row as unknown[], joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the PlanetScale Serverless driver');\n\t}\n}\n\nexport interface PlanetscaleSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PlanetscaleSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetscaleSession';\n\n\tprivate logger: Logger;\n\tprivate client: Client | Transaction | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Client | Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Transaction | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: PlanetscaleSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PlanetScalePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<ExecutedQuery> {\n\t\tthis.logger.logQuery(query, params);\n\n\t\treturn await this.client.execute(query, params, { as: 'array' });\n\t}\n\n\tasync queryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<ExecutedQuery> {\n\t\treturn this.client.execute(query, params, { as: 'object' });\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\n\t\treturn this.client.execute(querySql.sql, querySql.params, { as: 'object' }).then((\n\t\t\teQuery,\n\t\t) => eQuery.rows as T[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.baseClient.transaction((pstx) => {\n\t\t\tconst session = new PlanetscaleSession(this.baseClient, this.dialect, pstx, this.schema, this.options);\n\t\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t});\n\t}\n}\n\nexport class PlanetScaleTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetScaleTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'planetscale');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface PlanetscaleQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: ExecutedQuery;\n}\n\nexport interface PlanetScalePreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PlanetScalePreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/planetscale-serverless/session.ts"],"sourcesContent":["import type { Client, Connection, ExecutedQuery, Transaction } from '@planetscale/database';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PlanetScalePreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'PlanetScalePreparedQuery';\n\n\tprivate rawQuery = { as: 'object' } as const;\n\tprivate query = { as: 'array' } as const;\n\n\tconstructor(\n\t\tprivate client: Client | Transaction | Connection,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tqueryString,\n\t\t\trawQuery,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, rawQuery);\n\n\t\t\tconst insertId = Number.parseFloat(res.insertId);\n\t\t\tconst affectedRows = res.rowsAffected;\n\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t\tconst { rows } = await client.execute(queryString, params, query);\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row as unknown[], joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the PlanetScale Serverless driver');\n\t}\n}\n\nexport interface PlanetscaleSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PlanetscaleSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetscaleSession';\n\n\tprivate logger: Logger;\n\tprivate client: Client | Transaction | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Client | Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Transaction | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: PlanetscaleSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PlanetScalePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t);\n\t}\n\n\tasync query(query: string, params: unknown[]): Promise<ExecutedQuery> {\n\t\tthis.logger.logQuery(query, params);\n\n\t\treturn await this.client.execute(query, params, { as: 'array' });\n\t}\n\n\tasync queryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<ExecutedQuery> {\n\t\treturn this.client.execute(query, params, { as: 'object' });\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\n\t\treturn this.client.execute(querySql.sql, querySql.params, { as: 'object' }).then((\n\t\t\teQuery,\n\t\t) => eQuery.rows as T[]);\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 transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.baseClient.transaction((pstx) => {\n\t\t\tconst session = new PlanetscaleSession(this.baseClient, this.dialect, pstx, this.schema, this.options);\n\t\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t});\n\t}\n}\n\nexport class PlanetScaleTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<PlanetscaleQueryResultHKT, PlanetScalePreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PlanetScaleTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'planetscale');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: PlanetScaleTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new PlanetScaleTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface PlanetscaleQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: ExecutedQuery;\n}\n\nexport interface PlanetScalePreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PlanetScalePreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":["sql"]}
@@ -18,14 +18,19 @@ 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
+ PostgresJsDatabase: () => PostgresJsDatabase,
21
22
  drizzle: () => drizzle
22
23
  });
23
24
  module.exports = __toCommonJS(driver_exports);
25
+ var import_entity = require("../entity.cjs");
24
26
  var import_logger = require("../logger.cjs");
25
27
  var import_db = require("../pg-core/db.cjs");
26
28
  var import_dialect = require("../pg-core/dialect.cjs");
27
29
  var import_relations = require("../relations.cjs");
28
30
  var import_session = require("./session.cjs");
31
+ class PostgresJsDatabase extends import_db.PgDatabase {
32
+ static [import_entity.entityKind] = "PostgresJsDatabase";
33
+ }
29
34
  function drizzle(client, config = {}) {
30
35
  const transparentParser = (val) => val;
31
36
  for (const type of ["1184", "1082", "1083", "1114"]) {
@@ -34,7 +39,7 @@ function drizzle(client, config = {}) {
34
39
  }
35
40
  client.options.serializers["114"] = transparentParser;
36
41
  client.options.serializers["3802"] = transparentParser;
37
- const dialect = new import_dialect.PgDialect();
42
+ const dialect = new import_dialect.PgDialect({ casing: config.casing });
38
43
  let logger;
39
44
  if (config.logger === true) {
40
45
  logger = new import_logger.DefaultLogger();
@@ -54,10 +59,13 @@ function drizzle(client, config = {}) {
54
59
  };
55
60
  }
56
61
  const session = new import_session.PostgresJsSession(client, dialect, schema, { logger });
57
- return new import_db.PgDatabase(dialect, session, schema);
62
+ const db = new PostgresJsDatabase(dialect, session, schema);
63
+ db.$client = client;
64
+ return db;
58
65
  }
59
66
  // Annotate the CommonJS export names for ESM import in node:
60
67
  0 && (module.exports = {
68
+ PostgresJsDatabase,
61
69
  drizzle
62
70
  });
63
71
  //# sourceMappingURL=driver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport type PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = PgDatabase<PostgresJsQueryResultHKT, TSchema>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\n\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 session = new PostgresJsSession(client, dialect, schema, { logger });\n\treturn new PgDatabase(dialect, session, schema) as PostgresJsDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AAGP,qBAAkC;AAM3B,SAAS,QACf,QACA,SAAiC,CAAC,GACJ;AAC9B,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,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,UAAU,IAAI,iCAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,SAAO,IAAI,qBAAW,SAAS,SAAS,MAAM;AAC/C;","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport class PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PostgresJsDatabase';\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> & {\n\t$client: Sql;\n} {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\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 session = new PostgresJsSession(client, dialect, schema, { logger });\n\tconst db = new PostgresJsDatabase(dialect, session, schema as any) as PostgresJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AAGP,qBAAkC;AAE3B,MAAM,2BAEH,qBAA8C;AAAA,EACvD,QAAiB,wBAAU,IAAY;AACxC;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,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,UAAU,IAAI,iCAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,QAAM,KAAK,IAAI,mBAAmB,SAAS,SAAS,MAAa;AACjE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1,6 +1,11 @@
1
1
  import type { Sql } from 'postgres';
2
+ import { entityKind } from "../entity.cjs";
2
3
  import { PgDatabase } from "../pg-core/db.cjs";
3
4
  import type { DrizzleConfig } from "../utils.cjs";
4
5
  import type { PostgresJsQueryResultHKT } from "./session.cjs";
5
- export type PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<PostgresJsQueryResultHKT, TSchema>;
6
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Sql, config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema>;
6
+ export declare class PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {
7
+ static readonly [entityKind]: string;
8
+ }
9
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Sql, config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema> & {
10
+ $client: Sql;
11
+ };
@@ -1,6 +1,11 @@
1
1
  import type { Sql } from 'postgres';
2
+ import { entityKind } from "../entity.js";
2
3
  import { PgDatabase } from "../pg-core/db.js";
3
4
  import type { DrizzleConfig } from "../utils.js";
4
5
  import type { PostgresJsQueryResultHKT } from "./session.js";
5
- export type PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<PostgresJsQueryResultHKT, TSchema>;
6
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Sql, config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema>;
6
+ export declare class PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {
7
+ static readonly [entityKind]: string;
8
+ }
9
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Sql, config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema> & {
10
+ $client: Sql;
11
+ };
@@ -1,3 +1,4 @@
1
+ import { entityKind } from "../entity.js";
1
2
  import { DefaultLogger } from "../logger.js";
2
3
  import { PgDatabase } from "../pg-core/db.js";
3
4
  import { PgDialect } from "../pg-core/dialect.js";
@@ -6,6 +7,9 @@ import {
6
7
  extractTablesRelationalConfig
7
8
  } from "../relations.js";
8
9
  import { PostgresJsSession } from "./session.js";
10
+ class PostgresJsDatabase extends PgDatabase {
11
+ static [entityKind] = "PostgresJsDatabase";
12
+ }
9
13
  function drizzle(client, config = {}) {
10
14
  const transparentParser = (val) => val;
11
15
  for (const type of ["1184", "1082", "1083", "1114"]) {
@@ -14,7 +18,7 @@ function drizzle(client, config = {}) {
14
18
  }
15
19
  client.options.serializers["114"] = transparentParser;
16
20
  client.options.serializers["3802"] = transparentParser;
17
- const dialect = new PgDialect();
21
+ const dialect = new PgDialect({ casing: config.casing });
18
22
  let logger;
19
23
  if (config.logger === true) {
20
24
  logger = new DefaultLogger();
@@ -34,9 +38,12 @@ function drizzle(client, config = {}) {
34
38
  };
35
39
  }
36
40
  const session = new PostgresJsSession(client, dialect, schema, { logger });
37
- return new PgDatabase(dialect, session, schema);
41
+ const db = new PostgresJsDatabase(dialect, session, schema);
42
+ db.$client = client;
43
+ return db;
38
44
  }
39
45
  export {
46
+ PostgresJsDatabase,
40
47
  drizzle
41
48
  };
42
49
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport type PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = PgDatabase<PostgresJsQueryResultHKT, TSchema>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\n\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 session = new PostgresJsSession(client, dialect, schema, { logger });\n\treturn new PgDatabase(dialect, session, schema) as PostgresJsDatabase<TSchema>;\n}\n"],"mappings":"AACA,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,yBAAyB;AAM3B,SAAS,QACf,QACA,SAAiC,CAAC,GACJ;AAC9B,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,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,UAAU,IAAI,kBAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,SAAO,IAAI,WAAW,SAAS,SAAS,MAAM;AAC/C;","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport class PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PostgresJsDatabase';\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> & {\n\t$client: Sql;\n} {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\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 session = new PostgresJsSession(client, dialect, schema, { logger });\n\tconst db = new PostgresJsDatabase(dialect, session, schema as any) as PostgresJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,yBAAyB;AAE3B,MAAM,2BAEH,WAA8C;AAAA,EACvD,QAAiB,UAAU,IAAY;AACxC;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,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,UAAU,IAAI,kBAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,QAAM,KAAK,IAAI,mBAAmB,SAAS,SAAS,MAAa;AACjE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: string | MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -1,3 +1,3 @@
1
1
  import type { MigrationConfig } from "../migrator.cjs";
2
2
  import type { PostgresJsDatabase } from "./driver.cjs";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: string | MigrationConfig): Promise<void>;
3
+ export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: MigrationConfig): Promise<void>;
@@ -1,3 +1,3 @@
1
1
  import type { MigrationConfig } from "../migrator.js";
2
2
  import type { PostgresJsDatabase } from "./driver.js";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: string | MigrationConfig): Promise<void>;
3
+ export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: string | MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
package/sql/sql.cjs CHANGED
@@ -102,6 +102,7 @@ class SQL {
102
102
  paramStartIndex: _config.paramStartIndex || { value: 0 }
103
103
  });
104
104
  const {
105
+ casing,
105
106
  escapeName,
106
107
  escapeParam,
107
108
  prepareTyping,
@@ -144,10 +145,11 @@ class SQL {
144
145
  };
145
146
  }
146
147
  if ((0, import_entity.is)(chunk, import_column.Column)) {
148
+ const columnName = casing.getColumnCasing(chunk);
147
149
  if (_config.invokeSource === "indexes") {
148
- return { sql: escapeName(chunk.name), params: [] };
150
+ return { sql: escapeName(columnName), params: [] };
149
151
  }
150
- return { sql: escapeName(chunk.table[import_table.Table.Symbol.Name]) + "." + escapeName(chunk.name), params: [] };
152
+ return { sql: escapeName(chunk.table[import_table.Table.Symbol.Name]) + "." + escapeName(columnName), params: [] };
151
153
  }
152
154
  if ((0, import_entity.is)(chunk, View)) {
153
155
  const schemaName = chunk[import_view_common.ViewBaseConfig].schema;