drizzle-orm 0.33.0 → 0.34.0-06c725b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (864) hide show
  1. package/aws-data-api/pg/driver.cjs +12 -9
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +5 -3
  4. package/aws-data-api/pg/driver.d.ts +5 -3
  5. package/aws-data-api/pg/driver.js +6 -3
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/migrator.cjs.map +1 -1
  8. package/aws-data-api/pg/migrator.d.cts +1 -1
  9. package/aws-data-api/pg/migrator.d.ts +1 -1
  10. package/aws-data-api/pg/migrator.js.map +1 -1
  11. package/better-sqlite3/driver.cjs +10 -2
  12. package/better-sqlite3/driver.cjs.map +1 -1
  13. package/better-sqlite3/driver.d.cts +7 -2
  14. package/better-sqlite3/driver.d.ts +7 -2
  15. package/better-sqlite3/driver.js +9 -2
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/migrator.cjs.map +1 -1
  18. package/better-sqlite3/migrator.d.cts +1 -1
  19. package/better-sqlite3/migrator.d.ts +1 -1
  20. package/better-sqlite3/migrator.js.map +1 -1
  21. package/bun-sqlite/driver.cjs +10 -2
  22. package/bun-sqlite/driver.cjs.map +1 -1
  23. package/bun-sqlite/driver.d.cts +7 -2
  24. package/bun-sqlite/driver.d.ts +7 -2
  25. package/bun-sqlite/driver.js +9 -2
  26. package/bun-sqlite/driver.js.map +1 -1
  27. package/bun-sqlite/migrator.cjs.map +1 -1
  28. package/bun-sqlite/migrator.d.cts +1 -1
  29. package/bun-sqlite/migrator.d.ts +1 -1
  30. package/bun-sqlite/migrator.js.map +1 -1
  31. package/casing.cjs +85 -0
  32. package/casing.cjs.map +1 -0
  33. package/casing.d.cts +14 -0
  34. package/casing.d.ts +14 -0
  35. package/casing.js +59 -0
  36. package/casing.js.map +1 -0
  37. package/column-builder.cjs +7 -0
  38. package/column-builder.cjs.map +1 -1
  39. package/column-builder.d.cts +7 -2
  40. package/column-builder.d.ts +7 -2
  41. package/column-builder.js +7 -0
  42. package/column-builder.js.map +1 -1
  43. package/column.cjs +3 -0
  44. package/column.cjs.map +1 -1
  45. package/column.js +3 -0
  46. package/column.js.map +1 -1
  47. package/connect.cjs +25 -0
  48. package/connect.cjs.map +1 -0
  49. package/connect.d.cts +2 -0
  50. package/connect.d.ts +2 -0
  51. package/connect.js +3 -0
  52. package/connect.js.map +1 -0
  53. package/d1/driver.cjs +4 -2
  54. package/d1/driver.cjs.map +1 -1
  55. package/d1/driver.d.cts +6 -2
  56. package/d1/driver.d.ts +6 -2
  57. package/d1/driver.js +4 -2
  58. package/d1/driver.js.map +1 -1
  59. package/d1/migrator.cjs +1 -1
  60. package/d1/migrator.cjs.map +1 -1
  61. package/d1/migrator.d.cts +1 -1
  62. package/d1/migrator.d.ts +1 -1
  63. package/d1/migrator.js +1 -1
  64. package/d1/migrator.js.map +1 -1
  65. package/expo-sqlite/driver.cjs +10 -2
  66. package/expo-sqlite/driver.cjs.map +1 -1
  67. package/expo-sqlite/driver.d.cts +7 -2
  68. package/expo-sqlite/driver.d.ts +7 -2
  69. package/expo-sqlite/driver.js +9 -2
  70. package/expo-sqlite/driver.js.map +1 -1
  71. package/expo-sqlite/query.cjs +8 -6
  72. package/expo-sqlite/query.cjs.map +1 -1
  73. package/expo-sqlite/query.js +3 -1
  74. package/expo-sqlite/query.js.map +1 -1
  75. package/libsql/driver.cjs +4 -2
  76. package/libsql/driver.cjs.map +1 -1
  77. package/libsql/driver.d.cts +3 -1
  78. package/libsql/driver.d.ts +3 -1
  79. package/libsql/driver.js +4 -2
  80. package/libsql/driver.js.map +1 -1
  81. package/libsql/migrator.cjs +2 -2
  82. package/libsql/migrator.cjs.map +1 -1
  83. package/libsql/migrator.js +2 -2
  84. package/libsql/migrator.js.map +1 -1
  85. package/libsql/session.cjs +12 -0
  86. package/libsql/session.cjs.map +1 -1
  87. package/libsql/session.d.cts +1 -0
  88. package/libsql/session.d.ts +1 -0
  89. package/libsql/session.js +12 -0
  90. package/libsql/session.js.map +1 -1
  91. package/migrator.cjs +1 -12
  92. package/migrator.cjs.map +1 -1
  93. package/migrator.d.cts +1 -1
  94. package/migrator.d.ts +1 -1
  95. package/migrator.js +1 -12
  96. package/migrator.js.map +1 -1
  97. package/monodriver.cjs +283 -0
  98. package/monodriver.cjs.map +1 -0
  99. package/monodriver.d.cts +194 -0
  100. package/monodriver.d.ts +194 -0
  101. package/monodriver.js +249 -0
  102. package/monodriver.js.map +1 -0
  103. package/monomigrator.cjs +99 -0
  104. package/monomigrator.cjs.map +1 -0
  105. package/monomigrator.d.cts +16 -0
  106. package/monomigrator.d.ts +16 -0
  107. package/monomigrator.js +65 -0
  108. package/monomigrator.js.map +1 -0
  109. package/mysql-core/columns/all.cjs +80 -0
  110. package/mysql-core/columns/all.cjs.map +1 -0
  111. package/mysql-core/columns/all.d.cts +51 -0
  112. package/mysql-core/columns/all.d.ts +51 -0
  113. package/mysql-core/columns/all.js +56 -0
  114. package/mysql-core/columns/all.js.map +1 -0
  115. package/mysql-core/columns/bigint.cjs +3 -1
  116. package/mysql-core/columns/bigint.cjs.map +1 -1
  117. package/mysql-core/columns/bigint.d.cts +2 -2
  118. package/mysql-core/columns/bigint.d.ts +2 -2
  119. package/mysql-core/columns/bigint.js +3 -1
  120. package/mysql-core/columns/bigint.js.map +1 -1
  121. package/mysql-core/columns/binary.cjs +3 -1
  122. package/mysql-core/columns/binary.cjs.map +1 -1
  123. package/mysql-core/columns/binary.d.cts +2 -0
  124. package/mysql-core/columns/binary.d.ts +2 -0
  125. package/mysql-core/columns/binary.js +3 -1
  126. package/mysql-core/columns/binary.js.map +1 -1
  127. package/mysql-core/columns/boolean.cjs +1 -1
  128. package/mysql-core/columns/boolean.cjs.map +1 -1
  129. package/mysql-core/columns/boolean.d.cts +1 -0
  130. package/mysql-core/columns/boolean.d.ts +1 -0
  131. package/mysql-core/columns/boolean.js +1 -1
  132. package/mysql-core/columns/boolean.js.map +1 -1
  133. package/mysql-core/columns/char.cjs +3 -1
  134. package/mysql-core/columns/char.cjs.map +1 -1
  135. package/mysql-core/columns/char.d.cts +4 -2
  136. package/mysql-core/columns/char.d.ts +4 -2
  137. package/mysql-core/columns/char.js +3 -1
  138. package/mysql-core/columns/char.js.map +1 -1
  139. package/mysql-core/columns/custom.cjs +4 -2
  140. package/mysql-core/columns/custom.cjs.map +1 -1
  141. package/mysql-core/columns/custom.d.cts +10 -3
  142. package/mysql-core/columns/custom.d.ts +10 -3
  143. package/mysql-core/columns/custom.js +4 -2
  144. package/mysql-core/columns/custom.js.map +1 -1
  145. package/mysql-core/columns/date.cjs +4 -2
  146. package/mysql-core/columns/date.cjs.map +1 -1
  147. package/mysql-core/columns/date.d.cts +3 -1
  148. package/mysql-core/columns/date.d.ts +3 -1
  149. package/mysql-core/columns/date.js +4 -2
  150. package/mysql-core/columns/date.js.map +1 -1
  151. package/mysql-core/columns/datetime.cjs +4 -2
  152. package/mysql-core/columns/datetime.cjs.map +1 -1
  153. package/mysql-core/columns/datetime.d.cts +3 -1
  154. package/mysql-core/columns/datetime.d.ts +3 -1
  155. package/mysql-core/columns/datetime.js +4 -2
  156. package/mysql-core/columns/datetime.js.map +1 -1
  157. package/mysql-core/columns/decimal.cjs +3 -1
  158. package/mysql-core/columns/decimal.cjs.map +1 -1
  159. package/mysql-core/columns/decimal.d.cts +2 -0
  160. package/mysql-core/columns/decimal.d.ts +2 -0
  161. package/mysql-core/columns/decimal.js +3 -1
  162. package/mysql-core/columns/decimal.js.map +1 -1
  163. package/mysql-core/columns/double.cjs +3 -1
  164. package/mysql-core/columns/double.cjs.map +1 -1
  165. package/mysql-core/columns/double.d.cts +2 -0
  166. package/mysql-core/columns/double.d.ts +2 -0
  167. package/mysql-core/columns/double.js +3 -1
  168. package/mysql-core/columns/double.js.map +1 -1
  169. package/mysql-core/columns/enum.cjs +3 -1
  170. package/mysql-core/columns/enum.cjs.map +1 -1
  171. package/mysql-core/columns/enum.d.cts +2 -1
  172. package/mysql-core/columns/enum.d.ts +2 -1
  173. package/mysql-core/columns/enum.js +3 -1
  174. package/mysql-core/columns/enum.js.map +1 -1
  175. package/mysql-core/columns/float.cjs +1 -1
  176. package/mysql-core/columns/float.cjs.map +1 -1
  177. package/mysql-core/columns/float.d.cts +1 -0
  178. package/mysql-core/columns/float.d.ts +1 -0
  179. package/mysql-core/columns/float.js +1 -1
  180. package/mysql-core/columns/float.js.map +1 -1
  181. package/mysql-core/columns/int.cjs +3 -1
  182. package/mysql-core/columns/int.cjs.map +1 -1
  183. package/mysql-core/columns/int.d.cts +2 -0
  184. package/mysql-core/columns/int.d.ts +2 -0
  185. package/mysql-core/columns/int.js +3 -1
  186. package/mysql-core/columns/int.js.map +1 -1
  187. package/mysql-core/columns/json.cjs +1 -1
  188. package/mysql-core/columns/json.cjs.map +1 -1
  189. package/mysql-core/columns/json.d.cts +1 -0
  190. package/mysql-core/columns/json.d.ts +1 -0
  191. package/mysql-core/columns/json.js +1 -1
  192. package/mysql-core/columns/json.js.map +1 -1
  193. package/mysql-core/columns/mediumint.cjs +3 -1
  194. package/mysql-core/columns/mediumint.cjs.map +1 -1
  195. package/mysql-core/columns/mediumint.d.cts +2 -0
  196. package/mysql-core/columns/mediumint.d.ts +2 -0
  197. package/mysql-core/columns/mediumint.js +3 -1
  198. package/mysql-core/columns/mediumint.js.map +1 -1
  199. package/mysql-core/columns/real.cjs +3 -1
  200. package/mysql-core/columns/real.cjs.map +1 -1
  201. package/mysql-core/columns/real.d.cts +2 -0
  202. package/mysql-core/columns/real.d.ts +2 -0
  203. package/mysql-core/columns/real.js +3 -1
  204. package/mysql-core/columns/real.js.map +1 -1
  205. package/mysql-core/columns/serial.cjs +1 -1
  206. package/mysql-core/columns/serial.cjs.map +1 -1
  207. package/mysql-core/columns/serial.d.cts +1 -0
  208. package/mysql-core/columns/serial.d.ts +1 -0
  209. package/mysql-core/columns/serial.js +1 -1
  210. package/mysql-core/columns/serial.js.map +1 -1
  211. package/mysql-core/columns/smallint.cjs +3 -1
  212. package/mysql-core/columns/smallint.cjs.map +1 -1
  213. package/mysql-core/columns/smallint.d.cts +2 -0
  214. package/mysql-core/columns/smallint.d.ts +2 -0
  215. package/mysql-core/columns/smallint.js +3 -1
  216. package/mysql-core/columns/smallint.js.map +1 -1
  217. package/mysql-core/columns/text.cjs +9 -4
  218. package/mysql-core/columns/text.cjs.map +1 -1
  219. package/mysql-core/columns/text.d.cts +10 -2
  220. package/mysql-core/columns/text.d.ts +10 -2
  221. package/mysql-core/columns/text.js +9 -4
  222. package/mysql-core/columns/text.js.map +1 -1
  223. package/mysql-core/columns/time.cjs +3 -1
  224. package/mysql-core/columns/time.cjs.map +1 -1
  225. package/mysql-core/columns/time.d.cts +2 -0
  226. package/mysql-core/columns/time.d.ts +2 -0
  227. package/mysql-core/columns/time.js +3 -1
  228. package/mysql-core/columns/time.js.map +1 -1
  229. package/mysql-core/columns/timestamp.cjs +4 -2
  230. package/mysql-core/columns/timestamp.cjs.map +1 -1
  231. package/mysql-core/columns/timestamp.d.cts +3 -1
  232. package/mysql-core/columns/timestamp.d.ts +3 -1
  233. package/mysql-core/columns/timestamp.js +4 -2
  234. package/mysql-core/columns/timestamp.js.map +1 -1
  235. package/mysql-core/columns/tinyint.cjs +3 -1
  236. package/mysql-core/columns/tinyint.cjs.map +1 -1
  237. package/mysql-core/columns/tinyint.d.cts +2 -0
  238. package/mysql-core/columns/tinyint.d.ts +2 -0
  239. package/mysql-core/columns/tinyint.js +3 -1
  240. package/mysql-core/columns/tinyint.js.map +1 -1
  241. package/mysql-core/columns/varbinary.cjs +4 -2
  242. package/mysql-core/columns/varbinary.cjs.map +1 -1
  243. package/mysql-core/columns/varbinary.d.cts +2 -1
  244. package/mysql-core/columns/varbinary.d.ts +2 -1
  245. package/mysql-core/columns/varbinary.js +4 -2
  246. package/mysql-core/columns/varbinary.js.map +1 -1
  247. package/mysql-core/columns/varchar.cjs +3 -1
  248. package/mysql-core/columns/varchar.cjs.map +1 -1
  249. package/mysql-core/columns/varchar.d.cts +3 -2
  250. package/mysql-core/columns/varchar.d.ts +3 -2
  251. package/mysql-core/columns/varchar.js +3 -1
  252. package/mysql-core/columns/varchar.js.map +1 -1
  253. package/mysql-core/columns/year.cjs +1 -1
  254. package/mysql-core/columns/year.cjs.map +1 -1
  255. package/mysql-core/columns/year.d.cts +1 -0
  256. package/mysql-core/columns/year.d.ts +1 -0
  257. package/mysql-core/columns/year.js +1 -1
  258. package/mysql-core/columns/year.js.map +1 -1
  259. package/mysql-core/db.cjs +8 -2
  260. package/mysql-core/db.cjs.map +1 -1
  261. package/mysql-core/db.d.cts +5 -2
  262. package/mysql-core/db.d.ts +5 -2
  263. package/mysql-core/db.js +8 -2
  264. package/mysql-core/db.js.map +1 -1
  265. package/mysql-core/dialect.cjs +14 -7
  266. package/mysql-core/dialect.cjs.map +1 -1
  267. package/mysql-core/dialect.d.cts +5 -1
  268. package/mysql-core/dialect.d.ts +5 -1
  269. package/mysql-core/dialect.js +14 -7
  270. package/mysql-core/dialect.js.map +1 -1
  271. package/mysql-core/foreign-keys.cjs +3 -3
  272. package/mysql-core/foreign-keys.cjs.map +1 -1
  273. package/mysql-core/foreign-keys.d.cts +1 -1
  274. package/mysql-core/foreign-keys.d.ts +1 -1
  275. package/mysql-core/foreign-keys.js +3 -3
  276. package/mysql-core/foreign-keys.js.map +1 -1
  277. package/mysql-core/query-builders/count.cjs +73 -0
  278. package/mysql-core/query-builders/count.cjs.map +1 -0
  279. package/mysql-core/query-builders/count.d.cts +26 -0
  280. package/mysql-core/query-builders/count.d.ts +26 -0
  281. package/mysql-core/query-builders/count.js +49 -0
  282. package/mysql-core/query-builders/count.js.map +1 -0
  283. package/mysql-core/query-builders/query-builder.cjs +6 -1
  284. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  285. package/mysql-core/query-builders/query-builder.d.cts +4 -0
  286. package/mysql-core/query-builders/query-builder.d.ts +4 -0
  287. package/mysql-core/query-builders/query-builder.js +7 -2
  288. package/mysql-core/query-builders/query-builder.js.map +1 -1
  289. package/mysql-core/session.cjs +6 -0
  290. package/mysql-core/session.cjs.map +1 -1
  291. package/mysql-core/session.d.cts +1 -0
  292. package/mysql-core/session.d.ts +1 -0
  293. package/mysql-core/session.js +6 -0
  294. package/mysql-core/session.js.map +1 -1
  295. package/mysql-core/table.cjs +4 -1
  296. package/mysql-core/table.cjs.map +1 -1
  297. package/mysql-core/table.d.cts +8 -1
  298. package/mysql-core/table.d.ts +8 -1
  299. package/mysql-core/table.js +4 -1
  300. package/mysql-core/table.js.map +1 -1
  301. package/mysql-core/unique-constraint.cjs +2 -2
  302. package/mysql-core/unique-constraint.cjs.map +1 -1
  303. package/mysql-core/unique-constraint.d.cts +1 -1
  304. package/mysql-core/unique-constraint.d.ts +1 -1
  305. package/mysql-core/unique-constraint.js +2 -2
  306. package/mysql-core/unique-constraint.js.map +1 -1
  307. package/mysql-proxy/driver.cjs +8 -2
  308. package/mysql-proxy/driver.cjs.map +1 -1
  309. package/mysql-proxy/driver.d.cts +4 -1
  310. package/mysql-proxy/driver.d.ts +4 -1
  311. package/mysql-proxy/driver.js +7 -2
  312. package/mysql-proxy/driver.js.map +1 -1
  313. package/mysql2/driver.cjs +13 -8
  314. package/mysql2/driver.cjs.map +1 -1
  315. package/mysql2/driver.d.cts +6 -2
  316. package/mysql2/driver.d.ts +6 -2
  317. package/mysql2/driver.js +11 -7
  318. package/mysql2/driver.js.map +1 -1
  319. package/neon-http/driver.cjs +4 -2
  320. package/neon-http/driver.cjs.map +1 -1
  321. package/neon-http/driver.d.cts +3 -1
  322. package/neon-http/driver.d.ts +3 -1
  323. package/neon-http/driver.js +4 -2
  324. package/neon-http/driver.js.map +1 -1
  325. package/neon-http/migrator.cjs +2 -2
  326. package/neon-http/migrator.cjs.map +1 -1
  327. package/neon-http/migrator.d.cts +1 -1
  328. package/neon-http/migrator.d.ts +1 -1
  329. package/neon-http/migrator.js +2 -2
  330. package/neon-http/migrator.js.map +1 -1
  331. package/neon-http/session.cjs +6 -0
  332. package/neon-http/session.cjs.map +1 -1
  333. package/neon-http/session.d.cts +2 -1
  334. package/neon-http/session.d.ts +2 -1
  335. package/neon-http/session.js +6 -0
  336. package/neon-http/session.js.map +1 -1
  337. package/neon-serverless/driver.cjs +9 -2
  338. package/neon-serverless/driver.cjs.map +1 -1
  339. package/neon-serverless/driver.d.cts +6 -2
  340. package/neon-serverless/driver.d.ts +6 -2
  341. package/neon-serverless/driver.js +8 -2
  342. package/neon-serverless/driver.js.map +1 -1
  343. package/neon-serverless/migrator.cjs.map +1 -1
  344. package/neon-serverless/migrator.d.cts +1 -1
  345. package/neon-serverless/migrator.d.ts +1 -1
  346. package/neon-serverless/migrator.js.map +1 -1
  347. package/node-postgres/driver.cjs +9 -2
  348. package/node-postgres/driver.cjs.map +1 -1
  349. package/node-postgres/driver.d.cts +6 -2
  350. package/node-postgres/driver.d.ts +6 -2
  351. package/node-postgres/driver.js +8 -2
  352. package/node-postgres/driver.js.map +1 -1
  353. package/node-postgres/migrator.cjs.map +1 -1
  354. package/node-postgres/migrator.d.cts +1 -1
  355. package/node-postgres/migrator.d.ts +1 -1
  356. package/node-postgres/migrator.js.map +1 -1
  357. package/node-postgres/session.cjs +6 -0
  358. package/node-postgres/session.cjs.map +1 -1
  359. package/node-postgres/session.d.cts +2 -1
  360. package/node-postgres/session.d.ts +2 -1
  361. package/node-postgres/session.js +6 -0
  362. package/node-postgres/session.js.map +1 -1
  363. package/op-sqlite/driver.cjs +10 -2
  364. package/op-sqlite/driver.cjs.map +1 -1
  365. package/op-sqlite/driver.d.cts +7 -2
  366. package/op-sqlite/driver.d.ts +7 -2
  367. package/op-sqlite/driver.js +9 -2
  368. package/op-sqlite/driver.js.map +1 -1
  369. package/operations.cjs.map +1 -1
  370. package/package.json +184 -51
  371. package/pg-core/columns/all.cjs +96 -0
  372. package/pg-core/columns/all.cjs.map +1 -0
  373. package/pg-core/columns/all.d.cts +67 -0
  374. package/pg-core/columns/all.d.ts +67 -0
  375. package/pg-core/columns/all.js +72 -0
  376. package/pg-core/columns/all.js.map +1 -0
  377. package/pg-core/columns/bigint.cjs +3 -1
  378. package/pg-core/columns/bigint.cjs.map +1 -1
  379. package/pg-core/columns/bigint.d.cts +2 -2
  380. package/pg-core/columns/bigint.d.ts +2 -2
  381. package/pg-core/columns/bigint.js +3 -1
  382. package/pg-core/columns/bigint.js.map +1 -1
  383. package/pg-core/columns/bigserial.cjs +4 -2
  384. package/pg-core/columns/bigserial.cjs.map +1 -1
  385. package/pg-core/columns/bigserial.d.cts +2 -2
  386. package/pg-core/columns/bigserial.d.ts +2 -2
  387. package/pg-core/columns/bigserial.js +4 -2
  388. package/pg-core/columns/bigserial.js.map +1 -1
  389. package/pg-core/columns/boolean.cjs +1 -1
  390. package/pg-core/columns/boolean.cjs.map +1 -1
  391. package/pg-core/columns/boolean.d.cts +1 -0
  392. package/pg-core/columns/boolean.d.ts +1 -0
  393. package/pg-core/columns/boolean.js +1 -1
  394. package/pg-core/columns/boolean.js.map +1 -1
  395. package/pg-core/columns/char.cjs +3 -1
  396. package/pg-core/columns/char.cjs.map +1 -1
  397. package/pg-core/columns/char.d.cts +5 -3
  398. package/pg-core/columns/char.d.ts +5 -3
  399. package/pg-core/columns/char.js +3 -1
  400. package/pg-core/columns/char.js.map +1 -1
  401. package/pg-core/columns/cidr.cjs +1 -1
  402. package/pg-core/columns/cidr.cjs.map +1 -1
  403. package/pg-core/columns/cidr.d.cts +1 -0
  404. package/pg-core/columns/cidr.d.ts +1 -0
  405. package/pg-core/columns/cidr.js +1 -1
  406. package/pg-core/columns/cidr.js.map +1 -1
  407. package/pg-core/columns/common.cjs.map +1 -1
  408. package/pg-core/columns/common.d.cts +1 -1
  409. package/pg-core/columns/common.d.ts +1 -1
  410. package/pg-core/columns/common.js.map +1 -1
  411. package/pg-core/columns/custom.cjs +4 -2
  412. package/pg-core/columns/custom.cjs.map +1 -1
  413. package/pg-core/columns/custom.d.cts +10 -3
  414. package/pg-core/columns/custom.d.ts +10 -3
  415. package/pg-core/columns/custom.js +4 -2
  416. package/pg-core/columns/custom.js.map +1 -1
  417. package/pg-core/columns/date.cjs +3 -1
  418. package/pg-core/columns/date.cjs.map +1 -1
  419. package/pg-core/columns/date.d.cts +7 -6
  420. package/pg-core/columns/date.d.ts +7 -6
  421. package/pg-core/columns/date.js +3 -1
  422. package/pg-core/columns/date.js.map +1 -1
  423. package/pg-core/columns/double-precision.cjs +1 -1
  424. package/pg-core/columns/double-precision.cjs.map +1 -1
  425. package/pg-core/columns/double-precision.d.cts +1 -0
  426. package/pg-core/columns/double-precision.d.ts +1 -0
  427. package/pg-core/columns/double-precision.js +1 -1
  428. package/pg-core/columns/double-precision.js.map +1 -1
  429. package/pg-core/columns/enum.cjs +1 -1
  430. package/pg-core/columns/enum.cjs.map +1 -1
  431. package/pg-core/columns/enum.d.cts +3 -1
  432. package/pg-core/columns/enum.d.ts +3 -1
  433. package/pg-core/columns/enum.js +1 -1
  434. package/pg-core/columns/enum.js.map +1 -1
  435. package/pg-core/columns/index.cjs +2 -0
  436. package/pg-core/columns/index.cjs.map +1 -1
  437. package/pg-core/columns/index.d.cts +1 -0
  438. package/pg-core/columns/index.d.ts +1 -0
  439. package/pg-core/columns/index.js +1 -0
  440. package/pg-core/columns/index.js.map +1 -1
  441. package/pg-core/columns/inet.cjs +1 -1
  442. package/pg-core/columns/inet.cjs.map +1 -1
  443. package/pg-core/columns/inet.d.cts +1 -0
  444. package/pg-core/columns/inet.d.ts +1 -0
  445. package/pg-core/columns/inet.js +1 -1
  446. package/pg-core/columns/inet.js.map +1 -1
  447. package/pg-core/columns/integer.cjs +1 -1
  448. package/pg-core/columns/integer.cjs.map +1 -1
  449. package/pg-core/columns/integer.d.cts +1 -0
  450. package/pg-core/columns/integer.d.ts +1 -0
  451. package/pg-core/columns/integer.js +1 -1
  452. package/pg-core/columns/integer.js.map +1 -1
  453. package/pg-core/columns/interval.cjs +3 -1
  454. package/pg-core/columns/interval.cjs.map +1 -1
  455. package/pg-core/columns/interval.d.cts +2 -0
  456. package/pg-core/columns/interval.d.ts +2 -0
  457. package/pg-core/columns/interval.js +3 -1
  458. package/pg-core/columns/interval.js.map +1 -1
  459. package/pg-core/columns/json.cjs +1 -1
  460. package/pg-core/columns/json.cjs.map +1 -1
  461. package/pg-core/columns/json.d.cts +1 -0
  462. package/pg-core/columns/json.d.ts +1 -0
  463. package/pg-core/columns/json.js +1 -1
  464. package/pg-core/columns/json.js.map +1 -1
  465. package/pg-core/columns/jsonb.cjs +1 -1
  466. package/pg-core/columns/jsonb.cjs.map +1 -1
  467. package/pg-core/columns/jsonb.d.cts +1 -0
  468. package/pg-core/columns/jsonb.d.ts +1 -0
  469. package/pg-core/columns/jsonb.js +1 -1
  470. package/pg-core/columns/jsonb.js.map +1 -1
  471. package/pg-core/columns/line.cjs +3 -1
  472. package/pg-core/columns/line.cjs.map +1 -1
  473. package/pg-core/columns/line.d.cts +3 -1
  474. package/pg-core/columns/line.d.ts +3 -1
  475. package/pg-core/columns/line.js +3 -1
  476. package/pg-core/columns/line.js.map +1 -1
  477. package/pg-core/columns/macaddr.cjs +1 -1
  478. package/pg-core/columns/macaddr.cjs.map +1 -1
  479. package/pg-core/columns/macaddr.d.cts +1 -0
  480. package/pg-core/columns/macaddr.d.ts +1 -0
  481. package/pg-core/columns/macaddr.js +1 -1
  482. package/pg-core/columns/macaddr.js.map +1 -1
  483. package/pg-core/columns/macaddr8.cjs +1 -1
  484. package/pg-core/columns/macaddr8.cjs.map +1 -1
  485. package/pg-core/columns/macaddr8.d.cts +1 -0
  486. package/pg-core/columns/macaddr8.d.ts +1 -0
  487. package/pg-core/columns/macaddr8.js +1 -1
  488. package/pg-core/columns/macaddr8.js.map +1 -1
  489. package/pg-core/columns/numeric.cjs +3 -1
  490. package/pg-core/columns/numeric.cjs.map +1 -1
  491. package/pg-core/columns/numeric.d.cts +6 -3
  492. package/pg-core/columns/numeric.d.ts +6 -3
  493. package/pg-core/columns/numeric.js +3 -1
  494. package/pg-core/columns/numeric.js.map +1 -1
  495. package/pg-core/columns/point.cjs +3 -1
  496. package/pg-core/columns/point.cjs.map +1 -1
  497. package/pg-core/columns/point.d.cts +5 -3
  498. package/pg-core/columns/point.d.ts +5 -3
  499. package/pg-core/columns/point.js +3 -1
  500. package/pg-core/columns/point.js.map +1 -1
  501. package/pg-core/columns/postgis_extension/geometry.cjs +6 -4
  502. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  503. package/pg-core/columns/postgis_extension/geometry.d.cts +4 -3
  504. package/pg-core/columns/postgis_extension/geometry.d.ts +4 -3
  505. package/pg-core/columns/postgis_extension/geometry.js +3 -1
  506. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  507. package/pg-core/columns/real.cjs +1 -1
  508. package/pg-core/columns/real.cjs.map +1 -1
  509. package/pg-core/columns/real.d.cts +2 -1
  510. package/pg-core/columns/real.d.ts +2 -1
  511. package/pg-core/columns/real.js +1 -1
  512. package/pg-core/columns/real.js.map +1 -1
  513. package/pg-core/columns/serial.cjs +1 -1
  514. package/pg-core/columns/serial.cjs.map +1 -1
  515. package/pg-core/columns/serial.d.cts +2 -1
  516. package/pg-core/columns/serial.d.ts +2 -1
  517. package/pg-core/columns/serial.js +1 -1
  518. package/pg-core/columns/serial.js.map +1 -1
  519. package/pg-core/columns/smallint.cjs +1 -1
  520. package/pg-core/columns/smallint.cjs.map +1 -1
  521. package/pg-core/columns/smallint.d.cts +1 -0
  522. package/pg-core/columns/smallint.d.ts +1 -0
  523. package/pg-core/columns/smallint.js +1 -1
  524. package/pg-core/columns/smallint.js.map +1 -1
  525. package/pg-core/columns/smallserial.cjs +1 -1
  526. package/pg-core/columns/smallserial.cjs.map +1 -1
  527. package/pg-core/columns/smallserial.d.cts +2 -1
  528. package/pg-core/columns/smallserial.d.ts +2 -1
  529. package/pg-core/columns/smallserial.js +1 -1
  530. package/pg-core/columns/smallserial.js.map +1 -1
  531. package/pg-core/columns/text.cjs +3 -1
  532. package/pg-core/columns/text.cjs.map +1 -1
  533. package/pg-core/columns/text.d.cts +4 -2
  534. package/pg-core/columns/text.d.ts +4 -2
  535. package/pg-core/columns/text.js +3 -1
  536. package/pg-core/columns/text.js.map +1 -1
  537. package/pg-core/columns/time.cjs +3 -1
  538. package/pg-core/columns/time.cjs.map +1 -1
  539. package/pg-core/columns/time.d.cts +2 -0
  540. package/pg-core/columns/time.d.ts +2 -0
  541. package/pg-core/columns/time.js +3 -1
  542. package/pg-core/columns/time.js.map +1 -1
  543. package/pg-core/columns/timestamp.cjs +5 -3
  544. package/pg-core/columns/timestamp.cjs.map +1 -1
  545. package/pg-core/columns/timestamp.d.cts +5 -3
  546. package/pg-core/columns/timestamp.d.ts +5 -3
  547. package/pg-core/columns/timestamp.js +5 -3
  548. package/pg-core/columns/timestamp.js.map +1 -1
  549. package/pg-core/columns/uuid.cjs +1 -1
  550. package/pg-core/columns/uuid.cjs.map +1 -1
  551. package/pg-core/columns/uuid.d.cts +1 -0
  552. package/pg-core/columns/uuid.d.ts +1 -0
  553. package/pg-core/columns/uuid.js +1 -1
  554. package/pg-core/columns/uuid.js.map +1 -1
  555. package/pg-core/columns/varchar.cjs +3 -1
  556. package/pg-core/columns/varchar.cjs.map +1 -1
  557. package/pg-core/columns/varchar.d.cts +5 -3
  558. package/pg-core/columns/varchar.d.ts +5 -3
  559. package/pg-core/columns/varchar.js +3 -1
  560. package/pg-core/columns/varchar.js.map +1 -1
  561. package/pg-core/columns/vector_extension/bit.cjs +3 -1
  562. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  563. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  564. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  565. package/pg-core/columns/vector_extension/bit.js +3 -1
  566. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  567. package/pg-core/columns/vector_extension/halfvec.cjs +3 -1
  568. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  569. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  570. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  571. package/pg-core/columns/vector_extension/halfvec.js +3 -1
  572. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  573. package/pg-core/columns/vector_extension/sparsevec.cjs +3 -1
  574. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  575. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  576. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  577. package/pg-core/columns/vector_extension/sparsevec.js +3 -1
  578. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  579. package/pg-core/columns/vector_extension/vector.cjs +3 -1
  580. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  581. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  582. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  583. package/pg-core/columns/vector_extension/vector.js +3 -1
  584. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  585. package/pg-core/db.cjs +10 -4
  586. package/pg-core/db.cjs.map +1 -1
  587. package/pg-core/db.d.cts +6 -3
  588. package/pg-core/db.d.ts +6 -3
  589. package/pg-core/db.js +10 -4
  590. package/pg-core/db.js.map +1 -1
  591. package/pg-core/dialect.cjs +13 -4
  592. package/pg-core/dialect.cjs.map +1 -1
  593. package/pg-core/dialect.d.cts +5 -1
  594. package/pg-core/dialect.d.ts +5 -1
  595. package/pg-core/dialect.js +13 -4
  596. package/pg-core/dialect.js.map +1 -1
  597. package/pg-core/foreign-keys.cjs +3 -3
  598. package/pg-core/foreign-keys.cjs.map +1 -1
  599. package/pg-core/foreign-keys.d.cts +1 -1
  600. package/pg-core/foreign-keys.d.ts +1 -1
  601. package/pg-core/foreign-keys.js +3 -3
  602. package/pg-core/foreign-keys.js.map +1 -1
  603. package/pg-core/query-builders/count.cjs +73 -0
  604. package/pg-core/query-builders/count.cjs.map +1 -0
  605. package/pg-core/query-builders/count.d.cts +25 -0
  606. package/pg-core/query-builders/count.d.ts +25 -0
  607. package/pg-core/query-builders/count.js +49 -0
  608. package/pg-core/query-builders/count.js.map +1 -0
  609. package/pg-core/query-builders/insert.cjs +2 -2
  610. package/pg-core/query-builders/insert.cjs.map +1 -1
  611. package/pg-core/query-builders/insert.js +2 -2
  612. package/pg-core/query-builders/insert.js.map +1 -1
  613. package/pg-core/query-builders/query-builder.cjs +6 -1
  614. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  615. package/pg-core/query-builders/query-builder.d.cts +4 -0
  616. package/pg-core/query-builders/query-builder.d.ts +4 -0
  617. package/pg-core/query-builders/query-builder.js +7 -2
  618. package/pg-core/query-builders/query-builder.js.map +1 -1
  619. package/pg-core/session.cjs +6 -0
  620. package/pg-core/session.cjs.map +1 -1
  621. package/pg-core/session.d.cts +1 -0
  622. package/pg-core/session.d.ts +1 -0
  623. package/pg-core/session.js +6 -0
  624. package/pg-core/session.js.map +1 -1
  625. package/pg-core/table.cjs +6 -2
  626. package/pg-core/table.cjs.map +1 -1
  627. package/pg-core/table.d.cts +7 -0
  628. package/pg-core/table.d.ts +7 -0
  629. package/pg-core/table.js +6 -2
  630. package/pg-core/table.js.map +1 -1
  631. package/pg-core/unique-constraint.cjs +2 -2
  632. package/pg-core/unique-constraint.cjs.map +1 -1
  633. package/pg-core/unique-constraint.d.cts +1 -1
  634. package/pg-core/unique-constraint.d.ts +1 -1
  635. package/pg-core/unique-constraint.js +2 -2
  636. package/pg-core/unique-constraint.js.map +1 -1
  637. package/pg-proxy/driver.cjs +8 -2
  638. package/pg-proxy/driver.cjs.map +1 -1
  639. package/pg-proxy/driver.d.cts +4 -1
  640. package/pg-proxy/driver.d.ts +4 -1
  641. package/pg-proxy/driver.js +7 -2
  642. package/pg-proxy/driver.js.map +1 -1
  643. package/pg-proxy/migrator.cjs.map +1 -1
  644. package/pg-proxy/migrator.d.cts +1 -1
  645. package/pg-proxy/migrator.d.ts +1 -1
  646. package/pg-proxy/migrator.js.map +1 -1
  647. package/pg-proxy/session.cjs.map +1 -1
  648. package/pg-proxy/session.js.map +1 -1
  649. package/pglite/driver.cjs +9 -2
  650. package/pglite/driver.cjs.map +1 -1
  651. package/pglite/driver.d.cts +6 -2
  652. package/pglite/driver.d.ts +6 -2
  653. package/pglite/driver.js +8 -2
  654. package/pglite/driver.js.map +1 -1
  655. package/pglite/migrator.cjs.map +1 -1
  656. package/pglite/migrator.d.cts +1 -1
  657. package/pglite/migrator.d.ts +1 -1
  658. package/pglite/migrator.js.map +1 -1
  659. package/pglite/session.cjs +6 -0
  660. package/pglite/session.cjs.map +1 -1
  661. package/pglite/session.d.cts +2 -1
  662. package/pglite/session.d.ts +2 -1
  663. package/pglite/session.js +6 -0
  664. package/pglite/session.js.map +1 -1
  665. package/planetscale-serverless/driver.cjs +10 -2
  666. package/planetscale-serverless/driver.cjs.map +1 -1
  667. package/planetscale-serverless/driver.d.cts +7 -2
  668. package/planetscale-serverless/driver.d.ts +7 -2
  669. package/planetscale-serverless/driver.js +9 -2
  670. package/planetscale-serverless/driver.js.map +1 -1
  671. package/planetscale-serverless/migrator.cjs.map +1 -1
  672. package/planetscale-serverless/migrator.js.map +1 -1
  673. package/planetscale-serverless/session.cjs +6 -0
  674. package/planetscale-serverless/session.cjs.map +1 -1
  675. package/planetscale-serverless/session.d.cts +1 -0
  676. package/planetscale-serverless/session.d.ts +1 -0
  677. package/planetscale-serverless/session.js +6 -0
  678. package/planetscale-serverless/session.js.map +1 -1
  679. package/postgres-js/driver.cjs +10 -2
  680. package/postgres-js/driver.cjs.map +1 -1
  681. package/postgres-js/driver.d.cts +7 -2
  682. package/postgres-js/driver.d.ts +7 -2
  683. package/postgres-js/driver.js +9 -2
  684. package/postgres-js/driver.js.map +1 -1
  685. package/postgres-js/migrator.cjs.map +1 -1
  686. package/postgres-js/migrator.d.cts +1 -1
  687. package/postgres-js/migrator.d.ts +1 -1
  688. package/postgres-js/migrator.js.map +1 -1
  689. package/sql/functions/vector.cjs.map +1 -1
  690. package/sql/functions/vector.d.cts +1 -1
  691. package/sql/functions/vector.d.ts +1 -1
  692. package/sql/functions/vector.js.map +1 -1
  693. package/sql/sql.cjs +4 -2
  694. package/sql/sql.cjs.map +1 -1
  695. package/sql/sql.d.cts +2 -0
  696. package/sql/sql.d.ts +2 -0
  697. package/sql/sql.js +4 -2
  698. package/sql/sql.js.map +1 -1
  699. package/sql-js/driver.cjs +1 -1
  700. package/sql-js/driver.cjs.map +1 -1
  701. package/sql-js/driver.js +1 -1
  702. package/sql-js/driver.js.map +1 -1
  703. package/sql-js/migrator.cjs.map +1 -1
  704. package/sql-js/migrator.d.cts +1 -1
  705. package/sql-js/migrator.d.ts +1 -1
  706. package/sql-js/migrator.js.map +1 -1
  707. package/sqlite-core/columns/all.cjs +44 -0
  708. package/sqlite-core/columns/all.cjs.map +1 -0
  709. package/sqlite-core/columns/all.d.cts +15 -0
  710. package/sqlite-core/columns/all.d.ts +15 -0
  711. package/sqlite-core/columns/all.js +20 -0
  712. package/sqlite-core/columns/all.js.map +1 -0
  713. package/sqlite-core/columns/blob.cjs +3 -1
  714. package/sqlite-core/columns/blob.cjs.map +1 -1
  715. package/sqlite-core/columns/blob.d.cts +3 -1
  716. package/sqlite-core/columns/blob.d.ts +3 -1
  717. package/sqlite-core/columns/blob.js +3 -1
  718. package/sqlite-core/columns/blob.js.map +1 -1
  719. package/sqlite-core/columns/custom.cjs +5 -3
  720. package/sqlite-core/columns/custom.cjs.map +1 -1
  721. package/sqlite-core/columns/custom.d.cts +10 -3
  722. package/sqlite-core/columns/custom.d.ts +10 -3
  723. package/sqlite-core/columns/custom.js +5 -3
  724. package/sqlite-core/columns/custom.js.map +1 -1
  725. package/sqlite-core/columns/integer.cjs +3 -1
  726. package/sqlite-core/columns/integer.cjs.map +1 -1
  727. package/sqlite-core/columns/integer.d.cts +3 -1
  728. package/sqlite-core/columns/integer.d.ts +3 -1
  729. package/sqlite-core/columns/integer.js +3 -1
  730. package/sqlite-core/columns/integer.js.map +1 -1
  731. package/sqlite-core/columns/numeric.cjs +1 -1
  732. package/sqlite-core/columns/numeric.cjs.map +1 -1
  733. package/sqlite-core/columns/numeric.d.cts +1 -0
  734. package/sqlite-core/columns/numeric.d.ts +1 -0
  735. package/sqlite-core/columns/numeric.js +1 -1
  736. package/sqlite-core/columns/numeric.js.map +1 -1
  737. package/sqlite-core/columns/real.cjs +1 -1
  738. package/sqlite-core/columns/real.cjs.map +1 -1
  739. package/sqlite-core/columns/real.d.cts +1 -0
  740. package/sqlite-core/columns/real.d.ts +1 -0
  741. package/sqlite-core/columns/real.js +1 -1
  742. package/sqlite-core/columns/real.js.map +1 -1
  743. package/sqlite-core/columns/text.cjs +7 -2
  744. package/sqlite-core/columns/text.cjs.map +1 -1
  745. package/sqlite-core/columns/text.d.cts +4 -2
  746. package/sqlite-core/columns/text.d.ts +4 -2
  747. package/sqlite-core/columns/text.js +7 -2
  748. package/sqlite-core/columns/text.js.map +1 -1
  749. package/sqlite-core/db.cjs +23 -17
  750. package/sqlite-core/db.cjs.map +1 -1
  751. package/sqlite-core/db.d.cts +8 -5
  752. package/sqlite-core/db.d.ts +8 -5
  753. package/sqlite-core/db.js +23 -17
  754. package/sqlite-core/db.js.map +1 -1
  755. package/sqlite-core/dialect.cjs +14 -8
  756. package/sqlite-core/dialect.cjs.map +1 -1
  757. package/sqlite-core/dialect.d.cts +5 -1
  758. package/sqlite-core/dialect.d.ts +5 -1
  759. package/sqlite-core/dialect.js +14 -8
  760. package/sqlite-core/dialect.js.map +1 -1
  761. package/sqlite-core/foreign-keys.cjs +3 -3
  762. package/sqlite-core/foreign-keys.cjs.map +1 -1
  763. package/sqlite-core/foreign-keys.d.cts +1 -1
  764. package/sqlite-core/foreign-keys.d.ts +1 -1
  765. package/sqlite-core/foreign-keys.js +3 -3
  766. package/sqlite-core/foreign-keys.js.map +1 -1
  767. package/sqlite-core/query-builders/count.cjs +72 -0
  768. package/sqlite-core/query-builders/count.cjs.map +1 -0
  769. package/sqlite-core/query-builders/count.d.cts +26 -0
  770. package/sqlite-core/query-builders/count.d.ts +26 -0
  771. package/sqlite-core/query-builders/count.js +48 -0
  772. package/sqlite-core/query-builders/count.js.map +1 -0
  773. package/sqlite-core/query-builders/query-builder.cjs +6 -1
  774. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  775. package/sqlite-core/query-builders/query-builder.d.cts +4 -0
  776. package/sqlite-core/query-builders/query-builder.d.ts +4 -0
  777. package/sqlite-core/query-builders/query-builder.js +8 -3
  778. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  779. package/sqlite-core/query-builders/raw.cjs.map +1 -1
  780. package/sqlite-core/query-builders/raw.d.cts +2 -2
  781. package/sqlite-core/query-builders/raw.d.ts +2 -2
  782. package/sqlite-core/query-builders/raw.js.map +1 -1
  783. package/sqlite-core/session.cjs +4 -0
  784. package/sqlite-core/session.cjs.map +1 -1
  785. package/sqlite-core/session.d.cts +1 -0
  786. package/sqlite-core/session.d.ts +1 -0
  787. package/sqlite-core/session.js +4 -0
  788. package/sqlite-core/session.js.map +1 -1
  789. package/sqlite-core/table.cjs +4 -1
  790. package/sqlite-core/table.cjs.map +1 -1
  791. package/sqlite-core/table.d.cts +7 -0
  792. package/sqlite-core/table.d.ts +7 -0
  793. package/sqlite-core/table.js +4 -1
  794. package/sqlite-core/table.js.map +1 -1
  795. package/sqlite-core/unique-constraint.cjs +2 -2
  796. package/sqlite-core/unique-constraint.cjs.map +1 -1
  797. package/sqlite-core/unique-constraint.d.cts +1 -1
  798. package/sqlite-core/unique-constraint.d.ts +1 -1
  799. package/sqlite-core/unique-constraint.js +2 -2
  800. package/sqlite-core/unique-constraint.js.map +1 -1
  801. package/sqlite-proxy/driver.cjs +1 -1
  802. package/sqlite-proxy/driver.cjs.map +1 -1
  803. package/sqlite-proxy/driver.js +1 -1
  804. package/sqlite-proxy/driver.js.map +1 -1
  805. package/sqlite-proxy/migrator.cjs.map +1 -1
  806. package/sqlite-proxy/migrator.d.cts +1 -1
  807. package/sqlite-proxy/migrator.d.ts +1 -1
  808. package/sqlite-proxy/migrator.js.map +1 -1
  809. package/table.cjs +6 -8
  810. package/table.cjs.map +1 -1
  811. package/table.js +1 -2
  812. package/table.js.map +1 -1
  813. package/table.utils.cjs +29 -0
  814. package/table.utils.cjs.map +1 -0
  815. package/table.utils.d.cts +1 -0
  816. package/table.utils.d.ts +1 -0
  817. package/table.utils.js +5 -0
  818. package/table.utils.js.map +1 -0
  819. package/tidb-serverless/driver.cjs +10 -2
  820. package/tidb-serverless/driver.cjs.map +1 -1
  821. package/tidb-serverless/driver.d.cts +7 -2
  822. package/tidb-serverless/driver.d.ts +7 -2
  823. package/tidb-serverless/driver.js +9 -2
  824. package/tidb-serverless/driver.js.map +1 -1
  825. package/tidb-serverless/session.cjs +6 -0
  826. package/tidb-serverless/session.cjs.map +1 -1
  827. package/tidb-serverless/session.d.cts +1 -0
  828. package/tidb-serverless/session.d.ts +1 -0
  829. package/tidb-serverless/session.js +6 -0
  830. package/tidb-serverless/session.js.map +1 -1
  831. package/utils.cjs +8 -0
  832. package/utils.cjs.map +1 -1
  833. package/utils.d.cts +3 -0
  834. package/utils.d.ts +3 -0
  835. package/utils.js +7 -0
  836. package/utils.js.map +1 -1
  837. package/vercel-postgres/driver.cjs +9 -2
  838. package/vercel-postgres/driver.cjs.map +1 -1
  839. package/vercel-postgres/driver.d.cts +6 -2
  840. package/vercel-postgres/driver.d.ts +6 -2
  841. package/vercel-postgres/driver.js +8 -2
  842. package/vercel-postgres/driver.js.map +1 -1
  843. package/vercel-postgres/migrator.cjs.map +1 -1
  844. package/vercel-postgres/migrator.d.cts +1 -1
  845. package/vercel-postgres/migrator.d.ts +1 -1
  846. package/vercel-postgres/migrator.js.map +1 -1
  847. package/version.cjs +2 -2
  848. package/version.cjs.map +1 -1
  849. package/version.d.cts +2 -2
  850. package/version.d.ts +2 -2
  851. package/version.js +2 -2
  852. package/version.js.map +1 -1
  853. package/xata-http/driver.cjs +4 -2
  854. package/xata-http/driver.cjs.map +1 -1
  855. package/xata-http/driver.d.cts +3 -1
  856. package/xata-http/driver.d.ts +3 -1
  857. package/xata-http/driver.js +4 -2
  858. package/xata-http/driver.js.map +1 -1
  859. package/xata-http/migrator.cjs +1 -1
  860. package/xata-http/migrator.cjs.map +1 -1
  861. package/xata-http/migrator.d.cts +1 -1
  862. package/xata-http/migrator.d.ts +1 -1
  863. package/xata-http/migrator.js +1 -1
  864. package/xata-http/migrator.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: SqliteRemoteDatabase<TSchema>,\n\tcallback: ProxyMigrator,\n\tconfig: string | MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,iBAAoB;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: SqliteRemoteDatabase<TSchema>,\n\tcallback: ProxyMigrator,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,iBAAoB;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
