drizzle-orm 0.39.3 → 0.40.0-53e792e

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 (1015) 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-sql/driver.cjs +16 -5
  44. package/bun-sql/driver.cjs.map +1 -1
  45. package/bun-sql/driver.d.cts +7 -6
  46. package/bun-sql/driver.d.ts +7 -6
  47. package/bun-sql/driver.js +6 -8
  48. package/bun-sql/driver.js.map +1 -1
  49. package/bun-sql/migrator.cjs.map +1 -1
  50. package/bun-sql/migrator.d.cts +2 -1
  51. package/bun-sql/migrator.d.ts +2 -1
  52. package/bun-sql/migrator.js.map +1 -1
  53. package/bun-sql/session.cjs +50 -6
  54. package/bun-sql/session.cjs.map +1 -1
  55. package/bun-sql/session.d.cts +14 -9
  56. package/bun-sql/session.d.ts +14 -9
  57. package/bun-sql/session.js +50 -6
  58. package/bun-sql/session.js.map +1 -1
  59. package/bun-sqlite/driver.cjs +22 -5
  60. package/bun-sqlite/driver.cjs.map +1 -1
  61. package/bun-sqlite/driver.d.cts +7 -6
  62. package/bun-sqlite/driver.d.ts +7 -6
  63. package/bun-sqlite/driver.js +12 -8
  64. package/bun-sqlite/driver.js.map +1 -1
  65. package/bun-sqlite/migrator.cjs.map +1 -1
  66. package/bun-sqlite/migrator.d.cts +2 -1
  67. package/bun-sqlite/migrator.d.ts +2 -1
  68. package/bun-sqlite/migrator.js.map +1 -1
  69. package/bun-sqlite/session.cjs +49 -4
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +14 -8
  72. package/bun-sqlite/session.d.ts +14 -8
  73. package/bun-sqlite/session.js +49 -4
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/casing.cjs +3 -0
  76. package/casing.cjs.map +1 -1
  77. package/casing.d.cts +1 -1
  78. package/casing.d.ts +1 -1
  79. package/casing.js +4 -1
  80. package/casing.js.map +1 -1
  81. package/column-builder.cjs.map +1 -1
  82. package/column-builder.d.cts +6 -5
  83. package/column-builder.d.ts +6 -5
  84. package/column-builder.js.map +1 -1
  85. package/d1/driver.cjs +22 -5
  86. package/d1/driver.cjs.map +1 -1
  87. package/d1/driver.d.cts +3 -2
  88. package/d1/driver.d.ts +3 -2
  89. package/d1/driver.js +12 -8
  90. package/d1/driver.js.map +1 -1
  91. package/d1/migrator.cjs.map +1 -1
  92. package/d1/migrator.d.cts +2 -1
  93. package/d1/migrator.d.ts +2 -1
  94. package/d1/migrator.js.map +1 -1
  95. package/d1/session.cjs +50 -8
  96. package/d1/session.cjs.map +1 -1
  97. package/d1/session.d.cts +15 -8
  98. package/d1/session.d.ts +15 -8
  99. package/d1/session.js +50 -8
  100. package/d1/session.js.map +1 -1
  101. package/durable-sqlite/driver.cjs +16 -5
  102. package/durable-sqlite/driver.cjs.map +1 -1
  103. package/durable-sqlite/driver.d.cts +3 -2
  104. package/durable-sqlite/driver.d.ts +3 -2
  105. package/durable-sqlite/driver.js +6 -8
  106. package/durable-sqlite/driver.js.map +1 -1
  107. package/durable-sqlite/migrator.cjs.map +1 -1
  108. package/durable-sqlite/migrator.d.cts +2 -1
  109. package/durable-sqlite/migrator.d.ts +2 -1
  110. package/durable-sqlite/migrator.js.map +1 -1
  111. package/durable-sqlite/session.cjs +46 -4
  112. package/durable-sqlite/session.cjs.map +1 -1
  113. package/durable-sqlite/session.d.cts +14 -8
  114. package/durable-sqlite/session.d.ts +14 -8
  115. package/durable-sqlite/session.js +46 -4
  116. package/durable-sqlite/session.js.map +1 -1
  117. package/expo-sqlite/driver.cjs +22 -5
  118. package/expo-sqlite/driver.cjs.map +1 -1
  119. package/expo-sqlite/driver.d.cts +3 -2
  120. package/expo-sqlite/driver.d.ts +3 -2
  121. package/expo-sqlite/driver.js +12 -8
  122. package/expo-sqlite/driver.js.map +1 -1
  123. package/expo-sqlite/migrator.cjs.map +1 -1
  124. package/expo-sqlite/migrator.d.cts +3 -2
  125. package/expo-sqlite/migrator.d.ts +3 -2
  126. package/expo-sqlite/migrator.js.map +1 -1
  127. package/expo-sqlite/query.cjs +13 -2
  128. package/expo-sqlite/query.cjs.map +1 -1
  129. package/expo-sqlite/query.d.cts +2 -1
  130. package/expo-sqlite/query.d.ts +2 -1
  131. package/expo-sqlite/query.js +3 -2
  132. package/expo-sqlite/query.js.map +1 -1
  133. package/expo-sqlite/session.cjs +47 -4
  134. package/expo-sqlite/session.cjs.map +1 -1
  135. package/expo-sqlite/session.d.cts +14 -8
  136. package/expo-sqlite/session.d.ts +14 -8
  137. package/expo-sqlite/session.js +47 -4
  138. package/expo-sqlite/session.js.map +1 -1
  139. package/gel/driver.cjs +108 -0
  140. package/gel/driver.cjs.map +1 -0
  141. package/gel/driver.d.cts +39 -0
  142. package/gel/driver.d.ts +39 -0
  143. package/gel/driver.js +72 -0
  144. package/gel/driver.js.map +1 -0
  145. package/gel/index.cjs +25 -0
  146. package/gel/index.cjs.map +1 -0
  147. package/gel/index.d.cts +2 -0
  148. package/gel/index.d.ts +2 -0
  149. package/gel/index.js +3 -0
  150. package/gel/index.js.map +1 -0
  151. package/gel/migrator.cjs +5 -0
  152. package/gel/migrator.cjs.map +1 -0
  153. package/gel/migrator.d.cts +1 -0
  154. package/gel/migrator.d.ts +1 -0
  155. package/gel/migrator.js +4 -0
  156. package/gel/migrator.js.map +1 -0
  157. package/gel/session.cjs +181 -0
  158. package/gel/session.cjs.map +1 -0
  159. package/gel/session.d.cts +52 -0
  160. package/gel/session.d.ts +52 -0
  161. package/gel/session.js +155 -0
  162. package/gel/session.js.map +1 -0
  163. package/gel-core/alias.cjs +32 -0
  164. package/gel-core/alias.cjs.map +1 -0
  165. package/gel-core/alias.d.cts +4 -0
  166. package/gel-core/alias.d.ts +4 -0
  167. package/gel-core/alias.js +8 -0
  168. package/gel-core/alias.js.map +1 -0
  169. package/gel-core/checks.cjs +58 -0
  170. package/gel-core/checks.cjs.map +1 -0
  171. package/gel-core/checks.d.cts +18 -0
  172. package/gel-core/checks.d.ts +18 -0
  173. package/gel-core/checks.js +32 -0
  174. package/gel-core/checks.js.map +1 -0
  175. package/gel-core/columns/all.cjs +72 -0
  176. package/gel-core/columns/all.cjs.map +1 -0
  177. package/gel-core/columns/all.d.cts +43 -0
  178. package/gel-core/columns/all.d.ts +43 -0
  179. package/gel-core/columns/all.js +48 -0
  180. package/gel-core/columns/all.js.map +1 -0
  181. package/gel-core/columns/bigint.cjs +54 -0
  182. package/gel-core/columns/bigint.cjs.map +1 -0
  183. package/gel-core/columns/bigint.d.cts +23 -0
  184. package/gel-core/columns/bigint.d.ts +23 -0
  185. package/gel-core/columns/bigint.js +28 -0
  186. package/gel-core/columns/bigint.js.map +1 -0
  187. package/gel-core/columns/bigintT.cjs +60 -0
  188. package/gel-core/columns/bigintT.cjs.map +1 -0
  189. package/gel-core/columns/bigintT.d.cts +24 -0
  190. package/gel-core/columns/bigintT.d.ts +24 -0
  191. package/gel-core/columns/bigintT.js +34 -0
  192. package/gel-core/columns/bigintT.js.map +1 -0
  193. package/gel-core/columns/boolean.cjs +53 -0
  194. package/gel-core/columns/boolean.cjs.map +1 -0
  195. package/gel-core/columns/boolean.d.cts +22 -0
  196. package/gel-core/columns/boolean.d.ts +22 -0
  197. package/gel-core/columns/boolean.js +27 -0
  198. package/gel-core/columns/boolean.js.map +1 -0
  199. package/gel-core/columns/bytes.cjs +56 -0
  200. package/gel-core/columns/bytes.cjs.map +1 -0
  201. package/gel-core/columns/bytes.d.cts +22 -0
  202. package/gel-core/columns/bytes.d.ts +22 -0
  203. package/gel-core/columns/bytes.js +30 -0
  204. package/gel-core/columns/bytes.js.map +1 -0
  205. package/gel-core/columns/common.cjs +213 -0
  206. package/gel-core/columns/common.cjs.map +1 -0
  207. package/gel-core/columns/common.d.cts +147 -0
  208. package/gel-core/columns/common.d.ts +147 -0
  209. package/gel-core/columns/common.js +184 -0
  210. package/gel-core/columns/common.js.map +1 -0
  211. package/gel-core/columns/custom.cjs +77 -0
  212. package/gel-core/columns/custom.cjs.map +1 -0
  213. package/gel-core/columns/custom.d.cts +155 -0
  214. package/gel-core/columns/custom.d.ts +155 -0
  215. package/gel-core/columns/custom.js +51 -0
  216. package/gel-core/columns/custom.js.map +1 -0
  217. package/gel-core/columns/date-duration.cjs +56 -0
  218. package/gel-core/columns/date-duration.cjs.map +1 -0
  219. package/gel-core/columns/date-duration.d.cts +23 -0
  220. package/gel-core/columns/date-duration.d.ts +23 -0
  221. package/gel-core/columns/date-duration.js +30 -0
  222. package/gel-core/columns/date-duration.js.map +1 -0
  223. package/gel-core/columns/date.common.cjs +37 -0
  224. package/gel-core/columns/date.common.cjs.map +1 -0
  225. package/gel-core/columns/date.common.d.cts +7 -0
  226. package/gel-core/columns/date.common.d.ts +7 -0
  227. package/gel-core/columns/date.common.js +13 -0
  228. package/gel-core/columns/date.common.js.map +1 -0
  229. package/gel-core/columns/decimal.cjs +56 -0
  230. package/gel-core/columns/decimal.cjs.map +1 -0
  231. package/gel-core/columns/decimal.d.cts +26 -0
  232. package/gel-core/columns/decimal.d.ts +26 -0
  233. package/gel-core/columns/decimal.js +30 -0
  234. package/gel-core/columns/decimal.js.map +1 -0
  235. package/gel-core/columns/double-precision.cjs +62 -0
  236. package/gel-core/columns/double-precision.cjs.map +1 -0
  237. package/gel-core/columns/double-precision.d.cts +23 -0
  238. package/gel-core/columns/double-precision.d.ts +23 -0
  239. package/gel-core/columns/double-precision.js +36 -0
  240. package/gel-core/columns/double-precision.js.map +1 -0
  241. package/gel-core/columns/duration.cjs +53 -0
  242. package/gel-core/columns/duration.cjs.map +1 -0
  243. package/gel-core/columns/duration.d.cts +23 -0
  244. package/gel-core/columns/duration.d.ts +23 -0
  245. package/gel-core/columns/duration.js +27 -0
  246. package/gel-core/columns/duration.js.map +1 -0
  247. package/gel-core/columns/index.cjs +65 -0
  248. package/gel-core/columns/index.cjs.map +1 -0
  249. package/gel-core/columns/index.d.cts +22 -0
  250. package/gel-core/columns/index.d.ts +22 -0
  251. package/gel-core/columns/index.js +23 -0
  252. package/gel-core/columns/index.js.map +1 -0
  253. package/gel-core/columns/int.common.cjs +67 -0
  254. package/gel-core/columns/int.common.cjs.map +1 -0
  255. package/gel-core/columns/int.common.d.cts +15 -0
  256. package/gel-core/columns/int.common.d.ts +15 -0
  257. package/gel-core/columns/int.common.js +43 -0
  258. package/gel-core/columns/int.common.js.map +1 -0
  259. package/gel-core/columns/integer.cjs +54 -0
  260. package/gel-core/columns/integer.cjs.map +1 -0
  261. package/gel-core/columns/integer.d.cts +23 -0
  262. package/gel-core/columns/integer.d.ts +23 -0
  263. package/gel-core/columns/integer.js +28 -0
  264. package/gel-core/columns/integer.js.map +1 -0
  265. package/gel-core/columns/json.cjs +56 -0
  266. package/gel-core/columns/json.cjs.map +1 -0
  267. package/gel-core/columns/json.d.cts +26 -0
  268. package/gel-core/columns/json.d.ts +26 -0
  269. package/gel-core/columns/json.js +30 -0
  270. package/gel-core/columns/json.js.map +1 -0
  271. package/gel-core/columns/localdate.cjs +57 -0
  272. package/gel-core/columns/localdate.cjs.map +1 -0
  273. package/gel-core/columns/localdate.d.cts +24 -0
  274. package/gel-core/columns/localdate.d.ts +24 -0
  275. package/gel-core/columns/localdate.js +31 -0
  276. package/gel-core/columns/localdate.js.map +1 -0
  277. package/gel-core/columns/localtime.cjs +57 -0
  278. package/gel-core/columns/localtime.cjs.map +1 -0
  279. package/gel-core/columns/localtime.d.cts +24 -0
  280. package/gel-core/columns/localtime.d.ts +24 -0
  281. package/gel-core/columns/localtime.js +31 -0
  282. package/gel-core/columns/localtime.js.map +1 -0
  283. package/gel-core/columns/real.cjs +57 -0
  284. package/gel-core/columns/real.cjs.map +1 -0
  285. package/gel-core/columns/real.d.cts +28 -0
  286. package/gel-core/columns/real.d.ts +28 -0
  287. package/gel-core/columns/real.js +31 -0
  288. package/gel-core/columns/real.js.map +1 -0
  289. package/gel-core/columns/relative-duration.cjs +56 -0
  290. package/gel-core/columns/relative-duration.cjs.map +1 -0
  291. package/gel-core/columns/relative-duration.d.cts +23 -0
  292. package/gel-core/columns/relative-duration.d.ts +23 -0
  293. package/gel-core/columns/relative-duration.js +30 -0
  294. package/gel-core/columns/relative-duration.js.map +1 -0
  295. package/gel-core/columns/smallint.cjs +54 -0
  296. package/gel-core/columns/smallint.cjs.map +1 -0
  297. package/gel-core/columns/smallint.d.cts +23 -0
  298. package/gel-core/columns/smallint.d.ts +23 -0
  299. package/gel-core/columns/smallint.js +28 -0
  300. package/gel-core/columns/smallint.js.map +1 -0
  301. package/gel-core/columns/text.cjs +54 -0
  302. package/gel-core/columns/text.cjs.map +1 -0
  303. package/gel-core/columns/text.d.cts +26 -0
  304. package/gel-core/columns/text.d.ts +26 -0
  305. package/gel-core/columns/text.js +28 -0
  306. package/gel-core/columns/text.js.map +1 -0
  307. package/gel-core/columns/timestamp.cjs +60 -0
  308. package/gel-core/columns/timestamp.cjs.map +1 -0
  309. package/gel-core/columns/timestamp.d.cts +28 -0
  310. package/gel-core/columns/timestamp.d.ts +28 -0
  311. package/gel-core/columns/timestamp.js +34 -0
  312. package/gel-core/columns/timestamp.js.map +1 -0
  313. package/gel-core/columns/timestamptz.cjs +65 -0
  314. package/gel-core/columns/timestamptz.cjs.map +1 -0
  315. package/gel-core/columns/timestamptz.d.cts +28 -0
  316. package/gel-core/columns/timestamptz.d.ts +28 -0
  317. package/gel-core/columns/timestamptz.js +39 -0
  318. package/gel-core/columns/timestamptz.js.map +1 -0
  319. package/gel-core/columns/uuid.cjs +53 -0
  320. package/gel-core/columns/uuid.cjs.map +1 -0
  321. package/gel-core/columns/uuid.d.cts +22 -0
  322. package/gel-core/columns/uuid.d.ts +22 -0
  323. package/gel-core/columns/uuid.js +27 -0
  324. package/gel-core/columns/uuid.js.map +1 -0
  325. package/gel-core/db.cjs +362 -0
  326. package/gel-core/db.cjs.map +1 -0
  327. package/gel-core/db.d.cts +288 -0
  328. package/gel-core/db.d.ts +288 -0
  329. package/gel-core/db.js +343 -0
  330. package/gel-core/db.js.map +1 -0
  331. package/gel-core/dialect.cjs +826 -0
  332. package/gel-core/dialect.cjs.map +1 -0
  333. package/gel-core/dialect.d.cts +80 -0
  334. package/gel-core/dialect.d.ts +80 -0
  335. package/gel-core/dialect.js +803 -0
  336. package/gel-core/dialect.js.map +1 -0
  337. package/gel-core/expressions.cjs +49 -0
  338. package/gel-core/expressions.cjs.map +1 -0
  339. package/gel-core/expressions.d.cts +8 -0
  340. package/gel-core/expressions.d.ts +8 -0
  341. package/gel-core/expressions.js +22 -0
  342. package/gel-core/expressions.js.map +1 -0
  343. package/gel-core/foreign-keys.cjs +100 -0
  344. package/gel-core/foreign-keys.cjs.map +1 -0
  345. package/gel-core/foreign-keys.d.cts +48 -0
  346. package/gel-core/foreign-keys.d.ts +48 -0
  347. package/gel-core/foreign-keys.js +74 -0
  348. package/gel-core/foreign-keys.js.map +1 -0
  349. package/gel-core/index.cjs +61 -0
  350. package/gel-core/index.cjs.map +1 -0
  351. package/gel-core/index.d.cts +20 -0
  352. package/gel-core/index.d.ts +20 -0
  353. package/gel-core/index.js +21 -0
  354. package/gel-core/index.js.map +1 -0
  355. package/gel-core/indexes.cjs +149 -0
  356. package/gel-core/indexes.cjs.map +1 -0
  357. package/gel-core/indexes.d.cts +79 -0
  358. package/gel-core/indexes.d.ts +79 -0
  359. package/gel-core/indexes.js +121 -0
  360. package/gel-core/indexes.js.map +1 -0
  361. package/gel-core/policies.cjs +58 -0
  362. package/gel-core/policies.cjs.map +1 -0
  363. package/gel-core/policies.d.cts +24 -0
  364. package/gel-core/policies.d.ts +24 -0
  365. package/gel-core/policies.js +33 -0
  366. package/gel-core/policies.js.map +1 -0
  367. package/gel-core/primary-keys.cjs +68 -0
  368. package/gel-core/primary-keys.cjs.map +1 -0
  369. package/gel-core/primary-keys.d.cts +30 -0
  370. package/gel-core/primary-keys.d.ts +30 -0
  371. package/gel-core/primary-keys.js +42 -0
  372. package/gel-core/primary-keys.js.map +1 -0
  373. package/gel-core/query-builders/_query.cjs +149 -0
  374. package/gel-core/query-builders/_query.cjs.map +1 -0
  375. package/gel-core/query-builders/_query.d.cts +46 -0
  376. package/gel-core/query-builders/_query.d.ts +46 -0
  377. package/gel-core/query-builders/_query.js +114 -0
  378. package/gel-core/query-builders/_query.js.map +1 -0
  379. package/gel-core/query-builders/count.cjs +73 -0
  380. package/gel-core/query-builders/count.cjs.map +1 -0
  381. package/gel-core/query-builders/count.d.cts +25 -0
  382. package/gel-core/query-builders/count.d.ts +25 -0
  383. package/gel-core/query-builders/count.js +49 -0
  384. package/gel-core/query-builders/count.js.map +1 -0
  385. package/gel-core/query-builders/delete.cjs +105 -0
  386. package/gel-core/query-builders/delete.cjs.map +1 -0
  387. package/gel-core/query-builders/delete.d.cts +99 -0
  388. package/gel-core/query-builders/delete.d.ts +99 -0
  389. package/gel-core/query-builders/delete.js +81 -0
  390. package/gel-core/query-builders/delete.js.map +1 -0
  391. package/gel-core/query-builders/index.cjs +35 -0
  392. package/gel-core/query-builders/index.cjs.map +1 -0
  393. package/gel-core/query-builders/index.d.cts +7 -0
  394. package/gel-core/query-builders/index.d.ts +7 -0
  395. package/gel-core/query-builders/index.js +8 -0
  396. package/gel-core/query-builders/index.js.map +1 -0
  397. package/gel-core/query-builders/insert.cjs +218 -0
  398. package/gel-core/query-builders/insert.cjs.map +1 -0
  399. package/gel-core/query-builders/insert.d.cts +116 -0
  400. package/gel-core/query-builders/insert.d.ts +116 -0
  401. package/gel-core/query-builders/insert.js +193 -0
  402. package/gel-core/query-builders/insert.js.map +1 -0
  403. package/gel-core/query-builders/query-builder.cjs +114 -0
  404. package/gel-core/query-builders/query-builder.cjs.map +1 -0
  405. package/gel-core/query-builders/query-builder.d.cts +40 -0
  406. package/gel-core/query-builders/query-builder.d.ts +40 -0
  407. package/gel-core/query-builders/query-builder.js +90 -0
  408. package/gel-core/query-builders/query-builder.js.map +1 -0
  409. package/gel-core/query-builders/query.cjs +142 -0
  410. package/gel-core/query-builders/query.cjs.map +1 -0
  411. package/gel-core/query-builders/query.d.cts +47 -0
  412. package/gel-core/query-builders/query.d.ts +47 -0
  413. package/gel-core/query-builders/query.js +119 -0
  414. package/gel-core/query-builders/query.js.map +1 -0
  415. package/gel-core/query-builders/raw.cjs +57 -0
  416. package/gel-core/query-builders/raw.cjs.map +1 -0
  417. package/gel-core/query-builders/raw.d.cts +22 -0
  418. package/gel-core/query-builders/raw.d.ts +22 -0
  419. package/gel-core/query-builders/raw.js +33 -0
  420. package/gel-core/query-builders/raw.js.map +1 -0
  421. package/gel-core/query-builders/refresh-materialized-view.cjs +77 -0
  422. package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  423. package/gel-core/query-builders/refresh-materialized-view.d.cts +27 -0
  424. package/gel-core/query-builders/refresh-materialized-view.d.ts +27 -0
  425. package/gel-core/query-builders/refresh-materialized-view.js +53 -0
  426. package/gel-core/query-builders/refresh-materialized-view.js.map +1 -0
  427. package/gel-core/query-builders/select.cjs +775 -0
  428. package/gel-core/query-builders/select.cjs.map +1 -0
  429. package/gel-core/query-builders/select.d.cts +721 -0
  430. package/gel-core/query-builders/select.d.ts +721 -0
  431. package/gel-core/query-builders/select.js +748 -0
  432. package/gel-core/query-builders/select.js.map +1 -0
  433. package/gel-core/query-builders/select.types.cjs +17 -0
  434. package/gel-core/query-builders/select.types.cjs.map +1 -0
  435. package/gel-core/query-builders/select.types.d.cts +138 -0
  436. package/gel-core/query-builders/select.types.d.ts +138 -0
  437. package/gel-core/query-builders/select.types.js +1 -0
  438. package/gel-core/query-builders/select.types.js.map +1 -0
  439. package/gel-core/query-builders/update.cjs +226 -0
  440. package/gel-core/query-builders/update.cjs.map +1 -0
  441. package/gel-core/query-builders/update.d.cts +166 -0
  442. package/gel-core/query-builders/update.d.ts +166 -0
  443. package/gel-core/query-builders/update.js +205 -0
  444. package/gel-core/query-builders/update.js.map +1 -0
  445. package/gel-core/roles.cjs +57 -0
  446. package/gel-core/roles.cjs.map +1 -0
  447. package/gel-core/roles.d.cts +13 -0
  448. package/gel-core/roles.d.ts +13 -0
  449. package/gel-core/roles.js +32 -0
  450. package/gel-core/roles.js.map +1 -0
  451. package/gel-core/schema.cjs +74 -0
  452. package/gel-core/schema.cjs.map +1 -0
  453. package/gel-core/schema.d.cts +15 -0
  454. package/gel-core/schema.d.ts +15 -0
  455. package/gel-core/schema.js +48 -0
  456. package/gel-core/schema.js.map +1 -0
  457. package/gel-core/sequence.cjs +52 -0
  458. package/gel-core/sequence.cjs.map +1 -0
  459. package/gel-core/sequence.d.cts +18 -0
  460. package/gel-core/sequence.d.ts +18 -0
  461. package/gel-core/sequence.js +25 -0
  462. package/gel-core/sequence.js.map +1 -0
  463. package/gel-core/session.cjs +95 -0
  464. package/gel-core/session.cjs.map +1 -0
  465. package/gel-core/session.d.cts +59 -0
  466. package/gel-core/session.d.ts +59 -0
  467. package/gel-core/session.js +69 -0
  468. package/gel-core/session.js.map +1 -0
  469. package/gel-core/subquery.cjs +17 -0
  470. package/gel-core/subquery.cjs.map +1 -0
  471. package/gel-core/subquery.d.cts +5 -0
  472. package/gel-core/subquery.d.ts +5 -0
  473. package/gel-core/subquery.js +1 -0
  474. package/gel-core/subquery.js.map +1 -0
  475. package/gel-core/table.cjs +100 -0
  476. package/gel-core/table.cjs.map +1 -0
  477. package/gel-core/table.d.cts +95 -0
  478. package/gel-core/table.d.ts +95 -0
  479. package/gel-core/table.js +71 -0
  480. package/gel-core/table.js.map +1 -0
  481. package/gel-core/unique-constraint.cjs +89 -0
  482. package/gel-core/unique-constraint.cjs.map +1 -0
  483. package/gel-core/unique-constraint.d.cts +25 -0
  484. package/gel-core/unique-constraint.d.ts +25 -0
  485. package/gel-core/unique-constraint.js +61 -0
  486. package/gel-core/unique-constraint.js.map +1 -0
  487. package/gel-core/utils.cjs +100 -0
  488. package/gel-core/utils.cjs.map +1 -0
  489. package/gel-core/utils.d.cts +51 -0
  490. package/gel-core/utils.d.ts +51 -0
  491. package/gel-core/utils.js +74 -0
  492. package/gel-core/utils.js.map +1 -0
  493. package/gel-core/view-base.cjs +33 -0
  494. package/gel-core/view-base.cjs.map +1 -0
  495. package/gel-core/view-base.d.cts +8 -0
  496. package/gel-core/view-base.d.ts +8 -0
  497. package/gel-core/view-base.js +9 -0
  498. package/gel-core/view-base.js.map +1 -0
  499. package/gel-core/view-common.cjs +29 -0
  500. package/gel-core/view-common.cjs.map +1 -0
  501. package/gel-core/view-common.d.cts +1 -0
  502. package/gel-core/view-common.d.ts +1 -0
  503. package/gel-core/view-common.js +5 -0
  504. package/gel-core/view-common.js.map +1 -0
  505. package/gel-core/view.cjs +302 -0
  506. package/gel-core/view.cjs.map +1 -0
  507. package/gel-core/view.d.cts +150 -0
  508. package/gel-core/view.d.ts +150 -0
  509. package/gel-core/view.js +268 -0
  510. package/gel-core/view.js.map +1 -0
  511. package/libsql/driver-core.cjs +22 -5
  512. package/libsql/driver-core.cjs.map +1 -1
  513. package/libsql/driver-core.d.cts +2 -1
  514. package/libsql/driver-core.d.ts +2 -1
  515. package/libsql/driver-core.js +12 -8
  516. package/libsql/driver-core.js.map +1 -1
  517. package/libsql/driver.cjs.map +1 -1
  518. package/libsql/driver.d.cts +6 -5
  519. package/libsql/driver.d.ts +6 -5
  520. package/libsql/driver.js.map +1 -1
  521. package/libsql/http/index.cjs.map +1 -1
  522. package/libsql/http/index.d.cts +6 -5
  523. package/libsql/http/index.d.ts +6 -5
  524. package/libsql/http/index.js.map +1 -1
  525. package/libsql/migrator.cjs.map +1 -1
  526. package/libsql/migrator.d.cts +2 -1
  527. package/libsql/migrator.d.ts +2 -1
  528. package/libsql/migrator.js.map +1 -1
  529. package/libsql/node/index.cjs.map +1 -1
  530. package/libsql/node/index.d.cts +6 -5
  531. package/libsql/node/index.d.ts +6 -5
  532. package/libsql/node/index.js.map +1 -1
  533. package/libsql/session.cjs +56 -4
  534. package/libsql/session.cjs.map +1 -1
  535. package/libsql/session.d.cts +15 -9
  536. package/libsql/session.d.ts +15 -9
  537. package/libsql/session.js +56 -4
  538. package/libsql/session.js.map +1 -1
  539. package/libsql/sqlite3/index.cjs.map +1 -1
  540. package/libsql/sqlite3/index.d.cts +6 -5
  541. package/libsql/sqlite3/index.d.ts +6 -5
  542. package/libsql/sqlite3/index.js.map +1 -1
  543. package/libsql/wasm/index.cjs.map +1 -1
  544. package/libsql/wasm/index.d.cts +6 -5
  545. package/libsql/wasm/index.d.ts +6 -5
  546. package/libsql/wasm/index.js.map +1 -1
  547. package/libsql/web/index.cjs.map +1 -1
  548. package/libsql/web/index.d.cts +6 -5
  549. package/libsql/web/index.d.ts +6 -5
  550. package/libsql/web/index.js.map +1 -1
  551. package/libsql/ws/index.cjs.map +1 -1
  552. package/libsql/ws/index.d.cts +6 -5
  553. package/libsql/ws/index.d.ts +6 -5
  554. package/libsql/ws/index.js.map +1 -1
  555. package/mysql-core/db.cjs +30 -6
  556. package/mysql-core/db.cjs.map +1 -1
  557. package/mysql-core/db.d.cts +15 -8
  558. package/mysql-core/db.d.ts +15 -8
  559. package/mysql-core/db.js +29 -5
  560. package/mysql-core/db.js.map +1 -1
  561. package/mysql-core/dialect.cjs +198 -15
  562. package/mysql-core/dialect.cjs.map +1 -1
  563. package/mysql-core/dialect.d.cts +36 -13
  564. package/mysql-core/dialect.d.ts +36 -13
  565. package/mysql-core/dialect.js +196 -22
  566. package/mysql-core/dialect.js.map +1 -1
  567. package/mysql-core/query-builders/_query.cjs +149 -0
  568. package/mysql-core/query-builders/_query.cjs.map +1 -0
  569. package/mysql-core/query-builders/_query.d.cts +44 -0
  570. package/mysql-core/query-builders/_query.d.ts +44 -0
  571. package/mysql-core/query-builders/_query.js +114 -0
  572. package/mysql-core/query-builders/_query.js.map +1 -0
  573. package/mysql-core/query-builders/count.cjs.map +1 -1
  574. package/mysql-core/query-builders/count.d.cts +1 -1
  575. package/mysql-core/query-builders/count.d.ts +1 -1
  576. package/mysql-core/query-builders/count.js.map +1 -1
  577. package/mysql-core/query-builders/query.cjs +18 -31
  578. package/mysql-core/query-builders/query.cjs.map +1 -1
  579. package/mysql-core/query-builders/query.d.cts +8 -10
  580. package/mysql-core/query-builders/query.d.ts +8 -10
  581. package/mysql-core/query-builders/query.js +18 -31
  582. package/mysql-core/query-builders/query.js.map +1 -1
  583. package/mysql-core/session.cjs +3 -2
  584. package/mysql-core/session.cjs.map +1 -1
  585. package/mysql-core/session.d.cts +10 -7
  586. package/mysql-core/session.d.ts +10 -7
  587. package/mysql-core/session.js +3 -2
  588. package/mysql-core/session.js.map +1 -1
  589. package/mysql-proxy/driver.cjs +22 -5
  590. package/mysql-proxy/driver.cjs.map +1 -1
  591. package/mysql-proxy/driver.d.cts +3 -2
  592. package/mysql-proxy/driver.d.ts +3 -2
  593. package/mysql-proxy/driver.js +12 -8
  594. package/mysql-proxy/driver.js.map +1 -1
  595. package/mysql-proxy/migrator.cjs.map +1 -1
  596. package/mysql-proxy/migrator.d.cts +2 -1
  597. package/mysql-proxy/migrator.d.ts +2 -1
  598. package/mysql-proxy/migrator.js.map +1 -1
  599. package/mysql-proxy/session.cjs +27 -2
  600. package/mysql-proxy/session.cjs.map +1 -1
  601. package/mysql-proxy/session.d.cts +13 -8
  602. package/mysql-proxy/session.d.ts +13 -8
  603. package/mysql-proxy/session.js +27 -2
  604. package/mysql-proxy/session.js.map +1 -1
  605. package/mysql2/driver.cjs +24 -7
  606. package/mysql2/driver.cjs.map +1 -1
  607. package/mysql2/driver.d.cts +10 -9
  608. package/mysql2/driver.d.ts +10 -9
  609. package/mysql2/driver.js +14 -10
  610. package/mysql2/driver.js.map +1 -1
  611. package/mysql2/migrator.cjs.map +1 -1
  612. package/mysql2/migrator.d.cts +2 -1
  613. package/mysql2/migrator.d.ts +2 -1
  614. package/mysql2/migrator.js.map +1 -1
  615. package/mysql2/session.cjs +30 -2
  616. package/mysql2/session.cjs.map +1 -1
  617. package/mysql2/session.d.cts +13 -8
  618. package/mysql2/session.d.ts +13 -8
  619. package/mysql2/session.js +30 -2
  620. package/mysql2/session.js.map +1 -1
  621. package/neon-http/driver.cjs +21 -7
  622. package/neon-http/driver.cjs.map +1 -1
  623. package/neon-http/driver.d.cts +10 -9
  624. package/neon-http/driver.d.ts +10 -9
  625. package/neon-http/driver.js +11 -7
  626. package/neon-http/driver.js.map +1 -1
  627. package/neon-http/migrator.cjs.map +1 -1
  628. package/neon-http/migrator.d.cts +2 -1
  629. package/neon-http/migrator.d.ts +2 -1
  630. package/neon-http/migrator.js.map +1 -1
  631. package/neon-http/session.cjs +32 -2
  632. package/neon-http/session.cjs.map +1 -1
  633. package/neon-http/session.d.cts +13 -8
  634. package/neon-http/session.d.ts +13 -8
  635. package/neon-http/session.js +32 -2
  636. package/neon-http/session.js.map +1 -1
  637. package/neon-serverless/driver.cjs +18 -7
  638. package/neon-serverless/driver.cjs.map +1 -1
  639. package/neon-serverless/driver.d.cts +9 -8
  640. package/neon-serverless/driver.d.ts +9 -8
  641. package/neon-serverless/driver.js +8 -10
  642. package/neon-serverless/driver.js.map +1 -1
  643. package/neon-serverless/migrator.cjs.map +1 -1
  644. package/neon-serverless/migrator.d.cts +2 -1
  645. package/neon-serverless/migrator.d.ts +2 -1
  646. package/neon-serverless/migrator.js.map +1 -1
  647. package/neon-serverless/session.cjs +40 -5
  648. package/neon-serverless/session.cjs.map +1 -1
  649. package/neon-serverless/session.d.cts +13 -8
  650. package/neon-serverless/session.d.ts +13 -8
  651. package/neon-serverless/session.js +40 -5
  652. package/neon-serverless/session.js.map +1 -1
  653. package/node-postgres/driver.cjs +13 -7
  654. package/node-postgres/driver.cjs.map +1 -1
  655. package/node-postgres/driver.d.cts +9 -8
  656. package/node-postgres/driver.d.ts +9 -8
  657. package/node-postgres/driver.js +13 -10
  658. package/node-postgres/driver.js.map +1 -1
  659. package/node-postgres/migrator.cjs.map +1 -1
  660. package/node-postgres/migrator.d.cts +2 -1
  661. package/node-postgres/migrator.d.ts +2 -1
  662. package/node-postgres/migrator.js.map +1 -1
  663. package/node-postgres/session.cjs +45 -4
  664. package/node-postgres/session.cjs.map +1 -1
  665. package/node-postgres/session.d.cts +13 -8
  666. package/node-postgres/session.d.ts +13 -8
  667. package/node-postgres/session.js +45 -4
  668. package/node-postgres/session.js.map +1 -1
  669. package/op-sqlite/driver.cjs +22 -5
  670. package/op-sqlite/driver.cjs.map +1 -1
  671. package/op-sqlite/driver.d.cts +3 -2
  672. package/op-sqlite/driver.d.ts +3 -2
  673. package/op-sqlite/driver.js +12 -8
  674. package/op-sqlite/driver.js.map +1 -1
  675. package/op-sqlite/migrator.cjs.map +1 -1
  676. package/op-sqlite/migrator.d.cts +3 -2
  677. package/op-sqlite/migrator.d.ts +3 -2
  678. package/op-sqlite/migrator.js.map +1 -1
  679. package/op-sqlite/session.cjs +47 -4
  680. package/op-sqlite/session.cjs.map +1 -1
  681. package/op-sqlite/session.d.cts +14 -8
  682. package/op-sqlite/session.d.ts +14 -8
  683. package/op-sqlite/session.js +47 -4
  684. package/op-sqlite/session.js.map +1 -1
  685. package/package.json +801 -4
  686. package/pg-core/db.cjs +32 -5
  687. package/pg-core/db.cjs.map +1 -1
  688. package/pg-core/db.d.cts +16 -9
  689. package/pg-core/db.d.ts +16 -9
  690. package/pg-core/db.js +31 -4
  691. package/pg-core/db.js.map +1 -1
  692. package/pg-core/dialect.cjs +176 -488
  693. package/pg-core/dialect.cjs.map +1 -1
  694. package/pg-core/dialect.d.cts +27 -8
  695. package/pg-core/dialect.d.ts +27 -8
  696. package/pg-core/dialect.js +174 -495
  697. package/pg-core/dialect.js.map +1 -1
  698. package/pg-core/query-builders/_query.cjs +155 -0
  699. package/pg-core/query-builders/_query.cjs.map +1 -0
  700. package/pg-core/query-builders/_query.d.cts +47 -0
  701. package/pg-core/query-builders/_query.d.ts +47 -0
  702. package/pg-core/query-builders/_query.js +120 -0
  703. package/pg-core/query-builders/_query.js.map +1 -0
  704. package/pg-core/query-builders/count.cjs.map +1 -1
  705. package/pg-core/query-builders/count.d.cts +1 -1
  706. package/pg-core/query-builders/count.d.ts +1 -1
  707. package/pg-core/query-builders/count.js.map +1 -1
  708. package/pg-core/query-builders/query.cjs +15 -18
  709. package/pg-core/query-builders/query.cjs.map +1 -1
  710. package/pg-core/query-builders/query.d.cts +6 -6
  711. package/pg-core/query-builders/query.d.ts +6 -6
  712. package/pg-core/query-builders/query.js +15 -18
  713. package/pg-core/query-builders/query.js.map +1 -1
  714. package/pg-core/session.cjs +3 -2
  715. package/pg-core/session.cjs.map +1 -1
  716. package/pg-core/session.d.cts +9 -6
  717. package/pg-core/session.d.ts +9 -6
  718. package/pg-core/session.js +3 -2
  719. package/pg-core/session.js.map +1 -1
  720. package/pg-core/table.cjs +2 -0
  721. package/pg-core/table.cjs.map +1 -1
  722. package/pg-core/table.js +2 -0
  723. package/pg-core/table.js.map +1 -1
  724. package/pg-proxy/driver.cjs +21 -5
  725. package/pg-proxy/driver.cjs.map +1 -1
  726. package/pg-proxy/driver.d.cts +3 -2
  727. package/pg-proxy/driver.d.ts +3 -2
  728. package/pg-proxy/driver.js +11 -8
  729. package/pg-proxy/driver.js.map +1 -1
  730. package/pg-proxy/migrator.cjs.map +1 -1
  731. package/pg-proxy/migrator.d.cts +2 -1
  732. package/pg-proxy/migrator.d.ts +2 -1
  733. package/pg-proxy/migrator.js.map +1 -1
  734. package/pg-proxy/session.cjs +37 -2
  735. package/pg-proxy/session.cjs.map +1 -1
  736. package/pg-proxy/session.d.cts +13 -8
  737. package/pg-proxy/session.d.ts +13 -8
  738. package/pg-proxy/session.js +37 -2
  739. package/pg-proxy/session.js.map +1 -1
  740. package/pglite/driver.cjs +23 -7
  741. package/pglite/driver.cjs.map +1 -1
  742. package/pglite/driver.d.cts +9 -8
  743. package/pglite/driver.d.ts +9 -8
  744. package/pglite/driver.js +13 -10
  745. package/pglite/driver.js.map +1 -1
  746. package/pglite/migrator.cjs.map +1 -1
  747. package/pglite/migrator.d.cts +2 -1
  748. package/pglite/migrator.d.ts +2 -1
  749. package/pglite/migrator.js.map +1 -1
  750. package/pglite/session.cjs +34 -3
  751. package/pglite/session.cjs.map +1 -1
  752. package/pglite/session.d.cts +13 -8
  753. package/pglite/session.d.ts +13 -8
  754. package/pglite/session.js +34 -3
  755. package/pglite/session.js.map +1 -1
  756. package/planetscale-serverless/driver.cjs +22 -5
  757. package/planetscale-serverless/driver.cjs.map +1 -1
  758. package/planetscale-serverless/driver.d.cts +7 -6
  759. package/planetscale-serverless/driver.d.ts +7 -6
  760. package/planetscale-serverless/driver.js +12 -8
  761. package/planetscale-serverless/driver.js.map +1 -1
  762. package/planetscale-serverless/migrator.cjs.map +1 -1
  763. package/planetscale-serverless/migrator.d.cts +2 -1
  764. package/planetscale-serverless/migrator.d.ts +2 -1
  765. package/planetscale-serverless/migrator.js.map +1 -1
  766. package/planetscale-serverless/session.cjs +45 -5
  767. package/planetscale-serverless/session.cjs.map +1 -1
  768. package/planetscale-serverless/session.d.cts +14 -9
  769. package/planetscale-serverless/session.d.ts +14 -9
  770. package/planetscale-serverless/session.js +45 -5
  771. package/planetscale-serverless/session.js.map +1 -1
  772. package/postgres-js/driver.cjs +6 -5
  773. package/postgres-js/driver.cjs.map +1 -1
  774. package/postgres-js/driver.d.cts +7 -6
  775. package/postgres-js/driver.d.ts +7 -6
  776. package/postgres-js/driver.js +6 -8
  777. package/postgres-js/driver.js.map +1 -1
  778. package/postgres-js/migrator.cjs.map +1 -1
  779. package/postgres-js/migrator.d.cts +2 -1
  780. package/postgres-js/migrator.d.ts +2 -1
  781. package/postgres-js/migrator.js.map +1 -1
  782. package/postgres-js/session.cjs +51 -6
  783. package/postgres-js/session.cjs.map +1 -1
  784. package/postgres-js/session.d.cts +15 -9
  785. package/postgres-js/session.d.ts +15 -9
  786. package/postgres-js/session.js +51 -6
  787. package/postgres-js/session.js.map +1 -1
  788. package/prisma/mysql/driver.cjs +1 -1
  789. package/prisma/mysql/driver.cjs.map +1 -1
  790. package/prisma/mysql/driver.js +1 -1
  791. package/prisma/mysql/driver.js.map +1 -1
  792. package/prisma/mysql/session.cjs +3 -0
  793. package/prisma/mysql/session.cjs.map +1 -1
  794. package/prisma/mysql/session.d.cts +3 -1
  795. package/prisma/mysql/session.d.ts +3 -1
  796. package/prisma/mysql/session.js +3 -0
  797. package/prisma/mysql/session.js.map +1 -1
  798. package/prisma/pg/driver.cjs +1 -1
  799. package/prisma/pg/driver.cjs.map +1 -1
  800. package/prisma/pg/driver.js +1 -1
  801. package/prisma/pg/driver.js.map +1 -1
  802. package/prisma/pg/session.cjs +3 -0
  803. package/prisma/pg/session.cjs.map +1 -1
  804. package/prisma/pg/session.d.cts +3 -1
  805. package/prisma/pg/session.d.ts +3 -1
  806. package/prisma/pg/session.js +3 -0
  807. package/prisma/pg/session.js.map +1 -1
  808. package/prisma/sqlite/driver.cjs +1 -1
  809. package/prisma/sqlite/driver.cjs.map +1 -1
  810. package/prisma/sqlite/driver.js +1 -1
  811. package/prisma/sqlite/driver.js.map +1 -1
  812. package/prisma/sqlite/session.cjs +3 -0
  813. package/prisma/sqlite/session.cjs.map +1 -1
  814. package/prisma/sqlite/session.d.cts +4 -2
  815. package/prisma/sqlite/session.d.ts +4 -2
  816. package/prisma/sqlite/session.js +3 -0
  817. package/prisma/sqlite/session.js.map +1 -1
  818. package/relations.cjs +657 -245
  819. package/relations.cjs.map +1 -1
  820. package/relations.d.cts +339 -140
  821. package/relations.d.ts +339 -140
  822. package/relations.js +643 -240
  823. package/relations.js.map +1 -1
  824. package/singlestore/driver.cjs +1 -1
  825. package/singlestore/driver.cjs.map +1 -1
  826. package/singlestore/driver.d.cts +1 -1
  827. package/singlestore/driver.d.ts +1 -1
  828. package/singlestore/driver.js +3 -3
  829. package/singlestore/driver.js.map +1 -1
  830. package/singlestore/session.cjs.map +1 -1
  831. package/singlestore/session.d.cts +4 -4
  832. package/singlestore/session.d.ts +4 -4
  833. package/singlestore/session.js.map +1 -1
  834. package/singlestore-core/db.cjs.map +1 -1
  835. package/singlestore-core/db.d.cts +3 -3
  836. package/singlestore-core/db.d.ts +3 -3
  837. package/singlestore-core/db.js.map +1 -1
  838. package/singlestore-core/dialect.cjs +16 -6
  839. package/singlestore-core/dialect.cjs.map +1 -1
  840. package/singlestore-core/dialect.d.cts +6 -6
  841. package/singlestore-core/dialect.d.ts +6 -6
  842. package/singlestore-core/dialect.js +6 -12
  843. package/singlestore-core/dialect.js.map +1 -1
  844. package/singlestore-core/query-builders/query.cjs +12 -2
  845. package/singlestore-core/query-builders/query.cjs.map +1 -1
  846. package/singlestore-core/query-builders/query.d.cts +6 -6
  847. package/singlestore-core/query-builders/query.d.ts +6 -6
  848. package/singlestore-core/query-builders/query.js +2 -4
  849. package/singlestore-core/query-builders/query.js.map +1 -1
  850. package/singlestore-core/session.cjs.map +1 -1
  851. package/singlestore-core/session.d.cts +5 -5
  852. package/singlestore-core/session.d.ts +5 -5
  853. package/singlestore-core/session.js.map +1 -1
  854. package/singlestore-proxy/driver.cjs +1 -1
  855. package/singlestore-proxy/driver.cjs.map +1 -1
  856. package/singlestore-proxy/driver.js +3 -3
  857. package/singlestore-proxy/driver.js.map +1 -1
  858. package/singlestore-proxy/session.cjs.map +1 -1
  859. package/singlestore-proxy/session.d.cts +4 -4
  860. package/singlestore-proxy/session.d.ts +4 -4
  861. package/singlestore-proxy/session.js.map +1 -1
  862. package/sql/expressions/conditions.cjs.map +1 -1
  863. package/sql/expressions/conditions.d.cts +4 -4
  864. package/sql/expressions/conditions.d.ts +4 -4
  865. package/sql/expressions/conditions.js.map +1 -1
  866. package/sql/sql.cjs +21 -0
  867. package/sql/sql.cjs.map +1 -1
  868. package/sql/sql.d.cts +8 -8
  869. package/sql/sql.d.ts +8 -8
  870. package/sql/sql.js +22 -1
  871. package/sql/sql.js.map +1 -1
  872. package/sql-js/driver.cjs +16 -5
  873. package/sql-js/driver.cjs.map +1 -1
  874. package/sql-js/driver.d.cts +3 -2
  875. package/sql-js/driver.d.ts +3 -2
  876. package/sql-js/driver.js +6 -8
  877. package/sql-js/driver.js.map +1 -1
  878. package/sql-js/migrator.cjs.map +1 -1
  879. package/sql-js/migrator.d.cts +2 -1
  880. package/sql-js/migrator.d.ts +2 -1
  881. package/sql-js/migrator.js.map +1 -1
  882. package/sql-js/session.cjs +71 -36
  883. package/sql-js/session.cjs.map +1 -1
  884. package/sql-js/session.d.cts +16 -13
  885. package/sql-js/session.d.ts +16 -13
  886. package/sql-js/session.js +71 -36
  887. package/sql-js/session.js.map +1 -1
  888. package/sqlite-core/db.cjs +39 -12
  889. package/sqlite-core/db.cjs.map +1 -1
  890. package/sqlite-core/db.d.cts +16 -8
  891. package/sqlite-core/db.d.ts +16 -8
  892. package/sqlite-core/db.js +38 -11
  893. package/sqlite-core/db.js.map +1 -1
  894. package/sqlite-core/dialect.cjs +187 -7
  895. package/sqlite-core/dialect.cjs.map +1 -1
  896. package/sqlite-core/dialect.d.cts +31 -9
  897. package/sqlite-core/dialect.d.ts +31 -9
  898. package/sqlite-core/dialect.js +185 -14
  899. package/sqlite-core/dialect.js.map +1 -1
  900. package/sqlite-core/query-builders/_query.cjs +187 -0
  901. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  902. package/sqlite-core/query-builders/_query.d.cts +55 -0
  903. package/sqlite-core/query-builders/_query.d.ts +55 -0
  904. package/sqlite-core/query-builders/_query.js +151 -0
  905. package/sqlite-core/query-builders/_query.js.map +1 -0
  906. package/sqlite-core/query-builders/count.cjs.map +1 -1
  907. package/sqlite-core/query-builders/count.d.cts +1 -1
  908. package/sqlite-core/query-builders/count.d.ts +1 -1
  909. package/sqlite-core/query-builders/count.js.map +1 -1
  910. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  911. package/sqlite-core/query-builders/delete.d.cts +1 -1
  912. package/sqlite-core/query-builders/delete.d.ts +1 -1
  913. package/sqlite-core/query-builders/delete.js.map +1 -1
  914. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  915. package/sqlite-core/query-builders/insert.d.cts +3 -3
  916. package/sqlite-core/query-builders/insert.d.ts +3 -3
  917. package/sqlite-core/query-builders/insert.js.map +1 -1
  918. package/sqlite-core/query-builders/query.cjs +56 -35
  919. package/sqlite-core/query-builders/query.cjs.map +1 -1
  920. package/sqlite-core/query-builders/query.d.cts +18 -17
  921. package/sqlite-core/query-builders/query.d.ts +18 -17
  922. package/sqlite-core/query-builders/query.js +56 -35
  923. package/sqlite-core/query-builders/query.js.map +1 -1
  924. package/sqlite-core/query-builders/select.cjs.map +1 -1
  925. package/sqlite-core/query-builders/select.d.cts +3 -3
  926. package/sqlite-core/query-builders/select.d.ts +3 -3
  927. package/sqlite-core/query-builders/select.js.map +1 -1
  928. package/sqlite-core/query-builders/update.cjs.map +1 -1
  929. package/sqlite-core/query-builders/update.d.cts +3 -3
  930. package/sqlite-core/query-builders/update.d.ts +3 -3
  931. package/sqlite-core/query-builders/update.js.map +1 -1
  932. package/sqlite-core/session.cjs +6 -2
  933. package/sqlite-core/session.cjs.map +1 -1
  934. package/sqlite-core/session.d.cts +15 -7
  935. package/sqlite-core/session.d.ts +15 -7
  936. package/sqlite-core/session.js +6 -2
  937. package/sqlite-core/session.js.map +1 -1
  938. package/sqlite-proxy/driver.cjs +23 -5
  939. package/sqlite-proxy/driver.cjs.map +1 -1
  940. package/sqlite-proxy/driver.d.cts +4 -3
  941. package/sqlite-proxy/driver.d.ts +4 -3
  942. package/sqlite-proxy/driver.js +13 -5
  943. package/sqlite-proxy/driver.js.map +1 -1
  944. package/sqlite-proxy/migrator.cjs.map +1 -1
  945. package/sqlite-proxy/migrator.d.cts +2 -1
  946. package/sqlite-proxy/migrator.d.ts +2 -1
  947. package/sqlite-proxy/migrator.js.map +1 -1
  948. package/sqlite-proxy/session.cjs +50 -6
  949. package/sqlite-proxy/session.cjs.map +1 -1
  950. package/sqlite-proxy/session.d.cts +14 -8
  951. package/sqlite-proxy/session.d.ts +14 -8
  952. package/sqlite-proxy/session.js +50 -6
  953. package/sqlite-proxy/session.js.map +1 -1
  954. package/table.cjs.map +1 -1
  955. package/table.d.cts +2 -2
  956. package/table.d.ts +2 -2
  957. package/table.js.map +1 -1
  958. package/tidb-serverless/driver.cjs +22 -5
  959. package/tidb-serverless/driver.cjs.map +1 -1
  960. package/tidb-serverless/driver.d.cts +7 -6
  961. package/tidb-serverless/driver.d.ts +7 -6
  962. package/tidb-serverless/driver.js +12 -8
  963. package/tidb-serverless/driver.js.map +1 -1
  964. package/tidb-serverless/migrator.cjs.map +1 -1
  965. package/tidb-serverless/migrator.d.cts +2 -1
  966. package/tidb-serverless/migrator.d.ts +2 -1
  967. package/tidb-serverless/migrator.js.map +1 -1
  968. package/tidb-serverless/session.cjs +62 -5
  969. package/tidb-serverless/session.cjs.map +1 -1
  970. package/tidb-serverless/session.d.cts +14 -9
  971. package/tidb-serverless/session.d.ts +14 -9
  972. package/tidb-serverless/session.js +62 -5
  973. package/tidb-serverless/session.js.map +1 -1
  974. package/utils.cjs +2 -2
  975. package/utils.cjs.map +1 -1
  976. package/utils.d.cts +3 -1
  977. package/utils.d.ts +3 -1
  978. package/utils.js +2 -2
  979. package/utils.js.map +1 -1
  980. package/vercel-postgres/driver.cjs +23 -7
  981. package/vercel-postgres/driver.cjs.map +1 -1
  982. package/vercel-postgres/driver.d.cts +9 -8
  983. package/vercel-postgres/driver.d.ts +9 -8
  984. package/vercel-postgres/driver.js +13 -10
  985. package/vercel-postgres/driver.js.map +1 -1
  986. package/vercel-postgres/migrator.cjs.map +1 -1
  987. package/vercel-postgres/migrator.d.cts +2 -1
  988. package/vercel-postgres/migrator.d.ts +2 -1
  989. package/vercel-postgres/migrator.js.map +1 -1
  990. package/vercel-postgres/session.cjs +34 -4
  991. package/vercel-postgres/session.cjs.map +1 -1
  992. package/vercel-postgres/session.d.cts +13 -8
  993. package/vercel-postgres/session.d.ts +13 -8
  994. package/vercel-postgres/session.js +34 -4
  995. package/vercel-postgres/session.js.map +1 -1
  996. package/version.cjs +1 -1
  997. package/version.d.cts +1 -1
  998. package/version.d.ts +1 -1
  999. package/version.js +1 -1
  1000. package/xata-http/driver.cjs +17 -5
  1001. package/xata-http/driver.cjs.map +1 -1
  1002. package/xata-http/driver.d.cts +5 -4
  1003. package/xata-http/driver.d.ts +5 -4
  1004. package/xata-http/driver.js +7 -5
  1005. package/xata-http/driver.js.map +1 -1
  1006. package/xata-http/migrator.cjs.map +1 -1
  1007. package/xata-http/migrator.d.cts +2 -1
  1008. package/xata-http/migrator.d.ts +2 -1
  1009. package/xata-http/migrator.js.map +1 -1
  1010. package/xata-http/session.cjs +30 -2
  1011. package/xata-http/session.cjs.map +1 -1
  1012. package/xata-http/session.d.cts +13 -8
  1013. package/xata-http/session.d.ts +13 -8
  1014. package/xata-http/session.js +30 -2
  1015. package/xata-http/session.js.map +1 -1
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,9 +169,17 @@ 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
- rows = d1ToRawMapping(rows.results);
182
+ rows = this.isRqbV2Query ? rows.results : d1ToRawMapping(rows.results);
153
183
  }
