drizzle-orm 0.33.0-ff1dcd9 → 0.34.0-05b9e35

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 (848) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/driver.cjs +12 -9
  4. package/aws-data-api/pg/driver.cjs.map +1 -1
  5. package/aws-data-api/pg/driver.d.cts +4 -2
  6. package/aws-data-api/pg/driver.d.ts +4 -2
  7. package/aws-data-api/pg/driver.js +6 -3
  8. package/aws-data-api/pg/driver.js.map +1 -1
  9. package/aws-data-api/pg/migrator.cjs.map +1 -1
  10. package/aws-data-api/pg/migrator.d.cts +1 -1
  11. package/aws-data-api/pg/migrator.d.ts +1 -1
  12. package/aws-data-api/pg/migrator.js.map +1 -1
  13. package/better-sqlite3/driver.cjs +10 -2
  14. package/better-sqlite3/driver.cjs.map +1 -1
  15. package/better-sqlite3/driver.d.cts +7 -2
  16. package/better-sqlite3/driver.d.ts +7 -2
  17. package/better-sqlite3/driver.js +9 -2
  18. package/better-sqlite3/driver.js.map +1 -1
  19. package/better-sqlite3/migrator.cjs.map +1 -1
  20. package/better-sqlite3/migrator.d.cts +1 -1
  21. package/better-sqlite3/migrator.d.ts +1 -1
  22. package/better-sqlite3/migrator.js.map +1 -1
  23. package/bun-sqlite/driver.cjs +10 -2
  24. package/bun-sqlite/driver.cjs.map +1 -1
  25. package/bun-sqlite/driver.d.cts +7 -2
  26. package/bun-sqlite/driver.d.ts +7 -2
  27. package/bun-sqlite/driver.js +9 -2
  28. package/bun-sqlite/driver.js.map +1 -1
  29. package/bun-sqlite/migrator.cjs.map +1 -1
  30. package/bun-sqlite/migrator.d.cts +1 -1
  31. package/bun-sqlite/migrator.d.ts +1 -1
  32. package/bun-sqlite/migrator.js.map +1 -1
  33. package/casing.cjs +85 -0
  34. package/casing.cjs.map +1 -0
  35. package/casing.d.cts +14 -0
  36. package/casing.d.ts +14 -0
  37. package/casing.js +59 -0
  38. package/casing.js.map +1 -0
  39. package/column-builder.cjs +7 -0
  40. package/column-builder.cjs.map +1 -1
  41. package/column-builder.d.cts +7 -2
  42. package/column-builder.d.ts +7 -2
  43. package/column-builder.js +7 -0
  44. package/column-builder.js.map +1 -1
  45. package/column.cjs +3 -0
  46. package/column.cjs.map +1 -1
  47. package/column.js +3 -0
  48. package/column.js.map +1 -1
  49. package/d1/driver.cjs +4 -2
  50. package/d1/driver.cjs.map +1 -1
  51. package/d1/driver.d.cts +6 -2
  52. package/d1/driver.d.ts +6 -2
  53. package/d1/driver.js +4 -2
  54. package/d1/driver.js.map +1 -1
  55. package/d1/migrator.cjs +1 -1
  56. package/d1/migrator.cjs.map +1 -1
  57. package/d1/migrator.d.cts +1 -1
  58. package/d1/migrator.d.ts +1 -1
  59. package/d1/migrator.js +1 -1
  60. package/d1/migrator.js.map +1 -1
  61. package/expo-sqlite/driver.cjs +10 -2
  62. package/expo-sqlite/driver.cjs.map +1 -1
  63. package/expo-sqlite/driver.d.cts +7 -2
  64. package/expo-sqlite/driver.d.ts +7 -2
  65. package/expo-sqlite/driver.js +9 -2
  66. package/expo-sqlite/driver.js.map +1 -1
  67. package/index.cjs +4 -0
  68. package/index.cjs.map +1 -1
  69. package/index.d.cts +2 -0
  70. package/index.d.ts +2 -0
  71. package/index.js +2 -0
  72. package/index.js.map +1 -1
  73. package/libsql/driver.cjs +4 -2
  74. package/libsql/driver.cjs.map +1 -1
  75. package/libsql/driver.d.cts +3 -1
  76. package/libsql/driver.d.ts +3 -1
  77. package/libsql/driver.js +4 -2
  78. package/libsql/driver.js.map +1 -1
  79. package/libsql/migrator.cjs +1 -1
  80. package/libsql/migrator.cjs.map +1 -1
  81. package/libsql/migrator.js +1 -1
  82. package/libsql/migrator.js.map +1 -1
  83. package/migrator.cjs +1 -12
  84. package/migrator.cjs.map +1 -1
  85. package/migrator.d.cts +1 -1
  86. package/migrator.d.ts +1 -1
  87. package/migrator.js +1 -12
  88. package/migrator.js.map +1 -1
  89. package/monodriver.cjs +283 -0
  90. package/monodriver.cjs.map +1 -0
  91. package/monodriver.d.cts +194 -0
  92. package/monodriver.d.ts +194 -0
  93. package/monodriver.js +249 -0
  94. package/monodriver.js.map +1 -0
  95. package/monomigrator.cjs +99 -0
  96. package/monomigrator.cjs.map +1 -0
  97. package/monomigrator.d.cts +16 -0
  98. package/monomigrator.d.ts +16 -0
  99. package/monomigrator.js +65 -0
  100. package/monomigrator.js.map +1 -0
  101. package/mysql-core/columns/all.cjs +80 -0
  102. package/mysql-core/columns/all.cjs.map +1 -0
  103. package/mysql-core/columns/all.d.cts +51 -0
  104. package/mysql-core/columns/all.d.ts +51 -0
  105. package/mysql-core/columns/all.js +56 -0
  106. package/mysql-core/columns/all.js.map +1 -0
  107. package/mysql-core/columns/bigint.cjs +3 -1
  108. package/mysql-core/columns/bigint.cjs.map +1 -1
  109. package/mysql-core/columns/bigint.d.cts +2 -2
  110. package/mysql-core/columns/bigint.d.ts +2 -2
  111. package/mysql-core/columns/bigint.js +3 -1
  112. package/mysql-core/columns/bigint.js.map +1 -1
  113. package/mysql-core/columns/binary.cjs +3 -1
  114. package/mysql-core/columns/binary.cjs.map +1 -1
  115. package/mysql-core/columns/binary.d.cts +2 -0
  116. package/mysql-core/columns/binary.d.ts +2 -0
  117. package/mysql-core/columns/binary.js +3 -1
  118. package/mysql-core/columns/binary.js.map +1 -1
  119. package/mysql-core/columns/boolean.cjs +1 -1
  120. package/mysql-core/columns/boolean.cjs.map +1 -1
  121. package/mysql-core/columns/boolean.d.cts +1 -0
  122. package/mysql-core/columns/boolean.d.ts +1 -0
  123. package/mysql-core/columns/boolean.js +1 -1
  124. package/mysql-core/columns/boolean.js.map +1 -1
  125. package/mysql-core/columns/char.cjs +3 -1
  126. package/mysql-core/columns/char.cjs.map +1 -1
  127. package/mysql-core/columns/char.d.cts +4 -2
  128. package/mysql-core/columns/char.d.ts +4 -2
  129. package/mysql-core/columns/char.js +3 -1
  130. package/mysql-core/columns/char.js.map +1 -1
  131. package/mysql-core/columns/custom.cjs +4 -2
  132. package/mysql-core/columns/custom.cjs.map +1 -1
  133. package/mysql-core/columns/custom.d.cts +10 -3
  134. package/mysql-core/columns/custom.d.ts +10 -3
  135. package/mysql-core/columns/custom.js +4 -2
  136. package/mysql-core/columns/custom.js.map +1 -1
  137. package/mysql-core/columns/date.cjs +4 -2
  138. package/mysql-core/columns/date.cjs.map +1 -1
  139. package/mysql-core/columns/date.d.cts +3 -1
  140. package/mysql-core/columns/date.d.ts +3 -1
  141. package/mysql-core/columns/date.js +4 -2
  142. package/mysql-core/columns/date.js.map +1 -1
  143. package/mysql-core/columns/datetime.cjs +4 -2
  144. package/mysql-core/columns/datetime.cjs.map +1 -1
  145. package/mysql-core/columns/datetime.d.cts +3 -1
  146. package/mysql-core/columns/datetime.d.ts +3 -1
  147. package/mysql-core/columns/datetime.js +4 -2
  148. package/mysql-core/columns/datetime.js.map +1 -1
  149. package/mysql-core/columns/decimal.cjs +3 -1
  150. package/mysql-core/columns/decimal.cjs.map +1 -1
  151. package/mysql-core/columns/decimal.d.cts +2 -0
  152. package/mysql-core/columns/decimal.d.ts +2 -0
  153. package/mysql-core/columns/decimal.js +3 -1
  154. package/mysql-core/columns/decimal.js.map +1 -1
  155. package/mysql-core/columns/double.cjs +3 -1
  156. package/mysql-core/columns/double.cjs.map +1 -1
  157. package/mysql-core/columns/double.d.cts +2 -0
  158. package/mysql-core/columns/double.d.ts +2 -0
  159. package/mysql-core/columns/double.js +3 -1
  160. package/mysql-core/columns/double.js.map +1 -1
  161. package/mysql-core/columns/enum.cjs +3 -1
  162. package/mysql-core/columns/enum.cjs.map +1 -1
  163. package/mysql-core/columns/enum.d.cts +2 -1
  164. package/mysql-core/columns/enum.d.ts +2 -1
  165. package/mysql-core/columns/enum.js +3 -1
  166. package/mysql-core/columns/enum.js.map +1 -1
  167. package/mysql-core/columns/float.cjs +1 -1
  168. package/mysql-core/columns/float.cjs.map +1 -1
  169. package/mysql-core/columns/float.d.cts +1 -0
  170. package/mysql-core/columns/float.d.ts +1 -0
  171. package/mysql-core/columns/float.js +1 -1
  172. package/mysql-core/columns/float.js.map +1 -1
  173. package/mysql-core/columns/int.cjs +3 -1
  174. package/mysql-core/columns/int.cjs.map +1 -1
  175. package/mysql-core/columns/int.d.cts +2 -0
  176. package/mysql-core/columns/int.d.ts +2 -0
  177. package/mysql-core/columns/int.js +3 -1
  178. package/mysql-core/columns/int.js.map +1 -1
  179. package/mysql-core/columns/json.cjs +1 -1
  180. package/mysql-core/columns/json.cjs.map +1 -1
  181. package/mysql-core/columns/json.d.cts +1 -0
  182. package/mysql-core/columns/json.d.ts +1 -0
  183. package/mysql-core/columns/json.js +1 -1
  184. package/mysql-core/columns/json.js.map +1 -1
  185. package/mysql-core/columns/mediumint.cjs +3 -1
  186. package/mysql-core/columns/mediumint.cjs.map +1 -1
  187. package/mysql-core/columns/mediumint.d.cts +2 -0
  188. package/mysql-core/columns/mediumint.d.ts +2 -0
  189. package/mysql-core/columns/mediumint.js +3 -1
  190. package/mysql-core/columns/mediumint.js.map +1 -1
  191. package/mysql-core/columns/real.cjs +3 -1
  192. package/mysql-core/columns/real.cjs.map +1 -1
  193. package/mysql-core/columns/real.d.cts +2 -0
  194. package/mysql-core/columns/real.d.ts +2 -0
  195. package/mysql-core/columns/real.js +3 -1
  196. package/mysql-core/columns/real.js.map +1 -1
  197. package/mysql-core/columns/serial.cjs +1 -1
  198. package/mysql-core/columns/serial.cjs.map +1 -1
  199. package/mysql-core/columns/serial.d.cts +1 -0
  200. package/mysql-core/columns/serial.d.ts +1 -0
  201. package/mysql-core/columns/serial.js +1 -1
  202. package/mysql-core/columns/serial.js.map +1 -1
  203. package/mysql-core/columns/smallint.cjs +3 -1
  204. package/mysql-core/columns/smallint.cjs.map +1 -1
  205. package/mysql-core/columns/smallint.d.cts +2 -0
  206. package/mysql-core/columns/smallint.d.ts +2 -0
  207. package/mysql-core/columns/smallint.js +3 -1
  208. package/mysql-core/columns/smallint.js.map +1 -1
  209. package/mysql-core/columns/text.cjs +9 -4
  210. package/mysql-core/columns/text.cjs.map +1 -1
  211. package/mysql-core/columns/text.d.cts +10 -2
  212. package/mysql-core/columns/text.d.ts +10 -2
  213. package/mysql-core/columns/text.js +9 -4
  214. package/mysql-core/columns/text.js.map +1 -1
  215. package/mysql-core/columns/time.cjs +3 -1
  216. package/mysql-core/columns/time.cjs.map +1 -1
  217. package/mysql-core/columns/time.d.cts +2 -0
  218. package/mysql-core/columns/time.d.ts +2 -0
  219. package/mysql-core/columns/time.js +3 -1
  220. package/mysql-core/columns/time.js.map +1 -1
  221. package/mysql-core/columns/timestamp.cjs +4 -2
  222. package/mysql-core/columns/timestamp.cjs.map +1 -1
  223. package/mysql-core/columns/timestamp.d.cts +3 -1
  224. package/mysql-core/columns/timestamp.d.ts +3 -1
  225. package/mysql-core/columns/timestamp.js +4 -2
  226. package/mysql-core/columns/timestamp.js.map +1 -1
  227. package/mysql-core/columns/tinyint.cjs +3 -1
  228. package/mysql-core/columns/tinyint.cjs.map +1 -1
  229. package/mysql-core/columns/tinyint.d.cts +2 -0
  230. package/mysql-core/columns/tinyint.d.ts +2 -0
  231. package/mysql-core/columns/tinyint.js +3 -1
  232. package/mysql-core/columns/tinyint.js.map +1 -1
  233. package/mysql-core/columns/varbinary.cjs +4 -2
  234. package/mysql-core/columns/varbinary.cjs.map +1 -1
  235. package/mysql-core/columns/varbinary.d.cts +2 -1
  236. package/mysql-core/columns/varbinary.d.ts +2 -1
  237. package/mysql-core/columns/varbinary.js +4 -2
  238. package/mysql-core/columns/varbinary.js.map +1 -1
  239. package/mysql-core/columns/varchar.cjs +3 -1
  240. package/mysql-core/columns/varchar.cjs.map +1 -1
  241. package/mysql-core/columns/varchar.d.cts +3 -2
  242. package/mysql-core/columns/varchar.d.ts +3 -2
  243. package/mysql-core/columns/varchar.js +3 -1
  244. package/mysql-core/columns/varchar.js.map +1 -1
  245. package/mysql-core/columns/year.cjs +1 -1
  246. package/mysql-core/columns/year.cjs.map +1 -1
  247. package/mysql-core/columns/year.d.cts +1 -0
  248. package/mysql-core/columns/year.d.ts +1 -0
  249. package/mysql-core/columns/year.js +1 -1
  250. package/mysql-core/columns/year.js.map +1 -1
  251. package/mysql-core/db.cjs +8 -2
  252. package/mysql-core/db.cjs.map +1 -1
  253. package/mysql-core/db.d.cts +5 -2
  254. package/mysql-core/db.d.ts +5 -2
  255. package/mysql-core/db.js +8 -2
  256. package/mysql-core/db.js.map +1 -1
  257. package/mysql-core/dialect.cjs +14 -7
  258. package/mysql-core/dialect.cjs.map +1 -1
  259. package/mysql-core/dialect.d.cts +5 -1
  260. package/mysql-core/dialect.d.ts +5 -1
  261. package/mysql-core/dialect.js +14 -7
  262. package/mysql-core/dialect.js.map +1 -1
  263. package/mysql-core/foreign-keys.cjs +3 -3
  264. package/mysql-core/foreign-keys.cjs.map +1 -1
  265. package/mysql-core/foreign-keys.d.cts +1 -1
  266. package/mysql-core/foreign-keys.d.ts +1 -1
  267. package/mysql-core/foreign-keys.js +3 -3
  268. package/mysql-core/foreign-keys.js.map +1 -1
  269. package/mysql-core/query-builders/count.cjs +73 -0
  270. package/mysql-core/query-builders/count.cjs.map +1 -0
  271. package/mysql-core/query-builders/count.d.cts +27 -0
  272. package/mysql-core/query-builders/count.d.ts +27 -0
  273. package/mysql-core/query-builders/count.js +49 -0
  274. package/mysql-core/query-builders/count.js.map +1 -0
  275. package/mysql-core/query-builders/query-builder.cjs +6 -1
  276. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  277. package/mysql-core/query-builders/query-builder.d.cts +4 -0
  278. package/mysql-core/query-builders/query-builder.d.ts +4 -0
  279. package/mysql-core/query-builders/query-builder.js +7 -2
  280. package/mysql-core/query-builders/query-builder.js.map +1 -1
  281. package/mysql-core/session.cjs +6 -0
  282. package/mysql-core/session.cjs.map +1 -1
  283. package/mysql-core/session.d.cts +1 -0
  284. package/mysql-core/session.d.ts +1 -0
  285. package/mysql-core/session.js +6 -0
  286. package/mysql-core/session.js.map +1 -1
  287. package/mysql-core/table.cjs +4 -1
  288. package/mysql-core/table.cjs.map +1 -1
  289. package/mysql-core/table.d.cts +8 -1
  290. package/mysql-core/table.d.ts +8 -1
  291. package/mysql-core/table.js +4 -1
  292. package/mysql-core/table.js.map +1 -1
  293. package/mysql-core/unique-constraint.cjs +2 -2
  294. package/mysql-core/unique-constraint.cjs.map +1 -1
  295. package/mysql-core/unique-constraint.d.cts +1 -1
  296. package/mysql-core/unique-constraint.d.ts +1 -1
  297. package/mysql-core/unique-constraint.js +2 -2
  298. package/mysql-core/unique-constraint.js.map +1 -1
  299. package/mysql-proxy/driver.cjs +8 -2
  300. package/mysql-proxy/driver.cjs.map +1 -1
  301. package/mysql-proxy/driver.d.cts +4 -1
  302. package/mysql-proxy/driver.d.ts +4 -1
  303. package/mysql-proxy/driver.js +7 -2
  304. package/mysql-proxy/driver.js.map +1 -1
  305. package/mysql2/driver.cjs +13 -8
  306. package/mysql2/driver.cjs.map +1 -1
  307. package/mysql2/driver.d.cts +6 -2
  308. package/mysql2/driver.d.ts +6 -2
  309. package/mysql2/driver.js +11 -7
  310. package/mysql2/driver.js.map +1 -1
  311. package/neon-http/driver.cjs +4 -2
  312. package/neon-http/driver.cjs.map +1 -1
  313. package/neon-http/driver.d.cts +3 -1
  314. package/neon-http/driver.d.ts +3 -1
  315. package/neon-http/driver.js +4 -2
  316. package/neon-http/driver.js.map +1 -1
  317. package/neon-http/migrator.cjs +2 -2
  318. package/neon-http/migrator.cjs.map +1 -1
  319. package/neon-http/migrator.d.cts +1 -1
  320. package/neon-http/migrator.d.ts +1 -1
  321. package/neon-http/migrator.js +2 -2
  322. package/neon-http/migrator.js.map +1 -1
  323. package/neon-http/session.cjs +6 -0
  324. package/neon-http/session.cjs.map +1 -1
  325. package/neon-http/session.d.cts +2 -1
  326. package/neon-http/session.d.ts +2 -1
  327. package/neon-http/session.js +6 -0
  328. package/neon-http/session.js.map +1 -1
  329. package/neon-serverless/driver.cjs +9 -2
  330. package/neon-serverless/driver.cjs.map +1 -1
  331. package/neon-serverless/driver.d.cts +6 -2
  332. package/neon-serverless/driver.d.ts +6 -2
  333. package/neon-serverless/driver.js +8 -2
  334. package/neon-serverless/driver.js.map +1 -1
  335. package/neon-serverless/migrator.cjs.map +1 -1
  336. package/neon-serverless/migrator.d.cts +1 -1
  337. package/neon-serverless/migrator.d.ts +1 -1
  338. package/neon-serverless/migrator.js.map +1 -1
  339. package/node-postgres/driver.cjs +9 -2
  340. package/node-postgres/driver.cjs.map +1 -1
  341. package/node-postgres/driver.d.cts +6 -2
  342. package/node-postgres/driver.d.ts +6 -2
  343. package/node-postgres/driver.js +8 -2
  344. package/node-postgres/driver.js.map +1 -1
  345. package/node-postgres/migrator.cjs.map +1 -1
  346. package/node-postgres/migrator.d.cts +1 -1
  347. package/node-postgres/migrator.d.ts +1 -1
  348. package/node-postgres/migrator.js.map +1 -1
  349. package/node-postgres/session.cjs +6 -0
  350. package/node-postgres/session.cjs.map +1 -1
  351. package/node-postgres/session.d.cts +2 -1
  352. package/node-postgres/session.d.ts +2 -1
  353. package/node-postgres/session.js +6 -0
  354. package/node-postgres/session.js.map +1 -1
  355. package/op-sqlite/driver.cjs +10 -2
  356. package/op-sqlite/driver.cjs.map +1 -1
  357. package/op-sqlite/driver.d.cts +7 -2
  358. package/op-sqlite/driver.d.ts +7 -2
  359. package/op-sqlite/driver.js +9 -2
  360. package/op-sqlite/driver.js.map +1 -1
  361. package/operations.cjs.map +1 -1
  362. package/package.json +170 -49
  363. package/pg-core/columns/all.cjs +96 -0
  364. package/pg-core/columns/all.cjs.map +1 -0
  365. package/pg-core/columns/all.d.cts +67 -0
  366. package/pg-core/columns/all.d.ts +67 -0
  367. package/pg-core/columns/all.js +72 -0
  368. package/pg-core/columns/all.js.map +1 -0
  369. package/pg-core/columns/bigint.cjs +3 -1
  370. package/pg-core/columns/bigint.cjs.map +1 -1
  371. package/pg-core/columns/bigint.d.cts +2 -2
  372. package/pg-core/columns/bigint.d.ts +2 -2
  373. package/pg-core/columns/bigint.js +3 -1
  374. package/pg-core/columns/bigint.js.map +1 -1
  375. package/pg-core/columns/bigserial.cjs +4 -2
  376. package/pg-core/columns/bigserial.cjs.map +1 -1
  377. package/pg-core/columns/bigserial.d.cts +2 -2
  378. package/pg-core/columns/bigserial.d.ts +2 -2
  379. package/pg-core/columns/bigserial.js +4 -2
  380. package/pg-core/columns/bigserial.js.map +1 -1
  381. package/pg-core/columns/boolean.cjs +1 -1
  382. package/pg-core/columns/boolean.cjs.map +1 -1
  383. package/pg-core/columns/boolean.d.cts +1 -0
  384. package/pg-core/columns/boolean.d.ts +1 -0
  385. package/pg-core/columns/boolean.js +1 -1
  386. package/pg-core/columns/boolean.js.map +1 -1
  387. package/pg-core/columns/char.cjs +3 -1
  388. package/pg-core/columns/char.cjs.map +1 -1
  389. package/pg-core/columns/char.d.cts +5 -3
  390. package/pg-core/columns/char.d.ts +5 -3
  391. package/pg-core/columns/char.js +3 -1
  392. package/pg-core/columns/char.js.map +1 -1
  393. package/pg-core/columns/cidr.cjs +1 -1
  394. package/pg-core/columns/cidr.cjs.map +1 -1
  395. package/pg-core/columns/cidr.d.cts +1 -0
  396. package/pg-core/columns/cidr.d.ts +1 -0
  397. package/pg-core/columns/cidr.js +1 -1
  398. package/pg-core/columns/cidr.js.map +1 -1
  399. package/pg-core/columns/custom.cjs +4 -2
  400. package/pg-core/columns/custom.cjs.map +1 -1
  401. package/pg-core/columns/custom.d.cts +10 -3
  402. package/pg-core/columns/custom.d.ts +10 -3
  403. package/pg-core/columns/custom.js +4 -2
  404. package/pg-core/columns/custom.js.map +1 -1
  405. package/pg-core/columns/date.cjs +3 -1
  406. package/pg-core/columns/date.cjs.map +1 -1
  407. package/pg-core/columns/date.d.cts +7 -6
  408. package/pg-core/columns/date.d.ts +7 -6
  409. package/pg-core/columns/date.js +3 -1
  410. package/pg-core/columns/date.js.map +1 -1
  411. package/pg-core/columns/double-precision.cjs +1 -1
  412. package/pg-core/columns/double-precision.cjs.map +1 -1
  413. package/pg-core/columns/double-precision.d.cts +1 -0
  414. package/pg-core/columns/double-precision.d.ts +1 -0
  415. package/pg-core/columns/double-precision.js +1 -1
  416. package/pg-core/columns/double-precision.js.map +1 -1
  417. package/pg-core/columns/enum.cjs +1 -1
  418. package/pg-core/columns/enum.cjs.map +1 -1
  419. package/pg-core/columns/enum.d.cts +3 -1
  420. package/pg-core/columns/enum.d.ts +3 -1
  421. package/pg-core/columns/enum.js +1 -1
  422. package/pg-core/columns/enum.js.map +1 -1
  423. package/pg-core/columns/index.cjs +2 -0
  424. package/pg-core/columns/index.cjs.map +1 -1
  425. package/pg-core/columns/index.d.cts +1 -0
  426. package/pg-core/columns/index.d.ts +1 -0
  427. package/pg-core/columns/index.js +1 -0
  428. package/pg-core/columns/index.js.map +1 -1
  429. package/pg-core/columns/inet.cjs +1 -1
  430. package/pg-core/columns/inet.cjs.map +1 -1
  431. package/pg-core/columns/inet.d.cts +1 -0
  432. package/pg-core/columns/inet.d.ts +1 -0
  433. package/pg-core/columns/inet.js +1 -1
  434. package/pg-core/columns/inet.js.map +1 -1
  435. package/pg-core/columns/integer.cjs +1 -1
  436. package/pg-core/columns/integer.cjs.map +1 -1
  437. package/pg-core/columns/integer.d.cts +1 -0
  438. package/pg-core/columns/integer.d.ts +1 -0
  439. package/pg-core/columns/integer.js +1 -1
  440. package/pg-core/columns/integer.js.map +1 -1
  441. package/pg-core/columns/interval.cjs +3 -1
  442. package/pg-core/columns/interval.cjs.map +1 -1
  443. package/pg-core/columns/interval.d.cts +2 -0
  444. package/pg-core/columns/interval.d.ts +2 -0
  445. package/pg-core/columns/interval.js +3 -1
  446. package/pg-core/columns/interval.js.map +1 -1
  447. package/pg-core/columns/json.cjs +1 -1
  448. package/pg-core/columns/json.cjs.map +1 -1
  449. package/pg-core/columns/json.d.cts +1 -0
  450. package/pg-core/columns/json.d.ts +1 -0
  451. package/pg-core/columns/json.js +1 -1
  452. package/pg-core/columns/json.js.map +1 -1
  453. package/pg-core/columns/jsonb.cjs +1 -1
  454. package/pg-core/columns/jsonb.cjs.map +1 -1
  455. package/pg-core/columns/jsonb.d.cts +1 -0
  456. package/pg-core/columns/jsonb.d.ts +1 -0
  457. package/pg-core/columns/jsonb.js +1 -1
  458. package/pg-core/columns/jsonb.js.map +1 -1
  459. package/pg-core/columns/line.cjs +3 -1
  460. package/pg-core/columns/line.cjs.map +1 -1
  461. package/pg-core/columns/line.d.cts +3 -1
  462. package/pg-core/columns/line.d.ts +3 -1
  463. package/pg-core/columns/line.js +3 -1
  464. package/pg-core/columns/line.js.map +1 -1
  465. package/pg-core/columns/macaddr.cjs +1 -1
  466. package/pg-core/columns/macaddr.cjs.map +1 -1
  467. package/pg-core/columns/macaddr.d.cts +1 -0
  468. package/pg-core/columns/macaddr.d.ts +1 -0
  469. package/pg-core/columns/macaddr.js +1 -1
  470. package/pg-core/columns/macaddr.js.map +1 -1
  471. package/pg-core/columns/macaddr8.cjs +1 -1
  472. package/pg-core/columns/macaddr8.cjs.map +1 -1
  473. package/pg-core/columns/macaddr8.d.cts +1 -0
  474. package/pg-core/columns/macaddr8.d.ts +1 -0
  475. package/pg-core/columns/macaddr8.js +1 -1
  476. package/pg-core/columns/macaddr8.js.map +1 -1
  477. package/pg-core/columns/numeric.cjs +3 -1
  478. package/pg-core/columns/numeric.cjs.map +1 -1
  479. package/pg-core/columns/numeric.d.cts +6 -3
  480. package/pg-core/columns/numeric.d.ts +6 -3
  481. package/pg-core/columns/numeric.js +3 -1
  482. package/pg-core/columns/numeric.js.map +1 -1
  483. package/pg-core/columns/point.cjs +3 -1
  484. package/pg-core/columns/point.cjs.map +1 -1
  485. package/pg-core/columns/point.d.cts +5 -3
  486. package/pg-core/columns/point.d.ts +5 -3
  487. package/pg-core/columns/point.js +3 -1
  488. package/pg-core/columns/point.js.map +1 -1
  489. package/pg-core/columns/postgis_extension/geometry.cjs +6 -4
  490. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  491. package/pg-core/columns/postgis_extension/geometry.d.cts +4 -3
  492. package/pg-core/columns/postgis_extension/geometry.d.ts +4 -3
  493. package/pg-core/columns/postgis_extension/geometry.js +3 -1
  494. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  495. package/pg-core/columns/real.cjs +1 -1
  496. package/pg-core/columns/real.cjs.map +1 -1
  497. package/pg-core/columns/real.d.cts +2 -1
  498. package/pg-core/columns/real.d.ts +2 -1
  499. package/pg-core/columns/real.js +1 -1
  500. package/pg-core/columns/real.js.map +1 -1
  501. package/pg-core/columns/serial.cjs +1 -1
  502. package/pg-core/columns/serial.cjs.map +1 -1
  503. package/pg-core/columns/serial.d.cts +2 -1
  504. package/pg-core/columns/serial.d.ts +2 -1
  505. package/pg-core/columns/serial.js +1 -1
  506. package/pg-core/columns/serial.js.map +1 -1
  507. package/pg-core/columns/smallint.cjs +1 -1
  508. package/pg-core/columns/smallint.cjs.map +1 -1
  509. package/pg-core/columns/smallint.d.cts +1 -0
  510. package/pg-core/columns/smallint.d.ts +1 -0
  511. package/pg-core/columns/smallint.js +1 -1
  512. package/pg-core/columns/smallint.js.map +1 -1
  513. package/pg-core/columns/smallserial.cjs +1 -1
  514. package/pg-core/columns/smallserial.cjs.map +1 -1
  515. package/pg-core/columns/smallserial.d.cts +2 -1
  516. package/pg-core/columns/smallserial.d.ts +2 -1
  517. package/pg-core/columns/smallserial.js +1 -1
  518. package/pg-core/columns/smallserial.js.map +1 -1
  519. package/pg-core/columns/text.cjs +3 -1
  520. package/pg-core/columns/text.cjs.map +1 -1
  521. package/pg-core/columns/text.d.cts +4 -2
  522. package/pg-core/columns/text.d.ts +4 -2
  523. package/pg-core/columns/text.js +3 -1
  524. package/pg-core/columns/text.js.map +1 -1
  525. package/pg-core/columns/time.cjs +3 -1
  526. package/pg-core/columns/time.cjs.map +1 -1
  527. package/pg-core/columns/time.d.cts +2 -0
  528. package/pg-core/columns/time.d.ts +2 -0
  529. package/pg-core/columns/time.js +3 -1
  530. package/pg-core/columns/time.js.map +1 -1
  531. package/pg-core/columns/timestamp.cjs +5 -3
  532. package/pg-core/columns/timestamp.cjs.map +1 -1
  533. package/pg-core/columns/timestamp.d.cts +5 -3
  534. package/pg-core/columns/timestamp.d.ts +5 -3
  535. package/pg-core/columns/timestamp.js +5 -3
  536. package/pg-core/columns/timestamp.js.map +1 -1
  537. package/pg-core/columns/uuid.cjs +1 -1
  538. package/pg-core/columns/uuid.cjs.map +1 -1
  539. package/pg-core/columns/uuid.d.cts +1 -0
  540. package/pg-core/columns/uuid.d.ts +1 -0
  541. package/pg-core/columns/uuid.js +1 -1
  542. package/pg-core/columns/uuid.js.map +1 -1
  543. package/pg-core/columns/varchar.cjs +3 -1
  544. package/pg-core/columns/varchar.cjs.map +1 -1
  545. package/pg-core/columns/varchar.d.cts +5 -3
  546. package/pg-core/columns/varchar.d.ts +5 -3
  547. package/pg-core/columns/varchar.js +3 -1
  548. package/pg-core/columns/varchar.js.map +1 -1
  549. package/pg-core/columns/vector_extension/bit.cjs +3 -1
  550. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  551. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  552. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  553. package/pg-core/columns/vector_extension/bit.js +3 -1
  554. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  555. package/pg-core/columns/vector_extension/halfvec.cjs +3 -1
  556. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  557. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  558. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  559. package/pg-core/columns/vector_extension/halfvec.js +3 -1
  560. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  561. package/pg-core/columns/vector_extension/sparsevec.cjs +3 -1
  562. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  563. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  564. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  565. package/pg-core/columns/vector_extension/sparsevec.js +3 -1
  566. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  567. package/pg-core/columns/vector_extension/vector.cjs +3 -1
  568. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  569. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  570. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  571. package/pg-core/columns/vector_extension/vector.js +3 -1
  572. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  573. package/pg-core/db.cjs +10 -4
  574. package/pg-core/db.cjs.map +1 -1
  575. package/pg-core/db.d.cts +6 -3
  576. package/pg-core/db.d.ts +6 -3
  577. package/pg-core/db.js +10 -4
  578. package/pg-core/db.js.map +1 -1
  579. package/pg-core/dialect.cjs +13 -4
  580. package/pg-core/dialect.cjs.map +1 -1
  581. package/pg-core/dialect.d.cts +5 -1
  582. package/pg-core/dialect.d.ts +5 -1
  583. package/pg-core/dialect.js +13 -4
  584. package/pg-core/dialect.js.map +1 -1
  585. package/pg-core/foreign-keys.cjs +3 -3
  586. package/pg-core/foreign-keys.cjs.map +1 -1
  587. package/pg-core/foreign-keys.d.cts +1 -1
  588. package/pg-core/foreign-keys.d.ts +1 -1
  589. package/pg-core/foreign-keys.js +3 -3
  590. package/pg-core/foreign-keys.js.map +1 -1
  591. package/pg-core/query-builders/count.cjs +73 -0
  592. package/pg-core/query-builders/count.cjs.map +1 -0
  593. package/pg-core/query-builders/count.d.cts +26 -0
  594. package/pg-core/query-builders/count.d.ts +26 -0
  595. package/pg-core/query-builders/count.js +49 -0
  596. package/pg-core/query-builders/count.js.map +1 -0
  597. package/pg-core/query-builders/insert.cjs +2 -2
  598. package/pg-core/query-builders/insert.cjs.map +1 -1
  599. package/pg-core/query-builders/insert.js +2 -2
  600. package/pg-core/query-builders/insert.js.map +1 -1
  601. package/pg-core/query-builders/query-builder.cjs +6 -1
  602. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  603. package/pg-core/query-builders/query-builder.d.cts +4 -0
  604. package/pg-core/query-builders/query-builder.d.ts +4 -0
  605. package/pg-core/query-builders/query-builder.js +7 -2
  606. package/pg-core/query-builders/query-builder.js.map +1 -1
  607. package/pg-core/session.cjs +6 -0
  608. package/pg-core/session.cjs.map +1 -1
  609. package/pg-core/session.d.cts +1 -0
  610. package/pg-core/session.d.ts +1 -0
  611. package/pg-core/session.js +6 -0
  612. package/pg-core/session.js.map +1 -1
  613. package/pg-core/table.cjs +6 -2
  614. package/pg-core/table.cjs.map +1 -1
  615. package/pg-core/table.d.cts +7 -0
  616. package/pg-core/table.d.ts +7 -0
  617. package/pg-core/table.js +6 -2
  618. package/pg-core/table.js.map +1 -1
  619. package/pg-core/unique-constraint.cjs +2 -2
  620. package/pg-core/unique-constraint.cjs.map +1 -1
  621. package/pg-core/unique-constraint.d.cts +1 -1
  622. package/pg-core/unique-constraint.d.ts +1 -1
  623. package/pg-core/unique-constraint.js +2 -2
  624. package/pg-core/unique-constraint.js.map +1 -1
  625. package/pg-core/view.cjs +22 -2
  626. package/pg-core/view.cjs.map +1 -1
  627. package/pg-core/view.d.cts +25 -5
  628. package/pg-core/view.d.ts +25 -5
  629. package/pg-core/view.js +21 -3
  630. package/pg-core/view.js.map +1 -1
  631. package/pg-proxy/driver.cjs +8 -2
  632. package/pg-proxy/driver.cjs.map +1 -1
  633. package/pg-proxy/driver.d.cts +4 -1
  634. package/pg-proxy/driver.d.ts +4 -1
  635. package/pg-proxy/driver.js +7 -2
  636. package/pg-proxy/driver.js.map +1 -1
  637. package/pg-proxy/migrator.cjs.map +1 -1
  638. package/pg-proxy/migrator.d.cts +1 -1
  639. package/pg-proxy/migrator.d.ts +1 -1
  640. package/pg-proxy/migrator.js.map +1 -1
  641. package/pg-proxy/session.cjs.map +1 -1
  642. package/pg-proxy/session.js.map +1 -1
  643. package/pglite/driver.cjs +9 -2
  644. package/pglite/driver.cjs.map +1 -1
  645. package/pglite/driver.d.cts +6 -2
  646. package/pglite/driver.d.ts +6 -2
  647. package/pglite/driver.js +8 -2
  648. package/pglite/driver.js.map +1 -1
  649. package/pglite/migrator.cjs.map +1 -1
  650. package/pglite/migrator.d.cts +1 -1
  651. package/pglite/migrator.d.ts +1 -1
  652. package/pglite/migrator.js.map +1 -1
  653. package/pglite/session.cjs +6 -0
  654. package/pglite/session.cjs.map +1 -1
  655. package/pglite/session.d.cts +2 -1
  656. package/pglite/session.d.ts +2 -1
  657. package/pglite/session.js +6 -0
  658. package/pglite/session.js.map +1 -1
  659. package/planetscale-serverless/driver.cjs +10 -2
  660. package/planetscale-serverless/driver.cjs.map +1 -1
  661. package/planetscale-serverless/driver.d.cts +7 -2
  662. package/planetscale-serverless/driver.d.ts +7 -2
  663. package/planetscale-serverless/driver.js +9 -2
  664. package/planetscale-serverless/driver.js.map +1 -1
  665. package/planetscale-serverless/migrator.cjs.map +1 -1
  666. package/planetscale-serverless/migrator.js.map +1 -1
  667. package/planetscale-serverless/session.cjs +6 -0
  668. package/planetscale-serverless/session.cjs.map +1 -1
  669. package/planetscale-serverless/session.d.cts +1 -0
  670. package/planetscale-serverless/session.d.ts +1 -0
  671. package/planetscale-serverless/session.js +6 -0
  672. package/planetscale-serverless/session.js.map +1 -1
  673. package/postgres-js/driver.cjs +10 -2
  674. package/postgres-js/driver.cjs.map +1 -1
  675. package/postgres-js/driver.d.cts +7 -2
  676. package/postgres-js/driver.d.ts +7 -2
  677. package/postgres-js/driver.js +9 -2
  678. package/postgres-js/driver.js.map +1 -1
  679. package/postgres-js/migrator.cjs.map +1 -1
  680. package/postgres-js/migrator.d.cts +1 -1
  681. package/postgres-js/migrator.d.ts +1 -1
  682. package/postgres-js/migrator.js.map +1 -1
  683. package/sql/sql.cjs +4 -2
  684. package/sql/sql.cjs.map +1 -1
  685. package/sql/sql.d.cts +2 -0
  686. package/sql/sql.d.ts +2 -0
  687. package/sql/sql.js +4 -2
  688. package/sql/sql.js.map +1 -1
  689. package/sql-js/driver.cjs +1 -1
  690. package/sql-js/driver.cjs.map +1 -1
  691. package/sql-js/driver.js +1 -1
  692. package/sql-js/driver.js.map +1 -1
  693. package/sql-js/migrator.cjs.map +1 -1
  694. package/sql-js/migrator.d.cts +1 -1
  695. package/sql-js/migrator.d.ts +1 -1
  696. package/sql-js/migrator.js.map +1 -1
  697. package/sqlite-core/columns/all.cjs +44 -0
  698. package/sqlite-core/columns/all.cjs.map +1 -0
  699. package/sqlite-core/columns/all.d.cts +15 -0
  700. package/sqlite-core/columns/all.d.ts +15 -0
  701. package/sqlite-core/columns/all.js +20 -0
  702. package/sqlite-core/columns/all.js.map +1 -0
  703. package/sqlite-core/columns/blob.cjs +3 -1
  704. package/sqlite-core/columns/blob.cjs.map +1 -1
  705. package/sqlite-core/columns/blob.d.cts +3 -1
  706. package/sqlite-core/columns/blob.d.ts +3 -1
  707. package/sqlite-core/columns/blob.js +3 -1
  708. package/sqlite-core/columns/blob.js.map +1 -1
  709. package/sqlite-core/columns/custom.cjs +5 -3
  710. package/sqlite-core/columns/custom.cjs.map +1 -1
  711. package/sqlite-core/columns/custom.d.cts +10 -3
  712. package/sqlite-core/columns/custom.d.ts +10 -3
  713. package/sqlite-core/columns/custom.js +5 -3
  714. package/sqlite-core/columns/custom.js.map +1 -1
  715. package/sqlite-core/columns/integer.cjs +3 -1
  716. package/sqlite-core/columns/integer.cjs.map +1 -1
  717. package/sqlite-core/columns/integer.d.cts +3 -1
  718. package/sqlite-core/columns/integer.d.ts +3 -1
  719. package/sqlite-core/columns/integer.js +3 -1
  720. package/sqlite-core/columns/integer.js.map +1 -1
  721. package/sqlite-core/columns/numeric.cjs +1 -1
  722. package/sqlite-core/columns/numeric.cjs.map +1 -1
  723. package/sqlite-core/columns/numeric.d.cts +1 -0
  724. package/sqlite-core/columns/numeric.d.ts +1 -0
  725. package/sqlite-core/columns/numeric.js +1 -1
  726. package/sqlite-core/columns/numeric.js.map +1 -1
  727. package/sqlite-core/columns/real.cjs +1 -1
  728. package/sqlite-core/columns/real.cjs.map +1 -1
  729. package/sqlite-core/columns/real.d.cts +1 -0
  730. package/sqlite-core/columns/real.d.ts +1 -0
  731. package/sqlite-core/columns/real.js +1 -1
  732. package/sqlite-core/columns/real.js.map +1 -1
  733. package/sqlite-core/columns/text.cjs +7 -2
  734. package/sqlite-core/columns/text.cjs.map +1 -1
  735. package/sqlite-core/columns/text.d.cts +4 -2
  736. package/sqlite-core/columns/text.d.ts +4 -2
  737. package/sqlite-core/columns/text.js +7 -2
  738. package/sqlite-core/columns/text.js.map +1 -1
  739. package/sqlite-core/db.cjs +23 -17
  740. package/sqlite-core/db.cjs.map +1 -1
  741. package/sqlite-core/db.d.cts +8 -5
  742. package/sqlite-core/db.d.ts +8 -5
  743. package/sqlite-core/db.js +23 -17
  744. package/sqlite-core/db.js.map +1 -1
  745. package/sqlite-core/dialect.cjs +14 -8
  746. package/sqlite-core/dialect.cjs.map +1 -1
  747. package/sqlite-core/dialect.d.cts +5 -1
  748. package/sqlite-core/dialect.d.ts +5 -1
  749. package/sqlite-core/dialect.js +14 -8
  750. package/sqlite-core/dialect.js.map +1 -1
  751. package/sqlite-core/foreign-keys.cjs +3 -3
  752. package/sqlite-core/foreign-keys.cjs.map +1 -1
  753. package/sqlite-core/foreign-keys.d.cts +1 -1
  754. package/sqlite-core/foreign-keys.d.ts +1 -1
  755. package/sqlite-core/foreign-keys.js +3 -3
  756. package/sqlite-core/foreign-keys.js.map +1 -1
  757. package/sqlite-core/query-builders/count.cjs +72 -0
  758. package/sqlite-core/query-builders/count.cjs.map +1 -0
  759. package/sqlite-core/query-builders/count.d.cts +27 -0
  760. package/sqlite-core/query-builders/count.d.ts +27 -0
  761. package/sqlite-core/query-builders/count.js +48 -0
  762. package/sqlite-core/query-builders/count.js.map +1 -0
  763. package/sqlite-core/query-builders/query-builder.cjs +6 -1
  764. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  765. package/sqlite-core/query-builders/query-builder.d.cts +4 -0
  766. package/sqlite-core/query-builders/query-builder.d.ts +4 -0
  767. package/sqlite-core/query-builders/query-builder.js +8 -3
  768. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  769. package/sqlite-core/session.cjs +4 -0
  770. package/sqlite-core/session.cjs.map +1 -1
  771. package/sqlite-core/session.d.cts +1 -0
  772. package/sqlite-core/session.d.ts +1 -0
  773. package/sqlite-core/session.js +4 -0
  774. package/sqlite-core/session.js.map +1 -1
  775. package/sqlite-core/table.cjs +4 -1
  776. package/sqlite-core/table.cjs.map +1 -1
  777. package/sqlite-core/table.d.cts +7 -0
  778. package/sqlite-core/table.d.ts +7 -0
  779. package/sqlite-core/table.js +4 -1
  780. package/sqlite-core/table.js.map +1 -1
  781. package/sqlite-core/unique-constraint.cjs +2 -2
  782. package/sqlite-core/unique-constraint.cjs.map +1 -1
  783. package/sqlite-core/unique-constraint.d.cts +1 -1
  784. package/sqlite-core/unique-constraint.d.ts +1 -1
  785. package/sqlite-core/unique-constraint.js +2 -2
  786. package/sqlite-core/unique-constraint.js.map +1 -1
  787. package/sqlite-proxy/driver.cjs +1 -1
  788. package/sqlite-proxy/driver.cjs.map +1 -1
  789. package/sqlite-proxy/driver.js +1 -1
  790. package/sqlite-proxy/driver.js.map +1 -1
  791. package/sqlite-proxy/migrator.cjs.map +1 -1
  792. package/sqlite-proxy/migrator.d.cts +1 -1
  793. package/sqlite-proxy/migrator.d.ts +1 -1
  794. package/sqlite-proxy/migrator.js.map +1 -1
  795. package/table.cjs +6 -8
  796. package/table.cjs.map +1 -1
  797. package/table.js +1 -2
  798. package/table.js.map +1 -1
  799. package/table.utils.cjs +29 -0
  800. package/table.utils.cjs.map +1 -0
  801. package/table.utils.d.cts +1 -0
  802. package/table.utils.d.ts +1 -0
  803. package/table.utils.js +5 -0
  804. package/table.utils.js.map +1 -0
  805. package/tidb-serverless/driver.cjs +10 -2
  806. package/tidb-serverless/driver.cjs.map +1 -1
  807. package/tidb-serverless/driver.d.cts +7 -2
  808. package/tidb-serverless/driver.d.ts +7 -2
  809. package/tidb-serverless/driver.js +9 -2
  810. package/tidb-serverless/driver.js.map +1 -1
  811. package/tidb-serverless/session.cjs +6 -0
  812. package/tidb-serverless/session.cjs.map +1 -1
  813. package/tidb-serverless/session.d.cts +1 -0
  814. package/tidb-serverless/session.d.ts +1 -0
  815. package/tidb-serverless/session.js +6 -0
  816. package/tidb-serverless/session.js.map +1 -1
  817. package/utils.cjs +8 -0
  818. package/utils.cjs.map +1 -1
  819. package/utils.d.cts +4 -0
  820. package/utils.d.ts +4 -0
  821. package/utils.js +7 -0
  822. package/utils.js.map +1 -1
  823. package/vercel-postgres/driver.cjs +9 -2
  824. package/vercel-postgres/driver.cjs.map +1 -1
  825. package/vercel-postgres/driver.d.cts +6 -2
  826. package/vercel-postgres/driver.d.ts +6 -2
  827. package/vercel-postgres/driver.js +8 -2
  828. package/vercel-postgres/driver.js.map +1 -1
  829. package/vercel-postgres/migrator.cjs.map +1 -1
  830. package/vercel-postgres/migrator.d.cts +1 -1
  831. package/vercel-postgres/migrator.d.ts +1 -1
  832. package/vercel-postgres/migrator.js.map +1 -1
  833. package/version.cjs +1 -1
  834. package/version.d.cts +1 -1
  835. package/version.d.ts +1 -1
  836. package/version.js +1 -1
  837. package/xata-http/driver.cjs +4 -2
  838. package/xata-http/driver.cjs.map +1 -1
  839. package/xata-http/driver.d.cts +3 -1
  840. package/xata-http/driver.d.ts +3 -1
  841. package/xata-http/driver.js +4 -2
  842. package/xata-http/driver.js.map +1 -1
  843. package/xata-http/migrator.cjs +1 -1
  844. package/xata-http/migrator.cjs.map +1 -1
  845. package/xata-http/migrator.d.cts +1 -1
  846. package/xata-http/migrator.d.ts +1 -1
  847. package/xata-http/migrator.js +1 -1
  848. package/xata-http/migrator.js.map +1 -1
