drizzle-orm 1.0.0-beta.1-cdf226f → 1.0.0-beta.1-2d0c9fd

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 (1331) hide show
  1. package/_relations.cjs +48 -0
  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 +47 -0
  6. package/_relations.js.map +1 -1
  7. package/cockroach/driver.cjs +113 -0
  8. package/cockroach/driver.cjs.map +1 -0
  9. package/cockroach/driver.d.cts +42 -0
  10. package/cockroach/driver.d.ts +42 -0
  11. package/cockroach/driver.js +77 -0
  12. package/cockroach/driver.js.map +1 -0
  13. package/{effect/sqlite → cockroach}/index.cjs +4 -4
  14. package/cockroach/index.cjs.map +1 -0
  15. package/cockroach/index.js.map +1 -0
  16. package/cockroach/migrator.cjs +33 -0
  17. package/cockroach/migrator.cjs.map +1 -0
  18. package/cockroach/migrator.d.cts +3 -0
  19. package/cockroach/migrator.d.ts +3 -0
  20. package/cockroach/migrator.js +9 -0
  21. package/cockroach/migrator.js.map +1 -0
  22. package/cockroach/session.cjs +253 -0
  23. package/cockroach/session.cjs.map +1 -0
  24. package/cockroach/session.d.cts +48 -0
  25. package/cockroach/session.d.ts +48 -0
  26. package/cockroach/session.js +217 -0
  27. package/cockroach/session.js.map +1 -0
  28. package/cockroach-core/alias.cjs +32 -0
  29. package/cockroach-core/alias.cjs.map +1 -0
  30. package/cockroach-core/alias.d.cts +4 -0
  31. package/cockroach-core/alias.d.ts +4 -0
  32. package/cockroach-core/alias.js +8 -0
  33. package/cockroach-core/alias.js.map +1 -0
  34. package/cockroach-core/checks.cjs +58 -0
  35. package/cockroach-core/checks.cjs.map +1 -0
  36. package/cockroach-core/checks.d.cts +18 -0
  37. package/cockroach-core/checks.d.ts +18 -0
  38. package/cockroach-core/checks.js +32 -0
  39. package/cockroach-core/checks.js.map +1 -0
  40. package/cockroach-core/columns/all.cjs +81 -0
  41. package/cockroach-core/columns/all.cjs.map +1 -0
  42. package/cockroach-core/columns/all.d.cts +52 -0
  43. package/cockroach-core/columns/all.d.ts +52 -0
  44. package/cockroach-core/columns/all.js +57 -0
  45. package/cockroach-core/columns/all.js.map +1 -0
  46. package/cockroach-core/columns/bigint.cjs +104 -0
  47. package/cockroach-core/columns/bigint.cjs.map +1 -0
  48. package/cockroach-core/columns/bigint.d.cts +37 -0
  49. package/cockroach-core/columns/bigint.d.ts +37 -0
  50. package/cockroach-core/columns/bigint.js +75 -0
  51. package/cockroach-core/columns/bigint.js.map +1 -0
  52. package/cockroach-core/columns/bit.cjs +61 -0
  53. package/cockroach-core/columns/bit.cjs.map +1 -0
  54. package/cockroach-core/columns/bit.d.cts +29 -0
  55. package/cockroach-core/columns/bit.d.ts +29 -0
  56. package/cockroach-core/columns/bit.js +35 -0
  57. package/cockroach-core/columns/bit.js.map +1 -0
  58. package/cockroach-core/columns/bool.cjs +59 -0
  59. package/cockroach-core/columns/bool.cjs.map +1 -0
  60. package/cockroach-core/columns/bool.d.cts +17 -0
  61. package/cockroach-core/columns/bool.d.ts +17 -0
  62. package/cockroach-core/columns/bool.js +32 -0
  63. package/cockroach-core/columns/bool.js.map +1 -0
  64. package/cockroach-core/columns/char.cjs +62 -0
  65. package/cockroach-core/columns/char.cjs.map +1 -0
  66. package/cockroach-core/columns/char.d.cts +31 -0
  67. package/cockroach-core/columns/char.d.ts +31 -0
  68. package/cockroach-core/columns/char.js +36 -0
  69. package/cockroach-core/columns/char.js.map +1 -0
  70. package/cockroach-core/columns/common.cjs +199 -0
  71. package/cockroach-core/columns/common.cjs.map +1 -0
  72. package/cockroach-core/columns/common.d.cts +98 -0
  73. package/cockroach-core/columns/common.d.ts +98 -0
  74. package/cockroach-core/columns/common.js +169 -0
  75. package/cockroach-core/columns/common.js.map +1 -0
  76. package/cockroach-core/columns/custom.cjs +102 -0
  77. package/cockroach-core/columns/custom.cjs.map +1 -0
  78. package/cockroach-core/columns/custom.d.cts +261 -0
  79. package/cockroach-core/columns/custom.d.ts +261 -0
  80. package/cockroach-core/columns/custom.js +76 -0
  81. package/cockroach-core/columns/custom.js.map +1 -0
  82. package/cockroach-core/columns/date.cjs +91 -0
  83. package/cockroach-core/columns/date.cjs.map +1 -0
  84. package/cockroach-core/columns/date.common.cjs +37 -0
  85. package/cockroach-core/columns/date.common.cjs.map +1 -0
  86. package/cockroach-core/columns/date.common.d.cts +7 -0
  87. package/cockroach-core/columns/date.common.d.ts +7 -0
  88. package/cockroach-core/columns/date.common.js +13 -0
  89. package/cockroach-core/columns/date.common.js.map +1 -0
  90. package/cockroach-core/columns/date.d.cts +36 -0
  91. package/cockroach-core/columns/date.d.ts +36 -0
  92. package/cockroach-core/columns/date.js +63 -0
  93. package/cockroach-core/columns/date.js.map +1 -0
  94. package/cockroach-core/columns/decimal.cjs +164 -0
  95. package/cockroach-core/columns/decimal.cjs.map +1 -0
  96. package/cockroach-core/columns/decimal.d.cts +80 -0
  97. package/cockroach-core/columns/decimal.d.ts +80 -0
  98. package/cockroach-core/columns/decimal.js +133 -0
  99. package/cockroach-core/columns/decimal.js.map +1 -0
  100. package/cockroach-core/columns/enum.cjs +127 -0
  101. package/cockroach-core/columns/enum.cjs.map +1 -0
  102. package/cockroach-core/columns/enum.d.cts +64 -0
  103. package/cockroach-core/columns/enum.d.ts +64 -0
  104. package/cockroach-core/columns/enum.js +96 -0
  105. package/cockroach-core/columns/enum.js.map +1 -0
  106. package/cockroach-core/columns/float.cjs +65 -0
  107. package/cockroach-core/columns/float.cjs.map +1 -0
  108. package/cockroach-core/columns/float.d.cts +18 -0
  109. package/cockroach-core/columns/float.d.ts +18 -0
  110. package/cockroach-core/columns/float.js +38 -0
  111. package/cockroach-core/columns/float.js.map +1 -0
  112. package/cockroach-core/columns/geometry.cjs +105 -0
  113. package/cockroach-core/columns/geometry.cjs.map +1 -0
  114. package/cockroach-core/columns/geometry.d.cts +60 -0
  115. package/cockroach-core/columns/geometry.d.ts +60 -0
  116. package/cockroach-core/columns/geometry.js +77 -0
  117. package/cockroach-core/columns/geometry.js.map +1 -0
  118. package/cockroach-core/columns/index.cjs +71 -0
  119. package/cockroach-core/columns/index.cjs.map +1 -0
  120. package/cockroach-core/columns/index.d.cts +25 -0
  121. package/cockroach-core/columns/index.d.ts +25 -0
  122. package/cockroach-core/columns/index.js +26 -0
  123. package/cockroach-core/columns/index.js.map +1 -0
  124. package/cockroach-core/columns/inet.cjs +56 -0
  125. package/cockroach-core/columns/inet.cjs.map +1 -0
  126. package/cockroach-core/columns/inet.d.cts +16 -0
  127. package/cockroach-core/columns/inet.d.ts +16 -0
  128. package/cockroach-core/columns/inet.js +30 -0
  129. package/cockroach-core/columns/inet.js.map +1 -0
  130. package/cockroach-core/columns/int.common.cjs +55 -0
  131. package/cockroach-core/columns/int.common.cjs.map +1 -0
  132. package/cockroach-core/columns/int.common.d.cts +11 -0
  133. package/cockroach-core/columns/int.common.d.ts +11 -0
  134. package/cockroach-core/columns/int.common.js +31 -0
  135. package/cockroach-core/columns/int.common.js.map +1 -0
  136. package/cockroach-core/columns/integer.cjs +63 -0
  137. package/cockroach-core/columns/integer.cjs.map +1 -0
  138. package/cockroach-core/columns/integer.d.cts +18 -0
  139. package/cockroach-core/columns/integer.d.ts +18 -0
  140. package/cockroach-core/columns/integer.js +37 -0
  141. package/cockroach-core/columns/integer.js.map +1 -0
  142. package/cockroach-core/columns/interval.cjs +63 -0
  143. package/cockroach-core/columns/interval.cjs.map +1 -0
  144. package/cockroach-core/columns/interval.d.cts +28 -0
  145. package/cockroach-core/columns/interval.d.ts +28 -0
  146. package/cockroach-core/columns/interval.js +37 -0
  147. package/cockroach-core/columns/interval.js.map +1 -0
  148. package/cockroach-core/columns/jsonb.cjs +72 -0
  149. package/cockroach-core/columns/jsonb.cjs.map +1 -0
  150. package/cockroach-core/columns/jsonb.d.cts +20 -0
  151. package/cockroach-core/columns/jsonb.d.ts +20 -0
  152. package/cockroach-core/columns/jsonb.js +46 -0
  153. package/cockroach-core/columns/jsonb.js.map +1 -0
  154. package/cockroach-core/columns/real.cjs +66 -0
  155. package/cockroach-core/columns/real.cjs.map +1 -0
  156. package/cockroach-core/columns/real.d.cts +21 -0
  157. package/cockroach-core/columns/real.d.ts +21 -0
  158. package/cockroach-core/columns/real.js +40 -0
  159. package/cockroach-core/columns/real.js.map +1 -0
  160. package/cockroach-core/columns/smallint.cjs +68 -0
  161. package/cockroach-core/columns/smallint.cjs.map +1 -0
  162. package/cockroach-core/columns/smallint.d.cts +19 -0
  163. package/cockroach-core/columns/smallint.d.ts +19 -0
  164. package/cockroach-core/columns/smallint.js +41 -0
  165. package/cockroach-core/columns/smallint.js.map +1 -0
  166. package/cockroach-core/columns/string.cjs +67 -0
  167. package/cockroach-core/columns/string.cjs.map +1 -0
  168. package/cockroach-core/columns/string.d.cts +36 -0
  169. package/cockroach-core/columns/string.d.ts +36 -0
  170. package/cockroach-core/columns/string.js +40 -0
  171. package/cockroach-core/columns/string.js.map +1 -0
  172. package/cockroach-core/columns/time.cjs +70 -0
  173. package/cockroach-core/columns/time.cjs.map +1 -0
  174. package/cockroach-core/columns/time.d.cts +31 -0
  175. package/cockroach-core/columns/time.d.ts +31 -0
  176. package/cockroach-core/columns/time.js +44 -0
  177. package/cockroach-core/columns/time.js.map +1 -0
  178. package/cockroach-core/columns/timestamp.cjs +111 -0
  179. package/cockroach-core/columns/timestamp.cjs.map +1 -0
  180. package/cockroach-core/columns/timestamp.d.cts +52 -0
  181. package/cockroach-core/columns/timestamp.d.ts +52 -0
  182. package/cockroach-core/columns/timestamp.js +83 -0
  183. package/cockroach-core/columns/timestamp.js.map +1 -0
  184. package/cockroach-core/columns/utils.cjs +65 -0
  185. package/cockroach-core/columns/utils.cjs.map +1 -0
  186. package/cockroach-core/columns/utils.d.cts +4 -0
  187. package/cockroach-core/columns/utils.d.ts +4 -0
  188. package/cockroach-core/columns/utils.js +41 -0
  189. package/cockroach-core/columns/utils.js.map +1 -0
  190. package/cockroach-core/columns/uuid.cjs +63 -0
  191. package/cockroach-core/columns/uuid.cjs.map +1 -0
  192. package/cockroach-core/columns/uuid.d.cts +20 -0
  193. package/cockroach-core/columns/uuid.d.ts +20 -0
  194. package/cockroach-core/columns/uuid.js +37 -0
  195. package/cockroach-core/columns/uuid.js.map +1 -0
  196. package/cockroach-core/columns/varbit.cjs +59 -0
  197. package/cockroach-core/columns/varbit.cjs.map +1 -0
  198. package/cockroach-core/columns/varbit.d.cts +24 -0
  199. package/cockroach-core/columns/varbit.d.ts +24 -0
  200. package/cockroach-core/columns/varbit.js +33 -0
  201. package/cockroach-core/columns/varbit.js.map +1 -0
  202. package/cockroach-core/columns/varchar.cjs +61 -0
  203. package/cockroach-core/columns/varchar.cjs.map +1 -0
  204. package/cockroach-core/columns/varchar.d.cts +30 -0
  205. package/cockroach-core/columns/varchar.d.ts +30 -0
  206. package/cockroach-core/columns/varchar.js +35 -0
  207. package/cockroach-core/columns/varchar.js.map +1 -0
  208. package/cockroach-core/columns/vector.cjs +65 -0
  209. package/cockroach-core/columns/vector.cjs.map +1 -0
  210. package/cockroach-core/columns/vector.d.cts +26 -0
  211. package/cockroach-core/columns/vector.d.ts +26 -0
  212. package/cockroach-core/columns/vector.js +39 -0
  213. package/cockroach-core/columns/vector.js.map +1 -0
  214. package/{effect/sqlite → cockroach-core}/db.cjs +99 -124
  215. package/cockroach-core/db.cjs.map +1 -0
  216. package/{effect/sqlite/db.d.ts → cockroach-core/db.d.cts} +92 -87
  217. package/{effect/sqlite/db.d.cts → cockroach-core/db.d.ts} +92 -87
  218. package/{effect/sqlite → cockroach-core}/db.js +103 -127
  219. package/cockroach-core/db.js.map +1 -0
  220. package/cockroach-core/dialect.cjs +1146 -0
  221. package/cockroach-core/dialect.cjs.map +1 -0
  222. package/cockroach-core/dialect.d.cts +65 -0
  223. package/cockroach-core/dialect.d.ts +65 -0
  224. package/cockroach-core/dialect.js +1126 -0
  225. package/cockroach-core/dialect.js.map +1 -0
  226. package/cockroach-core/expressions.cjs +49 -0
  227. package/cockroach-core/expressions.cjs.map +1 -0
  228. package/cockroach-core/expressions.d.cts +8 -0
  229. package/cockroach-core/expressions.d.ts +8 -0
  230. package/cockroach-core/expressions.js +22 -0
  231. package/cockroach-core/expressions.js.map +1 -0
  232. package/cockroach-core/foreign-keys.cjs +92 -0
  233. package/cockroach-core/foreign-keys.cjs.map +1 -0
  234. package/cockroach-core/foreign-keys.d.cts +52 -0
  235. package/cockroach-core/foreign-keys.d.ts +52 -0
  236. package/cockroach-core/foreign-keys.js +66 -0
  237. package/cockroach-core/foreign-keys.js.map +1 -0
  238. package/cockroach-core/index.cjs +61 -0
  239. package/cockroach-core/index.cjs.map +1 -0
  240. package/cockroach-core/index.d.cts +20 -0
  241. package/cockroach-core/index.d.ts +20 -0
  242. package/cockroach-core/index.js +21 -0
  243. package/cockroach-core/index.js.map +1 -0
  244. package/cockroach-core/indexes.cjs +137 -0
  245. package/cockroach-core/indexes.cjs.map +1 -0
  246. package/cockroach-core/indexes.d.cts +64 -0
  247. package/cockroach-core/indexes.d.ts +64 -0
  248. package/cockroach-core/indexes.js +109 -0
  249. package/cockroach-core/indexes.js.map +1 -0
  250. package/cockroach-core/policies.cjs +58 -0
  251. package/cockroach-core/policies.cjs.map +1 -0
  252. package/cockroach-core/policies.d.cts +24 -0
  253. package/cockroach-core/policies.d.ts +24 -0
  254. package/cockroach-core/policies.js +33 -0
  255. package/cockroach-core/policies.js.map +1 -0
  256. package/cockroach-core/primary-keys.cjs +64 -0
  257. package/cockroach-core/primary-keys.cjs.map +1 -0
  258. package/cockroach-core/primary-keys.d.cts +23 -0
  259. package/cockroach-core/primary-keys.d.ts +23 -0
  260. package/cockroach-core/primary-keys.js +38 -0
  261. package/cockroach-core/primary-keys.js.map +1 -0
  262. package/cockroach-core/query-builders/count.cjs +79 -0
  263. package/cockroach-core/query-builders/count.cjs.map +1 -0
  264. package/cockroach-core/query-builders/count.d.cts +29 -0
  265. package/cockroach-core/query-builders/count.d.ts +29 -0
  266. package/cockroach-core/query-builders/count.js +55 -0
  267. package/cockroach-core/query-builders/count.js.map +1 -0
  268. package/cockroach-core/query-builders/delete.cjs +124 -0
  269. package/cockroach-core/query-builders/delete.cjs.map +1 -0
  270. package/cockroach-core/query-builders/delete.d.cts +103 -0
  271. package/cockroach-core/query-builders/delete.d.ts +103 -0
  272. package/cockroach-core/query-builders/delete.js +100 -0
  273. package/cockroach-core/query-builders/delete.js.map +1 -0
  274. package/cockroach-core/query-builders/index.cjs +35 -0
  275. package/cockroach-core/query-builders/index.cjs.map +1 -0
  276. package/cockroach-core/query-builders/index.d.cts +7 -0
  277. package/cockroach-core/query-builders/index.d.ts +7 -0
  278. package/cockroach-core/query-builders/index.js +8 -0
  279. package/cockroach-core/query-builders/index.js.map +1 -0
  280. package/cockroach-core/query-builders/insert.cjs +213 -0
  281. package/cockroach-core/query-builders/insert.cjs.map +1 -0
  282. package/cockroach-core/query-builders/insert.d.cts +168 -0
  283. package/cockroach-core/query-builders/insert.d.ts +168 -0
  284. package/cockroach-core/query-builders/insert.js +188 -0
  285. package/cockroach-core/query-builders/insert.js.map +1 -0
  286. package/cockroach-core/query-builders/query-builder.cjs +118 -0
  287. package/cockroach-core/query-builders/query-builder.cjs.map +1 -0
  288. package/cockroach-core/query-builders/query-builder.d.cts +37 -0
  289. package/cockroach-core/query-builders/query-builder.d.ts +37 -0
  290. package/cockroach-core/query-builders/query-builder.js +94 -0
  291. package/cockroach-core/query-builders/query-builder.js.map +1 -0
  292. package/cockroach-core/query-builders/query.cjs +145 -0
  293. package/cockroach-core/query-builders/query.cjs.map +1 -0
  294. package/cockroach-core/query-builders/query.d.cts +47 -0
  295. package/cockroach-core/query-builders/query.d.ts +47 -0
  296. package/cockroach-core/query-builders/query.js +122 -0
  297. package/cockroach-core/query-builders/query.js.map +1 -0
  298. package/cockroach-core/query-builders/raw.cjs +57 -0
  299. package/cockroach-core/query-builders/raw.cjs.map +1 -0
  300. package/cockroach-core/query-builders/raw.d.cts +22 -0
  301. package/cockroach-core/query-builders/raw.d.ts +22 -0
  302. package/cockroach-core/query-builders/raw.js +33 -0
  303. package/cockroach-core/query-builders/raw.js.map +1 -0
  304. package/cockroach-core/query-builders/refresh-materialized-view.cjs +83 -0
  305. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  306. package/cockroach-core/query-builders/refresh-materialized-view.d.cts +28 -0
  307. package/cockroach-core/query-builders/refresh-materialized-view.d.ts +28 -0
  308. package/cockroach-core/query-builders/refresh-materialized-view.js +59 -0
  309. package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -0
  310. package/cockroach-core/query-builders/select.cjs +848 -0
  311. package/cockroach-core/query-builders/select.cjs.map +1 -0
  312. package/cockroach-core/query-builders/select.d.cts +787 -0
  313. package/cockroach-core/query-builders/select.d.ts +787 -0
  314. package/cockroach-core/query-builders/select.js +821 -0
  315. package/cockroach-core/query-builders/select.js.map +1 -0
  316. package/cockroach-core/query-builders/select.types.cjs +17 -0
  317. package/cockroach-core/query-builders/select.types.cjs.map +1 -0
  318. package/cockroach-core/query-builders/select.types.d.cts +140 -0
  319. package/cockroach-core/query-builders/select.types.d.ts +140 -0
  320. package/cockroach-core/query-builders/select.types.js +1 -0
  321. package/cockroach-core/query-builders/select.types.js.map +1 -0
  322. package/cockroach-core/query-builders/update.cjs +240 -0
  323. package/cockroach-core/query-builders/update.cjs.map +1 -0
  324. package/cockroach-core/query-builders/update.d.cts +170 -0
  325. package/cockroach-core/query-builders/update.d.ts +170 -0
  326. package/cockroach-core/query-builders/update.js +219 -0
  327. package/cockroach-core/query-builders/update.js.map +1 -0
  328. package/{effect/effect-wrapper.cjs → cockroach-core/roles.cjs} +30 -22
  329. package/cockroach-core/roles.cjs.map +1 -0
  330. package/cockroach-core/roles.d.cts +12 -0
  331. package/cockroach-core/roles.d.ts +12 -0
  332. package/cockroach-core/roles.js +29 -0
  333. package/cockroach-core/roles.js.map +1 -0
  334. package/cockroach-core/schema.cjs +80 -0
  335. package/cockroach-core/schema.cjs.map +1 -0
  336. package/cockroach-core/schema.d.cts +22 -0
  337. package/cockroach-core/schema.d.ts +22 -0
  338. package/cockroach-core/schema.js +60 -0
  339. package/cockroach-core/schema.js.map +1 -0
  340. package/cockroach-core/sequence.cjs +52 -0
  341. package/cockroach-core/sequence.cjs.map +1 -0
  342. package/cockroach-core/sequence.d.cts +17 -0
  343. package/cockroach-core/sequence.d.ts +17 -0
  344. package/cockroach-core/sequence.js +25 -0
  345. package/cockroach-core/sequence.js.map +1 -0
  346. package/cockroach-core/session.cjs +120 -0
  347. package/cockroach-core/session.cjs.map +1 -0
  348. package/cockroach-core/session.d.cts +62 -0
  349. package/cockroach-core/session.d.ts +62 -0
  350. package/cockroach-core/session.js +94 -0
  351. package/cockroach-core/session.js.map +1 -0
  352. package/cockroach-core/subquery.cjs +17 -0
  353. package/cockroach-core/subquery.cjs.map +1 -0
  354. package/cockroach-core/subquery.d.cts +18 -0
  355. package/cockroach-core/subquery.d.ts +18 -0
  356. package/cockroach-core/subquery.js +1 -0
  357. package/cockroach-core/subquery.js.map +1 -0
  358. package/cockroach-core/table.cjs +100 -0
  359. package/cockroach-core/table.cjs.map +1 -0
  360. package/cockroach-core/table.d.cts +37 -0
  361. package/cockroach-core/table.d.ts +37 -0
  362. package/cockroach-core/table.js +73 -0
  363. package/cockroach-core/table.js.map +1 -0
  364. package/cockroach-core/unique-constraint.cjs +77 -0
  365. package/cockroach-core/unique-constraint.cjs.map +1 -0
  366. package/cockroach-core/unique-constraint.d.cts +23 -0
  367. package/cockroach-core/unique-constraint.d.ts +23 -0
  368. package/cockroach-core/unique-constraint.js +50 -0
  369. package/cockroach-core/unique-constraint.js.map +1 -0
  370. package/cockroach-core/utils/array.cjs +106 -0
  371. package/cockroach-core/utils/array.cjs.map +1 -0
  372. package/cockroach-core/utils/array.d.cts +3 -0
  373. package/cockroach-core/utils/array.d.ts +3 -0
  374. package/cockroach-core/utils/array.js +80 -0
  375. package/cockroach-core/utils/array.js.map +1 -0
  376. package/cockroach-core/utils/index.cjs +23 -0
  377. package/cockroach-core/utils/index.cjs.map +1 -0
  378. package/cockroach-core/utils/index.d.cts +1 -0
  379. package/cockroach-core/utils/index.d.ts +1 -0
  380. package/cockroach-core/utils/index.js +2 -0
  381. package/cockroach-core/utils/index.js.map +1 -0
  382. package/cockroach-core/utils.cjs +98 -0
  383. package/cockroach-core/utils.cjs.map +1 -0
  384. package/cockroach-core/utils.d.cts +47 -0
  385. package/cockroach-core/utils.d.ts +47 -0
  386. package/cockroach-core/utils.js +72 -0
  387. package/cockroach-core/utils.js.map +1 -0
  388. package/cockroach-core/view-base.cjs +33 -0
  389. package/cockroach-core/view-base.cjs.map +1 -0
  390. package/cockroach-core/view-base.d.cts +8 -0
  391. package/cockroach-core/view-base.d.ts +8 -0
  392. package/cockroach-core/view-base.js +9 -0
  393. package/cockroach-core/view-base.js.map +1 -0
  394. package/cockroach-core/view.cjs +271 -0
  395. package/cockroach-core/view.cjs.map +1 -0
  396. package/cockroach-core/view.d.cts +106 -0
  397. package/cockroach-core/view.d.ts +106 -0
  398. package/cockroach-core/view.js +233 -0
  399. package/cockroach-core/view.js.map +1 -0
  400. package/column-builder.cjs.map +1 -1
  401. package/column-builder.d.cts +10 -8
  402. package/column-builder.d.ts +10 -8
  403. package/column-builder.js.map +1 -1
  404. package/column.cjs +2 -0
  405. package/column.cjs.map +1 -1
  406. package/column.d.cts +1 -0
  407. package/column.d.ts +1 -0
  408. package/column.js +2 -0
  409. package/column.js.map +1 -1
  410. package/gel-core/columns/bigint.cjs.map +1 -1
  411. package/gel-core/columns/bigint.d.cts +0 -1
  412. package/gel-core/columns/bigint.d.ts +0 -1
  413. package/gel-core/columns/bigint.js.map +1 -1
  414. package/gel-core/columns/bigintT.cjs.map +1 -1
  415. package/gel-core/columns/bigintT.d.cts +0 -1
  416. package/gel-core/columns/bigintT.d.ts +0 -1
  417. package/gel-core/columns/bigintT.js.map +1 -1
  418. package/gel-core/columns/boolean.cjs.map +1 -1
  419. package/gel-core/columns/boolean.d.cts +0 -1
  420. package/gel-core/columns/boolean.d.ts +0 -1
  421. package/gel-core/columns/boolean.js.map +1 -1
  422. package/gel-core/columns/bytes.cjs.map +1 -1
  423. package/gel-core/columns/bytes.d.cts +0 -1
  424. package/gel-core/columns/bytes.d.ts +0 -1
  425. package/gel-core/columns/bytes.js.map +1 -1
  426. package/gel-core/columns/custom.cjs.map +1 -1
  427. package/gel-core/columns/custom.d.cts +0 -1
  428. package/gel-core/columns/custom.d.ts +0 -1
  429. package/gel-core/columns/custom.js.map +1 -1
  430. package/gel-core/columns/date-duration.cjs.map +1 -1
  431. package/gel-core/columns/date-duration.d.cts +0 -1
  432. package/gel-core/columns/date-duration.d.ts +0 -1
  433. package/gel-core/columns/date-duration.js.map +1 -1
  434. package/gel-core/columns/decimal.cjs.map +1 -1
  435. package/gel-core/columns/decimal.d.cts +0 -1
  436. package/gel-core/columns/decimal.d.ts +0 -1
  437. package/gel-core/columns/decimal.js.map +1 -1
  438. package/gel-core/columns/double-precision.cjs.map +1 -1
  439. package/gel-core/columns/double-precision.d.cts +0 -1
  440. package/gel-core/columns/double-precision.d.ts +0 -1
  441. package/gel-core/columns/double-precision.js.map +1 -1
  442. package/gel-core/columns/duration.cjs.map +1 -1
  443. package/gel-core/columns/duration.d.cts +0 -1
  444. package/gel-core/columns/duration.d.ts +0 -1
  445. package/gel-core/columns/duration.js.map +1 -1
  446. package/gel-core/columns/integer.cjs.map +1 -1
  447. package/gel-core/columns/integer.d.cts +0 -1
  448. package/gel-core/columns/integer.d.ts +0 -1
  449. package/gel-core/columns/integer.js.map +1 -1
  450. package/gel-core/columns/json.cjs.map +1 -1
  451. package/gel-core/columns/json.d.cts +0 -1
  452. package/gel-core/columns/json.d.ts +0 -1
  453. package/gel-core/columns/json.js.map +1 -1
  454. package/gel-core/columns/localdate.cjs.map +1 -1
  455. package/gel-core/columns/localdate.d.cts +0 -1
  456. package/gel-core/columns/localdate.d.ts +0 -1
  457. package/gel-core/columns/localdate.js.map +1 -1
  458. package/gel-core/columns/localtime.cjs.map +1 -1
  459. package/gel-core/columns/localtime.d.cts +0 -1
  460. package/gel-core/columns/localtime.d.ts +0 -1
  461. package/gel-core/columns/localtime.js.map +1 -1
  462. package/gel-core/columns/real.cjs.map +1 -1
  463. package/gel-core/columns/real.d.cts +0 -1
  464. package/gel-core/columns/real.d.ts +0 -1
  465. package/gel-core/columns/real.js.map +1 -1
  466. package/gel-core/columns/relative-duration.cjs.map +1 -1
  467. package/gel-core/columns/relative-duration.d.cts +0 -1
  468. package/gel-core/columns/relative-duration.d.ts +0 -1
  469. package/gel-core/columns/relative-duration.js.map +1 -1
  470. package/gel-core/columns/smallint.cjs.map +1 -1
  471. package/gel-core/columns/smallint.d.cts +0 -1
  472. package/gel-core/columns/smallint.d.ts +0 -1
  473. package/gel-core/columns/smallint.js.map +1 -1
  474. package/gel-core/columns/text.cjs.map +1 -1
  475. package/gel-core/columns/text.d.cts +0 -1
  476. package/gel-core/columns/text.d.ts +0 -1
  477. package/gel-core/columns/text.js.map +1 -1
  478. package/gel-core/columns/timestamp.cjs.map +1 -1
  479. package/gel-core/columns/timestamp.d.cts +0 -1
  480. package/gel-core/columns/timestamp.d.ts +0 -1
  481. package/gel-core/columns/timestamp.js.map +1 -1
  482. package/gel-core/columns/timestamptz.cjs.map +1 -1
  483. package/gel-core/columns/timestamptz.d.cts +0 -1
  484. package/gel-core/columns/timestamptz.d.ts +0 -1
  485. package/gel-core/columns/timestamptz.js.map +1 -1
  486. package/gel-core/columns/uuid.cjs.map +1 -1
  487. package/gel-core/columns/uuid.d.cts +0 -1
  488. package/gel-core/columns/uuid.d.ts +0 -1
  489. package/gel-core/columns/uuid.js.map +1 -1
  490. package/gel-core/query-builders/insert.cjs.map +1 -1
  491. package/gel-core/query-builders/insert.d.cts +6 -9
  492. package/gel-core/query-builders/insert.d.ts +6 -9
  493. package/gel-core/query-builders/insert.js.map +1 -1
  494. package/gel-core/query-builders/update.cjs.map +1 -1
  495. package/gel-core/query-builders/update.d.cts +1 -1
  496. package/gel-core/query-builders/update.d.ts +1 -1
  497. package/gel-core/query-builders/update.js.map +1 -1
  498. package/mssql-core/alias.cjs +32 -0
  499. package/mssql-core/alias.cjs.map +1 -0
  500. package/mssql-core/alias.d.cts +4 -0
  501. package/mssql-core/alias.d.ts +4 -0
  502. package/mssql-core/alias.js +8 -0
  503. package/mssql-core/alias.js.map +1 -0
  504. package/mssql-core/checks.cjs +58 -0
  505. package/mssql-core/checks.cjs.map +1 -0
  506. package/mssql-core/checks.d.cts +18 -0
  507. package/mssql-core/checks.d.ts +18 -0
  508. package/mssql-core/checks.js +32 -0
  509. package/mssql-core/checks.js.map +1 -0
  510. package/mssql-core/columns/all.cjs +74 -0
  511. package/mssql-core/columns/all.cjs.map +1 -0
  512. package/mssql-core/columns/all.d.cts +45 -0
  513. package/mssql-core/columns/all.d.ts +45 -0
  514. package/mssql-core/columns/all.js +50 -0
  515. package/mssql-core/columns/all.js.map +1 -0
  516. package/mssql-core/columns/bigint.cjs +72 -0
  517. package/mssql-core/columns/bigint.cjs.map +1 -0
  518. package/mssql-core/columns/bigint.d.cts +25 -0
  519. package/mssql-core/columns/bigint.d.ts +25 -0
  520. package/mssql-core/columns/bigint.js +46 -0
  521. package/mssql-core/columns/bigint.js.map +1 -0
  522. package/mssql-core/columns/binary.cjs +57 -0
  523. package/mssql-core/columns/binary.cjs.map +1 -0
  524. package/mssql-core/columns/binary.d.cts +24 -0
  525. package/mssql-core/columns/binary.d.ts +24 -0
  526. package/mssql-core/columns/binary.js +31 -0
  527. package/mssql-core/columns/binary.js.map +1 -0
  528. package/mssql-core/columns/bit.cjs +54 -0
  529. package/mssql-core/columns/bit.cjs.map +1 -0
  530. package/mssql-core/columns/bit.d.cts +17 -0
  531. package/mssql-core/columns/bit.d.ts +17 -0
  532. package/mssql-core/columns/bit.js +28 -0
  533. package/mssql-core/columns/bit.js.map +1 -0
  534. package/mssql-core/columns/char.cjs +73 -0
  535. package/mssql-core/columns/char.cjs.map +1 -0
  536. package/mssql-core/columns/char.d.cts +29 -0
  537. package/mssql-core/columns/char.d.ts +29 -0
  538. package/mssql-core/columns/char.js +46 -0
  539. package/mssql-core/columns/char.js.map +1 -0
  540. package/mssql-core/columns/common.cjs +112 -0
  541. package/mssql-core/columns/common.cjs.map +1 -0
  542. package/mssql-core/columns/common.d.cts +57 -0
  543. package/mssql-core/columns/common.d.ts +57 -0
  544. package/mssql-core/columns/common.js +85 -0
  545. package/mssql-core/columns/common.js.map +1 -0
  546. package/mssql-core/columns/custom.cjs +105 -0
  547. package/mssql-core/columns/custom.cjs.map +1 -0
  548. package/mssql-core/columns/custom.d.cts +261 -0
  549. package/mssql-core/columns/custom.d.ts +261 -0
  550. package/mssql-core/columns/custom.js +79 -0
  551. package/mssql-core/columns/custom.js.map +1 -0
  552. package/mssql-core/columns/date.cjs +94 -0
  553. package/mssql-core/columns/date.cjs.map +1 -0
  554. package/mssql-core/columns/date.common.cjs +37 -0
  555. package/mssql-core/columns/date.common.cjs.map +1 -0
  556. package/mssql-core/columns/date.common.d.cts +12 -0
  557. package/mssql-core/columns/date.common.d.ts +12 -0
  558. package/mssql-core/columns/date.common.js +13 -0
  559. package/mssql-core/columns/date.common.js.map +1 -0
  560. package/mssql-core/columns/date.d.cts +39 -0
  561. package/mssql-core/columns/date.d.ts +39 -0
  562. package/mssql-core/columns/date.js +66 -0
  563. package/mssql-core/columns/date.js.map +1 -0
  564. package/mssql-core/columns/datetime.cjs +94 -0
  565. package/mssql-core/columns/datetime.cjs.map +1 -0
  566. package/mssql-core/columns/datetime.d.cts +38 -0
  567. package/mssql-core/columns/datetime.d.ts +38 -0
  568. package/mssql-core/columns/datetime.js +66 -0
  569. package/mssql-core/columns/datetime.js.map +1 -0
  570. package/mssql-core/columns/datetime2.cjs +102 -0
  571. package/mssql-core/columns/datetime2.cjs.map +1 -0
  572. package/mssql-core/columns/datetime2.d.cts +38 -0
  573. package/mssql-core/columns/datetime2.d.ts +38 -0
  574. package/mssql-core/columns/datetime2.js +74 -0
  575. package/mssql-core/columns/datetime2.js.map +1 -0
  576. package/mssql-core/columns/datetimeoffset.cjs +102 -0
  577. package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
  578. package/mssql-core/columns/datetimeoffset.d.cts +39 -0
  579. package/mssql-core/columns/datetimeoffset.d.ts +39 -0
  580. package/mssql-core/columns/datetimeoffset.js +74 -0
  581. package/mssql-core/columns/datetimeoffset.js.map +1 -0
  582. package/mssql-core/columns/decimal.cjs +146 -0
  583. package/mssql-core/columns/decimal.cjs.map +1 -0
  584. package/mssql-core/columns/decimal.d.cts +58 -0
  585. package/mssql-core/columns/decimal.d.ts +58 -0
  586. package/mssql-core/columns/decimal.js +116 -0
  587. package/mssql-core/columns/decimal.js.map +1 -0
  588. package/mssql-core/columns/float.cjs +58 -0
  589. package/mssql-core/columns/float.cjs.map +1 -0
  590. package/mssql-core/columns/float.d.cts +21 -0
  591. package/mssql-core/columns/float.d.ts +21 -0
  592. package/mssql-core/columns/float.js +32 -0
  593. package/mssql-core/columns/float.js.map +1 -0
  594. package/mssql-core/columns/index.cjs +63 -0
  595. package/mssql-core/columns/index.cjs.map +1 -0
  596. package/mssql-core/columns/index.d.cts +21 -0
  597. package/mssql-core/columns/index.d.ts +21 -0
  598. package/mssql-core/columns/index.js +22 -0
  599. package/mssql-core/columns/index.js.map +1 -0
  600. package/mssql-core/columns/int.cjs +53 -0
  601. package/mssql-core/columns/int.cjs.map +1 -0
  602. package/mssql-core/columns/int.d.cts +16 -0
  603. package/mssql-core/columns/int.d.ts +16 -0
  604. package/mssql-core/columns/int.js +27 -0
  605. package/mssql-core/columns/int.js.map +1 -0
  606. package/mssql-core/columns/numeric.cjs +146 -0
  607. package/mssql-core/columns/numeric.cjs.map +1 -0
  608. package/mssql-core/columns/numeric.d.cts +58 -0
  609. package/mssql-core/columns/numeric.d.ts +58 -0
  610. package/mssql-core/columns/numeric.js +116 -0
  611. package/mssql-core/columns/numeric.js.map +1 -0
  612. package/mssql-core/columns/real.cjs +53 -0
  613. package/mssql-core/columns/real.cjs.map +1 -0
  614. package/mssql-core/columns/real.d.cts +16 -0
  615. package/mssql-core/columns/real.d.ts +16 -0
  616. package/mssql-core/columns/real.js +27 -0
  617. package/mssql-core/columns/real.js.map +1 -0
  618. package/mssql-core/columns/smallint.cjs +62 -0
  619. package/mssql-core/columns/smallint.cjs.map +1 -0
  620. package/mssql-core/columns/smallint.d.cts +17 -0
  621. package/mssql-core/columns/smallint.d.ts +17 -0
  622. package/mssql-core/columns/smallint.js +36 -0
  623. package/mssql-core/columns/smallint.js.map +1 -0
  624. package/mssql-core/columns/text.cjs +68 -0
  625. package/mssql-core/columns/text.cjs.map +1 -0
  626. package/mssql-core/columns/text.d.cts +36 -0
  627. package/mssql-core/columns/text.d.ts +36 -0
  628. package/mssql-core/columns/text.js +41 -0
  629. package/mssql-core/columns/text.js.map +1 -0
  630. package/mssql-core/columns/time.cjs +90 -0
  631. package/mssql-core/columns/time.cjs.map +1 -0
  632. package/mssql-core/columns/time.d.cts +37 -0
  633. package/mssql-core/columns/time.d.ts +37 -0
  634. package/mssql-core/columns/time.js +62 -0
  635. package/mssql-core/columns/time.js.map +1 -0
  636. package/mssql-core/columns/tinyint.cjs +62 -0
  637. package/mssql-core/columns/tinyint.cjs.map +1 -0
  638. package/mssql-core/columns/tinyint.d.cts +17 -0
  639. package/mssql-core/columns/tinyint.d.ts +17 -0
  640. package/mssql-core/columns/tinyint.js +36 -0
  641. package/mssql-core/columns/tinyint.js.map +1 -0
  642. package/mssql-core/columns/varbinary.cjs +61 -0
  643. package/mssql-core/columns/varbinary.cjs.map +1 -0
  644. package/mssql-core/columns/varbinary.d.cts +23 -0
  645. package/mssql-core/columns/varbinary.d.ts +23 -0
  646. package/mssql-core/columns/varbinary.js +35 -0
  647. package/mssql-core/columns/varbinary.js.map +1 -0
  648. package/mssql-core/columns/varchar.cjs +117 -0
  649. package/mssql-core/columns/varchar.cjs.map +1 -0
  650. package/mssql-core/columns/varchar.d.cts +59 -0
  651. package/mssql-core/columns/varchar.d.ts +59 -0
  652. package/mssql-core/columns/varchar.js +88 -0
  653. package/mssql-core/columns/varchar.js.map +1 -0
  654. package/mssql-core/db.cjs +254 -0
  655. package/mssql-core/db.cjs.map +1 -0
  656. package/mssql-core/db.d.cts +228 -0
  657. package/mssql-core/db.d.ts +228 -0
  658. package/mssql-core/db.js +235 -0
  659. package/mssql-core/db.js.map +1 -0
  660. package/mssql-core/dialect.cjs +633 -0
  661. package/mssql-core/dialect.cjs.map +1 -0
  662. package/mssql-core/dialect.d.cts +58 -0
  663. package/mssql-core/dialect.d.ts +58 -0
  664. package/mssql-core/dialect.js +599 -0
  665. package/mssql-core/dialect.js.map +1 -0
  666. package/mssql-core/expressions.cjs +49 -0
  667. package/mssql-core/expressions.cjs.map +1 -0
  668. package/mssql-core/expressions.d.cts +8 -0
  669. package/mssql-core/expressions.d.ts +8 -0
  670. package/mssql-core/expressions.js +22 -0
  671. package/mssql-core/expressions.js.map +1 -0
  672. package/mssql-core/foreign-keys.cjs +91 -0
  673. package/mssql-core/foreign-keys.cjs.map +1 -0
  674. package/mssql-core/foreign-keys.d.cts +51 -0
  675. package/mssql-core/foreign-keys.d.ts +51 -0
  676. package/mssql-core/foreign-keys.js +65 -0
  677. package/mssql-core/foreign-keys.js.map +1 -0
  678. package/mssql-core/index.cjs +55 -0
  679. package/mssql-core/index.cjs.map +1 -0
  680. package/mssql-core/index.d.cts +17 -0
  681. package/mssql-core/index.d.ts +17 -0
  682. package/mssql-core/index.js +18 -0
  683. package/mssql-core/index.js.map +1 -0
  684. package/mssql-core/indexes.cjs +80 -0
  685. package/mssql-core/indexes.cjs.map +1 -0
  686. package/mssql-core/indexes.d.cts +49 -0
  687. package/mssql-core/indexes.d.ts +49 -0
  688. package/mssql-core/indexes.js +52 -0
  689. package/mssql-core/indexes.js.map +1 -0
  690. package/mssql-core/primary-keys.cjs +64 -0
  691. package/mssql-core/primary-keys.cjs.map +1 -0
  692. package/mssql-core/primary-keys.d.cts +23 -0
  693. package/mssql-core/primary-keys.d.ts +23 -0
  694. package/mssql-core/primary-keys.js +38 -0
  695. package/mssql-core/primary-keys.js.map +1 -0
  696. package/mssql-core/query-builders/delete.cjs +107 -0
  697. package/mssql-core/query-builders/delete.cjs.map +1 -0
  698. package/mssql-core/query-builders/delete.d.cts +98 -0
  699. package/mssql-core/query-builders/delete.d.ts +98 -0
  700. package/mssql-core/query-builders/delete.js +83 -0
  701. package/mssql-core/query-builders/delete.js.map +1 -0
  702. package/mssql-core/query-builders/index.cjs +33 -0
  703. package/mssql-core/query-builders/index.cjs.map +1 -0
  704. package/mssql-core/query-builders/index.d.cts +6 -0
  705. package/mssql-core/query-builders/index.d.ts +6 -0
  706. package/mssql-core/query-builders/index.js +7 -0
  707. package/mssql-core/query-builders/index.js.map +1 -0
  708. package/mssql-core/query-builders/insert.cjs +105 -0
  709. package/mssql-core/query-builders/insert.cjs.map +1 -0
  710. package/mssql-core/query-builders/insert.d.cts +79 -0
  711. package/mssql-core/query-builders/insert.d.ts +79 -0
  712. package/mssql-core/query-builders/insert.js +80 -0
  713. package/mssql-core/query-builders/insert.js.map +1 -0
  714. package/mssql-core/query-builders/query-builder.cjs +95 -0
  715. package/mssql-core/query-builders/query-builder.cjs.map +1 -0
  716. package/mssql-core/query-builders/query-builder.d.cts +32 -0
  717. package/mssql-core/query-builders/query-builder.d.ts +32 -0
  718. package/mssql-core/query-builders/query-builder.js +71 -0
  719. package/mssql-core/query-builders/query-builder.js.map +1 -0
  720. package/mssql-core/query-builders/query.cjs +126 -0
  721. package/mssql-core/query-builders/query.cjs.map +1 -0
  722. package/mssql-core/query-builders/query.d.cts +42 -0
  723. package/mssql-core/query-builders/query.d.ts +42 -0
  724. package/mssql-core/query-builders/query.js +103 -0
  725. package/mssql-core/query-builders/query.js.map +1 -0
  726. package/mssql-core/query-builders/select.cjs +679 -0
  727. package/mssql-core/query-builders/select.cjs.map +1 -0
  728. package/mssql-core/query-builders/select.d.cts +549 -0
  729. package/mssql-core/query-builders/select.d.ts +549 -0
  730. package/mssql-core/query-builders/select.js +649 -0
  731. package/mssql-core/query-builders/select.js.map +1 -0
  732. package/mssql-core/query-builders/select.types.cjs +17 -0
  733. package/mssql-core/query-builders/select.types.cjs.map +1 -0
  734. package/mssql-core/query-builders/select.types.d.cts +142 -0
  735. package/mssql-core/query-builders/select.types.d.ts +142 -0
  736. package/mssql-core/query-builders/select.types.js +1 -0
  737. package/mssql-core/query-builders/select.types.js.map +1 -0
  738. package/mssql-core/query-builders/update.cjs +138 -0
  739. package/mssql-core/query-builders/update.cjs.map +1 -0
  740. package/mssql-core/query-builders/update.d.cts +142 -0
  741. package/mssql-core/query-builders/update.d.ts +142 -0
  742. package/mssql-core/query-builders/update.js +113 -0
  743. package/mssql-core/query-builders/update.js.map +1 -0
  744. package/mssql-core/schema.cjs +51 -0
  745. package/mssql-core/schema.cjs.map +1 -0
  746. package/mssql-core/schema.d.cts +22 -0
  747. package/mssql-core/schema.d.ts +22 -0
  748. package/mssql-core/schema.js +25 -0
  749. package/mssql-core/schema.js.map +1 -0
  750. package/mssql-core/session.cjs +74 -0
  751. package/mssql-core/session.cjs.map +1 -0
  752. package/mssql-core/session.d.cts +63 -0
  753. package/mssql-core/session.d.ts +63 -0
  754. package/mssql-core/session.js +48 -0
  755. package/mssql-core/session.js.map +1 -0
  756. package/mssql-core/subquery.cjs +17 -0
  757. package/mssql-core/subquery.cjs.map +1 -0
  758. package/mssql-core/subquery.d.cts +18 -0
  759. package/mssql-core/subquery.d.ts +18 -0
  760. package/mssql-core/subquery.js +1 -0
  761. package/mssql-core/subquery.js.map +1 -0
  762. package/mssql-core/table.cjs +81 -0
  763. package/mssql-core/table.cjs.map +1 -0
  764. package/mssql-core/table.d.cts +40 -0
  765. package/mssql-core/table.d.ts +40 -0
  766. package/mssql-core/table.js +55 -0
  767. package/mssql-core/table.js.map +1 -0
  768. package/mssql-core/unique-constraint.cjs +76 -0
  769. package/mssql-core/unique-constraint.cjs.map +1 -0
  770. package/mssql-core/unique-constraint.d.cts +23 -0
  771. package/mssql-core/unique-constraint.d.ts +23 -0
  772. package/mssql-core/unique-constraint.js +49 -0
  773. package/mssql-core/unique-constraint.js.map +1 -0
  774. package/mssql-core/utils.cjs +85 -0
  775. package/mssql-core/utils.cjs.map +1 -0
  776. package/mssql-core/utils.d.cts +31 -0
  777. package/mssql-core/utils.d.ts +31 -0
  778. package/mssql-core/utils.js +60 -0
  779. package/mssql-core/utils.js.map +1 -0
  780. package/mssql-core/view-base.cjs +33 -0
  781. package/mssql-core/view-base.cjs.map +1 -0
  782. package/mssql-core/view-base.d.cts +9 -0
  783. package/mssql-core/view-base.d.ts +9 -0
  784. package/mssql-core/view-base.js +9 -0
  785. package/mssql-core/view-base.js.map +1 -0
  786. package/mssql-core/view-common.cjs +29 -0
  787. package/mssql-core/view-common.cjs.map +1 -0
  788. package/mssql-core/view-common.d.cts +1 -0
  789. package/mssql-core/view-common.d.ts +1 -0
  790. package/mssql-core/view-common.js +5 -0
  791. package/mssql-core/view-common.js.map +1 -0
  792. package/mssql-core/view.cjs +154 -0
  793. package/mssql-core/view.cjs.map +1 -0
  794. package/mssql-core/view.d.cts +63 -0
  795. package/mssql-core/view.d.ts +63 -0
  796. package/mssql-core/view.js +125 -0
  797. package/mssql-core/view.js.map +1 -0
  798. package/mysql-core/columns/bigint.cjs.map +1 -1
  799. package/mysql-core/columns/bigint.d.cts +0 -2
  800. package/mysql-core/columns/bigint.d.ts +0 -2
  801. package/mysql-core/columns/bigint.js.map +1 -1
  802. package/mysql-core/columns/binary.cjs +0 -1
  803. package/mysql-core/columns/binary.cjs.map +1 -1
  804. package/mysql-core/columns/binary.d.cts +0 -2
  805. package/mysql-core/columns/binary.d.ts +0 -2
  806. package/mysql-core/columns/binary.js +0 -1
  807. package/mysql-core/columns/binary.js.map +1 -1
  808. package/mysql-core/columns/boolean.cjs.map +1 -1
  809. package/mysql-core/columns/boolean.d.cts +0 -1
  810. package/mysql-core/columns/boolean.d.ts +0 -1
  811. package/mysql-core/columns/boolean.js.map +1 -1
  812. package/mysql-core/columns/char.cjs +0 -1
  813. package/mysql-core/columns/char.cjs.map +1 -1
  814. package/mysql-core/columns/char.d.cts +0 -2
  815. package/mysql-core/columns/char.d.ts +0 -2
  816. package/mysql-core/columns/char.js +0 -1
  817. package/mysql-core/columns/char.js.map +1 -1
  818. package/mysql-core/columns/common.cjs.map +1 -1
  819. package/mysql-core/columns/common.d.cts +1 -1
  820. package/mysql-core/columns/common.d.ts +1 -1
  821. package/mysql-core/columns/common.js.map +1 -1
  822. package/mysql-core/columns/custom.cjs.map +1 -1
  823. package/mysql-core/columns/custom.d.cts +0 -1
  824. package/mysql-core/columns/custom.d.ts +0 -1
  825. package/mysql-core/columns/custom.js.map +1 -1
  826. package/mysql-core/columns/date.cjs.map +1 -1
  827. package/mysql-core/columns/date.d.cts +0 -2
  828. package/mysql-core/columns/date.d.ts +0 -2
  829. package/mysql-core/columns/date.js.map +1 -1
  830. package/mysql-core/columns/datetime.cjs.map +1 -1
  831. package/mysql-core/columns/datetime.d.cts +0 -2
  832. package/mysql-core/columns/datetime.d.ts +0 -2
  833. package/mysql-core/columns/datetime.js.map +1 -1
  834. package/mysql-core/columns/decimal.cjs.map +1 -1
  835. package/mysql-core/columns/decimal.d.cts +0 -3
  836. package/mysql-core/columns/decimal.d.ts +0 -3
  837. package/mysql-core/columns/decimal.js.map +1 -1
  838. package/mysql-core/columns/double.cjs.map +1 -1
  839. package/mysql-core/columns/double.d.cts +0 -1
  840. package/mysql-core/columns/double.d.ts +0 -1
  841. package/mysql-core/columns/double.js.map +1 -1
  842. package/mysql-core/columns/enum.cjs.map +1 -1
  843. package/mysql-core/columns/enum.d.cts +0 -2
  844. package/mysql-core/columns/enum.d.ts +0 -2
  845. package/mysql-core/columns/enum.js.map +1 -1
  846. package/mysql-core/columns/float.cjs.map +1 -1
  847. package/mysql-core/columns/float.d.cts +0 -1
  848. package/mysql-core/columns/float.d.ts +0 -1
  849. package/mysql-core/columns/float.js.map +1 -1
  850. package/mysql-core/columns/int.cjs.map +1 -1
  851. package/mysql-core/columns/int.d.cts +0 -1
  852. package/mysql-core/columns/int.d.ts +0 -1
  853. package/mysql-core/columns/int.js.map +1 -1
  854. package/mysql-core/columns/json.cjs.map +1 -1
  855. package/mysql-core/columns/json.d.cts +0 -1
  856. package/mysql-core/columns/json.d.ts +0 -1
  857. package/mysql-core/columns/json.js.map +1 -1
  858. package/mysql-core/columns/mediumint.cjs.map +1 -1
  859. package/mysql-core/columns/mediumint.d.cts +0 -1
  860. package/mysql-core/columns/mediumint.d.ts +0 -1
  861. package/mysql-core/columns/mediumint.js.map +1 -1
  862. package/mysql-core/columns/real.cjs.map +1 -1
  863. package/mysql-core/columns/real.d.cts +0 -1
  864. package/mysql-core/columns/real.d.ts +0 -1
  865. package/mysql-core/columns/real.js.map +1 -1
  866. package/mysql-core/columns/serial.cjs.map +1 -1
  867. package/mysql-core/columns/serial.d.cts +0 -1
  868. package/mysql-core/columns/serial.d.ts +0 -1
  869. package/mysql-core/columns/serial.js.map +1 -1
  870. package/mysql-core/columns/smallint.cjs.map +1 -1
  871. package/mysql-core/columns/smallint.d.cts +0 -1
  872. package/mysql-core/columns/smallint.d.ts +0 -1
  873. package/mysql-core/columns/smallint.js.map +1 -1
  874. package/mysql-core/columns/text.cjs.map +1 -1
  875. package/mysql-core/columns/text.d.cts +0 -1
  876. package/mysql-core/columns/text.d.ts +0 -1
  877. package/mysql-core/columns/text.js.map +1 -1
  878. package/mysql-core/columns/time.cjs.map +1 -1
  879. package/mysql-core/columns/time.d.cts +0 -1
  880. package/mysql-core/columns/time.d.ts +0 -1
  881. package/mysql-core/columns/time.js.map +1 -1
  882. package/mysql-core/columns/timestamp.cjs.map +1 -1
  883. package/mysql-core/columns/timestamp.d.cts +0 -2
  884. package/mysql-core/columns/timestamp.d.ts +0 -2
  885. package/mysql-core/columns/timestamp.js.map +1 -1
  886. package/mysql-core/columns/tinyint.cjs.map +1 -1
  887. package/mysql-core/columns/tinyint.d.cts +0 -1
  888. package/mysql-core/columns/tinyint.d.ts +0 -1
  889. package/mysql-core/columns/tinyint.js.map +1 -1
  890. package/mysql-core/columns/varbinary.cjs.map +1 -1
  891. package/mysql-core/columns/varbinary.d.cts +0 -1
  892. package/mysql-core/columns/varbinary.d.ts +0 -1
  893. package/mysql-core/columns/varbinary.js.map +1 -1
  894. package/mysql-core/columns/varchar.cjs +1 -1
  895. package/mysql-core/columns/varchar.cjs.map +1 -1
  896. package/mysql-core/columns/varchar.d.cts +1 -2
  897. package/mysql-core/columns/varchar.d.ts +1 -2
  898. package/mysql-core/columns/varchar.js +1 -1
  899. package/mysql-core/columns/varchar.js.map +1 -1
  900. package/mysql-core/columns/year.cjs.map +1 -1
  901. package/mysql-core/columns/year.d.cts +0 -1
  902. package/mysql-core/columns/year.d.ts +0 -1
  903. package/mysql-core/columns/year.js.map +1 -1
  904. package/mysql-core/dialect.cjs +3 -0
  905. package/mysql-core/dialect.cjs.map +1 -1
  906. package/mysql-core/dialect.d.cts +1 -0
  907. package/mysql-core/dialect.d.ts +1 -0
  908. package/mysql-core/dialect.js +3 -0
  909. package/mysql-core/dialect.js.map +1 -1
  910. package/mysql-core/query-builders/insert.cjs.map +1 -1
  911. package/mysql-core/query-builders/insert.d.cts +2 -2
  912. package/mysql-core/query-builders/insert.d.ts +2 -2
  913. package/mysql-core/query-builders/insert.js.map +1 -1
  914. package/mysql-core/query-builders/update.cjs.map +1 -1
  915. package/mysql-core/query-builders/update.d.cts +1 -1
  916. package/mysql-core/query-builders/update.d.ts +1 -1
  917. package/mysql-core/query-builders/update.js.map +1 -1
  918. package/mysql-proxy/driver.cjs +2 -2
  919. package/mysql-proxy/driver.cjs.map +1 -1
  920. package/mysql-proxy/driver.d.cts +2 -1
  921. package/mysql-proxy/driver.d.ts +2 -1
  922. package/mysql-proxy/driver.js +2 -2
  923. package/mysql-proxy/driver.js.map +1 -1
  924. package/node-mssql/driver.cjs +117 -0
  925. package/node-mssql/driver.cjs.map +1 -0
  926. package/node-mssql/driver.d.cts +46 -0
  927. package/node-mssql/driver.d.ts +46 -0
  928. package/node-mssql/driver.js +81 -0
  929. package/node-mssql/driver.js.map +1 -0
  930. package/node-mssql/index.cjs +25 -0
  931. package/node-mssql/index.cjs.map +1 -0
  932. package/node-mssql/index.d.cts +2 -0
  933. package/node-mssql/index.d.ts +2 -0
  934. package/node-mssql/index.js +3 -0
  935. package/node-mssql/index.js.map +1 -0
  936. package/node-mssql/migrator.cjs +33 -0
  937. package/node-mssql/migrator.cjs.map +1 -0
  938. package/node-mssql/migrator.d.cts +3 -0
  939. package/node-mssql/migrator.d.ts +3 -0
  940. package/node-mssql/migrator.js +9 -0
  941. package/node-mssql/migrator.js.map +1 -0
  942. package/{effect/sqlite/driver.cjs → node-mssql/pool.cjs} +19 -32
  943. package/node-mssql/pool.cjs.map +1 -0
  944. package/node-mssql/pool.d.cts +8 -0
  945. package/node-mssql/pool.d.ts +8 -0
  946. package/node-mssql/pool.js +20 -0
  947. package/node-mssql/pool.js.map +1 -0
  948. package/node-mssql/session.cjs +256 -0
  949. package/node-mssql/session.cjs.map +1 -0
  950. package/node-mssql/session.d.cts +48 -0
  951. package/node-mssql/session.d.ts +48 -0
  952. package/node-mssql/session.js +224 -0
  953. package/node-mssql/session.js.map +1 -0
  954. package/node-postgres/session.cjs.map +1 -1
  955. package/node-postgres/session.js.map +1 -1
  956. package/package.json +1592 -237
  957. package/pg-core/columns/bigint.cjs.map +1 -1
  958. package/pg-core/columns/bigint.d.cts +0 -2
  959. package/pg-core/columns/bigint.d.ts +0 -2
  960. package/pg-core/columns/bigint.js.map +1 -1
  961. package/pg-core/columns/bigserial.cjs +1 -0
  962. package/pg-core/columns/bigserial.cjs.map +1 -1
  963. package/pg-core/columns/bigserial.d.cts +0 -2
  964. package/pg-core/columns/bigserial.d.ts +0 -2
  965. package/pg-core/columns/bigserial.js +1 -0
  966. package/pg-core/columns/bigserial.js.map +1 -1
  967. package/pg-core/columns/boolean.cjs.map +1 -1
  968. package/pg-core/columns/boolean.d.cts +0 -1
  969. package/pg-core/columns/boolean.d.ts +0 -1
  970. package/pg-core/columns/boolean.js.map +1 -1
  971. package/pg-core/columns/bytea.cjs.map +1 -1
  972. package/pg-core/columns/bytea.d.cts +0 -1
  973. package/pg-core/columns/bytea.d.ts +0 -1
  974. package/pg-core/columns/bytea.js.map +1 -1
  975. package/pg-core/columns/char.cjs +0 -1
  976. package/pg-core/columns/char.cjs.map +1 -1
  977. package/pg-core/columns/char.d.cts +0 -2
  978. package/pg-core/columns/char.d.ts +0 -2
  979. package/pg-core/columns/char.js +0 -1
  980. package/pg-core/columns/char.js.map +1 -1
  981. package/pg-core/columns/cidr.cjs.map +1 -1
  982. package/pg-core/columns/cidr.d.cts +0 -1
  983. package/pg-core/columns/cidr.d.ts +0 -1
  984. package/pg-core/columns/cidr.js.map +1 -1
  985. package/pg-core/columns/common.cjs +11 -10
  986. package/pg-core/columns/common.cjs.map +1 -1
  987. package/pg-core/columns/common.d.cts +3 -2
  988. package/pg-core/columns/common.d.ts +3 -2
  989. package/pg-core/columns/common.js +11 -10
  990. package/pg-core/columns/common.js.map +1 -1
  991. package/pg-core/columns/custom.cjs.map +1 -1
  992. package/pg-core/columns/custom.d.cts +0 -1
  993. package/pg-core/columns/custom.d.ts +0 -1
  994. package/pg-core/columns/custom.js.map +1 -1
  995. package/pg-core/columns/date.cjs.map +1 -1
  996. package/pg-core/columns/date.d.cts +0 -2
  997. package/pg-core/columns/date.d.ts +0 -2
  998. package/pg-core/columns/date.js.map +1 -1
  999. package/pg-core/columns/double-precision.cjs.map +1 -1
  1000. package/pg-core/columns/double-precision.d.cts +0 -1
  1001. package/pg-core/columns/double-precision.d.ts +0 -1
  1002. package/pg-core/columns/double-precision.js.map +1 -1
  1003. package/pg-core/columns/enum.cjs.map +1 -1
  1004. package/pg-core/columns/enum.d.cts +0 -2
  1005. package/pg-core/columns/enum.d.ts +0 -2
  1006. package/pg-core/columns/enum.js.map +1 -1
  1007. package/pg-core/columns/inet.cjs.map +1 -1
  1008. package/pg-core/columns/inet.d.cts +0 -1
  1009. package/pg-core/columns/inet.d.ts +0 -1
  1010. package/pg-core/columns/inet.js.map +1 -1
  1011. package/pg-core/columns/integer.cjs.map +1 -1
  1012. package/pg-core/columns/integer.d.cts +0 -1
  1013. package/pg-core/columns/integer.d.ts +0 -1
  1014. package/pg-core/columns/integer.js.map +1 -1
  1015. package/pg-core/columns/interval.cjs.map +1 -1
  1016. package/pg-core/columns/interval.d.cts +0 -1
  1017. package/pg-core/columns/interval.d.ts +0 -1
  1018. package/pg-core/columns/interval.js.map +1 -1
  1019. package/pg-core/columns/json.cjs.map +1 -1
  1020. package/pg-core/columns/json.d.cts +0 -1
  1021. package/pg-core/columns/json.d.ts +0 -1
  1022. package/pg-core/columns/json.js.map +1 -1
  1023. package/pg-core/columns/jsonb.cjs.map +1 -1
  1024. package/pg-core/columns/jsonb.d.cts +0 -1
  1025. package/pg-core/columns/jsonb.d.ts +0 -1
  1026. package/pg-core/columns/jsonb.js.map +1 -1
  1027. package/pg-core/columns/line.cjs +2 -0
  1028. package/pg-core/columns/line.cjs.map +1 -1
  1029. package/pg-core/columns/line.d.cts +2 -2
  1030. package/pg-core/columns/line.d.ts +2 -2
  1031. package/pg-core/columns/line.js +2 -0
  1032. package/pg-core/columns/line.js.map +1 -1
  1033. package/pg-core/columns/macaddr.cjs.map +1 -1
  1034. package/pg-core/columns/macaddr.d.cts +0 -1
  1035. package/pg-core/columns/macaddr.d.ts +0 -1
  1036. package/pg-core/columns/macaddr.js.map +1 -1
  1037. package/pg-core/columns/macaddr8.cjs.map +1 -1
  1038. package/pg-core/columns/macaddr8.d.cts +0 -1
  1039. package/pg-core/columns/macaddr8.d.ts +0 -1
  1040. package/pg-core/columns/macaddr8.js.map +1 -1
  1041. package/pg-core/columns/numeric.cjs.map +1 -1
  1042. package/pg-core/columns/numeric.d.cts +0 -3
  1043. package/pg-core/columns/numeric.d.ts +0 -3
  1044. package/pg-core/columns/numeric.js.map +1 -1
  1045. package/pg-core/columns/point.cjs +2 -0
  1046. package/pg-core/columns/point.cjs.map +1 -1
  1047. package/pg-core/columns/point.d.cts +2 -2
  1048. package/pg-core/columns/point.d.ts +2 -2
  1049. package/pg-core/columns/point.js +2 -0
  1050. package/pg-core/columns/point.js.map +1 -1
  1051. package/pg-core/columns/postgis_extension/geometry.cjs +14 -8
  1052. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  1053. package/pg-core/columns/postgis_extension/geometry.d.cts +16 -6
  1054. package/pg-core/columns/postgis_extension/geometry.d.ts +16 -6
  1055. package/pg-core/columns/postgis_extension/geometry.js +14 -8
  1056. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  1057. package/pg-core/columns/postgis_extension/utils.cjs +3 -3
  1058. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -1
  1059. package/pg-core/columns/postgis_extension/utils.d.cts +4 -1
  1060. package/pg-core/columns/postgis_extension/utils.d.ts +4 -1
  1061. package/pg-core/columns/postgis_extension/utils.js +3 -3
  1062. package/pg-core/columns/postgis_extension/utils.js.map +1 -1
  1063. package/pg-core/columns/real.cjs.map +1 -1
  1064. package/pg-core/columns/real.d.cts +0 -1
  1065. package/pg-core/columns/real.d.ts +0 -1
  1066. package/pg-core/columns/real.js.map +1 -1
  1067. package/pg-core/columns/serial.cjs.map +1 -1
  1068. package/pg-core/columns/serial.d.cts +0 -1
  1069. package/pg-core/columns/serial.d.ts +0 -1
  1070. package/pg-core/columns/serial.js.map +1 -1
  1071. package/pg-core/columns/smallint.cjs.map +1 -1
  1072. package/pg-core/columns/smallint.d.cts +0 -1
  1073. package/pg-core/columns/smallint.d.ts +0 -1
  1074. package/pg-core/columns/smallint.js.map +1 -1
  1075. package/pg-core/columns/smallserial.cjs.map +1 -1
  1076. package/pg-core/columns/smallserial.d.cts +0 -1
  1077. package/pg-core/columns/smallserial.d.ts +0 -1
  1078. package/pg-core/columns/smallserial.js.map +1 -1
  1079. package/pg-core/columns/text.cjs.map +1 -1
  1080. package/pg-core/columns/text.d.cts +0 -1
  1081. package/pg-core/columns/text.d.ts +0 -1
  1082. package/pg-core/columns/text.js.map +1 -1
  1083. package/pg-core/columns/time.cjs.map +1 -1
  1084. package/pg-core/columns/time.d.cts +0 -1
  1085. package/pg-core/columns/time.d.ts +0 -1
  1086. package/pg-core/columns/time.js.map +1 -1
  1087. package/pg-core/columns/timestamp.cjs.map +1 -1
  1088. package/pg-core/columns/timestamp.d.cts +0 -2
  1089. package/pg-core/columns/timestamp.d.ts +0 -2
  1090. package/pg-core/columns/timestamp.js.map +1 -1
  1091. package/pg-core/columns/uuid.cjs.map +1 -1
  1092. package/pg-core/columns/uuid.d.cts +0 -1
  1093. package/pg-core/columns/uuid.d.ts +0 -1
  1094. package/pg-core/columns/uuid.js.map +1 -1
  1095. package/pg-core/columns/varchar.cjs.map +1 -1
  1096. package/pg-core/columns/varchar.d.cts +0 -1
  1097. package/pg-core/columns/varchar.d.ts +0 -1
  1098. package/pg-core/columns/varchar.js.map +1 -1
  1099. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  1100. package/pg-core/columns/vector_extension/bit.d.cts +0 -1
  1101. package/pg-core/columns/vector_extension/bit.d.ts +0 -1
  1102. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  1103. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  1104. package/pg-core/columns/vector_extension/halfvec.d.cts +0 -1
  1105. package/pg-core/columns/vector_extension/halfvec.d.ts +0 -1
  1106. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  1107. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  1108. package/pg-core/columns/vector_extension/sparsevec.d.cts +0 -1
  1109. package/pg-core/columns/vector_extension/sparsevec.d.ts +0 -1
  1110. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  1111. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  1112. package/pg-core/columns/vector_extension/vector.d.cts +0 -1
  1113. package/pg-core/columns/vector_extension/vector.d.ts +0 -1
  1114. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  1115. package/pg-core/foreign-keys.cjs +4 -0
  1116. package/pg-core/foreign-keys.cjs.map +1 -1
  1117. package/pg-core/foreign-keys.d.cts +2 -0
  1118. package/pg-core/foreign-keys.d.ts +2 -0
  1119. package/pg-core/foreign-keys.js +4 -0
  1120. package/pg-core/foreign-keys.js.map +1 -1
  1121. package/pg-core/primary-keys.cjs +3 -0
  1122. package/pg-core/primary-keys.cjs.map +1 -1
  1123. package/pg-core/primary-keys.d.cts +1 -0
  1124. package/pg-core/primary-keys.d.ts +1 -0
  1125. package/pg-core/primary-keys.js +3 -0
  1126. package/pg-core/primary-keys.js.map +1 -1
  1127. package/pg-core/query-builders/insert.cjs.map +1 -1
  1128. package/pg-core/query-builders/insert.d.cts +6 -9
  1129. package/pg-core/query-builders/insert.d.ts +6 -9
  1130. package/pg-core/query-builders/insert.js.map +1 -1
  1131. package/pg-core/query-builders/update.cjs.map +1 -1
  1132. package/pg-core/query-builders/update.d.cts +1 -1
  1133. package/pg-core/query-builders/update.d.ts +1 -1
  1134. package/pg-core/query-builders/update.js.map +1 -1
  1135. package/pg-core/unique-constraint.cjs +5 -0
  1136. package/pg-core/unique-constraint.cjs.map +1 -1
  1137. package/pg-core/unique-constraint.d.cts +2 -0
  1138. package/pg-core/unique-constraint.d.ts +2 -0
  1139. package/pg-core/unique-constraint.js +5 -0
  1140. package/pg-core/unique-constraint.js.map +1 -1
  1141. package/singlestore-core/columns/bigint.cjs.map +1 -1
  1142. package/singlestore-core/columns/bigint.d.cts +0 -2
  1143. package/singlestore-core/columns/bigint.d.ts +0 -2
  1144. package/singlestore-core/columns/bigint.js.map +1 -1
  1145. package/singlestore-core/columns/binary.cjs +0 -1
  1146. package/singlestore-core/columns/binary.cjs.map +1 -1
  1147. package/singlestore-core/columns/binary.d.cts +0 -2
  1148. package/singlestore-core/columns/binary.d.ts +0 -2
  1149. package/singlestore-core/columns/binary.js +0 -1
  1150. package/singlestore-core/columns/binary.js.map +1 -1
  1151. package/singlestore-core/columns/boolean.cjs.map +1 -1
  1152. package/singlestore-core/columns/boolean.d.cts +0 -1
  1153. package/singlestore-core/columns/boolean.d.ts +0 -1
  1154. package/singlestore-core/columns/boolean.js.map +1 -1
  1155. package/singlestore-core/columns/char.cjs +0 -1
  1156. package/singlestore-core/columns/char.cjs.map +1 -1
  1157. package/singlestore-core/columns/char.d.cts +0 -2
  1158. package/singlestore-core/columns/char.d.ts +0 -2
  1159. package/singlestore-core/columns/char.js +0 -1
  1160. package/singlestore-core/columns/char.js.map +1 -1
  1161. package/singlestore-core/columns/common.cjs.map +1 -1
  1162. package/singlestore-core/columns/common.d.cts +1 -1
  1163. package/singlestore-core/columns/common.d.ts +1 -1
  1164. package/singlestore-core/columns/common.js.map +1 -1
  1165. package/singlestore-core/columns/custom.cjs.map +1 -1
  1166. package/singlestore-core/columns/custom.d.cts +0 -1
  1167. package/singlestore-core/columns/custom.d.ts +0 -1
  1168. package/singlestore-core/columns/custom.js.map +1 -1
  1169. package/singlestore-core/columns/date.cjs.map +1 -1
  1170. package/singlestore-core/columns/date.d.cts +0 -2
  1171. package/singlestore-core/columns/date.d.ts +0 -2
  1172. package/singlestore-core/columns/date.js.map +1 -1
  1173. package/singlestore-core/columns/datetime.cjs.map +1 -1
  1174. package/singlestore-core/columns/datetime.d.cts +0 -2
  1175. package/singlestore-core/columns/datetime.d.ts +0 -2
  1176. package/singlestore-core/columns/datetime.js.map +1 -1
  1177. package/singlestore-core/columns/decimal.cjs.map +1 -1
  1178. package/singlestore-core/columns/decimal.d.cts +0 -3
  1179. package/singlestore-core/columns/decimal.d.ts +0 -3
  1180. package/singlestore-core/columns/decimal.js.map +1 -1
  1181. package/singlestore-core/columns/double.cjs.map +1 -1
  1182. package/singlestore-core/columns/double.d.cts +0 -1
  1183. package/singlestore-core/columns/double.d.ts +0 -1
  1184. package/singlestore-core/columns/double.js.map +1 -1
  1185. package/singlestore-core/columns/enum.cjs.map +1 -1
  1186. package/singlestore-core/columns/enum.d.cts +0 -1
  1187. package/singlestore-core/columns/enum.d.ts +0 -1
  1188. package/singlestore-core/columns/enum.js.map +1 -1
  1189. package/singlestore-core/columns/float.cjs.map +1 -1
  1190. package/singlestore-core/columns/float.d.cts +0 -1
  1191. package/singlestore-core/columns/float.d.ts +0 -1
  1192. package/singlestore-core/columns/float.js.map +1 -1
  1193. package/singlestore-core/columns/int.cjs.map +1 -1
  1194. package/singlestore-core/columns/int.d.cts +0 -1
  1195. package/singlestore-core/columns/int.d.ts +0 -1
  1196. package/singlestore-core/columns/int.js.map +1 -1
  1197. package/singlestore-core/columns/json.cjs.map +1 -1
  1198. package/singlestore-core/columns/json.d.cts +0 -1
  1199. package/singlestore-core/columns/json.d.ts +0 -1
  1200. package/singlestore-core/columns/json.js.map +1 -1
  1201. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  1202. package/singlestore-core/columns/mediumint.d.cts +0 -1
  1203. package/singlestore-core/columns/mediumint.d.ts +0 -1
  1204. package/singlestore-core/columns/mediumint.js.map +1 -1
  1205. package/singlestore-core/columns/real.cjs.map +1 -1
  1206. package/singlestore-core/columns/real.d.cts +0 -1
  1207. package/singlestore-core/columns/real.d.ts +0 -1
  1208. package/singlestore-core/columns/real.js.map +1 -1
  1209. package/singlestore-core/columns/serial.cjs.map +1 -1
  1210. package/singlestore-core/columns/serial.d.cts +0 -1
  1211. package/singlestore-core/columns/serial.d.ts +0 -1
  1212. package/singlestore-core/columns/serial.js.map +1 -1
  1213. package/singlestore-core/columns/smallint.cjs.map +1 -1
  1214. package/singlestore-core/columns/smallint.d.cts +0 -1
  1215. package/singlestore-core/columns/smallint.d.ts +0 -1
  1216. package/singlestore-core/columns/smallint.js.map +1 -1
  1217. package/singlestore-core/columns/text.cjs.map +1 -1
  1218. package/singlestore-core/columns/text.d.cts +0 -1
  1219. package/singlestore-core/columns/text.d.ts +0 -1
  1220. package/singlestore-core/columns/text.js.map +1 -1
  1221. package/singlestore-core/columns/time.cjs.map +1 -1
  1222. package/singlestore-core/columns/time.d.cts +0 -1
  1223. package/singlestore-core/columns/time.d.ts +0 -1
  1224. package/singlestore-core/columns/time.js.map +1 -1
  1225. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  1226. package/singlestore-core/columns/timestamp.d.cts +0 -2
  1227. package/singlestore-core/columns/timestamp.d.ts +0 -2
  1228. package/singlestore-core/columns/timestamp.js.map +1 -1
  1229. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  1230. package/singlestore-core/columns/tinyint.d.cts +0 -1
  1231. package/singlestore-core/columns/tinyint.d.ts +0 -1
  1232. package/singlestore-core/columns/tinyint.js.map +1 -1
  1233. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  1234. package/singlestore-core/columns/varbinary.d.cts +0 -1
  1235. package/singlestore-core/columns/varbinary.d.ts +0 -1
  1236. package/singlestore-core/columns/varbinary.js.map +1 -1
  1237. package/singlestore-core/columns/varchar.cjs.map +1 -1
  1238. package/singlestore-core/columns/varchar.d.cts +0 -1
  1239. package/singlestore-core/columns/varchar.d.ts +0 -1
  1240. package/singlestore-core/columns/varchar.js.map +1 -1
  1241. package/singlestore-core/columns/vector.cjs.map +1 -1
  1242. package/singlestore-core/columns/vector.d.cts +0 -2
  1243. package/singlestore-core/columns/vector.d.ts +0 -2
  1244. package/singlestore-core/columns/vector.js.map +1 -1
  1245. package/singlestore-core/columns/year.cjs.map +1 -1
  1246. package/singlestore-core/columns/year.d.cts +0 -1
  1247. package/singlestore-core/columns/year.d.ts +0 -1
  1248. package/singlestore-core/columns/year.js.map +1 -1
  1249. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  1250. package/singlestore-core/query-builders/insert.d.cts +1 -1
  1251. package/singlestore-core/query-builders/insert.d.ts +1 -1
  1252. package/singlestore-core/query-builders/insert.js.map +1 -1
  1253. package/singlestore-core/query-builders/update.cjs.map +1 -1
  1254. package/singlestore-core/query-builders/update.d.cts +1 -1
  1255. package/singlestore-core/query-builders/update.d.ts +1 -1
  1256. package/singlestore-core/query-builders/update.js.map +1 -1
  1257. package/sql/sql.cjs +10 -3
  1258. package/sql/sql.cjs.map +1 -1
  1259. package/sql/sql.d.cts +1 -1
  1260. package/sql/sql.d.ts +1 -1
  1261. package/sql/sql.js +10 -3
  1262. package/sql/sql.js.map +1 -1
  1263. package/sqlite-core/columns/blob.cjs.map +1 -1
  1264. package/sqlite-core/columns/blob.d.cts +0 -3
  1265. package/sqlite-core/columns/blob.d.ts +0 -3
  1266. package/sqlite-core/columns/blob.js.map +1 -1
  1267. package/sqlite-core/columns/custom.cjs.map +1 -1
  1268. package/sqlite-core/columns/custom.d.cts +0 -1
  1269. package/sqlite-core/columns/custom.d.ts +0 -1
  1270. package/sqlite-core/columns/custom.js.map +1 -1
  1271. package/sqlite-core/columns/integer.cjs.map +1 -1
  1272. package/sqlite-core/columns/integer.d.cts +0 -3
  1273. package/sqlite-core/columns/integer.d.ts +0 -3
  1274. package/sqlite-core/columns/integer.js.map +1 -1
  1275. package/sqlite-core/columns/numeric.cjs.map +1 -1
  1276. package/sqlite-core/columns/numeric.d.cts +0 -3
  1277. package/sqlite-core/columns/numeric.d.ts +0 -3
  1278. package/sqlite-core/columns/numeric.js.map +1 -1
  1279. package/sqlite-core/columns/real.cjs.map +1 -1
  1280. package/sqlite-core/columns/real.d.cts +0 -1
  1281. package/sqlite-core/columns/real.d.ts +0 -1
  1282. package/sqlite-core/columns/real.js.map +1 -1
  1283. package/sqlite-core/columns/text.cjs.map +1 -1
  1284. package/sqlite-core/columns/text.d.cts +0 -2
  1285. package/sqlite-core/columns/text.d.ts +0 -2
  1286. package/sqlite-core/columns/text.js.map +1 -1
  1287. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  1288. package/sqlite-core/query-builders/insert.d.cts +2 -2
  1289. package/sqlite-core/query-builders/insert.d.ts +2 -2
  1290. package/sqlite-core/query-builders/insert.js.map +1 -1
  1291. package/sqlite-core/query-builders/update.cjs.map +1 -1
  1292. package/sqlite-core/query-builders/update.d.cts +1 -1
  1293. package/sqlite-core/query-builders/update.d.ts +1 -1
  1294. package/sqlite-core/query-builders/update.js.map +1 -1
  1295. package/sqlite-core/session.cjs.map +1 -1
  1296. package/sqlite-core/session.d.cts +1 -1
  1297. package/sqlite-core/session.d.ts +1 -1
  1298. package/sqlite-core/session.js.map +1 -1
  1299. package/version.cjs +1 -1
  1300. package/version.d.cts +1 -1
  1301. package/version.d.ts +1 -1
  1302. package/version.js +1 -1
  1303. package/effect/effect-wrapper.cjs.map +0 -1
  1304. package/effect/effect-wrapper.d.cts +0 -8
  1305. package/effect/effect-wrapper.d.ts +0 -8
  1306. package/effect/effect-wrapper.js +0 -22
  1307. package/effect/effect-wrapper.js.map +0 -1
  1308. package/effect/sqlite/db.cjs.map +0 -1
  1309. package/effect/sqlite/db.js.map +0 -1
  1310. package/effect/sqlite/driver.cjs.map +0 -1
  1311. package/effect/sqlite/driver.d.cts +0 -4
  1312. package/effect/sqlite/driver.d.ts +0 -4
  1313. package/effect/sqlite/driver.js +0 -33
  1314. package/effect/sqlite/driver.js.map +0 -1
  1315. package/effect/sqlite/index.cjs.map +0 -1
  1316. package/effect/sqlite/index.js.map +0 -1
  1317. package/effect/sqlite/query-builders/select.cjs +0 -122
  1318. package/effect/sqlite/query-builders/select.cjs.map +0 -1
  1319. package/effect/sqlite/query-builders/select.d.cts +0 -62
  1320. package/effect/sqlite/query-builders/select.d.ts +0 -62
  1321. package/effect/sqlite/query-builders/select.js +0 -97
  1322. package/effect/sqlite/query-builders/select.js.map +0 -1
  1323. package/effect/sqlite/session.cjs +0 -237
  1324. package/effect/sqlite/session.cjs.map +0 -1
  1325. package/effect/sqlite/session.d.cts +0 -79
  1326. package/effect/sqlite/session.d.ts +0 -79
  1327. package/effect/sqlite/session.js +0 -212
  1328. package/effect/sqlite/session.js.map +0 -1
  1329. /package/{effect/sqlite → cockroach}/index.d.cts +0 -0
  1330. /package/{effect/sqlite → cockroach}/index.d.ts +0 -0
  1331. /package/{effect/sqlite → cockroach}/index.js +0 -0
