drizzle-orm 1.0.0-beta.22-eaa25cd → 1.0.0-beta.22-46020ee

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 (431) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/codecs.cjs +162 -0
  4. package/aws-data-api/pg/codecs.cjs.map +1 -0
  5. package/aws-data-api/pg/codecs.d.cts +9 -0
  6. package/aws-data-api/pg/codecs.d.ts +9 -0
  7. package/aws-data-api/pg/codecs.js +160 -0
  8. package/aws-data-api/pg/codecs.js.map +1 -0
  9. package/aws-data-api/pg/driver.cjs +4 -157
  10. package/aws-data-api/pg/driver.cjs.map +1 -1
  11. package/aws-data-api/pg/driver.d.cts +1 -5
  12. package/aws-data-api/pg/driver.d.ts +1 -5
  13. package/aws-data-api/pg/driver.js +4 -156
  14. package/aws-data-api/pg/driver.js.map +1 -1
  15. package/aws-data-api/pg/index.cjs +2 -1
  16. package/aws-data-api/pg/index.d.cts +2 -1
  17. package/aws-data-api/pg/index.d.ts +2 -1
  18. package/aws-data-api/pg/index.js +2 -1
  19. package/better-sqlite3/driver.cjs +2 -1
  20. package/better-sqlite3/driver.cjs.map +1 -1
  21. package/better-sqlite3/driver.js +2 -1
  22. package/better-sqlite3/driver.js.map +1 -1
  23. package/better-sqlite3/session.cjs +8 -8
  24. package/better-sqlite3/session.cjs.map +1 -1
  25. package/better-sqlite3/session.d.cts +3 -3
  26. package/better-sqlite3/session.d.ts +3 -3
  27. package/better-sqlite3/session.js +8 -8
  28. package/better-sqlite3/session.js.map +1 -1
  29. package/bun-sql/mysql/driver.cjs +2 -1
  30. package/bun-sql/mysql/driver.cjs.map +1 -1
  31. package/bun-sql/mysql/driver.js +2 -1
  32. package/bun-sql/mysql/driver.js.map +1 -1
  33. package/bun-sql/mysql/session.cjs +8 -8
  34. package/bun-sql/mysql/session.cjs.map +1 -1
  35. package/bun-sql/mysql/session.d.cts +3 -3
  36. package/bun-sql/mysql/session.d.ts +3 -3
  37. package/bun-sql/mysql/session.js +8 -8
  38. package/bun-sql/mysql/session.js.map +1 -1
  39. package/bun-sql/postgres/codecs.cjs +176 -0
  40. package/bun-sql/postgres/codecs.cjs.map +1 -0
  41. package/bun-sql/postgres/codecs.d.cts +9 -0
  42. package/bun-sql/postgres/codecs.d.ts +9 -0
  43. package/bun-sql/postgres/codecs.js +174 -0
  44. package/bun-sql/postgres/codecs.js.map +1 -0
  45. package/bun-sql/postgres/driver.cjs +4 -171
  46. package/bun-sql/postgres/driver.cjs.map +1 -1
  47. package/bun-sql/postgres/driver.d.cts +1 -5
  48. package/bun-sql/postgres/driver.d.ts +1 -5
  49. package/bun-sql/postgres/driver.js +4 -170
  50. package/bun-sql/postgres/driver.js.map +1 -1
  51. package/bun-sql/postgres/index.cjs +2 -1
  52. package/bun-sql/postgres/index.d.cts +2 -1
  53. package/bun-sql/postgres/index.d.ts +2 -1
  54. package/bun-sql/postgres/index.js +2 -1
  55. package/bun-sql/sqlite/driver.cjs +2 -1
  56. package/bun-sql/sqlite/driver.cjs.map +1 -1
  57. package/bun-sql/sqlite/driver.js +2 -1
  58. package/bun-sql/sqlite/driver.js.map +1 -1
  59. package/bun-sql/sqlite/session.cjs +8 -8
  60. package/bun-sql/sqlite/session.cjs.map +1 -1
  61. package/bun-sql/sqlite/session.d.cts +3 -3
  62. package/bun-sql/sqlite/session.d.ts +3 -3
  63. package/bun-sql/sqlite/session.js +8 -8
  64. package/bun-sql/sqlite/session.js.map +1 -1
  65. package/bun-sqlite/driver.cjs +2 -1
  66. package/bun-sqlite/driver.cjs.map +1 -1
  67. package/bun-sqlite/driver.js +2 -1
  68. package/bun-sqlite/driver.js.map +1 -1
  69. package/bun-sqlite/session.cjs +8 -8
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +3 -3
  72. package/bun-sqlite/session.d.ts +3 -3
  73. package/bun-sqlite/session.js +8 -8
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/cockroach/driver.cjs +3 -2
  76. package/cockroach/driver.cjs.map +1 -1
  77. package/cockroach/driver.d.cts +1 -1
  78. package/cockroach/driver.d.ts +1 -1
  79. package/cockroach/driver.js +3 -2
  80. package/cockroach/driver.js.map +1 -1
  81. package/cockroach/session.cjs +4 -4
  82. package/cockroach/session.cjs.map +1 -1
  83. package/cockroach/session.d.cts +3 -3
  84. package/cockroach/session.d.ts +3 -3
  85. package/cockroach/session.js +4 -4
  86. package/cockroach/session.js.map +1 -1
  87. package/durable-sqlite/driver.cjs +2 -1
  88. package/durable-sqlite/driver.cjs.map +1 -1
  89. package/durable-sqlite/driver.js +2 -1
  90. package/durable-sqlite/driver.js.map +1 -1
  91. package/durable-sqlite/session.cjs +8 -8
  92. package/durable-sqlite/session.cjs.map +1 -1
  93. package/durable-sqlite/session.d.cts +3 -3
  94. package/durable-sqlite/session.d.ts +3 -3
  95. package/durable-sqlite/session.js +8 -8
  96. package/durable-sqlite/session.js.map +1 -1
  97. package/effect-postgres/codecs.cjs +175 -0
  98. package/effect-postgres/codecs.cjs.map +1 -0
  99. package/effect-postgres/codecs.d.cts +9 -0
  100. package/effect-postgres/codecs.d.ts +9 -0
  101. package/effect-postgres/codecs.js +173 -0
  102. package/effect-postgres/codecs.js.map +1 -0
  103. package/effect-postgres/driver.cjs +5 -171
  104. package/effect-postgres/driver.cjs.map +1 -1
  105. package/effect-postgres/driver.d.cts +3 -7
  106. package/effect-postgres/driver.d.ts +3 -7
  107. package/effect-postgres/driver.js +5 -170
  108. package/effect-postgres/driver.js.map +1 -1
  109. package/effect-postgres/index.cjs +2 -1
  110. package/effect-postgres/index.d.cts +2 -1
  111. package/effect-postgres/index.d.ts +2 -1
  112. package/effect-postgres/index.js +2 -1
  113. package/effect-postgres/migrator.d.cts +1 -1
  114. package/effect-postgres/migrator.d.ts +1 -1
  115. package/effect-postgres/session.cjs.map +1 -1
  116. package/effect-postgres/session.d.cts +1 -1
  117. package/effect-postgres/session.d.ts +1 -1
  118. package/effect-postgres/session.js.map +1 -1
  119. package/expo-sqlite/driver.cjs +2 -1
  120. package/expo-sqlite/driver.cjs.map +1 -1
  121. package/expo-sqlite/driver.js +2 -1
  122. package/expo-sqlite/driver.js.map +1 -1
  123. package/expo-sqlite/session.cjs +8 -8
  124. package/expo-sqlite/session.cjs.map +1 -1
  125. package/expo-sqlite/session.d.cts +3 -3
  126. package/expo-sqlite/session.d.ts +3 -3
  127. package/expo-sqlite/session.js +8 -8
  128. package/expo-sqlite/session.js.map +1 -1
  129. package/index.cjs +1 -0
  130. package/index.js +2 -2
  131. package/libsql/driver-core.cjs +2 -1
  132. package/libsql/driver-core.cjs.map +1 -1
  133. package/libsql/driver-core.js +2 -1
  134. package/libsql/driver-core.js.map +1 -1
  135. package/libsql/session.cjs +8 -8
  136. package/libsql/session.cjs.map +1 -1
  137. package/libsql/session.d.cts +3 -3
  138. package/libsql/session.d.ts +3 -3
  139. package/libsql/session.js +8 -8
  140. package/libsql/session.js.map +1 -1
  141. package/mysql-proxy/driver.cjs +2 -1
  142. package/mysql-proxy/driver.cjs.map +1 -1
  143. package/mysql-proxy/driver.js +2 -1
  144. package/mysql-proxy/driver.js.map +1 -1
  145. package/mysql-proxy/session.cjs +6 -6
  146. package/mysql-proxy/session.cjs.map +1 -1
  147. package/mysql-proxy/session.d.cts +3 -3
  148. package/mysql-proxy/session.d.ts +3 -3
  149. package/mysql-proxy/session.js +6 -6
  150. package/mysql-proxy/session.js.map +1 -1
  151. package/mysql2/driver.cjs +2 -1
  152. package/mysql2/driver.cjs.map +1 -1
  153. package/mysql2/driver.d.cts +1 -1
  154. package/mysql2/driver.d.ts +1 -1
  155. package/mysql2/driver.js +2 -1
  156. package/mysql2/driver.js.map +1 -1
  157. package/mysql2/session.cjs +7 -7
  158. package/mysql2/session.cjs.map +1 -1
  159. package/mysql2/session.d.cts +3 -3
  160. package/mysql2/session.d.ts +3 -3
  161. package/mysql2/session.js +7 -7
  162. package/mysql2/session.js.map +1 -1
  163. package/neon-http/codecs.cjs +66 -0
  164. package/neon-http/codecs.cjs.map +1 -0
  165. package/neon-http/codecs.d.cts +9 -0
  166. package/neon-http/codecs.d.ts +9 -0
  167. package/neon-http/codecs.js +64 -0
  168. package/neon-http/codecs.js.map +1 -0
  169. package/neon-http/driver.cjs +4 -61
  170. package/neon-http/driver.cjs.map +1 -1
  171. package/neon-http/driver.d.cts +1 -5
  172. package/neon-http/driver.d.ts +1 -5
  173. package/neon-http/driver.js +4 -60
  174. package/neon-http/driver.js.map +1 -1
  175. package/neon-http/index.cjs +2 -1
  176. package/neon-http/index.d.cts +2 -1
  177. package/neon-http/index.d.ts +2 -1
  178. package/neon-http/index.js +2 -1
  179. package/neon-serverless/codecs.cjs +65 -0
  180. package/neon-serverless/codecs.cjs.map +1 -0
  181. package/neon-serverless/codecs.d.cts +9 -0
  182. package/neon-serverless/codecs.d.ts +9 -0
  183. package/neon-serverless/codecs.js +63 -0
  184. package/neon-serverless/codecs.js.map +1 -0
  185. package/neon-serverless/driver.cjs +4 -60
  186. package/neon-serverless/driver.cjs.map +1 -1
  187. package/neon-serverless/driver.d.cts +2 -6
  188. package/neon-serverless/driver.d.ts +2 -6
  189. package/neon-serverless/driver.js +4 -59
  190. package/neon-serverless/driver.js.map +1 -1
  191. package/neon-serverless/index.cjs +2 -1
  192. package/neon-serverless/index.d.cts +2 -1
  193. package/neon-serverless/index.d.ts +2 -1
  194. package/neon-serverless/index.js +2 -1
  195. package/netlify-db/codecs.cjs +122 -0
  196. package/netlify-db/codecs.cjs.map +1 -0
  197. package/netlify-db/codecs.d.cts +10 -0
  198. package/netlify-db/codecs.d.ts +10 -0
  199. package/netlify-db/codecs.js +119 -0
  200. package/netlify-db/codecs.js.map +1 -0
  201. package/netlify-db/driver.cjs +4 -118
  202. package/netlify-db/driver.cjs.map +1 -1
  203. package/netlify-db/driver.d.cts +1 -6
  204. package/netlify-db/driver.d.ts +1 -6
  205. package/netlify-db/driver.js +4 -116
  206. package/netlify-db/driver.js.map +1 -1
  207. package/netlify-db/index.cjs +3 -2
  208. package/netlify-db/index.d.cts +2 -1
  209. package/netlify-db/index.d.ts +2 -1
  210. package/netlify-db/index.js +2 -1
  211. package/netlify-db/session.d.ts +1 -1
  212. package/node-mssql/driver.cjs +3 -2
  213. package/node-mssql/driver.cjs.map +1 -1
  214. package/node-mssql/driver.d.cts +1 -1
  215. package/node-mssql/driver.d.ts +1 -1
  216. package/node-mssql/driver.js +3 -2
  217. package/node-mssql/driver.js.map +1 -1
  218. package/node-mssql/session.cjs +5 -5
  219. package/node-mssql/session.cjs.map +1 -1
  220. package/node-mssql/session.d.cts +3 -3
  221. package/node-mssql/session.d.ts +3 -3
  222. package/node-mssql/session.js +5 -5
  223. package/node-mssql/session.js.map +1 -1
  224. package/node-postgres/codecs.cjs +65 -0
  225. package/node-postgres/codecs.cjs.map +1 -0
  226. package/node-postgres/codecs.d.cts +9 -0
  227. package/node-postgres/codecs.d.ts +9 -0
  228. package/node-postgres/codecs.js +63 -0
  229. package/node-postgres/codecs.js.map +1 -0
  230. package/node-postgres/driver.cjs +4 -60
  231. package/node-postgres/driver.cjs.map +1 -1
  232. package/node-postgres/driver.d.cts +1 -5
  233. package/node-postgres/driver.d.ts +1 -5
  234. package/node-postgres/driver.js +4 -59
  235. package/node-postgres/driver.js.map +1 -1
  236. package/node-postgres/index.cjs +2 -1
  237. package/node-postgres/index.d.cts +2 -1
  238. package/node-postgres/index.d.ts +2 -1
  239. package/node-postgres/index.js +2 -1
  240. package/node-sqlite/driver.cjs +5 -1
  241. package/node-sqlite/driver.cjs.map +1 -1
  242. package/node-sqlite/driver.js +5 -1
  243. package/node-sqlite/driver.js.map +1 -1
  244. package/node-sqlite/session.cjs +14 -8
  245. package/node-sqlite/session.cjs.map +1 -1
  246. package/node-sqlite/session.d.cts +8 -3
  247. package/node-sqlite/session.d.ts +8 -3
  248. package/node-sqlite/session.js +15 -9
  249. package/node-sqlite/session.js.map +1 -1
  250. package/op-sqlite/driver.cjs +2 -1
  251. package/op-sqlite/driver.cjs.map +1 -1
  252. package/op-sqlite/driver.js +2 -1
  253. package/op-sqlite/driver.js.map +1 -1
  254. package/op-sqlite/session.cjs +8 -8
  255. package/op-sqlite/session.cjs.map +1 -1
  256. package/op-sqlite/session.d.cts +3 -3
  257. package/op-sqlite/session.d.ts +3 -3
  258. package/op-sqlite/session.js +8 -8
  259. package/op-sqlite/session.js.map +1 -1
  260. package/package.json +133 -1
  261. package/pg-core/effect/session.d.cts +1 -1
  262. package/pg-core/effect/session.d.ts +1 -1
  263. package/pg-proxy/driver.cjs +4 -4
  264. package/pg-proxy/driver.cjs.map +1 -1
  265. package/pg-proxy/driver.d.ts +1 -1
  266. package/pg-proxy/driver.js +4 -4
  267. package/pg-proxy/driver.js.map +1 -1
  268. package/pg-proxy/session.cjs.map +1 -1
  269. package/pg-proxy/session.d.cts +0 -1
  270. package/pg-proxy/session.d.ts +0 -1
  271. package/pg-proxy/session.js.map +1 -1
  272. package/pglite/codecs.cjs +92 -0
  273. package/pglite/codecs.cjs.map +1 -0
  274. package/pglite/codecs.d.cts +9 -0
  275. package/pglite/codecs.d.ts +9 -0
  276. package/pglite/codecs.js +90 -0
  277. package/pglite/codecs.js.map +1 -0
  278. package/pglite/driver.cjs +3 -86
  279. package/pglite/driver.cjs.map +1 -1
  280. package/pglite/driver.d.cts +1 -5
  281. package/pglite/driver.d.ts +1 -5
  282. package/pglite/driver.js +4 -86
  283. package/pglite/driver.js.map +1 -1
  284. package/pglite/index.cjs +2 -1
  285. package/pglite/index.d.cts +2 -1
  286. package/pglite/index.d.ts +2 -1
  287. package/pglite/index.js +2 -1
  288. package/planetscale-serverless/driver.cjs +2 -1
  289. package/planetscale-serverless/driver.cjs.map +1 -1
  290. package/planetscale-serverless/driver.d.cts +1 -1
  291. package/planetscale-serverless/driver.d.ts +1 -1
  292. package/planetscale-serverless/driver.js +2 -1
  293. package/planetscale-serverless/driver.js.map +1 -1
  294. package/planetscale-serverless/session.cjs +6 -6
  295. package/planetscale-serverless/session.cjs.map +1 -1
  296. package/planetscale-serverless/session.d.cts +3 -3
  297. package/planetscale-serverless/session.d.ts +3 -3
  298. package/planetscale-serverless/session.js +6 -6
  299. package/planetscale-serverless/session.js.map +1 -1
  300. package/postgres-js/codecs.cjs +147 -0
  301. package/postgres-js/codecs.cjs.map +1 -0
  302. package/postgres-js/codecs.d.cts +9 -0
  303. package/postgres-js/codecs.d.ts +9 -0
  304. package/postgres-js/codecs.js +145 -0
  305. package/postgres-js/codecs.js.map +1 -0
  306. package/postgres-js/driver.cjs +4 -142
  307. package/postgres-js/driver.cjs.map +1 -1
  308. package/postgres-js/driver.d.cts +1 -5
  309. package/postgres-js/driver.d.ts +1 -5
  310. package/postgres-js/driver.js +4 -141
  311. package/postgres-js/driver.js.map +1 -1
  312. package/postgres-js/index.cjs +2 -1
  313. package/postgres-js/index.d.cts +2 -1
  314. package/postgres-js/index.d.ts +2 -1
  315. package/postgres-js/index.js +2 -1
  316. package/singlestore/driver.cjs +3 -2
  317. package/singlestore/driver.cjs.map +1 -1
  318. package/singlestore/driver.d.cts +1 -1
  319. package/singlestore/driver.d.ts +1 -1
  320. package/singlestore/driver.js +3 -2
  321. package/singlestore/driver.js.map +1 -1
  322. package/singlestore/session.cjs +7 -7
  323. package/singlestore/session.cjs.map +1 -1
  324. package/singlestore/session.d.cts +3 -3
  325. package/singlestore/session.d.ts +3 -3
  326. package/singlestore/session.js +7 -7
  327. package/singlestore/session.js.map +1 -1
  328. package/singlestore-proxy/driver.cjs +2 -1
  329. package/singlestore-proxy/driver.cjs.map +1 -1
  330. package/singlestore-proxy/driver.js +2 -1
  331. package/singlestore-proxy/driver.js.map +1 -1
  332. package/singlestore-proxy/session.cjs +6 -6
  333. package/singlestore-proxy/session.cjs.map +1 -1
  334. package/singlestore-proxy/session.d.cts +3 -3
  335. package/singlestore-proxy/session.d.ts +3 -3
  336. package/singlestore-proxy/session.js +6 -6
  337. package/singlestore-proxy/session.js.map +1 -1
  338. package/sql-js/driver.cjs +2 -1
  339. package/sql-js/driver.cjs.map +1 -1
  340. package/sql-js/driver.js +2 -1
  341. package/sql-js/driver.js.map +1 -1
  342. package/sql-js/session.cjs +8 -8
  343. package/sql-js/session.cjs.map +1 -1
  344. package/sql-js/session.d.cts +3 -3
  345. package/sql-js/session.d.ts +3 -3
  346. package/sql-js/session.js +8 -8
  347. package/sql-js/session.js.map +1 -1
  348. package/sqlite-cloud/driver.cjs +2 -1
  349. package/sqlite-cloud/driver.cjs.map +1 -1
  350. package/sqlite-cloud/driver.js +2 -1
  351. package/sqlite-cloud/driver.js.map +1 -1
  352. package/sqlite-cloud/session.cjs +8 -8
  353. package/sqlite-cloud/session.cjs.map +1 -1
  354. package/sqlite-cloud/session.d.cts +3 -3
  355. package/sqlite-cloud/session.d.ts +3 -3
  356. package/sqlite-cloud/session.js +8 -8
  357. package/sqlite-cloud/session.js.map +1 -1
  358. package/sqlite-proxy/driver.cjs +2 -1
  359. package/sqlite-proxy/driver.cjs.map +1 -1
  360. package/sqlite-proxy/driver.js +2 -1
  361. package/sqlite-proxy/driver.js.map +1 -1
  362. package/sqlite-proxy/session.cjs +8 -8
  363. package/sqlite-proxy/session.cjs.map +1 -1
  364. package/sqlite-proxy/session.d.cts +3 -3
  365. package/sqlite-proxy/session.d.ts +3 -3
  366. package/sqlite-proxy/session.js +8 -8
  367. package/sqlite-proxy/session.js.map +1 -1
  368. package/tidb-serverless/driver.cjs +2 -1
  369. package/tidb-serverless/driver.cjs.map +1 -1
  370. package/tidb-serverless/driver.d.cts +1 -1
  371. package/tidb-serverless/driver.d.ts +1 -1
  372. package/tidb-serverless/driver.js +2 -1
  373. package/tidb-serverless/driver.js.map +1 -1
  374. package/tidb-serverless/session.cjs +6 -6
  375. package/tidb-serverless/session.cjs.map +1 -1
  376. package/tidb-serverless/session.d.cts +3 -3
  377. package/tidb-serverless/session.d.ts +3 -3
  378. package/tidb-serverless/session.js +6 -6
  379. package/tidb-serverless/session.js.map +1 -1
  380. package/tursodatabase/driver-core.cjs +2 -1
  381. package/tursodatabase/driver-core.cjs.map +1 -1
  382. package/tursodatabase/driver-core.js +2 -1
  383. package/tursodatabase/driver-core.js.map +1 -1
  384. package/tursodatabase/session.cjs +8 -8
  385. package/tursodatabase/session.cjs.map +1 -1
  386. package/tursodatabase/session.d.cts +3 -3
  387. package/tursodatabase/session.d.ts +3 -3
  388. package/tursodatabase/session.js +8 -8
  389. package/tursodatabase/session.js.map +1 -1
  390. package/utils.cjs +17 -0
  391. package/utils.cjs.map +1 -1
  392. package/utils.js +17 -1
  393. package/utils.js.map +1 -1
  394. package/vercel-postgres/codecs.cjs +65 -0
  395. package/vercel-postgres/codecs.cjs.map +1 -0
  396. package/vercel-postgres/codecs.d.cts +9 -0
  397. package/vercel-postgres/codecs.d.ts +9 -0
  398. package/vercel-postgres/codecs.js +63 -0
  399. package/vercel-postgres/codecs.js.map +1 -0
  400. package/vercel-postgres/driver.cjs +3 -60
  401. package/vercel-postgres/driver.cjs.map +1 -1
  402. package/vercel-postgres/driver.d.cts +1 -5
  403. package/vercel-postgres/driver.d.ts +1 -5
  404. package/vercel-postgres/driver.js +4 -60
  405. package/vercel-postgres/driver.js.map +1 -1
  406. package/vercel-postgres/index.cjs +2 -1
  407. package/vercel-postgres/index.d.cts +2 -1
  408. package/vercel-postgres/index.d.ts +2 -1
  409. package/vercel-postgres/index.js +2 -1
  410. package/version.cjs +1 -1
  411. package/version.cjs.map +1 -1
  412. package/version.d.cts +1 -1
  413. package/version.d.ts +1 -1
  414. package/version.js +1 -1
  415. package/version.js.map +1 -1
  416. package/xata-http/codecs.cjs +168 -0
  417. package/xata-http/codecs.cjs.map +1 -0
  418. package/xata-http/codecs.d.cts +9 -0
  419. package/xata-http/codecs.d.ts +9 -0
  420. package/xata-http/codecs.js +166 -0
  421. package/xata-http/codecs.js.map +1 -0
  422. package/xata-http/driver.cjs +4 -163
  423. package/xata-http/driver.cjs.map +1 -1
  424. package/xata-http/driver.d.cts +1 -5
  425. package/xata-http/driver.d.ts +1 -5
  426. package/xata-http/driver.js +4 -162
  427. package/xata-http/driver.js.map +1 -1
  428. package/xata-http/index.cjs +2 -1
  429. package/xata-http/index.d.cts +2 -1
  430. package/xata-http/index.d.ts +2 -1
  431. package/xata-http/index.js +2 -1
