drizzle-orm 0.44.1 → 0.44.2-512acc4

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 (800) hide show
  1. package/aws-data-api/pg/driver.cjs +14 -6
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +4 -3
  4. package/aws-data-api/pg/driver.d.ts +4 -3
  5. package/aws-data-api/pg/driver.js +14 -6
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +26 -9
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +5 -4
  10. package/aws-data-api/pg/session.d.ts +5 -4
  11. package/aws-data-api/pg/session.js +26 -9
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.d.cts +4 -3
  15. package/better-sqlite3/driver.d.ts +4 -3
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/session.cjs +4 -4
  18. package/better-sqlite3/session.cjs.map +1 -1
  19. package/better-sqlite3/session.d.cts +4 -4
  20. package/better-sqlite3/session.d.ts +4 -4
  21. package/better-sqlite3/session.js +4 -4
  22. package/better-sqlite3/session.js.map +1 -1
  23. package/bun-sql/driver.cjs +3 -2
  24. package/bun-sql/driver.cjs.map +1 -1
  25. package/bun-sql/driver.d.cts +4 -3
  26. package/bun-sql/driver.d.ts +4 -3
  27. package/bun-sql/driver.js +3 -2
  28. package/bun-sql/driver.js.map +1 -1
  29. package/bun-sql/session.cjs +20 -11
  30. package/bun-sql/session.cjs.map +1 -1
  31. package/bun-sql/session.d.cts +6 -5
  32. package/bun-sql/session.d.ts +6 -5
  33. package/bun-sql/session.js +20 -11
  34. package/bun-sql/session.js.map +1 -1
  35. package/bun-sqlite/driver.cjs.map +1 -1
  36. package/bun-sqlite/driver.d.cts +4 -3
  37. package/bun-sqlite/driver.d.ts +4 -3
  38. package/bun-sqlite/driver.js.map +1 -1
  39. package/bun-sqlite/session.cjs +4 -4
  40. package/bun-sqlite/session.cjs.map +1 -1
  41. package/bun-sqlite/session.d.cts +4 -4
  42. package/bun-sqlite/session.d.ts +4 -4
  43. package/bun-sqlite/session.js +4 -4
  44. package/bun-sqlite/session.js.map +1 -1
  45. package/column-builder.cjs.map +1 -1
  46. package/column-builder.d.cts +7 -2
  47. package/column-builder.d.ts +7 -2
  48. package/column-builder.js.map +1 -1
  49. package/column.cjs +2 -0
  50. package/column.cjs.map +1 -1
  51. package/column.d.cts +6 -0
  52. package/column.d.ts +6 -0
  53. package/column.js +2 -0
  54. package/column.js.map +1 -1
  55. package/d1/driver.cjs +9 -2
  56. package/d1/driver.cjs.map +1 -1
  57. package/d1/driver.d.cts +2 -1
  58. package/d1/driver.d.ts +2 -1
  59. package/d1/driver.js +9 -2
  60. package/d1/driver.js.map +1 -1
  61. package/d1/session.cjs +20 -11
  62. package/d1/session.cjs.map +1 -1
  63. package/d1/session.d.cts +8 -7
  64. package/d1/session.d.ts +8 -7
  65. package/d1/session.js +20 -11
  66. package/d1/session.js.map +1 -1
  67. package/durable-sqlite/driver.cjs.map +1 -1
  68. package/durable-sqlite/driver.d.cts +2 -1
  69. package/durable-sqlite/driver.d.ts +2 -1
  70. package/durable-sqlite/driver.js.map +1 -1
  71. package/durable-sqlite/session.cjs +4 -4
  72. package/durable-sqlite/session.cjs.map +1 -1
  73. package/durable-sqlite/session.d.cts +4 -4
  74. package/durable-sqlite/session.d.ts +4 -4
  75. package/durable-sqlite/session.js +4 -4
  76. package/durable-sqlite/session.js.map +1 -1
  77. package/expo-sqlite/driver.cjs.map +1 -1
  78. package/expo-sqlite/driver.d.cts +2 -1
  79. package/expo-sqlite/driver.d.ts +2 -1
  80. package/expo-sqlite/driver.js.map +1 -1
  81. package/expo-sqlite/session.cjs +4 -4
  82. package/expo-sqlite/session.cjs.map +1 -1
  83. package/expo-sqlite/session.d.cts +4 -4
  84. package/expo-sqlite/session.d.ts +4 -4
  85. package/expo-sqlite/session.js +4 -4
  86. package/expo-sqlite/session.js.map +1 -1
  87. package/extension-core/gel/index.cjs +33 -0
  88. package/extension-core/gel/index.cjs.map +1 -0
  89. package/extension-core/gel/index.d.cts +67 -0
  90. package/extension-core/gel/index.d.ts +67 -0
  91. package/extension-core/gel/index.js +9 -0
  92. package/extension-core/gel/index.js.map +1 -0
  93. package/extension-core/index.cjs +42 -0
  94. package/extension-core/index.cjs.map +1 -0
  95. package/extension-core/index.d.cts +9 -0
  96. package/extension-core/index.d.ts +9 -0
  97. package/extension-core/index.js +15 -0
  98. package/extension-core/index.js.map +1 -0
  99. package/extension-core/mysql/index.cjs +33 -0
  100. package/extension-core/mysql/index.cjs.map +1 -0
  101. package/extension-core/mysql/index.d.cts +69 -0
  102. package/extension-core/mysql/index.d.ts +69 -0
  103. package/extension-core/mysql/index.js +9 -0
  104. package/extension-core/mysql/index.js.map +1 -0
  105. package/extension-core/pg/index.cjs +33 -0
  106. package/extension-core/pg/index.cjs.map +1 -0
  107. package/extension-core/pg/index.d.cts +67 -0
  108. package/extension-core/pg/index.d.ts +67 -0
  109. package/extension-core/pg/index.js +9 -0
  110. package/extension-core/pg/index.js.map +1 -0
  111. package/extension-core/singlestore/index.cjs +33 -0
  112. package/extension-core/singlestore/index.cjs.map +1 -0
  113. package/extension-core/singlestore/index.d.cts +67 -0
  114. package/extension-core/singlestore/index.d.ts +67 -0
  115. package/extension-core/singlestore/index.js +9 -0
  116. package/extension-core/singlestore/index.js.map +1 -0
  117. package/extension-core/sqlite/index.cjs +33 -0
  118. package/extension-core/sqlite/index.cjs.map +1 -0
  119. package/extension-core/sqlite/index.d.cts +68 -0
  120. package/extension-core/sqlite/index.d.ts +68 -0
  121. package/extension-core/sqlite/index.js +9 -0
  122. package/extension-core/sqlite/index.js.map +1 -0
  123. package/extensions/hook/gel/index.cjs +47 -0
  124. package/extensions/hook/gel/index.cjs.map +1 -0
  125. package/extensions/hook/gel/index.d.cts +11 -0
  126. package/extensions/hook/gel/index.d.ts +11 -0
  127. package/extensions/hook/gel/index.js +22 -0
  128. package/extensions/hook/gel/index.js.map +1 -0
  129. package/extensions/hook/mysql/index.cjs +47 -0
  130. package/extensions/hook/mysql/index.cjs.map +1 -0
  131. package/extensions/hook/mysql/index.d.cts +11 -0
  132. package/extensions/hook/mysql/index.d.ts +11 -0
  133. package/extensions/hook/mysql/index.js +22 -0
  134. package/extensions/hook/mysql/index.js.map +1 -0
  135. package/extensions/hook/pg/index.cjs +47 -0
  136. package/extensions/hook/pg/index.cjs.map +1 -0
  137. package/extensions/hook/pg/index.d.cts +11 -0
  138. package/extensions/hook/pg/index.d.ts +11 -0
  139. package/extensions/hook/pg/index.js +22 -0
  140. package/extensions/hook/pg/index.js.map +1 -0
  141. package/extensions/hook/singlestore/index.cjs +47 -0
  142. package/extensions/hook/singlestore/index.cjs.map +1 -0
  143. package/extensions/hook/singlestore/index.d.cts +11 -0
  144. package/extensions/hook/singlestore/index.d.ts +11 -0
  145. package/extensions/hook/singlestore/index.js +22 -0
  146. package/extensions/hook/singlestore/index.js.map +1 -0
  147. package/extensions/hook/sqlite/index.cjs +47 -0
  148. package/extensions/hook/sqlite/index.cjs.map +1 -0
  149. package/extensions/hook/sqlite/index.d.cts +11 -0
  150. package/extensions/hook/sqlite/index.d.ts +11 -0
  151. package/extensions/hook/sqlite/index.js +22 -0
  152. package/extensions/hook/sqlite/index.js.map +1 -0
  153. package/extensions/s3-file/common.cjs +313 -0
  154. package/extensions/s3-file/common.cjs.map +1 -0
  155. package/extensions/s3-file/common.d.cts +88 -0
  156. package/extensions/s3-file/common.d.ts +88 -0
  157. package/extensions/s3-file/common.js +280 -0
  158. package/extensions/s3-file/common.js.map +1 -0
  159. package/extensions/s3-file/gel/column.cjs +113 -0
  160. package/extensions/s3-file/gel/column.cjs.map +1 -0
  161. package/extensions/s3-file/gel/column.d.cts +105 -0
  162. package/extensions/s3-file/gel/column.d.ts +105 -0
  163. package/extensions/s3-file/gel/column.js +92 -0
  164. package/extensions/s3-file/gel/column.js.map +1 -0
  165. package/extensions/s3-file/gel/extension.cjs +262 -0
  166. package/extensions/s3-file/gel/extension.cjs.map +1 -0
  167. package/extensions/s3-file/gel/extension.d.cts +18 -0
  168. package/extensions/s3-file/gel/extension.d.ts +18 -0
  169. package/extensions/s3-file/gel/extension.js +248 -0
  170. package/extensions/s3-file/gel/extension.js.map +1 -0
  171. package/extensions/s3-file/gel/index.cjs +25 -0
  172. package/extensions/s3-file/gel/index.cjs.map +1 -0
  173. package/extensions/s3-file/gel/index.d.cts +2 -0
  174. package/extensions/s3-file/gel/index.d.ts +2 -0
  175. package/extensions/s3-file/gel/index.js +3 -0
  176. package/extensions/s3-file/gel/index.js.map +1 -0
  177. package/extensions/s3-file/index.cjs +23 -0
  178. package/extensions/s3-file/index.cjs.map +1 -0
  179. package/extensions/s3-file/index.d.cts +1 -0
  180. package/extensions/s3-file/index.d.ts +1 -0
  181. package/extensions/s3-file/index.js +2 -0
  182. package/extensions/s3-file/index.js.map +1 -0
  183. package/extensions/s3-file/mysql/column.cjs +110 -0
  184. package/extensions/s3-file/mysql/column.cjs.map +1 -0
  185. package/extensions/s3-file/mysql/column.d.cts +63 -0
  186. package/extensions/s3-file/mysql/column.d.ts +63 -0
  187. package/extensions/s3-file/mysql/column.js +86 -0
  188. package/extensions/s3-file/mysql/column.js.map +1 -0
  189. package/extensions/s3-file/mysql/extension.cjs +242 -0
  190. package/extensions/s3-file/mysql/extension.cjs.map +1 -0
  191. package/extensions/s3-file/mysql/extension.d.cts +18 -0
  192. package/extensions/s3-file/mysql/extension.d.ts +18 -0
  193. package/extensions/s3-file/mysql/extension.js +228 -0
  194. package/extensions/s3-file/mysql/extension.js.map +1 -0
  195. package/extensions/s3-file/mysql/index.cjs +25 -0
  196. package/extensions/s3-file/mysql/index.cjs.map +1 -0
  197. package/extensions/s3-file/mysql/index.d.cts +2 -0
  198. package/extensions/s3-file/mysql/index.d.ts +2 -0
  199. package/extensions/s3-file/mysql/index.js +3 -0
  200. package/extensions/s3-file/mysql/index.js.map +1 -0
  201. package/extensions/s3-file/pg/column.cjs +113 -0
  202. package/extensions/s3-file/pg/column.cjs.map +1 -0
  203. package/extensions/s3-file/pg/column.d.cts +105 -0
  204. package/extensions/s3-file/pg/column.d.ts +105 -0
  205. package/extensions/s3-file/pg/column.js +92 -0
  206. package/extensions/s3-file/pg/column.js.map +1 -0
  207. package/extensions/s3-file/pg/extension.cjs +264 -0
  208. package/extensions/s3-file/pg/extension.cjs.map +1 -0
  209. package/extensions/s3-file/pg/extension.d.cts +18 -0
  210. package/extensions/s3-file/pg/extension.d.ts +18 -0
  211. package/extensions/s3-file/pg/extension.js +250 -0
  212. package/extensions/s3-file/pg/extension.js.map +1 -0
  213. package/extensions/s3-file/pg/index.cjs +25 -0
  214. package/extensions/s3-file/pg/index.cjs.map +1 -0
  215. package/extensions/s3-file/pg/index.d.cts +2 -0
  216. package/extensions/s3-file/pg/index.d.ts +2 -0
  217. package/extensions/s3-file/pg/index.js +3 -0
  218. package/extensions/s3-file/pg/index.js.map +1 -0
  219. package/extensions/s3-file/singlestore/column.cjs +110 -0
  220. package/extensions/s3-file/singlestore/column.cjs.map +1 -0
  221. package/extensions/s3-file/singlestore/column.d.cts +63 -0
  222. package/extensions/s3-file/singlestore/column.d.ts +63 -0
  223. package/extensions/s3-file/singlestore/column.js +86 -0
  224. package/extensions/s3-file/singlestore/column.js.map +1 -0
  225. package/extensions/s3-file/singlestore/extension.cjs +239 -0
  226. package/extensions/s3-file/singlestore/extension.cjs.map +1 -0
  227. package/extensions/s3-file/singlestore/extension.d.cts +18 -0
  228. package/extensions/s3-file/singlestore/extension.d.ts +18 -0
  229. package/extensions/s3-file/singlestore/extension.js +225 -0
  230. package/extensions/s3-file/singlestore/extension.js.map +1 -0
  231. package/extensions/s3-file/singlestore/index.cjs +25 -0
  232. package/extensions/s3-file/singlestore/index.cjs.map +1 -0
  233. package/extensions/s3-file/singlestore/index.d.cts +2 -0
  234. package/extensions/s3-file/singlestore/index.d.ts +2 -0
  235. package/extensions/s3-file/singlestore/index.js +3 -0
  236. package/extensions/s3-file/singlestore/index.js.map +1 -0
  237. package/extensions/s3-file/sqlite/column.cjs +110 -0
  238. package/extensions/s3-file/sqlite/column.cjs.map +1 -0
  239. package/extensions/s3-file/sqlite/column.d.cts +63 -0
  240. package/extensions/s3-file/sqlite/column.d.ts +63 -0
  241. package/extensions/s3-file/sqlite/column.js +86 -0
  242. package/extensions/s3-file/sqlite/column.js.map +1 -0
  243. package/extensions/s3-file/sqlite/extension.cjs +242 -0
  244. package/extensions/s3-file/sqlite/extension.cjs.map +1 -0
  245. package/extensions/s3-file/sqlite/extension.d.cts +18 -0
  246. package/extensions/s3-file/sqlite/extension.d.ts +18 -0
  247. package/extensions/s3-file/sqlite/extension.js +228 -0
  248. package/extensions/s3-file/sqlite/extension.js.map +1 -0
  249. package/extensions/s3-file/sqlite/index.cjs +25 -0
  250. package/extensions/s3-file/sqlite/index.cjs.map +1 -0
  251. package/extensions/s3-file/sqlite/index.d.cts +2 -0
  252. package/extensions/s3-file/sqlite/index.d.ts +2 -0
  253. package/extensions/s3-file/sqlite/index.js +3 -0
  254. package/extensions/s3-file/sqlite/index.js.map +1 -0
  255. package/gel/driver.cjs +6 -4
  256. package/gel/driver.cjs.map +1 -1
  257. package/gel/driver.d.cts +6 -4
  258. package/gel/driver.d.ts +6 -4
  259. package/gel/driver.js +6 -4
  260. package/gel/driver.js.map +1 -1
  261. package/gel/session.cjs +12 -9
  262. package/gel/session.cjs.map +1 -1
  263. package/gel/session.d.cts +5 -4
  264. package/gel/session.d.ts +5 -4
  265. package/gel/session.js +12 -9
  266. package/gel/session.js.map +1 -1
  267. package/gel-core/columns/common.cjs +8 -0
  268. package/gel-core/columns/common.cjs.map +1 -1
  269. package/gel-core/columns/common.d.cts +2 -0
  270. package/gel-core/columns/common.d.ts +2 -0
  271. package/gel-core/columns/common.js +8 -0
  272. package/gel-core/columns/common.js.map +1 -1
  273. package/gel-core/db.cjs +5 -3
  274. package/gel-core/db.cjs.map +1 -1
  275. package/gel-core/db.d.cts +3 -1
  276. package/gel-core/db.d.ts +3 -1
  277. package/gel-core/db.js +5 -3
  278. package/gel-core/db.js.map +1 -1
  279. package/gel-core/dialect.cjs +24 -19
  280. package/gel-core/dialect.cjs.map +1 -1
  281. package/gel-core/dialect.d.cts +7 -6
  282. package/gel-core/dialect.d.ts +7 -6
  283. package/gel-core/dialect.js +25 -20
  284. package/gel-core/dialect.js.map +1 -1
  285. package/gel-core/query-builders/delete.cjs +19 -5
  286. package/gel-core/query-builders/delete.cjs.map +1 -1
  287. package/gel-core/query-builders/delete.js +19 -5
  288. package/gel-core/query-builders/delete.js.map +1 -1
  289. package/gel-core/query-builders/insert.cjs +44 -9
  290. package/gel-core/query-builders/insert.cjs.map +1 -1
  291. package/gel-core/query-builders/insert.js +46 -11
  292. package/gel-core/query-builders/insert.js.map +1 -1
  293. package/gel-core/query-builders/query.cjs +15 -2
  294. package/gel-core/query-builders/query.cjs.map +1 -1
  295. package/gel-core/query-builders/query.js +15 -2
  296. package/gel-core/query-builders/query.js.map +1 -1
  297. package/gel-core/query-builders/select.cjs +21 -5
  298. package/gel-core/query-builders/select.cjs.map +1 -1
  299. package/gel-core/query-builders/select.d.cts +9 -9
  300. package/gel-core/query-builders/select.d.ts +9 -9
  301. package/gel-core/query-builders/select.js +21 -5
  302. package/gel-core/query-builders/select.js.map +1 -1
  303. package/gel-core/query-builders/select.types.cjs.map +1 -1
  304. package/gel-core/query-builders/select.types.d.cts +2 -1
  305. package/gel-core/query-builders/select.types.d.ts +2 -1
  306. package/gel-core/query-builders/update.cjs +20 -6
  307. package/gel-core/query-builders/update.cjs.map +1 -1
  308. package/gel-core/query-builders/update.js +20 -6
  309. package/gel-core/query-builders/update.js.map +1 -1
  310. package/gel-core/session.cjs +47 -4
  311. package/gel-core/session.cjs.map +1 -1
  312. package/gel-core/session.d.cts +11 -5
  313. package/gel-core/session.d.ts +11 -5
  314. package/gel-core/session.js +47 -4
  315. package/gel-core/session.js.map +1 -1
  316. package/libsql/driver-core.cjs +3 -2
  317. package/libsql/driver-core.cjs.map +1 -1
  318. package/libsql/driver-core.js +3 -2
  319. package/libsql/driver-core.js.map +1 -1
  320. package/libsql/driver.cjs +4 -1
  321. package/libsql/driver.cjs.map +1 -1
  322. package/libsql/driver.d.cts +4 -3
  323. package/libsql/driver.d.ts +4 -3
  324. package/libsql/driver.js +4 -1
  325. package/libsql/driver.js.map +1 -1
  326. package/libsql/http/index.cjs +4 -1
  327. package/libsql/http/index.cjs.map +1 -1
  328. package/libsql/http/index.d.cts +4 -3
  329. package/libsql/http/index.d.ts +4 -3
  330. package/libsql/http/index.js +4 -1
  331. package/libsql/http/index.js.map +1 -1
  332. package/libsql/node/index.cjs +4 -1
  333. package/libsql/node/index.cjs.map +1 -1
  334. package/libsql/node/index.d.cts +4 -3
  335. package/libsql/node/index.d.ts +4 -3
  336. package/libsql/node/index.js +4 -1
  337. package/libsql/node/index.js.map +1 -1
  338. package/libsql/session.cjs +29 -12
  339. package/libsql/session.cjs.map +1 -1
  340. package/libsql/session.d.cts +8 -7
  341. package/libsql/session.d.ts +8 -7
  342. package/libsql/session.js +29 -12
  343. package/libsql/session.js.map +1 -1
  344. package/libsql/sqlite3/index.cjs +4 -1
  345. package/libsql/sqlite3/index.cjs.map +1 -1
  346. package/libsql/sqlite3/index.d.cts +4 -3
  347. package/libsql/sqlite3/index.d.ts +4 -3
  348. package/libsql/sqlite3/index.js +4 -1
  349. package/libsql/sqlite3/index.js.map +1 -1
  350. package/libsql/wasm/index.cjs +4 -1
  351. package/libsql/wasm/index.cjs.map +1 -1
  352. package/libsql/wasm/index.d.cts +4 -3
  353. package/libsql/wasm/index.d.ts +4 -3
  354. package/libsql/wasm/index.js +4 -1
  355. package/libsql/wasm/index.js.map +1 -1
  356. package/libsql/web/index.cjs +4 -1
  357. package/libsql/web/index.cjs.map +1 -1
  358. package/libsql/web/index.d.cts +4 -3
  359. package/libsql/web/index.d.ts +4 -3
  360. package/libsql/web/index.js +4 -1
  361. package/libsql/web/index.js.map +1 -1
  362. package/libsql/ws/index.cjs +4 -1
  363. package/libsql/ws/index.cjs.map +1 -1
  364. package/libsql/ws/index.d.cts +4 -3
  365. package/libsql/ws/index.d.ts +4 -3
  366. package/libsql/ws/index.js +4 -1
  367. package/libsql/ws/index.js.map +1 -1
  368. package/mysql-core/db.cjs +5 -3
  369. package/mysql-core/db.cjs.map +1 -1
  370. package/mysql-core/db.d.cts +3 -1
  371. package/mysql-core/db.d.ts +3 -1
  372. package/mysql-core/db.js +5 -3
  373. package/mysql-core/db.js.map +1 -1
  374. package/mysql-core/dialect.cjs +29 -23
  375. package/mysql-core/dialect.cjs.map +1 -1
  376. package/mysql-core/dialect.d.cts +8 -7
  377. package/mysql-core/dialect.d.ts +8 -7
  378. package/mysql-core/dialect.js +30 -24
  379. package/mysql-core/dialect.js.map +1 -1
  380. package/mysql-core/query-builders/delete.cjs +8 -1
  381. package/mysql-core/query-builders/delete.cjs.map +1 -1
  382. package/mysql-core/query-builders/delete.js +8 -1
  383. package/mysql-core/query-builders/delete.js.map +1 -1
  384. package/mysql-core/query-builders/insert.cjs +30 -6
  385. package/mysql-core/query-builders/insert.cjs.map +1 -1
  386. package/mysql-core/query-builders/insert.js +32 -8
  387. package/mysql-core/query-builders/insert.js.map +1 -1
  388. package/mysql-core/query-builders/query.cjs +19 -3
  389. package/mysql-core/query-builders/query.cjs.map +1 -1
  390. package/mysql-core/query-builders/query.js +19 -3
  391. package/mysql-core/query-builders/query.js.map +1 -1
  392. package/mysql-core/query-builders/select.cjs +23 -6
  393. package/mysql-core/query-builders/select.cjs.map +1 -1
  394. package/mysql-core/query-builders/select.d.cts +8 -8
  395. package/mysql-core/query-builders/select.d.ts +8 -8
  396. package/mysql-core/query-builders/select.js +23 -6
  397. package/mysql-core/query-builders/select.js.map +1 -1
  398. package/mysql-core/query-builders/select.types.cjs.map +1 -1
  399. package/mysql-core/query-builders/select.types.d.cts +2 -1
  400. package/mysql-core/query-builders/select.types.d.ts +2 -1
  401. package/mysql-core/query-builders/update.cjs +15 -3
  402. package/mysql-core/query-builders/update.cjs.map +1 -1
  403. package/mysql-core/query-builders/update.js +15 -3
  404. package/mysql-core/query-builders/update.js.map +1 -1
  405. package/mysql-core/session.cjs +43 -4
  406. package/mysql-core/session.cjs.map +1 -1
  407. package/mysql-core/session.d.cts +14 -7
  408. package/mysql-core/session.d.ts +14 -7
  409. package/mysql-core/session.js +43 -4
  410. package/mysql-core/session.js.map +1 -1
  411. package/mysql-proxy/driver.cjs +3 -2
  412. package/mysql-proxy/driver.cjs.map +1 -1
  413. package/mysql-proxy/driver.d.cts +2 -1
  414. package/mysql-proxy/driver.d.ts +2 -1
  415. package/mysql-proxy/driver.js +3 -2
  416. package/mysql-proxy/driver.js.map +1 -1
  417. package/mysql-proxy/session.cjs +8 -8
  418. package/mysql-proxy/session.cjs.map +1 -1
  419. package/mysql-proxy/session.d.cts +5 -6
  420. package/mysql-proxy/session.d.ts +5 -6
  421. package/mysql-proxy/session.js +8 -8
  422. package/mysql-proxy/session.js.map +1 -1
  423. package/mysql2/driver.cjs +11 -4
  424. package/mysql2/driver.cjs.map +1 -1
  425. package/mysql2/driver.d.cts +4 -2
  426. package/mysql2/driver.d.ts +4 -2
  427. package/mysql2/driver.js +11 -4
  428. package/mysql2/driver.js.map +1 -1
  429. package/mysql2/session.cjs +14 -10
  430. package/mysql2/session.cjs.map +1 -1
  431. package/mysql2/session.d.cts +5 -5
  432. package/mysql2/session.d.ts +5 -5
  433. package/mysql2/session.js +14 -10
  434. package/mysql2/session.js.map +1 -1
  435. package/neon-http/driver.cjs +5 -3
  436. package/neon-http/driver.cjs.map +1 -1
  437. package/neon-http/driver.d.cts +6 -4
  438. package/neon-http/driver.d.ts +6 -4
  439. package/neon-http/driver.js +5 -3
  440. package/neon-http/driver.js.map +1 -1
  441. package/neon-http/session.cjs +8 -6
  442. package/neon-http/session.cjs.map +1 -1
  443. package/neon-http/session.d.cts +5 -4
  444. package/neon-http/session.d.ts +5 -4
  445. package/neon-http/session.js +8 -6
  446. package/neon-http/session.js.map +1 -1
  447. package/neon-serverless/driver.cjs +6 -4
  448. package/neon-serverless/driver.cjs.map +1 -1
  449. package/neon-serverless/driver.d.cts +6 -4
  450. package/neon-serverless/driver.d.ts +6 -4
  451. package/neon-serverless/driver.js +6 -4
  452. package/neon-serverless/driver.js.map +1 -1
  453. package/neon-serverless/session.cjs +23 -9
  454. package/neon-serverless/session.cjs.map +1 -1
  455. package/neon-serverless/session.d.cts +5 -4
  456. package/neon-serverless/session.d.ts +5 -4
  457. package/neon-serverless/session.js +23 -9
  458. package/neon-serverless/session.js.map +1 -1
  459. package/node-postgres/driver.cjs +6 -4
  460. package/node-postgres/driver.cjs.map +1 -1
  461. package/node-postgres/driver.d.cts +6 -4
  462. package/node-postgres/driver.d.ts +6 -4
  463. package/node-postgres/driver.js +6 -4
  464. package/node-postgres/driver.js.map +1 -1
  465. package/node-postgres/session.cjs +18 -9
  466. package/node-postgres/session.cjs.map +1 -1
  467. package/node-postgres/session.d.cts +5 -4
  468. package/node-postgres/session.d.ts +5 -4
  469. package/node-postgres/session.js +18 -9
  470. package/node-postgres/session.js.map +1 -1
  471. package/op-sqlite/driver.cjs +3 -2
  472. package/op-sqlite/driver.cjs.map +1 -1
  473. package/op-sqlite/driver.d.cts +2 -1
  474. package/op-sqlite/driver.d.ts +2 -1
  475. package/op-sqlite/driver.js +3 -2
  476. package/op-sqlite/driver.js.map +1 -1
  477. package/op-sqlite/session.cjs +20 -11
  478. package/op-sqlite/session.cjs.map +1 -1
  479. package/op-sqlite/session.d.cts +8 -7
  480. package/op-sqlite/session.d.ts +8 -7
  481. package/op-sqlite/session.js +20 -11
  482. package/op-sqlite/session.js.map +1 -1
  483. package/package.json +351 -5
  484. package/pg-core/columns/common.cjs +2 -0
  485. package/pg-core/columns/common.cjs.map +1 -1
  486. package/pg-core/columns/common.js +2 -0
  487. package/pg-core/columns/common.js.map +1 -1
  488. package/pg-core/db.cjs +5 -3
  489. package/pg-core/db.cjs.map +1 -1
  490. package/pg-core/db.d.cts +3 -1
  491. package/pg-core/db.d.ts +3 -1
  492. package/pg-core/db.js +5 -3
  493. package/pg-core/db.js.map +1 -1
  494. package/pg-core/dialect.cjs +25 -19
  495. package/pg-core/dialect.cjs.map +1 -1
  496. package/pg-core/dialect.d.cts +7 -6
  497. package/pg-core/dialect.d.ts +7 -6
  498. package/pg-core/dialect.js +26 -20
  499. package/pg-core/dialect.js.map +1 -1
  500. package/pg-core/query-builders/delete.cjs +19 -5
  501. package/pg-core/query-builders/delete.cjs.map +1 -1
  502. package/pg-core/query-builders/delete.js +19 -5
  503. package/pg-core/query-builders/delete.js.map +1 -1
  504. package/pg-core/query-builders/insert.cjs +49 -9
  505. package/pg-core/query-builders/insert.cjs.map +1 -1
  506. package/pg-core/query-builders/insert.js +51 -11
  507. package/pg-core/query-builders/insert.js.map +1 -1
  508. package/pg-core/query-builders/query.cjs +15 -2
  509. package/pg-core/query-builders/query.cjs.map +1 -1
  510. package/pg-core/query-builders/query.js +15 -2
  511. package/pg-core/query-builders/query.js.map +1 -1
  512. package/pg-core/query-builders/select.cjs +23 -7
  513. package/pg-core/query-builders/select.cjs.map +1 -1
  514. package/pg-core/query-builders/select.d.cts +9 -9
  515. package/pg-core/query-builders/select.d.ts +9 -9
  516. package/pg-core/query-builders/select.js +23 -7
  517. package/pg-core/query-builders/select.js.map +1 -1
  518. package/pg-core/query-builders/select.types.cjs.map +1 -1
  519. package/pg-core/query-builders/select.types.d.cts +2 -1
  520. package/pg-core/query-builders/select.types.d.ts +2 -1
  521. package/pg-core/query-builders/update.cjs +20 -6
  522. package/pg-core/query-builders/update.cjs.map +1 -1
  523. package/pg-core/query-builders/update.js +20 -6
  524. package/pg-core/query-builders/update.js.map +1 -1
  525. package/pg-core/session.cjs +48 -4
  526. package/pg-core/session.cjs.map +1 -1
  527. package/pg-core/session.d.cts +11 -5
  528. package/pg-core/session.d.ts +11 -5
  529. package/pg-core/session.js +48 -4
  530. package/pg-core/session.js.map +1 -1
  531. package/pg-proxy/driver.cjs +3 -2
  532. package/pg-proxy/driver.cjs.map +1 -1
  533. package/pg-proxy/driver.d.cts +2 -1
  534. package/pg-proxy/driver.d.ts +2 -1
  535. package/pg-proxy/driver.js +3 -2
  536. package/pg-proxy/driver.js.map +1 -1
  537. package/pg-proxy/session.cjs +8 -6
  538. package/pg-proxy/session.cjs.map +1 -1
  539. package/pg-proxy/session.d.cts +5 -4
  540. package/pg-proxy/session.d.ts +5 -4
  541. package/pg-proxy/session.js +8 -6
  542. package/pg-proxy/session.js.map +1 -1
  543. package/pglite/driver.cjs +6 -4
  544. package/pglite/driver.cjs.map +1 -1
  545. package/pglite/driver.d.cts +6 -4
  546. package/pglite/driver.d.ts +6 -4
  547. package/pglite/driver.js +6 -4
  548. package/pglite/driver.js.map +1 -1
  549. package/pglite/session.cjs +19 -9
  550. package/pglite/session.cjs.map +1 -1
  551. package/pglite/session.d.cts +5 -4
  552. package/pglite/session.d.ts +5 -4
  553. package/pglite/session.js +19 -9
  554. package/pglite/session.js.map +1 -1
  555. package/planetscale-serverless/driver.cjs +10 -2
  556. package/planetscale-serverless/driver.cjs.map +1 -1
  557. package/planetscale-serverless/driver.d.cts +4 -3
  558. package/planetscale-serverless/driver.d.ts +4 -3
  559. package/planetscale-serverless/driver.js +10 -2
  560. package/planetscale-serverless/driver.js.map +1 -1
  561. package/planetscale-serverless/session.cjs +23 -13
  562. package/planetscale-serverless/session.cjs.map +1 -1
  563. package/planetscale-serverless/session.d.cts +6 -7
  564. package/planetscale-serverless/session.d.ts +6 -7
  565. package/planetscale-serverless/session.js +23 -13
  566. package/planetscale-serverless/session.js.map +1 -1
  567. package/postgres-js/driver.cjs +3 -2
  568. package/postgres-js/driver.cjs.map +1 -1
  569. package/postgres-js/driver.d.cts +4 -3
  570. package/postgres-js/driver.d.ts +4 -3
  571. package/postgres-js/driver.js +3 -2
  572. package/postgres-js/driver.js.map +1 -1
  573. package/postgres-js/session.cjs +27 -16
  574. package/postgres-js/session.cjs.map +1 -1
  575. package/postgres-js/session.d.cts +6 -5
  576. package/postgres-js/session.d.ts +6 -5
  577. package/postgres-js/session.js +27 -16
  578. package/postgres-js/session.js.map +1 -1
  579. package/prisma/mysql/driver.cjs +3 -3
  580. package/prisma/mysql/driver.cjs.map +1 -1
  581. package/prisma/mysql/driver.d.cts +3 -2
  582. package/prisma/mysql/driver.d.ts +3 -2
  583. package/prisma/mysql/driver.js +3 -3
  584. package/prisma/mysql/driver.js.map +1 -1
  585. package/prisma/mysql/session.cjs +10 -11
  586. package/prisma/mysql/session.cjs.map +1 -1
  587. package/prisma/mysql/session.d.cts +10 -5
  588. package/prisma/mysql/session.d.ts +10 -5
  589. package/prisma/mysql/session.js +10 -11
  590. package/prisma/mysql/session.js.map +1 -1
  591. package/prisma/pg/driver.cjs +3 -3
  592. package/prisma/pg/driver.cjs.map +1 -1
  593. package/prisma/pg/driver.d.cts +2 -1
  594. package/prisma/pg/driver.d.ts +2 -1
  595. package/prisma/pg/driver.js +3 -3
  596. package/prisma/pg/driver.js.map +1 -1
  597. package/prisma/pg/session.cjs +7 -7
  598. package/prisma/pg/session.cjs.map +1 -1
  599. package/prisma/pg/session.d.cts +10 -5
  600. package/prisma/pg/session.d.ts +10 -5
  601. package/prisma/pg/session.js +7 -7
  602. package/prisma/pg/session.js.map +1 -1
  603. package/prisma/sqlite/driver.cjs +7 -1
  604. package/prisma/sqlite/driver.cjs.map +1 -1
  605. package/prisma/sqlite/driver.d.cts +2 -1
  606. package/prisma/sqlite/driver.d.ts +2 -1
  607. package/prisma/sqlite/driver.js +7 -1
  608. package/prisma/sqlite/driver.js.map +1 -1
  609. package/prisma/sqlite/session.cjs +10 -10
  610. package/prisma/sqlite/session.cjs.map +1 -1
  611. package/prisma/sqlite/session.d.cts +12 -7
  612. package/prisma/sqlite/session.d.ts +12 -7
  613. package/prisma/sqlite/session.js +10 -10
  614. package/prisma/sqlite/session.js.map +1 -1
  615. package/singlestore/driver.cjs +34 -25
  616. package/singlestore/driver.cjs.map +1 -1
  617. package/singlestore/driver.d.cts +4 -2
  618. package/singlestore/driver.d.ts +4 -2
  619. package/singlestore/driver.js +34 -25
  620. package/singlestore/driver.js.map +1 -1
  621. package/singlestore/session.cjs +14 -10
  622. package/singlestore/session.cjs.map +1 -1
  623. package/singlestore/session.d.cts +5 -5
  624. package/singlestore/session.d.ts +5 -5
  625. package/singlestore/session.js +14 -10
  626. package/singlestore/session.js.map +1 -1
  627. package/singlestore-core/db.cjs +5 -3
  628. package/singlestore-core/db.cjs.map +1 -1
  629. package/singlestore-core/db.d.cts +3 -1
  630. package/singlestore-core/db.d.ts +3 -1
  631. package/singlestore-core/db.js +5 -3
  632. package/singlestore-core/db.js.map +1 -1
  633. package/singlestore-core/dialect.cjs +24 -18
  634. package/singlestore-core/dialect.cjs.map +1 -1
  635. package/singlestore-core/dialect.d.cts +7 -6
  636. package/singlestore-core/dialect.d.ts +7 -6
  637. package/singlestore-core/dialect.js +25 -19
  638. package/singlestore-core/dialect.js.map +1 -1
  639. package/singlestore-core/query-builders/delete.cjs +8 -1
  640. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  641. package/singlestore-core/query-builders/delete.js +8 -1
  642. package/singlestore-core/query-builders/delete.js.map +1 -1
  643. package/singlestore-core/query-builders/insert.cjs +30 -5
  644. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  645. package/singlestore-core/query-builders/insert.js +32 -7
  646. package/singlestore-core/query-builders/insert.js.map +1 -1
  647. package/singlestore-core/query-builders/query.cjs +17 -2
  648. package/singlestore-core/query-builders/query.cjs.map +1 -1
  649. package/singlestore-core/query-builders/query.js +17 -2
  650. package/singlestore-core/query-builders/query.js.map +1 -1
  651. package/singlestore-core/query-builders/select.cjs +24 -7
  652. package/singlestore-core/query-builders/select.cjs.map +1 -1
  653. package/singlestore-core/query-builders/select.d.cts +9 -9
  654. package/singlestore-core/query-builders/select.d.ts +9 -9
  655. package/singlestore-core/query-builders/select.js +24 -7
  656. package/singlestore-core/query-builders/select.js.map +1 -1
  657. package/singlestore-core/query-builders/select.types.cjs.map +1 -1
  658. package/singlestore-core/query-builders/select.types.d.cts +2 -1
  659. package/singlestore-core/query-builders/select.types.d.ts +2 -1
  660. package/singlestore-core/query-builders/update.cjs +9 -2
  661. package/singlestore-core/query-builders/update.cjs.map +1 -1
  662. package/singlestore-core/query-builders/update.js +9 -2
  663. package/singlestore-core/query-builders/update.js.map +1 -1
  664. package/singlestore-core/session.cjs +43 -4
  665. package/singlestore-core/session.cjs.map +1 -1
  666. package/singlestore-core/session.d.cts +14 -6
  667. package/singlestore-core/session.d.ts +14 -6
  668. package/singlestore-core/session.js +43 -4
  669. package/singlestore-core/session.js.map +1 -1
  670. package/singlestore-proxy/driver.cjs +3 -2
  671. package/singlestore-proxy/driver.cjs.map +1 -1
  672. package/singlestore-proxy/driver.d.cts +2 -1
  673. package/singlestore-proxy/driver.d.ts +2 -1
  674. package/singlestore-proxy/driver.js +3 -2
  675. package/singlestore-proxy/driver.js.map +1 -1
  676. package/singlestore-proxy/session.cjs +8 -8
  677. package/singlestore-proxy/session.cjs.map +1 -1
  678. package/singlestore-proxy/session.d.cts +9 -6
  679. package/singlestore-proxy/session.d.ts +9 -6
  680. package/singlestore-proxy/session.js +8 -8
  681. package/singlestore-proxy/session.js.map +1 -1
  682. package/sql/sql.cjs +24 -2
  683. package/sql/sql.cjs.map +1 -1
  684. package/sql/sql.d.cts +12 -0
  685. package/sql/sql.d.ts +12 -0
  686. package/sql/sql.js +23 -2
  687. package/sql/sql.js.map +1 -1
  688. package/sql-js/driver.cjs.map +1 -1
  689. package/sql-js/driver.d.cts +2 -1
  690. package/sql-js/driver.d.ts +2 -1
  691. package/sql-js/driver.js.map +1 -1
  692. package/sql-js/session.cjs +4 -4
  693. package/sql-js/session.cjs.map +1 -1
  694. package/sql-js/session.d.cts +4 -4
  695. package/sql-js/session.d.ts +4 -4
  696. package/sql-js/session.js +4 -4
  697. package/sql-js/session.js.map +1 -1
  698. package/sqlite-core/db.cjs +5 -3
  699. package/sqlite-core/db.cjs.map +1 -1
  700. package/sqlite-core/db.d.cts +3 -1
  701. package/sqlite-core/db.d.ts +3 -1
  702. package/sqlite-core/db.js +5 -3
  703. package/sqlite-core/db.js.map +1 -1
  704. package/sqlite-core/dialect.cjs +29 -19
  705. package/sqlite-core/dialect.cjs.map +1 -1
  706. package/sqlite-core/dialect.d.cts +7 -6
  707. package/sqlite-core/dialect.d.ts +7 -6
  708. package/sqlite-core/dialect.js +30 -20
  709. package/sqlite-core/dialect.js.map +1 -1
  710. package/sqlite-core/query-builders/delete.cjs +8 -1
  711. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  712. package/sqlite-core/query-builders/delete.js +8 -1
  713. package/sqlite-core/query-builders/delete.js.map +1 -1
  714. package/sqlite-core/query-builders/insert.cjs +28 -4
  715. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  716. package/sqlite-core/query-builders/insert.js +35 -6
  717. package/sqlite-core/query-builders/insert.js.map +1 -1
  718. package/sqlite-core/query-builders/query.cjs +15 -2
  719. package/sqlite-core/query-builders/query.cjs.map +1 -1
  720. package/sqlite-core/query-builders/query.js +15 -2
  721. package/sqlite-core/query-builders/query.js.map +1 -1
  722. package/sqlite-core/query-builders/select.cjs +15 -6
  723. package/sqlite-core/query-builders/select.cjs.map +1 -1
  724. package/sqlite-core/query-builders/select.d.cts +6 -6
  725. package/sqlite-core/query-builders/select.d.ts +6 -6
  726. package/sqlite-core/query-builders/select.js +15 -6
  727. package/sqlite-core/query-builders/select.js.map +1 -1
  728. package/sqlite-core/query-builders/select.types.cjs.map +1 -1
  729. package/sqlite-core/query-builders/select.types.d.cts +2 -1
  730. package/sqlite-core/query-builders/select.types.d.ts +2 -1
  731. package/sqlite-core/query-builders/update.cjs +9 -2
  732. package/sqlite-core/query-builders/update.cjs.map +1 -1
  733. package/sqlite-core/query-builders/update.js +9 -2
  734. package/sqlite-core/query-builders/update.js.map +1 -1
  735. package/sqlite-core/session.cjs +81 -6
  736. package/sqlite-core/session.cjs.map +1 -1
  737. package/sqlite-core/session.d.cts +19 -9
  738. package/sqlite-core/session.d.ts +19 -9
  739. package/sqlite-core/session.js +81 -6
  740. package/sqlite-core/session.js.map +1 -1
  741. package/sqlite-proxy/driver.cjs +4 -3
  742. package/sqlite-proxy/driver.cjs.map +1 -1
  743. package/sqlite-proxy/driver.d.cts +3 -2
  744. package/sqlite-proxy/driver.d.ts +3 -2
  745. package/sqlite-proxy/driver.js +4 -3
  746. package/sqlite-proxy/driver.js.map +1 -1
  747. package/sqlite-proxy/session.cjs +20 -11
  748. package/sqlite-proxy/session.cjs.map +1 -1
  749. package/sqlite-proxy/session.d.cts +8 -7
  750. package/sqlite-proxy/session.d.ts +8 -7
  751. package/sqlite-proxy/session.js +20 -11
  752. package/sqlite-proxy/session.js.map +1 -1
  753. package/tidb-serverless/driver.cjs +16 -2
  754. package/tidb-serverless/driver.cjs.map +1 -1
  755. package/tidb-serverless/driver.d.cts +4 -3
  756. package/tidb-serverless/driver.d.ts +4 -3
  757. package/tidb-serverless/driver.js +16 -2
  758. package/tidb-serverless/driver.js.map +1 -1
  759. package/tidb-serverless/session.cjs +23 -13
  760. package/tidb-serverless/session.cjs.map +1 -1
  761. package/tidb-serverless/session.d.cts +6 -7
  762. package/tidb-serverless/session.d.ts +6 -7
  763. package/tidb-serverless/session.js +23 -13
  764. package/tidb-serverless/session.js.map +1 -1
  765. package/tracing.cjs.map +1 -1
  766. package/tracing.js.map +1 -1
  767. package/utils.cjs +38 -2
  768. package/utils.cjs.map +1 -1
  769. package/utils.d.cts +6 -2
  770. package/utils.d.ts +6 -2
  771. package/utils.js +39 -4
  772. package/utils.js.map +1 -1
  773. package/vercel-postgres/driver.cjs +10 -5
  774. package/vercel-postgres/driver.cjs.map +1 -1
  775. package/vercel-postgres/driver.d.cts +6 -4
  776. package/vercel-postgres/driver.d.ts +6 -4
  777. package/vercel-postgres/driver.js +10 -5
  778. package/vercel-postgres/driver.js.map +1 -1
  779. package/vercel-postgres/session.cjs +18 -9
  780. package/vercel-postgres/session.cjs.map +1 -1
  781. package/vercel-postgres/session.d.cts +5 -4
  782. package/vercel-postgres/session.d.ts +5 -4
  783. package/vercel-postgres/session.js +18 -9
  784. package/vercel-postgres/session.js.map +1 -1
  785. package/version.cjs +1 -1
  786. package/version.d.cts +1 -1
  787. package/version.d.ts +1 -1
  788. package/version.js +1 -1
  789. package/xata-http/driver.cjs +7 -4
  790. package/xata-http/driver.cjs.map +1 -1
  791. package/xata-http/driver.d.cts +4 -2
  792. package/xata-http/driver.d.ts +4 -2
  793. package/xata-http/driver.js +7 -4
  794. package/xata-http/driver.js.map +1 -1
  795. package/xata-http/session.cjs +8 -6
  796. package/xata-http/session.cjs.map +1 -1
  797. package/xata-http/session.d.cts +5 -4
  798. package/xata-http/session.d.ts +5 -4
  799. package/xata-http/session.js +8 -6
  800. package/xata-http/session.js.map +1 -1
