drizzle-orm 0.36.4-14e59f4 → 0.36.4-3c69a1f

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 (971) hide show
  1. package/_relations.cjs +328 -0
  2. package/_relations.cjs.map +1 -0
  3. package/_relations.d.cts +215 -0
  4. package/_relations.d.ts +215 -0
  5. package/_relations.js +316 -0
  6. package/_relations.js.map +1 -0
  7. package/alias.cjs.map +1 -1
  8. package/alias.d.cts +3 -3
  9. package/alias.d.ts +3 -3
  10. package/alias.js.map +1 -1
  11. package/aws-data-api/pg/driver.cjs +19 -5
  12. package/aws-data-api/pg/driver.cjs.map +1 -1
  13. package/aws-data-api/pg/driver.d.cts +9 -8
  14. package/aws-data-api/pg/driver.d.ts +9 -8
  15. package/aws-data-api/pg/driver.js +9 -8
  16. package/aws-data-api/pg/driver.js.map +1 -1
  17. package/aws-data-api/pg/migrator.cjs.map +1 -1
  18. package/aws-data-api/pg/migrator.d.cts +2 -1
  19. package/aws-data-api/pg/migrator.d.ts +2 -1
  20. package/aws-data-api/pg/migrator.js.map +1 -1
  21. package/aws-data-api/pg/session.cjs +67 -4
  22. package/aws-data-api/pg/session.cjs.map +1 -1
  23. package/aws-data-api/pg/session.d.cts +13 -8
  24. package/aws-data-api/pg/session.d.ts +13 -8
  25. package/aws-data-api/pg/session.js +67 -4
  26. package/aws-data-api/pg/session.js.map +1 -1
  27. package/better-sqlite3/driver.cjs +12 -5
  28. package/better-sqlite3/driver.cjs.map +1 -1
  29. package/better-sqlite3/driver.d.cts +7 -6
  30. package/better-sqlite3/driver.d.ts +7 -6
  31. package/better-sqlite3/driver.js +12 -8
  32. package/better-sqlite3/driver.js.map +1 -1
  33. package/better-sqlite3/migrator.cjs.map +1 -1
  34. package/better-sqlite3/migrator.d.cts +2 -1
  35. package/better-sqlite3/migrator.d.ts +2 -1
  36. package/better-sqlite3/migrator.js.map +1 -1
  37. package/better-sqlite3/session.cjs +49 -4
  38. package/better-sqlite3/session.cjs.map +1 -1
  39. package/better-sqlite3/session.d.cts +14 -8
  40. package/better-sqlite3/session.d.ts +14 -8
  41. package/better-sqlite3/session.js +49 -4
  42. package/better-sqlite3/session.js.map +1 -1
  43. package/bun-sqlite/driver.cjs +22 -5
  44. package/bun-sqlite/driver.cjs.map +1 -1
  45. package/bun-sqlite/driver.d.cts +7 -6
  46. package/bun-sqlite/driver.d.ts +7 -6
  47. package/bun-sqlite/driver.js +12 -8
  48. package/bun-sqlite/driver.js.map +1 -1
  49. package/bun-sqlite/migrator.cjs.map +1 -1
  50. package/bun-sqlite/migrator.d.cts +2 -1
  51. package/bun-sqlite/migrator.d.ts +2 -1
  52. package/bun-sqlite/migrator.js.map +1 -1
  53. package/bun-sqlite/session.cjs +49 -4
  54. package/bun-sqlite/session.cjs.map +1 -1
  55. package/bun-sqlite/session.d.cts +14 -8
  56. package/bun-sqlite/session.d.ts +14 -8
  57. package/bun-sqlite/session.js +49 -4
  58. package/bun-sqlite/session.js.map +1 -1
  59. package/column-builder.cjs.map +1 -1
  60. package/column-builder.d.cts +3 -4
  61. package/column-builder.d.ts +3 -4
  62. package/column-builder.js.map +1 -1
  63. package/d1/driver.cjs +22 -5
  64. package/d1/driver.cjs.map +1 -1
  65. package/d1/driver.d.cts +3 -2
  66. package/d1/driver.d.ts +3 -2
  67. package/d1/driver.js +12 -8
  68. package/d1/driver.js.map +1 -1
  69. package/d1/migrator.cjs.map +1 -1
  70. package/d1/migrator.d.cts +2 -1
  71. package/d1/migrator.d.ts +2 -1
  72. package/d1/migrator.js.map +1 -1
  73. package/d1/session.cjs +48 -6
  74. package/d1/session.cjs.map +1 -1
  75. package/d1/session.d.cts +15 -8
  76. package/d1/session.d.ts +15 -8
  77. package/d1/session.js +48 -6
  78. package/d1/session.js.map +1 -1
  79. package/expo-sqlite/driver.cjs +22 -5
  80. package/expo-sqlite/driver.cjs.map +1 -1
  81. package/expo-sqlite/driver.d.cts +3 -2
  82. package/expo-sqlite/driver.d.ts +3 -2
  83. package/expo-sqlite/driver.js +12 -8
  84. package/expo-sqlite/driver.js.map +1 -1
  85. package/expo-sqlite/migrator.cjs.map +1 -1
  86. package/expo-sqlite/migrator.d.cts +3 -2
  87. package/expo-sqlite/migrator.d.ts +3 -2
  88. package/expo-sqlite/migrator.js.map +1 -1
  89. package/expo-sqlite/query.cjs +13 -2
  90. package/expo-sqlite/query.cjs.map +1 -1
  91. package/expo-sqlite/query.d.cts +2 -1
  92. package/expo-sqlite/query.d.ts +2 -1
  93. package/expo-sqlite/query.js +3 -2
  94. package/expo-sqlite/query.js.map +1 -1
  95. package/expo-sqlite/session.cjs +47 -4
  96. package/expo-sqlite/session.cjs.map +1 -1
  97. package/expo-sqlite/session.d.cts +14 -8
  98. package/expo-sqlite/session.d.ts +14 -8
  99. package/expo-sqlite/session.js +47 -4
  100. package/expo-sqlite/session.js.map +1 -1
  101. package/libsql/driver-core.cjs +22 -5
  102. package/libsql/driver-core.cjs.map +1 -1
  103. package/libsql/driver-core.d.cts +2 -1
  104. package/libsql/driver-core.d.ts +2 -1
  105. package/libsql/driver-core.js +12 -8
  106. package/libsql/driver-core.js.map +1 -1
  107. package/libsql/driver.cjs.map +1 -1
  108. package/libsql/driver.d.cts +6 -5
  109. package/libsql/driver.d.ts +6 -5
  110. package/libsql/driver.js.map +1 -1
  111. package/libsql/http/index.cjs.map +1 -1
  112. package/libsql/http/index.d.cts +6 -5
  113. package/libsql/http/index.d.ts +6 -5
  114. package/libsql/http/index.js.map +1 -1
  115. package/libsql/migrator.cjs.map +1 -1
  116. package/libsql/migrator.d.cts +2 -1
  117. package/libsql/migrator.d.ts +2 -1
  118. package/libsql/migrator.js.map +1 -1
  119. package/libsql/node/index.cjs.map +1 -1
  120. package/libsql/node/index.d.cts +6 -5
  121. package/libsql/node/index.d.ts +6 -5
  122. package/libsql/node/index.js.map +1 -1
  123. package/libsql/session.cjs +60 -4
  124. package/libsql/session.cjs.map +1 -1
  125. package/libsql/session.d.cts +15 -9
  126. package/libsql/session.d.ts +15 -9
  127. package/libsql/session.js +60 -4
  128. package/libsql/session.js.map +1 -1
  129. package/libsql/sqlite3/index.cjs.map +1 -1
  130. package/libsql/sqlite3/index.d.cts +6 -5
  131. package/libsql/sqlite3/index.d.ts +6 -5
  132. package/libsql/sqlite3/index.js.map +1 -1
  133. package/libsql/wasm/index.cjs.map +1 -1
  134. package/libsql/wasm/index.d.cts +6 -5
  135. package/libsql/wasm/index.d.ts +6 -5
  136. package/libsql/wasm/index.js.map +1 -1
  137. package/libsql/web/index.cjs.map +1 -1
  138. package/libsql/web/index.d.cts +6 -5
  139. package/libsql/web/index.d.ts +6 -5
  140. package/libsql/web/index.js.map +1 -1
  141. package/libsql/ws/index.cjs.map +1 -1
  142. package/libsql/ws/index.d.cts +6 -5
  143. package/libsql/ws/index.d.ts +6 -5
  144. package/libsql/ws/index.js.map +1 -1
  145. package/mysql-core/db.cjs +29 -8
  146. package/mysql-core/db.cjs.map +1 -1
  147. package/mysql-core/db.d.cts +15 -8
  148. package/mysql-core/db.d.ts +15 -8
  149. package/mysql-core/db.js +28 -7
  150. package/mysql-core/db.js.map +1 -1
  151. package/mysql-core/dialect.cjs +170 -15
  152. package/mysql-core/dialect.cjs.map +1 -1
  153. package/mysql-core/dialect.d.cts +29 -13
  154. package/mysql-core/dialect.d.ts +29 -13
  155. package/mysql-core/dialect.js +167 -21
  156. package/mysql-core/dialect.js.map +1 -1
  157. package/{singlestore-core/query-builders/query.cjs → mysql-core/query-builders/_query.cjs} +41 -18
  158. package/mysql-core/query-builders/_query.cjs.map +1 -0
  159. package/mysql-core/query-builders/_query.d.cts +44 -0
  160. package/mysql-core/query-builders/_query.d.ts +44 -0
  161. package/{singlestore-core/query-builders/query.js → mysql-core/query-builders/_query.js} +29 -18
  162. package/mysql-core/query-builders/_query.js.map +1 -0
  163. package/mysql-core/query-builders/count.cjs.map +1 -1
  164. package/mysql-core/query-builders/count.d.cts +1 -1
  165. package/mysql-core/query-builders/count.d.ts +1 -1
  166. package/mysql-core/query-builders/count.js.map +1 -1
  167. package/mysql-core/query-builders/query.cjs +18 -31
  168. package/mysql-core/query-builders/query.cjs.map +1 -1
  169. package/mysql-core/query-builders/query.d.cts +8 -10
  170. package/mysql-core/query-builders/query.d.ts +8 -10
  171. package/mysql-core/query-builders/query.js +18 -31
  172. package/mysql-core/query-builders/query.js.map +1 -1
  173. package/mysql-core/session.cjs +3 -2
  174. package/mysql-core/session.cjs.map +1 -1
  175. package/mysql-core/session.d.cts +10 -7
  176. package/mysql-core/session.d.ts +10 -7
  177. package/mysql-core/session.js +3 -2
  178. package/mysql-core/session.js.map +1 -1
  179. package/mysql-proxy/driver.cjs +22 -5
  180. package/mysql-proxy/driver.cjs.map +1 -1
  181. package/mysql-proxy/driver.d.cts +3 -2
  182. package/mysql-proxy/driver.d.ts +3 -2
  183. package/mysql-proxy/driver.js +12 -8
  184. package/mysql-proxy/driver.js.map +1 -1
  185. package/mysql-proxy/migrator.cjs.map +1 -1
  186. package/mysql-proxy/migrator.d.cts +2 -1
  187. package/mysql-proxy/migrator.d.ts +2 -1
  188. package/mysql-proxy/migrator.js.map +1 -1
  189. package/mysql-proxy/session.cjs +47 -2
  190. package/mysql-proxy/session.cjs.map +1 -1
  191. package/mysql-proxy/session.d.cts +13 -8
  192. package/mysql-proxy/session.d.ts +13 -8
  193. package/mysql-proxy/session.js +47 -2
  194. package/mysql-proxy/session.js.map +1 -1
  195. package/mysql2/driver.cjs +24 -7
  196. package/mysql2/driver.cjs.map +1 -1
  197. package/mysql2/driver.d.cts +10 -9
  198. package/mysql2/driver.d.ts +10 -9
  199. package/mysql2/driver.js +14 -10
  200. package/mysql2/driver.js.map +1 -1
  201. package/mysql2/migrator.cjs.map +1 -1
  202. package/mysql2/migrator.d.cts +2 -1
  203. package/mysql2/migrator.d.ts +2 -1
  204. package/mysql2/migrator.js.map +1 -1
  205. package/mysql2/session.cjs +51 -2
  206. package/mysql2/session.cjs.map +1 -1
  207. package/mysql2/session.d.cts +13 -8
  208. package/mysql2/session.d.ts +13 -8
  209. package/mysql2/session.js +51 -2
  210. package/mysql2/session.js.map +1 -1
  211. package/neon-http/driver.cjs +22 -8
  212. package/neon-http/driver.cjs.map +1 -1
  213. package/neon-http/driver.d.cts +11 -10
  214. package/neon-http/driver.d.ts +11 -10
  215. package/neon-http/driver.js +12 -8
  216. package/neon-http/driver.js.map +1 -1
  217. package/neon-http/migrator.cjs.map +1 -1
  218. package/neon-http/migrator.d.cts +2 -1
  219. package/neon-http/migrator.d.ts +2 -1
  220. package/neon-http/migrator.js.map +1 -1
  221. package/neon-http/session.cjs +32 -2
  222. package/neon-http/session.cjs.map +1 -1
  223. package/neon-http/session.d.cts +13 -8
  224. package/neon-http/session.d.ts +13 -8
  225. package/neon-http/session.js +32 -2
  226. package/neon-http/session.js.map +1 -1
  227. package/neon-serverless/driver.cjs +18 -7
  228. package/neon-serverless/driver.cjs.map +1 -1
  229. package/neon-serverless/driver.d.cts +9 -8
  230. package/neon-serverless/driver.d.ts +9 -8
  231. package/neon-serverless/driver.js +8 -10
  232. package/neon-serverless/driver.js.map +1 -1
  233. package/neon-serverless/migrator.cjs.map +1 -1
  234. package/neon-serverless/migrator.d.cts +2 -1
  235. package/neon-serverless/migrator.d.ts +2 -1
  236. package/neon-serverless/migrator.js.map +1 -1
  237. package/neon-serverless/session.cjs +40 -5
  238. package/neon-serverless/session.cjs.map +1 -1
  239. package/neon-serverless/session.d.cts +13 -8
  240. package/neon-serverless/session.d.ts +13 -8
  241. package/neon-serverless/session.js +40 -5
  242. package/neon-serverless/session.js.map +1 -1
  243. package/node-postgres/driver.cjs +13 -7
  244. package/node-postgres/driver.cjs.map +1 -1
  245. package/node-postgres/driver.d.cts +9 -8
  246. package/node-postgres/driver.d.ts +9 -8
  247. package/node-postgres/driver.js +13 -10
  248. package/node-postgres/driver.js.map +1 -1
  249. package/node-postgres/migrator.cjs.map +1 -1
  250. package/node-postgres/migrator.d.cts +2 -1
  251. package/node-postgres/migrator.d.ts +2 -1
  252. package/node-postgres/migrator.js.map +1 -1
  253. package/node-postgres/session.cjs +45 -4
  254. package/node-postgres/session.cjs.map +1 -1
  255. package/node-postgres/session.d.cts +13 -8
  256. package/node-postgres/session.d.ts +13 -8
  257. package/node-postgres/session.js +45 -4
  258. package/node-postgres/session.js.map +1 -1
  259. package/op-sqlite/driver.cjs +22 -5
  260. package/op-sqlite/driver.cjs.map +1 -1
  261. package/op-sqlite/driver.d.cts +3 -2
  262. package/op-sqlite/driver.d.ts +3 -2
  263. package/op-sqlite/driver.js +12 -8
  264. package/op-sqlite/driver.js.map +1 -1
  265. package/op-sqlite/migrator.cjs.map +1 -1
  266. package/op-sqlite/migrator.d.cts +3 -2
  267. package/op-sqlite/migrator.d.ts +3 -2
  268. package/op-sqlite/migrator.js.map +1 -1
  269. package/op-sqlite/session.cjs +47 -4
  270. package/op-sqlite/session.cjs.map +1 -1
  271. package/op-sqlite/session.d.cts +14 -8
  272. package/op-sqlite/session.d.ts +14 -8
  273. package/op-sqlite/session.js +47 -4
  274. package/op-sqlite/session.js.map +1 -1
  275. package/package.json +65 -798
  276. package/pg-core/db.cjs +31 -7
  277. package/pg-core/db.cjs.map +1 -1
  278. package/pg-core/db.d.cts +18 -11
  279. package/pg-core/db.d.ts +18 -11
  280. package/pg-core/db.js +30 -6
  281. package/pg-core/db.js.map +1 -1
  282. package/pg-core/dialect.cjs +146 -488
  283. package/pg-core/dialect.cjs.map +1 -1
  284. package/pg-core/dialect.d.cts +21 -7
  285. package/pg-core/dialect.d.ts +21 -7
  286. package/pg-core/dialect.js +143 -494
  287. package/pg-core/dialect.js.map +1 -1
  288. package/pg-core/query-builders/_query.cjs +155 -0
  289. package/pg-core/query-builders/_query.cjs.map +1 -0
  290. package/pg-core/query-builders/_query.d.cts +47 -0
  291. package/pg-core/query-builders/_query.d.ts +47 -0
  292. package/pg-core/query-builders/_query.js +120 -0
  293. package/pg-core/query-builders/_query.js.map +1 -0
  294. package/pg-core/query-builders/count.cjs +0 -1
  295. package/pg-core/query-builders/count.cjs.map +1 -1
  296. package/pg-core/query-builders/count.d.cts +2 -3
  297. package/pg-core/query-builders/count.d.ts +2 -3
  298. package/pg-core/query-builders/count.js +0 -1
  299. package/pg-core/query-builders/count.js.map +1 -1
  300. package/pg-core/query-builders/delete.cjs.map +1 -1
  301. package/pg-core/query-builders/delete.js.map +1 -1
  302. package/pg-core/query-builders/insert.cjs +9 -1
  303. package/pg-core/query-builders/insert.cjs.map +1 -1
  304. package/pg-core/query-builders/insert.js +9 -1
  305. package/pg-core/query-builders/insert.js.map +1 -1
  306. package/pg-core/query-builders/query.cjs +15 -18
  307. package/pg-core/query-builders/query.cjs.map +1 -1
  308. package/pg-core/query-builders/query.d.cts +6 -6
  309. package/pg-core/query-builders/query.d.ts +6 -6
  310. package/pg-core/query-builders/query.js +15 -18
  311. package/pg-core/query-builders/query.js.map +1 -1
  312. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  313. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  314. package/pg-core/query-builders/select.cjs +10 -2
  315. package/pg-core/query-builders/select.cjs.map +1 -1
  316. package/pg-core/query-builders/select.js +11 -8
  317. package/pg-core/query-builders/select.js.map +1 -1
  318. package/pg-core/query-builders/update.cjs +7 -1
  319. package/pg-core/query-builders/update.cjs.map +1 -1
  320. package/pg-core/query-builders/update.d.cts +2 -2
  321. package/pg-core/query-builders/update.d.ts +2 -2
  322. package/pg-core/query-builders/update.js +8 -6
  323. package/pg-core/query-builders/update.js.map +1 -1
  324. package/pg-core/session.cjs +3 -2
  325. package/pg-core/session.cjs.map +1 -1
  326. package/pg-core/session.d.cts +10 -8
  327. package/pg-core/session.d.ts +10 -8
  328. package/pg-core/session.js +3 -2
  329. package/pg-core/session.js.map +1 -1
  330. package/pg-proxy/driver.cjs +21 -5
  331. package/pg-proxy/driver.cjs.map +1 -1
  332. package/pg-proxy/driver.d.cts +3 -2
  333. package/pg-proxy/driver.d.ts +3 -2
  334. package/pg-proxy/driver.js +11 -8
  335. package/pg-proxy/driver.js.map +1 -1
  336. package/pg-proxy/migrator.cjs.map +1 -1
  337. package/pg-proxy/migrator.d.cts +2 -1
  338. package/pg-proxy/migrator.d.ts +2 -1
  339. package/pg-proxy/migrator.js.map +1 -1
  340. package/pg-proxy/session.cjs +37 -2
  341. package/pg-proxy/session.cjs.map +1 -1
  342. package/pg-proxy/session.d.cts +13 -8
  343. package/pg-proxy/session.d.ts +13 -8
  344. package/pg-proxy/session.js +37 -2
  345. package/pg-proxy/session.js.map +1 -1
  346. package/pglite/driver.cjs +23 -7
  347. package/pglite/driver.cjs.map +1 -1
  348. package/pglite/driver.d.cts +9 -8
  349. package/pglite/driver.d.ts +9 -8
  350. package/pglite/driver.js +13 -10
  351. package/pglite/driver.js.map +1 -1
  352. package/pglite/migrator.cjs.map +1 -1
  353. package/pglite/migrator.d.cts +2 -1
  354. package/pglite/migrator.d.ts +2 -1
  355. package/pglite/migrator.js.map +1 -1
  356. package/pglite/session.cjs +34 -3
  357. package/pglite/session.cjs.map +1 -1
  358. package/pglite/session.d.cts +13 -8
  359. package/pglite/session.d.ts +13 -8
  360. package/pglite/session.js +34 -3
  361. package/pglite/session.js.map +1 -1
  362. package/planetscale-serverless/driver.cjs +22 -5
  363. package/planetscale-serverless/driver.cjs.map +1 -1
  364. package/planetscale-serverless/driver.d.cts +7 -6
  365. package/planetscale-serverless/driver.d.ts +7 -6
  366. package/planetscale-serverless/driver.js +12 -8
  367. package/planetscale-serverless/driver.js.map +1 -1
  368. package/planetscale-serverless/migrator.cjs.map +1 -1
  369. package/planetscale-serverless/migrator.d.cts +2 -1
  370. package/planetscale-serverless/migrator.d.ts +2 -1
  371. package/planetscale-serverless/migrator.js.map +1 -1
  372. package/planetscale-serverless/session.cjs +68 -5
  373. package/planetscale-serverless/session.cjs.map +1 -1
  374. package/planetscale-serverless/session.d.cts +14 -9
  375. package/planetscale-serverless/session.d.ts +14 -9
  376. package/planetscale-serverless/session.js +68 -5
  377. package/planetscale-serverless/session.js.map +1 -1
  378. package/postgres-js/driver.cjs +12 -6
  379. package/postgres-js/driver.cjs.map +1 -1
  380. package/postgres-js/driver.d.cts +7 -6
  381. package/postgres-js/driver.d.ts +7 -6
  382. package/postgres-js/driver.js +12 -9
  383. package/postgres-js/driver.js.map +1 -1
  384. package/postgres-js/migrator.cjs.map +1 -1
  385. package/postgres-js/migrator.d.cts +2 -1
  386. package/postgres-js/migrator.d.ts +2 -1
  387. package/postgres-js/migrator.js.map +1 -1
  388. package/postgres-js/session.cjs +51 -6
  389. package/postgres-js/session.cjs.map +1 -1
  390. package/postgres-js/session.d.cts +15 -9
  391. package/postgres-js/session.d.ts +15 -9
  392. package/postgres-js/session.js +51 -6
  393. package/postgres-js/session.js.map +1 -1
  394. package/prisma/mysql/driver.cjs +1 -1
  395. package/prisma/mysql/driver.cjs.map +1 -1
  396. package/prisma/mysql/driver.js +1 -1
  397. package/prisma/mysql/driver.js.map +1 -1
  398. package/prisma/mysql/session.cjs +3 -0
  399. package/prisma/mysql/session.cjs.map +1 -1
  400. package/prisma/mysql/session.d.cts +3 -1
  401. package/prisma/mysql/session.d.ts +3 -1
  402. package/prisma/mysql/session.js +3 -0
  403. package/prisma/mysql/session.js.map +1 -1
  404. package/prisma/pg/driver.cjs +1 -1
  405. package/prisma/pg/driver.cjs.map +1 -1
  406. package/prisma/pg/driver.js +1 -1
  407. package/prisma/pg/driver.js.map +1 -1
  408. package/prisma/pg/session.cjs +3 -0
  409. package/prisma/pg/session.cjs.map +1 -1
  410. package/prisma/pg/session.d.cts +3 -1
  411. package/prisma/pg/session.d.ts +3 -1
  412. package/prisma/pg/session.js +3 -0
  413. package/prisma/pg/session.js.map +1 -1
  414. package/prisma/sqlite/driver.cjs +1 -1
  415. package/prisma/sqlite/driver.cjs.map +1 -1
  416. package/prisma/sqlite/driver.js +1 -1
  417. package/prisma/sqlite/driver.js.map +1 -1
  418. package/prisma/sqlite/session.cjs +3 -0
  419. package/prisma/sqlite/session.cjs.map +1 -1
  420. package/prisma/sqlite/session.d.cts +4 -2
  421. package/prisma/sqlite/session.d.ts +4 -2
  422. package/prisma/sqlite/session.js +3 -0
  423. package/prisma/sqlite/session.js.map +1 -1
  424. package/relations.cjs +468 -245
  425. package/relations.cjs.map +1 -1
  426. package/relations.d.cts +264 -125
  427. package/relations.d.ts +264 -125
  428. package/relations.js +455 -238
  429. package/relations.js.map +1 -1
  430. package/sql/sql.cjs.map +1 -1
  431. package/sql/sql.d.cts +4 -4
  432. package/sql/sql.d.ts +4 -4
  433. package/sql/sql.js.map +1 -1
  434. package/sql-js/driver.cjs +16 -5
  435. package/sql-js/driver.cjs.map +1 -1
  436. package/sql-js/driver.d.cts +3 -2
  437. package/sql-js/driver.d.ts +3 -2
  438. package/sql-js/driver.js +6 -8
  439. package/sql-js/driver.js.map +1 -1
  440. package/sql-js/migrator.cjs.map +1 -1
  441. package/sql-js/migrator.d.cts +2 -1
  442. package/sql-js/migrator.d.ts +2 -1
  443. package/sql-js/migrator.js.map +1 -1
  444. package/sql-js/session.cjs +58 -4
  445. package/sql-js/session.cjs.map +1 -1
  446. package/sql-js/session.d.cts +14 -8
  447. package/sql-js/session.d.ts +14 -8
  448. package/sql-js/session.js +58 -4
  449. package/sql-js/session.js.map +1 -1
  450. package/sqlite-core/columns/blob.cjs +2 -16
  451. package/sqlite-core/columns/blob.cjs.map +1 -1
  452. package/sqlite-core/columns/blob.d.cts +2 -2
  453. package/sqlite-core/columns/blob.d.ts +2 -2
  454. package/sqlite-core/columns/blob.js +2 -16
  455. package/sqlite-core/columns/blob.js.map +1 -1
  456. package/sqlite-core/db.cjs +35 -14
  457. package/sqlite-core/db.cjs.map +1 -1
  458. package/sqlite-core/db.d.cts +15 -8
  459. package/sqlite-core/db.d.ts +15 -8
  460. package/sqlite-core/db.js +34 -13
  461. package/sqlite-core/db.js.map +1 -1
  462. package/sqlite-core/dialect.cjs +164 -7
  463. package/sqlite-core/dialect.cjs.map +1 -1
  464. package/sqlite-core/dialect.d.cts +25 -9
  465. package/sqlite-core/dialect.d.ts +25 -9
  466. package/sqlite-core/dialect.js +161 -13
  467. package/sqlite-core/dialect.js.map +1 -1
  468. package/sqlite-core/query-builders/_query.cjs +187 -0
  469. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  470. package/sqlite-core/query-builders/_query.d.cts +55 -0
  471. package/sqlite-core/query-builders/_query.d.ts +55 -0
  472. package/sqlite-core/query-builders/_query.js +151 -0
  473. package/sqlite-core/query-builders/_query.js.map +1 -0
  474. package/sqlite-core/query-builders/count.cjs.map +1 -1
  475. package/sqlite-core/query-builders/count.d.cts +1 -1
  476. package/sqlite-core/query-builders/count.d.ts +1 -1
  477. package/sqlite-core/query-builders/count.js.map +1 -1
  478. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  479. package/sqlite-core/query-builders/delete.d.cts +1 -1
  480. package/sqlite-core/query-builders/delete.d.ts +1 -1
  481. package/sqlite-core/query-builders/delete.js.map +1 -1
  482. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  483. package/sqlite-core/query-builders/insert.d.cts +3 -3
  484. package/sqlite-core/query-builders/insert.d.ts +3 -3
  485. package/sqlite-core/query-builders/insert.js.map +1 -1
  486. package/sqlite-core/query-builders/query.cjs +30 -48
  487. package/sqlite-core/query-builders/query.cjs.map +1 -1
  488. package/sqlite-core/query-builders/query.d.cts +14 -16
  489. package/sqlite-core/query-builders/query.d.ts +14 -16
  490. package/sqlite-core/query-builders/query.js +30 -48
  491. package/sqlite-core/query-builders/query.js.map +1 -1
  492. package/sqlite-core/query-builders/select.cjs.map +1 -1
  493. package/sqlite-core/query-builders/select.d.cts +3 -3
  494. package/sqlite-core/query-builders/select.d.ts +3 -3
  495. package/sqlite-core/query-builders/select.js.map +1 -1
  496. package/sqlite-core/query-builders/update.cjs.map +1 -1
  497. package/sqlite-core/query-builders/update.d.cts +3 -3
  498. package/sqlite-core/query-builders/update.d.ts +3 -3
  499. package/sqlite-core/query-builders/update.js.map +1 -1
  500. package/sqlite-core/session.cjs +6 -2
  501. package/sqlite-core/session.cjs.map +1 -1
  502. package/sqlite-core/session.d.cts +14 -6
  503. package/sqlite-core/session.d.ts +14 -6
  504. package/sqlite-core/session.js +6 -2
  505. package/sqlite-core/session.js.map +1 -1
  506. package/sqlite-proxy/driver.cjs +22 -5
  507. package/sqlite-proxy/driver.cjs.map +1 -1
  508. package/sqlite-proxy/driver.d.cts +4 -3
  509. package/sqlite-proxy/driver.d.ts +4 -3
  510. package/sqlite-proxy/driver.js +12 -5
  511. package/sqlite-proxy/driver.js.map +1 -1
  512. package/sqlite-proxy/migrator.cjs.map +1 -1
  513. package/sqlite-proxy/migrator.d.cts +2 -1
  514. package/sqlite-proxy/migrator.d.ts +2 -1
  515. package/sqlite-proxy/migrator.js.map +1 -1
  516. package/sqlite-proxy/session.cjs +47 -4
  517. package/sqlite-proxy/session.cjs.map +1 -1
  518. package/sqlite-proxy/session.d.cts +14 -8
  519. package/sqlite-proxy/session.d.ts +14 -8
  520. package/sqlite-proxy/session.js +47 -4
  521. package/sqlite-proxy/session.js.map +1 -1
  522. package/table.cjs.map +1 -1
  523. package/table.d.cts +1 -1
  524. package/table.d.ts +1 -1
  525. package/table.js.map +1 -1
  526. package/tidb-serverless/driver.cjs +22 -5
  527. package/tidb-serverless/driver.cjs.map +1 -1
  528. package/tidb-serverless/driver.d.cts +7 -6
  529. package/tidb-serverless/driver.d.ts +7 -6
  530. package/tidb-serverless/driver.js +12 -8
  531. package/tidb-serverless/driver.js.map +1 -1
  532. package/tidb-serverless/migrator.cjs.map +1 -1
  533. package/tidb-serverless/migrator.d.cts +2 -1
  534. package/tidb-serverless/migrator.d.ts +2 -1
  535. package/tidb-serverless/migrator.js.map +1 -1
  536. package/tidb-serverless/session.cjs +62 -5
  537. package/tidb-serverless/session.cjs.map +1 -1
  538. package/tidb-serverless/session.d.cts +14 -9
  539. package/tidb-serverless/session.d.ts +14 -9
  540. package/tidb-serverless/session.js +62 -5
  541. package/tidb-serverless/session.js.map +1 -1
  542. package/utils.cjs +2 -2
  543. package/utils.cjs.map +1 -1
  544. package/utils.d.cts +3 -2
  545. package/utils.d.ts +3 -2
  546. package/utils.js +2 -2
  547. package/utils.js.map +1 -1
  548. package/vercel-postgres/driver.cjs +23 -7
  549. package/vercel-postgres/driver.cjs.map +1 -1
  550. package/vercel-postgres/driver.d.cts +9 -8
  551. package/vercel-postgres/driver.d.ts +9 -8
  552. package/vercel-postgres/driver.js +13 -10
  553. package/vercel-postgres/driver.js.map +1 -1
  554. package/vercel-postgres/migrator.cjs.map +1 -1
  555. package/vercel-postgres/migrator.d.cts +2 -1
  556. package/vercel-postgres/migrator.d.ts +2 -1
  557. package/vercel-postgres/migrator.js.map +1 -1
  558. package/vercel-postgres/session.cjs +34 -4
  559. package/vercel-postgres/session.cjs.map +1 -1
  560. package/vercel-postgres/session.d.cts +13 -8
  561. package/vercel-postgres/session.d.ts +13 -8
  562. package/vercel-postgres/session.js +34 -4
  563. package/vercel-postgres/session.js.map +1 -1
  564. package/version.cjs +1 -1
  565. package/version.d.cts +1 -1
  566. package/version.d.ts +1 -1
  567. package/version.js +1 -1
  568. package/xata-http/driver.cjs +17 -5
  569. package/xata-http/driver.cjs.map +1 -1
  570. package/xata-http/driver.d.cts +5 -4
  571. package/xata-http/driver.d.ts +5 -4
  572. package/xata-http/driver.js +7 -5
  573. package/xata-http/driver.js.map +1 -1
  574. package/xata-http/migrator.cjs.map +1 -1
  575. package/xata-http/migrator.d.cts +2 -1
  576. package/xata-http/migrator.d.ts +2 -1
  577. package/xata-http/migrator.js.map +1 -1
  578. package/xata-http/session.cjs +30 -2
  579. package/xata-http/session.cjs.map +1 -1
  580. package/xata-http/session.d.cts +13 -8
  581. package/xata-http/session.d.ts +13 -8
  582. package/xata-http/session.js +30 -2
  583. package/xata-http/session.js.map +1 -1
  584. package/durable-sqlite/driver.cjs +0 -64
  585. package/durable-sqlite/driver.cjs.map +0 -1
  586. package/durable-sqlite/driver.d.cts +0 -9
  587. package/durable-sqlite/driver.d.ts +0 -9
  588. package/durable-sqlite/driver.js +0 -42
  589. package/durable-sqlite/driver.js.map +0 -1
  590. package/durable-sqlite/index.cjs +0 -25
  591. package/durable-sqlite/index.cjs.map +0 -1
  592. package/durable-sqlite/index.d.cts +0 -2
  593. package/durable-sqlite/index.d.ts +0 -2
  594. package/durable-sqlite/index.js +0 -3
  595. package/durable-sqlite/index.js.map +0 -1
  596. package/durable-sqlite/migrator.cjs +0 -85
  597. package/durable-sqlite/migrator.cjs.map +0 -1
  598. package/durable-sqlite/migrator.d.cts +0 -14
  599. package/durable-sqlite/migrator.d.ts +0 -14
  600. package/durable-sqlite/migrator.js +0 -61
  601. package/durable-sqlite/migrator.js.map +0 -1
  602. package/durable-sqlite/session.cjs +0 -131
  603. package/durable-sqlite/session.cjs.map +0 -1
  604. package/durable-sqlite/session.d.cts +0 -46
  605. package/durable-sqlite/session.d.ts +0 -46
  606. package/durable-sqlite/session.js +0 -107
  607. package/durable-sqlite/session.js.map +0 -1
  608. package/singlestore/driver.cjs +0 -113
  609. package/singlestore/driver.cjs.map +0 -1
  610. package/singlestore/driver.d.cts +0 -52
  611. package/singlestore/driver.d.ts +0 -52
  612. package/singlestore/driver.js +0 -89
  613. package/singlestore/driver.js.map +0 -1
  614. package/singlestore/index.cjs +0 -25
  615. package/singlestore/index.cjs.map +0 -1
  616. package/singlestore/index.d.cts +0 -2
  617. package/singlestore/index.d.ts +0 -2
  618. package/singlestore/index.js +0 -3
  619. package/singlestore/index.js.map +0 -1
  620. package/singlestore/migrator.cjs +0 -33
  621. package/singlestore/migrator.cjs.map +0 -1
  622. package/singlestore/migrator.d.cts +0 -3
  623. package/singlestore/migrator.d.ts +0 -3
  624. package/singlestore/migrator.js +0 -9
  625. package/singlestore/migrator.js.map +0 -1
  626. package/singlestore/session.cjs +0 -258
  627. package/singlestore/session.cjs.map +0 -1
  628. package/singlestore/session.d.cts +0 -52
  629. package/singlestore/session.d.ts +0 -52
  630. package/singlestore/session.js +0 -236
  631. package/singlestore/session.js.map +0 -1
  632. package/singlestore-core/alias.cjs +0 -32
  633. package/singlestore-core/alias.cjs.map +0 -1
  634. package/singlestore-core/alias.d.cts +0 -4
  635. package/singlestore-core/alias.d.ts +0 -4
  636. package/singlestore-core/alias.js +0 -8
  637. package/singlestore-core/alias.js.map +0 -1
  638. package/singlestore-core/columns/all.cjs +0 -80
  639. package/singlestore-core/columns/all.cjs.map +0 -1
  640. package/singlestore-core/columns/all.d.cts +0 -51
  641. package/singlestore-core/columns/all.d.ts +0 -51
  642. package/singlestore-core/columns/all.js +0 -56
  643. package/singlestore-core/columns/all.js.map +0 -1
  644. package/singlestore-core/columns/bigint.cjs +0 -96
  645. package/singlestore-core/columns/bigint.cjs.map +0 -1
  646. package/singlestore-core/columns/bigint.d.cts +0 -54
  647. package/singlestore-core/columns/bigint.d.ts +0 -54
  648. package/singlestore-core/columns/bigint.js +0 -68
  649. package/singlestore-core/columns/bigint.js.map +0 -1
  650. package/singlestore-core/columns/binary.cjs +0 -60
  651. package/singlestore-core/columns/binary.cjs.map +0 -1
  652. package/singlestore-core/columns/binary.d.cts +0 -28
  653. package/singlestore-core/columns/binary.d.ts +0 -28
  654. package/singlestore-core/columns/binary.js +0 -34
  655. package/singlestore-core/columns/binary.js.map +0 -1
  656. package/singlestore-core/columns/boolean.cjs +0 -62
  657. package/singlestore-core/columns/boolean.cjs.map +0 -1
  658. package/singlestore-core/columns/boolean.d.cts +0 -24
  659. package/singlestore-core/columns/boolean.d.ts +0 -24
  660. package/singlestore-core/columns/boolean.js +0 -36
  661. package/singlestore-core/columns/boolean.js.map +0 -1
  662. package/singlestore-core/columns/char.cjs +0 -62
  663. package/singlestore-core/columns/char.cjs.map +0 -1
  664. package/singlestore-core/columns/char.d.cts +0 -31
  665. package/singlestore-core/columns/char.d.ts +0 -31
  666. package/singlestore-core/columns/char.js +0 -36
  667. package/singlestore-core/columns/char.js.map +0 -1
  668. package/singlestore-core/columns/common.cjs +0 -82
  669. package/singlestore-core/columns/common.cjs.map +0 -1
  670. package/singlestore-core/columns/common.d.cts +0 -42
  671. package/singlestore-core/columns/common.d.ts +0 -42
  672. package/singlestore-core/columns/common.js +0 -55
  673. package/singlestore-core/columns/common.js.map +0 -1
  674. package/singlestore-core/columns/custom.cjs +0 -77
  675. package/singlestore-core/columns/custom.cjs.map +0 -1
  676. package/singlestore-core/columns/custom.d.cts +0 -156
  677. package/singlestore-core/columns/custom.d.ts +0 -156
  678. package/singlestore-core/columns/custom.js +0 -51
  679. package/singlestore-core/columns/custom.js.map +0 -1
  680. package/singlestore-core/columns/date.cjs +0 -93
  681. package/singlestore-core/columns/date.cjs.map +0 -1
  682. package/singlestore-core/columns/date.common.cjs +0 -48
  683. package/singlestore-core/columns/date.common.cjs.map +0 -1
  684. package/singlestore-core/columns/date.common.d.cts +0 -16
  685. package/singlestore-core/columns/date.common.d.ts +0 -16
  686. package/singlestore-core/columns/date.common.js +0 -23
  687. package/singlestore-core/columns/date.common.js.map +0 -1
  688. package/singlestore-core/columns/date.d.cts +0 -53
  689. package/singlestore-core/columns/date.d.ts +0 -53
  690. package/singlestore-core/columns/date.js +0 -65
  691. package/singlestore-core/columns/date.js.map +0 -1
  692. package/singlestore-core/columns/datetime.cjs +0 -106
  693. package/singlestore-core/columns/datetime.cjs.map +0 -1
  694. package/singlestore-core/columns/datetime.d.cts +0 -54
  695. package/singlestore-core/columns/datetime.d.ts +0 -54
  696. package/singlestore-core/columns/datetime.js +0 -78
  697. package/singlestore-core/columns/datetime.js.map +0 -1
  698. package/singlestore-core/columns/decimal.cjs +0 -76
  699. package/singlestore-core/columns/decimal.cjs.map +0 -1
  700. package/singlestore-core/columns/decimal.d.cts +0 -32
  701. package/singlestore-core/columns/decimal.d.ts +0 -32
  702. package/singlestore-core/columns/decimal.js +0 -50
  703. package/singlestore-core/columns/decimal.js.map +0 -1
  704. package/singlestore-core/columns/double.cjs +0 -72
  705. package/singlestore-core/columns/double.cjs.map +0 -1
  706. package/singlestore-core/columns/double.d.cts +0 -32
  707. package/singlestore-core/columns/double.d.ts +0 -32
  708. package/singlestore-core/columns/double.js +0 -46
  709. package/singlestore-core/columns/double.js.map +0 -1
  710. package/singlestore-core/columns/enum.cjs +0 -67
  711. package/singlestore-core/columns/enum.cjs.map +0 -1
  712. package/singlestore-core/columns/enum.d.cts +0 -31
  713. package/singlestore-core/columns/enum.d.ts +0 -31
  714. package/singlestore-core/columns/enum.js +0 -41
  715. package/singlestore-core/columns/enum.js.map +0 -1
  716. package/singlestore-core/columns/float.cjs +0 -72
  717. package/singlestore-core/columns/float.cjs.map +0 -1
  718. package/singlestore-core/columns/float.d.cts +0 -32
  719. package/singlestore-core/columns/float.d.ts +0 -32
  720. package/singlestore-core/columns/float.js +0 -46
  721. package/singlestore-core/columns/float.js.map +0 -1
  722. package/singlestore-core/columns/index.cjs +0 -71
  723. package/singlestore-core/columns/index.cjs.map +0 -1
  724. package/singlestore-core/columns/index.d.cts +0 -25
  725. package/singlestore-core/columns/index.d.ts +0 -25
  726. package/singlestore-core/columns/index.js +0 -26
  727. package/singlestore-core/columns/index.js.map +0 -1
  728. package/singlestore-core/columns/int.cjs +0 -65
  729. package/singlestore-core/columns/int.cjs.map +0 -1
  730. package/singlestore-core/columns/int.d.cts +0 -28
  731. package/singlestore-core/columns/int.d.ts +0 -28
  732. package/singlestore-core/columns/int.js +0 -39
  733. package/singlestore-core/columns/int.js.map +0 -1
  734. package/singlestore-core/columns/json.cjs +0 -59
  735. package/singlestore-core/columns/json.cjs.map +0 -1
  736. package/singlestore-core/columns/json.d.cts +0 -24
  737. package/singlestore-core/columns/json.d.ts +0 -24
  738. package/singlestore-core/columns/json.js +0 -33
  739. package/singlestore-core/columns/json.js.map +0 -1
  740. package/singlestore-core/columns/mediumint.cjs +0 -65
  741. package/singlestore-core/columns/mediumint.cjs.map +0 -1
  742. package/singlestore-core/columns/mediumint.d.cts +0 -26
  743. package/singlestore-core/columns/mediumint.d.ts +0 -26
  744. package/singlestore-core/columns/mediumint.js +0 -39
  745. package/singlestore-core/columns/mediumint.js.map +0 -1
  746. package/singlestore-core/columns/real.cjs +0 -68
  747. package/singlestore-core/columns/real.cjs.map +0 -1
  748. package/singlestore-core/columns/real.d.cts +0 -30
  749. package/singlestore-core/columns/real.d.ts +0 -30
  750. package/singlestore-core/columns/real.js +0 -42
  751. package/singlestore-core/columns/real.js.map +0 -1
  752. package/singlestore-core/columns/serial.cjs +0 -64
  753. package/singlestore-core/columns/serial.cjs.map +0 -1
  754. package/singlestore-core/columns/serial.d.cts +0 -24
  755. package/singlestore-core/columns/serial.d.ts +0 -24
  756. package/singlestore-core/columns/serial.js +0 -38
  757. package/singlestore-core/columns/serial.js.map +0 -1
  758. package/singlestore-core/columns/smallint.cjs +0 -65
  759. package/singlestore-core/columns/smallint.cjs.map +0 -1
  760. package/singlestore-core/columns/smallint.d.cts +0 -26
  761. package/singlestore-core/columns/smallint.d.ts +0 -26
  762. package/singlestore-core/columns/smallint.js +0 -39
  763. package/singlestore-core/columns/smallint.js.map +0 -1
  764. package/singlestore-core/columns/text.cjs +0 -80
  765. package/singlestore-core/columns/text.cjs.map +0 -1
  766. package/singlestore-core/columns/text.d.cts +0 -46
  767. package/singlestore-core/columns/text.d.ts +0 -46
  768. package/singlestore-core/columns/text.js +0 -51
  769. package/singlestore-core/columns/text.js.map +0 -1
  770. package/singlestore-core/columns/time.cjs +0 -56
  771. package/singlestore-core/columns/time.cjs.map +0 -1
  772. package/singlestore-core/columns/time.d.cts +0 -23
  773. package/singlestore-core/columns/time.d.ts +0 -23
  774. package/singlestore-core/columns/time.js +0 -30
  775. package/singlestore-core/columns/time.js.map +0 -1
  776. package/singlestore-core/columns/timestamp.cjs +0 -97
  777. package/singlestore-core/columns/timestamp.cjs.map +0 -1
  778. package/singlestore-core/columns/timestamp.d.cts +0 -49
  779. package/singlestore-core/columns/timestamp.d.ts +0 -49
  780. package/singlestore-core/columns/timestamp.js +0 -69
  781. package/singlestore-core/columns/timestamp.js.map +0 -1
  782. package/singlestore-core/columns/tinyint.cjs +0 -65
  783. package/singlestore-core/columns/tinyint.cjs.map +0 -1
  784. package/singlestore-core/columns/tinyint.d.cts +0 -26
  785. package/singlestore-core/columns/tinyint.d.ts +0 -26
  786. package/singlestore-core/columns/tinyint.js +0 -39
  787. package/singlestore-core/columns/tinyint.js.map +0 -1
  788. package/singlestore-core/columns/varbinary.cjs +0 -61
  789. package/singlestore-core/columns/varbinary.cjs.map +0 -1
  790. package/singlestore-core/columns/varbinary.d.cts +0 -26
  791. package/singlestore-core/columns/varbinary.d.ts +0 -26
  792. package/singlestore-core/columns/varbinary.js +0 -35
  793. package/singlestore-core/columns/varbinary.js.map +0 -1
  794. package/singlestore-core/columns/varchar.cjs +0 -63
  795. package/singlestore-core/columns/varchar.cjs.map +0 -1
  796. package/singlestore-core/columns/varchar.d.cts +0 -29
  797. package/singlestore-core/columns/varchar.d.ts +0 -29
  798. package/singlestore-core/columns/varchar.js +0 -37
  799. package/singlestore-core/columns/varchar.js.map +0 -1
  800. package/singlestore-core/columns/year.cjs +0 -56
  801. package/singlestore-core/columns/year.cjs.map +0 -1
  802. package/singlestore-core/columns/year.d.cts +0 -23
  803. package/singlestore-core/columns/year.d.ts +0 -23
  804. package/singlestore-core/columns/year.js +0 -30
  805. package/singlestore-core/columns/year.js.map +0 -1
  806. package/singlestore-core/db.cjs +0 -261
  807. package/singlestore-core/db.cjs.map +0 -1
  808. package/singlestore-core/db.d.cts +0 -231
  809. package/singlestore-core/db.d.ts +0 -231
  810. package/singlestore-core/db.js +0 -242
  811. package/singlestore-core/db.js.map +0 -1
  812. package/singlestore-core/dialect.cjs +0 -607
  813. package/singlestore-core/dialect.cjs.map +0 -1
  814. package/singlestore-core/dialect.d.cts +0 -64
  815. package/singlestore-core/dialect.d.ts +0 -64
  816. package/singlestore-core/dialect.js +0 -589
  817. package/singlestore-core/dialect.js.map +0 -1
  818. package/singlestore-core/expressions.cjs +0 -49
  819. package/singlestore-core/expressions.cjs.map +0 -1
  820. package/singlestore-core/expressions.d.cts +0 -8
  821. package/singlestore-core/expressions.d.ts +0 -8
  822. package/singlestore-core/expressions.js +0 -22
  823. package/singlestore-core/expressions.js.map +0 -1
  824. package/singlestore-core/index.cjs +0 -47
  825. package/singlestore-core/index.cjs.map +0 -1
  826. package/singlestore-core/index.d.cts +0 -13
  827. package/singlestore-core/index.d.ts +0 -13
  828. package/singlestore-core/index.js +0 -14
  829. package/singlestore-core/index.js.map +0 -1
  830. package/singlestore-core/indexes.cjs +0 -88
  831. package/singlestore-core/indexes.cjs.map +0 -1
  832. package/singlestore-core/indexes.d.cts +0 -62
  833. package/singlestore-core/indexes.d.ts +0 -62
  834. package/singlestore-core/indexes.js +0 -60
  835. package/singlestore-core/indexes.js.map +0 -1
  836. package/singlestore-core/primary-keys.cjs +0 -68
  837. package/singlestore-core/primary-keys.cjs.map +0 -1
  838. package/singlestore-core/primary-keys.d.cts +0 -30
  839. package/singlestore-core/primary-keys.d.ts +0 -30
  840. package/singlestore-core/primary-keys.js +0 -42
  841. package/singlestore-core/primary-keys.js.map +0 -1
  842. package/singlestore-core/query-builders/count.cjs +0 -73
  843. package/singlestore-core/query-builders/count.cjs.map +0 -1
  844. package/singlestore-core/query-builders/count.d.cts +0 -25
  845. package/singlestore-core/query-builders/count.d.ts +0 -25
  846. package/singlestore-core/query-builders/count.js +0 -49
  847. package/singlestore-core/query-builders/count.js.map +0 -1
  848. package/singlestore-core/query-builders/delete.cjs +0 -123
  849. package/singlestore-core/query-builders/delete.cjs.map +0 -1
  850. package/singlestore-core/query-builders/delete.d.cts +0 -83
  851. package/singlestore-core/query-builders/delete.d.ts +0 -83
  852. package/singlestore-core/query-builders/delete.js +0 -99
  853. package/singlestore-core/query-builders/delete.js.map +0 -1
  854. package/singlestore-core/query-builders/index.cjs +0 -33
  855. package/singlestore-core/query-builders/index.cjs.map +0 -1
  856. package/singlestore-core/query-builders/index.d.cts +0 -6
  857. package/singlestore-core/query-builders/index.d.ts +0 -6
  858. package/singlestore-core/query-builders/index.js +0 -7
  859. package/singlestore-core/query-builders/index.js.map +0 -1
  860. package/singlestore-core/query-builders/insert.cjs +0 -146
  861. package/singlestore-core/query-builders/insert.cjs.map +0 -1
  862. package/singlestore-core/query-builders/insert.d.cts +0 -106
  863. package/singlestore-core/query-builders/insert.d.ts +0 -106
  864. package/singlestore-core/query-builders/insert.js +0 -121
  865. package/singlestore-core/query-builders/insert.js.map +0 -1
  866. package/singlestore-core/query-builders/query-builder.cjs +0 -99
  867. package/singlestore-core/query-builders/query-builder.cjs.map +0 -1
  868. package/singlestore-core/query-builders/query-builder.d.cts +0 -33
  869. package/singlestore-core/query-builders/query-builder.d.ts +0 -33
  870. package/singlestore-core/query-builders/query-builder.js +0 -75
  871. package/singlestore-core/query-builders/query-builder.js.map +0 -1
  872. package/singlestore-core/query-builders/query.cjs.map +0 -1
  873. package/singlestore-core/query-builders/query.d.cts +0 -42
  874. package/singlestore-core/query-builders/query.d.ts +0 -42
  875. package/singlestore-core/query-builders/query.js.map +0 -1
  876. package/singlestore-core/query-builders/select.cjs +0 -687
  877. package/singlestore-core/query-builders/select.cjs.map +0 -1
  878. package/singlestore-core/query-builders/select.d.cts +0 -585
  879. package/singlestore-core/query-builders/select.d.ts +0 -585
  880. package/singlestore-core/query-builders/select.js +0 -662
  881. package/singlestore-core/query-builders/select.js.map +0 -1
  882. package/singlestore-core/query-builders/select.types.cjs +0 -17
  883. package/singlestore-core/query-builders/select.types.cjs.map +0 -1
  884. package/singlestore-core/query-builders/select.types.d.cts +0 -137
  885. package/singlestore-core/query-builders/select.types.d.ts +0 -137
  886. package/singlestore-core/query-builders/select.types.js +0 -1
  887. package/singlestore-core/query-builders/select.types.js.map +0 -1
  888. package/singlestore-core/query-builders/update.cjs +0 -147
  889. package/singlestore-core/query-builders/update.cjs.map +0 -1
  890. package/singlestore-core/query-builders/update.d.cts +0 -102
  891. package/singlestore-core/query-builders/update.d.ts +0 -102
  892. package/singlestore-core/query-builders/update.js +0 -122
  893. package/singlestore-core/query-builders/update.js.map +0 -1
  894. package/singlestore-core/schema.cjs +0 -56
  895. package/singlestore-core/schema.cjs.map +0 -1
  896. package/singlestore-core/schema.d.cts +0 -22
  897. package/singlestore-core/schema.d.ts +0 -22
  898. package/singlestore-core/schema.js +0 -29
  899. package/singlestore-core/schema.js.map +0 -1
  900. package/singlestore-core/session.cjs +0 -87
  901. package/singlestore-core/session.cjs.map +0 -1
  902. package/singlestore-core/session.d.cts +0 -66
  903. package/singlestore-core/session.d.ts +0 -66
  904. package/singlestore-core/session.js +0 -61
  905. package/singlestore-core/session.js.map +0 -1
  906. package/singlestore-core/subquery.cjs +0 -17
  907. package/singlestore-core/subquery.cjs.map +0 -1
  908. package/singlestore-core/subquery.d.cts +0 -5
  909. package/singlestore-core/subquery.d.ts +0 -5
  910. package/singlestore-core/subquery.js +0 -1
  911. package/singlestore-core/subquery.js.map +0 -1
  912. package/singlestore-core/table.cjs +0 -73
  913. package/singlestore-core/table.cjs.map +0 -1
  914. package/singlestore-core/table.d.cts +0 -40
  915. package/singlestore-core/table.d.ts +0 -40
  916. package/singlestore-core/table.js +0 -46
  917. package/singlestore-core/table.js.map +0 -1
  918. package/singlestore-core/unique-constraint.cjs +0 -82
  919. package/singlestore-core/unique-constraint.cjs.map +0 -1
  920. package/singlestore-core/unique-constraint.d.cts +0 -24
  921. package/singlestore-core/unique-constraint.d.ts +0 -24
  922. package/singlestore-core/unique-constraint.js +0 -54
  923. package/singlestore-core/unique-constraint.js.map +0 -1
  924. package/singlestore-core/utils.cjs +0 -65
  925. package/singlestore-core/utils.cjs.map +0 -1
  926. package/singlestore-core/utils.d.cts +0 -13
  927. package/singlestore-core/utils.d.ts +0 -13
  928. package/singlestore-core/utils.js +0 -41
  929. package/singlestore-core/utils.js.map +0 -1
  930. package/singlestore-core/view-base.cjs +0 -33
  931. package/singlestore-core/view-base.cjs.map +0 -1
  932. package/singlestore-core/view-base.d.cts +0 -9
  933. package/singlestore-core/view-base.d.ts +0 -9
  934. package/singlestore-core/view-base.js +0 -9
  935. package/singlestore-core/view-base.js.map +0 -1
  936. package/singlestore-core/view-common.cjs +0 -29
  937. package/singlestore-core/view-common.cjs.map +0 -1
  938. package/singlestore-core/view-common.d.cts +0 -1
  939. package/singlestore-core/view-common.d.ts +0 -1
  940. package/singlestore-core/view-common.js +0 -5
  941. package/singlestore-core/view-common.js.map +0 -1
  942. package/singlestore-core/view.cjs +0 -146
  943. package/singlestore-core/view.cjs.map +0 -1
  944. package/singlestore-core/view.d.cts +0 -65
  945. package/singlestore-core/view.d.ts +0 -65
  946. package/singlestore-core/view.js +0 -119
  947. package/singlestore-core/view.js.map +0 -1
  948. package/singlestore-proxy/driver.cjs +0 -62
  949. package/singlestore-proxy/driver.cjs.map +0 -1
  950. package/singlestore-proxy/driver.d.cts +0 -13
  951. package/singlestore-proxy/driver.d.ts +0 -13
  952. package/singlestore-proxy/driver.js +0 -42
  953. package/singlestore-proxy/driver.js.map +0 -1
  954. package/singlestore-proxy/index.cjs +0 -25
  955. package/singlestore-proxy/index.cjs.map +0 -1
  956. package/singlestore-proxy/index.d.cts +0 -2
  957. package/singlestore-proxy/index.d.ts +0 -2
  958. package/singlestore-proxy/index.js +0 -3
  959. package/singlestore-proxy/index.js.map +0 -1
  960. package/singlestore-proxy/migrator.cjs +0 -60
  961. package/singlestore-proxy/migrator.cjs.map +0 -1
  962. package/singlestore-proxy/migrator.d.cts +0 -4
  963. package/singlestore-proxy/migrator.d.ts +0 -4
  964. package/singlestore-proxy/migrator.js +0 -36
  965. package/singlestore-proxy/migrator.js.map +0 -1
  966. package/singlestore-proxy/session.cjs +0 -127
  967. package/singlestore-proxy/session.cjs.map +0 -1
  968. package/singlestore-proxy/session.d.cts +0 -50
  969. package/singlestore-proxy/session.d.ts +0 -50
  970. package/singlestore-proxy/session.js +0 -101
  971. package/singlestore-proxy/session.js.map +0 -1