@@ -1,5 +1,6 @@
1
1
  import { SingleStoreDriverSession } from "./session.js";
2
2
  import { entityKind } from "../entity.js";
3
+ import { jitCompatCheck } from "../utils.js";
3
4
  import { npmVersion } from "../version.js";
4
5
  import { DefaultLogger } from "../logger.js";
5
6
  import { createTableRelationsHelpers, extractTablesRelationalConfig } from "../_relations.js";
@@ -18,7 +19,7 @@ var SingleStoreDriverDriver = class {
18
19
  createSession(schema, relations) {
19
20
  return new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {
20
21
  logger: this.options.logger,
21
- useJitMapper: this.options.useJitMapper ?? false,
22
+ useJitMappers: this.options.useJitMappers ?? false,
22
23
  cache: this.options.cache
23
24
  });
24
25
  }
@@ -45,7 +46,7 @@ function construct(client, config = {}) {
45
46
  const db = new SingleStoreDriverDatabase(dialect, new SingleStoreDriverDriver(clientForInstance, dialect, {
46
47
  logger,
47
48
  cache: config.cache,
48
- useJitMapper: config.useJitMappers
49
+ useJitMappers: jitCompatCheck(config.useJitMappers)
49
50
  }).createSession(schema, relations), relations, schema);
50
51
  db.$client = client;
51
52
  db.$cache = config.cache;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["SingleStoreDatabase"],"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 {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\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 type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } 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\tuseJitMapper?: boolean;\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\trelations: AnyRelations,\n\t): SingleStoreDriverSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMapper: this.options.useJitMapper ?? false,\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\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tconst dialect = new SingleStoreDialect();\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 relations = config.relations ?? {} as TRelations;\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\tconst session = driver.createSession(schema, relations);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, relations, schema as any) as SingleStoreDriverDatabase<\n\t\tTSchema\n\t>;\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\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tSingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>\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, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : 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\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tlet opts: PoolOptions = {};\n\topts = typeof connection === 'string'\n\t\t? {\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t}\n\t\t: {\n\t\t\t...connection,\n\t\t\tconnectAttributes: {\n\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t},\n\t\t};\n\n\tconst instance = createPool(opts);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t): SingleStoreDriverDatabase<TSchema, TRelations> & {\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":";;;;;;;;;;AA8BA,IAAa,0BAAb,MAAqC;CACpC,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAoC,EAAE,EAC7C;EAHO;EACA;EACA;;CAIT,cACC,QACA,WAC0F;AAC1F,SAAO,IAAI,yBAAyB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACjF,QAAQ,KAAK,QAAQ;GACrB,cAAc,KAAK,QAAQ,gBAAgB;GAC3C,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,4BAAb,cAGUA,sBAA6G;CACtH,QAA0B,cAAsB;;AAUjD,SAAS,UAKR,QACA,SAA8D,EAAE,EAG/D;CACD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAOxC,MAAM,KAAK,IAAI,0BAA0B,SAN1B,IAAI,wBAAwB,mBAA8C,SAAS;EACjG;EACA,OAAO,OAAO;EACd,cAAc,OAAO;EACrB,CAAC,CACqB,cAAc,QAAQ,UAAU,EACI,WAAW,OAAc;AAGpF,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,MAAM,mBAAqD;CAC1D,iBAAiB;CACjB,oBAAoB;CACpB;AAED,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAMhC,SAAO,UALU,WAAW;GAC3B,KAAK;GACL,mBAAmB;GACnB,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;CAEnD,IAAI,OAAoB,EAAE;AAC1B,QAAO,OAAO,eAAe,WAC1B;EACD,KAAK;EACL,mBAAmB;EACnB,mBAAmB;EACnB,GACC;EACD,GAAG;EACH,mBAAmB;GAClB,GAAG,WAAY;GACf,GAAG;GACH;EACD;AAKF,QAFW,UADM,WAAW,KAAK,EACF,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.js","names":["SingleStoreDatabase"],"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 {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\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 type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } 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\tuseJitMappers?: boolean;\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\trelations: AnyRelations,\n\t): SingleStoreDriverSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMappers: this.options.useJitMappers ?? false,\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\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tconst dialect = new SingleStoreDialect();\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 relations = config.relations ?? {} as TRelations;\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst session = driver.createSession(schema, relations);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, relations, schema as any) as SingleStoreDriverDatabase<\n\t\tTSchema\n\t>;\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\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tSingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>\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, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : 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\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tlet opts: PoolOptions = {};\n\topts = typeof connection === 'string'\n\t\t? {\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t}\n\t\t: {\n\t\t\t...connection,\n\t\t\tconnectAttributes: {\n\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t},\n\t\t};\n\n\tconst instance = createPool(opts);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t): SingleStoreDriverDatabase<TSchema, TRelations> & {\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":";;;;;;;;;;;AA8BA,IAAa,0BAAb,MAAqC;CACpC,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAoC,EAAE,EAC7C;EAHO;EACA;EACA;;CAIT,cACC,QACA,WAC0F;AAC1F,SAAO,IAAI,yBAAyB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACjF,QAAQ,KAAK,QAAQ;GACrB,eAAe,KAAK,QAAQ,iBAAiB;GAC7C,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,4BAAb,cAGUA,sBAA6G;CACtH,QAA0B,cAAsB;;AAUjD,SAAS,UAKR,QACA,SAA8D,EAAE,EAG/D;CACD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAOxC,MAAM,KAAK,IAAI,0BAA0B,SAN1B,IAAI,wBAAwB,mBAA8C,SAAS;EACjG;EACA,OAAO,OAAO;EACd,eAAe,eAAe,OAAO,cAAc;EACnD,CAAC,CACqB,cAAc,QAAQ,UAAU,EACI,WAAW,OAAc;AAGpF,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,MAAM,mBAAqD;CAC1D,iBAAiB;CACjB,oBAAoB;CACpB;AAED,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAMhC,SAAO,UALU,WAAW;GAC3B,KAAK;GACL,mBAAmB;GACnB,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;CAEnD,IAAI,OAAoB,EAAE;AAC1B,QAAO,OAAO,eAAe,WAC1B;EACD,KAAK;EACL,mBAAmB;EACnB,mBAAmB;EACnB,GACC;EACD,GAAG;EACH,mBAAmB;GAClB,GAAG,WAAY;GACf,GAAG;GACH;EACD;AAKF,QAFW,UADM,WAAW,KAAK,EACF,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -16,13 +16,13 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
16
16
  rawQuery;
17
17
  query;
18
18
  jitMapper;
19
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMapper, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
19
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMappers, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
20
20
  super(cache, queryMetadata, cacheConfig);
21
21
  this.client = client;
22
22
  this.params = params;
23
23
  this.logger = logger;
24
24
  this.fields = fields;
25
- this.useJitMapper = useJitMapper;
25
+ this.useJitMappers = useJitMappers;
26
26
  this.customResultMapper = customResultMapper;
27
27
  this.generatedIds = generatedIds;
28
28
  this.returningIds = returningIds;
@@ -76,7 +76,7 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
76
76
  return await client.query(query, params);
77
77
  }))[0];