package/gel/driver.cjs CHANGED
@@ -32,17 +32,18 @@ var import_relations = require("../relations.cjs");
32
32
  var import_utils = require("../utils.cjs");
33
33
  var import_session = require("./session.cjs");
34
34
  class GelDriver {
35
- constructor(client, dialect, options = {}) {
35
+ constructor(client, dialect, options = {}, extensions) {
36
36
  this.client = client;
37
37
  this.dialect = dialect;
38
38
  this.options = options;
39
+ this.extensions = extensions;
39
40
  }
40
41
  static [import_entity.entityKind] = "GelDriver";
41
42
  createSession(schema) {
42
43
  return new import_session.GelDbSession(this.client, this.dialect, schema, {
43
44
  logger: this.options.logger,
44
45
  cache: this.options.cache
45
- });
46
+ }, this.extensions);
46
47
  }
47
48
  }
48
49
  class GelJsDatabase extends import_db.GelDatabase {
@@ -65,9 +66,10 @@ function construct(client, config = {}) {
65
66
  tableNamesMap: tablesConfig.tableNamesMap
66
67
  };
67
68
  }
68
- const driver = new GelDriver(client, dialect, { logger, cache: config.cache });
69
+ const extensions = config.extensions;
70
+ const driver = new GelDriver(client, dialect, { logger, cache: config.cache }, extensions);
69
71
  const session = driver.createSession(schema);