@@ -26,6 +26,7 @@ __export(text_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(text_exports);
28
28
  var import_entity = require("../../entity.cjs");
29
+ var import_utils = require("../../utils.cjs");
29
30
  var import_common = require("./common.cjs");
30
31
  class SQLiteTextBuilder extends import_common.SQLiteColumnBuilder {
31
32
  static [import_entity.entityKind] = "SQLiteTextBuilder";
@@ -75,8 +76,12 @@ class SQLiteTextJson extends import_common.SQLiteColumn {
75
76
  return JSON.stringify(value);
76
77
  }
77
78
  }
78
- function text(name, config = {}) {
79
- return config.mode === "json" ? new SQLiteTextJsonBuilder(name) : new SQLiteTextBuilder(name, config);
79
+ function text(a, b = {}) {
80
+ const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
81
+ if (config.mode === "json") {
82
+ return new SQLiteTextJsonBuilder(name);
83
+ }
84
+ return new SQLiteTextBuilder(name, config);
80
85
  }
81
86
  // Annotate the CommonJS export names for ESM import in node:
82
87
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Equal, Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'>> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteText<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: number | undefined = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial<TName extends string> = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteTextJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: number;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig: SQLiteTextConfig<TMode, T | Writable<T>> = {} as SQLiteTextConfig<TMode, T | Writable<T>>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName>\n\t: SQLiteTextBuilderInitial<TName, Writable<T>>\n{\n\treturn (config.mode === 'json'\n\t\t? new SQLiteTextJsonBuilder(name)\n\t\t: new SQLiteTextBuilder(name, config as SQLiteTextConfig<'text', Writable<T>>)) as Equal<TMode, 'json'> extends true\n\t\t\t? SQLiteTextJsonBuilderInitial<TName>\n\t\t\t: SQLiteTextBuilderInitial<TName, Writable<T>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,oBAAkD;AAY3C,MAAM,0BAAqF,kCAGhG;AAAA,EACD,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB,QAAmD;AAC/E,UAAM,MAAM,UAAU,YAAY;AAClC,SAAK,OAAO,aAAa,OAAO;AAChC,SAAK,OAAO,SAAS,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGS,MACR,OAC8C;AAC9C,WAAO,IAAI,WAA4C,OAAO,KAAK,MAA8C;AAAA,EAClH;AACD;AAEO,MAAM,mBACJ,2BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAErB,aAAa,KAAK,OAAO;AAAA,EAElC,SAA6B,KAAK,OAAO;AAAA,EAElD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,OAAO,KAAK,OAAO,SAAS,IAAI,KAAK,OAAO,MAAM,MAAM,EAAE;AAAA,EAClE;AACD;AAYO,MAAM,8BACJ,kCACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,2BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA0B;AACrD,WAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACD;AAcO,SAAS,KAMf,MACA,SAAmD,CAAC,GAGrD;AACC,SAAQ,OAAO,SAAS,SACrB,IAAI,sBAAsB,IAAI,IAC9B,IAAI,kBAAkB,MAAM,MAA+C;AAG/E;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'>> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteText<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: number | undefined = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial<TName extends string> = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteTextJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: number;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text(): SQLiteTextBuilderInitial<'', [string, ...string[]]>;\nexport function text<\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tconfig?: SQLiteTextConfig<TMode, T | Writable<T>>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''>\n\t: SQLiteTextBuilderInitial<'', Writable<T>>;\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig?: SQLiteTextConfig<TMode, T | Writable<T>>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName>\n\t: SQLiteTextBuilderInitial<TName, Writable<T>>;\nexport function text(a?: string | SQLiteTextConfig, b: SQLiteTextConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<SQLiteTextConfig>(a, b);\n\tif (config.mode === 'json') {\n\t\treturn new SQLiteTextJsonBuilder(name);\n\t}\n\treturn new SQLiteTextBuilder(name, config as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAkE;AAClE,oBAAkD;AAY3C,MAAM,0BAAqF,kCAGhG;AAAA,EACD,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB,QAAmD;AAC/E,UAAM,MAAM,UAAU,YAAY;AAClC,SAAK,OAAO,aAAa,OAAO;AAChC,SAAK,OAAO,SAAS,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGS,MACR,OAC8C;AAC9C,WAAO,IAAI,WAA4C,OAAO,KAAK,MAA8C;AAAA,EAClH;AACD;AAEO,MAAM,mBACJ,2BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAErB,aAAa,KAAK,OAAO;AAAA,EAElC,SAA6B,KAAK,OAAO;AAAA,EAElD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,OAAO,KAAK,OAAO,SAAS,IAAI,KAAK,OAAO,MAAM,MAAM,EAAE;AAAA,EAClE;AACD;AAYO,MAAM,8BACJ,kCACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,2BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA0B;AACrD,WAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACD;AAiCO,SAAS,KAAK,GAA+B,IAAsB,CAAC,GAAQ;AAClF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAyC,GAAG,CAAC;AACtE,MAAI,OAAO,SAAS,QAAQ;AAC3B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,SAAO,IAAI,kBAAkB,MAAM,MAAa;AACjD;","names":[]}
@@ -2,7 +2,7 @@ import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
2
2
  import type { ColumnBaseConfig } from "../../column.cjs";
3
3
  import { entityKind } from "../../entity.cjs";
4
4
  import type { AnySQLiteTable } from "../table.cjs";
5
- import type { Equal, Writable } from "../../utils.cjs";
5
+ import { type Equal, type Writable } from "../../utils.cjs";
6
6
  import { SQLiteColumn, SQLiteColumnBuilder } from "./common.cjs";
7
7
  export type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{
8
8
  name: TName;
@@ -54,11 +54,13 @@ export declare class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTe
54
54
  mapFromDriverValue(value: string): T['data'];
55
55
  mapToDriverValue(value: T['data']): string;
56
56
  }
57
- export type SQLiteTextConfig<TMode extends 'text' | 'json', TEnum extends readonly string[] | string[] | undefined> = TMode extends 'text' ? {
57
+ export type SQLiteTextConfig<TMode extends 'text' | 'json' = 'text' | 'json', TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined> = TMode extends 'text' ? {
58
58
  mode?: TMode;
59
59
  length?: number;
60
60
  enum?: TEnum;
61
61
  } : {
62
62
  mode?: TMode;
63
63
  };
64
+ export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]]>;
65
+ export declare function text<U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig<TMode, T | Writable<T>>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''> : SQLiteTextBuilderInitial<'', Writable<T>>;
64
66
  export declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig<TMode, T | Writable<T>>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName> : SQLiteTextBuilderInitial<TName, Writable<T>>;
@@ -2,7 +2,7 @@ import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
2
2
  import type { ColumnBaseConfig } from "../../column.js";
3
3
  import { entityKind } from "../../entity.js";
4
4
  import type { AnySQLiteTable } from "../table.js";
5
- import type { Equal, Writable } from "../../utils.js";
5
+ import { type Equal, type Writable } from "../../utils.js";
6
6
  import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
7
7
  export type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{
8
8
  name: TName;
@@ -54,11 +54,13 @@ export declare class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTe
54
54
  mapFromDriverValue(value: string): T['data'];
55
55
  mapToDriverValue(value: T['data']): string;
56
56
  }
57
- export type SQLiteTextConfig<TMode extends 'text' | 'json', TEnum extends readonly string[] | string[] | undefined> = TMode extends 'text' ? {
57
+ export type SQLiteTextConfig<TMode extends 'text' | 'json' = 'text' | 'json', TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined> = TMode extends 'text' ? {
58
58
  mode?: TMode;
59
59
  length?: number;
60
60
  enum?: TEnum;
61
61
  } : {
62
62
  mode?: TMode;
63
63
  };
64
+ export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]]>;
65
+ export declare function text<U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig<TMode, T | Writable<T>>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''> : SQLiteTextBuilderInitial<'', Writable<T>>;
64
66
  export declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig<TMode, T | Writable<T>>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName> : SQLiteTextBuilderInitial<TName, Writable<T>>;
@@ -1,4 +1,5 @@
1
1
  import { entityKind } from "../../entity.js";
2
+ import { getColumnNameAndConfig } from "../../utils.js";
2
3
  import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
3
4
  class SQLiteTextBuilder extends SQLiteColumnBuilder {
4
5
  static [entityKind] = "SQLiteTextBuilder";
@@ -48,8 +49,12 @@ class SQLiteTextJson extends SQLiteColumn {
48
49
  return JSON.stringify(value);
49
50
  }
50
51
  }
51
- function text(name, config = {}) {
52
- return config.mode === "json" ? new SQLiteTextJsonBuilder(name) : new SQLiteTextBuilder(name, config);
52
+ function text(a, b = {}) {
53
+ const { name, config } = getColumnNameAndConfig(a, b);
54
+ if (config.mode === "json") {
55
+ return new SQLiteTextJsonBuilder(name);
56
+ }
57
+ return new SQLiteTextBuilder(name, config);
53
58
  }
54
59
  export {
55
60
  SQLiteText,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Equal, Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'>> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteText<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: number | undefined = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial<TName extends string> = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteTextJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: number;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig: SQLiteTextConfig<TMode, T | Writable<T>> = {} as SQLiteTextConfig<TMode, T | Writable<T>>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName>\n\t: SQLiteTextBuilderInitial<TName, Writable<T>>\n{\n\treturn (config.mode === 'json'\n\t\t? new SQLiteTextJsonBuilder(name)\n\t\t: new SQLiteTextBuilder(name, config as SQLiteTextConfig<'text', Writable<T>>)) as Equal<TMode, 'json'> extends true\n\t\t\t? SQLiteTextJsonBuilderInitial<TName>\n\t\t\t: SQLiteTextBuilderInitial<TName, Writable<T>>;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAS,cAAc,2BAA2B;AAY3C,MAAM,0BAAqF,oBAGhG;AAAA,EACD,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB,QAAmD;AAC/E,UAAM,MAAM,UAAU,YAAY;AAClC,SAAK,OAAO,aAAa,OAAO;AAChC,SAAK,OAAO,SAAS,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGS,MACR,OAC8C;AAC9C,WAAO,IAAI,WAA4C,OAAO,KAAK,MAA8C;AAAA,EAClH;AACD;AAEO,MAAM,mBACJ,aACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAErB,aAAa,KAAK,OAAO;AAAA,EAElC,SAA6B,KAAK,OAAO;AAAA,EAElD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,OAAO,KAAK,OAAO,SAAS,IAAI,KAAK,OAAO,MAAM,MAAM,EAAE;AAAA,EAClE;AACD;AAYO,MAAM,8BACJ,oBACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,aACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA0B;AACrD,WAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACD;AAcO,SAAS,KAMf,MACA,SAAmD,CAAC,GAGrD;AACC,SAAQ,OAAO,SAAS,SACrB,IAAI,sBAAsB,IAAI,IAC9B,IAAI,kBAAkB,MAAM,MAA+C;AAG/E;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'>> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteText<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: number | undefined = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial<TName extends string> = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteTextJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: number;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text(): SQLiteTextBuilderInitial<'', [string, ...string[]]>;\nexport function text<\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tconfig?: SQLiteTextConfig<TMode, T | Writable<T>>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''>\n\t: SQLiteTextBuilderInitial<'', Writable<T>>;\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig?: SQLiteTextConfig<TMode, T | Writable<T>>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName>\n\t: SQLiteTextBuilderInitial<TName, Writable<T>>;\nexport function text(a?: string | SQLiteTextConfig, b: SQLiteTextConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<SQLiteTextConfig>(a, b);\n\tif (config.mode === 'json') {\n\t\treturn new SQLiteTextJsonBuilder(name);\n\t}\n\treturn new SQLiteTextBuilder(name, config as any);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA6C;AAClE,SAAS,cAAc,2BAA2B;AAY3C,MAAM,0BAAqF,oBAGhG;AAAA,EACD,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB,QAAmD;AAC/E,UAAM,MAAM,UAAU,YAAY;AAClC,SAAK,OAAO,aAAa,OAAO;AAChC,SAAK,OAAO,SAAS,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGS,MACR,OAC8C;AAC9C,WAAO,IAAI,WAA4C,OAAO,KAAK,MAA8C;AAAA,EAClH;AACD;AAEO,MAAM,mBACJ,aACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAErB,aAAa,KAAK,OAAO;AAAA,EAElC,SAA6B,KAAK,OAAO;AAAA,EAElD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,OAAO,KAAK,OAAO,SAAS,IAAI,KAAK,OAAO,MAAM,MAAM,EAAE;AAAA,EAClE;AACD;AAYO,MAAM,8BACJ,oBACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,aACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA0B;AACrD,WAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACD;AAiCO,SAAS,KAAK,GAA+B,IAAsB,CAAC,GAAQ;AAClF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAyC,GAAG,CAAC;AACtE,MAAI,OAAO,SAAS,QAAQ;AAC3B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,SAAO,IAAI,kBAAkB,MAAM,MAAa;AACjD;","names":[]}
@@ -24,8 +24,10 @@ __export(db_exports, {
24
24
  module.exports = __toCommonJS(db_exports);
25
25
  var import_entity = require("../entity.cjs");
26
26
  var import_selection_proxy = require("../selection-proxy.cjs");
27
+ var import_sql = require("../sql/sql.cjs");
27
28
  var import_query_builders = require("./query-builders/index.cjs");
28
29
  var import_subquery = require("../subquery.cjs");
30
+ var import_count = require("./query-builders/count.cjs");
29
31
  var import_query = require("./query-builders/query.cjs");
30
32
  var import_raw = require("./query-builders/raw.cjs");
31
33
  class BaseSQLiteDatabase {
@@ -94,10 +96,11 @@ class BaseSQLiteDatabase {
94
96
  * ```
95
97
  */
96
98
  $with(alias) {
99
+ const self = this;
97
100
  return {
98
101
  as(qb) {
99
102
  if (typeof qb === "function") {
100
- qb = qb(new import_query_builders.QueryBuilder());
103
+ qb = qb(new import_query_builders.QueryBuilder(self.dialect));
101
104
  }
102
105
  return new Proxy(
103
106
  new import_subquery.WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true),
@@ -106,6 +109,9 @@ class BaseSQLiteDatabase {
106
109
  }
107
110
  };
108
111
  }
112
+ $count(source, filters) {
113
+ return new import_count.SQLiteCountBuilder({ source, filters, session: this.session });
114
+ }
109
115
  /**
110
116
  * Incorporates a previously defined CTE (using `$with`) into the main query.
111
117
  *
@@ -251,56 +257,56 @@ class BaseSQLiteDatabase {
251
257
  return new import_query_builders.SQLiteDeleteBase(from, this.session, this.dialect);
252
258
  }
253
259
  run(query) {
254
- const sql = query.getSQL();
260
+ const sequel = typeof query === "string" ? import_sql.sql.raw(query) : query.getSQL();
255
261
  if (this.resultKind === "async") {
256
262
  return new import_raw.SQLiteRaw(
257
- async () => this.session.run(sql),
258
- () => sql,
263
+ async () => this.session.run(sequel),
264
+ () => sequel,
259
265
  "run",
260
266
  this.dialect,
261
267
  this.session.extractRawRunValueFromBatchResult.bind(this.session)
262
268
  );
263
269
  }
264
- return this.session.run(sql);
270
+ return this.session.run(sequel);
265
271
  }
266
272
  all(query) {
267
- const sql = query.getSQL();
273
+ const sequel = typeof query === "string" ? import_sql.sql.raw(query) : query.getSQL();
268
274
  if (this.resultKind === "async") {
269
275
  return new import_raw.SQLiteRaw(
270
- async () => this.session.all(sql),
271
- () => sql,
276
+ async () => this.session.all(sequel),
277
+ () => sequel,
272
278
  "all",
273
279
  this.dialect,
274
280
  this.session.extractRawAllValueFromBatchResult.bind(this.session)
275
281
  );
276
282
  }
277
- return this.session.all(sql);
283
+ return this.session.all(sequel);
278
284
  }
279
285
  get(query) {
280
- const sql = query.getSQL();
286
+ const sequel = typeof query === "string" ? import_sql.sql.raw(query) : query.getSQL();
281
287
  if (this.resultKind === "async") {
282
288
  return new import_raw.SQLiteRaw(
283
- async () => this.session.get(sql),
284
- () => sql,
289
+ async () => this.session.get(sequel),
290
+ () => sequel,
285
291
  "get",
286
292
  this.dialect,
287
293
  this.session.extractRawGetValueFromBatchResult.bind(this.session)
288
294
  );
289
295
  }
290
- return this.session.get(sql);
296
+ return this.session.get(sequel);
291
297
  }
292
298
  values(query) {
293
- const sql = query.getSQL();
299
+ const sequel = typeof query === "string" ? import_sql.sql.raw(query) : query.getSQL();
294
300
  if (this.resultKind === "async") {
295
301
  return new import_raw.SQLiteRaw(
296
- async () => this.session.values(sql),
297
- () => sql,
302
+ async () => this.session.values(sequel),
303
+ () => sequel,
298
304
  "values",
299
305
  this.dialect,
300
306
  this.session.extractRawValuesValueFromBatchResult.bind(this.session)
301
307
  );
302
308
  }
303
- return this.session.values(sql);
309
+ return this.session.values(sequel);
304
310
  }
305
311
  transaction(transaction, config) {
306
312
  return this.session.transaction(transaction, config);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/db.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteSelectBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport type {\n\tDBResult,\n\tResult,\n\tSQLiteSession,\n\tSQLiteTransaction,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithSubqueryWithSelection } from './subquery.ts';\n\nexport class BaseSQLiteDatabase<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'BaseSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t};\n\n\tquery: 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<TResultKind, TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\tconstructor(\n\t\tprivate resultKind: TResultKind,\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t\t/** @internal */\n\t\treadonly session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\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}\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};\n\t\tthis.query = {} as typeof this['query'];\n\t\tconst query = this.query as {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder<TResultKind, 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\tresultKind,\n\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\tschema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession<any, any, any, any> as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\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 = await 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 = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with<TAlias extends string>(alias: TAlias) {\n\t\treturn {\n\t\t\tas<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias> {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(new QueryBuilder());\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t},\n\t\t};\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 = await 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[] = await 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 }[] = await 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 }[] = await 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(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\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 * await 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 * await 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(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\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 * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await 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[] = await 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, TResultKind, TRunResult> {\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 * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await 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, TResultKind, TRunResult> {\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 * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await 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, TResultKind, TRunResult> {\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[] = await 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 }[] = await 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 }[] = await 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(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselect(fields?: SelectedFields): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({ 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 * await 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 * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({\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 * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await 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, TResultKind, TRunResult> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\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 * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, TResultKind, TRunResult> {\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 * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await 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, TResultKind, TRunResult> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\trun(query: SQLWrapper): DBResult<TResultKind, TRunResult> {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.run(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'run',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawRunValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, TRunResult>;\n\t\t}\n\t\treturn this.session.run(sql) as DBResult<TResultKind, TRunResult>;\n\t}\n\n\tall<T = unknown>(query: SQLWrapper): DBResult<TResultKind, T[]> {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.all(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'all',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawAllValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.all(sql) as DBResult<TResultKind, T[]>;\n\t}\n\n\tget<T = unknown>(query: SQLWrapper): DBResult<TResultKind, T> {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.get(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'get',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawGetValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, T>;\n\t\t}\n\t\treturn this.session.get(sql) as DBResult<TResultKind, T>;\n\t}\n\n\tvalues<T extends unknown[] = unknown[]>(query: SQLWrapper): DBResult<TResultKind, T[]> {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.values(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'values',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawValuesValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.values(sql) as DBResult<TResultKind, T[]>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, 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\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n\tQ extends BaseSQLiteDatabase<\n\t\tTResultKind,\n\t\tTRunResult,\n\t\tTFullSchema,\n\t\tTSchema extends Record<string, unknown> ? 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 $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 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\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\twith: $with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/sqlite-core/db.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } 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 {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteSelectBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport type {\n\tDBResult,\n\tResult,\n\tSQLiteSession,\n\tSQLiteTransaction,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { SQLiteCountBuilder } from './query-builders/count.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithSubqueryWithSelection } from './subquery.ts';\nimport type { SQLiteViewBase } from './view-base.ts';\n\nexport class BaseSQLiteDatabase<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'BaseSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t};\n\n\tquery: 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<TResultKind, TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\tconstructor(\n\t\tprivate resultKind: TResultKind,\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t\t/** @internal */\n\t\treadonly session: SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\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}\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};\n\t\tthis.query = {} as typeof this['query'];\n\t\tconst query = this.query as {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder<TResultKind, 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\tresultKind,\n\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\tschema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession<any, any, any, any> as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\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 = await 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 = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with<TAlias extends string>(alias: TAlias) {\n\t\tconst self = this;\n\t\treturn {\n\t\t\tas<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias> {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t},\n\t\t};\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 = await 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[] = await 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 }[] = await 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 }[] = await 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(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\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 * await 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 * await 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(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\t\treturn new SQLiteSelectBuilder({\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 * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await 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[] = await 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, TResultKind, TRunResult> {\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 * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await 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, TResultKind, TRunResult> {\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 * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await 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, TResultKind, TRunResult> {\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[] = await 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 }[] = await 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 }[] = await 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(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselect(fields?: SelectedFields): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({ 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 * await 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 * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): SQLiteSelectBuilder<undefined, TResultKind, TRunResult>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder<TSelection, TResultKind, TRunResult>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): SQLiteSelectBuilder<SelectedFields | undefined, TResultKind, TRunResult> {\n\t\treturn new SQLiteSelectBuilder({\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 * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await 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, TResultKind, TRunResult> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\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 * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, TResultKind, TRunResult> {\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 * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await 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, TResultKind, TRunResult> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\trun(query: SQLWrapper | string): DBResult<TResultKind, TRunResult> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.run(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'run',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawRunValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, TRunResult>;\n\t\t}\n\t\treturn this.session.run(sequel) as DBResult<TResultKind, TRunResult>;\n\t}\n\n\tall<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.all(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'all',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawAllValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.all(sequel) as DBResult<TResultKind, T[]>;\n\t}\n\n\tget<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.get(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'get',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawGetValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult<TResultKind, T>;\n\t\t}\n\t\treturn this.session.get(sequel) as DBResult<TResultKind, T>;\n\t}\n\n\tvalues<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.values(sequel),\n\t\t\t\t() => sequel,\n\t\t\t\t'values',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawValuesValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.values(sequel) as DBResult<TResultKind, T[]>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, 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\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n\tQ extends BaseSQLiteDatabase<\n\t\tTResultKind,\n\t\tTRunResult,\n\t\tTFullSchema,\n\t\tTSchema extends Record<string, unknown> ? 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 $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 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\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\twith: $with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":[]}
@@ -1,16 +1,18 @@
1
1
  import { entityKind } from "../entity.cjs";
2
2
  import type { TypedQueryBuilder } from "../query-builders/query-builder.cjs";
3
3
  import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
4
- import type { ColumnsSelection, SQLWrapper } from "../sql/sql.cjs";
4
+ import { type ColumnsSelection, type SQL, type SQLWrapper } from "../sql/sql.cjs";
5
5
  import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.cjs";
6
6
  import { QueryBuilder, SQLiteDeleteBase, SQLiteInsertBuilder, SQLiteSelectBuilder, SQLiteUpdateBuilder } from "./query-builders/index.cjs";
7
7
  import type { DBResult, Result, SQLiteSession, SQLiteTransaction, SQLiteTransactionConfig } from "./session.cjs";
8
8
  import type { SQLiteTable } from "./table.cjs";
9
9
  import { WithSubquery } from "../subquery.cjs";
10
10
  import type { DrizzleTypeError } from "../utils.cjs";
11
+ import { SQLiteCountBuilder } from "./query-builders/count.cjs";
11
12
  import { RelationalQueryBuilder } from "./query-builders/query.cjs";
12
13
  import type { SelectedFields } from "./query-builders/select.types.cjs";
13
14
  import type { WithSubqueryWithSelection } from "./subquery.cjs";
15
+ import type { SQLiteViewBase } from "./view-base.cjs";
14
16
  export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
15
17
  private resultKind;
16
18
  static readonly [entityKind]: string;
@@ -65,6 +67,7 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
65
67
  $with<TAlias extends string>(alias: TAlias): {
66
68
  as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
67
69
  };
70
+ $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteCountBuilder<SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>>;
68
71
  /**
69
72
  * Incorporates a previously defined CTE (using `$with`) into the main query.
70
73
  *
@@ -240,10 +243,10 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
240
243
  * ```
241
244
  */
242
245
  delete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, TResultKind, TRunResult>;
243
- run(query: SQLWrapper): DBResult<TResultKind, TRunResult>;
244
- all<T = unknown>(query: SQLWrapper): DBResult<TResultKind, T[]>;
245
- get<T = unknown>(query: SQLWrapper): DBResult<TResultKind, T>;
246
- values<T extends unknown[] = unknown[]>(query: SQLWrapper): DBResult<TResultKind, T[]>;
246
+ run(query: SQLWrapper | string): DBResult<TResultKind, TRunResult>;
247
+ all<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
248
+ get<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T>;
249
+ values<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
247
250
  transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
248
251
  }
249
252
  export type SQLiteWithReplicas<Q> = Q & {
@@ -1,16 +1,18 @@
1
1
  import { entityKind } from "../entity.js";
2
2
  import type { TypedQueryBuilder } from "../query-builders/query-builder.js";
3
3
  import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
4
- import type { ColumnsSelection, SQLWrapper } from "../sql/sql.js";
4
+ import { type ColumnsSelection, type SQL, type SQLWrapper } from "../sql/sql.js";
5
5
  import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.js";
6
6
  import { QueryBuilder, SQLiteDeleteBase, SQLiteInsertBuilder, SQLiteSelectBuilder, SQLiteUpdateBuilder } from "./query-builders/index.js";
7
7
  import type { DBResult, Result, SQLiteSession, SQLiteTransaction, SQLiteTransactionConfig } from "./session.js";
8
8
  import type { SQLiteTable } from "./table.js";
9
9
  import { WithSubquery } from "../subquery.js";
10
10
  import type { DrizzleTypeError } from "../utils.js";
11
+ import { SQLiteCountBuilder } from "./query-builders/count.js";
11
12
  import { RelationalQueryBuilder } from "./query-builders/query.js";
12
13
  import type { SelectedFields } from "./query-builders/select.types.js";
13
14
  import type { WithSubqueryWithSelection } from "./subquery.js";
15
+ import type { SQLiteViewBase } from "./view-base.js";
14
16
  export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TRunResult, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
15
17
  private resultKind;
16
18
  static readonly [entityKind]: string;
@@ -65,6 +67,7 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
65
67
  $with<TAlias extends string>(alias: TAlias): {
66
68
  as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
67
69
  };
70
+ $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteCountBuilder<SQLiteSession<TResultKind, TRunResult, TFullSchema, TSchema>>;
68
71
  /**
69
72
  * Incorporates a previously defined CTE (using `$with`) into the main query.
70
73
  *
@@ -240,10 +243,10 @@ export declare class BaseSQLiteDatabase<TResultKind extends 'sync' | 'async', TR
240
243
  * ```
241
244
  */
242
245
  delete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, TResultKind, TRunResult>;
243
- run(query: SQLWrapper): DBResult<TResultKind, TRunResult>;
244
- all<T = unknown>(query: SQLWrapper): DBResult<TResultKind, T[]>;
245
- get<T = unknown>(query: SQLWrapper): DBResult<TResultKind, T>;
246
- values<T extends unknown[] = unknown[]>(query: SQLWrapper): DBResult<TResultKind, T[]>;
246
+ run(query: SQLWrapper | string): DBResult<TResultKind, TRunResult>;
247
+ all<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
248
+ get<T = unknown>(query: SQLWrapper | string): DBResult<TResultKind, T>;
249
+ values<T extends unknown[] = unknown[]>(query: SQLWrapper | string): DBResult<TResultKind, T[]>;
247
250
  transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
248
251
  }
249
252
  export type SQLiteWithReplicas<Q> = Q & {
package/sqlite-core/db.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { entityKind } from "../entity.js";
2
2
  import { SelectionProxyHandler } from "../selection-proxy.js";
3
+ import { sql } from "../sql/sql.js";
3
4
  import {
4
5
  QueryBuilder,
5
6
  SQLiteDeleteBase,
@@ -8,6 +9,7 @@ import {
8
9
  SQLiteUpdateBuilder
9
10
  } from "./query-builders/index.js";
10
11
  import { WithSubquery } from "../subquery.js";
12
+ import { SQLiteCountBuilder } from "./query-builders/count.js";
11
13
  import { RelationalQueryBuilder } from "./query-builders/query.js";
12
14
  import { SQLiteRaw } from "./query-builders/raw.js";
13
15
  class BaseSQLiteDatabase {
@@ -76,10 +78,11 @@ class BaseSQLiteDatabase {
76
78
  * ```
77
79
  */
78
80
  $with(alias) {
81
+ const self = this;
79
82
  return {
80
83
  as(qb) {
81
84
  if (typeof qb === "function") {
82
- qb = qb(new QueryBuilder());
85
+ qb = qb(new QueryBuilder(self.dialect));
83
86
  }
84
87
  return new Proxy(
85
88
  new WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true),
@@ -88,6 +91,9 @@ class BaseSQLiteDatabase {
88
91
  }
89
92
  };
90
93
  }
94
+ $count(source, filters) {
95
+ return new SQLiteCountBuilder({ source, filters, session: this.session });
96
+ }
91
97
  /**
92
98
  * Incorporates a previously defined CTE (using `$with`) into the main query.
93
99
  *
@@ -233,56 +239,56 @@ class BaseSQLiteDatabase {
233
239
  return new SQLiteDeleteBase(from, this.session, this.dialect);
234
240
  }
235
241
  run(query) {
236
- const sql = query.getSQL();
242
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
237
243
  if (this.resultKind === "async") {
238
244
  return new SQLiteRaw(
239
- async () => this.session.run(sql),
240
- () => sql,
245
+ async () => this.session.run(sequel),
246
+ () => sequel,
241
247
  "run",
242
248
  this.dialect,
243
249
  this.session.extractRawRunValueFromBatchResult.bind(this.session)
244
250
  );
245
251
  }
246
- return this.session.run(sql);
252
+ return this.session.run(sequel);
247
253
  }
248
254
  all(query) {
249
- const sql = query.getSQL();
255
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
250
256
  if (this.resultKind === "async") {
251
257
  return new SQLiteRaw(
252
- async () => this.session.all(sql),
253
- () => sql,
258
+ async () => this.session.all(sequel),
259
+ () => sequel,
254
260
  "all",
255
261
  this.dialect,
256
262
  this.session.extractRawAllValueFromBatchResult.bind(this.session)
257
263
  );
258
264
  }
259
- return this.session.all(sql);
265
+ return this.session.all(sequel);
260
266
  }
261
267
  get(query) {
262
- const sql = query.getSQL();
268
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
263
269
  if (this.resultKind === "async") {
264
270
  return new SQLiteRaw(
265
- async () => this.session.get(sql),
266
- () => sql,
271
+ async () => this.session.get(sequel),
272
+ () => sequel,
267
273
  "get",
268
274
  this.dialect,
269
275
  this.session.extractRawGetValueFromBatchResult.bind(this.session)
270
276
  );
271
277
  }
272
- return this.session.get(sql);
278
+ return this.session.get(sequel);
273
279
  }
274
280
  values(query) {
275
- const sql = query.getSQL();
281
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
276
282
  if (this.resultKind === "async") {
277
283
  return new SQLiteRaw(
278
- async () => this.session.values(sql),
279
- () => sql,
284
+ async () => this.session.values(sequel),
285
+ () => sequel,
280
286
  "values",
281
287
  this.dialect,
282
288
  this.session.extractRawValuesValueFromBatchResult.bind(this.session)
283
289
  );
284
290
  }
285
- return this.session.values(sql);
291
+ return this.session.values(sequel);
286
292
  }
287
293
  transaction(transaction, config) {
288
294
  return this.session.transaction(transaction, config);