drizzle-orm 0.43.1-26a0497 → 0.43.1

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 (485) hide show
  1. package/aws-data-api/pg/driver.cjs +1 -5
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +0 -1
  4. package/aws-data-api/pg/driver.d.ts +0 -1
  5. package/aws-data-api/pg/driver.js +1 -5
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +4 -15
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +2 -13
  10. package/aws-data-api/pg/session.d.ts +2 -13
  11. package/aws-data-api/pg/session.js +4 -15
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.js.map +1 -1
  15. package/better-sqlite3/session.cjs +3 -9
  16. package/better-sqlite3/session.cjs.map +1 -1
  17. package/better-sqlite3/session.d.cts +2 -12
  18. package/better-sqlite3/session.d.ts +2 -12
  19. package/better-sqlite3/session.js +3 -9
  20. package/better-sqlite3/session.js.map +1 -1
  21. package/bun-sql/driver.cjs +1 -5
  22. package/bun-sql/driver.cjs.map +1 -1
  23. package/bun-sql/driver.js +1 -5
  24. package/bun-sql/driver.js.map +1 -1
  25. package/bun-sql/session.cjs +9 -21
  26. package/bun-sql/session.cjs.map +1 -1
  27. package/bun-sql/session.d.cts +2 -12
  28. package/bun-sql/session.d.ts +2 -12
  29. package/bun-sql/session.js +9 -21
  30. package/bun-sql/session.js.map +1 -1
  31. package/d1/driver.cjs +1 -5
  32. package/d1/driver.cjs.map +1 -1
  33. package/d1/driver.js +1 -5
  34. package/d1/driver.js.map +1 -1
  35. package/d1/session.cjs +9 -23
  36. package/d1/session.cjs.map +1 -1
  37. package/d1/session.d.cts +2 -12
  38. package/d1/session.d.ts +2 -12
  39. package/d1/session.js +9 -23
  40. package/d1/session.js.map +1 -1
  41. package/durable-sqlite/session.cjs +1 -1
  42. package/durable-sqlite/session.cjs.map +1 -1
  43. package/durable-sqlite/session.js +1 -1
  44. package/durable-sqlite/session.js.map +1 -1
  45. package/gel/driver.cjs +2 -9
  46. package/gel/driver.cjs.map +1 -1
  47. package/gel/driver.d.cts +0 -2
  48. package/gel/driver.d.ts +0 -2
  49. package/gel/driver.js +2 -9
  50. package/gel/driver.js.map +1 -1
  51. package/gel/session.cjs +10 -25
  52. package/gel/session.cjs.map +1 -1
  53. package/gel/session.d.cts +2 -12
  54. package/gel/session.d.ts +2 -12
  55. package/gel/session.js +10 -25
  56. package/gel/session.js.map +1 -1
  57. package/gel-core/db.cjs +0 -1
  58. package/gel-core/db.cjs.map +1 -1
  59. package/gel-core/db.d.cts +0 -4
  60. package/gel-core/db.d.ts +0 -4
  61. package/gel-core/db.js +0 -1
  62. package/gel-core/db.js.map +1 -1
  63. package/gel-core/query-builders/delete.cjs +1 -5
  64. package/gel-core/query-builders/delete.cjs.map +1 -1
  65. package/gel-core/query-builders/delete.js +1 -5
  66. package/gel-core/query-builders/delete.js.map +1 -1
  67. package/gel-core/query-builders/insert.cjs +1 -5
  68. package/gel-core/query-builders/insert.cjs.map +1 -1
  69. package/gel-core/query-builders/insert.js +1 -5
  70. package/gel-core/query-builders/insert.js.map +1 -1
  71. package/gel-core/query-builders/select.cjs +4 -29
  72. package/gel-core/query-builders/select.cjs.map +1 -1
  73. package/gel-core/query-builders/select.d.cts +0 -9
  74. package/gel-core/query-builders/select.d.ts +0 -9
  75. package/gel-core/query-builders/select.js +4 -29
  76. package/gel-core/query-builders/select.js.map +1 -1
  77. package/gel-core/query-builders/update.cjs +1 -5
  78. package/gel-core/query-builders/update.cjs.map +1 -1
  79. package/gel-core/query-builders/update.js +1 -5
  80. package/gel-core/query-builders/update.js.map +1 -1
  81. package/gel-core/session.cjs +1 -52
  82. package/gel-core/session.cjs.map +1 -1
  83. package/gel-core/session.d.cts +3 -14
  84. package/gel-core/session.d.ts +3 -14
  85. package/gel-core/session.js +2 -53
  86. package/gel-core/session.js.map +1 -1
  87. package/gel-core/utils.cjs +0 -16
  88. package/gel-core/utils.cjs.map +1 -1
  89. package/gel-core/utils.d.cts +4 -8
  90. package/gel-core/utils.d.ts +4 -8
  91. package/gel-core/utils.js +0 -15
  92. package/gel-core/utils.js.map +1 -1
  93. package/libsql/driver-core.cjs +1 -5
  94. package/libsql/driver-core.cjs.map +1 -1
  95. package/libsql/driver-core.js +1 -5
  96. package/libsql/driver-core.js.map +1 -1
  97. package/libsql/session.cjs +13 -27
  98. package/libsql/session.cjs.map +1 -1
  99. package/libsql/session.d.cts +2 -12
  100. package/libsql/session.d.ts +2 -12
  101. package/libsql/session.js +13 -27
  102. package/libsql/session.js.map +1 -1
  103. package/mysql-core/db.cjs +0 -1
  104. package/mysql-core/db.cjs.map +1 -1
  105. package/mysql-core/db.d.cts +0 -4
  106. package/mysql-core/db.d.ts +0 -4
  107. package/mysql-core/db.js +0 -1
  108. package/mysql-core/db.js.map +1 -1
  109. package/mysql-core/query-builders/delete.cjs +1 -9
  110. package/mysql-core/query-builders/delete.cjs.map +1 -1
  111. package/mysql-core/query-builders/delete.js +1 -9
  112. package/mysql-core/query-builders/delete.js.map +1 -1
  113. package/mysql-core/query-builders/insert.cjs +1 -8
  114. package/mysql-core/query-builders/insert.cjs.map +1 -1
  115. package/mysql-core/query-builders/insert.d.cts +0 -2
  116. package/mysql-core/query-builders/insert.d.ts +0 -2
  117. package/mysql-core/query-builders/insert.js +1 -8
  118. package/mysql-core/query-builders/insert.js.map +1 -1
  119. package/mysql-core/query-builders/select.cjs +3 -27
  120. package/mysql-core/query-builders/select.cjs.map +1 -1
  121. package/mysql-core/query-builders/select.d.cts +0 -9
  122. package/mysql-core/query-builders/select.d.ts +0 -9
  123. package/mysql-core/query-builders/select.js +4 -28
  124. package/mysql-core/query-builders/select.js.map +1 -1
  125. package/mysql-core/query-builders/update.cjs +1 -11
  126. package/mysql-core/query-builders/update.cjs.map +1 -1
  127. package/mysql-core/query-builders/update.d.cts +0 -2
  128. package/mysql-core/query-builders/update.d.ts +0 -2
  129. package/mysql-core/query-builders/update.js +1 -11
  130. package/mysql-core/query-builders/update.js.map +1 -1
  131. package/mysql-core/session.cjs +0 -53
  132. package/mysql-core/session.cjs.map +1 -1
  133. package/mysql-core/session.d.cts +2 -15
  134. package/mysql-core/session.d.ts +2 -15
  135. package/mysql-core/session.js +1 -54
  136. package/mysql-core/session.js.map +1 -1
  137. package/mysql-core/utils.cjs +0 -16
  138. package/mysql-core/utils.cjs.map +1 -1
  139. package/mysql-core/utils.d.cts +2 -6
  140. package/mysql-core/utils.d.ts +2 -6
  141. package/mysql-core/utils.js +0 -15
  142. package/mysql-core/utils.js.map +1 -1
  143. package/mysql-proxy/session.cjs +5 -15
  144. package/mysql-proxy/session.cjs.map +1 -1
  145. package/mysql-proxy/session.d.cts +2 -12
  146. package/mysql-proxy/session.d.ts +2 -12
  147. package/mysql-proxy/session.js +5 -15
  148. package/mysql-proxy/session.js.map +1 -1
  149. package/mysql2/driver.cjs +2 -10
  150. package/mysql2/driver.cjs.map +1 -1
  151. package/mysql2/driver.d.cts +0 -2
  152. package/mysql2/driver.d.ts +0 -2
  153. package/mysql2/driver.js +2 -10
  154. package/mysql2/driver.js.map +1 -1
  155. package/mysql2/session.cjs +5 -15
  156. package/mysql2/session.cjs.map +1 -1
  157. package/mysql2/session.d.cts +2 -12
  158. package/mysql2/session.d.ts +2 -12
  159. package/mysql2/session.js +5 -15
  160. package/mysql2/session.js.map +1 -1
  161. package/neon-http/driver.cjs +2 -9
  162. package/neon-http/driver.cjs.map +1 -1
  163. package/neon-http/driver.d.cts +0 -2
  164. package/neon-http/driver.d.ts +0 -2
  165. package/neon-http/driver.js +2 -9
  166. package/neon-http/driver.js.map +1 -1
  167. package/neon-http/session.cjs +15 -25
  168. package/neon-http/session.cjs.map +1 -1
  169. package/neon-http/session.d.cts +2 -12
  170. package/neon-http/session.d.ts +2 -12
  171. package/neon-http/session.js +15 -25
  172. package/neon-http/session.js.map +1 -1
  173. package/neon-serverless/driver.cjs +2 -9
  174. package/neon-serverless/driver.cjs.map +1 -1
  175. package/neon-serverless/driver.d.cts +0 -2
  176. package/neon-serverless/driver.d.ts +0 -2
  177. package/neon-serverless/driver.js +2 -9
  178. package/neon-serverless/driver.js.map +1 -1
  179. package/neon-serverless/session.cjs +7 -21
  180. package/neon-serverless/session.cjs.map +1 -1
  181. package/neon-serverless/session.d.cts +2 -12
  182. package/neon-serverless/session.d.ts +2 -12
  183. package/neon-serverless/session.js +7 -21
  184. package/neon-serverless/session.js.map +1 -1
  185. package/node-postgres/driver.cjs +2 -9
  186. package/node-postgres/driver.cjs.map +1 -1
  187. package/node-postgres/driver.d.cts +0 -2
  188. package/node-postgres/driver.d.ts +0 -2
  189. package/node-postgres/driver.js +2 -9
  190. package/node-postgres/driver.js.map +1 -1
  191. package/node-postgres/session.cjs +6 -19
  192. package/node-postgres/session.cjs.map +1 -1
  193. package/node-postgres/session.d.cts +2 -13
  194. package/node-postgres/session.d.ts +2 -13
  195. package/node-postgres/session.js +6 -19
  196. package/node-postgres/session.js.map +1 -1
  197. package/op-sqlite/driver.cjs +1 -5
  198. package/op-sqlite/driver.cjs.map +1 -1
  199. package/op-sqlite/driver.js +1 -5
  200. package/op-sqlite/driver.js.map +1 -1
  201. package/op-sqlite/session.cjs +9 -23
  202. package/op-sqlite/session.cjs.map +1 -1
  203. package/op-sqlite/session.d.cts +2 -12
  204. package/op-sqlite/session.d.ts +2 -12
  205. package/op-sqlite/session.js +9 -23
  206. package/op-sqlite/session.js.map +1 -1
  207. package/package.json +4 -69
  208. package/pg-core/db.cjs +0 -1
  209. package/pg-core/db.cjs.map +1 -1
  210. package/pg-core/db.d.cts +0 -4
  211. package/pg-core/db.d.ts +0 -4
  212. package/pg-core/db.js +0 -1
  213. package/pg-core/db.js.map +1 -1
  214. package/pg-core/query-builders/delete.cjs +1 -6
  215. package/pg-core/query-builders/delete.cjs.map +1 -1
  216. package/pg-core/query-builders/delete.d.cts +1 -3
  217. package/pg-core/query-builders/delete.d.ts +1 -3
  218. package/pg-core/query-builders/delete.js +1 -6
  219. package/pg-core/query-builders/delete.js.map +1 -1
  220. package/pg-core/query-builders/insert.cjs +1 -6
  221. package/pg-core/query-builders/insert.cjs.map +1 -1
  222. package/pg-core/query-builders/insert.d.cts +0 -2
  223. package/pg-core/query-builders/insert.d.ts +0 -2
  224. package/pg-core/query-builders/insert.js +1 -6
  225. package/pg-core/query-builders/insert.js.map +1 -1
  226. package/pg-core/query-builders/select.cjs +5 -31
  227. package/pg-core/query-builders/select.cjs.map +1 -1
  228. package/pg-core/query-builders/select.d.cts +6 -15
  229. package/pg-core/query-builders/select.d.ts +6 -15
  230. package/pg-core/query-builders/select.js +5 -31
  231. package/pg-core/query-builders/select.js.map +1 -1
  232. package/pg-core/query-builders/update.cjs +1 -6
  233. package/pg-core/query-builders/update.cjs.map +1 -1
  234. package/pg-core/query-builders/update.d.cts +2 -4
  235. package/pg-core/query-builders/update.d.ts +2 -4
  236. package/pg-core/query-builders/update.js +1 -6
  237. package/pg-core/query-builders/update.js.map +1 -1
  238. package/pg-core/session.cjs +1 -52
  239. package/pg-core/session.cjs.map +1 -1
  240. package/pg-core/session.d.cts +3 -14
  241. package/pg-core/session.d.ts +3 -14
  242. package/pg-core/session.js +2 -53
  243. package/pg-core/session.js.map +1 -1
  244. package/pg-core/utils.cjs +0 -16
  245. package/pg-core/utils.cjs.map +1 -1
  246. package/pg-core/utils.d.cts +4 -8
  247. package/pg-core/utils.d.ts +4 -8
  248. package/pg-core/utils.js +1 -16
  249. package/pg-core/utils.js.map +1 -1
  250. package/pg-proxy/driver.cjs +2 -7
  251. package/pg-proxy/driver.cjs.map +1 -1
  252. package/pg-proxy/driver.js +2 -7
  253. package/pg-proxy/driver.js.map +1 -1
  254. package/pg-proxy/session.cjs +5 -15
  255. package/pg-proxy/session.cjs.map +1 -1
  256. package/pg-proxy/session.d.cts +2 -12
  257. package/pg-proxy/session.d.ts +2 -12
  258. package/pg-proxy/session.js +5 -15
  259. package/pg-proxy/session.js.map +1 -1
  260. package/pglite/driver.cjs +2 -9
  261. package/pglite/driver.cjs.map +1 -1
  262. package/pglite/driver.d.cts +0 -2
  263. package/pglite/driver.d.ts +0 -2
  264. package/pglite/driver.js +2 -9
  265. package/pglite/driver.js.map +1 -1
  266. package/pglite/session.cjs +7 -19
  267. package/pglite/session.cjs.map +1 -1
  268. package/pglite/session.d.cts +2 -12
  269. package/pglite/session.d.ts +2 -12
  270. package/pglite/session.js +7 -19
  271. package/pglite/session.js.map +1 -1
  272. package/planetscale-serverless/driver.cjs +1 -5
  273. package/planetscale-serverless/driver.cjs.map +1 -1
  274. package/planetscale-serverless/driver.d.cts +0 -1
  275. package/planetscale-serverless/driver.d.ts +0 -1
  276. package/planetscale-serverless/driver.js +1 -5
  277. package/planetscale-serverless/driver.js.map +1 -1
  278. package/planetscale-serverless/session.cjs +5 -15
  279. package/planetscale-serverless/session.cjs.map +1 -1
  280. package/planetscale-serverless/session.d.cts +2 -12
  281. package/planetscale-serverless/session.d.ts +2 -12
  282. package/planetscale-serverless/session.js +5 -15
  283. package/planetscale-serverless/session.js.map +1 -1
  284. package/postgres-js/driver.cjs +1 -5
  285. package/postgres-js/driver.cjs.map +1 -1
  286. package/postgres-js/driver.js +1 -5
  287. package/postgres-js/driver.js.map +1 -1
  288. package/postgres-js/session.cjs +6 -18
  289. package/postgres-js/session.cjs.map +1 -1
  290. package/postgres-js/session.d.cts +2 -12
  291. package/postgres-js/session.d.ts +2 -12
  292. package/postgres-js/session.js +6 -18
  293. package/postgres-js/session.js.map +1 -1
  294. package/prisma/mysql/session.cjs +1 -1
  295. package/prisma/mysql/session.cjs.map +1 -1
  296. package/prisma/mysql/session.js +1 -1
  297. package/prisma/mysql/session.js.map +1 -1
  298. package/prisma/pg/session.cjs +1 -1
  299. package/prisma/pg/session.cjs.map +1 -1
  300. package/prisma/pg/session.js +1 -1
  301. package/prisma/pg/session.js.map +1 -1
  302. package/query-builders/query-builder.cjs.map +1 -1
  303. package/query-builders/query-builder.d.cts +1 -2
  304. package/query-builders/query-builder.d.ts +1 -2
  305. package/query-builders/query-builder.js.map +1 -1
  306. package/singlestore/driver.cjs +2 -12
  307. package/singlestore/driver.cjs.map +1 -1
  308. package/singlestore/driver.d.cts +0 -2
  309. package/singlestore/driver.d.ts +0 -2
  310. package/singlestore/driver.js +2 -12
  311. package/singlestore/driver.js.map +1 -1
  312. package/singlestore/session.cjs +5 -15
  313. package/singlestore/session.cjs.map +1 -1
  314. package/singlestore/session.d.cts +2 -12
  315. package/singlestore/session.d.ts +2 -12
  316. package/singlestore/session.js +5 -15
  317. package/singlestore/session.js.map +1 -1
  318. package/singlestore-core/db.cjs +0 -1
  319. package/singlestore-core/db.cjs.map +1 -1
  320. package/singlestore-core/db.d.cts +0 -4
  321. package/singlestore-core/db.d.ts +0 -4
  322. package/singlestore-core/db.js +0 -1
  323. package/singlestore-core/db.js.map +1 -1
  324. package/singlestore-core/query-builders/delete.cjs +1 -9
  325. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  326. package/singlestore-core/query-builders/delete.js +1 -9
  327. package/singlestore-core/query-builders/delete.js.map +1 -1
  328. package/singlestore-core/query-builders/insert.cjs +1 -6
  329. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  330. package/singlestore-core/query-builders/insert.js +1 -6
  331. package/singlestore-core/query-builders/insert.js.map +1 -1
  332. package/singlestore-core/query-builders/select.cjs +3 -28
  333. package/singlestore-core/query-builders/select.cjs.map +1 -1
  334. package/singlestore-core/query-builders/select.d.cts +0 -9
  335. package/singlestore-core/query-builders/select.d.ts +0 -9
  336. package/singlestore-core/query-builders/select.js +3 -28
  337. package/singlestore-core/query-builders/select.js.map +1 -1
  338. package/singlestore-core/query-builders/update.cjs +1 -9
  339. package/singlestore-core/query-builders/update.cjs.map +1 -1
  340. package/singlestore-core/query-builders/update.js +1 -9
  341. package/singlestore-core/query-builders/update.js.map +1 -1
  342. package/singlestore-core/session.cjs +0 -53
  343. package/singlestore-core/session.cjs.map +1 -1
  344. package/singlestore-core/session.d.cts +2 -14
  345. package/singlestore-core/session.d.ts +2 -14
  346. package/singlestore-core/session.js +1 -54
  347. package/singlestore-core/session.js.map +1 -1
  348. package/singlestore-core/utils.cjs +0 -16
  349. package/singlestore-core/utils.cjs.map +1 -1
  350. package/singlestore-core/utils.d.cts +0 -3
  351. package/singlestore-core/utils.d.ts +0 -3
  352. package/singlestore-core/utils.js +0 -15
  353. package/singlestore-core/utils.js.map +1 -1
  354. package/sql/sql.cjs +0 -10
  355. package/sql/sql.cjs.map +1 -1
  356. package/sql/sql.js +0 -10
  357. package/sql/sql.js.map +1 -1
  358. package/sqlite-core/db.cjs +0 -1
  359. package/sqlite-core/db.cjs.map +1 -1
  360. package/sqlite-core/db.d.cts +0 -4
  361. package/sqlite-core/db.d.ts +0 -4
  362. package/sqlite-core/db.js +0 -1
  363. package/sqlite-core/db.js.map +1 -1
  364. package/sqlite-core/query-builders/delete.cjs +1 -7
  365. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  366. package/sqlite-core/query-builders/delete.js +1 -7
  367. package/sqlite-core/query-builders/delete.js.map +1 -1
  368. package/sqlite-core/query-builders/insert.cjs +1 -7
  369. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  370. package/sqlite-core/query-builders/insert.js +1 -7
  371. package/sqlite-core/query-builders/insert.js.map +1 -1
  372. package/sqlite-core/query-builders/select.cjs +3 -31
  373. package/sqlite-core/query-builders/select.cjs.map +1 -1
  374. package/sqlite-core/query-builders/select.d.cts +0 -9
  375. package/sqlite-core/query-builders/select.d.ts +0 -9
  376. package/sqlite-core/query-builders/select.js +3 -31
  377. package/sqlite-core/query-builders/select.js.map +1 -1
  378. package/sqlite-core/query-builders/update.cjs +1 -7
  379. package/sqlite-core/query-builders/update.cjs.map +1 -1
  380. package/sqlite-core/query-builders/update.js +1 -7
  381. package/sqlite-core/query-builders/update.js.map +1 -1
  382. package/sqlite-core/session.cjs +3 -62
  383. package/sqlite-core/session.cjs.map +1 -1
  384. package/sqlite-core/session.d.cts +4 -18
  385. package/sqlite-core/session.d.ts +4 -18
  386. package/sqlite-core/session.js +4 -63
  387. package/sqlite-core/session.js.map +1 -1
  388. package/sqlite-core/utils.cjs +0 -16
  389. package/sqlite-core/utils.cjs.map +1 -1
  390. package/sqlite-core/utils.d.cts +2 -6
  391. package/sqlite-core/utils.d.ts +2 -6
  392. package/sqlite-core/utils.js +0 -15
  393. package/sqlite-core/utils.js.map +1 -1
  394. package/sqlite-proxy/driver.cjs +2 -9
  395. package/sqlite-proxy/driver.cjs.map +1 -1
  396. package/sqlite-proxy/driver.js +2 -9
  397. package/sqlite-proxy/driver.js.map +1 -1
  398. package/sqlite-proxy/session.cjs +8 -22
  399. package/sqlite-proxy/session.cjs.map +1 -1
  400. package/sqlite-proxy/session.d.cts +2 -12
  401. package/sqlite-proxy/session.d.ts +2 -12
  402. package/sqlite-proxy/session.js +8 -22
  403. package/sqlite-proxy/session.js.map +1 -1
  404. package/subquery.cjs +3 -4
  405. package/subquery.cjs.map +1 -1
  406. package/subquery.d.cts +1 -2
  407. package/subquery.d.ts +1 -2
  408. package/subquery.js +3 -4
  409. package/subquery.js.map +1 -1
  410. package/tidb-serverless/driver.cjs +1 -5
  411. package/tidb-serverless/driver.cjs.map +1 -1
  412. package/tidb-serverless/driver.d.cts +0 -1
  413. package/tidb-serverless/driver.d.ts +0 -1
  414. package/tidb-serverless/driver.js +1 -5
  415. package/tidb-serverless/driver.js.map +1 -1
  416. package/tidb-serverless/session.cjs +5 -15
  417. package/tidb-serverless/session.cjs.map +1 -1
  418. package/tidb-serverless/session.d.cts +2 -12
  419. package/tidb-serverless/session.d.ts +2 -12
  420. package/tidb-serverless/session.js +5 -15
  421. package/tidb-serverless/session.js.map +1 -1
  422. package/utils.cjs +0 -22
  423. package/utils.cjs.map +1 -1
  424. package/utils.d.cts +0 -3
  425. package/utils.d.ts +0 -3
  426. package/utils.js +0 -11
  427. package/utils.js.map +1 -1
  428. package/vercel-postgres/driver.cjs +2 -9
  429. package/vercel-postgres/driver.cjs.map +1 -1
  430. package/vercel-postgres/driver.d.cts +0 -2
  431. package/vercel-postgres/driver.d.ts +0 -2
  432. package/vercel-postgres/driver.js +2 -9
  433. package/vercel-postgres/driver.js.map +1 -1
  434. package/vercel-postgres/session.cjs +7 -21
  435. package/vercel-postgres/session.cjs.map +1 -1
  436. package/vercel-postgres/session.d.cts +2 -12
  437. package/vercel-postgres/session.d.ts +2 -12
  438. package/vercel-postgres/session.js +7 -21
  439. package/vercel-postgres/session.js.map +1 -1
  440. package/version.cjs +1 -1
  441. package/version.d.cts +1 -1
  442. package/version.d.ts +1 -1
  443. package/version.js +1 -1
  444. package/xata-http/driver.cjs +2 -7
  445. package/xata-http/driver.cjs.map +1 -1
  446. package/xata-http/driver.d.cts +0 -2
  447. package/xata-http/driver.d.ts +0 -2
  448. package/xata-http/driver.js +2 -7
  449. package/xata-http/driver.js.map +1 -1
  450. package/xata-http/session.cjs +7 -21
  451. package/xata-http/session.cjs.map +1 -1
  452. package/xata-http/session.d.cts +2 -12
  453. package/xata-http/session.d.ts +2 -12
  454. package/xata-http/session.js +7 -21
  455. package/xata-http/session.js.map +1 -1
  456. package/cache/core/cache.cjs +0 -47
  457. package/cache/core/cache.cjs.map +0 -1
  458. package/cache/core/cache.d.cts +0 -35
  459. package/cache/core/cache.d.ts +0 -35
  460. package/cache/core/cache.js +0 -22
  461. package/cache/core/cache.js.map +0 -1
  462. package/cache/core/index.cjs +0 -23
  463. package/cache/core/index.cjs.map +0 -1
  464. package/cache/core/index.d.cts +0 -1
  465. package/cache/core/index.d.ts +0 -1
  466. package/cache/core/index.js +0 -2
  467. package/cache/core/index.js.map +0 -1
  468. package/cache/core/types.cjs +0 -17
  469. package/cache/core/types.cjs.map +0 -1
  470. package/cache/core/types.d.cts +0 -33
  471. package/cache/core/types.d.ts +0 -33
  472. package/cache/core/types.js +0 -1
  473. package/cache/core/types.js.map +0 -1
  474. package/cache/upstash/cache.cjs +0 -148
  475. package/cache/upstash/cache.cjs.map +0 -1
  476. package/cache/upstash/cache.d.cts +0 -29
  477. package/cache/upstash/cache.d.ts +0 -29
  478. package/cache/upstash/cache.js +0 -123
  479. package/cache/upstash/cache.js.map +0 -1
  480. package/cache/upstash/index.cjs +0 -23
  481. package/cache/upstash/index.cjs.map +0 -1
  482. package/cache/upstash/index.d.cts +0 -1
  483. package/cache/upstash/index.d.ts +0 -1
  484. package/cache/upstash/index.js +0 -2
  485. package/cache/upstash/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/gel-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type {\n\tGelPreparedQuery,\n\tGelQueryResultHKT,\n\tGelQueryResultKind,\n\tGelSession,\n\tPreparedQueryConfig,\n} from '~/gel-core/session.ts';\nimport { GelTable } from '~/gel-core/table.ts';\nimport type {\n\tAppendToNullabilityMap,\n\tAppendToResult,\n\tGetSelectTableName,\n\tGetSelectTableSelection,\n\tJoinNullability,\n\tJoinType,\n\tSelectMode,\n\tSelectResult,\n} from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type Query, SQL, type SQLWrapper } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport {\n\ttype Assume,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\ttype NeonAuthToken,\n\torderSelectedFields,\n\ttype UpdateSet,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { GelColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { GelViewBase } from '../view-base.ts';\nimport type { GelSelectJoinConfig, SelectedFields, SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface GelUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: GelTable;\n\tfrom?: GelTable | Subquery | GelViewBase | SQL;\n\tjoins: GelSelectJoinConfig[];\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type GelUpdateSetSource<TTable extends GelTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key]>\n\t\t\t| SQL\n\t\t\t| GelColumn;\n\t}\n\t& {};\n\nexport class GelUpdateBuilder<TTable extends GelTable, TQueryResult extends GelQueryResultHKT> {\n\tstatic readonly [entityKind]: string = 'GelUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: GelSession,\n\t\tprivate dialect: GelDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tprivate authToken?: NeonAuthToken;\n\tsetToken(token: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalues: GelUpdateSetSource<TTable>,\n\t): GelUpdateWithout<GelUpdateBase<TTable, TQueryResult>, false, 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'> {\n\t\treturn new GelUpdateBase<TTable, TQueryResult>(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t);\n\t}\n}\n\nexport type GelUpdateWithout<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tT['_']['returning'],\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type GelUpdateWithJoins<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tTFrom,\n\t\tT['_']['returning'],\n\t\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TFrom>, 'inner'>,\n\t\t[...T['_']['joins'], {\n\t\t\tname: GetSelectTableName<TFrom>;\n\t\t\tjoinType: 'inner';\n\t\t\ttable: TFrom;\n\t\t}],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type GelUpdateJoinFn<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n> = <\n\tTJoinedTable extends GelTable | Subquery | GelViewBase | SQL,\n>(\n\ttable: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends GelTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | GelViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => GelUpdateJoin<T, TDynamic, TJoinType, TJoinedTable>;\n\nexport type GelUpdateJoin<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n\tTJoinedTable extends GelTable | Subquery | GelViewBase | SQL,\n> = TDynamic extends true ? T : GelUpdateBase<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['returning'],\n\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TJoinedTable>, TJoinType>,\n\t[...T['_']['joins'], {\n\t\tname: GetSelectTableName<TJoinedTable>;\n\t\tjoinType: TJoinType;\n\t\ttable: TJoinedTable;\n\t}],\n\tTDynamic,\n\tT['_']['excludedMethods']\n>;\n\ntype Join = {\n\tname: string | undefined;\n\tjoinType: JoinType;\n\ttable: GelTable | Subquery | GelViewBase | SQL;\n};\n\ntype AccumulateToResult<\n\tT extends AnyGelUpdate,\n\tTSelectMode extends SelectMode,\n\tTJoins extends Join[],\n\tTSelectedFields extends ColumnsSelection,\n> = TJoins extends [infer TJoin extends Join, ...infer TRest extends Join[]] ? AccumulateToResult<\n\t\tT,\n\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple',\n\t\tTRest,\n\t\tAppendToResult<\n\t\t\tT['_']['table']['_']['name'],\n\t\t\tTSelectedFields,\n\t\t\tTJoin['name'],\n\t\t\tTJoin['table'] extends Table ? TJoin['table']['_']['columns']\n\t\t\t\t: TJoin['table'] extends Subquery ? Assume<TJoin['table']['_']['selectedFields'], SelectedFields>\n\t\t\t\t: never,\n\t\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple'\n\t\t>\n\t>\n\t: TSelectedFields;\n\nexport type GelUpdateReturningAll<T extends AnyGelUpdate, TDynamic extends boolean> = GelUpdateWithout<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'single',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tGetSelectTableSelection<T['_']['table']>\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type GelUpdateReturning<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = GelUpdateWithout<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'partial',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tTSelectedFields\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type GelUpdatePrepare<T extends AnyGelUpdate> = GelPreparedQuery<\n\tPreparedQueryConfig & {\n\t\texecute: T['_']['returning'] extends undefined ? GelQueryResultKind<T['_']['queryResult'], never>\n\t\t\t: T['_']['returning'][];\n\t}\n>;\n\nexport type GelUpdateDynamic<T extends AnyGelUpdate> = GelUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['returning'],\n\tT['_']['nullabilityMap']\n>;\n\nexport type GelUpdate<\n\tTTable extends GelTable = GelTable,\n\tTQueryResult extends GelQueryResultHKT = GelQueryResultHKT,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n> = GelUpdateBase<TTable, TQueryResult, TFrom, TReturning, TNullabilityMap, TJoins, true, never>;\n\nexport type AnyGelUpdate = GelUpdateBase<any, any, any, any, any, any, any, any>;\n\nexport interface GelUpdateBase<\n\tTTable extends GelTable,\n\tTQueryResult extends GelQueryResultHKT,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tQueryPromise<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[], 'gel'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'gel';\n\t\treadonly table: TTable;\n\t\treadonly joins: TJoins;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly from: TFrom;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport class GelUpdateBase<\n\tTTable extends GelTable,\n\tTQueryResult extends GelQueryResultHKT,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTJoins extends Join[] = [],\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[], 'gel'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelUpdate';\n\n\tprivate config: GelUpdateConfig;\n\tprivate tableName: string | undefined;\n\tprivate joinsNotNullableMap: Record<string, boolean>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: GelSession,\n\t\tprivate dialect: GelDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === 'string' ? { [this.tableName]: true } : {};\n\t}\n\n\tfrom<TFrom extends GelTable | Subquery | GelViewBase | SQL>(\n\t\tsource: TFrom,\n\t): GelUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tconst tableName = getTableLikeName(source);\n\t\tif (typeof tableName === 'string') {\n\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t}\n\t\tthis.config.from = source;\n\t\treturn this as any;\n\t}\n\n\tprivate getTableLikeFields(table: GelTable | Subquery | GelViewBase): Record<string, unknown> {\n\t\tif (is(table, GelTable)) {\n\t\t\treturn table[Table.Symbol.Columns];\n\t\t} else if (is(table, Subquery)) {\n\t\t\treturn table._.selectedFields;\n\t\t}\n\t\treturn table[ViewBaseConfig].selectedFields;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): GelUpdateJoinFn<this, TDynamic, TJoinType> {\n\t\treturn ((\n\t\t\ttable: GelTable | Subquery | GelViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from && !is(this.config.from, SQL)\n\t\t\t\t\t? this.getTableLikeFields(this.config.from)\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\tif (typeof tableName === 'string') {\n\t\t\t\tswitch (joinType) {\n\t\t\t\t\tcase 'left': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'right': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'inner': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'full': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): GelUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): GelUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): GelUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields?: SelectedFields,\n\t): GelUpdateWithout<AnyGelUpdate, TDynamic, 'returning'> {\n\t\tif (!fields) {\n\t\t\tfields = Object.assign({}, this.config.table[Table.Symbol.Columns]);\n\n\t\t\tif (this.config.from) {\n\t\t\t\tconst tableName = getTableLikeName(this.config.from);\n\n\t\t\t\tif (typeof tableName === 'string' && this.config.from && !is(this.config.from, SQL)) {\n\t\t\t\t\tconst fromFields = this.getTableLikeFields(this.config.from);\n\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t}\n\n\t\t\t\tfor (const join of this.config.joins) {\n\t\t\t\t\tconst tableName = getTableLikeName(join.table);\n\n\t\t\t\t\tif (typeof tableName === 'string' && !is(join.table, SQL)) {\n\t\t\t\t\t\tconst fromFields = this.getTableLikeFields(join.table);\n\t\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.config.returning = orderSelectedFields<GelColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelUpdatePrepare<this> {\n\t\tconst query = this.session.prepareQuery<\n\t\t\tPreparedQueryConfig & { execute: TReturning[] }\n\t\t>(this.dialect.sqlToQuery(this.getSQL()), this.config.returning, name, true, undefined, {\n\t\t\ttype: 'update',\n\t\t\ttables: extractUsedTable(this.config.table),\n\t\t});\n\t\tquery.joinsNotNullableMap = this.joinsNotNullableMap;\n\t\treturn query;\n\t}\n\n\tprepare(name: string): GelUpdatePrepare<this> {\n\t\treturn this._prepare(name);\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this._prepare().execute(placeholderValues);\n\t};\n\n\t$dynamic(): GelUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["tableName"]}
1
+ {"version":3,"sources":["../../../src/gel-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type {\n\tGelPreparedQuery,\n\tGelQueryResultHKT,\n\tGelQueryResultKind,\n\tGelSession,\n\tPreparedQueryConfig,\n} from '~/gel-core/session.ts';\nimport { GelTable } from '~/gel-core/table.ts';\nimport type {\n\tAppendToNullabilityMap,\n\tAppendToResult,\n\tGetSelectTableName,\n\tGetSelectTableSelection,\n\tJoinNullability,\n\tJoinType,\n\tSelectMode,\n\tSelectResult,\n} from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type Query, SQL, type SQLWrapper } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport {\n\ttype Assume,\n\tgetTableLikeName,\n\tmapUpdateSet,\n\ttype NeonAuthToken,\n\torderSelectedFields,\n\ttype UpdateSet,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { GelColumn } from '../columns/common.ts';\nimport type { GelViewBase } from '../view-base.ts';\nimport type { GelSelectJoinConfig, SelectedFields, SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface GelUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: GelTable;\n\tfrom?: GelTable | Subquery | GelViewBase | SQL;\n\tjoins: GelSelectJoinConfig[];\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type GelUpdateSetSource<TTable extends GelTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key]>\n\t\t\t| SQL\n\t\t\t| GelColumn;\n\t}\n\t& {};\n\nexport class GelUpdateBuilder<TTable extends GelTable, TQueryResult extends GelQueryResultHKT> {\n\tstatic readonly [entityKind]: string = 'GelUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: GelSession,\n\t\tprivate dialect: GelDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tprivate authToken?: NeonAuthToken;\n\tsetToken(token: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalues: GelUpdateSetSource<TTable>,\n\t): GelUpdateWithout<GelUpdateBase<TTable, TQueryResult>, false, 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'> {\n\t\treturn new GelUpdateBase<TTable, TQueryResult>(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t);\n\t}\n}\n\nexport type GelUpdateWithout<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tT['_']['returning'],\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type GelUpdateWithJoins<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL,\n> = TDynamic extends true ? T : Omit<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tTFrom,\n\t\tT['_']['returning'],\n\t\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TFrom>, 'inner'>,\n\t\t[...T['_']['joins'], {\n\t\t\tname: GetSelectTableName<TFrom>;\n\t\t\tjoinType: 'inner';\n\t\t\ttable: TFrom;\n\t\t}],\n\t\tTDynamic,\n\t\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n\t>,\n\tExclude<T['_']['excludedMethods'] | 'from', 'leftJoin' | 'rightJoin' | 'innerJoin' | 'fullJoin'>\n>;\n\nexport type GelUpdateJoinFn<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n> = <\n\tTJoinedTable extends GelTable | Subquery | GelViewBase | SQL,\n>(\n\ttable: TJoinedTable,\n\ton:\n\t\t| (\n\t\t\t(\n\t\t\t\tupdateTable: T['_']['table']['_']['columns'],\n\t\t\t\tfrom: T['_']['from'] extends GelTable ? T['_']['from']['_']['columns']\n\t\t\t\t\t: T['_']['from'] extends Subquery | GelViewBase ? T['_']['from']['_']['selectedFields']\n\t\t\t\t\t: never,\n\t\t\t) => SQL | undefined\n\t\t)\n\t\t| SQL\n\t\t| undefined,\n) => GelUpdateJoin<T, TDynamic, TJoinType, TJoinedTable>;\n\nexport type GelUpdateJoin<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n\tTJoinedTable extends GelTable | Subquery | GelViewBase | SQL,\n> = TDynamic extends true ? T : GelUpdateBase<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['returning'],\n\tAppendToNullabilityMap<T['_']['nullabilityMap'], GetSelectTableName<TJoinedTable>, TJoinType>,\n\t[...T['_']['joins'], {\n\t\tname: GetSelectTableName<TJoinedTable>;\n\t\tjoinType: TJoinType;\n\t\ttable: TJoinedTable;\n\t}],\n\tTDynamic,\n\tT['_']['excludedMethods']\n>;\n\ntype Join = {\n\tname: string | undefined;\n\tjoinType: JoinType;\n\ttable: GelTable | Subquery | GelViewBase | SQL;\n};\n\ntype AccumulateToResult<\n\tT extends AnyGelUpdate,\n\tTSelectMode extends SelectMode,\n\tTJoins extends Join[],\n\tTSelectedFields extends ColumnsSelection,\n> = TJoins extends [infer TJoin extends Join, ...infer TRest extends Join[]] ? AccumulateToResult<\n\t\tT,\n\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple',\n\t\tTRest,\n\t\tAppendToResult<\n\t\t\tT['_']['table']['_']['name'],\n\t\t\tTSelectedFields,\n\t\t\tTJoin['name'],\n\t\t\tTJoin['table'] extends Table ? TJoin['table']['_']['columns']\n\t\t\t\t: TJoin['table'] extends Subquery ? Assume<TJoin['table']['_']['selectedFields'], SelectedFields>\n\t\t\t\t: never,\n\t\t\tTSelectMode extends 'partial' ? TSelectMode : 'multiple'\n\t\t>\n\t>\n\t: TSelectedFields;\n\nexport type GelUpdateReturningAll<T extends AnyGelUpdate, TDynamic extends boolean> = GelUpdateWithout<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'single',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tGetSelectTableSelection<T['_']['table']>\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type GelUpdateReturning<\n\tT extends AnyGelUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = GelUpdateWithout<\n\tGelUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['from'],\n\t\tSelectResult<\n\t\t\tAccumulateToResult<\n\t\t\t\tT,\n\t\t\t\t'partial',\n\t\t\t\tT['_']['joins'],\n\t\t\t\tTSelectedFields\n\t\t\t>,\n\t\t\t'partial',\n\t\t\tT['_']['nullabilityMap']\n\t\t>,\n\t\tT['_']['nullabilityMap'],\n\t\tT['_']['joins'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type GelUpdatePrepare<T extends AnyGelUpdate> = GelPreparedQuery<\n\tPreparedQueryConfig & {\n\t\texecute: T['_']['returning'] extends undefined ? GelQueryResultKind<T['_']['queryResult'], never>\n\t\t\t: T['_']['returning'][];\n\t}\n>;\n\nexport type GelUpdateDynamic<T extends AnyGelUpdate> = GelUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['from'],\n\tT['_']['returning'],\n\tT['_']['nullabilityMap']\n>;\n\nexport type GelUpdate<\n\tTTable extends GelTable = GelTable,\n\tTQueryResult extends GelQueryResultHKT = GelQueryResultHKT,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n> = GelUpdateBase<TTable, TQueryResult, TFrom, TReturning, TNullabilityMap, TJoins, true, never>;\n\nexport type AnyGelUpdate = GelUpdateBase<any, any, any, any, any, any, any, any>;\n\nexport interface GelUpdateBase<\n\tTTable extends GelTable,\n\tTQueryResult extends GelQueryResultHKT,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\tTJoins extends Join[] = [],\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tQueryPromise<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[], 'gel'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'gel';\n\t\treadonly table: TTable;\n\t\treadonly joins: TJoins;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly from: TFrom;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport class GelUpdateBase<\n\tTTable extends GelTable,\n\tTQueryResult extends GelQueryResultHKT,\n\tTFrom extends GelTable | Subquery | GelViewBase | SQL | undefined = undefined,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<TTable['_']['name'], 'not-null'>,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTJoins extends Join[] = [],\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? GelQueryResultKind<TQueryResult, never> : TReturning[], 'gel'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelUpdate';\n\n\tprivate config: GelUpdateConfig;\n\tprivate tableName: string | undefined;\n\tprivate joinsNotNullableMap: Record<string, boolean>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: GelSession,\n\t\tprivate dialect: GelDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList, joins: [] };\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === 'string' ? { [this.tableName]: true } : {};\n\t}\n\n\tfrom<TFrom extends GelTable | Subquery | GelViewBase | SQL>(\n\t\tsource: TFrom,\n\t): GelUpdateWithJoins<this, TDynamic, TFrom> {\n\t\tconst tableName = getTableLikeName(source);\n\t\tif (typeof tableName === 'string') {\n\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t}\n\t\tthis.config.from = source;\n\t\treturn this as any;\n\t}\n\n\tprivate getTableLikeFields(table: GelTable | Subquery | GelViewBase): Record<string, unknown> {\n\t\tif (is(table, GelTable)) {\n\t\t\treturn table[Table.Symbol.Columns];\n\t\t} else if (is(table, Subquery)) {\n\t\t\treturn table._.selectedFields;\n\t\t}\n\t\treturn table[ViewBaseConfig].selectedFields;\n\t}\n\n\tprivate createJoin<TJoinType extends JoinType>(\n\t\tjoinType: TJoinType,\n\t): GelUpdateJoinFn<this, TDynamic, TJoinType> {\n\t\treturn ((\n\t\t\ttable: GelTable | Subquery | GelViewBase | SQL,\n\t\t\ton: ((updateTable: TTable, from: TFrom) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\tconst from = this.config.from && !is(this.config.from, SQL)\n\t\t\t\t\t? this.getTableLikeFields(this.config.from)\n\t\t\t\t\t: undefined;\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t\tfrom && new Proxy(\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as any,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\tif (typeof tableName === 'string') {\n\t\t\t\tswitch (joinType) {\n\t\t\t\t\tcase 'left': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'right': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'inner': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'full': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this as any;\n\t\t}) as any;\n\t}\n\n\tleftJoin = this.createJoin('left');\n\n\trightJoin = this.createJoin('right');\n\n\tinnerJoin = this.createJoin('inner');\n\n\tfullJoin = this.createJoin('full');\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * await db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): GelUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): GelUpdateReturningAll<this, TDynamic>;\n\treturning<TSelectedFields extends SelectedFields>(\n\t\tfields: TSelectedFields,\n\t): GelUpdateReturning<this, TDynamic, TSelectedFields>;\n\treturning(\n\t\tfields?: SelectedFields,\n\t): GelUpdateWithout<AnyGelUpdate, TDynamic, 'returning'> {\n\t\tif (!fields) {\n\t\t\tfields = Object.assign({}, this.config.table[Table.Symbol.Columns]);\n\n\t\t\tif (this.config.from) {\n\t\t\t\tconst tableName = getTableLikeName(this.config.from);\n\n\t\t\t\tif (typeof tableName === 'string' && this.config.from && !is(this.config.from, SQL)) {\n\t\t\t\t\tconst fromFields = this.getTableLikeFields(this.config.from);\n\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t}\n\n\t\t\t\tfor (const join of this.config.joins) {\n\t\t\t\t\tconst tableName = getTableLikeName(join.table);\n\n\t\t\t\t\tif (typeof tableName === 'string' && !is(join.table, SQL)) {\n\t\t\t\t\t\tconst fromFields = this.getTableLikeFields(join.table);\n\t\t\t\t\t\tfields[tableName] = fromFields as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.config.returning = orderSelectedFields<GelColumn>(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelUpdatePrepare<this> {\n\t\tconst query = this.session.prepareQuery<\n\t\t\tPreparedQueryConfig & { execute: TReturning[] }\n\t\t>(this.dialect.sqlToQuery(this.getSQL()), this.config.returning, name, true);\n\t\tquery.joinsNotNullableMap = this.joinsNotNullableMap;\n\t\treturn query;\n\t}\n\n\tprepare(name: string): GelUpdatePrepare<this> {\n\t\treturn this._prepare(name);\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this._prepare().execute(placeholderValues);\n\t};\n\n\t$dynamic(): GelUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AACA,SAAS,YAAY,UAAU;AAS/B,SAAS,gBAAgB;AAWzB,SAAS,oBAAoB;AAE7B,SAAS,6BAA6B;AACtC,SAA4C,WAA4B;AACxE,SAAS,gBAAgB;AACzB,SAAS,aAAa;AACtB;AAAA,EAEC;AAAA,EACA;AAAA,EAEA;AAAA,OAEM;AACP,SAAS,sBAAsB;AAwBxB,MAAM,iBAAkF;AAAA,EAO9F,YACS,OACA,SACA,SACA,UACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAXH,QAAiB,UAAU,IAAY;AAAA,EAa/B;AAAA,EACR,SAAS,OAAsB;AAC9B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAEA,IACC,QACoH;AACpH,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,aAAa,KAAK,OAAO,MAAM;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAwNO,MAAM,sBAaH,aAIV;AAAA,EAOC,YACC,OACA,KACQ,SACA,SACR,UACC;AACD,UAAM;AAJE;AACA;AAIR,SAAK,SAAS,EAAE,KAAK,OAAO,UAAU,OAAO,CAAC,EAAE;AAChD,SAAK,YAAY,iBAAiB,KAAK;AACvC,SAAK,sBAAsB,OAAO,KAAK,cAAc,WAAW,EAAE,CAAC,KAAK,SAAS,GAAG,KAAK,IAAI,CAAC;AAAA,EAC/F;AAAA,EAjBA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EAeR,KACC,QAC4C;AAC5C,UAAM,YAAY,iBAAiB,MAAM;AACzC,QAAI,OAAO,cAAc,UAAU;AAClC,WAAK,oBAAoB,SAAS,IAAI;AAAA,IACvC;AACA,SAAK,OAAO,OAAO;AACnB,WAAO;AAAA,EACR;AAAA,EAEQ,mBAAmB,OAAmE;AAC7F,QAAI,GAAG,OAAO,QAAQ,GAAG;AACxB,aAAO,MAAM,MAAM,OAAO,OAAO;AAAA,IAClC,WAAW,GAAG,OAAO,QAAQ,GAAG;AAC/B,aAAO,MAAM,EAAE;AAAA,IAChB;AACA,WAAO,MAAM,cAAc,EAAE;AAAA,EAC9B;AAAA,EAEQ,WACP,UAC6C;AAC7C,WAAQ,CACP,OACA,OACI;AACJ,YAAM,YAAY,iBAAiB,KAAK;AAExC,UAAI,OAAO,cAAc,YAAY,KAAK,OAAO,MAAM,KAAK,CAAC,SAAS,KAAK,UAAU,SAAS,GAAG;AAChG,cAAM,IAAI,MAAM,UAAU,SAAS,iCAAiC;AAAA,MACrE;AAEA,UAAI,OAAO,OAAO,YAAY;AAC7B,cAAM,OAAO,KAAK,OAAO,QAAQ,CAAC,GAAG,KAAK,OAAO,MAAM,GAAG,IACvD,KAAK,mBAAmB,KAAK,OAAO,IAAI,IACxC;AACH,aAAK;AAAA,UACJ,IAAI;AAAA,YACH,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO;AAAA,YACtC,IAAI,sBAAsB,EAAE,oBAAoB,OAAO,aAAa,MAAM,CAAC;AAAA,UAC5E;AAAA,UACA,QAAQ,IAAI;AAAA,YACX;AAAA,YACA,IAAI,sBAAsB,EAAE,oBAAoB,OAAO,aAAa,MAAM,CAAC;AAAA,UAC5E;AAAA,QACD;AAAA,MACD;AAEA,WAAK,OAAO,MAAM,KAAK,EAAE,IAAI,OAAO,UAAU,OAAO,UAAU,CAAC;AAEhE,UAAI,OAAO,cAAc,UAAU;AAClC,gBAAQ,UAAU;AAAA,UACjB,KAAK,QAAQ;AACZ,iBAAK,oBAAoB,SAAS,IAAI;AACtC;AAAA,UACD;AAAA,UACA,KAAK,SAAS;AACb,iBAAK,sBAAsB,OAAO;AAAA,cACjC,OAAO,QAAQ,KAAK,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,CAAC;AAAA,YACrE;AACA,iBAAK,oBAAoB,SAAS,IAAI;AACtC;AAAA,UACD;AAAA,UACA,KAAK,SAAS;AACb,iBAAK,oBAAoB,SAAS,IAAI;AACtC;AAAA,UACD;AAAA,UACA,KAAK,QAAQ;AACZ,iBAAK,sBAAsB,OAAO;AAAA,cACjC,OAAO,QAAQ,KAAK,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,CAAC;AAAA,YACrE;AACA,iBAAK,oBAAoB,SAAS,IAAI;AACtC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,WAAW,MAAM;AAAA,EAEjC,YAAY,KAAK,WAAW,OAAO;AAAA,EAEnC,YAAY,KAAK,WAAW,OAAO;AAAA,EAEnC,WAAW,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCjC,MAAM,OAAmE;AACxE,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EA4BA,UACC,QACwD;AACxD,QAAI,CAAC,QAAQ;AACZ,eAAS,OAAO,OAAO,CAAC,GAAG,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC;AAElE,UAAI,KAAK,OAAO,MAAM;AACrB,cAAM,YAAY,iBAAiB,KAAK,OAAO,IAAI;AAEnD,YAAI,OAAO,cAAc,YAAY,KAAK,OAAO,QAAQ,CAAC,GAAG,KAAK,OAAO,MAAM,GAAG,GAAG;AACpF,gBAAM,aAAa,KAAK,mBAAmB,KAAK,OAAO,IAAI;AAC3D,iBAAO,SAAS,IAAI;AAAA,QACrB;AAEA,mBAAW,QAAQ,KAAK,OAAO,OAAO;AACrC,gBAAMA,aAAY,iBAAiB,KAAK,KAAK;AAE7C,cAAI,OAAOA,eAAc,YAAY,CAAC,GAAG,KAAK,OAAO,GAAG,GAAG;AAC1D,kBAAM,aAAa,KAAK,mBAAmB,KAAK,KAAK;AACrD,mBAAOA,UAAS,IAAI;AAAA,UACrB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,SAAK,OAAO,YAAY,oBAA+B,MAAM;AAC7D,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAS,MAAuC;AAC/C,UAAM,QAAQ,KAAK,QAAQ,aAEzB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC,GAAG,KAAK,OAAO,WAAW,MAAM,IAAI;AAC3E,UAAM,sBAAsB,KAAK;AACjC,WAAO;AAAA,EACR;AAAA,EAEA,QAAQ,MAAsC;AAC7C,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAES,UAAkD,CAAC,sBAAsB;AACjF,WAAO,KAAK,SAAS,EAAE,QAAQ,iBAAiB;AAAA,EACjD;AAAA,EAEA,WAAmC;AAClC,WAAO;AAAA,EACR;AACD;","names":["tableName"]}
@@ -23,64 +23,13 @@ __export(session_exports, {
23
23
  GelTransaction: () => GelTransaction
24
24
  });
25
25
  module.exports = __toCommonJS(session_exports);
26
- var import_cache = require("../cache/core/cache.cjs");
27
26
  var import_entity = require("../entity.cjs");
28
27
  var import_errors = require("../errors.cjs");
29
28
  var import_tracing = require("../tracing.cjs");
30
- var import_utils = require("../utils.cjs");
31
29
  var import_db = require("./db.cjs");
32
30
  class GelPreparedQuery {
33
- constructor(query, cache, queryMetadata, cacheConfig) {
31
+ constructor(query) {
34
32
  this.query = query;
35
- this.cache = cache;
36
- this.queryMetadata = queryMetadata;
37
- this.cacheConfig = cacheConfig;
38
- if (cache && cache.strategy() === "all" && cacheConfig === void 0) {
39
- this.cacheConfig = { enable: true, autoInvalidate: true };
40
- }
41
- if (!this.cacheConfig?.enable) {
42
- this.cacheConfig = void 0;
43
- }
44
- }
45
- /** @internal */
46
- async queryWithCache(queryString, params, query) {
47
- if (this.cache === void 0 || (0, import_entity.is)(this.cache, import_cache.NoopCache) || this.queryMetadata === void 0) {
48
- return await query();
49
- }
50
- if (this.cacheConfig && !this.cacheConfig.enable) {
51
- return await query();
52
- }
53
- if ((this.queryMetadata.type === "insert" || this.queryMetadata.type === "update" || this.queryMetadata.type === "delete") && this.queryMetadata.tables.length > 0) {
54
- const [res] = await Promise.all([
55
- query(),
56
- this.cache.onMutate({ tables: this.queryMetadata.tables })
57
- ]);
58
- return res;
59
- }
60
- if (!this.cacheConfig) {
61
- return await query();
62
- }
63
- if (this.queryMetadata.type === "select") {
64
- const fromCache = await this.cache.get(
65
- this.cacheConfig.tag ?? (await (0, import_utils.hashQuery)(queryString, params)),
66
- this.queryMetadata.tables,
67
- this.cacheConfig.tag !== void 0
68
- );
69
- if (fromCache === void 0) {
70
- const result = await query();
71
- await this.cache.put(
72
- this.cacheConfig.tag ?? (await (0, import_utils.hashQuery)(queryString, params)),
73
- result,
74
- // make sure we send tables that were used in a query only if user wants to invalidate it on each write
75
- this.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],
76
- this.cacheConfig.tag !== void 0,
77
- this.cacheConfig.config
78
- );
79
- return result;
80
- }
81
- return fromCache;
82
- }
83
- return await query();
84
33
  }
85
34
  authToken;
86
35
  getQuery() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel-core/session.ts"],"sourcesContent":["import { type Cache, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { hashQuery, type NeonAuthToken } from '~/utils.ts';\nimport { GelDatabase } from './db.ts';\nimport type { GelDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class GelPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\tconst [res] = await Promise.all([\n\t\t\t\tquery(),\n\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t]);\n\t\t\treturn res;\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\treturn await query();\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tconst result = await query();\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\treturn await query();\n\t}\n\n\tprotected authToken?: NeonAuthToken;\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'GelPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport abstract class GelSession<\n\tTQueryResult extends GelQueryResultHKT = any, // TO\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'GelSession';\n\n\tconstructor(protected dialect: GelDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => 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): GelPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute(undefined);\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport abstract class GelTransaction<\n\tTQueryResult extends GelQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends GelDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelTransaction';\n\n\tconstructor(\n\t\tdialect: GelDialect,\n\t\tsession: GelSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type GelQueryResultKind<TKind extends GelQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/gel-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport { GelDatabase } from './db.ts';\nimport type { GelDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class GelPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tprotected authToken?: NeonAuthToken;\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'GelPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport abstract class GelSession<\n\tTQueryResult extends GelQueryResultHKT = any, // TO\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'GelSession';\n\n\tconstructor(protected dialect: GelDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): GelPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute(undefined);\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport abstract class GelTransaction<\n\tTQueryResult extends GelQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends GelDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelTransaction';\n\n\tconstructor(\n\t\tdialect: GelDialect,\n\t\tsession: GelSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type GelQueryResultKind<TKind extends GelQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAIzC,qBAAuB;AAEvB,gBAA4B;AAUrB,MAAe,iBAAyE;AAAA,EAC9F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAE3B;AAAA,EAEV,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAEO,MAAe,WAIpB;AAAA,EAGD,YAAsB,SAAqB;AAArB;AAAA,EAAsB;AAAA,EAF5C,QAAiB,wBAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,sBAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ,MAAS;AAAA,IAClC,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAAA,EAEA,MAAM,MAAM,KAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA6B,GAAG;AAEvD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,OAAO;AAAA,IACf;AAAA,EACD;AAKD;AAEO,MAAe,uBAIZ,sBAAgD;AAAA,EAGzD,YACC,SACA,SACU,QAKT;AACD,UAAM,SAAS,SAAS,MAAM;AANpB;AAAA,EAOX;AAAA,EAZA,QAA0B,wBAAU,IAAY;AAAA,EAchD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAKD;","names":[]}
@@ -1,10 +1,8 @@
1
- import { type Cache } from "../cache/core/cache.cjs";
2
- import type { WithCacheConfig } from "../cache/core/types.cjs";
3
1
  import { entityKind } from "../entity.cjs";
4
2
  import type { TablesRelationalConfig } from "../relations.cjs";
5
3
  import type { PreparedQuery } from "../session.cjs";
6
4
  import type { Query, SQL } from "../sql/index.cjs";
7
- import { type NeonAuthToken } from "../utils.cjs";
5
+ import type { NeonAuthToken } from "../utils.cjs";
8
6
  import { GelDatabase } from "./db.cjs";
9
7
  import type { GelDialect } from "./dialect.cjs";
10
8
  import type { SelectedFieldsOrdered } from "./query-builders/select.types.cjs";
@@ -15,13 +13,7 @@ export interface PreparedQueryConfig {
15
13
  }
16
14
  export declare abstract class GelPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {
17
15
  protected query: Query;
18
- private cache?;
19
- private queryMetadata?;
20
- private cacheConfig?;
21
- constructor(query: Query, cache?: Cache | undefined, queryMetadata?: {
22
- type: 'select' | 'update' | 'delete' | 'insert';
23
- tables: string[];
24
- } | undefined, cacheConfig?: WithCacheConfig | undefined);
16
+ constructor(query: Query);
25
17
  protected authToken?: NeonAuthToken;
26
18
  getQuery(): Query;
27
19
  mapResult(response: unknown, _isFromBatch?: boolean): unknown;
@@ -33,10 +25,7 @@ TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema ext
33
25
  protected dialect: GelDialect;
34
26
  static readonly [entityKind]: string;
35
27
  constructor(dialect: GelDialect);
36
- abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'], queryMetadata?: {
37
- type: 'select' | 'update' | 'delete' | 'insert';
38
- tables: string[];
39
- }, cacheConfig?: WithCacheConfig): GelPreparedQuery<T>;
28
+ abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): GelPreparedQuery<T>;
40
29
  execute<T>(query: SQL): Promise<T>;
41
30
  all<T = unknown>(query: SQL): Promise<T[]>;
42
31
  count(sql: SQL): Promise<number>;
@@ -1,10 +1,8 @@
1
- import { type Cache } from "../cache/core/cache.js";
2
- import type { WithCacheConfig } from "../cache/core/types.js";
3
1
  import { entityKind } from "../entity.js";
4
2
  import type { TablesRelationalConfig } from "../relations.js";
5
3
  import type { PreparedQuery } from "../session.js";
6
4
  import type { Query, SQL } from "../sql/index.js";
7
- import { type NeonAuthToken } from "../utils.js";
5
+ import type { NeonAuthToken } from "../utils.js";
8
6
  import { GelDatabase } from "./db.js";
9
7
  import type { GelDialect } from "./dialect.js";
10
8
  import type { SelectedFieldsOrdered } from "./query-builders/select.types.js";
@@ -15,13 +13,7 @@ export interface PreparedQueryConfig {
15
13
  }
16
14
  export declare abstract class GelPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {
17
15
  protected query: Query;
18
- private cache?;
19
- private queryMetadata?;
20
- private cacheConfig?;
21
- constructor(query: Query, cache?: Cache | undefined, queryMetadata?: {
22
- type: 'select' | 'update' | 'delete' | 'insert';
23
- tables: string[];
24
- } | undefined, cacheConfig?: WithCacheConfig | undefined);
16
+ constructor(query: Query);
25
17
  protected authToken?: NeonAuthToken;
26
18
  getQuery(): Query;
27
19
  mapResult(response: unknown, _isFromBatch?: boolean): unknown;
@@ -33,10 +25,7 @@ TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema ext
33
25
  protected dialect: GelDialect;
34
26
  static readonly [entityKind]: string;
35
27
  constructor(dialect: GelDialect);
36
- abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'], queryMetadata?: {
37
- type: 'select' | 'update' | 'delete' | 'insert';
38
- tables: string[];
39
- }, cacheConfig?: WithCacheConfig): GelPreparedQuery<T>;
28
+ abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): GelPreparedQuery<T>;
40
29
  execute<T>(query: SQL): Promise<T>;
41
30
  all<T = unknown>(query: SQL): Promise<T[]>;
42
31
  count(sql: SQL): Promise<number>;
@@ -1,61 +1,10 @@
1
- import { NoopCache } from "../cache/core/cache.js";
2
- import { entityKind, is } from "../entity.js";
1
+ import { entityKind } from "../entity.js";
3
2
  import { TransactionRollbackError } from "../errors.js";
4
3
  import { tracer } from "../tracing.js";
5
- import { hashQuery } from "../utils.js";
6
4
  import { GelDatabase } from "./db.js";
7
5
  class GelPreparedQuery {
8
- constructor(query, cache, queryMetadata, cacheConfig) {
6
+ constructor(query) {
9
7
  this.query = query;
10
- this.cache = cache;
11
- this.queryMetadata = queryMetadata;
12
- this.cacheConfig = cacheConfig;
13
- if (cache && cache.strategy() === "all" && cacheConfig === void 0) {
14
- this.cacheConfig = { enable: true, autoInvalidate: true };
15
- }
16
- if (!this.cacheConfig?.enable) {
17
- this.cacheConfig = void 0;
18
- }
19
- }
20
- /** @internal */
21
- async queryWithCache(queryString, params, query) {
22
- if (this.cache === void 0 || is(this.cache, NoopCache) || this.queryMetadata === void 0) {
23
- return await query();
24
- }
25
- if (this.cacheConfig && !this.cacheConfig.enable) {
26
- return await query();
27
- }
28
- if ((this.queryMetadata.type === "insert" || this.queryMetadata.type === "update" || this.queryMetadata.type === "delete") && this.queryMetadata.tables.length > 0) {
29
- const [res] = await Promise.all([
30
- query(),
31
- this.cache.onMutate({ tables: this.queryMetadata.tables })
32
- ]);
33
- return res;
34
- }
35
- if (!this.cacheConfig) {
36
- return await query();
37
- }
38
- if (this.queryMetadata.type === "select") {
39
- const fromCache = await this.cache.get(
40
- this.cacheConfig.tag ?? (await hashQuery(queryString, params)),
41
- this.queryMetadata.tables,
42
- this.cacheConfig.tag !== void 0
43
- );
44
- if (fromCache === void 0) {
45
- const result = await query();
46
- await this.cache.put(
47
- this.cacheConfig.tag ?? (await hashQuery(queryString, params)),
48
- result,
49
- // make sure we send tables that were used in a query only if user wants to invalidate it on each write
50
- this.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],
51
- this.cacheConfig.tag !== void 0,
52
- this.cacheConfig.config
53
- );
54
- return result;
55
- }
56
- return fromCache;
57
- }
58
- return await query();
59
8
  }
60
9
  authToken;
61
10
  getQuery() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel-core/session.ts"],"sourcesContent":["import { type Cache, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { hashQuery, type NeonAuthToken } from '~/utils.ts';\nimport { GelDatabase } from './db.ts';\nimport type { GelDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class GelPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\tconst [res] = await Promise.all([\n\t\t\t\tquery(),\n\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t]);\n\t\t\treturn res;\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\treturn await query();\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tconst result = await query();\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\treturn await query();\n\t}\n\n\tprotected authToken?: NeonAuthToken;\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'GelPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport abstract class GelSession<\n\tTQueryResult extends GelQueryResultHKT = any, // TO\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'GelSession';\n\n\tconstructor(protected dialect: GelDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => 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): GelPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute(undefined);\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport abstract class GelTransaction<\n\tTQueryResult extends GelQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends GelDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelTransaction';\n\n\tconstructor(\n\t\tdialect: GelDialect,\n\t\tsession: GelSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type GelQueryResultKind<TKind extends GelQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/gel-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { NeonAuthToken } from '~/utils.ts';\nimport { GelDatabase } from './db.ts';\nimport type { GelDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class GelPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tprotected authToken?: NeonAuthToken;\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'GelPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport abstract class GelSession<\n\tTQueryResult extends GelQueryResultHKT = any, // TO\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'GelSession';\n\n\tconstructor(protected dialect: GelDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): GelPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute(undefined);\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport abstract class GelTransaction<\n\tTQueryResult extends GelQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends GelDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'GelTransaction';\n\n\tconstructor(\n\t\tdialect: GelDialect,\n\t\tsession: GelSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: GelTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type GelQueryResultKind<TKind extends GelQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AAIzC,SAAS,cAAc;AAEvB,SAAS,mBAAmB;AAUrB,MAAe,iBAAyE;AAAA,EAC9F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAE3B;AAAA,EAEV,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAEO,MAAe,WAIpB;AAAA,EAGD,YAAsB,SAAqB;AAArB;AAAA,EAAsB;AAAA,EAF5C,QAAiB,UAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,OAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ,MAAS;AAAA,IAClC,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAAA,EAEA,MAAM,MAAM,KAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA6B,GAAG;AAEvD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,OAAO;AAAA,IACf;AAAA,EACD;AAKD;AAEO,MAAe,uBAIZ,YAAgD;AAAA,EAGzD,YACC,SACA,SACU,QAKT;AACD,UAAM,SAAS,SAAS,MAAM;AANpB;AAAA,EAOX;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAchD,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAKD;","names":[]}
@@ -18,15 +18,12 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var utils_exports = {};
20
20
  __export(utils_exports, {
21
- extractUsedTable: () => extractUsedTable,
22
21
  getMaterializedViewConfig: () => getMaterializedViewConfig,
23
22
  getTableConfig: () => getTableConfig,
24
23
  getViewConfig: () => getViewConfig
25
24
  });
26
25
  module.exports = __toCommonJS(utils_exports);
27
26
  var import_entity = require("../entity.cjs");
28
- var import_sql = require("../sql/sql.cjs");
29
- var import_subquery = require("../subquery.cjs");
30
27
  var import_table = require("../table.cjs");
31
28
  var import_view_common = require("../view-common.cjs");
32
29
  var import_checks = require("./checks.cjs");
@@ -82,18 +79,6 @@ function getTableConfig(table) {
82
79
  enableRLS
83
80
  };
84
81
  }
85
- function extractUsedTable(table) {
86
- if ((0, import_entity.is)(table, import_table2.GelTable)) {
87
- return [`${table[import_table.Table.Symbol.BaseName]}`];
88
- }
89
- if ((0, import_entity.is)(table, import_subquery.Subquery)) {
90
- return table._.usedTables ?? [];
91
- }
92
- if ((0, import_entity.is)(table, import_sql.SQL)) {
93
- return table.usedTables ?? [];
94
- }
95
- return [];
96
- }
97
82
  function getViewConfig(view) {
98
83
  return {
99
84
  ...view[import_view_common.ViewBaseConfig],
@@ -108,7 +93,6 @@ function getMaterializedViewConfig(view) {
108
93
  }
109
94
  // Annotate the CommonJS export names for ESM import in node:
110
95
  0 && (module.exports = {
111
- extractUsedTable,
112
96
  getMaterializedViewConfig,
113
97
  getTableConfig,
114
98
  getViewConfig
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gel-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { SQL } from '~/sql/sql.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyGelColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { GelPolicy } from './policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { GelTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport type { GelViewBase } from './view-base.ts';\nimport { GelViewConfig } from './view-common.ts';\nimport { type GelMaterializedView, GelMaterializedViewConfig, type GelView } from './view.ts';\n\nexport function getTableConfig<TTable extends GelTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[GelTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: GelPolicy[] = [];\n\tconst enableRLS: boolean = table[GelTable.Symbol.EnableRLS];\n\n\tconst extraConfigBuilder = table[GelTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of extraValues) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, GelPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t\tenableRLS,\n\t};\n}\n\nexport function extractUsedTable(table: GelTable | Subquery | GelViewBase | SQL): string[] {\n\tif (is(table, GelTable)) {\n\t\treturn [`${table[Table.Symbol.BaseName]}`];\n\t}\n\tif (is(table, Subquery)) {\n\t\treturn table._.usedTables ?? [];\n\t}\n\tif (is(table, SQL)) {\n\t\treturn table.usedTables ?? [];\n\t}\n\treturn [];\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyGelColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyGelColumn<{ tableName: TForeignTableName }> };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,iBAAoB;AACpB,sBAAyB;AACzB,mBAAsB;AACtB,yBAA+B;AAC/B,oBAAyC;AAEzC,0BAAmD;AAEnD,qBAA6B;AAC7B,sBAA0B;AAC1B,0BAAmD;AACnD,IAAAA,gBAAyB;AACzB,+BAA+D;AAE/D,IAAAC,sBAA8B;AAC9B,kBAAkF;AAE3E,SAAS,eAAwC,OAAe;AACtE,QAAM,UAAU,OAAO,OAAO,MAAM,mBAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,uBAAS,OAAO,iBAAiB,CAAC;AACxF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,mBAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,mBAAM,OAAO,MAAM;AACxC,QAAM,WAAwB,CAAC;AAC/B,QAAM,YAAqB,MAAM,uBAAS,OAAO,SAAS;AAE1D,QAAM,qBAAqB,MAAM,uBAAS,OAAO,kBAAkB;AAEnE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,mBAAM,OAAO,kBAAkB,CAAC;AAC7E,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,aAAa;AAClC,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,0BAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,yBAAS,GAAG;AAClC,iBAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,iBAAiB,OAA0D;AAC1F,UAAI,kBAAG,OAAO,sBAAQ,GAAG;AACxB,WAAO,CAAC,GAAG,MAAM,mBAAM,OAAO,QAAQ,CAAC,EAAE;AAAA,EAC1C;AACA,UAAI,kBAAG,OAAO,wBAAQ,GAAG;AACxB,WAAO,MAAM,EAAE,cAAc,CAAC;AAAA,EAC/B;AACA,UAAI,kBAAG,OAAO,cAAG,GAAG;AACnB,WAAO,MAAM,cAAc,CAAC;AAAA,EAC7B;AACA,SAAO,CAAC;AACT;AAEO,SAAS,cAGd,MAAiC;AAClC,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,iCAAa;AAAA,EACtB;AACD;AAEO,SAAS,0BAGd,MAA6C;AAC9C,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,qCAAyB;AAAA,EAClC;AACD;","names":["import_table","import_view_common"]}
1
+ {"version":3,"sources":["../../src/gel-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyGelColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { GelPolicy } from './policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { GelTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { GelViewConfig } from './view-common.ts';\nimport { type GelMaterializedView, GelMaterializedViewConfig, type GelView } from './view.ts';\n\nexport function getTableConfig<TTable extends GelTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[GelTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: GelPolicy[] = [];\n\tconst enableRLS: boolean = table[GelTable.Symbol.EnableRLS];\n\n\tconst extraConfigBuilder = table[GelTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of extraValues) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, GelPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t\tenableRLS,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: GelMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[GelMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyGelColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyGelColumn<{ tableName: TForeignTableName }> };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,mBAAsB;AACtB,yBAA+B;AAC/B,oBAAyC;AAEzC,0BAAmD;AAEnD,qBAA6B;AAC7B,sBAA0B;AAC1B,0BAAmD;AACnD,IAAAA,gBAAyB;AACzB,+BAA+D;AAC/D,IAAAC,sBAA8B;AAC9B,kBAAkF;AAE3E,SAAS,eAAwC,OAAe;AACtE,QAAM,UAAU,OAAO,OAAO,MAAM,mBAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,uBAAS,OAAO,iBAAiB,CAAC;AACxF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,mBAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,mBAAM,OAAO,MAAM;AACxC,QAAM,WAAwB,CAAC;AAC/B,QAAM,YAAqB,MAAM,uBAAS,OAAO,SAAS;AAE1D,QAAM,qBAAqB,MAAM,uBAAS,OAAO,kBAAkB;AAEnE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,mBAAM,OAAO,kBAAkB,CAAC;AAC7E,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,aAAa;AAClC,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,0BAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,yBAAS,GAAG;AAClC,iBAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAiC;AAClC,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,iCAAa;AAAA,EACtB;AACD;AAEO,SAAS,0BAGd,MAA6C;AAC9C,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,qCAAyB;AAAA,EAClC;AACD;","names":["import_table","import_view_common"]}
@@ -1,5 +1,3 @@
1
- import { SQL } from "../sql/sql.cjs";
2
- import { Subquery } from "../subquery.cjs";
3
1
  import { type Check } from "./checks.cjs";
4
2
  import type { AnyGelColumn } from "./columns/index.cjs";
5
3
  import { type ForeignKey } from "./foreign-keys.cjs";
@@ -8,7 +6,6 @@ import { GelPolicy } from "./policies.cjs";
8
6
  import { type PrimaryKey } from "./primary-keys.cjs";
9
7
  import { GelTable } from "./table.cjs";
10
8
  import { type UniqueConstraint } from "./unique-constraint.cjs";
11
- import type { GelViewBase } from "./view-base.cjs";
12
9
  import { type GelMaterializedView, type GelView } from "./view.cjs";
13
10
  export declare function getTableConfig<TTable extends GelTable>(table: TTable): {
14
11
  columns: import("./index.ts").GelColumn<import("../column.ts").ColumnBaseConfig<import("../column-builder.ts").ColumnDataType, string>, {}, {}>[];
@@ -22,15 +19,14 @@ export declare function getTableConfig<TTable extends GelTable>(table: TTable):
22
19
  policies: GelPolicy[];
23
20
  enableRLS: boolean;
24
21
  };
25
- export declare function extractUsedTable(table: GelTable | Subquery | GelViewBase | SQL): string[];
26
22
  export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: GelView<TName, TExisting>): {
27
23
  with?: import("./view.ts").ViewWithConfig;
28
24
  name: TName;
29
25
  originalName: TName;
30
26
  schema: string | undefined;
31
- selectedFields: import("../sql/sql.ts").ColumnsSelection;
27
+ selectedFields: import("../index.ts").ColumnsSelection;
32
28
  isExisting: TExisting;
33
- query: TExisting extends true ? undefined : SQL<unknown>;
29
+ query: TExisting extends true ? undefined : import("../index.ts").SQL<unknown>;
34
30
  isAlias: boolean;
35
31
  };
36
32
  export declare function getMaterializedViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: GelMaterializedView<TName, TExisting>): {
@@ -41,9 +37,9 @@ export declare function getMaterializedViewConfig<TName extends string = string,
41
37
  name: TName;
42
38
  originalName: TName;
43
39
  schema: string | undefined;
44
- selectedFields: import("../sql/sql.ts").ColumnsSelection;
40
+ selectedFields: import("../index.ts").ColumnsSelection;
45
41
  isExisting: TExisting;
46
- query: TExisting extends true ? undefined : SQL<unknown>;
42
+ query: TExisting extends true ? undefined : import("../index.ts").SQL<unknown>;
47
43
  isAlias: boolean;
48
44
  };
49
45
  export type ColumnsWithTable<TTableName extends string, TForeignTableName extends string, TColumns extends AnyGelColumn<{
@@ -1,5 +1,3 @@
1
- import { SQL } from "../sql/sql.js";
2
- import { Subquery } from "../subquery.js";
3
1
  import { type Check } from "./checks.js";
4
2
  import type { AnyGelColumn } from "./columns/index.js";
5
3
  import { type ForeignKey } from "./foreign-keys.js";
@@ -8,7 +6,6 @@ import { GelPolicy } from "./policies.js";
8
6
  import { type PrimaryKey } from "./primary-keys.js";
9
7
  import { GelTable } from "./table.js";
10
8
  import { type UniqueConstraint } from "./unique-constraint.js";
11
- import type { GelViewBase } from "./view-base.js";
12
9
  import { type GelMaterializedView, type GelView } from "./view.js";
13
10
  export declare function getTableConfig<TTable extends GelTable>(table: TTable): {
14
11
  columns: import("./index.js").GelColumn<import("../column.js").ColumnBaseConfig<import("../column-builder.js").ColumnDataType, string>, {}, {}>[];
@@ -22,15 +19,14 @@ export declare function getTableConfig<TTable extends GelTable>(table: TTable):
22
19
  policies: GelPolicy[];
23
20
  enableRLS: boolean;
24
21
  };
25
- export declare function extractUsedTable(table: GelTable | Subquery | GelViewBase | SQL): string[];
26
22
  export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: GelView<TName, TExisting>): {
27
23
  with?: import("./view.js").ViewWithConfig;
28
24
  name: TName;
29
25
  originalName: TName;
30
26
  schema: string | undefined;
31
- selectedFields: import("../sql/sql.js").ColumnsSelection;
27
+ selectedFields: import("../index.js").ColumnsSelection;
32
28
  isExisting: TExisting;
33
- query: TExisting extends true ? undefined : SQL<unknown>;
29
+ query: TExisting extends true ? undefined : import("../index.js").SQL<unknown>;
34
30
  isAlias: boolean;
35
31
  };
36
32
  export declare function getMaterializedViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: GelMaterializedView<TName, TExisting>): {
@@ -41,9 +37,9 @@ export declare function getMaterializedViewConfig<TName extends string = string,
41
37
  name: TName;
42
38
  originalName: TName;
43
39
  schema: string | undefined;
44
- selectedFields: import("../sql/sql.js").ColumnsSelection;
40
+ selectedFields: import("../index.js").ColumnsSelection;
45
41
  isExisting: TExisting;
46
- query: TExisting extends true ? undefined : SQL<unknown>;
42
+ query: TExisting extends true ? undefined : import("../index.js").SQL<unknown>;
47
43
  isAlias: boolean;
48
44
  };
49
45
  export type ColumnsWithTable<TTableName extends string, TForeignTableName extends string, TColumns extends AnyGelColumn<{
package/gel-core/utils.js CHANGED
@@ -1,6 +1,4 @@
1
1
  import { is } from "../entity.js";
2
- import { SQL } from "../sql/sql.js";
3
- import { Subquery } from "../subquery.js";
4
2
  import { Table } from "../table.js";
5
3
  import { ViewBaseConfig } from "../view-common.js";
6
4
  import { CheckBuilder } from "./checks.js";
@@ -56,18 +54,6 @@ function getTableConfig(table) {
56
54
  enableRLS
57
55
  };
58
56
  }
59
- function extractUsedTable(table) {
60
- if (is(table, GelTable)) {
61
- return [`${table[Table.Symbol.BaseName]}`];
62
- }
63
- if (is(table, Subquery)) {
64
- return table._.usedTables ?? [];
65
- }
66
- if (is(table, SQL)) {
67
- return table.usedTables ?? [];
68
- }
69
- return [];
70
- }
71
57
  function getViewConfig(view) {
72
58
  return {
73
59
  ...view[ViewBaseConfig],
@@ -81,7 +67,6 @@ function getMaterializedViewConfig(view) {
81
67
  };
82
68
  }
83
69
  export {
84
- extractUsedTable,
85
70
  getMaterializedViewConfig,
86
71
  getTableConfig,
87
72
  getViewConfig