drizzle-orm 0.44.2 → 0.44.3-08bb2d5

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 (827) hide show
  1. package/cockroach/driver.cjs +113 -0
  2. package/cockroach/driver.cjs.map +1 -0
  3. package/cockroach/driver.d.cts +42 -0
  4. package/cockroach/driver.d.ts +42 -0
  5. package/cockroach/driver.js +80 -0
  6. package/cockroach/driver.js.map +1 -0
  7. package/cockroach/index.cjs +25 -0
  8. package/cockroach/index.cjs.map +1 -0
  9. package/cockroach/index.d.cts +2 -0
  10. package/cockroach/index.d.ts +2 -0
  11. package/cockroach/index.js +3 -0
  12. package/cockroach/index.js.map +1 -0
  13. package/cockroach/migrator.cjs +33 -0
  14. package/cockroach/migrator.cjs.map +1 -0
  15. package/cockroach/migrator.d.cts +3 -0
  16. package/cockroach/migrator.d.ts +3 -0
  17. package/cockroach/migrator.js +9 -0
  18. package/cockroach/migrator.js.map +1 -0
  19. package/cockroach/session.cjs +253 -0
  20. package/cockroach/session.cjs.map +1 -0
  21. package/cockroach/session.d.cts +48 -0
  22. package/cockroach/session.d.ts +48 -0
  23. package/cockroach/session.js +217 -0
  24. package/cockroach/session.js.map +1 -0
  25. package/cockroach-core/alias.cjs +32 -0
  26. package/cockroach-core/alias.cjs.map +1 -0
  27. package/cockroach-core/alias.d.cts +4 -0
  28. package/cockroach-core/alias.d.ts +4 -0
  29. package/cockroach-core/alias.js +8 -0
  30. package/cockroach-core/alias.js.map +1 -0
  31. package/cockroach-core/checks.cjs +58 -0
  32. package/cockroach-core/checks.cjs.map +1 -0
  33. package/cockroach-core/checks.d.cts +18 -0
  34. package/cockroach-core/checks.d.ts +18 -0
  35. package/cockroach-core/checks.js +32 -0
  36. package/cockroach-core/checks.js.map +1 -0
  37. package/cockroach-core/columns/all.cjs +79 -0
  38. package/cockroach-core/columns/all.cjs.map +1 -0
  39. package/cockroach-core/columns/all.d.cts +50 -0
  40. package/cockroach-core/columns/all.d.ts +50 -0
  41. package/cockroach-core/columns/all.js +55 -0
  42. package/cockroach-core/columns/all.js.map +1 -0
  43. package/cockroach-core/columns/bigint.cjs +104 -0
  44. package/cockroach-core/columns/bigint.cjs.map +1 -0
  45. package/cockroach-core/columns/bigint.d.cts +46 -0
  46. package/cockroach-core/columns/bigint.d.ts +46 -0
  47. package/cockroach-core/columns/bigint.js +75 -0
  48. package/cockroach-core/columns/bigint.js.map +1 -0
  49. package/cockroach-core/columns/bit.cjs +60 -0
  50. package/cockroach-core/columns/bit.cjs.map +1 -0
  51. package/cockroach-core/columns/bit.d.cts +37 -0
  52. package/cockroach-core/columns/bit.d.ts +37 -0
  53. package/cockroach-core/columns/bit.js +34 -0
  54. package/cockroach-core/columns/bit.js.map +1 -0
  55. package/cockroach-core/columns/boolean.cjs +56 -0
  56. package/cockroach-core/columns/boolean.cjs.map +1 -0
  57. package/cockroach-core/columns/boolean.d.cts +22 -0
  58. package/cockroach-core/columns/boolean.d.ts +22 -0
  59. package/cockroach-core/columns/boolean.js +30 -0
  60. package/cockroach-core/columns/boolean.js.map +1 -0
  61. package/cockroach-core/columns/char.cjs +62 -0
  62. package/cockroach-core/columns/char.cjs.map +1 -0
  63. package/cockroach-core/columns/char.d.cts +45 -0
  64. package/cockroach-core/columns/char.d.ts +45 -0
  65. package/cockroach-core/columns/char.js +36 -0
  66. package/cockroach-core/columns/char.js.map +1 -0
  67. package/cockroach-core/columns/common.cjs +191 -0
  68. package/cockroach-core/columns/common.cjs.map +1 -0
  69. package/cockroach-core/columns/common.d.cts +118 -0
  70. package/cockroach-core/columns/common.d.ts +118 -0
  71. package/cockroach-core/columns/common.js +161 -0
  72. package/cockroach-core/columns/common.js.map +1 -0
  73. package/cockroach-core/columns/custom.cjs +77 -0
  74. package/cockroach-core/columns/custom.cjs.map +1 -0
  75. package/cockroach-core/columns/custom.d.cts +155 -0
  76. package/cockroach-core/columns/custom.d.ts +155 -0
  77. package/cockroach-core/columns/custom.js +51 -0
  78. package/cockroach-core/columns/custom.js.map +1 -0
  79. package/cockroach-core/columns/date.cjs +91 -0
  80. package/cockroach-core/columns/date.cjs.map +1 -0
  81. package/cockroach-core/columns/date.common.cjs +37 -0
  82. package/cockroach-core/columns/date.common.cjs.map +1 -0
  83. package/cockroach-core/columns/date.common.d.cts +7 -0
  84. package/cockroach-core/columns/date.common.d.ts +7 -0
  85. package/cockroach-core/columns/date.common.js +13 -0
  86. package/cockroach-core/columns/date.common.js.map +1 -0
  87. package/cockroach-core/columns/date.d.cts +46 -0
  88. package/cockroach-core/columns/date.d.ts +46 -0
  89. package/cockroach-core/columns/date.js +63 -0
  90. package/cockroach-core/columns/date.js.map +1 -0
  91. package/cockroach-core/columns/decimal.cjs +164 -0
  92. package/cockroach-core/columns/decimal.cjs.map +1 -0
  93. package/cockroach-core/columns/decimal.d.cts +99 -0
  94. package/cockroach-core/columns/decimal.d.ts +99 -0
  95. package/cockroach-core/columns/decimal.js +133 -0
  96. package/cockroach-core/columns/decimal.js.map +1 -0
  97. package/cockroach-core/columns/enum.cjs +127 -0
  98. package/cockroach-core/columns/enum.cjs.map +1 -0
  99. package/cockroach-core/columns/enum.d.cts +83 -0
  100. package/cockroach-core/columns/enum.d.ts +83 -0
  101. package/cockroach-core/columns/enum.js +96 -0
  102. package/cockroach-core/columns/enum.js.map +1 -0
  103. package/cockroach-core/columns/float.cjs +65 -0
  104. package/cockroach-core/columns/float.cjs.map +1 -0
  105. package/cockroach-core/columns/float.d.cts +24 -0
  106. package/cockroach-core/columns/float.d.ts +24 -0
  107. package/cockroach-core/columns/float.js +38 -0
  108. package/cockroach-core/columns/float.js.map +1 -0
  109. package/cockroach-core/columns/geometry.cjs +98 -0
  110. package/cockroach-core/columns/geometry.cjs.map +1 -0
  111. package/cockroach-core/columns/geometry.d.cts +58 -0
  112. package/cockroach-core/columns/geometry.d.ts +58 -0
  113. package/cockroach-core/columns/geometry.js +70 -0
  114. package/cockroach-core/columns/geometry.js.map +1 -0
  115. package/cockroach-core/columns/index.cjs +69 -0
  116. package/cockroach-core/columns/index.cjs.map +1 -0
  117. package/cockroach-core/columns/index.d.cts +24 -0
  118. package/cockroach-core/columns/index.d.ts +24 -0
  119. package/cockroach-core/columns/index.js +25 -0
  120. package/cockroach-core/columns/index.js.map +1 -0
  121. package/cockroach-core/columns/inet.cjs +56 -0
  122. package/cockroach-core/columns/inet.cjs.map +1 -0
  123. package/cockroach-core/columns/inet.d.cts +22 -0
  124. package/cockroach-core/columns/inet.d.ts +22 -0
  125. package/cockroach-core/columns/inet.js +30 -0
  126. package/cockroach-core/columns/inet.js.map +1 -0
  127. package/cockroach-core/columns/int.common.cjs +55 -0
  128. package/cockroach-core/columns/int.common.cjs.map +1 -0
  129. package/cockroach-core/columns/int.common.d.cts +11 -0
  130. package/cockroach-core/columns/int.common.d.ts +11 -0
  131. package/cockroach-core/columns/int.common.js +31 -0
  132. package/cockroach-core/columns/int.common.js.map +1 -0
  133. package/cockroach-core/columns/integer.cjs +63 -0
  134. package/cockroach-core/columns/integer.cjs.map +1 -0
  135. package/cockroach-core/columns/integer.d.cts +24 -0
  136. package/cockroach-core/columns/integer.d.ts +24 -0
  137. package/cockroach-core/columns/integer.js +37 -0
  138. package/cockroach-core/columns/integer.js.map +1 -0
  139. package/cockroach-core/columns/interval.cjs +63 -0
  140. package/cockroach-core/columns/interval.cjs.map +1 -0
  141. package/cockroach-core/columns/interval.d.cts +34 -0
  142. package/cockroach-core/columns/interval.d.ts +34 -0
  143. package/cockroach-core/columns/interval.js +37 -0
  144. package/cockroach-core/columns/interval.js.map +1 -0
  145. package/cockroach-core/columns/jsonb.cjs +72 -0
  146. package/cockroach-core/columns/jsonb.cjs.map +1 -0
  147. package/cockroach-core/columns/jsonb.d.cts +28 -0
  148. package/cockroach-core/columns/jsonb.d.ts +28 -0
  149. package/cockroach-core/columns/jsonb.js +46 -0
  150. package/cockroach-core/columns/jsonb.js.map +1 -0
  151. package/cockroach-core/columns/real.cjs +66 -0
  152. package/cockroach-core/columns/real.cjs.map +1 -0
  153. package/cockroach-core/columns/real.d.cts +29 -0
  154. package/cockroach-core/columns/real.d.ts +29 -0
  155. package/cockroach-core/columns/real.js +40 -0
  156. package/cockroach-core/columns/real.js.map +1 -0
  157. package/cockroach-core/columns/smallint.cjs +68 -0
  158. package/cockroach-core/columns/smallint.cjs.map +1 -0
  159. package/cockroach-core/columns/smallint.d.cts +26 -0
  160. package/cockroach-core/columns/smallint.d.ts +26 -0
  161. package/cockroach-core/columns/smallint.js +41 -0
  162. package/cockroach-core/columns/smallint.js.map +1 -0
  163. package/cockroach-core/columns/string.cjs +68 -0
  164. package/cockroach-core/columns/string.cjs.map +1 -0
  165. package/cockroach-core/columns/string.d.cts +51 -0
  166. package/cockroach-core/columns/string.d.ts +51 -0
  167. package/cockroach-core/columns/string.js +41 -0
  168. package/cockroach-core/columns/string.js.map +1 -0
  169. package/cockroach-core/columns/time.cjs +70 -0
  170. package/cockroach-core/columns/time.cjs.map +1 -0
  171. package/cockroach-core/columns/time.d.cts +39 -0
  172. package/cockroach-core/columns/time.d.ts +39 -0
  173. package/cockroach-core/columns/time.js +44 -0
  174. package/cockroach-core/columns/time.js.map +1 -0
  175. package/cockroach-core/columns/timestamp.cjs +111 -0
  176. package/cockroach-core/columns/timestamp.cjs.map +1 -0
  177. package/cockroach-core/columns/timestamp.d.cts +66 -0
  178. package/cockroach-core/columns/timestamp.d.ts +66 -0
  179. package/cockroach-core/columns/timestamp.js +83 -0
  180. package/cockroach-core/columns/timestamp.js.map +1 -0
  181. package/cockroach-core/columns/utils.cjs +65 -0
  182. package/cockroach-core/columns/utils.cjs.map +1 -0
  183. package/cockroach-core/columns/utils.d.cts +1 -0
  184. package/cockroach-core/columns/utils.d.ts +1 -0
  185. package/cockroach-core/columns/utils.js +41 -0
  186. package/cockroach-core/columns/utils.js.map +1 -0
  187. package/cockroach-core/columns/uuid.cjs +63 -0
  188. package/cockroach-core/columns/uuid.cjs.map +1 -0
  189. package/cockroach-core/columns/uuid.d.cts +26 -0
  190. package/cockroach-core/columns/uuid.d.ts +26 -0
  191. package/cockroach-core/columns/uuid.js +37 -0
  192. package/cockroach-core/columns/uuid.js.map +1 -0
  193. package/cockroach-core/columns/varchar.cjs +62 -0
  194. package/cockroach-core/columns/varchar.cjs.map +1 -0
  195. package/cockroach-core/columns/varchar.d.cts +45 -0
  196. package/cockroach-core/columns/varchar.d.ts +45 -0
  197. package/cockroach-core/columns/varchar.js +36 -0
  198. package/cockroach-core/columns/varchar.js.map +1 -0
  199. package/cockroach-core/columns/vector.cjs +66 -0
  200. package/cockroach-core/columns/vector.cjs.map +1 -0
  201. package/cockroach-core/columns/vector.d.cts +41 -0
  202. package/cockroach-core/columns/vector.d.ts +41 -0
  203. package/cockroach-core/columns/vector.js +40 -0
  204. package/cockroach-core/columns/vector.js.map +1 -0
  205. package/cockroach-core/db.cjs +346 -0
  206. package/cockroach-core/db.cjs.map +1 -0
  207. package/cockroach-core/db.d.cts +282 -0
  208. package/cockroach-core/db.d.ts +282 -0
  209. package/cockroach-core/db.js +327 -0
  210. package/cockroach-core/db.js.map +1 -0
  211. package/cockroach-core/dialect.cjs +1136 -0
  212. package/cockroach-core/dialect.cjs.map +1 -0
  213. package/cockroach-core/dialect.d.cts +65 -0
  214. package/cockroach-core/dialect.d.ts +65 -0
  215. package/cockroach-core/dialect.js +1132 -0
  216. package/cockroach-core/dialect.js.map +1 -0
  217. package/cockroach-core/expressions.cjs +49 -0
  218. package/cockroach-core/expressions.cjs.map +1 -0
  219. package/cockroach-core/expressions.d.cts +8 -0
  220. package/cockroach-core/expressions.d.ts +8 -0
  221. package/cockroach-core/expressions.js +22 -0
  222. package/cockroach-core/expressions.js.map +1 -0
  223. package/cockroach-core/foreign-keys.cjs +92 -0
  224. package/cockroach-core/foreign-keys.cjs.map +1 -0
  225. package/cockroach-core/foreign-keys.d.cts +52 -0
  226. package/cockroach-core/foreign-keys.d.ts +52 -0
  227. package/cockroach-core/foreign-keys.js +66 -0
  228. package/cockroach-core/foreign-keys.js.map +1 -0
  229. package/cockroach-core/index.cjs +61 -0
  230. package/cockroach-core/index.cjs.map +1 -0
  231. package/cockroach-core/index.d.cts +20 -0
  232. package/cockroach-core/index.d.ts +20 -0
  233. package/cockroach-core/index.js +21 -0
  234. package/cockroach-core/index.js.map +1 -0
  235. package/cockroach-core/indexes.cjs +137 -0
  236. package/cockroach-core/indexes.cjs.map +1 -0
  237. package/cockroach-core/indexes.d.cts +64 -0
  238. package/cockroach-core/indexes.d.ts +64 -0
  239. package/cockroach-core/indexes.js +109 -0
  240. package/cockroach-core/indexes.js.map +1 -0
  241. package/cockroach-core/policies.cjs +58 -0
  242. package/cockroach-core/policies.cjs.map +1 -0
  243. package/cockroach-core/policies.d.cts +24 -0
  244. package/cockroach-core/policies.d.ts +24 -0
  245. package/cockroach-core/policies.js +33 -0
  246. package/cockroach-core/policies.js.map +1 -0
  247. package/cockroach-core/primary-keys.cjs +64 -0
  248. package/cockroach-core/primary-keys.cjs.map +1 -0
  249. package/cockroach-core/primary-keys.d.cts +23 -0
  250. package/cockroach-core/primary-keys.d.ts +23 -0
  251. package/cockroach-core/primary-keys.js +38 -0
  252. package/cockroach-core/primary-keys.js.map +1 -0
  253. package/cockroach-core/query-builders/count.cjs +79 -0
  254. package/cockroach-core/query-builders/count.cjs.map +1 -0
  255. package/cockroach-core/query-builders/count.d.cts +29 -0
  256. package/cockroach-core/query-builders/count.d.ts +29 -0
  257. package/cockroach-core/query-builders/count.js +55 -0
  258. package/cockroach-core/query-builders/count.js.map +1 -0
  259. package/cockroach-core/query-builders/delete.cjs +124 -0
  260. package/cockroach-core/query-builders/delete.cjs.map +1 -0
  261. package/cockroach-core/query-builders/delete.d.cts +103 -0
  262. package/cockroach-core/query-builders/delete.d.ts +103 -0
  263. package/cockroach-core/query-builders/delete.js +100 -0
  264. package/cockroach-core/query-builders/delete.js.map +1 -0
  265. package/cockroach-core/query-builders/index.cjs +35 -0
  266. package/cockroach-core/query-builders/index.cjs.map +1 -0
  267. package/cockroach-core/query-builders/index.d.cts +7 -0
  268. package/cockroach-core/query-builders/index.d.ts +7 -0
  269. package/cockroach-core/query-builders/index.js +8 -0
  270. package/cockroach-core/query-builders/index.js.map +1 -0
  271. package/cockroach-core/query-builders/insert.cjs +213 -0
  272. package/cockroach-core/query-builders/insert.cjs.map +1 -0
  273. package/cockroach-core/query-builders/insert.d.cts +171 -0
  274. package/cockroach-core/query-builders/insert.d.ts +171 -0
  275. package/cockroach-core/query-builders/insert.js +188 -0
  276. package/cockroach-core/query-builders/insert.js.map +1 -0
  277. package/cockroach-core/query-builders/query-builder.cjs +118 -0
  278. package/cockroach-core/query-builders/query-builder.cjs.map +1 -0
  279. package/cockroach-core/query-builders/query-builder.d.cts +37 -0
  280. package/cockroach-core/query-builders/query-builder.d.ts +37 -0
  281. package/cockroach-core/query-builders/query-builder.js +94 -0
  282. package/cockroach-core/query-builders/query-builder.js.map +1 -0
  283. package/cockroach-core/query-builders/query.cjs +145 -0
  284. package/cockroach-core/query-builders/query.cjs.map +1 -0
  285. package/cockroach-core/query-builders/query.d.cts +47 -0
  286. package/cockroach-core/query-builders/query.d.ts +47 -0
  287. package/cockroach-core/query-builders/query.js +122 -0
  288. package/cockroach-core/query-builders/query.js.map +1 -0
  289. package/cockroach-core/query-builders/raw.cjs +57 -0
  290. package/cockroach-core/query-builders/raw.cjs.map +1 -0
  291. package/cockroach-core/query-builders/raw.d.cts +22 -0
  292. package/cockroach-core/query-builders/raw.d.ts +22 -0
  293. package/cockroach-core/query-builders/raw.js +33 -0
  294. package/cockroach-core/query-builders/raw.js.map +1 -0
  295. package/cockroach-core/query-builders/refresh-materialized-view.cjs +83 -0
  296. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  297. package/cockroach-core/query-builders/refresh-materialized-view.d.cts +28 -0
  298. package/cockroach-core/query-builders/refresh-materialized-view.d.ts +28 -0
  299. package/cockroach-core/query-builders/refresh-materialized-view.js +59 -0
  300. package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -0
  301. package/cockroach-core/query-builders/select.cjs +848 -0
  302. package/cockroach-core/query-builders/select.cjs.map +1 -0
  303. package/cockroach-core/query-builders/select.d.cts +787 -0
  304. package/cockroach-core/query-builders/select.d.ts +787 -0
  305. package/cockroach-core/query-builders/select.js +821 -0
  306. package/cockroach-core/query-builders/select.js.map +1 -0
  307. package/cockroach-core/query-builders/select.types.cjs +17 -0
  308. package/cockroach-core/query-builders/select.types.cjs.map +1 -0
  309. package/cockroach-core/query-builders/select.types.d.cts +139 -0
  310. package/cockroach-core/query-builders/select.types.d.ts +139 -0
  311. package/cockroach-core/query-builders/select.types.js +1 -0
  312. package/cockroach-core/query-builders/select.types.js.map +1 -0
  313. package/cockroach-core/query-builders/update.cjs +240 -0
  314. package/cockroach-core/query-builders/update.cjs.map +1 -0
  315. package/cockroach-core/query-builders/update.d.cts +170 -0
  316. package/cockroach-core/query-builders/update.d.ts +170 -0
  317. package/cockroach-core/query-builders/update.js +219 -0
  318. package/cockroach-core/query-builders/update.js.map +1 -0
  319. package/cockroach-core/roles.cjs +54 -0
  320. package/cockroach-core/roles.cjs.map +1 -0
  321. package/cockroach-core/roles.d.cts +12 -0
  322. package/cockroach-core/roles.d.ts +12 -0
  323. package/cockroach-core/roles.js +29 -0
  324. package/cockroach-core/roles.js.map +1 -0
  325. package/cockroach-core/schema.cjs +80 -0
  326. package/cockroach-core/schema.cjs.map +1 -0
  327. package/cockroach-core/schema.d.cts +22 -0
  328. package/cockroach-core/schema.d.ts +22 -0
  329. package/cockroach-core/schema.js +60 -0
  330. package/cockroach-core/schema.js.map +1 -0
  331. package/cockroach-core/sequence.cjs +52 -0
  332. package/cockroach-core/sequence.cjs.map +1 -0
  333. package/cockroach-core/sequence.d.cts +17 -0
  334. package/cockroach-core/sequence.d.ts +17 -0
  335. package/cockroach-core/sequence.js +25 -0
  336. package/cockroach-core/sequence.js.map +1 -0
  337. package/cockroach-core/session.cjs +120 -0
  338. package/cockroach-core/session.cjs.map +1 -0
  339. package/cockroach-core/session.d.cts +62 -0
  340. package/cockroach-core/session.d.ts +62 -0
  341. package/cockroach-core/session.js +94 -0
  342. package/cockroach-core/session.js.map +1 -0
  343. package/cockroach-core/subquery.cjs +17 -0
  344. package/cockroach-core/subquery.cjs.map +1 -0
  345. package/cockroach-core/subquery.d.cts +18 -0
  346. package/cockroach-core/subquery.d.ts +18 -0
  347. package/cockroach-core/subquery.js +1 -0
  348. package/cockroach-core/subquery.js.map +1 -0
  349. package/cockroach-core/table.cjs +100 -0
  350. package/cockroach-core/table.cjs.map +1 -0
  351. package/cockroach-core/table.d.cts +39 -0
  352. package/cockroach-core/table.d.ts +39 -0
  353. package/cockroach-core/table.js +71 -0
  354. package/cockroach-core/table.js.map +1 -0
  355. package/cockroach-core/unique-constraint.cjs +77 -0
  356. package/cockroach-core/unique-constraint.cjs.map +1 -0
  357. package/cockroach-core/unique-constraint.d.cts +23 -0
  358. package/cockroach-core/unique-constraint.d.ts +23 -0
  359. package/cockroach-core/unique-constraint.js +50 -0
  360. package/cockroach-core/unique-constraint.js.map +1 -0
  361. package/cockroach-core/utils/array.cjs +106 -0
  362. package/cockroach-core/utils/array.cjs.map +1 -0
  363. package/cockroach-core/utils/array.d.cts +3 -0
  364. package/cockroach-core/utils/array.d.ts +3 -0
  365. package/cockroach-core/utils/array.js +80 -0
  366. package/cockroach-core/utils/array.js.map +1 -0
  367. package/cockroach-core/utils/index.cjs +23 -0
  368. package/cockroach-core/utils/index.cjs.map +1 -0
  369. package/cockroach-core/utils/index.d.cts +1 -0
  370. package/cockroach-core/utils/index.d.ts +1 -0
  371. package/cockroach-core/utils/index.js +2 -0
  372. package/cockroach-core/utils/index.js.map +1 -0
  373. package/cockroach-core/utils.cjs +98 -0
  374. package/cockroach-core/utils.cjs.map +1 -0
  375. package/cockroach-core/utils.d.cts +47 -0
  376. package/cockroach-core/utils.d.ts +47 -0
  377. package/cockroach-core/utils.js +72 -0
  378. package/cockroach-core/utils.js.map +1 -0
  379. package/cockroach-core/view-base.cjs +33 -0
  380. package/cockroach-core/view-base.cjs.map +1 -0
  381. package/cockroach-core/view-base.d.cts +8 -0
  382. package/cockroach-core/view-base.d.ts +8 -0
  383. package/cockroach-core/view-base.js +9 -0
  384. package/cockroach-core/view-base.js.map +1 -0
  385. package/cockroach-core/view.cjs +271 -0
  386. package/cockroach-core/view.cjs.map +1 -0
  387. package/cockroach-core/view.d.cts +107 -0
  388. package/cockroach-core/view.d.ts +107 -0
  389. package/cockroach-core/view.js +233 -0
  390. package/cockroach-core/view.js.map +1 -0
  391. package/column-builder.cjs.map +1 -1
  392. package/column-builder.d.cts +8 -5
  393. package/column-builder.d.ts +8 -5
  394. package/column-builder.js.map +1 -1
  395. package/column.cjs +2 -0
  396. package/column.cjs.map +1 -1
  397. package/column.d.cts +1 -0
  398. package/column.d.ts +1 -0
  399. package/column.js +2 -0
  400. package/column.js.map +1 -1
  401. package/gel/driver.cjs.map +1 -1
  402. package/gel/driver.d.cts +1 -1
  403. package/gel/driver.d.ts +1 -1
  404. package/gel/driver.js.map +1 -1
  405. package/mssql-core/alias.cjs +32 -0
  406. package/mssql-core/alias.cjs.map +1 -0
  407. package/mssql-core/alias.d.cts +4 -0
  408. package/mssql-core/alias.d.ts +4 -0
  409. package/mssql-core/alias.js +8 -0
  410. package/mssql-core/alias.js.map +1 -0
  411. package/mssql-core/checks.cjs +58 -0
  412. package/mssql-core/checks.cjs.map +1 -0
  413. package/mssql-core/checks.d.cts +18 -0
  414. package/mssql-core/checks.d.ts +18 -0
  415. package/mssql-core/checks.js +32 -0
  416. package/mssql-core/checks.js.map +1 -0
  417. package/mssql-core/columns/all.cjs +74 -0
  418. package/mssql-core/columns/all.cjs.map +1 -0
  419. package/mssql-core/columns/all.d.cts +45 -0
  420. package/mssql-core/columns/all.d.ts +45 -0
  421. package/mssql-core/columns/all.js +50 -0
  422. package/mssql-core/columns/all.js.map +1 -0
  423. package/mssql-core/columns/bigint.cjs +67 -0
  424. package/mssql-core/columns/bigint.cjs.map +1 -0
  425. package/mssql-core/columns/bigint.d.cts +33 -0
  426. package/mssql-core/columns/bigint.d.ts +33 -0
  427. package/mssql-core/columns/bigint.js +41 -0
  428. package/mssql-core/columns/bigint.js.map +1 -0
  429. package/mssql-core/columns/binary.cjs +57 -0
  430. package/mssql-core/columns/binary.cjs.map +1 -0
  431. package/mssql-core/columns/binary.d.cts +28 -0
  432. package/mssql-core/columns/binary.d.ts +28 -0
  433. package/mssql-core/columns/binary.js +31 -0
  434. package/mssql-core/columns/binary.js.map +1 -0
  435. package/mssql-core/columns/bit.cjs +54 -0
  436. package/mssql-core/columns/bit.cjs.map +1 -0
  437. package/mssql-core/columns/bit.d.cts +24 -0
  438. package/mssql-core/columns/bit.d.ts +24 -0
  439. package/mssql-core/columns/bit.js +28 -0
  440. package/mssql-core/columns/bit.js.map +1 -0
  441. package/mssql-core/columns/char.cjs +74 -0
  442. package/mssql-core/columns/char.cjs.map +1 -0
  443. package/mssql-core/columns/char.d.cts +37 -0
  444. package/mssql-core/columns/char.d.ts +37 -0
  445. package/mssql-core/columns/char.js +47 -0
  446. package/mssql-core/columns/char.js.map +1 -0
  447. package/mssql-core/columns/common.cjs +110 -0
  448. package/mssql-core/columns/common.cjs.map +1 -0
  449. package/mssql-core/columns/common.d.cts +67 -0
  450. package/mssql-core/columns/common.d.ts +67 -0
  451. package/mssql-core/columns/common.js +83 -0
  452. package/mssql-core/columns/common.js.map +1 -0
  453. package/mssql-core/columns/custom.cjs +77 -0
  454. package/mssql-core/columns/custom.cjs.map +1 -0
  455. package/mssql-core/columns/custom.d.cts +156 -0
  456. package/mssql-core/columns/custom.d.ts +156 -0
  457. package/mssql-core/columns/custom.js +51 -0
  458. package/mssql-core/columns/custom.js.map +1 -0
  459. package/mssql-core/columns/date.cjs +94 -0
  460. package/mssql-core/columns/date.cjs.map +1 -0
  461. package/mssql-core/columns/date.common.cjs +37 -0
  462. package/mssql-core/columns/date.common.cjs.map +1 -0
  463. package/mssql-core/columns/date.common.d.cts +12 -0
  464. package/mssql-core/columns/date.common.d.ts +12 -0
  465. package/mssql-core/columns/date.common.js +13 -0
  466. package/mssql-core/columns/date.common.js.map +1 -0
  467. package/mssql-core/columns/date.d.cts +55 -0
  468. package/mssql-core/columns/date.d.ts +55 -0
  469. package/mssql-core/columns/date.js +66 -0
  470. package/mssql-core/columns/date.js.map +1 -0
  471. package/mssql-core/columns/datetime.cjs +94 -0
  472. package/mssql-core/columns/datetime.cjs.map +1 -0
  473. package/mssql-core/columns/datetime.d.cts +54 -0
  474. package/mssql-core/columns/datetime.d.ts +54 -0
  475. package/mssql-core/columns/datetime.js +66 -0
  476. package/mssql-core/columns/datetime.js.map +1 -0
  477. package/mssql-core/columns/datetime2.cjs +102 -0
  478. package/mssql-core/columns/datetime2.cjs.map +1 -0
  479. package/mssql-core/columns/datetime2.d.cts +54 -0
  480. package/mssql-core/columns/datetime2.d.ts +54 -0
  481. package/mssql-core/columns/datetime2.js +74 -0
  482. package/mssql-core/columns/datetime2.js.map +1 -0
  483. package/mssql-core/columns/datetimeoffset.cjs +102 -0
  484. package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
  485. package/mssql-core/columns/datetimeoffset.d.cts +54 -0
  486. package/mssql-core/columns/datetimeoffset.d.ts +54 -0
  487. package/mssql-core/columns/datetimeoffset.js +74 -0
  488. package/mssql-core/columns/datetimeoffset.js.map +1 -0
  489. package/mssql-core/columns/decimal.cjs +146 -0
  490. package/mssql-core/columns/decimal.cjs.map +1 -0
  491. package/mssql-core/columns/decimal.d.cts +72 -0
  492. package/mssql-core/columns/decimal.d.ts +72 -0
  493. package/mssql-core/columns/decimal.js +116 -0
  494. package/mssql-core/columns/decimal.js.map +1 -0
  495. package/mssql-core/columns/float.cjs +58 -0
  496. package/mssql-core/columns/float.cjs.map +1 -0
  497. package/mssql-core/columns/float.d.cts +28 -0
  498. package/mssql-core/columns/float.d.ts +28 -0
  499. package/mssql-core/columns/float.js +32 -0
  500. package/mssql-core/columns/float.js.map +1 -0
  501. package/mssql-core/columns/index.cjs +63 -0
  502. package/mssql-core/columns/index.cjs.map +1 -0
  503. package/mssql-core/columns/index.d.cts +21 -0
  504. package/mssql-core/columns/index.d.ts +21 -0
  505. package/mssql-core/columns/index.js +22 -0
  506. package/mssql-core/columns/index.js.map +1 -0
  507. package/mssql-core/columns/int.cjs +53 -0
  508. package/mssql-core/columns/int.cjs.map +1 -0
  509. package/mssql-core/columns/int.d.cts +23 -0
  510. package/mssql-core/columns/int.d.ts +23 -0
  511. package/mssql-core/columns/int.js +27 -0
  512. package/mssql-core/columns/int.js.map +1 -0
  513. package/mssql-core/columns/numeric.cjs +146 -0
  514. package/mssql-core/columns/numeric.cjs.map +1 -0
  515. package/mssql-core/columns/numeric.d.cts +72 -0
  516. package/mssql-core/columns/numeric.d.ts +72 -0
  517. package/mssql-core/columns/numeric.js +116 -0
  518. package/mssql-core/columns/numeric.js.map +1 -0
  519. package/mssql-core/columns/real.cjs +53 -0
  520. package/mssql-core/columns/real.cjs.map +1 -0
  521. package/mssql-core/columns/real.d.cts +23 -0
  522. package/mssql-core/columns/real.d.ts +23 -0
  523. package/mssql-core/columns/real.js +27 -0
  524. package/mssql-core/columns/real.js.map +1 -0
  525. package/mssql-core/columns/smallint.cjs +62 -0
  526. package/mssql-core/columns/smallint.cjs.map +1 -0
  527. package/mssql-core/columns/smallint.d.cts +24 -0
  528. package/mssql-core/columns/smallint.d.ts +24 -0
  529. package/mssql-core/columns/smallint.js +36 -0
  530. package/mssql-core/columns/smallint.js.map +1 -0
  531. package/mssql-core/columns/text.cjs +68 -0
  532. package/mssql-core/columns/text.cjs.map +1 -0
  533. package/mssql-core/columns/text.d.cts +45 -0
  534. package/mssql-core/columns/text.d.ts +45 -0
  535. package/mssql-core/columns/text.js +41 -0
  536. package/mssql-core/columns/text.js.map +1 -0
  537. package/mssql-core/columns/time.cjs +90 -0
  538. package/mssql-core/columns/time.cjs.map +1 -0
  539. package/mssql-core/columns/time.d.cts +49 -0
  540. package/mssql-core/columns/time.d.ts +49 -0
  541. package/mssql-core/columns/time.js +62 -0
  542. package/mssql-core/columns/time.js.map +1 -0
  543. package/mssql-core/columns/tinyint.cjs +62 -0
  544. package/mssql-core/columns/tinyint.cjs.map +1 -0
  545. package/mssql-core/columns/tinyint.d.cts +24 -0
  546. package/mssql-core/columns/tinyint.d.ts +24 -0
  547. package/mssql-core/columns/tinyint.js +36 -0
  548. package/mssql-core/columns/tinyint.js.map +1 -0
  549. package/mssql-core/columns/varbinary.cjs +61 -0
  550. package/mssql-core/columns/varbinary.cjs.map +1 -0
  551. package/mssql-core/columns/varbinary.d.cts +27 -0
  552. package/mssql-core/columns/varbinary.d.ts +27 -0
  553. package/mssql-core/columns/varbinary.js +35 -0
  554. package/mssql-core/columns/varbinary.js.map +1 -0
  555. package/mssql-core/columns/varchar.cjs +117 -0
  556. package/mssql-core/columns/varchar.cjs.map +1 -0
  557. package/mssql-core/columns/varchar.d.cts +66 -0
  558. package/mssql-core/columns/varchar.d.ts +66 -0
  559. package/mssql-core/columns/varchar.js +88 -0
  560. package/mssql-core/columns/varchar.js.map +1 -0
  561. package/mssql-core/db.cjs +254 -0
  562. package/mssql-core/db.cjs.map +1 -0
  563. package/mssql-core/db.d.cts +228 -0
  564. package/mssql-core/db.d.ts +228 -0
  565. package/mssql-core/db.js +235 -0
  566. package/mssql-core/db.js.map +1 -0
  567. package/mssql-core/dialect.cjs +623 -0
  568. package/mssql-core/dialect.cjs.map +1 -0
  569. package/mssql-core/dialect.d.cts +58 -0
  570. package/mssql-core/dialect.d.ts +58 -0
  571. package/mssql-core/dialect.js +605 -0
  572. package/mssql-core/dialect.js.map +1 -0
  573. package/mssql-core/expressions.cjs +49 -0
  574. package/mssql-core/expressions.cjs.map +1 -0
  575. package/mssql-core/expressions.d.cts +8 -0
  576. package/mssql-core/expressions.d.ts +8 -0
  577. package/mssql-core/expressions.js +22 -0
  578. package/mssql-core/expressions.js.map +1 -0
  579. package/mssql-core/foreign-keys.cjs +91 -0
  580. package/mssql-core/foreign-keys.cjs.map +1 -0
  581. package/mssql-core/foreign-keys.d.cts +51 -0
  582. package/mssql-core/foreign-keys.d.ts +51 -0
  583. package/mssql-core/foreign-keys.js +65 -0
  584. package/mssql-core/foreign-keys.js.map +1 -0
  585. package/mssql-core/index.cjs +55 -0
  586. package/mssql-core/index.cjs.map +1 -0
  587. package/mssql-core/index.d.cts +17 -0
  588. package/mssql-core/index.d.ts +17 -0
  589. package/mssql-core/index.js +18 -0
  590. package/mssql-core/index.js.map +1 -0
  591. package/mssql-core/indexes.cjs +80 -0
  592. package/mssql-core/indexes.cjs.map +1 -0
  593. package/mssql-core/indexes.d.cts +49 -0
  594. package/mssql-core/indexes.d.ts +49 -0
  595. package/mssql-core/indexes.js +52 -0
  596. package/mssql-core/indexes.js.map +1 -0
  597. package/mssql-core/primary-keys.cjs +64 -0
  598. package/mssql-core/primary-keys.cjs.map +1 -0
  599. package/mssql-core/primary-keys.d.cts +23 -0
  600. package/mssql-core/primary-keys.d.ts +23 -0
  601. package/mssql-core/primary-keys.js +38 -0
  602. package/mssql-core/primary-keys.js.map +1 -0
  603. package/mssql-core/query-builders/delete.cjs +107 -0
  604. package/mssql-core/query-builders/delete.cjs.map +1 -0
  605. package/mssql-core/query-builders/delete.d.cts +98 -0
  606. package/mssql-core/query-builders/delete.d.ts +98 -0
  607. package/mssql-core/query-builders/delete.js +83 -0
  608. package/mssql-core/query-builders/delete.js.map +1 -0
  609. package/mssql-core/query-builders/index.cjs +33 -0
  610. package/mssql-core/query-builders/index.cjs.map +1 -0
  611. package/mssql-core/query-builders/index.d.cts +6 -0
  612. package/mssql-core/query-builders/index.d.ts +6 -0
  613. package/mssql-core/query-builders/index.js +7 -0
  614. package/mssql-core/query-builders/index.js.map +1 -0
  615. package/mssql-core/query-builders/insert.cjs +105 -0
  616. package/mssql-core/query-builders/insert.cjs.map +1 -0
  617. package/mssql-core/query-builders/insert.d.cts +78 -0
  618. package/mssql-core/query-builders/insert.d.ts +78 -0
  619. package/mssql-core/query-builders/insert.js +80 -0
  620. package/mssql-core/query-builders/insert.js.map +1 -0
  621. package/mssql-core/query-builders/query-builder.cjs +95 -0
  622. package/mssql-core/query-builders/query-builder.cjs.map +1 -0
  623. package/mssql-core/query-builders/query-builder.d.cts +32 -0
  624. package/mssql-core/query-builders/query-builder.d.ts +32 -0
  625. package/mssql-core/query-builders/query-builder.js +71 -0
  626. package/mssql-core/query-builders/query-builder.js.map +1 -0
  627. package/mssql-core/query-builders/query.cjs +126 -0
  628. package/mssql-core/query-builders/query.cjs.map +1 -0
  629. package/mssql-core/query-builders/query.d.cts +42 -0
  630. package/mssql-core/query-builders/query.d.ts +42 -0
  631. package/mssql-core/query-builders/query.js +103 -0
  632. package/mssql-core/query-builders/query.js.map +1 -0
  633. package/mssql-core/query-builders/select.cjs +679 -0
  634. package/mssql-core/query-builders/select.cjs.map +1 -0
  635. package/mssql-core/query-builders/select.d.cts +549 -0
  636. package/mssql-core/query-builders/select.d.ts +549 -0
  637. package/mssql-core/query-builders/select.js +649 -0
  638. package/mssql-core/query-builders/select.js.map +1 -0
  639. package/mssql-core/query-builders/select.types.cjs +17 -0
  640. package/mssql-core/query-builders/select.types.cjs.map +1 -0
  641. package/mssql-core/query-builders/select.types.d.cts +142 -0
  642. package/mssql-core/query-builders/select.types.d.ts +142 -0
  643. package/mssql-core/query-builders/select.types.js +1 -0
  644. package/mssql-core/query-builders/select.types.js.map +1 -0
  645. package/mssql-core/query-builders/update.cjs +138 -0
  646. package/mssql-core/query-builders/update.cjs.map +1 -0
  647. package/mssql-core/query-builders/update.d.cts +141 -0
  648. package/mssql-core/query-builders/update.d.ts +141 -0
  649. package/mssql-core/query-builders/update.js +113 -0
  650. package/mssql-core/query-builders/update.js.map +1 -0
  651. package/mssql-core/schema.cjs +51 -0
  652. package/mssql-core/schema.cjs.map +1 -0
  653. package/mssql-core/schema.d.cts +22 -0
  654. package/mssql-core/schema.d.ts +22 -0
  655. package/mssql-core/schema.js +25 -0
  656. package/mssql-core/schema.js.map +1 -0
  657. package/mssql-core/session.cjs +74 -0
  658. package/mssql-core/session.cjs.map +1 -0
  659. package/mssql-core/session.d.cts +63 -0
  660. package/mssql-core/session.d.ts +63 -0
  661. package/mssql-core/session.js +48 -0
  662. package/mssql-core/session.js.map +1 -0
  663. package/mssql-core/subquery.cjs +17 -0
  664. package/mssql-core/subquery.cjs.map +1 -0
  665. package/mssql-core/subquery.d.cts +18 -0
  666. package/mssql-core/subquery.d.ts +18 -0
  667. package/mssql-core/subquery.js +1 -0
  668. package/mssql-core/subquery.js.map +1 -0
  669. package/mssql-core/table.cjs +81 -0
  670. package/mssql-core/table.cjs.map +1 -0
  671. package/mssql-core/table.d.cts +43 -0
  672. package/mssql-core/table.d.ts +43 -0
  673. package/mssql-core/table.js +53 -0
  674. package/mssql-core/table.js.map +1 -0
  675. package/mssql-core/unique-constraint.cjs +76 -0
  676. package/mssql-core/unique-constraint.cjs.map +1 -0
  677. package/mssql-core/unique-constraint.d.cts +23 -0
  678. package/mssql-core/unique-constraint.d.ts +23 -0
  679. package/mssql-core/unique-constraint.js +49 -0
  680. package/mssql-core/unique-constraint.js.map +1 -0
  681. package/mssql-core/utils.cjs +85 -0
  682. package/mssql-core/utils.cjs.map +1 -0
  683. package/mssql-core/utils.d.cts +31 -0
  684. package/mssql-core/utils.d.ts +31 -0
  685. package/mssql-core/utils.js +60 -0
  686. package/mssql-core/utils.js.map +1 -0
  687. package/mssql-core/view-base.cjs +33 -0
  688. package/mssql-core/view-base.cjs.map +1 -0
  689. package/mssql-core/view-base.d.cts +9 -0
  690. package/mssql-core/view-base.d.ts +9 -0
  691. package/mssql-core/view-base.js +9 -0
  692. package/mssql-core/view-base.js.map +1 -0
  693. package/mssql-core/view-common.cjs +29 -0
  694. package/mssql-core/view-common.cjs.map +1 -0
  695. package/mssql-core/view-common.d.cts +1 -0
  696. package/mssql-core/view-common.d.ts +1 -0
  697. package/mssql-core/view-common.js +5 -0
  698. package/mssql-core/view-common.js.map +1 -0
  699. package/mssql-core/view.cjs +154 -0
  700. package/mssql-core/view.cjs.map +1 -0
  701. package/mssql-core/view.d.cts +64 -0
  702. package/mssql-core/view.d.ts +64 -0
  703. package/mssql-core/view.js +125 -0
  704. package/mssql-core/view.js.map +1 -0
  705. package/mysql-core/dialect.cjs +3 -0
  706. package/mysql-core/dialect.cjs.map +1 -1
  707. package/mysql-core/dialect.d.cts +1 -0
  708. package/mysql-core/dialect.d.ts +1 -0
  709. package/mysql-core/dialect.js +3 -0
  710. package/mysql-core/dialect.js.map +1 -1
  711. package/mysql-proxy/driver.cjs +2 -2
  712. package/mysql-proxy/driver.cjs.map +1 -1
  713. package/mysql-proxy/driver.d.cts +2 -1
  714. package/mysql-proxy/driver.d.ts +2 -1
  715. package/mysql-proxy/driver.js +2 -2
  716. package/mysql-proxy/driver.js.map +1 -1
  717. package/mysql2/driver.cjs.map +1 -1
  718. package/mysql2/driver.d.cts +1 -1
  719. package/mysql2/driver.d.ts +1 -1
  720. package/mysql2/driver.js.map +1 -1
  721. package/neon/index.cjs +2 -2
  722. package/neon/index.cjs.map +1 -1
  723. package/neon/index.d.cts +1 -1
  724. package/neon/index.d.ts +1 -1
  725. package/neon/index.js +1 -1
  726. package/neon/index.js.map +1 -1
  727. package/neon/{neon-identity.cjs → neon-auth.cjs} +6 -5
  728. package/neon/neon-auth.cjs.map +1 -0
  729. package/neon/{neon-identity.d.cts → neon-auth.d.cts} +17 -0
  730. package/neon/{neon-identity.d.ts → neon-auth.d.ts} +17 -0
  731. package/neon/{neon-identity.js → neon-auth.js} +3 -2
  732. package/neon/neon-auth.js.map +1 -0
  733. package/neon-serverless/driver.cjs.map +1 -1
  734. package/neon-serverless/driver.d.cts +1 -1
  735. package/neon-serverless/driver.d.ts +1 -1
  736. package/neon-serverless/driver.js.map +1 -1
  737. package/node-mssql/driver.cjs +107 -0
  738. package/node-mssql/driver.cjs.map +1 -0
  739. package/node-mssql/driver.d.cts +46 -0
  740. package/node-mssql/driver.d.ts +46 -0
  741. package/node-mssql/driver.js +84 -0
  742. package/node-mssql/driver.js.map +1 -0
  743. package/node-mssql/index.cjs +25 -0
  744. package/node-mssql/index.cjs.map +1 -0
  745. package/node-mssql/index.d.cts +2 -0
  746. package/node-mssql/index.d.ts +2 -0
  747. package/node-mssql/index.js +3 -0
  748. package/node-mssql/index.js.map +1 -0
  749. package/node-mssql/migrator.cjs +33 -0
  750. package/node-mssql/migrator.cjs.map +1 -0
  751. package/node-mssql/migrator.d.cts +3 -0
  752. package/node-mssql/migrator.d.ts +3 -0
  753. package/node-mssql/migrator.js +9 -0
  754. package/node-mssql/migrator.js.map +1 -0
  755. package/node-mssql/pool.cjs +54 -0
  756. package/node-mssql/pool.cjs.map +1 -0
  757. package/node-mssql/pool.d.cts +8 -0
  758. package/node-mssql/pool.d.ts +8 -0
  759. package/node-mssql/pool.js +20 -0
  760. package/node-mssql/pool.js.map +1 -0
  761. package/node-mssql/session.cjs +256 -0
  762. package/node-mssql/session.cjs.map +1 -0
  763. package/node-mssql/session.d.cts +48 -0
  764. package/node-mssql/session.d.ts +48 -0
  765. package/node-mssql/session.js +224 -0
  766. package/node-mssql/session.js.map +1 -0
  767. package/node-postgres/driver.cjs.map +1 -1
  768. package/node-postgres/driver.d.cts +5 -5
  769. package/node-postgres/driver.d.ts +5 -5
  770. package/node-postgres/driver.js.map +1 -1
  771. package/node-postgres/session.cjs.map +1 -1
  772. package/node-postgres/session.js.map +1 -1
  773. package/package.json +1459 -29
  774. package/pg-core/columns/common.cjs +11 -10
  775. package/pg-core/columns/common.cjs.map +1 -1
  776. package/pg-core/columns/common.d.cts +3 -2
  777. package/pg-core/columns/common.d.ts +3 -2
  778. package/pg-core/columns/common.js +11 -10
  779. package/pg-core/columns/common.js.map +1 -1
  780. package/pg-core/foreign-keys.cjs +4 -0
  781. package/pg-core/foreign-keys.cjs.map +1 -1
  782. package/pg-core/foreign-keys.d.cts +2 -0
  783. package/pg-core/foreign-keys.d.ts +2 -0
  784. package/pg-core/foreign-keys.js +4 -0
  785. package/pg-core/foreign-keys.js.map +1 -1
  786. package/pg-core/primary-keys.cjs +3 -0
  787. package/pg-core/primary-keys.cjs.map +1 -1
  788. package/pg-core/primary-keys.d.cts +1 -0
  789. package/pg-core/primary-keys.d.ts +1 -0
  790. package/pg-core/primary-keys.js +3 -0
  791. package/pg-core/primary-keys.js.map +1 -1
  792. package/pg-core/unique-constraint.cjs +5 -0
  793. package/pg-core/unique-constraint.cjs.map +1 -1
  794. package/pg-core/unique-constraint.d.cts +2 -0
  795. package/pg-core/unique-constraint.d.ts +2 -0
  796. package/pg-core/unique-constraint.js +5 -0
  797. package/pg-core/unique-constraint.js.map +1 -1
  798. package/relations.cjs +48 -0
  799. package/relations.cjs.map +1 -1
  800. package/relations.d.cts +1 -0
  801. package/relations.d.ts +1 -0
  802. package/relations.js +47 -0
  803. package/relations.js.map +1 -1
  804. package/singlestore/driver.cjs +11 -15
  805. package/singlestore/driver.cjs.map +1 -1
  806. package/singlestore/driver.d.cts +1 -1
  807. package/singlestore/driver.d.ts +1 -1
  808. package/singlestore/driver.js +11 -15
  809. package/singlestore/driver.js.map +1 -1
  810. package/sql/sql.cjs +10 -3
  811. package/sql/sql.cjs.map +1 -1
  812. package/sql/sql.d.cts +1 -1
  813. package/sql/sql.d.ts +1 -1
  814. package/sql/sql.js +10 -3
  815. package/sql/sql.js.map +1 -1
  816. package/vercel-postgres/driver.cjs.map +1 -1
  817. package/vercel-postgres/driver.d.cts +1 -1
  818. package/vercel-postgres/driver.d.ts +1 -1
  819. package/vercel-postgres/driver.js.map +1 -1
  820. package/version.cjs +2 -2
  821. package/version.cjs.map +1 -1
  822. package/version.d.cts +2 -2
  823. package/version.d.ts +2 -2
  824. package/version.js +2 -2
  825. package/version.js.map +1 -1
  826. package/neon/neon-identity.cjs.map +0 -1
  827. package/neon/neon-identity.js.map +0 -1