78
78
  if (customResultMapper) return customResultMapper(rows);
79
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
79
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
80
80
  }
81
81
  async executeRqbV2(placeholderValues = {}) {
82
82
  const params = (0, __sql_sql_ts.fillPlaceholders)(this.params, placeholderValues);
@@ -107,7 +107,7 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
107
107
  ]);
108
108
  if (row === void 0 || Array.isArray(row) && row.length === 0) break;
109
109
  else if (row instanceof Error) throw row;
110
- else if (this.isRqbV2Query) if (this.useJitMapper) yield (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))([row]);
110
+ else if (this.isRqbV2Query) if (this.useJitMappers) yield (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))([row]);
111
111
  else {
112
112
  const mapped = customResultMapper([row]);
113
113
  if (this.rqbConfig.isFirst) yield mapped;
@@ -116,7 +116,7 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
116
116
  else if (hasRowsMapper) if (customResultMapper) {
117
117
  const mappedRow = customResultMapper([row]);
118
118
  yield Array.isArray(mappedRow) ? mappedRow[0] : mappedRow;
119
- } else yield this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))([row])[0] : (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap);
119
+ } else yield this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))([row])[0] : (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap);
120
120
  else yield row;
121
121
  }
122
122
  } finally {
@@ -139,10 +139,10 @@ var SingleStoreDriverSession = class SingleStoreDriverSession extends __singlest
139
139
  this.cache = options.cache ?? new __cache_core_index_ts.NoopCache();
140
140
  }