70
- const db = new GelJsDatabase(dialect, session, schema);
72
+ const db = new GelJsDatabase(dialect, session, schema, extensions);
71
73
  db.$client = client;
72
74
  db.$cache = config.cache;
73
75
  if (db.$cache) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new GelDriver(client, dialect, { logger, cache: config.cache });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA+D;AAE/D,oBAA2B;AAC3B,gBAA4B;AAC5B,qBAA2B;AAG3B,oBAA8B;AAC9B,uBAKO;AACP,mBAA6C;AAE7C,qBAA6B;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,wBAAU,IAAY;AAAA,EAQvC,cACC,QACgE;AAChE,WAAO,IAAI,4BAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,CAAC;AAAA,EACF;AACD;AAEO,MAAM,sBACJ,sBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,0BAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe,gDAA8B,OAAO,QAAQ,4CAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AAC7E,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,MAAa;AAC5D,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,yBAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,eAAW,yBAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t\tprivate extensions?: DrizzleGelExtension[],\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t}, this.extensions);\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, DrizzleGelExtension> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst extensions = config.extensions;\n\tconst driver = new GelDriver(client, dialect, { logger, cache: config.cache }, extensions);\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any, extensions) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, DrizzleGelExtension> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, DrizzleGelExtension> | 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, DrizzleGelExtension>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA+D;AAE/D,oBAA2B;AAE3B,gBAA4B;AAC5B,qBAA2B;AAG3B,oBAA8B;AAC9B,uBAKO;AACP,mBAA6C;AAE7C,qBAA6B;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GAC7B,YACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAPH,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACgE;AAChE,WAAO,IAAI,4BAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,GAAG,KAAK,UAAU;AAAA,EACnB;AACD;AAEO,MAAM,sBACJ,sBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAsD,CAAC,GAGtD;AACD,QAAM,UAAU,IAAI,0BAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe,gDAA8B,OAAO,QAAQ,4CAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,aAAa,OAAO;AAC1B,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,GAAG,UAAU;AACzF,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,QAAe,UAAU;AACxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,yBAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAA4D;AAAA,EAChG;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,eAAW,yBAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA4D;AAC5G;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
