drizzle-orm 0.43.1 → 0.44.0-a42461b

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 (591) 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/cache/core/cache.cjs +58 -0
  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/cache/core/index.cjs +23 -0
  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/cache/core/types.cjs +17 -0
  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/core/types.js.map +1 -0
  55. package/cache/upstash/cache.cjs +195 -0
  56. package/cache/upstash/cache.cjs.map +1 -0
  57. package/cache/upstash/cache.d.cts +59 -0
  58. package/cache/upstash/cache.d.ts +59 -0
  59. package/cache/upstash/cache.js +170 -0
  60. package/cache/upstash/cache.js.map +1 -0
  61. package/cache/upstash/index.cjs +23 -0
  62. package/cache/upstash/index.cjs.map +1 -0
  63. package/cache/upstash/index.d.cts +1 -0
  64. package/cache/upstash/index.d.ts +1 -0
  65. package/cache/upstash/index.js +2 -0
  66. package/cache/upstash/index.js.map +1 -0
  67. package/casing.cjs +1 -2
  68. package/casing.cjs.map +1 -1
  69. package/casing.js +1 -2
  70. package/casing.js.map +1 -1
  71. package/column-builder.cjs +1 -2
  72. package/column-builder.cjs.map +1 -1
  73. package/column-builder.js +1 -2
  74. package/column-builder.js.map +1 -1
  75. package/d1/driver.cjs +5 -1
  76. package/d1/driver.cjs.map +1 -1
  77. package/d1/driver.js +5 -1
  78. package/d1/driver.js.map +1 -1
  79. package/d1/session.cjs +23 -9
  80. package/d1/session.cjs.map +1 -1
  81. package/d1/session.d.cts +12 -2
  82. package/d1/session.d.ts +12 -2
  83. package/d1/session.js +23 -9
  84. package/d1/session.js.map +1 -1
  85. package/durable-sqlite/session.cjs +1 -1
  86. package/durable-sqlite/session.cjs.map +1 -1
  87. package/durable-sqlite/session.js +1 -1
  88. package/durable-sqlite/session.js.map +1 -1
  89. package/errors/index.cjs +39 -0
  90. package/errors/index.cjs.map +1 -0
  91. package/errors/index.d.cts +6 -0
  92. package/errors/index.d.ts +6 -0
  93. package/errors/index.js +15 -0
  94. package/errors/index.js.map +1 -0
  95. package/gel/driver.cjs +10 -4
  96. package/gel/driver.cjs.map +1 -1
  97. package/gel/driver.d.cts +2 -0
  98. package/gel/driver.d.ts +2 -0
  99. package/gel/driver.js +10 -4
  100. package/gel/driver.js.map +1 -1
  101. package/gel/session.cjs +25 -10
  102. package/gel/session.cjs.map +1 -1
  103. package/gel/session.d.cts +12 -2
  104. package/gel/session.d.ts +12 -2
  105. package/gel/session.js +25 -10
  106. package/gel/session.js.map +1 -1
  107. package/gel-core/db.cjs +3 -0
  108. package/gel-core/db.cjs.map +1 -1
  109. package/gel-core/db.d.cts +4 -0
  110. package/gel-core/db.d.ts +4 -0
  111. package/gel-core/db.js +3 -0
  112. package/gel-core/db.js.map +1 -1
  113. package/gel-core/dialect.cjs +1 -2
  114. package/gel-core/dialect.cjs.map +1 -1
  115. package/gel-core/dialect.js +1 -2
  116. package/gel-core/dialect.js.map +1 -1
  117. package/gel-core/query-builders/delete.cjs +5 -1
  118. package/gel-core/query-builders/delete.cjs.map +1 -1
  119. package/gel-core/query-builders/delete.js +5 -1
  120. package/gel-core/query-builders/delete.js.map +1 -1
  121. package/gel-core/query-builders/insert.cjs +5 -1
  122. package/gel-core/query-builders/insert.cjs.map +1 -1
  123. package/gel-core/query-builders/insert.js +5 -1
  124. package/gel-core/query-builders/insert.js.map +1 -1
  125. package/gel-core/query-builders/select.cjs +26 -4
  126. package/gel-core/query-builders/select.cjs.map +1 -1
  127. package/gel-core/query-builders/select.d.cts +9 -0
  128. package/gel-core/query-builders/select.d.ts +9 -0
  129. package/gel-core/query-builders/select.js +26 -4
  130. package/gel-core/query-builders/select.js.map +1 -1
  131. package/gel-core/query-builders/update.cjs +5 -1
  132. package/gel-core/query-builders/update.cjs.map +1 -1
  133. package/gel-core/query-builders/update.js +5 -1
  134. package/gel-core/query-builders/update.js.map +1 -1
  135. package/gel-core/session.cjs +78 -1
  136. package/gel-core/session.cjs.map +1 -1
  137. package/gel-core/session.d.cts +13 -2
  138. package/gel-core/session.d.ts +13 -2
  139. package/gel-core/session.js +79 -2
  140. package/gel-core/session.js.map +1 -1
  141. package/gel-core/utils.cjs +16 -0
  142. package/gel-core/utils.cjs.map +1 -1
  143. package/gel-core/utils.d.cts +8 -4
  144. package/gel-core/utils.d.ts +8 -4
  145. package/gel-core/utils.js +15 -0
  146. package/gel-core/utils.js.map +1 -1
  147. package/index.cjs +16 -16
  148. package/index.cjs.map +1 -1
  149. package/libsql/driver-core.cjs +5 -1
  150. package/libsql/driver-core.cjs.map +1 -1
  151. package/libsql/driver-core.js +5 -1
  152. package/libsql/driver-core.js.map +1 -1
  153. package/libsql/driver.cjs +1 -2
  154. package/libsql/driver.cjs.map +1 -1
  155. package/libsql/driver.js +1 -2
  156. package/libsql/driver.js.map +1 -1
  157. package/libsql/http/index.cjs +1 -2
  158. package/libsql/http/index.cjs.map +1 -1
  159. package/libsql/http/index.js +1 -2
  160. package/libsql/http/index.js.map +1 -1
  161. package/libsql/node/index.cjs +1 -2
  162. package/libsql/node/index.cjs.map +1 -1
  163. package/libsql/node/index.js +1 -2
  164. package/libsql/node/index.js.map +1 -1
  165. package/libsql/session.cjs +27 -13
  166. package/libsql/session.cjs.map +1 -1
  167. package/libsql/session.d.cts +12 -2
  168. package/libsql/session.d.ts +12 -2
  169. package/libsql/session.js +27 -13
  170. package/libsql/session.js.map +1 -1
  171. package/libsql/sqlite3/index.cjs +1 -2
  172. package/libsql/sqlite3/index.cjs.map +1 -1
  173. package/libsql/sqlite3/index.js +1 -2
  174. package/libsql/sqlite3/index.js.map +1 -1
  175. package/libsql/wasm/index.cjs +1 -2
  176. package/libsql/wasm/index.cjs.map +1 -1
  177. package/libsql/wasm/index.js +1 -2
  178. package/libsql/wasm/index.js.map +1 -1
  179. package/libsql/web/index.cjs +1 -2
  180. package/libsql/web/index.cjs.map +1 -1
  181. package/libsql/web/index.js +1 -2
  182. package/libsql/web/index.js.map +1 -1
  183. package/libsql/ws/index.cjs +1 -2
  184. package/libsql/ws/index.cjs.map +1 -1
  185. package/libsql/ws/index.js +1 -2
  186. package/libsql/ws/index.js.map +1 -1
  187. package/mysql-core/columns/binary.cjs +2 -4
  188. package/mysql-core/columns/binary.cjs.map +1 -1
  189. package/mysql-core/columns/binary.js +2 -4
  190. package/mysql-core/columns/binary.js.map +1 -1
  191. package/mysql-core/columns/decimal.cjs +2 -4
  192. package/mysql-core/columns/decimal.cjs.map +1 -1
  193. package/mysql-core/columns/decimal.js +2 -4
  194. package/mysql-core/columns/decimal.js.map +1 -1
  195. package/mysql-core/columns/varbinary.cjs +2 -4
  196. package/mysql-core/columns/varbinary.cjs.map +1 -1
  197. package/mysql-core/columns/varbinary.js +2 -4
  198. package/mysql-core/columns/varbinary.js.map +1 -1
  199. package/mysql-core/db.cjs +3 -0
  200. package/mysql-core/db.cjs.map +1 -1
  201. package/mysql-core/db.d.cts +4 -0
  202. package/mysql-core/db.d.ts +4 -0
  203. package/mysql-core/db.js +3 -0
  204. package/mysql-core/db.js.map +1 -1
  205. package/mysql-core/dialect.cjs +1 -2
  206. package/mysql-core/dialect.cjs.map +1 -1
  207. package/mysql-core/dialect.js +1 -2
  208. package/mysql-core/dialect.js.map +1 -1
  209. package/mysql-core/query-builders/delete.cjs +9 -1
  210. package/mysql-core/query-builders/delete.cjs.map +1 -1
  211. package/mysql-core/query-builders/delete.js +9 -1
  212. package/mysql-core/query-builders/delete.js.map +1 -1
  213. package/mysql-core/query-builders/insert.cjs +8 -1
  214. package/mysql-core/query-builders/insert.cjs.map +1 -1
  215. package/mysql-core/query-builders/insert.d.cts +2 -0
  216. package/mysql-core/query-builders/insert.d.ts +2 -0
  217. package/mysql-core/query-builders/insert.js +8 -1
  218. package/mysql-core/query-builders/insert.js.map +1 -1
  219. package/mysql-core/query-builders/select.cjs +24 -3
  220. package/mysql-core/query-builders/select.cjs.map +1 -1
  221. package/mysql-core/query-builders/select.d.cts +9 -0
  222. package/mysql-core/query-builders/select.d.ts +9 -0
  223. package/mysql-core/query-builders/select.js +25 -4
  224. package/mysql-core/query-builders/select.js.map +1 -1
  225. package/mysql-core/query-builders/update.cjs +11 -1
  226. package/mysql-core/query-builders/update.cjs.map +1 -1
  227. package/mysql-core/query-builders/update.d.cts +2 -0
  228. package/mysql-core/query-builders/update.d.ts +2 -0
  229. package/mysql-core/query-builders/update.js +11 -1
  230. package/mysql-core/query-builders/update.js.map +1 -1
  231. package/mysql-core/session.cjs +79 -0
  232. package/mysql-core/session.cjs.map +1 -1
  233. package/mysql-core/session.d.cts +14 -1
  234. package/mysql-core/session.d.ts +14 -1
  235. package/mysql-core/session.js +80 -1
  236. package/mysql-core/session.js.map +1 -1
  237. package/mysql-core/utils.cjs +16 -0
  238. package/mysql-core/utils.cjs.map +1 -1
  239. package/mysql-core/utils.d.cts +6 -2
  240. package/mysql-core/utils.d.ts +6 -2
  241. package/mysql-core/utils.js +15 -0
  242. package/mysql-core/utils.js.map +1 -1
  243. package/mysql-proxy/session.cjs +15 -5
  244. package/mysql-proxy/session.cjs.map +1 -1
  245. package/mysql-proxy/session.d.cts +12 -2
  246. package/mysql-proxy/session.d.ts +12 -2
  247. package/mysql-proxy/session.js +15 -5
  248. package/mysql-proxy/session.js.map +1 -1
  249. package/mysql2/driver.cjs +11 -4
  250. package/mysql2/driver.cjs.map +1 -1
  251. package/mysql2/driver.d.cts +2 -0
  252. package/mysql2/driver.d.ts +2 -0
  253. package/mysql2/driver.js +11 -4
  254. package/mysql2/driver.js.map +1 -1
  255. package/mysql2/session.cjs +15 -5
  256. package/mysql2/session.cjs.map +1 -1
  257. package/mysql2/session.d.cts +12 -2
  258. package/mysql2/session.d.ts +12 -2
  259. package/mysql2/session.js +15 -5
  260. package/mysql2/session.js.map +1 -1
  261. package/neon-http/driver.cjs +13 -10
  262. package/neon-http/driver.cjs.map +1 -1
  263. package/neon-http/driver.d.cts +2 -0
  264. package/neon-http/driver.d.ts +2 -0
  265. package/neon-http/driver.js +13 -10
  266. package/neon-http/driver.js.map +1 -1
  267. package/neon-http/session.cjs +25 -15
  268. package/neon-http/session.cjs.map +1 -1
  269. package/neon-http/session.d.cts +12 -2
  270. package/neon-http/session.d.ts +12 -2
  271. package/neon-http/session.js +25 -15
  272. package/neon-http/session.js.map +1 -1
  273. package/neon-serverless/driver.cjs +10 -4
  274. package/neon-serverless/driver.cjs.map +1 -1
  275. package/neon-serverless/driver.d.cts +2 -0
  276. package/neon-serverless/driver.d.ts +2 -0
  277. package/neon-serverless/driver.js +10 -4
  278. package/neon-serverless/driver.js.map +1 -1
  279. package/neon-serverless/session.cjs +21 -7
  280. package/neon-serverless/session.cjs.map +1 -1
  281. package/neon-serverless/session.d.cts +12 -2
  282. package/neon-serverless/session.d.ts +12 -2
  283. package/neon-serverless/session.js +21 -7
  284. package/neon-serverless/session.js.map +1 -1
  285. package/node-postgres/driver.cjs +10 -4
  286. package/node-postgres/driver.cjs.map +1 -1
  287. package/node-postgres/driver.d.cts +2 -0
  288. package/node-postgres/driver.d.ts +2 -0
  289. package/node-postgres/driver.js +10 -4
  290. package/node-postgres/driver.js.map +1 -1
  291. package/node-postgres/session.cjs +19 -6
  292. package/node-postgres/session.cjs.map +1 -1
  293. package/node-postgres/session.d.cts +13 -2
  294. package/node-postgres/session.d.ts +13 -2
  295. package/node-postgres/session.js +19 -6
  296. package/node-postgres/session.js.map +1 -1
  297. package/op-sqlite/driver.cjs +5 -1
  298. package/op-sqlite/driver.cjs.map +1 -1
  299. package/op-sqlite/driver.js +5 -1
  300. package/op-sqlite/driver.js.map +1 -1
  301. package/op-sqlite/session.cjs +23 -9
  302. package/op-sqlite/session.cjs.map +1 -1
  303. package/op-sqlite/session.d.cts +12 -2
  304. package/op-sqlite/session.d.ts +12 -2
  305. package/op-sqlite/session.js +23 -9
  306. package/op-sqlite/session.js.map +1 -1
  307. package/package.json +77 -12
  308. package/pg-core/columns/common.cjs +1 -2
  309. package/pg-core/columns/common.cjs.map +1 -1
  310. package/pg-core/columns/common.js +1 -2
  311. package/pg-core/columns/common.js.map +1 -1
  312. package/pg-core/columns/numeric.cjs +2 -4
  313. package/pg-core/columns/numeric.cjs.map +1 -1
  314. package/pg-core/columns/numeric.js +2 -4
  315. package/pg-core/columns/numeric.js.map +1 -1
  316. package/pg-core/db.cjs +3 -0
  317. package/pg-core/db.cjs.map +1 -1
  318. package/pg-core/db.d.cts +4 -0
  319. package/pg-core/db.d.ts +4 -0
  320. package/pg-core/db.js +3 -0
  321. package/pg-core/db.js.map +1 -1
  322. package/pg-core/dialect.cjs +1 -2
  323. package/pg-core/dialect.cjs.map +1 -1
  324. package/pg-core/dialect.js +1 -2
  325. package/pg-core/dialect.js.map +1 -1
  326. package/pg-core/query-builders/delete.cjs +6 -1
  327. package/pg-core/query-builders/delete.cjs.map +1 -1
  328. package/pg-core/query-builders/delete.d.cts +3 -1
  329. package/pg-core/query-builders/delete.d.ts +3 -1
  330. package/pg-core/query-builders/delete.js +6 -1
  331. package/pg-core/query-builders/delete.js.map +1 -1
  332. package/pg-core/query-builders/insert.cjs +6 -1
  333. package/pg-core/query-builders/insert.cjs.map +1 -1
  334. package/pg-core/query-builders/insert.d.cts +2 -0
  335. package/pg-core/query-builders/insert.d.ts +2 -0
  336. package/pg-core/query-builders/insert.js +6 -1
  337. package/pg-core/query-builders/insert.js.map +1 -1
  338. package/pg-core/query-builders/select.cjs +28 -5
  339. package/pg-core/query-builders/select.cjs.map +1 -1
  340. package/pg-core/query-builders/select.d.cts +15 -6
  341. package/pg-core/query-builders/select.d.ts +15 -6
  342. package/pg-core/query-builders/select.js +28 -5
  343. package/pg-core/query-builders/select.js.map +1 -1
  344. package/pg-core/query-builders/update.cjs +6 -1
  345. package/pg-core/query-builders/update.cjs.map +1 -1
  346. package/pg-core/query-builders/update.d.cts +4 -2
  347. package/pg-core/query-builders/update.d.ts +4 -2
  348. package/pg-core/query-builders/update.js +6 -1
  349. package/pg-core/query-builders/update.js.map +1 -1
  350. package/pg-core/session.cjs +78 -1
  351. package/pg-core/session.cjs.map +1 -1
  352. package/pg-core/session.d.cts +13 -2
  353. package/pg-core/session.d.ts +13 -2
  354. package/pg-core/session.js +79 -2
  355. package/pg-core/session.js.map +1 -1
  356. package/pg-core/utils.cjs +16 -0
  357. package/pg-core/utils.cjs.map +1 -1
  358. package/pg-core/utils.d.cts +8 -4
  359. package/pg-core/utils.d.ts +8 -4
  360. package/pg-core/utils.js +16 -1
  361. package/pg-core/utils.js.map +1 -1
  362. package/pg-proxy/driver.cjs +7 -2
  363. package/pg-proxy/driver.cjs.map +1 -1
  364. package/pg-proxy/driver.js +7 -2
  365. package/pg-proxy/driver.js.map +1 -1
  366. package/pg-proxy/session.cjs +15 -5
  367. package/pg-proxy/session.cjs.map +1 -1
  368. package/pg-proxy/session.d.cts +12 -2
  369. package/pg-proxy/session.d.ts +12 -2
  370. package/pg-proxy/session.js +15 -5
  371. package/pg-proxy/session.js.map +1 -1
  372. package/pglite/driver.cjs +10 -4
  373. package/pglite/driver.cjs.map +1 -1
  374. package/pglite/driver.d.cts +2 -0
  375. package/pglite/driver.d.ts +2 -0
  376. package/pglite/driver.js +10 -4
  377. package/pglite/driver.js.map +1 -1
  378. package/pglite/session.cjs +19 -7
  379. package/pglite/session.cjs.map +1 -1
  380. package/pglite/session.d.cts +12 -2
  381. package/pglite/session.d.ts +12 -2
  382. package/pglite/session.js +19 -7
  383. package/pglite/session.js.map +1 -1
  384. package/planetscale-serverless/driver.cjs +6 -3
  385. package/planetscale-serverless/driver.cjs.map +1 -1
  386. package/planetscale-serverless/driver.d.cts +1 -0
  387. package/planetscale-serverless/driver.d.ts +1 -0
  388. package/planetscale-serverless/driver.js +6 -3
  389. package/planetscale-serverless/driver.js.map +1 -1
  390. package/planetscale-serverless/session.cjs +15 -5
  391. package/planetscale-serverless/session.cjs.map +1 -1
  392. package/planetscale-serverless/session.d.cts +12 -2
  393. package/planetscale-serverless/session.d.ts +12 -2
  394. package/planetscale-serverless/session.js +15 -5
  395. package/planetscale-serverless/session.js.map +1 -1
  396. package/postgres-js/driver.cjs +6 -3
  397. package/postgres-js/driver.cjs.map +1 -1
  398. package/postgres-js/driver.js +6 -3
  399. package/postgres-js/driver.js.map +1 -1
  400. package/postgres-js/session.cjs +18 -6
  401. package/postgres-js/session.cjs.map +1 -1
  402. package/postgres-js/session.d.cts +12 -2
  403. package/postgres-js/session.d.ts +12 -2
  404. package/postgres-js/session.js +18 -6
  405. package/postgres-js/session.js.map +1 -1
  406. package/prisma/mysql/session.cjs +1 -1
  407. package/prisma/mysql/session.cjs.map +1 -1
  408. package/prisma/mysql/session.js +1 -1
  409. package/prisma/mysql/session.js.map +1 -1
  410. package/prisma/pg/session.cjs +1 -1
  411. package/prisma/pg/session.cjs.map +1 -1
  412. package/prisma/pg/session.js +1 -1
  413. package/prisma/pg/session.js.map +1 -1
  414. package/query-builders/query-builder.cjs.map +1 -1
  415. package/query-builders/query-builder.d.cts +2 -1
  416. package/query-builders/query-builder.d.ts +2 -1
  417. package/query-builders/query-builder.js.map +1 -1
  418. package/singlestore/driver.cjs +13 -4
  419. package/singlestore/driver.cjs.map +1 -1
  420. package/singlestore/driver.d.cts +2 -0
  421. package/singlestore/driver.d.ts +2 -0
  422. package/singlestore/driver.js +13 -4
  423. package/singlestore/driver.js.map +1 -1
  424. package/singlestore/session.cjs +15 -5
  425. package/singlestore/session.cjs.map +1 -1
  426. package/singlestore/session.d.cts +12 -2
  427. package/singlestore/session.d.ts +12 -2
  428. package/singlestore/session.js +15 -5
  429. package/singlestore/session.js.map +1 -1
  430. package/singlestore-core/columns/binary.cjs +2 -4
  431. package/singlestore-core/columns/binary.cjs.map +1 -1
  432. package/singlestore-core/columns/binary.js +2 -4
  433. package/singlestore-core/columns/binary.js.map +1 -1
  434. package/singlestore-core/columns/decimal.cjs +2 -4
  435. package/singlestore-core/columns/decimal.cjs.map +1 -1
  436. package/singlestore-core/columns/decimal.js +2 -4
  437. package/singlestore-core/columns/decimal.js.map +1 -1
  438. package/singlestore-core/columns/varbinary.cjs +2 -4
  439. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  440. package/singlestore-core/columns/varbinary.js +2 -4
  441. package/singlestore-core/columns/varbinary.js.map +1 -1
  442. package/singlestore-core/db.cjs +3 -0
  443. package/singlestore-core/db.cjs.map +1 -1
  444. package/singlestore-core/db.d.cts +4 -0
  445. package/singlestore-core/db.d.ts +4 -0
  446. package/singlestore-core/db.js +3 -0
  447. package/singlestore-core/db.js.map +1 -1
  448. package/singlestore-core/dialect.cjs +1 -2
  449. package/singlestore-core/dialect.cjs.map +1 -1
  450. package/singlestore-core/dialect.js +1 -2
  451. package/singlestore-core/dialect.js.map +1 -1
  452. package/singlestore-core/query-builders/delete.cjs +9 -1
  453. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  454. package/singlestore-core/query-builders/delete.js +9 -1
  455. package/singlestore-core/query-builders/delete.js.map +1 -1
  456. package/singlestore-core/query-builders/insert.cjs +6 -1
  457. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  458. package/singlestore-core/query-builders/insert.js +6 -1
  459. package/singlestore-core/query-builders/insert.js.map +1 -1
  460. package/singlestore-core/query-builders/select.cjs +25 -3
  461. package/singlestore-core/query-builders/select.cjs.map +1 -1
  462. package/singlestore-core/query-builders/select.d.cts +9 -0
  463. package/singlestore-core/query-builders/select.d.ts +9 -0
  464. package/singlestore-core/query-builders/select.js +25 -3
  465. package/singlestore-core/query-builders/select.js.map +1 -1
  466. package/singlestore-core/query-builders/update.cjs +9 -1
  467. package/singlestore-core/query-builders/update.cjs.map +1 -1
  468. package/singlestore-core/query-builders/update.js +9 -1
  469. package/singlestore-core/query-builders/update.js.map +1 -1
  470. package/singlestore-core/session.cjs +79 -0
  471. package/singlestore-core/session.cjs.map +1 -1
  472. package/singlestore-core/session.d.cts +13 -1
  473. package/singlestore-core/session.d.ts +13 -1
  474. package/singlestore-core/session.js +80 -1
  475. package/singlestore-core/session.js.map +1 -1
  476. package/singlestore-core/utils.cjs +16 -0
  477. package/singlestore-core/utils.cjs.map +1 -1
  478. package/singlestore-core/utils.d.cts +3 -0
  479. package/singlestore-core/utils.d.ts +3 -0
  480. package/singlestore-core/utils.js +15 -0
  481. package/singlestore-core/utils.js.map +1 -1
  482. package/sql/sql.cjs +10 -0
  483. package/sql/sql.cjs.map +1 -1
  484. package/sql/sql.js +10 -0
  485. package/sql/sql.js.map +1 -1
  486. package/sqlite-core/columns/numeric.cjs +2 -4
  487. package/sqlite-core/columns/numeric.cjs.map +1 -1
  488. package/sqlite-core/columns/numeric.js +2 -4
  489. package/sqlite-core/columns/numeric.js.map +1 -1
  490. package/sqlite-core/db.cjs +3 -0
  491. package/sqlite-core/db.cjs.map +1 -1
  492. package/sqlite-core/db.d.cts +4 -0
  493. package/sqlite-core/db.d.ts +4 -0
  494. package/sqlite-core/db.js +3 -0
  495. package/sqlite-core/db.js.map +1 -1
  496. package/sqlite-core/dialect.cjs +1 -2
  497. package/sqlite-core/dialect.cjs.map +1 -1
  498. package/sqlite-core/dialect.js +1 -2
  499. package/sqlite-core/dialect.js.map +1 -1
  500. package/sqlite-core/query-builders/delete.cjs +7 -1
  501. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  502. package/sqlite-core/query-builders/delete.js +7 -1
  503. package/sqlite-core/query-builders/delete.js.map +1 -1
  504. package/sqlite-core/query-builders/insert.cjs +9 -5
  505. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  506. package/sqlite-core/query-builders/insert.js +9 -5
  507. package/sqlite-core/query-builders/insert.js.map +1 -1
  508. package/sqlite-core/query-builders/select.cjs +28 -3
  509. package/sqlite-core/query-builders/select.cjs.map +1 -1
  510. package/sqlite-core/query-builders/select.d.cts +9 -0
  511. package/sqlite-core/query-builders/select.d.ts +9 -0
  512. package/sqlite-core/query-builders/select.js +28 -3
  513. package/sqlite-core/query-builders/select.js.map +1 -1
  514. package/sqlite-core/query-builders/update.cjs +7 -1
  515. package/sqlite-core/query-builders/update.cjs.map +1 -1
  516. package/sqlite-core/query-builders/update.js +7 -1
  517. package/sqlite-core/query-builders/update.js.map +1 -1
  518. package/sqlite-core/session.cjs +88 -3
  519. package/sqlite-core/session.cjs.map +1 -1
  520. package/sqlite-core/session.d.cts +18 -4
  521. package/sqlite-core/session.d.ts +18 -4
  522. package/sqlite-core/session.js +89 -4
  523. package/sqlite-core/session.js.map +1 -1
  524. package/sqlite-core/utils.cjs +16 -0
  525. package/sqlite-core/utils.cjs.map +1 -1
  526. package/sqlite-core/utils.d.cts +6 -2
  527. package/sqlite-core/utils.d.ts +6 -2
  528. package/sqlite-core/utils.js +15 -0
  529. package/sqlite-core/utils.js.map +1 -1
  530. package/sqlite-proxy/driver.cjs +9 -2
  531. package/sqlite-proxy/driver.cjs.map +1 -1
  532. package/sqlite-proxy/driver.js +9 -2
  533. package/sqlite-proxy/driver.js.map +1 -1
  534. package/sqlite-proxy/session.cjs +22 -8
  535. package/sqlite-proxy/session.cjs.map +1 -1
  536. package/sqlite-proxy/session.d.cts +12 -2
  537. package/sqlite-proxy/session.d.ts +12 -2
  538. package/sqlite-proxy/session.js +22 -8
  539. package/sqlite-proxy/session.js.map +1 -1
  540. package/subquery.cjs +4 -3
  541. package/subquery.cjs.map +1 -1
  542. package/subquery.d.cts +2 -1
  543. package/subquery.d.ts +2 -1
  544. package/subquery.js +4 -3
  545. package/subquery.js.map +1 -1
  546. package/tidb-serverless/driver.cjs +6 -3
  547. package/tidb-serverless/driver.cjs.map +1 -1
  548. package/tidb-serverless/driver.d.cts +1 -0
  549. package/tidb-serverless/driver.d.ts +1 -0
  550. package/tidb-serverless/driver.js +6 -3
  551. package/tidb-serverless/driver.js.map +1 -1
  552. package/tidb-serverless/session.cjs +15 -5
  553. package/tidb-serverless/session.cjs.map +1 -1
  554. package/tidb-serverless/session.d.cts +12 -2
  555. package/tidb-serverless/session.d.ts +12 -2
  556. package/tidb-serverless/session.js +15 -5
  557. package/tidb-serverless/session.js.map +1 -1
  558. package/utils.cjs +10 -20
  559. package/utils.cjs.map +1 -1
  560. package/utils.d.cts +2 -0
  561. package/utils.d.ts +2 -0
  562. package/utils.js +10 -20
  563. package/utils.js.map +1 -1
  564. package/vercel-postgres/driver.cjs +9 -2
  565. package/vercel-postgres/driver.cjs.map +1 -1
  566. package/vercel-postgres/driver.d.cts +2 -0
  567. package/vercel-postgres/driver.d.ts +2 -0
  568. package/vercel-postgres/driver.js +9 -2
  569. package/vercel-postgres/driver.js.map +1 -1
  570. package/vercel-postgres/session.cjs +21 -7
  571. package/vercel-postgres/session.cjs.map +1 -1
  572. package/vercel-postgres/session.d.cts +12 -2
  573. package/vercel-postgres/session.d.ts +12 -2
  574. package/vercel-postgres/session.js +21 -7
  575. package/vercel-postgres/session.js.map +1 -1
  576. package/version.cjs +1 -1
  577. package/version.d.cts +1 -1
  578. package/version.d.ts +1 -1
  579. package/version.js +1 -1
  580. package/xata-http/driver.cjs +7 -2
  581. package/xata-http/driver.cjs.map +1 -1
  582. package/xata-http/driver.d.cts +2 -0
  583. package/xata-http/driver.d.ts +2 -0
  584. package/xata-http/driver.js +7 -2
  585. package/xata-http/driver.js.map +1 -1
  586. package/xata-http/session.cjs +22 -9
  587. package/xata-http/session.cjs.map +1 -1
  588. package/xata-http/session.d.cts +12 -2
  589. package/xata-http/session.d.ts +12 -2
  590. package/xata-http/session.js +22 -9
  591. package/xata-http/session.js.map +1 -1