154
184
  if (!this.fields && !this.customResultMapper) {
155
185
  return rows;
@@ -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,9 +207,19 @@ 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
- result = d1ToRawMapping(result.results)[0];
222
+ result = this.isRqbV2Query ? result.results[0] : d1ToRawMapping(result.results)[0];
181
223
  }
182
224
  if (!this.fields && !this.customResultMapper) {
183
225
  return result;
@@ -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 = this.isRqbV2Query ? (rows as D1Result).results : 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 = this.isRqbV2Query ? (result as D1Result).results[0] : 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"]}
package/d1/session.d.cts CHANGED
@@ -1,7 +1,8 @@
1
+ import type * as V1 from "../_relations.cjs";
1
2
  import type { BatchItem } from "../batch.cjs";
2
3
  import { entityKind } from "../entity.cjs";
3
4
  import type { Logger } from "../logger.cjs";
4
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
5
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
5
6
  import { type Query } from "../sql/sql.cjs";
6
7
  import type { SQLiteAsyncDialect } from "../sqlite-core/dialect.cjs";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.cjs";
@@ -12,25 +13,27 @@ export interface SQLiteD1SessionOptions {
12
13
  logger?: Logger;
13
14
  }
14
15
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
15
- export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {
16
+ export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', D1Result, TFullSchema, TRelations, TTablesConfig, TSchema> {
16
17
  private client;
18
+ private relations;
17
19
  private schema;
18
20
  private options;
19
21
  static readonly [entityKind]: string;
20
22
  private logger;
21
- constructor(client: D1Database, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
23
+ constructor(client: D1Database, dialect: SQLiteAsyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
22
24
  prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): D1PreparedQuery;
25
+ prepareRelationalQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: Record<string, unknown>[]) => unknown): D1PreparedQuery<PreparedQueryConfig, true>;
23
26
  batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
24
27
  extractRawAllValueFromBatchResult(result: unknown): unknown;
25
28
  extractRawGetValueFromBatchResult(result: unknown): unknown;
26
29
  extractRawValuesValueFromBatchResult(result: unknown): unknown;
27
- transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
30
+ transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
28
31
  }
