drizzle-orm 0.39.3 → 0.40.0-53e792e

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 (1015) hide show
  1. package/_relations.cjs +328 -0
  2. package/_relations.cjs.map +1 -0
  3. package/_relations.d.cts +215 -0
  4. package/_relations.d.ts +215 -0
  5. package/_relations.js +316 -0
  6. package/_relations.js.map +1 -0
  7. package/alias.cjs.map +1 -1
  8. package/alias.d.cts +3 -3
  9. package/alias.d.ts +3 -3
  10. package/alias.js.map +1 -1
  11. package/aws-data-api/pg/driver.cjs +19 -5
  12. package/aws-data-api/pg/driver.cjs.map +1 -1
  13. package/aws-data-api/pg/driver.d.cts +9 -8
  14. package/aws-data-api/pg/driver.d.ts +9 -8
  15. package/aws-data-api/pg/driver.js +9 -8
  16. package/aws-data-api/pg/driver.js.map +1 -1
  17. package/aws-data-api/pg/migrator.cjs.map +1 -1
  18. package/aws-data-api/pg/migrator.d.cts +2 -1
  19. package/aws-data-api/pg/migrator.d.ts +2 -1
  20. package/aws-data-api/pg/migrator.js.map +1 -1
  21. package/aws-data-api/pg/session.cjs +67 -4
  22. package/aws-data-api/pg/session.cjs.map +1 -1
  23. package/aws-data-api/pg/session.d.cts +13 -8
  24. package/aws-data-api/pg/session.d.ts +13 -8
  25. package/aws-data-api/pg/session.js +67 -4
  26. package/aws-data-api/pg/session.js.map +1 -1
  27. package/better-sqlite3/driver.cjs +12 -5
  28. package/better-sqlite3/driver.cjs.map +1 -1
  29. package/better-sqlite3/driver.d.cts +7 -6
  30. package/better-sqlite3/driver.d.ts +7 -6
  31. package/better-sqlite3/driver.js +12 -8
  32. package/better-sqlite3/driver.js.map +1 -1
  33. package/better-sqlite3/migrator.cjs.map +1 -1
  34. package/better-sqlite3/migrator.d.cts +2 -1
  35. package/better-sqlite3/migrator.d.ts +2 -1
  36. package/better-sqlite3/migrator.js.map +1 -1
  37. package/better-sqlite3/session.cjs +49 -4
  38. package/better-sqlite3/session.cjs.map +1 -1
  39. package/better-sqlite3/session.d.cts +14 -8
  40. package/better-sqlite3/session.d.ts +14 -8
  41. package/better-sqlite3/session.js +49 -4
  42. package/better-sqlite3/session.js.map +1 -1
  43. package/bun-sql/driver.cjs +16 -5
  44. package/bun-sql/driver.cjs.map +1 -1
  45. package/bun-sql/driver.d.cts +7 -6
  46. package/bun-sql/driver.d.ts +7 -6
  47. package/bun-sql/driver.js +6 -8
  48. package/bun-sql/driver.js.map +1 -1
  49. package/bun-sql/migrator.cjs.map +1 -1
  50. package/bun-sql/migrator.d.cts +2 -1
  51. package/bun-sql/migrator.d.ts +2 -1
  52. package/bun-sql/migrator.js.map +1 -1
  53. package/bun-sql/session.cjs +50 -6
  54. package/bun-sql/session.cjs.map +1 -1
  55. package/bun-sql/session.d.cts +14 -9
  56. package/bun-sql/session.d.ts +14 -9
  57. package/bun-sql/session.js +50 -6
  58. package/bun-sql/session.js.map +1 -1
  59. package/bun-sqlite/driver.cjs +22 -5
  60. package/bun-sqlite/driver.cjs.map +1 -1
  61. package/bun-sqlite/driver.d.cts +7 -6
  62. package/bun-sqlite/driver.d.ts +7 -6
  63. package/bun-sqlite/driver.js +12 -8
  64. package/bun-sqlite/driver.js.map +1 -1
  65. package/bun-sqlite/migrator.cjs.map +1 -1
  66. package/bun-sqlite/migrator.d.cts +2 -1
  67. package/bun-sqlite/migrator.d.ts +2 -1
  68. package/bun-sqlite/migrator.js.map +1 -1
  69. package/bun-sqlite/session.cjs +49 -4
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +14 -8
  72. package/bun-sqlite/session.d.ts +14 -8
  73. package/bun-sqlite/session.js +49 -4
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/casing.cjs +3 -0
  76. package/casing.cjs.map +1 -1
  77. package/casing.d.cts +1 -1
  78. package/casing.d.ts +1 -1
  79. package/casing.js +4 -1
  80. package/casing.js.map +1 -1
  81. package/column-builder.cjs.map +1 -1
  82. package/column-builder.d.cts +6 -5
  83. package/column-builder.d.ts +6 -5
  84. package/column-builder.js.map +1 -1
  85. package/d1/driver.cjs +22 -5
  86. package/d1/driver.cjs.map +1 -1
  87. package/d1/driver.d.cts +3 -2
  88. package/d1/driver.d.ts +3 -2
  89. package/d1/driver.js +12 -8
  90. package/d1/driver.js.map +1 -1
  91. package/d1/migrator.cjs.map +1 -1
  92. package/d1/migrator.d.cts +2 -1
  93. package/d1/migrator.d.ts +2 -1
  94. package/d1/migrator.js.map +1 -1
  95. package/d1/session.cjs +50 -8
  96. package/d1/session.cjs.map +1 -1
  97. package/d1/session.d.cts +15 -8
  98. package/d1/session.d.ts +15 -8
  99. package/d1/session.js +50 -8
  100. package/d1/session.js.map +1 -1
  101. package/durable-sqlite/driver.cjs +16 -5
  102. package/durable-sqlite/driver.cjs.map +1 -1
  103. package/durable-sqlite/driver.d.cts +3 -2
  104. package/durable-sqlite/driver.d.ts +3 -2
  105. package/durable-sqlite/driver.js +6 -8
  106. package/durable-sqlite/driver.js.map +1 -1
  107. package/durable-sqlite/migrator.cjs.map +1 -1
  108. package/durable-sqlite/migrator.d.cts +2 -1
  109. package/durable-sqlite/migrator.d.ts +2 -1
  110. package/durable-sqlite/migrator.js.map +1 -1
  111. package/durable-sqlite/session.cjs +46 -4
  112. package/durable-sqlite/session.cjs.map +1 -1
  113. package/durable-sqlite/session.d.cts +14 -8
  114. package/durable-sqlite/session.d.ts +14 -8
  115. package/durable-sqlite/session.js +46 -4
  116. package/durable-sqlite/session.js.map +1 -1
  117. package/expo-sqlite/driver.cjs +22 -5
  118. package/expo-sqlite/driver.cjs.map +1 -1
  119. package/expo-sqlite/driver.d.cts +3 -2
  120. package/expo-sqlite/driver.d.ts +3 -2
  121. package/expo-sqlite/driver.js +12 -8
  122. package/expo-sqlite/driver.js.map +1 -1
  123. package/expo-sqlite/migrator.cjs.map +1 -1
  124. package/expo-sqlite/migrator.d.cts +3 -2
  125. package/expo-sqlite/migrator.d.ts +3 -2
  126. package/expo-sqlite/migrator.js.map +1 -1
  127. package/expo-sqlite/query.cjs +13 -2
  128. package/expo-sqlite/query.cjs.map +1 -1
  129. package/expo-sqlite/query.d.cts +2 -1
  130. package/expo-sqlite/query.d.ts +2 -1
  131. package/expo-sqlite/query.js +3 -2
  132. package/expo-sqlite/query.js.map +1 -1
  133. package/expo-sqlite/session.cjs +47 -4
  134. package/expo-sqlite/session.cjs.map +1 -1
  135. package/expo-sqlite/session.d.cts +14 -8
  136. package/expo-sqlite/session.d.ts +14 -8
  137. package/expo-sqlite/session.js +47 -4
  138. package/expo-sqlite/session.js.map +1 -1
  139. package/gel/driver.cjs +108 -0
  140. package/gel/driver.cjs.map +1 -0
  141. package/gel/driver.d.cts +39 -0
  142. package/gel/driver.d.ts +39 -0
  143. package/gel/driver.js +72 -0
  144. package/gel/driver.js.map +1 -0
  145. package/gel/index.cjs +25 -0
  146. package/gel/index.cjs.map +1 -0
  147. package/gel/index.d.cts +2 -0
  148. package/gel/index.d.ts +2 -0
  149. package/gel/index.js +3 -0
  150. package/gel/index.js.map +1 -0
  151. package/gel/migrator.cjs +5 -0
  152. package/gel/migrator.cjs.map +1 -0
  153. package/gel/migrator.d.cts +1 -0
  154. package/gel/migrator.d.ts +1 -0
  155. package/gel/migrator.js +4 -0
  156. package/gel/migrator.js.map +1 -0
  157. package/gel/session.cjs +181 -0
  158. package/gel/session.cjs.map +1 -0
  159. package/gel/session.d.cts +52 -0
  160. package/gel/session.d.ts +52 -0
  161. package/gel/session.js +155 -0
  162. package/gel/session.js.map +1 -0
  163. package/gel-core/alias.cjs +32 -0
  164. package/gel-core/alias.cjs.map +1 -0
  165. package/gel-core/alias.d.cts +4 -0
  166. package/gel-core/alias.d.ts +4 -0
  167. package/gel-core/alias.js +8 -0
  168. package/gel-core/alias.js.map +1 -0
  169. package/gel-core/checks.cjs +58 -0
  170. package/gel-core/checks.cjs.map +1 -0
  171. package/gel-core/checks.d.cts +18 -0
  172. package/gel-core/checks.d.ts +18 -0
  173. package/gel-core/checks.js +32 -0
  174. package/gel-core/checks.js.map +1 -0
  175. package/gel-core/columns/all.cjs +72 -0
  176. package/gel-core/columns/all.cjs.map +1 -0
  177. package/gel-core/columns/all.d.cts +43 -0
  178. package/gel-core/columns/all.d.ts +43 -0
  179. package/gel-core/columns/all.js +48 -0
  180. package/gel-core/columns/all.js.map +1 -0
  181. package/gel-core/columns/bigint.cjs +54 -0
  182. package/gel-core/columns/bigint.cjs.map +1 -0
  183. package/gel-core/columns/bigint.d.cts +23 -0
  184. package/gel-core/columns/bigint.d.ts +23 -0
  185. package/gel-core/columns/bigint.js +28 -0
  186. package/gel-core/columns/bigint.js.map +1 -0
  187. package/gel-core/columns/bigintT.cjs +60 -0
  188. package/gel-core/columns/bigintT.cjs.map +1 -0
  189. package/gel-core/columns/bigintT.d.cts +24 -0
  190. package/gel-core/columns/bigintT.d.ts +24 -0
  191. package/gel-core/columns/bigintT.js +34 -0
  192. package/gel-core/columns/bigintT.js.map +1 -0
  193. package/gel-core/columns/boolean.cjs +53 -0
  194. package/gel-core/columns/boolean.cjs.map +1 -0
  195. package/gel-core/columns/boolean.d.cts +22 -0
  196. package/gel-core/columns/boolean.d.ts +22 -0
  197. package/gel-core/columns/boolean.js +27 -0
  198. package/gel-core/columns/boolean.js.map +1 -0
  199. package/gel-core/columns/bytes.cjs +56 -0
  200. package/gel-core/columns/bytes.cjs.map +1 -0
  201. package/gel-core/columns/bytes.d.cts +22 -0
  202. package/gel-core/columns/bytes.d.ts +22 -0
  203. package/gel-core/columns/bytes.js +30 -0
  204. package/gel-core/columns/bytes.js.map +1 -0
  205. package/gel-core/columns/common.cjs +213 -0
  206. package/gel-core/columns/common.cjs.map +1 -0
  207. package/gel-core/columns/common.d.cts +147 -0
  208. package/gel-core/columns/common.d.ts +147 -0
  209. package/gel-core/columns/common.js +184 -0
  210. package/gel-core/columns/common.js.map +1 -0
  211. package/gel-core/columns/custom.cjs +77 -0
  212. package/gel-core/columns/custom.cjs.map +1 -0
  213. package/gel-core/columns/custom.d.cts +155 -0
  214. package/gel-core/columns/custom.d.ts +155 -0
  215. package/gel-core/columns/custom.js +51 -0
  216. package/gel-core/columns/custom.js.map +1 -0
  217. package/gel-core/columns/date-duration.cjs +56 -0
  218. package/gel-core/columns/date-duration.cjs.map +1 -0
  219. package/gel-core/columns/date-duration.d.cts +23 -0
  220. package/gel-core/columns/date-duration.d.ts +23 -0
  221. package/gel-core/columns/date-duration.js +30 -0
  222. package/gel-core/columns/date-duration.js.map +1 -0
  223. package/gel-core/columns/date.common.cjs +37 -0
  224. package/gel-core/columns/date.common.cjs.map +1 -0
  225. package/gel-core/columns/date.common.d.cts +7 -0
  226. package/gel-core/columns/date.common.d.ts +7 -0
  227. package/gel-core/columns/date.common.js +13 -0
  228. package/gel-core/columns/date.common.js.map +1 -0
  229. package/gel-core/columns/decimal.cjs +56 -0
  230. package/gel-core/columns/decimal.cjs.map +1 -0
  231. package/gel-core/columns/decimal.d.cts +26 -0
  232. package/gel-core/columns/decimal.d.ts +26 -0
  233. package/gel-core/columns/decimal.js +30 -0
  234. package/gel-core/columns/decimal.js.map +1 -0
  235. package/gel-core/columns/double-precision.cjs +62 -0
  236. package/gel-core/columns/double-precision.cjs.map +1 -0
  237. package/gel-core/columns/double-precision.d.cts +23 -0
  238. package/gel-core/columns/double-precision.d.ts +23 -0
  239. package/gel-core/columns/double-precision.js +36 -0
  240. package/gel-core/columns/double-precision.js.map +1 -0
  241. package/gel-core/columns/duration.cjs +53 -0
  242. package/gel-core/columns/duration.cjs.map +1 -0
  243. package/gel-core/columns/duration.d.cts +23 -0
  244. package/gel-core/columns/duration.d.ts +23 -0
  245. package/gel-core/columns/duration.js +27 -0
  246. package/gel-core/columns/duration.js.map +1 -0
  247. package/gel-core/columns/index.cjs +65 -0
  248. package/gel-core/columns/index.cjs.map +1 -0
  249. package/gel-core/columns/index.d.cts +22 -0
  250. package/gel-core/columns/index.d.ts +22 -0
  251. package/gel-core/columns/index.js +23 -0
  252. package/gel-core/columns/index.js.map +1 -0
  253. package/gel-core/columns/int.common.cjs +67 -0
  254. package/gel-core/columns/int.common.cjs.map +1 -0
  255. package/gel-core/columns/int.common.d.cts +15 -0
  256. package/gel-core/columns/int.common.d.ts +15 -0
  257. package/gel-core/columns/int.common.js +43 -0
  258. package/gel-core/columns/int.common.js.map +1 -0
  259. package/gel-core/columns/integer.cjs +54 -0
  260. package/gel-core/columns/integer.cjs.map +1 -0
  261. package/gel-core/columns/integer.d.cts +23 -0
  262. package/gel-core/columns/integer.d.ts +23 -0
  263. package/gel-core/columns/integer.js +28 -0
  264. package/gel-core/columns/integer.js.map +1 -0
  265. package/gel-core/columns/json.cjs +56 -0
  266. package/gel-core/columns/json.cjs.map +1 -0
  267. package/gel-core/columns/json.d.cts +26 -0
  268. package/gel-core/columns/json.d.ts +26 -0
  269. package/gel-core/columns/json.js +30 -0
  270. package/gel-core/columns/json.js.map +1 -0
  271. package/gel-core/columns/localdate.cjs +57 -0
  272. package/gel-core/columns/localdate.cjs.map +1 -0
  273. package/gel-core/columns/localdate.d.cts +24 -0
  274. package/gel-core/columns/localdate.d.ts +24 -0
  275. package/gel-core/columns/localdate.js +31 -0
  276. package/gel-core/columns/localdate.js.map +1 -0
  277. package/gel-core/columns/localtime.cjs +57 -0
  278. package/gel-core/columns/localtime.cjs.map +1 -0
  279. package/gel-core/columns/localtime.d.cts +24 -0
  280. package/gel-core/columns/localtime.d.ts +24 -0
  281. package/gel-core/columns/localtime.js +31 -0
  282. package/gel-core/columns/localtime.js.map +1 -0
  283. package/gel-core/columns/real.cjs +57 -0
  284. package/gel-core/columns/real.cjs.map +1 -0
  285. package/gel-core/columns/real.d.cts +28 -0
  286. package/gel-core/columns/real.d.ts +28 -0
  287. package/gel-core/columns/real.js +31 -0
  288. package/gel-core/columns/real.js.map +1 -0
  289. package/gel-core/columns/relative-duration.cjs +56 -0
  290. package/gel-core/columns/relative-duration.cjs.map +1 -0
  291. package/gel-core/columns/relative-duration.d.cts +23 -0
  292. package/gel-core/columns/relative-duration.d.ts +23 -0
  293. package/gel-core/columns/relative-duration.js +30 -0
  294. package/gel-core/columns/relative-duration.js.map +1 -0
  295. package/gel-core/columns/smallint.cjs +54 -0
  296. package/gel-core/columns/smallint.cjs.map +1 -0
  297. package/gel-core/columns/smallint.d.cts +23 -0
  298. package/gel-core/columns/smallint.d.ts +23 -0
  299. package/gel-core/columns/smallint.js +28 -0
  300. package/gel-core/columns/smallint.js.map +1 -0
  301. package/gel-core/columns/text.cjs +54 -0
  302. package/gel-core/columns/text.cjs.map +1 -0
  303. package/gel-core/columns/text.d.cts +26 -0
  304. package/gel-core/columns/text.d.ts +26 -0
  305. package/gel-core/columns/text.js +28 -0
  306. package/gel-core/columns/text.js.map +1 -0
  307. package/gel-core/columns/timestamp.cjs +60 -0
  308. package/gel-core/columns/timestamp.cjs.map +1 -0
  309. package/gel-core/columns/timestamp.d.cts +28 -0
  310. package/gel-core/columns/timestamp.d.ts +28 -0
  311. package/gel-core/columns/timestamp.js +34 -0
  312. package/gel-core/columns/timestamp.js.map +1 -0
  313. package/gel-core/columns/timestamptz.cjs +65 -0
  314. package/gel-core/columns/timestamptz.cjs.map +1 -0
  315. package/gel-core/columns/timestamptz.d.cts +28 -0
  316. package/gel-core/columns/timestamptz.d.ts +28 -0
  317. package/gel-core/columns/timestamptz.js +39 -0
  318. package/gel-core/columns/timestamptz.js.map +1 -0
  319. package/gel-core/columns/uuid.cjs +53 -0
  320. package/gel-core/columns/uuid.cjs.map +1 -0
  321. package/gel-core/columns/uuid.d.cts +22 -0
  322. package/gel-core/columns/uuid.d.ts +22 -0
  323. package/gel-core/columns/uuid.js +27 -0
  324. package/gel-core/columns/uuid.js.map +1 -0
  325. package/gel-core/db.cjs +362 -0
  326. package/gel-core/db.cjs.map +1 -0
  327. package/gel-core/db.d.cts +288 -0
  328. package/gel-core/db.d.ts +288 -0
  329. package/gel-core/db.js +343 -0
  330. package/gel-core/db.js.map +1 -0
  331. package/gel-core/dialect.cjs +826 -0
  332. package/gel-core/dialect.cjs.map +1 -0
  333. package/gel-core/dialect.d.cts +80 -0
  334. package/gel-core/dialect.d.ts +80 -0
  335. package/gel-core/dialect.js +803 -0
  336. package/gel-core/dialect.js.map +1 -0
  337. package/gel-core/expressions.cjs +49 -0
  338. package/gel-core/expressions.cjs.map +1 -0
  339. package/gel-core/expressions.d.cts +8 -0
  340. package/gel-core/expressions.d.ts +8 -0
  341. package/gel-core/expressions.js +22 -0
  342. package/gel-core/expressions.js.map +1 -0
  343. package/gel-core/foreign-keys.cjs +100 -0
  344. package/gel-core/foreign-keys.cjs.map +1 -0
  345. package/gel-core/foreign-keys.d.cts +48 -0
  346. package/gel-core/foreign-keys.d.ts +48 -0
  347. package/gel-core/foreign-keys.js +74 -0
  348. package/gel-core/foreign-keys.js.map +1 -0
  349. package/gel-core/index.cjs +61 -0
  350. package/gel-core/index.cjs.map +1 -0
  351. package/gel-core/index.d.cts +20 -0
  352. package/gel-core/index.d.ts +20 -0
  353. package/gel-core/index.js +21 -0
  354. package/gel-core/index.js.map +1 -0
  355. package/gel-core/indexes.cjs +149 -0
  356. package/gel-core/indexes.cjs.map +1 -0
  357. package/gel-core/indexes.d.cts +79 -0
  358. package/gel-core/indexes.d.ts +79 -0
  359. package/gel-core/indexes.js +121 -0
  360. package/gel-core/indexes.js.map +1 -0
  361. package/gel-core/policies.cjs +58 -0
  362. package/gel-core/policies.cjs.map +1 -0
  363. package/gel-core/policies.d.cts +24 -0
  364. package/gel-core/policies.d.ts +24 -0
  365. package/gel-core/policies.js +33 -0
  366. package/gel-core/policies.js.map +1 -0
  367. package/gel-core/primary-keys.cjs +68 -0
  368. package/gel-core/primary-keys.cjs.map +1 -0
  369. package/gel-core/primary-keys.d.cts +30 -0
  370. package/gel-core/primary-keys.d.ts +30 -0
  371. package/gel-core/primary-keys.js +42 -0
  372. package/gel-core/primary-keys.js.map +1 -0
  373. package/gel-core/query-builders/_query.cjs +149 -0
  374. package/gel-core/query-builders/_query.cjs.map +1 -0
  375. package/gel-core/query-builders/_query.d.cts +46 -0
  376. package/gel-core/query-builders/_query.d.ts +46 -0
  377. package/gel-core/query-builders/_query.js +114 -0
  378. package/gel-core/query-builders/_query.js.map +1 -0
  379. package/gel-core/query-builders/count.cjs +73 -0
  380. package/gel-core/query-builders/count.cjs.map +1 -0
  381. package/gel-core/query-builders/count.d.cts +25 -0
  382. package/gel-core/query-builders/count.d.ts +25 -0
  383. package/gel-core/query-builders/count.js +49 -0
  384. package/gel-core/query-builders/count.js.map +1 -0
  385. package/gel-core/query-builders/delete.cjs +105 -0
  386. package/gel-core/query-builders/delete.cjs.map +1 -0
  387. package/gel-core/query-builders/delete.d.cts +99 -0
  388. package/gel-core/query-builders/delete.d.ts +99 -0
  389. package/gel-core/query-builders/delete.js +81 -0
  390. package/gel-core/query-builders/delete.js.map +1 -0
  391. package/gel-core/query-builders/index.cjs +35 -0
  392. package/gel-core/query-builders/index.cjs.map +1 -0
  393. package/gel-core/query-builders/index.d.cts +7 -0
  394. package/gel-core/query-builders/index.d.ts +7 -0
  395. package/gel-core/query-builders/index.js +8 -0
  396. package/gel-core/query-builders/index.js.map +1 -0
  397. package/gel-core/query-builders/insert.cjs +218 -0
  398. package/gel-core/query-builders/insert.cjs.map +1 -0
  399. package/gel-core/query-builders/insert.d.cts +116 -0
  400. package/gel-core/query-builders/insert.d.ts +116 -0
  401. package/gel-core/query-builders/insert.js +193 -0
  402. package/gel-core/query-builders/insert.js.map +1 -0
  403. package/gel-core/query-builders/query-builder.cjs +114 -0
  404. package/gel-core/query-builders/query-builder.cjs.map +1 -0
  405. package/gel-core/query-builders/query-builder.d.cts +40 -0
  406. package/gel-core/query-builders/query-builder.d.ts +40 -0
  407. package/gel-core/query-builders/query-builder.js +90 -0
  408. package/gel-core/query-builders/query-builder.js.map +1 -0
  409. package/gel-core/query-builders/query.cjs +142 -0
  410. package/gel-core/query-builders/query.cjs.map +1 -0
  411. package/gel-core/query-builders/query.d.cts +47 -0
  412. package/gel-core/query-builders/query.d.ts +47 -0
  413. package/gel-core/query-builders/query.js +119 -0
  414. package/gel-core/query-builders/query.js.map +1 -0
  415. package/gel-core/query-builders/raw.cjs +57 -0
  416. package/gel-core/query-builders/raw.cjs.map +1 -0
  417. package/gel-core/query-builders/raw.d.cts +22 -0
  418. package/gel-core/query-builders/raw.d.ts +22 -0
  419. package/gel-core/query-builders/raw.js +33 -0
  420. package/gel-core/query-builders/raw.js.map +1 -0
  421. package/gel-core/query-builders/refresh-materialized-view.cjs +77 -0
  422. package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  423. package/gel-core/query-builders/refresh-materialized-view.d.cts +27 -0
  424. package/gel-core/query-builders/refresh-materialized-view.d.ts +27 -0
  425. package/gel-core/query-builders/refresh-materialized-view.js +53 -0
  426. package/gel-core/query-builders/refresh-materialized-view.js.map +1 -0
  427. package/gel-core/query-builders/select.cjs +775 -0
  428. package/gel-core/query-builders/select.cjs.map +1 -0
  429. package/gel-core/query-builders/select.d.cts +721 -0
  430. package/gel-core/query-builders/select.d.ts +721 -0
  431. package/gel-core/query-builders/select.js +748 -0
  432. package/gel-core/query-builders/select.js.map +1 -0
  433. package/gel-core/query-builders/select.types.cjs +17 -0
  434. package/gel-core/query-builders/select.types.cjs.map +1 -0
  435. package/gel-core/query-builders/select.types.d.cts +138 -0
  436. package/gel-core/query-builders/select.types.d.ts +138 -0
  437. package/gel-core/query-builders/select.types.js +1 -0
  438. package/gel-core/query-builders/select.types.js.map +1 -0
  439. package/gel-core/query-builders/update.cjs +226 -0
  440. package/gel-core/query-builders/update.cjs.map +1 -0
  441. package/gel-core/query-builders/update.d.cts +166 -0
  442. package/gel-core/query-builders/update.d.ts +166 -0
  443. package/gel-core/query-builders/update.js +205 -0
  444. package/gel-core/query-builders/update.js.map +1 -0
  445. package/gel-core/roles.cjs +57 -0
  446. package/gel-core/roles.cjs.map +1 -0
  447. package/gel-core/roles.d.cts +13 -0
  448. package/gel-core/roles.d.ts +13 -0
  449. package/gel-core/roles.js +32 -0
  450. package/gel-core/roles.js.map +1 -0
  451. package/gel-core/schema.cjs +74 -0
  452. package/gel-core/schema.cjs.map +1 -0
  453. package/gel-core/schema.d.cts +15 -0
  454. package/gel-core/schema.d.ts +15 -0
  455. package/gel-core/schema.js +48 -0
  456. package/gel-core/schema.js.map +1 -0
  457. package/gel-core/sequence.cjs +52 -0
  458. package/gel-core/sequence.cjs.map +1 -0
  459. package/gel-core/sequence.d.cts +18 -0
  460. package/gel-core/sequence.d.ts +18 -0
  461. package/gel-core/sequence.js +25 -0
  462. package/gel-core/sequence.js.map +1 -0
  463. package/gel-core/session.cjs +95 -0
  464. package/gel-core/session.cjs.map +1 -0
  465. package/gel-core/session.d.cts +59 -0
  466. package/gel-core/session.d.ts +59 -0
  467. package/gel-core/session.js +69 -0
  468. package/gel-core/session.js.map +1 -0
  469. package/gel-core/subquery.cjs +17 -0
  470. package/gel-core/subquery.cjs.map +1 -0
  471. package/gel-core/subquery.d.cts +5 -0
  472. package/gel-core/subquery.d.ts +5 -0
  473. package/gel-core/subquery.js +1 -0
  474. package/gel-core/subquery.js.map +1 -0
  475. package/gel-core/table.cjs +100 -0
  476. package/gel-core/table.cjs.map +1 -0
  477. package/gel-core/table.d.cts +95 -0
  478. package/gel-core/table.d.ts +95 -0
  479. package/gel-core/table.js +71 -0
  480. package/gel-core/table.js.map +1 -0
  481. package/gel-core/unique-constraint.cjs +89 -0
  482. package/gel-core/unique-constraint.cjs.map +1 -0
  483. package/gel-core/unique-constraint.d.cts +25 -0
  484. package/gel-core/unique-constraint.d.ts +25 -0
  485. package/gel-core/unique-constraint.js +61 -0
  486. package/gel-core/unique-constraint.js.map +1 -0
  487. package/gel-core/utils.cjs +100 -0
  488. package/gel-core/utils.cjs.map +1 -0
  489. package/gel-core/utils.d.cts +51 -0
  490. package/gel-core/utils.d.ts +51 -0
  491. package/gel-core/utils.js +74 -0
  492. package/gel-core/utils.js.map +1 -0
  493. package/gel-core/view-base.cjs +33 -0
  494. package/gel-core/view-base.cjs.map +1 -0
  495. package/gel-core/view-base.d.cts +8 -0
  496. package/gel-core/view-base.d.ts +8 -0
  497. package/gel-core/view-base.js +9 -0
  498. package/gel-core/view-base.js.map +1 -0
  499. package/gel-core/view-common.cjs +29 -0
  500. package/gel-core/view-common.cjs.map +1 -0
  501. package/gel-core/view-common.d.cts +1 -0
  502. package/gel-core/view-common.d.ts +1 -0
  503. package/gel-core/view-common.js +5 -0
  504. package/gel-core/view-common.js.map +1 -0
  505. package/gel-core/view.cjs +302 -0
  506. package/gel-core/view.cjs.map +1 -0
  507. package/gel-core/view.d.cts +150 -0
  508. package/gel-core/view.d.ts +150 -0
  509. package/gel-core/view.js +268 -0
  510. package/gel-core/view.js.map +1 -0
  511. package/libsql/driver-core.cjs +22 -5
  512. package/libsql/driver-core.cjs.map +1 -1
  513. package/libsql/driver-core.d.cts +2 -1
  514. package/libsql/driver-core.d.ts +2 -1
  515. package/libsql/driver-core.js +12 -8
  516. package/libsql/driver-core.js.map +1 -1
  517. package/libsql/driver.cjs.map +1 -1
  518. package/libsql/driver.d.cts +6 -5
  519. package/libsql/driver.d.ts +6 -5
  520. package/libsql/driver.js.map +1 -1
  521. package/libsql/http/index.cjs.map +1 -1
  522. package/libsql/http/index.d.cts +6 -5
  523. package/libsql/http/index.d.ts +6 -5
  524. package/libsql/http/index.js.map +1 -1
  525. package/libsql/migrator.cjs.map +1 -1
  526. package/libsql/migrator.d.cts +2 -1
  527. package/libsql/migrator.d.ts +2 -1
  528. package/libsql/migrator.js.map +1 -1
  529. package/libsql/node/index.cjs.map +1 -1
  530. package/libsql/node/index.d.cts +6 -5
  531. package/libsql/node/index.d.ts +6 -5
  532. package/libsql/node/index.js.map +1 -1
  533. package/libsql/session.cjs +56 -4
  534. package/libsql/session.cjs.map +1 -1
  535. package/libsql/session.d.cts +15 -9
  536. package/libsql/session.d.ts +15 -9
  537. package/libsql/session.js +56 -4
  538. package/libsql/session.js.map +1 -1
  539. package/libsql/sqlite3/index.cjs.map +1 -1
  540. package/libsql/sqlite3/index.d.cts +6 -5
  541. package/libsql/sqlite3/index.d.ts +6 -5
  542. package/libsql/sqlite3/index.js.map +1 -1
  543. package/libsql/wasm/index.cjs.map +1 -1
  544. package/libsql/wasm/index.d.cts +6 -5
  545. package/libsql/wasm/index.d.ts +6 -5
  546. package/libsql/wasm/index.js.map +1 -1
  547. package/libsql/web/index.cjs.map +1 -1
  548. package/libsql/web/index.d.cts +6 -5
  549. package/libsql/web/index.d.ts +6 -5
  550. package/libsql/web/index.js.map +1 -1
  551. package/libsql/ws/index.cjs.map +1 -1
  552. package/libsql/ws/index.d.cts +6 -5
  553. package/libsql/ws/index.d.ts +6 -5
  554. package/libsql/ws/index.js.map +1 -1
  555. package/mysql-core/db.cjs +30 -6
  556. package/mysql-core/db.cjs.map +1 -1
  557. package/mysql-core/db.d.cts +15 -8
  558. package/mysql-core/db.d.ts +15 -8
  559. package/mysql-core/db.js +29 -5
  560. package/mysql-core/db.js.map +1 -1
  561. package/mysql-core/dialect.cjs +198 -15
  562. package/mysql-core/dialect.cjs.map +1 -1
  563. package/mysql-core/dialect.d.cts +36 -13
  564. package/mysql-core/dialect.d.ts +36 -13
  565. package/mysql-core/dialect.js +196 -22
  566. package/mysql-core/dialect.js.map +1 -1
  567. package/mysql-core/query-builders/_query.cjs +149 -0
  568. package/mysql-core/query-builders/_query.cjs.map +1 -0
  569. package/mysql-core/query-builders/_query.d.cts +44 -0
  570. package/mysql-core/query-builders/_query.d.ts +44 -0
  571. package/mysql-core/query-builders/_query.js +114 -0
  572. package/mysql-core/query-builders/_query.js.map +1 -0
  573. package/mysql-core/query-builders/count.cjs.map +1 -1
  574. package/mysql-core/query-builders/count.d.cts +1 -1
  575. package/mysql-core/query-builders/count.d.ts +1 -1
  576. package/mysql-core/query-builders/count.js.map +1 -1
  577. package/mysql-core/query-builders/query.cjs +18 -31
  578. package/mysql-core/query-builders/query.cjs.map +1 -1
  579. package/mysql-core/query-builders/query.d.cts +8 -10
  580. package/mysql-core/query-builders/query.d.ts +8 -10
  581. package/mysql-core/query-builders/query.js +18 -31
  582. package/mysql-core/query-builders/query.js.map +1 -1
  583. package/mysql-core/session.cjs +3 -2
  584. package/mysql-core/session.cjs.map +1 -1
  585. package/mysql-core/session.d.cts +10 -7
  586. package/mysql-core/session.d.ts +10 -7
  587. package/mysql-core/session.js +3 -2
  588. package/mysql-core/session.js.map +1 -1
  589. package/mysql-proxy/driver.cjs +22 -5
  590. package/mysql-proxy/driver.cjs.map +1 -1
  591. package/mysql-proxy/driver.d.cts +3 -2
  592. package/mysql-proxy/driver.d.ts +3 -2
  593. package/mysql-proxy/driver.js +12 -8
  594. package/mysql-proxy/driver.js.map +1 -1
  595. package/mysql-proxy/migrator.cjs.map +1 -1
  596. package/mysql-proxy/migrator.d.cts +2 -1
  597. package/mysql-proxy/migrator.d.ts +2 -1
  598. package/mysql-proxy/migrator.js.map +1 -1
  599. package/mysql-proxy/session.cjs +27 -2
  600. package/mysql-proxy/session.cjs.map +1 -1
  601. package/mysql-proxy/session.d.cts +13 -8
  602. package/mysql-proxy/session.d.ts +13 -8
  603. package/mysql-proxy/session.js +27 -2
  604. package/mysql-proxy/session.js.map +1 -1
  605. package/mysql2/driver.cjs +24 -7
  606. package/mysql2/driver.cjs.map +1 -1
  607. package/mysql2/driver.d.cts +10 -9
  608. package/mysql2/driver.d.ts +10 -9
  609. package/mysql2/driver.js +14 -10
  610. package/mysql2/driver.js.map +1 -1
  611. package/mysql2/migrator.cjs.map +1 -1
  612. package/mysql2/migrator.d.cts +2 -1
  613. package/mysql2/migrator.d.ts +2 -1
  614. package/mysql2/migrator.js.map +1 -1
  615. package/mysql2/session.cjs +30 -2
  616. package/mysql2/session.cjs.map +1 -1
  617. package/mysql2/session.d.cts +13 -8
  618. package/mysql2/session.d.ts +13 -8
  619. package/mysql2/session.js +30 -2
  620. package/mysql2/session.js.map +1 -1
  621. package/neon-http/driver.cjs +21 -7
  622. package/neon-http/driver.cjs.map +1 -1
  623. package/neon-http/driver.d.cts +10 -9
  624. package/neon-http/driver.d.ts +10 -9
  625. package/neon-http/driver.js +11 -7
  626. package/neon-http/driver.js.map +1 -1
  627. package/neon-http/migrator.cjs.map +1 -1
  628. package/neon-http/migrator.d.cts +2 -1
  629. package/neon-http/migrator.d.ts +2 -1
  630. package/neon-http/migrator.js.map +1 -1
  631. package/neon-http/session.cjs +32 -2
  632. package/neon-http/session.cjs.map +1 -1
  633. package/neon-http/session.d.cts +13 -8
  634. package/neon-http/session.d.ts +13 -8
  635. package/neon-http/session.js +32 -2
  636. package/neon-http/session.js.map +1 -1
  637. package/neon-serverless/driver.cjs +18 -7
  638. package/neon-serverless/driver.cjs.map +1 -1
  639. package/neon-serverless/driver.d.cts +9 -8
  640. package/neon-serverless/driver.d.ts +9 -8
  641. package/neon-serverless/driver.js +8 -10
  642. package/neon-serverless/driver.js.map +1 -1
  643. package/neon-serverless/migrator.cjs.map +1 -1
  644. package/neon-serverless/migrator.d.cts +2 -1
  645. package/neon-serverless/migrator.d.ts +2 -1
  646. package/neon-serverless/migrator.js.map +1 -1
  647. package/neon-serverless/session.cjs +40 -5
  648. package/neon-serverless/session.cjs.map +1 -1
  649. package/neon-serverless/session.d.cts +13 -8
  650. package/neon-serverless/session.d.ts +13 -8
  651. package/neon-serverless/session.js +40 -5
  652. package/neon-serverless/session.js.map +1 -1
  653. package/node-postgres/driver.cjs +13 -7
  654. package/node-postgres/driver.cjs.map +1 -1
  655. package/node-postgres/driver.d.cts +9 -8
  656. package/node-postgres/driver.d.ts +9 -8
  657. package/node-postgres/driver.js +13 -10
  658. package/node-postgres/driver.js.map +1 -1
  659. package/node-postgres/migrator.cjs.map +1 -1
  660. package/node-postgres/migrator.d.cts +2 -1
  661. package/node-postgres/migrator.d.ts +2 -1
  662. package/node-postgres/migrator.js.map +1 -1
  663. package/node-postgres/session.cjs +45 -4
  664. package/node-postgres/session.cjs.map +1 -1
  665. package/node-postgres/session.d.cts +13 -8
  666. package/node-postgres/session.d.ts +13 -8
  667. package/node-postgres/session.js +45 -4
  668. package/node-postgres/session.js.map +1 -1
  669. package/op-sqlite/driver.cjs +22 -5
  670. package/op-sqlite/driver.cjs.map +1 -1
  671. package/op-sqlite/driver.d.cts +3 -2
  672. package/op-sqlite/driver.d.ts +3 -2
  673. package/op-sqlite/driver.js +12 -8
  674. package/op-sqlite/driver.js.map +1 -1
  675. package/op-sqlite/migrator.cjs.map +1 -1
  676. package/op-sqlite/migrator.d.cts +3 -2
  677. package/op-sqlite/migrator.d.ts +3 -2
  678. package/op-sqlite/migrator.js.map +1 -1
  679. package/op-sqlite/session.cjs +47 -4
  680. package/op-sqlite/session.cjs.map +1 -1
  681. package/op-sqlite/session.d.cts +14 -8
  682. package/op-sqlite/session.d.ts +14 -8
  683. package/op-sqlite/session.js +47 -4
  684. package/op-sqlite/session.js.map +1 -1
  685. package/package.json +801 -4
  686. package/pg-core/db.cjs +32 -5
  687. package/pg-core/db.cjs.map +1 -1
  688. package/pg-core/db.d.cts +16 -9
  689. package/pg-core/db.d.ts +16 -9
  690. package/pg-core/db.js +31 -4
  691. package/pg-core/db.js.map +1 -1
  692. package/pg-core/dialect.cjs +176 -488
  693. package/pg-core/dialect.cjs.map +1 -1
  694. package/pg-core/dialect.d.cts +27 -8
  695. package/pg-core/dialect.d.ts +27 -8
  696. package/pg-core/dialect.js +174 -495
  697. package/pg-core/dialect.js.map +1 -1
  698. package/pg-core/query-builders/_query.cjs +155 -0
  699. package/pg-core/query-builders/_query.cjs.map +1 -0
  700. package/pg-core/query-builders/_query.d.cts +47 -0
  701. package/pg-core/query-builders/_query.d.ts +47 -0
  702. package/pg-core/query-builders/_query.js +120 -0
  703. package/pg-core/query-builders/_query.js.map +1 -0
  704. package/pg-core/query-builders/count.cjs.map +1 -1
  705. package/pg-core/query-builders/count.d.cts +1 -1
  706. package/pg-core/query-builders/count.d.ts +1 -1
  707. package/pg-core/query-builders/count.js.map +1 -1
  708. package/pg-core/query-builders/query.cjs +15 -18
  709. package/pg-core/query-builders/query.cjs.map +1 -1
  710. package/pg-core/query-builders/query.d.cts +6 -6
  711. package/pg-core/query-builders/query.d.ts +6 -6
  712. package/pg-core/query-builders/query.js +15 -18
  713. package/pg-core/query-builders/query.js.map +1 -1
  714. package/pg-core/session.cjs +3 -2
  715. package/pg-core/session.cjs.map +1 -1
  716. package/pg-core/session.d.cts +9 -6
  717. package/pg-core/session.d.ts +9 -6
  718. package/pg-core/session.js +3 -2
  719. package/pg-core/session.js.map +1 -1
  720. package/pg-core/table.cjs +2 -0
  721. package/pg-core/table.cjs.map +1 -1
  722. package/pg-core/table.js +2 -0
  723. package/pg-core/table.js.map +1 -1
  724. package/pg-proxy/driver.cjs +21 -5
  725. package/pg-proxy/driver.cjs.map +1 -1
  726. package/pg-proxy/driver.d.cts +3 -2
  727. package/pg-proxy/driver.d.ts +3 -2
  728. package/pg-proxy/driver.js +11 -8
  729. package/pg-proxy/driver.js.map +1 -1
  730. package/pg-proxy/migrator.cjs.map +1 -1
  731. package/pg-proxy/migrator.d.cts +2 -1
  732. package/pg-proxy/migrator.d.ts +2 -1
  733. package/pg-proxy/migrator.js.map +1 -1
  734. package/pg-proxy/session.cjs +37 -2
  735. package/pg-proxy/session.cjs.map +1 -1
  736. package/pg-proxy/session.d.cts +13 -8
  737. package/pg-proxy/session.d.ts +13 -8
  738. package/pg-proxy/session.js +37 -2
  739. package/pg-proxy/session.js.map +1 -1
  740. package/pglite/driver.cjs +23 -7
  741. package/pglite/driver.cjs.map +1 -1
  742. package/pglite/driver.d.cts +9 -8
  743. package/pglite/driver.d.ts +9 -8
  744. package/pglite/driver.js +13 -10
  745. package/pglite/driver.js.map +1 -1
  746. package/pglite/migrator.cjs.map +1 -1
  747. package/pglite/migrator.d.cts +2 -1
  748. package/pglite/migrator.d.ts +2 -1
  749. package/pglite/migrator.js.map +1 -1
  750. package/pglite/session.cjs +34 -3
  751. package/pglite/session.cjs.map +1 -1
  752. package/pglite/session.d.cts +13 -8
  753. package/pglite/session.d.ts +13 -8
  754. package/pglite/session.js +34 -3
  755. package/pglite/session.js.map +1 -1
  756. package/planetscale-serverless/driver.cjs +22 -5
  757. package/planetscale-serverless/driver.cjs.map +1 -1
  758. package/planetscale-serverless/driver.d.cts +7 -6
  759. package/planetscale-serverless/driver.d.ts +7 -6
  760. package/planetscale-serverless/driver.js +12 -8
  761. package/planetscale-serverless/driver.js.map +1 -1
  762. package/planetscale-serverless/migrator.cjs.map +1 -1
  763. package/planetscale-serverless/migrator.d.cts +2 -1
  764. package/planetscale-serverless/migrator.d.ts +2 -1
  765. package/planetscale-serverless/migrator.js.map +1 -1
  766. package/planetscale-serverless/session.cjs +45 -5
  767. package/planetscale-serverless/session.cjs.map +1 -1
  768. package/planetscale-serverless/session.d.cts +14 -9
  769. package/planetscale-serverless/session.d.ts +14 -9
  770. package/planetscale-serverless/session.js +45 -5
  771. package/planetscale-serverless/session.js.map +1 -1
  772. package/postgres-js/driver.cjs +6 -5
  773. package/postgres-js/driver.cjs.map +1 -1
  774. package/postgres-js/driver.d.cts +7 -6
  775. package/postgres-js/driver.d.ts +7 -6
  776. package/postgres-js/driver.js +6 -8
  777. package/postgres-js/driver.js.map +1 -1
  778. package/postgres-js/migrator.cjs.map +1 -1
  779. package/postgres-js/migrator.d.cts +2 -1
  780. package/postgres-js/migrator.d.ts +2 -1
  781. package/postgres-js/migrator.js.map +1 -1
  782. package/postgres-js/session.cjs +51 -6
  783. package/postgres-js/session.cjs.map +1 -1
  784. package/postgres-js/session.d.cts +15 -9
  785. package/postgres-js/session.d.ts +15 -9
  786. package/postgres-js/session.js +51 -6
  787. package/postgres-js/session.js.map +1 -1
  788. package/prisma/mysql/driver.cjs +1 -1
  789. package/prisma/mysql/driver.cjs.map +1 -1
  790. package/prisma/mysql/driver.js +1 -1
  791. package/prisma/mysql/driver.js.map +1 -1
  792. package/prisma/mysql/session.cjs +3 -0
  793. package/prisma/mysql/session.cjs.map +1 -1
  794. package/prisma/mysql/session.d.cts +3 -1
  795. package/prisma/mysql/session.d.ts +3 -1
  796. package/prisma/mysql/session.js +3 -0
  797. package/prisma/mysql/session.js.map +1 -1
  798. package/prisma/pg/driver.cjs +1 -1
  799. package/prisma/pg/driver.cjs.map +1 -1
  800. package/prisma/pg/driver.js +1 -1
  801. package/prisma/pg/driver.js.map +1 -1
  802. package/prisma/pg/session.cjs +3 -0
  803. package/prisma/pg/session.cjs.map +1 -1
  804. package/prisma/pg/session.d.cts +3 -1
  805. package/prisma/pg/session.d.ts +3 -1
  806. package/prisma/pg/session.js +3 -0
  807. package/prisma/pg/session.js.map +1 -1
  808. package/prisma/sqlite/driver.cjs +1 -1
  809. package/prisma/sqlite/driver.cjs.map +1 -1
  810. package/prisma/sqlite/driver.js +1 -1
  811. package/prisma/sqlite/driver.js.map +1 -1
  812. package/prisma/sqlite/session.cjs +3 -0
  813. package/prisma/sqlite/session.cjs.map +1 -1
  814. package/prisma/sqlite/session.d.cts +4 -2
  815. package/prisma/sqlite/session.d.ts +4 -2
  816. package/prisma/sqlite/session.js +3 -0
  817. package/prisma/sqlite/session.js.map +1 -1
  818. package/relations.cjs +657 -245
  819. package/relations.cjs.map +1 -1
  820. package/relations.d.cts +339 -140
  821. package/relations.d.ts +339 -140
  822. package/relations.js +643 -240
  823. package/relations.js.map +1 -1
  824. package/singlestore/driver.cjs +1 -1
  825. package/singlestore/driver.cjs.map +1 -1
  826. package/singlestore/driver.d.cts +1 -1
  827. package/singlestore/driver.d.ts +1 -1
  828. package/singlestore/driver.js +3 -3
  829. package/singlestore/driver.js.map +1 -1
  830. package/singlestore/session.cjs.map +1 -1
  831. package/singlestore/session.d.cts +4 -4
  832. package/singlestore/session.d.ts +4 -4
  833. package/singlestore/session.js.map +1 -1
  834. package/singlestore-core/db.cjs.map +1 -1
  835. package/singlestore-core/db.d.cts +3 -3
  836. package/singlestore-core/db.d.ts +3 -3
  837. package/singlestore-core/db.js.map +1 -1
  838. package/singlestore-core/dialect.cjs +16 -6
  839. package/singlestore-core/dialect.cjs.map +1 -1
  840. package/singlestore-core/dialect.d.cts +6 -6
  841. package/singlestore-core/dialect.d.ts +6 -6
  842. package/singlestore-core/dialect.js +6 -12
  843. package/singlestore-core/dialect.js.map +1 -1
  844. package/singlestore-core/query-builders/query.cjs +12 -2
  845. package/singlestore-core/query-builders/query.cjs.map +1 -1
  846. package/singlestore-core/query-builders/query.d.cts +6 -6
  847. package/singlestore-core/query-builders/query.d.ts +6 -6
  848. package/singlestore-core/query-builders/query.js +2 -4
  849. package/singlestore-core/query-builders/query.js.map +1 -1
  850. package/singlestore-core/session.cjs.map +1 -1
  851. package/singlestore-core/session.d.cts +5 -5
  852. package/singlestore-core/session.d.ts +5 -5
  853. package/singlestore-core/session.js.map +1 -1
  854. package/singlestore-proxy/driver.cjs +1 -1
  855. package/singlestore-proxy/driver.cjs.map +1 -1
  856. package/singlestore-proxy/driver.js +3 -3
  857. package/singlestore-proxy/driver.js.map +1 -1
  858. package/singlestore-proxy/session.cjs.map +1 -1
  859. package/singlestore-proxy/session.d.cts +4 -4
  860. package/singlestore-proxy/session.d.ts +4 -4
  861. package/singlestore-proxy/session.js.map +1 -1
  862. package/sql/expressions/conditions.cjs.map +1 -1
  863. package/sql/expressions/conditions.d.cts +4 -4
  864. package/sql/expressions/conditions.d.ts +4 -4
  865. package/sql/expressions/conditions.js.map +1 -1
  866. package/sql/sql.cjs +21 -0
  867. package/sql/sql.cjs.map +1 -1
  868. package/sql/sql.d.cts +8 -8
  869. package/sql/sql.d.ts +8 -8
  870. package/sql/sql.js +22 -1
  871. package/sql/sql.js.map +1 -1
  872. package/sql-js/driver.cjs +16 -5
  873. package/sql-js/driver.cjs.map +1 -1
  874. package/sql-js/driver.d.cts +3 -2
  875. package/sql-js/driver.d.ts +3 -2
  876. package/sql-js/driver.js +6 -8
  877. package/sql-js/driver.js.map +1 -1
  878. package/sql-js/migrator.cjs.map +1 -1
  879. package/sql-js/migrator.d.cts +2 -1
  880. package/sql-js/migrator.d.ts +2 -1
  881. package/sql-js/migrator.js.map +1 -1
  882. package/sql-js/session.cjs +71 -36
  883. package/sql-js/session.cjs.map +1 -1
  884. package/sql-js/session.d.cts +16 -13
  885. package/sql-js/session.d.ts +16 -13
  886. package/sql-js/session.js +71 -36
  887. package/sql-js/session.js.map +1 -1
  888. package/sqlite-core/db.cjs +39 -12
  889. package/sqlite-core/db.cjs.map +1 -1
  890. package/sqlite-core/db.d.cts +16 -8
  891. package/sqlite-core/db.d.ts +16 -8
  892. package/sqlite-core/db.js +38 -11
  893. package/sqlite-core/db.js.map +1 -1
  894. package/sqlite-core/dialect.cjs +187 -7
  895. package/sqlite-core/dialect.cjs.map +1 -1
  896. package/sqlite-core/dialect.d.cts +31 -9
  897. package/sqlite-core/dialect.d.ts +31 -9
  898. package/sqlite-core/dialect.js +185 -14
  899. package/sqlite-core/dialect.js.map +1 -1
  900. package/sqlite-core/query-builders/_query.cjs +187 -0
  901. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  902. package/sqlite-core/query-builders/_query.d.cts +55 -0
  903. package/sqlite-core/query-builders/_query.d.ts +55 -0
  904. package/sqlite-core/query-builders/_query.js +151 -0
  905. package/sqlite-core/query-builders/_query.js.map +1 -0
  906. package/sqlite-core/query-builders/count.cjs.map +1 -1
  907. package/sqlite-core/query-builders/count.d.cts +1 -1
  908. package/sqlite-core/query-builders/count.d.ts +1 -1
  909. package/sqlite-core/query-builders/count.js.map +1 -1
  910. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  911. package/sqlite-core/query-builders/delete.d.cts +1 -1
  912. package/sqlite-core/query-builders/delete.d.ts +1 -1
  913. package/sqlite-core/query-builders/delete.js.map +1 -1
  914. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  915. package/sqlite-core/query-builders/insert.d.cts +3 -3
  916. package/sqlite-core/query-builders/insert.d.ts +3 -3
  917. package/sqlite-core/query-builders/insert.js.map +1 -1
  918. package/sqlite-core/query-builders/query.cjs +56 -35
  919. package/sqlite-core/query-builders/query.cjs.map +1 -1
  920. package/sqlite-core/query-builders/query.d.cts +18 -17
  921. package/sqlite-core/query-builders/query.d.ts +18 -17
  922. package/sqlite-core/query-builders/query.js +56 -35
  923. package/sqlite-core/query-builders/query.js.map +1 -1
  924. package/sqlite-core/query-builders/select.cjs.map +1 -1
  925. package/sqlite-core/query-builders/select.d.cts +3 -3
  926. package/sqlite-core/query-builders/select.d.ts +3 -3
  927. package/sqlite-core/query-builders/select.js.map +1 -1
  928. package/sqlite-core/query-builders/update.cjs.map +1 -1
  929. package/sqlite-core/query-builders/update.d.cts +3 -3
  930. package/sqlite-core/query-builders/update.d.ts +3 -3
  931. package/sqlite-core/query-builders/update.js.map +1 -1
  932. package/sqlite-core/session.cjs +6 -2
  933. package/sqlite-core/session.cjs.map +1 -1
  934. package/sqlite-core/session.d.cts +15 -7
  935. package/sqlite-core/session.d.ts +15 -7
  936. package/sqlite-core/session.js +6 -2
  937. package/sqlite-core/session.js.map +1 -1
  938. package/sqlite-proxy/driver.cjs +23 -5
  939. package/sqlite-proxy/driver.cjs.map +1 -1
  940. package/sqlite-proxy/driver.d.cts +4 -3
  941. package/sqlite-proxy/driver.d.ts +4 -3
  942. package/sqlite-proxy/driver.js +13 -5
  943. package/sqlite-proxy/driver.js.map +1 -1
  944. package/sqlite-proxy/migrator.cjs.map +1 -1
  945. package/sqlite-proxy/migrator.d.cts +2 -1
  946. package/sqlite-proxy/migrator.d.ts +2 -1
  947. package/sqlite-proxy/migrator.js.map +1 -1
  948. package/sqlite-proxy/session.cjs +50 -6
  949. package/sqlite-proxy/session.cjs.map +1 -1
  950. package/sqlite-proxy/session.d.cts +14 -8
  951. package/sqlite-proxy/session.d.ts +14 -8
  952. package/sqlite-proxy/session.js +50 -6
  953. package/sqlite-proxy/session.js.map +1 -1
  954. package/table.cjs.map +1 -1
  955. package/table.d.cts +2 -2
  956. package/table.d.ts +2 -2
  957. package/table.js.map +1 -1
  958. package/tidb-serverless/driver.cjs +22 -5
  959. package/tidb-serverless/driver.cjs.map +1 -1
  960. package/tidb-serverless/driver.d.cts +7 -6
  961. package/tidb-serverless/driver.d.ts +7 -6
  962. package/tidb-serverless/driver.js +12 -8
  963. package/tidb-serverless/driver.js.map +1 -1
  964. package/tidb-serverless/migrator.cjs.map +1 -1
  965. package/tidb-serverless/migrator.d.cts +2 -1
  966. package/tidb-serverless/migrator.d.ts +2 -1
  967. package/tidb-serverless/migrator.js.map +1 -1
  968. package/tidb-serverless/session.cjs +62 -5
  969. package/tidb-serverless/session.cjs.map +1 -1
  970. package/tidb-serverless/session.d.cts +14 -9
  971. package/tidb-serverless/session.d.ts +14 -9
  972. package/tidb-serverless/session.js +62 -5
  973. package/tidb-serverless/session.js.map +1 -1
  974. package/utils.cjs +2 -2
  975. package/utils.cjs.map +1 -1
  976. package/utils.d.cts +3 -1
  977. package/utils.d.ts +3 -1
  978. package/utils.js +2 -2
  979. package/utils.js.map +1 -1
  980. package/vercel-postgres/driver.cjs +23 -7
  981. package/vercel-postgres/driver.cjs.map +1 -1
  982. package/vercel-postgres/driver.d.cts +9 -8
  983. package/vercel-postgres/driver.d.ts +9 -8
  984. package/vercel-postgres/driver.js +13 -10
  985. package/vercel-postgres/driver.js.map +1 -1
  986. package/vercel-postgres/migrator.cjs.map +1 -1
  987. package/vercel-postgres/migrator.d.cts +2 -1
  988. package/vercel-postgres/migrator.d.ts +2 -1
  989. package/vercel-postgres/migrator.js.map +1 -1
  990. package/vercel-postgres/session.cjs +34 -4
  991. package/vercel-postgres/session.cjs.map +1 -1
  992. package/vercel-postgres/session.d.cts +13 -8
  993. package/vercel-postgres/session.d.ts +13 -8
  994. package/vercel-postgres/session.js +34 -4
  995. package/vercel-postgres/session.js.map +1 -1
  996. package/version.cjs +1 -1
  997. package/version.d.cts +1 -1
  998. package/version.d.ts +1 -1
  999. package/version.js +1 -1
  1000. package/xata-http/driver.cjs +17 -5
  1001. package/xata-http/driver.cjs.map +1 -1
  1002. package/xata-http/driver.d.cts +5 -4
  1003. package/xata-http/driver.d.ts +5 -4
  1004. package/xata-http/driver.js +7 -5
  1005. package/xata-http/driver.js.map +1 -1
  1006. package/xata-http/migrator.cjs.map +1 -1
  1007. package/xata-http/migrator.d.cts +2 -1
  1008. package/xata-http/migrator.d.ts +2 -1
  1009. package/xata-http/migrator.js.map +1 -1
  1010. package/xata-http/session.cjs +30 -2
  1011. package/xata-http/session.cjs.map +1 -1
  1012. package/xata-http/session.d.cts +13 -8
  1013. package/xata-http/session.d.ts +13 -8
  1014. package/xata-http/session.js +30 -2
  1015. package/xata-http/session.js.map +1 -1