@@ -2,12 +2,11 @@ import { entityKind } from "./entity.cjs";
2
2
  import type { Column } from "./column.cjs";
3
3
  import type { MySqlColumn } from "./mysql-core/index.cjs";
4
4
  import type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from "./pg-core/index.cjs";
5
- import type { SingleStoreColumn } from "./singlestore-core/index.cjs";
6
5
  import type { SQL } from "./sql/sql.cjs";
7
6
  import type { SQLiteColumn } from "./sqlite-core/index.cjs";
8
7
  import type { Assume, Simplify } from "./utils.cjs";
9
8
  export type ColumnDataType = 'string' | 'number' | 'boolean' | 'array' | 'json' | 'date' | 'bigint' | 'custom' | 'buffer';
10
- export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common';
9
+ export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';
11
10
  export type GeneratedStorageMode = 'virtual' | 'stored';
12
11
  export type GeneratedType = 'always' | 'byDefault';
13
12
  export type GeneratedColumnConfig<TDataType> = {
@@ -226,7 +225,7 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
226
225
  type: 'always';
227
226
  }>;
228
227
  }
229
- export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>> : never;
228
+ export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>> : never;
230
229
  export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : never;
231
230
  export type BuildColumns<TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
232
231
  [Key in keyof TConfigMap]: BuildColumn<TTableName, {
@@ -238,4 +237,4 @@ export type BuildColumns<TTableName extends string, TConfigMap extends Record<st
238
237
  export type BuildExtraConfigColumns<_TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
239
238
  [Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;
240
239
  } & {};
241
- export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
240
+ export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
@@ -2,12 +2,11 @@ import { entityKind } from "./entity.js";
2
2
  import type { Column } from "./column.js";
3
3
  import type { MySqlColumn } from "./mysql-core/index.js";
4
4
  import type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from "./pg-core/index.js";
5
- import type { SingleStoreColumn } from "./singlestore-core/index.js";
6
5
  import type { SQL } from "./sql/sql.js";
7
6
  import type { SQLiteColumn } from "./sqlite-core/index.js";
8
7
  import type { Assume, Simplify } from "./utils.js";
9
8
  export type ColumnDataType = 'string' | 'number' | 'boolean' | 'array' | 'json' | 'date' | 'bigint' | 'custom' | 'buffer';
10
- export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common';
9
+ export type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';
11
10
  export type GeneratedStorageMode = 'virtual' | 'stored';
12
11
  export type GeneratedType = 'always' | 'byDefault';
13
12
  export type GeneratedColumnConfig<TDataType> = {
@@ -226,7 +225,7 @@ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig<Co
226
225
  type: 'always';
227
226
  }>;
228
227
  }
