drizzle-orm 0.41.0-727cbe4 → 0.42.0-da9af74

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 (485) hide show
  1. package/aws-data-api/pg/driver.cjs +5 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +1 -0
  4. package/aws-data-api/pg/driver.d.ts +1 -0
  5. package/aws-data-api/pg/driver.js +5 -1
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +15 -4
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +13 -2
  10. package/aws-data-api/pg/session.d.ts +13 -2
  11. package/aws-data-api/pg/session.js +15 -4
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.js.map +1 -1
  15. package/better-sqlite3/session.cjs +9 -3
  16. package/better-sqlite3/session.cjs.map +1 -1
  17. package/better-sqlite3/session.d.cts +12 -2
  18. package/better-sqlite3/session.d.ts +12 -2
  19. package/better-sqlite3/session.js +9 -3
  20. package/better-sqlite3/session.js.map +1 -1
  21. package/bun-sql/driver.cjs +5 -1
  22. package/bun-sql/driver.cjs.map +1 -1
  23. package/bun-sql/driver.js +5 -1
  24. package/bun-sql/driver.js.map +1 -1
  25. package/bun-sql/session.cjs +21 -9
  26. package/bun-sql/session.cjs.map +1 -1
  27. package/bun-sql/session.d.cts +12 -2
  28. package/bun-sql/session.d.ts +12 -2
  29. package/bun-sql/session.js +21 -9
  30. package/bun-sql/session.js.map +1 -1
  31. package/cache/core/cache.cjs +47 -0
  32. package/cache/core/cache.cjs.map +1 -0
  33. package/cache/core/cache.d.cts +35 -0
  34. package/cache/core/cache.d.ts +35 -0
  35. package/cache/core/cache.js +22 -0
  36. package/cache/core/cache.js.map +1 -0
  37. package/cache/core/index.cjs +23 -0
  38. package/cache/core/index.cjs.map +1 -0
  39. package/cache/core/index.d.cts +1 -0
  40. package/cache/core/index.d.ts +1 -0
  41. package/cache/core/index.js +2 -0
  42. package/cache/core/index.js.map +1 -0
  43. package/cache/core/types.cjs +17 -0
  44. package/cache/core/types.cjs.map +1 -0
  45. package/cache/core/types.d.cts +33 -0
  46. package/cache/core/types.d.ts +33 -0
  47. package/cache/core/types.js +1 -0
  48. package/cache/core/types.js.map +1 -0
  49. package/cache/upstash/cache.cjs +148 -0
  50. package/cache/upstash/cache.cjs.map +1 -0
  51. package/cache/upstash/cache.d.cts +29 -0
  52. package/cache/upstash/cache.d.ts +29 -0
  53. package/cache/upstash/cache.js +123 -0
  54. package/cache/upstash/cache.js.map +1 -0
  55. package/cache/upstash/index.cjs +23 -0
  56. package/cache/upstash/index.cjs.map +1 -0
  57. package/cache/upstash/index.d.cts +1 -0
  58. package/cache/upstash/index.d.ts +1 -0
  59. package/cache/upstash/index.js +2 -0
  60. package/cache/upstash/index.js.map +1 -0
  61. package/d1/driver.cjs +5 -1
  62. package/d1/driver.cjs.map +1 -1
  63. package/d1/driver.js +5 -1
  64. package/d1/driver.js.map +1 -1
  65. package/d1/session.cjs +23 -9
  66. package/d1/session.cjs.map +1 -1
  67. package/d1/session.d.cts +12 -2
  68. package/d1/session.d.ts +12 -2
  69. package/d1/session.js +23 -9
  70. package/d1/session.js.map +1 -1
  71. package/durable-sqlite/session.cjs +1 -1
  72. package/durable-sqlite/session.cjs.map +1 -1
  73. package/durable-sqlite/session.js +1 -1
  74. package/durable-sqlite/session.js.map +1 -1
  75. package/gel/driver.cjs +9 -2
  76. package/gel/driver.cjs.map +1 -1
  77. package/gel/driver.d.cts +2 -0
  78. package/gel/driver.d.ts +2 -0
  79. package/gel/driver.js +9 -2
  80. package/gel/driver.js.map +1 -1
  81. package/gel/session.cjs +25 -10
  82. package/gel/session.cjs.map +1 -1
  83. package/gel/session.d.cts +12 -2
  84. package/gel/session.d.ts +12 -2
  85. package/gel/session.js +25 -10
  86. package/gel/session.js.map +1 -1
  87. package/gel-core/db.cjs +1 -0
  88. package/gel-core/db.cjs.map +1 -1
  89. package/gel-core/db.d.cts +4 -0
  90. package/gel-core/db.d.ts +4 -0
  91. package/gel-core/db.js +1 -0
  92. package/gel-core/db.js.map +1 -1
  93. package/gel-core/query-builders/delete.cjs +5 -1
  94. package/gel-core/query-builders/delete.cjs.map +1 -1
  95. package/gel-core/query-builders/delete.js +5 -1
  96. package/gel-core/query-builders/delete.js.map +1 -1
  97. package/gel-core/query-builders/insert.cjs +5 -1
  98. package/gel-core/query-builders/insert.cjs.map +1 -1
  99. package/gel-core/query-builders/insert.js +5 -1
  100. package/gel-core/query-builders/insert.js.map +1 -1
  101. package/gel-core/query-builders/select.cjs +29 -4
  102. package/gel-core/query-builders/select.cjs.map +1 -1
  103. package/gel-core/query-builders/select.d.cts +9 -0
  104. package/gel-core/query-builders/select.d.ts +9 -0
  105. package/gel-core/query-builders/select.js +29 -4
  106. package/gel-core/query-builders/select.js.map +1 -1
  107. package/gel-core/query-builders/update.cjs +5 -1
  108. package/gel-core/query-builders/update.cjs.map +1 -1
  109. package/gel-core/query-builders/update.js +5 -1
  110. package/gel-core/query-builders/update.js.map +1 -1
  111. package/gel-core/session.cjs +52 -1
  112. package/gel-core/session.cjs.map +1 -1
  113. package/gel-core/session.d.cts +14 -3
  114. package/gel-core/session.d.ts +14 -3
  115. package/gel-core/session.js +53 -2
  116. package/gel-core/session.js.map +1 -1
  117. package/gel-core/utils.cjs +16 -0
  118. package/gel-core/utils.cjs.map +1 -1
  119. package/gel-core/utils.d.cts +8 -4
  120. package/gel-core/utils.d.ts +8 -4
  121. package/gel-core/utils.js +15 -0
  122. package/gel-core/utils.js.map +1 -1
  123. package/libsql/driver-core.cjs +5 -1
  124. package/libsql/driver-core.cjs.map +1 -1
  125. package/libsql/driver-core.js +5 -1
  126. package/libsql/driver-core.js.map +1 -1
  127. package/libsql/session.cjs +27 -13
  128. package/libsql/session.cjs.map +1 -1
  129. package/libsql/session.d.cts +12 -2
  130. package/libsql/session.d.ts +12 -2
  131. package/libsql/session.js +27 -13
  132. package/libsql/session.js.map +1 -1
  133. package/mysql-core/db.cjs +1 -0
  134. package/mysql-core/db.cjs.map +1 -1
  135. package/mysql-core/db.d.cts +4 -0
  136. package/mysql-core/db.d.ts +4 -0
  137. package/mysql-core/db.js +1 -0
  138. package/mysql-core/db.js.map +1 -1
  139. package/mysql-core/query-builders/delete.cjs +9 -1
  140. package/mysql-core/query-builders/delete.cjs.map +1 -1
  141. package/mysql-core/query-builders/delete.js +9 -1
  142. package/mysql-core/query-builders/delete.js.map +1 -1
  143. package/mysql-core/query-builders/insert.cjs +8 -1
  144. package/mysql-core/query-builders/insert.cjs.map +1 -1
  145. package/mysql-core/query-builders/insert.d.cts +2 -0
  146. package/mysql-core/query-builders/insert.d.ts +2 -0
  147. package/mysql-core/query-builders/insert.js +8 -1
  148. package/mysql-core/query-builders/insert.js.map +1 -1
  149. package/mysql-core/query-builders/select.cjs +27 -3
  150. package/mysql-core/query-builders/select.cjs.map +1 -1
  151. package/mysql-core/query-builders/select.d.cts +9 -0
  152. package/mysql-core/query-builders/select.d.ts +9 -0
  153. package/mysql-core/query-builders/select.js +28 -4
  154. package/mysql-core/query-builders/select.js.map +1 -1
  155. package/mysql-core/query-builders/update.cjs +11 -1
  156. package/mysql-core/query-builders/update.cjs.map +1 -1
  157. package/mysql-core/query-builders/update.d.cts +2 -0
  158. package/mysql-core/query-builders/update.d.ts +2 -0
  159. package/mysql-core/query-builders/update.js +11 -1
  160. package/mysql-core/query-builders/update.js.map +1 -1
  161. package/mysql-core/session.cjs +53 -0
  162. package/mysql-core/session.cjs.map +1 -1
  163. package/mysql-core/session.d.cts +15 -2
  164. package/mysql-core/session.d.ts +15 -2
  165. package/mysql-core/session.js +54 -1
  166. package/mysql-core/session.js.map +1 -1
  167. package/mysql-core/utils.cjs +16 -0
  168. package/mysql-core/utils.cjs.map +1 -1
  169. package/mysql-core/utils.d.cts +6 -2
  170. package/mysql-core/utils.d.ts +6 -2
  171. package/mysql-core/utils.js +15 -0
  172. package/mysql-core/utils.js.map +1 -1
  173. package/mysql-proxy/session.cjs +15 -5
  174. package/mysql-proxy/session.cjs.map +1 -1
  175. package/mysql-proxy/session.d.cts +12 -2
  176. package/mysql-proxy/session.d.ts +12 -2
  177. package/mysql-proxy/session.js +15 -5
  178. package/mysql-proxy/session.js.map +1 -1
  179. package/mysql2/driver.cjs +10 -2
  180. package/mysql2/driver.cjs.map +1 -1
  181. package/mysql2/driver.d.cts +2 -0
  182. package/mysql2/driver.d.ts +2 -0
  183. package/mysql2/driver.js +10 -2
  184. package/mysql2/driver.js.map +1 -1
  185. package/mysql2/session.cjs +15 -5
  186. package/mysql2/session.cjs.map +1 -1
  187. package/mysql2/session.d.cts +12 -2
  188. package/mysql2/session.d.ts +12 -2
  189. package/mysql2/session.js +15 -5
  190. package/mysql2/session.js.map +1 -1
  191. package/neon-http/driver.cjs +9 -2
  192. package/neon-http/driver.cjs.map +1 -1
  193. package/neon-http/driver.d.cts +2 -0
  194. package/neon-http/driver.d.ts +2 -0
  195. package/neon-http/driver.js +9 -2
  196. package/neon-http/driver.js.map +1 -1
  197. package/neon-http/session.cjs +25 -15
  198. package/neon-http/session.cjs.map +1 -1
  199. package/neon-http/session.d.cts +12 -2
  200. package/neon-http/session.d.ts +12 -2
  201. package/neon-http/session.js +25 -15
  202. package/neon-http/session.js.map +1 -1
  203. package/neon-serverless/driver.cjs +9 -2
  204. package/neon-serverless/driver.cjs.map +1 -1
  205. package/neon-serverless/driver.d.cts +2 -0
  206. package/neon-serverless/driver.d.ts +2 -0
  207. package/neon-serverless/driver.js +9 -2
  208. package/neon-serverless/driver.js.map +1 -1
  209. package/neon-serverless/session.cjs +21 -7
  210. package/neon-serverless/session.cjs.map +1 -1
  211. package/neon-serverless/session.d.cts +12 -2
  212. package/neon-serverless/session.d.ts +12 -2
  213. package/neon-serverless/session.js +21 -7
  214. package/neon-serverless/session.js.map +1 -1
  215. package/node-postgres/driver.cjs +9 -2
  216. package/node-postgres/driver.cjs.map +1 -1
  217. package/node-postgres/driver.d.cts +2 -0
  218. package/node-postgres/driver.d.ts +2 -0
  219. package/node-postgres/driver.js +9 -2
  220. package/node-postgres/driver.js.map +1 -1
  221. package/node-postgres/session.cjs +19 -6
  222. package/node-postgres/session.cjs.map +1 -1
  223. package/node-postgres/session.d.cts +13 -2
  224. package/node-postgres/session.d.ts +13 -2
  225. package/node-postgres/session.js +19 -6
  226. package/node-postgres/session.js.map +1 -1
  227. package/op-sqlite/driver.cjs +5 -1
  228. package/op-sqlite/driver.cjs.map +1 -1
  229. package/op-sqlite/driver.js +5 -1
  230. package/op-sqlite/driver.js.map +1 -1
  231. package/op-sqlite/session.cjs +23 -9
  232. package/op-sqlite/session.cjs.map +1 -1
  233. package/op-sqlite/session.d.cts +12 -2
  234. package/op-sqlite/session.d.ts +12 -2
  235. package/op-sqlite/session.js +23 -9
  236. package/op-sqlite/session.js.map +1 -1
  237. package/package.json +117 -52
  238. package/pg-core/db.cjs +1 -0
  239. package/pg-core/db.cjs.map +1 -1
  240. package/pg-core/db.d.cts +4 -0
  241. package/pg-core/db.d.ts +4 -0
  242. package/pg-core/db.js +1 -0
  243. package/pg-core/db.js.map +1 -1
  244. package/pg-core/query-builders/delete.cjs +6 -1
  245. package/pg-core/query-builders/delete.cjs.map +1 -1
  246. package/pg-core/query-builders/delete.d.cts +3 -1
  247. package/pg-core/query-builders/delete.d.ts +3 -1
  248. package/pg-core/query-builders/delete.js +6 -1
  249. package/pg-core/query-builders/delete.js.map +1 -1
  250. package/pg-core/query-builders/insert.cjs +6 -1
  251. package/pg-core/query-builders/insert.cjs.map +1 -1
  252. package/pg-core/query-builders/insert.d.cts +2 -0
  253. package/pg-core/query-builders/insert.d.ts +2 -0
  254. package/pg-core/query-builders/insert.js +6 -1
  255. package/pg-core/query-builders/insert.js.map +1 -1
  256. package/pg-core/query-builders/select.cjs +31 -5
  257. package/pg-core/query-builders/select.cjs.map +1 -1
  258. package/pg-core/query-builders/select.d.cts +10 -1
  259. package/pg-core/query-builders/select.d.ts +10 -1
  260. package/pg-core/query-builders/select.js +31 -5
  261. package/pg-core/query-builders/select.js.map +1 -1
  262. package/pg-core/query-builders/update.cjs +6 -1
  263. package/pg-core/query-builders/update.cjs.map +1 -1
  264. package/pg-core/query-builders/update.d.cts +4 -2
  265. package/pg-core/query-builders/update.d.ts +4 -2
  266. package/pg-core/query-builders/update.js +6 -1
  267. package/pg-core/query-builders/update.js.map +1 -1
  268. package/pg-core/session.cjs +52 -1
  269. package/pg-core/session.cjs.map +1 -1
  270. package/pg-core/session.d.cts +14 -3
  271. package/pg-core/session.d.ts +14 -3
  272. package/pg-core/session.js +53 -2
  273. package/pg-core/session.js.map +1 -1
  274. package/pg-core/utils.cjs +16 -0
  275. package/pg-core/utils.cjs.map +1 -1
  276. package/pg-core/utils.d.cts +8 -4
  277. package/pg-core/utils.d.ts +8 -4
  278. package/pg-core/utils.js +16 -1
  279. package/pg-core/utils.js.map +1 -1
  280. package/pg-proxy/driver.cjs +7 -2
  281. package/pg-proxy/driver.cjs.map +1 -1
  282. package/pg-proxy/driver.js +7 -2
  283. package/pg-proxy/driver.js.map +1 -1
  284. package/pg-proxy/session.cjs +15 -5
  285. package/pg-proxy/session.cjs.map +1 -1
  286. package/pg-proxy/session.d.cts +12 -2
  287. package/pg-proxy/session.d.ts +12 -2
  288. package/pg-proxy/session.js +15 -5
  289. package/pg-proxy/session.js.map +1 -1
  290. package/pglite/driver.cjs +9 -2
  291. package/pglite/driver.cjs.map +1 -1
  292. package/pglite/driver.d.cts +2 -0
  293. package/pglite/driver.d.ts +2 -0
  294. package/pglite/driver.js +9 -2
  295. package/pglite/driver.js.map +1 -1
  296. package/pglite/session.cjs +19 -7
  297. package/pglite/session.cjs.map +1 -1
  298. package/pglite/session.d.cts +12 -2
  299. package/pglite/session.d.ts +12 -2
  300. package/pglite/session.js +19 -7
  301. package/pglite/session.js.map +1 -1
  302. package/planetscale-serverless/driver.cjs +5 -1
  303. package/planetscale-serverless/driver.cjs.map +1 -1
  304. package/planetscale-serverless/driver.d.cts +1 -0
  305. package/planetscale-serverless/driver.d.ts +1 -0
  306. package/planetscale-serverless/driver.js +5 -1
  307. package/planetscale-serverless/driver.js.map +1 -1
  308. package/planetscale-serverless/session.cjs +15 -5
  309. package/planetscale-serverless/session.cjs.map +1 -1
  310. package/planetscale-serverless/session.d.cts +12 -2
  311. package/planetscale-serverless/session.d.ts +12 -2
  312. package/planetscale-serverless/session.js +15 -5
  313. package/planetscale-serverless/session.js.map +1 -1
  314. package/postgres-js/driver.cjs +5 -1
  315. package/postgres-js/driver.cjs.map +1 -1
  316. package/postgres-js/driver.js +5 -1
  317. package/postgres-js/driver.js.map +1 -1
  318. package/postgres-js/session.cjs +18 -6
  319. package/postgres-js/session.cjs.map +1 -1
  320. package/postgres-js/session.d.cts +12 -2
  321. package/postgres-js/session.d.ts +12 -2
  322. package/postgres-js/session.js +18 -6
  323. package/postgres-js/session.js.map +1 -1
  324. package/prisma/mysql/session.cjs +1 -1
  325. package/prisma/mysql/session.cjs.map +1 -1
  326. package/prisma/mysql/session.js +1 -1
  327. package/prisma/mysql/session.js.map +1 -1
  328. package/prisma/pg/session.cjs +1 -1
  329. package/prisma/pg/session.cjs.map +1 -1
  330. package/prisma/pg/session.js +1 -1
  331. package/prisma/pg/session.js.map +1 -1
  332. package/query-builders/query-builder.cjs.map +1 -1
  333. package/query-builders/query-builder.d.cts +2 -1
  334. package/query-builders/query-builder.d.ts +2 -1
  335. package/query-builders/query-builder.js.map +1 -1
  336. package/singlestore/driver.cjs +12 -2
  337. package/singlestore/driver.cjs.map +1 -1
  338. package/singlestore/driver.d.cts +2 -0
  339. package/singlestore/driver.d.ts +2 -0
  340. package/singlestore/driver.js +12 -2
  341. package/singlestore/driver.js.map +1 -1
  342. package/singlestore/session.cjs +15 -5
  343. package/singlestore/session.cjs.map +1 -1
  344. package/singlestore/session.d.cts +12 -2
  345. package/singlestore/session.d.ts +12 -2
  346. package/singlestore/session.js +15 -5
  347. package/singlestore/session.js.map +1 -1
  348. package/singlestore-core/db.cjs +1 -0
  349. package/singlestore-core/db.cjs.map +1 -1
  350. package/singlestore-core/db.d.cts +4 -0
  351. package/singlestore-core/db.d.ts +4 -0
  352. package/singlestore-core/db.js +1 -0
  353. package/singlestore-core/db.js.map +1 -1
  354. package/singlestore-core/query-builders/delete.cjs +9 -1
  355. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  356. package/singlestore-core/query-builders/delete.js +9 -1
  357. package/singlestore-core/query-builders/delete.js.map +1 -1
  358. package/singlestore-core/query-builders/insert.cjs +6 -1
  359. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  360. package/singlestore-core/query-builders/insert.js +6 -1
  361. package/singlestore-core/query-builders/insert.js.map +1 -1
  362. package/singlestore-core/query-builders/select.cjs +28 -3
  363. package/singlestore-core/query-builders/select.cjs.map +1 -1
  364. package/singlestore-core/query-builders/select.d.cts +9 -0
  365. package/singlestore-core/query-builders/select.d.ts +9 -0
  366. package/singlestore-core/query-builders/select.js +28 -3
  367. package/singlestore-core/query-builders/select.js.map +1 -1
  368. package/singlestore-core/query-builders/update.cjs +9 -1
  369. package/singlestore-core/query-builders/update.cjs.map +1 -1
  370. package/singlestore-core/query-builders/update.js +9 -1
  371. package/singlestore-core/query-builders/update.js.map +1 -1
  372. package/singlestore-core/session.cjs +53 -0
  373. package/singlestore-core/session.cjs.map +1 -1
  374. package/singlestore-core/session.d.cts +14 -2
  375. package/singlestore-core/session.d.ts +14 -2
  376. package/singlestore-core/session.js +54 -1
  377. package/singlestore-core/session.js.map +1 -1
  378. package/singlestore-core/utils.cjs +16 -0
  379. package/singlestore-core/utils.cjs.map +1 -1
  380. package/singlestore-core/utils.d.cts +3 -0
  381. package/singlestore-core/utils.d.ts +3 -0
  382. package/singlestore-core/utils.js +15 -0
  383. package/singlestore-core/utils.js.map +1 -1
  384. package/sql/sql.cjs +10 -0
  385. package/sql/sql.cjs.map +1 -1
  386. package/sql/sql.js +10 -0
  387. package/sql/sql.js.map +1 -1
  388. package/sqlite-core/db.cjs +1 -0
  389. package/sqlite-core/db.cjs.map +1 -1
  390. package/sqlite-core/db.d.cts +4 -0
  391. package/sqlite-core/db.d.ts +4 -0
  392. package/sqlite-core/db.js +1 -0
  393. package/sqlite-core/db.js.map +1 -1
  394. package/sqlite-core/query-builders/delete.cjs +7 -1
  395. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  396. package/sqlite-core/query-builders/delete.js +7 -1
  397. package/sqlite-core/query-builders/delete.js.map +1 -1
  398. package/sqlite-core/query-builders/insert.cjs +7 -1
  399. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  400. package/sqlite-core/query-builders/insert.js +7 -1
  401. package/sqlite-core/query-builders/insert.js.map +1 -1
  402. package/sqlite-core/query-builders/select.cjs +31 -3
  403. package/sqlite-core/query-builders/select.cjs.map +1 -1
  404. package/sqlite-core/query-builders/select.d.cts +9 -0
  405. package/sqlite-core/query-builders/select.d.ts +9 -0
  406. package/sqlite-core/query-builders/select.js +31 -3
  407. package/sqlite-core/query-builders/select.js.map +1 -1
  408. package/sqlite-core/query-builders/update.cjs +7 -1
  409. package/sqlite-core/query-builders/update.cjs.map +1 -1
  410. package/sqlite-core/query-builders/update.js +7 -1
  411. package/sqlite-core/query-builders/update.js.map +1 -1
  412. package/sqlite-core/session.cjs +62 -3
  413. package/sqlite-core/session.cjs.map +1 -1
  414. package/sqlite-core/session.d.cts +18 -4
  415. package/sqlite-core/session.d.ts +18 -4
  416. package/sqlite-core/session.js +63 -4
  417. package/sqlite-core/session.js.map +1 -1
  418. package/sqlite-core/utils.cjs +16 -0
  419. package/sqlite-core/utils.cjs.map +1 -1
  420. package/sqlite-core/utils.d.cts +6 -2
  421. package/sqlite-core/utils.d.ts +6 -2
  422. package/sqlite-core/utils.js +15 -0
  423. package/sqlite-core/utils.js.map +1 -1
  424. package/sqlite-proxy/driver.cjs +9 -2
  425. package/sqlite-proxy/driver.cjs.map +1 -1
  426. package/sqlite-proxy/driver.js +9 -2
  427. package/sqlite-proxy/driver.js.map +1 -1
  428. package/sqlite-proxy/session.cjs +22 -8
  429. package/sqlite-proxy/session.cjs.map +1 -1
  430. package/sqlite-proxy/session.d.cts +12 -2
  431. package/sqlite-proxy/session.d.ts +12 -2
  432. package/sqlite-proxy/session.js +22 -8
  433. package/sqlite-proxy/session.js.map +1 -1
  434. package/subquery.cjs +4 -3
  435. package/subquery.cjs.map +1 -1
  436. package/subquery.d.cts +2 -1
  437. package/subquery.d.ts +2 -1
  438. package/subquery.js +4 -3
  439. package/subquery.js.map +1 -1
  440. package/tidb-serverless/driver.cjs +5 -1
  441. package/tidb-serverless/driver.cjs.map +1 -1
  442. package/tidb-serverless/driver.d.cts +1 -0
  443. package/tidb-serverless/driver.d.ts +1 -0
  444. package/tidb-serverless/driver.js +5 -1
  445. package/tidb-serverless/driver.js.map +1 -1
  446. package/tidb-serverless/session.cjs +15 -5
  447. package/tidb-serverless/session.cjs.map +1 -1
  448. package/tidb-serverless/session.d.cts +12 -2
  449. package/tidb-serverless/session.d.ts +12 -2
  450. package/tidb-serverless/session.js +15 -5
  451. package/tidb-serverless/session.js.map +1 -1
  452. package/utils.cjs +22 -0
  453. package/utils.cjs.map +1 -1
  454. package/utils.d.cts +3 -0
  455. package/utils.d.ts +3 -0
  456. package/utils.js +11 -0
  457. package/utils.js.map +1 -1
  458. package/vercel-postgres/driver.cjs +9 -2
  459. package/vercel-postgres/driver.cjs.map +1 -1
  460. package/vercel-postgres/driver.d.cts +2 -0
  461. package/vercel-postgres/driver.d.ts +2 -0
  462. package/vercel-postgres/driver.js +9 -2
  463. package/vercel-postgres/driver.js.map +1 -1
  464. package/vercel-postgres/session.cjs +21 -7
  465. package/vercel-postgres/session.cjs.map +1 -1
  466. package/vercel-postgres/session.d.cts +12 -2
  467. package/vercel-postgres/session.d.ts +12 -2
  468. package/vercel-postgres/session.js +21 -7
  469. package/vercel-postgres/session.js.map +1 -1
  470. package/version.cjs +1 -1
  471. package/version.d.cts +1 -1
  472. package/version.d.ts +1 -1
  473. package/version.js +1 -1
  474. package/xata-http/driver.cjs +7 -2
  475. package/xata-http/driver.cjs.map +1 -1
  476. package/xata-http/driver.d.cts +2 -0
  477. package/xata-http/driver.d.ts +2 -0
  478. package/xata-http/driver.js +7 -2
  479. package/xata-http/driver.js.map +1 -1
  480. package/xata-http/session.cjs +21 -7
  481. package/xata-http/session.cjs.map +1 -1
  482. package/xata-http/session.d.cts +12 -2
  483. package/xata-http/session.d.ts +12 -2
  484. package/xata-http/session.js +21 -7
  485. package/xata-http/session.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/op-sqlite/session.ts"],"sourcesContent":["import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';\nimport { 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, 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 {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface OPSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class OPSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: OPSQLiteSessionOptions = {},\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): OPSQLitePreparedQuery<T> {\n\t\treturn new OPSQLitePreparedQuery(\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: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'OPSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\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>): Promise<QueryResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\treturn this.client.executeAsync(this.query.sql, params);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = 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 client.execute(query.sql, params).rows?._array || [];\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst rows = client.execute(query.sql, params).rows?._array || [];\n\t\t\treturn rows[0];\n\t\t}\n\n\t\tconst rows = await 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>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client.executeRawAsync(this.query.sql, params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/op-sqlite/session.ts"],"sourcesContent":["import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.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 { 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 {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface OPSQLiteSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class OPSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: OPSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\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\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): OPSQLitePreparedQuery<T> {\n\t\treturn new OPSQLitePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\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: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'OPSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\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, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<QueryResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\treturn this.client.executeAsync(this.query.sql, params);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = 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 await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn client.execute(query.sql, params).rows?._array || [];\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst rows = await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn client.execute(query.sql, params).rows?._array || [];\n\t\t\t});\n\t\t\treturn rows[0];\n\t\t}\n\n\t\tconst rows = await 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\tasync values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\treturn await this.client.executeRawAsync(this.query.sql, params);\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["rows"]}
@@ -1,4 +1,6 @@
1
1
  import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';
2
+ import { type Cache } from "../cache/core/index.cjs";
3
+ import type { WithCacheConfig } from "../cache/core/types.cjs";
2
4
  import { entityKind } from "../entity.cjs";
3
5
  import type { Logger } from "../logger.cjs";
4
6
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
@@ -9,6 +11,7 @@ import type { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select
9
11
  import { type PreparedQueryConfig as PreparedQueryConfigBase, type SQLiteExecuteMethod, SQLitePreparedQuery, SQLiteSession, type SQLiteTransactionConfig } from "../sqlite-core/session.cjs";
10
12
  export interface OPSQLiteSessionOptions {
11
13
  logger?: Logger;
14
+ cache?: Cache;
12
15
  }
13
16
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
14
17
  export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {
@@ -16,8 +19,12 @@ export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>
16
19
  private schema;
17
20
  static readonly [entityKind]: string;
18
21
  private logger;
22
+ private cache;
19
23
  constructor(client: OPSQLiteConnection, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: OPSQLiteSessionOptions);
20
- prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): OPSQLitePreparedQuery<T>;
24
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
25
+ type: 'select' | 'update' | 'delete' | 'insert';
26
+ tables: string[];
27
+ }, cacheConfig?: WithCacheConfig): OPSQLitePreparedQuery<T>;
21
28
  transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
22
29
  }
23
30
  export declare class OPSQLiteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {
@@ -38,7 +45,10 @@ export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = Prepa
38
45
  private _isResponseInArrayMode;
39
46
  private customResultMapper?;
40
47
  static readonly [entityKind]: string;
41
- constructor(client: OPSQLiteConnection, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
48
+ constructor(client: OPSQLiteConnection, query: Query, logger: Logger, cache: Cache, queryMetadata: {
49
+ type: 'select' | 'update' | 'delete' | 'insert';
50
+ tables: string[];
51
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
42
52
  run(placeholderValues?: Record<string, unknown>): Promise<QueryResult>;
43
53
  all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
44
54
  get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
@@ -1,4 +1,6 @@
1
1
  import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';
2
+ import { type Cache } from "../cache/core/index.js";
3
+ import type { WithCacheConfig } from "../cache/core/types.js";
2
4
  import { entityKind } from "../entity.js";
3
5
  import type { Logger } from "../logger.js";
4
6
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
@@ -9,6 +11,7 @@ import type { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select
9
11
  import { type PreparedQueryConfig as PreparedQueryConfigBase, type SQLiteExecuteMethod, SQLitePreparedQuery, SQLiteSession, type SQLiteTransactionConfig } from "../sqlite-core/session.js";
10
12
  export interface OPSQLiteSessionOptions {
11
13
  logger?: Logger;
14
+ cache?: Cache;
12
15
  }
13
16
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
14
17
  export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {
@@ -16,8 +19,12 @@ export declare class OPSQLiteSession<TFullSchema extends Record<string, unknown>
16
19
  private schema;
17
20
  static readonly [entityKind]: string;
18
21
  private logger;
22
+ private cache;
19
23
  constructor(client: OPSQLiteConnection, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: OPSQLiteSessionOptions);
20
- prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): OPSQLitePreparedQuery<T>;
24
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
25
+ type: 'select' | 'update' | 'delete' | 'insert';
26
+ tables: string[];
27
+ }, cacheConfig?: WithCacheConfig): OPSQLitePreparedQuery<T>;
21
28
  transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
22
29
  }
23
30
  export declare class OPSQLiteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {
@@ -38,7 +45,10 @@ export declare class OPSQLitePreparedQuery<T extends PreparedQueryConfig = Prepa
38
45
  private _isResponseInArrayMode;
39
46
  private customResultMapper?;
40
47
  static readonly [entityKind]: string;
41
- constructor(client: OPSQLiteConnection, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
48
+ constructor(client: OPSQLiteConnection, query: Query, logger: Logger, cache: Cache, queryMetadata: {
49
+ type: 'select' | 'update' | 'delete' | 'insert';
50
+ tables: string[];
51
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
42
52
  run(placeholderValues?: Record<string, unknown>): Promise<QueryResult>;
43
53
  all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
44
54
  get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
@@ -1,3 +1,4 @@
1
+ import { NoopCache } from "../cache/core/index.js";
1
2
  import { entityKind } from "../entity.js";
2
3
  import { NoopLogger } from "../logger.js";
3
4
  import { fillPlaceholders, sql } from "../sql/sql.js";
@@ -13,14 +14,19 @@ class OPSQLiteSession extends SQLiteSession {
13
14
  this.client = client;
14
15
  this.schema = schema;
15
16
  this.logger = options.logger ?? new NoopLogger();
17
+ this.cache = options.cache ?? new NoopCache();
16
18
  }
17
19
  static [entityKind] = "OPSQLiteSession";
18
20
  logger;
19
- prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
21
+ cache;
22
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
20
23
  return new OPSQLitePreparedQuery(
21
24
  this.client,
22
25
  query,
23
26
  this.logger,
27
+ this.cache,
28
+ queryMetadata,
29
+ cacheConfig,
24
30
  fields,
25
31
  executeMethod,
26
32
  isResponseInArrayMode,
@@ -57,8 +63,8 @@ class OPSQLiteTransaction extends SQLiteTransaction {
57
63
  }
58
64
  }
59
65
  class OPSQLitePreparedQuery extends SQLitePreparedQuery {
60
- constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
61
- super("sync", executeMethod, query);
66
+ constructor(client, query, logger, cache, queryMetadata, cacheConfig, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
67
+ super("sync", executeMethod, query, cache, queryMetadata, cacheConfig);
62
68
  this.client = client;
63
69
  this.logger = logger;
64
70
  this.fields = fields;
@@ -66,17 +72,21 @@ class OPSQLitePreparedQuery extends SQLitePreparedQuery {
66
72
  this.customResultMapper = customResultMapper;
67
73
  }
68
74
  static [entityKind] = "OPSQLitePreparedQuery";
69
- run(placeholderValues) {
75
+ async run(placeholderValues) {
70
76
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
71
77
  this.logger.logQuery(this.query.sql, params);
72
- return this.client.executeAsync(this.query.sql, params);
78
+ return await this.queryWithCache(this.query.sql, params, async () => {
79
+ return this.client.executeAsync(this.query.sql, params);
80
+ });
73
81
  }
74
82
  async all(placeholderValues) {
75
83
  const { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = this;
76
84
  if (!fields && !customResultMapper) {
77
85
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
78
86
  logger.logQuery(query.sql, params);
79
- return client.execute(query.sql, params).rows?._array || [];
87
+ return await this.queryWithCache(query.sql, params, async () => {
88
+ return client.execute(query.sql, params).rows?._array || [];
89
+ });
80
90
  }
81
91
  const rows = await this.values(placeholderValues);
82
92
  if (customResultMapper) {
@@ -89,7 +99,9 @@ class OPSQLitePreparedQuery extends SQLitePreparedQuery {
89
99
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
90
100
  logger.logQuery(query.sql, params);
91
101
  if (!fields && !customResultMapper) {
92
- const rows2 = client.execute(query.sql, params).rows?._array || [];
102
+ const rows2 = await this.queryWithCache(query.sql, params, async () => {
103
+ return client.execute(query.sql, params).rows?._array || [];
104
+ });
93
105
  return rows2[0];
94
106
  }
95
107
  const rows = await this.values(placeholderValues);
@@ -102,10 +114,12 @@ class OPSQLitePreparedQuery extends SQLitePreparedQuery {
102
114
  }
103
115
  return mapResultRow(fields, row, joinsNotNullableMap);
104
116
  }
105
- values(placeholderValues) {
117
+ async values(placeholderValues) {
106
118
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
107
119
  this.logger.logQuery(this.query.sql, params);
108
- return this.client.executeRawAsync(this.query.sql, params);
120
+ return await this.queryWithCache(this.query.sql, params, async () => {
121
+ return await this.client.executeRawAsync(this.query.sql, params);
122
+ });
109
123
  }
110
124
  /** @internal */
111
125
  isResponseInArrayMode() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/op-sqlite/session.ts"],"sourcesContent":["import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';\nimport { 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, 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 {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface OPSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class OPSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: OPSQLiteSessionOptions = {},\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): OPSQLitePreparedQuery<T> {\n\t\treturn new OPSQLitePreparedQuery(\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: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'OPSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\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>): Promise<QueryResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\treturn this.client.executeAsync(this.query.sql, params);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = 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 client.execute(query.sql, params).rows?._array || [];\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst rows = client.execute(query.sql, params).rows?._array || [];\n\t\t\treturn rows[0];\n\t\t}\n\n\t\tconst rows = await 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>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.client.executeRawAsync(this.query.sql, params);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/op-sqlite/session.ts"],"sourcesContent":["import type { OPSQLiteConnection, QueryResult } from '@op-engineering/op-sqlite';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.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 { 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 {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface OPSQLiteSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class OPSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: OPSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\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\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): OPSQLitePreparedQuery<T> {\n\t\treturn new OPSQLitePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\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: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', QueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'OPSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: OPSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new OPSQLiteTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class OPSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: QueryResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'OPSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate client: OPSQLiteConnection,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\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, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<QueryResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\treturn this.client.executeAsync(this.query.sql, params);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, customResultMapper, client } = 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 await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn client.execute(query.sql, params).rows?._array || [];\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, customResultMapper, query, logger, client } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst rows = await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn client.execute(query.sql, params).rows?._array || [];\n\t\t\t});\n\t\t\treturn rows[0];\n\t\t}\n\n\t\tconst rows = await 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\tasync values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\treturn await this.client.executeRawAsync(this.query.sql, params);\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["rows"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.41.0-727cbe4",
3
+ "version": "0.42.0-da9af74",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -64,14 +64,15 @@
64
64
  "better-sqlite3": ">=7",
65
65
  "bun-types": "*",
66
66
  "expo-sqlite": ">=14.0.0",
67
- "gel": ">=2",
68
67
  "knex": "*",
69
68
  "kysely": "*",
70
69
  "mysql2": ">=2",
71
70
  "pg": ">=8",
72
71
  "postgres": ">=3",
73
72
  "sql.js": ">=1",
74
- "sqlite3": ">=5"
73
+ "sqlite3": ">=5",
74
+ "gel": ">=2",
75
+ "@upstash/redis": ">=1.34.7"
75
76
  },
76
77
  "peerDependenciesMeta": {
77
78
  "mysql2": {
@@ -157,6 +158,9 @@
157
158
  },
158
159
  "@prisma/client": {
159
160
  "optional": true
161
+ },
162
+ "@upstash/redis": {
163
+ "optional": true
160
164
  }
161
165
  },
162
166
  "devDependencies": {
@@ -173,11 +177,12 @@
173
177
  "@planetscale/database": "^1.16.0",
174
178
  "@prisma/client": "5.14.0",
175
179
  "@tidbcloud/serverless": "^0.1.1",
176
- "@types/better-sqlite3": "^7.6.4",
180
+ "@types/better-sqlite3": "^7.6.12",
177
181
  "@types/node": "^20.2.5",
178
182
  "@types/pg": "^8.10.1",
179
183
  "@types/react": "^18.2.45",
180
184
  "@types/sql.js": "^1.4.4",
185
+ "@upstash/redis": "^1.34.3",
181
186
  "@vercel/postgres": "^0.8.0",
182
187
  "@xata.io/client": "^0.29.3",
183
188
  "better-sqlite3": "^11.9.1",
@@ -504,54 +509,6 @@
504
509
  "types": "./view-common.d.ts",
505
510
  "default": "./view-common.js"
506
511
  },
507
- "./bun-sql/driver": {
508
- "import": {
509
- "types": "./bun-sql/driver.d.ts",
510
- "default": "./bun-sql/driver.js"
511
- },
512
- "require": {
513
- "types": "./bun-sql/driver.d.cts",
514
- "default": "./bun-sql/driver.cjs"
515
- },
516
- "types": "./bun-sql/driver.d.ts",
517
- "default": "./bun-sql/driver.js"
518
- },
519
- "./bun-sql": {
520
- "import": {
521
- "types": "./bun-sql/index.d.ts",
522
- "default": "./bun-sql/index.js"
523
- },
524
- "require": {
525
- "types": "./bun-sql/index.d.cts",
526
- "default": "./bun-sql/index.cjs"
527
- },
528
- "types": "./bun-sql/index.d.ts",
529
- "default": "./bun-sql/index.js"
530
- },
531
- "./bun-sql/migrator": {
532
- "import": {
533
- "types": "./bun-sql/migrator.d.ts",
534
- "default": "./bun-sql/migrator.js"
535
- },
536
- "require": {
537
- "types": "./bun-sql/migrator.d.cts",
538
- "default": "./bun-sql/migrator.cjs"
539
- },
540
- "types": "./bun-sql/migrator.d.ts",
541
- "default": "./bun-sql/migrator.js"
542
- },
543
- "./bun-sql/session": {
544
- "import": {
545
- "types": "./bun-sql/session.d.ts",
546
- "default": "./bun-sql/session.js"
547
- },
548
- "require": {
549
- "types": "./bun-sql/session.d.cts",
550
- "default": "./bun-sql/session.cjs"
551
- },
552
- "types": "./bun-sql/session.d.ts",
553
- "default": "./bun-sql/session.js"
554
- },
555
512
  "./better-sqlite3/driver": {
556
513
  "import": {
557
514
  "types": "./better-sqlite3/driver.d.ts",
@@ -600,6 +557,54 @@
600
557
  "types": "./better-sqlite3/session.d.ts",
601
558
  "default": "./better-sqlite3/session.js"
602
559
  },
560
+ "./bun-sql/driver": {
561
+ "import": {
562
+ "types": "./bun-sql/driver.d.ts",
563
+ "default": "./bun-sql/driver.js"
564
+ },
565
+ "require": {
566
+ "types": "./bun-sql/driver.d.cts",
567
+ "default": "./bun-sql/driver.cjs"
568
+ },
569
+ "types": "./bun-sql/driver.d.ts",
570
+ "default": "./bun-sql/driver.js"
571
+ },
572
+ "./bun-sql": {
573
+ "import": {
574
+ "types": "./bun-sql/index.d.ts",
575
+ "default": "./bun-sql/index.js"
576
+ },
577
+ "require": {
578
+ "types": "./bun-sql/index.d.cts",
579
+ "default": "./bun-sql/index.cjs"
580
+ },
581
+ "types": "./bun-sql/index.d.ts",
582
+ "default": "./bun-sql/index.js"
583
+ },
584
+ "./bun-sql/migrator": {
585
+ "import": {
586
+ "types": "./bun-sql/migrator.d.ts",
587
+ "default": "./bun-sql/migrator.js"
588
+ },
589
+ "require": {
590
+ "types": "./bun-sql/migrator.d.cts",
591
+ "default": "./bun-sql/migrator.cjs"
592
+ },
593
+ "types": "./bun-sql/migrator.d.ts",
594
+ "default": "./bun-sql/migrator.js"
595
+ },
596
+ "./bun-sql/session": {
597
+ "import": {
598
+ "types": "./bun-sql/session.d.ts",
599
+ "default": "./bun-sql/session.js"
600
+ },
601
+ "require": {
602
+ "types": "./bun-sql/session.d.cts",
603
+ "default": "./bun-sql/session.cjs"
604
+ },
605
+ "types": "./bun-sql/session.d.ts",
606
+ "default": "./bun-sql/session.js"
607
+ },
603
608
  "./bun-sqlite/driver": {
604
609
  "import": {
605
610
  "types": "./bun-sqlite/driver.d.ts",
@@ -3036,6 +3041,66 @@
3036
3041
  "types": "./aws-data-api/pg/session.d.ts",
3037
3042
  "default": "./aws-data-api/pg/session.js"
3038
3043
  },
3044
+ "./cache/core/cache": {
3045
+ "import": {
3046
+ "types": "./cache/core/cache.d.ts",
3047
+ "default": "./cache/core/cache.js"
3048
+ },
3049
+ "require": {
3050
+ "types": "./cache/core/cache.d.cts",
3051
+ "default": "./cache/core/cache.cjs"
3052
+ },
3053
+ "types": "./cache/core/cache.d.ts",
3054
+ "default": "./cache/core/cache.js"
3055
+ },
3056
+ "./cache/core": {
3057
+ "import": {
3058
+ "types": "./cache/core/index.d.ts",
3059
+ "default": "./cache/core/index.js"
3060
+ },
3061
+ "require": {
3062
+ "types": "./cache/core/index.d.cts",
3063
+ "default": "./cache/core/index.cjs"
3064
+ },
3065
+ "types": "./cache/core/index.d.ts",
3066
+ "default": "./cache/core/index.js"
3067
+ },
3068
+ "./cache/core/types": {
3069
+ "import": {
3070
+ "types": "./cache/core/types.d.ts",
3071
+ "default": "./cache/core/types.js"
3072
+ },
3073
+ "require": {
3074
+ "types": "./cache/core/types.d.cts",
3075
+ "default": "./cache/core/types.cjs"
3076
+ },
3077
+ "types": "./cache/core/types.d.ts",
3078
+ "default": "./cache/core/types.js"
3079
+ },
3080
+ "./cache/upstash/cache": {
3081
+ "import": {
3082
+ "types": "./cache/upstash/cache.d.ts",
3083
+ "default": "./cache/upstash/cache.js"
3084
+ },
3085
+ "require": {
3086
+ "types": "./cache/upstash/cache.d.cts",
3087
+ "default": "./cache/upstash/cache.cjs"
3088
+ },
3089
+ "types": "./cache/upstash/cache.d.ts",
3090
+ "default": "./cache/upstash/cache.js"
3091
+ },
3092
+ "./cache/upstash": {
3093
+ "import": {
3094
+ "types": "./cache/upstash/index.d.ts",
3095
+ "default": "./cache/upstash/index.js"
3096
+ },
3097
+ "require": {
3098
+ "types": "./cache/upstash/index.d.cts",
3099
+ "default": "./cache/upstash/index.cjs"
3100
+ },
3101
+ "types": "./cache/upstash/index.d.ts",
3102
+ "default": "./cache/upstash/index.js"
3103
+ },
3039
3104
  "./gel-core/columns/all": {
3040
3105
  "import": {
3041
3106
  "types": "./gel-core/columns/all.d.ts",
package/pg-core/db.cjs CHANGED
@@ -116,6 +116,7 @@ class PgDatabase {
116
116
  $count(source, filters) {
117
117
  return new import_count.PgCountBuilder({ source, filters, session: this.session });
118
118
  }
119
+ $cache;
119
120
  /**
120
121
  * Incorporates a previously defined CTE (using `$with`) into the main query.
121
122
  *