@@ -0,0 +1,233 @@
1
+ import { entityKind, is } from "../entity.js";
2
+ import { SelectionProxyHandler } from "../selection-proxy.js";
3
+ import { getTableColumns } from "../utils.js";
4
+ import { QueryBuilder } from "./query-builders/query-builder.js";
5
+ import { cockroachTable } from "./table.js";
6
+ import { CockroachViewBase } from "./view-base.js";
7
+ class DefaultViewBuilderCore {
8
+ constructor(name, schema) {
9
+ this.name = name;
10
+ this.schema = schema;
11
+ }
12
+ static [entityKind] = "CockroachDefaultViewBuilderCore";
13
+ }
14
+ class ViewBuilder extends DefaultViewBuilderCore {
15
+ static [entityKind] = "CockroachViewBuilder";
16
+ as(qb) {
17
+ if (typeof qb === "function") {
18
+ qb = qb(new QueryBuilder());
19
+ }
20
+ const selectionProxy = new SelectionProxyHandler({
21
+ alias: this.name,
22
+ sqlBehavior: "error",
23
+ sqlAliasedBehavior: "alias",
24
+ replaceOriginalName: true
25
+ });
26
+ const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);
27
+ return new Proxy(
28
+ new CockroachView({
29
+ config: {
30
+ name: this.name,
31
+ schema: this.schema,
32
+ selectedFields: aliasedSelection,
33
+ query: qb.getSQL().inlineParams()
34
+ }
35
+ }),
36
+ selectionProxy
37
+ );
38
+ }
39
+ }
40
+ class ManualViewBuilder extends DefaultViewBuilderCore {
41
+ static [entityKind] = "CockroachManualViewBuilder";
42
+ columns;
43
+ constructor(name, columns, schema) {
44
+ super(name, schema);
45
+ this.columns = getTableColumns(cockroachTable(name, columns));
46
+ }
47
+ existing() {
48
+ return new Proxy(
49
+ new CockroachView({
50
+ config: {
51
+ name: this.name,
52
+ schema: this.schema,
53
+ selectedFields: this.columns,
54
+ query: void 0
55
+ }
56
+ }),
57
+ new SelectionProxyHandler({
58
+ alias: this.name,
59
+ sqlBehavior: "error",
60
+ sqlAliasedBehavior: "alias",
61
+ replaceOriginalName: true
62
+ })
63
+ );
64
+ }
65
+ as(query) {
66
+ return new Proxy(
67
+ new CockroachView({
68
+ config: {
69
+ name: this.name,
70
+ schema: this.schema,
71
+ selectedFields: this.columns,
72
+ query: query.inlineParams()
73
+ }
74
+ }),
75
+ new SelectionProxyHandler({
76
+ alias: this.name,
77
+ sqlBehavior: "error",
78
+ sqlAliasedBehavior: "alias",
79
+ replaceOriginalName: true
80
+ })
81
+ );
82
+ }
83
+ }
84
+ class MaterializedViewBuilderCore {
85
+ constructor(name, schema) {
86
+ this.name = name;
87
+ this.schema = schema;
88
+ }
89
+ static [entityKind] = "CockroachMaterializedViewBuilderCore";
90
+ config = {};
91
+ withNoData() {
92
+ this.config.withNoData = true;
93
+ return this;
94
+ }
95
+ }
96
+ class MaterializedViewBuilder extends MaterializedViewBuilderCore {
97
+ static [entityKind] = "CockroachMaterializedViewBuilder";
98
+ as(qb) {
99
+ if (typeof qb === "function") {
100
+ qb = qb(new QueryBuilder());
101
+ }
102
+ const selectionProxy = new SelectionProxyHandler({
103
+ alias: this.name,
104
+ sqlBehavior: "error",
105
+ sqlAliasedBehavior: "alias",
106
+ replaceOriginalName: true
107
+ });
108
+ const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);
109
+ return new Proxy(
110
+ new CockroachMaterializedView({
111
+ cockroachConfig: {
112
+ withNoData: this.config.withNoData
113
+ },
114
+ config: {
115
+ name: this.name,
116
+ schema: this.schema,
117
+ selectedFields: aliasedSelection,
118
+ query: qb.getSQL().inlineParams()
119
+ }
120
+ }),
121
+ selectionProxy
122
+ );
123
+ }
124
+ }
125
+ class ManualMaterializedViewBuilder extends MaterializedViewBuilderCore {
126
+ static [entityKind] = "CockroachManualMaterializedViewBuilder";
127
+ columns;
128
+ constructor(name, columns, schema) {
129
+ super(name, schema);
130
+ this.columns = getTableColumns(cockroachTable(name, columns));
131
+ }
132
+ existing() {
133
+ return new Proxy(
134
+ new CockroachMaterializedView({
135
+ cockroachConfig: {
136
+ withNoData: this.config.withNoData
137
+ },
138
+ config: {
139
+ name: this.name,
140
+ schema: this.schema,
141
+ selectedFields: this.columns,
142
+ query: void 0
143
+ }
144
+ }),
145
+ new SelectionProxyHandler({
146
+ alias: this.name,
147
+ sqlBehavior: "error",
148
+ sqlAliasedBehavior: "alias",
149
+ replaceOriginalName: true
150
+ })
151
+ );
152
+ }
153
+ as(query) {
154
+ return new Proxy(
155
+ new CockroachMaterializedView({
156
+ cockroachConfig: {
157
+ withNoData: this.config.withNoData
158
+ },
159
+ config: {
160
+ name: this.name,
161
+ schema: this.schema,
162
+ selectedFields: this.columns,
163
+ query: query.inlineParams()
164
+ }
165
+ }),
166
+ new SelectionProxyHandler({
167
+ alias: this.name,
168
+ sqlBehavior: "error",
169
+ sqlAliasedBehavior: "alias",
170
+ replaceOriginalName: true
171
+ })
172
+ );
173
+ }
174
+ }
175
+ class CockroachView extends CockroachViewBase {
176
+ static [entityKind] = "CockroachView";
177
+ constructor({ config }) {
178
+ super(config);
179
+ }
180
+ }
181
+ const CockroachMaterializedViewConfig = Symbol.for("drizzle:CockroachMaterializedViewConfig");
182
+ class CockroachMaterializedView extends CockroachViewBase {
183
+ static [entityKind] = "CockroachMaterializedView";
184
+ [CockroachMaterializedViewConfig];
185
+ constructor({ cockroachConfig, config }) {
186
+ super(config);
187
+ this[CockroachMaterializedViewConfig] = {
188
+ withNoData: cockroachConfig?.withNoData
189
+ };
190
+ }
191
+ }
192
+ function cockroachViewWithSchema(name, selection, schema) {
193
+ if (selection) {
194
+ return new ManualViewBuilder(name, selection, schema);
195
+ }
196
+ return new ViewBuilder(name, schema);
197
+ }
198
+ function cockroachMaterializedViewWithSchema(name, selection, schema) {
199
+ if (selection) {
200
+ return new ManualMaterializedViewBuilder(name, selection, schema);
201
+ }
202
+ return new MaterializedViewBuilder(name, schema);
203
+ }
204
+ function cockroachView(name, columns) {
205
+ return cockroachViewWithSchema(name, columns, void 0);
206
+ }
207
+ function cockroachMaterializedView(name, columns) {
208
+ return cockroachMaterializedViewWithSchema(name, columns, void 0);
209
+ }
210
+ function isCockroachView(obj) {
211
+ return is(obj, CockroachView);
212
+ }
213
+ function isCockroachMaterializedView(obj) {
214
+ return is(obj, CockroachMaterializedView);
215
+ }
216
+ export {
217
+ CockroachMaterializedView,
218
+ CockroachMaterializedViewConfig,
219
+ CockroachView,
220
+ DefaultViewBuilderCore,
221
+ ManualMaterializedViewBuilder,
222
+ ManualViewBuilder,
223
+ MaterializedViewBuilder,
224
+ MaterializedViewBuilderCore,
225
+ ViewBuilder,
226
+ cockroachMaterializedView,
227
+ cockroachMaterializedViewWithSchema,
228
+ cockroachView,
229
+ cockroachViewWithSchema,
230
+ isCockroachMaterializedView,
231
+ isCockroachView
232
+ };
233
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cockroach-core/view.ts"],"sourcesContent":["import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AddAliasToSelection } from '~/query-builders/select.types.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQL } from '~/sql/sql.ts';\nimport { getTableColumns } from '~/utils.ts';\nimport type { CockroachColumn, CockroachColumnBuilderBase } from './columns/common.ts';\nimport { QueryBuilder } from './query-builders/query-builder.ts';\nimport { cockroachTable } from './table.ts';\nimport { CockroachViewBase } from './view-base.ts';\n\nexport class DefaultViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'CockroachDefaultViewBuilderCore';\n\n\tdeclare readonly _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n}\n\nexport class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{ name: TName }> {\n\tstatic override readonly [entityKind]: string = 'CockroachViewBuilder';\n\n\tas<TSelectedFields extends ColumnsSelection>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): CockroachViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'cockroach'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew CockroachView({\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as CockroachViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'cockroach'>>;\n\t}\n}\n\nexport class ManualViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, CockroachColumnBuilderBase> = Record<string, CockroachColumnBuilderBase>,\n> extends DefaultViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'CockroachManualViewBuilder';\n\n\tprivate columns: Record<string, CockroachColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(cockroachTable(name, columns));\n\t}\n\n\texisting(): CockroachViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'cockroach'>> {\n\t\treturn new Proxy(\n\t\t\tnew CockroachView({\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as CockroachViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'cockroach'>>;\n\t}\n\n\tas(query: SQL): CockroachViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'cockroach'>> {\n\t\treturn new Proxy(\n\t\t\tnew CockroachView({\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as CockroachViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'cockroach'>>;\n\t}\n}\n\nexport class MaterializedViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'CockroachMaterializedViewBuilderCore';\n\n\tdeclare _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twithNoData?: boolean;\n\t} = {};\n\n\twithNoData(): this {\n\t\tthis.config.withNoData = true;\n\t\treturn this;\n\t}\n}\n\nexport class MaterializedViewBuilder<TName extends string = string>\n\textends MaterializedViewBuilderCore<{ name: TName }>\n{\n\tstatic override readonly [entityKind]: string = 'CockroachMaterializedViewBuilder';\n\n\tas<TSelectedFields extends ColumnsSelection>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): CockroachMaterializedViewWithSelection<\n\t\tTName,\n\t\tfalse,\n\t\tAddAliasToSelection<TSelectedFields, TName, 'cockroach'>\n\t> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew CockroachMaterializedView({\n\t\t\t\tcockroachConfig: {\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as CockroachMaterializedViewWithSelection<\n\t\t\tTName,\n\t\t\tfalse,\n\t\t\tAddAliasToSelection<TSelectedFields, TName, 'cockroach'>\n\t\t>;\n\t}\n}\n\nexport class ManualMaterializedViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, CockroachColumnBuilderBase> = Record<string, CockroachColumnBuilderBase>,\n> extends MaterializedViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'CockroachManualMaterializedViewBuilder';\n\n\tprivate columns: Record<string, CockroachColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(cockroachTable(name, columns));\n\t}\n\n\texisting(): CockroachMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'cockroach'>> {\n\t\treturn new Proxy(\n\t\t\tnew CockroachMaterializedView({\n\t\t\t\tcockroachConfig: {\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as CockroachMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'cockroach'>>;\n\t}\n\n\tas(query: SQL): CockroachMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'cockroach'>> {\n\t\treturn new Proxy(\n\t\t\tnew CockroachMaterializedView({\n\t\t\t\tcockroachConfig: {\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as CockroachMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'cockroach'>>;\n\t}\n}\n\nexport class CockroachView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends CockroachViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'CockroachView';\n\n\tconstructor({ config }: {\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t}\n}\n\nexport type CockroachViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = CockroachView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\nexport const CockroachMaterializedViewConfig = Symbol.for('drizzle:CockroachMaterializedViewConfig');\n\nexport class CockroachMaterializedView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends CockroachViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'CockroachMaterializedView';\n\n\treadonly [CockroachMaterializedViewConfig]: {\n\t\treadonly withNoData?: boolean;\n\t} | undefined;\n\n\tconstructor({ cockroachConfig, config }: {\n\t\tcockroachConfig: {\n\t\t\twithNoData: boolean | undefined;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tthis[CockroachMaterializedViewConfig] = {\n\t\t\twithNoData: cockroachConfig?.withNoData,\n\t\t};\n\t}\n}\n\nexport type CockroachMaterializedViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = CockroachMaterializedView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\n/** @internal */\nexport function cockroachViewWithSchema(\n\tname: string,\n\tselection: Record<string, CockroachColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): ViewBuilder | ManualViewBuilder {\n\tif (selection) {\n\t\treturn new ManualViewBuilder(name, selection, schema);\n\t}\n\treturn new ViewBuilder(name, schema);\n}\n\n/** @internal */\nexport function cockroachMaterializedViewWithSchema(\n\tname: string,\n\tselection: Record<string, CockroachColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\tif (selection) {\n\t\treturn new ManualMaterializedViewBuilder(name, selection, schema);\n\t}\n\treturn new MaterializedViewBuilder(name, schema);\n}\n\nexport function cockroachView<TName extends string>(name: TName): ViewBuilder<TName>;\nexport function cockroachView<TName extends string, TColumns extends Record<string, CockroachColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualViewBuilder<TName, TColumns>;\nexport function cockroachView(\n\tname: string,\n\tcolumns?: Record<string, CockroachColumnBuilderBase>,\n): ViewBuilder | ManualViewBuilder {\n\treturn cockroachViewWithSchema(name, columns, undefined);\n}\n\nexport function cockroachMaterializedView<TName extends string>(name: TName): MaterializedViewBuilder<TName>;\nexport function cockroachMaterializedView<\n\tTName extends string,\n\tTColumns extends Record<string, CockroachColumnBuilderBase>,\n>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualMaterializedViewBuilder<TName, TColumns>;\nexport function cockroachMaterializedView(\n\tname: string,\n\tcolumns?: Record<string, CockroachColumnBuilderBase>,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\treturn cockroachMaterializedViewWithSchema(name, columns, undefined);\n}\n\nexport function isCockroachView(obj: unknown): obj is CockroachView {\n\treturn is(obj, CockroachView);\n}\n\nexport function isCockroachMaterializedView(obj: unknown): obj is CockroachMaterializedView {\n\treturn is(obj, CockroachMaterializedView);\n}\n"],"mappings":"AACA,SAAS,YAAY,UAAU;AAG/B,SAAS,6BAA6B;AAEtC,SAAS,uBAAuB;AAEhC,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAE3B,MAAM,uBAA4E;AAAA,EAQxF,YACW,MACA,QACT;AAFS;AACA;AAAA,EACR;AAAA,EAVH,QAAiB,UAAU,IAAY;AAWxC;AAEO,MAAM,oBAAmD,uBAAwC;AAAA,EACvG,QAA0B,UAAU,IAAY;AAAA,EAEhD,GACC,IACqG;AACrG,QAAI,OAAO,OAAO,YAAY;AAC7B,WAAK,GAAG,IAAI,aAAa,CAAC;AAAA,IAC3B;AACA,UAAM,iBAAiB,IAAI,sBAAuC;AAAA,MACjE,OAAO,KAAK;AAAA,MACZ,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,IACtB,CAAC;AACD,UAAM,mBAAmB,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc;AACzE,WAAO,IAAI;AAAA,MACV,IAAI,cAAc;AAAA,QACjB,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB;AAAA,UAChB,OAAO,GAAG,OAAO,EAAE,aAAa;AAAA,QACjC;AAAA,MACD,CAAC;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,0BAGH,uBAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAER,YACC,MACA,SACA,QACC;AACD,UAAM,MAAM,MAAM;AAClB,SAAK,UAAU,gBAAgB,eAAe,MAAM,OAAO,CAAC;AAAA,EAC7D;AAAA,EAEA,WAAgG;AAC/F,WAAO,IAAI;AAAA,MACV,IAAI,cAAc;AAAA,QACjB,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO;AAAA,QACR;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,GAAG,OAAkG;AACpG,WAAO,IAAI;AAAA,MACV,IAAI,cAAc;AAAA,QACjB,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO,MAAM,aAAa;AAAA,QAC3B;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AACD;AAEO,MAAM,4BAAiF;AAAA,EAQ7F,YACW,MACA,QACT;AAFS;AACA;AAAA,EACR;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAY7B,SAEN,CAAC;AAAA,EAEL,aAAmB;AAClB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AACD;AAEO,MAAM,gCACJ,4BACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,GACC,IAKC;AACD,QAAI,OAAO,OAAO,YAAY;AAC7B,WAAK,GAAG,IAAI,aAAa,CAAC;AAAA,IAC3B;AACA,UAAM,iBAAiB,IAAI,sBAAuC;AAAA,MACjE,OAAO,KAAK;AAAA,MACZ,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,IACtB,CAAC;AACD,UAAM,mBAAmB,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc;AACzE,WAAO,IAAI;AAAA,MACV,IAAI,0BAA0B;AAAA,QAC7B,iBAAiB;AAAA,UAChB,YAAY,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB;AAAA,UAChB,OAAO,GAAG,OAAO,EAAE,aAAa;AAAA,QACjC;AAAA,MACD,CAAC;AAAA,MACD;AAAA,IACD;AAAA,EAKD;AACD;AAEO,MAAM,sCAGH,4BAAgE;AAAA,EACzE,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAER,YACC,MACA,SACA,QACC;AACD,UAAM,MAAM,MAAM;AAClB,SAAK,UAAU,gBAAgB,eAAe,MAAM,OAAO,CAAC;AAAA,EAC7D;AAAA,EAEA,WAA4G;AAC3G,WAAO,IAAI;AAAA,MACV,IAAI,0BAA0B;AAAA,QAC7B,iBAAiB;AAAA,UAChB,YAAY,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO;AAAA,QACR;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,GAAG,OAA8G;AAChH,WAAO,IAAI;AAAA,MACV,IAAI,0BAA0B;AAAA,QAC7B,iBAAiB;AAAA,UAChB,YAAY,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO,MAAM,aAAa;AAAA,QAC3B;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AACD;AAEO,MAAM,sBAIH,kBAAqD;AAAA,EAC9D,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,EAAE,OAAO,GAOlB;AACF,UAAM,MAAM;AAAA,EACb;AACD;AAQO,MAAM,kCAAkC,OAAO,IAAI,yCAAyC;AAE5F,MAAM,kCAIH,kBAAqD;AAAA,EAC9D,QAA0B,UAAU,IAAY;AAAA,EAEhD,CAAU,+BAA+B;AAAA,EAIzC,YAAY,EAAE,iBAAiB,OAAO,GAUnC;AACF,UAAM,MAAM;AACZ,SAAK,+BAA+B,IAAI;AAAA,MACvC,YAAY,iBAAiB;AAAA,IAC9B;AAAA,EACD;AACD;AASO,SAAS,wBACf,MACA,WACA,QACkC;AAClC,MAAI,WAAW;AACd,WAAO,IAAI,kBAAkB,MAAM,WAAW,MAAM;AAAA,EACrD;AACA,SAAO,IAAI,YAAY,MAAM,MAAM;AACpC;AAGO,SAAS,oCACf,MACA,WACA,QAC0D;AAC1D,MAAI,WAAW;AACd,WAAO,IAAI,8BAA8B,MAAM,WAAW,MAAM;AAAA,EACjE;AACA,SAAO,IAAI,wBAAwB,MAAM,MAAM;AAChD;AAOO,SAAS,cACf,MACA,SACkC;AAClC,SAAO,wBAAwB,MAAM,SAAS,MAAS;AACxD;AAUO,SAAS,0BACf,MACA,SAC0D;AAC1D,SAAO,oCAAoC,MAAM,SAAS,MAAS;AACpE;AAEO,SAAS,gBAAgB,KAAoC;AACnE,SAAO,GAAG,KAAK,aAAa;AAC7B;AAEO,SAAS,4BAA4B,KAAgD;AAC3F,SAAO,GAAG,KAAK,yBAAyB;AACzC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { GelColumn, GelExtraConfigColumn } from './gel-core/index.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SingleStoreColumn } from './singlestore-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\t| 'dateDuration'\n\t| 'duration'\n\t| 'relDuration'\n\t| 'localTime'\n\t| 'localDate'\n\t| 'localDateTime';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common' | 'gel';\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}\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\tidentity: T extends { identity: 'always' } ? 'always' : T extends { identity: 'byDefault' } ? 'byDefault' : undefined;\n\tgenerated: T extends { generated: infer G } ? unknown extends G ? undefined\n\t\t: G extends undefined ? undefined\n\t\t: G\n\t\t: 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\tidentity: T extends { identity: infer U } ? U : unknown;\n\t\tgenerated: T extends { generated: infer G } ? G extends undefined ? unknown : G : unknown;\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 IsIdentity<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tidentity: TType;\n\t};\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\t\ttype: 'always';\n\t}>;\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<\n\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t{},\n\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t>\n\t: TDialect extends 'mysql' ? MySqlColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'mysqlColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'common' ? Column<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'singlestore' ? SingleStoreColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'singlestoreColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'gel' ? GelColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn\n\t: TDialect extends 'gel' ? GelExtraConfigColumn\n\t: 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 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAwLpB,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,EAUA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS,GAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
1
+ {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { CockroachColumn, ExtraConfigColumn as CockroachExtraConfigColumn } from './cockroach-core/index.ts';\nimport type { Column } from './column.ts';\nimport type { GelColumn, GelExtraConfigColumn } from './gel-core/index.ts';\nimport type { MsSqlColumn } from './mssql-core/index.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SingleStoreColumn } from './singlestore-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\t| 'dateDuration'\n\t| 'duration'\n\t| 'relDuration'\n\t| 'localTime'\n\t| 'localDate'\n\t| 'localDateTime';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'mssql' | 'common' | 'gel' | 'cockroach';\n\n// TODO update description\n// 'virtual' | 'stored' for postgres\n// 'stored' for mysql\n// 'virtual' | 'persisted' for mssql\n// We should remove this option from common Column and store it per dialect common\n// Was discussed with Andrew\nexport type GeneratedStorageMode = 'virtual' | 'stored' | 'persisted';\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}\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\tidentity: T extends { identity: 'always' } ? 'always' : T extends { identity: 'byDefault' } ? 'byDefault' : undefined;\n\tgenerated: T extends { generated: infer G } ? unknown extends G ? undefined\n\t\t: G extends undefined ? undefined\n\t\t: G\n\t\t: 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\tidentity: T extends { identity: infer U } ? U : unknown;\n\t\tgenerated: T extends { generated: infer G } ? G extends undefined ? unknown : G : unknown;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> =\n\t& {\n\t\tname: string;\n\t\tkeyAsName: boolean;\n\t\tnotNull: boolean;\n\t\tdefault: TData | SQL | undefined;\n\t\tdefaultFn: (() => TData | SQL) | undefined;\n\t\tonUpdateFn: (() => TData | SQL) | undefined;\n\t\thasDefault: boolean;\n\t\tprimaryKey: boolean;\n\t\tisUnique: boolean;\n\t\tuniqueName: string | undefined;\n\t\tuniqueType: string | undefined;\n\t\tuniqueNameExplicit: boolean | undefined;\n\t\tdataType: string;\n\t\tcolumnType: string;\n\t\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\t\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n\t}\n\t& 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 IsIdentity<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tidentity: TType;\n\t};\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\t\ttype: 'always';\n\t}>;\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<\n\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t{},\n\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t>\n\t: TDialect extends 'cockroach' ? CockroachColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'mysql' ? MySqlColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'mysqlColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'mssql' ? MsSqlColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'mssqlColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'common' ? Column<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'singlestore' ? SingleStoreColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'singlestoreColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'gel' ? GelColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn\n\t: TDialect extends 'cockroach' ? CockroachExtraConfigColumn\n\t: TDialect extends 'gel' ? GelExtraConfigColumn\n\t: 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 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mssql' ? MsSqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'cockroach' ? CockroachColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAmMpB,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,EAUA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS,GAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
@@ -1,6 +1,8 @@
1
1
  import { entityKind } from "./entity.cjs";
2
+ import type { CockroachColumn, ExtraConfigColumn as CockroachExtraConfigColumn } from "./cockroach-core/index.cjs";
2
3
  import type { Column } from "./column.cjs";
3
4
  import type { GelColumn, GelExtraConfigColumn } from "./gel-core/index.cjs";
5
+ import type { MsSqlColumn } from "./mssql-core/index.cjs";
4
6
  import type { MySqlColumn } from "./mysql-core/index.cjs";
5
7
  import type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from "./pg-core/index.cjs";
6
8
  import type { SingleStoreColumn } from "./singlestore-core/index.cjs";
@@ -8,8 +10,8 @@ import type { SQL } from "./sql/sql.cjs";
8
10
  import type { SQLiteColumn } from "./sqlite-core/index.cjs";
9
11
  import type { Assume, Simplify } from "./utils.cjs";
10
12
  export type ColumnDataType = 'string' | 'number' | 'boolean' | 'array' | 'json' | 'date' | 'bigint' | 'custom' | 'buffer' | 'dateDuration' | 'duration' | 'relDuration' | 'localTime' | 'localDate' | 'localDateTime';
11
- export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common' | 'gel';
12
- export type GeneratedStorageMode = 'virtual' | 'stored';
13
+ export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'mssql' | 'common' | 'gel' | 'cockroach';
14
+ export type GeneratedStorageMode = 'virtual' | 'stored' | 'persisted';
13
15
  export type GeneratedType = 'always' | 'byDefault';
14
16
  export type GeneratedColumnConfig<TDataType> = {
15
17
  as: TDataType | SQL | (() => SQL);
@@ -99,6 +101,7 @@ export type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = ob
99
101
  isUnique: boolean;
100
102
  uniqueName: string | undefined;
101
103
  uniqueType: string | undefined;
104
+ uniqueNameExplicit: boolean | undefined;
102
105
  dataType: string;
103
106
  columnType: string;
104
107
  generated: GeneratedColumnConfig<TData> | undefined;
@@ -227,8 +230,8 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
227
230
  type: 'always';
228
231
  }>;
229
232
  }