@@ -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":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError, DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprotected executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\ttry {\n\t\t\t\tconst [res] = await Promise.all([\n\t\t\t\t\tquery(),\n\t\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t\t]);\n\t\t\t\treturn res;\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\tthis.cacheConfig.autoInvalidate,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = await query();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t\t}\n\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\ttry {\n\t\t\treturn await query();\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t}\n\t}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(\n\t\t\tquery,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\tabstract prepareRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareRelationalQuery(query, fields, executeMethod, customResultMapper);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\tprotected relations: TRelations,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t\trowModeRQB?: boolean,\n\t\tforbidJsonb?: boolean,\n\t) {\n\t\tsuper(resultType, dialect, session, relations, schema, rowModeRQB, forbidJsonb);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError, DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\ttry {\n\t\t\t\tconst [res] = await Promise.all([\n\t\t\t\t\tquery(),\n\t\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t\t]);\n\t\t\t\treturn res;\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\tthis.cacheConfig.autoInvalidate,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = await query();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t\t}\n\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\ttry {\n\t\t\treturn await query();\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t}\n\t}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(\n\t\t\tquery,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\tabstract prepareRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareRelationalQuery(query, fields, executeMethod, customResultMapper);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\tprotected relations: TRelations,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t\trowModeRQB?: boolean,\n\t\tforbidJsonb?: boolean,\n\t) {\n\t\tsuper(resultType, dialect, session, relations, schema, rowModeRQB, forbidJsonb);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -28,7 +28,7 @@ export declare class ExecuteResultSync<T> extends QueryPromise<T> {
28
28
  export type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult> : ExecuteResultSync<TResult>;