package/gel/driver.d.cts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type Client, type ConnectOptions } from 'gel';
2
2
  import type { Cache } from "../cache/core/index.cjs";
3
3
  import { entityKind } from "../entity.cjs";
4
+ import type { DrizzleGelExtension } from "../extension-core/gel/index.cjs";
4
5
  import { GelDatabase } from "../gel-core/db.cjs";
5
6
  import { GelDialect } from "../gel-core/dialect.cjs";
6
7
  import type { GelQueryResultHKT } from "../gel-core/session.cjs";
@@ -17,15 +18,16 @@ export declare class GelDriver {
17
18
  private client;
18
19
  private dialect;
19
20
  private options;
21
+ private extensions?;
20
22
  static readonly [entityKind]: string;
21
- constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions);
23
+ constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions, extensions?: DrizzleGelExtension[] | undefined);
22
24
  createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): GelDbSession<Record<string, unknown>, TablesRelationalConfig>;
23
25
  }
24
26
  export declare class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends GelDatabase<GelQueryResultHKT, TSchema> {
25
27
  static readonly [entityKind]: string;
26
28
  }
27
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema>] | [
28
- DrizzleConfig<TSchema> & ({
29
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>] | [
30
+ DrizzleConfig<TSchema, DrizzleGelExtension> & ({
29
31
  connection: string | ConnectOptions;
30
32
  } | {
31
33
  client: TClient;
@@ -34,7 +36,7 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
34
36
  $client: TClient;
35
37
  };
36
38
  export declare namespace drizzle {
37
- function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): GelJsDatabase<TSchema> & {
39
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema, DrizzleGelExtension>): GelJsDatabase<TSchema> & {
38
40
  $client: '$client is not available on drizzle.mock()';
39
41
  };
40
42
  }
package/gel/driver.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type Client, type ConnectOptions } from 'gel';
2
2
  import type { Cache } from "../cache/core/index.js";
3
3
  import { entityKind } from "../entity.js";
4
+ import type { DrizzleGelExtension } from "../extension-core/gel/index.js";
4
5
  import { GelDatabase } from "../gel-core/db.js";
5
6
  import { GelDialect } from "../gel-core/dialect.js";
6
7
  import type { GelQueryResultHKT } from "../gel-core/session.js";
@@ -17,15 +18,16 @@ export declare class GelDriver {
17
18
  private client;
18
19
  private dialect;
19
20
  private options;
21
+ private extensions?;
20
22
  static readonly [entityKind]: string;
21
- constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions);
23
+ constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions, extensions?: DrizzleGelExtension[] | undefined);
22
24
  createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): GelDbSession<Record<string, unknown>, TablesRelationalConfig>;