@@ -30,9 +30,10 @@ var import_sqlite_core = require("../sqlite-core/index.cjs");
30
30
  var import_session = require("../sqlite-core/session.cjs");
31
31
  var import_utils = require("../utils.cjs");
32
32
  class ExpoSQLiteSession extends import_session.SQLiteSession {
33
- constructor(client, dialect, schema, options = {}) {
33
+ constructor(client, dialect, relations, schema, options = {}) {
34
34
  super(dialect);
35
35
  this.client = client;
36
+ this.relations = relations;
36
37
  this.schema = schema;
37
38
  this.logger = options.logger ?? new import_logger.NoopLogger();
38
39
  }
@@ -50,8 +51,21 @@ class ExpoSQLiteSession extends import_session.SQLiteSession {
50
51
  customResultMapper
51
52
  );
52
53
  }
54
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
55
+ const stmt = this.client.prepareSync(query.sql);
56
+ return new ExpoSQLitePreparedQuery(
57
+ stmt,
58
+ query,
59
+ this.logger,
60
+ fields,
61
+ executeMethod,
62
+ false,
63
+ customResultMapper,
64
+ true
65
+ );
66
+ }
53
67
  transaction(transaction, config = {}) {
54
- const tx = new ExpoSQLiteTransaction("sync", this.dialect, this, this.schema);
68
+ const tx = new ExpoSQLiteTransaction("sync", this.dialect, this, this.relations, this.schema);
55
69
  this.run(import_sql.sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
56
70
  try {
57
71
  const result = transaction(tx);
@@ -67,7 +81,14 @@ class ExpoSQLiteTransaction extends import_sqlite_core.SQLiteTransaction {
67
81
  static [import_entity.entityKind] = "ExpoSQLiteTransaction";
68
82
  transaction(transaction) {
69
83
  const savepointName = `sp${this.nestedIndex}`;
70
- const tx = new ExpoSQLiteTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);
84
+ const tx = new ExpoSQLiteTransaction(
85
+ "sync",
86
+ this.dialect,
87
+ this.session,
88
+ this.relations,
89
+ this.schema,
90
+ this.nestedIndex + 1
91
+ );
71
92
  this.session.run(import_sql.sql.raw(`savepoint ${savepointName}`));
72
93
  try {
73
94
  const result = transaction(tx);
@@ -80,13 +101,14 @@ class ExpoSQLiteTransaction extends import_sqlite_core.SQLiteTransaction {
80
101
  }
81
102
  }
82
103
  class ExpoSQLitePreparedQuery extends import_session.SQLitePreparedQuery {
83
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
104
+ constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
84
105
  super("sync", executeMethod, query);
85
106
  this.stmt = stmt;
86
107
  this.logger = logger;
87
108
  this.fields = fields;
88
109
  this._isResponseInArrayMode = _isResponseInArrayMode;
89
110
  this.customResultMapper = customResultMapper;
111
+ this.isRqbV2Query = isRqbV2Query;
90
112
  }
91
113
  static [import_entity.entityKind] = "ExpoSQLitePreparedQuery";
92
114
  run(placeholderValues) {
@@ -99,6 +121,8 @@ class ExpoSQLitePreparedQuery extends import_session.SQLitePreparedQuery {
99
121
  };
100
122
  }
101
123
  all(placeholderValues) {
124
+ if (this.isRqbV2Query)
125
+ return this.allRqbV2(placeholderValues);
102
126
  const { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;
103
127
  if (!fields && !customResultMapper) {
104
128
  const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
@@ -111,7 +135,16 @@ class ExpoSQLitePreparedQuery extends import_session.SQLitePreparedQuery {
111
135
  }
112
136
  return rows.map((row) => (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap));
113
137
  }
138
+ allRqbV2(placeholderValues) {
139
+ const { query, logger, stmt, customResultMapper } = this;
140
+ const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
141
+ logger.logQuery(query.sql, params);
142
+ const rows = stmt.executeSync(params).getAllSync();
143
+ return customResultMapper(rows);
144
+ }
114
145
  get(placeholderValues) {
146
+ if (this.isRqbV2Query)
147
+ return this.getRqbV2(placeholderValues);
115
148
  const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
116
149
  this.logger.logQuery(this.query.sql, params);
117
150
  const { fields, stmt, joinsNotNullableMap, customResultMapper } = this;
@@ -128,6 +161,16 @@ class ExpoSQLitePreparedQuery extends import_session.SQLitePreparedQuery {
128
161
  }
129
162
  return (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap);
130
163
  }
164
+ getRqbV2(placeholderValues) {
165
+ const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
166
+ this.logger.logQuery(this.query.sql, params);
167
+ const { stmt, customResultMapper } = this;
168
+ const row = stmt.executeSync(params).getFirstSync();
169
+ if (!row) {
170
+ return void 0;
171
+ }
172
+ return customResultMapper([row]);
173
+ }
131
174
  values(placeholderValues) {
132
175
  const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
133
176
  this.logger.logQuery(this.query.sql, params);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expo-sqlite/session.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface ExpoSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class ExpoSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: SQLiteDatabase,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: ExpoSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): ExpoSQLitePreparedQuery<T> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: SQLiteStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): SQLiteRunResult {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);\n\t\treturn {\n\t\t\tchanges,\n\t\t\tlastInsertRowId,\n\t\t};\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.executeSync(params as any[]).getAllSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn stmt.executeSync(params as any[]).getFirstSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.executeForRawResultSync(params as any[]).getAllSync();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/expo-sqlite/session.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface ExpoSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class ExpoSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: SQLiteDatabase,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: ExpoSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): ExpoSQLitePreparedQuery<T> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): ExpoSQLitePreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new ExpoSQLiteTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLitePreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends SQLitePreparedQuery<\n\t{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: SQLiteStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): SQLiteRunResult {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);\n\t\treturn {\n\t\t\tchanges,\n\t\t\tlastInsertRowId,\n\t\t};\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.executeSync(params as any[]).getAllSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tconst rows = stmt.executeSync(params as any[]).getAllSync() as Record<string, unknown>[];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows) as T['all'];\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn stmt.executeSync(params as any[]).getFirstSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { stmt, customResultMapper } = this;\n\t\tconst row = stmt.executeSync(params as any[]).getFirstSync() as Record<string, unknown> | undefined;\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.executeForRawResultSync(params as any[]).getAllSync();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,8 @@
1
1
  import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';
2
+ import type * as V1 from "../_relations.cjs";
2
3
  import { entityKind } from "../entity.cjs";
3
4
  import type { Logger } from "../logger.cjs";
4
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
5
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
5
6
  import { type Query } from "../sql/sql.cjs";
6
7
  import type { SQLiteSyncDialect } from "../sqlite-core/dialect.cjs";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.cjs";
@@ -11,20 +12,22 @@ export interface ExpoSQLiteSessionOptions {
11
12
  logger?: Logger;
12
13
  }
13
14
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
14
- export declare class ExpoSQLiteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TSchema> {
15
+ export declare class ExpoSQLiteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
15
16
  private client;
17
+ private relations;
16
18
  private schema;
17
19
  static readonly [entityKind]: string;
18
20
  private logger;
19
- constructor(client: SQLiteDatabase, dialect: SQLiteSyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: ExpoSQLiteSessionOptions);
21
+ constructor(client: SQLiteDatabase, dialect: SQLiteSyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: ExpoSQLiteSessionOptions);
20
22
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): ExpoSQLitePreparedQuery<T>;
21
- transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
23
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): ExpoSQLitePreparedQuery<T, true>;
24
+ transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T, config?: SQLiteTransactionConfig): T;
22
25
  }
