drizzle-orm 0.43.1-47c6ad4 → 0.43.1-47df31f

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 (917) hide show
  1. package/aws-data-api/pg/driver.cjs +5 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +1 -0
  4. package/aws-data-api/pg/driver.d.ts +1 -0
  5. package/aws-data-api/pg/driver.js +5 -1
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +15 -4
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +13 -2
  10. package/aws-data-api/pg/session.d.ts +13 -2
  11. package/aws-data-api/pg/session.js +15 -4
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs +1 -2
  14. package/better-sqlite3/driver.cjs.map +1 -1
  15. package/better-sqlite3/driver.js +1 -2
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/session.cjs +9 -3
  18. package/better-sqlite3/session.cjs.map +1 -1
  19. package/better-sqlite3/session.d.cts +12 -2
  20. package/better-sqlite3/session.d.ts +12 -2
  21. package/better-sqlite3/session.js +9 -3
  22. package/better-sqlite3/session.js.map +1 -1
  23. package/bun-sql/driver.cjs +6 -3
  24. package/bun-sql/driver.cjs.map +1 -1
  25. package/bun-sql/driver.js +6 -3
  26. package/bun-sql/driver.js.map +1 -1
  27. package/bun-sql/session.cjs +21 -9
  28. package/bun-sql/session.cjs.map +1 -1
  29. package/bun-sql/session.d.cts +12 -2
  30. package/bun-sql/session.d.ts +12 -2
  31. package/bun-sql/session.js +21 -9
  32. package/bun-sql/session.js.map +1 -1
  33. package/bun-sqlite/driver.cjs +1 -2
  34. package/bun-sqlite/driver.cjs.map +1 -1
  35. package/bun-sqlite/driver.js +1 -2
  36. package/bun-sqlite/driver.js.map +1 -1
  37. package/{mssql-core/columns/real.cjs → cache/core/cache.cjs} +30 -25
  38. package/cache/core/cache.cjs.map +1 -0
  39. package/cache/core/cache.d.cts +36 -0
  40. package/cache/core/cache.d.ts +36 -0
  41. package/cache/core/cache.js +32 -0
  42. package/cache/core/cache.js.map +1 -0
  43. package/{node-mssql → cache/core}/index.cjs +4 -6
  44. package/cache/core/index.cjs.map +1 -0
  45. package/cache/core/index.d.cts +1 -0
  46. package/cache/core/index.d.ts +1 -0
  47. package/cache/core/index.js +2 -0
  48. package/cache/core/index.js.map +1 -0
  49. package/{mssql-core/subquery.cjs → cache/core/types.cjs} +3 -3
  50. package/cache/core/types.cjs.map +1 -0
  51. package/cache/core/types.d.cts +33 -0
  52. package/cache/core/types.d.ts +33 -0
  53. package/cache/core/types.js +1 -0
  54. package/cache/upstash/cache.cjs +195 -0
  55. package/cache/upstash/cache.cjs.map +1 -0
  56. package/cache/upstash/cache.d.cts +59 -0
  57. package/cache/upstash/cache.d.ts +59 -0
  58. package/cache/upstash/cache.js +170 -0
  59. package/cache/upstash/cache.js.map +1 -0
  60. package/{mssql-core/view-common.cjs → cache/upstash/index.cjs} +6 -12
  61. package/cache/upstash/index.cjs.map +1 -0
  62. package/cache/upstash/index.d.cts +1 -0
  63. package/cache/upstash/index.d.ts +1 -0
  64. package/cache/upstash/index.js +2 -0
  65. package/cache/upstash/index.js.map +1 -0
  66. package/casing.cjs +1 -2
  67. package/casing.cjs.map +1 -1
  68. package/casing.js +1 -2
  69. package/casing.js.map +1 -1
  70. package/column-builder.cjs +1 -2
  71. package/column-builder.cjs.map +1 -1
  72. package/column-builder.d.cts +3 -4
  73. package/column-builder.d.ts +3 -4
  74. package/column-builder.js +1 -2
  75. package/column-builder.js.map +1 -1
  76. package/d1/driver.cjs +5 -1
  77. package/d1/driver.cjs.map +1 -1
  78. package/d1/driver.js +5 -1
  79. package/d1/driver.js.map +1 -1
  80. package/d1/session.cjs +23 -9
  81. package/d1/session.cjs.map +1 -1
  82. package/d1/session.d.cts +12 -2
  83. package/d1/session.d.ts +12 -2
  84. package/d1/session.js +23 -9
  85. package/d1/session.js.map +1 -1
  86. package/durable-sqlite/session.cjs +1 -1
  87. package/durable-sqlite/session.cjs.map +1 -1
  88. package/durable-sqlite/session.js +1 -1
  89. package/durable-sqlite/session.js.map +1 -1
  90. package/{mssql-core/alias.cjs → errors/index.cjs} +16 -9
  91. package/errors/index.cjs.map +1 -0
  92. package/errors/index.d.cts +6 -0
  93. package/errors/index.d.ts +6 -0
  94. package/errors/index.js +15 -0
  95. package/errors/index.js.map +1 -0
  96. package/gel/driver.cjs +10 -4
  97. package/gel/driver.cjs.map +1 -1
  98. package/gel/driver.d.cts +2 -0
  99. package/gel/driver.d.ts +2 -0
  100. package/gel/driver.js +10 -4
  101. package/gel/driver.js.map +1 -1
  102. package/gel/session.cjs +25 -10
  103. package/gel/session.cjs.map +1 -1
  104. package/gel/session.d.cts +12 -2
  105. package/gel/session.d.ts +12 -2
  106. package/gel/session.js +25 -10
  107. package/gel/session.js.map +1 -1
  108. package/gel-core/db.cjs +3 -0
  109. package/gel-core/db.cjs.map +1 -1
  110. package/gel-core/db.d.cts +4 -0
  111. package/gel-core/db.d.ts +4 -0
  112. package/gel-core/db.js +3 -0
  113. package/gel-core/db.js.map +1 -1
  114. package/gel-core/dialect.cjs +1 -2
  115. package/gel-core/dialect.cjs.map +1 -1
  116. package/gel-core/dialect.js +1 -2
  117. package/gel-core/dialect.js.map +1 -1
  118. package/gel-core/query-builders/delete.cjs +5 -1
  119. package/gel-core/query-builders/delete.cjs.map +1 -1
  120. package/gel-core/query-builders/delete.js +5 -1
  121. package/gel-core/query-builders/delete.js.map +1 -1
  122. package/gel-core/query-builders/insert.cjs +5 -1
  123. package/gel-core/query-builders/insert.cjs.map +1 -1
  124. package/gel-core/query-builders/insert.js +5 -1
  125. package/gel-core/query-builders/insert.js.map +1 -1
  126. package/gel-core/query-builders/select.cjs +26 -4
  127. package/gel-core/query-builders/select.cjs.map +1 -1
  128. package/gel-core/query-builders/select.d.cts +9 -0
  129. package/gel-core/query-builders/select.d.ts +9 -0
  130. package/gel-core/query-builders/select.js +26 -4
  131. package/gel-core/query-builders/select.js.map +1 -1
  132. package/gel-core/query-builders/update.cjs +5 -1
  133. package/gel-core/query-builders/update.cjs.map +1 -1
  134. package/gel-core/query-builders/update.js +5 -1
  135. package/gel-core/query-builders/update.js.map +1 -1
  136. package/gel-core/session.cjs +78 -1
  137. package/gel-core/session.cjs.map +1 -1
  138. package/gel-core/session.d.cts +13 -2
  139. package/gel-core/session.d.ts +13 -2
  140. package/gel-core/session.js +79 -2
  141. package/gel-core/session.js.map +1 -1
  142. package/gel-core/utils.cjs +16 -0
  143. package/gel-core/utils.cjs.map +1 -1
  144. package/gel-core/utils.d.cts +8 -4
  145. package/gel-core/utils.d.ts +8 -4
  146. package/gel-core/utils.js +15 -0
  147. package/gel-core/utils.js.map +1 -1
  148. package/index.cjs +16 -16
  149. package/index.cjs.map +1 -1
  150. package/libsql/driver-core.cjs +5 -1
  151. package/libsql/driver-core.cjs.map +1 -1
  152. package/libsql/driver-core.js +5 -1
  153. package/libsql/driver-core.js.map +1 -1
  154. package/libsql/driver.cjs +1 -2
  155. package/libsql/driver.cjs.map +1 -1
  156. package/libsql/driver.js +1 -2
  157. package/libsql/driver.js.map +1 -1
  158. package/libsql/http/index.cjs +1 -2
  159. package/libsql/http/index.cjs.map +1 -1
  160. package/libsql/http/index.js +1 -2
  161. package/libsql/http/index.js.map +1 -1
  162. package/libsql/node/index.cjs +1 -2
  163. package/libsql/node/index.cjs.map +1 -1
  164. package/libsql/node/index.js +1 -2
  165. package/libsql/node/index.js.map +1 -1
  166. package/libsql/session.cjs +27 -13
  167. package/libsql/session.cjs.map +1 -1
  168. package/libsql/session.d.cts +12 -2
  169. package/libsql/session.d.ts +12 -2
  170. package/libsql/session.js +27 -13
  171. package/libsql/session.js.map +1 -1
  172. package/libsql/sqlite3/index.cjs +1 -2
  173. package/libsql/sqlite3/index.cjs.map +1 -1
  174. package/libsql/sqlite3/index.js +1 -2
  175. package/libsql/sqlite3/index.js.map +1 -1
  176. package/libsql/wasm/index.cjs +1 -2
  177. package/libsql/wasm/index.cjs.map +1 -1
  178. package/libsql/wasm/index.js +1 -2
  179. package/libsql/wasm/index.js.map +1 -1
  180. package/libsql/web/index.cjs +1 -2
  181. package/libsql/web/index.cjs.map +1 -1
  182. package/libsql/web/index.js +1 -2
  183. package/libsql/web/index.js.map +1 -1
  184. package/libsql/ws/index.cjs +1 -2
  185. package/libsql/ws/index.cjs.map +1 -1
  186. package/libsql/ws/index.js +1 -2
  187. package/libsql/ws/index.js.map +1 -1
  188. package/mysql-core/columns/binary.cjs +2 -4
  189. package/mysql-core/columns/binary.cjs.map +1 -1
  190. package/mysql-core/columns/binary.js +2 -4
  191. package/mysql-core/columns/binary.js.map +1 -1
  192. package/mysql-core/columns/decimal.cjs +2 -4
  193. package/mysql-core/columns/decimal.cjs.map +1 -1
  194. package/mysql-core/columns/decimal.js +2 -4
  195. package/mysql-core/columns/decimal.js.map +1 -1
  196. package/mysql-core/columns/varbinary.cjs +2 -4
  197. package/mysql-core/columns/varbinary.cjs.map +1 -1
  198. package/mysql-core/columns/varbinary.js +2 -4
  199. package/mysql-core/columns/varbinary.js.map +1 -1
  200. package/mysql-core/db.cjs +3 -0
  201. package/mysql-core/db.cjs.map +1 -1
  202. package/mysql-core/db.d.cts +4 -0
  203. package/mysql-core/db.d.ts +4 -0
  204. package/mysql-core/db.js +3 -0
  205. package/mysql-core/db.js.map +1 -1
  206. package/mysql-core/dialect.cjs +1 -2
  207. package/mysql-core/dialect.cjs.map +1 -1
  208. package/mysql-core/dialect.js +1 -2
  209. package/mysql-core/dialect.js.map +1 -1
  210. package/mysql-core/query-builders/delete.cjs +9 -1
  211. package/mysql-core/query-builders/delete.cjs.map +1 -1
  212. package/mysql-core/query-builders/delete.js +9 -1
  213. package/mysql-core/query-builders/delete.js.map +1 -1
  214. package/mysql-core/query-builders/insert.cjs +8 -1
  215. package/mysql-core/query-builders/insert.cjs.map +1 -1
  216. package/mysql-core/query-builders/insert.d.cts +2 -0
  217. package/mysql-core/query-builders/insert.d.ts +2 -0
  218. package/mysql-core/query-builders/insert.js +8 -1
  219. package/mysql-core/query-builders/insert.js.map +1 -1
  220. package/mysql-core/query-builders/select.cjs +24 -3
  221. package/mysql-core/query-builders/select.cjs.map +1 -1
  222. package/mysql-core/query-builders/select.d.cts +9 -0
  223. package/mysql-core/query-builders/select.d.ts +9 -0
  224. package/mysql-core/query-builders/select.js +25 -4
  225. package/mysql-core/query-builders/select.js.map +1 -1
  226. package/mysql-core/query-builders/update.cjs +11 -1
  227. package/mysql-core/query-builders/update.cjs.map +1 -1
  228. package/mysql-core/query-builders/update.d.cts +2 -0
  229. package/mysql-core/query-builders/update.d.ts +2 -0
  230. package/mysql-core/query-builders/update.js +11 -1
  231. package/mysql-core/query-builders/update.js.map +1 -1
  232. package/mysql-core/session.cjs +79 -0
  233. package/mysql-core/session.cjs.map +1 -1
  234. package/mysql-core/session.d.cts +14 -1
  235. package/mysql-core/session.d.ts +14 -1
  236. package/mysql-core/session.js +80 -1
  237. package/mysql-core/session.js.map +1 -1
  238. package/mysql-core/utils.cjs +16 -0
  239. package/mysql-core/utils.cjs.map +1 -1
  240. package/mysql-core/utils.d.cts +6 -2
  241. package/mysql-core/utils.d.ts +6 -2
  242. package/mysql-core/utils.js +15 -0
  243. package/mysql-core/utils.js.map +1 -1
  244. package/mysql-proxy/session.cjs +15 -5
  245. package/mysql-proxy/session.cjs.map +1 -1
  246. package/mysql-proxy/session.d.cts +12 -2
  247. package/mysql-proxy/session.d.ts +12 -2
  248. package/mysql-proxy/session.js +15 -5
  249. package/mysql-proxy/session.js.map +1 -1
  250. package/mysql2/driver.cjs +11 -4
  251. package/mysql2/driver.cjs.map +1 -1
  252. package/mysql2/driver.d.cts +2 -0
  253. package/mysql2/driver.d.ts +2 -0
  254. package/mysql2/driver.js +11 -4
  255. package/mysql2/driver.js.map +1 -1
  256. package/mysql2/session.cjs +15 -5
  257. package/mysql2/session.cjs.map +1 -1
  258. package/mysql2/session.d.cts +12 -2
  259. package/mysql2/session.d.ts +12 -2
  260. package/mysql2/session.js +15 -5
  261. package/mysql2/session.js.map +1 -1
  262. package/neon-http/driver.cjs +13 -10
  263. package/neon-http/driver.cjs.map +1 -1
  264. package/neon-http/driver.d.cts +2 -0
  265. package/neon-http/driver.d.ts +2 -0
  266. package/neon-http/driver.js +13 -10
  267. package/neon-http/driver.js.map +1 -1
  268. package/neon-http/session.cjs +25 -15
  269. package/neon-http/session.cjs.map +1 -1
  270. package/neon-http/session.d.cts +12 -2
  271. package/neon-http/session.d.ts +12 -2
  272. package/neon-http/session.js +25 -15
  273. package/neon-http/session.js.map +1 -1
  274. package/neon-serverless/driver.cjs +10 -4
  275. package/neon-serverless/driver.cjs.map +1 -1
  276. package/neon-serverless/driver.d.cts +2 -0
  277. package/neon-serverless/driver.d.ts +2 -0
  278. package/neon-serverless/driver.js +10 -4
  279. package/neon-serverless/driver.js.map +1 -1
  280. package/neon-serverless/session.cjs +21 -7
  281. package/neon-serverless/session.cjs.map +1 -1
  282. package/neon-serverless/session.d.cts +12 -2
  283. package/neon-serverless/session.d.ts +12 -2
  284. package/neon-serverless/session.js +21 -7
  285. package/neon-serverless/session.js.map +1 -1
  286. package/node-postgres/driver.cjs +10 -4
  287. package/node-postgres/driver.cjs.map +1 -1
  288. package/node-postgres/driver.d.cts +2 -0
  289. package/node-postgres/driver.d.ts +2 -0
  290. package/node-postgres/driver.js +10 -4
  291. package/node-postgres/driver.js.map +1 -1
  292. package/node-postgres/session.cjs +19 -6
  293. package/node-postgres/session.cjs.map +1 -1
  294. package/node-postgres/session.d.cts +13 -2
  295. package/node-postgres/session.d.ts +13 -2
  296. package/node-postgres/session.js +19 -6
  297. package/node-postgres/session.js.map +1 -1
  298. package/op-sqlite/driver.cjs +5 -1
  299. package/op-sqlite/driver.cjs.map +1 -1
  300. package/op-sqlite/driver.js +5 -1
  301. package/op-sqlite/driver.js.map +1 -1
  302. package/op-sqlite/session.cjs +23 -9
  303. package/op-sqlite/session.cjs.map +1 -1
  304. package/op-sqlite/session.d.cts +12 -2
  305. package/op-sqlite/session.d.ts +12 -2
  306. package/op-sqlite/session.js +23 -9
  307. package/op-sqlite/session.js.map +1 -1
  308. package/package.json +77 -664
  309. package/pg-core/columns/common.cjs +1 -2
  310. package/pg-core/columns/common.cjs.map +1 -1
  311. package/pg-core/columns/common.js +1 -2
  312. package/pg-core/columns/common.js.map +1 -1
  313. package/pg-core/columns/numeric.cjs +2 -4
  314. package/pg-core/columns/numeric.cjs.map +1 -1
  315. package/pg-core/columns/numeric.js +2 -4
  316. package/pg-core/columns/numeric.js.map +1 -1
  317. package/pg-core/db.cjs +3 -0
  318. package/pg-core/db.cjs.map +1 -1
  319. package/pg-core/db.d.cts +4 -0
  320. package/pg-core/db.d.ts +4 -0
  321. package/pg-core/db.js +3 -0
  322. package/pg-core/db.js.map +1 -1
  323. package/pg-core/dialect.cjs +1 -2
  324. package/pg-core/dialect.cjs.map +1 -1
  325. package/pg-core/dialect.js +1 -2
  326. package/pg-core/dialect.js.map +1 -1
  327. package/pg-core/query-builders/delete.cjs +6 -1
  328. package/pg-core/query-builders/delete.cjs.map +1 -1
  329. package/pg-core/query-builders/delete.d.cts +3 -1
  330. package/pg-core/query-builders/delete.d.ts +3 -1
  331. package/pg-core/query-builders/delete.js +6 -1
  332. package/pg-core/query-builders/delete.js.map +1 -1
  333. package/pg-core/query-builders/insert.cjs +6 -1
  334. package/pg-core/query-builders/insert.cjs.map +1 -1
  335. package/pg-core/query-builders/insert.d.cts +2 -0
  336. package/pg-core/query-builders/insert.d.ts +2 -0
  337. package/pg-core/query-builders/insert.js +6 -1
  338. package/pg-core/query-builders/insert.js.map +1 -1
  339. package/pg-core/query-builders/select.cjs +28 -5
  340. package/pg-core/query-builders/select.cjs.map +1 -1
  341. package/pg-core/query-builders/select.d.cts +15 -6
  342. package/pg-core/query-builders/select.d.ts +15 -6
  343. package/pg-core/query-builders/select.js +28 -5
  344. package/pg-core/query-builders/select.js.map +1 -1
  345. package/pg-core/query-builders/update.cjs +6 -1
  346. package/pg-core/query-builders/update.cjs.map +1 -1
  347. package/pg-core/query-builders/update.d.cts +4 -2
  348. package/pg-core/query-builders/update.d.ts +4 -2
  349. package/pg-core/query-builders/update.js +6 -1
  350. package/pg-core/query-builders/update.js.map +1 -1
  351. package/pg-core/session.cjs +78 -1
  352. package/pg-core/session.cjs.map +1 -1
  353. package/pg-core/session.d.cts +13 -2
  354. package/pg-core/session.d.ts +13 -2
  355. package/pg-core/session.js +79 -2
  356. package/pg-core/session.js.map +1 -1
  357. package/pg-core/utils.cjs +16 -0
  358. package/pg-core/utils.cjs.map +1 -1
  359. package/pg-core/utils.d.cts +8 -4
  360. package/pg-core/utils.d.ts +8 -4
  361. package/pg-core/utils.js +16 -1
  362. package/pg-core/utils.js.map +1 -1
  363. package/pg-proxy/driver.cjs +7 -2
  364. package/pg-proxy/driver.cjs.map +1 -1
  365. package/pg-proxy/driver.js +7 -2
  366. package/pg-proxy/driver.js.map +1 -1
  367. package/pg-proxy/session.cjs +15 -5
  368. package/pg-proxy/session.cjs.map +1 -1
  369. package/pg-proxy/session.d.cts +12 -2
  370. package/pg-proxy/session.d.ts +12 -2
  371. package/pg-proxy/session.js +15 -5
  372. package/pg-proxy/session.js.map +1 -1
  373. package/pglite/driver.cjs +10 -4
  374. package/pglite/driver.cjs.map +1 -1
  375. package/pglite/driver.d.cts +2 -0
  376. package/pglite/driver.d.ts +2 -0
  377. package/pglite/driver.js +10 -4
  378. package/pglite/driver.js.map +1 -1
  379. package/pglite/session.cjs +19 -7
  380. package/pglite/session.cjs.map +1 -1
  381. package/pglite/session.d.cts +12 -2
  382. package/pglite/session.d.ts +12 -2
  383. package/pglite/session.js +19 -7
  384. package/pglite/session.js.map +1 -1
  385. package/planetscale-serverless/driver.cjs +6 -3
  386. package/planetscale-serverless/driver.cjs.map +1 -1
  387. package/planetscale-serverless/driver.d.cts +1 -0
  388. package/planetscale-serverless/driver.d.ts +1 -0
  389. package/planetscale-serverless/driver.js +6 -3
  390. package/planetscale-serverless/driver.js.map +1 -1
  391. package/planetscale-serverless/session.cjs +15 -5
  392. package/planetscale-serverless/session.cjs.map +1 -1
  393. package/planetscale-serverless/session.d.cts +12 -2
  394. package/planetscale-serverless/session.d.ts +12 -2
  395. package/planetscale-serverless/session.js +15 -5
  396. package/planetscale-serverless/session.js.map +1 -1
  397. package/postgres-js/driver.cjs +6 -3
  398. package/postgres-js/driver.cjs.map +1 -1
  399. package/postgres-js/driver.js +6 -3
  400. package/postgres-js/driver.js.map +1 -1
  401. package/postgres-js/session.cjs +18 -6
  402. package/postgres-js/session.cjs.map +1 -1
  403. package/postgres-js/session.d.cts +12 -2
  404. package/postgres-js/session.d.ts +12 -2
  405. package/postgres-js/session.js +18 -6
  406. package/postgres-js/session.js.map +1 -1
  407. package/prisma/mysql/session.cjs +1 -1
  408. package/prisma/mysql/session.cjs.map +1 -1
  409. package/prisma/mysql/session.js +1 -1
  410. package/prisma/mysql/session.js.map +1 -1
  411. package/prisma/pg/session.cjs +1 -1
  412. package/prisma/pg/session.cjs.map +1 -1
  413. package/prisma/pg/session.js +1 -1
  414. package/prisma/pg/session.js.map +1 -1
  415. package/query-builders/query-builder.cjs.map +1 -1
  416. package/query-builders/query-builder.d.cts +2 -1
  417. package/query-builders/query-builder.d.ts +2 -1
  418. package/query-builders/query-builder.js.map +1 -1
  419. package/relations.cjs +0 -48
  420. package/relations.cjs.map +1 -1
  421. package/relations.d.cts +0 -1
  422. package/relations.d.ts +0 -1
  423. package/relations.js +0 -47
  424. package/relations.js.map +1 -1
  425. package/singlestore/driver.cjs +13 -4
  426. package/singlestore/driver.cjs.map +1 -1
  427. package/singlestore/driver.d.cts +2 -0
  428. package/singlestore/driver.d.ts +2 -0
  429. package/singlestore/driver.js +13 -4
  430. package/singlestore/driver.js.map +1 -1
  431. package/singlestore/session.cjs +15 -5
  432. package/singlestore/session.cjs.map +1 -1
  433. package/singlestore/session.d.cts +12 -2
  434. package/singlestore/session.d.ts +12 -2
  435. package/singlestore/session.js +15 -5
  436. package/singlestore/session.js.map +1 -1
  437. package/singlestore-core/columns/binary.cjs +2 -4
  438. package/singlestore-core/columns/binary.cjs.map +1 -1
  439. package/singlestore-core/columns/binary.js +2 -4
  440. package/singlestore-core/columns/binary.js.map +1 -1
  441. package/singlestore-core/columns/decimal.cjs +2 -4
  442. package/singlestore-core/columns/decimal.cjs.map +1 -1
  443. package/singlestore-core/columns/decimal.js +2 -4
  444. package/singlestore-core/columns/decimal.js.map +1 -1
  445. package/singlestore-core/columns/varbinary.cjs +2 -4
  446. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  447. package/singlestore-core/columns/varbinary.js +2 -4
  448. package/singlestore-core/columns/varbinary.js.map +1 -1
  449. package/singlestore-core/db.cjs +3 -0
  450. package/singlestore-core/db.cjs.map +1 -1
  451. package/singlestore-core/db.d.cts +4 -0
  452. package/singlestore-core/db.d.ts +4 -0
  453. package/singlestore-core/db.js +3 -0
  454. package/singlestore-core/db.js.map +1 -1
  455. package/singlestore-core/dialect.cjs +1 -2
  456. package/singlestore-core/dialect.cjs.map +1 -1
  457. package/singlestore-core/dialect.js +1 -2
  458. package/singlestore-core/dialect.js.map +1 -1
  459. package/singlestore-core/query-builders/delete.cjs +9 -1
  460. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  461. package/singlestore-core/query-builders/delete.js +9 -1
  462. package/singlestore-core/query-builders/delete.js.map +1 -1
  463. package/singlestore-core/query-builders/insert.cjs +6 -1
  464. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  465. package/singlestore-core/query-builders/insert.js +6 -1
  466. package/singlestore-core/query-builders/insert.js.map +1 -1
  467. package/singlestore-core/query-builders/select.cjs +25 -3
  468. package/singlestore-core/query-builders/select.cjs.map +1 -1
  469. package/singlestore-core/query-builders/select.d.cts +9 -0
  470. package/singlestore-core/query-builders/select.d.ts +9 -0
  471. package/singlestore-core/query-builders/select.js +25 -3
  472. package/singlestore-core/query-builders/select.js.map +1 -1
  473. package/singlestore-core/query-builders/update.cjs +9 -1
  474. package/singlestore-core/query-builders/update.cjs.map +1 -1
  475. package/singlestore-core/query-builders/update.js +9 -1
  476. package/singlestore-core/query-builders/update.js.map +1 -1
  477. package/singlestore-core/session.cjs +79 -0
  478. package/singlestore-core/session.cjs.map +1 -1
  479. package/singlestore-core/session.d.cts +13 -1
  480. package/singlestore-core/session.d.ts +13 -1
  481. package/singlestore-core/session.js +80 -1
  482. package/singlestore-core/session.js.map +1 -1
  483. package/singlestore-core/utils.cjs +16 -0
  484. package/singlestore-core/utils.cjs.map +1 -1
  485. package/singlestore-core/utils.d.cts +3 -0
  486. package/singlestore-core/utils.d.ts +3 -0
  487. package/singlestore-core/utils.js +15 -0
  488. package/singlestore-core/utils.js.map +1 -1
  489. package/sql/sql.cjs +10 -0
  490. package/sql/sql.cjs.map +1 -1
  491. package/sql/sql.js +10 -0
  492. package/sql/sql.js.map +1 -1
  493. package/sqlite-core/columns/numeric.cjs +2 -4
  494. package/sqlite-core/columns/numeric.cjs.map +1 -1
  495. package/sqlite-core/columns/numeric.js +2 -4
  496. package/sqlite-core/columns/numeric.js.map +1 -1
  497. package/sqlite-core/db.cjs +3 -0
  498. package/sqlite-core/db.cjs.map +1 -1
  499. package/sqlite-core/db.d.cts +4 -0
  500. package/sqlite-core/db.d.ts +4 -0
  501. package/sqlite-core/db.js +3 -0
  502. package/sqlite-core/db.js.map +1 -1
  503. package/sqlite-core/dialect.cjs +1 -2
  504. package/sqlite-core/dialect.cjs.map +1 -1
  505. package/sqlite-core/dialect.js +1 -2
  506. package/sqlite-core/dialect.js.map +1 -1
  507. package/sqlite-core/query-builders/delete.cjs +7 -1
  508. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  509. package/sqlite-core/query-builders/delete.js +7 -1
  510. package/sqlite-core/query-builders/delete.js.map +1 -1
  511. package/sqlite-core/query-builders/insert.cjs +9 -5
  512. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  513. package/sqlite-core/query-builders/insert.js +9 -5
  514. package/sqlite-core/query-builders/insert.js.map +1 -1
  515. package/sqlite-core/query-builders/select.cjs +28 -3
  516. package/sqlite-core/query-builders/select.cjs.map +1 -1
  517. package/sqlite-core/query-builders/select.d.cts +9 -0
  518. package/sqlite-core/query-builders/select.d.ts +9 -0
  519. package/sqlite-core/query-builders/select.js +28 -3
  520. package/sqlite-core/query-builders/select.js.map +1 -1
  521. package/sqlite-core/query-builders/update.cjs +7 -1
  522. package/sqlite-core/query-builders/update.cjs.map +1 -1
  523. package/sqlite-core/query-builders/update.js +7 -1
  524. package/sqlite-core/query-builders/update.js.map +1 -1
  525. package/sqlite-core/session.cjs +88 -3
  526. package/sqlite-core/session.cjs.map +1 -1
  527. package/sqlite-core/session.d.cts +18 -4
  528. package/sqlite-core/session.d.ts +18 -4
  529. package/sqlite-core/session.js +89 -4
  530. package/sqlite-core/session.js.map +1 -1
  531. package/sqlite-core/utils.cjs +16 -0
  532. package/sqlite-core/utils.cjs.map +1 -1
  533. package/sqlite-core/utils.d.cts +6 -2
  534. package/sqlite-core/utils.d.ts +6 -2
  535. package/sqlite-core/utils.js +15 -0
  536. package/sqlite-core/utils.js.map +1 -1
  537. package/sqlite-proxy/driver.cjs +9 -2
  538. package/sqlite-proxy/driver.cjs.map +1 -1
  539. package/sqlite-proxy/driver.js +9 -2
  540. package/sqlite-proxy/driver.js.map +1 -1
  541. package/sqlite-proxy/session.cjs +22 -8
  542. package/sqlite-proxy/session.cjs.map +1 -1
  543. package/sqlite-proxy/session.d.cts +12 -2
  544. package/sqlite-proxy/session.d.ts +12 -2
  545. package/sqlite-proxy/session.js +22 -8
  546. package/sqlite-proxy/session.js.map +1 -1
  547. package/subquery.cjs +4 -3
  548. package/subquery.cjs.map +1 -1
  549. package/subquery.d.cts +2 -1
  550. package/subquery.d.ts +2 -1
  551. package/subquery.js +4 -3
  552. package/subquery.js.map +1 -1
  553. package/tidb-serverless/driver.cjs +6 -3
  554. package/tidb-serverless/driver.cjs.map +1 -1
  555. package/tidb-serverless/driver.d.cts +1 -0
  556. package/tidb-serverless/driver.d.ts +1 -0
  557. package/tidb-serverless/driver.js +6 -3
  558. package/tidb-serverless/driver.js.map +1 -1
  559. package/tidb-serverless/session.cjs +15 -5
  560. package/tidb-serverless/session.cjs.map +1 -1
  561. package/tidb-serverless/session.d.cts +12 -2
  562. package/tidb-serverless/session.d.ts +12 -2
  563. package/tidb-serverless/session.js +15 -5
  564. package/tidb-serverless/session.js.map +1 -1
  565. package/utils.cjs +10 -20
  566. package/utils.cjs.map +1 -1
  567. package/utils.d.cts +2 -0
  568. package/utils.d.ts +2 -0
  569. package/utils.js +10 -20
  570. package/utils.js.map +1 -1
  571. package/vercel-postgres/driver.cjs +9 -2
  572. package/vercel-postgres/driver.cjs.map +1 -1
  573. package/vercel-postgres/driver.d.cts +2 -0
  574. package/vercel-postgres/driver.d.ts +2 -0
  575. package/vercel-postgres/driver.js +9 -2
  576. package/vercel-postgres/driver.js.map +1 -1
  577. package/vercel-postgres/session.cjs +21 -7
  578. package/vercel-postgres/session.cjs.map +1 -1
  579. package/vercel-postgres/session.d.cts +12 -2
  580. package/vercel-postgres/session.d.ts +12 -2
  581. package/vercel-postgres/session.js +21 -7
  582. package/vercel-postgres/session.js.map +1 -1
  583. package/version.cjs +1 -1
  584. package/version.d.cts +1 -1
  585. package/version.d.ts +1 -1
  586. package/version.js +1 -1
  587. package/xata-http/driver.cjs +7 -2
  588. package/xata-http/driver.cjs.map +1 -1
  589. package/xata-http/driver.d.cts +2 -0
  590. package/xata-http/driver.d.ts +2 -0
  591. package/xata-http/driver.js +7 -2
  592. package/xata-http/driver.js.map +1 -1
  593. package/xata-http/session.cjs +22 -9
  594. package/xata-http/session.cjs.map +1 -1
  595. package/xata-http/session.d.cts +12 -2
  596. package/xata-http/session.d.ts +12 -2
  597. package/xata-http/session.js +22 -9
  598. package/xata-http/session.js.map +1 -1
  599. package/mssql-core/alias.cjs.map +0 -1
  600. package/mssql-core/alias.d.cts +0 -4
  601. package/mssql-core/alias.d.ts +0 -4
  602. package/mssql-core/alias.js +0 -8
  603. package/mssql-core/alias.js.map +0 -1
  604. package/mssql-core/checks.cjs +0 -58
  605. package/mssql-core/checks.cjs.map +0 -1
  606. package/mssql-core/checks.d.cts +0 -18
  607. package/mssql-core/checks.d.ts +0 -18
  608. package/mssql-core/checks.js +0 -32
  609. package/mssql-core/checks.js.map +0 -1
  610. package/mssql-core/columns/all.cjs +0 -72
  611. package/mssql-core/columns/all.cjs.map +0 -1
  612. package/mssql-core/columns/all.d.cts +0 -43
  613. package/mssql-core/columns/all.d.ts +0 -43
  614. package/mssql-core/columns/all.js +0 -48
  615. package/mssql-core/columns/all.js.map +0 -1
  616. package/mssql-core/columns/bigint.cjs +0 -67
  617. package/mssql-core/columns/bigint.cjs.map +0 -1
  618. package/mssql-core/columns/bigint.d.cts +0 -33
  619. package/mssql-core/columns/bigint.d.ts +0 -33
  620. package/mssql-core/columns/bigint.js +0 -41
  621. package/mssql-core/columns/bigint.js.map +0 -1
  622. package/mssql-core/columns/binary.cjs +0 -57
  623. package/mssql-core/columns/binary.cjs.map +0 -1
  624. package/mssql-core/columns/binary.d.cts +0 -28
  625. package/mssql-core/columns/binary.d.ts +0 -28
  626. package/mssql-core/columns/binary.js +0 -31
  627. package/mssql-core/columns/binary.js.map +0 -1
  628. package/mssql-core/columns/bit.cjs +0 -54
  629. package/mssql-core/columns/bit.cjs.map +0 -1
  630. package/mssql-core/columns/bit.d.cts +0 -24
  631. package/mssql-core/columns/bit.d.ts +0 -24
  632. package/mssql-core/columns/bit.js +0 -28
  633. package/mssql-core/columns/bit.js.map +0 -1
  634. package/mssql-core/columns/char.cjs +0 -74
  635. package/mssql-core/columns/char.cjs.map +0 -1
  636. package/mssql-core/columns/char.d.cts +0 -37
  637. package/mssql-core/columns/char.d.ts +0 -37
  638. package/mssql-core/columns/char.js +0 -47
  639. package/mssql-core/columns/char.js.map +0 -1
  640. package/mssql-core/columns/common.cjs +0 -117
  641. package/mssql-core/columns/common.cjs.map +0 -1
  642. package/mssql-core/columns/common.d.cts +0 -67
  643. package/mssql-core/columns/common.d.ts +0 -67
  644. package/mssql-core/columns/common.js +0 -90
  645. package/mssql-core/columns/common.js.map +0 -1
  646. package/mssql-core/columns/custom.cjs +0 -75
  647. package/mssql-core/columns/custom.cjs.map +0 -1
  648. package/mssql-core/columns/custom.d.cts +0 -149
  649. package/mssql-core/columns/custom.d.ts +0 -149
  650. package/mssql-core/columns/custom.js +0 -49
  651. package/mssql-core/columns/custom.js.map +0 -1
  652. package/mssql-core/columns/date.cjs +0 -94
  653. package/mssql-core/columns/date.cjs.map +0 -1
  654. package/mssql-core/columns/date.common.cjs +0 -37
  655. package/mssql-core/columns/date.common.cjs.map +0 -1
  656. package/mssql-core/columns/date.common.d.cts +0 -12
  657. package/mssql-core/columns/date.common.d.ts +0 -12
  658. package/mssql-core/columns/date.common.js +0 -13
  659. package/mssql-core/columns/date.common.js.map +0 -1
  660. package/mssql-core/columns/date.d.cts +0 -55
  661. package/mssql-core/columns/date.d.ts +0 -55
  662. package/mssql-core/columns/date.js +0 -66
  663. package/mssql-core/columns/date.js.map +0 -1
  664. package/mssql-core/columns/datetime.cjs +0 -94
  665. package/mssql-core/columns/datetime.cjs.map +0 -1
  666. package/mssql-core/columns/datetime.d.cts +0 -54
  667. package/mssql-core/columns/datetime.d.ts +0 -54
  668. package/mssql-core/columns/datetime.js +0 -66
  669. package/mssql-core/columns/datetime.js.map +0 -1
  670. package/mssql-core/columns/datetime2.cjs +0 -102
  671. package/mssql-core/columns/datetime2.cjs.map +0 -1
  672. package/mssql-core/columns/datetime2.d.cts +0 -54
  673. package/mssql-core/columns/datetime2.d.ts +0 -54
  674. package/mssql-core/columns/datetime2.js +0 -74
  675. package/mssql-core/columns/datetime2.js.map +0 -1
  676. package/mssql-core/columns/datetimeoffset.cjs +0 -102
  677. package/mssql-core/columns/datetimeoffset.cjs.map +0 -1
  678. package/mssql-core/columns/datetimeoffset.d.cts +0 -54
  679. package/mssql-core/columns/datetimeoffset.d.ts +0 -54
  680. package/mssql-core/columns/datetimeoffset.js +0 -74
  681. package/mssql-core/columns/datetimeoffset.js.map +0 -1
  682. package/mssql-core/columns/decimal.cjs +0 -68
  683. package/mssql-core/columns/decimal.cjs.map +0 -1
  684. package/mssql-core/columns/decimal.d.cts +0 -30
  685. package/mssql-core/columns/decimal.d.ts +0 -30
  686. package/mssql-core/columns/decimal.js +0 -42
  687. package/mssql-core/columns/decimal.js.map +0 -1
  688. package/mssql-core/columns/float.cjs +0 -58
  689. package/mssql-core/columns/float.cjs.map +0 -1
  690. package/mssql-core/columns/float.d.cts +0 -28
  691. package/mssql-core/columns/float.d.ts +0 -28
  692. package/mssql-core/columns/float.js +0 -32
  693. package/mssql-core/columns/float.js.map +0 -1
  694. package/mssql-core/columns/index.cjs +0 -63
  695. package/mssql-core/columns/index.cjs.map +0 -1
  696. package/mssql-core/columns/index.d.cts +0 -21
  697. package/mssql-core/columns/index.d.ts +0 -21
  698. package/mssql-core/columns/index.js +0 -22
  699. package/mssql-core/columns/index.js.map +0 -1
  700. package/mssql-core/columns/int.cjs +0 -53
  701. package/mssql-core/columns/int.cjs.map +0 -1
  702. package/mssql-core/columns/int.d.cts +0 -23
  703. package/mssql-core/columns/int.d.ts +0 -23
  704. package/mssql-core/columns/int.js +0 -27
  705. package/mssql-core/columns/int.js.map +0 -1
  706. package/mssql-core/columns/numeric.cjs +0 -68
  707. package/mssql-core/columns/numeric.cjs.map +0 -1
  708. package/mssql-core/columns/numeric.d.cts +0 -27
  709. package/mssql-core/columns/numeric.d.ts +0 -27
  710. package/mssql-core/columns/numeric.js +0 -42
  711. package/mssql-core/columns/numeric.js.map +0 -1
  712. package/mssql-core/columns/real.cjs.map +0 -1
  713. package/mssql-core/columns/real.d.cts +0 -23
  714. package/mssql-core/columns/real.d.ts +0 -23
  715. package/mssql-core/columns/real.js +0 -27
  716. package/mssql-core/columns/real.js.map +0 -1
  717. package/mssql-core/columns/smallint.cjs +0 -62
  718. package/mssql-core/columns/smallint.cjs.map +0 -1
  719. package/mssql-core/columns/smallint.d.cts +0 -24
  720. package/mssql-core/columns/smallint.d.ts +0 -24
  721. package/mssql-core/columns/smallint.js +0 -36
  722. package/mssql-core/columns/smallint.js.map +0 -1
  723. package/mssql-core/columns/text.cjs +0 -68
  724. package/mssql-core/columns/text.cjs.map +0 -1
  725. package/mssql-core/columns/text.d.cts +0 -45
  726. package/mssql-core/columns/text.d.ts +0 -45
  727. package/mssql-core/columns/text.js +0 -41
  728. package/mssql-core/columns/text.js.map +0 -1
  729. package/mssql-core/columns/time.cjs +0 -90
  730. package/mssql-core/columns/time.cjs.map +0 -1
  731. package/mssql-core/columns/time.d.cts +0 -49
  732. package/mssql-core/columns/time.d.ts +0 -49
  733. package/mssql-core/columns/time.js +0 -62
  734. package/mssql-core/columns/time.js.map +0 -1
  735. package/mssql-core/columns/tinyint.cjs +0 -62
  736. package/mssql-core/columns/tinyint.cjs.map +0 -1
  737. package/mssql-core/columns/tinyint.d.cts +0 -24
  738. package/mssql-core/columns/tinyint.d.ts +0 -24
  739. package/mssql-core/columns/tinyint.js +0 -36
  740. package/mssql-core/columns/tinyint.js.map +0 -1
  741. package/mssql-core/columns/varbinary.cjs +0 -61
  742. package/mssql-core/columns/varbinary.cjs.map +0 -1
  743. package/mssql-core/columns/varbinary.d.cts +0 -27
  744. package/mssql-core/columns/varbinary.d.ts +0 -27
  745. package/mssql-core/columns/varbinary.js +0 -35
  746. package/mssql-core/columns/varbinary.js.map +0 -1
  747. package/mssql-core/columns/varchar.cjs +0 -117
  748. package/mssql-core/columns/varchar.cjs.map +0 -1
  749. package/mssql-core/columns/varchar.d.cts +0 -66
  750. package/mssql-core/columns/varchar.d.ts +0 -66
  751. package/mssql-core/columns/varchar.js +0 -88
  752. package/mssql-core/columns/varchar.js.map +0 -1
  753. package/mssql-core/db.cjs +0 -254
  754. package/mssql-core/db.cjs.map +0 -1
  755. package/mssql-core/db.d.cts +0 -228
  756. package/mssql-core/db.d.ts +0 -228
  757. package/mssql-core/db.js +0 -235
  758. package/mssql-core/db.js.map +0 -1
  759. package/mssql-core/dialect.cjs +0 -568
  760. package/mssql-core/dialect.cjs.map +0 -1
  761. package/mssql-core/dialect.d.cts +0 -57
  762. package/mssql-core/dialect.d.ts +0 -57
  763. package/mssql-core/dialect.js +0 -550
  764. package/mssql-core/dialect.js.map +0 -1
  765. package/mssql-core/expressions.cjs +0 -49
  766. package/mssql-core/expressions.cjs.map +0 -1
  767. package/mssql-core/expressions.d.cts +0 -8
  768. package/mssql-core/expressions.d.ts +0 -8
  769. package/mssql-core/expressions.js +0 -22
  770. package/mssql-core/expressions.js.map +0 -1
  771. package/mssql-core/foreign-keys.cjs +0 -91
  772. package/mssql-core/foreign-keys.cjs.map +0 -1
  773. package/mssql-core/foreign-keys.d.cts +0 -51
  774. package/mssql-core/foreign-keys.d.ts +0 -51
  775. package/mssql-core/foreign-keys.js +0 -65
  776. package/mssql-core/foreign-keys.js.map +0 -1
  777. package/mssql-core/index.cjs +0 -55
  778. package/mssql-core/index.cjs.map +0 -1
  779. package/mssql-core/index.d.cts +0 -17
  780. package/mssql-core/index.d.ts +0 -17
  781. package/mssql-core/index.js +0 -18
  782. package/mssql-core/index.js.map +0 -1
  783. package/mssql-core/indexes.cjs +0 -80
  784. package/mssql-core/indexes.cjs.map +0 -1
  785. package/mssql-core/indexes.d.cts +0 -49
  786. package/mssql-core/indexes.d.ts +0 -49
  787. package/mssql-core/indexes.js +0 -52
  788. package/mssql-core/indexes.js.map +0 -1
  789. package/mssql-core/primary-keys.cjs +0 -64
  790. package/mssql-core/primary-keys.cjs.map +0 -1
  791. package/mssql-core/primary-keys.d.cts +0 -23
  792. package/mssql-core/primary-keys.d.ts +0 -23
  793. package/mssql-core/primary-keys.js +0 -38
  794. package/mssql-core/primary-keys.js.map +0 -1
  795. package/mssql-core/query-builders/delete.cjs +0 -101
  796. package/mssql-core/query-builders/delete.cjs.map +0 -1
  797. package/mssql-core/query-builders/delete.d.cts +0 -74
  798. package/mssql-core/query-builders/delete.d.ts +0 -74
  799. package/mssql-core/query-builders/delete.js +0 -77
  800. package/mssql-core/query-builders/delete.js.map +0 -1
  801. package/mssql-core/query-builders/index.cjs +0 -33
  802. package/mssql-core/query-builders/index.cjs.map +0 -1
  803. package/mssql-core/query-builders/index.d.cts +0 -6
  804. package/mssql-core/query-builders/index.d.ts +0 -6
  805. package/mssql-core/query-builders/index.js +0 -7
  806. package/mssql-core/query-builders/index.js.map +0 -1
  807. package/mssql-core/query-builders/insert.cjs +0 -95
  808. package/mssql-core/query-builders/insert.cjs.map +0 -1
  809. package/mssql-core/query-builders/insert.d.cts +0 -54
  810. package/mssql-core/query-builders/insert.d.ts +0 -54
  811. package/mssql-core/query-builders/insert.js +0 -70
  812. package/mssql-core/query-builders/insert.js.map +0 -1
  813. package/mssql-core/query-builders/query-builder.cjs +0 -95
  814. package/mssql-core/query-builders/query-builder.cjs.map +0 -1
  815. package/mssql-core/query-builders/query-builder.d.cts +0 -32
  816. package/mssql-core/query-builders/query-builder.d.ts +0 -32
  817. package/mssql-core/query-builders/query-builder.js +0 -71
  818. package/mssql-core/query-builders/query-builder.js.map +0 -1
  819. package/mssql-core/query-builders/query.cjs +0 -126
  820. package/mssql-core/query-builders/query.cjs.map +0 -1
  821. package/mssql-core/query-builders/query.d.cts +0 -42
  822. package/mssql-core/query-builders/query.d.ts +0 -42
  823. package/mssql-core/query-builders/query.js +0 -103
  824. package/mssql-core/query-builders/query.js.map +0 -1
  825. package/mssql-core/query-builders/select.cjs +0 -679
  826. package/mssql-core/query-builders/select.cjs.map +0 -1
  827. package/mssql-core/query-builders/select.d.cts +0 -549
  828. package/mssql-core/query-builders/select.d.ts +0 -549
  829. package/mssql-core/query-builders/select.js +0 -649
  830. package/mssql-core/query-builders/select.js.map +0 -1
  831. package/mssql-core/query-builders/select.types.cjs +0 -17
  832. package/mssql-core/query-builders/select.types.cjs.map +0 -1
  833. package/mssql-core/query-builders/select.types.d.cts +0 -138
  834. package/mssql-core/query-builders/select.types.d.ts +0 -138
  835. package/mssql-core/query-builders/select.types.js +0 -1
  836. package/mssql-core/query-builders/update.cjs +0 -118
  837. package/mssql-core/query-builders/update.cjs.map +0 -1
  838. package/mssql-core/query-builders/update.d.cts +0 -93
  839. package/mssql-core/query-builders/update.d.ts +0 -93
  840. package/mssql-core/query-builders/update.js +0 -93
  841. package/mssql-core/query-builders/update.js.map +0 -1
  842. package/mssql-core/schema.cjs +0 -51
  843. package/mssql-core/schema.cjs.map +0 -1
  844. package/mssql-core/schema.d.cts +0 -22
  845. package/mssql-core/schema.d.ts +0 -22
  846. package/mssql-core/schema.js +0 -25
  847. package/mssql-core/schema.js.map +0 -1
  848. package/mssql-core/session.cjs +0 -74
  849. package/mssql-core/session.cjs.map +0 -1
  850. package/mssql-core/session.d.cts +0 -63
  851. package/mssql-core/session.d.ts +0 -63
  852. package/mssql-core/session.js +0 -48
  853. package/mssql-core/session.js.map +0 -1
  854. package/mssql-core/subquery.cjs.map +0 -1
  855. package/mssql-core/subquery.d.cts +0 -18
  856. package/mssql-core/subquery.d.ts +0 -18
  857. package/mssql-core/subquery.js +0 -1
  858. package/mssql-core/subquery.js.map +0 -1
  859. package/mssql-core/table.cjs +0 -81
  860. package/mssql-core/table.cjs.map +0 -1
  861. package/mssql-core/table.d.cts +0 -43
  862. package/mssql-core/table.d.ts +0 -43
  863. package/mssql-core/table.js +0 -53
  864. package/mssql-core/table.js.map +0 -1
  865. package/mssql-core/unique-constraint.cjs +0 -76
  866. package/mssql-core/unique-constraint.cjs.map +0 -1
  867. package/mssql-core/unique-constraint.d.cts +0 -23
  868. package/mssql-core/unique-constraint.d.ts +0 -23
  869. package/mssql-core/unique-constraint.js +0 -49
  870. package/mssql-core/unique-constraint.js.map +0 -1
  871. package/mssql-core/utils.cjs +0 -85
  872. package/mssql-core/utils.cjs.map +0 -1
  873. package/mssql-core/utils.d.cts +0 -31
  874. package/mssql-core/utils.d.ts +0 -31
  875. package/mssql-core/utils.js +0 -60
  876. package/mssql-core/utils.js.map +0 -1
  877. package/mssql-core/view-base.cjs +0 -33
  878. package/mssql-core/view-base.cjs.map +0 -1
  879. package/mssql-core/view-base.d.cts +0 -9
  880. package/mssql-core/view-base.d.ts +0 -9
  881. package/mssql-core/view-base.js +0 -9
  882. package/mssql-core/view-base.js.map +0 -1
  883. package/mssql-core/view-common.cjs.map +0 -1
  884. package/mssql-core/view-common.d.cts +0 -1
  885. package/mssql-core/view-common.d.ts +0 -1
  886. package/mssql-core/view-common.js +0 -5
  887. package/mssql-core/view-common.js.map +0 -1
  888. package/mssql-core/view.cjs +0 -154
  889. package/mssql-core/view.cjs.map +0 -1
  890. package/mssql-core/view.d.cts +0 -64
  891. package/mssql-core/view.d.ts +0 -64
  892. package/mssql-core/view.js +0 -125
  893. package/mssql-core/view.js.map +0 -1
  894. package/node-mssql/driver.cjs +0 -86
  895. package/node-mssql/driver.cjs.map +0 -1
  896. package/node-mssql/driver.d.cts +0 -32
  897. package/node-mssql/driver.d.ts +0 -32
  898. package/node-mssql/driver.js +0 -63
  899. package/node-mssql/driver.js.map +0 -1
  900. package/node-mssql/index.cjs.map +0 -1
  901. package/node-mssql/index.d.cts +0 -2
  902. package/node-mssql/index.d.ts +0 -2
  903. package/node-mssql/index.js +0 -3
  904. package/node-mssql/index.js.map +0 -1
  905. package/node-mssql/migrator.cjs +0 -33
  906. package/node-mssql/migrator.cjs.map +0 -1
  907. package/node-mssql/migrator.d.cts +0 -3
  908. package/node-mssql/migrator.d.ts +0 -3
  909. package/node-mssql/migrator.js +0 -9
  910. package/node-mssql/migrator.js.map +0 -1
  911. package/node-mssql/session.cjs +0 -243
  912. package/node-mssql/session.cjs.map +0 -1
  913. package/node-mssql/session.d.cts +0 -47
  914. package/node-mssql/session.d.ts +0 -47
  915. package/node-mssql/session.js +0 -211
  916. package/node-mssql/session.js.map +0 -1
  917. /package/{mssql-core/query-builders/select.types.js.map → cache/core/types.js.map} +0 -0
