drizzle-orm 0.34.0-ff1e9a5 → 0.34.1-1f0b52f

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 (925) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/driver.cjs +9 -8
  4. package/aws-data-api/pg/driver.cjs.map +1 -1
  5. package/aws-data-api/pg/driver.d.cts +1 -1
  6. package/aws-data-api/pg/driver.d.ts +1 -1
  7. package/aws-data-api/pg/driver.js +3 -2
  8. package/aws-data-api/pg/driver.js.map +1 -1
  9. package/aws-data-api/pg/session.cjs.map +1 -1
  10. package/aws-data-api/pg/session.d.cts +1 -1
  11. package/aws-data-api/pg/session.d.ts +1 -1
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs +1 -1
  14. package/better-sqlite3/driver.cjs.map +1 -1
  15. package/better-sqlite3/driver.js +1 -1
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/session.cjs.map +1 -1
  18. package/better-sqlite3/session.js.map +1 -1
  19. package/bun-sqlite/driver.cjs +1 -1
  20. package/bun-sqlite/driver.cjs.map +1 -1
  21. package/bun-sqlite/driver.d.cts +0 -1
  22. package/bun-sqlite/driver.d.ts +0 -1
  23. package/bun-sqlite/driver.js +1 -1
  24. package/bun-sqlite/driver.js.map +1 -1
  25. package/bun-sqlite/session.cjs.map +1 -1
  26. package/bun-sqlite/session.d.cts +0 -1
  27. package/bun-sqlite/session.d.ts +0 -1
  28. package/bun-sqlite/session.js.map +1 -1
  29. package/casing.cjs +85 -0
  30. package/casing.cjs.map +1 -0
  31. package/casing.d.cts +14 -0
  32. package/casing.d.ts +14 -0
  33. package/casing.js +59 -0
  34. package/casing.js.map +1 -0
  35. package/column-builder.cjs +7 -0
  36. package/column-builder.cjs.map +1 -1
  37. package/column-builder.d.cts +11 -6
  38. package/column-builder.d.ts +11 -6
  39. package/column-builder.js +7 -0
  40. package/column-builder.js.map +1 -1
  41. package/column.cjs +2 -0
  42. package/column.cjs.map +1 -1
  43. package/column.d.cts +1 -0
  44. package/column.d.ts +1 -0
  45. package/column.js +2 -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 +1 -1
  54. package/d1/driver.cjs.map +1 -1
  55. package/d1/driver.d.cts +0 -1
  56. package/d1/driver.d.ts +0 -1
  57. package/d1/driver.js +1 -1
  58. package/d1/driver.js.map +1 -1
  59. package/d1/session.cjs.map +1 -1
  60. package/d1/session.d.cts +0 -1
  61. package/d1/session.d.ts +0 -1
  62. package/d1/session.js.map +1 -1
  63. package/entity.cjs +1 -1
  64. package/entity.cjs.map +1 -1
  65. package/entity.js +1 -1
  66. package/entity.js.map +1 -1
  67. package/errors.cjs.map +1 -1
  68. package/errors.js.map +1 -1
  69. package/expo-sqlite/driver.cjs +1 -1
  70. package/expo-sqlite/driver.cjs.map +1 -1
  71. package/expo-sqlite/driver.js +1 -1
  72. package/expo-sqlite/driver.js.map +1 -1
  73. package/expo-sqlite/query.cjs +8 -6
  74. package/expo-sqlite/query.cjs.map +1 -1
  75. package/expo-sqlite/query.js +3 -1
  76. package/expo-sqlite/query.js.map +1 -1
  77. package/expo-sqlite/session.cjs.map +1 -1
  78. package/expo-sqlite/session.js.map +1 -1
  79. package/index.cjs +0 -4
  80. package/index.cjs.map +1 -1
  81. package/index.d.cts +0 -2
  82. package/index.d.ts +0 -2
  83. package/index.js +0 -2
  84. package/index.js.map +1 -1
  85. package/libsql/driver.cjs +1 -1
  86. package/libsql/driver.cjs.map +1 -1
  87. package/libsql/driver.js +1 -1
  88. package/libsql/driver.js.map +1 -1
  89. package/libsql/session.cjs.map +1 -1
  90. package/libsql/session.js.map +1 -1
  91. package/monodriver.cjs +14 -14
  92. package/monodriver.cjs.map +1 -1
  93. package/monodriver.d.cts +0 -2
  94. package/monodriver.d.ts +0 -2
  95. package/monodriver.js +14 -14
  96. package/monodriver.js.map +1 -1
  97. package/monomigrator.cjs +14 -14
  98. package/monomigrator.cjs.map +1 -1
  99. package/monomigrator.js +14 -14
  100. package/monomigrator.js.map +1 -1
  101. package/mysql-core/columns/all.cjs +80 -0
  102. package/mysql-core/columns/all.cjs.map +1 -0
  103. package/mysql-core/columns/all.d.cts +51 -0
  104. package/mysql-core/columns/all.d.ts +51 -0
  105. package/mysql-core/columns/all.js +56 -0
  106. package/mysql-core/columns/all.js.map +1 -0
  107. package/mysql-core/columns/bigint.cjs +3 -1
  108. package/mysql-core/columns/bigint.cjs.map +1 -1
  109. package/mysql-core/columns/bigint.d.cts +2 -2
  110. package/mysql-core/columns/bigint.d.ts +2 -2
  111. package/mysql-core/columns/bigint.js +3 -1
  112. package/mysql-core/columns/bigint.js.map +1 -1
  113. package/mysql-core/columns/binary.cjs +3 -1
  114. package/mysql-core/columns/binary.cjs.map +1 -1
  115. package/mysql-core/columns/binary.d.cts +2 -0
  116. package/mysql-core/columns/binary.d.ts +2 -0
  117. package/mysql-core/columns/binary.js +3 -1
  118. package/mysql-core/columns/binary.js.map +1 -1
  119. package/mysql-core/columns/boolean.cjs +1 -1
  120. package/mysql-core/columns/boolean.cjs.map +1 -1
  121. package/mysql-core/columns/boolean.d.cts +1 -0
  122. package/mysql-core/columns/boolean.d.ts +1 -0
  123. package/mysql-core/columns/boolean.js +1 -1
  124. package/mysql-core/columns/boolean.js.map +1 -1
  125. package/mysql-core/columns/char.cjs +3 -1
  126. package/mysql-core/columns/char.cjs.map +1 -1
  127. package/mysql-core/columns/char.d.cts +4 -2
  128. package/mysql-core/columns/char.d.ts +4 -2
  129. package/mysql-core/columns/char.js +3 -1
  130. package/mysql-core/columns/char.js.map +1 -1
  131. package/mysql-core/columns/common.cjs.map +1 -1
  132. package/mysql-core/columns/common.js.map +1 -1
  133. package/mysql-core/columns/custom.cjs +4 -2
  134. package/mysql-core/columns/custom.cjs.map +1 -1
  135. package/mysql-core/columns/custom.d.cts +10 -3
  136. package/mysql-core/columns/custom.d.ts +10 -3
  137. package/mysql-core/columns/custom.js +4 -2
  138. package/mysql-core/columns/custom.js.map +1 -1
  139. package/mysql-core/columns/date.cjs +4 -2
  140. package/mysql-core/columns/date.cjs.map +1 -1
  141. package/mysql-core/columns/date.common.cjs.map +1 -1
  142. package/mysql-core/columns/date.common.js.map +1 -1
  143. package/mysql-core/columns/date.d.cts +3 -1
  144. package/mysql-core/columns/date.d.ts +3 -1
  145. package/mysql-core/columns/date.js +4 -2
  146. package/mysql-core/columns/date.js.map +1 -1
  147. package/mysql-core/columns/datetime.cjs +4 -2
  148. package/mysql-core/columns/datetime.cjs.map +1 -1
  149. package/mysql-core/columns/datetime.d.cts +3 -1
  150. package/mysql-core/columns/datetime.d.ts +3 -1
  151. package/mysql-core/columns/datetime.js +4 -2
  152. package/mysql-core/columns/datetime.js.map +1 -1
  153. package/mysql-core/columns/decimal.cjs +3 -1
  154. package/mysql-core/columns/decimal.cjs.map +1 -1
  155. package/mysql-core/columns/decimal.d.cts +2 -0
  156. package/mysql-core/columns/decimal.d.ts +2 -0
  157. package/mysql-core/columns/decimal.js +3 -1
  158. package/mysql-core/columns/decimal.js.map +1 -1
  159. package/mysql-core/columns/double.cjs +3 -1
  160. package/mysql-core/columns/double.cjs.map +1 -1
  161. package/mysql-core/columns/double.d.cts +2 -0
  162. package/mysql-core/columns/double.d.ts +2 -0
  163. package/mysql-core/columns/double.js +3 -1
  164. package/mysql-core/columns/double.js.map +1 -1
  165. package/mysql-core/columns/enum.cjs +3 -1
  166. package/mysql-core/columns/enum.cjs.map +1 -1
  167. package/mysql-core/columns/enum.d.cts +2 -1
  168. package/mysql-core/columns/enum.d.ts +2 -1
  169. package/mysql-core/columns/enum.js +3 -1
  170. package/mysql-core/columns/enum.js.map +1 -1
  171. package/mysql-core/columns/float.cjs +1 -1
  172. package/mysql-core/columns/float.cjs.map +1 -1
  173. package/mysql-core/columns/float.d.cts +1 -0
  174. package/mysql-core/columns/float.d.ts +1 -0
  175. package/mysql-core/columns/float.js +1 -1
  176. package/mysql-core/columns/float.js.map +1 -1
  177. package/mysql-core/columns/int.cjs +3 -1
  178. package/mysql-core/columns/int.cjs.map +1 -1
  179. package/mysql-core/columns/int.d.cts +2 -0
  180. package/mysql-core/columns/int.d.ts +2 -0
  181. package/mysql-core/columns/int.js +3 -1
  182. package/mysql-core/columns/int.js.map +1 -1
  183. package/mysql-core/columns/json.cjs +1 -1
  184. package/mysql-core/columns/json.cjs.map +1 -1
  185. package/mysql-core/columns/json.d.cts +1 -0
  186. package/mysql-core/columns/json.d.ts +1 -0
  187. package/mysql-core/columns/json.js +1 -1
  188. package/mysql-core/columns/json.js.map +1 -1
  189. package/mysql-core/columns/mediumint.cjs +3 -1
  190. package/mysql-core/columns/mediumint.cjs.map +1 -1
  191. package/mysql-core/columns/mediumint.d.cts +2 -0
  192. package/mysql-core/columns/mediumint.d.ts +2 -0
  193. package/mysql-core/columns/mediumint.js +3 -1
  194. package/mysql-core/columns/mediumint.js.map +1 -1
  195. package/mysql-core/columns/real.cjs +3 -1
  196. package/mysql-core/columns/real.cjs.map +1 -1
  197. package/mysql-core/columns/real.d.cts +2 -0
  198. package/mysql-core/columns/real.d.ts +2 -0
  199. package/mysql-core/columns/real.js +3 -1
  200. package/mysql-core/columns/real.js.map +1 -1
  201. package/mysql-core/columns/serial.cjs +1 -1
  202. package/mysql-core/columns/serial.cjs.map +1 -1
  203. package/mysql-core/columns/serial.d.cts +1 -0
  204. package/mysql-core/columns/serial.d.ts +1 -0
  205. package/mysql-core/columns/serial.js +1 -1
  206. package/mysql-core/columns/serial.js.map +1 -1
  207. package/mysql-core/columns/smallint.cjs +3 -1
  208. package/mysql-core/columns/smallint.cjs.map +1 -1
  209. package/mysql-core/columns/smallint.d.cts +2 -0
  210. package/mysql-core/columns/smallint.d.ts +2 -0
  211. package/mysql-core/columns/smallint.js +3 -1
  212. package/mysql-core/columns/smallint.js.map +1 -1
  213. package/mysql-core/columns/text.cjs +9 -4
  214. package/mysql-core/columns/text.cjs.map +1 -1
  215. package/mysql-core/columns/text.d.cts +10 -2
  216. package/mysql-core/columns/text.d.ts +10 -2
  217. package/mysql-core/columns/text.js +9 -4
  218. package/mysql-core/columns/text.js.map +1 -1
  219. package/mysql-core/columns/time.cjs +3 -1
  220. package/mysql-core/columns/time.cjs.map +1 -1
  221. package/mysql-core/columns/time.d.cts +2 -0
  222. package/mysql-core/columns/time.d.ts +2 -0
  223. package/mysql-core/columns/time.js +3 -1
  224. package/mysql-core/columns/time.js.map +1 -1
  225. package/mysql-core/columns/timestamp.cjs +4 -2
  226. package/mysql-core/columns/timestamp.cjs.map +1 -1
  227. package/mysql-core/columns/timestamp.d.cts +3 -1
  228. package/mysql-core/columns/timestamp.d.ts +3 -1
  229. package/mysql-core/columns/timestamp.js +4 -2
  230. package/mysql-core/columns/timestamp.js.map +1 -1
  231. package/mysql-core/columns/tinyint.cjs +3 -1
  232. package/mysql-core/columns/tinyint.cjs.map +1 -1
  233. package/mysql-core/columns/tinyint.d.cts +2 -0
  234. package/mysql-core/columns/tinyint.d.ts +2 -0
  235. package/mysql-core/columns/tinyint.js +3 -1
  236. package/mysql-core/columns/tinyint.js.map +1 -1
  237. package/mysql-core/columns/varbinary.cjs +4 -2
  238. package/mysql-core/columns/varbinary.cjs.map +1 -1
  239. package/mysql-core/columns/varbinary.d.cts +2 -1
  240. package/mysql-core/columns/varbinary.d.ts +2 -1
  241. package/mysql-core/columns/varbinary.js +4 -2
  242. package/mysql-core/columns/varbinary.js.map +1 -1
  243. package/mysql-core/columns/varchar.cjs +3 -1
  244. package/mysql-core/columns/varchar.cjs.map +1 -1
  245. package/mysql-core/columns/varchar.d.cts +3 -2
  246. package/mysql-core/columns/varchar.d.ts +3 -2
  247. package/mysql-core/columns/varchar.js +3 -1
  248. package/mysql-core/columns/varchar.js.map +1 -1
  249. package/mysql-core/columns/year.cjs +1 -1
  250. package/mysql-core/columns/year.cjs.map +1 -1
  251. package/mysql-core/columns/year.d.cts +1 -0
  252. package/mysql-core/columns/year.d.ts +1 -0
  253. package/mysql-core/columns/year.js +1 -1
  254. package/mysql-core/columns/year.js.map +1 -1
  255. package/mysql-core/db.cjs +2 -1
  256. package/mysql-core/db.cjs.map +1 -1
  257. package/mysql-core/db.d.cts +3 -3
  258. package/mysql-core/db.d.ts +3 -3
  259. package/mysql-core/db.js +2 -1
  260. package/mysql-core/db.js.map +1 -1
  261. package/mysql-core/dialect.cjs +31 -20
  262. package/mysql-core/dialect.cjs.map +1 -1
  263. package/mysql-core/dialect.d.cts +9 -3
  264. package/mysql-core/dialect.d.ts +9 -3
  265. package/mysql-core/dialect.js +31 -20
  266. package/mysql-core/dialect.js.map +1 -1
  267. package/mysql-core/foreign-keys.cjs +3 -3
  268. package/mysql-core/foreign-keys.cjs.map +1 -1
  269. package/mysql-core/foreign-keys.d.cts +1 -1
  270. package/mysql-core/foreign-keys.d.ts +1 -1
  271. package/mysql-core/foreign-keys.js +3 -3
  272. package/mysql-core/foreign-keys.js.map +1 -1
  273. package/mysql-core/query-builders/count.cjs +4 -4
  274. package/mysql-core/query-builders/count.cjs.map +1 -1
  275. package/mysql-core/query-builders/count.d.cts +2 -3
  276. package/mysql-core/query-builders/count.d.ts +2 -3
  277. package/mysql-core/query-builders/count.js +2 -2
  278. package/mysql-core/query-builders/count.js.map +1 -1
  279. package/mysql-core/query-builders/delete.cjs +22 -0
  280. package/mysql-core/query-builders/delete.cjs.map +1 -1
  281. package/mysql-core/query-builders/delete.d.cts +8 -1
  282. package/mysql-core/query-builders/delete.d.ts +8 -1
  283. package/mysql-core/query-builders/delete.js +22 -0
  284. package/mysql-core/query-builders/delete.js.map +1 -1
  285. package/mysql-core/query-builders/insert.cjs.map +1 -1
  286. package/mysql-core/query-builders/insert.js.map +1 -1
  287. package/mysql-core/query-builders/query-builder.cjs +6 -1
  288. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  289. package/mysql-core/query-builders/query-builder.d.cts +8 -4
  290. package/mysql-core/query-builders/query-builder.d.ts +8 -4
  291. package/mysql-core/query-builders/query-builder.js +7 -2
  292. package/mysql-core/query-builders/query-builder.js.map +1 -1
  293. package/mysql-core/query-builders/query.cjs.map +1 -1
  294. package/mysql-core/query-builders/query.d.cts +3 -7
  295. package/mysql-core/query-builders/query.d.ts +3 -7
  296. package/mysql-core/query-builders/query.js.map +1 -1
  297. package/mysql-core/query-builders/select.cjs.map +1 -1
  298. package/mysql-core/query-builders/select.js.map +1 -1
  299. package/mysql-core/query-builders/update.cjs +22 -0
  300. package/mysql-core/query-builders/update.cjs.map +1 -1
  301. package/mysql-core/query-builders/update.d.cts +9 -3
  302. package/mysql-core/query-builders/update.d.ts +9 -3
  303. package/mysql-core/query-builders/update.js +22 -0
  304. package/mysql-core/query-builders/update.js.map +1 -1
  305. package/mysql-core/session.cjs.map +1 -1
  306. package/mysql-core/session.js.map +1 -1
  307. package/mysql-core/table.cjs +4 -1
  308. package/mysql-core/table.cjs.map +1 -1
  309. package/mysql-core/table.d.cts +8 -1
  310. package/mysql-core/table.d.ts +8 -1
  311. package/mysql-core/table.js +4 -1
  312. package/mysql-core/table.js.map +1 -1
  313. package/mysql-core/unique-constraint.cjs +2 -2
  314. package/mysql-core/unique-constraint.cjs.map +1 -1
  315. package/mysql-core/unique-constraint.d.cts +1 -1
  316. package/mysql-core/unique-constraint.d.ts +1 -1
  317. package/mysql-core/unique-constraint.js +2 -2
  318. package/mysql-core/unique-constraint.js.map +1 -1
  319. package/mysql-core/utils.d.cts +4 -5
  320. package/mysql-core/utils.d.ts +4 -5
  321. package/mysql-core/view-base.cjs.map +1 -1
  322. package/mysql-core/view-base.js.map +1 -1
  323. package/mysql-core/view.cjs +0 -4
  324. package/mysql-core/view.cjs.map +1 -1
  325. package/mysql-core/view.d.cts +0 -2
  326. package/mysql-core/view.d.ts +0 -2
  327. package/mysql-core/view.js +0 -4
  328. package/mysql-core/view.js.map +1 -1
  329. package/mysql-proxy/driver.cjs +1 -1
  330. package/mysql-proxy/driver.cjs.map +1 -1
  331. package/mysql-proxy/driver.js +1 -1
  332. package/mysql-proxy/driver.js.map +1 -1
  333. package/mysql-proxy/session.cjs.map +1 -1
  334. package/mysql-proxy/session.d.cts +1 -1
  335. package/mysql-proxy/session.d.ts +1 -1
  336. package/mysql-proxy/session.js.map +1 -1
  337. package/mysql2/driver.cjs +3 -3
  338. package/mysql2/driver.cjs.map +1 -1
  339. package/mysql2/driver.js +2 -2
  340. package/mysql2/driver.js.map +1 -1
  341. package/mysql2/session.cjs.map +1 -1
  342. package/mysql2/session.d.cts +1 -1
  343. package/mysql2/session.d.ts +1 -1
  344. package/mysql2/session.js.map +1 -1
  345. package/neon-http/driver.cjs +1 -1
  346. package/neon-http/driver.cjs.map +1 -1
  347. package/neon-http/driver.js +1 -1
  348. package/neon-http/driver.js.map +1 -1
  349. package/neon-http/session.cjs.map +1 -1
  350. package/neon-http/session.d.cts +1 -1
  351. package/neon-http/session.d.ts +1 -1
  352. package/neon-http/session.js.map +1 -1
  353. package/neon-serverless/driver.cjs +1 -9
  354. package/neon-serverless/driver.cjs.map +1 -1
  355. package/neon-serverless/driver.d.cts +0 -1
  356. package/neon-serverless/driver.d.ts +0 -1
  357. package/neon-serverless/driver.js +1 -9
  358. package/neon-serverless/driver.js.map +1 -1
  359. package/neon-serverless/session.cjs +44 -2
  360. package/neon-serverless/session.cjs.map +1 -1
  361. package/neon-serverless/session.d.cts +3 -2
  362. package/neon-serverless/session.d.ts +3 -2
  363. package/neon-serverless/session.js +46 -3
  364. package/neon-serverless/session.js.map +1 -1
  365. package/node-postgres/driver.cjs +1 -20
  366. package/node-postgres/driver.cjs.map +1 -1
  367. package/node-postgres/driver.d.cts +0 -1
  368. package/node-postgres/driver.d.ts +0 -1
  369. package/node-postgres/driver.js +1 -10
  370. package/node-postgres/driver.js.map +1 -1
  371. package/node-postgres/session.cjs +39 -3
  372. package/node-postgres/session.cjs.map +1 -1
  373. package/node-postgres/session.d.cts +1 -1
  374. package/node-postgres/session.d.ts +1 -1
  375. package/node-postgres/session.js +39 -3
  376. package/node-postgres/session.js.map +1 -1
  377. package/op-sqlite/driver.cjs +1 -1
  378. package/op-sqlite/driver.cjs.map +1 -1
  379. package/op-sqlite/driver.js +1 -1
  380. package/op-sqlite/driver.js.map +1 -1
  381. package/op-sqlite/session.cjs.map +1 -1
  382. package/op-sqlite/session.js.map +1 -1
  383. package/package.json +122 -50
  384. package/pg-core/columns/all.cjs +96 -0
  385. package/pg-core/columns/all.cjs.map +1 -0
  386. package/pg-core/columns/all.d.cts +67 -0
  387. package/pg-core/columns/all.d.ts +67 -0
  388. package/pg-core/columns/all.js +72 -0
  389. package/pg-core/columns/all.js.map +1 -0
  390. package/pg-core/columns/bigint.cjs +3 -1
  391. package/pg-core/columns/bigint.cjs.map +1 -1
  392. package/pg-core/columns/bigint.d.cts +2 -2
  393. package/pg-core/columns/bigint.d.ts +2 -2
  394. package/pg-core/columns/bigint.js +3 -1
  395. package/pg-core/columns/bigint.js.map +1 -1
  396. package/pg-core/columns/bigserial.cjs +4 -2
  397. package/pg-core/columns/bigserial.cjs.map +1 -1
  398. package/pg-core/columns/bigserial.d.cts +2 -2
  399. package/pg-core/columns/bigserial.d.ts +2 -2
  400. package/pg-core/columns/bigserial.js +4 -2
  401. package/pg-core/columns/bigserial.js.map +1 -1
  402. package/pg-core/columns/boolean.cjs +1 -1
  403. package/pg-core/columns/boolean.cjs.map +1 -1
  404. package/pg-core/columns/boolean.d.cts +1 -0
  405. package/pg-core/columns/boolean.d.ts +1 -0
  406. package/pg-core/columns/boolean.js +1 -1
  407. package/pg-core/columns/boolean.js.map +1 -1
  408. package/pg-core/columns/char.cjs +3 -1
  409. package/pg-core/columns/char.cjs.map +1 -1
  410. package/pg-core/columns/char.d.cts +5 -3
  411. package/pg-core/columns/char.d.ts +5 -3
  412. package/pg-core/columns/char.js +3 -1
  413. package/pg-core/columns/char.js.map +1 -1
  414. package/pg-core/columns/cidr.cjs +1 -1
  415. package/pg-core/columns/cidr.cjs.map +1 -1
  416. package/pg-core/columns/cidr.d.cts +1 -0
  417. package/pg-core/columns/cidr.d.ts +1 -0
  418. package/pg-core/columns/cidr.js +1 -1
  419. package/pg-core/columns/cidr.js.map +1 -1
  420. package/pg-core/columns/common.cjs +3 -1
  421. package/pg-core/columns/common.cjs.map +1 -1
  422. package/pg-core/columns/common.d.cts +3 -2
  423. package/pg-core/columns/common.d.ts +3 -2
  424. package/pg-core/columns/common.js +3 -1
  425. package/pg-core/columns/common.js.map +1 -1
  426. package/pg-core/columns/custom.cjs +4 -2
  427. package/pg-core/columns/custom.cjs.map +1 -1
  428. package/pg-core/columns/custom.d.cts +10 -3
  429. package/pg-core/columns/custom.d.ts +10 -3
  430. package/pg-core/columns/custom.js +4 -2
  431. package/pg-core/columns/custom.js.map +1 -1
  432. package/pg-core/columns/date.cjs +3 -1
  433. package/pg-core/columns/date.cjs.map +1 -1
  434. package/pg-core/columns/date.common.cjs.map +1 -1
  435. package/pg-core/columns/date.common.js.map +1 -1
  436. package/pg-core/columns/date.d.cts +7 -6
  437. package/pg-core/columns/date.d.ts +7 -6
  438. package/pg-core/columns/date.js +3 -1
  439. package/pg-core/columns/date.js.map +1 -1
  440. package/pg-core/columns/double-precision.cjs +1 -1
  441. package/pg-core/columns/double-precision.cjs.map +1 -1
  442. package/pg-core/columns/double-precision.d.cts +1 -0
  443. package/pg-core/columns/double-precision.d.ts +1 -0
  444. package/pg-core/columns/double-precision.js +1 -1
  445. package/pg-core/columns/double-precision.js.map +1 -1
  446. package/pg-core/columns/enum.cjs +1 -1
  447. package/pg-core/columns/enum.cjs.map +1 -1
  448. package/pg-core/columns/enum.d.cts +3 -1
  449. package/pg-core/columns/enum.d.ts +3 -1
  450. package/pg-core/columns/enum.js +1 -1
  451. package/pg-core/columns/enum.js.map +1 -1
  452. package/pg-core/columns/index.cjs +2 -0
  453. package/pg-core/columns/index.cjs.map +1 -1
  454. package/pg-core/columns/index.d.cts +1 -0
  455. package/pg-core/columns/index.d.ts +1 -0
  456. package/pg-core/columns/index.js +1 -0
  457. package/pg-core/columns/index.js.map +1 -1
  458. package/pg-core/columns/inet.cjs +1 -1
  459. package/pg-core/columns/inet.cjs.map +1 -1
  460. package/pg-core/columns/inet.d.cts +1 -0
  461. package/pg-core/columns/inet.d.ts +1 -0
  462. package/pg-core/columns/inet.js +1 -1
  463. package/pg-core/columns/inet.js.map +1 -1
  464. package/pg-core/columns/int.common.cjs.map +1 -1
  465. package/pg-core/columns/int.common.js.map +1 -1
  466. package/pg-core/columns/integer.cjs +1 -1
  467. package/pg-core/columns/integer.cjs.map +1 -1
  468. package/pg-core/columns/integer.d.cts +1 -0
  469. package/pg-core/columns/integer.d.ts +1 -0
  470. package/pg-core/columns/integer.js +1 -1
  471. package/pg-core/columns/integer.js.map +1 -1
  472. package/pg-core/columns/interval.cjs +3 -1
  473. package/pg-core/columns/interval.cjs.map +1 -1
  474. package/pg-core/columns/interval.d.cts +2 -0
  475. package/pg-core/columns/interval.d.ts +2 -0
  476. package/pg-core/columns/interval.js +3 -1
  477. package/pg-core/columns/interval.js.map +1 -1
  478. package/pg-core/columns/json.cjs +1 -1
  479. package/pg-core/columns/json.cjs.map +1 -1
  480. package/pg-core/columns/json.d.cts +1 -0
  481. package/pg-core/columns/json.d.ts +1 -0
  482. package/pg-core/columns/json.js +1 -1
  483. package/pg-core/columns/json.js.map +1 -1
  484. package/pg-core/columns/jsonb.cjs +1 -1
  485. package/pg-core/columns/jsonb.cjs.map +1 -1
  486. package/pg-core/columns/jsonb.d.cts +1 -0
  487. package/pg-core/columns/jsonb.d.ts +1 -0
  488. package/pg-core/columns/jsonb.js +1 -1
  489. package/pg-core/columns/jsonb.js.map +1 -1
  490. package/pg-core/columns/line.cjs +3 -1
  491. package/pg-core/columns/line.cjs.map +1 -1
  492. package/pg-core/columns/line.d.cts +3 -1
  493. package/pg-core/columns/line.d.ts +3 -1
  494. package/pg-core/columns/line.js +3 -1
  495. package/pg-core/columns/line.js.map +1 -1
  496. package/pg-core/columns/macaddr.cjs +1 -1
  497. package/pg-core/columns/macaddr.cjs.map +1 -1
  498. package/pg-core/columns/macaddr.d.cts +1 -0
  499. package/pg-core/columns/macaddr.d.ts +1 -0
  500. package/pg-core/columns/macaddr.js +1 -1
  501. package/pg-core/columns/macaddr.js.map +1 -1
  502. package/pg-core/columns/macaddr8.cjs +1 -1
  503. package/pg-core/columns/macaddr8.cjs.map +1 -1
  504. package/pg-core/columns/macaddr8.d.cts +1 -0
  505. package/pg-core/columns/macaddr8.d.ts +1 -0
  506. package/pg-core/columns/macaddr8.js +1 -1
  507. package/pg-core/columns/macaddr8.js.map +1 -1
  508. package/pg-core/columns/numeric.cjs +3 -1
  509. package/pg-core/columns/numeric.cjs.map +1 -1
  510. package/pg-core/columns/numeric.d.cts +6 -3
  511. package/pg-core/columns/numeric.d.ts +6 -3
  512. package/pg-core/columns/numeric.js +3 -1
  513. package/pg-core/columns/numeric.js.map +1 -1
  514. package/pg-core/columns/point.cjs +3 -1
  515. package/pg-core/columns/point.cjs.map +1 -1
  516. package/pg-core/columns/point.d.cts +5 -3
  517. package/pg-core/columns/point.d.ts +5 -3
  518. package/pg-core/columns/point.js +3 -1
  519. package/pg-core/columns/point.js.map +1 -1
  520. package/pg-core/columns/postgis_extension/geometry.cjs +6 -4
  521. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  522. package/pg-core/columns/postgis_extension/geometry.d.cts +4 -3
  523. package/pg-core/columns/postgis_extension/geometry.d.ts +4 -3
  524. package/pg-core/columns/postgis_extension/geometry.js +3 -1
  525. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  526. package/pg-core/columns/real.cjs +1 -1
  527. package/pg-core/columns/real.cjs.map +1 -1
  528. package/pg-core/columns/real.d.cts +2 -1
  529. package/pg-core/columns/real.d.ts +2 -1
  530. package/pg-core/columns/real.js +1 -1
  531. package/pg-core/columns/real.js.map +1 -1
  532. package/pg-core/columns/serial.cjs +1 -1
  533. package/pg-core/columns/serial.cjs.map +1 -1
  534. package/pg-core/columns/serial.d.cts +2 -1
  535. package/pg-core/columns/serial.d.ts +2 -1
  536. package/pg-core/columns/serial.js +1 -1
  537. package/pg-core/columns/serial.js.map +1 -1
  538. package/pg-core/columns/smallint.cjs +1 -1
  539. package/pg-core/columns/smallint.cjs.map +1 -1
  540. package/pg-core/columns/smallint.d.cts +1 -0
  541. package/pg-core/columns/smallint.d.ts +1 -0
  542. package/pg-core/columns/smallint.js +1 -1
  543. package/pg-core/columns/smallint.js.map +1 -1
  544. package/pg-core/columns/smallserial.cjs +1 -1
  545. package/pg-core/columns/smallserial.cjs.map +1 -1
  546. package/pg-core/columns/smallserial.d.cts +2 -1
  547. package/pg-core/columns/smallserial.d.ts +2 -1
  548. package/pg-core/columns/smallserial.js +1 -1
  549. package/pg-core/columns/smallserial.js.map +1 -1
  550. package/pg-core/columns/text.cjs +3 -1
  551. package/pg-core/columns/text.cjs.map +1 -1
  552. package/pg-core/columns/text.d.cts +4 -2
  553. package/pg-core/columns/text.d.ts +4 -2
  554. package/pg-core/columns/text.js +3 -1
  555. package/pg-core/columns/text.js.map +1 -1
  556. package/pg-core/columns/time.cjs +3 -1
  557. package/pg-core/columns/time.cjs.map +1 -1
  558. package/pg-core/columns/time.d.cts +2 -0
  559. package/pg-core/columns/time.d.ts +2 -0
  560. package/pg-core/columns/time.js +3 -1
  561. package/pg-core/columns/time.js.map +1 -1
  562. package/pg-core/columns/timestamp.cjs +5 -3
  563. package/pg-core/columns/timestamp.cjs.map +1 -1
  564. package/pg-core/columns/timestamp.d.cts +5 -3
  565. package/pg-core/columns/timestamp.d.ts +5 -3
  566. package/pg-core/columns/timestamp.js +5 -3
  567. package/pg-core/columns/timestamp.js.map +1 -1
  568. package/pg-core/columns/uuid.cjs +1 -1
  569. package/pg-core/columns/uuid.cjs.map +1 -1
  570. package/pg-core/columns/uuid.d.cts +1 -0
  571. package/pg-core/columns/uuid.d.ts +1 -0
  572. package/pg-core/columns/uuid.js +1 -1
  573. package/pg-core/columns/uuid.js.map +1 -1
  574. package/pg-core/columns/varchar.cjs +3 -1
  575. package/pg-core/columns/varchar.cjs.map +1 -1
  576. package/pg-core/columns/varchar.d.cts +5 -3
  577. package/pg-core/columns/varchar.d.ts +5 -3
  578. package/pg-core/columns/varchar.js +3 -1
  579. package/pg-core/columns/varchar.js.map +1 -1
  580. package/pg-core/columns/vector_extension/bit.cjs +3 -1
  581. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  582. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  583. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  584. package/pg-core/columns/vector_extension/bit.js +3 -1
  585. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  586. package/pg-core/columns/vector_extension/halfvec.cjs +3 -1
  587. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  588. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  589. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  590. package/pg-core/columns/vector_extension/halfvec.js +3 -1
  591. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  592. package/pg-core/columns/vector_extension/sparsevec.cjs +3 -1
  593. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  594. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  595. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  596. package/pg-core/columns/vector_extension/sparsevec.js +3 -1
  597. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  598. package/pg-core/columns/vector_extension/vector.cjs +3 -1
  599. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  600. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  601. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  602. package/pg-core/columns/vector_extension/vector.js +3 -1
  603. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  604. package/pg-core/db.cjs +2 -1
  605. package/pg-core/db.cjs.map +1 -1
  606. package/pg-core/db.d.cts +5 -5
  607. package/pg-core/db.d.ts +5 -5
  608. package/pg-core/db.js +2 -1
  609. package/pg-core/db.js.map +1 -1
  610. package/pg-core/dialect.cjs +13 -4
  611. package/pg-core/dialect.cjs.map +1 -1
  612. package/pg-core/dialect.d.cts +5 -1
  613. package/pg-core/dialect.d.ts +5 -1
  614. package/pg-core/dialect.js +13 -4
  615. package/pg-core/dialect.js.map +1 -1
  616. package/pg-core/foreign-keys.cjs +3 -3
  617. package/pg-core/foreign-keys.cjs.map +1 -1
  618. package/pg-core/foreign-keys.d.cts +1 -1
  619. package/pg-core/foreign-keys.d.ts +1 -1
  620. package/pg-core/foreign-keys.js +3 -3
  621. package/pg-core/foreign-keys.js.map +1 -1
  622. package/pg-core/indexes.cjs +3 -3
  623. package/pg-core/indexes.cjs.map +1 -1
  624. package/pg-core/indexes.js +3 -3
  625. package/pg-core/indexes.js.map +1 -1
  626. package/pg-core/query-builders/count.cjs +4 -4
  627. package/pg-core/query-builders/count.cjs.map +1 -1
  628. package/pg-core/query-builders/count.d.cts +2 -3
  629. package/pg-core/query-builders/count.d.ts +2 -3
  630. package/pg-core/query-builders/count.js +2 -2
  631. package/pg-core/query-builders/count.js.map +1 -1
  632. package/pg-core/query-builders/delete.cjs.map +1 -1
  633. package/pg-core/query-builders/delete.js.map +1 -1
  634. package/pg-core/query-builders/insert.cjs +2 -2
  635. package/pg-core/query-builders/insert.cjs.map +1 -1
  636. package/pg-core/query-builders/insert.d.cts +1 -1
  637. package/pg-core/query-builders/insert.d.ts +1 -1
  638. package/pg-core/query-builders/insert.js +2 -2
  639. package/pg-core/query-builders/insert.js.map +1 -1
  640. package/pg-core/query-builders/query-builder.cjs +6 -1
  641. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  642. package/pg-core/query-builders/query-builder.d.cts +10 -6
  643. package/pg-core/query-builders/query-builder.d.ts +10 -6
  644. package/pg-core/query-builders/query-builder.js +7 -2
  645. package/pg-core/query-builders/query-builder.js.map +1 -1
  646. package/pg-core/query-builders/query.cjs.map +1 -1
  647. package/pg-core/query-builders/query.js.map +1 -1
  648. package/pg-core/query-builders/raw.cjs.map +1 -1
  649. package/pg-core/query-builders/raw.js.map +1 -1
  650. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  651. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  652. package/pg-core/query-builders/select.cjs.map +1 -1
  653. package/pg-core/query-builders/select.js.map +1 -1
  654. package/pg-core/query-builders/update.cjs.map +1 -1
  655. package/pg-core/query-builders/update.d.cts +1 -1
  656. package/pg-core/query-builders/update.d.ts +1 -1
  657. package/pg-core/query-builders/update.js.map +1 -1
  658. package/pg-core/session.cjs.map +1 -1
  659. package/pg-core/session.js.map +1 -1
  660. package/pg-core/table.cjs +6 -2
  661. package/pg-core/table.cjs.map +1 -1
  662. package/pg-core/table.d.cts +7 -0
  663. package/pg-core/table.d.ts +7 -0
  664. package/pg-core/table.js +6 -2
  665. package/pg-core/table.js.map +1 -1
  666. package/pg-core/unique-constraint.cjs +2 -2
  667. package/pg-core/unique-constraint.cjs.map +1 -1
  668. package/pg-core/unique-constraint.d.cts +1 -1
  669. package/pg-core/unique-constraint.d.ts +1 -1
  670. package/pg-core/unique-constraint.js +2 -2
  671. package/pg-core/unique-constraint.js.map +1 -1
  672. package/pg-core/utils.d.cts +8 -8
  673. package/pg-core/utils.d.ts +8 -8
  674. package/pg-core/view-base.cjs.map +1 -1
  675. package/pg-core/view-base.js.map +1 -1
  676. package/pg-core/view.cjs +22 -2
  677. package/pg-core/view.cjs.map +1 -1
  678. package/pg-core/view.d.cts +25 -5
  679. package/pg-core/view.d.ts +25 -5
  680. package/pg-core/view.js +21 -3
  681. package/pg-core/view.js.map +1 -1
  682. package/pg-proxy/driver.cjs +1 -1
  683. package/pg-proxy/driver.cjs.map +1 -1
  684. package/pg-proxy/driver.js +1 -1
  685. package/pg-proxy/driver.js.map +1 -1
  686. package/pg-proxy/session.cjs.map +1 -1
  687. package/pg-proxy/session.d.cts +1 -1
  688. package/pg-proxy/session.d.ts +1 -1
  689. package/pg-proxy/session.js.map +1 -1
  690. package/pglite/driver.cjs +1 -1
  691. package/pglite/driver.cjs.map +1 -1
  692. package/pglite/driver.js +1 -1
  693. package/pglite/driver.js.map +1 -1
  694. package/pglite/session.cjs.map +1 -1
  695. package/pglite/session.d.cts +1 -1
  696. package/pglite/session.d.ts +1 -1
  697. package/pglite/session.js.map +1 -1
  698. package/planetscale-serverless/driver.cjs +1 -1
  699. package/planetscale-serverless/driver.cjs.map +1 -1
  700. package/planetscale-serverless/driver.js +1 -1
  701. package/planetscale-serverless/driver.js.map +1 -1
  702. package/planetscale-serverless/session.cjs.map +1 -1
  703. package/planetscale-serverless/session.d.cts +1 -1
  704. package/planetscale-serverless/session.d.ts +1 -1
  705. package/planetscale-serverless/session.js.map +1 -1
  706. package/postgres-js/driver.cjs +1 -1
  707. package/postgres-js/driver.cjs.map +1 -1
  708. package/postgres-js/driver.js +1 -1
  709. package/postgres-js/driver.js.map +1 -1
  710. package/postgres-js/session.cjs.map +1 -1
  711. package/postgres-js/session.d.cts +1 -1
  712. package/postgres-js/session.d.ts +1 -1
  713. package/postgres-js/session.js.map +1 -1
  714. package/prisma/mysql/driver.cjs.map +1 -1
  715. package/prisma/mysql/driver.js.map +1 -1
  716. package/prisma/mysql/session.cjs.map +1 -1
  717. package/prisma/mysql/session.js.map +1 -1
  718. package/prisma/pg/driver.cjs.map +1 -1
  719. package/prisma/pg/driver.js.map +1 -1
  720. package/prisma/pg/session.cjs.map +1 -1
  721. package/prisma/pg/session.js.map +1 -1
  722. package/prisma/sqlite/session.cjs.map +1 -1
  723. package/prisma/sqlite/session.js.map +1 -1
  724. package/relations.cjs.map +1 -1
  725. package/relations.d.cts +13 -13
  726. package/relations.d.ts +13 -13
  727. package/relations.js.map +1 -1
  728. package/sql/functions/vector.cjs.map +1 -1
  729. package/sql/functions/vector.d.cts +1 -1
  730. package/sql/functions/vector.d.ts +1 -1
  731. package/sql/functions/vector.js.map +1 -1
  732. package/sql/sql.cjs +4 -2
  733. package/sql/sql.cjs.map +1 -1
  734. package/sql/sql.d.cts +2 -0
  735. package/sql/sql.d.ts +2 -0
  736. package/sql/sql.js +4 -2
  737. package/sql/sql.js.map +1 -1
  738. package/sql-js/driver.cjs +1 -1
  739. package/sql-js/driver.cjs.map +1 -1
  740. package/sql-js/driver.js +1 -1
  741. package/sql-js/driver.js.map +1 -1
  742. package/sql-js/session.cjs.map +1 -1
  743. package/sql-js/session.js.map +1 -1
  744. package/sqlite-core/columns/all.cjs +44 -0
  745. package/sqlite-core/columns/all.cjs.map +1 -0
  746. package/sqlite-core/columns/all.d.cts +15 -0
  747. package/sqlite-core/columns/all.d.ts +15 -0
  748. package/sqlite-core/columns/all.js +20 -0
  749. package/sqlite-core/columns/all.js.map +1 -0
  750. package/sqlite-core/columns/blob.cjs +3 -1
  751. package/sqlite-core/columns/blob.cjs.map +1 -1
  752. package/sqlite-core/columns/blob.d.cts +3 -3
  753. package/sqlite-core/columns/blob.d.ts +3 -3
  754. package/sqlite-core/columns/blob.js +3 -1
  755. package/sqlite-core/columns/blob.js.map +1 -1
  756. package/sqlite-core/columns/common.cjs.map +1 -1
  757. package/sqlite-core/columns/common.js.map +1 -1
  758. package/sqlite-core/columns/custom.cjs +5 -3
  759. package/sqlite-core/columns/custom.cjs.map +1 -1
  760. package/sqlite-core/columns/custom.d.cts +10 -3
  761. package/sqlite-core/columns/custom.d.ts +10 -3
  762. package/sqlite-core/columns/custom.js +5 -3
  763. package/sqlite-core/columns/custom.js.map +1 -1
  764. package/sqlite-core/columns/integer.cjs +3 -1
  765. package/sqlite-core/columns/integer.cjs.map +1 -1
  766. package/sqlite-core/columns/integer.d.cts +3 -1
  767. package/sqlite-core/columns/integer.d.ts +3 -1
  768. package/sqlite-core/columns/integer.js +3 -1
  769. package/sqlite-core/columns/integer.js.map +1 -1
  770. package/sqlite-core/columns/numeric.cjs +1 -1
  771. package/sqlite-core/columns/numeric.cjs.map +1 -1
  772. package/sqlite-core/columns/numeric.d.cts +1 -0
  773. package/sqlite-core/columns/numeric.d.ts +1 -0
  774. package/sqlite-core/columns/numeric.js +1 -1
  775. package/sqlite-core/columns/numeric.js.map +1 -1
  776. package/sqlite-core/columns/real.cjs +1 -1
  777. package/sqlite-core/columns/real.cjs.map +1 -1
  778. package/sqlite-core/columns/real.d.cts +1 -0
  779. package/sqlite-core/columns/real.d.ts +1 -0
  780. package/sqlite-core/columns/real.js +1 -1
  781. package/sqlite-core/columns/real.js.map +1 -1
  782. package/sqlite-core/columns/text.cjs +7 -2
  783. package/sqlite-core/columns/text.cjs.map +1 -1
  784. package/sqlite-core/columns/text.d.cts +4 -2
  785. package/sqlite-core/columns/text.d.ts +4 -2
  786. package/sqlite-core/columns/text.js +7 -2
  787. package/sqlite-core/columns/text.js.map +1 -1
  788. package/sqlite-core/db.cjs +2 -1
  789. package/sqlite-core/db.cjs.map +1 -1
  790. package/sqlite-core/db.d.cts +4 -4
  791. package/sqlite-core/db.d.ts +4 -4
  792. package/sqlite-core/db.js +2 -1
  793. package/sqlite-core/db.js.map +1 -1
  794. package/sqlite-core/dialect.cjs +39 -23
  795. package/sqlite-core/dialect.cjs.map +1 -1
  796. package/sqlite-core/dialect.d.cts +9 -3
  797. package/sqlite-core/dialect.d.ts +9 -3
  798. package/sqlite-core/dialect.js +39 -23
  799. package/sqlite-core/dialect.js.map +1 -1
  800. package/sqlite-core/foreign-keys.cjs +3 -3
  801. package/sqlite-core/foreign-keys.cjs.map +1 -1
  802. package/sqlite-core/foreign-keys.d.cts +1 -1
  803. package/sqlite-core/foreign-keys.d.ts +1 -1
  804. package/sqlite-core/foreign-keys.js +3 -3
  805. package/sqlite-core/foreign-keys.js.map +1 -1
  806. package/sqlite-core/query-builders/count.cjs +4 -4
  807. package/sqlite-core/query-builders/count.cjs.map +1 -1
  808. package/sqlite-core/query-builders/count.d.cts +2 -3
  809. package/sqlite-core/query-builders/count.d.ts +2 -3
  810. package/sqlite-core/query-builders/count.js +2 -2
  811. package/sqlite-core/query-builders/count.js.map +1 -1
  812. package/sqlite-core/query-builders/delete.cjs +22 -0
  813. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  814. package/sqlite-core/query-builders/delete.d.cts +8 -2
  815. package/sqlite-core/query-builders/delete.d.ts +8 -2
  816. package/sqlite-core/query-builders/delete.js +22 -0
  817. package/sqlite-core/query-builders/delete.js.map +1 -1
  818. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  819. package/sqlite-core/query-builders/insert.d.cts +1 -1
  820. package/sqlite-core/query-builders/insert.d.ts +1 -1
  821. package/sqlite-core/query-builders/insert.js.map +1 -1
  822. package/sqlite-core/query-builders/query-builder.cjs +6 -1
  823. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  824. package/sqlite-core/query-builders/query-builder.d.cts +8 -4
  825. package/sqlite-core/query-builders/query-builder.d.ts +8 -4
  826. package/sqlite-core/query-builders/query-builder.js +8 -3
  827. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  828. package/sqlite-core/query-builders/query.cjs.map +1 -1
  829. package/sqlite-core/query-builders/query.js.map +1 -1
  830. package/sqlite-core/query-builders/raw.cjs.map +1 -1
  831. package/sqlite-core/query-builders/raw.d.cts +2 -2
  832. package/sqlite-core/query-builders/raw.d.ts +2 -2
  833. package/sqlite-core/query-builders/raw.js.map +1 -1
  834. package/sqlite-core/query-builders/select.cjs.map +1 -1
  835. package/sqlite-core/query-builders/select.js.map +1 -1
  836. package/sqlite-core/query-builders/update.cjs +22 -0
  837. package/sqlite-core/query-builders/update.cjs.map +1 -1
  838. package/sqlite-core/query-builders/update.d.cts +9 -3
  839. package/sqlite-core/query-builders/update.d.ts +9 -3
  840. package/sqlite-core/query-builders/update.js +26 -1
  841. package/sqlite-core/query-builders/update.js.map +1 -1
  842. package/sqlite-core/session.cjs.map +1 -1
  843. package/sqlite-core/session.js.map +1 -1
  844. package/sqlite-core/table.cjs +4 -1
  845. package/sqlite-core/table.cjs.map +1 -1
  846. package/sqlite-core/table.d.cts +7 -0
  847. package/sqlite-core/table.d.ts +7 -0
  848. package/sqlite-core/table.js +4 -1
  849. package/sqlite-core/table.js.map +1 -1
  850. package/sqlite-core/unique-constraint.cjs +2 -2
  851. package/sqlite-core/unique-constraint.cjs.map +1 -1
  852. package/sqlite-core/unique-constraint.d.cts +1 -1
  853. package/sqlite-core/unique-constraint.d.ts +1 -1
  854. package/sqlite-core/unique-constraint.js +2 -2
  855. package/sqlite-core/unique-constraint.js.map +1 -1
  856. package/sqlite-core/utils.cjs +2 -3
  857. package/sqlite-core/utils.cjs.map +1 -1
  858. package/sqlite-core/utils.d.cts +1 -5
  859. package/sqlite-core/utils.d.ts +1 -5
  860. package/sqlite-core/utils.js +2 -3
  861. package/sqlite-core/utils.js.map +1 -1
  862. package/sqlite-core/view-base.cjs.map +1 -1
  863. package/sqlite-core/view-base.js.map +1 -1
  864. package/sqlite-core/view.cjs +2 -8
  865. package/sqlite-core/view.cjs.map +1 -1
  866. package/sqlite-core/view.d.cts +1 -2
  867. package/sqlite-core/view.d.ts +1 -2
  868. package/sqlite-core/view.js +2 -8
  869. package/sqlite-core/view.js.map +1 -1
  870. package/sqlite-proxy/driver.cjs +1 -1
  871. package/sqlite-proxy/driver.cjs.map +1 -1
  872. package/sqlite-proxy/driver.js +1 -1
  873. package/sqlite-proxy/driver.js.map +1 -1
  874. package/sqlite-proxy/session.cjs.map +1 -1
  875. package/sqlite-proxy/session.js.map +1 -1
  876. package/subquery.cjs.map +1 -1
  877. package/subquery.js.map +1 -1
  878. package/table.cjs +6 -8
  879. package/table.cjs.map +1 -1
  880. package/table.js +1 -2
  881. package/table.js.map +1 -1
  882. package/table.utils.cjs +29 -0
  883. package/table.utils.cjs.map +1 -0
  884. package/table.utils.d.cts +1 -0
  885. package/table.utils.d.ts +1 -0
  886. package/table.utils.js +5 -0
  887. package/table.utils.js.map +1 -0
  888. package/tidb-serverless/driver.cjs +1 -1
  889. package/tidb-serverless/driver.cjs.map +1 -1
  890. package/tidb-serverless/driver.js +1 -1
  891. package/tidb-serverless/driver.js.map +1 -1
  892. package/tidb-serverless/session.cjs.map +1 -1
  893. package/tidb-serverless/session.d.cts +1 -1
  894. package/tidb-serverless/session.d.ts +1 -1
  895. package/tidb-serverless/session.js.map +1 -1
  896. package/utils.cjs +8 -0
  897. package/utils.cjs.map +1 -1
  898. package/utils.d.cts +3 -0
  899. package/utils.d.ts +3 -0
  900. package/utils.js +7 -0
  901. package/utils.js.map +1 -1
  902. package/vercel-postgres/driver.cjs +1 -9
  903. package/vercel-postgres/driver.cjs.map +1 -1
  904. package/vercel-postgres/driver.d.cts +0 -1
  905. package/vercel-postgres/driver.d.ts +0 -1
  906. package/vercel-postgres/driver.js +1 -9
  907. package/vercel-postgres/driver.js.map +1 -1
  908. package/vercel-postgres/session.cjs +38 -2
  909. package/vercel-postgres/session.cjs.map +1 -1
  910. package/vercel-postgres/session.d.cts +1 -1
  911. package/vercel-postgres/session.d.ts +1 -1
  912. package/vercel-postgres/session.js +39 -2
  913. package/vercel-postgres/session.js.map +1 -1
  914. package/version.cjs +1 -1
  915. package/version.d.cts +1 -1
  916. package/version.d.ts +1 -1
  917. package/version.js +1 -1
  918. package/xata-http/driver.cjs +1 -1
  919. package/xata-http/driver.cjs.map +1 -1
  920. package/xata-http/driver.js +1 -1
  921. package/xata-http/driver.js.map +1 -1
  922. package/xata-http/session.cjs.map +1 -1
  923. package/xata-http/session.d.cts +1 -1
  924. package/xata-http/session.d.ts +1 -1
  925. package/xata-http/session.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bun-sqlite/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { Database, Statement as BunStatement } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\ntype Statement = BunStatement<any>;\n\nexport class SQLiteBunSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.schema);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<\n\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteBunPreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.run(...params);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.all(...params);\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst row = this.stmt.values(...params)[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper([row]) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.values(...params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["PreparedQueryBase"]}
1
+ {"version":3,"sources":["../../src/bun-sqlite/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { Database, Statement as BunStatement } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\ntype Statement = BunStatement<any>;\n\nexport class SQLiteBunSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.schema);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<\n\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunPreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.run(...params);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.all(...params);\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst row = this.stmt.values(...params)[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper([row]) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.values(...params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["PreparedQueryBase"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="bun-types" />
2
1
  import type { Database, Statement as BunStatement } from 'bun:sqlite';
3
2
  import { entityKind } from "../entity.cjs";
4
3
  import type { Logger } from "../logger.cjs";
@@ -1,4 +1,3 @@
1
- /// <reference types="bun-types" />
2
1
  import type { Database, Statement as BunStatement } from 'bun:sqlite';
3
2
  import { entityKind } from "../entity.js";
4
3
  import type { Logger } from "../logger.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bun-sqlite/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { Database, Statement as BunStatement } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\ntype Statement = BunStatement<any>;\n\nexport class SQLiteBunSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.schema);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<\n\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteBunPreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.run(...params);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.all(...params);\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst row = this.stmt.values(...params)[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper([row]) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.values(...params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/bun-sqlite/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { Database, Statement as BunStatement } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\ntype Statement = BunStatement<any>;\n\nexport class SQLiteBunSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.schema);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteBunTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<\n\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunPreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.run(...params);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.all(...params);\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst row = this.stmt.values(...params)[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper([row]) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.values(...params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
package/casing.cjs ADDED
@@ -0,0 +1,85 @@
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 casing_exports = {};
20
+ __export(casing_exports, {
21
+ CasingCache: () => CasingCache,
22
+ toCamelCase: () => toCamelCase,
23
+ toSnakeCase: () => toSnakeCase
24
+ });
25
+ module.exports = __toCommonJS(casing_exports);
26
+ var import_entity = require("./entity.cjs");
27
+ var import_table = require("./table.cjs");
28
+ function toSnakeCase(input) {
29
+ const words = input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? [];
30
+ return words.map((word) => word.toLowerCase()).join("_");
31
+ }
32
+ function toCamelCase(input) {
33
+ const words = input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? [];
34
+ return words.reduce((acc, word, i) => {
35
+ const formattedWord = i === 0 ? word.toLowerCase() : `${word[0].toUpperCase()}${word.slice(1)}`;
36
+ return acc + formattedWord;
37
+ }, "");
38
+ }
39
+ function noopCase(input) {
40
+ return input;
41
+ }
42
+ class CasingCache {
43
+ static [import_entity.entityKind] = "CasingCache";
44
+ /** @internal */
45
+ cache = {};
46
+ cachedTables = {};
47
+ convert;
48
+ constructor(casing) {
49
+ this.convert = casing === "snake_case" ? toSnakeCase : casing === "camelCase" ? toCamelCase : noopCase;
50
+ }
51
+ getColumnCasing(column) {
52
+ if (!column.keyAsName)
53
+ return column.name;
54
+ const schema = column.table[import_table.Table.Symbol.Schema] ?? "public";
55
+ const tableName = column.table[import_table.Table.Symbol.OriginalName];
56
+ const key = `${schema}.${tableName}.${column.name}`;
57
+ if (!this.cache[key]) {
58
+ this.cacheTable(column.table);
59
+ }
60
+ return this.cache[key];
61
+ }
62
+ cacheTable(table) {
63
+ const schema = table[import_table.Table.Symbol.Schema] ?? "public";
64
+ const tableName = table[import_table.Table.Symbol.OriginalName];
65
+ const tableKey = `${schema}.${tableName}`;
66
+ if (!this.cachedTables[tableKey]) {
67
+ for (const column of Object.values(table[import_table.Table.Symbol.Columns])) {
68
+ const columnKey = `${tableKey}.${column.name}`;
69
+ this.cache[columnKey] = this.convert(column.name);
70
+ }
71
+ this.cachedTables[tableKey] = true;
72
+ }
73
+ }
74
+ clearCache() {
75
+ this.cache = {};
76
+ this.cachedTables = {};
77
+ }
78
+ }
79
+ // Annotate the CommonJS export names for ESM import in node:
80
+ 0 && (module.exports = {
81
+ CasingCache,
82
+ toCamelCase,
83
+ toSnakeCase
84
+ });
85
+ //# sourceMappingURL=casing.cjs.map
package/casing.cjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/casing.ts"],"sourcesContent":["import type { Column } from '~/column.ts';\nimport { entityKind } from './entity.ts';\nimport { Table } from './table.ts';\nimport type { Casing } from './utils.ts';\n\nexport function toSnakeCase(input: string) {\n\tconst words = input\n\t\t.replace(/['\\u2019]/g, '')\n\t\t.match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? [];\n\n\treturn words.map((word) => word.toLowerCase()).join('_');\n}\n\nexport function toCamelCase(input: string) {\n\tconst words = input\n\t\t.replace(/['\\u2019]/g, '')\n\t\t.match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? [];\n\n\treturn words.reduce((acc, word, i) => {\n\t\tconst formattedWord = i === 0 ? word.toLowerCase() : `${word[0]!.toUpperCase()}${word.slice(1)}`;\n\t\treturn acc + formattedWord;\n\t}, '');\n}\n\nfunction noopCase(input: string) {\n\treturn input;\n}\n\nexport class CasingCache {\n\tstatic readonly [entityKind]: string = 'CasingCache';\n\n\t/** @internal */\n\tcache: Record<string, string> = {};\n\tprivate cachedTables: Record<string, true> = {};\n\tprivate convert: (input: string) => string;\n\n\tconstructor(casing?: Casing) {\n\t\tthis.convert = casing === 'snake_case'\n\t\t\t? toSnakeCase\n\t\t\t: casing === 'camelCase'\n\t\t\t? toCamelCase\n\t\t\t: noopCase;\n\t}\n\n\tgetColumnCasing(column: Column): string {\n\t\tif (!column.keyAsName) return column.name;\n\n\t\tconst schema = column.table[Table.Symbol.Schema] ?? 'public';\n\t\tconst tableName = column.table[Table.Symbol.OriginalName];\n\t\tconst key = `${schema}.${tableName}.${column.name}`;\n\n\t\tif (!this.cache[key]) {\n\t\t\tthis.cacheTable(column.table);\n\t\t}\n\t\treturn this.cache[key]!;\n\t}\n\n\tprivate cacheTable(table: Table) {\n\t\tconst schema = table[Table.Symbol.Schema] ?? 'public';\n\t\tconst tableName = table[Table.Symbol.OriginalName];\n\t\tconst tableKey = `${schema}.${tableName}`;\n\n\t\tif (!this.cachedTables[tableKey]) {\n\t\t\tfor (const column of Object.values(table[Table.Symbol.Columns])) {\n\t\t\t\tconst columnKey = `${tableKey}.${column.name}`;\n\t\t\t\tthis.cache[columnKey] = this.convert(column.name);\n\t\t\t}\n\t\t\tthis.cachedTables[tableKey] = true;\n\t\t}\n\t}\n\n\tclearCache() {\n\t\tthis.cache = {};\n\t\tthis.cachedTables = {};\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAsB;AAGf,SAAS,YAAY,OAAe;AAC1C,QAAM,QAAQ,MACZ,QAAQ,cAAc,EAAE,EACxB,MAAM,yCAAyC,KAAK,CAAC;AAEvD,SAAO,MAAM,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AACxD;AAEO,SAAS,YAAY,OAAe;AAC1C,QAAM,QAAQ,MACZ,QAAQ,cAAc,EAAE,EACxB,MAAM,yCAAyC,KAAK,CAAC;AAEvD,SAAO,MAAM,OAAO,CAAC,KAAK,MAAM,MAAM;AACrC,UAAM,gBAAgB,MAAM,IAAI,KAAK,YAAY,IAAI,GAAG,KAAK,CAAC,EAAG,YAAY,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;AAC9F,WAAO,MAAM;AAAA,EACd,GAAG,EAAE;AACN;AAEA,SAAS,SAAS,OAAe;AAChC,SAAO;AACR;AAEO,MAAM,YAAY;AAAA,EACxB,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC,QAAgC,CAAC;AAAA,EACzB,eAAqC,CAAC;AAAA,EACtC;AAAA,EAER,YAAY,QAAiB;AAC5B,SAAK,UAAU,WAAW,eACvB,cACA,WAAW,cACX,cACA;AAAA,EACJ;AAAA,EAEA,gBAAgB,QAAwB;AACvC,QAAI,CAAC,OAAO;AAAW,aAAO,OAAO;AAErC,UAAM,SAAS,OAAO,MAAM,mBAAM,OAAO,MAAM,KAAK;AACpD,UAAM,YAAY,OAAO,MAAM,mBAAM,OAAO,YAAY;AACxD,UAAM,MAAM,GAAG,MAAM,IAAI,SAAS,IAAI,OAAO,IAAI;AAEjD,QAAI,CAAC,KAAK,MAAM,GAAG,GAAG;AACrB,WAAK,WAAW,OAAO,KAAK;AAAA,IAC7B;AACA,WAAO,KAAK,MAAM,GAAG;AAAA,EACtB;AAAA,EAEQ,WAAW,OAAc;AAChC,UAAM,SAAS,MAAM,mBAAM,OAAO,MAAM,KAAK;AAC7C,UAAM,YAAY,MAAM,mBAAM,OAAO,YAAY;AACjD,UAAM,WAAW,GAAG,MAAM,IAAI,SAAS;AAEvC,QAAI,CAAC,KAAK,aAAa,QAAQ,GAAG;AACjC,iBAAW,UAAU,OAAO,OAAO,MAAM,mBAAM,OAAO,OAAO,CAAC,GAAG;AAChE,cAAM,YAAY,GAAG,QAAQ,IAAI,OAAO,IAAI;AAC5C,aAAK,MAAM,SAAS,IAAI,KAAK,QAAQ,OAAO,IAAI;AAAA,MACjD;AACA,WAAK,aAAa,QAAQ,IAAI;AAAA,IAC/B;AAAA,EACD;AAAA,EAEA,aAAa;AACZ,SAAK,QAAQ,CAAC;AACd,SAAK,eAAe,CAAC;AAAA,EACtB;AACD;","names":[]}
package/casing.d.cts ADDED
@@ -0,0 +1,14 @@
1
+ import type { Column } from "./column.cjs";
2
+ import { entityKind } from "./entity.cjs";
3
+ import type { Casing } from "./utils.cjs";
4
+ export declare function toSnakeCase(input: string): string;
5
+ export declare function toCamelCase(input: string): string;
6
+ export declare class CasingCache {
7
+ static readonly [entityKind]: string;
8
+ private cachedTables;
9
+ private convert;
10
+ constructor(casing?: Casing);
11
+ getColumnCasing(column: Column): string;
12
+ private cacheTable;
13
+ clearCache(): void;
14
+ }
package/casing.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { Column } from "./column.js";
2
+ import { entityKind } from "./entity.js";
3
+ import type { Casing } from "./utils.js";
4
+ export declare function toSnakeCase(input: string): string;
5
+ export declare function toCamelCase(input: string): string;
6
+ export declare class CasingCache {
7
+ static readonly [entityKind]: string;
8
+ private cachedTables;
9
+ private convert;
10
+ constructor(casing?: Casing);
11
+ getColumnCasing(column: Column): string;
12
+ private cacheTable;
13
+ clearCache(): void;
14
+ }
package/casing.js ADDED
@@ -0,0 +1,59 @@
1
+ import { entityKind } from "./entity.js";
2
+ import { Table } from "./table.js";
3
+ function toSnakeCase(input) {
4
+ const words = input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? [];
5
+ return words.map((word) => word.toLowerCase()).join("_");
6
+ }
7
+ function toCamelCase(input) {
8
+ const words = input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? [];
9
+ return words.reduce((acc, word, i) => {
10
+ const formattedWord = i === 0 ? word.toLowerCase() : `${word[0].toUpperCase()}${word.slice(1)}`;
11
+ return acc + formattedWord;
12
+ }, "");
13
+ }
14
+ function noopCase(input) {
15
+ return input;
16
+ }
17
+ class CasingCache {
18
+ static [entityKind] = "CasingCache";
19
+ /** @internal */
20
+ cache = {};
21
+ cachedTables = {};
22
+ convert;
23
+ constructor(casing) {
24
+ this.convert = casing === "snake_case" ? toSnakeCase : casing === "camelCase" ? toCamelCase : noopCase;
25
+ }
26
+ getColumnCasing(column) {
27
+ if (!column.keyAsName)
28
+ return column.name;
29
+ const schema = column.table[Table.Symbol.Schema] ?? "public";
30
+ const tableName = column.table[Table.Symbol.OriginalName];
31
+ const key = `${schema}.${tableName}.${column.name}`;
32
+ if (!this.cache[key]) {
33
+ this.cacheTable(column.table);
34
+ }
35
+ return this.cache[key];
36
+ }
37
+ cacheTable(table) {
38
+ const schema = table[Table.Symbol.Schema] ?? "public";
39
+ const tableName = table[Table.Symbol.OriginalName];
40
+ const tableKey = `${schema}.${tableName}`;
41
+ if (!this.cachedTables[tableKey]) {
42
+ for (const column of Object.values(table[Table.Symbol.Columns])) {
43
+ const columnKey = `${tableKey}.${column.name}`;
44
+ this.cache[columnKey] = this.convert(column.name);
45
+ }
46
+ this.cachedTables[tableKey] = true;
47
+ }
48
+ }
49
+ clearCache() {
50
+ this.cache = {};
51
+ this.cachedTables = {};
52
+ }
53
+ }
54
+ export {
55
+ CasingCache,
56
+ toCamelCase,
57
+ toSnakeCase
58
+ };
59
+ //# sourceMappingURL=casing.js.map
package/casing.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/casing.ts"],"sourcesContent":["import type { Column } from '~/column.ts';\nimport { entityKind } from './entity.ts';\nimport { Table } from './table.ts';\nimport type { Casing } from './utils.ts';\n\nexport function toSnakeCase(input: string) {\n\tconst words = input\n\t\t.replace(/['\\u2019]/g, '')\n\t\t.match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? [];\n\n\treturn words.map((word) => word.toLowerCase()).join('_');\n}\n\nexport function toCamelCase(input: string) {\n\tconst words = input\n\t\t.replace(/['\\u2019]/g, '')\n\t\t.match(/[\\da-z]+|[A-Z]+(?![a-z])|[A-Z][\\da-z]+/g) ?? [];\n\n\treturn words.reduce((acc, word, i) => {\n\t\tconst formattedWord = i === 0 ? word.toLowerCase() : `${word[0]!.toUpperCase()}${word.slice(1)}`;\n\t\treturn acc + formattedWord;\n\t}, '');\n}\n\nfunction noopCase(input: string) {\n\treturn input;\n}\n\nexport class CasingCache {\n\tstatic readonly [entityKind]: string = 'CasingCache';\n\n\t/** @internal */\n\tcache: Record<string, string> = {};\n\tprivate cachedTables: Record<string, true> = {};\n\tprivate convert: (input: string) => string;\n\n\tconstructor(casing?: Casing) {\n\t\tthis.convert = casing === 'snake_case'\n\t\t\t? toSnakeCase\n\t\t\t: casing === 'camelCase'\n\t\t\t? toCamelCase\n\t\t\t: noopCase;\n\t}\n\n\tgetColumnCasing(column: Column): string {\n\t\tif (!column.keyAsName) return column.name;\n\n\t\tconst schema = column.table[Table.Symbol.Schema] ?? 'public';\n\t\tconst tableName = column.table[Table.Symbol.OriginalName];\n\t\tconst key = `${schema}.${tableName}.${column.name}`;\n\n\t\tif (!this.cache[key]) {\n\t\t\tthis.cacheTable(column.table);\n\t\t}\n\t\treturn this.cache[key]!;\n\t}\n\n\tprivate cacheTable(table: Table) {\n\t\tconst schema = table[Table.Symbol.Schema] ?? 'public';\n\t\tconst tableName = table[Table.Symbol.OriginalName];\n\t\tconst tableKey = `${schema}.${tableName}`;\n\n\t\tif (!this.cachedTables[tableKey]) {\n\t\t\tfor (const column of Object.values(table[Table.Symbol.Columns])) {\n\t\t\t\tconst columnKey = `${tableKey}.${column.name}`;\n\t\t\t\tthis.cache[columnKey] = this.convert(column.name);\n\t\t\t}\n\t\t\tthis.cachedTables[tableKey] = true;\n\t\t}\n\t}\n\n\tclearCache() {\n\t\tthis.cache = {};\n\t\tthis.cachedTables = {};\n\t}\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AAGf,SAAS,YAAY,OAAe;AAC1C,QAAM,QAAQ,MACZ,QAAQ,cAAc,EAAE,EACxB,MAAM,yCAAyC,KAAK,CAAC;AAEvD,SAAO,MAAM,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AACxD;AAEO,SAAS,YAAY,OAAe;AAC1C,QAAM,QAAQ,MACZ,QAAQ,cAAc,EAAE,EACxB,MAAM,yCAAyC,KAAK,CAAC;AAEvD,SAAO,MAAM,OAAO,CAAC,KAAK,MAAM,MAAM;AACrC,UAAM,gBAAgB,MAAM,IAAI,KAAK,YAAY,IAAI,GAAG,KAAK,CAAC,EAAG,YAAY,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;AAC9F,WAAO,MAAM;AAAA,EACd,GAAG,EAAE;AACN;AAEA,SAAS,SAAS,OAAe;AAChC,SAAO;AACR;AAEO,MAAM,YAAY;AAAA,EACxB,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC,QAAgC,CAAC;AAAA,EACzB,eAAqC,CAAC;AAAA,EACtC;AAAA,EAER,YAAY,QAAiB;AAC5B,SAAK,UAAU,WAAW,eACvB,cACA,WAAW,cACX,cACA;AAAA,EACJ;AAAA,EAEA,gBAAgB,QAAwB;AACvC,QAAI,CAAC,OAAO;AAAW,aAAO,OAAO;AAErC,UAAM,SAAS,OAAO,MAAM,MAAM,OAAO,MAAM,KAAK;AACpD,UAAM,YAAY,OAAO,MAAM,MAAM,OAAO,YAAY;AACxD,UAAM,MAAM,GAAG,MAAM,IAAI,SAAS,IAAI,OAAO,IAAI;AAEjD,QAAI,CAAC,KAAK,MAAM,GAAG,GAAG;AACrB,WAAK,WAAW,OAAO,KAAK;AAAA,IAC7B;AACA,WAAO,KAAK,MAAM,GAAG;AAAA,EACtB;AAAA,EAEQ,WAAW,OAAc;AAChC,UAAM,SAAS,MAAM,MAAM,OAAO,MAAM,KAAK;AAC7C,UAAM,YAAY,MAAM,MAAM,OAAO,YAAY;AACjD,UAAM,WAAW,GAAG,MAAM,IAAI,SAAS;AAEvC,QAAI,CAAC,KAAK,aAAa,QAAQ,GAAG;AACjC,iBAAW,UAAU,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC,GAAG;AAChE,cAAM,YAAY,GAAG,QAAQ,IAAI,OAAO,IAAI;AAC5C,aAAK,MAAM,SAAS,IAAI,KAAK,QAAQ,OAAO,IAAI;AAAA,MACjD;AACA,WAAK,aAAa,QAAQ,IAAI;AAAA,IAC/B;AAAA,EACD;AAAA,EAEA,aAAa;AACZ,SAAK,QAAQ,CAAC;AACd,SAAK,eAAe,CAAC;AAAA,EACtB;AACD;","names":[]}
@@ -28,6 +28,7 @@ class ColumnBuilder {
28
28
  constructor(name, dataType, columnType) {
29
29
  this.config = {
30
30
  name,
31
+ keyAsName: name === "",
31
32
  notNull: false,
32
33
  default: void 0,
33
34
  hasDefault: false,
@@ -116,6 +117,12 @@ class ColumnBuilder {
116
117
  this.config.notNull = true;
117
118
  return this;
118
119
  }
120
+ /** @internal Sets the name of the column to the key within the table definition if a name was not given. */
121
+ setName(name) {
122
+ if (this.config.name !== "")
123
+ return;
124
+ this.config.name = name;
125
+ }
119
126
  }
120
127
  // Annotate the CommonJS export names for ESM import in node:
121
128
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport type GeneratedStorageMode = 'virtual' | 'stored';\n\nexport type GeneratedType = 'always' | 'byDefault';\n\nexport type GeneratedColumnConfig<TDataType> = {\n\tas: TDataType | SQL | (() => SQL);\n\ttype?: GeneratedType;\n\tmode?: GeneratedStorageMode;\n};\n\nexport type GeneratedIdentityConfig = {\n\tsequenceName?: string;\n\tsequenceOptions?: PgSequenceOptions;\n\ttype: 'always' | 'byDefault';\n};\n\nexport interface ColumnBuilderBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n\tgenerated: GeneratedColumnConfig<unknown> | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTableName extends string,\n\tTData = T extends { $type: infer U } ? U : T['data'],\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: TData;\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tisPrimaryKey: T extends { isPrimaryKey: true } ? true : false;\n\tisAutoincrement: T extends { isAutoincrement: true } ? true : false;\n\thasRuntimeDefault: T extends { hasRuntimeDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn<TTableName, U, 'common'>\n\t\t: never;\n\tgenerated: T['generated'] extends object ? T['generated'] : undefined;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t\tgenerated: GeneratedColumnConfig<T['data']> | undefined;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {\n\tname: string;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\tonUpdateFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type IsPrimaryKey<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisPrimaryKey: true;\n\t};\n};\n\nexport type IsAutoincrement<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisAutoincrement: true;\n\t};\n};\n\nexport type HasRuntimeDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasRuntimeDefault: true;\n\t};\n};\n\nexport type $Type<T extends ColumnBuilderBase, TType> = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport type HasGenerated<T extends ColumnBuilderBase, TGenerated extends {} = {}> = T & {\n\t_: {\n\t\thasDefault: true;\n\t\tgenerated: TGenerated;\n\t};\n};\n\nexport type IsIdentityByDefault<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tgenerated: { as: any; type: TType };\n\t};\n};\n\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig<T, TTypeConfig>;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase<T, TTypeConfig> {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig<T, TTypeConfig>;\n\n\tprotected config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: undefined,\n\t\t} as ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type<UserId>().primaryKey(),\n\t * \tdetails: json('details').$type<UserDetails>().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type<TType>(): $Type<this, TType> {\n\t\treturn this as $Type<this, TType>;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull<this> {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull<this>;\n\t}\n\n\t/**\n\t * Adds a `default <value>` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault<this> {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasRuntimeDefault<HasDefault<this>> {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasRuntimeDefault<HasDefault<this>>;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a dynamic update value to the column.\n\t * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$onUpdateFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault<this> {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Alias for {@link $onUpdateFn}.\n\t */\n\t$onUpdate = this.$onUpdateFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t: IsPrimaryKey<NotNull<this>>\n\t{\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t\t: IsPrimaryKey<NotNull<this>>;\n\t}\n\n\tabstract generatedAlwaysAs(\n\t\tas: SQL | T['data'] | (() => SQL),\n\t\tconfig?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this>;\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn : never;\n\n// TODO\n// try to make sql as well + indexRaw\n\n// optional after everything will be working as expected\n// also try to leave only needed methods for extraConfig\n// make an error if I pass .asc() to fk and so on\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn<TTableName, TConfigMap[Key], TDialect>;\n\t}\n\t& {};\n\nexport type BuildExtraConfigColumns<\n\t_TTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> =\n\tTDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AA4KpB,MAAe,cAKyB;AAAA,EAC9C,QAAiB,wBAAU,IAAY;AAAA,EAI7B;AAAA,EAEV,YAAY,MAAiB,UAAyB,YAA6B;AAClF,SAAK,SAAS;AAAA,MACb;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,QAAmC;AAClC,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAyB;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAA+F;AACtG,SAAK,OAAO,UAAU;AACtB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACC,IACsC;AACtC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,YACC,IACmB;AACnB,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,aAEA;AACC,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EAER;AAMD;","names":[]}
1
+ {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Assume, Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport type GeneratedStorageMode = 'virtual' | 'stored';\n\nexport type GeneratedType = 'always' | 'byDefault';\n\nexport type GeneratedColumnConfig<TDataType> = {\n\tas: TDataType | SQL | (() => SQL);\n\ttype?: GeneratedType;\n\tmode?: GeneratedStorageMode;\n};\n\nexport type GeneratedIdentityConfig = {\n\tsequenceName?: string;\n\tsequenceOptions?: PgSequenceOptions;\n\ttype: 'always' | 'byDefault';\n};\n\nexport interface ColumnBuilderBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n\tgenerated: GeneratedColumnConfig<unknown> | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTableName extends string,\n\tTData = T extends { $type: infer U } ? U : T['data'],\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: TData;\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tisPrimaryKey: T extends { isPrimaryKey: true } ? true : false;\n\tisAutoincrement: T extends { isAutoincrement: true } ? true : false;\n\thasRuntimeDefault: T extends { hasRuntimeDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn<TTableName, U, 'common'>\n\t\t: never;\n\tgenerated: T['generated'] extends object ? T['generated'] : undefined;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t\tgenerated: GeneratedColumnConfig<T['data']> | undefined;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {\n\tname: string;\n\tkeyAsName: boolean;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\tonUpdateFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type IsPrimaryKey<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisPrimaryKey: true;\n\t};\n};\n\nexport type IsAutoincrement<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisAutoincrement: true;\n\t};\n};\n\nexport type HasRuntimeDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasRuntimeDefault: true;\n\t};\n};\n\nexport type $Type<T extends ColumnBuilderBase, TType> = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport type HasGenerated<T extends ColumnBuilderBase, TGenerated extends {} = {}> = T & {\n\t_: {\n\t\thasDefault: true;\n\t\tgenerated: TGenerated;\n\t};\n};\n\nexport type IsIdentityByDefault<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tgenerated: { as: any; type: TType };\n\t};\n};\n\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig<T, TTypeConfig>;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase<T, TTypeConfig> {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig<T, TTypeConfig>;\n\n\tprotected config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tkeyAsName: name === '',\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: undefined,\n\t\t} as ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type<UserId>().primaryKey(),\n\t * \tdetails: json('details').$type<UserDetails>().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type<TType>(): $Type<this, TType> {\n\t\treturn this as $Type<this, TType>;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull<this> {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull<this>;\n\t}\n\n\t/**\n\t * Adds a `default <value>` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault<this> {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasRuntimeDefault<HasDefault<this>> {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasRuntimeDefault<HasDefault<this>>;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a dynamic update value to the column.\n\t * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$onUpdateFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault<this> {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Alias for {@link $onUpdateFn}.\n\t */\n\t$onUpdate = this.$onUpdateFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t: IsPrimaryKey<NotNull<this>>\n\t{\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t\t: IsPrimaryKey<NotNull<this>>;\n\t}\n\n\tabstract generatedAlwaysAs(\n\t\tas: SQL | T['data'] | (() => SQL),\n\t\tconfig?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this>;\n\n\t/** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n\tsetName(name: string) {\n\t\tif (this.config.name !== '') return;\n\t\tthis.config.name = name;\n\t}\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn : never;\n\n// TODO\n// try to make sql as well + indexRaw\n\n// optional after everything will be working as expected\n// also try to leave only needed methods for extraConfig\n// make an error if I pass .asc() to fk and so on\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn<TTableName, {\n\t\t\t_:\n\t\t\t\t& Omit<TConfigMap[Key]['_'], 'name'>\n\t\t\t\t& { name: TConfigMap[Key]['_']['name'] extends '' ? Assume<Key, string> : TConfigMap[Key]['_']['name'] };\n\t\t}, TDialect>;\n\t}\n\t& {};\n\nexport type BuildExtraConfigColumns<\n\t_TTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> =\n\tTDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AA6KpB,MAAe,cAKyB;AAAA,EAC9C,QAAiB,wBAAU,IAAY;AAAA,EAI7B;AAAA,EAEV,YAAY,MAAiB,UAAyB,YAA6B;AAClF,SAAK,SAAS;AAAA,MACb;AAAA,MACA,WAAW,SAAS;AAAA,MACpB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,QAAmC;AAClC,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAyB;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAA+F;AACtG,SAAK,OAAO,UAAU;AACtB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACC,IACsC;AACtC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,YACC,IACmB;AACnB,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,aAEA;AACC,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EAER;AAAA;AAAA,EAQA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS;AAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
@@ -4,7 +4,7 @@ import type { MySqlColumn } from "./mysql-core/index.cjs";
4
4
  import type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from "./pg-core/index.cjs";
5
5
  import type { SQL } from "./sql/sql.cjs";
6
6
  import type { SQLiteColumn } from "./sqlite-core/index.cjs";
7
- import type { Simplify } from "./utils.cjs";
7
+ import type { Assume, Simplify } from "./utils.cjs";
8
8
  export type ColumnDataType = 'string' | 'number' | 'boolean' | 'array' | 'json' | 'date' | 'bigint' | 'custom' | 'buffer';
9
9
  export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';
10
10
  export type GeneratedStorageMode = 'virtual' | 'stored';
@@ -76,6 +76,7 @@ export type ColumnBuilderTypeConfig<T extends ColumnBuilderBaseConfig<ColumnData
76
76
  } & TTypeConfig>;
77
77
  export type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {
78
78
  name: string;
79
+ keyAsName: boolean;
79
80
  notNull: boolean;
80
81
  default: TData | SQL | undefined;
81
82
  defaultFn: (() => TData | SQL) | undefined;
@@ -187,9 +188,9 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
187
188
  /**
188
189
  * Alias for {@link $defaultFn}.
189
190
  */
190
- $default: (fn: () => SQL<unknown> | (this["_"] extends {
191
+ $default: (fn: () => (this["_"] extends {
191
192
  $type: infer U;
192
- } ? U : this["_"]["data"])) => HasRuntimeDefault<HasDefault<this>>;
193
+ } ? U : this["_"]["data"]) | SQL) => HasRuntimeDefault<HasDefault<this>>;
193
194
  /**
194
195
  * Adds a dynamic update value to the column.
195
196
  * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.
@@ -203,9 +204,9 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
203
204
  /**
204
205
  * Alias for {@link $onUpdateFn}.
205
206
  */
206
- $onUpdate: (fn: () => SQL<unknown> | (this["_"] extends {
207
+ $onUpdate: (fn: () => (this["_"] extends {
207
208
  $type: infer U;
208
- } ? U : this["_"]["data"])) => HasDefault<this>;
209
+ } ? U : this["_"]["data"]) | SQL) => HasDefault<this>;
209
210
  /**
210
211
  * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.
211
212
  *
@@ -217,7 +218,11 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
217
218
  export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>> : never;
218
219
  export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : never;
219
220
  export type BuildColumns<TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
220
- [Key in keyof TConfigMap]: BuildColumn<TTableName, TConfigMap[Key], TDialect>;
221
+ [Key in keyof TConfigMap]: BuildColumn<TTableName, {
222
+ _: Omit<TConfigMap[Key]['_'], 'name'> & {
223
+ name: TConfigMap[Key]['_']['name'] extends '' ? Assume<Key, string> : TConfigMap[Key]['_']['name'];
224
+ };
225
+ }, TDialect>;
221
226
  } & {};
222
227
  export type BuildExtraConfigColumns<_TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
223
228
  [Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;
@@ -4,7 +4,7 @@ import type { MySqlColumn } from "./mysql-core/index.js";
4
4
  import type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from "./pg-core/index.js";
5
5
  import type { SQL } from "./sql/sql.js";
6
6
  import type { SQLiteColumn } from "./sqlite-core/index.js";
7
- import type { Simplify } from "./utils.js";
7
+ import type { Assume, Simplify } from "./utils.js";
8
8
  export type ColumnDataType = 'string' | 'number' | 'boolean' | 'array' | 'json' | 'date' | 'bigint' | 'custom' | 'buffer';
9
9
  export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';
10
10
  export type GeneratedStorageMode = 'virtual' | 'stored';
@@ -76,6 +76,7 @@ export type ColumnBuilderTypeConfig<T extends ColumnBuilderBaseConfig<ColumnData
76
76
  } & TTypeConfig>;
77
77
  export type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {
78
78
  name: string;
79
+ keyAsName: boolean;
79
80
  notNull: boolean;
80
81
  default: TData | SQL | undefined;
81
82
  defaultFn: (() => TData | SQL) | undefined;
@@ -187,9 +188,9 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
187
188
  /**
188
189
  * Alias for {@link $defaultFn}.
189
190
  */
190
- $default: (fn: () => SQL<unknown> | (this["_"] extends {
191
+ $default: (fn: () => (this["_"] extends {
191
192
  $type: infer U;
192
- } ? U : this["_"]["data"])) => HasRuntimeDefault<HasDefault<this>>;
193
+ } ? U : this["_"]["data"]) | SQL) => HasRuntimeDefault<HasDefault<this>>;
193
194
  /**
194
195
  * Adds a dynamic update value to the column.
195
196
  * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.
@@ -203,9 +204,9 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
203
204
  /**
204
205
  * Alias for {@link $onUpdateFn}.
205
206
  */
206
- $onUpdate: (fn: () => SQL<unknown> | (this["_"] extends {
207
+ $onUpdate: (fn: () => (this["_"] extends {
207
208
  $type: infer U;
208
- } ? U : this["_"]["data"])) => HasDefault<this>;
209
+ } ? U : this["_"]["data"]) | SQL) => HasDefault<this>;
209
210
  /**
210
211
  * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.
211
212
  *
@@ -217,7 +218,11 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
217
218
  export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>> : never;
218
219
  export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : never;
219
220
  export type BuildColumns<TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
220
- [Key in keyof TConfigMap]: BuildColumn<TTableName, TConfigMap[Key], TDialect>;
221
+ [Key in keyof TConfigMap]: BuildColumn<TTableName, {
222
+ _: Omit<TConfigMap[Key]['_'], 'name'> & {
223
+ name: TConfigMap[Key]['_']['name'] extends '' ? Assume<Key, string> : TConfigMap[Key]['_']['name'];
224
+ };
225
+ }, TDialect>;
221
226
  } & {};
222
227
  export type BuildExtraConfigColumns<_TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
223
228
  [Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;
package/column-builder.js CHANGED
@@ -5,6 +5,7 @@ class ColumnBuilder {
5
5
  constructor(name, dataType, columnType) {
6
6
  this.config = {
7
7
  name,
8
+ keyAsName: name === "",
8
9
  notNull: false,
9
10
  default: void 0,
10
11
  hasDefault: false,
@@ -93,6 +94,12 @@ class ColumnBuilder {
93
94
  this.config.notNull = true;
94
95
  return this;
95
96
  }
97
+ /** @internal Sets the name of the column to the key within the table definition if a name was not given. */
98
+ setName(name) {
99
+ if (this.config.name !== "")
100
+ return;
101
+ this.config.name = name;
102
+ }
96
103
  }
97
104
  export {
98
105
  ColumnBuilder
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport type GeneratedStorageMode = 'virtual' | 'stored';\n\nexport type GeneratedType = 'always' | 'byDefault';\n\nexport type GeneratedColumnConfig<TDataType> = {\n\tas: TDataType | SQL | (() => SQL);\n\ttype?: GeneratedType;\n\tmode?: GeneratedStorageMode;\n};\n\nexport type GeneratedIdentityConfig = {\n\tsequenceName?: string;\n\tsequenceOptions?: PgSequenceOptions;\n\ttype: 'always' | 'byDefault';\n};\n\nexport interface ColumnBuilderBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n\tgenerated: GeneratedColumnConfig<unknown> | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTableName extends string,\n\tTData = T extends { $type: infer U } ? U : T['data'],\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: TData;\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tisPrimaryKey: T extends { isPrimaryKey: true } ? true : false;\n\tisAutoincrement: T extends { isAutoincrement: true } ? true : false;\n\thasRuntimeDefault: T extends { hasRuntimeDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn<TTableName, U, 'common'>\n\t\t: never;\n\tgenerated: T['generated'] extends object ? T['generated'] : undefined;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t\tgenerated: GeneratedColumnConfig<T['data']> | undefined;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {\n\tname: string;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\tonUpdateFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type IsPrimaryKey<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisPrimaryKey: true;\n\t};\n};\n\nexport type IsAutoincrement<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisAutoincrement: true;\n\t};\n};\n\nexport type HasRuntimeDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasRuntimeDefault: true;\n\t};\n};\n\nexport type $Type<T extends ColumnBuilderBase, TType> = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport type HasGenerated<T extends ColumnBuilderBase, TGenerated extends {} = {}> = T & {\n\t_: {\n\t\thasDefault: true;\n\t\tgenerated: TGenerated;\n\t};\n};\n\nexport type IsIdentityByDefault<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tgenerated: { as: any; type: TType };\n\t};\n};\n\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig<T, TTypeConfig>;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase<T, TTypeConfig> {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig<T, TTypeConfig>;\n\n\tprotected config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: undefined,\n\t\t} as ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type<UserId>().primaryKey(),\n\t * \tdetails: json('details').$type<UserDetails>().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type<TType>(): $Type<this, TType> {\n\t\treturn this as $Type<this, TType>;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull<this> {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull<this>;\n\t}\n\n\t/**\n\t * Adds a `default <value>` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault<this> {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasRuntimeDefault<HasDefault<this>> {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasRuntimeDefault<HasDefault<this>>;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a dynamic update value to the column.\n\t * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$onUpdateFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault<this> {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Alias for {@link $onUpdateFn}.\n\t */\n\t$onUpdate = this.$onUpdateFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t: IsPrimaryKey<NotNull<this>>\n\t{\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t\t: IsPrimaryKey<NotNull<this>>;\n\t}\n\n\tabstract generatedAlwaysAs(\n\t\tas: SQL | T['data'] | (() => SQL),\n\t\tconfig?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this>;\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn : never;\n\n// TODO\n// try to make sql as well + indexRaw\n\n// optional after everything will be working as expected\n// also try to leave only needed methods for extraConfig\n// make an error if I pass .asc() to fk and so on\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn<TTableName, TConfigMap[Key], TDialect>;\n\t}\n\t& {};\n\nexport type BuildExtraConfigColumns<\n\t_TTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> =\n\tTDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":"AAAA,SAAS,kBAAkB;AA4KpB,MAAe,cAKyB;AAAA,EAC9C,QAAiB,UAAU,IAAY;AAAA,EAI7B;AAAA,EAEV,YAAY,MAAiB,UAAyB,YAA6B;AAClF,SAAK,SAAS;AAAA,MACb;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,QAAmC;AAClC,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAyB;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAA+F;AACtG,SAAK,OAAO,UAAU;AACtB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACC,IACsC;AACtC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,YACC,IACmB;AACnB,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,aAEA;AACC,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EAER;AAMD;","names":[]}
1
+ {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Assume, Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport type GeneratedStorageMode = 'virtual' | 'stored';\n\nexport type GeneratedType = 'always' | 'byDefault';\n\nexport type GeneratedColumnConfig<TDataType> = {\n\tas: TDataType | SQL | (() => SQL);\n\ttype?: GeneratedType;\n\tmode?: GeneratedStorageMode;\n};\n\nexport type GeneratedIdentityConfig = {\n\tsequenceName?: string;\n\tsequenceOptions?: PgSequenceOptions;\n\ttype: 'always' | 'byDefault';\n};\n\nexport interface ColumnBuilderBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n\tgenerated: GeneratedColumnConfig<unknown> | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTableName extends string,\n\tTData = T extends { $type: infer U } ? U : T['data'],\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: TData;\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tisPrimaryKey: T extends { isPrimaryKey: true } ? true : false;\n\tisAutoincrement: T extends { isAutoincrement: true } ? true : false;\n\thasRuntimeDefault: T extends { hasRuntimeDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn<TTableName, U, 'common'>\n\t\t: never;\n\tgenerated: T['generated'] extends object ? T['generated'] : undefined;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t\tgenerated: GeneratedColumnConfig<T['data']> | undefined;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {\n\tname: string;\n\tkeyAsName: boolean;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\tonUpdateFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type IsPrimaryKey<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisPrimaryKey: true;\n\t};\n};\n\nexport type IsAutoincrement<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisAutoincrement: true;\n\t};\n};\n\nexport type HasRuntimeDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasRuntimeDefault: true;\n\t};\n};\n\nexport type $Type<T extends ColumnBuilderBase, TType> = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport type HasGenerated<T extends ColumnBuilderBase, TGenerated extends {} = {}> = T & {\n\t_: {\n\t\thasDefault: true;\n\t\tgenerated: TGenerated;\n\t};\n};\n\nexport type IsIdentityByDefault<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tgenerated: { as: any; type: TType };\n\t};\n};\n\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig<T, TTypeConfig>;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase<T, TTypeConfig> {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig<T, TTypeConfig>;\n\n\tprotected config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tkeyAsName: name === '',\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: undefined,\n\t\t} as ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type<UserId>().primaryKey(),\n\t * \tdetails: json('details').$type<UserDetails>().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type<TType>(): $Type<this, TType> {\n\t\treturn this as $Type<this, TType>;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull<this> {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull<this>;\n\t}\n\n\t/**\n\t * Adds a `default <value>` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault<this> {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasRuntimeDefault<HasDefault<this>> {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasRuntimeDefault<HasDefault<this>>;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a dynamic update value to the column.\n\t * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$onUpdateFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault<this> {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Alias for {@link $onUpdateFn}.\n\t */\n\t$onUpdate = this.$onUpdateFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t: IsPrimaryKey<NotNull<this>>\n\t{\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t\t: IsPrimaryKey<NotNull<this>>;\n\t}\n\n\tabstract generatedAlwaysAs(\n\t\tas: SQL | T['data'] | (() => SQL),\n\t\tconfig?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this>;\n\n\t/** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n\tsetName(name: string) {\n\t\tif (this.config.name !== '') return;\n\t\tthis.config.name = name;\n\t}\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn : never;\n\n// TODO\n// try to make sql as well + indexRaw\n\n// optional after everything will be working as expected\n// also try to leave only needed methods for extraConfig\n// make an error if I pass .asc() to fk and so on\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn<TTableName, {\n\t\t\t_:\n\t\t\t\t& Omit<TConfigMap[Key]['_'], 'name'>\n\t\t\t\t& { name: TConfigMap[Key]['_']['name'] extends '' ? Assume<Key, string> : TConfigMap[Key]['_']['name'] };\n\t\t}, TDialect>;\n\t}\n\t& {};\n\nexport type BuildExtraConfigColumns<\n\t_TTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> =\n\tTDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":"AAAA,SAAS,kBAAkB;AA6KpB,MAAe,cAKyB;AAAA,EAC9C,QAAiB,UAAU,IAAY;AAAA,EAI7B;AAAA,EAEV,YAAY,MAAiB,UAAyB,YAA6B;AAClF,SAAK,SAAS;AAAA,MACb;AAAA,MACA,WAAW,SAAS;AAAA,MACpB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,QAAmC;AAClC,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAyB;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAA+F;AACtG,SAAK,OAAO,UAAU;AACtB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACC,IACsC;AACtC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,YACC,IACmB;AACnB,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,aAEA;AACC,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EAER;AAAA;AAAA,EAQA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS;AAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
package/column.cjs CHANGED
@@ -27,6 +27,7 @@ class Column {
27
27
  this.table = table;
28
28
  this.config = config;
29
29
  this.name = config.name;
30
+ this.keyAsName = config.keyAsName;
30
31
  this.notNull = config.notNull;
31
32
  this.default = config.default;
32
33
  this.defaultFn = config.defaultFn;
@@ -43,6 +44,7 @@ class Column {
43
44
  }
44
45
  static [import_entity.entityKind] = "Column";
45
46
  name;
47
+ keyAsName;
46
48
  primary;
47
49
  notNull;
48
50
  default;