23
- export declare class ExpoSQLiteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TSchema> {
26
+ export declare class ExpoSQLiteTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
24
27
  static readonly [entityKind]: string;
25
- transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T): T;
28
+ transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T): T;
26
29
  }
27
- export declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
30
+ export declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
28
31
  type: 'sync';
29
32
  run: SQLiteRunResult;
30
33
  all: T['all'];
@@ -37,11 +40,14 @@ export declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = Pre
37
40
  private fields;
38
41
  private _isResponseInArrayMode;
39
42
  private customResultMapper?;
43
+ private isRqbV2Query?;
40
44
  static readonly [entityKind]: string;
41
- constructor(stmt: SQLiteStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
45
+ constructor(stmt: SQLiteStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
42
46
  run(placeholderValues?: Record<string, unknown>): SQLiteRunResult;
43
47
  all(placeholderValues?: Record<string, unknown>): T['all'];
48
+ private allRqbV2;
44
49
  get(placeholderValues?: Record<string, unknown>): T['get'];
50
+ private getRqbV2;
45
51
  values(placeholderValues?: Record<string, unknown>): T['values'];
46
52
  }
47
53
  export {};
@@ -1,7 +1,8 @@
1
1
  import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';
2
+ import type * as V1 from "../_relations.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import type { Logger } from "../logger.js";
4
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
5
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.js";
5
6
  import { type Query } from "../sql/sql.js";
6
7
  import type { SQLiteSyncDialect } from "../sqlite-core/dialect.js";
7
8
  import { SQLiteTransaction } from "../sqlite-core/index.js";
@@ -11,20 +12,22 @@ export interface ExpoSQLiteSessionOptions {
11
12
  logger?: Logger;
12
13
  }
13
14
  type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
14
- export declare class ExpoSQLiteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TSchema> {
15
+ export declare class ExpoSQLiteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
15
16
  private client;
17
+ private relations;
16
18
  private schema;
17
19
  static readonly [entityKind]: string;
18
20
  private logger;
19
- constructor(client: SQLiteDatabase, dialect: SQLiteSyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: ExpoSQLiteSessionOptions);
21
+ constructor(client: SQLiteDatabase, dialect: SQLiteSyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, options?: ExpoSQLiteSessionOptions);
20
22
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): ExpoSQLitePreparedQuery<T>;
21
- transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T, config?: SQLiteTransactionConfig): T;
23
+ prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): ExpoSQLitePreparedQuery<T, true>;
24
+ transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T, config?: SQLiteTransactionConfig): T;
22
25
  }
