drizzle-orm 0.43.0 → 0.43.1-26a0497

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 (491) 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 +69 -4
  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 +15 -6
  259. package/pg-core/query-builders/select.d.ts +15 -6
  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/schema.cjs +2 -2
  269. package/pg-core/schema.cjs.map +1 -1
  270. package/pg-core/schema.d.cts +4 -1
  271. package/pg-core/schema.d.ts +4 -1
  272. package/pg-core/schema.js +2 -2
  273. package/pg-core/schema.js.map +1 -1
  274. package/pg-core/session.cjs +52 -1
  275. package/pg-core/session.cjs.map +1 -1
  276. package/pg-core/session.d.cts +14 -3
  277. package/pg-core/session.d.ts +14 -3
  278. package/pg-core/session.js +53 -2
  279. package/pg-core/session.js.map +1 -1
  280. package/pg-core/utils.cjs +16 -0
  281. package/pg-core/utils.cjs.map +1 -1
  282. package/pg-core/utils.d.cts +8 -4
  283. package/pg-core/utils.d.ts +8 -4
  284. package/pg-core/utils.js +16 -1
  285. package/pg-core/utils.js.map +1 -1
  286. package/pg-proxy/driver.cjs +7 -2
  287. package/pg-proxy/driver.cjs.map +1 -1
  288. package/pg-proxy/driver.js +7 -2
  289. package/pg-proxy/driver.js.map +1 -1
  290. package/pg-proxy/session.cjs +15 -5
  291. package/pg-proxy/session.cjs.map +1 -1
  292. package/pg-proxy/session.d.cts +12 -2
  293. package/pg-proxy/session.d.ts +12 -2
  294. package/pg-proxy/session.js +15 -5
  295. package/pg-proxy/session.js.map +1 -1
  296. package/pglite/driver.cjs +9 -2
  297. package/pglite/driver.cjs.map +1 -1
  298. package/pglite/driver.d.cts +2 -0
  299. package/pglite/driver.d.ts +2 -0
  300. package/pglite/driver.js +9 -2
  301. package/pglite/driver.js.map +1 -1
  302. package/pglite/session.cjs +19 -7
  303. package/pglite/session.cjs.map +1 -1
  304. package/pglite/session.d.cts +12 -2
  305. package/pglite/session.d.ts +12 -2
  306. package/pglite/session.js +19 -7
  307. package/pglite/session.js.map +1 -1
  308. package/planetscale-serverless/driver.cjs +5 -1
  309. package/planetscale-serverless/driver.cjs.map +1 -1
  310. package/planetscale-serverless/driver.d.cts +1 -0
  311. package/planetscale-serverless/driver.d.ts +1 -0
  312. package/planetscale-serverless/driver.js +5 -1
  313. package/planetscale-serverless/driver.js.map +1 -1
  314. package/planetscale-serverless/session.cjs +15 -5
  315. package/planetscale-serverless/session.cjs.map +1 -1
  316. package/planetscale-serverless/session.d.cts +12 -2
  317. package/planetscale-serverless/session.d.ts +12 -2
  318. package/planetscale-serverless/session.js +15 -5
  319. package/planetscale-serverless/session.js.map +1 -1
  320. package/postgres-js/driver.cjs +5 -1
  321. package/postgres-js/driver.cjs.map +1 -1
  322. package/postgres-js/driver.js +5 -1
  323. package/postgres-js/driver.js.map +1 -1
  324. package/postgres-js/session.cjs +18 -6
  325. package/postgres-js/session.cjs.map +1 -1
  326. package/postgres-js/session.d.cts +12 -2
  327. package/postgres-js/session.d.ts +12 -2
  328. package/postgres-js/session.js +18 -6
  329. package/postgres-js/session.js.map +1 -1
  330. package/prisma/mysql/session.cjs +1 -1
  331. package/prisma/mysql/session.cjs.map +1 -1
  332. package/prisma/mysql/session.js +1 -1
  333. package/prisma/mysql/session.js.map +1 -1
  334. package/prisma/pg/session.cjs +1 -1
  335. package/prisma/pg/session.cjs.map +1 -1
  336. package/prisma/pg/session.js +1 -1
  337. package/prisma/pg/session.js.map +1 -1
  338. package/query-builders/query-builder.cjs.map +1 -1
  339. package/query-builders/query-builder.d.cts +2 -1
  340. package/query-builders/query-builder.d.ts +2 -1
  341. package/query-builders/query-builder.js.map +1 -1
  342. package/singlestore/driver.cjs +12 -2
  343. package/singlestore/driver.cjs.map +1 -1
  344. package/singlestore/driver.d.cts +2 -0
  345. package/singlestore/driver.d.ts +2 -0
  346. package/singlestore/driver.js +12 -2
  347. package/singlestore/driver.js.map +1 -1
  348. package/singlestore/session.cjs +15 -5
  349. package/singlestore/session.cjs.map +1 -1
  350. package/singlestore/session.d.cts +12 -2
  351. package/singlestore/session.d.ts +12 -2
  352. package/singlestore/session.js +15 -5
  353. package/singlestore/session.js.map +1 -1
  354. package/singlestore-core/db.cjs +1 -0
  355. package/singlestore-core/db.cjs.map +1 -1
  356. package/singlestore-core/db.d.cts +4 -0
  357. package/singlestore-core/db.d.ts +4 -0
  358. package/singlestore-core/db.js +1 -0
  359. package/singlestore-core/db.js.map +1 -1
  360. package/singlestore-core/query-builders/delete.cjs +9 -1
  361. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  362. package/singlestore-core/query-builders/delete.js +9 -1
  363. package/singlestore-core/query-builders/delete.js.map +1 -1
  364. package/singlestore-core/query-builders/insert.cjs +6 -1
  365. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  366. package/singlestore-core/query-builders/insert.js +6 -1
  367. package/singlestore-core/query-builders/insert.js.map +1 -1
  368. package/singlestore-core/query-builders/select.cjs +28 -3
  369. package/singlestore-core/query-builders/select.cjs.map +1 -1
  370. package/singlestore-core/query-builders/select.d.cts +9 -0
  371. package/singlestore-core/query-builders/select.d.ts +9 -0
  372. package/singlestore-core/query-builders/select.js +28 -3
  373. package/singlestore-core/query-builders/select.js.map +1 -1
  374. package/singlestore-core/query-builders/update.cjs +9 -1
  375. package/singlestore-core/query-builders/update.cjs.map +1 -1
  376. package/singlestore-core/query-builders/update.js +9 -1
  377. package/singlestore-core/query-builders/update.js.map +1 -1
  378. package/singlestore-core/session.cjs +53 -0
  379. package/singlestore-core/session.cjs.map +1 -1
  380. package/singlestore-core/session.d.cts +14 -2
  381. package/singlestore-core/session.d.ts +14 -2
  382. package/singlestore-core/session.js +54 -1
  383. package/singlestore-core/session.js.map +1 -1
  384. package/singlestore-core/utils.cjs +16 -0
  385. package/singlestore-core/utils.cjs.map +1 -1
  386. package/singlestore-core/utils.d.cts +3 -0
  387. package/singlestore-core/utils.d.ts +3 -0
  388. package/singlestore-core/utils.js +15 -0
  389. package/singlestore-core/utils.js.map +1 -1
  390. package/sql/sql.cjs +10 -0
  391. package/sql/sql.cjs.map +1 -1
  392. package/sql/sql.js +10 -0
  393. package/sql/sql.js.map +1 -1
  394. package/sqlite-core/db.cjs +1 -0
  395. package/sqlite-core/db.cjs.map +1 -1
  396. package/sqlite-core/db.d.cts +4 -0
  397. package/sqlite-core/db.d.ts +4 -0
  398. package/sqlite-core/db.js +1 -0
  399. package/sqlite-core/db.js.map +1 -1
  400. package/sqlite-core/query-builders/delete.cjs +7 -1
  401. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  402. package/sqlite-core/query-builders/delete.js +7 -1
  403. package/sqlite-core/query-builders/delete.js.map +1 -1
  404. package/sqlite-core/query-builders/insert.cjs +7 -1
  405. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  406. package/sqlite-core/query-builders/insert.js +7 -1
  407. package/sqlite-core/query-builders/insert.js.map +1 -1
  408. package/sqlite-core/query-builders/select.cjs +31 -3
  409. package/sqlite-core/query-builders/select.cjs.map +1 -1
  410. package/sqlite-core/query-builders/select.d.cts +9 -0
  411. package/sqlite-core/query-builders/select.d.ts +9 -0
  412. package/sqlite-core/query-builders/select.js +31 -3
  413. package/sqlite-core/query-builders/select.js.map +1 -1
  414. package/sqlite-core/query-builders/update.cjs +7 -1
  415. package/sqlite-core/query-builders/update.cjs.map +1 -1
  416. package/sqlite-core/query-builders/update.js +7 -1
  417. package/sqlite-core/query-builders/update.js.map +1 -1
  418. package/sqlite-core/session.cjs +62 -3
  419. package/sqlite-core/session.cjs.map +1 -1
  420. package/sqlite-core/session.d.cts +18 -4
  421. package/sqlite-core/session.d.ts +18 -4
  422. package/sqlite-core/session.js +63 -4
  423. package/sqlite-core/session.js.map +1 -1
  424. package/sqlite-core/utils.cjs +16 -0
  425. package/sqlite-core/utils.cjs.map +1 -1
  426. package/sqlite-core/utils.d.cts +6 -2
  427. package/sqlite-core/utils.d.ts +6 -2
  428. package/sqlite-core/utils.js +15 -0
  429. package/sqlite-core/utils.js.map +1 -1
  430. package/sqlite-proxy/driver.cjs +9 -2
  431. package/sqlite-proxy/driver.cjs.map +1 -1
  432. package/sqlite-proxy/driver.js +9 -2
  433. package/sqlite-proxy/driver.js.map +1 -1
  434. package/sqlite-proxy/session.cjs +22 -8
  435. package/sqlite-proxy/session.cjs.map +1 -1
  436. package/sqlite-proxy/session.d.cts +12 -2
  437. package/sqlite-proxy/session.d.ts +12 -2
  438. package/sqlite-proxy/session.js +22 -8
  439. package/sqlite-proxy/session.js.map +1 -1
  440. package/subquery.cjs +4 -3
  441. package/subquery.cjs.map +1 -1
  442. package/subquery.d.cts +2 -1
  443. package/subquery.d.ts +2 -1
  444. package/subquery.js +4 -3
  445. package/subquery.js.map +1 -1
  446. package/tidb-serverless/driver.cjs +5 -1
  447. package/tidb-serverless/driver.cjs.map +1 -1
  448. package/tidb-serverless/driver.d.cts +1 -0
  449. package/tidb-serverless/driver.d.ts +1 -0
  450. package/tidb-serverless/driver.js +5 -1
  451. package/tidb-serverless/driver.js.map +1 -1
  452. package/tidb-serverless/session.cjs +15 -5
  453. package/tidb-serverless/session.cjs.map +1 -1
  454. package/tidb-serverless/session.d.cts +12 -2
  455. package/tidb-serverless/session.d.ts +12 -2
  456. package/tidb-serverless/session.js +15 -5
  457. package/tidb-serverless/session.js.map +1 -1
  458. package/utils.cjs +22 -0
  459. package/utils.cjs.map +1 -1
  460. package/utils.d.cts +3 -0
  461. package/utils.d.ts +3 -0
  462. package/utils.js +11 -0
  463. package/utils.js.map +1 -1
  464. package/vercel-postgres/driver.cjs +9 -2
  465. package/vercel-postgres/driver.cjs.map +1 -1
  466. package/vercel-postgres/driver.d.cts +2 -0
  467. package/vercel-postgres/driver.d.ts +2 -0
  468. package/vercel-postgres/driver.js +9 -2
  469. package/vercel-postgres/driver.js.map +1 -1
  470. package/vercel-postgres/session.cjs +21 -7
  471. package/vercel-postgres/session.cjs.map +1 -1
  472. package/vercel-postgres/session.d.cts +12 -2
  473. package/vercel-postgres/session.d.ts +12 -2
  474. package/vercel-postgres/session.js +21 -7
  475. package/vercel-postgres/session.js.map +1 -1
  476. package/version.cjs +1 -1
  477. package/version.d.cts +1 -1
  478. package/version.d.ts +1 -1
  479. package/version.js +1 -1
  480. package/xata-http/driver.cjs +7 -2
  481. package/xata-http/driver.cjs.map +1 -1
  482. package/xata-http/driver.d.cts +2 -0
  483. package/xata-http/driver.d.ts +2 -0
  484. package/xata-http/driver.js +7 -2
  485. package/xata-http/driver.js.map +1 -1
  486. package/xata-http/session.cjs +21 -7
  487. package/xata-http/session.cjs.map +1 -1
  488. package/xata-http/session.d.cts +12 -2
  489. package/xata-http/session.d.ts +12 -2
  490. package/xata-http/session.js +21 -7
  491. package/xata-http/session.js.map +1 -1