230
- export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'mysqlColumnBuilderBrand'>>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'singlestoreColumnBuilderBrand'>>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : never;
231
- export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : TDialect extends 'gel' ? GelExtraConfigColumn : never;
233
+ export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'cockroach' ? CockroachColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'mysqlColumnBuilderBrand'>>> : TDialect extends 'mssql' ? MsSqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'mssqlColumnBuilderBrand'>>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'singlestoreColumnBuilderBrand'>>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : never;
234
+ export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : TDialect extends 'cockroach' ? CockroachExtraConfigColumn : TDialect extends 'gel' ? GelExtraConfigColumn : never;
232
235
  export type BuildColumns<TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
233
236
  [Key in keyof TConfigMap]: BuildColumn<TTableName, {
234
237
  _: Omit<TConfigMap[Key]['_'], 'name'> & {
@@ -239,4 +242,4 @@ export type BuildColumns<TTableName extends string, TConfigMap extends Record<st
239
242
  export type BuildExtraConfigColumns<_TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
240
243
  [Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;
241
244
  } & {};
242
- export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
245
+ export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mssql' ? MsSqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'cockroach' ? CockroachColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
@@ -1,6 +1,8 @@
1
1
  import { entityKind } from "./entity.js";
2
+ import type { CockroachColumn, ExtraConfigColumn as CockroachExtraConfigColumn } from "./cockroach-core/index.js";
2
3
  import type { Column } from "./column.js";
3
4
  import type { GelColumn, GelExtraConfigColumn } from "./gel-core/index.js";
5
+ import type { MsSqlColumn } from "./mssql-core/index.js";
4
6
  import type { MySqlColumn } from "./mysql-core/index.js";
5
7
  import type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from "./pg-core/index.js";
6
8
  import type { SingleStoreColumn } from "./singlestore-core/index.js";
@@ -8,8 +10,8 @@ import type { SQL } from "./sql/sql.js";
8
10
  import type { SQLiteColumn } from "./sqlite-core/index.js";
9
11
  import type { Assume, Simplify } from "./utils.js";
10
12
  export type ColumnDataType = 'string' | 'number' | 'boolean' | 'array' | 'json' | 'date' | 'bigint' | 'custom' | 'buffer' | 'dateDuration' | 'duration' | 'relDuration' | 'localTime' | 'localDate' | 'localDateTime';
11
- export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common' | 'gel';
12
- export type GeneratedStorageMode = 'virtual' | 'stored';
13
+ export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'mssql' | 'common' | 'gel' | 'cockroach';
14
+ export type GeneratedStorageMode = 'virtual' | 'stored' | 'persisted';
13
15
  export type GeneratedType = 'always' | 'byDefault';
14
16
  export type GeneratedColumnConfig<TDataType> = {
15
17
  as: TDataType | SQL | (() => SQL);
@@ -99,6 +101,7 @@ export type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = ob
99
101
  isUnique: boolean;
100
102
  uniqueName: string | undefined;
101
103
  uniqueType: string | undefined;
104
+ uniqueNameExplicit: boolean | undefined;
102
105
  dataType: string;
103
106
  columnType: string;
104
107
  generated: GeneratedColumnConfig<TData> | undefined;
@@ -227,8 +230,8 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
227
230
  type: 'always';
228
231
  }>;
229
232
  }
230
- export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'mysqlColumnBuilderBrand'>>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'singlestoreColumnBuilderBrand'>>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : never;
231
- export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : TDialect extends 'gel' ? GelExtraConfigColumn : never;
233
+ export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'cockroach' ? CockroachColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'mysqlColumnBuilderBrand'>>> : TDialect extends 'mssql' ? MsSqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'mssqlColumnBuilderBrand'>>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect' | 'primaryKeyHasDefault' | 'singlestoreColumnBuilderBrand'>>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TBuilder['_'], TTableName>, {}, Simplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>> : never;
234
+ export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : TDialect extends 'cockroach' ? CockroachExtraConfigColumn : TDialect extends 'gel' ? GelExtraConfigColumn : never;
232
235
  export type BuildColumns<TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
233
236
  [Key in keyof TConfigMap]: BuildColumn<TTableName, {
234
237
  _: Omit<TConfigMap[Key]['_'], 'name'> & {
@@ -239,4 +242,4 @@ export type BuildColumns<TTableName extends string, TConfigMap extends Record<st
239
242
  export type BuildExtraConfigColumns<_TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
240
243
  [Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;
241
244
  } & {};
242
- export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
245
+ export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mssql' ? MsSqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'cockroach' ? CockroachColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { GelColumn, GelExtraConfigColumn } from './gel-core/index.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SingleStoreColumn } from './singlestore-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\t| 'dateDuration'\n\t| 'duration'\n\t| 'relDuration'\n\t| 'localTime'\n\t| 'localDate'\n\t| 'localDateTime';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common' | 'gel';\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}\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\tidentity: T extends { identity: 'always' } ? 'always' : T extends { identity: 'byDefault' } ? 'byDefault' : undefined;\n\tgenerated: T extends { generated: infer G } ? unknown extends G ? undefined\n\t\t: G extends undefined ? undefined\n\t\t: G\n\t\t: 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\tidentity: T extends { identity: infer U } ? U : unknown;\n\t\tgenerated: T extends { generated: infer G } ? G extends undefined ? unknown : G : unknown;\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 IsIdentity<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tidentity: TType;\n\t};\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\t\ttype: 'always';\n\t}>;\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<\n\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t{},\n\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t>\n\t: TDialect extends 'mysql' ? MySqlColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'mysqlColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'common' ? Column<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'singlestore' ? SingleStoreColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'singlestoreColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'gel' ? GelColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn\n\t: TDialect extends 'gel' ? GelExtraConfigColumn\n\t: 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 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":"AAAA,SAAS,kBAAkB;AAwLpB,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,EAUA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS,GAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
1
+ {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { CockroachColumn, ExtraConfigColumn as CockroachExtraConfigColumn } from './cockroach-core/index.ts';\nimport type { Column } from './column.ts';\nimport type { GelColumn, GelExtraConfigColumn } from './gel-core/index.ts';\nimport type { MsSqlColumn } from './mssql-core/index.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SingleStoreColumn } from './singlestore-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\t| 'dateDuration'\n\t| 'duration'\n\t| 'relDuration'\n\t| 'localTime'\n\t| 'localDate'\n\t| 'localDateTime';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'mssql' | 'common' | 'gel' | 'cockroach';\n\n// TODO update description\n// 'virtual' | 'stored' for postgres\n// 'stored' for mysql\n// 'virtual' | 'persisted' for mssql\n// We should remove this option from common Column and store it per dialect common\n// Was discussed with Andrew\nexport type GeneratedStorageMode = 'virtual' | 'stored' | 'persisted';\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}\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\tidentity: T extends { identity: 'always' } ? 'always' : T extends { identity: 'byDefault' } ? 'byDefault' : undefined;\n\tgenerated: T extends { generated: infer G } ? unknown extends G ? undefined\n\t\t: G extends undefined ? undefined\n\t\t: G\n\t\t: 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\tidentity: T extends { identity: infer U } ? U : unknown;\n\t\tgenerated: T extends { generated: infer G } ? G extends undefined ? unknown : G : unknown;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> =\n\t& {\n\t\tname: string;\n\t\tkeyAsName: boolean;\n\t\tnotNull: boolean;\n\t\tdefault: TData | SQL | undefined;\n\t\tdefaultFn: (() => TData | SQL) | undefined;\n\t\tonUpdateFn: (() => TData | SQL) | undefined;\n\t\thasDefault: boolean;\n\t\tprimaryKey: boolean;\n\t\tisUnique: boolean;\n\t\tuniqueName: string | undefined;\n\t\tuniqueType: string | undefined;\n\t\tuniqueNameExplicit: boolean | undefined;\n\t\tdataType: string;\n\t\tcolumnType: string;\n\t\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\t\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n\t}\n\t& 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 IsIdentity<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tidentity: TType;\n\t};\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\t\ttype: 'always';\n\t}>;\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<\n\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t{},\n\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t>\n\t: TDialect extends 'cockroach' ? CockroachColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'mysql' ? MySqlColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'mysqlColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'mssql' ? MsSqlColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'mssqlColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'common' ? Column<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: TDialect extends 'singlestore' ? SingleStoreColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<\n\t\t\t\tOmit<\n\t\t\t\t\tTBuilder['_'],\n\t\t\t\t\t| keyof MakeColumnConfig<TBuilder['_'], TTableName>\n\t\t\t\t\t| 'brand'\n\t\t\t\t\t| 'dialect'\n\t\t\t\t\t| 'primaryKeyHasDefault'\n\t\t\t\t\t| 'singlestoreColumnBuilderBrand'\n\t\t\t\t>\n\t\t\t>\n\t\t>\n\t: TDialect extends 'gel' ? GelColumn<\n\t\t\tMakeColumnConfig<TBuilder['_'], TTableName>,\n\t\t\t{},\n\t\t\tSimplify<Omit<TBuilder['_'], keyof MakeColumnConfig<TBuilder['_'], TTableName> | 'brand' | 'dialect'>>\n\t\t>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn\n\t: TDialect extends 'cockroach' ? CockroachExtraConfigColumn\n\t: TDialect extends 'gel' ? GelExtraConfigColumn\n\t: 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 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'gel' ? GelColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mssql' ? MsSqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'cockroach' ? CockroachColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":"AAAA,SAAS,kBAAkB;AAmMpB,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,EAUA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS,GAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
package/column.cjs CHANGED
@@ -37,6 +37,7 @@ class Column {
37
37
  this.isUnique = config.isUnique;
38
38
  this.uniqueName = config.uniqueName;
39
39
  this.uniqueType = config.uniqueType;
40
+ this.uniqueNameExplicit = config.uniqueNameExplicit;
40
41
  this.dataType = config.dataType;
41
42
  this.columnType = config.columnType;
42
43
  this.generated = config.generated;
@@ -54,6 +55,7 @@ class Column {
54
55
  isUnique;
55
56
  uniqueName;
56
57
  uniqueType;
58
+ uniqueNameExplicit;
57
59
  dataType;
58
60
  columnType;
59
61
  enumValues = void 0;
package/column.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/column.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tGeneratedColumnConfig,\n\tGeneratedIdentityConfig,\n} from './column-builder.ts';\nimport { entityKind } from './entity.ts';\nimport type { DriverValueMapper, SQL, SQLWrapper } from './sql/sql.ts';\nimport type { Table } from './table.ts';\nimport type { Update } from './utils.ts';\n\nexport interface ColumnBaseConfig<\n\tTDataType extends ColumnDataType,\n\tTColumnType extends string,\n> extends ColumnBuilderBaseConfig<TDataType, TColumnType> {\n\ttableName: string;\n\tnotNull: boolean;\n\thasDefault: boolean;\n\tisPrimaryKey: boolean;\n\tisAutoincrement: boolean;\n\thasRuntimeDefault: boolean;\n}\n\nexport type ColumnTypeConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TTypeConfig extends object> = T & {\n\tbrand: 'Column';\n\ttableName: T['tableName'];\n\tname: T['name'];\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: T['data'];\n\tdriverParam: T['driverParam'];\n\tnotNull: T['notNull'];\n\thasDefault: T['hasDefault'];\n\tisPrimaryKey: T['isPrimaryKey'];\n\tisAutoincrement: T['isAutoincrement'];\n\thasRuntimeDefault: T['hasRuntimeDefault'];\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseColumn: infer U } ? U : unknown;\n\tgenerated: GeneratedColumnConfig<T['data']> | undefined;\n\tidentity: undefined | 'always' | 'byDefault';\n} & TTypeConfig;\n\nexport type ColumnRuntimeConfig<TData, TRuntimeConfig extends object> = ColumnBuilderRuntimeConfig<\n\tTData,\n\tTRuntimeConfig\n>;\n\nexport interface Column<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTRuntimeConfig extends object = object,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTTypeConfig extends object = object,\n> extends DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n/*\n\t`Column` only accepts a full `ColumnConfig` as its generic.\n\tTo infer parts of the config, use `AnyColumn` that accepts a partial config.\n\tSee `GetColumnData` for example usage of inferring.\n*/\nexport abstract class Column<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n> implements DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Column';\n\n\tdeclare readonly _: ColumnTypeConfig<T, TTypeConfig>;\n\n\treadonly name: string;\n\treadonly keyAsName: boolean;\n\treadonly primary: boolean;\n\treadonly notNull: boolean;\n\treadonly default: T['data'] | SQL | undefined;\n\treadonly defaultFn: (() => T['data'] | SQL) | undefined;\n\treadonly onUpdateFn: (() => T['data'] | SQL) | undefined;\n\treadonly hasDefault: boolean;\n\treadonly isUnique: boolean;\n\treadonly uniqueName: string | undefined;\n\treadonly uniqueType: string | undefined;\n\treadonly dataType: T['dataType'];\n\treadonly columnType: T['columnType'];\n\treadonly enumValues: T['enumValues'] = undefined;\n\treadonly generated: GeneratedColumnConfig<T['data']> | undefined = undefined;\n\treadonly generatedIdentity: GeneratedIdentityConfig | undefined = undefined;\n\n\tprotected config: ColumnRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(\n\t\treadonly table: Table,\n\t\tconfig: ColumnRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tthis.config = config;\n\t\tthis.name = config.name;\n\t\tthis.keyAsName = config.keyAsName;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.onUpdateFn = config.onUpdateFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.dataType = config.dataType as T['dataType'];\n\t\tthis.columnType = config.columnType;\n\t\tthis.generated = config.generated;\n\t\tthis.generatedIdentity = config.generatedIdentity;\n\t}\n\n\tabstract getSQLType(): string;\n\n\tmapFromDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n\n\tmapToDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n\n\t// ** @internal */\n\tshouldDisableInsert(): boolean {\n\t\treturn this.config.generated !== undefined && this.config.generated.type !== 'byDefault';\n\t}\n}\n\nexport type UpdateColConfig<\n\tT extends ColumnBaseConfig<ColumnDataType, string>,\n\tTUpdate extends Partial<ColumnBaseConfig<ColumnDataType, string>>,\n> = Update<T, TUpdate>;\n\nexport type AnyColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = Column<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport type GetColumnData<TColumn extends Column, TInferMode extends 'query' | 'raw' = 'query'> =\n\t// dprint-ignore\n\tTInferMode extends 'raw' // Raw mode\n\t\t? TColumn['_']['data'] // Just return the underlying type\n\t\t: TColumn['_']['notNull'] extends true // Query mode\n\t\t? TColumn['_']['data'] // Query mode, not null\n\t\t: TColumn['_']['data'] | null; // Query mode, nullable\n\nexport type InferColumnsDataTypes<TColumns extends Record<string, Column>> = {\n\t[Key in keyof TColumns]: GetColumnData<TColumns[Key], 'query'>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,oBAA2B;AAuDpB,MAAe,OAIkD;AAAA,EAwBvE,YACU,OACT,QACC;AAFQ;AAGT,SAAK,SAAS;AACd,SAAK,OAAO,OAAO;AACnB,SAAK,YAAY,OAAO;AACxB,SAAK,UAAU,OAAO;AACtB,SAAK,UAAU,OAAO;AACtB,SAAK,YAAY,OAAO;AACxB,SAAK,aAAa,OAAO;AACzB,SAAK,aAAa,OAAO;AACzB,SAAK,UAAU,OAAO;AACtB,SAAK,WAAW,OAAO;AACvB,SAAK,aAAa,OAAO;AACzB,SAAK,aAAa,OAAO;AACzB,SAAK,WAAW,OAAO;AACvB,SAAK,aAAa,OAAO;AACzB,SAAK,YAAY,OAAO;AACxB,SAAK,oBAAoB,OAAO;AAAA,EACjC;AAAA,EA3CA,QAAiB,wBAAU,IAAY;AAAA,EAI9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAA8B;AAAA,EAC9B,YAA0D;AAAA,EAC1D,oBAAyD;AAAA,EAExD;AAAA,EA0BV,mBAAmB,OAAyB;AAC3C,WAAO;AAAA,EACR;AAAA,EAEA,iBAAiB,OAAyB;AACzC,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,sBAA+B;AAC9B,WAAO,KAAK,OAAO,cAAc,UAAa,KAAK,OAAO,UAAU,SAAS;AAAA,EAC9E;AACD;","names":[]}
1
+ {"version":3,"sources":["../src/column.ts"],"sourcesContent":["import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tGeneratedColumnConfig,\n\tGeneratedIdentityConfig,\n} from './column-builder.ts';\nimport { entityKind } from './entity.ts';\nimport type { DriverValueMapper, SQL, SQLWrapper } from './sql/sql.ts';\nimport type { Table } from './table.ts';\nimport type { Update } from './utils.ts';\n\nexport interface ColumnBaseConfig<\n\tTDataType extends ColumnDataType,\n\tTColumnType extends string,\n> extends ColumnBuilderBaseConfig<TDataType, TColumnType> {\n\ttableName: string;\n\tnotNull: boolean;\n\thasDefault: boolean;\n\tisPrimaryKey: boolean;\n\tisAutoincrement: boolean;\n\thasRuntimeDefault: boolean;\n}\n\nexport type ColumnTypeConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TTypeConfig extends object> = T & {\n\tbrand: 'Column';\n\ttableName: T['tableName'];\n\tname: T['name'];\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: T['data'];\n\tdriverParam: T['driverParam'];\n\tnotNull: T['notNull'];\n\thasDefault: T['hasDefault'];\n\tisPrimaryKey: T['isPrimaryKey'];\n\tisAutoincrement: T['isAutoincrement'];\n\thasRuntimeDefault: T['hasRuntimeDefault'];\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseColumn: infer U } ? U : unknown;\n\tgenerated: GeneratedColumnConfig<T['data']> | undefined;\n\tidentity: undefined | 'always' | 'byDefault';\n} & TTypeConfig;\n\nexport type ColumnRuntimeConfig<TData, TRuntimeConfig extends object> = ColumnBuilderRuntimeConfig<\n\tTData,\n\tTRuntimeConfig\n>;\n\nexport interface Column<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTRuntimeConfig extends object = object,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTTypeConfig extends object = object,\n> extends DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n/*\n\t`Column` only accepts a full `ColumnConfig` as its generic.\n\tTo infer parts of the config, use `AnyColumn` that accepts a partial config.\n\tSee `GetColumnData` for example usage of inferring.\n*/\nexport abstract class Column<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n> implements DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Column';\n\n\tdeclare readonly _: ColumnTypeConfig<T, TTypeConfig>;\n\n\treadonly name: string;\n\treadonly keyAsName: boolean;\n\treadonly primary: boolean;\n\treadonly notNull: boolean;\n\treadonly default: T['data'] | SQL | undefined;\n\treadonly defaultFn: (() => T['data'] | SQL) | undefined;\n\treadonly onUpdateFn: (() => T['data'] | SQL) | undefined;\n\treadonly hasDefault: boolean;\n\treadonly isUnique: boolean;\n\treadonly uniqueName: string | undefined;\n\treadonly uniqueType: string | undefined;\n\treadonly uniqueNameExplicit: boolean | undefined;\n\treadonly dataType: T['dataType'];\n\treadonly columnType: T['columnType'];\n\treadonly enumValues: T['enumValues'] = undefined;\n\treadonly generated: GeneratedColumnConfig<T['data']> | undefined = undefined;\n\treadonly generatedIdentity: GeneratedIdentityConfig | undefined = undefined;\n\n\tprotected config: ColumnRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(\n\t\treadonly table: Table,\n\t\tconfig: ColumnRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tthis.config = config;\n\t\tthis.name = config.name;\n\t\tthis.keyAsName = config.keyAsName;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.onUpdateFn = config.onUpdateFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.uniqueNameExplicit = config.uniqueNameExplicit;\n\t\tthis.dataType = config.dataType as T['dataType'];\n\t\tthis.columnType = config.columnType;\n\t\tthis.generated = config.generated;\n\t\tthis.generatedIdentity = config.generatedIdentity;\n\t}\n\n\tabstract getSQLType(): string;\n\n\tmapFromDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n\n\tmapToDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n\n\t// ** @internal */\n\tshouldDisableInsert(): boolean {\n\t\treturn this.config.generated !== undefined && this.config.generated.type !== 'byDefault';\n\t}\n}\n\nexport type UpdateColConfig<\n\tT extends ColumnBaseConfig<ColumnDataType, string>,\n\tTUpdate extends Partial<ColumnBaseConfig<ColumnDataType, string>>,\n> = Update<T, TUpdate>;\n\nexport type AnyColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = Column<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport type GetColumnData<TColumn extends Column, TInferMode extends 'query' | 'raw' = 'query'> =\n\t// dprint-ignore\n\tTInferMode extends 'raw' // Raw mode\n\t\t? TColumn['_']['data'] // Just return the underlying type\n\t\t: TColumn['_']['notNull'] extends true // Query mode\n\t\t? TColumn['_']['data'] // Query mode, not null\n\t\t: TColumn['_']['data'] | null; // Query mode, nullable\n\nexport type InferColumnsDataTypes<TColumns extends Record<string, Column>> = {\n\t[Key in keyof TColumns]: GetColumnData<TColumns[Key], 'query'>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,oBAA2B;AAuDpB,MAAe,OAIkD;AAAA,EAyBvE,YACU,OACT,QACC;AAFQ;AAGT,SAAK,SAAS;AACd,SAAK,OAAO,OAAO;AACnB,SAAK,YAAY,OAAO;AACxB,SAAK,UAAU,OAAO;AACtB,SAAK,UAAU,OAAO;AACtB,SAAK,YAAY,OAAO;AACxB,SAAK,aAAa,OAAO;AACzB,SAAK,aAAa,OAAO;AACzB,SAAK,UAAU,OAAO;AACtB,SAAK,WAAW,OAAO;AACvB,SAAK,aAAa,OAAO;AACzB,SAAK,aAAa,OAAO;AACzB,SAAK,qBAAqB,OAAO;AACjC,SAAK,WAAW,OAAO;AACvB,SAAK,aAAa,OAAO;AACzB,SAAK,YAAY,OAAO;AACxB,SAAK,oBAAoB,OAAO;AAAA,EACjC;AAAA,EA7CA,QAAiB,wBAAU,IAAY;AAAA,EAI9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAA8B;AAAA,EAC9B,YAA0D;AAAA,EAC1D,oBAAyD;AAAA,EAExD;AAAA,EA2BV,mBAAmB,OAAyB;AAC3C,WAAO;AAAA,EACR;AAAA,EAEA,iBAAiB,OAAyB;AACzC,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,sBAA+B;AAC9B,WAAO,KAAK,OAAO,cAAc,UAAa,KAAK,OAAO,UAAU,SAAS;AAAA,EAC9E;AACD;","names":[]}
package/column.d.cts CHANGED
@@ -49,6 +49,7 @@ export declare abstract class Column<T extends ColumnBaseConfig<ColumnDataType,
49
49
  readonly isUnique: boolean;
50
50
  readonly uniqueName: string | undefined;
51
51
  readonly uniqueType: string | undefined;
52
+ readonly uniqueNameExplicit: boolean | undefined;
52
53
  readonly dataType: T['dataType'];
53
54
  readonly columnType: T['columnType'];
54
55
  readonly enumValues: T['enumValues'];
package/column.d.ts CHANGED
@@ -49,6 +49,7 @@ export declare abstract class Column<T extends ColumnBaseConfig<ColumnDataType,
49
49
  readonly isUnique: boolean;
50
50
  readonly uniqueName: string | undefined;
51
51
  readonly uniqueType: string | undefined;
52
+ readonly uniqueNameExplicit: boolean | undefined;
52
53
  readonly dataType: T['dataType'];
53
54
  readonly columnType: T['columnType'];
54
55
  readonly enumValues: T['enumValues'];