23
25
  }
24
26
  export declare class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends GelDatabase<GelQueryResultHKT, TSchema> {
25
27
  static readonly [entityKind]: string;
26
28
  }
27
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema>] | [
28
- DrizzleConfig<TSchema> & ({
29
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>] | [
30
+ DrizzleConfig<TSchema, DrizzleGelExtension> & ({
29
31
  connection: string | ConnectOptions;
30
32
  } | {
31
33
  client: TClient;
@@ -34,7 +36,7 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
34
36
  $client: TClient;
35
37
  };
36
38
  export declare namespace drizzle {
37
- function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): GelJsDatabase<TSchema> & {
39
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema, DrizzleGelExtension>): GelJsDatabase<TSchema> & {
38
40
  $client: '$client is not available on drizzle.mock()';
39
41
  };
40
42
  }
package/gel/driver.js CHANGED
@@ -10,17 +10,18 @@ import {
10
10
  import { isConfig } from "../utils.js";
11
11
  import { GelDbSession } from "./session.js";
12
12
  class GelDriver {
13
- constructor(client, dialect, options = {}) {
13
+ constructor(client, dialect, options = {}, extensions) {
14
14
  this.client = client;
15
15
  this.dialect = dialect;
16
16
  this.options = options;
17
+ this.extensions = extensions;
17
18
  }
18
19
  static [entityKind] = "GelDriver";
19
20
  createSession(schema) {
20
21
  return new GelDbSession(this.client, this.dialect, schema, {
21
22
  logger: this.options.logger,
22
23
  cache: this.options.cache
23
- });
24
+ }, this.extensions);
24
25
  }
25
26
  }
26
27
  class GelJsDatabase extends GelDatabase {
@@ -43,9 +44,10 @@ function construct(client, config = {}) {
43
44
  tableNamesMap: tablesConfig.tableNamesMap
44
45
  };
45
46
  }
46
- const driver = new GelDriver(client, dialect, { logger, cache: config.cache });
47
+ const extensions = config.extensions;
48
+ const driver = new GelDriver(client, dialect, { logger, cache: config.cache }, extensions);
47
49
  const session = driver.createSession(schema);
48
- const db = new GelJsDatabase(dialect, session, schema);
50
+ const db = new GelJsDatabase(dialect, session, schema, extensions);
49
51
  db.$client = client;
50
52
  db.$cache = config.cache;
51
53
  if (db.$cache) {
package/gel/driver.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new GelDriver(client, dialect, { logger, cache: config.cache });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAA2C,oBAAoB;AAE/D,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,oBAAoB;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,UAAU,IAAY;AAAA,EAQvC,cACC,QACgE;AAChE,WAAO,IAAI,aAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,CAAC;AAAA,EACF;AACD;AAEO,MAAM,sBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,WAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,8BAA8B,OAAO,QAAQ,2BAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AAC7E,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,MAAa;AAC5D,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAuC;AAAA,EAC3E;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,aAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
1
+ {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t\tprivate extensions?: DrizzleGelExtension[],\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t}, this.extensions);\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, DrizzleGelExtension> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst extensions = config.extensions;\n\tconst driver = new GelDriver(client, dialect, { logger, cache: config.cache }, extensions);\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any, extensions) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, DrizzleGelExtension> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, DrizzleGelExtension> | 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, DrizzleGelExtension>,\n\t): GelJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAA2C,oBAAoB;AAE/D,SAAS,kBAAkB;AAE3B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,oBAAoB;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GAC7B,YACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAPH,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACgE;AAChE,WAAO,IAAI,aAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,GAAG,KAAK,UAAU;AAAA,EACnB;AACD;AAEO,MAAM,sBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAsD,CAAC,GAGtD;AACD,QAAM,UAAU,IAAI,WAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,8BAA8B,OAAO,QAAQ,2BAA2B;AAC7F,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,aAAa,OAAO;AAC1B,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,GAAG,UAAU;AACzF,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,QAAe,UAAU;AACxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAA4D;AAAA,EAChG;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,aAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA4D;AAC5G;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
package/gel/session.cjs CHANGED
@@ -31,8 +31,8 @@ var import_sql = require("../sql/sql.cjs");
31
31
  var import_tracing = require("../tracing.cjs");
32
32
  var import_utils = require("../utils.cjs");
33
33
  class GelDbPreparedQuery extends import_session.GelPreparedQuery {
34
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, transaction = false) {
35
- super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
34
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, extensions, hookContext, customResultMapper, transaction = false) {
35
+ super({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);
36
36
  this.client = client;
37
37
  this.queryString = queryString;
38
38
  this.params = params;
@@ -43,7 +43,7 @@ class GelDbPreparedQuery extends import_session.GelPreparedQuery {
43
43
  this.transaction = transaction;
44
44
  }
45
45
  static [import_entity.entityKind] = "GelPreparedQuery";
46
- async execute(placeholderValues = {}) {
46
+ async _execute(placeholderValues = {}) {
47
47
  return import_tracing.tracer.startActiveSpan("drizzle.execute", async () => {
48
48
  const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
49
49
  this.logger.logQuery(this.queryString, params);
@@ -97,8 +97,8 @@ class GelDbPreparedQuery extends import_session.GelPreparedQuery {
97
97
  }
98
98
  }
99
99
  class GelDbSession extends import_session.GelSession {
100
- constructor(client, dialect, schema, options = {}) {
101
- super(dialect);
100
+ constructor(client, dialect, schema, options = {}, extensions) {
101
+ super(dialect, extensions);
102
102
  this.client = client;
103
103
  this.schema = schema;
104
104
  this.options = options;
@@ -108,7 +108,7 @@ class GelDbSession extends import_session.GelSession {
108
108
  static [import_entity.entityKind] = "GelDbSession";
109
109
  logger;
110
110
  cache;
111
- prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
111
+ prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig, hookContext) {
112
112
  return new GelDbPreparedQuery(
113
113
  this.client,
114
114
  query.sql,
@@ -119,13 +119,15 @@ class GelDbSession extends import_session.GelSession {
119
119
  cacheConfig,
120
120
  fields,
121
121
  isResponseInArrayMode,
122
+ this.extensions,
123
+ hookContext,
122
124
  customResultMapper
123
125
  );
124
126
  }
125
127
  async transaction(transaction) {
126
128
  return await this.client.transaction(async (clientTx) => {
127
- const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);
128
- const tx = new GelDbTransaction(this.dialect, session, this.schema);
129
+ const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);
130
+ const tx = new GelDbTransaction(this.dialect, session, this.schema, this.extensions);
129
131
  return await transaction(tx);
130
132
  });
131
133
  }
@@ -140,7 +142,8 @@ class GelDbTransaction extends import_session.GelTransaction {
140
142
  const tx = new GelDbTransaction(
141
143
  this.dialect,
142
144
  this.session,
143
- this.schema
145
+ this.schema,
146
+ this._.extensions
144
147
  );
145
148
  return await transaction(tx);
146
149
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { BlankGelHookContext, DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzleGelExtension[],\n\t\thookContext?: BlankGelHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t\textensions?: DrizzleGelExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t\thookContext?: BlankGelHookContext,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tthis.extensions,\n\t\t\thookContext,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema, this.extensions);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis._.extensions,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
package/gel/session.d.cts CHANGED
@@ -3,6 +3,7 @@ import type { Transaction } from 'gel/dist/transaction';
3
3
  import { type Cache } from "../cache/core/index.cjs";
4
4
  import type { WithCacheConfig } from "../cache/core/types.cjs";
5
5
  import { entityKind } from "../entity.cjs";
6
+ import type { BlankGelHookContext, DrizzleGelExtension } from "../extension-core/gel/index.cjs";
6
7
  import type { GelDialect } from "../gel-core/dialect.cjs";
7
8
  import type { SelectedFieldsOrdered } from "../gel-core/query-builders/select.types.cjs";
8
9
  import { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from "../gel-core/session.cjs";
@@ -23,8 +24,8 @@ export declare class GelDbPreparedQuery<T extends PreparedQueryConfig> extends G
23
24
  constructor(client: GelClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
24
25
  type: 'select' | 'update' | 'delete' | 'insert';
25
26
  tables: string[];
26
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
27
- execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
27
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzleGelExtension[], hookContext?: BlankGelHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
28
+ _execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
28
29
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
29
30
  }
30
31
  export interface GelSessionOptions {
@@ -38,11 +39,11 @@ export declare class GelDbSession<TFullSchema extends Record<string, unknown>, T
38
39
  static readonly [entityKind]: string;
39
40
  private logger;
40
41
  private cache;
41
- constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions);
42
+ constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions, extensions?: DrizzleGelExtension[]);
42
43
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
43
44
  type: 'select' | 'update' | 'delete' | 'insert';
44
45
  tables: string[];
45
- }, cacheConfig?: WithCacheConfig): GelDbPreparedQuery<T>;
46
+ }, cacheConfig?: WithCacheConfig, hookContext?: BlankGelHookContext): GelDbPreparedQuery<T>;
46
47
  transaction<T>(transaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
47
48
  count(sql: SQL): Promise<number>;
48
49
  }
package/gel/session.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { Transaction } from 'gel/dist/transaction';
3
3
  import { type Cache } from "../cache/core/index.js";
4
4
  import type { WithCacheConfig } from "../cache/core/types.js";
5
5
  import { entityKind } from "../entity.js";
6
+ import type { BlankGelHookContext, DrizzleGelExtension } from "../extension-core/gel/index.js";
6
7
  import type { GelDialect } from "../gel-core/dialect.js";
7
8
  import type { SelectedFieldsOrdered } from "../gel-core/query-builders/select.types.js";
8
9
  import { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from "../gel-core/session.js";
@@ -23,8 +24,8 @@ export declare class GelDbPreparedQuery<T extends PreparedQueryConfig> extends G
23
24
  constructor(client: GelClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
24
25
  type: 'select' | 'update' | 'delete' | 'insert';
25
26
  tables: string[];
26
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
27
- execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
27
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzleGelExtension[], hookContext?: BlankGelHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
28
+ _execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
28
29
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
29
30
  }
30
31
  export interface GelSessionOptions {
@@ -38,11 +39,11 @@ export declare class GelDbSession<TFullSchema extends Record<string, unknown>, T
38
39
  static readonly [entityKind]: string;
39
40
  private logger;
40
41
  private cache;
41
- constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions);
42
+ constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions, extensions?: DrizzleGelExtension[]);
42
43
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
43
44
  type: 'select' | 'update' | 'delete' | 'insert';
44
45
  tables: string[];
45
- }, cacheConfig?: WithCacheConfig): GelDbPreparedQuery<T>;
46
+ }, cacheConfig?: WithCacheConfig, hookContext?: BlankGelHookContext): GelDbPreparedQuery<T>;
46
47
  transaction<T>(transaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
47
48
  count(sql: SQL): Promise<number>;
48
49
  }
package/gel/session.js CHANGED
@@ -6,8 +6,8 @@ import { fillPlaceholders } from "../sql/sql.js";
6
6
  import { tracer } from "../tracing.js";
7
7
  import { mapResultRow } from "../utils.js";
8
8
  class GelDbPreparedQuery extends GelPreparedQuery {
9
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, transaction = false) {
10
- super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
9
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, extensions, hookContext, customResultMapper, transaction = false) {
10
+ super({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);
11
11
  this.client = client;
12
12
  this.queryString = queryString;
13
13
  this.params = params;
@@ -18,7 +18,7 @@ class GelDbPreparedQuery extends GelPreparedQuery {
18
18
  this.transaction = transaction;
19
19
  }
20
20
  static [entityKind] = "GelPreparedQuery";
21
- async execute(placeholderValues = {}) {
21
+ async _execute(placeholderValues = {}) {
22
22
  return tracer.startActiveSpan("drizzle.execute", async () => {
23
23
  const params = fillPlaceholders(this.params, placeholderValues);
24
24
  this.logger.logQuery(this.queryString, params);
@@ -72,8 +72,8 @@ class GelDbPreparedQuery extends GelPreparedQuery {
72
72
  }
73
73
  }
74
74
  class GelDbSession extends GelSession {
75
- constructor(client, dialect, schema, options = {}) {
76
- super(dialect);
75
+ constructor(client, dialect, schema, options = {}, extensions) {
76
+ super(dialect, extensions);
77
77
  this.client = client;
78
78
  this.schema = schema;
79
79
  this.options = options;
@@ -83,7 +83,7 @@ class GelDbSession extends GelSession {
83
83
  static [entityKind] = "GelDbSession";
84
84
  logger;
85
85
  cache;
86
- prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
86
+ prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig, hookContext) {
87
87
  return new GelDbPreparedQuery(
88
88
  this.client,
89
89
  query.sql,
@@ -94,13 +94,15 @@ class GelDbSession extends GelSession {
94
94
  cacheConfig,
95
95
  fields,
96
96
  isResponseInArrayMode,
97
+ this.extensions,
98
+ hookContext,
97
99
  customResultMapper
98
100
  );
99
101
  }
100
102
  async transaction(transaction) {
101
103
  return await this.client.transaction(async (clientTx) => {
102
- const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);
103
- const tx = new GelDbTransaction(this.dialect, session, this.schema);
104
+ const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);
105
+ const tx = new GelDbTransaction(this.dialect, session, this.schema, this.extensions);
104
106
  return await transaction(tx);
105
107
  });
106
108
  }
@@ -115,7 +117,8 @@ class GelDbTransaction extends GelTransaction {
115
117
  const tx = new GelDbTransaction(
116
118
  this.dialect,
117
119
  this.session,
118
- this.schema
120
+ this.schema,
121
+ this._.extensions
119
122
  );
120
123
  return await transaction(tx);
121
124
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { BlankGelHookContext, DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzleGelExtension[],\n\t\thookContext?: BlankGelHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t\textensions?: DrizzleGelExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t\thookContext?: BlankGelHookContext,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tthis.extensions,\n\t\t\thookContext,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema, this.extensions);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis._.extensions,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
@@ -29,6 +29,7 @@ module.exports = __toCommonJS(common_exports);
29
29
  var import_column_builder = require("../../column-builder.cjs");
30
30
  var import_column = require("../../column.cjs");
31
31
  var import_entity = require("../../entity.cjs");
32
+ var import_extension_core = require("../../extension-core/index.cjs");
32
33
  var import_foreign_keys = require("../foreign-keys.cjs");
33
34
  var import_tracing_utils = require("../../tracing-utils.cjs");
34
35
  var import_unique_constraint = require("../unique-constraint.cjs");
@@ -194,9 +195,16 @@ class GelArray extends GelColumn {
194
195
  this.baseColumn = baseColumn;
195
196
  this.range = range;
196
197
  this.size = config.size;
198
+ this[import_extension_core.requiredExtension] = baseColumn[import_extension_core.requiredExtension];
197
199
  }
198
200
  size;
199
201
  static [import_entity.entityKind] = "GelArray";
202
+ mapToDriverValue(value) {
203
+ return value.map((v) => this.baseColumn.mapToDriverValue(v));
204
+ }
205
+ mapFromDriverValue(value) {
206
+ return value.map((v) => this.baseColumn.mapFromDriverValue(v));
207
+ }
200
208
  getSQLType() {
201
209
  return `${this.baseColumn.getSQLType()}[${typeof this.size === "number" ? this.size : ""}]`;
202
210
  }