@@ -1,4 +1,6 @@
1
1
  import type { Row, RowList, Sql, TransactionSql } from 'postgres';
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 { PgDialect } from "../pg-core/dialect.cjs";
@@ -18,22 +20,30 @@ export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig> exte
18
20
  private _isResponseInArrayMode;
19
21
  private customResultMapper?;
20
22
  static readonly [entityKind]: string;
21
- constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
23
+ constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
24
+ type: 'select' | 'update' | 'delete' | 'insert';
25
+ tables: string[];
26
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
22
27
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
23
28
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
24
29
  }
25
30
  export interface PostgresJsSessionOptions {
26
31
  logger?: Logger;
32
+ cache?: Cache;
27
33
  }
28
34
  export declare class PostgresJsSession<TSQL extends Sql, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {
29
35
  client: TSQL;
30
36
  private schema;
31
37
  static readonly [entityKind]: string;
32
38
  logger: Logger;
39
+ private cache;
33
40
  constructor(client: TSQL, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined,
34
41
  /** @internal */
35
42
  options?: PostgresJsSessionOptions);
36
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
43
+ prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
44
+ type: 'select' | 'update' | 'delete' | 'insert';
45
+ tables: string[];
46
+ }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
37
47
  query(query: string, params: unknown[]): Promise<RowList<Row[]>>;
