drizzle-orm 1.0.0-beta.1-7722e6a → 1.0.0-beta.2-e93475f

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 (1777) hide show
  1. package/_relations.cjs +50 -6
  2. package/_relations.cjs.map +1 -1
  3. package/_relations.d.cts +1 -0
  4. package/_relations.d.ts +1 -0
  5. package/_relations.js +49 -6
  6. package/_relations.js.map +1 -1
  7. package/alias.cjs +56 -8
  8. package/alias.cjs.map +1 -1
  9. package/alias.d.cts +13 -3
  10. package/alias.d.ts +13 -3
  11. package/alias.js +53 -8
  12. package/alias.js.map +1 -1
  13. package/aws-data-api/common/index.cjs +18 -9
  14. package/aws-data-api/common/index.cjs.map +1 -1
  15. package/aws-data-api/common/index.d.cts +4 -1
  16. package/aws-data-api/common/index.d.ts +4 -1
  17. package/aws-data-api/common/index.js +17 -9
  18. package/aws-data-api/common/index.js.map +1 -1
  19. package/aws-data-api/pg/driver.cjs +0 -3
  20. package/aws-data-api/pg/driver.cjs.map +1 -1
  21. package/aws-data-api/pg/driver.d.cts +0 -3
  22. package/aws-data-api/pg/driver.d.ts +0 -3
  23. package/aws-data-api/pg/driver.js +0 -3
  24. package/aws-data-api/pg/driver.js.map +1 -1
  25. package/better-sqlite3/driver.cjs +10 -14
  26. package/better-sqlite3/driver.cjs.map +1 -1
  27. package/better-sqlite3/driver.d.cts +3 -3
  28. package/better-sqlite3/driver.d.ts +3 -3
  29. package/better-sqlite3/driver.js +10 -14
  30. package/better-sqlite3/driver.js.map +1 -1
  31. package/bun-sql/driver.cjs.map +1 -1
  32. package/bun-sql/driver.d.cts +8 -8
  33. package/bun-sql/driver.d.ts +8 -8
  34. package/bun-sql/driver.js.map +1 -1
  35. package/bun-sql/mysql/driver.cjs +10 -14
  36. package/bun-sql/mysql/driver.cjs.map +1 -1
  37. package/bun-sql/mysql/driver.d.cts +3 -3
  38. package/bun-sql/mysql/driver.d.ts +3 -3
  39. package/bun-sql/mysql/driver.js +10 -14
  40. package/bun-sql/mysql/driver.js.map +1 -1
  41. package/bun-sql/postgres/driver.cjs +10 -14
  42. package/bun-sql/postgres/driver.cjs.map +1 -1
  43. package/bun-sql/postgres/driver.d.cts +3 -3
  44. package/bun-sql/postgres/driver.d.ts +3 -3
  45. package/bun-sql/postgres/driver.js +10 -14
  46. package/bun-sql/postgres/driver.js.map +1 -1
  47. package/bun-sql/sqlite/driver.cjs +10 -14
  48. package/bun-sql/sqlite/driver.cjs.map +1 -1
  49. package/bun-sql/sqlite/driver.d.cts +3 -3
  50. package/bun-sql/sqlite/driver.d.ts +3 -3
  51. package/bun-sql/sqlite/driver.js +10 -14
  52. package/bun-sql/sqlite/driver.js.map +1 -1
  53. package/bun-sql/sqlite/session.cjs +0 -2
  54. package/bun-sql/sqlite/session.cjs.map +1 -1
  55. package/bun-sql/sqlite/session.js +0 -2
  56. package/bun-sql/sqlite/session.js.map +1 -1
  57. package/bun-sqlite/driver.cjs +11 -15
  58. package/bun-sqlite/driver.cjs.map +1 -1
  59. package/bun-sqlite/driver.d.cts +3 -3
  60. package/bun-sqlite/driver.d.ts +3 -3
  61. package/bun-sqlite/driver.js +11 -15
  62. package/bun-sqlite/driver.js.map +1 -1
  63. package/cockroach/driver.cjs +109 -0
  64. package/cockroach/driver.cjs.map +1 -0
  65. package/cockroach/driver.d.cts +42 -0
  66. package/cockroach/driver.d.ts +42 -0
  67. package/cockroach/driver.js +73 -0
  68. package/cockroach/driver.js.map +1 -0
  69. package/cockroach/index.cjs +25 -0
  70. package/cockroach/index.cjs.map +1 -0
  71. package/cockroach/index.d.cts +2 -0
  72. package/cockroach/index.d.ts +2 -0
  73. package/cockroach/index.js +3 -0
  74. package/cockroach/index.js.map +1 -0
  75. package/cockroach/migrator.cjs +33 -0
  76. package/cockroach/migrator.cjs.map +1 -0
  77. package/cockroach/migrator.d.cts +3 -0
  78. package/cockroach/migrator.d.ts +3 -0
  79. package/cockroach/migrator.js +9 -0
  80. package/cockroach/migrator.js.map +1 -0
  81. package/cockroach/session.cjs +253 -0
  82. package/cockroach/session.cjs.map +1 -0
  83. package/cockroach/session.d.cts +48 -0
  84. package/cockroach/session.d.ts +48 -0
  85. package/cockroach/session.js +217 -0
  86. package/cockroach/session.js.map +1 -0
  87. package/cockroach-core/alias.cjs +32 -0
  88. package/cockroach-core/alias.cjs.map +1 -0
  89. package/cockroach-core/alias.d.cts +4 -0
  90. package/cockroach-core/alias.d.ts +4 -0
  91. package/cockroach-core/alias.js +8 -0
  92. package/cockroach-core/alias.js.map +1 -0
  93. package/cockroach-core/checks.cjs +58 -0
  94. package/cockroach-core/checks.cjs.map +1 -0
  95. package/cockroach-core/checks.d.cts +18 -0
  96. package/cockroach-core/checks.d.ts +18 -0
  97. package/cockroach-core/checks.js +32 -0
  98. package/cockroach-core/checks.js.map +1 -0
  99. package/cockroach-core/columns/all.cjs +81 -0
  100. package/cockroach-core/columns/all.cjs.map +1 -0
  101. package/cockroach-core/columns/all.d.cts +52 -0
  102. package/cockroach-core/columns/all.d.ts +52 -0
  103. package/cockroach-core/columns/all.js +57 -0
  104. package/cockroach-core/columns/all.js.map +1 -0
  105. package/cockroach-core/columns/bigint.cjs +104 -0
  106. package/cockroach-core/columns/bigint.cjs.map +1 -0
  107. package/cockroach-core/columns/bigint.d.cts +37 -0
  108. package/cockroach-core/columns/bigint.d.ts +37 -0
  109. package/cockroach-core/columns/bigint.js +75 -0
  110. package/cockroach-core/columns/bigint.js.map +1 -0
  111. package/cockroach-core/columns/bit.cjs +61 -0
  112. package/cockroach-core/columns/bit.cjs.map +1 -0
  113. package/cockroach-core/columns/bit.d.cts +29 -0
  114. package/cockroach-core/columns/bit.d.ts +29 -0
  115. package/cockroach-core/columns/bit.js +35 -0
  116. package/cockroach-core/columns/bit.js.map +1 -0
  117. package/cockroach-core/columns/bool.cjs +59 -0
  118. package/cockroach-core/columns/bool.cjs.map +1 -0
  119. package/cockroach-core/columns/bool.d.cts +17 -0
  120. package/cockroach-core/columns/bool.d.ts +17 -0
  121. package/cockroach-core/columns/bool.js +32 -0
  122. package/cockroach-core/columns/bool.js.map +1 -0
  123. package/cockroach-core/columns/char.cjs +62 -0
  124. package/cockroach-core/columns/char.cjs.map +1 -0
  125. package/cockroach-core/columns/char.d.cts +31 -0
  126. package/cockroach-core/columns/char.d.ts +31 -0
  127. package/cockroach-core/columns/char.js +36 -0
  128. package/cockroach-core/columns/char.js.map +1 -0
  129. package/cockroach-core/columns/common.cjs +198 -0
  130. package/cockroach-core/columns/common.cjs.map +1 -0
  131. package/cockroach-core/columns/common.d.cts +98 -0
  132. package/cockroach-core/columns/common.d.ts +98 -0
  133. package/cockroach-core/columns/common.js +168 -0
  134. package/cockroach-core/columns/common.js.map +1 -0
  135. package/cockroach-core/columns/custom.cjs +102 -0
  136. package/cockroach-core/columns/custom.cjs.map +1 -0
  137. package/cockroach-core/columns/custom.d.cts +261 -0
  138. package/cockroach-core/columns/custom.d.ts +261 -0
  139. package/cockroach-core/columns/custom.js +76 -0
  140. package/cockroach-core/columns/custom.js.map +1 -0
  141. package/cockroach-core/columns/date.cjs +91 -0
  142. package/cockroach-core/columns/date.cjs.map +1 -0
  143. package/cockroach-core/columns/date.common.cjs +37 -0
  144. package/cockroach-core/columns/date.common.cjs.map +1 -0
  145. package/cockroach-core/columns/date.common.d.cts +7 -0
  146. package/cockroach-core/columns/date.common.d.ts +7 -0
  147. package/cockroach-core/columns/date.common.js +13 -0
  148. package/cockroach-core/columns/date.common.js.map +1 -0
  149. package/cockroach-core/columns/date.d.cts +36 -0
  150. package/cockroach-core/columns/date.d.ts +36 -0
  151. package/cockroach-core/columns/date.js +63 -0
  152. package/cockroach-core/columns/date.js.map +1 -0
  153. package/cockroach-core/columns/decimal.cjs +164 -0
  154. package/cockroach-core/columns/decimal.cjs.map +1 -0
  155. package/cockroach-core/columns/decimal.d.cts +80 -0
  156. package/cockroach-core/columns/decimal.d.ts +80 -0
  157. package/cockroach-core/columns/decimal.js +133 -0
  158. package/cockroach-core/columns/decimal.js.map +1 -0
  159. package/cockroach-core/columns/enum.cjs +127 -0
  160. package/cockroach-core/columns/enum.cjs.map +1 -0
  161. package/cockroach-core/columns/enum.d.cts +64 -0
  162. package/cockroach-core/columns/enum.d.ts +64 -0
  163. package/cockroach-core/columns/enum.js +96 -0
  164. package/cockroach-core/columns/enum.js.map +1 -0
  165. package/cockroach-core/columns/float.cjs +65 -0
  166. package/cockroach-core/columns/float.cjs.map +1 -0
  167. package/cockroach-core/columns/float.d.cts +18 -0
  168. package/cockroach-core/columns/float.d.ts +18 -0
  169. package/cockroach-core/columns/float.js +38 -0
  170. package/cockroach-core/columns/float.js.map +1 -0
  171. package/cockroach-core/columns/geometry.cjs +105 -0
  172. package/cockroach-core/columns/geometry.cjs.map +1 -0
  173. package/cockroach-core/columns/geometry.d.cts +60 -0
  174. package/cockroach-core/columns/geometry.d.ts +60 -0
  175. package/cockroach-core/columns/geometry.js +77 -0
  176. package/cockroach-core/columns/geometry.js.map +1 -0
  177. package/cockroach-core/columns/index.cjs +71 -0
  178. package/cockroach-core/columns/index.cjs.map +1 -0
  179. package/cockroach-core/columns/index.d.cts +25 -0
  180. package/cockroach-core/columns/index.d.ts +25 -0
  181. package/cockroach-core/columns/index.js +26 -0
  182. package/cockroach-core/columns/index.js.map +1 -0
  183. package/cockroach-core/columns/inet.cjs +56 -0
  184. package/cockroach-core/columns/inet.cjs.map +1 -0
  185. package/cockroach-core/columns/inet.d.cts +16 -0
  186. package/cockroach-core/columns/inet.d.ts +16 -0
  187. package/cockroach-core/columns/inet.js +30 -0
  188. package/cockroach-core/columns/inet.js.map +1 -0
  189. package/cockroach-core/columns/int.common.cjs +55 -0
  190. package/cockroach-core/columns/int.common.cjs.map +1 -0
  191. package/cockroach-core/columns/int.common.d.cts +11 -0
  192. package/cockroach-core/columns/int.common.d.ts +11 -0
  193. package/cockroach-core/columns/int.common.js +31 -0
  194. package/cockroach-core/columns/int.common.js.map +1 -0
  195. package/cockroach-core/columns/integer.cjs +63 -0
  196. package/cockroach-core/columns/integer.cjs.map +1 -0
  197. package/cockroach-core/columns/integer.d.cts +18 -0
  198. package/cockroach-core/columns/integer.d.ts +18 -0
  199. package/cockroach-core/columns/integer.js +37 -0
  200. package/cockroach-core/columns/integer.js.map +1 -0
  201. package/cockroach-core/columns/interval.cjs +63 -0
  202. package/cockroach-core/columns/interval.cjs.map +1 -0
  203. package/cockroach-core/columns/interval.d.cts +28 -0
  204. package/cockroach-core/columns/interval.d.ts +28 -0
  205. package/cockroach-core/columns/interval.js +37 -0
  206. package/cockroach-core/columns/interval.js.map +1 -0
  207. package/cockroach-core/columns/jsonb.cjs +72 -0
  208. package/cockroach-core/columns/jsonb.cjs.map +1 -0
  209. package/cockroach-core/columns/jsonb.d.cts +20 -0
  210. package/cockroach-core/columns/jsonb.d.ts +20 -0
  211. package/cockroach-core/columns/jsonb.js +46 -0
  212. package/cockroach-core/columns/jsonb.js.map +1 -0
  213. package/cockroach-core/columns/real.cjs +66 -0
  214. package/cockroach-core/columns/real.cjs.map +1 -0
  215. package/cockroach-core/columns/real.d.cts +21 -0
  216. package/cockroach-core/columns/real.d.ts +21 -0
  217. package/cockroach-core/columns/real.js +40 -0
  218. package/cockroach-core/columns/real.js.map +1 -0
  219. package/cockroach-core/columns/smallint.cjs +68 -0
  220. package/cockroach-core/columns/smallint.cjs.map +1 -0
  221. package/cockroach-core/columns/smallint.d.cts +19 -0
  222. package/cockroach-core/columns/smallint.d.ts +19 -0
  223. package/cockroach-core/columns/smallint.js +41 -0
  224. package/cockroach-core/columns/smallint.js.map +1 -0
  225. package/cockroach-core/columns/string.cjs +67 -0
  226. package/cockroach-core/columns/string.cjs.map +1 -0
  227. package/cockroach-core/columns/string.d.cts +36 -0
  228. package/cockroach-core/columns/string.d.ts +36 -0
  229. package/cockroach-core/columns/string.js +40 -0
  230. package/cockroach-core/columns/string.js.map +1 -0
  231. package/cockroach-core/columns/time.cjs +70 -0
  232. package/cockroach-core/columns/time.cjs.map +1 -0
  233. package/cockroach-core/columns/time.d.cts +31 -0
  234. package/cockroach-core/columns/time.d.ts +31 -0
  235. package/cockroach-core/columns/time.js +44 -0
  236. package/cockroach-core/columns/time.js.map +1 -0
  237. package/cockroach-core/columns/timestamp.cjs +111 -0
  238. package/cockroach-core/columns/timestamp.cjs.map +1 -0
  239. package/cockroach-core/columns/timestamp.d.cts +52 -0
  240. package/cockroach-core/columns/timestamp.d.ts +52 -0
  241. package/cockroach-core/columns/timestamp.js +83 -0
  242. package/cockroach-core/columns/timestamp.js.map +1 -0
  243. package/cockroach-core/columns/utils.cjs +65 -0
  244. package/cockroach-core/columns/utils.cjs.map +1 -0
  245. package/cockroach-core/columns/utils.d.cts +4 -0
  246. package/cockroach-core/columns/utils.d.ts +4 -0
  247. package/cockroach-core/columns/utils.js +41 -0
  248. package/cockroach-core/columns/utils.js.map +1 -0
  249. package/cockroach-core/columns/uuid.cjs +63 -0
  250. package/cockroach-core/columns/uuid.cjs.map +1 -0
  251. package/cockroach-core/columns/uuid.d.cts +20 -0
  252. package/cockroach-core/columns/uuid.d.ts +20 -0
  253. package/cockroach-core/columns/uuid.js +37 -0
  254. package/cockroach-core/columns/uuid.js.map +1 -0
  255. package/cockroach-core/columns/varbit.cjs +59 -0
  256. package/cockroach-core/columns/varbit.cjs.map +1 -0
  257. package/cockroach-core/columns/varbit.d.cts +24 -0
  258. package/cockroach-core/columns/varbit.d.ts +24 -0
  259. package/cockroach-core/columns/varbit.js +33 -0
  260. package/cockroach-core/columns/varbit.js.map +1 -0
  261. package/cockroach-core/columns/varchar.cjs +61 -0
  262. package/cockroach-core/columns/varchar.cjs.map +1 -0
  263. package/cockroach-core/columns/varchar.d.cts +30 -0
  264. package/cockroach-core/columns/varchar.d.ts +30 -0
  265. package/cockroach-core/columns/varchar.js +35 -0
  266. package/cockroach-core/columns/varchar.js.map +1 -0
  267. package/cockroach-core/columns/vector.cjs +65 -0
  268. package/cockroach-core/columns/vector.cjs.map +1 -0
  269. package/cockroach-core/columns/vector.d.cts +26 -0
  270. package/cockroach-core/columns/vector.d.ts +26 -0
  271. package/cockroach-core/columns/vector.js +39 -0
  272. package/cockroach-core/columns/vector.js.map +1 -0
  273. package/cockroach-core/db.cjs +347 -0
  274. package/cockroach-core/db.cjs.map +1 -0
  275. package/cockroach-core/db.d.cts +282 -0
  276. package/cockroach-core/db.d.ts +282 -0
  277. package/cockroach-core/db.js +328 -0
  278. package/cockroach-core/db.js.map +1 -0
  279. package/cockroach-core/dialect.cjs +1155 -0
  280. package/cockroach-core/dialect.cjs.map +1 -0
  281. package/cockroach-core/dialect.d.cts +64 -0
  282. package/cockroach-core/dialect.d.ts +64 -0
  283. package/cockroach-core/dialect.js +1127 -0
  284. package/cockroach-core/dialect.js.map +1 -0
  285. package/cockroach-core/expressions.cjs +49 -0
  286. package/cockroach-core/expressions.cjs.map +1 -0
  287. package/cockroach-core/expressions.d.cts +8 -0
  288. package/cockroach-core/expressions.d.ts +8 -0
  289. package/cockroach-core/expressions.js +22 -0
  290. package/cockroach-core/expressions.js.map +1 -0
  291. package/cockroach-core/foreign-keys.cjs +95 -0
  292. package/cockroach-core/foreign-keys.cjs.map +1 -0
  293. package/cockroach-core/foreign-keys.d.cts +53 -0
  294. package/cockroach-core/foreign-keys.d.ts +53 -0
  295. package/cockroach-core/foreign-keys.js +69 -0
  296. package/cockroach-core/foreign-keys.js.map +1 -0
  297. package/cockroach-core/index.cjs +61 -0
  298. package/cockroach-core/index.cjs.map +1 -0
  299. package/cockroach-core/index.d.cts +20 -0
  300. package/cockroach-core/index.d.ts +20 -0
  301. package/cockroach-core/index.js +21 -0
  302. package/cockroach-core/index.js.map +1 -0
  303. package/cockroach-core/indexes.cjs +139 -0
  304. package/cockroach-core/indexes.cjs.map +1 -0
  305. package/cockroach-core/indexes.d.cts +65 -0
  306. package/cockroach-core/indexes.d.ts +65 -0
  307. package/cockroach-core/indexes.js +111 -0
  308. package/cockroach-core/indexes.js.map +1 -0
  309. package/cockroach-core/policies.cjs +58 -0
  310. package/cockroach-core/policies.cjs.map +1 -0
  311. package/cockroach-core/policies.d.cts +24 -0
  312. package/cockroach-core/policies.d.ts +24 -0
  313. package/cockroach-core/policies.js +33 -0
  314. package/cockroach-core/policies.js.map +1 -0
  315. package/cockroach-core/primary-keys.cjs +66 -0
  316. package/cockroach-core/primary-keys.cjs.map +1 -0
  317. package/cockroach-core/primary-keys.d.cts +24 -0
  318. package/cockroach-core/primary-keys.d.ts +24 -0
  319. package/cockroach-core/primary-keys.js +40 -0
  320. package/cockroach-core/primary-keys.js.map +1 -0
  321. package/cockroach-core/query-builders/count.cjs +79 -0
  322. package/cockroach-core/query-builders/count.cjs.map +1 -0
  323. package/cockroach-core/query-builders/count.d.cts +30 -0
  324. package/cockroach-core/query-builders/count.d.ts +30 -0
  325. package/cockroach-core/query-builders/count.js +55 -0
  326. package/cockroach-core/query-builders/count.js.map +1 -0
  327. package/cockroach-core/query-builders/delete.cjs +124 -0
  328. package/cockroach-core/query-builders/delete.cjs.map +1 -0
  329. package/cockroach-core/query-builders/delete.d.cts +103 -0
  330. package/cockroach-core/query-builders/delete.d.ts +103 -0
  331. package/cockroach-core/query-builders/delete.js +100 -0
  332. package/cockroach-core/query-builders/delete.js.map +1 -0
  333. package/cockroach-core/query-builders/index.cjs +35 -0
  334. package/cockroach-core/query-builders/index.cjs.map +1 -0
  335. package/cockroach-core/query-builders/index.d.cts +7 -0
  336. package/cockroach-core/query-builders/index.d.ts +7 -0
  337. package/cockroach-core/query-builders/index.js +8 -0
  338. package/cockroach-core/query-builders/index.js.map +1 -0
  339. package/cockroach-core/query-builders/insert.cjs +213 -0
  340. package/cockroach-core/query-builders/insert.cjs.map +1 -0
  341. package/cockroach-core/query-builders/insert.d.cts +168 -0
  342. package/cockroach-core/query-builders/insert.d.ts +168 -0
  343. package/cockroach-core/query-builders/insert.js +188 -0
  344. package/cockroach-core/query-builders/insert.js.map +1 -0
  345. package/cockroach-core/query-builders/query-builder.cjs +118 -0
  346. package/cockroach-core/query-builders/query-builder.cjs.map +1 -0
  347. package/cockroach-core/query-builders/query-builder.d.cts +37 -0
  348. package/cockroach-core/query-builders/query-builder.d.ts +37 -0
  349. package/cockroach-core/query-builders/query-builder.js +94 -0
  350. package/cockroach-core/query-builders/query-builder.js.map +1 -0
  351. package/cockroach-core/query-builders/query.cjs +145 -0
  352. package/cockroach-core/query-builders/query.cjs.map +1 -0
  353. package/cockroach-core/query-builders/query.d.cts +47 -0
  354. package/cockroach-core/query-builders/query.d.ts +47 -0
  355. package/cockroach-core/query-builders/query.js +122 -0
  356. package/cockroach-core/query-builders/query.js.map +1 -0
  357. package/cockroach-core/query-builders/raw.cjs +57 -0
  358. package/cockroach-core/query-builders/raw.cjs.map +1 -0
  359. package/cockroach-core/query-builders/raw.d.cts +22 -0
  360. package/cockroach-core/query-builders/raw.d.ts +22 -0
  361. package/cockroach-core/query-builders/raw.js +33 -0
  362. package/cockroach-core/query-builders/raw.js.map +1 -0
  363. package/cockroach-core/query-builders/refresh-materialized-view.cjs +83 -0
  364. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  365. package/cockroach-core/query-builders/refresh-materialized-view.d.cts +28 -0
  366. package/cockroach-core/query-builders/refresh-materialized-view.d.ts +28 -0
  367. package/cockroach-core/query-builders/refresh-materialized-view.js +59 -0
  368. package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -0
  369. package/cockroach-core/query-builders/select.cjs +847 -0
  370. package/cockroach-core/query-builders/select.cjs.map +1 -0
  371. package/cockroach-core/query-builders/select.d.cts +787 -0
  372. package/cockroach-core/query-builders/select.d.ts +787 -0
  373. package/cockroach-core/query-builders/select.js +821 -0
  374. package/cockroach-core/query-builders/select.js.map +1 -0
  375. package/cockroach-core/query-builders/select.types.cjs +17 -0
  376. package/cockroach-core/query-builders/select.types.cjs.map +1 -0
  377. package/cockroach-core/query-builders/select.types.d.cts +140 -0
  378. package/cockroach-core/query-builders/select.types.d.ts +140 -0
  379. package/cockroach-core/query-builders/select.types.js +1 -0
  380. package/cockroach-core/query-builders/select.types.js.map +1 -0
  381. package/cockroach-core/query-builders/update.cjs +240 -0
  382. package/cockroach-core/query-builders/update.cjs.map +1 -0
  383. package/cockroach-core/query-builders/update.d.cts +170 -0
  384. package/cockroach-core/query-builders/update.d.ts +170 -0
  385. package/cockroach-core/query-builders/update.js +219 -0
  386. package/cockroach-core/query-builders/update.js.map +1 -0
  387. package/cockroach-core/roles.cjs +54 -0
  388. package/cockroach-core/roles.cjs.map +1 -0
  389. package/cockroach-core/roles.d.cts +12 -0
  390. package/cockroach-core/roles.d.ts +12 -0
  391. package/cockroach-core/roles.js +29 -0
  392. package/cockroach-core/roles.js.map +1 -0
  393. package/cockroach-core/schema.cjs +92 -0
  394. package/cockroach-core/schema.cjs.map +1 -0
  395. package/cockroach-core/schema.d.cts +24 -0
  396. package/cockroach-core/schema.d.ts +24 -0
  397. package/cockroach-core/schema.js +72 -0
  398. package/cockroach-core/schema.js.map +1 -0
  399. package/cockroach-core/sequence.cjs +52 -0
  400. package/cockroach-core/sequence.cjs.map +1 -0
  401. package/cockroach-core/sequence.d.cts +17 -0
  402. package/cockroach-core/sequence.d.ts +17 -0
  403. package/cockroach-core/sequence.js +25 -0
  404. package/cockroach-core/sequence.js.map +1 -0
  405. package/cockroach-core/session.cjs +120 -0
  406. package/cockroach-core/session.cjs.map +1 -0
  407. package/cockroach-core/session.d.cts +62 -0
  408. package/cockroach-core/session.d.ts +62 -0
  409. package/cockroach-core/session.js +94 -0
  410. package/cockroach-core/session.js.map +1 -0
  411. package/cockroach-core/subquery.cjs +17 -0
  412. package/cockroach-core/subquery.cjs.map +1 -0
  413. package/cockroach-core/subquery.d.cts +18 -0
  414. package/cockroach-core/subquery.d.ts +18 -0
  415. package/cockroach-core/subquery.js +1 -0
  416. package/cockroach-core/subquery.js.map +1 -0
  417. package/cockroach-core/table.cjs +121 -0
  418. package/cockroach-core/table.cjs.map +1 -0
  419. package/cockroach-core/table.d.cts +41 -0
  420. package/cockroach-core/table.d.ts +41 -0
  421. package/cockroach-core/table.js +94 -0
  422. package/cockroach-core/table.js.map +1 -0
  423. package/cockroach-core/unique-constraint.cjs +77 -0
  424. package/cockroach-core/unique-constraint.cjs.map +1 -0
  425. package/cockroach-core/unique-constraint.d.cts +23 -0
  426. package/cockroach-core/unique-constraint.d.ts +23 -0
  427. package/cockroach-core/unique-constraint.js +50 -0
  428. package/cockroach-core/unique-constraint.js.map +1 -0
  429. package/cockroach-core/utils/array.cjs +106 -0
  430. package/cockroach-core/utils/array.cjs.map +1 -0
  431. package/cockroach-core/utils/array.d.cts +3 -0
  432. package/cockroach-core/utils/array.d.ts +3 -0
  433. package/cockroach-core/utils/array.js +80 -0
  434. package/cockroach-core/utils/array.js.map +1 -0
  435. package/cockroach-core/utils/index.cjs +23 -0
  436. package/cockroach-core/utils/index.cjs.map +1 -0
  437. package/cockroach-core/utils/index.d.cts +1 -0
  438. package/cockroach-core/utils/index.d.ts +1 -0
  439. package/cockroach-core/utils/index.js +2 -0
  440. package/cockroach-core/utils/index.js.map +1 -0
  441. package/cockroach-core/utils.cjs +98 -0
  442. package/cockroach-core/utils.cjs.map +1 -0
  443. package/cockroach-core/utils.d.cts +47 -0
  444. package/cockroach-core/utils.d.ts +47 -0
  445. package/cockroach-core/utils.js +72 -0
  446. package/cockroach-core/utils.js.map +1 -0
  447. package/cockroach-core/view-base.cjs +33 -0
  448. package/cockroach-core/view-base.cjs.map +1 -0
  449. package/cockroach-core/view-base.d.cts +8 -0
  450. package/cockroach-core/view-base.d.ts +8 -0
  451. package/cockroach-core/view-base.js +9 -0
  452. package/cockroach-core/view-base.js.map +1 -0
  453. package/cockroach-core/view.cjs +271 -0
  454. package/cockroach-core/view.cjs.map +1 -0
  455. package/cockroach-core/view.d.cts +106 -0
  456. package/cockroach-core/view.d.ts +106 -0
  457. package/cockroach-core/view.js +233 -0
  458. package/cockroach-core/view.js.map +1 -0
  459. package/column-builder.cjs.map +1 -1
  460. package/column-builder.d.cts +9 -8
  461. package/column-builder.d.ts +9 -8
  462. package/column-builder.js.map +1 -1
  463. package/column-common.cjs +29 -0
  464. package/column-common.cjs.map +1 -0
  465. package/column-common.d.cts +1 -0
  466. package/column-common.d.ts +1 -0
  467. package/column-common.js +5 -0
  468. package/column-common.js.map +1 -0
  469. package/column.cjs +7 -0
  470. package/column.cjs.map +1 -1
  471. package/column.d.cts +2 -0
  472. package/column.d.ts +2 -0
  473. package/column.js +7 -0
  474. package/column.js.map +1 -1
  475. package/durable-sqlite/migrator.cjs +10 -7
  476. package/durable-sqlite/migrator.cjs.map +1 -1
  477. package/durable-sqlite/migrator.d.cts +1 -9
  478. package/durable-sqlite/migrator.d.ts +1 -9
  479. package/durable-sqlite/migrator.js +10 -7
  480. package/durable-sqlite/migrator.js.map +1 -1
  481. package/durable-sqlite/session.cjs +6 -3
  482. package/durable-sqlite/session.cjs.map +1 -1
  483. package/durable-sqlite/session.d.cts +1 -2
  484. package/durable-sqlite/session.d.ts +1 -2
  485. package/durable-sqlite/session.js +6 -2
  486. package/durable-sqlite/session.js.map +1 -1
  487. package/entity.cjs.map +1 -1
  488. package/entity.js.map +1 -1
  489. package/expo-sqlite/migrator.cjs +10 -7
  490. package/expo-sqlite/migrator.cjs.map +1 -1
  491. package/expo-sqlite/migrator.d.cts +0 -8
  492. package/expo-sqlite/migrator.d.ts +0 -8
  493. package/expo-sqlite/migrator.js +10 -7
  494. package/expo-sqlite/migrator.js.map +1 -1
  495. package/gel/driver.cjs +6 -10
  496. package/gel/driver.cjs.map +1 -1
  497. package/gel/driver.d.cts +2 -2
  498. package/gel/driver.d.ts +2 -2
  499. package/gel/driver.js +6 -10
  500. package/gel/driver.js.map +1 -1
  501. package/gel-core/columns/bigint.cjs.map +1 -1
  502. package/gel-core/columns/bigint.d.cts +0 -1
  503. package/gel-core/columns/bigint.d.ts +0 -1
  504. package/gel-core/columns/bigint.js.map +1 -1
  505. package/gel-core/columns/bigintT.cjs.map +1 -1
  506. package/gel-core/columns/bigintT.d.cts +0 -1
  507. package/gel-core/columns/bigintT.d.ts +0 -1
  508. package/gel-core/columns/bigintT.js.map +1 -1
  509. package/gel-core/columns/boolean.cjs.map +1 -1
  510. package/gel-core/columns/boolean.d.cts +0 -1
  511. package/gel-core/columns/boolean.d.ts +0 -1
  512. package/gel-core/columns/boolean.js.map +1 -1
  513. package/gel-core/columns/bytes.cjs.map +1 -1
  514. package/gel-core/columns/bytes.d.cts +0 -1
  515. package/gel-core/columns/bytes.d.ts +0 -1
  516. package/gel-core/columns/bytes.js.map +1 -1
  517. package/gel-core/columns/common.cjs +0 -4
  518. package/gel-core/columns/common.cjs.map +1 -1
  519. package/gel-core/columns/common.d.cts +1 -1
  520. package/gel-core/columns/common.d.ts +1 -1
  521. package/gel-core/columns/common.js +0 -4
  522. package/gel-core/columns/common.js.map +1 -1
  523. package/gel-core/columns/custom.cjs.map +1 -1
  524. package/gel-core/columns/custom.d.cts +0 -1
  525. package/gel-core/columns/custom.d.ts +0 -1
  526. package/gel-core/columns/custom.js.map +1 -1
  527. package/gel-core/columns/date-duration.cjs.map +1 -1
  528. package/gel-core/columns/date-duration.d.cts +0 -1
  529. package/gel-core/columns/date-duration.d.ts +0 -1
  530. package/gel-core/columns/date-duration.js.map +1 -1
  531. package/gel-core/columns/decimal.cjs.map +1 -1
  532. package/gel-core/columns/decimal.d.cts +0 -1
  533. package/gel-core/columns/decimal.d.ts +0 -1
  534. package/gel-core/columns/decimal.js.map +1 -1
  535. package/gel-core/columns/double-precision.cjs.map +1 -1
  536. package/gel-core/columns/double-precision.d.cts +0 -1
  537. package/gel-core/columns/double-precision.d.ts +0 -1
  538. package/gel-core/columns/double-precision.js.map +1 -1
  539. package/gel-core/columns/duration.cjs.map +1 -1
  540. package/gel-core/columns/duration.d.cts +0 -1
  541. package/gel-core/columns/duration.d.ts +0 -1
  542. package/gel-core/columns/duration.js.map +1 -1
  543. package/gel-core/columns/integer.cjs.map +1 -1
  544. package/gel-core/columns/integer.d.cts +0 -1
  545. package/gel-core/columns/integer.d.ts +0 -1
  546. package/gel-core/columns/integer.js.map +1 -1
  547. package/gel-core/columns/json.cjs.map +1 -1
  548. package/gel-core/columns/json.d.cts +0 -1
  549. package/gel-core/columns/json.d.ts +0 -1
  550. package/gel-core/columns/json.js.map +1 -1
  551. package/gel-core/columns/localdate.cjs.map +1 -1
  552. package/gel-core/columns/localdate.d.cts +0 -1
  553. package/gel-core/columns/localdate.d.ts +0 -1
  554. package/gel-core/columns/localdate.js.map +1 -1
  555. package/gel-core/columns/localtime.cjs.map +1 -1
  556. package/gel-core/columns/localtime.d.cts +0 -1
  557. package/gel-core/columns/localtime.d.ts +0 -1
  558. package/gel-core/columns/localtime.js.map +1 -1
  559. package/gel-core/columns/real.cjs.map +1 -1
  560. package/gel-core/columns/real.d.cts +0 -1
  561. package/gel-core/columns/real.d.ts +0 -1
  562. package/gel-core/columns/real.js.map +1 -1
  563. package/gel-core/columns/relative-duration.cjs.map +1 -1
  564. package/gel-core/columns/relative-duration.d.cts +0 -1
  565. package/gel-core/columns/relative-duration.d.ts +0 -1
  566. package/gel-core/columns/relative-duration.js.map +1 -1
  567. package/gel-core/columns/smallint.cjs.map +1 -1
  568. package/gel-core/columns/smallint.d.cts +0 -1
  569. package/gel-core/columns/smallint.d.ts +0 -1
  570. package/gel-core/columns/smallint.js.map +1 -1
  571. package/gel-core/columns/text.cjs.map +1 -1
  572. package/gel-core/columns/text.d.cts +0 -1
  573. package/gel-core/columns/text.d.ts +0 -1
  574. package/gel-core/columns/text.js.map +1 -1
  575. package/gel-core/columns/timestamp.cjs.map +1 -1
  576. package/gel-core/columns/timestamp.d.cts +0 -1
  577. package/gel-core/columns/timestamp.d.ts +0 -1
  578. package/gel-core/columns/timestamp.js.map +1 -1
  579. package/gel-core/columns/timestamptz.cjs.map +1 -1
  580. package/gel-core/columns/timestamptz.d.cts +0 -1
  581. package/gel-core/columns/timestamptz.d.ts +0 -1
  582. package/gel-core/columns/timestamptz.js.map +1 -1
  583. package/gel-core/columns/uuid.cjs.map +1 -1
  584. package/gel-core/columns/uuid.d.cts +0 -1
  585. package/gel-core/columns/uuid.d.ts +0 -1
  586. package/gel-core/columns/uuid.js.map +1 -1
  587. package/gel-core/dialect.cjs +1 -1
  588. package/gel-core/dialect.cjs.map +1 -1
  589. package/gel-core/dialect.js +8 -2
  590. package/gel-core/dialect.js.map +1 -1
  591. package/gel-core/query-builders/count.cjs.map +1 -1
  592. package/gel-core/query-builders/count.d.cts +4 -3
  593. package/gel-core/query-builders/count.d.ts +4 -3
  594. package/gel-core/query-builders/count.js.map +1 -1
  595. package/gel-core/query-builders/insert.cjs.map +1 -1
  596. package/gel-core/query-builders/insert.d.cts +6 -9
  597. package/gel-core/query-builders/insert.d.ts +6 -9
  598. package/gel-core/query-builders/insert.js.map +1 -1
  599. package/gel-core/query-builders/select.cjs +6 -7
  600. package/gel-core/query-builders/select.cjs.map +1 -1
  601. package/gel-core/query-builders/select.js +2 -2
  602. package/gel-core/query-builders/select.js.map +1 -1
  603. package/gel-core/query-builders/update.cjs.map +1 -1
  604. package/gel-core/query-builders/update.d.cts +1 -1
  605. package/gel-core/query-builders/update.d.ts +1 -1
  606. package/gel-core/query-builders/update.js.map +1 -1
  607. package/gel-core/utils.cjs +1 -2
  608. package/gel-core/utils.cjs.map +1 -1
  609. package/gel-core/utils.d.cts +1 -1
  610. package/gel-core/utils.d.ts +1 -1
  611. package/gel-core/utils.js +1 -2
  612. package/gel-core/utils.js.map +1 -1
  613. package/gel-core/view-common.cjs +3 -0
  614. package/gel-core/view-common.cjs.map +1 -1
  615. package/gel-core/view-common.d.cts +1 -0
  616. package/gel-core/view-common.d.ts +1 -0
  617. package/gel-core/view-common.js +2 -0
  618. package/gel-core/view-common.js.map +1 -1
  619. package/gel-core/view.cjs +2 -5
  620. package/gel-core/view.cjs.map +1 -1
  621. package/gel-core/view.d.cts +1 -2
  622. package/gel-core/view.d.ts +1 -2
  623. package/gel-core/view.js +1 -3
  624. package/gel-core/view.js.map +1 -1
  625. package/libsql/driver.cjs +6 -10
  626. package/libsql/driver.cjs.map +1 -1
  627. package/libsql/driver.d.cts +3 -3
  628. package/libsql/driver.d.ts +3 -3
  629. package/libsql/driver.js +6 -10
  630. package/libsql/driver.js.map +1 -1
  631. package/libsql/http/index.cjs +6 -10
  632. package/libsql/http/index.cjs.map +1 -1
  633. package/libsql/http/index.d.cts +3 -3
  634. package/libsql/http/index.d.ts +3 -3
  635. package/libsql/http/index.js +6 -10
  636. package/libsql/http/index.js.map +1 -1
  637. package/libsql/node/index.cjs +6 -10
  638. package/libsql/node/index.cjs.map +1 -1
  639. package/libsql/node/index.d.cts +3 -3
  640. package/libsql/node/index.d.ts +3 -3
  641. package/libsql/node/index.js +6 -10
  642. package/libsql/node/index.js.map +1 -1
  643. package/libsql/session.cjs +0 -2
  644. package/libsql/session.cjs.map +1 -1
  645. package/libsql/session.d.cts +1 -1
  646. package/libsql/session.d.ts +1 -1
  647. package/libsql/session.js +0 -2
  648. package/libsql/session.js.map +1 -1
  649. package/libsql/sqlite3/index.cjs +6 -10
  650. package/libsql/sqlite3/index.cjs.map +1 -1
  651. package/libsql/sqlite3/index.d.cts +3 -3
  652. package/libsql/sqlite3/index.d.ts +3 -3
  653. package/libsql/sqlite3/index.js +6 -10
  654. package/libsql/sqlite3/index.js.map +1 -1
  655. package/libsql/wasm/index.cjs +6 -10
  656. package/libsql/wasm/index.cjs.map +1 -1
  657. package/libsql/wasm/index.d.cts +3 -3
  658. package/libsql/wasm/index.d.ts +3 -3
  659. package/libsql/wasm/index.js +6 -10
  660. package/libsql/wasm/index.js.map +1 -1
  661. package/libsql/web/index.cjs +6 -10
  662. package/libsql/web/index.cjs.map +1 -1
  663. package/libsql/web/index.d.cts +3 -3
  664. package/libsql/web/index.d.ts +3 -3
  665. package/libsql/web/index.js +6 -10
  666. package/libsql/web/index.js.map +1 -1
  667. package/libsql/ws/index.cjs +6 -10
  668. package/libsql/ws/index.cjs.map +1 -1
  669. package/libsql/ws/index.d.cts +3 -3
  670. package/libsql/ws/index.d.ts +3 -3
  671. package/libsql/ws/index.js +6 -10
  672. package/libsql/ws/index.js.map +1 -1
  673. package/migrator.cjs +42 -5
  674. package/migrator.cjs.map +1 -1
  675. package/migrator.d.cts +5 -0
  676. package/migrator.d.ts +5 -0
  677. package/migrator.js +42 -6
  678. package/migrator.js.map +1 -1
  679. package/mssql-core/alias.cjs +32 -0
  680. package/mssql-core/alias.cjs.map +1 -0
  681. package/mssql-core/alias.d.cts +4 -0
  682. package/mssql-core/alias.d.ts +4 -0
  683. package/mssql-core/alias.js +8 -0
  684. package/mssql-core/alias.js.map +1 -0
  685. package/mssql-core/checks.cjs +58 -0
  686. package/mssql-core/checks.cjs.map +1 -0
  687. package/mssql-core/checks.d.cts +18 -0
  688. package/mssql-core/checks.d.ts +18 -0
  689. package/mssql-core/checks.js +32 -0
  690. package/mssql-core/checks.js.map +1 -0
  691. package/mssql-core/columns/all.cjs +74 -0
  692. package/mssql-core/columns/all.cjs.map +1 -0
  693. package/mssql-core/columns/all.d.cts +45 -0
  694. package/mssql-core/columns/all.d.ts +45 -0
  695. package/mssql-core/columns/all.js +50 -0
  696. package/mssql-core/columns/all.js.map +1 -0
  697. package/mssql-core/columns/bigint.cjs +72 -0
  698. package/mssql-core/columns/bigint.cjs.map +1 -0
  699. package/mssql-core/columns/bigint.d.cts +25 -0
  700. package/mssql-core/columns/bigint.d.ts +25 -0
  701. package/mssql-core/columns/bigint.js +46 -0
  702. package/mssql-core/columns/bigint.js.map +1 -0
  703. package/mssql-core/columns/binary.cjs +57 -0
  704. package/mssql-core/columns/binary.cjs.map +1 -0
  705. package/mssql-core/columns/binary.d.cts +24 -0
  706. package/mssql-core/columns/binary.d.ts +24 -0
  707. package/mssql-core/columns/binary.js +31 -0
  708. package/mssql-core/columns/binary.js.map +1 -0
  709. package/mssql-core/columns/bit.cjs +54 -0
  710. package/mssql-core/columns/bit.cjs.map +1 -0
  711. package/mssql-core/columns/bit.d.cts +17 -0
  712. package/mssql-core/columns/bit.d.ts +17 -0
  713. package/mssql-core/columns/bit.js +28 -0
  714. package/mssql-core/columns/bit.js.map +1 -0
  715. package/mssql-core/columns/char.cjs +73 -0
  716. package/mssql-core/columns/char.cjs.map +1 -0
  717. package/mssql-core/columns/char.d.cts +29 -0
  718. package/mssql-core/columns/char.d.ts +29 -0
  719. package/mssql-core/columns/char.js +46 -0
  720. package/mssql-core/columns/char.js.map +1 -0
  721. package/mssql-core/columns/common.cjs +112 -0
  722. package/mssql-core/columns/common.cjs.map +1 -0
  723. package/mssql-core/columns/common.d.cts +57 -0
  724. package/mssql-core/columns/common.d.ts +57 -0
  725. package/mssql-core/columns/common.js +85 -0
  726. package/mssql-core/columns/common.js.map +1 -0
  727. package/mssql-core/columns/custom.cjs +105 -0
  728. package/mssql-core/columns/custom.cjs.map +1 -0
  729. package/mssql-core/columns/custom.d.cts +261 -0
  730. package/mssql-core/columns/custom.d.ts +261 -0
  731. package/mssql-core/columns/custom.js +79 -0
  732. package/mssql-core/columns/custom.js.map +1 -0
  733. package/mssql-core/columns/date.cjs +94 -0
  734. package/mssql-core/columns/date.cjs.map +1 -0
  735. package/mssql-core/columns/date.common.cjs +37 -0
  736. package/mssql-core/columns/date.common.cjs.map +1 -0
  737. package/mssql-core/columns/date.common.d.cts +12 -0
  738. package/mssql-core/columns/date.common.d.ts +12 -0
  739. package/mssql-core/columns/date.common.js +13 -0
  740. package/mssql-core/columns/date.common.js.map +1 -0
  741. package/mssql-core/columns/date.d.cts +39 -0
  742. package/mssql-core/columns/date.d.ts +39 -0
  743. package/mssql-core/columns/date.js +66 -0
  744. package/mssql-core/columns/date.js.map +1 -0
  745. package/mssql-core/columns/datetime.cjs +94 -0
  746. package/mssql-core/columns/datetime.cjs.map +1 -0
  747. package/mssql-core/columns/datetime.d.cts +38 -0
  748. package/mssql-core/columns/datetime.d.ts +38 -0
  749. package/mssql-core/columns/datetime.js +66 -0
  750. package/mssql-core/columns/datetime.js.map +1 -0
  751. package/mssql-core/columns/datetime2.cjs +102 -0
  752. package/mssql-core/columns/datetime2.cjs.map +1 -0
  753. package/mssql-core/columns/datetime2.d.cts +38 -0
  754. package/mssql-core/columns/datetime2.d.ts +38 -0
  755. package/mssql-core/columns/datetime2.js +74 -0
  756. package/mssql-core/columns/datetime2.js.map +1 -0
  757. package/mssql-core/columns/datetimeoffset.cjs +102 -0
  758. package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
  759. package/mssql-core/columns/datetimeoffset.d.cts +39 -0
  760. package/mssql-core/columns/datetimeoffset.d.ts +39 -0
  761. package/mssql-core/columns/datetimeoffset.js +74 -0
  762. package/mssql-core/columns/datetimeoffset.js.map +1 -0
  763. package/mssql-core/columns/decimal.cjs +146 -0
  764. package/mssql-core/columns/decimal.cjs.map +1 -0
  765. package/mssql-core/columns/decimal.d.cts +58 -0
  766. package/mssql-core/columns/decimal.d.ts +58 -0
  767. package/mssql-core/columns/decimal.js +116 -0
  768. package/mssql-core/columns/decimal.js.map +1 -0
  769. package/mssql-core/columns/float.cjs +58 -0
  770. package/mssql-core/columns/float.cjs.map +1 -0
  771. package/mssql-core/columns/float.d.cts +21 -0
  772. package/mssql-core/columns/float.d.ts +21 -0
  773. package/mssql-core/columns/float.js +32 -0
  774. package/mssql-core/columns/float.js.map +1 -0
  775. package/mssql-core/columns/index.cjs +63 -0
  776. package/mssql-core/columns/index.cjs.map +1 -0
  777. package/mssql-core/columns/index.d.cts +21 -0
  778. package/mssql-core/columns/index.d.ts +21 -0
  779. package/mssql-core/columns/index.js +22 -0
  780. package/mssql-core/columns/index.js.map +1 -0
  781. package/mssql-core/columns/int.cjs +53 -0
  782. package/mssql-core/columns/int.cjs.map +1 -0
  783. package/mssql-core/columns/int.d.cts +16 -0
  784. package/mssql-core/columns/int.d.ts +16 -0
  785. package/mssql-core/columns/int.js +27 -0
  786. package/mssql-core/columns/int.js.map +1 -0
  787. package/mssql-core/columns/numeric.cjs +146 -0
  788. package/mssql-core/columns/numeric.cjs.map +1 -0
  789. package/mssql-core/columns/numeric.d.cts +58 -0
  790. package/mssql-core/columns/numeric.d.ts +58 -0
  791. package/mssql-core/columns/numeric.js +116 -0
  792. package/mssql-core/columns/numeric.js.map +1 -0
  793. package/mssql-core/columns/real.cjs +53 -0
  794. package/mssql-core/columns/real.cjs.map +1 -0
  795. package/mssql-core/columns/real.d.cts +16 -0
  796. package/mssql-core/columns/real.d.ts +16 -0
  797. package/mssql-core/columns/real.js +27 -0
  798. package/mssql-core/columns/real.js.map +1 -0
  799. package/mssql-core/columns/smallint.cjs +62 -0
  800. package/mssql-core/columns/smallint.cjs.map +1 -0
  801. package/mssql-core/columns/smallint.d.cts +17 -0
  802. package/mssql-core/columns/smallint.d.ts +17 -0
  803. package/mssql-core/columns/smallint.js +36 -0
  804. package/mssql-core/columns/smallint.js.map +1 -0
  805. package/mssql-core/columns/text.cjs +68 -0
  806. package/mssql-core/columns/text.cjs.map +1 -0
  807. package/mssql-core/columns/text.d.cts +36 -0
  808. package/mssql-core/columns/text.d.ts +36 -0
  809. package/mssql-core/columns/text.js +41 -0
  810. package/mssql-core/columns/text.js.map +1 -0
  811. package/mssql-core/columns/time.cjs +90 -0
  812. package/mssql-core/columns/time.cjs.map +1 -0
  813. package/mssql-core/columns/time.d.cts +37 -0
  814. package/mssql-core/columns/time.d.ts +37 -0
  815. package/mssql-core/columns/time.js +62 -0
  816. package/mssql-core/columns/time.js.map +1 -0
  817. package/mssql-core/columns/tinyint.cjs +62 -0
  818. package/mssql-core/columns/tinyint.cjs.map +1 -0
  819. package/mssql-core/columns/tinyint.d.cts +17 -0
  820. package/mssql-core/columns/tinyint.d.ts +17 -0
  821. package/mssql-core/columns/tinyint.js +36 -0
  822. package/mssql-core/columns/tinyint.js.map +1 -0
  823. package/mssql-core/columns/varbinary.cjs +61 -0
  824. package/mssql-core/columns/varbinary.cjs.map +1 -0
  825. package/mssql-core/columns/varbinary.d.cts +23 -0
  826. package/mssql-core/columns/varbinary.d.ts +23 -0
  827. package/mssql-core/columns/varbinary.js +35 -0
  828. package/mssql-core/columns/varbinary.js.map +1 -0
  829. package/mssql-core/columns/varchar.cjs +117 -0
  830. package/mssql-core/columns/varchar.cjs.map +1 -0
  831. package/mssql-core/columns/varchar.d.cts +59 -0
  832. package/mssql-core/columns/varchar.d.ts +59 -0
  833. package/mssql-core/columns/varchar.js +88 -0
  834. package/mssql-core/columns/varchar.js.map +1 -0
  835. package/mssql-core/db.cjs +256 -0
  836. package/mssql-core/db.cjs.map +1 -0
  837. package/mssql-core/db.d.cts +228 -0
  838. package/mssql-core/db.d.ts +228 -0
  839. package/mssql-core/db.js +237 -0
  840. package/mssql-core/db.js.map +1 -0
  841. package/mssql-core/dialect.cjs +665 -0
  842. package/mssql-core/dialect.cjs.map +1 -0
  843. package/mssql-core/dialect.d.cts +58 -0
  844. package/mssql-core/dialect.d.ts +58 -0
  845. package/mssql-core/dialect.js +637 -0
  846. package/mssql-core/dialect.js.map +1 -0
  847. package/mssql-core/expressions.cjs +49 -0
  848. package/mssql-core/expressions.cjs.map +1 -0
  849. package/mssql-core/expressions.d.cts +8 -0
  850. package/mssql-core/expressions.d.ts +8 -0
  851. package/mssql-core/expressions.js +22 -0
  852. package/mssql-core/expressions.js.map +1 -0
  853. package/mssql-core/foreign-keys.cjs +94 -0
  854. package/mssql-core/foreign-keys.cjs.map +1 -0
  855. package/mssql-core/foreign-keys.d.cts +52 -0
  856. package/mssql-core/foreign-keys.d.ts +52 -0
  857. package/mssql-core/foreign-keys.js +68 -0
  858. package/mssql-core/foreign-keys.js.map +1 -0
  859. package/mssql-core/index.cjs +55 -0
  860. package/mssql-core/index.cjs.map +1 -0
  861. package/mssql-core/index.d.cts +17 -0
  862. package/mssql-core/index.d.ts +17 -0
  863. package/mssql-core/index.js +18 -0
  864. package/mssql-core/index.js.map +1 -0
  865. package/mssql-core/indexes.cjs +82 -0
  866. package/mssql-core/indexes.cjs.map +1 -0
  867. package/mssql-core/indexes.d.cts +50 -0
  868. package/mssql-core/indexes.d.ts +50 -0
  869. package/mssql-core/indexes.js +54 -0
  870. package/mssql-core/indexes.js.map +1 -0
  871. package/mssql-core/primary-keys.cjs +66 -0
  872. package/mssql-core/primary-keys.cjs.map +1 -0
  873. package/mssql-core/primary-keys.d.cts +24 -0
  874. package/mssql-core/primary-keys.d.ts +24 -0
  875. package/mssql-core/primary-keys.js +40 -0
  876. package/mssql-core/primary-keys.js.map +1 -0
  877. package/mssql-core/query-builders/delete.cjs +107 -0
  878. package/mssql-core/query-builders/delete.cjs.map +1 -0
  879. package/mssql-core/query-builders/delete.d.cts +98 -0
  880. package/mssql-core/query-builders/delete.d.ts +98 -0
  881. package/mssql-core/query-builders/delete.js +83 -0
  882. package/mssql-core/query-builders/delete.js.map +1 -0
  883. package/mssql-core/query-builders/index.cjs +33 -0
  884. package/mssql-core/query-builders/index.cjs.map +1 -0
  885. package/mssql-core/query-builders/index.d.cts +6 -0
  886. package/mssql-core/query-builders/index.d.ts +6 -0
  887. package/mssql-core/query-builders/index.js +7 -0
  888. package/mssql-core/query-builders/index.js.map +1 -0
  889. package/mssql-core/query-builders/insert.cjs +105 -0
  890. package/mssql-core/query-builders/insert.cjs.map +1 -0
  891. package/mssql-core/query-builders/insert.d.cts +79 -0
  892. package/mssql-core/query-builders/insert.d.ts +79 -0
  893. package/mssql-core/query-builders/insert.js +80 -0
  894. package/mssql-core/query-builders/insert.js.map +1 -0
  895. package/mssql-core/query-builders/query-builder.cjs +95 -0
  896. package/mssql-core/query-builders/query-builder.cjs.map +1 -0
  897. package/mssql-core/query-builders/query-builder.d.cts +32 -0
  898. package/mssql-core/query-builders/query-builder.d.ts +32 -0
  899. package/mssql-core/query-builders/query-builder.js +71 -0
  900. package/mssql-core/query-builders/query-builder.js.map +1 -0
  901. package/mssql-core/query-builders/query.cjs +126 -0
  902. package/mssql-core/query-builders/query.cjs.map +1 -0
  903. package/mssql-core/query-builders/query.d.cts +42 -0
  904. package/mssql-core/query-builders/query.d.ts +42 -0
  905. package/mssql-core/query-builders/query.js +103 -0
  906. package/mssql-core/query-builders/query.js.map +1 -0
  907. package/mssql-core/query-builders/select.cjs +678 -0
  908. package/mssql-core/query-builders/select.cjs.map +1 -0
  909. package/mssql-core/query-builders/select.d.cts +549 -0
  910. package/mssql-core/query-builders/select.d.ts +549 -0
  911. package/mssql-core/query-builders/select.js +654 -0
  912. package/mssql-core/query-builders/select.js.map +1 -0
  913. package/mssql-core/query-builders/select.types.cjs +17 -0
  914. package/mssql-core/query-builders/select.types.cjs.map +1 -0
  915. package/mssql-core/query-builders/select.types.d.cts +142 -0
  916. package/mssql-core/query-builders/select.types.d.ts +142 -0
  917. package/mssql-core/query-builders/select.types.js +1 -0
  918. package/mssql-core/query-builders/select.types.js.map +1 -0
  919. package/mssql-core/query-builders/update.cjs +138 -0
  920. package/mssql-core/query-builders/update.cjs.map +1 -0
  921. package/mssql-core/query-builders/update.d.cts +142 -0
  922. package/mssql-core/query-builders/update.d.ts +142 -0
  923. package/mssql-core/query-builders/update.js +113 -0
  924. package/mssql-core/query-builders/update.js.map +1 -0
  925. package/mssql-core/schema.cjs +53 -0
  926. package/mssql-core/schema.cjs.map +1 -0
  927. package/mssql-core/schema.d.cts +13 -0
  928. package/mssql-core/schema.d.ts +13 -0
  929. package/mssql-core/schema.js +28 -0
  930. package/mssql-core/schema.js.map +1 -0
  931. package/mssql-core/session.cjs +74 -0
  932. package/mssql-core/session.cjs.map +1 -0
  933. package/mssql-core/session.d.cts +63 -0
  934. package/mssql-core/session.d.ts +63 -0
  935. package/mssql-core/session.js +48 -0
  936. package/mssql-core/session.js.map +1 -0
  937. package/mssql-core/subquery.cjs +17 -0
  938. package/mssql-core/subquery.cjs.map +1 -0
  939. package/mssql-core/subquery.d.cts +18 -0
  940. package/mssql-core/subquery.d.ts +18 -0
  941. package/mssql-core/subquery.js +1 -0
  942. package/mssql-core/subquery.js.map +1 -0
  943. package/mssql-core/table.cjs +81 -0
  944. package/mssql-core/table.cjs.map +1 -0
  945. package/mssql-core/table.d.cts +40 -0
  946. package/mssql-core/table.d.ts +40 -0
  947. package/mssql-core/table.js +55 -0
  948. package/mssql-core/table.js.map +1 -0
  949. package/mssql-core/unique-constraint.cjs +78 -0
  950. package/mssql-core/unique-constraint.cjs.map +1 -0
  951. package/mssql-core/unique-constraint.d.cts +24 -0
  952. package/mssql-core/unique-constraint.d.ts +24 -0
  953. package/mssql-core/unique-constraint.js +51 -0
  954. package/mssql-core/unique-constraint.js.map +1 -0
  955. package/mssql-core/utils.cjs +85 -0
  956. package/mssql-core/utils.cjs.map +1 -0
  957. package/mssql-core/utils.d.cts +31 -0
  958. package/mssql-core/utils.d.ts +31 -0
  959. package/mssql-core/utils.js +60 -0
  960. package/mssql-core/utils.js.map +1 -0
  961. package/mssql-core/view-base.cjs +33 -0
  962. package/mssql-core/view-base.cjs.map +1 -0
  963. package/mssql-core/view-base.d.cts +9 -0
  964. package/mssql-core/view-base.d.ts +9 -0
  965. package/mssql-core/view-base.js +9 -0
  966. package/mssql-core/view-base.js.map +1 -0
  967. package/mssql-core/view-common.cjs +29 -0
  968. package/mssql-core/view-common.cjs.map +1 -0
  969. package/mssql-core/view-common.d.cts +1 -0
  970. package/mssql-core/view-common.d.ts +1 -0
  971. package/mssql-core/view-common.js +5 -0
  972. package/mssql-core/view-common.js.map +1 -0
  973. package/mssql-core/view.cjs +154 -0
  974. package/mssql-core/view.cjs.map +1 -0
  975. package/mssql-core/view.d.cts +63 -0
  976. package/mssql-core/view.d.ts +63 -0
  977. package/mssql-core/view.js +125 -0
  978. package/mssql-core/view.js.map +1 -0
  979. package/mysql-core/columns/all.cjs +6 -1
  980. package/mysql-core/columns/all.cjs.map +1 -1
  981. package/mysql-core/columns/all.d.cts +5 -0
  982. package/mysql-core/columns/all.d.ts +5 -0
  983. package/mysql-core/columns/all.js +6 -1
  984. package/mysql-core/columns/all.js.map +1 -1
  985. package/mysql-core/columns/bigint.cjs.map +1 -1
  986. package/mysql-core/columns/bigint.d.cts +0 -3
  987. package/mysql-core/columns/bigint.d.ts +0 -3
  988. package/mysql-core/columns/bigint.js.map +1 -1
  989. package/mysql-core/columns/binary.cjs +0 -1
  990. package/mysql-core/columns/binary.cjs.map +1 -1
  991. package/mysql-core/columns/binary.d.cts +0 -2
  992. package/mysql-core/columns/binary.d.ts +0 -2
  993. package/mysql-core/columns/binary.js +0 -1
  994. package/mysql-core/columns/binary.js.map +1 -1
  995. package/mysql-core/columns/blob.cjs +158 -0
  996. package/mysql-core/columns/blob.cjs.map +1 -0
  997. package/mysql-core/columns/blob.d.cts +54 -0
  998. package/mysql-core/columns/blob.d.ts +54 -0
  999. package/mysql-core/columns/blob.js +127 -0
  1000. package/mysql-core/columns/blob.js.map +1 -0
  1001. package/mysql-core/columns/boolean.cjs.map +1 -1
  1002. package/mysql-core/columns/boolean.d.cts +0 -1
  1003. package/mysql-core/columns/boolean.d.ts +0 -1
  1004. package/mysql-core/columns/boolean.js.map +1 -1
  1005. package/mysql-core/columns/char.cjs +3 -4
  1006. package/mysql-core/columns/char.cjs.map +1 -1
  1007. package/mysql-core/columns/char.d.cts +3 -5
  1008. package/mysql-core/columns/char.d.ts +3 -5
  1009. package/mysql-core/columns/char.js +3 -4
  1010. package/mysql-core/columns/char.js.map +1 -1
  1011. package/mysql-core/columns/common.cjs +0 -4
  1012. package/mysql-core/columns/common.cjs.map +1 -1
  1013. package/mysql-core/columns/common.d.cts +1 -1
  1014. package/mysql-core/columns/common.d.ts +1 -1
  1015. package/mysql-core/columns/common.js +0 -4
  1016. package/mysql-core/columns/common.js.map +1 -1
  1017. package/mysql-core/columns/custom.cjs.map +1 -1
  1018. package/mysql-core/columns/custom.d.cts +0 -1
  1019. package/mysql-core/columns/custom.d.ts +0 -1
  1020. package/mysql-core/columns/custom.js.map +1 -1
  1021. package/mysql-core/columns/date.cjs.map +1 -1
  1022. package/mysql-core/columns/date.common.cjs +3 -1
  1023. package/mysql-core/columns/date.common.cjs.map +1 -1
  1024. package/mysql-core/columns/date.common.d.cts +6 -1
  1025. package/mysql-core/columns/date.common.d.ts +6 -1
  1026. package/mysql-core/columns/date.common.js +3 -1
  1027. package/mysql-core/columns/date.common.js.map +1 -1
  1028. package/mysql-core/columns/date.d.cts +0 -2
  1029. package/mysql-core/columns/date.d.ts +0 -2
  1030. package/mysql-core/columns/date.js.map +1 -1
  1031. package/mysql-core/columns/datetime.cjs.map +1 -1
  1032. package/mysql-core/columns/datetime.d.cts +0 -2
  1033. package/mysql-core/columns/datetime.d.ts +0 -2
  1034. package/mysql-core/columns/datetime.js.map +1 -1
  1035. package/mysql-core/columns/decimal.cjs.map +1 -1
  1036. package/mysql-core/columns/decimal.d.cts +0 -3
  1037. package/mysql-core/columns/decimal.d.ts +0 -3
  1038. package/mysql-core/columns/decimal.js.map +1 -1
  1039. package/mysql-core/columns/double.cjs.map +1 -1
  1040. package/mysql-core/columns/double.d.cts +0 -1
  1041. package/mysql-core/columns/double.d.ts +0 -1
  1042. package/mysql-core/columns/double.js.map +1 -1
  1043. package/mysql-core/columns/enum.cjs +5 -5
  1044. package/mysql-core/columns/enum.cjs.map +1 -1
  1045. package/mysql-core/columns/enum.d.cts +5 -7
  1046. package/mysql-core/columns/enum.d.ts +5 -7
  1047. package/mysql-core/columns/enum.js +5 -5
  1048. package/mysql-core/columns/enum.js.map +1 -1
  1049. package/mysql-core/columns/float.cjs.map +1 -1
  1050. package/mysql-core/columns/float.d.cts +0 -1
  1051. package/mysql-core/columns/float.d.ts +0 -1
  1052. package/mysql-core/columns/float.js.map +1 -1
  1053. package/mysql-core/columns/index.cjs +2 -0
  1054. package/mysql-core/columns/index.cjs.map +1 -1
  1055. package/mysql-core/columns/index.d.cts +1 -0
  1056. package/mysql-core/columns/index.d.ts +1 -0
  1057. package/mysql-core/columns/index.js +1 -0
  1058. package/mysql-core/columns/index.js.map +1 -1
  1059. package/mysql-core/columns/int.cjs.map +1 -1
  1060. package/mysql-core/columns/int.d.cts +0 -1
  1061. package/mysql-core/columns/int.d.ts +0 -1
  1062. package/mysql-core/columns/int.js.map +1 -1
  1063. package/mysql-core/columns/json.cjs.map +1 -1
  1064. package/mysql-core/columns/json.d.cts +0 -1
  1065. package/mysql-core/columns/json.d.ts +0 -1
  1066. package/mysql-core/columns/json.js.map +1 -1
  1067. package/mysql-core/columns/mediumint.cjs.map +1 -1
  1068. package/mysql-core/columns/mediumint.d.cts +0 -1
  1069. package/mysql-core/columns/mediumint.d.ts +0 -1
  1070. package/mysql-core/columns/mediumint.js.map +1 -1
  1071. package/mysql-core/columns/real.cjs.map +1 -1
  1072. package/mysql-core/columns/real.d.cts +0 -1
  1073. package/mysql-core/columns/real.d.ts +0 -1
  1074. package/mysql-core/columns/real.js.map +1 -1
  1075. package/mysql-core/columns/serial.cjs.map +1 -1
  1076. package/mysql-core/columns/serial.d.cts +0 -1
  1077. package/mysql-core/columns/serial.d.ts +0 -1
  1078. package/mysql-core/columns/serial.js.map +1 -1
  1079. package/mysql-core/columns/smallint.cjs.map +1 -1
  1080. package/mysql-core/columns/smallint.d.cts +0 -1
  1081. package/mysql-core/columns/smallint.d.ts +0 -1
  1082. package/mysql-core/columns/smallint.js.map +1 -1
  1083. package/mysql-core/columns/string.common.cjs +48 -0
  1084. package/mysql-core/columns/string.common.cjs.map +1 -0
  1085. package/mysql-core/columns/string.common.d.cts +21 -0
  1086. package/mysql-core/columns/string.common.d.ts +21 -0
  1087. package/mysql-core/columns/string.common.js +23 -0
  1088. package/mysql-core/columns/string.common.js.map +1 -0
  1089. package/mysql-core/columns/text.cjs +3 -3
  1090. package/mysql-core/columns/text.cjs.map +1 -1
  1091. package/mysql-core/columns/text.d.cts +3 -4
  1092. package/mysql-core/columns/text.d.ts +3 -4
  1093. package/mysql-core/columns/text.js +3 -3
  1094. package/mysql-core/columns/text.js.map +1 -1
  1095. package/mysql-core/columns/time.cjs.map +1 -1
  1096. package/mysql-core/columns/time.d.cts +0 -1
  1097. package/mysql-core/columns/time.d.ts +0 -1
  1098. package/mysql-core/columns/time.js.map +1 -1
  1099. package/mysql-core/columns/timestamp.cjs.map +1 -1
  1100. package/mysql-core/columns/timestamp.d.cts +0 -2
  1101. package/mysql-core/columns/timestamp.d.ts +0 -2
  1102. package/mysql-core/columns/timestamp.js.map +1 -1
  1103. package/mysql-core/columns/tinyint.cjs.map +1 -1
  1104. package/mysql-core/columns/tinyint.d.cts +0 -1
  1105. package/mysql-core/columns/tinyint.d.ts +0 -1
  1106. package/mysql-core/columns/tinyint.js.map +1 -1
  1107. package/mysql-core/columns/varbinary.cjs.map +1 -1
  1108. package/mysql-core/columns/varbinary.d.cts +0 -1
  1109. package/mysql-core/columns/varbinary.d.ts +0 -1
  1110. package/mysql-core/columns/varbinary.js.map +1 -1
  1111. package/mysql-core/columns/varchar.cjs +4 -4
  1112. package/mysql-core/columns/varchar.cjs.map +1 -1
  1113. package/mysql-core/columns/varchar.d.cts +4 -5
  1114. package/mysql-core/columns/varchar.d.ts +4 -5
  1115. package/mysql-core/columns/varchar.js +4 -4
  1116. package/mysql-core/columns/varchar.js.map +1 -1
  1117. package/mysql-core/columns/year.cjs.map +1 -1
  1118. package/mysql-core/columns/year.d.cts +0 -1
  1119. package/mysql-core/columns/year.d.ts +0 -1
  1120. package/mysql-core/columns/year.js.map +1 -1
  1121. package/mysql-core/dialect.cjs +7 -2
  1122. package/mysql-core/dialect.cjs.map +1 -1
  1123. package/mysql-core/dialect.d.cts +1 -0
  1124. package/mysql-core/dialect.d.ts +1 -0
  1125. package/mysql-core/dialect.js +14 -3
  1126. package/mysql-core/dialect.js.map +1 -1
  1127. package/mysql-core/foreign-keys.cjs +3 -0
  1128. package/mysql-core/foreign-keys.cjs.map +1 -1
  1129. package/mysql-core/foreign-keys.d.cts +1 -0
  1130. package/mysql-core/foreign-keys.d.ts +1 -0
  1131. package/mysql-core/foreign-keys.js +3 -0
  1132. package/mysql-core/foreign-keys.js.map +1 -1
  1133. package/mysql-core/indexes.cjs +2 -0
  1134. package/mysql-core/indexes.cjs.map +1 -1
  1135. package/mysql-core/indexes.d.cts +1 -0
  1136. package/mysql-core/indexes.d.ts +1 -0
  1137. package/mysql-core/indexes.js +2 -0
  1138. package/mysql-core/indexes.js.map +1 -1
  1139. package/mysql-core/primary-keys.cjs +4 -13
  1140. package/mysql-core/primary-keys.cjs.map +1 -1
  1141. package/mysql-core/primary-keys.d.cts +3 -6
  1142. package/mysql-core/primary-keys.d.ts +3 -6
  1143. package/mysql-core/primary-keys.js +4 -13
  1144. package/mysql-core/primary-keys.js.map +1 -1
  1145. package/mysql-core/query-builders/count.cjs.map +1 -1
  1146. package/mysql-core/query-builders/count.d.cts +1 -1
  1147. package/mysql-core/query-builders/count.d.ts +1 -1
  1148. package/mysql-core/query-builders/count.js.map +1 -1
  1149. package/mysql-core/query-builders/insert.cjs.map +1 -1
  1150. package/mysql-core/query-builders/insert.d.cts +2 -2
  1151. package/mysql-core/query-builders/insert.d.ts +2 -2
  1152. package/mysql-core/query-builders/insert.js.map +1 -1
  1153. package/mysql-core/query-builders/update.cjs.map +1 -1
  1154. package/mysql-core/query-builders/update.d.cts +1 -1
  1155. package/mysql-core/query-builders/update.d.ts +1 -1
  1156. package/mysql-core/query-builders/update.js.map +1 -1
  1157. package/mysql-core/unique-constraint.cjs +2 -0
  1158. package/mysql-core/unique-constraint.cjs.map +1 -1
  1159. package/mysql-core/unique-constraint.d.cts +3 -2
  1160. package/mysql-core/unique-constraint.d.ts +3 -2
  1161. package/mysql-core/unique-constraint.js +2 -0
  1162. package/mysql-core/unique-constraint.js.map +1 -1
  1163. package/mysql-proxy/driver.cjs +2 -2
  1164. package/mysql-proxy/driver.cjs.map +1 -1
  1165. package/mysql-proxy/driver.d.cts +2 -1
  1166. package/mysql-proxy/driver.d.ts +2 -1
  1167. package/mysql-proxy/driver.js +2 -2
  1168. package/mysql-proxy/driver.js.map +1 -1
  1169. package/mysql2/driver.cjs +10 -14
  1170. package/mysql2/driver.cjs.map +1 -1
  1171. package/mysql2/driver.d.cts +3 -3
  1172. package/mysql2/driver.d.ts +3 -3
  1173. package/mysql2/driver.js +10 -14
  1174. package/mysql2/driver.js.map +1 -1
  1175. package/mysql2/session.cjs.map +1 -1
  1176. package/mysql2/session.js.map +1 -1
  1177. package/neon-http/driver.cjs +10 -14
  1178. package/neon-http/driver.cjs.map +1 -1
  1179. package/neon-http/driver.d.cts +3 -3
  1180. package/neon-http/driver.d.ts +3 -3
  1181. package/neon-http/driver.js +10 -14
  1182. package/neon-http/driver.js.map +1 -1
  1183. package/neon-http/session.cjs.map +1 -1
  1184. package/neon-http/session.d.cts +1 -1
  1185. package/neon-http/session.d.ts +1 -1
  1186. package/neon-http/session.js.map +1 -1
  1187. package/neon-serverless/driver.cjs +10 -14
  1188. package/neon-serverless/driver.cjs.map +1 -1
  1189. package/neon-serverless/driver.d.cts +3 -3
  1190. package/neon-serverless/driver.d.ts +3 -3
  1191. package/neon-serverless/driver.js +10 -14
  1192. package/neon-serverless/driver.js.map +1 -1
  1193. package/neon-serverless/session.cjs.map +1 -1
  1194. package/neon-serverless/session.js.map +1 -1
  1195. package/node-mssql/driver.cjs +129 -0
  1196. package/node-mssql/driver.cjs.map +1 -0
  1197. package/node-mssql/driver.d.cts +48 -0
  1198. package/node-mssql/driver.d.ts +48 -0
  1199. package/node-mssql/driver.js +92 -0
  1200. package/node-mssql/driver.js.map +1 -0
  1201. package/node-mssql/index.cjs +25 -0
  1202. package/node-mssql/index.cjs.map +1 -0
  1203. package/node-mssql/index.d.cts +2 -0
  1204. package/node-mssql/index.d.ts +2 -0
  1205. package/node-mssql/index.js +3 -0
  1206. package/node-mssql/index.js.map +1 -0
  1207. package/node-mssql/migrator.cjs +33 -0
  1208. package/node-mssql/migrator.cjs.map +1 -0
  1209. package/node-mssql/migrator.d.cts +3 -0
  1210. package/node-mssql/migrator.d.ts +3 -0
  1211. package/node-mssql/migrator.js +9 -0
  1212. package/node-mssql/migrator.js.map +1 -0
  1213. package/node-mssql/pool.cjs +54 -0
  1214. package/node-mssql/pool.cjs.map +1 -0
  1215. package/node-mssql/pool.d.cts +8 -0
  1216. package/node-mssql/pool.d.ts +8 -0
  1217. package/node-mssql/pool.js +20 -0
  1218. package/node-mssql/pool.js.map +1 -0
  1219. package/node-mssql/session.cjs +256 -0
  1220. package/node-mssql/session.cjs.map +1 -0
  1221. package/node-mssql/session.d.cts +48 -0
  1222. package/node-mssql/session.d.ts +48 -0
  1223. package/node-mssql/session.js +224 -0
  1224. package/node-mssql/session.js.map +1 -0
  1225. package/node-postgres/driver.cjs +8 -12
  1226. package/node-postgres/driver.cjs.map +1 -1
  1227. package/node-postgres/driver.d.cts +3 -3
  1228. package/node-postgres/driver.d.ts +3 -3
  1229. package/node-postgres/driver.js +8 -12
  1230. package/node-postgres/driver.js.map +1 -1
  1231. package/node-postgres/session.cjs.map +1 -1
  1232. package/node-postgres/session.js.map +1 -1
  1233. package/op-sqlite/migrator.cjs +10 -7
  1234. package/op-sqlite/migrator.cjs.map +1 -1
  1235. package/op-sqlite/migrator.d.cts +0 -16
  1236. package/op-sqlite/migrator.d.ts +0 -16
  1237. package/op-sqlite/migrator.js +10 -7
  1238. package/op-sqlite/migrator.js.map +1 -1
  1239. package/package.json +1498 -20
  1240. package/pg-core/columns/bigint.cjs.map +1 -1
  1241. package/pg-core/columns/bigint.d.cts +0 -3
  1242. package/pg-core/columns/bigint.d.ts +0 -3
  1243. package/pg-core/columns/bigint.js.map +1 -1
  1244. package/pg-core/columns/bigserial.cjs +1 -0
  1245. package/pg-core/columns/bigserial.cjs.map +1 -1
  1246. package/pg-core/columns/bigserial.d.cts +0 -2
  1247. package/pg-core/columns/bigserial.d.ts +0 -2
  1248. package/pg-core/columns/bigserial.js +1 -0
  1249. package/pg-core/columns/bigserial.js.map +1 -1
  1250. package/pg-core/columns/boolean.cjs.map +1 -1
  1251. package/pg-core/columns/boolean.d.cts +0 -1
  1252. package/pg-core/columns/boolean.d.ts +0 -1
  1253. package/pg-core/columns/boolean.js.map +1 -1
  1254. package/pg-core/columns/bytea.cjs.map +1 -1
  1255. package/pg-core/columns/bytea.d.cts +0 -1
  1256. package/pg-core/columns/bytea.d.ts +0 -1
  1257. package/pg-core/columns/bytea.js.map +1 -1
  1258. package/pg-core/columns/char.cjs +0 -1
  1259. package/pg-core/columns/char.cjs.map +1 -1
  1260. package/pg-core/columns/char.d.cts +0 -2
  1261. package/pg-core/columns/char.d.ts +0 -2
  1262. package/pg-core/columns/char.js +0 -1
  1263. package/pg-core/columns/char.js.map +1 -1
  1264. package/pg-core/columns/cidr.cjs.map +1 -1
  1265. package/pg-core/columns/cidr.d.cts +0 -1
  1266. package/pg-core/columns/cidr.d.ts +0 -1
  1267. package/pg-core/columns/cidr.js.map +1 -1
  1268. package/pg-core/columns/common.cjs +10 -14
  1269. package/pg-core/columns/common.cjs.map +1 -1
  1270. package/pg-core/columns/common.d.cts +4 -3
  1271. package/pg-core/columns/common.d.ts +4 -3
  1272. package/pg-core/columns/common.js +10 -14
  1273. package/pg-core/columns/common.js.map +1 -1
  1274. package/pg-core/columns/custom.cjs.map +1 -1
  1275. package/pg-core/columns/custom.d.cts +0 -1
  1276. package/pg-core/columns/custom.d.ts +0 -1
  1277. package/pg-core/columns/custom.js.map +1 -1
  1278. package/pg-core/columns/date.cjs.map +1 -1
  1279. package/pg-core/columns/date.d.cts +0 -2
  1280. package/pg-core/columns/date.d.ts +0 -2
  1281. package/pg-core/columns/date.js.map +1 -1
  1282. package/pg-core/columns/double-precision.cjs.map +1 -1
  1283. package/pg-core/columns/double-precision.d.cts +0 -1
  1284. package/pg-core/columns/double-precision.d.ts +0 -1
  1285. package/pg-core/columns/double-precision.js.map +1 -1
  1286. package/pg-core/columns/enum.cjs.map +1 -1
  1287. package/pg-core/columns/enum.d.cts +0 -2
  1288. package/pg-core/columns/enum.d.ts +0 -2
  1289. package/pg-core/columns/enum.js.map +1 -1
  1290. package/pg-core/columns/inet.cjs.map +1 -1
  1291. package/pg-core/columns/inet.d.cts +0 -1
  1292. package/pg-core/columns/inet.d.ts +0 -1
  1293. package/pg-core/columns/inet.js.map +1 -1
  1294. package/pg-core/columns/integer.cjs.map +1 -1
  1295. package/pg-core/columns/integer.d.cts +0 -1
  1296. package/pg-core/columns/integer.d.ts +0 -1
  1297. package/pg-core/columns/integer.js.map +1 -1
  1298. package/pg-core/columns/interval.cjs.map +1 -1
  1299. package/pg-core/columns/interval.d.cts +0 -1
  1300. package/pg-core/columns/interval.d.ts +0 -1
  1301. package/pg-core/columns/interval.js.map +1 -1
  1302. package/pg-core/columns/json.cjs.map +1 -1
  1303. package/pg-core/columns/json.d.cts +0 -1
  1304. package/pg-core/columns/json.d.ts +0 -1
  1305. package/pg-core/columns/json.js.map +1 -1
  1306. package/pg-core/columns/jsonb.cjs.map +1 -1
  1307. package/pg-core/columns/jsonb.d.cts +0 -1
  1308. package/pg-core/columns/jsonb.d.ts +0 -1
  1309. package/pg-core/columns/jsonb.js.map +1 -1
  1310. package/pg-core/columns/line.cjs +2 -0
  1311. package/pg-core/columns/line.cjs.map +1 -1
  1312. package/pg-core/columns/line.d.cts +2 -2
  1313. package/pg-core/columns/line.d.ts +2 -2
  1314. package/pg-core/columns/line.js +2 -0
  1315. package/pg-core/columns/line.js.map +1 -1
  1316. package/pg-core/columns/macaddr.cjs.map +1 -1
  1317. package/pg-core/columns/macaddr.d.cts +0 -1
  1318. package/pg-core/columns/macaddr.d.ts +0 -1
  1319. package/pg-core/columns/macaddr.js.map +1 -1
  1320. package/pg-core/columns/macaddr8.cjs.map +1 -1
  1321. package/pg-core/columns/macaddr8.d.cts +0 -1
  1322. package/pg-core/columns/macaddr8.d.ts +0 -1
  1323. package/pg-core/columns/macaddr8.js.map +1 -1
  1324. package/pg-core/columns/numeric.cjs.map +1 -1
  1325. package/pg-core/columns/numeric.d.cts +0 -3
  1326. package/pg-core/columns/numeric.d.ts +0 -3
  1327. package/pg-core/columns/numeric.js.map +1 -1
  1328. package/pg-core/columns/point.cjs +2 -0
  1329. package/pg-core/columns/point.cjs.map +1 -1
  1330. package/pg-core/columns/point.d.cts +2 -2
  1331. package/pg-core/columns/point.d.ts +2 -2
  1332. package/pg-core/columns/point.js +2 -0
  1333. package/pg-core/columns/point.js.map +1 -1
  1334. package/pg-core/columns/postgis_extension/geometry.cjs +14 -8
  1335. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  1336. package/pg-core/columns/postgis_extension/geometry.d.cts +16 -6
  1337. package/pg-core/columns/postgis_extension/geometry.d.ts +16 -6
  1338. package/pg-core/columns/postgis_extension/geometry.js +14 -8
  1339. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  1340. package/pg-core/columns/postgis_extension/utils.cjs +3 -3
  1341. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -1
  1342. package/pg-core/columns/postgis_extension/utils.d.cts +4 -1
  1343. package/pg-core/columns/postgis_extension/utils.d.ts +4 -1
  1344. package/pg-core/columns/postgis_extension/utils.js +3 -3
  1345. package/pg-core/columns/postgis_extension/utils.js.map +1 -1
  1346. package/pg-core/columns/real.cjs.map +1 -1
  1347. package/pg-core/columns/real.d.cts +0 -1
  1348. package/pg-core/columns/real.d.ts +0 -1
  1349. package/pg-core/columns/real.js.map +1 -1
  1350. package/pg-core/columns/serial.cjs.map +1 -1
  1351. package/pg-core/columns/serial.d.cts +0 -1
  1352. package/pg-core/columns/serial.d.ts +0 -1
  1353. package/pg-core/columns/serial.js.map +1 -1
  1354. package/pg-core/columns/smallint.cjs.map +1 -1
  1355. package/pg-core/columns/smallint.d.cts +0 -1
  1356. package/pg-core/columns/smallint.d.ts +0 -1
  1357. package/pg-core/columns/smallint.js.map +1 -1
  1358. package/pg-core/columns/smallserial.cjs.map +1 -1
  1359. package/pg-core/columns/smallserial.d.cts +0 -1
  1360. package/pg-core/columns/smallserial.d.ts +0 -1
  1361. package/pg-core/columns/smallserial.js.map +1 -1
  1362. package/pg-core/columns/text.cjs.map +1 -1
  1363. package/pg-core/columns/text.d.cts +0 -1
  1364. package/pg-core/columns/text.d.ts +0 -1
  1365. package/pg-core/columns/text.js.map +1 -1
  1366. package/pg-core/columns/time.cjs.map +1 -1
  1367. package/pg-core/columns/time.d.cts +0 -1
  1368. package/pg-core/columns/time.d.ts +0 -1
  1369. package/pg-core/columns/time.js.map +1 -1
  1370. package/pg-core/columns/timestamp.cjs.map +1 -1
  1371. package/pg-core/columns/timestamp.d.cts +0 -2
  1372. package/pg-core/columns/timestamp.d.ts +0 -2
  1373. package/pg-core/columns/timestamp.js.map +1 -1
  1374. package/pg-core/columns/uuid.cjs.map +1 -1
  1375. package/pg-core/columns/uuid.d.cts +0 -1
  1376. package/pg-core/columns/uuid.d.ts +0 -1
  1377. package/pg-core/columns/uuid.js.map +1 -1
  1378. package/pg-core/columns/varchar.cjs.map +1 -1
  1379. package/pg-core/columns/varchar.d.cts +0 -1
  1380. package/pg-core/columns/varchar.d.ts +0 -1
  1381. package/pg-core/columns/varchar.js.map +1 -1
  1382. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  1383. package/pg-core/columns/vector_extension/bit.d.cts +0 -1
  1384. package/pg-core/columns/vector_extension/bit.d.ts +0 -1
  1385. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  1386. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  1387. package/pg-core/columns/vector_extension/halfvec.d.cts +0 -1
  1388. package/pg-core/columns/vector_extension/halfvec.d.ts +0 -1
  1389. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  1390. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  1391. package/pg-core/columns/vector_extension/sparsevec.d.cts +0 -1
  1392. package/pg-core/columns/vector_extension/sparsevec.d.ts +0 -1
  1393. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  1394. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  1395. package/pg-core/columns/vector_extension/vector.d.cts +0 -1
  1396. package/pg-core/columns/vector_extension/vector.d.ts +0 -1
  1397. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  1398. package/pg-core/dialect.cjs +4 -2
  1399. package/pg-core/dialect.cjs.map +1 -1
  1400. package/pg-core/dialect.js +11 -3
  1401. package/pg-core/dialect.js.map +1 -1
  1402. package/pg-core/foreign-keys.cjs +4 -0
  1403. package/pg-core/foreign-keys.cjs.map +1 -1
  1404. package/pg-core/foreign-keys.d.cts +2 -0
  1405. package/pg-core/foreign-keys.d.ts +2 -0
  1406. package/pg-core/foreign-keys.js +4 -0
  1407. package/pg-core/foreign-keys.js.map +1 -1
  1408. package/pg-core/indexes.cjs +2 -0
  1409. package/pg-core/indexes.cjs.map +1 -1
  1410. package/pg-core/indexes.d.cts +1 -0
  1411. package/pg-core/indexes.d.ts +1 -0
  1412. package/pg-core/indexes.js +2 -0
  1413. package/pg-core/indexes.js.map +1 -1
  1414. package/pg-core/primary-keys.cjs +2 -0
  1415. package/pg-core/primary-keys.cjs.map +1 -1
  1416. package/pg-core/primary-keys.d.cts +1 -0
  1417. package/pg-core/primary-keys.d.ts +1 -0
  1418. package/pg-core/primary-keys.js +2 -0
  1419. package/pg-core/primary-keys.js.map +1 -1
  1420. package/pg-core/query-builders/count.cjs.map +1 -1
  1421. package/pg-core/query-builders/count.d.cts +4 -3
  1422. package/pg-core/query-builders/count.d.ts +4 -3
  1423. package/pg-core/query-builders/count.js.map +1 -1
  1424. package/pg-core/query-builders/insert.cjs.map +1 -1
  1425. package/pg-core/query-builders/insert.d.cts +6 -9
  1426. package/pg-core/query-builders/insert.d.ts +6 -9
  1427. package/pg-core/query-builders/insert.js.map +1 -1
  1428. package/pg-core/query-builders/select.cjs +6 -7
  1429. package/pg-core/query-builders/select.cjs.map +1 -1
  1430. package/pg-core/query-builders/select.js +2 -2
  1431. package/pg-core/query-builders/select.js.map +1 -1
  1432. package/pg-core/query-builders/update.cjs.map +1 -1
  1433. package/pg-core/query-builders/update.d.cts +1 -1
  1434. package/pg-core/query-builders/update.d.ts +1 -1
  1435. package/pg-core/query-builders/update.js.map +1 -1
  1436. package/pg-core/schema.cjs +12 -0
  1437. package/pg-core/schema.cjs.map +1 -1
  1438. package/pg-core/schema.d.cts +2 -0
  1439. package/pg-core/schema.d.ts +2 -0
  1440. package/pg-core/schema.js +13 -1
  1441. package/pg-core/schema.js.map +1 -1
  1442. package/pg-core/table.cjs +15 -2
  1443. package/pg-core/table.cjs.map +1 -1
  1444. package/pg-core/table.d.cts +5 -1
  1445. package/pg-core/table.d.ts +5 -1
  1446. package/pg-core/table.js +15 -2
  1447. package/pg-core/table.js.map +1 -1
  1448. package/pg-core/unique-constraint.cjs +2 -0
  1449. package/pg-core/unique-constraint.cjs.map +1 -1
  1450. package/pg-core/unique-constraint.d.cts +1 -0
  1451. package/pg-core/unique-constraint.d.ts +1 -0
  1452. package/pg-core/unique-constraint.js +2 -0
  1453. package/pg-core/unique-constraint.js.map +1 -1
  1454. package/pg-core/utils.cjs +1 -2
  1455. package/pg-core/utils.cjs.map +1 -1
  1456. package/pg-core/utils.d.cts +1 -1
  1457. package/pg-core/utils.d.ts +1 -1
  1458. package/pg-core/utils.js +1 -2
  1459. package/pg-core/utils.js.map +1 -1
  1460. package/pg-core/view-common.cjs +3 -0
  1461. package/pg-core/view-common.cjs.map +1 -1
  1462. package/pg-core/view-common.d.cts +1 -0
  1463. package/pg-core/view-common.d.ts +1 -0
  1464. package/pg-core/view-common.js +2 -0
  1465. package/pg-core/view-common.js.map +1 -1
  1466. package/pg-core/view.cjs +2 -5
  1467. package/pg-core/view.cjs.map +1 -1
  1468. package/pg-core/view.d.cts +1 -2
  1469. package/pg-core/view.d.ts +1 -2
  1470. package/pg-core/view.js +1 -3
  1471. package/pg-core/view.js.map +1 -1
  1472. package/pglite/driver.cjs +10 -14
  1473. package/pglite/driver.cjs.map +1 -1
  1474. package/pglite/driver.d.cts +3 -3
  1475. package/pglite/driver.d.ts +3 -3
  1476. package/pglite/driver.js +10 -14
  1477. package/pglite/driver.js.map +1 -1
  1478. package/planetscale-serverless/driver.cjs +11 -15
  1479. package/planetscale-serverless/driver.cjs.map +1 -1
  1480. package/planetscale-serverless/driver.d.cts +3 -3
  1481. package/planetscale-serverless/driver.d.ts +3 -3
  1482. package/planetscale-serverless/driver.js +11 -15
  1483. package/planetscale-serverless/driver.js.map +1 -1
  1484. package/postgres-js/driver.cjs +10 -14
  1485. package/postgres-js/driver.cjs.map +1 -1
  1486. package/postgres-js/driver.d.cts +3 -3
  1487. package/postgres-js/driver.d.ts +3 -3
  1488. package/postgres-js/driver.js +10 -14
  1489. package/postgres-js/driver.js.map +1 -1
  1490. package/relations.cjs +2 -0
  1491. package/relations.cjs.map +1 -1
  1492. package/relations.d.cts +3 -3
  1493. package/relations.d.ts +3 -3
  1494. package/relations.js +3 -1
  1495. package/relations.js.map +1 -1
  1496. package/selection-proxy.cjs +4 -3
  1497. package/selection-proxy.cjs.map +1 -1
  1498. package/selection-proxy.js +5 -4
  1499. package/selection-proxy.js.map +1 -1
  1500. package/singlestore/driver.cjs +19 -26
  1501. package/singlestore/driver.cjs.map +1 -1
  1502. package/singlestore/driver.d.cts +3 -3
  1503. package/singlestore/driver.d.ts +3 -3
  1504. package/singlestore/driver.js +19 -26
  1505. package/singlestore/driver.js.map +1 -1
  1506. package/singlestore/session.cjs.map +1 -1
  1507. package/singlestore/session.js.map +1 -1
  1508. package/singlestore-core/columns/bigint.cjs.map +1 -1
  1509. package/singlestore-core/columns/bigint.d.cts +0 -3
  1510. package/singlestore-core/columns/bigint.d.ts +0 -3
  1511. package/singlestore-core/columns/bigint.js.map +1 -1
  1512. package/singlestore-core/columns/binary.cjs +0 -1
  1513. package/singlestore-core/columns/binary.cjs.map +1 -1
  1514. package/singlestore-core/columns/binary.d.cts +0 -2
  1515. package/singlestore-core/columns/binary.d.ts +0 -2
  1516. package/singlestore-core/columns/binary.js +0 -1
  1517. package/singlestore-core/columns/binary.js.map +1 -1
  1518. package/singlestore-core/columns/boolean.cjs.map +1 -1
  1519. package/singlestore-core/columns/boolean.d.cts +0 -1
  1520. package/singlestore-core/columns/boolean.d.ts +0 -1
  1521. package/singlestore-core/columns/boolean.js.map +1 -1
  1522. package/singlestore-core/columns/char.cjs +0 -1
  1523. package/singlestore-core/columns/char.cjs.map +1 -1
  1524. package/singlestore-core/columns/char.d.cts +0 -2
  1525. package/singlestore-core/columns/char.d.ts +0 -2
  1526. package/singlestore-core/columns/char.js +0 -1
  1527. package/singlestore-core/columns/char.js.map +1 -1
  1528. package/singlestore-core/columns/common.cjs +0 -4
  1529. package/singlestore-core/columns/common.cjs.map +1 -1
  1530. package/singlestore-core/columns/common.d.cts +1 -1
  1531. package/singlestore-core/columns/common.d.ts +1 -1
  1532. package/singlestore-core/columns/common.js +0 -4
  1533. package/singlestore-core/columns/common.js.map +1 -1
  1534. package/singlestore-core/columns/custom.cjs.map +1 -1
  1535. package/singlestore-core/columns/custom.d.cts +0 -1
  1536. package/singlestore-core/columns/custom.d.ts +0 -1
  1537. package/singlestore-core/columns/custom.js.map +1 -1
  1538. package/singlestore-core/columns/date.cjs.map +1 -1
  1539. package/singlestore-core/columns/date.d.cts +0 -2
  1540. package/singlestore-core/columns/date.d.ts +0 -2
  1541. package/singlestore-core/columns/date.js.map +1 -1
  1542. package/singlestore-core/columns/datetime.cjs.map +1 -1
  1543. package/singlestore-core/columns/datetime.d.cts +0 -2
  1544. package/singlestore-core/columns/datetime.d.ts +0 -2
  1545. package/singlestore-core/columns/datetime.js.map +1 -1
  1546. package/singlestore-core/columns/decimal.cjs.map +1 -1
  1547. package/singlestore-core/columns/decimal.d.cts +0 -3
  1548. package/singlestore-core/columns/decimal.d.ts +0 -3
  1549. package/singlestore-core/columns/decimal.js.map +1 -1
  1550. package/singlestore-core/columns/double.cjs.map +1 -1
  1551. package/singlestore-core/columns/double.d.cts +0 -1
  1552. package/singlestore-core/columns/double.d.ts +0 -1
  1553. package/singlestore-core/columns/double.js.map +1 -1
  1554. package/singlestore-core/columns/enum.cjs.map +1 -1
  1555. package/singlestore-core/columns/enum.d.cts +0 -1
  1556. package/singlestore-core/columns/enum.d.ts +0 -1
  1557. package/singlestore-core/columns/enum.js.map +1 -1
  1558. package/singlestore-core/columns/float.cjs.map +1 -1
  1559. package/singlestore-core/columns/float.d.cts +0 -1
  1560. package/singlestore-core/columns/float.d.ts +0 -1
  1561. package/singlestore-core/columns/float.js.map +1 -1
  1562. package/singlestore-core/columns/int.cjs.map +1 -1
  1563. package/singlestore-core/columns/int.d.cts +0 -1
  1564. package/singlestore-core/columns/int.d.ts +0 -1
  1565. package/singlestore-core/columns/int.js.map +1 -1
  1566. package/singlestore-core/columns/json.cjs.map +1 -1
  1567. package/singlestore-core/columns/json.d.cts +0 -1
  1568. package/singlestore-core/columns/json.d.ts +0 -1
  1569. package/singlestore-core/columns/json.js.map +1 -1
  1570. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  1571. package/singlestore-core/columns/mediumint.d.cts +0 -1
  1572. package/singlestore-core/columns/mediumint.d.ts +0 -1
  1573. package/singlestore-core/columns/mediumint.js.map +1 -1
  1574. package/singlestore-core/columns/real.cjs.map +1 -1
  1575. package/singlestore-core/columns/real.d.cts +0 -1
  1576. package/singlestore-core/columns/real.d.ts +0 -1
  1577. package/singlestore-core/columns/real.js.map +1 -1
  1578. package/singlestore-core/columns/serial.cjs.map +1 -1
  1579. package/singlestore-core/columns/serial.d.cts +0 -1
  1580. package/singlestore-core/columns/serial.d.ts +0 -1
  1581. package/singlestore-core/columns/serial.js.map +1 -1
  1582. package/singlestore-core/columns/smallint.cjs.map +1 -1
  1583. package/singlestore-core/columns/smallint.d.cts +0 -1
  1584. package/singlestore-core/columns/smallint.d.ts +0 -1
  1585. package/singlestore-core/columns/smallint.js.map +1 -1
  1586. package/singlestore-core/columns/text.cjs.map +1 -1
  1587. package/singlestore-core/columns/text.d.cts +0 -1
  1588. package/singlestore-core/columns/text.d.ts +0 -1
  1589. package/singlestore-core/columns/text.js.map +1 -1
  1590. package/singlestore-core/columns/time.cjs.map +1 -1
  1591. package/singlestore-core/columns/time.d.cts +0 -1
  1592. package/singlestore-core/columns/time.d.ts +0 -1
  1593. package/singlestore-core/columns/time.js.map +1 -1
  1594. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  1595. package/singlestore-core/columns/timestamp.d.cts +0 -2
  1596. package/singlestore-core/columns/timestamp.d.ts +0 -2
  1597. package/singlestore-core/columns/timestamp.js.map +1 -1
  1598. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  1599. package/singlestore-core/columns/tinyint.d.cts +0 -1
  1600. package/singlestore-core/columns/tinyint.d.ts +0 -1
  1601. package/singlestore-core/columns/tinyint.js.map +1 -1
  1602. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  1603. package/singlestore-core/columns/varbinary.d.cts +0 -1
  1604. package/singlestore-core/columns/varbinary.d.ts +0 -1
  1605. package/singlestore-core/columns/varbinary.js.map +1 -1
  1606. package/singlestore-core/columns/varchar.cjs.map +1 -1
  1607. package/singlestore-core/columns/varchar.d.cts +0 -1
  1608. package/singlestore-core/columns/varchar.d.ts +0 -1
  1609. package/singlestore-core/columns/varchar.js.map +1 -1
  1610. package/singlestore-core/columns/vector.cjs.map +1 -1
  1611. package/singlestore-core/columns/vector.d.cts +0 -2
  1612. package/singlestore-core/columns/vector.d.ts +0 -2
  1613. package/singlestore-core/columns/vector.js.map +1 -1
  1614. package/singlestore-core/columns/year.cjs.map +1 -1
  1615. package/singlestore-core/columns/year.d.cts +0 -1
  1616. package/singlestore-core/columns/year.d.ts +0 -1
  1617. package/singlestore-core/columns/year.js.map +1 -1
  1618. package/singlestore-core/dialect.cjs +4 -2
  1619. package/singlestore-core/dialect.cjs.map +1 -1
  1620. package/singlestore-core/dialect.js +11 -3
  1621. package/singlestore-core/dialect.js.map +1 -1
  1622. package/singlestore-core/indexes.cjs +2 -0
  1623. package/singlestore-core/indexes.cjs.map +1 -1
  1624. package/singlestore-core/indexes.d.cts +1 -0
  1625. package/singlestore-core/indexes.d.ts +1 -0
  1626. package/singlestore-core/indexes.js +2 -0
  1627. package/singlestore-core/indexes.js.map +1 -1
  1628. package/singlestore-core/primary-keys.cjs +2 -0
  1629. package/singlestore-core/primary-keys.cjs.map +1 -1
  1630. package/singlestore-core/primary-keys.d.cts +1 -0
  1631. package/singlestore-core/primary-keys.d.ts +1 -0
  1632. package/singlestore-core/primary-keys.js +2 -0
  1633. package/singlestore-core/primary-keys.js.map +1 -1
  1634. package/singlestore-core/query-builders/count.cjs.map +1 -1
  1635. package/singlestore-core/query-builders/count.d.cts +1 -1
  1636. package/singlestore-core/query-builders/count.d.ts +1 -1
  1637. package/singlestore-core/query-builders/count.js.map +1 -1
  1638. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  1639. package/singlestore-core/query-builders/insert.d.cts +1 -1
  1640. package/singlestore-core/query-builders/insert.d.ts +1 -1
  1641. package/singlestore-core/query-builders/insert.js.map +1 -1
  1642. package/singlestore-core/query-builders/update.cjs.map +1 -1
  1643. package/singlestore-core/query-builders/update.d.cts +1 -1
  1644. package/singlestore-core/query-builders/update.d.ts +1 -1
  1645. package/singlestore-core/query-builders/update.js.map +1 -1
  1646. package/singlestore-core/unique-constraint.cjs +2 -0
  1647. package/singlestore-core/unique-constraint.cjs.map +1 -1
  1648. package/singlestore-core/unique-constraint.d.cts +3 -2
  1649. package/singlestore-core/unique-constraint.d.ts +3 -2
  1650. package/singlestore-core/unique-constraint.js +2 -0
  1651. package/singlestore-core/unique-constraint.js.map +1 -1
  1652. package/sql/sql.cjs +11 -10
  1653. package/sql/sql.cjs.map +1 -1
  1654. package/sql/sql.d.cts +3 -3
  1655. package/sql/sql.d.ts +3 -3
  1656. package/sql/sql.js +11 -10
  1657. package/sql/sql.js.map +1 -1
  1658. package/sql-js/session.cjs.map +1 -1
  1659. package/sql-js/session.js.map +1 -1
  1660. package/sqlite-cloud/driver.cjs +6 -10
  1661. package/sqlite-cloud/driver.cjs.map +1 -1
  1662. package/sqlite-cloud/driver.d.cts +3 -3
  1663. package/sqlite-cloud/driver.d.ts +3 -3
  1664. package/sqlite-cloud/driver.js +6 -10
  1665. package/sqlite-cloud/driver.js.map +1 -1
  1666. package/sqlite-core/columns/blob.cjs.map +1 -1
  1667. package/sqlite-core/columns/blob.d.cts +0 -3
  1668. package/sqlite-core/columns/blob.d.ts +0 -3
  1669. package/sqlite-core/columns/blob.js.map +1 -1
  1670. package/sqlite-core/columns/common.cjs +0 -4
  1671. package/sqlite-core/columns/common.cjs.map +1 -1
  1672. package/sqlite-core/columns/common.js +0 -4
  1673. package/sqlite-core/columns/common.js.map +1 -1
  1674. package/sqlite-core/columns/custom.cjs.map +1 -1
  1675. package/sqlite-core/columns/custom.d.cts +0 -1
  1676. package/sqlite-core/columns/custom.d.ts +0 -1
  1677. package/sqlite-core/columns/custom.js.map +1 -1
  1678. package/sqlite-core/columns/integer.cjs.map +1 -1
  1679. package/sqlite-core/columns/integer.d.cts +0 -3
  1680. package/sqlite-core/columns/integer.d.ts +0 -3
  1681. package/sqlite-core/columns/integer.js.map +1 -1
  1682. package/sqlite-core/columns/numeric.cjs.map +1 -1
  1683. package/sqlite-core/columns/numeric.d.cts +0 -3
  1684. package/sqlite-core/columns/numeric.d.ts +0 -3
  1685. package/sqlite-core/columns/numeric.js.map +1 -1
  1686. package/sqlite-core/columns/real.cjs.map +1 -1
  1687. package/sqlite-core/columns/real.d.cts +0 -1
  1688. package/sqlite-core/columns/real.d.ts +0 -1
  1689. package/sqlite-core/columns/real.js.map +1 -1
  1690. package/sqlite-core/columns/text.cjs.map +1 -1
  1691. package/sqlite-core/columns/text.d.cts +0 -2
  1692. package/sqlite-core/columns/text.d.ts +0 -2
  1693. package/sqlite-core/columns/text.js.map +1 -1
  1694. package/sqlite-core/dialect.cjs +8 -5
  1695. package/sqlite-core/dialect.cjs.map +1 -1
  1696. package/sqlite-core/dialect.js +15 -6
  1697. package/sqlite-core/dialect.js.map +1 -1
  1698. package/sqlite-core/foreign-keys.cjs +3 -0
  1699. package/sqlite-core/foreign-keys.cjs.map +1 -1
  1700. package/sqlite-core/foreign-keys.d.cts +1 -14
  1701. package/sqlite-core/foreign-keys.d.ts +1 -14
  1702. package/sqlite-core/foreign-keys.js +3 -0
  1703. package/sqlite-core/foreign-keys.js.map +1 -1
  1704. package/sqlite-core/indexes.cjs +2 -0
  1705. package/sqlite-core/indexes.cjs.map +1 -1
  1706. package/sqlite-core/indexes.d.cts +1 -0
  1707. package/sqlite-core/indexes.d.ts +1 -0
  1708. package/sqlite-core/indexes.js +2 -0
  1709. package/sqlite-core/indexes.js.map +1 -1
  1710. package/sqlite-core/primary-keys.cjs +2 -0
  1711. package/sqlite-core/primary-keys.cjs.map +1 -1
  1712. package/sqlite-core/primary-keys.d.cts +1 -0
  1713. package/sqlite-core/primary-keys.d.ts +1 -0
  1714. package/sqlite-core/primary-keys.js +2 -0
  1715. package/sqlite-core/primary-keys.js.map +1 -1
  1716. package/sqlite-core/query-builders/count.cjs.map +1 -1
  1717. package/sqlite-core/query-builders/count.d.cts +1 -1
  1718. package/sqlite-core/query-builders/count.d.ts +1 -1
  1719. package/sqlite-core/query-builders/count.js.map +1 -1
  1720. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  1721. package/sqlite-core/query-builders/insert.d.cts +2 -2
  1722. package/sqlite-core/query-builders/insert.d.ts +2 -2
  1723. package/sqlite-core/query-builders/insert.js.map +1 -1
  1724. package/sqlite-core/query-builders/update.cjs.map +1 -1
  1725. package/sqlite-core/query-builders/update.d.cts +1 -1
  1726. package/sqlite-core/query-builders/update.d.ts +1 -1
  1727. package/sqlite-core/query-builders/update.js.map +1 -1
  1728. package/sqlite-core/unique-constraint.cjs +2 -0
  1729. package/sqlite-core/unique-constraint.cjs.map +1 -1
  1730. package/sqlite-core/unique-constraint.d.cts +3 -2
  1731. package/sqlite-core/unique-constraint.d.ts +3 -2
  1732. package/sqlite-core/unique-constraint.js +2 -0
  1733. package/sqlite-core/unique-constraint.js.map +1 -1
  1734. package/sqlite-proxy/session.cjs +0 -1
  1735. package/sqlite-proxy/session.cjs.map +1 -1
  1736. package/sqlite-proxy/session.js +0 -1
  1737. package/sqlite-proxy/session.js.map +1 -1
  1738. package/table.cjs +0 -1
  1739. package/table.cjs.map +1 -1
  1740. package/table.d.cts +2 -3
  1741. package/table.d.ts +2 -3
  1742. package/table.js +0 -1
  1743. package/table.js.map +1 -1
  1744. package/tidb-serverless/driver.cjs +8 -12
  1745. package/tidb-serverless/driver.cjs.map +1 -1
  1746. package/tidb-serverless/driver.d.cts +3 -3
  1747. package/tidb-serverless/driver.d.ts +3 -3
  1748. package/tidb-serverless/driver.js +8 -12
  1749. package/tidb-serverless/driver.js.map +1 -1
  1750. package/tracing.cjs +1 -1
  1751. package/tracing.cjs.map +1 -1
  1752. package/tracing.js +1 -1
  1753. package/tracing.js.map +1 -1
  1754. package/tursodatabase/database.cjs +6 -10
  1755. package/tursodatabase/database.cjs.map +1 -1
  1756. package/tursodatabase/database.d.cts +3 -3
  1757. package/tursodatabase/database.d.ts +3 -3
  1758. package/tursodatabase/database.js +6 -10
  1759. package/tursodatabase/database.js.map +1 -1
  1760. package/tursodatabase/session.cjs +0 -2
  1761. package/tursodatabase/session.cjs.map +1 -1
  1762. package/tursodatabase/session.js +0 -2
  1763. package/tursodatabase/session.js.map +1 -1
  1764. package/tursodatabase/wasm.cjs +6 -10
  1765. package/tursodatabase/wasm.cjs.map +1 -1
  1766. package/tursodatabase/wasm.d.cts +3 -3
  1767. package/tursodatabase/wasm.d.ts +3 -3
  1768. package/tursodatabase/wasm.js +6 -10
  1769. package/tursodatabase/wasm.js.map +1 -1
  1770. package/vercel-postgres/session.cjs.map +1 -1
  1771. package/vercel-postgres/session.js.map +1 -1
  1772. package/version.cjs +2 -2
  1773. package/version.cjs.map +1 -1
  1774. package/version.d.cts +2 -2
  1775. package/version.d.ts +2 -2
  1776. package/version.js +2 -2
  1777. package/version.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/primary-keys.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from './columns/index.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumn extends AnySQLiteColumn<{ tableName: TTableName }>,\n\tTColumns extends AnySQLiteColumn<{ tableName: TTableName }>[],\n>(config: { name?: string; columns: [TColumn, ...TColumns] }): PrimaryKeyBuilder;\n/**\n * @deprecated: Please use primaryKey({ columns: [] }) instead of this function\n * @param columns\n */\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumns extends AnySQLiteColumn<{ tableName: TTableName }>[],\n>(...columns: TColumns): PrimaryKeyBuilder;\nexport function primaryKey(...config: any) {\n\tif (config[0].columns) {\n\t\treturn new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\t}\n\treturn new PrimaryKeyBuilder(config);\n}\nexport class PrimaryKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SQLitePrimaryKeyBuilder';\n\n\tdeclare _: {\n\t\tbrand: 'SQLitePrimaryKeyBuilder';\n\t};\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tname?: string,\n\t) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): PrimaryKey {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n}\n\nexport class PrimaryKey {\n\tstatic readonly [entityKind]: string = 'SQLitePrimaryKey';\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name?: string;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name\n\t\t\t?? `${this.table[SQLiteTable.Symbol.Name]}_${this.columns.map((column) => column.name).join('_')}_pk`;\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,mBAAmB;AAerB,SAAS,cAAc,QAAa;AAC1C,MAAI,OAAO,CAAC,EAAE,SAAS;AACtB,WAAO,IAAI,kBAAkB,OAAO,CAAC,EAAE,SAAS,OAAO,CAAC,EAAE,IAAI;AAAA,EAC/D;AACA,SAAO,IAAI,kBAAkB,MAAM;AACpC;AACO,MAAM,kBAAkB;AAAA,EAC9B,QAAiB,UAAU,IAAY;AAAA;AAAA,EAOvC;AAAA;AAAA,EAGA;AAAA,EAEA,YACC,SACA,MACC;AACD,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACb;AAAA;AAAA,EAGA,MAAM,OAAgC;AACrC,WAAO,IAAI,WAAW,OAAO,KAAK,SAAS,KAAK,IAAI;AAAA,EACrD;AACD;AAEO,MAAM,WAAW;AAAA,EAMvB,YAAqB,OAAoB,SAAyB,MAAe;AAA5D;AACpB,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACb;AAAA,EARA,QAAiB,UAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EAOT,UAAkB;AACjB,WAAO,KAAK,QACR,GAAG,KAAK,MAAM,YAAY,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC;AAAA,EAClG;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-core/primary-keys.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from './columns/index.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumn extends AnySQLiteColumn<{ tableName: TTableName }>,\n\tTColumns extends AnySQLiteColumn<{ tableName: TTableName }>[],\n>(config: { name?: string; columns: [TColumn, ...TColumns] }): PrimaryKeyBuilder;\n/**\n * @deprecated: Please use primaryKey({ columns: [] }) instead of this function\n * @param columns\n */\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumns extends AnySQLiteColumn<{ tableName: TTableName }>[],\n>(...columns: TColumns): PrimaryKeyBuilder;\nexport function primaryKey(...config: any) {\n\tif (config[0].columns) {\n\t\treturn new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\t}\n\treturn new PrimaryKeyBuilder(config);\n}\nexport class PrimaryKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SQLitePrimaryKeyBuilder';\n\n\tdeclare _: {\n\t\tbrand: 'SQLitePrimaryKeyBuilder';\n\t};\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tname?: string,\n\t) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): PrimaryKey {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n}\n\nexport class PrimaryKey {\n\tstatic readonly [entityKind]: string = 'SQLitePrimaryKey';\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name?: string;\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t\tthis.isNameExplicit = !!name;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name\n\t\t\t?? `${this.table[SQLiteTable.Symbol.Name]}_${this.columns.map((column) => column.name).join('_')}_pk`;\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,mBAAmB;AAerB,SAAS,cAAc,QAAa;AAC1C,MAAI,OAAO,CAAC,EAAE,SAAS;AACtB,WAAO,IAAI,kBAAkB,OAAO,CAAC,EAAE,SAAS,OAAO,CAAC,EAAE,IAAI;AAAA,EAC/D;AACA,SAAO,IAAI,kBAAkB,MAAM;AACpC;AACO,MAAM,kBAAkB;AAAA,EAC9B,QAAiB,UAAU,IAAY;AAAA;AAAA,EAOvC;AAAA;AAAA,EAGA;AAAA,EAEA,YACC,SACA,MACC;AACD,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACb;AAAA;AAAA,EAGA,MAAM,OAAgC;AACrC,WAAO,IAAI,WAAW,OAAO,KAAK,SAAS,KAAK,IAAI;AAAA,EACrD;AACD;AAEO,MAAM,WAAW;AAAA,EAOvB,YAAqB,OAAoB,SAAyB,MAAe;AAA5D;AACpB,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,iBAAiB,CAAC,CAAC;AAAA,EACzB;AAAA,EAVA,QAAiB,UAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EAQT,UAAkB;AACjB,WAAO,KAAK,QACR,GAAG,KAAK,MAAM,YAAY,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,EAAE,KAAK,GAAG,CAAC;AAAA,EAClG;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteSession } from '../session.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport type { SQLiteView } from '../view.ts';\n\nexport class SQLiteCountBuilder<\n\tTSession extends SQLiteSession<any, any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind] = 'SQLiteCountBuilderAsync';\n\t[Symbol.toStringTag] = 'SQLiteCountBuilderAsync';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters}`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(SQLiteCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = SQLiteCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql)).then(\n\t\t\tonfulfilled,\n\t\t\tonrejected,\n\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => never | PromiseLike<never>) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,iBAA0C;AAKnC,MAAM,2BAEH,eAA2D;AAAA,EAsBpE,YACU,QAKR;AACD,UAAM,mBAAmB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN7E;AAQT,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,mBAAmB;AAAA,MAC7B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EApCQ;AAAA,EAER,QAA0B,wBAAU,IAAI;AAAA,EACxC,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,uCAAoC,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,sCAAmC,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC5F;AAAA,EAmBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EAAE;AAAA,MACpD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteSession } from '../session.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport type { SQLiteView } from '../view.ts';\n\nexport class SQLiteCountBuilder<\n\tTSession extends SQLiteSession<any, any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind]: string = 'SQLiteCountBuilderAsync';\n\t[Symbol.toStringTag] = 'SQLiteCountBuilderAsync';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters}`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(SQLiteCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = SQLiteCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql)).then(\n\t\t\tonfulfilled,\n\t\t\tonrejected,\n\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => never | PromiseLike<never>) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,iBAA0C;AAKnC,MAAM,2BAEH,eAA2D;AAAA,EAsBpE,YACU,QAKR;AACD,UAAM,mBAAmB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN7E;AAQT,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,mBAAmB;AAAA,MAC7B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EApCQ;AAAA,EAER,QAA0B,wBAAU,IAAY;AAAA,EAChD,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,uCAAoC,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,sCAAmC,MAAM,GAAG,eAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC5F;AAAA,EAmBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EAAE;AAAA,MACpD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -10,7 +10,7 @@ export declare class SQLiteCountBuilder<TSession extends SQLiteSession<any, any,
10
10
  session: TSession;
11
11
  };
12
12
  private sql;
13
- static readonly [entityKind] = "SQLiteCountBuilderAsync";
13
+ static readonly [entityKind]: string;
14
14
  [Symbol.toStringTag]: string;
15
15
  private session;
16
16
  private static buildEmbeddedCount;
@@ -10,7 +10,7 @@ export declare class SQLiteCountBuilder<TSession extends SQLiteSession<any, any,
10
10
  session: TSession;
11
11
  };
12
12
  private sql;
13
- static readonly [entityKind] = "SQLiteCountBuilderAsync";
13
+ static readonly [entityKind]: string;
14
14
  [Symbol.toStringTag]: string;
15
15
  private session;
16
16
  private static buildEmbeddedCount;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteSession } from '../session.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport type { SQLiteView } from '../view.ts';\n\nexport class SQLiteCountBuilder<\n\tTSession extends SQLiteSession<any, any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind] = 'SQLiteCountBuilderAsync';\n\t[Symbol.toStringTag] = 'SQLiteCountBuilderAsync';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters}`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(SQLiteCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = SQLiteCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql)).then(\n\t\t\tonfulfilled,\n\t\t\tonrejected,\n\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => never | PromiseLike<never>) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,KAAK,WAA4B;AAKnC,MAAM,2BAEH,IAA2D;AAAA,EAsBpE,YACU,QAKR;AACD,UAAM,mBAAmB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN7E;AAQT,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,mBAAmB;AAAA,MAC7B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EApCQ;AAAA,EAER,QAA0B,UAAU,IAAI;AAAA,EACxC,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,4BAAoC,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,2BAAmC,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC5F;AAAA,EAmBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EAAE;AAAA,MACpD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/count.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteSession } from '../session.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport type { SQLiteView } from '../view.ts';\n\nexport class SQLiteCountBuilder<\n\tTSession extends SQLiteSession<any, any, any, any>,\n> extends SQL<number> implements Promise<number>, SQLWrapper<number> {\n\tprivate sql: SQL<number>;\n\n\tstatic override readonly [entityKind]: string = 'SQLiteCountBuilderAsync';\n\t[Symbol.toStringTag] = 'SQLiteCountBuilderAsync';\n\n\tprivate session: TSession;\n\n\tprivate static buildEmbeddedCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;\n\t}\n\n\tprivate static buildCount(\n\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t): SQL<number> {\n\t\treturn sql<number>`select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters}`;\n\t}\n\n\tconstructor(\n\t\treadonly params: {\n\t\t\tsource: SQLiteTable | SQLiteView | SQL | SQLWrapper;\n\t\t\tfilters?: SQL<unknown>;\n\t\t\tsession: TSession;\n\t\t},\n\t) {\n\t\tsuper(SQLiteCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);\n\n\t\tthis.session = params.session;\n\n\t\tthis.sql = SQLiteCountBuilder.buildCount(\n\t\t\tparams.source,\n\t\t\tparams.filters,\n\t\t);\n\t}\n\n\tthen<TResult1 = number, TResult2 = never>(\n\t\tonfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,\n\t\tonrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn Promise.resolve(this.session.count(this.sql)).then(\n\t\t\tonfulfilled,\n\t\t\tonrejected,\n\t\t);\n\t}\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => never | PromiseLike<never>) | null | undefined,\n\t): Promise<number> {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise<number> {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,KAAK,WAA4B;AAKnC,MAAM,2BAEH,IAA2D;AAAA,EAsBpE,YACU,QAKR;AACD,UAAM,mBAAmB,mBAAmB,OAAO,QAAQ,OAAO,OAAO,EAAE,WAAW;AAN7E;AAQT,SAAK,UAAU,OAAO;AAEtB,SAAK,MAAM,mBAAmB;AAAA,MAC7B,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EApCQ;AAAA,EAER,QAA0B,UAAU,IAAY;AAAA,EAChD,CAAC,OAAO,WAAW,IAAI;AAAA,EAEf;AAAA,EAER,OAAe,mBACd,QACA,SACc;AACd,WAAO,4BAAoC,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAe,WACd,QACA,SACc;AACd,WAAO,2BAAmC,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO;AAAA,EAC5F;AAAA,EAmBA,KACC,aACA,YAC+B;AAC/B,WAAO,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,GAAG,CAAC,EAAE;AAAA,MACpD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MACC,YACkB;AAClB,WAAO,KAAK,KAAK,QAAW,UAAU;AAAA,EACvC;AAAA,EAEA,QAAQ,WAA8D;AACrE,WAAO,KAAK;AAAA,MACX,CAAC,UAAU;AACV,oBAAY;AACZ,eAAO;AAAA,MACR;AAAA,MACA,CAAC,WAAW;AACX,oBAAY;AACZ,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { IndexColumn } from '~/sqlite-core/indexes.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table, TableColumns } from '~/table.ts';\nimport { type DrizzleTypeError, haveSameKeys, mapUpdateSet, orderSelectedFields, type Simplify } from '~/utils.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\nimport type { SQLiteUpdateSetSource } from './update.ts';\n\nexport interface SQLiteInsertConfig<TTable extends SQLiteTable = SQLiteTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | SQLiteInsertSelectQueryBuilder<TTable> | SQL;\n\twithList?: Subquery[];\n\tonConflict?: SQL[];\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type SQLiteInsertValue<\n\tTTable extends SQLiteTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> = Simplify<\n\t{\n\t\t[Key in keyof TModel]: TModel[Key] | SQL | Placeholder;\n\t}\n>;\n\nexport type SQLiteInsertSelectQueryBuilder<\n\tTTable extends SQLiteTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> = TypedQueryBuilder<\n\t{ [K in keyof TModel]: AnySQLiteColumn | SQL | SQL.Aliased | TModel[K] }\n>;\n\nexport class SQLiteInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteInsertBuilder';\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tvalues(value: SQLiteInsertValue<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(values: SQLiteInsertValue<TTable>[]): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(\n\t\tvalues: SQLiteInsertValue<TTable> | SQLiteInsertValue<TTable>[],\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record<string, Param | SQL> = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\t// if (mappedValues.length > 1 && mappedValues.some((t) => Object.keys(t).length === 0)) {\n\t\t// \tthrow new Error(\n\t\t// \t\t`One of the values you want to insert is empty. In SQLite you can insert only one empty object per statement. For this case Drizzle with use \"INSERT INTO ... DEFAULT VALUES\" syntax`,\n\t\t// \t);\n\t\t// }\n\n\t\treturn new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable>,\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQLiteInsertSelectQueryBuilder<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| SQLiteInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable> | SQL),\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[TableColumns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new SQLiteInsertBase(this.table, select, this.session, this.dialect, this.withList, true);\n\t}\n}\n\nexport type SQLiteInsertWithout<T extends AnySQLiteInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tSQLiteInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['resultType'],\n\t\t\t\tT['_']['runResult'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | K\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type SQLiteInsertReturning<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertReturningAll<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertOnConflictDoUpdateConfig<T extends AnySQLiteInsert> = {\n\ttarget: IndexColumn | IndexColumn[];\n\t/** @deprecated - use either `targetWhere` or `setWhere` */\n\twhere?: SQL;\n\t// TODO: add tests for targetWhere and setWhere\n\ttargetWhere?: SQL;\n\tsetWhere?: SQL;\n\tset: SQLiteUpdateSetSource<T['_']['table']>;\n};\n\nexport type SQLiteInsertDynamic<T extends AnySQLiteInsert> = SQLiteInsert<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteInsertExecute<T extends AnySQLiteInsert> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteInsertPrepare<T extends AnySQLiteInsert> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteInsertExecute<T>;\n\t}\n>;\n\nexport type AnySQLiteInsert = SQLiteInsertBase<any, any, any, any, any, any>;\n\nexport type SQLiteInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteInsertBase<TTable, TResultType, TRunResult, TReturning, true, never>;\n\nexport interface SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLWrapper,\n\tQueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>\n{\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteInsert';\n\n\t/** @internal */\n\tconfig: SQLiteInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SQLiteInsertConfig['values'],\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, withList, select };\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the inserted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#insert-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and return all fields\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t *\n\t * // Insert one row and return only the id\n\t * const insertedCarId: { id: number }[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning({ id: cars.id });\n\t * ```\n\t */\n\treturning(): SQLiteInsertReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFieldsFlat>(\n\t\tfields: TSelectedFields,\n\t): SQLiteInsertReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteInsertWithout<AnySQLiteInsert, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `on conflict do nothing` clause to the query.\n\t *\n\t * Calling this method simply avoids inserting a row as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t *\n\t * @param config The `target` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and cancel the insert if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing();\n\t *\n\t * // Explicitly specify conflict target\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing({ target: cars.id });\n\t * ```\n\t */\n\tonConflictDoNothing(config: { target?: IndexColumn | IndexColumn[]; where?: SQL } = {}): this {\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tif (config.target === undefined) {\n\t\t\tthis.config.onConflict.push(sql` on conflict do nothing`);\n\t\t} else {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict.push(sql` on conflict ${targetSql} do nothing${whereSql}`);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an `on conflict do update` clause to the query.\n\t *\n\t * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t *\n\t * @param config The `target`, `set` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Update the row if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'Porsche' }\n\t * });\n\t *\n\t * // Upsert with 'where' clause\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'newBMW' },\n\t * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t * });\n\t * ```\n\t */\n\tonConflictDoUpdate(config: SQLiteInsertOnConflictDoUpdateConfig<this>): this {\n\t\tif (config.where && (config.targetWhere || config.setWhere)) {\n\t\t\tthrow new Error(\n\t\t\t\t'You cannot use both \"where\" and \"targetWhere\"/\"setWhere\" at the same time - \"where\" is deprecated, use \"targetWhere\" or \"setWhere\" instead.',\n\t\t\t);\n\t\t}\n\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : undefined;\n\t\tconst targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : undefined;\n\t\tconst setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : undefined;\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict.push(\n\t\t\tsql` on conflict ${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`,\n\t\t);\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteInsertPrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteInsertPrepare<this>;\n\t}\n\n\tprepare(): SQLiteInsertPrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteInsertExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteInsertExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["import_table","import_utils"]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { IndexColumn } from '~/sqlite-core/indexes.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table, TableColumns } from '~/table.ts';\nimport { type DrizzleTypeError, haveSameKeys, mapUpdateSet, orderSelectedFields, type Simplify } from '~/utils.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\nimport type { SQLiteUpdateSetSource } from './update.ts';\n\nexport interface SQLiteInsertConfig<TTable extends SQLiteTable = SQLiteTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | SQLiteInsertSelectQueryBuilder<TTable> | SQL;\n\twithList?: Subquery[];\n\tonConflict?: SQL[];\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type SQLiteInsertValue<\n\tTTable extends SQLiteTable,\n\tTModel extends Record<string, any> = InferInsertModel<TTable>,\n> = Simplify<\n\t{\n\t\t[Key in keyof TModel]: TModel[Key] | SQL | Placeholder;\n\t}\n>;\n\nexport type SQLiteInsertSelectQueryBuilder<\n\tTTable extends SQLiteTable,\n\tTModel extends Record<string, any> = InferInsertModel<TTable>,\n> = TypedQueryBuilder<\n\t{ [K in keyof TModel]: AnySQLiteColumn | SQL | SQL.Aliased | TModel[K] }\n>;\n\nexport class SQLiteInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteInsertBuilder';\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tvalues(value: SQLiteInsertValue<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(values: SQLiteInsertValue<TTable>[]): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(\n\t\tvalues: SQLiteInsertValue<TTable> | SQLiteInsertValue<TTable>[],\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record<string, Param | SQL> = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\t// if (mappedValues.length > 1 && mappedValues.some((t) => Object.keys(t).length === 0)) {\n\t\t// \tthrow new Error(\n\t\t// \t\t`One of the values you want to insert is empty. In SQLite you can insert only one empty object per statement. For this case Drizzle with use \"INSERT INTO ... DEFAULT VALUES\" syntax`,\n\t\t// \t);\n\t\t// }\n\n\t\treturn new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable>,\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQLiteInsertSelectQueryBuilder<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| SQLiteInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable> | SQL),\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[TableColumns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new SQLiteInsertBase(this.table, select, this.session, this.dialect, this.withList, true);\n\t}\n}\n\nexport type SQLiteInsertWithout<T extends AnySQLiteInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tSQLiteInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['resultType'],\n\t\t\t\tT['_']['runResult'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | K\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type SQLiteInsertReturning<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertReturningAll<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertOnConflictDoUpdateConfig<T extends AnySQLiteInsert> = {\n\ttarget: IndexColumn | IndexColumn[];\n\t/** @deprecated - use either `targetWhere` or `setWhere` */\n\twhere?: SQL;\n\t// TODO: add tests for targetWhere and setWhere\n\ttargetWhere?: SQL;\n\tsetWhere?: SQL;\n\tset: SQLiteUpdateSetSource<T['_']['table']>;\n};\n\nexport type SQLiteInsertDynamic<T extends AnySQLiteInsert> = SQLiteInsert<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteInsertExecute<T extends AnySQLiteInsert> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteInsertPrepare<T extends AnySQLiteInsert> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteInsertExecute<T>;\n\t}\n>;\n\nexport type AnySQLiteInsert = SQLiteInsertBase<any, any, any, any, any, any>;\n\nexport type SQLiteInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteInsertBase<TTable, TResultType, TRunResult, TReturning, true, never>;\n\nexport interface SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLWrapper,\n\tQueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>\n{\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteInsert';\n\n\t/** @internal */\n\tconfig: SQLiteInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SQLiteInsertConfig['values'],\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, withList, select };\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the inserted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#insert-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and return all fields\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t *\n\t * // Insert one row and return only the id\n\t * const insertedCarId: { id: number }[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning({ id: cars.id });\n\t * ```\n\t */\n\treturning(): SQLiteInsertReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFieldsFlat>(\n\t\tfields: TSelectedFields,\n\t): SQLiteInsertReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteInsertWithout<AnySQLiteInsert, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `on conflict do nothing` clause to the query.\n\t *\n\t * Calling this method simply avoids inserting a row as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t *\n\t * @param config The `target` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and cancel the insert if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing();\n\t *\n\t * // Explicitly specify conflict target\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing({ target: cars.id });\n\t * ```\n\t */\n\tonConflictDoNothing(config: { target?: IndexColumn | IndexColumn[]; where?: SQL } = {}): this {\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tif (config.target === undefined) {\n\t\t\tthis.config.onConflict.push(sql` on conflict do nothing`);\n\t\t} else {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict.push(sql` on conflict ${targetSql} do nothing${whereSql}`);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an `on conflict do update` clause to the query.\n\t *\n\t * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t *\n\t * @param config The `target`, `set` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Update the row if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'Porsche' }\n\t * });\n\t *\n\t * // Upsert with 'where' clause\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'newBMW' },\n\t * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t * });\n\t * ```\n\t */\n\tonConflictDoUpdate(config: SQLiteInsertOnConflictDoUpdateConfig<this>): this {\n\t\tif (config.where && (config.targetWhere || config.setWhere)) {\n\t\t\tthrow new Error(\n\t\t\t\t'You cannot use both \"where\" and \"targetWhere\"/\"setWhere\" at the same time - \"where\" is deprecated, use \"targetWhere\" or \"setWhere\" instead.',\n\t\t\t);\n\t\t}\n\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : undefined;\n\t\tconst targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : undefined;\n\t\tconst setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : undefined;\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict.push(\n\t\t\tsql` on conflict ${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`,\n\t\t);\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteInsertPrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteInsertPrepare<this>;\n\t}\n\n\tprepare(): SQLiteInsertPrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteInsertExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteInsertExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAG/B,2BAA6B;AAG7B,iBAAgC;AAIhC,mBAA4B;AAE5B,IAAAA,gBAA2D;AAC3D,mBAAsG;AAEtG,IAAAC,gBAAiC;AACjC,2BAA6B;AA6BtB,MAAM,oBAIX;AAAA,EAGD,YACW,OACA,SACA,SACF,UACP;AAJS;AACA;AACA;AACF;AAAA,EACN;AAAA,EAPH,QAAiB,wBAAU,IAAY;AAAA,EAWvC,OACC,QACoD;AACpD,aAAS,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AACjD,QAAI,OAAO,WAAW,GAAG;AACxB,YAAM,IAAI,MAAM,iDAAiD;AAAA,IAClE;AACA,UAAM,eAAe,OAAO,IAAI,CAAC,UAAU;AAC1C,YAAM,SAAsC,CAAC;AAC7C,YAAM,OAAO,KAAK,MAAM,oBAAM,OAAO,OAAO;AAC5C,iBAAW,UAAU,OAAO,KAAK,KAAK,GAAG;AACxC,cAAM,WAAW,MAAM,MAA4B;AACnD,eAAO,MAAM,QAAI,kBAAG,UAAU,cAAG,IAAI,WAAW,IAAI,iBAAM,UAAU,KAAK,MAAM,CAAC;AAAA,MACjF;AACA,aAAO;AAAA,IACR,CAAC;AAQD,WAAO,IAAI,iBAAiB,KAAK,OAAO,cAAc,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ;AAAA,EAChG;AAAA,EAQA,OACC,aAIoD;AACpD,UAAM,SAAS,OAAO,gBAAgB,aAAa,YAAY,IAAI,kCAAa,CAAC,IAAI;AAErF,QACC,KAAC,kBAAG,QAAQ,cAAG,KACZ,KAAC,2BAAa,KAAK,MAAM,0BAAY,GAAG,OAAO,EAAE,cAAc,GACjE;AACD,YAAM,IAAI;AAAA,QACT;AAAA,MACD;AAAA,IACD;AAEA,WAAO,IAAI,iBAAiB,KAAK,OAAO,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,UAAU,IAAI;AAAA,EAChG;AACD;AAoHO,MAAM,yBAUH,kCAEV;AAAA,EAMC,YACC,OACA,QACQ,SACA,SACR,UACA,QACC;AACD,UAAM;AALE;AACA;AAKR,SAAK,SAAS,EAAE,OAAO,QAAuB,UAAU,OAAO;AAAA,EAChE;AAAA,EAfA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD;AAAA,EAsCA,UACC,SAA6B,KAAK,OAAO,MAAM,yBAAY,OAAO,OAAO,GACX;AAC9D,SAAK,OAAO,gBAAY,kCAAkC,MAAM;AAChE,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBA,oBAAoB,SAAgE,CAAC,GAAS;AAC7F,QAAI,CAAC,KAAK,OAAO,WAAY,MAAK,OAAO,aAAa,CAAC;AAEvD,QAAI,OAAO,WAAW,QAAW;AAChC,WAAK,OAAO,WAAW,KAAK,uCAA4B;AAAA,IACzD,OAAO;AACN,YAAM,YAAY,MAAM,QAAQ,OAAO,MAAM,IAAI,iBAAM,OAAO,MAAM,KAAK,iBAAM,CAAC,OAAO,MAAM,CAAC;AAC9F,YAAM,WAAW,OAAO,QAAQ,wBAAa,OAAO,KAAK,KAAK;AAC9D,WAAK,OAAO,WAAW,KAAK,8BAAmB,SAAS,cAAc,QAAQ,EAAE;AAAA,IACjF;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BA,mBAAmB,QAA0D;AAC5E,QAAI,OAAO,UAAU,OAAO,eAAe,OAAO,WAAW;AAC5D,YAAM,IAAI;AAAA,QACT;AAAA,MACD;AAAA,IACD;AAEA,QAAI,CAAC,KAAK,OAAO,WAAY,MAAK,OAAO,aAAa,CAAC;AAEvD,UAAM,WAAW,OAAO,QAAQ,wBAAa,OAAO,KAAK,KAAK;AAC9D,UAAM,iBAAiB,OAAO,cAAc,wBAAa,OAAO,WAAW,KAAK;AAChF,UAAM,cAAc,OAAO,WAAW,wBAAa,OAAO,QAAQ,KAAK;AACvE,UAAM,YAAY,MAAM,QAAQ,OAAO,MAAM,IAAI,iBAAM,OAAO,MAAM,KAAK,iBAAM,CAAC,OAAO,MAAM,CAAC;AAC9F,UAAM,SAAS,KAAK,QAAQ,eAAe,KAAK,OAAO,WAAO,2BAAa,KAAK,OAAO,OAAO,OAAO,GAAG,CAAC;AACzG,SAAK,OAAO,WAAW;AAAA,MACtB,8BAAmB,SAAS,GAAG,cAAc,kBAAkB,MAAM,GAAG,QAAQ,GAAG,WAAW;AAAA,IAC/F;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAS,iBAAiB,MAAiC;AAC1D,WAAO,KAAK,QAAQ,iBAAiB,wBAAwB,cAAc;AAAA,MAC1E,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO,YAAY,QAAQ;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,YAAQ,gCAAiB,KAAK,OAAO,KAAK;AAAA,MAC3C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UAAqC;AACpC,WAAO,KAAK,SAAS,KAAK;AAAA,EAC3B;AAAA,EAEA,MAA0C,CAAC,sBAAsB;AAChE,WAAO,KAAK,SAAS,EAAE,IAAI,iBAAiB;AAAA,EAC7C;AAAA,EAEA,MAA0C,CAAC,sBAAsB;AAChE,WAAO,KAAK,SAAS,EAAE,IAAI,iBAAiB;AAAA,EAC7C;AAAA,EAEA,MAA0C,CAAC,sBAAsB;AAChE,WAAO,KAAK,SAAS,EAAE,IAAI,iBAAiB;AAAA,EAC7C;AAAA,EAEA,SAAgD,CAAC,sBAAsB;AACtE,WAAO,KAAK,SAAS,EAAE,OAAO,iBAAiB;AAAA,EAChD;AAAA,EAEA,MAAe,UAA8C;AAC5D,WAAQ,KAAK,OAAO,YAAY,KAAK,IAAI,IAAI,KAAK,IAAI;AAAA,EACvD;AAAA,EAEA,WAAsC;AACrC,WAAO;AAAA,EACR;AACD;","names":["import_table","import_utils"]}
@@ -24,10 +24,10 @@ export interface SQLiteInsertConfig<TTable extends SQLiteTable = SQLiteTable> {
24
24
  returning?: SelectedFieldsOrdered;
25
25
  select?: boolean;
26
26
  }
27
- export type SQLiteInsertValue<TTable extends SQLiteTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = Simplify<{
27
+ export type SQLiteInsertValue<TTable extends SQLiteTable, TModel extends Record<string, any> = InferInsertModel<TTable>> = Simplify<{
28
28
  [Key in keyof TModel]: TModel[Key] | SQL | Placeholder;
29
29
  }>;
30
- export type SQLiteInsertSelectQueryBuilder<TTable extends SQLiteTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = TypedQueryBuilder<{
30
+ export type SQLiteInsertSelectQueryBuilder<TTable extends SQLiteTable, TModel extends Record<string, any> = InferInsertModel<TTable>> = TypedQueryBuilder<{
31
31
  [K in keyof TModel]: AnySQLiteColumn | SQL | SQL.Aliased | TModel[K];
32
32
  }>;
33
33
  export declare class SQLiteInsertBuilder<TTable extends SQLiteTable, TResultType extends 'sync' | 'async', TRunResult> {
@@ -24,10 +24,10 @@ export interface SQLiteInsertConfig<TTable extends SQLiteTable = SQLiteTable> {
24
24
  returning?: SelectedFieldsOrdered;
25
25
  select?: boolean;
26
26
  }
27
- export type SQLiteInsertValue<TTable extends SQLiteTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = Simplify<{
27
+ export type SQLiteInsertValue<TTable extends SQLiteTable, TModel extends Record<string, any> = InferInsertModel<TTable>> = Simplify<{
28
28
  [Key in keyof TModel]: TModel[Key] | SQL | Placeholder;
29
29
  }>;
30
- export type SQLiteInsertSelectQueryBuilder<TTable extends SQLiteTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = TypedQueryBuilder<{
30
+ export type SQLiteInsertSelectQueryBuilder<TTable extends SQLiteTable, TModel extends Record<string, any> = InferInsertModel<TTable>> = TypedQueryBuilder<{
31
31
  [K in keyof TModel]: AnySQLiteColumn | SQL | SQL.Aliased | TModel[K];
32
32
  }>;
33
33
  export declare class SQLiteInsertBuilder<TTable extends SQLiteTable, TResultType extends 'sync' | 'async', TRunResult> {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { IndexColumn } from '~/sqlite-core/indexes.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table, TableColumns } from '~/table.ts';\nimport { type DrizzleTypeError, haveSameKeys, mapUpdateSet, orderSelectedFields, type Simplify } from '~/utils.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\nimport type { SQLiteUpdateSetSource } from './update.ts';\n\nexport interface SQLiteInsertConfig<TTable extends SQLiteTable = SQLiteTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | SQLiteInsertSelectQueryBuilder<TTable> | SQL;\n\twithList?: Subquery[];\n\tonConflict?: SQL[];\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type SQLiteInsertValue<\n\tTTable extends SQLiteTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> = Simplify<\n\t{\n\t\t[Key in keyof TModel]: TModel[Key] | SQL | Placeholder;\n\t}\n>;\n\nexport type SQLiteInsertSelectQueryBuilder<\n\tTTable extends SQLiteTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> = TypedQueryBuilder<\n\t{ [K in keyof TModel]: AnySQLiteColumn | SQL | SQL.Aliased | TModel[K] }\n>;\n\nexport class SQLiteInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteInsertBuilder';\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tvalues(value: SQLiteInsertValue<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(values: SQLiteInsertValue<TTable>[]): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(\n\t\tvalues: SQLiteInsertValue<TTable> | SQLiteInsertValue<TTable>[],\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record<string, Param | SQL> = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\t// if (mappedValues.length > 1 && mappedValues.some((t) => Object.keys(t).length === 0)) {\n\t\t// \tthrow new Error(\n\t\t// \t\t`One of the values you want to insert is empty. In SQLite you can insert only one empty object per statement. For this case Drizzle with use \"INSERT INTO ... DEFAULT VALUES\" syntax`,\n\t\t// \t);\n\t\t// }\n\n\t\treturn new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable>,\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQLiteInsertSelectQueryBuilder<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| SQLiteInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable> | SQL),\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[TableColumns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new SQLiteInsertBase(this.table, select, this.session, this.dialect, this.withList, true);\n\t}\n}\n\nexport type SQLiteInsertWithout<T extends AnySQLiteInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tSQLiteInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['resultType'],\n\t\t\t\tT['_']['runResult'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | K\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type SQLiteInsertReturning<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertReturningAll<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertOnConflictDoUpdateConfig<T extends AnySQLiteInsert> = {\n\ttarget: IndexColumn | IndexColumn[];\n\t/** @deprecated - use either `targetWhere` or `setWhere` */\n\twhere?: SQL;\n\t// TODO: add tests for targetWhere and setWhere\n\ttargetWhere?: SQL;\n\tsetWhere?: SQL;\n\tset: SQLiteUpdateSetSource<T['_']['table']>;\n};\n\nexport type SQLiteInsertDynamic<T extends AnySQLiteInsert> = SQLiteInsert<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteInsertExecute<T extends AnySQLiteInsert> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteInsertPrepare<T extends AnySQLiteInsert> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteInsertExecute<T>;\n\t}\n>;\n\nexport type AnySQLiteInsert = SQLiteInsertBase<any, any, any, any, any, any>;\n\nexport type SQLiteInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteInsertBase<TTable, TResultType, TRunResult, TReturning, true, never>;\n\nexport interface SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLWrapper,\n\tQueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>\n{\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteInsert';\n\n\t/** @internal */\n\tconfig: SQLiteInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SQLiteInsertConfig['values'],\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, withList, select };\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the inserted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#insert-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and return all fields\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t *\n\t * // Insert one row and return only the id\n\t * const insertedCarId: { id: number }[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning({ id: cars.id });\n\t * ```\n\t */\n\treturning(): SQLiteInsertReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFieldsFlat>(\n\t\tfields: TSelectedFields,\n\t): SQLiteInsertReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteInsertWithout<AnySQLiteInsert, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `on conflict do nothing` clause to the query.\n\t *\n\t * Calling this method simply avoids inserting a row as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t *\n\t * @param config The `target` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and cancel the insert if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing();\n\t *\n\t * // Explicitly specify conflict target\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing({ target: cars.id });\n\t * ```\n\t */\n\tonConflictDoNothing(config: { target?: IndexColumn | IndexColumn[]; where?: SQL } = {}): this {\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tif (config.target === undefined) {\n\t\t\tthis.config.onConflict.push(sql` on conflict do nothing`);\n\t\t} else {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict.push(sql` on conflict ${targetSql} do nothing${whereSql}`);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an `on conflict do update` clause to the query.\n\t *\n\t * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t *\n\t * @param config The `target`, `set` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Update the row if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'Porsche' }\n\t * });\n\t *\n\t * // Upsert with 'where' clause\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'newBMW' },\n\t * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t * });\n\t * ```\n\t */\n\tonConflictDoUpdate(config: SQLiteInsertOnConflictDoUpdateConfig<this>): this {\n\t\tif (config.where && (config.targetWhere || config.setWhere)) {\n\t\t\tthrow new Error(\n\t\t\t\t'You cannot use both \"where\" and \"targetWhere\"/\"setWhere\" at the same time - \"where\" is deprecated, use \"targetWhere\" or \"setWhere\" instead.',\n\t\t\t);\n\t\t}\n\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : undefined;\n\t\tconst targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : undefined;\n\t\tconst setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : undefined;\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict.push(\n\t\t\tsql` on conflict ${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`,\n\t\t);\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteInsertPrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteInsertPrepare<this>;\n\t}\n\n\tprepare(): SQLiteInsertPrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteInsertExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteInsertExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { IndexColumn } from '~/sqlite-core/indexes.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table, TableColumns } from '~/table.ts';\nimport { type DrizzleTypeError, haveSameKeys, mapUpdateSet, orderSelectedFields, type Simplify } from '~/utils.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\nimport type { SQLiteUpdateSetSource } from './update.ts';\n\nexport interface SQLiteInsertConfig<TTable extends SQLiteTable = SQLiteTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | SQLiteInsertSelectQueryBuilder<TTable> | SQL;\n\twithList?: Subquery[];\n\tonConflict?: SQL[];\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type SQLiteInsertValue<\n\tTTable extends SQLiteTable,\n\tTModel extends Record<string, any> = InferInsertModel<TTable>,\n> = Simplify<\n\t{\n\t\t[Key in keyof TModel]: TModel[Key] | SQL | Placeholder;\n\t}\n>;\n\nexport type SQLiteInsertSelectQueryBuilder<\n\tTTable extends SQLiteTable,\n\tTModel extends Record<string, any> = InferInsertModel<TTable>,\n> = TypedQueryBuilder<\n\t{ [K in keyof TModel]: AnySQLiteColumn | SQL | SQL.Aliased | TModel[K] }\n>;\n\nexport class SQLiteInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteInsertBuilder';\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tvalues(value: SQLiteInsertValue<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(values: SQLiteInsertValue<TTable>[]): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tvalues(\n\t\tvalues: SQLiteInsertValue<TTable> | SQLiteInsertValue<TTable>[],\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record<string, Param | SQL> = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\t// if (mappedValues.length > 1 && mappedValues.some((t) => Object.keys(t).length === 0)) {\n\t\t// \tthrow new Error(\n\t\t// \t\t`One of the values you want to insert is empty. In SQLite you can insert only one empty object per statement. For this case Drizzle with use \"INSERT INTO ... DEFAULT VALUES\" syntax`,\n\t\t// \t);\n\t\t// }\n\n\t\treturn new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable>,\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQL): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(selectQuery: SQLiteInsertSelectQueryBuilder<TTable>): SQLiteInsertBase<TTable, TResultType, TRunResult>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| SQLiteInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => SQLiteInsertSelectQueryBuilder<TTable> | SQL),\n\t): SQLiteInsertBase<TTable, TResultType, TRunResult> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[TableColumns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new SQLiteInsertBase(this.table, select, this.session, this.dialect, this.withList, true);\n\t}\n}\n\nexport type SQLiteInsertWithout<T extends AnySQLiteInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tSQLiteInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['resultType'],\n\t\t\t\tT['_']['runResult'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | K\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type SQLiteInsertReturning<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertReturningAll<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertOnConflictDoUpdateConfig<T extends AnySQLiteInsert> = {\n\ttarget: IndexColumn | IndexColumn[];\n\t/** @deprecated - use either `targetWhere` or `setWhere` */\n\twhere?: SQL;\n\t// TODO: add tests for targetWhere and setWhere\n\ttargetWhere?: SQL;\n\tsetWhere?: SQL;\n\tset: SQLiteUpdateSetSource<T['_']['table']>;\n};\n\nexport type SQLiteInsertDynamic<T extends AnySQLiteInsert> = SQLiteInsert<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteInsertExecute<T extends AnySQLiteInsert> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteInsertPrepare<T extends AnySQLiteInsert> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteInsertExecute<T>;\n\t}\n>;\n\nexport type AnySQLiteInsert = SQLiteInsertBase<any, any, any, any, any, any>;\n\nexport type SQLiteInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteInsertBase<TTable, TResultType, TRunResult, TReturning, true, never>;\n\nexport interface SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLWrapper,\n\tQueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>\n{\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteInsert';\n\n\t/** @internal */\n\tconfig: SQLiteInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SQLiteInsertConfig['values'],\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, withList, select };\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the inserted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#insert-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and return all fields\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t *\n\t * // Insert one row and return only the id\n\t * const insertedCarId: { id: number }[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning({ id: cars.id });\n\t * ```\n\t */\n\treturning(): SQLiteInsertReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFieldsFlat>(\n\t\tfields: TSelectedFields,\n\t): SQLiteInsertReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteInsertWithout<AnySQLiteInsert, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `on conflict do nothing` clause to the query.\n\t *\n\t * Calling this method simply avoids inserting a row as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t *\n\t * @param config The `target` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and cancel the insert if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing();\n\t *\n\t * // Explicitly specify conflict target\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing({ target: cars.id });\n\t * ```\n\t */\n\tonConflictDoNothing(config: { target?: IndexColumn | IndexColumn[]; where?: SQL } = {}): this {\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tif (config.target === undefined) {\n\t\t\tthis.config.onConflict.push(sql` on conflict do nothing`);\n\t\t} else {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict.push(sql` on conflict ${targetSql} do nothing${whereSql}`);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an `on conflict do update` clause to the query.\n\t *\n\t * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t *\n\t * @param config The `target`, `set` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Update the row if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'Porsche' }\n\t * });\n\t *\n\t * // Upsert with 'where' clause\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'newBMW' },\n\t * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t * });\n\t * ```\n\t */\n\tonConflictDoUpdate(config: SQLiteInsertOnConflictDoUpdateConfig<this>): this {\n\t\tif (config.where && (config.targetWhere || config.setWhere)) {\n\t\t\tthrow new Error(\n\t\t\t\t'You cannot use both \"where\" and \"targetWhere\"/\"setWhere\" at the same time - \"where\" is deprecated, use \"targetWhere\" or \"setWhere\" instead.',\n\t\t\t);\n\t\t}\n\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : undefined;\n\t\tconst targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : undefined;\n\t\tconst setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : undefined;\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict.push(\n\t\t\tsql` on conflict ${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`,\n\t\t);\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteInsertPrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteInsertPrepare<this>;\n\t}\n\n\tprepare(): SQLiteInsertPrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteInsertExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteInsertExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { JoinType, SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table } from '~/table.ts';\nimport {\n\ttype DrizzleTypeError,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\torderSelectedFields,\n\ttype UpdateSet,\n\ttype ValueOrArray,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { SQLiteViewBase } from '../view-base.ts';\nimport type { SelectedFields, SelectedFieldsOrdered, SQLiteSelectJoinConfig } from './select.types.ts';\n\nexport interface SQLiteUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (SQLiteColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: SQLiteTable;\n\tfrom?: SQLiteTable | Subquery | SQLiteViewBase | SQL;\n\tjoins: SQLiteSelectJoinConfig[];\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteUpdateSetSource<\n\tTTable extends SQLiteTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> =\n\t& {\n\t\t[Key in keyof TModel & string]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL\n\t\t\t| SQLiteColumn\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class SQLiteUpdateBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(\n\t\tvalues: SQLiteUpdateSetSource<TTable>,\n\t): SQLiteUpdateWithout<\n\t\tSQLiteUpdateBase<TTable, TResultType, TRunResult>,\n\t\tfalse,\n\t\t'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'\n\t> {\n\t\treturn new SQLiteUpdateBase(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t) as any;\n\t}\n}\n\nexport type SQLiteUpdateWithout<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type SQLiteUpdateWithJoins<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tTFrom,\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type SQLiteUpdateReturningAll<T extends AnySQLiteUpdate, TDynamic extends boolean> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateReturning<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateExecute<T extends AnySQLiteUpdate> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteUpdatePrepare<T extends AnySQLiteUpdate> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteUpdateExecute<T>;\n\t}\n>;\n\nexport type SQLiteUpdateJoinFn<\n\tT extends AnySQLiteUpdate,\n> = <\n\tTJoinedTable extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n>(\n\ttable: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends SQLiteTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | SQLiteViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => T;\n\nexport type SQLiteUpdateDynamic<T extends AnySQLiteUpdate> = SQLiteUpdate<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteUpdate<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = any,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = SQLiteUpdateBase<TTable, TResultType, TRunResult, TFrom, TReturning, true, never>;\n\nexport type AnySQLiteUpdate = SQLiteUpdateBase<any, any, any, any, any, any, any>;\n\nexport interface SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends SQLWrapper, QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]> {\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly from: TFrom;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteUpdate';\n\n\t/** @internal */\n\tconfig: SQLiteUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t}\n\n\tfrom<TFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL>(\n\t\tsource: TFrom,\n\t): SQLiteUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tthis.config.from = source;\n\t\treturn this as any;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): SQLiteUpdateJoinFn<this> {\n\t\treturn ((\n\t\t\ttable: SQLiteTable | Subquery | SQLiteViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from\n\t\t\t\t\t? is(table, SQLiteTable)\n\t\t\t\t\t\t? table[Table.Symbol.Columns]\n\t\t\t\t\t\t: is(table, Subquery)\n\t\t\t\t\t\t? table._.selectedFields\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].selectedFields\n\t\t\t\t\t\t: undefined\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>,\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (SQLiteColumn | SQL | SQL.Aliased)[]): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): SQLiteUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): SQLiteUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFields = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteUpdateWithout<AnySQLiteUpdate, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteUpdatePrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteUpdatePrepare<this>;\n\t}\n\n\tprepare(): SQLiteUpdatePrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteUpdateExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteUpdateExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["import_table","import_utils"]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { JoinType, SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table } from '~/table.ts';\nimport {\n\ttype DrizzleTypeError,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\torderSelectedFields,\n\ttype UpdateSet,\n\ttype ValueOrArray,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { SQLiteViewBase } from '../view-base.ts';\nimport type { SelectedFields, SelectedFieldsOrdered, SQLiteSelectJoinConfig } from './select.types.ts';\n\nexport interface SQLiteUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (SQLiteColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: SQLiteTable;\n\tfrom?: SQLiteTable | Subquery | SQLiteViewBase | SQL;\n\tjoins: SQLiteSelectJoinConfig[];\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteUpdateSetSource<\n\tTTable extends SQLiteTable,\n\tTModel extends Record<string, any> = InferInsertModel<TTable>,\n> =\n\t& {\n\t\t[Key in keyof TModel & string]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL\n\t\t\t| SQLiteColumn\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class SQLiteUpdateBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(\n\t\tvalues: SQLiteUpdateSetSource<TTable>,\n\t): SQLiteUpdateWithout<\n\t\tSQLiteUpdateBase<TTable, TResultType, TRunResult>,\n\t\tfalse,\n\t\t'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'\n\t> {\n\t\treturn new SQLiteUpdateBase(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t) as any;\n\t}\n}\n\nexport type SQLiteUpdateWithout<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type SQLiteUpdateWithJoins<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tTFrom,\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type SQLiteUpdateReturningAll<T extends AnySQLiteUpdate, TDynamic extends boolean> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateReturning<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateExecute<T extends AnySQLiteUpdate> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteUpdatePrepare<T extends AnySQLiteUpdate> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteUpdateExecute<T>;\n\t}\n>;\n\nexport type SQLiteUpdateJoinFn<\n\tT extends AnySQLiteUpdate,\n> = <\n\tTJoinedTable extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n>(\n\ttable: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends SQLiteTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | SQLiteViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => T;\n\nexport type SQLiteUpdateDynamic<T extends AnySQLiteUpdate> = SQLiteUpdate<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteUpdate<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = any,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = SQLiteUpdateBase<TTable, TResultType, TRunResult, TFrom, TReturning, true, never>;\n\nexport type AnySQLiteUpdate = SQLiteUpdateBase<any, any, any, any, any, any, any>;\n\nexport interface SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends SQLWrapper, QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]> {\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly from: TFrom;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteUpdate';\n\n\t/** @internal */\n\tconfig: SQLiteUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t}\n\n\tfrom<TFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL>(\n\t\tsource: TFrom,\n\t): SQLiteUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tthis.config.from = source;\n\t\treturn this as any;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): SQLiteUpdateJoinFn<this> {\n\t\treturn ((\n\t\t\ttable: SQLiteTable | Subquery | SQLiteViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from\n\t\t\t\t\t? is(table, SQLiteTable)\n\t\t\t\t\t\t? table[Table.Symbol.Columns]\n\t\t\t\t\t\t: is(table, Subquery)\n\t\t\t\t\t\t? table._.selectedFields\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].selectedFields\n\t\t\t\t\t\t: undefined\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>,\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (SQLiteColumn | SQL | SQL.Aliased)[]): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): SQLiteUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): SQLiteUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFields = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteUpdateWithout<AnySQLiteUpdate, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteUpdatePrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteUpdatePrepare<this>;\n\t}\n\n\tprepare(): SQLiteUpdatePrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteUpdateExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteUpdateExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["import_table","import_utils"]}
@@ -24,7 +24,7 @@ export interface SQLiteUpdateConfig {
24
24
  returning?: SelectedFieldsOrdered;
25
25
  withList?: Subquery[];
26
26
  }
27
- export type SQLiteUpdateSetSource<TTable extends SQLiteTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = {
27
+ export type SQLiteUpdateSetSource<TTable extends SQLiteTable, TModel extends Record<string, any> = InferInsertModel<TTable>> = {
28
28
  [Key in keyof TModel & string]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL | SQLiteColumn | undefined;
29
29
  } & {};
30
30
  export declare class SQLiteUpdateBuilder<TTable extends SQLiteTable, TResultType extends 'sync' | 'async', TRunResult> {
@@ -24,7 +24,7 @@ export interface SQLiteUpdateConfig {
24
24
  returning?: SelectedFieldsOrdered;
25
25
  withList?: Subquery[];
26
26
  }
27
- export type SQLiteUpdateSetSource<TTable extends SQLiteTable, TModel extends InferInsertModel<TTable> = InferInsertModel<TTable>> = {
27
+ export type SQLiteUpdateSetSource<TTable extends SQLiteTable, TModel extends Record<string, any> = InferInsertModel<TTable>> = {
28
28
  [Key in keyof TModel & string]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL | SQLiteColumn | undefined;
29
29
  } & {};
30
30
  export declare class SQLiteUpdateBuilder<TTable extends SQLiteTable, TResultType extends 'sync' | 'async', TRunResult> {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { JoinType, SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table } from '~/table.ts';\nimport {\n\ttype DrizzleTypeError,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\torderSelectedFields,\n\ttype UpdateSet,\n\ttype ValueOrArray,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { SQLiteViewBase } from '../view-base.ts';\nimport type { SelectedFields, SelectedFieldsOrdered, SQLiteSelectJoinConfig } from './select.types.ts';\n\nexport interface SQLiteUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (SQLiteColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: SQLiteTable;\n\tfrom?: SQLiteTable | Subquery | SQLiteViewBase | SQL;\n\tjoins: SQLiteSelectJoinConfig[];\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteUpdateSetSource<\n\tTTable extends SQLiteTable,\n\tTModel extends InferInsertModel<TTable> = InferInsertModel<TTable>,\n> =\n\t& {\n\t\t[Key in keyof TModel & string]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL\n\t\t\t| SQLiteColumn\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class SQLiteUpdateBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(\n\t\tvalues: SQLiteUpdateSetSource<TTable>,\n\t): SQLiteUpdateWithout<\n\t\tSQLiteUpdateBase<TTable, TResultType, TRunResult>,\n\t\tfalse,\n\t\t'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'\n\t> {\n\t\treturn new SQLiteUpdateBase(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t) as any;\n\t}\n}\n\nexport type SQLiteUpdateWithout<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type SQLiteUpdateWithJoins<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tTFrom,\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type SQLiteUpdateReturningAll<T extends AnySQLiteUpdate, TDynamic extends boolean> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateReturning<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateExecute<T extends AnySQLiteUpdate> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteUpdatePrepare<T extends AnySQLiteUpdate> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteUpdateExecute<T>;\n\t}\n>;\n\nexport type SQLiteUpdateJoinFn<\n\tT extends AnySQLiteUpdate,\n> = <\n\tTJoinedTable extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n>(\n\ttable: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends SQLiteTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | SQLiteViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => T;\n\nexport type SQLiteUpdateDynamic<T extends AnySQLiteUpdate> = SQLiteUpdate<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteUpdate<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = any,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = SQLiteUpdateBase<TTable, TResultType, TRunResult, TFrom, TReturning, true, never>;\n\nexport type AnySQLiteUpdate = SQLiteUpdateBase<any, any, any, any, any, any, any>;\n\nexport interface SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends SQLWrapper, QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]> {\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly from: TFrom;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteUpdate';\n\n\t/** @internal */\n\tconfig: SQLiteUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t}\n\n\tfrom<TFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL>(\n\t\tsource: TFrom,\n\t): SQLiteUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tthis.config.from = source;\n\t\treturn this as any;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): SQLiteUpdateJoinFn<this> {\n\t\treturn ((\n\t\t\ttable: SQLiteTable | Subquery | SQLiteViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from\n\t\t\t\t\t? is(table, SQLiteTable)\n\t\t\t\t\t\t? table[Table.Symbol.Columns]\n\t\t\t\t\t\t: is(table, Subquery)\n\t\t\t\t\t\t? table._.selectedFields\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].selectedFields\n\t\t\t\t\t\t: undefined\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>,\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (SQLiteColumn | SQL | SQL.Aliased)[]): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): SQLiteUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): SQLiteUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFields = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteUpdateWithout<AnySQLiteUpdate, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteUpdatePrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteUpdatePrepare<this>;\n\t}\n\n\tprepare(): SQLiteUpdatePrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteUpdateExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteUpdateExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { JoinType, SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { type InferInsertModel, Table } from '~/table.ts';\nimport {\n\ttype DrizzleTypeError,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\torderSelectedFields,\n\ttype UpdateSet,\n\ttype ValueOrArray,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { SQLiteViewBase } from '../view-base.ts';\nimport type { SelectedFields, SelectedFieldsOrdered, SQLiteSelectJoinConfig } from './select.types.ts';\n\nexport interface SQLiteUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (SQLiteColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: SQLiteTable;\n\tfrom?: SQLiteTable | Subquery | SQLiteViewBase | SQL;\n\tjoins: SQLiteSelectJoinConfig[];\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteUpdateSetSource<\n\tTTable extends SQLiteTable,\n\tTModel extends Record<string, any> = InferInsertModel<TTable>,\n> =\n\t& {\n\t\t[Key in keyof TModel & string]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL\n\t\t\t| SQLiteColumn\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class SQLiteUpdateBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession<any, any, any, any, any>,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(\n\t\tvalues: SQLiteUpdateSetSource<TTable>,\n\t): SQLiteUpdateWithout<\n\t\tSQLiteUpdateBase<TTable, TResultType, TRunResult>,\n\t\tfalse,\n\t\t'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'\n\t> {\n\t\treturn new SQLiteUpdateBase(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t) as any;\n\t}\n}\n\nexport type SQLiteUpdateWithout<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type SQLiteUpdateWithJoins<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tTFrom,\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type SQLiteUpdateReturningAll<T extends AnySQLiteUpdate, TDynamic extends boolean> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateReturning<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['from'],\n\t\tSelectResultFields<TSelectedFields>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateExecute<T extends AnySQLiteUpdate> = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteUpdatePrepare<T extends AnySQLiteUpdate> = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteUpdateExecute<T>;\n\t}\n>;\n\nexport type SQLiteUpdateJoinFn<\n\tT extends AnySQLiteUpdate,\n> = <\n\tTJoinedTable extends SQLiteTable | Subquery | SQLiteViewBase | SQL,\n>(\n\ttable: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends SQLiteTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | SQLiteViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => T;\n\nexport type SQLiteUpdateDynamic<T extends AnySQLiteUpdate> = SQLiteUpdate<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteUpdate<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = any,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = SQLiteUpdateBase<TTable, TResultType, TRunResult, TFrom, TReturning, true, never>;\n\nexport type AnySQLiteUpdate = SQLiteUpdateBase<any, any, any, any, any, any, any>;\n\nexport interface SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends SQLWrapper, QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]> {\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly from: TFrom;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL | undefined = undefined,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n\timplements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteUpdate';\n\n\t/** @internal */\n\tconfig: SQLiteUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: SQLiteSession<any, any, any, any, any>,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t}\n\n\tfrom<TFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL>(\n\t\tsource: TFrom,\n\t): SQLiteUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tthis.config.from = source;\n\t\treturn this as any;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): SQLiteUpdateJoinFn<this> {\n\t\treturn ((\n\t\t\ttable: SQLiteTable | Subquery | SQLiteViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from\n\t\t\t\t\t? is(table, SQLiteTable)\n\t\t\t\t\t\t? table[Table.Symbol.Columns]\n\t\t\t\t\t\t: is(table, Subquery)\n\t\t\t\t\t\t? table._.selectedFields\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].selectedFields\n\t\t\t\t\t\t: undefined\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>,\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (SQLiteColumn | SQL | SQL.Aliased)[]): SQLiteUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<SQLiteColumn | SQL | SQL.Aliased>]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): SQLiteUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): SQLiteUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields: SelectedFields = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteUpdateWithout<AnySQLiteUpdate, TDynamic, 'returning'> {\n\t\tthis.config.returning = orderSelectedFields<SQLiteColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteUpdatePrepare<this> {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\ttrue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteUpdatePrepare<this>;\n\t}\n\n\tprepare(): SQLiteUpdatePrepare<this> {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise<SQLiteUpdateExecute<this>> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteUpdateExecute<this>;\n\t}\n\n\t$dynamic(): SQLiteUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -61,11 +61,13 @@ class UniqueConstraint {
61
61
  constructor(table, columns, name) {
62
62
  this.table = table;
63
63
  this.columns = columns;
64
+ this.isNameExplicit = !!name;
64
65
  this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));
65
66
  }
66
67
  static [import_entity.entityKind] = "SQLiteUniqueConstraint";
67
68
  columns;
68
69
  name;
70
+ isNameExplicit;
69
71
  getName() {
70
72
  return this.name;
71
73
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/unique-constraint.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TableName } from '~/table.utils.ts';\nimport type { SQLiteColumn } from './columns/common.ts';\nimport type { SQLiteTable } from './table.ts';\n\nexport function uniqueKeyName(table: SQLiteTable, columns: string[]) {\n\treturn `${table[TableName]}_${columns.join('_')}_unique`;\n}\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [SQLiteColumn, ...SQLiteColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraint';\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name?: string;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,yBAA0B;AAInB,SAAS,cAAc,OAAoB,SAAmB;AACpE,SAAO,GAAG,MAAM,4BAAS,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC;AAChD;AAEO,SAAS,OAAO,MAA0C;AAChE,SAAO,IAAI,0BAA0B,IAAI;AAC1C;AAEO,MAAM,wBAAwB;AAAA,EAMpC,YACC,SACQ,MACP;AADO;AAER,SAAK,UAAU;AAAA,EAChB;AAAA,EAVA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA;AAAA,EAUA,MAAM,OAAsC;AAC3C,WAAO,IAAI,iBAAiB,OAAO,KAAK,SAAS,KAAK,IAAI;AAAA,EAC3D;AACD;AAEO,MAAM,0BAA0B;AAAA,EACtC,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA,EAEA,YACC,MACC;AACD,SAAK,OAAO;AAAA,EACb;AAAA,EAEA,MAAM,SAA4C;AACjD,WAAO,IAAI,wBAAwB,SAAS,KAAK,IAAI;AAAA,EACtD;AACD;AAEO,MAAM,iBAAiB;AAAA,EAM7B,YAAqB,OAAoB,SAAyB,MAAe;AAA5D;AACpB,SAAK,UAAU;AACf,SAAK,OAAO,QAAQ,cAAc,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC;AAAA,EACxF;AAAA,EARA,QAAiB,wBAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EAOT,UAAU;AACT,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-core/unique-constraint.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TableName } from '~/table.utils.ts';\nimport type { SQLiteColumn } from './columns/common.ts';\nimport type { SQLiteTable } from './table.ts';\n\nexport function uniqueKeyName(table: SQLiteTable, columns: string[]) {\n\treturn `${table[TableName]}_${columns.join('_')}_unique`;\n}\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [SQLiteColumn, ...SQLiteColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraint';\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name: string;\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.isNameExplicit = !!name;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,yBAA0B;AAInB,SAAS,cAAc,OAAoB,SAAmB;AACpE,SAAO,GAAG,MAAM,4BAAS,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC;AAChD;AAEO,SAAS,OAAO,MAA0C;AAChE,SAAO,IAAI,0BAA0B,IAAI;AAC1C;AAEO,MAAM,wBAAwB;AAAA,EAMpC,YACC,SACQ,MACP;AADO;AAER,SAAK,UAAU;AAAA,EAChB;AAAA,EAVA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA;AAAA,EAUA,MAAM,OAAsC;AAC3C,WAAO,IAAI,iBAAiB,OAAO,KAAK,SAAS,KAAK,IAAI;AAAA,EAC3D;AACD;AAEO,MAAM,0BAA0B;AAAA,EACtC,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA,EAEA,YACC,MACC;AACD,SAAK,OAAO;AAAA,EACb;AAAA,EAEA,MAAM,SAA4C;AACjD,WAAO,IAAI,wBAAwB,SAAS,KAAK,IAAI;AAAA,EACtD;AACD;AAEO,MAAM,iBAAiB;AAAA,EAO7B,YAAqB,OAAoB,SAAyB,MAAe;AAA5D;AACpB,SAAK,UAAU;AACf,SAAK,iBAAiB,CAAC,CAAC;AACxB,SAAK,OAAO,QAAQ,cAAc,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC;AAAA,EACxF;AAAA,EAVA,QAAiB,wBAAU,IAAY;AAAA,EAE9B;AAAA,EACA;AAAA,EACA;AAAA,EAQT,UAAU;AACT,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
@@ -17,7 +17,8 @@ export declare class UniqueConstraint {
17
17
  readonly table: SQLiteTable;
18
18
  static readonly [entityKind]: string;
19
19
  readonly columns: SQLiteColumn[];
20
- readonly name?: string;
20
+ readonly name: string;
21
+ readonly isNameExplicit: boolean;
21
22
  constructor(table: SQLiteTable, columns: SQLiteColumn[], name?: string);
22
- getName(): string | undefined;
23
+ getName(): string;
23
24
  }