29
- export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {
32
+ export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TRelations, TTablesConfig, TSchema> {
30
33
  static readonly [entityKind]: string;
31
- transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
34
+ transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
32
35
  }
33
- export declare class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
36
+ export declare class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
34
37
  type: 'async';
35
38
  run: D1Response;
36
39
  all: T['all'];
@@ -40,12 +43,16 @@ export declare class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQue
40
43
  }> {
41
44
  private logger;
42
45
  private _isResponseInArrayMode;
46
+ private customResultMapper?;
47
+ private isRqbV2Query?;
43
48
  static readonly [entityKind]: string;
44
- constructor(stmt: D1PreparedStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown);
49
+ constructor(stmt: D1PreparedStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
45
50
  run(placeholderValues?: Record<string, unknown>): Promise<D1Response>;
46
51
  all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
52
+ private allRqbV2;
47
53
  mapAllResult(rows: unknown, isFromBatch?: boolean): unknown;
48
54
  get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
55
+ private getRqbV2;
49
56
  mapGetResult(result: unknown, isFromBatch?: boolean): unknown;
50
57
  values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]>;
51
58
  }
package/d1/session.d.ts CHANGED
@@ -1,7 +1,8 @@
1
+ import type * as V1 from "../_relations.js";
1
2
  import type { BatchItem } from "../batch.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import type { Logger } from "../logger.js";