@@ -1,4 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.cjs";
2
2
  import type { SqliteRemoteDatabase } from "./driver.cjs";
3
3
  export type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;
4
- export declare function migrate<TSchema extends Record<string, unknown>>(db: SqliteRemoteDatabase<TSchema>, callback: ProxyMigrator, config: string | MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>>(db: SqliteRemoteDatabase<TSchema>, callback: ProxyMigrator, config: MigrationConfig): Promise<void>;
@@ -1,4 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.js";
2
2
  import type { SqliteRemoteDatabase } from "./driver.js";
3
3
  export type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;
4
- export declare function migrate<TSchema extends Record<string, unknown>>(db: SqliteRemoteDatabase<TSchema>, callback: ProxyMigrator, config: string | MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>>(db: SqliteRemoteDatabase<TSchema>, callback: ProxyMigrator, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: SqliteRemoteDatabase<TSchema>,\n\tcallback: ProxyMigrator,\n\tconfig: string | MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,WAAW;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-proxy/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { SqliteRemoteDatabase } from './driver.ts';\n\nexport type ProxyMigrator = (migrationQueries: string[]) => Promise<void>;\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: SqliteRemoteDatabase<TSchema>,\n\tcallback: ProxyMigrator,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\n\tconst migrationsTable = typeof config === 'string'\n\t\t? '__drizzle_migrations'\n\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\n\tawait db.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst queriesToRun: string[] = [];\n\tfor (const migration of migrations) {\n\t\tif (\n\t\t\t!lastDbMigration\n\t\t\t|| Number(lastDbMigration[2])! < migration.folderMillis\n\t\t) {\n\t\t\tqueriesToRun.push(\n\t\t\t\t...migration.sql,\n\t\t\t\t`INSERT INTO \\`${migrationsTable}\\` (\"hash\", \"created_at\") VALUES('${migration.hash}', '${migration.folderMillis}')`,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait callback(queriesToRun);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,WAAW;AAKpB,eAAsB,QACrB,IACA,UACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAE5C,QAAM,kBAAkB,OAAO,WAAW,WACvC,yBACA,OAAO,mBAAmB;AAE7B,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAO7D,QAAM,GAAG,IAAI,oBAAoB;AAEjC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,eAAyB,CAAC;AAChC,aAAW,aAAa,YAAY;AACnC,QACC,CAAC,mBACE,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAC1C;AACD,mBAAa;AAAA,QACZ,GAAG,UAAU;AAAA,QACb,iBAAiB,eAAe,qCAAqC,UAAU,IAAI,OAAO,UAAU,YAAY;AAAA,MACjH;AAAA,IACD;AAAA,EACD;AAEA,QAAM,SAAS,YAAY;AAC5B;","names":[]}
package/table.cjs CHANGED
@@ -26,14 +26,13 @@ __export(table_exports, {
26
26
  OriginalName: () => OriginalName,
27
27
  Schema: () => Schema,
28
28
  Table: () => Table,
29
- TableName: () => TableName,
30
29
  getTableName: () => getTableName,
31
30
  getTableUniqueName: () => getTableUniqueName,
32
31
  isTable: () => isTable
33
32
  });
34
33
  module.exports = __toCommonJS(table_exports);
35
34
  var import_entity = require("./entity.cjs");
36
- const TableName = Symbol.for("drizzle:Name");
35
+ var import_table_utils = require("./table.utils.cjs");
37
36
  const Schema = Symbol.for("drizzle:Schema");
38
37
  const Columns = Symbol.for("drizzle:Columns");
39
38
  const ExtraConfigColumns = Symbol.for("drizzle:ExtraConfigColumns");
@@ -46,7 +45,7 @@ class Table {
46
45
  static [import_entity.entityKind] = "Table";
47
46
  /** @internal */
48
47
  static Symbol = {
49
- Name: TableName,
48
+ Name: import_table_utils.TableName,
50
49
  Schema,
51
50
  OriginalName,
52
51
  Columns,
@@ -59,7 +58,7 @@ class Table {
59
58
  * @internal
60
59
  * Can be changed if the table is aliased.
61
60
  */
62
- [TableName];
61
+ [import_table_utils.TableName];
63
62
  /**
64
63
  * @internal
65
64
  * Used to store the original name of the table, before any aliasing.
@@ -83,7 +82,7 @@ class Table {
83
82
  /** @internal */
84
83
  [ExtraConfigBuilder] = void 0;
85
84
  constructor(name, schema, baseName) {
86
- this[TableName] = this[OriginalName] = name;
85
+ this[import_table_utils.TableName] = this[OriginalName] = name;
87
86
  this[Schema] = schema;
88
87
  this[BaseName] = baseName;
89
88
  }
@@ -92,10 +91,10 @@ function isTable(table) {
92
91
  return typeof table === "object" && table !== null && IsDrizzleTable in table;
93
92
  }
94
93
  function getTableName(table) {
95
- return table[TableName];
94
+ return table[import_table_utils.TableName];
96
95
  }
97
96
  function getTableUniqueName(table) {
98
- return `${table[Schema] ?? "public"}.${table[TableName]}`;
97
+ return `${table[Schema] ?? "public"}.${table[import_table_utils.TableName]}`;
99
98
  }
100
99
  // Annotate the CommonJS export names for ESM import in node:
101
100
  0 && (module.exports = {
@@ -107,7 +106,6 @@ function getTableUniqueName(table) {
107
106
  OriginalName,
108
107
  Schema,
109
108
  Table,
110
- TableName,
111
109
  getTableName,
112
110
  getTableUniqueName,
113
111
  isTable
package/table.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { ExtraConfigColumn } from './pg-core/index.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const TableName = Symbol.for('drizzle:Name');\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, ExtraConfigColumn>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown>) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}`;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAkBpB,MAAM,YAAY,OAAO,IAAI,cAAc;AAG3C,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAA0D;AAAA,EAE7E,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,SAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,SAAS;AACvB;AAEO,SAAS,mBAAoC,OAAmD;AACtG,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,SAAS,CAAC;AACxD;","names":[]}
1
+ {"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { ExtraConfigColumn } from './pg-core/index.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport { TableName } from './table.utils.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, ExtraConfigColumn>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown>) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}`;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAI3B,yBAA0B;AAenB,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,4BAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAA0D;AAAA,EAE7E,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,4BAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,4BAAS;AACvB;AAEO,SAAS,mBAAoC,OAAmD;AACtG,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,4BAAS,CAAC;AACxD;","names":[]}
package/table.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { entityKind } from "./entity.js";
2
- const TableName = Symbol.for("drizzle:Name");
2
+ import { TableName } from "./table.utils.js";
3
3
  const Schema = Symbol.for("drizzle:Schema");
4
4
  const Columns = Symbol.for("drizzle:Columns");
5
5
  const ExtraConfigColumns = Symbol.for("drizzle:ExtraConfigColumns");
@@ -72,7 +72,6 @@ export {
72
72
  OriginalName,
73
73
  Schema,
74
74
  Table,
75
- TableName,
76
75
  getTableName,
77
76
  getTableUniqueName,
78
77
  isTable
package/table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { ExtraConfigColumn } from './pg-core/index.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const TableName = Symbol.for('drizzle:Name');\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, ExtraConfigColumn>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown>) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}`;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":"AACA,SAAS,kBAAkB;AAkBpB,MAAM,YAAY,OAAO,IAAI,cAAc;AAG3C,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,UAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAA0D;AAAA,EAE7E,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,SAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,SAAS;AACvB;AAEO,SAAS,mBAAoC,OAAmD;AACtG,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,SAAS,CAAC;AACxD;","names":[]}
1
+ {"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { ExtraConfigColumn } from './pg-core/index.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport { TableName } from './table.utils.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, ExtraConfigColumn>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown>) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}`;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":"AACA,SAAS,kBAAkB;AAI3B,SAAS,iBAAiB;AAenB,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,UAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAA0D;AAAA,EAE7E,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,SAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,SAAS;AACvB;AAEO,SAAS,mBAAoC,OAAmD;AACtG,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,SAAS,CAAC;AACxD;","names":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var table_utils_exports = {};
20
+ __export(table_utils_exports, {
21
+ TableName: () => TableName
22
+ });
23
+ module.exports = __toCommonJS(table_utils_exports);
24
+ const TableName = Symbol.for("drizzle:Name");
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ TableName
28
+ });
29
+ //# sourceMappingURL=table.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/table.utils.ts"],"sourcesContent":["/** @internal */\nexport const TableName = Symbol.for('drizzle:Name');\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,MAAM,YAAY,OAAO,IAAI,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/table.utils.js ADDED
@@ -0,0 +1,5 @@
1
+ const TableName = Symbol.for("drizzle:Name");
2
+ export {
3
+ TableName
4
+ };
5
+ //# sourceMappingURL=table.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/table.utils.ts"],"sourcesContent":["/** @internal */\nexport const TableName = Symbol.for('drizzle:Name');\n"],"mappings":"AACO,MAAM,YAAY,OAAO,IAAI,cAAc;","names":[]}
@@ -18,16 +18,21 @@ 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
+ TiDBServerlessDatabase: () => TiDBServerlessDatabase,
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("../mysql-core/db.cjs");
26
28
  var import_dialect = require("../mysql-core/dialect.cjs");
27
29
  var import_relations = require("../relations.cjs");
28
30
  var import_session = require("./session.cjs");
31
+ class TiDBServerlessDatabase extends import_db.MySqlDatabase {
32
+ static [import_entity.entityKind] = "TiDBServerlessDatabase";
33
+ }
29
34
  function drizzle(client, config = {}) {
30
- const dialect = new import_dialect.MySqlDialect();
35
+ const dialect = new import_dialect.MySqlDialect({ casing: config.casing });
31
36
  let logger;
32
37
  if (config.logger === true) {
33
38
  logger = new import_logger.DefaultLogger();
@@ -47,10 +52,13 @@ function drizzle(client, config = {}) {
47
52
  };
48
53
  }
49
54
  const session = new import_session.TiDBServerlessSession(client, dialect, void 0, schema, { logger });
50
- return new import_db.MySqlDatabase(dialect, session, schema, "default");
55
+ const db = new TiDBServerlessDatabase(dialect, session, schema, "default");
56
+ db.$client = client;
57
+ return db;
51
58
  }
52
59
  // Annotate the CommonJS export names for ESM import in node:
53
60
  0 && (module.exports = {
61
+ TiDBServerlessDatabase,
54
62
  drizzle
55
63
  });
56
64
  //# sourceMappingURL=driver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@tidbcloud/serverless';\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 { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport type TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema> = {},\n): TiDBServerlessDatabase<TSchema> {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new TiDBServerlessSession(client, dialect, undefined, schema, { logger });\n\treturn new MySqlDatabase(dialect, session, schema, 'default') as TiDBServerlessDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAC7B,uBAKO;AAGP,qBAAsC;AAU/B,SAAS,QACf,QACA,SAAiC,CAAC,GACA;AAClC,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,qCAAsB,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACxF,SAAO,IAAI,wBAAc,SAAS,SAAS,QAAQ,SAAS;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@tidbcloud/serverless';\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 { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessDatabase';\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema> = {},\n): TiDBServerlessDatabase<TSchema> & {\n\t$client: Connection;\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 TiDBServerlessSession(client, dialect, undefined, schema, { logger });\n\tconst db = new TiDBServerlessDatabase(dialect, session, schema as any, 'default') as TiDBServerlessDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAC7B,uBAKO;AAGP,qBAAsC;AAM/B,MAAM,+BAEH,wBAAqF;AAAA,EAC9F,QAAiB,wBAAU,IAAY;AACxC;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,4BAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,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,qCAAsB,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACxF,QAAM,KAAK,IAAI,uBAAuB,SAAS,SAAS,QAAe,SAAS;AAChF,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import type { Connection } from '@tidbcloud/serverless';
2
+ import { entityKind } from "../entity.cjs";
2
3
  import type { Logger } from "../logger.cjs";
3
4
  import { MySqlDatabase } from "../mysql-core/db.cjs";
4
5
  import type { DrizzleConfig } from "../utils.cjs";
@@ -6,5 +7,9 @@ import type { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } fro
6
7
  export interface TiDBServerlessSDriverOptions {
7
8
  logger?: Logger;
8
9
  }
9
- export type TiDBServerlessDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema>;
10
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Connection, config?: DrizzleConfig<TSchema>): TiDBServerlessDatabase<TSchema>;
10
+ export declare class TiDBServerlessDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema> {
11
+ static readonly [entityKind]: string;
12
+ }
13
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Connection, config?: DrizzleConfig<TSchema>): TiDBServerlessDatabase<TSchema> & {
14
+ $client: Connection;
15
+ };
@@ -1,4 +1,5 @@
1
1
  import type { Connection } from '@tidbcloud/serverless';
2
+ import { entityKind } from "../entity.js";
2
3
  import type { Logger } from "../logger.js";
3
4
  import { MySqlDatabase } from "../mysql-core/db.js";
4
5
  import type { DrizzleConfig } from "../utils.js";
@@ -6,5 +7,9 @@ import type { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } fro
6
7
  export interface TiDBServerlessSDriverOptions {
7
8
  logger?: Logger;
8
9
  }
9
- export type TiDBServerlessDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema>;
10
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Connection, config?: DrizzleConfig<TSchema>): TiDBServerlessDatabase<TSchema>;
10
+ export declare class TiDBServerlessDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema> {
11
+ static readonly [entityKind]: string;
12
+ }
13
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Connection, config?: DrizzleConfig<TSchema>): TiDBServerlessDatabase<TSchema> & {
14
+ $client: Connection;
15
+ };
@@ -1,3 +1,4 @@
1
+ import { entityKind } from "../entity.js";
1
2
  import { DefaultLogger } from "../logger.js";
2
3
  import { MySqlDatabase } from "../mysql-core/db.js";
3
4
  import { MySqlDialect } from "../mysql-core/dialect.js";
@@ -6,8 +7,11 @@ import {
6
7
  extractTablesRelationalConfig
7
8
  } from "../relations.js";
8
9
  import { TiDBServerlessSession } from "./session.js";
10
+ class TiDBServerlessDatabase extends MySqlDatabase {
11
+ static [entityKind] = "TiDBServerlessDatabase";
12
+ }
9
13
  function drizzle(client, config = {}) {
10
- const dialect = new MySqlDialect();
14
+ const dialect = new MySqlDialect({ casing: config.casing });
11
15
  let logger;
12
16
  if (config.logger === true) {
13
17
  logger = new DefaultLogger();
@@ -27,9 +31,12 @@ function drizzle(client, config = {}) {
27
31
  };
28
32
  }
29
33
  const session = new TiDBServerlessSession(client, dialect, void 0, schema, { logger });
30
- return new MySqlDatabase(dialect, session, schema, "default");
34
+ const db = new TiDBServerlessDatabase(dialect, session, schema, "default");
35
+ db.$client = client;
36
+ return db;
31
37
  }
32
38
  export {
39
+ TiDBServerlessDatabase,
33
40
  drizzle
34
41
  };
35
42
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@tidbcloud/serverless';\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 { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport type TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema> = {},\n): TiDBServerlessDatabase<TSchema> {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new TiDBServerlessSession(client, dialect, undefined, schema, { logger });\n\treturn new MySqlDatabase(dialect, session, schema, 'default') as TiDBServerlessDatabase<TSchema>;\n}\n"],"mappings":"AAEA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,6BAA6B;AAU/B,SAAS,QACf,QACA,SAAiC,CAAC,GACA;AAClC,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,sBAAsB,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACxF,SAAO,IAAI,cAAc,SAAS,SAAS,QAAQ,SAAS;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import type { Connection } from '@tidbcloud/serverless';\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 { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessDatabase';\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema> = {},\n): TiDBServerlessDatabase<TSchema> & {\n\t$client: Connection;\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 TiDBServerlessSession(client, dialect, undefined, schema, { logger });\n\tconst db = new TiDBServerlessDatabase(dialect, session, schema as any, 'default') as TiDBServerlessDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,6BAA6B;AAM/B,MAAM,+BAEH,cAAqF;AAAA,EAC9F,QAAiB,UAAU,IAAY;AACxC;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,aAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,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,sBAAsB,QAAQ,SAAS,QAAW,QAAQ,EAAE,OAAO,CAAC;AACxF,QAAM,KAAK,IAAI,uBAAuB,SAAS,SAAS,QAAe,SAAS;AAChF,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -112,6 +112,12 @@ class TiDBServerlessSession extends import_session.MySqlSession {
112
112
  this.logger.logQuery(querySql.sql, querySql.params);
113
113
  return this.client.execute(querySql.sql, querySql.params);
114
114
  }
115
+ async count(sql2) {
116
+ const res = await this.execute(sql2);
117
+ return Number(
118
+ res["rows"][0]["count"]
119
+ );
120
+ }
115
121
  async transaction(transaction) {
116
122
  const nativeTx = await this.baseClient.begin();
117
123
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\nimport { Column } from '~/column.ts';\n\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\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | 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 { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, executeRawConfig) as FullResult;\n\t\t\tconst insertId = res.lastInsertId ?? 0;\n\t\t\tconst affectedRows = res.rowsAffected ?? 0;\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\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await client.execute(queryString, params, queryConfig) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\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 TiDBServerlessPreparedQuery(\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\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\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<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\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessTransaction';\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, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<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 TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\nimport { Column } from '~/column.ts';\n\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\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | 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 { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, executeRawConfig) as FullResult;\n\t\t\tconst insertId = res.lastInsertId ?? 0;\n\t\t\tconst affectedRows = res.rowsAffected ?? 0;\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\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await client.execute(queryString, params, queryConfig) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\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 TiDBServerlessPreparedQuery(\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\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\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<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 async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<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\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessTransaction';\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, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<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 TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":["sql"]}
@@ -34,6 +34,7 @@ export declare class TiDBServerlessSession<TFullSchema extends Record<string, un
34
34
  constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions);
35
35
  prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): MySqlPreparedQuery<T>;
36
36
  all<T = unknown>(query: SQL): Promise<T[]>;
37
+ count(sql: SQL): Promise<number>;
37
38
  transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
38
39
  }
39
40
  export declare class TiDBServerlessTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
@@ -34,6 +34,7 @@ export declare class TiDBServerlessSession<TFullSchema extends Record<string, un
34
34
  constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions);
35
35
  prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): MySqlPreparedQuery<T>;
36
36
  all<T = unknown>(query: SQL): Promise<T[]>;
37
+ count(sql: SQL): Promise<number>;
37
38
  transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
38
39
  }
39
40
  export declare class TiDBServerlessTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
@@ -91,6 +91,12 @@ class TiDBServerlessSession extends MySqlSession {
91
91
  this.logger.logQuery(querySql.sql, querySql.params);
92
92
  return this.client.execute(querySql.sql, querySql.params);
93
93
  }
94
+ async count(sql2) {
95
+ const res = await this.execute(sql2);
96
+ return Number(
97
+ res["rows"][0]["count"]
98
+ );
99
+ }
94
100
  async transaction(transaction) {
95
101
  const nativeTx = await this.baseClient.begin();
96
102
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\nimport { Column } from '~/column.ts';\n\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\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | 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 { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, executeRawConfig) as FullResult;\n\t\t\tconst insertId = res.lastInsertId ?? 0;\n\t\t\tconst affectedRows = res.rowsAffected ?? 0;\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\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await client.execute(queryString, params, queryConfig) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\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 TiDBServerlessPreparedQuery(\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\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\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<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\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessTransaction';\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, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<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 TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\nimport { Column } from '~/column.ts';\n\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\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | 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 { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await client.execute(queryString, params, executeRawConfig) as FullResult;\n\t\t\tconst insertId = res.lastInsertId ?? 0;\n\t\t\tconst affectedRows = res.rowsAffected ?? 0;\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\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await client.execute(queryString, params, queryConfig) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\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 TiDBServerlessPreparedQuery(\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\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\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<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 async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<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\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessTransaction';\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, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<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 TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":["sql"]}
package/utils.cjs CHANGED
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var utils_exports = {};
20
20
  __export(utils_exports, {
21
21
  applyMixins: () => applyMixins,
22
+ getColumnNameAndConfig: () => getColumnNameAndConfig,
22
23
  getTableColumns: () => getTableColumns,
23
24
  getTableLikeName: () => getTableLikeName,
24
25
  haveSameKeys: () => haveSameKeys,
@@ -139,9 +140,16 @@ function getTableColumns(table) {
139
140
  function getTableLikeName(table) {
140
141
  return (0, import_entity.is)(table, import_subquery.Subquery) ? table._.alias : (0, import_entity.is)(table, import_sql.View) ? table[import_view_common.ViewBaseConfig].name : (0, import_entity.is)(table, import_sql.SQL) ? void 0 : table[import_table.Table.Symbol.IsAlias] ? table[import_table.Table.Symbol.Name] : table[import_table.Table.Symbol.BaseName];
141
142
  }
143
+ function getColumnNameAndConfig(a, b) {
144
+ return {
145
+ name: typeof a === "string" && a.length > 0 ? a : "",
146
+ config: typeof a === "object" ? a : b
147
+ };
148
+ }
142
149
  // Annotate the CommonJS export names for ESM import in node:
143
150
  0 && (module.exports = {
144
151
  applyMixins,
152
+ getColumnNameAndConfig,
145
153
  getTableColumns,
146
154
  getTableLikeName,
147
155
  haveSameKeys,