29
29
  export declare abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {
30
30
  private mode;
31
- protected executeMethod: SQLiteExecuteMethod;
31
+ private executeMethod;
32
32
  protected query: Query;
33
33
  private cache?;
34
34
  private queryMetadata?;
@@ -28,7 +28,7 @@ export declare class ExecuteResultSync<T> extends QueryPromise<T> {
28
28
  export type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult> : ExecuteResultSync<TResult>;
29
29
  export declare abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {
30
30
  private mode;
31
- protected executeMethod: SQLiteExecuteMethod;
31
+ private executeMethod;
32
32
  protected query: Query;
33
33
  private cache?;
34
34
  private queryMetadata?;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError, DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprotected executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\ttry {\n\t\t\t\tconst [res] = await Promise.all([\n\t\t\t\t\tquery(),\n\t\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t\t]);\n\t\t\t\treturn res;\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\tthis.cacheConfig.autoInvalidate,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = await query();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t\t}\n\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\ttry {\n\t\t\treturn await query();\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t}\n\t}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(\n\t\t\tquery,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\tabstract prepareRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareRelationalQuery(query, fields, executeMethod, customResultMapper);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\tprotected relations: TRelations,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t\trowModeRQB?: boolean,\n\t\tforbidJsonb?: boolean,\n\t) {\n\t\tsuper(resultType, dialect, session, relations, schema, rowModeRQB, forbidJsonb);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { type Cache, hashQuery, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError, DrizzleQueryError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\ttry {\n\t\t\t\tconst [res] = await Promise.all([\n\t\t\t\t\tquery(),\n\t\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t\t]);\n\t\t\t\treturn res;\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\ttry {\n\t\t\t\treturn await query();\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t}\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\tthis.cacheConfig.autoInvalidate,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tlet result;\n\t\t\t\ttry {\n\t\t\t\t\tresult = await query();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t\t\t}\n\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\ttry {\n\t\t\treturn await query();\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e as Error);\n\t\t}\n\t}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(\n\t\t\tquery,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\tabstract prepareRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareRelationalQuery(query, fields, executeMethod, customResultMapper);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TRelations, TSchema>,\n\t\tprotected relations: TRelations,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t\trowModeRQB?: boolean,\n\t\tforbidJsonb?: boolean,\n\t) {\n\t\tsuper(resultType, dialect, session, relations, schema, rowModeRQB, forbidJsonb);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
package/version.cjs CHANGED
@@ -26,7 +26,7 @@ __export(version_exports, {
26
26
  module.exports = __toCommonJS(version_exports);
27
27
 
28
28
  // package.json
29
- var version = "1.0.0-beta.1-cdf226f";
29
+ var version = "1.0.0-beta.1-2d0c9fd";
30
30
 
31
31
  // src/version.ts
32
32
  var compatibilityVersion = 11;
package/version.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.0-beta.1-cdf226f";
1
+ var version = "1.0.0-beta.1-2d0c9fd";
2
2
 
3
3
  declare const compatibilityVersion = 11;
4
4
 
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.0-beta.1-cdf226f";
1
+ var version = "1.0.0-beta.1-2d0c9fd";
2
2
 
3
3
  declare const compatibilityVersion = 11;
4
4
 
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "1.0.0-beta.1-cdf226f";
2
+ var version = "1.0.0-beta.1-2d0c9fd";
3
3
 
4
4
  // src/version.ts
5
5
  var compatibilityVersion = 11;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/effect/effect-wrapper.ts"],"sourcesContent":["import type { SqlClient } from '@effect/sql/SqlClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport type { Effect } from 'effect';\n\ninterface EffectWrappable {\n\teffect: (placeholderValues?: Record<string, unknown>) => Effect.Effect<any, SqlError, SqlClient>;\n}\n\nexport function effectWrap<T extends EffectWrappable>(target: T): T {\n\tconst tryPromise = target.effect();\n\n\treturn new Proxy(target, {\n\t\tget(target, p) {\n\t\t\tif (typeof p === 'string' && ['then', 'catch', 'finally'].includes(p)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Cannot use Effect query as promise. Use `yield* query` or `Effect.runPromise(query)` instead.',\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (p in target) return target[p as keyof EffectWrappable];\n\n\t\t\treturn tryPromise[p as keyof typeof tryPromise];\n\t\t},\n\t\tset(target, p, newValue) {\n\t\t\tif (p in target) return (<any> target[p as keyof typeof target]) = newValue as any;\n\n\t\t\treturn (<any> tryPromise[p as keyof typeof tryPromise]) = newValue;\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,SAAS,WAAsC,QAAc;AACnE,QAAM,aAAa,OAAO,OAAO;AAEjC,SAAO,IAAI,MAAM,QAAQ;AAAA,IACxB,IAAIA,SAAQ,GAAG;AACd,UAAI,OAAO,MAAM,YAAY,CAAC,QAAQ,SAAS,SAAS,EAAE,SAAS,CAAC,GAAG;AACtE,cAAM,IAAI;AAAA,UACT;AAAA,QACD;AAAA,MACD;AACA,UAAI,KAAKA,QAAQ,QAAOA,QAAO,CAA0B;AAEzD,aAAO,WAAW,CAA4B;AAAA,IAC/C;AAAA,IACA,IAAIA,SAAQ,GAAG,UAAU;AACxB,UAAI,KAAKA,QAAQ,QAAcA,QAAO,CAAwB,IAAK;AAEnE,aAAc,WAAW,CAA4B,IAAK;AAAA,IAC3D;AAAA,EACD,CAAC;AACF;","names":["target"]}
@@ -1,8 +0,0 @@
1
- import type { SqlClient } from '@effect/sql/SqlClient';
2
- import type { SqlError } from '@effect/sql/SqlError';
3
- import type { Effect } from 'effect';
4
- interface EffectWrappable {
5
- effect: (placeholderValues?: Record<string, unknown>) => Effect.Effect<any, SqlError, SqlClient>;
6
- }
7
- export declare function effectWrap<T extends EffectWrappable>(target: T): T;
8
- export {};
@@ -1,8 +0,0 @@
1
- import type { SqlClient } from '@effect/sql/SqlClient';
2
- import type { SqlError } from '@effect/sql/SqlError';
3
- import type { Effect } from 'effect';
4
- interface EffectWrappable {
5
- effect: (placeholderValues?: Record<string, unknown>) => Effect.Effect<any, SqlError, SqlClient>;
6
- }
7
- export declare function effectWrap<T extends EffectWrappable>(target: T): T;
8
- export {};
@@ -1,22 +0,0 @@
1
- function effectWrap(target) {
2
- const tryPromise = target.effect();
3
- return new Proxy(target, {
4
- get(target2, p) {
5
- if (typeof p === "string" && ["then", "catch", "finally"].includes(p)) {
6
- throw new Error(
7
- "Cannot use Effect query as promise. Use `yield* query` or `Effect.runPromise(query)` instead."
8
- );
9
- }
10
- if (p in target2) return target2[p];
11
- return tryPromise[p];
12
- },
13
- set(target2, p, newValue) {
14
- if (p in target2) return target2[p] = newValue;
15
- return tryPromise[p] = newValue;
16
- }
17
- });
18
- }
19
- export {
20
- effectWrap
21
- };
22
- //# sourceMappingURL=effect-wrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/effect/effect-wrapper.ts"],"sourcesContent":["import type { SqlClient } from '@effect/sql/SqlClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport type { Effect } from 'effect';\n\ninterface EffectWrappable {\n\teffect: (placeholderValues?: Record<string, unknown>) => Effect.Effect<any, SqlError, SqlClient>;\n}\n\nexport function effectWrap<T extends EffectWrappable>(target: T): T {\n\tconst tryPromise = target.effect();\n\n\treturn new Proxy(target, {\n\t\tget(target, p) {\n\t\t\tif (typeof p === 'string' && ['then', 'catch', 'finally'].includes(p)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Cannot use Effect query as promise. Use `yield* query` or `Effect.runPromise(query)` instead.',\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (p in target) return target[p as keyof EffectWrappable];\n\n\t\t\treturn tryPromise[p as keyof typeof tryPromise];\n\t\t},\n\t\tset(target, p, newValue) {\n\t\t\tif (p in target) return (<any> target[p as keyof typeof target]) = newValue as any;\n\n\t\t\treturn (<any> tryPromise[p as keyof typeof tryPromise]) = newValue;\n\t\t},\n\t});\n}\n"],"mappings":"AAQO,SAAS,WAAsC,QAAc;AACnE,QAAM,aAAa,OAAO,OAAO;AAEjC,SAAO,IAAI,MAAM,QAAQ;AAAA,IACxB,IAAIA,SAAQ,GAAG;AACd,UAAI,OAAO,MAAM,YAAY,CAAC,QAAQ,SAAS,SAAS,EAAE,SAAS,CAAC,GAAG;AACtE,cAAM,IAAI;AAAA,UACT;AAAA,QACD;AAAA,MACD;AACA,UAAI,KAAKA,QAAQ,QAAOA,QAAO,CAA0B;AAEzD,aAAO,WAAW,CAA4B;AAAA,IAC/C;AAAA,IACA,IAAIA,SAAQ,GAAG,UAAU;AACxB,UAAI,KAAKA,QAAQ,QAAcA,QAAO,CAAwB,IAAK;AAEnE,aAAc,WAAW,CAA4B,IAAK;AAAA,IAC3D;AAAA,EACD,CAAC;AACF;","names":["target"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/effect/sqlite/db.ts"],"sourcesContent":["import type { SqliteClient } from '@effect/sql-sqlite-node/SqliteClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport type { Effect } from 'effect/Effect';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { _RelationalQueryBuilder } from '~/sqlite-core/query-builders/_query.ts';\nimport { SQLiteCountBuilder } from '~/sqlite-core/query-builders/count.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport { RelationalQueryBuilder } from '~/sqlite-core/query-builders/query.ts';\nimport type { SelectedFields } from '~/sqlite-core/query-builders/select.types.ts';\nimport type { Result, SQLiteTransaction, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { WithBuilder } from '~/sqlite-core/subquery.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { SQLiteViewBase } from '~/sqlite-core/view-base.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { EffectSQLiteSelectBuilder } from './query-builders/select.ts';\nimport type { EffectSQLiteSession } from './session.ts';\n\nexport class EffectSQLiteDatabase<\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'EffectSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t\treadonly relations: TRelations;\n\t};\n\n\t/** @deprecated */\n\t_query: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<'sync', TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\t// TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas\n\tquery: {\n\t\t[K in keyof TRelations]: RelationalQueryBuilder<\n\t\t\t'sync',\n\t\t\tTRelations,\n\t\t\tTRelations[K]\n\t\t>;\n\t};\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }['sync'],\n\t\t/** @internal */\n\t\treadonly session: EffectSQLiteSession<TFullSchema, TRelations, TSchema>,\n\t\trelations: TRelations,\n\t\t_schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly rowModeRQB?: boolean,\n\t\treadonly forbidJsonb?: boolean,\n\t) {\n\t\tthis._ = _schema\n\t\t\t? {\n\t\t\t\tschema: _schema.schema,\n\t\t\t\tfullSchema: _schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: _schema.tableNamesMap,\n\t\t\t\trelations,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t\trelations,\n\t\t\t};\n\n\t\tthis._query = {} as typeof this['_query'];\n\t\tconst query = this._query as {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<'sync', TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new _RelationalQueryBuilder(\n\t\t\t\t\t'sync',\n\t\t\t\t\t_schema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\t_schema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t\tthis.query = {} as typeof this['query'];\n\t\tfor (const [tableName, relation] of Object.entries(relations)) {\n\t\t\t(this.query as EffectSQLiteDatabase<\n\t\t\t\tTSchema,\n\t\t\t\tAnyRelations,\n\t\t\t\tV1.TablesRelationalConfig\n\t\t\t>['query'])[tableName] = new RelationalQueryBuilder(\n\t\t\t\t'sync',\n\t\t\t\trelations,\n\t\t\t\trelations[relation.name]!.table as SQLiteTable,\n\t\t\t\trelation,\n\t\t\t\tdialect,\n\t\t\t\tsession as EffectSQLiteSession<any, any, any>,\n\t\t\t\trowModeRQB,\n\t\t\t\tforbidJsonb,\n\t\t\t);\n\t\t}\n\t\tthis.$cache = { invalidate: async (_params: any) => {} };\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = yield* db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = yield* db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with: WithBuilder = (alias: string, selection?: ColumnsSelection) => {\n\t\tconst self = this;\n\t\tconst as = (\n\t\t\tqb:\n\t\t\t\t| TypedQueryBuilder<ColumnsSelection | undefined>\n\t\t\t\t| SQL\n\t\t\t\t| ((qb: QueryBuilder) => TypedQueryBuilder<ColumnsSelection | undefined> | SQL),\n\t\t) => {\n\t\t\tif (typeof qb === 'function') {\n\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t}\n\n\t\t\treturn new Proxy(\n\t\t\t\tnew WithSubquery(\n\t\t\t\t\tqb.getSQL(),\n\t\t\t\t\tselection ?? ('getSelectedFields' in qb ? qb.getSelectedFields() ?? {} : {}) as SelectedFields,\n\t\t\t\t\talias,\n\t\t\t\t\ttrue,\n\t\t\t\t),\n\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t);\n\t\t};\n\t\treturn { as };\n\t};\n\n\t$count(\n\t\tsource: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new SQLiteCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = yield* db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = yield* db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = yield* db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = yield* db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): EffectSQLiteSelectBuilder<undefined>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): EffectSQLiteSelectBuilder<TSelection>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * yield* db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * yield* db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): EffectSQLiteSelectBuilder<undefined>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): EffectSQLiteSelectBuilder<TSelection>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * yield* db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = yield* db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * yield* db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = yield* db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * yield* db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * yield* db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = yield* db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = yield* db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = yield* db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = yield* db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): EffectSQLiteSelectBuilder<undefined>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): EffectSQLiteSelectBuilder<TSelection>;\n\tselect(fields?: SelectedFields): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\treturn new EffectSQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * yield* db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * yield* db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): EffectSQLiteSelectBuilder<undefined>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): EffectSQLiteSelectBuilder<TSelection>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * yield* db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = yield* db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, 'sync', unknown> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t$cache: { invalidate: Cache['onMutate'] };\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * yield* db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = yield* db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, 'sync', unknown> {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * yield* db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * yield* db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = yield* db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, 'sync', unknown> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\t/** @deprecated Use `.effectRun()` for `Effect` compatibility */\n\trun: any = () => {\n\t\tthrow new Error('Use `.effectRun()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectAll()` for `Effect` compatibility */\n\tall: any = () => {\n\t\tthrow new Error('Use `.effectAll()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectGet()` for `Effect` compatibility */\n\tget: any = () => {\n\t\tthrow new Error('Use `.effectGet()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectValues()` for `Effect` compatibility */\n\tvalues: any = () => {\n\t\tthrow new Error('Use `.effectValues()` for `Effect` compatibility');\n\t};\n\n\teffectRun(query: SQLWrapper | string): Effect<unknown, SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectRun(sequel) as Effect<unknown, SqlError, SqliteClient>;\n\t}\n\n\teffectAll<T = unknown>(query: SQLWrapper | string): Effect<T[], SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectAll(sequel) as Effect<T[], SqlError, SqliteClient>;\n\t}\n\n\teffectGet<T = unknown>(query: SQLWrapper | string): Effect<T, SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectGet(sequel) as Effect<T, SqlError, SqliteClient>;\n\t}\n\n\teffectValues<T extends unknown[] = unknown[]>(query: SQLWrapper | string): Effect<T[], SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectValues(sequel) as Effect<T[], SqlError, SqliteClient>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', unknown, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<'sync', T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<'sync', T> {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n\tQ extends EffectSQLiteDatabase<\n\t\tTFullSchema,\n\t\tTRelations,\n\t\tTSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst effectRun: Q['effectRun'] = (...args: [any]) => primary.effectRun(...args);\n\tconst effectAll: Q['effectAll'] = (...args: [any]) => primary.effectAll(...args);\n\tconst effectGet: Q['effectGet'] = (...args: [any]) => primary.effectGet(...args);\n\tconst effectValues: Q['effectValues'] = (...args: [any]) => primary.effectValues(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\teffectRun,\n\t\teffectAll,\n\t\teffectGet,\n\t\teffectValues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\t$count,\n\t\twith: $with,\n\t\tget _query() {\n\t\t\treturn getReplica(replicas)._query;\n\t\t},\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":["import_query"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/effect/sqlite/db.ts"],"sourcesContent":["import type { SqliteClient } from '@effect/sql-sqlite-node/SqliteClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport type { Effect } from 'effect/Effect';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { _RelationalQueryBuilder } from '~/sqlite-core/query-builders/_query.ts';\nimport { SQLiteCountBuilder } from '~/sqlite-core/query-builders/count.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport { RelationalQueryBuilder } from '~/sqlite-core/query-builders/query.ts';\nimport type { SelectedFields } from '~/sqlite-core/query-builders/select.types.ts';\nimport type { Result, SQLiteTransaction, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { WithBuilder } from '~/sqlite-core/subquery.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { SQLiteViewBase } from '~/sqlite-core/view-base.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { EffectSQLiteSelectBuilder } from './query-builders/select.ts';\nimport type { EffectSQLiteSession } from './session.ts';\n\nexport class EffectSQLiteDatabase<\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'EffectSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t\treadonly relations: TRelations;\n\t};\n\n\t/** @deprecated */\n\t_query: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<'sync', TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\t// TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas\n\tquery: {\n\t\t[K in keyof TRelations]: RelationalQueryBuilder<\n\t\t\t'sync',\n\t\t\tTRelations,\n\t\t\tTRelations[K]\n\t\t>;\n\t};\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }['sync'],\n\t\t/** @internal */\n\t\treadonly session: EffectSQLiteSession<TFullSchema, TRelations, TSchema>,\n\t\trelations: TRelations,\n\t\t_schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly rowModeRQB?: boolean,\n\t\treadonly forbidJsonb?: boolean,\n\t) {\n\t\tthis._ = _schema\n\t\t\t? {\n\t\t\t\tschema: _schema.schema,\n\t\t\t\tfullSchema: _schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: _schema.tableNamesMap,\n\t\t\t\trelations,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t\trelations,\n\t\t\t};\n\n\t\tthis._query = {} as typeof this['_query'];\n\t\tconst query = this._query as {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<'sync', TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new _RelationalQueryBuilder(\n\t\t\t\t\t'sync',\n\t\t\t\t\t_schema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\t_schema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t\tthis.query = {} as typeof this['query'];\n\t\tfor (const [tableName, relation] of Object.entries(relations)) {\n\t\t\t(this.query as EffectSQLiteDatabase<\n\t\t\t\tTSchema,\n\t\t\t\tAnyRelations,\n\t\t\t\tV1.TablesRelationalConfig\n\t\t\t>['query'])[tableName] = new RelationalQueryBuilder(\n\t\t\t\t'sync',\n\t\t\t\trelations,\n\t\t\t\trelations[relation.name]!.table as SQLiteTable,\n\t\t\t\trelation,\n\t\t\t\tdialect,\n\t\t\t\tsession as EffectSQLiteSession<any, any, any>,\n\t\t\t\trowModeRQB,\n\t\t\t\tforbidJsonb,\n\t\t\t);\n\t\t}\n\t\tthis.$cache = { invalidate: async (_params: any) => {} };\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = yield* db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = yield* db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with: WithBuilder = (alias: string, selection?: ColumnsSelection) => {\n\t\tconst self = this;\n\t\tconst as = (\n\t\t\tqb:\n\t\t\t\t| TypedQueryBuilder<ColumnsSelection | undefined>\n\t\t\t\t| SQL\n\t\t\t\t| ((qb: QueryBuilder) => TypedQueryBuilder<ColumnsSelection | undefined> | SQL),\n\t\t) => {\n\t\t\tif (typeof qb === 'function') {\n\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t}\n\n\t\t\treturn new Proxy(\n\t\t\t\tnew WithSubquery(\n\t\t\t\t\tqb.getSQL(),\n\t\t\t\t\tselection ?? ('getSelectedFields' in qb ? qb.getSelectedFields() ?? {} : {}) as SelectedFields,\n\t\t\t\t\talias,\n\t\t\t\t\ttrue,\n\t\t\t\t),\n\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t);\n\t\t};\n\t\treturn { as };\n\t};\n\n\t$count(\n\t\tsource: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new SQLiteCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = yield* db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = yield* db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = yield* db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = yield* db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): EffectSQLiteSelectBuilder<undefined>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): EffectSQLiteSelectBuilder<TSelection>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * yield* db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * yield* db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): EffectSQLiteSelectBuilder<undefined>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): EffectSQLiteSelectBuilder<TSelection>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * yield* db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = yield* db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * yield* db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = yield* db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * yield* db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * yield* db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = yield* db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = yield* db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = yield* db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = yield* db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): EffectSQLiteSelectBuilder<undefined>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): EffectSQLiteSelectBuilder<TSelection>;\n\tselect(fields?: SelectedFields): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\treturn new EffectSQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * yield* db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * yield* db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): EffectSQLiteSelectBuilder<undefined>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): EffectSQLiteSelectBuilder<TSelection>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * yield* db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = yield* db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, 'sync', unknown> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t$cache: { invalidate: Cache['onMutate'] };\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * yield* db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = yield* db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, 'sync', unknown> {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * yield* db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * yield* db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = yield* db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, 'sync', unknown> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\t/** @deprecated Use `.effectRun()` for `Effect` compatibility */\n\trun: any = () => {\n\t\tthrow new Error('Use `.effectRun()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectAll()` for `Effect` compatibility */\n\tall: any = () => {\n\t\tthrow new Error('Use `.effectAll()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectGet()` for `Effect` compatibility */\n\tget: any = () => {\n\t\tthrow new Error('Use `.effectGet()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectValues()` for `Effect` compatibility */\n\tvalues: any = () => {\n\t\tthrow new Error('Use `.effectValues()` for `Effect` compatibility');\n\t};\n\n\teffectRun(query: SQLWrapper | string): Effect<unknown, SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectRun(sequel) as Effect<unknown, SqlError, SqliteClient>;\n\t}\n\n\teffectAll<T = unknown>(query: SQLWrapper | string): Effect<T[], SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectAll(sequel) as Effect<T[], SqlError, SqliteClient>;\n\t}\n\n\teffectGet<T = unknown>(query: SQLWrapper | string): Effect<T, SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectGet(sequel) as Effect<T, SqlError, SqliteClient>;\n\t}\n\n\teffectValues<T extends unknown[] = unknown[]>(query: SQLWrapper | string): Effect<T[], SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectValues(sequel) as Effect<T[], SqlError, SqliteClient>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', unknown, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<'sync', T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<'sync', T> {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n\tQ extends EffectSQLiteDatabase<\n\t\tTFullSchema,\n\t\tTRelations,\n\t\tTSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst effectRun: Q['effectRun'] = (...args: [any]) => primary.effectRun(...args);\n\tconst effectAll: Q['effectAll'] = (...args: [any]) => primary.effectAll(...args);\n\tconst effectGet: Q['effectGet'] = (...args: [any]) => primary.effectGet(...args);\n\tconst effectValues: Q['effectValues'] = (...args: [any]) => primary.effectValues(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\teffectRun,\n\t\teffectAll,\n\t\teffectGet,\n\t\teffectValues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\t$count,\n\t\twith: $with,\n\t\tget _query() {\n\t\t\treturn getReplica(replicas)._query;\n\t\t},\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"AAKA,SAAS,kBAAkB;AAG3B,SAAS,6BAA6B;AACtC,SAA0C,WAA4B;AAEtE,SAAS,+BAA+B;AACxC,SAAS,0BAA0B;AACnC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,8BAA8B;AAMvC,SAAS,oBAAoB;AAE7B,SAAS,iCAAiC;AAGnC,MAAM,qBAIX;AAAA,EA0BD,YAEU,SAEA,SACT,WACA,SACS,YACA,aACR;AAPQ;AAEA;AAGA;AACA;AAET,SAAK,IAAI,UACN;AAAA,MACD,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB,eAAe,QAAQ;AAAA,MACvB;AAAA,IACD,IACE;AAAA,MACD,QAAQ;AAAA,MACR,YAAY,CAAC;AAAA,MACb,eAAe,CAAC;AAAA,MAChB;AAAA,IACD;AAED,SAAK,SAAS,CAAC;AACf,UAAM,QAAQ,KAAK;AAGnB,QAAI,KAAK,EAAE,QAAQ;AAClB,iBAAW,CAAC,WAAW,OAAO,KAAK,OAAO,QAAQ,KAAK,EAAE,MAAM,GAAG;AACjE,cAAM,SAA0B,IAAI,IAAI;AAAA,UACvC;AAAA,UACA,QAAS;AAAA,UACT,KAAK,EAAE;AAAA,UACP,KAAK,EAAE;AAAA,UACP,QAAS,WAAW,SAAS;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,SAAK,QAAQ,CAAC;AACd,eAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC9D,MAAC,KAAK,MAIM,SAAS,IAAI,IAAI;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,UAAU,SAAS,IAAI,EAAG;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AACA,SAAK,SAAS,EAAE,YAAY,OAAO,YAAiB;AAAA,IAAC,EAAE;AAAA,EACxD;AAAA,EArFA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAUvC;AAAA;AAAA,EAOA;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;AAAA;AAAA;AAAA,EAsGA,QAAqB,CAAC,OAAe,cAAiC;AACrE,UAAM,OAAO;AACb,UAAM,KAAK,CACV,OAII;AACJ,UAAI,OAAO,OAAO,YAAY;AAC7B,aAAK,GAAG,IAAI,aAAa,KAAK,OAAO,CAAC;AAAA,MACvC;AAEA,aAAO,IAAI;AAAA,QACV,IAAI;AAAA,UACH,GAAG,OAAO;AAAA,UACV,cAAc,uBAAuB,KAAK,GAAG,kBAAkB,KAAK,CAAC,IAAI,CAAC;AAAA,UAC1E;AAAA,UACA;AAAA,QACD;AAAA,QACA,IAAI,sBAAsB,EAAE,OAAO,oBAAoB,SAAS,aAAa,QAAQ,CAAC;AAAA,MACvF;AAAA,IACD;AACA,WAAO,EAAE,GAAG;AAAA,EACb;AAAA,EAEA,OACC,QACA,SACC;AACD,WAAO,IAAI,mBAAmB,EAAE,QAAQ,SAAS,SAAS,KAAK,QAAQ,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBA,QAAQ,SAAyB;AAChC,UAAM,OAAO;AA0Cb,aAAS,OACR,QACwD;AACxD,aAAO,IAAI,0BAA0B;AAAA,QACpC,QAAQ,UAAU;AAAA,QAClB,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AA+BA,aAAS,eACR,QACwD;AACxD,aAAO,IAAI,0BAA0B;AAAA,QACpC,QAAQ,UAAU;AAAA,QAClB,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AA6BA,aAAS,OAAmC,OAA6D;AACxG,aAAO,IAAI,oBAAoB,OAAO,KAAK,SAAS,KAAK,SAAS,OAAO;AAAA,IAC1E;AA0BA,aAAS,OAAmC,MAA4D;AACvG,aAAO,IAAI,oBAAoB,MAAM,KAAK,SAAS,KAAK,SAAS,OAAO;AAAA,IACzE;AA0BA,aAAS,QAAoC,MAAyD;AACrG,aAAO,IAAI,iBAAiB,MAAM,KAAK,SAAS,KAAK,SAAS,OAAO;AAAA,IACtE;AAEA,WAAO,EAAE,QAAQ,gBAAgB,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,EAClE;AAAA,EA0CA,OAAO,QAAgF;AACtF,WAAO,IAAI,0BAA0B,EAAE,QAAQ,UAAU,QAAW,SAAS,KAAK,SAAS,SAAS,KAAK,QAAQ,CAAC;AAAA,EACnH;AAAA,EA+BA,eACC,QACwD;AACxD,WAAO,IAAI,0BAA0B;AAAA,MACpC,QAAQ,UAAU;AAAA,MAClB,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU;AAAA,IACX,CAAC;AAAA,EACF;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,EA6BA,OAAmC,OAA6D;AAC/F,WAAO,IAAI,oBAAoB,OAAO,KAAK,SAAS,KAAK,OAAO;AAAA,EACjE;AAAA,EAEA;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,EA0BA,OAAmC,MAA4D;AAC9F,WAAO,IAAI,oBAAoB,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,EAChE;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,EA0BA,OAAmC,MAAyD;AAC3F,WAAO,IAAI,iBAAiB,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,EAC7D;AAAA;AAAA,EAGA,MAAW,MAAM;AAChB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AAAA;AAAA,EAGA,MAAW,MAAM;AAChB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AAAA;AAAA,EAGA,MAAW,MAAM;AAChB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AAAA;AAAA,EAGA,SAAc,MAAM;AACnB,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACnE;AAAA,EAEA,UAAU,OAAqE;AAC9E,UAAM,SAAS,OAAO,UAAU,WAAW,IAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,WAAO,KAAK,QAAQ,UAAU,MAAM;AAAA,EACrC;AAAA,EAEA,UAAuB,OAAiE;AACvF,UAAM,SAAS,OAAO,UAAU,WAAW,IAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,WAAO,KAAK,QAAQ,UAAU,MAAM;AAAA,EACrC;AAAA,EAEA,UAAuB,OAA+D;AACrF,UAAM,SAAS,OAAO,UAAU,WAAW,IAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,WAAO,KAAK,QAAQ,UAAU,MAAM;AAAA,EACrC;AAAA,EAEA,aAA8C,OAAiE;AAC9G,UAAM,SAAS,OAAO,UAAU,WAAW,IAAI,IAAI,KAAK,IAAI,MAAM,OAAO;AACzE,WAAO,KAAK,QAAQ,aAAa,MAAM;AAAA,EACxC;AAAA,EAEA,YACC,aAGA,QACoB;AACpB,WAAO,KAAK,QAAQ,YAAY,aAAa,MAAM;AAAA,EACpD;AACD;AAIO,MAAM,eAAe,CAU3B,SACA,UACA,aAAmC,MAAM,SAAS,KAAK,MAAM,KAAK,OAAO,IAAI,SAAS,MAAM,CAAC,MAClE;AAC3B,QAAM,SAAsB,IAAI,SAAa,WAAW,QAAQ,EAAE,OAAO,GAAG,IAAI;AAChF,QAAM,iBAAsC,IAAI,SAAa,WAAW,QAAQ,EAAE,eAAe,GAAG,IAAI;AACxG,QAAM,SAAsB,IAAI,SAAgB,WAAW,QAAQ,EAAE,OAAO,GAAG,IAAI;AACnF,QAAM,QAAmB,IAAI,SAAa,WAAW,QAAQ,EAAE,KAAK,GAAG,IAAI;AAE3E,QAAM,SAAsB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACtE,QAAM,SAAsB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACtE,QAAM,UAAuB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACvE,QAAM,MAAgB,IAAI,SAAgB,QAAQ,IAAI,GAAG,IAAI;AAC7D,QAAM,MAAgB,IAAI,SAAgB,QAAQ,IAAI,GAAG,IAAI;AAC7D,QAAM,MAAgB,IAAI,SAAgB,QAAQ,IAAI,GAAG,IAAI;AAC7D,QAAM,SAAsB,IAAI,SAAgB,QAAQ,OAAO,GAAG,IAAI;AACtE,QAAM,YAA4B,IAAI,SAAgB,QAAQ,UAAU,GAAG,IAAI;AAC/E,QAAM,YAA4B,IAAI,SAAgB,QAAQ,UAAU,GAAG,IAAI;AAC/E,QAAM,YAA4B,IAAI,SAAgB,QAAQ,UAAU,GAAG,IAAI;AAC/E,QAAM,eAAkC,IAAI,SAAgB,QAAQ,aAAa,GAAG,IAAI;AACxF,QAAM,cAAgC,IAAI,SAAgB,QAAQ,YAAY,GAAG,IAAI;AAErF,SAAO;AAAA,IACN,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,IAAI,SAAS;AACZ,aAAO,WAAW,QAAQ,EAAE;AAAA,IAC7B;AAAA,IACA,IAAI,QAAQ;AACX,aAAO,WAAW,QAAQ,EAAE;AAAA,IAC7B;AAAA,EACD;AACD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/effect/sqlite/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { EffectSQLiteDatabase } from './db.ts';\nimport { EffectSQLiteSession } from './session.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(config: DrizzleConfig<TSchema, TRelations> = {}): EffectSQLiteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new EffectSQLiteSession(dialect, relations, schema, { logger });\n\treturn new EffectSQLiteDatabase(dialect, session, relations, schema) as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,oBAA8B;AAE9B,qBAAkC;AAElC,gBAAqC;AACrC,qBAAoC;AAE7B,SAAS,QAGd,SAA6C,CAAC,GAA8C;AAC7F,QAAM,UAAU,IAAI,iCAAkB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC/D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI,mCAAoB,SAAS,WAAW,QAAQ,EAAE,OAAO,CAAC;AAC9E,SAAO,IAAI,+BAAqB,SAAS,SAAS,WAAW,MAAM;AACpE;","names":[]}
@@ -1,4 +0,0 @@
1
- import type { AnyRelations, EmptyRelations } from "../../relations.cjs";
2
- import type { DrizzleConfig } from "../../utils.cjs";
3
- import { EffectSQLiteDatabase } from "./db.cjs";
4
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): EffectSQLiteDatabase<TSchema, TRelations>;
@@ -1,4 +0,0 @@
1
- import type { AnyRelations, EmptyRelations } from "../../relations.js";
2
- import type { DrizzleConfig } from "../../utils.js";
3
- import { EffectSQLiteDatabase } from "./db.js";
4
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): EffectSQLiteDatabase<TSchema, TRelations>;