23
- export declare class ExpoSQLiteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TSchema> {
26
+ export declare class ExpoSQLiteTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
24
27
  static readonly [entityKind]: string;
25
- transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T): T;
28
+ transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T): T;
26
29
  }
27
- export declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
30
+ export declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
28
31
  type: 'sync';
29
32
  run: SQLiteRunResult;
30
33
  all: T['all'];
@@ -37,11 +40,14 @@ export declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = Pre
37
40
  private fields;
38
41
  private _isResponseInArrayMode;
39
42
  private customResultMapper?;
43
+ private isRqbV2Query?;
40
44
  static readonly [entityKind]: string;
41
- constructor(stmt: SQLiteStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => unknown) | undefined);
45
+ constructor(stmt: SQLiteStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
42
46
  run(placeholderValues?: Record<string, unknown>): SQLiteRunResult;
43
47
  all(placeholderValues?: Record<string, unknown>): T['all'];
48
+ private allRqbV2;
44
49
  get(placeholderValues?: Record<string, unknown>): T['get'];
50
+ private getRqbV2;
45
51
  values(placeholderValues?: Record<string, unknown>): T['values'];
46
52
  }
47
53
  export {};
@@ -8,9 +8,10 @@ import {
8
8
  } from "../sqlite-core/session.js";