141
141
  prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
142
- return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds);
142
+ return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds);
143
143
  }
144
144
  prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
145
- return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds, true, config);
145
+ return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds, true, config);
146
146
  }
147
147
  /**
148
148
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"session.cjs","names":["SingleStorePreparedQuery","entityKind","Column","SingleStoreSession","NoopLogger","NoopCache","SingleStoreTransaction","sql"],"sources":["../../src/singlestore/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryKind,\n\tSingleStorePreparedQuery,\n\ttype SingleStorePreparedQueryConfig,\n\ttype SingleStorePreparedQueryHKT,\n\ttype SingleStoreQueryResultHKT,\n\tSingleStoreSession,\n\tSingleStoreTransaction,\n\ttype SingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type SingleStoreDriverClient = Pool | Connection;\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type SingleStoreQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type SingleStoreQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SingleStorePreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tqueryString: 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 useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properties + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMapper) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([\n\t\t\t\t\t\t\t\trow as Record<string, unknown>,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMapper\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SingleStoreDriverSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class SingleStoreDriverSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreSession<\n\tSingleStoreQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SingleStoreDriverSessionOptions,\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 SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\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): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStorePreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new SingleStoreDriverSession(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as SingleStoreSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class SingleStoreDriverTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreDriverQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: SingleStoreDriverClient): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface SingleStoreDriverQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreDriverPreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: SingleStoreDriverPreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.cjs","names":["SingleStorePreparedQuery","entityKind","Column","SingleStoreSession","NoopLogger","NoopCache","SingleStoreTransaction","sql"],"sources":["../../src/singlestore/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryKind,\n\tSingleStorePreparedQuery,\n\ttype SingleStorePreparedQueryConfig,\n\ttype SingleStorePreparedQueryHKT,\n\ttype SingleStoreQueryResultHKT,\n\tSingleStoreSession,\n\tSingleStoreTransaction,\n\ttype SingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type SingleStoreDriverClient = Pool | Connection;\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type SingleStoreQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type SingleStoreQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SingleStorePreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tqueryString: 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 useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properties + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMappers) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([\n\t\t\t\t\t\t\t\trow as Record<string, unknown>,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMappers\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SingleStoreDriverSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class SingleStoreDriverSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreSession<\n\tSingleStoreQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SingleStoreDriverSessionOptions,\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 SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\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): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStorePreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new SingleStoreDriverSession(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as SingleStoreSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class SingleStoreDriverTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreDriverQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: SingleStoreDriverClient): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface SingleStoreDriverQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreDriverPreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: SingleStoreDriverPreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"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"}
@@ -21,7 +21,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
21
21
  private params;
22
22
  private logger;
23
23
  private fields;
24
- private useJitMapper;
24
+ private useJitMappers;
25
25
  private customResultMapper?;
26
26
  private generatedIds?;
27
27
  private returningIds?;
@@ -34,7 +34,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
34
34
  constructor(client: SingleStoreDriverClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
35
35
  type: 'select' | 'update' | 'delete' | 'insert';
36
36
  tables: string[];
37
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
37
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
38
38
  execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
39
39
  private executeRqbV2;
40
40
  iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']>;
@@ -42,7 +42,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
42
42
  interface SingleStoreDriverSessionOptions {
43
43
  logger?: Logger;
44
44
  cache?: Cache;
45
- useJitMapper?: boolean;
45
+ useJitMappers?: boolean;
46
46
  }
47
47
  declare class SingleStoreDriverSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SingleStoreSession<SingleStoreQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TFullSchema, TRelations, TSchema> {
48
48
  private client;
@@ -21,7 +21,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
21
21
  private params;
22
22
  private logger;
23
23
  private fields;
24
- private useJitMapper;
24
+ private useJitMappers;
25
25
  private customResultMapper?;
26
26
  private generatedIds?;
27
27
  private returningIds?;
@@ -34,7 +34,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
34
34
  constructor(client: SingleStoreDriverClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
35
35
  type: 'select' | 'update' | 'delete' | 'insert';
36
36
  tables: string[];
37
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
37
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
38
38
  execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
39
39
  private executeRqbV2;
40
40
  iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']>;
@@ -42,7 +42,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
42
42
  interface SingleStoreDriverSessionOptions {
43
43
  logger?: Logger;
44
44
  cache?: Cache;
45
- useJitMapper?: boolean;
45
+ useJitMappers?: boolean;
46
46
  }
47
47
  declare class SingleStoreDriverSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SingleStoreSession<SingleStoreQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TFullSchema, TRelations, TSchema> {
48
48
  private client;
@@ -14,13 +14,13 @@ var SingleStoreDriverPreparedQuery = class extends SingleStorePreparedQuery {
14
14
  rawQuery;
15
15
  query;
16
16
  jitMapper;
17
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMapper, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
17
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMappers, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
18
18
  super(cache, queryMetadata, cacheConfig);
19
19
  this.client = client;
20
20
  this.params = params;
21
21
  this.logger = logger;
22
22
  this.fields = fields;
23
- this.useJitMapper = useJitMapper;
23
+ this.useJitMappers = useJitMappers;
24
24
  this.customResultMapper = customResultMapper;
25
25
  this.generatedIds = generatedIds;
26
26
  this.returningIds = returningIds;
@@ -74,7 +74,7 @@ var SingleStoreDriverPreparedQuery = class extends SingleStorePreparedQuery {
74
74
  return await client.query(query, params);
75
75
  }))[0];
76
76
  if (customResultMapper) return customResultMapper(rows);
77
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
77
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
78
78
  }
79
79
  async executeRqbV2(placeholderValues = {}) {
80
80
  const params = fillPlaceholders(this.params, placeholderValues);
@@ -105,7 +105,7 @@ var SingleStoreDriverPreparedQuery = class extends SingleStorePreparedQuery {
105
105
  ]);
106
106
  if (row === void 0 || Array.isArray(row) && row.length === 0) break;
107
107
  else if (row instanceof Error) throw row;
108
- else if (this.isRqbV2Query) if (this.useJitMapper) yield (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]);
108
+ else if (this.isRqbV2Query) if (this.useJitMappers) yield (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]);
109
109
  else {
110
110
  const mapped = customResultMapper([row]);
111
111
  if (this.rqbConfig.isFirst) yield mapped;
@@ -114,7 +114,7 @@ var SingleStoreDriverPreparedQuery = class extends SingleStorePreparedQuery {
114
114
  else if (hasRowsMapper) if (customResultMapper) {
115
115
  const mappedRow = customResultMapper([row]);
116
116
  yield Array.isArray(mappedRow) ? mappedRow[0] : mappedRow;
117
- } else yield this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
117
+ } else yield this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
118
118
  else yield row;
119
119
  }
120
120
  } finally {
@@ -137,10 +137,10 @@ var SingleStoreDriverSession = class SingleStoreDriverSession extends SingleStor
137
137
  this.cache = options.cache ?? new NoopCache();
138
138
  }
139
139
  prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
140
- return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds);
140
+ return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds);
141
141
  }
142
142
  prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
143
- return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds, true, config);
143
+ return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds, true, config);
144
144
  }
145
145
  /**
146
146
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","names":[],"sources":["../../src/singlestore/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryKind,\n\tSingleStorePreparedQuery,\n\ttype SingleStorePreparedQueryConfig,\n\ttype SingleStorePreparedQueryHKT,\n\ttype SingleStoreQueryResultHKT,\n\tSingleStoreSession,\n\tSingleStoreTransaction,\n\ttype SingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type SingleStoreDriverClient = Pool | Connection;\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type SingleStoreQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type SingleStoreQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SingleStorePreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tqueryString: 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 useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properties + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMapper) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([\n\t\t\t\t\t\t\t\trow as Record<string, unknown>,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMapper\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SingleStoreDriverSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class SingleStoreDriverSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreSession<\n\tSingleStoreQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SingleStoreDriverSessionOptions,\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 SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\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): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStorePreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new SingleStoreDriverSession(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as SingleStoreSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class SingleStoreDriverTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreDriverQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: SingleStoreDriverClient): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface SingleStoreDriverQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreDriverPreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: SingleStoreDriverPreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.js","names":[],"sources":["../../src/singlestore/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryKind,\n\tSingleStorePreparedQuery,\n\ttype SingleStorePreparedQueryConfig,\n\ttype SingleStorePreparedQueryHKT,\n\ttype SingleStoreQueryResultHKT,\n\tSingleStoreSession,\n\tSingleStoreTransaction,\n\ttype SingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type SingleStoreDriverClient = Pool | Connection;\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type SingleStoreQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type SingleStoreQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SingleStorePreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tqueryString: 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 useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properties + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMappers) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([\n\t\t\t\t\t\t\t\trow as Record<string, unknown>,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMappers\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SingleStoreDriverSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class SingleStoreDriverSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreSession<\n\tSingleStoreQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SingleStoreDriverSessionOptions,\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 SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\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): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStorePreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\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\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new SingleStoreDriverSession(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as SingleStoreSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class SingleStoreDriverTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreDriverQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: SingleStoreDriverClient): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface SingleStoreDriverQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreDriverPreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: SingleStoreDriverPreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_singlestore_proxy_session = require('./session.cjs');
4
4
  let __entity_ts = require("../entity.cjs");
5
+ let __utils_ts = require("../utils.cjs");
5
6
  let __logger_ts = require("../logger.cjs");
6
7
  let ___relations_ts = require("../_relations.cjs");
7
8
  let __singlestore_core_db_ts = require("../singlestore-core/db.cjs");
@@ -28,7 +29,7 @@ function drizzle(callback, config = {}) {
28
29
  const relations = config.relations ?? {};
29
30
  return new SingleStoreRemoteDatabase(dialect, new require_singlestore_proxy_session.SingleStoreRemoteSession(callback, dialect, relations, schema, {
30
31
  logger,
31
- useJitMapper: config.useJitMappers
32
+ useJitMappers: (0, __utils_ts.jitCompatCheck)(config.useJitMappers)
32
33
  }), relations, schema);
33
34
  }
34
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"driver.cjs","names":["SingleStoreDatabase","entityKind","SingleStoreDialect","DefaultLogger","createTableRelationsHelpers","SingleStoreRemoteSession"],"sources":["../../src/singlestore-proxy/driver.ts"],"sourcesContent":["import {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport {\n\ttype SingleStoreRemotePreparedQueryHKT,\n\ttype SingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemoteSession,\n} from './session.ts';\n\nexport class SingleStoreRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SingleStoreDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SingleStoreRemoteSession(callback, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\treturn new SingleStoreRemoteDatabase(dialect, session, relations, schema as any) as SingleStoreRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;;AAkBA,IAAa,4BAAb,cAGUA,6CAA6G;CACtH,QAA0BC,0BAAsB;;AASjD,SAAgB,QAIf,UACA,SAA6C,EAAE,EACE;CACjD,MAAM,UAAU,IAAIC,kDAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,kEACL,OAAO,QACPC,4CACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAI,0BAA0B,SAJrB,IAAIC,2DAAyB,UAAU,SAAS,WAAW,QAAQ;EAClF;EACA,cAAc,OAAO;EACrB,CAAC,EACqD,WAAW,OAAc"}
1
+ {"version":3,"file":"driver.cjs","names":["SingleStoreDatabase","entityKind","SingleStoreDialect","DefaultLogger","createTableRelationsHelpers","SingleStoreRemoteSession"],"sources":["../../src/singlestore-proxy/driver.ts"],"sourcesContent":["import {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport {\n\ttype SingleStoreRemotePreparedQueryHKT,\n\ttype SingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemoteSession,\n} from './session.ts';\n\nexport class SingleStoreRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SingleStoreDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SingleStoreRemoteSession(callback, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\treturn new SingleStoreRemoteDatabase(dialect, session, relations, schema as any) as SingleStoreRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;;;AAkBA,IAAa,4BAAb,cAGUA,6CAA6G;CACtH,QAA0BC,0BAAsB;;AASjD,SAAgB,QAIf,UACA,SAA6C,EAAE,EACE;CACjD,MAAM,UAAU,IAAIC,kDAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,kEACL,OAAO,QACPC,4CACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAI,0BAA0B,SAJrB,IAAIC,2DAAyB,UAAU,SAAS,WAAW,QAAQ;EAClF;EACA,8CAA8B,OAAO,cAAc;EACnD,CAAC,EACqD,WAAW,OAAc"}
@@ -1,5 +1,6 @@
1
1
  import { SingleStoreRemoteSession } from "./session.js";
2
2
  import { entityKind } from "../entity.js";
3
+ import { jitCompatCheck } from "../utils.js";
3
4
  import { DefaultLogger } from "../logger.js";
4
5
  import { createTableRelationsHelpers, extractTablesRelationalConfig } from "../_relations.js";
5
6
  import { SingleStoreDatabase } from "../singlestore-core/db.js";
@@ -26,7 +27,7 @@ function drizzle(callback, config = {}) {
26
27
  const relations = config.relations ?? {};
27
28
  return new SingleStoreRemoteDatabase(dialect, new SingleStoreRemoteSession(callback, dialect, relations, schema, {
28
29
  logger,
29
- useJitMapper: config.useJitMappers
30
+ useJitMappers: jitCompatCheck(config.useJitMappers)
30
31
  }), relations, schema);
31
32
  }
32
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":[],"sources":["../../src/singlestore-proxy/driver.ts"],"sourcesContent":["import {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport {\n\ttype SingleStoreRemotePreparedQueryHKT,\n\ttype SingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemoteSession,\n} from './session.ts';\n\nexport class SingleStoreRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SingleStoreDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SingleStoreRemoteSession(callback, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\treturn new SingleStoreRemoteDatabase(dialect, session, relations, schema as any) as SingleStoreRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;AAkBA,IAAa,4BAAb,cAGU,oBAA6G;CACtH,QAA0B,cAAsB;;AASjD,SAAgB,QAIf,UACA,SAA6C,EAAE,EACE;CACjD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAI,0BAA0B,SAJrB,IAAI,yBAAyB,UAAU,SAAS,WAAW,QAAQ;EAClF;EACA,cAAc,OAAO;EACrB,CAAC,EACqD,WAAW,OAAc"}
1
+ {"version":3,"file":"driver.js","names":[],"sources":["../../src/singlestore-proxy/driver.ts"],"sourcesContent":["import {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport {\n\ttype SingleStoreRemotePreparedQueryHKT,\n\ttype SingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemoteSession,\n} from './session.ts';\n\nexport class SingleStoreRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SingleStoreDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SingleStoreRemoteSession(callback, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\treturn new SingleStoreRemoteDatabase(dialect, session, relations, schema as any) as SingleStoreRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAa,4BAAb,cAGU,oBAA6G;CACtH,QAA0B,cAAsB;;AASjD,SAAgB,QAIf,UACA,SAA6C,EAAE,EACE;CACjD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAI,0BAA0B,SAJrB,IAAI,yBAAyB,UAAU,SAAS,WAAW,QAAQ;EAClF;EACA,eAAe,eAAe,OAAO,cAAc;EACnD,CAAC,EACqD,WAAW,OAAc"}
@@ -22,10 +22,10 @@ var SingleStoreRemoteSession = class extends __singlestore_core_session_ts.Singl
22
22
  this.logger = options.logger ?? new __logger_ts.NoopLogger();
23
23
  }
24
24
  prepareQuery(query, fields, customResultMapper, generatedIds, returningIds) {
25
- return new PreparedQuery(this.client, query.sql, query.params, this.logger, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds);
25
+ return new PreparedQuery(this.client, query.sql, query.params, this.logger, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds);
26
26
  }
27
27
  prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
28
- return new PreparedQuery(this.client, query.sql, query.params, this.logger, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds, true, config);
28
+ return new PreparedQuery(this.client, query.sql, query.params, this.logger, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds, true, config);
29
29
  }
30
30
  all(query) {
31
31
  const querySql = this.dialect.sqlToQuery(query);
@@ -45,14 +45,14 @@ var SingleStoreProxyTransaction = class extends __singlestore_core_index_ts.Sing
45
45
  var PreparedQuery = class extends __singlestore_core_session_ts.SingleStorePreparedQuery {
46
46
  static [__entity_ts.entityKind] = "SingleStoreProxyPreparedQuery";
47
47
  jitMapper;
48
- constructor(client, queryString, params, logger, fields, useJitMapper, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
48
+ constructor(client, queryString, params, logger, fields, useJitMappers, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
49
49
  super();
50
50
  this.client = client;
51
51
  this.queryString = queryString;
52
52
  this.params = params;
53
53
  this.logger = logger;
54
54
  this.fields = fields;
55
- this.useJitMapper = useJitMapper;
55
+ this.useJitMappers = useJitMappers;
56
56
  this.customResultMapper = customResultMapper;
57
57
  this.generatedIds = generatedIds;
58
58
  this.returningIds = returningIds;
@@ -87,7 +87,7 @@ var PreparedQuery = class extends __singlestore_core_session_ts.SingleStorePrepa
87
87
  }
88
88
  const { rows } = await client(queryString, params, "all");
89
89
  if (customResultMapper) return customResultMapper(rows);
90
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
90
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
91
91
  }
92
92
  async executeRqbV2(placeholderValues = {}) {
93
93
  const params = (0, __sql_sql_ts.fillPlaceholders)(this.params, placeholderValues);
@@ -95,7 +95,7 @@ var PreparedQuery = class extends __singlestore_core_session_ts.SingleStorePrepa
95
95
  logger.logQuery(queryString, params);
96
96
  const { rows: res } = await client(queryString, params, "execute");
97
97
  const rows = res[0];
98
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))(rows) : customResultMapper(rows);
98
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))(rows) : customResultMapper(rows);
99
99
  }
100
100
  iterator(_placeholderValues = {}) {
101
101
  throw new Error("Streaming is not supported by the SingleStore Proxy driver");