package/d1/session.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { NoopCache } from "../cache/core/index.js";
1
2
  import { entityKind } from "../entity.js";
2
3
  import { NoopLogger } from "../logger.js";
3
4
  import { fillPlaceholders, sql } from "../sql/sql.js";
@@ -11,15 +12,20 @@ class SQLiteD1Session extends SQLiteSession {
11
12
  this.schema = schema;
12
13
  this.options = options;
13
14
  this.logger = options.logger ?? new NoopLogger();
15
+ this.cache = options.cache ?? new NoopCache();
14
16
  }
15
17
  static [entityKind] = "SQLiteD1Session";
16
18
  logger;
17
- prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
19
+ cache;
20
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
18
21
  const stmt = this.client.prepare(query.sql);
19
22
  return new D1PreparedQuery(
20
23
  stmt,
21
24
  query,
22
25
  this.logger,
26
+ this.cache,
27
+ queryMetadata,
28
+ cacheConfig,
23
29
  fields,
24
30
  executeMethod,
25
31
  isResponseInArrayMode,
@@ -92,8 +98,8 @@ function d1ToRawMapping(results) {
92
98
  return rows;
93
99
  }
94
100
  class D1PreparedQuery extends SQLitePreparedQuery {
95
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
96
- super("async", executeMethod, query);
101
+ constructor(stmt, query, logger, cache, queryMetadata, cacheConfig, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
102
+ super("async", executeMethod, query, cache, queryMetadata, cacheConfig);
97
103
  this.logger = logger;
98
104
  this._isResponseInArrayMode = _isResponseInArrayMode;
99
105
  this.customResultMapper = customResultMapper;
@@ -107,17 +113,21 @@ class D1PreparedQuery extends SQLitePreparedQuery {
107
113
  fields;
108
114
  /** @internal */
109
115
  stmt;
110
- run(placeholderValues) {
116
+ async run(placeholderValues) {
111
117
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
112
118
  this.logger.logQuery(this.query.sql, params);
113
- return this.stmt.bind(...params).run();
119
+ return await this.queryWithCache(this.query.sql, params, async () => {
120
+ return this.stmt.bind(...params).run();
121
+ });
114
122
  }
115
123
  async all(placeholderValues) {
116
124
  const { fields, query, logger, stmt, customResultMapper } = this;
117
125
  if (!fields && !customResultMapper) {
118
126
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
119
127
  logger.logQuery(query.sql, params);
120
- return stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results));
128
+ return await this.queryWithCache(query.sql, params, async () => {
129
+ return stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results));
130
+ });
121
131
  }
122
132
  const rows = await this.values(placeholderValues);
123
133
  return this.mapAllResult(rows);
@@ -139,7 +149,9 @@ class D1PreparedQuery extends SQLitePreparedQuery {
139
149
  if (!fields && !customResultMapper) {
140
150
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
141
151
  logger.logQuery(query.sql, params);
142
- return stmt.bind(...params).all().then(({ results }) => results[0]);
152
+ return await this.queryWithCache(query.sql, params, async () => {
153
+ return stmt.bind(...params).all().then(({ results }) => results[0]);
154
+ });
143
155
  }
144
156
  const rows = await this.values(placeholderValues);
145
157
  if (!rows[0]) {
@@ -162,10 +174,12 @@ class D1PreparedQuery extends SQLitePreparedQuery {
162
174
  }
163
175
  return mapResultRow(this.fields, result, this.joinsNotNullableMap);
164
176
  }
165
- values(placeholderValues) {
177
+ async values(placeholderValues) {
166
178
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
167
179
  this.logger.logQuery(this.query.sql, params);
168
- return this.stmt.bind(...params).raw();
180
+ return await this.queryWithCache(this.query.sql, params, async () => {
181
+ return this.stmt.bind(...params).raw();
182
+ });
169
183
  }
170
184
  /** @internal */
171
185
  isResponseInArrayMode() {
package/d1/session.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/d1/session.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\n\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteD1SessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteD1Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteD1Session';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: D1Database,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SQLiteD1SessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): D1PreparedQuery {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: D1PreparedStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tif (builtQuery.params.length > 0) {\n\t\t\t\tbuiltQueries.push((preparedQuery as D1PreparedQuery).stmt.bind(...builtQuery.params));\n\t\t\t} else {\n\t\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\t\tbuiltQueries.push(\n\t\t\t\t\tthis.client.prepare(builtQuery.sql).bind(...builtQuery.params),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst batchResults = await this.client.batch<any>(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn d1ToRawMapping((result as D1Result).results);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new D1Transaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class D1Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'D1Transaction';\n\n\toverride async transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new D1Transaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n/**\n * This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287\n * It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.\n * @param results\n * @returns\n */\nfunction d1ToRawMapping(results: any) {\n\tconst rows: unknown[][] = [];\n\tfor (const row of results) {\n\t\tconst entry = Object.keys(row).map((k) => row[k]);\n\t\trows.push(entry);\n\t}\n\treturn rows;\n}\n\nexport class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: D1Response; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'D1PreparedQuery';\n\n\t/** @internal */\n\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown;\n\n\t/** @internal */\n\tfields?: SelectedFieldsOrdered;\n\n\t/** @internal */\n\tstmt: D1PreparedStatement;\n\n\tconstructor(\n\t\tstmt: D1PreparedStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t\tthis.stmt = stmt;\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<D1Response> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).run();\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results!));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = d1ToRawMapping((rows as D1Result).results);\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => results![0]);\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, rows[0], joinsNotNullableMap);\n\t}\n\n\toverride mapGetResult(result: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\tresult = d1ToRawMapping((result as D1Result).results)[0];\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([result as unknown[]]) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(this.fields!, result as unknown[], this.joinsNotNullableMap);\n\t}\n\n\tvalues<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).raw();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["builtQuery"]}
1
+ {"version":3,"sources":["../../src/d1/session.ts"],"sourcesContent":["/// <reference types=\"@cloudflare/workers-types\" />\n\nimport type { BatchItem } from '~/batch.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteD1SessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteD1Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteD1Session';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: D1Database,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SQLiteD1SessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): D1PreparedQuery {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: D1PreparedStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tif (builtQuery.params.length > 0) {\n\t\t\t\tbuiltQueries.push((preparedQuery as D1PreparedQuery).stmt.bind(...builtQuery.params));\n\t\t\t} else {\n\t\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\t\tbuiltQueries.push(\n\t\t\t\t\tthis.client.prepare(builtQuery.sql).bind(...builtQuery.params),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst batchResults = await this.client.batch<any>(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn d1ToRawMapping((result as D1Result).results);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: D1Transaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new D1Transaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class D1Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'D1Transaction';\n\n\toverride async transaction<T>(transaction: (tx: D1Transaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new D1Transaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n/**\n * This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287\n * It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.\n * @param results\n * @returns\n */\nfunction d1ToRawMapping(results: any) {\n\tconst rows: unknown[][] = [];\n\tfor (const row of results) {\n\t\tconst entry = Object.keys(row).map((k) => row[k]);\n\t\trows.push(entry);\n\t}\n\treturn rows;\n}\n\nexport class D1PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: D1Response; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'D1PreparedQuery';\n\n\t/** @internal */\n\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown;\n\n\t/** @internal */\n\tfields?: SelectedFieldsOrdered;\n\n\t/** @internal */\n\tstmt: D1PreparedStatement;\n\n\tconstructor(\n\t\tstmt: D1PreparedStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\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\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query, cache, queryMetadata, cacheConfig);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t\tthis.stmt = stmt;\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<D1Response> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\treturn this.stmt.bind(...params).run();\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results!));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = d1ToRawMapping((rows as D1Result).results);\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\treturn stmt.bind(...params).all().then(({ results }) => results![0]);\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, rows[0], joinsNotNullableMap);\n\t}\n\n\toverride mapGetResult(result: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\tresult = d1ToRawMapping((result as D1Result).results)[0];\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([result as unknown[]]) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(this.fields!, result as unknown[], this.joinsNotNullableMap);\n\t}\n\n\tasync values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\treturn this.stmt.bind(...params).raw();\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["builtQuery"]}
@@ -68,7 +68,7 @@ class SQLiteDOTransaction extends import_sqlite_core.SQLiteTransaction {
68
68
  }
69
69
  class SQLiteDOPreparedQuery extends import_session2.SQLitePreparedQuery {
70
70
  constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
71
- super("sync", executeMethod, query);
71
+ super("sync", executeMethod, query, {}, void 0, void 0);
72
72
  this.client = client;
73
73
  this.logger = logger;
74
74
  this.fields = fields;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteSession<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteTransaction<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["import_session","PreparedQueryBase"]}
1
+ {"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteSession<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteTransaction<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\t// 3-6 params are for cache. As long as we don't support sync cache - it will be skipped here\n\t\tsuper('sync', executeMethod, query, {} as any, undefined, undefined);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["import_session","PreparedQueryBase"]}
@@ -45,7 +45,7 @@ class SQLiteDOTransaction extends SQLiteTransaction {
45
45
  }
46
46
  class SQLiteDOPreparedQuery extends PreparedQueryBase {
47
47
  constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
48
- super("sync", executeMethod, query);
48
+ super("sync", executeMethod, query, {}, void 0, void 0);
49
49
  this.client = client;
50
50
  this.logger = logger;
51
51
  this.fields = fields;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteSession<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteTransaction<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteSession<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', SqlStorageCursor<Record<string, SqlStorageValue>>, TFullSchema, TSchema>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends SQLiteTransaction<\n\t\t'sync',\n\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\tTFullSchema,\n\t\tTSchema\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(transaction: (tx: SQLiteDOTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\t// 3-6 params are for cache. As long as we don't support sync cache - it will be skipped here\n\t\tsuper('sync', executeMethod, query, {} as any, undefined, undefined);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -16,17 +16,24 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var alias_exports = {};
20
- __export(alias_exports, {
21
- alias: () => alias
19
+ var errors_exports = {};
20
+ __export(errors_exports, {
21
+ DrizzleQueryError: () => DrizzleQueryError
22
22
  });
23
- module.exports = __toCommonJS(alias_exports);
24
- var import_alias = require("../alias.cjs");
25
- function alias(table, alias2) {
26
- return new Proxy(table, new import_alias.TableAliasProxyHandler(alias2, false));
23
+ module.exports = __toCommonJS(errors_exports);
24
+ class DrizzleQueryError extends Error {
25
+ constructor(query, params, cause) {
26
+ super(`Failed query: ${query}
27
+ params: ${params}`);
28
+ this.query = query;
29
+ this.params = params;
30
+ this.cause = cause;
31
+ Error.captureStackTrace(this, DrizzleQueryError);
32
+ if (cause) this.cause = cause;
33
+ }
27
34
  }
28
35
  // Annotate the CommonJS export names for ESM import in node:
29
36
  0 && (module.exports = {
30
- alias
37
+ DrizzleQueryError
31
38
  });
32
- //# sourceMappingURL=alias.cjs.map
39
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/errors/index.ts"],"sourcesContent":["export class DrizzleQueryError extends Error {\n\tconstructor(\n\t\tpublic query: string,\n\t\tpublic params: any[],\n\t\tpublic override cause?: Error,\n\t) {\n\t\tsuper(`Failed query: ${query}\\nparams: ${params}`);\n\t\tError.captureStackTrace(this, DrizzleQueryError);\n\n\t\t// ES2022+: preserves original error on `.cause`\n\t\tif (cause) (this as any).cause = cause;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YACQ,OACA,QACS,OACf;AACD,UAAM,iBAAiB,KAAK;AAAA,UAAa,MAAM,EAAE;AAJ1C;AACA;AACS;AAGhB,UAAM,kBAAkB,MAAM,iBAAiB;AAG/C,QAAI,MAAO,CAAC,KAAa,QAAQ;AAAA,EAClC;AACD;","names":[]}
@@ -0,0 +1,6 @@
1
+ export declare class DrizzleQueryError extends Error {
2
+ query: string;
3
+ params: any[];
4
+ cause?: Error | undefined;
5
+ constructor(query: string, params: any[], cause?: Error | undefined);
6
+ }
@@ -0,0 +1,6 @@
1
+ export declare class DrizzleQueryError extends Error {
2
+ query: string;
3
+ params: any[];
4
+ cause?: Error | undefined;
5
+ constructor(query: string, params: any[], cause?: Error | undefined);
6
+ }
@@ -0,0 +1,15 @@
1
+ class DrizzleQueryError extends Error {
2
+ constructor(query, params, cause) {
3
+ super(`Failed query: ${query}
4
+ params: ${params}`);
5
+ this.query = query;
6
+ this.params = params;
7
+ this.cause = cause;
8
+ Error.captureStackTrace(this, DrizzleQueryError);
9
+ if (cause) this.cause = cause;
10
+ }
11
+ }
12
+ export {
13
+ DrizzleQueryError
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/errors/index.ts"],"sourcesContent":["export class DrizzleQueryError extends Error {\n\tconstructor(\n\t\tpublic query: string,\n\t\tpublic params: any[],\n\t\tpublic override cause?: Error,\n\t) {\n\t\tsuper(`Failed query: ${query}\\nparams: ${params}`);\n\t\tError.captureStackTrace(this, DrizzleQueryError);\n\n\t\t// ES2022+: preserves original error on `.cause`\n\t\tif (cause) (this as any).cause = cause;\n\t}\n}\n"],"mappings":"AAAO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YACQ,OACA,QACS,OACf;AACD,UAAM,iBAAiB,KAAK;AAAA,UAAa,MAAM,EAAE;AAJ1C;AACA;AACS;AAGhB,UAAM,kBAAkB,MAAM,iBAAiB;AAG/C,QAAI,MAAO,CAAC,KAAa,QAAQ;AAAA,EAClC;AACD;","names":[]}
package/gel/driver.cjs CHANGED
@@ -39,7 +39,10 @@ class GelDriver {
39
39
  }
40
40
  static [import_entity.entityKind] = "GelDriver";
41
41
  createSession(schema) {
42
- return new import_session.GelDbSession(this.client, this.dialect, schema, { logger: this.options.logger });
42
+ return new import_session.GelDbSession(this.client, this.dialect, schema, {
43
+ logger: this.options.logger,
44
+ cache: this.options.cache
45
+ });
43
46
  }
44
47
  }
45
48
  class GelJsDatabase extends import_db.GelDatabase {
@@ -62,10 +65,14 @@ function construct(client, config = {}) {
62
65
  tableNamesMap: tablesConfig.tableNamesMap
63
66
  };
64
67
  }
65
- const driver = new GelDriver(client, dialect, { logger });
68
+ const driver = new GelDriver(client, dialect, { logger, cache: config.cache });
66
69
  const session = driver.createSession(schema);
67
70
  const db = new GelJsDatabase(dialect, session, schema);
68
71
  db.$client = client;
72
+ db.$cache = config.cache;
73
+ if (db.$cache) {
74
+ db.$cache["invalidate"] = config.cache?.onMutate;
75
+ }
69
76
  return db;
70
77
  }
71
78
  function drizzle(...params) {
@@ -75,8 +82,7 @@ function drizzle(...params) {
75
82
  }
76
83
  if ((0, import_utils.isConfig)(params[0])) {
77
84
  const { connection, client, ...drizzleConfig } = params[0];
78
- if (client)
79
- return construct(client, drizzleConfig);
85
+ if (client) return construct(client, drizzleConfig);
80
86
  const instance = (0, import_gel.createClient)(connection);
81
87
  return construct(instance, drizzleConfig);
82
88
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new GelDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA+D;AAC/D,oBAA2B;AAC3B,gBAA4B;AAC5B,qBAA2B;AAG3B,oBAA8B;AAC9B,uBAKO;AACP,mBAA6C;AAE7C,qBAA6B;AAMtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,wBAAU,IAAY;AAAA,EAQvC,cACC,QACgE;AAChE,WAAO,IAAI,4BAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC3F;AACD;AAEO,MAAM,sBACJ,sBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,0BAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe,gDAA8B,OAAO,QAAQ,4CAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,OAAO,CAAC;AACxD,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,MAAa;AAC5D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,yBAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,eAAW,yBAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new GelDriver(client, dialect, { logger, cache: config.cache });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA+D;AAE/D,oBAA2B;AAC3B,gBAA4B;AAC5B,qBAA2B;AAG3B,oBAA8B;AAC9B,uBAKO;AACP,mBAA6C;AAE7C,qBAA6B;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,wBAAU,IAAY;AAAA,EAQvC,cACC,QACgE;AAChE,WAAO,IAAI,4BAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,CAAC;AAAA,EACF;AACD;AAEO,MAAM,sBACJ,sBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,0BAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe,gDAA8B,OAAO,QAAQ,4CAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AAC7E,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,MAAa;AAC5D,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,yBAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,eAAW,yBAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
package/gel/driver.d.cts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type Client, type ConnectOptions } from 'gel';
2
+ import type { Cache } from "../cache/core/index.cjs";
2
3
  import { entityKind } from "../entity.cjs";
3
4
  import { GelDatabase } from "../gel-core/db.cjs";
4
5
  import { GelDialect } from "../gel-core/dialect.cjs";
@@ -10,6 +11,7 @@ import type { GelClient } from "./session.cjs";
10
11
  import { GelDbSession } from "./session.cjs";
11
12
  export interface GelDriverOptions {
12
13
  logger?: Logger;
14
+ cache?: Cache;
13
15
  }
14
16
  export declare class GelDriver {
15
17
  private client;
package/gel/driver.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type Client, type ConnectOptions } from 'gel';
2
+ import type { Cache } from "../cache/core/index.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import { GelDatabase } from "../gel-core/db.js";
4
5
  import { GelDialect } from "../gel-core/dialect.js";
@@ -10,6 +11,7 @@ import type { GelClient } from "./session.js";
10
11
  import { GelDbSession } from "./session.js";
11
12
  export interface GelDriverOptions {
12
13
  logger?: Logger;
14
+ cache?: Cache;
13
15
  }
14
16
  export declare class GelDriver {
15
17
  private client;
package/gel/driver.js CHANGED
@@ -17,7 +17,10 @@ class GelDriver {
17
17
  }
18
18
  static [entityKind] = "GelDriver";
19
19
  createSession(schema) {
20
- return new GelDbSession(this.client, this.dialect, schema, { logger: this.options.logger });
20
+ return new GelDbSession(this.client, this.dialect, schema, {
21
+ logger: this.options.logger,
22
+ cache: this.options.cache
23
+ });
21
24
  }
22
25
  }
23
26
  class GelJsDatabase extends GelDatabase {
@@ -40,10 +43,14 @@ function construct(client, config = {}) {
40
43
  tableNamesMap: tablesConfig.tableNamesMap
41
44
  };
42
45
  }
43
- const driver = new GelDriver(client, dialect, { logger });
46
+ const driver = new GelDriver(client, dialect, { logger, cache: config.cache });
44
47
  const session = driver.createSession(schema);
45
48
  const db = new GelJsDatabase(dialect, session, schema);
46
49
  db.$client = client;
50
+ db.$cache = config.cache;
51
+ if (db.$cache) {
52
+ db.$cache["invalidate"] = config.cache?.onMutate;
53
+ }
47
54
  return db;
48
55
  }
49
56
  function drizzle(...params) {
@@ -53,8 +60,7 @@ function drizzle(...params) {
53
60
  }
54
61
  if (isConfig(params[0])) {
55
62
  const { connection, client, ...drizzleConfig } = params[0];
56
- if (client)
57
- return construct(client, drizzleConfig);
63
+ if (client) return construct(client, drizzleConfig);
58
64
  const instance = createClient(connection);
59
65
  return construct(instance, drizzleConfig);
60
66
  }
package/gel/driver.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new GelDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAA2C,oBAAoB;AAC/D,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,oBAAoB;AAMtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,UAAU,IAAY;AAAA,EAQvC,cACC,QACgE;AAChE,WAAO,IAAI,aAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC3F;AACD;AAEO,MAAM,sBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,WAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,8BAA8B,OAAO,QAAQ,2BAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,OAAO,CAAC;AACxD,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,MAAa;AAC5D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,aAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new GelDriver(client, dialect, { logger, cache: config.cache });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAA2C,oBAAoB;AAE/D,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,oBAAoB;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,UAAU,IAAY;AAAA,EAQvC,cACC,QACgE;AAChE,WAAO,IAAI,aAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,CAAC;AAAA,EACF;AACD;AAEO,MAAM,sBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,WAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,8BAA8B,OAAO,QAAQ,2BAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AAC7E,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,MAAa;AAC5D,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,aAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
package/gel/session.cjs CHANGED
@@ -23,6 +23,7 @@ __export(session_exports, {
23
23
  GelDbTransaction: () => GelDbTransaction
24
24
  });
25
25
  module.exports = __toCommonJS(session_exports);
26
+ var import_core = require("../cache/core/index.cjs");
26
27
  var import_entity = require("../entity.cjs");
27
28
  var import_session = require("../gel-core/session.cjs");
28
29
  var import_logger = require("../logger.cjs");
@@ -30,8 +31,8 @@ var import_sql = require("../sql/sql.cjs");
30
31
  var import_tracing = require("../tracing.cjs");
31
32
  var import_utils = require("../utils.cjs");
32
33
  class GelDbPreparedQuery extends import_session.GelPreparedQuery {
33
- constructor(client, queryString, params, logger, fields, _isResponseInArrayMode, customResultMapper, transaction = false) {
34
- super({ sql: queryString, params });
34
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, transaction = false) {
35
+ super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
35
36
  this.client = client;
36
37
  this.queryString = queryString;
37
38
  this.params = params;
@@ -53,31 +54,40 @@ class GelDbPreparedQuery extends import_session.GelPreparedQuery {
53
54
  "drizzle.query.text": query,
54
55
  "drizzle.query.params": JSON.stringify(params)
55
56
  });
56
- return client.querySQL(query, params.length ? params : void 0);
57
+ return await this.queryWithCache(query, params, async () => {
58
+ return await client.querySQL(query, params.length ? params : void 0);
59
+ });
57
60
  });
58
61
  }
59
- const result = await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", (span) => {
62
+ const result = await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", async (span) => {
60
63
  span?.setAttributes({
61
64
  "drizzle.query.text": query,
62
65
  "drizzle.query.params": JSON.stringify(params)
63
66
  });
64
- return client.withSQLRowMode("array").querySQL(query, params.length ? params : void 0);
67
+ return await this.queryWithCache(query, params, async () => {
68
+ return await client.withSQLRowMode("array").querySQL(query, params.length ? params : void 0);
69
+ });
65
70
  });
66
71
  return import_tracing.tracer.startActiveSpan("drizzle.mapResponse", () => {
67
72
  return customResultMapper ? customResultMapper(result) : result.map((row) => (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap));
68
73
  });
69
74
  });
70
75
  }
71
- all(placeholderValues = {}) {
72
- return import_tracing.tracer.startActiveSpan("drizzle.execute", () => {
76
+ async all(placeholderValues = {}) {
77
+ return await import_tracing.tracer.startActiveSpan("drizzle.execute", async () => {
73
78
  const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
74
79
  this.logger.logQuery(this.queryString, params);
75
- return import_tracing.tracer.startActiveSpan("drizzle.driver.execute", (span) => {
80
+ return await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", async (span) => {
76
81
  span?.setAttributes({
77
82
  "drizzle.query.text": this.queryString,
78
83
  "drizzle.query.params": JSON.stringify(params)
79
84
  });
80
- return this.client.withSQLRowMode("array").querySQL(this.queryString, params.length ? params : void 0).then((result) => result);
85
+ return await this.queryWithCache(this.queryString, params, async () => {
86
+ return await this.client.withSQLRowMode("array").querySQL(
87
+ this.queryString,
88
+ params.length ? params : void 0
89
+ ).then((result) => result);
90
+ });
81
91
  });
82
92
  });
83
93
  }
@@ -93,15 +103,20 @@ class GelDbSession extends import_session.GelSession {
93
103
  this.schema = schema;
94
104
  this.options = options;
95
105
  this.logger = options.logger ?? new import_logger.NoopLogger();
106
+ this.cache = options.cache ?? new import_core.NoopCache();
96
107
  }
97
108
  static [import_entity.entityKind] = "GelDbSession";
98
109
  logger;
99
- prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper) {
110
+ cache;
111
+ prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
100
112
  return new GelDbPreparedQuery(
101
113
  this.client,
102
114
  query.sql,
103
115
  query.params,
104
116
  this.logger,
117
+ this.cache,
118
+ queryMetadata,
119
+ cacheConfig,
105
120
  fields,
106
121
  isResponseInArrayMode,
107
122
  customResultMapper