4
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
5
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.js";
5
6
  import { type Query } from "../sql/sql.js";
6
7
  import type { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.js";
@@ -12,25 +13,27 @@ export interface SQLiteD1SessionOptions {
12
13
  logger?: Logger;
13
14
  }
14
15
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
15
- export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {
16
+ export declare class SQLiteD1Session<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', D1Result, TFullSchema, TRelations, TTablesConfig, TSchema> {
16
17
  private client;
18
+ private relations;
17
19
  private schema;
18
20
  private options;
19
21
  static readonly [entityKind]: string;
20
22
  private logger;
21
- constructor(client: D1Database, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
23
+ constructor(client: D1Database, dialect: SQLiteAsyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteD1SessionOptions);
22
24
  prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): D1PreparedQuery;
25
+ prepareRelationalQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: Record<string, unknown>[]) => unknown): D1PreparedQuery<PreparedQueryConfig, true>;
23
26
  batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
24
27
  extractRawAllValueFromBatchResult(result: unknown): unknown;
25
28
  extractRawGetValueFromBatchResult(result: unknown): unknown;
26
29
  extractRawValuesValueFromBatchResult(result: unknown): unknown;
27
- transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
30
+ transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
28
31
  }
29
- export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {
32
+ export declare class D1Transaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', D1Result, TFullSchema, TRelations, TTablesConfig, TSchema> {
30
33
  static readonly [entityKind]: string;
31
- transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
34
+ transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
32
35
  }