229
- export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>> : never;
228
+ export type BuildColumn<TTableName extends string, TBuilder extends ColumnBuilderBase, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>> : TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>> : never;
230
229
  export type BuildIndexColumn<TDialect extends Dialect> = TDialect extends 'pg' ? ExtraConfigColumn : never;
231
230
  export type BuildColumns<TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
232
231
  [Key in keyof TConfigMap]: BuildColumn<TTableName, {
@@ -238,4 +237,4 @@ export type BuildColumns<TTableName extends string, TConfigMap extends Record<st
238
237
  export type BuildExtraConfigColumns<_TTableName extends string, TConfigMap extends Record<string, ColumnBuilderBase>, TDialect extends Dialect> = {
239
238
  [Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;
240
239
  } & {};
241
- export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
240
+ export type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>> : TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>> : never;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SingleStoreColumn } from './singlestore-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Assume, Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'singlestore' | 'common';\n\nexport type GeneratedStorageMode = 'virtual' | 'stored';\n\nexport type GeneratedType = 'always' | 'byDefault';\n\nexport type GeneratedColumnConfig<TDataType> = {\n\tas: TDataType | SQL | (() => SQL);\n\ttype?: GeneratedType;\n\tmode?: GeneratedStorageMode;\n};\n\nexport type GeneratedIdentityConfig = {\n\tsequenceName?: string;\n\tsequenceOptions?: PgSequenceOptions;\n\ttype: 'always' | 'byDefault';\n};\n\nexport interface ColumnBuilderBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTableName extends string,\n\tTData = T extends { $type: infer U } ? U : T['data'],\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: TData;\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tisPrimaryKey: T extends { isPrimaryKey: true } ? true : false;\n\tisAutoincrement: T extends { isAutoincrement: true } ? true : false;\n\thasRuntimeDefault: T extends { hasRuntimeDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn<TTableName, U, 'common'>\n\t\t: never;\n\tidentity: T extends { identity: 'always' } ? 'always' : T extends { identity: 'byDefault' } ? 'byDefault' : undefined;\n\tgenerated: T extends { generated: infer G } ? unknown extends G ? undefined\n\t\t: G extends undefined ? undefined\n\t\t: G\n\t\t: undefined;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t\tidentity: T extends { identity: infer U } ? U : unknown;\n\t\tgenerated: T extends { generated: infer G } ? G extends undefined ? unknown : G : unknown;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {\n\tname: string;\n\tkeyAsName: boolean;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\tonUpdateFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type IsPrimaryKey<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisPrimaryKey: true;\n\t};\n};\n\nexport type IsAutoincrement<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisAutoincrement: true;\n\t};\n};\n\nexport type HasRuntimeDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasRuntimeDefault: true;\n\t};\n};\n\nexport type $Type<T extends ColumnBuilderBase, TType> = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport type HasGenerated<T extends ColumnBuilderBase, TGenerated extends {} = {}> = T & {\n\t_: {\n\t\thasDefault: true;\n\t\tgenerated: TGenerated;\n\t};\n};\n\nexport type IsIdentity<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tidentity: TType;\n\t};\n};\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig<T, TTypeConfig>;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase<T, TTypeConfig> {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig<T, TTypeConfig>;\n\n\tprotected config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tkeyAsName: name === '',\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: undefined,\n\t\t} as ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type<UserId>().primaryKey(),\n\t * \tdetails: json('details').$type<UserDetails>().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type<TType>(): $Type<this, TType> {\n\t\treturn this as $Type<this, TType>;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull<this> {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull<this>;\n\t}\n\n\t/**\n\t * Adds a `default <value>` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault<this> {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasRuntimeDefault<HasDefault<this>> {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasRuntimeDefault<HasDefault<this>>;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a dynamic update value to the column.\n\t * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$onUpdateFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault<this> {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Alias for {@link $onUpdateFn}.\n\t */\n\t$onUpdate = this.$onUpdateFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t: IsPrimaryKey<NotNull<this>>\n\t{\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t\t: IsPrimaryKey<NotNull<this>>;\n\t}\n\n\tabstract generatedAlwaysAs(\n\t\tas: SQL | T['data'] | (() => SQL),\n\t\tconfig?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, {\n\t\ttype: 'always';\n\t}>;\n\n\t/** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n\tsetName(name: string) {\n\t\tif (this.config.name !== '') return;\n\t\tthis.config.name = name;\n\t}\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn : never;\n\n// TODO\n// try to make sql as well + indexRaw\n\n// optional after everything will be working as expected\n// also try to leave only needed methods for extraConfig\n// make an error if I pass .asc() to fk and so on\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn<TTableName, {\n\t\t\t_:\n\t\t\t\t& Omit<TConfigMap[Key]['_'], 'name'>\n\t\t\t\t& { name: TConfigMap[Key]['_']['name'] extends '' ? Assume<Key, string> : TConfigMap[Key]['_']['name'] };\n\t\t}, TDialect>;\n\t}\n\t& {};\n\nexport type BuildExtraConfigColumns<\n\t_TTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> =\n\tTDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'singlestore' ? SingleStoreColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":"AAAA,SAAS,kBAAkB;AAiLpB,MAAe,cAKyB;AAAA,EAC9C,QAAiB,UAAU,IAAY;AAAA,EAI7B;AAAA,EAEV,YAAY,MAAiB,UAAyB,YAA6B;AAClF,SAAK,SAAS;AAAA,MACb;AAAA,MACA,WAAW,SAAS;AAAA,MACpB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,QAAmC;AAClC,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAyB;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAA+F;AACtG,SAAK,OAAO,UAAU;AACtB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACC,IACsC;AACtC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,YACC,IACmB;AACnB,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,aAEA;AACC,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EAER;AAAA;AAAA,EAUA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS;AAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
1
+ {"version":3,"sources":["../src/column-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { ExtraConfigColumn, PgColumn, PgSequenceOptions } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Assume, Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport type GeneratedStorageMode = 'virtual' | 'stored';\n\nexport type GeneratedType = 'always' | 'byDefault';\n\nexport type GeneratedColumnConfig<TDataType> = {\n\tas: TDataType | SQL | (() => SQL);\n\ttype?: GeneratedType;\n\tmode?: GeneratedStorageMode;\n};\n\nexport type GeneratedIdentityConfig = {\n\tsequenceName?: string;\n\tsequenceOptions?: PgSequenceOptions;\n\ttype: 'always' | 'byDefault';\n};\n\nexport interface ColumnBuilderBaseConfig<TDataType extends ColumnDataType, TColumnType extends string> {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTableName extends string,\n\tTData = T extends { $type: infer U } ? U : T['data'],\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: TData;\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tisPrimaryKey: T extends { isPrimaryKey: true } ? true : false;\n\tisAutoincrement: T extends { isAutoincrement: true } ? true : false;\n\thasRuntimeDefault: T extends { hasRuntimeDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn<TTableName, U, 'common'>\n\t\t: never;\n\tidentity: T extends { identity: 'always' } ? 'always' : T extends { identity: 'byDefault' } ? 'byDefault' : undefined;\n\tgenerated: T extends { generated: infer G } ? unknown extends G ? undefined\n\t\t: G extends undefined ? undefined\n\t\t: G\n\t\t: undefined;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t\tidentity: T extends { identity: infer U } ? U : unknown;\n\t\tgenerated: T extends { generated: infer G } ? G extends undefined ? unknown : G : unknown;\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig<TData, TRuntimeConfig extends object = object> = {\n\tname: string;\n\tkeyAsName: boolean;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\tonUpdateFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n\tgenerated: GeneratedColumnConfig<TData> | undefined;\n\tgeneratedIdentity: GeneratedIdentityConfig | undefined;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type IsPrimaryKey<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisPrimaryKey: true;\n\t};\n};\n\nexport type IsAutoincrement<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\tisAutoincrement: true;\n\t};\n};\n\nexport type HasRuntimeDefault<T extends ColumnBuilderBase> = T & {\n\t_: {\n\t\thasRuntimeDefault: true;\n\t};\n};\n\nexport type $Type<T extends ColumnBuilderBase, TType> = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport type HasGenerated<T extends ColumnBuilderBase, TGenerated extends {} = {}> = T & {\n\t_: {\n\t\thasDefault: true;\n\t\tgenerated: TGenerated;\n\t};\n};\n\nexport type IsIdentity<\n\tT extends ColumnBuilderBase,\n\tTType extends 'always' | 'byDefault',\n> = T & {\n\t_: {\n\t\tnotNull: true;\n\t\thasDefault: true;\n\t\tidentity: TType;\n\t};\n};\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig<T, TTypeConfig>;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase<T, TTypeConfig> {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig<T, TTypeConfig>;\n\n\tprotected config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tkeyAsName: name === '',\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t\tgenerated: undefined,\n\t\t} as ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type<UserId>().primaryKey(),\n\t * \tdetails: json('details').$type<UserDetails>().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type<TType>(): $Type<this, TType> {\n\t\treturn this as $Type<this, TType>;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull<this> {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull<this>;\n\t}\n\n\t/**\n\t * Adds a `default <value>` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault<this> {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasRuntimeDefault<HasDefault<this>> {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasRuntimeDefault<HasDefault<this>>;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a dynamic update value to the column.\n\t * The function will be called when the row is updated, and the returned value will be used as the column value if none is provided.\n\t * If no `default` (or `$defaultFn`) value is provided, the function will be called when the row is inserted as well, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$onUpdateFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault<this> {\n\t\tthis.config.onUpdateFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault<this>;\n\t}\n\n\t/**\n\t * Alias for {@link $onUpdateFn}.\n\t */\n\t$onUpdate = this.$onUpdateFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t: IsPrimaryKey<NotNull<this>>\n\t{\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? IsPrimaryKey<HasDefault<NotNull<this>>>\n\t\t\t: IsPrimaryKey<NotNull<this>>;\n\t}\n\n\tabstract generatedAlwaysAs(\n\t\tas: SQL | T['data'] | (() => SQL),\n\t\tconfig?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, {\n\t\ttype: 'always';\n\t}>;\n\n\t/** @internal Sets the name of the column to the key within the table definition if a name was not given. */\n\tsetName(name: string) {\n\t\tif (this.config.name !== '') return;\n\t\tthis.config.name = name;\n\t}\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: TDialect extends 'common' ? Column<MakeColumnConfig<TBuilder['_'], TTableName>>\n\t: never;\n\nexport type BuildIndexColumn<\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? ExtraConfigColumn : never;\n\n// TODO\n// try to make sql as well + indexRaw\n\n// optional after everything will be working as expected\n// also try to leave only needed methods for extraConfig\n// make an error if I pass .asc() to fk and so on\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn<TTableName, {\n\t\t\t_:\n\t\t\t\t& Omit<TConfigMap[Key]['_'], 'name'>\n\t\t\t\t& { name: TConfigMap[Key]['_']['name'] extends '' ? Assume<Key, string> : TConfigMap[Key]['_']['name'] };\n\t\t}, TDialect>;\n\t}\n\t& {};\n\nexport type BuildExtraConfigColumns<\n\t_TTableName extends string,\n\tTConfigMap extends Record<string, ColumnBuilderBase>,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildIndexColumn<TDialect>;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName<TColumn extends Column, TAlias extends string, TDialect extends Dialect> =\n\tTDialect extends 'pg' ? PgColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'mysql' ? MySqlColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn<MakeColumnConfig<TColumn['_'], TAlias>>\n\t\t: never;\n"],"mappings":"AAAA,SAAS,kBAAkB;AAgLpB,MAAe,cAKyB;AAAA,EAC9C,QAAiB,UAAU,IAAY;AAAA,EAI7B;AAAA,EAEV,YAAY,MAAiB,UAAyB,YAA6B;AAClF,SAAK,SAAS;AAAA,MACb;AAAA,MACA,WAAW,SAAS;AAAA,MACpB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,QAAmC;AAClC,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAyB;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,OAA+F;AACtG,SAAK,OAAO,UAAU;AACtB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WACC,IACsC;AACtC,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,YACC,IACmB;AACnB,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,aAEA;AACC,SAAK,OAAO,aAAa;AACzB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EAER;AAAA;AAAA,EAUA,QAAQ,MAAc;AACrB,QAAI,KAAK,OAAO,SAAS;AAAI;AAC7B,SAAK,OAAO,OAAO;AAAA,EACpB;AACD;","names":[]}
package/d1/driver.cjs CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var driver_exports = {};
20
30
  __export(driver_exports, {
@@ -22,9 +32,9 @@ __export(driver_exports, {
22
32
  drizzle: () => drizzle
23
33
  });
24
34
  module.exports = __toCommonJS(driver_exports);
35
+ var V1 = __toESM(require("../_relations.cjs"), 1);
25
36
  var import_entity = require("../entity.cjs");
26
37
  var import_logger = require("../logger.cjs");
27
- var import_relations = require("../relations.cjs");
28
38
  var import_db = require("../sqlite-core/db.cjs");
29
39
  var import_dialect = require("../sqlite-core/dialect.cjs");
30
40
  var import_session = require("./session.cjs");
@@ -44,9 +54,9 @@ function drizzle(client, config = {}) {
44
54
  }
45
55
  let schema;
46
56
  if (config.schema) {
47
- const tablesConfig = (0, import_relations.extractTablesRelationalConfig)(
57
+ const tablesConfig = V1.extractTablesRelationalConfig(
48
58
  config.schema,
49
- import_relations.createTableRelationsHelpers
59
+ V1.createTableRelationsHelpers
50
60
  );
51
61
  schema = {
52
62
  fullSchema: config.schema,
@@ -54,8 +64,15 @@ function drizzle(client, config = {}) {
54
64
  tableNamesMap: tablesConfig.tableNamesMap
55
65
  };
56
66
  }
57
- const session = new import_session.SQLiteD1Session(client, dialect, schema, { logger });
58
- const db = new DrizzleD1Database("async", dialect, session, schema);
67
+ const relations = config.relations;
68
+ const session = new import_session.SQLiteD1Session(client, dialect, relations, schema, { logger });
69
+ const db = new DrizzleD1Database(
70
+ "async",
71
+ dialect,
72
+ session,
73
+ relations,
74
+ schema
75
+ );
59
76
  db.$client = client;
60
77
  return db;
61
78
  }
package/d1/driver.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/d1/driver.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\nimport type { D1Database as MiniflareD1Database } from '@miniflare/d1';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported } from '~/utils.ts';\nimport { SQLiteD1Session } from './session.ts';\n\nexport type AnyD1Database = IfNotImported<\n\tD1Database,\n\tMiniflareD1Database,\n\tD1Database | IfNotImported<MiniflareD1Database, never, MiniflareD1Database>\n>;\n\nexport class DrizzleD1Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {\n\tstatic override readonly [entityKind]: string = 'D1Database';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteD1Session<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnyD1Database = AnyD1Database,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): DrizzleD1Database<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteD1Session(client as D1Database, dialect, schema, { logger });\n\tconst db = new DrizzleD1Database('async', dialect, session, schema) as DrizzleD1Database<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAA2B;AAC3B,oBAA8B;AAC9B,uBAMO;AACP,gBAAmC;AACnC,qBAAmC;AAEnC,qBAAgC;AAQzB,MAAM,0BAEH,6BAA+C;AAAA,EACxD,QAA0B,wBAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QAIf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,+BAAgB,QAAsB,SAAS,QAAQ,EAAE,OAAO,CAAC;AACrF,QAAM,KAAK,IAAI,kBAAkB,SAAS,SAAS,SAAS,MAAM;AAClE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/d1/driver.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\nimport type { D1Database as MiniflareD1Database } from '@miniflare/d1';\nimport * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported } from '~/utils.ts';\nimport { SQLiteD1Session } from './session.ts';\n\nexport type AnyD1Database = IfNotImported<\n\tD1Database,\n\tMiniflareD1Database,\n\tD1Database | IfNotImported<MiniflareD1Database, never, MiniflareD1Database>\n>;\n\nexport class DrizzleD1Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', D1Result, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'D1Database';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteD1Session<\n\t\tTSchema,\n\t\tTRelations,\n\t\tExtractTablesWithRelations<TRelations>,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnyD1Database = AnyD1Database,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): DrizzleD1Database<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst session = new SQLiteD1Session(client as D1Database, dialect, relations, schema, { logger });\n\tconst db = new DrizzleD1Database(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SQLiteD1Session<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tExtractTablesWithRelations<TRelations>,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as DrizzleD1Database<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAoB;AAEpB,oBAA2B;AAC3B,oBAA8B;AAE9B,gBAAmC;AACnC,qBAAmC;AAEnC,qBAAgC;AAQzB,MAAM,0BAGH,6BAA2D;AAAA,EACpE,QAA0B,wBAAU,IAAY;AAAA,EAUhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QAKf,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,UAAU,IAAI,+BAAgB,QAAsB,SAAS,WAAW,QAAQ,EAAE,OAAO,CAAC;AAChG,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IAMA;AAAA,IACA;AAAA,EACD;AAIA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
package/d1/driver.d.cts CHANGED
@@ -1,13 +1,14 @@
1
1
  import type { D1Database as MiniflareD1Database } from '@miniflare/d1';
2
2
  import type { BatchItem, BatchResponse } from "../batch.cjs";
3
3
  import { entityKind } from "../entity.cjs";
4
+ import type { AnyRelations, EmptyRelations } from "../relations.cjs";
4
5
  import { BaseSQLiteDatabase } from "../sqlite-core/db.cjs";
5
6
  import type { DrizzleConfig, IfNotImported } from "../utils.cjs";
6
7
  export type AnyD1Database = IfNotImported<D1Database, MiniflareD1Database, D1Database | IfNotImported<MiniflareD1Database, never, MiniflareD1Database>>;
7
- export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {
8
+ export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends BaseSQLiteDatabase<'async', D1Result, TSchema, TRelations> {
8
9
  static readonly [entityKind]: string;
9
10
  batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
10
11
  }
11
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends AnyD1Database = AnyD1Database>(client: TClient, config?: DrizzleConfig<TSchema>): DrizzleD1Database<TSchema> & {
12
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends AnyD1Database = AnyD1Database>(client: TClient, config?: DrizzleConfig<TSchema, TRelations>): DrizzleD1Database<TSchema, TRelations> & {
12
13
  $client: TClient;
13
14
  };
package/d1/driver.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import type { D1Database as MiniflareD1Database } from '@miniflare/d1';
2
2
  import type { BatchItem, BatchResponse } from "../batch.js";
3
3
  import { entityKind } from "../entity.js";
4
+ import type { AnyRelations, EmptyRelations } from "../relations.js";
4
5
  import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
5
6
  import type { DrizzleConfig, IfNotImported } from "../utils.js";
6
7
  export type AnyD1Database = IfNotImported<D1Database, MiniflareD1Database, D1Database | IfNotImported<MiniflareD1Database, never, MiniflareD1Database>>;
7
- export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {
8
+ export declare class DrizzleD1Database<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends BaseSQLiteDatabase<'async', D1Result, TSchema, TRelations> {
8
9
  static readonly [entityKind]: string;
9
10
  batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
10
11
  }
11
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends AnyD1Database = AnyD1Database>(client: TClient, config?: DrizzleConfig<TSchema>): DrizzleD1Database<TSchema> & {
12
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends AnyD1Database = AnyD1Database>(client: TClient, config?: DrizzleConfig<TSchema, TRelations>): DrizzleD1Database<TSchema, TRelations> & {
12
13
  $client: TClient;
13
14
  };
package/d1/driver.js CHANGED
@@ -1,9 +1,6 @@
1
+ import * as V1 from "../_relations.js";
1
2
  import { entityKind } from "../entity.js";
2
3
  import { DefaultLogger } from "../logger.js";
3
- import {
4
- createTableRelationsHelpers,
5
- extractTablesRelationalConfig
6
- } from "../relations.js";
7
4
  import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
8
5
  import { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
9
6
  import { SQLiteD1Session } from "./session.js";
@@ -23,9 +20,9 @@ function drizzle(client, config = {}) {
23
20
  }
24
21
  let schema;
25
22
  if (config.schema) {
26
- const tablesConfig = extractTablesRelationalConfig(
23
+ const tablesConfig = V1.extractTablesRelationalConfig(
27
24
  config.schema,
28
- createTableRelationsHelpers
25
+ V1.createTableRelationsHelpers
29
26
  );
30
27
  schema = {
31
28
  fullSchema: config.schema,
@@ -33,8 +30,15 @@ function drizzle(client, config = {}) {
33
30
  tableNamesMap: tablesConfig.tableNamesMap
34
31
  };
35
32
  }
36
- const session = new SQLiteD1Session(client, dialect, schema, { logger });
37
- const db = new DrizzleD1Database("async", dialect, session, schema);
33
+ const relations = config.relations;
34
+ const session = new SQLiteD1Session(client, dialect, relations, schema, { logger });
35
+ const db = new DrizzleD1Database(
36
+ "async",
37
+ dialect,
38
+ session,
39
+ relations,
40
+ schema
41
+ );
38
42
  db.$client = client;
39
43
  return db;
40
44
  }
package/d1/driver.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/d1/driver.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\nimport type { D1Database as MiniflareD1Database } from '@miniflare/d1';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported } from '~/utils.ts';\nimport { SQLiteD1Session } from './session.ts';\n\nexport type AnyD1Database = IfNotImported<\n\tD1Database,\n\tMiniflareD1Database,\n\tD1Database | IfNotImported<MiniflareD1Database, never, MiniflareD1Database>\n>;\n\nexport class DrizzleD1Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {\n\tstatic override readonly [entityKind]: string = 'D1Database';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteD1Session<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnyD1Database = AnyD1Database,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): DrizzleD1Database<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteD1Session(client as D1Database, dialect, schema, { logger });\n\tconst db = new DrizzleD1Database('async', dialect, session, schema) as DrizzleD1Database<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AAGA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAIM;AACP,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,uBAAuB;AAQzB,MAAM,0BAEH,mBAA+C;AAAA,EACxD,QAA0B,UAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QAIf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,gBAAgB,QAAsB,SAAS,QAAQ,EAAE,OAAO,CAAC;AACrF,QAAM,KAAK,IAAI,kBAAkB,SAAS,SAAS,SAAS,MAAM;AAClE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/d1/driver.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\nimport type { D1Database as MiniflareD1Database } from '@miniflare/d1';\nimport * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported } from '~/utils.ts';\nimport { SQLiteD1Session } from './session.ts';\n\nexport type AnyD1Database = IfNotImported<\n\tD1Database,\n\tMiniflareD1Database,\n\tD1Database | IfNotImported<MiniflareD1Database, never, MiniflareD1Database>\n>;\n\nexport class DrizzleD1Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', D1Result, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'D1Database';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteD1Session<\n\t\tTSchema,\n\t\tTRelations,\n\t\tExtractTablesWithRelations<TRelations>,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnyD1Database = AnyD1Database,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): DrizzleD1Database<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst session = new SQLiteD1Session(client as D1Database, dialect, relations, schema, { logger });\n\tconst db = new DrizzleD1Database(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SQLiteD1Session<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tExtractTablesWithRelations<TRelations>,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as DrizzleD1Database<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AAEA,YAAY,QAAQ;AAEpB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,uBAAuB;AAQzB,MAAM,0BAGH,mBAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAUhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEO,SAAS,QAKf,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,UAAU,IAAI,gBAAgB,QAAsB,SAAS,WAAW,QAAQ,EAAE,OAAO,CAAC;AAChG,QAAM,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IAMA;AAAA,IACA;AAAA,EACD;AAIA,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/d1/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { DrizzleD1Database } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: DrizzleD1Database<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\tawait db.session.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst statementToBatch = [];\n\n\tfor (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tstatementToBatch.push(db.run(sql.raw(stmt)));\n\t\t\t}\n\n\t\t\tstatementToBatch.push(\n\t\t\t\tdb.run(\n\t\t\t\t\tsql`INSERT INTO ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\") VALUES(${\n\t\t\t\t\t\tsql.raw(`'${migration.hash}'`)\n\t\t\t\t\t}, ${sql.raw(`${migration.folderMillis}`)})`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (statementToBatch.length > 0) {\n\t\tawait db.session.batch(statementToBatch);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,iBAAoB;AAGpB,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAElD,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,IAAI,oBAAoB;AAEzC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,mBAAmB,CAAC;AAE1B,aAAW,aAAa,YAAY;AACnC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAAc;AAC7E,iBAAW,QAAQ,UAAU,KAAK;AACjC,yBAAiB,KAAK,GAAG,IAAI,eAAI,IAAI,IAAI,CAAC,CAAC;AAAA,MAC5C;AAEA,uBAAiB;AAAA,QAChB,GAAG;AAAA,UACF,6BAAkB,eAAI,WAAW,eAAe,CAAC,kCAChD,eAAI,IAAI,IAAI,UAAU,IAAI,GAAG,CAC9B,KAAK,eAAI,IAAI,GAAG,UAAU,YAAY,EAAE,CAAC;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,iBAAiB,SAAS,GAAG;AAChC,UAAM,GAAG,QAAQ,MAAM,gBAAgB;AAAA,EACxC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/d1/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { DrizzleD1Database } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: DrizzleD1Database<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\tawait db.session.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst statementToBatch = [];\n\n\tfor (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tstatementToBatch.push(db.run(sql.raw(stmt)));\n\t\t\t}\n\n\t\t\tstatementToBatch.push(\n\t\t\t\tdb.run(\n\t\t\t\t\tsql`INSERT INTO ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\") VALUES(${\n\t\t\t\t\t\tsql.raw(`'${migration.hash}'`)\n\t\t\t\t\t}, ${sql.raw(`${migration.folderMillis}`)})`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (statementToBatch.length > 0) {\n\t\tawait db.session.batch(statementToBatch);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAEnC,iBAAoB;AAGpB,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAElD,QAAM,uBAAuB;AAAA,+BACC,eAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,IAAI,oBAAoB;AAEzC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,kDAAuC,eAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,mBAAmB,CAAC;AAE1B,aAAW,aAAa,YAAY;AACnC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAAc;AAC7E,iBAAW,QAAQ,UAAU,KAAK;AACjC,yBAAiB,KAAK,GAAG,IAAI,eAAI,IAAI,IAAI,CAAC,CAAC;AAAA,MAC5C;AAEA,uBAAiB;AAAA,QAChB,GAAG;AAAA,UACF,6BAAkB,eAAI,WAAW,eAAe,CAAC,kCAChD,eAAI,IAAI,IAAI,UAAU,IAAI,GAAG,CAC9B,KAAK,eAAI,IAAI,GAAG,UAAU,YAAY,EAAE,CAAC;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,iBAAiB,SAAS,GAAG;AAChC,UAAM,GAAG,QAAQ,MAAM,gBAAgB;AAAA,EACxC;AACD;","names":[]}
package/d1/migrator.d.cts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.cjs";
2
+ import type { AnyRelations } from "../relations.cjs";
2
3
  import type { DrizzleD1Database } from "./driver.cjs";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: DrizzleD1Database<TSchema>, config: MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: DrizzleD1Database<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
package/d1/migrator.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.js";
2
+ import type { AnyRelations } from "../relations.js";
2
3
  import type { DrizzleD1Database } from "./driver.js";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: DrizzleD1Database<TSchema>, config: MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: DrizzleD1Database<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/d1/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { DrizzleD1Database } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: DrizzleD1Database<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\tawait db.session.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst statementToBatch = [];\n\n\tfor (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tstatementToBatch.push(db.run(sql.raw(stmt)));\n\t\t\t}\n\n\t\t\tstatementToBatch.push(\n\t\t\t\tdb.run(\n\t\t\t\t\tsql`INSERT INTO ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\") VALUES(${\n\t\t\t\t\t\tsql.raw(`'${migration.hash}'`)\n\t\t\t\t\t}, ${sql.raw(`${migration.folderMillis}`)})`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (statementToBatch.length > 0) {\n\t\tawait db.session.batch(statementToBatch);\n\t}\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,WAAW;AAGpB,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAElD,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,IAAI,oBAAoB;AAEzC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,mBAAmB,CAAC;AAE1B,aAAW,aAAa,YAAY;AACnC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAAc;AAC7E,iBAAW,QAAQ,UAAU,KAAK;AACjC,yBAAiB,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;AAAA,MAC5C;AAEA,uBAAiB;AAAA,QAChB,GAAG;AAAA,UACF,kBAAkB,IAAI,WAAW,eAAe,CAAC,kCAChD,IAAI,IAAI,IAAI,UAAU,IAAI,GAAG,CAC9B,KAAK,IAAI,IAAI,GAAG,UAAU,YAAY,EAAE,CAAC;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,iBAAiB,SAAS,GAAG;AAChC,UAAM,GAAG,QAAQ,MAAM,gBAAgB;AAAA,EACxC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/d1/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { DrizzleD1Database } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: DrizzleD1Database<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tconst migrationsTable = config.migrationsTable ?? '__drizzle_migrations';\n\n\tconst migrationTableCreate = sql`\n\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\thash text NOT NULL,\n\t\t\tcreated_at numeric\n\t\t)\n\t`;\n\tawait db.session.run(migrationTableCreate);\n\n\tconst dbMigrations = await db.values<[number, string, string]>(\n\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t);\n\n\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\tconst statementToBatch = [];\n\n\tfor (const migration of migrations) {\n\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\tstatementToBatch.push(db.run(sql.raw(stmt)));\n\t\t\t}\n\n\t\t\tstatementToBatch.push(\n\t\t\t\tdb.run(\n\t\t\t\t\tsql`INSERT INTO ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\") VALUES(${\n\t\t\t\t\t\tsql.raw(`'${migration.hash}'`)\n\t\t\t\t\t}, ${sql.raw(`${migration.folderMillis}`)})`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (statementToBatch.length > 0) {\n\t\tawait db.session.batch(statementToBatch);\n\t}\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAEnC,SAAS,WAAW;AAGpB,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,kBAAkB,OAAO,mBAAmB;AAElD,QAAM,uBAAuB;AAAA,+BACC,IAAI,WAAW,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM7D,QAAM,GAAG,QAAQ,IAAI,oBAAoB;AAEzC,QAAM,eAAe,MAAM,GAAG;AAAA,IAC7B,uCAAuC,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAEA,QAAM,kBAAkB,aAAa,CAAC,KAAK;AAE3C,QAAM,mBAAmB,CAAC;AAE1B,aAAW,aAAa,YAAY;AACnC,QAAI,CAAC,mBAAmB,OAAO,gBAAgB,CAAC,CAAC,IAAK,UAAU,cAAc;AAC7E,iBAAW,QAAQ,UAAU,KAAK;AACjC,yBAAiB,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC;AAAA,MAC5C;AAEA,uBAAiB;AAAA,QAChB,GAAG;AAAA,UACF,kBAAkB,IAAI,WAAW,eAAe,CAAC,kCAChD,IAAI,IAAI,IAAI,UAAU,IAAI,GAAG,CAC9B,KAAK,IAAI,IAAI,GAAG,UAAU,YAAY,EAAE,CAAC;AAAA,QAC1C;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,iBAAiB,SAAS,GAAG;AAChC,UAAM,GAAG,QAAQ,MAAM,gBAAgB;AAAA,EACxC;AACD;","names":[]}
package/d1/session.cjs CHANGED
@@ -30,9 +30,10 @@ var import_sqlite_core = require("../sqlite-core/index.cjs");
30
30
  var import_session = require("../sqlite-core/session.cjs");
31
31
  var import_utils = require("../utils.cjs");
32
32
  class SQLiteD1Session extends import_session.SQLiteSession {
33
- constructor(client, dialect, schema, options = {}) {
33
+ constructor(client, dialect, relations, schema, options = {}) {
34
34
  super(dialect);
35
35
  this.client = client;
36
+ this.relations = relations;
36
37
  this.schema = schema;
37
38
  this.options = options;
38
39
  this.logger = options.logger ?? new import_logger.NoopLogger();
@@ -51,6 +52,19 @@ class SQLiteD1Session extends import_session.SQLiteSession {
51
52
  customResultMapper
52
53
  );
53
54
  }
55
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
56
+ const stmt = this.client.prepare(query.sql);
57
+ return new D1PreparedQuery(
58
+ stmt,
59
+ query,
60
+ this.logger,
61
+ fields,
62
+ executeMethod,
63
+ false,
64
+ customResultMapper,
65
+ true
66
+ );
67
+ }
54
68
  async batch(queries) {
55
69
  const preparedQueries = [];
56
70
  const builtQueries = [];
@@ -80,7 +94,7 @@ class SQLiteD1Session extends import_session.SQLiteSession {
80
94
  return d1ToRawMapping(result.results);
81
95
  }
82
96
  async transaction(transaction, config) {
83
- const tx = new D1Transaction("async", this.dialect, this, this.schema);
97
+ const tx = new D1Transaction("async", this.dialect, this, this.relations, this.schema);
84
98
  await this.run(import_sql.sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
85
99
  try {
86
100
  const result = await transaction(tx);
@@ -96,7 +110,14 @@ class D1Transaction extends import_sqlite_core.SQLiteTransaction {
96
110
  static [import_entity.entityKind] = "D1Transaction";
97
111
  async transaction(transaction) {
98
112
  const savepointName = `sp${this.nestedIndex}`;
99
- const tx = new D1Transaction("async", this.dialect, this.session, this.schema, this.nestedIndex + 1);
113
+ const tx = new D1Transaction(
114
+ "async",
115
+ this.dialect,
116
+ this.session,
117
+ this.relations,
118
+ this.schema,
119
+ this.nestedIndex + 1
120
+ );
100
121
  await this.session.run(import_sql.sql.raw(`savepoint ${savepointName}`));
101
122
  try {
102
123
  const result = await transaction(tx);
@@ -117,18 +138,17 @@ function d1ToRawMapping(results) {
117
138
  return rows;
118
139
  }
119
140
  class D1PreparedQuery extends import_session.SQLitePreparedQuery {
120
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
141
+ constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
121
142
  super("async", executeMethod, query);
122
143
  this.logger = logger;
123
144
  this._isResponseInArrayMode = _isResponseInArrayMode;
124
145
  this.customResultMapper = customResultMapper;
146
+ this.isRqbV2Query = isRqbV2Query;
125
147
  this.fields = fields;
126
148
  this.stmt = stmt;
127
149
  }
128
150
  static [import_entity.entityKind] = "D1PreparedQuery";
129
151
  /** @internal */
130
- customResultMapper;
131
- /** @internal */
132
152
  fields;
133
153
  /** @internal */
134
154
  stmt;
@@ -138,6 +158,8 @@ class D1PreparedQuery extends import_session.SQLitePreparedQuery {
138
158
  return this.stmt.bind(...params).run();
139
159
  }
140
160
  async all(placeholderValues) {
161
+ if (this.isRqbV2Query)
162
+ return this.allRqbV2(placeholderValues);
141
163
  const { fields, query, logger, stmt, customResultMapper } = this;
142
164
  if (!fields && !customResultMapper) {
143
165
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
@@ -147,6 +169,14 @@ class D1PreparedQuery extends import_session.SQLitePreparedQuery {
147
169
  const rows = await this.values(placeholderValues);
148
170
  return this.mapAllResult(rows);
149
171
  }
172
+ async allRqbV2(placeholderValues) {
173
+ const { query, logger, stmt, customResultMapper } = this;
174
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
175
+ logger.logQuery(query.sql, params);
176
+ return stmt.bind(...params).all().then(
177
+ ({ results }) => customResultMapper(results)
178
+ );
179
+ }
150
180
  mapAllResult(rows, isFromBatch) {
151
181
  if (isFromBatch) {
152
182
  rows = d1ToRawMapping(rows.results);
@@ -160,6 +190,8 @@ class D1PreparedQuery extends import_session.SQLitePreparedQuery {
160
190
  return rows.map((row) => (0, import_utils.mapResultRow)(this.fields, row, this.joinsNotNullableMap));
161
191
  }
162
192
  async get(placeholderValues) {
193
+ if (this.isRqbV2Query)
194
+ return this.getRqbV2(placeholderValues);
163
195
  const { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;
164
196
  if (!fields && !customResultMapper) {
165
197
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
@@ -175,6 +207,16 @@ class D1PreparedQuery extends import_session.SQLitePreparedQuery {
175
207
  }
176
208
  return (0, import_utils.mapResultRow)(fields, rows[0], joinsNotNullableMap);
177
209
  }
210
+ async getRqbV2(placeholderValues) {
211
+ const { query, logger, stmt, customResultMapper } = this;
212
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
213
+ logger.logQuery(query.sql, params);
214
+ const { results: rows } = await stmt.bind(...params).all();
215
+ if (!rows[0]) {
216
+ return void 0;
217
+ }
218
+ return customResultMapper(rows);
219
+ }
178
220
  mapGetResult(result, isFromBatch) {
179
221
  if (isFromBatch) {
180
222
  result = d1ToRawMapping(result.results)[0];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/d1/session.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\n\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteD1SessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteD1Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteD1Session';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: D1Database,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SQLiteD1SessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): D1PreparedQuery {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: D1PreparedStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tif (builtQuery.params.length > 0) {\n\t\t\t\tbuiltQueries.push((preparedQuery as D1PreparedQuery).stmt.bind(...builtQuery.params));\n\t\t\t} else {\n\t\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\t\tbuiltQueries.push(\n\t\t\t\t\tthis.client.prepare(builtQuery.sql).bind(...builtQuery.params),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst batchResults = await this.client.batch<any>(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn d1ToRawMapping((result as D1Result).results);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new D1Transaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class D1Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'D1Transaction';\n\n\toverride async transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new D1Transaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n/**\n * This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287\n * It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.\n * @param results\n * @returns\n */\nfunction d1ToRawMapping(results: any) {\n\tconst rows: unknown[][] = [];\n\tfor (const row of results) {\n\t\tconst entry = Object.keys(row).map((k) => row[k]);\n\t\trows.push(entry);\n\t}\n\treturn rows;\n}\n\nexport class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: D1Response; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'D1PreparedQuery';\n\n\t/** @internal */\n\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown;\n\n\t/** @internal */\n\tfields?: SelectedFieldsOrdered;\n\n\t/** @internal */\n\tstmt: D1PreparedStatement;\n\n\tconstructor(\n\t\tstmt: D1PreparedStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t\tthis.stmt = stmt;\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<D1Response> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).run();\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results!));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = d1ToRawMapping((rows as D1Result).results);\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => results![0]);\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, rows[0], joinsNotNullableMap);\n\t}\n\n\toverride mapGetResult(result: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\tresult = d1ToRawMapping((result as D1Result).results)[0];\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([result as unknown[]]) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(this.fields!, result as unknown[], this.joinsNotNullableMap);\n\t}\n\n\tvalues<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).raw();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["builtQuery"]}
1
+ {"version":3,"sources":["../../src/d1/session.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\n\nimport type * as V1 from '~/_relations.ts';\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteD1SessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteD1Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'async', D1Result, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteD1Session';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: D1Database,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SQLiteD1SessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): D1PreparedQuery {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: Record<string, unknown>[]) => unknown,\n\t): D1PreparedQuery<PreparedQueryConfig, true> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: D1PreparedStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tif (builtQuery.params.length > 0) {\n\t\t\t\tbuiltQueries.push((preparedQuery as D1PreparedQuery).stmt.bind(...builtQuery.params));\n\t\t\t} else {\n\t\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\t\tbuiltQueries.push(\n\t\t\t\t\tthis.client.prepare(builtQuery.sql).bind(...builtQuery.params),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst batchResults = await this.client.batch<any>(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn d1ToRawMapping((result as D1Result).results);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: D1Transaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T | Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new D1Transaction('async', this.dialect, this, this.relations, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class D1Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'async', D1Result, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'D1Transaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: D1Transaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new D1Transaction(\n\t\t\t'async',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n/**\n * This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287\n * It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.\n * @param results\n * @returns\n */\nfunction d1ToRawMapping(results: any) {\n\tconst rows: unknown[][] = [];\n\tfor (const row of results) {\n\t\tconst entry = Object.keys(row).map((k) => row[k]);\n\t\trows.push(entry);\n\t}\n\treturn rows;\n}\n\nexport class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SQLitePreparedQuery<\n\t\t{ type: 'async'; run: D1Response; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'D1PreparedQuery';\n\n\t/** @internal */\n\tfields?: SelectedFieldsOrdered;\n\n\t/** @internal */\n\tstmt: D1PreparedStatement;\n\n\tconstructor(\n\t\tstmt: D1PreparedStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.fields = fields;\n\t\tthis.stmt = stmt;\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<D1Response> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).run();\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results!));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tprivate async allRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\treturn stmt.bind(...params).all().then(({ results }) =>\n\t\t\t(customResultMapper as (rows: Record<string, unknown>[]) => unknown)(results!)\n\t\t);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = d1ToRawMapping((rows as D1Result).results);\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn (this.customResultMapper as (rows: unknown[][]) => unknown)(rows as unknown[][]);\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => results![0]);\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, rows[0], joinsNotNullableMap);\n\t}\n\n\tprivate async getRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tconst { results: rows } = await stmt.bind(...params).all();\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows) as T['get'];\n\t}\n\n\toverride mapGetResult(result: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\tresult = d1ToRawMapping((result as D1Result).results)[0];\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn (this.customResultMapper as (rows: unknown[][]) => unknown)([result as unknown[]]) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(this.fields!, result as unknown[], this.joinsNotNullableMap);\n\t}\n\n\tvalues<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).raw();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["builtQuery"]}