drizzle-orm 0.36.4 → 0.37.0-7c72529

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 (501) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +4 -3
  3. package/column-builder.d.ts +4 -3
  4. package/column-builder.js.map +1 -1
  5. package/durable-sqlite/driver.cjs +64 -0
  6. package/durable-sqlite/driver.cjs.map +1 -0
  7. package/durable-sqlite/driver.d.cts +9 -0
  8. package/durable-sqlite/driver.d.ts +9 -0
  9. package/durable-sqlite/driver.js +42 -0
  10. package/durable-sqlite/driver.js.map +1 -0
  11. package/durable-sqlite/index.cjs +25 -0
  12. package/durable-sqlite/index.cjs.map +1 -0
  13. package/durable-sqlite/index.d.cts +2 -0
  14. package/durable-sqlite/index.d.ts +2 -0
  15. package/durable-sqlite/index.js +3 -0
  16. package/durable-sqlite/index.js.map +1 -0
  17. package/durable-sqlite/migrator.cjs +85 -0
  18. package/durable-sqlite/migrator.cjs.map +1 -0
  19. package/durable-sqlite/migrator.d.cts +14 -0
  20. package/durable-sqlite/migrator.d.ts +14 -0
  21. package/durable-sqlite/migrator.js +61 -0
  22. package/durable-sqlite/migrator.js.map +1 -0
  23. package/durable-sqlite/session.cjs +131 -0
  24. package/durable-sqlite/session.cjs.map +1 -0
  25. package/durable-sqlite/session.d.cts +46 -0
  26. package/durable-sqlite/session.d.ts +46 -0
  27. package/durable-sqlite/session.js +107 -0
  28. package/durable-sqlite/session.js.map +1 -0
  29. package/mysql-core/dialect.cjs +18 -3
  30. package/mysql-core/dialect.cjs.map +1 -1
  31. package/mysql-core/dialect.d.cts +2 -1
  32. package/mysql-core/dialect.d.ts +2 -1
  33. package/mysql-core/dialect.js +18 -3
  34. package/mysql-core/dialect.js.map +1 -1
  35. package/mysql-core/query-builders/select.cjs +84 -8
  36. package/mysql-core/query-builders/select.cjs.map +1 -1
  37. package/mysql-core/query-builders/select.d.cts +55 -3
  38. package/mysql-core/query-builders/select.d.ts +55 -3
  39. package/mysql-core/query-builders/select.js +82 -6
  40. package/mysql-core/query-builders/select.js.map +1 -1
  41. package/mysql-core/query-builders/select.types.cjs.map +1 -1
  42. package/mysql-core/query-builders/select.types.d.cts +8 -2
  43. package/mysql-core/query-builders/select.types.d.ts +8 -2
  44. package/mysql-core/utils.cjs +14 -0
  45. package/mysql-core/utils.cjs.map +1 -1
  46. package/mysql-core/utils.d.cts +7 -3
  47. package/mysql-core/utils.d.ts +7 -3
  48. package/mysql-core/utils.js +13 -0
  49. package/mysql-core/utils.js.map +1 -1
  50. package/mysql-core/view.cjs.map +1 -1
  51. package/mysql-core/view.d.cts +2 -3
  52. package/mysql-core/view.d.ts +2 -3
  53. package/mysql-core/view.js.map +1 -1
  54. package/neon-http/driver.cjs +1 -1
  55. package/neon-http/driver.cjs.map +1 -1
  56. package/neon-http/driver.d.cts +2 -2
  57. package/neon-http/driver.d.ts +2 -2
  58. package/neon-http/driver.js +1 -1
  59. package/neon-http/driver.js.map +1 -1
  60. package/neon-http/session.cjs.map +1 -1
  61. package/neon-http/session.js.map +1 -1
  62. package/package.json +784 -3
  63. package/pg-core/db.cjs +4 -2
  64. package/pg-core/db.cjs.map +1 -1
  65. package/pg-core/db.d.cts +2 -2
  66. package/pg-core/db.d.ts +2 -2
  67. package/pg-core/db.js +4 -2
  68. package/pg-core/db.js.map +1 -1
  69. package/pg-core/query-builders/count.cjs +1 -0
  70. package/pg-core/query-builders/count.cjs.map +1 -1
  71. package/pg-core/query-builders/count.d.cts +2 -1
  72. package/pg-core/query-builders/count.d.ts +2 -1
  73. package/pg-core/query-builders/count.js +1 -0
  74. package/pg-core/query-builders/count.js.map +1 -1
  75. package/pg-core/query-builders/delete.cjs.map +1 -1
  76. package/pg-core/query-builders/delete.js.map +1 -1
  77. package/pg-core/query-builders/insert.cjs +1 -9
  78. package/pg-core/query-builders/insert.cjs.map +1 -1
  79. package/pg-core/query-builders/insert.js +1 -9
  80. package/pg-core/query-builders/insert.js.map +1 -1
  81. package/pg-core/query-builders/query.cjs.map +1 -1
  82. package/pg-core/query-builders/query.js.map +1 -1
  83. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  84. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  85. package/pg-core/query-builders/select.cjs +2 -10
  86. package/pg-core/query-builders/select.cjs.map +1 -1
  87. package/pg-core/query-builders/select.js +8 -11
  88. package/pg-core/query-builders/select.js.map +1 -1
  89. package/pg-core/query-builders/update.cjs +1 -7
  90. package/pg-core/query-builders/update.cjs.map +1 -1
  91. package/pg-core/query-builders/update.d.cts +2 -2
  92. package/pg-core/query-builders/update.d.ts +2 -2
  93. package/pg-core/query-builders/update.js +6 -8
  94. package/pg-core/query-builders/update.js.map +1 -1
  95. package/pg-core/session.cjs.map +1 -1
  96. package/pg-core/session.d.cts +2 -1
  97. package/pg-core/session.d.ts +2 -1
  98. package/pg-core/session.js.map +1 -1
  99. package/pg-core/utils.d.cts +2 -3
  100. package/pg-core/utils.d.ts +2 -3
  101. package/pg-core/view.cjs.map +1 -1
  102. package/pg-core/view.d.cts +4 -5
  103. package/pg-core/view.d.ts +4 -5
  104. package/pg-core/view.js.map +1 -1
  105. package/query-builders/select.types.cjs.map +1 -1
  106. package/query-builders/select.types.d.cts +2 -2
  107. package/query-builders/select.types.d.ts +2 -2
  108. package/singlestore/driver.cjs +113 -0
  109. package/singlestore/driver.cjs.map +1 -0
  110. package/singlestore/driver.d.cts +52 -0
  111. package/singlestore/driver.d.ts +52 -0
  112. package/singlestore/driver.js +89 -0
  113. package/singlestore/driver.js.map +1 -0
  114. package/singlestore/index.cjs +25 -0
  115. package/singlestore/index.cjs.map +1 -0
  116. package/singlestore/index.d.cts +2 -0
  117. package/singlestore/index.d.ts +2 -0
  118. package/singlestore/index.js +3 -0
  119. package/singlestore/index.js.map +1 -0
  120. package/singlestore/migrator.cjs +33 -0
  121. package/singlestore/migrator.cjs.map +1 -0
  122. package/singlestore/migrator.d.cts +3 -0
  123. package/singlestore/migrator.d.ts +3 -0
  124. package/singlestore/migrator.js +9 -0
  125. package/singlestore/migrator.js.map +1 -0
  126. package/singlestore/session.cjs +258 -0
  127. package/singlestore/session.cjs.map +1 -0
  128. package/singlestore/session.d.cts +52 -0
  129. package/singlestore/session.d.ts +52 -0
  130. package/singlestore/session.js +236 -0
  131. package/singlestore/session.js.map +1 -0
  132. package/singlestore-core/alias.cjs +32 -0
  133. package/singlestore-core/alias.cjs.map +1 -0
  134. package/singlestore-core/alias.d.cts +4 -0
  135. package/singlestore-core/alias.d.ts +4 -0
  136. package/singlestore-core/alias.js +8 -0
  137. package/singlestore-core/alias.js.map +1 -0
  138. package/singlestore-core/columns/all.cjs +80 -0
  139. package/singlestore-core/columns/all.cjs.map +1 -0
  140. package/singlestore-core/columns/all.d.cts +51 -0
  141. package/singlestore-core/columns/all.d.ts +51 -0
  142. package/singlestore-core/columns/all.js +56 -0
  143. package/singlestore-core/columns/all.js.map +1 -0
  144. package/singlestore-core/columns/bigint.cjs +96 -0
  145. package/singlestore-core/columns/bigint.cjs.map +1 -0
  146. package/singlestore-core/columns/bigint.d.cts +54 -0
  147. package/singlestore-core/columns/bigint.d.ts +54 -0
  148. package/singlestore-core/columns/bigint.js +68 -0
  149. package/singlestore-core/columns/bigint.js.map +1 -0
  150. package/singlestore-core/columns/binary.cjs +60 -0
  151. package/singlestore-core/columns/binary.cjs.map +1 -0
  152. package/singlestore-core/columns/binary.d.cts +28 -0
  153. package/singlestore-core/columns/binary.d.ts +28 -0
  154. package/singlestore-core/columns/binary.js +34 -0
  155. package/singlestore-core/columns/binary.js.map +1 -0
  156. package/singlestore-core/columns/boolean.cjs +62 -0
  157. package/singlestore-core/columns/boolean.cjs.map +1 -0
  158. package/singlestore-core/columns/boolean.d.cts +24 -0
  159. package/singlestore-core/columns/boolean.d.ts +24 -0
  160. package/singlestore-core/columns/boolean.js +36 -0
  161. package/singlestore-core/columns/boolean.js.map +1 -0
  162. package/singlestore-core/columns/char.cjs +62 -0
  163. package/singlestore-core/columns/char.cjs.map +1 -0
  164. package/singlestore-core/columns/char.d.cts +31 -0
  165. package/singlestore-core/columns/char.d.ts +31 -0
  166. package/singlestore-core/columns/char.js +36 -0
  167. package/singlestore-core/columns/char.js.map +1 -0
  168. package/singlestore-core/columns/common.cjs +82 -0
  169. package/singlestore-core/columns/common.cjs.map +1 -0
  170. package/singlestore-core/columns/common.d.cts +42 -0
  171. package/singlestore-core/columns/common.d.ts +42 -0
  172. package/singlestore-core/columns/common.js +55 -0
  173. package/singlestore-core/columns/common.js.map +1 -0
  174. package/singlestore-core/columns/custom.cjs +77 -0
  175. package/singlestore-core/columns/custom.cjs.map +1 -0
  176. package/singlestore-core/columns/custom.d.cts +156 -0
  177. package/singlestore-core/columns/custom.d.ts +156 -0
  178. package/singlestore-core/columns/custom.js +51 -0
  179. package/singlestore-core/columns/custom.js.map +1 -0
  180. package/singlestore-core/columns/date.cjs +93 -0
  181. package/singlestore-core/columns/date.cjs.map +1 -0
  182. package/singlestore-core/columns/date.common.cjs +48 -0
  183. package/singlestore-core/columns/date.common.cjs.map +1 -0
  184. package/singlestore-core/columns/date.common.d.cts +16 -0
  185. package/singlestore-core/columns/date.common.d.ts +16 -0
  186. package/singlestore-core/columns/date.common.js +23 -0
  187. package/singlestore-core/columns/date.common.js.map +1 -0
  188. package/singlestore-core/columns/date.d.cts +53 -0
  189. package/singlestore-core/columns/date.d.ts +53 -0
  190. package/singlestore-core/columns/date.js +65 -0
  191. package/singlestore-core/columns/date.js.map +1 -0
  192. package/singlestore-core/columns/datetime.cjs +106 -0
  193. package/singlestore-core/columns/datetime.cjs.map +1 -0
  194. package/singlestore-core/columns/datetime.d.cts +54 -0
  195. package/singlestore-core/columns/datetime.d.ts +54 -0
  196. package/singlestore-core/columns/datetime.js +78 -0
  197. package/singlestore-core/columns/datetime.js.map +1 -0
  198. package/singlestore-core/columns/decimal.cjs +76 -0
  199. package/singlestore-core/columns/decimal.cjs.map +1 -0
  200. package/singlestore-core/columns/decimal.d.cts +32 -0
  201. package/singlestore-core/columns/decimal.d.ts +32 -0
  202. package/singlestore-core/columns/decimal.js +50 -0
  203. package/singlestore-core/columns/decimal.js.map +1 -0
  204. package/singlestore-core/columns/double.cjs +72 -0
  205. package/singlestore-core/columns/double.cjs.map +1 -0
  206. package/singlestore-core/columns/double.d.cts +32 -0
  207. package/singlestore-core/columns/double.d.ts +32 -0
  208. package/singlestore-core/columns/double.js +46 -0
  209. package/singlestore-core/columns/double.js.map +1 -0
  210. package/singlestore-core/columns/enum.cjs +67 -0
  211. package/singlestore-core/columns/enum.cjs.map +1 -0
  212. package/singlestore-core/columns/enum.d.cts +31 -0
  213. package/singlestore-core/columns/enum.d.ts +31 -0
  214. package/singlestore-core/columns/enum.js +41 -0
  215. package/singlestore-core/columns/enum.js.map +1 -0
  216. package/singlestore-core/columns/float.cjs +72 -0
  217. package/singlestore-core/columns/float.cjs.map +1 -0
  218. package/singlestore-core/columns/float.d.cts +32 -0
  219. package/singlestore-core/columns/float.d.ts +32 -0
  220. package/singlestore-core/columns/float.js +46 -0
  221. package/singlestore-core/columns/float.js.map +1 -0
  222. package/singlestore-core/columns/index.cjs +71 -0
  223. package/singlestore-core/columns/index.cjs.map +1 -0
  224. package/singlestore-core/columns/index.d.cts +25 -0
  225. package/singlestore-core/columns/index.d.ts +25 -0
  226. package/singlestore-core/columns/index.js +26 -0
  227. package/singlestore-core/columns/index.js.map +1 -0
  228. package/singlestore-core/columns/int.cjs +65 -0
  229. package/singlestore-core/columns/int.cjs.map +1 -0
  230. package/singlestore-core/columns/int.d.cts +28 -0
  231. package/singlestore-core/columns/int.d.ts +28 -0
  232. package/singlestore-core/columns/int.js +39 -0
  233. package/singlestore-core/columns/int.js.map +1 -0
  234. package/singlestore-core/columns/json.cjs +59 -0
  235. package/singlestore-core/columns/json.cjs.map +1 -0
  236. package/singlestore-core/columns/json.d.cts +24 -0
  237. package/singlestore-core/columns/json.d.ts +24 -0
  238. package/singlestore-core/columns/json.js +33 -0
  239. package/singlestore-core/columns/json.js.map +1 -0
  240. package/singlestore-core/columns/mediumint.cjs +65 -0
  241. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  242. package/singlestore-core/columns/mediumint.d.cts +26 -0
  243. package/singlestore-core/columns/mediumint.d.ts +26 -0
  244. package/singlestore-core/columns/mediumint.js +39 -0
  245. package/singlestore-core/columns/mediumint.js.map +1 -0
  246. package/singlestore-core/columns/real.cjs +68 -0
  247. package/singlestore-core/columns/real.cjs.map +1 -0
  248. package/singlestore-core/columns/real.d.cts +30 -0
  249. package/singlestore-core/columns/real.d.ts +30 -0
  250. package/singlestore-core/columns/real.js +42 -0
  251. package/singlestore-core/columns/real.js.map +1 -0
  252. package/singlestore-core/columns/serial.cjs +64 -0
  253. package/singlestore-core/columns/serial.cjs.map +1 -0
  254. package/singlestore-core/columns/serial.d.cts +24 -0
  255. package/singlestore-core/columns/serial.d.ts +24 -0
  256. package/singlestore-core/columns/serial.js +38 -0
  257. package/singlestore-core/columns/serial.js.map +1 -0
  258. package/singlestore-core/columns/smallint.cjs +65 -0
  259. package/singlestore-core/columns/smallint.cjs.map +1 -0
  260. package/singlestore-core/columns/smallint.d.cts +26 -0
  261. package/singlestore-core/columns/smallint.d.ts +26 -0
  262. package/singlestore-core/columns/smallint.js +39 -0
  263. package/singlestore-core/columns/smallint.js.map +1 -0
  264. package/singlestore-core/columns/text.cjs +80 -0
  265. package/singlestore-core/columns/text.cjs.map +1 -0
  266. package/singlestore-core/columns/text.d.cts +46 -0
  267. package/singlestore-core/columns/text.d.ts +46 -0
  268. package/singlestore-core/columns/text.js +51 -0
  269. package/singlestore-core/columns/text.js.map +1 -0
  270. package/singlestore-core/columns/time.cjs +56 -0
  271. package/singlestore-core/columns/time.cjs.map +1 -0
  272. package/singlestore-core/columns/time.d.cts +23 -0
  273. package/singlestore-core/columns/time.d.ts +23 -0
  274. package/singlestore-core/columns/time.js +30 -0
  275. package/singlestore-core/columns/time.js.map +1 -0
  276. package/singlestore-core/columns/timestamp.cjs +97 -0
  277. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  278. package/singlestore-core/columns/timestamp.d.cts +49 -0
  279. package/singlestore-core/columns/timestamp.d.ts +49 -0
  280. package/singlestore-core/columns/timestamp.js +69 -0
  281. package/singlestore-core/columns/timestamp.js.map +1 -0
  282. package/singlestore-core/columns/tinyint.cjs +65 -0
  283. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  284. package/singlestore-core/columns/tinyint.d.cts +26 -0
  285. package/singlestore-core/columns/tinyint.d.ts +26 -0
  286. package/singlestore-core/columns/tinyint.js +39 -0
  287. package/singlestore-core/columns/tinyint.js.map +1 -0
  288. package/singlestore-core/columns/varbinary.cjs +61 -0
  289. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  290. package/singlestore-core/columns/varbinary.d.cts +26 -0
  291. package/singlestore-core/columns/varbinary.d.ts +26 -0
  292. package/singlestore-core/columns/varbinary.js +35 -0
  293. package/singlestore-core/columns/varbinary.js.map +1 -0
  294. package/singlestore-core/columns/varchar.cjs +63 -0
  295. package/singlestore-core/columns/varchar.cjs.map +1 -0
  296. package/singlestore-core/columns/varchar.d.cts +29 -0
  297. package/singlestore-core/columns/varchar.d.ts +29 -0
  298. package/singlestore-core/columns/varchar.js +37 -0
  299. package/singlestore-core/columns/varchar.js.map +1 -0
  300. package/singlestore-core/columns/year.cjs +56 -0
  301. package/singlestore-core/columns/year.cjs.map +1 -0
  302. package/singlestore-core/columns/year.d.cts +23 -0
  303. package/singlestore-core/columns/year.d.ts +23 -0
  304. package/singlestore-core/columns/year.js +30 -0
  305. package/singlestore-core/columns/year.js.map +1 -0
  306. package/singlestore-core/db.cjs +261 -0
  307. package/singlestore-core/db.cjs.map +1 -0
  308. package/singlestore-core/db.d.cts +231 -0
  309. package/singlestore-core/db.d.ts +231 -0
  310. package/singlestore-core/db.js +242 -0
  311. package/singlestore-core/db.js.map +1 -0
  312. package/singlestore-core/dialect.cjs +607 -0
  313. package/singlestore-core/dialect.cjs.map +1 -0
  314. package/singlestore-core/dialect.d.cts +64 -0
  315. package/singlestore-core/dialect.d.ts +64 -0
  316. package/singlestore-core/dialect.js +589 -0
  317. package/singlestore-core/dialect.js.map +1 -0
  318. package/singlestore-core/expressions.cjs +49 -0
  319. package/singlestore-core/expressions.cjs.map +1 -0
  320. package/singlestore-core/expressions.d.cts +8 -0
  321. package/singlestore-core/expressions.d.ts +8 -0
  322. package/singlestore-core/expressions.js +22 -0
  323. package/singlestore-core/expressions.js.map +1 -0
  324. package/singlestore-core/index.cjs +47 -0
  325. package/singlestore-core/index.cjs.map +1 -0
  326. package/singlestore-core/index.d.cts +13 -0
  327. package/singlestore-core/index.d.ts +13 -0
  328. package/singlestore-core/index.js +14 -0
  329. package/singlestore-core/index.js.map +1 -0
  330. package/singlestore-core/indexes.cjs +88 -0
  331. package/singlestore-core/indexes.cjs.map +1 -0
  332. package/singlestore-core/indexes.d.cts +62 -0
  333. package/singlestore-core/indexes.d.ts +62 -0
  334. package/singlestore-core/indexes.js +60 -0
  335. package/singlestore-core/indexes.js.map +1 -0
  336. package/singlestore-core/primary-keys.cjs +68 -0
  337. package/singlestore-core/primary-keys.cjs.map +1 -0
  338. package/singlestore-core/primary-keys.d.cts +30 -0
  339. package/singlestore-core/primary-keys.d.ts +30 -0
  340. package/singlestore-core/primary-keys.js +42 -0
  341. package/singlestore-core/primary-keys.js.map +1 -0
  342. package/singlestore-core/query-builders/count.cjs +73 -0
  343. package/singlestore-core/query-builders/count.cjs.map +1 -0
  344. package/singlestore-core/query-builders/count.d.cts +25 -0
  345. package/singlestore-core/query-builders/count.d.ts +25 -0
  346. package/singlestore-core/query-builders/count.js +49 -0
  347. package/singlestore-core/query-builders/count.js.map +1 -0
  348. package/singlestore-core/query-builders/delete.cjs +123 -0
  349. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  350. package/singlestore-core/query-builders/delete.d.cts +83 -0
  351. package/singlestore-core/query-builders/delete.d.ts +83 -0
  352. package/singlestore-core/query-builders/delete.js +99 -0
  353. package/singlestore-core/query-builders/delete.js.map +1 -0
  354. package/singlestore-core/query-builders/index.cjs +33 -0
  355. package/singlestore-core/query-builders/index.cjs.map +1 -0
  356. package/singlestore-core/query-builders/index.d.cts +6 -0
  357. package/singlestore-core/query-builders/index.d.ts +6 -0
  358. package/singlestore-core/query-builders/index.js +7 -0
  359. package/singlestore-core/query-builders/index.js.map +1 -0
  360. package/singlestore-core/query-builders/insert.cjs +146 -0
  361. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  362. package/singlestore-core/query-builders/insert.d.cts +106 -0
  363. package/singlestore-core/query-builders/insert.d.ts +106 -0
  364. package/singlestore-core/query-builders/insert.js +121 -0
  365. package/singlestore-core/query-builders/insert.js.map +1 -0
  366. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  367. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  368. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  369. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  370. package/singlestore-core/query-builders/query-builder.js +75 -0
  371. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  372. package/singlestore-core/query-builders/query.cjs +126 -0
  373. package/singlestore-core/query-builders/query.cjs.map +1 -0
  374. package/singlestore-core/query-builders/query.d.cts +42 -0
  375. package/singlestore-core/query-builders/query.d.ts +42 -0
  376. package/singlestore-core/query-builders/query.js +103 -0
  377. package/singlestore-core/query-builders/query.js.map +1 -0
  378. package/singlestore-core/query-builders/select.cjs +687 -0
  379. package/singlestore-core/query-builders/select.cjs.map +1 -0
  380. package/singlestore-core/query-builders/select.d.cts +585 -0
  381. package/singlestore-core/query-builders/select.d.ts +585 -0
  382. package/singlestore-core/query-builders/select.js +662 -0
  383. package/singlestore-core/query-builders/select.js.map +1 -0
  384. package/singlestore-core/query-builders/select.types.cjs +17 -0
  385. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  386. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  387. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  388. package/singlestore-core/query-builders/select.types.js +1 -0
  389. package/singlestore-core/query-builders/select.types.js.map +1 -0
  390. package/singlestore-core/query-builders/update.cjs +147 -0
  391. package/singlestore-core/query-builders/update.cjs.map +1 -0
  392. package/singlestore-core/query-builders/update.d.cts +102 -0
  393. package/singlestore-core/query-builders/update.d.ts +102 -0
  394. package/singlestore-core/query-builders/update.js +122 -0
  395. package/singlestore-core/query-builders/update.js.map +1 -0
  396. package/singlestore-core/schema.cjs +56 -0
  397. package/singlestore-core/schema.cjs.map +1 -0
  398. package/singlestore-core/schema.d.cts +22 -0
  399. package/singlestore-core/schema.d.ts +22 -0
  400. package/singlestore-core/schema.js +29 -0
  401. package/singlestore-core/schema.js.map +1 -0
  402. package/singlestore-core/session.cjs +87 -0
  403. package/singlestore-core/session.cjs.map +1 -0
  404. package/singlestore-core/session.d.cts +66 -0
  405. package/singlestore-core/session.d.ts +66 -0
  406. package/singlestore-core/session.js +61 -0
  407. package/singlestore-core/session.js.map +1 -0
  408. package/singlestore-core/subquery.cjs +17 -0
  409. package/singlestore-core/subquery.cjs.map +1 -0
  410. package/singlestore-core/subquery.d.cts +5 -0
  411. package/singlestore-core/subquery.d.ts +5 -0
  412. package/singlestore-core/subquery.js +1 -0
  413. package/singlestore-core/subquery.js.map +1 -0
  414. package/singlestore-core/table.cjs +73 -0
  415. package/singlestore-core/table.cjs.map +1 -0
  416. package/singlestore-core/table.d.cts +40 -0
  417. package/singlestore-core/table.d.ts +40 -0
  418. package/singlestore-core/table.js +46 -0
  419. package/singlestore-core/table.js.map +1 -0
  420. package/singlestore-core/unique-constraint.cjs +82 -0
  421. package/singlestore-core/unique-constraint.cjs.map +1 -0
  422. package/singlestore-core/unique-constraint.d.cts +24 -0
  423. package/singlestore-core/unique-constraint.d.ts +24 -0
  424. package/singlestore-core/unique-constraint.js +54 -0
  425. package/singlestore-core/unique-constraint.js.map +1 -0
  426. package/singlestore-core/utils.cjs +65 -0
  427. package/singlestore-core/utils.cjs.map +1 -0
  428. package/singlestore-core/utils.d.cts +13 -0
  429. package/singlestore-core/utils.d.ts +13 -0
  430. package/singlestore-core/utils.js +41 -0
  431. package/singlestore-core/utils.js.map +1 -0
  432. package/singlestore-core/view-base.cjs +33 -0
  433. package/singlestore-core/view-base.cjs.map +1 -0
  434. package/singlestore-core/view-base.d.cts +9 -0
  435. package/singlestore-core/view-base.d.ts +9 -0
  436. package/singlestore-core/view-base.js +9 -0
  437. package/singlestore-core/view-base.js.map +1 -0
  438. package/singlestore-core/view-common.cjs +29 -0
  439. package/singlestore-core/view-common.cjs.map +1 -0
  440. package/singlestore-core/view-common.d.cts +1 -0
  441. package/singlestore-core/view-common.d.ts +1 -0
  442. package/singlestore-core/view-common.js +5 -0
  443. package/singlestore-core/view-common.js.map +1 -0
  444. package/singlestore-core/view.cjs +146 -0
  445. package/singlestore-core/view.cjs.map +1 -0
  446. package/singlestore-core/view.d.cts +65 -0
  447. package/singlestore-core/view.d.ts +65 -0
  448. package/singlestore-core/view.js +119 -0
  449. package/singlestore-core/view.js.map +1 -0
  450. package/singlestore-proxy/driver.cjs +62 -0
  451. package/singlestore-proxy/driver.cjs.map +1 -0
  452. package/singlestore-proxy/driver.d.cts +13 -0
  453. package/singlestore-proxy/driver.d.ts +13 -0
  454. package/singlestore-proxy/driver.js +42 -0
  455. package/singlestore-proxy/driver.js.map +1 -0
  456. package/singlestore-proxy/index.cjs +25 -0
  457. package/singlestore-proxy/index.cjs.map +1 -0
  458. package/singlestore-proxy/index.d.cts +2 -0
  459. package/singlestore-proxy/index.d.ts +2 -0
  460. package/singlestore-proxy/index.js +3 -0
  461. package/singlestore-proxy/index.js.map +1 -0
  462. package/singlestore-proxy/migrator.cjs +60 -0
  463. package/singlestore-proxy/migrator.cjs.map +1 -0
  464. package/singlestore-proxy/migrator.d.cts +4 -0
  465. package/singlestore-proxy/migrator.d.ts +4 -0
  466. package/singlestore-proxy/migrator.js +36 -0
  467. package/singlestore-proxy/migrator.js.map +1 -0
  468. package/singlestore-proxy/session.cjs +127 -0
  469. package/singlestore-proxy/session.cjs.map +1 -0
  470. package/singlestore-proxy/session.d.cts +50 -0
  471. package/singlestore-proxy/session.d.ts +50 -0
  472. package/singlestore-proxy/session.js +101 -0
  473. package/singlestore-proxy/session.js.map +1 -0
  474. package/sql/sql.cjs +8 -0
  475. package/sql/sql.cjs.map +1 -1
  476. package/sql/sql.d.cts +10 -2
  477. package/sql/sql.d.ts +10 -2
  478. package/sql/sql.js +7 -0
  479. package/sql/sql.js.map +1 -1
  480. package/sqlite-core/columns/blob.cjs +16 -2
  481. package/sqlite-core/columns/blob.cjs.map +1 -1
  482. package/sqlite-core/columns/blob.d.cts +2 -2
  483. package/sqlite-core/columns/blob.d.ts +2 -2
  484. package/sqlite-core/columns/blob.js +16 -2
  485. package/sqlite-core/columns/blob.js.map +1 -1
  486. package/sqlite-core/utils.d.cts +1 -2
  487. package/sqlite-core/utils.d.ts +1 -2
  488. package/sqlite-core/view.cjs.map +1 -1
  489. package/sqlite-core/view.d.cts +2 -3
  490. package/sqlite-core/view.d.ts +2 -3
  491. package/sqlite-core/view.js.map +1 -1
  492. package/utils.cjs +5 -0
  493. package/utils.cjs.map +1 -1
  494. package/utils.d.cts +3 -1
  495. package/utils.d.ts +3 -1
  496. package/utils.js +4 -0
  497. package/utils.js.map +1 -1
  498. package/version.cjs +1 -1
  499. package/version.d.cts +1 -1
  500. package/version.d.ts +1 -1
  501. package/version.js +1 -1
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var session_exports = {};
20
+ __export(session_exports, {
21
+ SQLiteDOPreparedQuery: () => SQLiteDOPreparedQuery,
22
+ SQLiteDOSession: () => SQLiteDOSession,
23
+ SQLiteDOTransaction: () => SQLiteDOTransaction
24
+ });
25
+ module.exports = __toCommonJS(session_exports);
26
+ var import_entity = require("../entity.cjs");
27
+ var import_logger = require("../logger.cjs");
28
+ var import_sql = require("../sql/sql.cjs");
29
+ var import_sqlite_core = require("../sqlite-core/index.cjs");
30
+ var import_session = require("../sqlite-core/session.cjs");
31
+ var import_session2 = require("../sqlite-core/session.cjs");
32
+ var import_utils = require("../utils.cjs");
33
+ class SQLiteDOSession extends import_session.SQLiteSession {
34
+ constructor(client, dialect, schema, options = {}) {
35
+ super(dialect);
36
+ this.client = client;
37
+ this.schema = schema;
38
+ this.logger = options.logger ?? new import_logger.NoopLogger();
39
+ }
40
+ static [import_entity.entityKind] = "SQLiteDOSession";
41
+ logger;
42
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
43
+ return new SQLiteDOPreparedQuery(
44
+ this.client,
45
+ query,
46
+ this.logger,
47
+ fields,
48
+ executeMethod,
49
+ isResponseInArrayMode,
50
+ customResultMapper
51
+ );
52
+ }
53
+ transaction(transaction, _config) {
54
+ const tx = new SQLiteDOTransaction("sync", this.dialect, this, this.schema);
55
+ this.client.transactionSync(() => {
56
+ transaction(tx);
57
+ });
58
+ return {};
59
+ }
60
+ }
61
+ class SQLiteDOTransaction extends import_sqlite_core.SQLiteTransaction {
62
+ static [import_entity.entityKind] = "SQLiteDOTransaction";
63
+ transaction(transaction) {
64
+ const tx = new SQLiteDOTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);
65
+ this.session.transaction(() => transaction(tx));
66
+ return {};
67
+ }
68
+ }
69
+ class SQLiteDOPreparedQuery extends import_session2.SQLitePreparedQuery {
70
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
71
+ super("sync", executeMethod, query);
72
+ this.client = client;
73
+ this.logger = logger;
74
+ this.fields = fields;
75
+ this._isResponseInArrayMode = _isResponseInArrayMode;
76
+ this.customResultMapper = customResultMapper;
77
+ }
78
+ static [import_entity.entityKind] = "SQLiteDOPreparedQuery";
79
+ run(placeholderValues) {
80
+ const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
81
+ this.logger.logQuery(this.query.sql, params);
82
+ params.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);
83
+ }
84
+ all(placeholderValues) {
85
+ const { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;
86
+ if (!fields && !customResultMapper) {
87
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
88
+ logger.logQuery(query.sql, params);
89
+ return params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();
90
+ }
91
+ const rows = this.values(placeholderValues);
92
+ if (customResultMapper) {
93
+ return customResultMapper(rows);
94
+ }
95
+ return rows.map((row) => (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap));
96
+ }
97
+ get(placeholderValues) {
98
+ const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
99
+ this.logger.logQuery(this.query.sql, params);
100
+ const { fields, client, joinsNotNullableMap, customResultMapper, query } = this;
101
+ if (!fields && !customResultMapper) {
102
+ return params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();
103
+ }
104
+ const rows = this.values(placeholderValues);
105
+ const row = rows[0];
106
+ if (!row) {
107
+ return void 0;
108
+ }
109
+ if (customResultMapper) {
110
+ return customResultMapper(rows);
111
+ }
112
+ return (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap);
113
+ }
114
+ values(placeholderValues) {
115
+ const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
116
+ this.logger.logQuery(this.query.sql, params);
117
+ const res = params.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);
118
+ return res.raw().toArray();
119
+ }
120
+ /** @internal */
121
+ isResponseInArrayMode() {
122
+ return this._isResponseInArrayMode;
123
+ }
124
+ }
125
+ // Annotate the CommonJS export names for ESM import in node:
126
+ 0 && (module.exports = {
127
+ SQLiteDOPreparedQuery,
128
+ SQLiteDOSession,
129
+ SQLiteDOTransaction
130
+ });
131
+ //# sourceMappingURL=session.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteSession<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\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): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\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\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteTransaction<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, 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\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["import_session","PreparedQueryBase"]}
@@ -0,0 +1,46 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ import type { Logger } from "../logger.cjs";
3
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
4
+ import { type Query } from "../sql/sql.cjs";
5
+ import { type SQLiteSyncDialect, SQLiteTransaction } from "../sqlite-core/index.cjs";
6
+ import type { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select.types.cjs";
7
+ import { type PreparedQueryConfig as PreparedQueryConfigBase, type SQLiteExecuteMethod, SQLiteSession, type SQLiteTransactionConfig } from "../sqlite-core/session.cjs";
8
+ import { SQLitePreparedQuery as PreparedQueryBase } from "../sqlite-core/session.cjs";
9
+ export interface SQLiteDOSessionOptions {
10
+ logger?: Logger;
11
+ }
12
+ type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
13
+ export declare class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema> {
14
+ private client;
15
+ private schema;
16
+ static readonly [entityKind]: string;
17
+ private logger;
18
+ constructor(client: DurableObjectStorage, dialect: SQLiteSyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteDOSessionOptions);
19
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): SQLiteDOPreparedQuery<T>;
20
+ transaction<T>(transaction: (tx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>) => T, _config?: SQLiteTransactionConfig): T;
21
+ }
22
+ export declare class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema> {
23
+ static readonly [entityKind]: string;
24
+ transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T;
25
+ }
26
+ export declare class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
27
+ type: 'sync';
28
+ run: void;
29
+ all: T['all'];
30
+ get: T['get'];
31
+ values: T['values'];
32
+ execute: T['execute'];
33
+ }> {
34
+ private client;
35
+ private logger;
36
+ private fields;
37
+ private _isResponseInArrayMode;
38
+ private customResultMapper?;
39
+ static readonly [entityKind]: string;
40
+ constructor(client: DurableObjectStorage, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
41
+ run(placeholderValues?: Record<string, unknown>): void;
42
+ all(placeholderValues?: Record<string, unknown>): T['all'];
43
+ get(placeholderValues?: Record<string, unknown>): T['get'];
44
+ values(placeholderValues?: Record<string, unknown>): T['values'];
45
+ }
46
+ export {};
@@ -0,0 +1,46 @@
1
+ import { entityKind } from "../entity.js";
2
+ import type { Logger } from "../logger.js";
3
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
4
+ import { type Query } from "../sql/sql.js";
5
+ import { type SQLiteSyncDialect, SQLiteTransaction } from "../sqlite-core/index.js";
6
+ import type { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select.types.js";
7
+ import { type PreparedQueryConfig as PreparedQueryConfigBase, type SQLiteExecuteMethod, SQLiteSession, type SQLiteTransactionConfig } from "../sqlite-core/session.js";
8
+ import { SQLitePreparedQuery as PreparedQueryBase } from "../sqlite-core/session.js";
9
+ export interface SQLiteDOSessionOptions {
10
+ logger?: Logger;
11
+ }
12
+ type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
13
+ export declare class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema> {
14
+ private client;
15
+ private schema;
16
+ static readonly [entityKind]: string;
17
+ private logger;
18
+ constructor(client: DurableObjectStorage, dialect: SQLiteSyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: SQLiteDOSessionOptions);
19
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): SQLiteDOPreparedQuery<T>;
20
+ transaction<T>(transaction: (tx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>) => T, _config?: SQLiteTransactionConfig): T;
21
+ }
22
+ export declare class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema> {
23
+ static readonly [entityKind]: string;
24
+ transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T;
25
+ }
26
+ export declare class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
27
+ type: 'sync';
28
+ run: void;
29
+ all: T['all'];
30
+ get: T['get'];
31
+ values: T['values'];
32
+ execute: T['execute'];
33
+ }> {
34
+ private client;
35
+ private logger;
36
+ private fields;
37
+ private _isResponseInArrayMode;
38
+ private customResultMapper?;
39
+ static readonly [entityKind]: string;
40
+ constructor(client: DurableObjectStorage, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
41
+ run(placeholderValues?: Record<string, unknown>): void;
42
+ all(placeholderValues?: Record<string, unknown>): T['all'];
43
+ get(placeholderValues?: Record<string, unknown>): T['get'];
44
+ values(placeholderValues?: Record<string, unknown>): T['values'];
45
+ }
46
+ export {};
@@ -0,0 +1,107 @@
1
+ import { entityKind } from "../entity.js";
2
+ import { NoopLogger } from "../logger.js";
3
+ import { fillPlaceholders } from "../sql/sql.js";
4
+ import { SQLiteTransaction } from "../sqlite-core/index.js";
5
+ import {
6
+ SQLiteSession
7
+ } from "../sqlite-core/session.js";
8
+ import { SQLitePreparedQuery as PreparedQueryBase } from "../sqlite-core/session.js";
9
+ import { mapResultRow } from "../utils.js";
10
+ class SQLiteDOSession extends SQLiteSession {
11
+ constructor(client, dialect, schema, options = {}) {
12
+ super(dialect);
13
+ this.client = client;
14
+ this.schema = schema;
15
+ this.logger = options.logger ?? new NoopLogger();
16
+ }
17
+ static [entityKind] = "SQLiteDOSession";
18
+ logger;
19
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
20
+ return new SQLiteDOPreparedQuery(
21
+ this.client,
22
+ query,
23
+ this.logger,
24
+ fields,
25
+ executeMethod,
26
+ isResponseInArrayMode,
27
+ customResultMapper
28
+ );
29
+ }
30
+ transaction(transaction, _config) {
31
+ const tx = new SQLiteDOTransaction("sync", this.dialect, this, this.schema);
32
+ this.client.transactionSync(() => {
33
+ transaction(tx);
34
+ });
35
+ return {};
36
+ }
37
+ }
38
+ class SQLiteDOTransaction extends SQLiteTransaction {
39
+ static [entityKind] = "SQLiteDOTransaction";
40
+ transaction(transaction) {
41
+ const tx = new SQLiteDOTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);
42
+ this.session.transaction(() => transaction(tx));
43
+ return {};
44
+ }
45
+ }
46
+ class SQLiteDOPreparedQuery extends PreparedQueryBase {
47
+ constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
48
+ super("sync", executeMethod, query);
49
+ this.client = client;
50
+ this.logger = logger;
51
+ this.fields = fields;
52
+ this._isResponseInArrayMode = _isResponseInArrayMode;
53
+ this.customResultMapper = customResultMapper;
54
+ }
55
+ static [entityKind] = "SQLiteDOPreparedQuery";
56
+ run(placeholderValues) {
57
+ const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
58
+ this.logger.logQuery(this.query.sql, params);
59
+ params.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);
60
+ }
61
+ all(placeholderValues) {
62
+ const { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;
63
+ if (!fields && !customResultMapper) {
64
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
65
+ logger.logQuery(query.sql, params);
66
+ return params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();
67
+ }
68
+ const rows = this.values(placeholderValues);
69
+ if (customResultMapper) {
70
+ return customResultMapper(rows);
71
+ }
72
+ return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
73
+ }
74
+ get(placeholderValues) {
75
+ const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
76
+ this.logger.logQuery(this.query.sql, params);
77
+ const { fields, client, joinsNotNullableMap, customResultMapper, query } = this;
78
+ if (!fields && !customResultMapper) {
79
+ return params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();
80
+ }
81
+ const rows = this.values(placeholderValues);
82
+ const row = rows[0];
83
+ if (!row) {
84
+ return void 0;
85
+ }
86
+ if (customResultMapper) {
87
+ return customResultMapper(rows);
88
+ }
89
+ return mapResultRow(fields, row, joinsNotNullableMap);
90
+ }
91
+ values(placeholderValues) {
92
+ const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
93
+ this.logger.logQuery(this.query.sql, params);
94
+ const res = params.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);
95
+ return res.raw().toArray();
96
+ }
97
+ /** @internal */
98
+ isResponseInArrayMode() {
99
+ return this._isResponseInArrayMode;
100
+ }
101
+ }
102
+ export {
103
+ SQLiteDOPreparedQuery,
104
+ SQLiteDOSession,
105
+ SQLiteDOTransaction
106
+ };
107
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteSession<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\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): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\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\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteTransaction<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, 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\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -181,6 +181,12 @@ class MySqlDialect {
181
181
  buildOrderBy(orderBy) {
182
182
  return orderBy && orderBy.length > 0 ? import_sql.sql` order by ${import_sql.sql.join(orderBy, import_sql.sql`, `)}` : void 0;
183
183
  }
184
+ buildIndex({
185
+ indexes,
186
+ indexFor
187
+ }) {
188
+ return indexes && indexes.length > 0 ? import_sql.sql` ${import_sql.sql.raw(indexFor)} INDEX (${import_sql.sql.raw(indexes.join(`, `))})` : void 0;
189
+ }
184
190
  buildSelectQuery({
185
191
  withList,
186
192
  fields,
@@ -195,7 +201,10 @@ class MySqlDialect {
195
201
  offset,
196
202
  lockingClause,
197
203
  distinct,
198
- setOperators
204
+ setOperators,
205
+ useIndex,
206
+ forceIndex,
207
+ ignoreIndex
199
208
  }) {
200
209
  const fieldsList = fieldsFlat ?? (0, import_utils.orderSelectedFields)(fields);
201
210
  for (const f of fieldsList) {
@@ -231,8 +240,11 @@ class MySqlDialect {
231
240
  const tableSchema = table2[import_table2.MySqlTable.Symbol.Schema];
232
241
  const origTableName = table2[import_table2.MySqlTable.Symbol.OriginalName];
233
242
  const alias = tableName === origTableName ? void 0 : joinMeta.alias;
243
+ const useIndexSql2 = this.buildIndex({ indexes: joinMeta.useIndex, indexFor: "USE" });
244
+ const forceIndexSql2 = this.buildIndex({ indexes: joinMeta.forceIndex, indexFor: "FORCE" });
245
+ const ignoreIndexSql2 = this.buildIndex({ indexes: joinMeta.ignoreIndex, indexFor: "IGNORE" });
234
246
  joinsArray.push(
235
- import_sql.sql`${import_sql.sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? import_sql.sql`${import_sql.sql.identifier(tableSchema)}.` : void 0}${import_sql.sql.identifier(origTableName)}${alias && import_sql.sql` ${import_sql.sql.identifier(alias)}`} on ${joinMeta.on}`
247
+ import_sql.sql`${import_sql.sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? import_sql.sql`${import_sql.sql.identifier(tableSchema)}.` : void 0}${import_sql.sql.identifier(origTableName)}${useIndexSql2}${forceIndexSql2}${ignoreIndexSql2}${alias && import_sql.sql` ${import_sql.sql.identifier(alias)}`} on ${joinMeta.on}`
236
248
  );
237
249
  } else if ((0, import_entity.is)(table2, import_sql.View)) {
238
250
  const viewName = table2[import_view_common.ViewBaseConfig].name;
@@ -259,6 +271,9 @@ class MySqlDialect {
259
271
  const groupBySql = groupBy && groupBy.length > 0 ? import_sql.sql` group by ${import_sql.sql.join(groupBy, import_sql.sql`, `)}` : void 0;
260
272
  const limitSql = this.buildLimit(limit);
261
273
  const offsetSql = offset ? import_sql.sql` offset ${offset}` : void 0;
274
+ const useIndexSql = this.buildIndex({ indexes: useIndex, indexFor: "USE" });
275
+ const forceIndexSql = this.buildIndex({ indexes: forceIndex, indexFor: "FORCE" });
276
+ const ignoreIndexSql = this.buildIndex({ indexes: ignoreIndex, indexFor: "IGNORE" });
262
277
  let lockingClausesSql;
263
278
  if (lockingClause) {
264
279
  const { config, strength } = lockingClause;
@@ -269,7 +284,7 @@ class MySqlDialect {
269
284
  lockingClausesSql.append(import_sql.sql` skip locked`);
270
285
  }
271
286
  }
272
- const finalQuery = import_sql.sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClausesSql}`;
287
+ const finalQuery = import_sql.sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${useIndexSql}${forceIndexSql}${ignoreIndexSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClausesSql}`;
273
288
  if (setOperators.length > 0) {
274
289
  return this.buildSetOperations(finalQuery, setOperators);
275
290
  }