9
9
  import { mapResultRow } from "../utils.js";
10
10
  class ExpoSQLiteSession extends SQLiteSession {
11
- constructor(client, dialect, schema, options = {}) {
11
+ constructor(client, dialect, relations, schema, options = {}) {
12
12
  super(dialect);
13
13
  this.client = client;
14
+ this.relations = relations;
14
15
  this.schema = schema;
15
16
  this.logger = options.logger ?? new NoopLogger();
16
17
  }
@@ -28,8 +29,21 @@ class ExpoSQLiteSession extends SQLiteSession {
28
29
  customResultMapper
29
30
  );
30
31
  }
32
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
33
+ const stmt = this.client.prepareSync(query.sql);
34
+ return new ExpoSQLitePreparedQuery(
35
+ stmt,
36
+ query,
37
+ this.logger,
38
+ fields,
39
+ executeMethod,
40
+ false,
41
+ customResultMapper,
42
+ true
43
+ );
44
+ }
31
45
  transaction(transaction, config = {}) {
32
- const tx = new ExpoSQLiteTransaction("sync", this.dialect, this, this.schema);
46
+ const tx = new ExpoSQLiteTransaction("sync", this.dialect, this, this.relations, this.schema);
33
47
  this.run(sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
34
48
  try {
35
49
  const result = transaction(tx);
@@ -45,7 +59,14 @@ class ExpoSQLiteTransaction extends SQLiteTransaction {
45
59
  static [entityKind] = "ExpoSQLiteTransaction";
46
60
  transaction(transaction) {
47
61
  const savepointName = `sp${this.nestedIndex}`;
48
- const tx = new ExpoSQLiteTransaction("sync", this.dialect, this.session, this.schema, this.nestedIndex + 1);
62
+ const tx = new ExpoSQLiteTransaction(
63
+ "sync",
64
+ this.dialect,
65
+ this.session,
66
+ this.relations,
67
+ this.schema,
68
+ this.nestedIndex + 1
69
+ );
49
70
  this.session.run(sql.raw(`savepoint ${savepointName}`));
50
71
  try {
51
72
  const result = transaction(tx);
@@ -58,13 +79,14 @@ class ExpoSQLiteTransaction extends SQLiteTransaction {
58
79
  }
59
80
  }
60
81
  class ExpoSQLitePreparedQuery extends SQLitePreparedQuery {
61
- constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
82
+ constructor(stmt, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
62
83
  super("sync", executeMethod, query);
63
84
  this.stmt = stmt;
64
85
  this.logger = logger;
65
86
  this.fields = fields;
66
87
  this._isResponseInArrayMode = _isResponseInArrayMode;
67
88
  this.customResultMapper = customResultMapper;
89
+ this.isRqbV2Query = isRqbV2Query;
68
90
  }
69
91
  static [entityKind] = "ExpoSQLitePreparedQuery";
70
92
  run(placeholderValues) {
@@ -77,6 +99,8 @@ class ExpoSQLitePreparedQuery extends SQLitePreparedQuery {
77
99
  };
78
100
  }
79
101
  all(placeholderValues) {
102
+ if (this.isRqbV2Query)
103
+ return this.allRqbV2(placeholderValues);
80
104
  const { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;
81
105
  if (!fields && !customResultMapper) {
82
106
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
@@ -89,7 +113,16 @@ class ExpoSQLitePreparedQuery extends SQLitePreparedQuery {
89
113
  }
90
114
  return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
91
115
  }
116
+ allRqbV2(placeholderValues) {
117
+ const { query, logger, stmt, customResultMapper } = this;
118
+ const params = fillPlaceholders(query.params, placeholderValues ?? {});
119
+ logger.logQuery(query.sql, params);
120
+ const rows = stmt.executeSync(params).getAllSync();
121
+ return customResultMapper(rows);
122
+ }
92
123
  get(placeholderValues) {
124
+ if (this.isRqbV2Query)
125
+ return this.getRqbV2(placeholderValues);
93
126
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
94
127
  this.logger.logQuery(this.query.sql, params);
95
128
  const { fields, stmt, joinsNotNullableMap, customResultMapper } = this;
@@ -106,6 +139,16 @@ class ExpoSQLitePreparedQuery extends SQLitePreparedQuery {
106
139
  }
107
140
  return mapResultRow(fields, row, joinsNotNullableMap);
108
141
  }
142
+ getRqbV2(placeholderValues) {
143
+ const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
144
+ this.logger.logQuery(this.query.sql, params);
145
+ const { stmt, customResultMapper } = this;
146
+ const row = stmt.executeSync(params).getFirstSync();
147
+ if (!row) {
148
+ return void 0;
149
+ }
150
+ return customResultMapper([row]);
151
+ }
109
152
  values(placeholderValues) {
110
153
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
111
154
  this.logger.logQuery(this.query.sql, params);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expo-sqlite/session.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface ExpoSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class ExpoSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: SQLiteDatabase,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: ExpoSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): ExpoSQLitePreparedQuery<T> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteTransaction';\n\n\toverride transaction<T>(transaction: (tx: ExpoSQLiteTransaction<TFullSchema, TSchema>) => T): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: SQLiteStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): SQLiteRunResult {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);\n\t\treturn {\n\t\t\tchanges,\n\t\t\tlastInsertRowId,\n\t\t};\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.executeSync(params as any[]).getAllSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn stmt.executeSync(params as any[]).getFirstSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.executeForRawResultSync(params as any[]).getAllSync();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/expo-sqlite/session.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface ExpoSQLiteSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class ExpoSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: SQLiteDatabase,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: ExpoSQLiteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): ExpoSQLitePreparedQuery<T> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): ExpoSQLitePreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new ExpoSQLiteTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLitePreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends SQLitePreparedQuery<\n\t{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';\n\n\tconstructor(\n\t\tprivate stmt: SQLiteStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): SQLiteRunResult {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);\n\t\treturn {\n\t\t\tchanges,\n\t\t\tlastInsertRowId,\n\t\t};\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.executeSync(params as any[]).getAllSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tconst rows = stmt.executeSync(params as any[]).getAllSync() as Record<string, unknown>[];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows) as T['all'];\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn stmt.executeSync(params as any[]).getFirstSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { stmt, customResultMapper } = this;\n\t\tconst row = stmt.executeSync(params as any[]).getFirstSync() as Record<string, unknown> | undefined;\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.executeForRawResultSync(params as any[]).getAllSync();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
package/gel/driver.cjs ADDED
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var driver_exports = {};
30
+ __export(driver_exports, {
31
+ GelDriver: () => GelDriver,
32
+ GelJsDatabase: () => GelJsDatabase,
33
+ drizzle: () => drizzle
34
+ });
35
+ module.exports = __toCommonJS(driver_exports);
36
+ var import_gel = require("gel");
37
+ var V1 = __toESM(require("../_relations.cjs"), 1);
38
+ var import_entity = require("../entity.cjs");
39
+ var import_db = require("../gel-core/db.cjs");
40
+ var import_dialect = require("../gel-core/dialect.cjs");
41
+ var import_logger = require("../logger.cjs");
42
+ var import_utils = require("../utils.cjs");
43
+ var import_session = require("./session.cjs");
44
+ class GelDriver {
45
+ constructor(client, dialect, options = {}) {
46
+ this.client = client;
47
+ this.dialect = dialect;
48
+ this.options = options;
49
+ }
50
+ static [import_entity.entityKind] = "GelDriver";
51
+ createSession(relations, schema) {
52
+ return new import_session.GelDbSession(this.client, this.dialect, relations, schema, { logger: this.options.logger });
53
+ }
54
+ }
55
+ class GelJsDatabase extends import_db.GelDatabase {
56
+ static [import_entity.entityKind] = "GelJsDatabase";
57
+ }
58
+ function construct(client, config = {}) {
59
+ const dialect = new import_dialect.GelDialect({ casing: config.casing });
60
+ let logger;
61
+ if (config.logger === true) {
62
+ logger = new import_logger.DefaultLogger();
63
+ } else if (config.logger !== false) {
64
+ logger = config.logger;
65
+ }
66
+ let schema;
67
+ if (config.schema) {
68
+ const tablesConfig = V1.extractTablesRelationalConfig(config.schema, V1.createTableRelationsHelpers);
69
+ schema = {
70
+ fullSchema: config.schema,
71
+ schema: tablesConfig.tables,
72
+ tableNamesMap: tablesConfig.tableNamesMap
73
+ };
74
+ }
75
+ const relations = config.relations;
76
+ const driver = new GelDriver(client, dialect, { logger });
77
+ const session = driver.createSession(relations, schema);
78
+ const db = new GelJsDatabase(dialect, session, relations, schema);
79
+ db.$client = client;
80
+ return db;
81
+ }
82
+ function drizzle(...params) {
83
+ if (typeof params[0] === "string") {
84
+ const instance = (0, import_gel.createClient)({ dsn: params[0] });
85
+ return construct(instance, params[1]);
86
+ }
87
+ if ((0, import_utils.isConfig)(params[0])) {
88
+ const { connection, client, ...drizzleConfig } = params[0];
89
+ if (client)
90
+ return construct(client, drizzleConfig);
91
+ const instance = (0, import_gel.createClient)(connection);
92
+ return construct(instance, drizzleConfig);
93
+ }
94
+ return construct(params[0], params[1]);
95
+ }
96
+ ((drizzle2) => {
97
+ function mock(config) {
98
+ return construct({}, config);
99
+ }
100
+ drizzle2.mock = mock;
101
+ })(drizzle || (drizzle = {}));
102
+ // Annotate the CommonJS export names for ESM import in node:
103
+ 0 && (module.exports = {
104
+ GelDriver,
105
+ GelJsDatabase,
106
+ drizzle
107
+ });
108
+ //# sourceMappingURL=driver.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\trelations: AnyRelations | undefined,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, relations, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class GelJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends GelDatabase<GelQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): GelJsDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(config.schema, V1.createTableRelationsHelpers);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations;\n\tconst driver = new GelDriver(client, dialect, { logger });\n\tconst session = driver.createSession(relations, schema);\n\tconst db = new GelJsDatabase(dialect, session, relations, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema, TRelations>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\n\t\t\t\t| {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t),\n\t\t]\n): GelJsDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): GelJsDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA+D;AAC/D,SAAoB;AACpB,oBAA2B;AAC3B,gBAA4B;AAC5B,qBAA2B;AAG3B,oBAA8B;AAE9B,mBAA6C;AAE7C,qBAA6B;AAMtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GACpC;AAHO;AACA;AACA;AAAA,EACN;AAAA,EANH,QAAiB,wBAAU,IAAY;AAAA,EAQvC,cACC,WACA,QACyG;AACzG,WAAO,IAAI,4BAAa,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACtG;AACD;AAEO,MAAM,sBAGH,sBAAoD;AAAA,EAC7D,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAKR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,0BAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG,8BAA8B,OAAO,QAAQ,GAAG,2BAA2B;AACnG,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,SAAS,IAAI,UAAU,QAAQ,SAAS,EAAE,OAAO,CAAC;AACxD,QAAM,UAAU,OAAO,cAAc,WAAW,MAAM;AACtD,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,WAAW,MAAa;AACvE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAKZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,yBAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAAmD;AAAA,EACvF;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,eAAW,yBAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AATO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
@@ -0,0 +1,39 @@
1
+ import { type Client, type ConnectOptions } from 'gel';
2
+ import * as V1 from "../_relations.cjs";
3
+ import { entityKind } from "../entity.cjs";
4
+ import { GelDatabase } from "../gel-core/db.cjs";
5
+ import { GelDialect } from "../gel-core/dialect.cjs";
6
+ import type { GelQueryResultHKT } from "../gel-core/session.cjs";
7
+ import type { Logger } from "../logger.cjs";
8
+ import type { AnyRelations, EmptyRelations, TablesRelationalConfig } from "../relations.cjs";
9
+ import { type DrizzleConfig } from "../utils.cjs";
10
+ import type { GelClient } from "./session.cjs";
11
+ import { GelDbSession } from "./session.cjs";
12
+ export interface GelDriverOptions {
13
+ logger?: Logger;
14
+ }
15
+ export declare class GelDriver {
16
+ private client;
17
+ private dialect;
18
+ private options;
19
+ static readonly [entityKind]: string;
20
+ constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions);
21
+ createSession(relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined): GelDbSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig, V1.TablesRelationalConfig>;
22
+ }
23
+ export declare class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends GelDatabase<GelQueryResultHKT, TSchema, TRelations> {
24
+ static readonly [entityKind]: string;
25
+ }
26
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema, TRelations>] | [
27
+ DrizzleConfig<TSchema, TRelations> & ({
28
+ connection: string | ConnectOptions;
29
+ } | {
30
+ client: TClient;
31
+ })
32
+ ]): GelJsDatabase<TSchema, TRelations> & {
33
+ $client: TClient;
34
+ };
35
+ export declare namespace drizzle {
36
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): GelJsDatabase<TSchema, TRelations> & {
37
+ $client: '$client is not available on drizzle.mock()';
38
+ };
39
+ }