38
48
  queryObjects<T extends Row>(query: string, params: unknown[]): Promise<RowList<T[]>>;
39
49
  transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
@@ -1,4 +1,6 @@
1
1
  import type { Row, RowList, Sql, TransactionSql } from 'postgres';
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 { PgDialect } from "../pg-core/dialect.js";
@@ -18,22 +20,30 @@ export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig> exte
18
20
  private _isResponseInArrayMode;
19
21
  private customResultMapper?;
20
22
  static readonly [entityKind]: string;
21
- constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
23
+ constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
24
+ type: 'select' | 'update' | 'delete' | 'insert';
25
+ tables: string[];
26
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
22
27
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
23
28
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
24
29
  }
25
30
  export interface PostgresJsSessionOptions {
26
31
  logger?: Logger;
32
+ cache?: Cache;
27
33
  }
28
34
  export declare class PostgresJsSession<TSQL extends Sql, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {
29
35
  client: TSQL;
30
36
  private schema;
31
37
  static readonly [entityKind]: string;
32
38
  logger: Logger;
39
+ private cache;
33
40
  constructor(client: TSQL, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined,
34
41
  /** @internal */
35
42
  options?: PostgresJsSessionOptions);
36
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
43
+ prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
44
+ type: 'select' | 'update' | 'delete' | 'insert';
45
+ tables: string[];
46
+ }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
37
47
  query(query: string, params: unknown[]): Promise<RowList<Row[]>>;
38
48
  queryObjects<T extends Row>(query: string, params: unknown[]): Promise<RowList<T[]>>;
39
49
  transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
@@ -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 { PgTransaction } from "../pg-core/index.js";
@@ -6,8 +7,8 @@ import { fillPlaceholders } from "../sql/sql.js";
6
7
  import { tracer } from "../tracing.js";
7
8
  import { mapResultRow } from "../utils.js";
8
9
  class PostgresJsPreparedQuery extends PgPreparedQuery {
9
- constructor(client, queryString, params, logger, fields, _isResponseInArrayMode, customResultMapper) {
10
- super({ sql: queryString, params });
10
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper) {
11
+ super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
11
12
  this.client = client;
12
13
  this.queryString = queryString;
13
14
  this.params = params;
@@ -28,7 +29,9 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
28
29
  const { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;
29
30
  if (!fields && !customResultMapper) {
30
31
  return tracer.startActiveSpan("drizzle.driver.execute", () => {
31
- return client.unsafe(query, params);
32
+ return this.queryWithCache(query, params, async () => {
33
+ return await client.unsafe(query, params);
34
+ });
32
35
  });
33
36
  }
34
37
  const rows = await tracer.startActiveSpan("drizzle.driver.execute", () => {
@@ -36,7 +39,9 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
36
39
  "drizzle.query.text": query,
37
40
  "drizzle.query.params": JSON.stringify(params)
38
41
  });
39
- return client.unsafe(query, params).values();
42
+ return this.queryWithCache(query, params, async () => {
43
+ return await client.unsafe(query, params).values();
44
+ });
40
45
  });
41
46
  return tracer.startActiveSpan("drizzle.mapResponse", () => {
42
47
  return customResultMapper ? customResultMapper(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
@@ -56,7 +61,9 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
56
61
  "drizzle.query.text": this.queryString,
57
62
  "drizzle.query.params": JSON.stringify(params)
58
63
  });
59
- return this.client.unsafe(this.queryString, params);
64
+ return this.queryWithCache(this.queryString, params, async () => {
65
+ return this.client.unsafe(this.queryString, params);
66
+ });
60
67
  });
61
68
  });
62
69
  }
@@ -72,15 +79,20 @@ class PostgresJsSession extends PgSession {
72
79
  this.schema = schema;
73
80
  this.options = options;
74
81
  this.logger = options.logger ?? new NoopLogger();
82
+ this.cache = options.cache ?? new NoopCache();
75
83
  }
76
84
  static [entityKind] = "PostgresJsSession";
77
85
  logger;