package/gel-core/utils.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { is } from "../entity.js";
2
+ import { SQL } from "../sql/sql.js";
3
+ import { Subquery } from "../subquery.js";
2
4
  import { Table } from "../table.js";
3
5
  import { ViewBaseConfig } from "../view-common.js";
4
6
  import { CheckBuilder } from "./checks.js";
@@ -54,6 +56,18 @@ function getTableConfig(table) {
54
56
  enableRLS
55
57
  };
56
58
  }
59
+ function extractUsedTable(table) {
60
+ if (is(table, GelTable)) {
61
+ return [`${table[Table.Symbol.BaseName]}`];
62
+ }
63
+ if (is(table, Subquery)) {
64
+ return table._.usedTables ?? [];
65
+ }
66
+ if (is(table, SQL)) {
67
+ return table.usedTables ?? [];
68
+ }
69
+ return [];
70
+ }
57
71
  function getViewConfig(view) {
58
72
  return {
59
73
  ...view[ViewBaseConfig],
@@ -67,6 +81,7 @@ function getMaterializedViewConfig(view) {
67
81
  };
68
82
  }
69
83
  export {
84
+ extractUsedTable,
70
85
  getMaterializedViewConfig,
71
86
  getTableConfig,
72
87
  getViewConfig
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyGelColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { GelPolicy } from './policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { GelTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { GelViewConfig } from './view-common.ts';\nimport { type GelMaterializedView, GelMaterializedViewConfig, type GelView } from './view.ts';\n\nexport function getTableConfig<TTable extends GelTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[GelTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: GelPolicy[] = [];\n\tconst enableRLS: boolean = table[GelTable.Symbol.EnableRLS];\n\n\tconst extraConfigBuilder = table[GelTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of extraValues) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, GelPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t\tenableRLS,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyGelColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyGelColumn<{ tableName: TForeignTableName }> };\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAC/B,SAAqB,oBAAoB;AAEzC,SAA0B,yBAAyB;AAEnD,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAA0B,yBAAyB;AACnD,SAAS,gBAAgB;AACzB,SAAgC,+BAA+B;AAC/D,SAAS,qBAAqB;AAC9B,SAAmC,iCAA+C;AAE3E,SAAS,eAAwC,OAAe;AACtE,QAAM,UAAU,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,SAAS,OAAO,iBAAiB,CAAC;AACxF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AACxC,QAAM,WAAwB,CAAC;AAC/B,QAAM,YAAqB,MAAM,SAAS,OAAO,SAAS;AAE1D,QAAM,qBAAqB,MAAM,SAAS,OAAO,kBAAkB;AAEnE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,MAAM,OAAO,kBAAkB,CAAC;AAC7E,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,aAAa;AAClC,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,YAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,SAAS,GAAG;AAClC,iBAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAiC;AAClC,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,aAAa;AAAA,EACtB;AACD;AAEO,SAAS,0BAGd,MAA6C;AAC9C,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,yBAAyB;AAAA,EAClC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/gel-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { SQL } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyGelColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { GelPolicy } from './policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { GelTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport type { GelViewBase } from './view-base.ts';\nimport { GelViewConfig } from './view-common.ts';\nimport { type GelMaterializedView, GelMaterializedViewConfig, type GelView } from './view.ts';\n\nexport function getTableConfig<TTable extends GelTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[GelTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: GelPolicy[] = [];\n\tconst enableRLS: boolean = table[GelTable.Symbol.EnableRLS];\n\n\tconst extraConfigBuilder = table[GelTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of extraValues) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, GelPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t\tenableRLS,\n\t};\n}\n\nexport function extractUsedTable(table: GelTable | Subquery | GelViewBase | SQL): string[] {\n\tif (is(table, GelTable)) {\n\t\treturn [`${table[Table.Symbol.BaseName]}`];\n\t}\n\tif (is(table, Subquery)) {\n\t\treturn table._.usedTables ?? [];\n\t}\n\tif (is(table, SQL)) {\n\t\treturn table.usedTables ?? [];\n\t}\n\treturn [];\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyGelColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyGelColumn<{ tableName: TForeignTableName }> };\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAAS,WAAW;AACpB,SAAS,gBAAgB;AACzB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAC/B,SAAqB,oBAAoB;AAEzC,SAA0B,yBAAyB;AAEnD,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAA0B,yBAAyB;AACnD,SAAS,gBAAgB;AACzB,SAAgC,+BAA+B;AAE/D,SAAS,qBAAqB;AAC9B,SAAmC,iCAA+C;AAE3E,SAAS,eAAwC,OAAe;AACtE,QAAM,UAAU,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,SAAS,OAAO,iBAAiB,CAAC;AACxF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AACxC,QAAM,WAAwB,CAAC;AAC/B,QAAM,YAAqB,MAAM,SAAS,OAAO,SAAS;AAE1D,QAAM,qBAAqB,MAAM,SAAS,OAAO,kBAAkB;AAEnE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,MAAM,OAAO,kBAAkB,CAAC;AAC7E,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,aAAa;AAClC,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,YAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,SAAS,GAAG;AAClC,iBAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,iBAAiB,OAA0D;AAC1F,MAAI,GAAG,OAAO,QAAQ,GAAG;AACxB,WAAO,CAAC,GAAG,MAAM,MAAM,OAAO,QAAQ,CAAC,EAAE;AAAA,EAC1C;AACA,MAAI,GAAG,OAAO,QAAQ,GAAG;AACxB,WAAO,MAAM,EAAE,cAAc,CAAC;AAAA,EAC/B;AACA,MAAI,GAAG,OAAO,GAAG,GAAG;AACnB,WAAO,MAAM,cAAc,CAAC;AAAA,EAC7B;AACA,SAAO,CAAC;AACT;AAEO,SAAS,cAGd,MAAiC;AAClC,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,aAAa;AAAA,EACtB;AACD;AAEO,SAAS,0BAGd,MAA6C;AAC9C,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,yBAAyB;AAAA,EAClC;AACD;","names":[]}
package/index.cjs CHANGED
@@ -13,22 +13,22 @@ var __copyProps = (to, from, except, desc) => {
13
13
  };
14
14
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var src_exports = {};
17
- module.exports = __toCommonJS(src_exports);
18
- __reExport(src_exports, require("./alias.cjs"), module.exports);
19
- __reExport(src_exports, require("./column-builder.cjs"), module.exports);
20
- __reExport(src_exports, require("./column.cjs"), module.exports);
21
- __reExport(src_exports, require("./entity.cjs"), module.exports);
22
- __reExport(src_exports, require("./errors.cjs"), module.exports);
23
- __reExport(src_exports, require("./logger.cjs"), module.exports);
24
- __reExport(src_exports, require("./operations.cjs"), module.exports);
25
- __reExport(src_exports, require("./query-promise.cjs"), module.exports);
26
- __reExport(src_exports, require("./relations.cjs"), module.exports);
27
- __reExport(src_exports, require("./sql/index.cjs"), module.exports);
28
- __reExport(src_exports, require("./subquery.cjs"), module.exports);
29
- __reExport(src_exports, require("./table.cjs"), module.exports);
30
- __reExport(src_exports, require("./utils.cjs"), module.exports);
31
- __reExport(src_exports, require("./view-common.cjs"), module.exports);
16
+ var index_exports = {};
17
+ module.exports = __toCommonJS(index_exports);
18
+ __reExport(index_exports, require("./alias.cjs"), module.exports);
19
+ __reExport(index_exports, require("./column-builder.cjs"), module.exports);
20
+ __reExport(index_exports, require("./column.cjs"), module.exports);
21
+ __reExport(index_exports, require("./entity.cjs"), module.exports);
22
+ __reExport(index_exports, require("./errors.cjs"), module.exports);
23
+ __reExport(index_exports, require("./logger.cjs"), module.exports);
24
+ __reExport(index_exports, require("./operations.cjs"), module.exports);
25
+ __reExport(index_exports, require("./query-promise.cjs"), module.exports);
26
+ __reExport(index_exports, require("./relations.cjs"), module.exports);
27
+ __reExport(index_exports, require("./sql/index.cjs"), module.exports);
28
+ __reExport(index_exports, require("./subquery.cjs"), module.exports);
29
+ __reExport(index_exports, require("./table.cjs"), module.exports);
30
+ __reExport(index_exports, require("./utils.cjs"), module.exports);
31
+ __reExport(index_exports, require("./view-common.cjs"), module.exports);
32
32
  // Annotate the CommonJS export names for ESM import in node:
33
33
  0 && (module.exports = {
34
34
  ...require("./alias.cjs"),
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './logger.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,uBAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,wBAHd;AAIA,wBAAc,wBAJd;AAKA,wBAAc,wBALd;AAMA,wBAAc,4BANd;AAOA,wBAAc,+BAPd;AAQA,wBAAc,2BARd;AASA,wBAAc,2BATd;AAUA,wBAAc,0BAVd;AAWA,wBAAc,uBAXd;AAYA,wBAAc,uBAZd;AAaA,wBAAc,6BAbd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './logger.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,uBAAd;AACA,0BAAc,gCADd;AAEA,0BAAc,wBAFd;AAGA,0BAAc,wBAHd;AAIA,0BAAc,wBAJd;AAKA,0BAAc,wBALd;AAMA,0BAAc,4BANd;AAOA,0BAAc,+BAPd;AAQA,0BAAc,2BARd;AASA,0BAAc,2BATd;AAUA,0BAAc,0BAVd;AAWA,0BAAc,uBAXd;AAYA,0BAAc,uBAZd;AAaA,0BAAc,6BAbd;","names":[]}
@@ -54,9 +54,13 @@ function construct(client, config = {}) {
54
54
  tableNamesMap: tablesConfig.tableNamesMap
55
55
  };
56
56
  }
57
- const session = new import_session.LibSQLSession(client, dialect, schema, { logger }, void 0);
57
+ const session = new import_session.LibSQLSession(client, dialect, schema, { logger, cache: config.cache }, void 0);
58
58
  const db = new LibSQLDatabase("async", dialect, session, schema);
59
59
  db.$client = client;
60
+ db.$cache = config.cache;
61
+ if (db.$cache) {
62
+ db.$cache["invalidate"] = config.cache?.onMutate;
63
+ }
60
64
  return db;
61
65
  }
62
66
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/driver-core.ts"],"sourcesContent":["import type { Client, ResultSet } from '@libsql/client';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { LibSQLSession } from './session.ts';\n\nexport class LibSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & {\n\t$client: Client;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ 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(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new LibSQLSession(client, dialect, schema, { logger }, undefined);\n\tconst db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,oBAA8B;AAC9B,uBAMO;AACP,gBAAmC;AACnC,qBAAmC;AAEnC,qBAA8B;AAEvB,MAAM,uBAEH,6BAAgD;AAAA,EACzD,QAA0B,wBAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAGO,SAAS,UAEd,QAAgB,SAAiC,CAAC,GAElD;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,6BAAc,QAAQ,SAAS,QAAQ,EAAE,OAAO,GAAG,MAAS;AAChF,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,SAAS,MAAM;AAC/D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/libsql/driver-core.ts"],"sourcesContent":["import type { Client, ResultSet } from '@libsql/client';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { LibSQLSession } from './session.ts';\n\nexport class LibSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & {\n\t$client: Client;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ 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(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new LibSQLSession(client, dialect, schema, { logger, cache: config.cache }, undefined);\n\tconst db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<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\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,oBAA8B;AAC9B,uBAMO;AACP,gBAAmC;AACnC,qBAAmC;AAEnC,qBAA8B;AAEvB,MAAM,uBAEH,6BAAgD;AAAA,EACzD,QAA0B,wBAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAGO,SAAS,UAEd,QAAgB,SAAiC,CAAC,GAElD;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,6BAAc,QAAQ,SAAS,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,GAAG,MAAS;AACrG,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,SAAS,MAAM;AAC/D,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AACA,SAAO;AACR;","names":[]}
@@ -33,9 +33,13 @@ function construct(client, config = {}) {
33
33
  tableNamesMap: tablesConfig.tableNamesMap
34
34
  };
35
35
  }
36
- const session = new LibSQLSession(client, dialect, schema, { logger }, void 0);
36
+ const session = new LibSQLSession(client, dialect, schema, { logger, cache: config.cache }, void 0);
37
37
  const db = new LibSQLDatabase("async", dialect, session, schema);
38
38
  db.$client = client;
39
+ db.$cache = config.cache;
40
+ if (db.$cache) {
41
+ db.$cache["invalidate"] = config.cache?.onMutate;
42
+ }
39
43
  return db;
40
44
  }
41
45
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/driver-core.ts"],"sourcesContent":["import type { Client, ResultSet } from '@libsql/client';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { LibSQLSession } from './session.ts';\n\nexport class LibSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & {\n\t$client: Client;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ 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(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new LibSQLSession(client, dialect, schema, { logger }, undefined);\n\tconst db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAIM;AACP,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,qBAAqB;AAEvB,MAAM,uBAEH,mBAAgD;AAAA,EACzD,QAA0B,UAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAGO,SAAS,UAEd,QAAgB,SAAiC,CAAC,GAElD;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,cAAc,QAAQ,SAAS,QAAQ,EAAE,OAAO,GAAG,MAAS;AAChF,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,SAAS,MAAM;AAC/D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/libsql/driver-core.ts"],"sourcesContent":["import type { Client, ResultSet } from '@libsql/client';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { LibSQLSession } from './session.ts';\n\nexport class LibSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & {\n\t$client: Client;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ 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(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new LibSQLSession(client, dialect, schema, { logger, cache: config.cache }, undefined);\n\tconst db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<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\treturn db as any;\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAIM;AACP,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,qBAAqB;AAEvB,MAAM,uBAEH,mBAAgD;AAAA,EACzD,QAA0B,UAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAGO,SAAS,UAEd,QAAgB,SAAiC,CAAC,GAElD;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,cAAc,QAAQ,SAAS,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,GAAG,MAAS;AACrG,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,SAAS,MAAM;AAC/D,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AACA,SAAO;AACR;","names":[]}
package/libsql/driver.cjs CHANGED
@@ -35,8 +35,7 @@ function drizzle(...params) {
35
35
  }
36
36
  if ((0, import_utils.isConfig)(params[0])) {
37
37
  const { connection, client, ...drizzleConfig } = params[0];
38
- if (client)
39
- return (0, import_driver_core.construct)(client, drizzleConfig);
38
+ if (client) return (0, import_driver_core.construct)(client, drizzleConfig);
40
39
  const instance = typeof connection === "string" ? (0, import_client.createClient)({ url: connection }) : (0, import_client.createClient)(connection);
41
40
  return (0, import_driver_core.construct)(instance, drizzleConfig);
42
41
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct as construct, type LibSQLDatabase } from './driver-core.ts';\n\nexport { LibSQLDatabase } from './driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,oBAAuD;AACvD,mBAA6C;AAC7C,yBAA4D;AAE5D,IAAAA,sBAA+B;AAExB,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,4BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,eAAO,8BAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,iBAAO,8BAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eAAW,4BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,4BAAa,UAAW;AAE9G,eAAO,8BAAU,UAAU,aAAa;AAAA,EACzC;AAEA,aAAO,8BAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,eAAO,8BAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["import_driver_core","drizzle"]}
1
+ {"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct as construct, type LibSQLDatabase } from './driver-core.ts';\n\nexport { LibSQLDatabase } from './driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,oBAAuD;AACvD,mBAA6C;AAC7C,yBAA4D;AAE5D,IAAAA,sBAA+B;AAExB,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,4BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,eAAO,8BAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI,OAAQ,YAAO,8BAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eAAW,4BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,4BAAa,UAAW;AAE9G,eAAO,8BAAU,UAAU,aAAa;AAAA,EACzC;AAEA,aAAO,8BAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,eAAO,8BAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["import_driver_core","drizzle"]}
package/libsql/driver.js CHANGED
@@ -11,8 +11,7 @@ function drizzle(...params) {
11
11
  }
12
12
  if (isConfig(params[0])) {
13
13
  const { connection, client, ...drizzleConfig } = params[0];
14
- if (client)
15
- return construct(client, drizzleConfig);
14
+ if (client) return construct(client, drizzleConfig);
16
15
  const instance = typeof connection === "string" ? createClient({ url: connection }) : createClient(connection);
17
16
  return construct(instance, drizzleConfig);
18
17
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct as construct, type LibSQLDatabase } from './driver-core.ts';\n\nexport { LibSQLDatabase } from './driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,SAAmC,oBAAoB;AACvD,SAA6B,gBAAgB;AAC7C,SAAS,iBAAmD;AAE5D,SAAS,sBAAsB;AAExB,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,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/libsql/driver.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct as construct, type LibSQLDatabase } from './driver-core.ts';\n\nexport { LibSQLDatabase } from './driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,SAAmC,oBAAoB;AACvD,SAA6B,gBAAgB;AAC7C,SAAS,iBAAmD;AAE5D,SAAS,sBAAsB;AAExB,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,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"]}
@@ -33,8 +33,7 @@ function drizzle(...params) {
33
33
  }
34
34
  if ((0, import_utils.isConfig)(params[0])) {
35
35
  const { connection, client, ...drizzleConfig } = params[0];
36
- if (client)
37
- return (0, import_driver_core.construct)(client, drizzleConfig);
36
+ if (client) return (0, import_driver_core.construct)(client, drizzleConfig);
38
37
  const instance = typeof connection === "string" ? (0, import_http.createClient)({ url: connection }) : (0, import_http.createClient)(connection);
39
38
  return (0, import_driver_core.construct)(instance, drizzleConfig);
40
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/libsql/http/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/http';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,kBAAuD;AACvD,mBAA6C;AAC7C,yBAA+C;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,0BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,eAAO,8BAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,iBAAO,8BAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eAAW,0BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,0BAAa,UAAW;AAE9G,eAAO,8BAAU,UAAU,aAAa;AAAA,EACzC;AAEA,aAAO,8BAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,eAAO,8BAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../../src/libsql/http/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/http';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,kBAAuD;AACvD,mBAA6C;AAC7C,yBAA+C;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,0BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,eAAO,8BAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI,OAAQ,YAAO,8BAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eAAW,0BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,0BAAa,UAAW;AAE9G,eAAO,8BAAU,UAAU,aAAa;AAAA,EACzC;AAEA,aAAO,8BAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,eAAO,8BAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
@@ -10,8 +10,7 @@ function drizzle(...params) {
10
10
  }
11
11
  if (isConfig(params[0])) {
12
12
  const { connection, client, ...drizzleConfig } = params[0];
13
- if (client)
14
- return construct(client, drizzleConfig);
13
+ if (client) return construct(client, drizzleConfig);
15
14
  const instance = typeof connection === "string" ? createClient({ url: connection }) : createClient(connection);
16
15
  return construct(instance, drizzleConfig);
17
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/libsql/http/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/http';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,SAAmC,oBAAoB;AACvD,SAA6B,gBAAgB;AAC7C,SAAS,iBAAsC;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,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/libsql/http/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/http';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,SAAmC,oBAAoB;AACvD,SAA6B,gBAAgB;AAC7C,SAAS,iBAAsC;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,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"]}
@@ -33,8 +33,7 @@ function drizzle(...params) {
33
33
  }
34
34
  if ((0, import_utils.isConfig)(params[0])) {
35
35
  const { connection, client, ...drizzleConfig } = params[0];
36
- if (client)
37
- return (0, import_driver_core.construct)(client, drizzleConfig);
36
+ if (client) return (0, import_driver_core.construct)(client, drizzleConfig);
38
37
  const instance = typeof connection === "string" ? (0, import_node.createClient)({ url: connection }) : (0, import_node.createClient)(connection);
39
38
  return (0, import_driver_core.construct)(instance, drizzleConfig);
40
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/libsql/node/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/node';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,kBAAuD;AACvD,mBAA6C;AAC7C,yBAA+C;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,0BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,eAAO,8BAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,iBAAO,8BAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eAAW,0BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,0BAAa,UAAW;AAE9G,eAAO,8BAAU,UAAU,aAAa;AAAA,EACzC;AAEA,aAAO,8BAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,eAAO,8BAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../../src/libsql/node/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/node';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,kBAAuD;AACvD,mBAA6C;AAC7C,yBAA+C;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,0BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,eAAO,8BAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI,OAAQ,YAAO,8BAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eAAW,0BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,0BAAa,UAAW;AAE9G,eAAO,8BAAU,UAAU,aAAa;AAAA,EACzC;AAEA,aAAO,8BAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,eAAO,8BAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
@@ -10,8 +10,7 @@ function drizzle(...params) {
10
10
  }
11
11
  if (isConfig(params[0])) {
12
12
  const { connection, client, ...drizzleConfig } = params[0];
13
- if (client)
14
- return construct(client, drizzleConfig);
13
+ if (client) return construct(client, drizzleConfig);
15
14
  const instance = typeof connection === "string" ? createClient({ url: connection }) : createClient(connection);
16
15
  return construct(instance, drizzleConfig);
17
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/libsql/node/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/node';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,SAAmC,oBAAoB;AACvD,SAA6B,gBAAgB;AAC7C,SAAS,iBAAsC;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,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/libsql/node/index.ts"],"sourcesContent":["import { type Client, type Config, createClient } from '@libsql/client/node';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport { construct, type LibSQLDatabase } from '../driver-core.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | Config;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: Config; client?: TClient }\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : 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): LibSQLDatabase<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,SAAmC,oBAAoB;AACvD,SAA6B,gBAAgB;AAC7C,SAAS,iBAAsC;AAExC,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,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"]}
@@ -23,6 +23,7 @@ __export(session_exports, {
23
23
  LibSQLTransaction: () => LibSQLTransaction
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_logger = require("../logger.cjs");
28
29
  var import_sql = require("../sql/sql.cjs");
@@ -37,14 +38,19 @@ class LibSQLSession extends import_session.SQLiteSession {
37
38
  this.options = options;
38
39
  this.tx = tx;
39
40
  this.logger = options.logger ?? new import_logger.NoopLogger();
41
+ this.cache = options.cache ?? new import_core.NoopCache();
40
42
  }
41
43
  static [import_entity.entityKind] = "LibSQLSession";
42
44
  logger;
43
- prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper) {
45
+ cache;
46
+ prepareQuery(query, fields, executeMethod, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
44
47
  return new LibSQLPreparedQuery(
45
48
  this.client,
46
49
  query,
47
50
  this.logger,
51
+ this.cache,
52
+ queryMetadata,
53
+ cacheConfig,
48
54
  fields,
49
55
  this.tx,
50
56
  executeMethod,
@@ -122,8 +128,8 @@ class LibSQLTransaction extends import_sqlite_core.SQLiteTransaction {
122
128
  }
123
129
  }
124
130
  class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
125
- constructor(client, query, logger, fields, tx, executeMethod, _isResponseInArrayMode, customResultMapper) {
126
- super("async", executeMethod, query);
131
+ constructor(client, query, logger, cache, queryMetadata, cacheConfig, fields, tx, executeMethod, _isResponseInArrayMode, customResultMapper) {
132
+ super("async", executeMethod, query, cache, queryMetadata, cacheConfig);
127
133
  this.client = client;
128
134
  this.logger = logger;
129
135
  this.fields = fields;
@@ -134,19 +140,23 @@ class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
134
140
  this.fields = fields;
135
141
  }
136
142
  static [import_entity.entityKind] = "LibSQLPreparedQuery";
137
- run(placeholderValues) {
143
+ async run(placeholderValues) {
138
144
  const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
139
145
  this.logger.logQuery(this.query.sql, params);
140
- const stmt = { sql: this.query.sql, args: params };
141
- return this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);
146
+ return await this.queryWithCache(this.query.sql, params, async () => {
147
+ const stmt = { sql: this.query.sql, args: params };
148
+ return this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);
149
+ });
142
150
  }
143
151
  async all(placeholderValues) {
144
152
  const { fields, logger, query, tx, client, customResultMapper } = this;
145
153
  if (!fields && !customResultMapper) {
146
154
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
147
155
  logger.logQuery(query.sql, params);
148
- const stmt = { sql: query.sql, args: params };
149
- return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapAllResult(rows2));
156
+ return await this.queryWithCache(query.sql, params, async () => {
157
+ const stmt = { sql: query.sql, args: params };
158
+ return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapAllResult(rows2));
159
+ });
150
160
  }
151
161
  const rows = await this.values(placeholderValues);
152
162
  return this.mapAllResult(rows);
@@ -174,8 +184,10 @@ class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
174
184
  if (!fields && !customResultMapper) {
175
185
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
176
186
  logger.logQuery(query.sql, params);
177
- const stmt = { sql: query.sql, args: params };
178
- return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapGetResult(rows2));
187
+ return await this.queryWithCache(query.sql, params, async () => {
188
+ const stmt = { sql: query.sql, args: params };
189
+ return (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows: rows2 }) => this.mapGetResult(rows2));
190
+ });
179
191
  }
180
192
  const rows = await this.values(placeholderValues);
181
193
  return this.mapGetResult(rows);
@@ -200,11 +212,13 @@ class LibSQLPreparedQuery extends import_session.SQLitePreparedQuery {
200
212
  this.joinsNotNullableMap
201
213
  );
202
214
  }
203
- values(placeholderValues) {
215
+ async values(placeholderValues) {
204
216
  const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
205
217
  this.logger.logQuery(this.query.sql, params);
206
- const stmt = { sql: this.query.sql, args: params };
207
- return (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows);
218
+ return await this.queryWithCache(this.query.sql, params, async () => {
219
+ const stmt = { sql: this.query.sql, args: params };
220
+ return (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows);
221
+ });
208
222
  }
209
223
  /** @internal */
210
224
  isResponseInArrayMode() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libsql/session.ts"],"sourcesContent":["import type { Client, InArgs, InStatement, ResultSet, Transaction } from '@libsql/client';\nimport type { BatchItem as 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 LibSQLSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class LibSQLSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: LibSQLSessionOptions,\n\t\tprivate tx: Transaction | undefined,\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): LibSQLPreparedQuery<T> {\n\t\treturn new LibSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tthis.tx,\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: InStatement[] = [];\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\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\tasync migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\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\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.migrate(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\t// TODO: support transaction behavior\n\t\tconst libsqlTx = await this.client.transaction();\n\t\tconst session = new LibSQLSession<TFullSchema, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\tlibsqlTx,\n\t\t);\n\t\tconst tx = new LibSQLTransaction<TFullSchema, TSchema>('async', this.dialect, session, this.schema);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait libsqlTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait libsqlTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n}\n\nexport class LibSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLTransaction';\n\n\toverride async transaction<T>(transaction: (tx: LibSQLTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new LibSQLTransaction('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\nexport class LibSQLPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: ResultSet; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'LibSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\tprivate tx: Transaction | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<ResultSet> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\treturn this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, logger, query, tx, 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\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapAllResult(rows));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\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 = (rows as ResultSet).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (rows as unknown[]).map((row) => normalizeRow(row));\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, logger, query, tx, 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\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapGetResult(rows));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tconst row = (rows as unknown[])[0];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn normalizeRow(row);\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\treturn (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows) as Promise<\n\t\t\tT['values']\n\t\t>;\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeRow(obj: any) {\n\t// The libSQL node-sqlite3 compatibility wrapper returns rows\n\t// that can be accessed both as objects and arrays. Let's\n\t// turn them into objects what's what other SQLite drivers\n\t// do.\n\treturn Object.keys(obj).reduce((acc: Record<string, any>, key) => {\n\t\tif (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n\t\t\tacc[key] = obj[key];\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
1
+ {"version":3,"sources":["../../src/libsql/session.ts"],"sourcesContent":["import type { Client, InArgs, InStatement, ResultSet, Transaction } from '@libsql/client';\nimport type { BatchItem as 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 LibSQLSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class LibSQLSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: Client,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: LibSQLSessionOptions,\n\t\tprivate tx: Transaction | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): LibSQLPreparedQuery<T> {\n\t\treturn new LibSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.tx,\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: InStatement[] = [];\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\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\tasync migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: InStatement[] = [];\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\tbuiltQueries.push({ sql: builtQuery.sql, args: builtQuery.params as InArgs });\n\t\t}\n\n\t\tconst batchResults = await this.client.migrate(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>,\n\t\t_config?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\t// TODO: support transaction behavior\n\t\tconst libsqlTx = await this.client.transaction();\n\t\tconst session = new LibSQLSession<TFullSchema, TSchema>(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\tlibsqlTx,\n\t\t);\n\t\tconst tx = new LibSQLTransaction<TFullSchema, TSchema>('async', this.dialect, session, this.schema);\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait libsqlTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait libsqlTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as ResultSet).rows;\n\t}\n}\n\nexport class LibSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', ResultSet, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLTransaction';\n\n\toverride async transaction<T>(transaction: (tx: LibSQLTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new LibSQLTransaction('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\nexport class LibSQLPreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: ResultSet; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'LibSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Client,\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\t/** @internal */ public fields: SelectedFieldsOrdered | undefined,\n\t\tprivate tx: Transaction | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query, cache, queryMetadata, cacheConfig);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t}\n\n\tasync run(placeholderValues?: Record<string, unknown>): Promise<ResultSet> {\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\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\t\treturn this.tx ? this.tx.execute(stmt) : this.client.execute(stmt);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { fields, logger, query, tx, 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\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapAllResult(rows));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\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 = (rows as ResultSet).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (rows as unknown[]).map((row) => normalizeRow(row));\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { fields, logger, query, tx, 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\t\t\treturn await this.queryWithCache(query.sql, params, async () => {\n\t\t\t\tconst stmt: InStatement = { sql: query.sql, args: params as InArgs };\n\t\t\t\treturn (tx ? tx.execute(stmt) : client.execute(stmt)).then(({ rows }) => this.mapGetResult(rows));\n\t\t\t});\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues) as unknown[][];\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as ResultSet).rows;\n\t\t}\n\n\t\tconst row = (rows as unknown[])[0];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn normalizeRow(row);\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][], normalizeFieldValue) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\tArray.prototype.slice.call(row).map((v) => normalizeFieldValue(v)),\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values(placeholderValues?: Record<string, unknown>): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn await this.queryWithCache(this.query.sql, params, async () => {\n\t\t\tconst stmt: InStatement = { sql: this.query.sql, args: params as InArgs };\n\t\t\treturn (this.tx ? this.tx.execute(stmt) : this.client.execute(stmt)).then(({ rows }) => rows) as Promise<\n\t\t\t\tT['values']\n\t\t\t>;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nfunction normalizeRow(obj: any) {\n\t// The libSQL node-sqlite3 compatibility wrapper returns rows\n\t// that can be accessed both as objects and arrays. Let's\n\t// turn them into objects what's what other SQLite drivers\n\t// do.\n\treturn Object.keys(obj).reduce((acc: Record<string, any>, key) => {\n\t\tif (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n\t\t\tacc[key] = obj[key];\n\t\t}\n\t\treturn acc;\n\t}, {});\n}\n\nfunction normalizeFieldValue(value: unknown) {\n\tif (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { // eslint-disable-line no-instanceof/no-instanceof\n\t\tif (typeof Buffer !== 'undefined') {\n\t\t\tif (!(value instanceof Buffer)) { // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\treturn Buffer.from(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(value);\n\t\t}\n\t\tthrow new Error('TextDecoder is not available. Please provide either Buffer or TextDecoder polyfill.');\n\t}\n\treturn value;\n}\n"],"mappings":"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","names":["rows"]}
@@ -1,5 +1,7 @@
1
1
  import type { Client, ResultSet, Transaction } from '@libsql/client';
2
2
  import type { BatchItem as BatchItem } from "../batch.cjs";
3
+ import { type Cache } from "../cache/core/index.cjs";
4
+ import type { WithCacheConfig } from "../cache/core/types.cjs";
3
5
  import { entityKind } from "../entity.cjs";
4
6
  import type { Logger } from "../logger.cjs";
5
7
  import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
@@ -11,6 +13,7 @@ import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteExecuteMetho
11
13
  import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.cjs";
12
14
  export interface LibSQLSessionOptions {
13
15
  logger?: Logger;
16
+ cache?: Cache;
14
17
  }
15
18
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
16
19
  export declare class LibSQLSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', ResultSet, TFullSchema, TSchema> {
@@ -20,8 +23,12 @@ export declare class LibSQLSession<TFullSchema extends Record<string, unknown>,
20
23
  private tx;
21
24
  static readonly [entityKind]: string;
22
25
  private logger;
26
+ private cache;
23
27
  constructor(client: Client, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options: LibSQLSessionOptions, tx: Transaction | undefined);
24
- prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): LibSQLPreparedQuery<T>;
28
+ prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown, queryMetadata?: {
29
+ type: 'select' | 'update' | 'delete' | 'insert';
30
+ tables: string[];
31
+ }, cacheConfig?: WithCacheConfig): LibSQLPreparedQuery<T>;
25
32
  batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
26
33
  migrate<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
27
34
  transaction<T>(transaction: (db: LibSQLTransaction<TFullSchema, TSchema>) => T | Promise<T>, _config?: SQLiteTransactionConfig): Promise<T>;
@@ -46,7 +53,10 @@ export declare class LibSQLPreparedQuery<T extends PreparedQueryConfig = Prepare
46
53
  private tx;
47
54
  private _isResponseInArrayMode;
48
55
  static readonly [entityKind]: string;
49
- constructor(client: Client, query: Query, logger: Logger,
56
+ constructor(client: Client, query: Query, logger: Logger, cache: Cache, queryMetadata: {
57
+ type: 'select' | 'update' | 'delete' | 'insert';
58
+ tables: string[];
59
+ } | undefined, cacheConfig: WithCacheConfig | undefined,
50
60
  /** @internal */ fields: SelectedFieldsOrdered | undefined, tx: Transaction | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean,
51
61
  /** @internal */ customResultMapper?: ((rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown) | undefined);
52
62
  run(placeholderValues?: Record<string, unknown>): Promise<ResultSet>;