33
- export declare class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
36
+ export declare class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
34
37
  type: 'async';
35
38
  run: D1Response;
36
39
  all: T['all'];
@@ -40,12 +43,16 @@ export declare class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQue
40
43
  }> {
41
44
  private logger;
42
45
  private _isResponseInArrayMode;
46
+ private customResultMapper?;
47
+ private isRqbV2Query?;
43
48
  static readonly [entityKind]: string;
44
- constructor(stmt: D1PreparedStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown);
49
+ constructor(stmt: D1PreparedStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
45
50
  run(placeholderValues?: Record<string, unknown>): Promise<D1Response>;
46
51
  all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
52
+ private allRqbV2;
47
53
  mapAllResult(rows: unknown, isFromBatch?: boolean): unknown;
48
54
  get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
55
+ private getRqbV2;
49
56
  mapGetResult(result: unknown, isFromBatch?: boolean): unknown;
50
57
  values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]>;
51
58
  }
package/d1/session.js CHANGED
@@ -5,9 +5,10 @@ import { SQLiteTransaction } from "../sqlite-core/index.js";
5
5
  import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.js";
6
6
  import { mapResultRow } from "../utils.js";
7
7
  class SQLiteD1Session extends SQLiteSession {
8
- constructor(client, dialect, schema, options = {}) {
8
+ constructor(client, dialect, relations, schema, options = {}) {
9
9
  super(dialect);
10
10
  this.client = client;
11
+ this.relations = relations;
11
12
  this.schema = schema;
12
13
  this.options = options;
13
14
  this.logger = options.logger ?? new NoopLogger();
@@ -26,6 +27,19 @@ class SQLiteD1Session extends SQLiteSession {
26
27
  customResultMapper
27
28
  );
28
29
  }
30
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
31
+ const stmt = this.client.prepare(query.sql);
32
+ return new D1PreparedQuery(
33
+ stmt,
34
+ query,
35
+ this.logger,
36
+ fields,
37
+ executeMethod,
38
+ false,
39
+ customResultMapper,
40
+ true
41
+ );
42
+ }
29
43
  async batch(queries) {
30
44
  const preparedQueries = [];
31
45
  const builtQueries = [];
@@ -55,7 +69,7 @@ class SQLiteD1Session extends SQLiteSession {
55
69
  return d1ToRawMapping(result.results);
56
70
  }
57
71
  async transaction(transaction, config) {
58
- const tx = new D1Transaction("async", this.dialect, this, this.schema);
72
+ const tx = new D1Transaction("async", this.dialect, this, this.relations, this.schema);
59
73
  await this.run(sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
60
74
  try {
61
75
  const result = await transaction(tx);
@@ -71,7 +85,14 @@ class D1Transaction extends SQLiteTransaction {
71
85
  static [entityKind] = "D1Transaction";
72
86
  async transaction(transaction) {
73
87
  const savepointName = `sp${this.nestedIndex}`;
74
- const tx = new D1Transaction("async", this.dialect, this.session, this.schema, this.nestedIndex + 1);
88
+ const tx = new D1Transaction(
89
+ "async",
90
+ this.dialect,
91
+ this.session,
92
+ this.relations,
93
+ this.schema,
94
+ this.nestedIndex + 1
95
+ );
75
96
  await this.session.run(sql.raw(`savepoint ${savepointName}`));
76
97
  try {
77
98
  const result = await transaction(tx);
@@ -92,18 +113,17 @@ function d1ToRawMapping(results) {
92
113
  return rows;
93
114
  }
94
115
  class D1PreparedQuery extends SQLitePreparedQuery {
95
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
116
+ constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
96
117
  super("async", executeMethod, query);
97
118
  this.logger = logger;
98
119
  this._isResponseInArrayMode = _isResponseInArrayMode;
99
120
  this.customResultMapper = customResultMapper;
121
+ this.isRqbV2Query = isRqbV2Query;
100
122
  this.fields = fields;
101
123
  this.stmt = stmt;
102
124
  }
103
125
  static [entityKind] = "D1PreparedQuery";
104
126
  /** @internal */
105
- customResultMapper;
106
- /** @internal */
107
127
  fields;
108
128
  /** @internal */
109
129
  stmt;
@@ -113,6 +133,8 @@ class D1PreparedQuery extends SQLitePreparedQuery {
113
133
  return this.stmt.bind(...params).run();
114
134
  }
115
135
  async all(placeholderValues) {
136
+ if (this.isRqbV2Query)
137
+ return this.allRqbV2(placeholderValues);
116
138
  const { fields, query, logger, stmt, customResultMapper } = this;
117
139
  if (!fields && !customResultMapper) {
118
140
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
@@ -122,9 +144,17 @@ class D1PreparedQuery extends SQLitePreparedQuery {
122
144
  const rows = await this.values(placeholderValues);
123
145
  return this.mapAllResult(rows);
124
146
  }
147
+ async allRqbV2(placeholderValues) {
148
+ const { query, logger, stmt, customResultMapper } = this;
149
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
150
+ logger.logQuery(query.sql, params);
151
+ return stmt.bind(...params).all().then(
152
+ ({ results }) => customResultMapper(results)
153
+ );
154
+ }
125
155
  mapAllResult(rows, isFromBatch) {
126
156
  if (isFromBatch) {
127
- rows = d1ToRawMapping(rows.results);
157
+ rows = this.isRqbV2Query ? rows.results : d1ToRawMapping(rows.results);
128
158
  }
129
159
  if (!this.fields && !this.customResultMapper) {
130
160
  return rows;
@@ -135,6 +165,8 @@ class D1PreparedQuery extends SQLitePreparedQuery {
135
165
  return rows.map((row) => mapResultRow(this.fields, row, this.joinsNotNullableMap));
136
166
  }
137
167
  async get(placeholderValues) {
168
+ if (this.isRqbV2Query)
169
+ return this.getRqbV2(placeholderValues);
138
170
  const { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;
139
171
  if (!fields && !customResultMapper) {
140
172
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
@@ -150,9 +182,19 @@ class D1PreparedQuery extends SQLitePreparedQuery {
150
182
  }
151
183
  return mapResultRow(fields, rows[0], joinsNotNullableMap);
152
184
  }
185
+ async getRqbV2(placeholderValues) {
186
+ const { query, logger, stmt, customResultMapper } = this;
187
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
188
+ logger.logQuery(query.sql, params);
189
+ const { results: rows } = await stmt.bind(...params).all();
190
+ if (!rows[0]) {
191
+ return void 0;
192
+ }
193
+ return customResultMapper(rows);
194
+ }
153
195
  mapGetResult(result, isFromBatch) {
154
196
  if (isFromBatch) {
155
- result = d1ToRawMapping(result.results)[0];
197
+ result = this.isRqbV2Query ? result.results[0] : d1ToRawMapping(result.results)[0];
156
198
  }
157
199
  if (!this.fields && !this.customResultMapper) {
158
200
  return result;