78
- prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper) {
86
+ cache;
87
+ prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
79
88
  return new PostgresJsPreparedQuery(
80
89
  this.client,
81
90
  query.sql,
82
91
  query.params,
83
92
  this.logger,
93
+ this.cache,
94
+ queryMetadata,
95
+ cacheConfig,
84
96
  fields,
85
97
  isResponseInArrayMode,
86
98
  customResultMapper
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]).values();\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TSchema>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\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 { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\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\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.unsafe(query, params as any[]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.unsafe(query, params as any[]).values();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\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 PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\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): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\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\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TSchema>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
@@ -28,7 +28,7 @@ var import_mysql_core = require("../../mysql-core/index.cjs");
28
28
  var import_sql = require("../../sql/sql.cjs");
29
29
  class PrismaMySqlPreparedQuery extends import_mysql_core.MySqlPreparedQuery {
30
30
  constructor(prisma, query, logger) {
31
- super();
31
+ super({}, void 0, void 0);
32
32
  this.prisma = prisma;
33
33
  this.query = query;
34
34
  this.logger = logger;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prisma/mysql/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tMySqlDialect,\n\tMySqlPreparedQueryConfig,\n\tMySqlPreparedQueryHKT,\n\tMySqlQueryResultHKT,\n\tMySqlTransaction,\n\tMySqlTransactionConfig,\n} from '~/mysql-core/index.ts';\nimport { MySqlPreparedQuery, MySqlSession } from '~/mysql-core/index.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport class PrismaMySqlPreparedQuery<T> extends MySqlPreparedQuery<MySqlPreparedQueryConfig & { execute: T }> {\n\toverride iterator(_placeholderValues?: Record<string, unknown> | undefined): AsyncGenerator<unknown, any, unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly query: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper();\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n}\n\nexport interface PrismaMySqlSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaMySqlSession extends MySqlSession {\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<MySqlPreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride all<T = unknown>(_query: SQL): Promise<T[]> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PrismaMySqlPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (\n\t\t\ttx: MySqlTransaction<\n\t\t\t\tPrismaMySqlQueryResultHKT,\n\t\t\t\tPrismaMySqlPreparedQueryHKT,\n\t\t\t\tRecord<string, never>,\n\t\t\t\tRecord<string, never>\n\t\t\t>,\n\t\t) => Promise<T>,\n\t\t_config?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: [];\n}\n\nexport interface PrismaMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PrismaMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,oBAAwC;AASxC,wBAAiD;AACjD,iBAAiC;AAI1B,MAAM,iCAAoC,qCAA8D;AAAA,EAM9G,YACkB,QACA,OACA,QAChB;AACD,UAAM;AAJW;AACA;AACA;AAAA,EAGlB;AAAA,EAXS,SAAS,oBAAiG;AAClH,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AACD;AAMO,MAAM,2BAA2B,+BAAa;AAAA,EAKpD,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,wBAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAwD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EAC7G;AAAA,EAES,IAAiB,QAA2B;AACpD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,aACR,OACwB;AACxB,WAAO,IAAI,yBAAyB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACpE;AAAA,EAES,YACR,cAQA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/prisma/mysql/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tMySqlDialect,\n\tMySqlPreparedQueryConfig,\n\tMySqlPreparedQueryHKT,\n\tMySqlQueryResultHKT,\n\tMySqlTransaction,\n\tMySqlTransactionConfig,\n} from '~/mysql-core/index.ts';\nimport { MySqlPreparedQuery, MySqlSession } from '~/mysql-core/index.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport class PrismaMySqlPreparedQuery<T> extends MySqlPreparedQuery<MySqlPreparedQueryConfig & { execute: T }> {\n\toverride iterator(_placeholderValues?: Record<string, unknown> | undefined): AsyncGenerator<unknown, any, unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly query: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper({} as any, undefined, undefined);\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n}\n\nexport interface PrismaMySqlSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaMySqlSession extends MySqlSession {\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<MySqlPreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride all<T = unknown>(_query: SQL): Promise<T[]> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PrismaMySqlPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (\n\t\t\ttx: MySqlTransaction<\n\t\t\t\tPrismaMySqlQueryResultHKT,\n\t\t\t\tPrismaMySqlPreparedQueryHKT,\n\t\t\t\tRecord<string, never>,\n\t\t\t\tRecord<string, never>\n\t\t\t>,\n\t\t) => Promise<T>,\n\t\t_config?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: [];\n}\n\nexport interface PrismaMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PrismaMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,oBAAwC;AASxC,wBAAiD;AACjD,iBAAiC;AAI1B,MAAM,iCAAoC,qCAA8D;AAAA,EAM9G,YACkB,QACA,OACA,QAChB;AACD,UAAM,CAAC,GAAU,QAAW,MAAS;AAJpB;AACA;AACA;AAAA,EAGlB;AAAA,EAXS,SAAS,oBAAiG;AAClH,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AACD;AAMO,MAAM,2BAA2B,+BAAa;AAAA,EAKpD,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,wBAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAwD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EAC7G;AAAA,EAES,IAAiB,QAA2B;AACpD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,aACR,OACwB;AACxB,WAAO,IAAI,yBAAyB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACpE;AAAA,EAES,YACR,cAQA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
@@ -4,7 +4,7 @@ import { MySqlPreparedQuery, MySqlSession } from "../../mysql-core/index.js";
4
4
  import { fillPlaceholders } from "../../sql/sql.js";
5
5
  class PrismaMySqlPreparedQuery extends MySqlPreparedQuery {
6
6
  constructor(prisma, query, logger) {
7
- super();
7
+ super({}, void 0, void 0);
8
8
  this.prisma = prisma;
9
9
  this.query = query;
10
10
  this.logger = logger;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prisma/mysql/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tMySqlDialect,\n\tMySqlPreparedQueryConfig,\n\tMySqlPreparedQueryHKT,\n\tMySqlQueryResultHKT,\n\tMySqlTransaction,\n\tMySqlTransactionConfig,\n} from '~/mysql-core/index.ts';\nimport { MySqlPreparedQuery, MySqlSession } from '~/mysql-core/index.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport class PrismaMySqlPreparedQuery<T> extends MySqlPreparedQuery<MySqlPreparedQueryConfig & { execute: T }> {\n\toverride iterator(_placeholderValues?: Record<string, unknown> | undefined): AsyncGenerator<unknown, any, unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly query: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper();\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n}\n\nexport interface PrismaMySqlSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaMySqlSession extends MySqlSession {\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<MySqlPreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride all<T = unknown>(_query: SQL): Promise<T[]> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PrismaMySqlPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (\n\t\t\ttx: MySqlTransaction<\n\t\t\t\tPrismaMySqlQueryResultHKT,\n\t\t\t\tPrismaMySqlPreparedQueryHKT,\n\t\t\t\tRecord<string, never>,\n\t\t\t\tRecord<string, never>\n\t\t\t>,\n\t\t) => Promise<T>,\n\t\t_config?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: [];\n}\n\nexport interface PrismaMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PrismaMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAsB,kBAAkB;AASxC,SAAS,oBAAoB,oBAAoB;AACjD,SAAS,wBAAwB;AAI1B,MAAM,iCAAoC,mBAA8D;AAAA,EAM9G,YACkB,QACA,OACA,QAChB;AACD,UAAM;AAJW;AACA;AACA;AAAA,EAGlB;AAAA,EAXS,SAAS,oBAAiG;AAClH,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AACD;AAMO,MAAM,2BAA2B,aAAa;AAAA,EAKpD,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,UAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAwD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EAC7G;AAAA,EAES,IAAiB,QAA2B;AACpD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,aACR,OACwB;AACxB,WAAO,IAAI,yBAAyB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACpE;AAAA,EAES,YACR,cAQA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/prisma/mysql/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tMySqlDialect,\n\tMySqlPreparedQueryConfig,\n\tMySqlPreparedQueryHKT,\n\tMySqlQueryResultHKT,\n\tMySqlTransaction,\n\tMySqlTransactionConfig,\n} from '~/mysql-core/index.ts';\nimport { MySqlPreparedQuery, MySqlSession } from '~/mysql-core/index.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport class PrismaMySqlPreparedQuery<T> extends MySqlPreparedQuery<MySqlPreparedQueryConfig & { execute: T }> {\n\toverride iterator(_placeholderValues?: Record<string, unknown> | undefined): AsyncGenerator<unknown, any, unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly query: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper({} as any, undefined, undefined);\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n}\n\nexport interface PrismaMySqlSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaMySqlSession extends MySqlSession {\n\tstatic override readonly [entityKind]: string = 'PrismaMySqlSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<MySqlPreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride all<T = unknown>(_query: SQL): Promise<T[]> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new PrismaMySqlPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (\n\t\t\ttx: MySqlTransaction<\n\t\t\t\tPrismaMySqlQueryResultHKT,\n\t\t\t\tPrismaMySqlPreparedQueryHKT,\n\t\t\t\tRecord<string, never>,\n\t\t\t\tRecord<string, never>\n\t\t\t>,\n\t\t) => Promise<T>,\n\t\t_config?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: [];\n}\n\nexport interface PrismaMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: PrismaMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAsB,kBAAkB;AASxC,SAAS,oBAAoB,oBAAoB;AACjD,SAAS,wBAAwB;AAI1B,MAAM,iCAAoC,mBAA8D;AAAA,EAM9G,YACkB,QACA,OACA,QAChB;AACD,UAAM,CAAC,GAAU,QAAW,MAAS;AAJpB;AACA;AACA;AAAA,EAGlB;AAAA,EAXS,SAAS,oBAAiG;AAClH,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AACD;AAMO,MAAM,2BAA2B,aAAa;AAAA,EAKpD,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,UAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAwD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EAC7G;AAAA,EAES,IAAiB,QAA2B;AACpD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,aACR,OACwB;AACxB,WAAO,IAAI,yBAAyB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACpE;AAAA,EAES,YACR,cAQA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
@@ -28,7 +28,7 @@ var import_pg_core = require("../../pg-core/index.cjs");
28
28
  var import_sql = require("../../sql/sql.cjs");
29
29
  class PrismaPgPreparedQuery extends import_pg_core.PgPreparedQuery {
30
30
  constructor(prisma, query, logger) {
31
- super(query);
31
+ super(query, {}, void 0, void 0);
32
32
  this.prisma = prisma;
33
33
  this.logger = logger;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prisma/pg/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tPgDialect,\n\tPgQueryResultHKT,\n\tPgTransaction,\n\tPgTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/pg-core/index.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/index.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\n\nexport class PrismaPgPreparedQuery<T> extends PgPreparedQuery<PreparedQueryConfig & { execute: T }> {\n\tstatic override readonly [entityKind]: string = 'PrismaPgPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tquery: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper(query);\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n\n\toverride all(): Promise<unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride isResponseInArrayMode(): boolean {\n\t\treturn false;\n\t}\n}\n\nexport interface PrismaPgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaPgSession extends PgSession {\n\tstatic override readonly [entityKind]: string = 'PrismaPgSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaPgSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query): PgPreparedQuery<T> {\n\t\treturn new PrismaPgPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (tx: PgTransaction<PgQueryResultHKT, Record<string, never>, Record<string, never>>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,oBAAwC;AAQxC,qBAA2C;AAE3C,iBAAiC;AAE1B,MAAM,8BAAiC,+BAAsD;AAAA,EAGnG,YACkB,QACjB,OACiB,QAChB;AACD,UAAM,KAAK;AAJM;AAEA;AAAA,EAGlB;AAAA,EARA,QAA0B,wBAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AAAA,EAES,MAAwB;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,wBAAiC;AACzC,WAAO;AAAA,EACR;AACD;AAMO,MAAM,wBAAwB,yBAAU;AAAA,EAK9C,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,wBAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAmD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EACxG;AAAA,EAES,aAAkE,OAAkC;AAC5G,WAAO,IAAI,sBAAsB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACjE;AAAA,EAES,YACR,cACA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/prisma/pg/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tPgDialect,\n\tPgQueryResultHKT,\n\tPgTransaction,\n\tPgTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/pg-core/index.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/index.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\n\nexport class PrismaPgPreparedQuery<T> extends PgPreparedQuery<PreparedQueryConfig & { execute: T }> {\n\tstatic override readonly [entityKind]: string = 'PrismaPgPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tquery: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper(query, {} as any, undefined, undefined);\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n\n\toverride all(): Promise<unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride isResponseInArrayMode(): boolean {\n\t\treturn false;\n\t}\n}\n\nexport interface PrismaPgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaPgSession extends PgSession {\n\tstatic override readonly [entityKind]: string = 'PrismaPgSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaPgSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query): PgPreparedQuery<T> {\n\t\treturn new PrismaPgPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (tx: PgTransaction<PgQueryResultHKT, Record<string, never>, Record<string, never>>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,oBAAwC;AAQxC,qBAA2C;AAE3C,iBAAiC;AAE1B,MAAM,8BAAiC,+BAAsD;AAAA,EAGnG,YACkB,QACjB,OACiB,QAChB;AACD,UAAM,OAAO,CAAC,GAAU,QAAW,MAAS;AAJ3B;AAEA;AAAA,EAGlB;AAAA,EARA,QAA0B,wBAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,aAAS,6BAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AAAA,EAES,MAAwB;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,wBAAiC;AACzC,WAAO;AAAA,EACR;AACD;AAMO,MAAM,wBAAwB,yBAAU;AAAA,EAK9C,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,wBAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAmD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EACxG;AAAA,EAES,aAAkE,OAAkC;AAC5G,WAAO,IAAI,sBAAsB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACjE;AAAA,EAES,YACR,cACA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
@@ -4,7 +4,7 @@ import { PgPreparedQuery, PgSession } from "../../pg-core/index.js";
4
4
  import { fillPlaceholders } from "../../sql/sql.js";
5
5
  class PrismaPgPreparedQuery extends PgPreparedQuery {
6
6
  constructor(prisma, query, logger) {
7
- super(query);
7
+ super(query, {}, void 0, void 0);
8
8
  this.prisma = prisma;
9
9
  this.logger = logger;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prisma/pg/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tPgDialect,\n\tPgQueryResultHKT,\n\tPgTransaction,\n\tPgTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/pg-core/index.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/index.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\n\nexport class PrismaPgPreparedQuery<T> extends PgPreparedQuery<PreparedQueryConfig & { execute: T }> {\n\tstatic override readonly [entityKind]: string = 'PrismaPgPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tquery: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper(query);\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n\n\toverride all(): Promise<unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride isResponseInArrayMode(): boolean {\n\t\treturn false;\n\t}\n}\n\nexport interface PrismaPgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaPgSession extends PgSession {\n\tstatic override readonly [entityKind]: string = 'PrismaPgSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaPgSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query): PgPreparedQuery<T> {\n\t\treturn new PrismaPgPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (tx: PgTransaction<PgQueryResultHKT, Record<string, never>, Record<string, never>>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: [];\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAsB,kBAAkB;AAQxC,SAAS,iBAAiB,iBAAiB;AAE3C,SAAS,wBAAwB;AAE1B,MAAM,8BAAiC,gBAAsD;AAAA,EAGnG,YACkB,QACjB,OACiB,QAChB;AACD,UAAM,KAAK;AAJM;AAEA;AAAA,EAGlB;AAAA,EARA,QAA0B,UAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AAAA,EAES,MAAwB;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,wBAAiC;AACzC,WAAO;AAAA,EACR;AACD;AAMO,MAAM,wBAAwB,UAAU;AAAA,EAK9C,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,UAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAmD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EACxG;AAAA,EAES,aAAkE,OAAkC;AAC5G,WAAO,IAAI,sBAAsB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACjE;AAAA,EAES,YACR,cACA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/prisma/pg/session.ts"],"sourcesContent":["import type { PrismaClient } from '@prisma/client/extension';\n\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type {\n\tPgDialect,\n\tPgQueryResultHKT,\n\tPgTransaction,\n\tPgTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/pg-core/index.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/index.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\n\nexport class PrismaPgPreparedQuery<T> extends PgPreparedQuery<PreparedQueryConfig & { execute: T }> {\n\tstatic override readonly [entityKind]: string = 'PrismaPgPreparedQuery';\n\n\tconstructor(\n\t\tprivate readonly prisma: PrismaClient,\n\t\tquery: Query,\n\t\tprivate readonly logger: Logger,\n\t) {\n\t\tsuper(query, {} as any, undefined, undefined);\n\t}\n\n\toverride execute(placeholderValues?: Record<string, unknown>): Promise<T> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.prisma.$queryRawUnsafe(this.query.sql, ...params);\n\t}\n\n\toverride all(): Promise<unknown> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\toverride isResponseInArrayMode(): boolean {\n\t\treturn false;\n\t}\n}\n\nexport interface PrismaPgSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PrismaPgSession extends PgSession {\n\tstatic override readonly [entityKind]: string = 'PrismaPgSession';\n\n\tprivate readonly logger: Logger;\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tprivate readonly prisma: PrismaClient,\n\t\tprivate readonly options: PrismaPgSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(this.dialect.sqlToQuery(query)).execute();\n\t}\n\n\toverride prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query): PgPreparedQuery<T> {\n\t\treturn new PrismaPgPreparedQuery(this.prisma, query, this.logger);\n\t}\n\n\toverride transaction<T>(\n\t\t_transaction: (tx: PgTransaction<PgQueryResultHKT, Record<string, never>, Record<string, never>>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n}\n\nexport interface PrismaPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: [];\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAsB,kBAAkB;AAQxC,SAAS,iBAAiB,iBAAiB;AAE3C,SAAS,wBAAwB;AAE1B,MAAM,8BAAiC,gBAAsD;AAAA,EAGnG,YACkB,QACjB,OACiB,QAChB;AACD,UAAM,OAAO,CAAC,GAAU,QAAW,MAAS;AAJ3B;AAEA;AAAA,EAGlB;AAAA,EARA,QAA0B,UAAU,IAAY;AAAA,EAUvC,QAAQ,mBAAyD;AACzE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAC3C,WAAO,KAAK,OAAO,gBAAgB,KAAK,MAAM,KAAK,GAAG,MAAM;AAAA,EAC7D;AAAA,EAES,MAAwB;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAES,wBAAiC;AACzC,WAAO;AAAA,EACR;AACD;AAMO,MAAM,wBAAwB,UAAU;AAAA,EAK9C,YACC,SACiB,QACA,SAChB;AACD,UAAM,OAAO;AAHI;AACA;AAGjB,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAXA,QAA0B,UAAU,IAAY;AAAA,EAE/B;AAAA,EAWR,QAAW,OAAwB;AAC3C,WAAO,KAAK,aAAmD,KAAK,QAAQ,WAAW,KAAK,CAAC,EAAE,QAAQ;AAAA,EACxG;AAAA,EAES,aAAkE,OAAkC;AAC5G,WAAO,IAAI,sBAAsB,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,EACjE;AAAA,EAES,YACR,cACA,SACa;AACb,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/sql/index.ts';\n\nexport abstract class TypedQueryBuilder<TSelection, TResult = unknown> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'TypedQueryBuilder';\n\n\tdeclare _: {\n\t\tselectedFields: TSelection;\n\t\tresult: TResult;\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): TSelection {\n\t\treturn this._.selectedFields;\n\t}\n\n\tabstract getSQL(): SQL;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAGpB,MAAe,kBAAuE;AAAA,EAC5F,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAQvC,oBAAgC;AAC/B,WAAO,KAAK,EAAE;AAAA,EACf;AAGD;","names":[]}
1
+ {"version":3,"sources":["../../src/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/sql/index.ts';\n\nexport abstract class TypedQueryBuilder<TSelection, TResult = unknown, TConfig = unknown> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'TypedQueryBuilder';\n\n\tdeclare _: {\n\t\tselectedFields: TSelection;\n\t\tresult: TResult;\n\t\tconfig?: TConfig;\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): TSelection {\n\t\treturn this._.selectedFields;\n\t}\n\n\tabstract getSQL(): SQL;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAGpB,MAAe,kBAA0F;AAAA,EAC/G,QAAiB,wBAAU,IAAY;AAAA;AAAA,EASvC,oBAAgC;AAC/B,WAAO,KAAK,EAAE;AAAA,EACf;AAGD;","names":[]}
@@ -1,10 +1,11 @@
1
1
  import { entityKind } from "../entity.cjs";
2
2
  import type { SQL, SQLWrapper } from "../sql/index.cjs";
3
- export declare abstract class TypedQueryBuilder<TSelection, TResult = unknown> implements SQLWrapper {
3
+ export declare abstract class TypedQueryBuilder<TSelection, TResult = unknown, TConfig = unknown> implements SQLWrapper {
4
4
  static readonly [entityKind]: string;
5
5
  _: {
6
6
  selectedFields: TSelection;
7
7
  result: TResult;
8
+ config?: TConfig;
8
9
  };
9
10
  abstract getSQL(): SQL;
10
11
  }
@@ -1,10 +1,11 @@
1
1
  import { entityKind } from "../entity.js";
2
2
  import type { SQL, SQLWrapper } from "../sql/index.js";
3
- export declare abstract class TypedQueryBuilder<TSelection, TResult = unknown> implements SQLWrapper {
3
+ export declare abstract class TypedQueryBuilder<TSelection, TResult = unknown, TConfig = unknown> implements SQLWrapper {
4
4
  static readonly [entityKind]: string;
5
5
  _: {
6
6
  selectedFields: TSelection;
7
7
  result: TResult;
8
+ config?: TConfig;
8
9
  };
9
10
  abstract getSQL(): SQL;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/sql/index.ts';\n\nexport abstract class TypedQueryBuilder<TSelection, TResult = unknown> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'TypedQueryBuilder';\n\n\tdeclare _: {\n\t\tselectedFields: TSelection;\n\t\tresult: TResult;\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): TSelection {\n\t\treturn this._.selectedFields;\n\t}\n\n\tabstract getSQL(): SQL;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAGpB,MAAe,kBAAuE;AAAA,EAC5F,QAAiB,UAAU,IAAY;AAAA;AAAA,EAQvC,oBAAgC;AAC/B,WAAO,KAAK,EAAE;AAAA,EACf;AAGD;","names":[]}
1
+ {"version":3,"sources":["../../src/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/sql/index.ts';\n\nexport abstract class TypedQueryBuilder<TSelection, TResult = unknown, TConfig = unknown> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'TypedQueryBuilder';\n\n\tdeclare _: {\n\t\tselectedFields: TSelection;\n\t\tresult: TResult;\n\t\tconfig?: TConfig;\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): TSelection {\n\t\treturn this._.selectedFields;\n\t}\n\n\tabstract getSQL(): SQL;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAGpB,MAAe,kBAA0F;AAAA,EAC/G,QAAiB,UAAU,IAAY;AAAA;AAAA,EASvC,oBAAgC;AAC/B,WAAO,KAAK,EAAE;AAAA,EACf;AAGD;","names":[]}
@@ -42,7 +42,10 @@ class SingleStoreDriverDriver {
42
42
  }
43
43
  static [import_entity.entityKind] = "SingleStoreDriverDriver";
44
44
  createSession(schema) {
45
- return new import_session.SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });
45
+ return new import_session.SingleStoreDriverSession(this.client, this.dialect, schema, {
46
+ logger: this.options.logger,
47
+ cache: this.options.cache
48
+ });
46
49
  }
47
50
  }
48
51
  class SingleStoreDriverDatabase extends import_db.SingleStoreDatabase {
@@ -69,10 +72,17 @@ function construct(client, config = {}) {
69
72
  tableNamesMap: tablesConfig.tableNamesMap
70
73
  };
71
74
  }
72
- const driver = new SingleStoreDriverDriver(clientForInstance, dialect, { logger });
75
+ const driver = new SingleStoreDriverDriver(clientForInstance, dialect, {
76
+ logger,
77
+ cache: config.cache
78
+ });
73
79
  const session = driver.createSession(schema);
74
80
  const db = new SingleStoreDriverDatabase(dialect, session, schema);
75
81
  db.$client = client;
82
+ db.$cache = config.cache;
83
+ if (db.$cache) {
84
+ db.$cache["invalidate"] = config.cache?.onMutate;
85
+ }
76
86
  return db;
77
87
  }
78
88
  function isCallbackClient(client) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema> = {},\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tSingleStoreDriverDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tlet opts: PoolOptions = {};\n\t\tif (typeof connection === 'string') {\n\t\t\topts = {\n\t\t\t\turi: connection,\n\t\t\t\tsupportBigNumbers: true,\n\t\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t\t};\n\t\t} else {\n\t\t\topts = {\n\t\t\t\t...connection,\n\t\t\t\tconnectAttributes: {\n\t\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst instance = createPool(opts);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as SingleStoreDriverDrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema>,\n\t): SingleStoreDriverDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+G;AAE/G,oBAA2B;AAE3B,oBAA8B;AAC9B,uBAKO;AACP,gBAAoC;AACpC,qBAAmC;AACnC,mBAA6C;AAC7C,qBAA2B;AAM3B,qBAAyC;AAuBzC,IAAAA,aAAoC;AAjB7B,MAAM,wBAAwB;AAAA,EAGpC,YACS,QACA,SACA,UAAoC,CAAC,GAC5C;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QAC4E;AAC5E,WAAO,IAAI,wCAAyB,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACvG;AACD;AAIO,MAAM,kCAEH,8BAAiG;AAAA,EAC1G,QAA0B,wBAAU,IAAY;AACjD;AAMA,SAAS,UAIR,QACA,SAAkD,CAAC,GAGlD;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,wBAAwB,mBAA8C,SAAS,EAAE,OAAO,CAAC;AAC5G,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,0BAA0B,SAAS,SAAS,MAAa;AACxE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;AAIA,MAAM,mBAAqD;AAAA,EAC1D,iBAAiB;AAAA,EACjB,oBAAoB;AACrB;AAEO,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,mBAAmB,OAAO,CAAC;AACjC,UAAM,eAAW,0BAAW;AAAA,MAC3B,KAAK;AAAA,MACL,mBAAmB;AAAA,IACpB,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAoB,CAAC;AACzB,QAAI,OAAO,eAAe,UAAU;AACnC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,mBAAmB;AAAA,QACnB,mBAAmB;AAAA,MACpB;AAAA,IACD,OAAO;AACN,aAAO;AAAA,QACN,GAAG;AAAA,QACH,mBAAmB;AAAA,UAClB,GAAG,WAAY;AAAA,UACf,GAAG;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAEA,UAAM,eAAW,0BAAW,IAAI;AAChC,UAAM,KAAK,UAAU,UAAU,aAAa;AAE5C,WAAO;AAAA,EACR;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAwD;AACxG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["import_db","drizzle"]}
1
+ {"version":3,"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema> = {},\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t});\n\tconst session = driver.createSession(schema);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tSingleStoreDriverDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tlet opts: PoolOptions = {};\n\t\tif (typeof connection === 'string') {\n\t\t\topts = {\n\t\t\t\turi: connection,\n\t\t\t\tsupportBigNumbers: true,\n\t\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t\t};\n\t\t} else {\n\t\t\topts = {\n\t\t\t\t...connection,\n\t\t\t\tconnectAttributes: {\n\t\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst instance = createPool(opts);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as SingleStoreDriverDrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema>,\n\t): SingleStoreDriverDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"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","names":["import_db","drizzle"]}
@@ -1,5 +1,6 @@
1
1
  import { type Connection as CallbackConnection, type Pool as CallbackPool, type PoolOptions } from 'mysql2';
2
2
  import type { Connection, Pool } from 'mysql2/promise';
3
+ import type { Cache } from "../cache/core/cache.cjs";
3
4
  import { entityKind } from "../entity.cjs";
4
5
  import type { Logger } from "../logger.cjs";
5
6
  import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.cjs";
@@ -10,6 +11,7 @@ import type { SingleStoreDriverClient, SingleStoreDriverPreparedQueryHKT, Single
10
11
  import { SingleStoreDriverSession } from "./session.cjs";
11
12
  export interface SingleStoreDriverOptions {
12
13
  logger?: Logger;
14
+ cache?: Cache;
13
15
  }
14
16
  export declare class SingleStoreDriverDriver {
15
17
  private client;
@@ -1,5 +1,6 @@
1
1
  import { type Connection as CallbackConnection, type Pool as CallbackPool, type PoolOptions } from 'mysql2';
2
2
  import type { Connection, Pool } from 'mysql2/promise';
3
+ import type { Cache } from "../cache/core/cache.js";
3
4
  import { entityKind } from "../entity.js";
4
5
  import type { Logger } from "../logger.js";
5
6
  import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.js";
@@ -10,6 +11,7 @@ import type { SingleStoreDriverClient, SingleStoreDriverPreparedQueryHKT, Single
10
11
  import { SingleStoreDriverSession } from "./session.js";
11
12
  export interface SingleStoreDriverOptions {
12
13
  logger?: Logger;
14
+ cache?: Cache;
13
15
  }
14
16
  export declare class SingleStoreDriverDriver {
15
17
  private client;
@@ -18,7 +18,10 @@ class SingleStoreDriverDriver {
18
18
  }
19
19
  static [entityKind] = "SingleStoreDriverDriver";
20
20
  createSession(schema) {
21
- return new SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });
21
+ return new SingleStoreDriverSession(this.client, this.dialect, schema, {
22
+ logger: this.options.logger,
23
+ cache: this.options.cache
24
+ });
22
25
  }
23
26
  }
24
27
  import { SingleStoreDatabase as SingleStoreDatabase2 } from "../singlestore-core/db.js";
@@ -46,10 +49,17 @@ function construct(client, config = {}) {
46
49
  tableNamesMap: tablesConfig.tableNamesMap
47
50
  };
48
51
  }
49
- const driver = new SingleStoreDriverDriver(clientForInstance, dialect, { logger });
52
+ const driver = new SingleStoreDriverDriver(clientForInstance, dialect, {
53
+ logger,
54
+ cache: config.cache
55
+ });
50
56
  const session = driver.createSession(schema);
51
57
  const db = new SingleStoreDriverDatabase(dialect, session, schema);
52
58
  db.$client = client;
59
+ db.$cache = config.cache;
60
+ if (db.$cache) {
61
+ db.$cache["invalidate"] = config.cache?.onMutate;
62
+ }
53
63
  return db;
54
64
  }
55
65
  function isCallbackClient(client) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema> = {},\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tSingleStoreDriverDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tlet opts: PoolOptions = {};\n\t\tif (typeof connection === 'string') {\n\t\t\topts = {\n\t\t\t\turi: connection,\n\t\t\t\tsupportBigNumbers: true,\n\t\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t\t};\n\t\t} else {\n\t\t\topts = {\n\t\t\t\t...connection,\n\t\t\t\tconnectAttributes: {\n\t\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst instance = createPool(opts);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as SingleStoreDriverDrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema>,\n\t): SingleStoreDriverDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAgD,kBAA+D;AAE/G,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAA6B,gBAAgB;AAC7C,SAAS,kBAAkB;AAM3B,SAAS,gCAAgC;AAMlC,MAAM,wBAAwB;AAAA,EAGpC,YACS,QACA,SACA,UAAoC,CAAC,GAC5C;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QAC4E;AAC5E,WAAO,IAAI,yBAAyB,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACvG;AACD;AAEA,SAAS,uBAAAA,4BAA2B;AAE7B,MAAM,kCAEH,oBAAiG;AAAA,EAC1G,QAA0B,UAAU,IAAY;AACjD;AAMA,SAAS,UAIR,QACA,SAAkD,CAAC,GAGlD;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,wBAAwB,mBAA8C,SAAS,EAAE,OAAO,CAAC;AAC5G,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,0BAA0B,SAAS,SAAS,MAAa;AACxE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;AAIA,MAAM,mBAAqD;AAAA,EAC1D,iBAAiB;AAAA,EACjB,oBAAoB;AACrB;AAEO,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,mBAAmB,OAAO,CAAC;AACjC,UAAM,WAAW,WAAW;AAAA,MAC3B,KAAK;AAAA,MACL,mBAAmB;AAAA,IACpB,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAoB,CAAC;AACzB,QAAI,OAAO,eAAe,UAAU;AACnC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,mBAAmB;AAAA,QACnB,mBAAmB;AAAA,MACpB;AAAA,IACD,OAAO;AACN,aAAO;AAAA,QACN,GAAG;AAAA,QACH,mBAAmB;AAAA,UAClB,GAAG,WAAY;AAAA,UACf,GAAG;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAEA,UAAM,WAAW,WAAW,IAAI;AAChC,UAAM,KAAK,UAAU,UAAU,aAAa;AAE5C,WAAO;AAAA,EACR;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAwD;AACxG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["SingleStoreDatabase","drizzle"]}
1
+ {"version":3,"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema> = {},\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t});\n\tconst session = driver.createSession(schema);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tSingleStoreDriverDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tlet opts: PoolOptions = {};\n\t\tif (typeof connection === 'string') {\n\t\t\topts = {\n\t\t\t\turi: connection,\n\t\t\t\tsupportBigNumbers: true,\n\t\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t\t};\n\t\t} else {\n\t\t\topts = {\n\t\t\t\t...connection,\n\t\t\t\tconnectAttributes: {\n\t\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst instance = createPool(opts);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as SingleStoreDriverDrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema>,\n\t): SingleStoreDriverDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"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","names":["SingleStoreDatabase","drizzle"]}