drizzle-orm 0.39.0-b06bbcd → 0.39.0

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 (721) hide show
  1. package/alias.cjs.map +1 -1
  2. package/alias.d.cts +3 -3
  3. package/alias.d.ts +3 -3
  4. package/alias.js.map +1 -1
  5. package/aws-data-api/pg/driver.cjs +5 -19
  6. package/aws-data-api/pg/driver.cjs.map +1 -1
  7. package/aws-data-api/pg/driver.d.cts +8 -9
  8. package/aws-data-api/pg/driver.d.ts +8 -9
  9. package/aws-data-api/pg/driver.js +8 -9
  10. package/aws-data-api/pg/driver.js.map +1 -1
  11. package/aws-data-api/pg/migrator.cjs.map +1 -1
  12. package/aws-data-api/pg/migrator.d.cts +1 -2
  13. package/aws-data-api/pg/migrator.d.ts +1 -2
  14. package/aws-data-api/pg/migrator.js.map +1 -1
  15. package/aws-data-api/pg/session.cjs +4 -67
  16. package/aws-data-api/pg/session.cjs.map +1 -1
  17. package/aws-data-api/pg/session.d.cts +8 -13
  18. package/aws-data-api/pg/session.d.ts +8 -13
  19. package/aws-data-api/pg/session.js +4 -67
  20. package/aws-data-api/pg/session.js.map +1 -1
  21. package/better-sqlite3/driver.cjs +5 -12
  22. package/better-sqlite3/driver.cjs.map +1 -1
  23. package/better-sqlite3/driver.d.cts +6 -7
  24. package/better-sqlite3/driver.d.ts +6 -7
  25. package/better-sqlite3/driver.js +8 -12
  26. package/better-sqlite3/driver.js.map +1 -1
  27. package/better-sqlite3/migrator.cjs.map +1 -1
  28. package/better-sqlite3/migrator.d.cts +1 -2
  29. package/better-sqlite3/migrator.d.ts +1 -2
  30. package/better-sqlite3/migrator.js.map +1 -1
  31. package/better-sqlite3/session.cjs +4 -49
  32. package/better-sqlite3/session.cjs.map +1 -1
  33. package/better-sqlite3/session.d.cts +8 -14
  34. package/better-sqlite3/session.d.ts +8 -14
  35. package/better-sqlite3/session.js +4 -49
  36. package/better-sqlite3/session.js.map +1 -1
  37. package/bun-sql/driver.cjs +96 -0
  38. package/bun-sql/driver.cjs.map +1 -0
  39. package/bun-sql/driver.d.cts +30 -0
  40. package/bun-sql/driver.d.ts +30 -0
  41. package/bun-sql/driver.js +74 -0
  42. package/bun-sql/driver.js.map +1 -0
  43. package/bun-sql/index.cjs +25 -0
  44. package/bun-sql/index.cjs.map +1 -0
  45. package/bun-sql/index.d.cts +2 -0
  46. package/bun-sql/index.d.ts +2 -0
  47. package/bun-sql/index.js +3 -0
  48. package/bun-sql/index.js.map +1 -0
  49. package/bun-sql/migrator.cjs +33 -0
  50. package/bun-sql/migrator.cjs.map +1 -0
  51. package/bun-sql/migrator.d.cts +3 -0
  52. package/bun-sql/migrator.d.ts +3 -0
  53. package/bun-sql/migrator.js +9 -0
  54. package/bun-sql/migrator.js.map +1 -0
  55. package/bun-sql/session.cjs +162 -0
  56. package/bun-sql/session.cjs.map +1 -0
  57. package/bun-sql/session.d.cts +50 -0
  58. package/bun-sql/session.d.ts +50 -0
  59. package/bun-sql/session.js +136 -0
  60. package/bun-sql/session.js.map +1 -0
  61. package/bun-sqlite/driver.cjs +5 -22
  62. package/bun-sqlite/driver.cjs.map +1 -1
  63. package/bun-sqlite/driver.d.cts +6 -7
  64. package/bun-sqlite/driver.d.ts +6 -7
  65. package/bun-sqlite/driver.js +8 -12
  66. package/bun-sqlite/driver.js.map +1 -1
  67. package/bun-sqlite/migrator.cjs.map +1 -1
  68. package/bun-sqlite/migrator.d.cts +1 -2
  69. package/bun-sqlite/migrator.d.ts +1 -2
  70. package/bun-sqlite/migrator.js.map +1 -1
  71. package/bun-sqlite/session.cjs +4 -49
  72. package/bun-sqlite/session.cjs.map +1 -1
  73. package/bun-sqlite/session.d.cts +9 -15
  74. package/bun-sqlite/session.d.ts +9 -15
  75. package/bun-sqlite/session.js +4 -49
  76. package/bun-sqlite/session.js.map +1 -1
  77. package/d1/driver.cjs +5 -22
  78. package/d1/driver.cjs.map +1 -1
  79. package/d1/driver.d.cts +2 -3
  80. package/d1/driver.d.ts +2 -3
  81. package/d1/driver.js +8 -12
  82. package/d1/driver.js.map +1 -1
  83. package/d1/migrator.cjs.map +1 -1
  84. package/d1/migrator.d.cts +1 -2
  85. package/d1/migrator.d.ts +1 -2
  86. package/d1/migrator.js.map +1 -1
  87. package/d1/session.cjs +6 -48
  88. package/d1/session.cjs.map +1 -1
  89. package/d1/session.d.cts +8 -15
  90. package/d1/session.d.ts +8 -15
  91. package/d1/session.js +6 -48
  92. package/d1/session.js.map +1 -1
  93. package/durable-sqlite/driver.cjs +5 -16
  94. package/durable-sqlite/driver.cjs.map +1 -1
  95. package/durable-sqlite/driver.d.cts +2 -3
  96. package/durable-sqlite/driver.d.ts +2 -3
  97. package/durable-sqlite/driver.js +8 -6
  98. package/durable-sqlite/driver.js.map +1 -1
  99. package/durable-sqlite/migrator.cjs.map +1 -1
  100. package/durable-sqlite/migrator.d.cts +1 -2
  101. package/durable-sqlite/migrator.d.ts +1 -2
  102. package/durable-sqlite/migrator.js.map +1 -1
  103. package/durable-sqlite/session.cjs +4 -46
  104. package/durable-sqlite/session.cjs.map +1 -1
  105. package/durable-sqlite/session.d.cts +8 -14
  106. package/durable-sqlite/session.d.ts +8 -14
  107. package/durable-sqlite/session.js +4 -46
  108. package/durable-sqlite/session.js.map +1 -1
  109. package/expo-sqlite/driver.cjs +5 -22
  110. package/expo-sqlite/driver.cjs.map +1 -1
  111. package/expo-sqlite/driver.d.cts +2 -3
  112. package/expo-sqlite/driver.d.ts +2 -3
  113. package/expo-sqlite/driver.js +8 -12
  114. package/expo-sqlite/driver.js.map +1 -1
  115. package/expo-sqlite/migrator.cjs.map +1 -1
  116. package/expo-sqlite/migrator.d.cts +2 -3
  117. package/expo-sqlite/migrator.d.ts +2 -3
  118. package/expo-sqlite/migrator.js.map +1 -1
  119. package/expo-sqlite/query.cjs +2 -13
  120. package/expo-sqlite/query.cjs.map +1 -1
  121. package/expo-sqlite/query.d.cts +1 -2
  122. package/expo-sqlite/query.d.ts +1 -2
  123. package/expo-sqlite/query.js +2 -3
  124. package/expo-sqlite/query.js.map +1 -1
  125. package/expo-sqlite/session.cjs +4 -47
  126. package/expo-sqlite/session.cjs.map +1 -1
  127. package/expo-sqlite/session.d.cts +8 -14
  128. package/expo-sqlite/session.d.ts +8 -14
  129. package/expo-sqlite/session.js +4 -47
  130. package/expo-sqlite/session.js.map +1 -1
  131. package/libsql/driver-core.cjs +5 -22
  132. package/libsql/driver-core.cjs.map +1 -1
  133. package/libsql/driver-core.d.cts +1 -2
  134. package/libsql/driver-core.d.ts +1 -2
  135. package/libsql/driver-core.js +8 -12
  136. package/libsql/driver-core.js.map +1 -1
  137. package/libsql/driver.cjs.map +1 -1
  138. package/libsql/driver.d.cts +5 -6
  139. package/libsql/driver.d.ts +5 -6
  140. package/libsql/driver.js.map +1 -1
  141. package/libsql/http/index.cjs.map +1 -1
  142. package/libsql/http/index.d.cts +5 -6
  143. package/libsql/http/index.d.ts +5 -6
  144. package/libsql/http/index.js.map +1 -1
  145. package/libsql/migrator.cjs.map +1 -1
  146. package/libsql/migrator.d.cts +1 -2
  147. package/libsql/migrator.d.ts +1 -2
  148. package/libsql/migrator.js.map +1 -1
  149. package/libsql/node/index.cjs.map +1 -1
  150. package/libsql/node/index.d.cts +5 -6
  151. package/libsql/node/index.d.ts +5 -6
  152. package/libsql/node/index.js.map +1 -1
  153. package/libsql/session.cjs +4 -56
  154. package/libsql/session.cjs.map +1 -1
  155. package/libsql/session.d.cts +9 -15
  156. package/libsql/session.d.ts +9 -15
  157. package/libsql/session.js +4 -56
  158. package/libsql/session.js.map +1 -1
  159. package/libsql/sqlite3/index.cjs.map +1 -1
  160. package/libsql/sqlite3/index.d.cts +5 -6
  161. package/libsql/sqlite3/index.d.ts +5 -6
  162. package/libsql/sqlite3/index.js.map +1 -1
  163. package/libsql/wasm/index.cjs.map +1 -1
  164. package/libsql/wasm/index.d.cts +5 -6
  165. package/libsql/wasm/index.d.ts +5 -6
  166. package/libsql/wasm/index.js.map +1 -1
  167. package/libsql/web/index.cjs.map +1 -1
  168. package/libsql/web/index.d.cts +5 -6
  169. package/libsql/web/index.d.ts +5 -6
  170. package/libsql/web/index.js.map +1 -1
  171. package/libsql/ws/index.cjs.map +1 -1
  172. package/libsql/ws/index.d.cts +5 -6
  173. package/libsql/ws/index.d.ts +5 -6
  174. package/libsql/ws/index.js.map +1 -1
  175. package/mysql-core/db.cjs +25 -40
  176. package/mysql-core/db.cjs.map +1 -1
  177. package/mysql-core/db.d.cts +12 -22
  178. package/mysql-core/db.d.ts +12 -22
  179. package/mysql-core/db.js +24 -39
  180. package/mysql-core/db.js.map +1 -1
  181. package/mysql-core/dialect.cjs +15 -194
  182. package/mysql-core/dialect.cjs.map +1 -1
  183. package/mysql-core/dialect.d.cts +13 -33
  184. package/mysql-core/dialect.d.ts +13 -33
  185. package/mysql-core/dialect.js +21 -191
  186. package/mysql-core/dialect.js.map +1 -1
  187. package/mysql-core/query-builders/count.cjs.map +1 -1
  188. package/mysql-core/query-builders/count.d.cts +1 -1
  189. package/mysql-core/query-builders/count.d.ts +1 -1
  190. package/mysql-core/query-builders/count.js.map +1 -1
  191. package/mysql-core/query-builders/query-builder.cjs +15 -11
  192. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  193. package/mysql-core/query-builders/query-builder.d.cts +2 -6
  194. package/mysql-core/query-builders/query-builder.d.ts +2 -6
  195. package/mysql-core/query-builders/query-builder.js +15 -11
  196. package/mysql-core/query-builders/query-builder.js.map +1 -1
  197. package/mysql-core/query-builders/query.cjs +31 -18
  198. package/mysql-core/query-builders/query.cjs.map +1 -1
  199. package/mysql-core/query-builders/query.d.cts +10 -8
  200. package/mysql-core/query-builders/query.d.ts +10 -8
  201. package/mysql-core/query-builders/query.js +31 -18
  202. package/mysql-core/query-builders/query.js.map +1 -1
  203. package/mysql-core/session.cjs +2 -3
  204. package/mysql-core/session.cjs.map +1 -1
  205. package/mysql-core/session.d.cts +7 -10
  206. package/mysql-core/session.d.ts +7 -10
  207. package/mysql-core/session.js +2 -3
  208. package/mysql-core/session.js.map +1 -1
  209. package/mysql-core/subquery.cjs.map +1 -1
  210. package/mysql-core/subquery.d.cts +15 -2
  211. package/mysql-core/subquery.d.ts +15 -2
  212. package/mysql-proxy/driver.cjs +5 -22
  213. package/mysql-proxy/driver.cjs.map +1 -1
  214. package/mysql-proxy/driver.d.cts +2 -3
  215. package/mysql-proxy/driver.d.ts +2 -3
  216. package/mysql-proxy/driver.js +8 -12
  217. package/mysql-proxy/driver.js.map +1 -1
  218. package/mysql-proxy/migrator.cjs.map +1 -1
  219. package/mysql-proxy/migrator.d.cts +1 -2
  220. package/mysql-proxy/migrator.d.ts +1 -2
  221. package/mysql-proxy/migrator.js.map +1 -1
  222. package/mysql-proxy/session.cjs +2 -27
  223. package/mysql-proxy/session.cjs.map +1 -1
  224. package/mysql-proxy/session.d.cts +8 -13
  225. package/mysql-proxy/session.d.ts +8 -13
  226. package/mysql-proxy/session.js +2 -27
  227. package/mysql-proxy/session.js.map +1 -1
  228. package/mysql2/driver.cjs +7 -24
  229. package/mysql2/driver.cjs.map +1 -1
  230. package/mysql2/driver.d.cts +9 -10
  231. package/mysql2/driver.d.ts +9 -10
  232. package/mysql2/driver.js +10 -14
  233. package/mysql2/driver.js.map +1 -1
  234. package/mysql2/migrator.cjs.map +1 -1
  235. package/mysql2/migrator.d.cts +1 -2
  236. package/mysql2/migrator.d.ts +1 -2
  237. package/mysql2/migrator.js.map +1 -1
  238. package/mysql2/session.cjs +2 -30
  239. package/mysql2/session.cjs.map +1 -1
  240. package/mysql2/session.d.cts +8 -13
  241. package/mysql2/session.d.ts +8 -13
  242. package/mysql2/session.js +2 -30
  243. package/mysql2/session.js.map +1 -1
  244. package/neon/index.cjs +2 -0
  245. package/neon/index.cjs.map +1 -1
  246. package/neon/index.d.cts +1 -0
  247. package/neon/index.d.ts +1 -0
  248. package/neon/index.js +1 -0
  249. package/neon/index.js.map +1 -1
  250. package/neon/neon-identity.cjs +38 -0
  251. package/neon/neon-identity.cjs.map +1 -0
  252. package/neon/neon-identity.d.cts +116 -0
  253. package/neon/neon-identity.d.ts +116 -0
  254. package/neon/neon-identity.js +14 -0
  255. package/neon/neon-identity.js.map +1 -0
  256. package/neon-http/driver.cjs +7 -21
  257. package/neon-http/driver.cjs.map +1 -1
  258. package/neon-http/driver.d.cts +9 -10
  259. package/neon-http/driver.d.ts +9 -10
  260. package/neon-http/driver.js +7 -11
  261. package/neon-http/driver.js.map +1 -1
  262. package/neon-http/migrator.cjs.map +1 -1
  263. package/neon-http/migrator.d.cts +1 -2
  264. package/neon-http/migrator.d.ts +1 -2
  265. package/neon-http/migrator.js.map +1 -1
  266. package/neon-http/session.cjs +2 -32
  267. package/neon-http/session.cjs.map +1 -1
  268. package/neon-http/session.d.cts +8 -13
  269. package/neon-http/session.d.ts +8 -13
  270. package/neon-http/session.js +2 -32
  271. package/neon-http/session.js.map +1 -1
  272. package/neon-serverless/driver.cjs +7 -18
  273. package/neon-serverless/driver.cjs.map +1 -1
  274. package/neon-serverless/driver.d.cts +8 -9
  275. package/neon-serverless/driver.d.ts +8 -9
  276. package/neon-serverless/driver.js +10 -8
  277. package/neon-serverless/driver.js.map +1 -1
  278. package/neon-serverless/migrator.cjs.map +1 -1
  279. package/neon-serverless/migrator.d.cts +1 -2
  280. package/neon-serverless/migrator.d.ts +1 -2
  281. package/neon-serverless/migrator.js.map +1 -1
  282. package/neon-serverless/session.cjs +5 -40
  283. package/neon-serverless/session.cjs.map +1 -1
  284. package/neon-serverless/session.d.cts +8 -13
  285. package/neon-serverless/session.d.ts +8 -13
  286. package/neon-serverless/session.js +5 -40
  287. package/neon-serverless/session.js.map +1 -1
  288. package/node-postgres/driver.cjs +7 -13
  289. package/node-postgres/driver.cjs.map +1 -1
  290. package/node-postgres/driver.d.cts +8 -9
  291. package/node-postgres/driver.d.ts +8 -9
  292. package/node-postgres/driver.js +10 -13
  293. package/node-postgres/driver.js.map +1 -1
  294. package/node-postgres/migrator.cjs.map +1 -1
  295. package/node-postgres/migrator.d.cts +1 -2
  296. package/node-postgres/migrator.d.ts +1 -2
  297. package/node-postgres/migrator.js.map +1 -1
  298. package/node-postgres/session.cjs +4 -45
  299. package/node-postgres/session.cjs.map +1 -1
  300. package/node-postgres/session.d.cts +8 -13
  301. package/node-postgres/session.d.ts +8 -13
  302. package/node-postgres/session.js +4 -45
  303. package/node-postgres/session.js.map +1 -1
  304. package/op-sqlite/driver.cjs +5 -22
  305. package/op-sqlite/driver.cjs.map +1 -1
  306. package/op-sqlite/driver.d.cts +2 -3
  307. package/op-sqlite/driver.d.ts +2 -3
  308. package/op-sqlite/driver.js +8 -12
  309. package/op-sqlite/driver.js.map +1 -1
  310. package/op-sqlite/migrator.cjs.map +1 -1
  311. package/op-sqlite/migrator.d.cts +2 -3
  312. package/op-sqlite/migrator.d.ts +2 -3
  313. package/op-sqlite/migrator.js.map +1 -1
  314. package/op-sqlite/session.cjs +4 -47
  315. package/op-sqlite/session.cjs.map +1 -1
  316. package/op-sqlite/session.d.cts +8 -14
  317. package/op-sqlite/session.d.ts +8 -14
  318. package/op-sqlite/session.js +4 -47
  319. package/op-sqlite/session.js.map +1 -1
  320. package/package.json +64 -52
  321. package/pg-core/db.cjs +24 -42
  322. package/pg-core/db.cjs.map +1 -1
  323. package/pg-core/db.d.cts +13 -23
  324. package/pg-core/db.d.ts +13 -23
  325. package/pg-core/db.js +23 -41
  326. package/pg-core/db.js.map +1 -1
  327. package/pg-core/dialect.cjs +488 -161
  328. package/pg-core/dialect.cjs.map +1 -1
  329. package/pg-core/dialect.d.cts +7 -24
  330. package/pg-core/dialect.d.ts +7 -24
  331. package/pg-core/dialect.js +494 -158
  332. package/pg-core/dialect.js.map +1 -1
  333. package/pg-core/query-builders/count.cjs.map +1 -1
  334. package/pg-core/query-builders/count.d.cts +1 -1
  335. package/pg-core/query-builders/count.d.ts +1 -1
  336. package/pg-core/query-builders/count.js.map +1 -1
  337. package/pg-core/query-builders/delete.cjs +13 -0
  338. package/pg-core/query-builders/delete.cjs.map +1 -1
  339. package/pg-core/query-builders/delete.d.cts +13 -10
  340. package/pg-core/query-builders/delete.d.ts +13 -10
  341. package/pg-core/query-builders/delete.js +14 -1
  342. package/pg-core/query-builders/delete.js.map +1 -1
  343. package/pg-core/query-builders/insert.cjs +13 -0
  344. package/pg-core/query-builders/insert.cjs.map +1 -1
  345. package/pg-core/query-builders/insert.d.cts +10 -8
  346. package/pg-core/query-builders/insert.d.ts +10 -8
  347. package/pg-core/query-builders/insert.js +14 -1
  348. package/pg-core/query-builders/insert.js.map +1 -1
  349. package/pg-core/query-builders/query-builder.cjs +15 -11
  350. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  351. package/pg-core/query-builders/query-builder.d.cts +3 -6
  352. package/pg-core/query-builders/query-builder.d.ts +3 -6
  353. package/pg-core/query-builders/query-builder.js +15 -11
  354. package/pg-core/query-builders/query-builder.js.map +1 -1
  355. package/pg-core/query-builders/query.cjs +18 -15
  356. package/pg-core/query-builders/query.cjs.map +1 -1
  357. package/pg-core/query-builders/query.d.cts +6 -6
  358. package/pg-core/query-builders/query.d.ts +6 -6
  359. package/pg-core/query-builders/query.js +18 -15
  360. package/pg-core/query-builders/query.js.map +1 -1
  361. package/pg-core/query-builders/select.cjs +8 -7
  362. package/pg-core/query-builders/select.cjs.map +1 -1
  363. package/pg-core/query-builders/select.d.cts +3 -3
  364. package/pg-core/query-builders/select.d.ts +3 -3
  365. package/pg-core/query-builders/select.js +8 -7
  366. package/pg-core/query-builders/select.js.map +1 -1
  367. package/pg-core/query-builders/select.types.cjs.map +1 -1
  368. package/pg-core/query-builders/select.types.d.cts +3 -2
  369. package/pg-core/query-builders/select.types.d.ts +3 -2
  370. package/pg-core/query-builders/update.cjs +15 -2
  371. package/pg-core/query-builders/update.cjs.map +1 -1
  372. package/pg-core/query-builders/update.d.cts +18 -13
  373. package/pg-core/query-builders/update.d.ts +18 -13
  374. package/pg-core/query-builders/update.js +16 -3
  375. package/pg-core/query-builders/update.js.map +1 -1
  376. package/pg-core/session.cjs +2 -3
  377. package/pg-core/session.cjs.map +1 -1
  378. package/pg-core/session.d.cts +6 -9
  379. package/pg-core/session.d.ts +6 -9
  380. package/pg-core/session.js +2 -3
  381. package/pg-core/session.js.map +1 -1
  382. package/pg-core/subquery.cjs.map +1 -1
  383. package/pg-core/subquery.d.cts +15 -2
  384. package/pg-core/subquery.d.ts +15 -2
  385. package/pg-proxy/driver.cjs +5 -21
  386. package/pg-proxy/driver.cjs.map +1 -1
  387. package/pg-proxy/driver.d.cts +2 -3
  388. package/pg-proxy/driver.d.ts +2 -3
  389. package/pg-proxy/driver.js +8 -11
  390. package/pg-proxy/driver.js.map +1 -1
  391. package/pg-proxy/migrator.cjs.map +1 -1
  392. package/pg-proxy/migrator.d.cts +1 -2
  393. package/pg-proxy/migrator.d.ts +1 -2
  394. package/pg-proxy/migrator.js.map +1 -1
  395. package/pg-proxy/session.cjs +2 -37
  396. package/pg-proxy/session.cjs.map +1 -1
  397. package/pg-proxy/session.d.cts +8 -13
  398. package/pg-proxy/session.d.ts +8 -13
  399. package/pg-proxy/session.js +2 -37
  400. package/pg-proxy/session.js.map +1 -1
  401. package/pglite/driver.cjs +7 -23
  402. package/pglite/driver.cjs.map +1 -1
  403. package/pglite/driver.d.cts +8 -9
  404. package/pglite/driver.d.ts +8 -9
  405. package/pglite/driver.js +10 -13
  406. package/pglite/driver.js.map +1 -1
  407. package/pglite/migrator.cjs.map +1 -1
  408. package/pglite/migrator.d.cts +1 -2
  409. package/pglite/migrator.d.ts +1 -2
  410. package/pglite/migrator.js.map +1 -1
  411. package/pglite/session.cjs +3 -34
  412. package/pglite/session.cjs.map +1 -1
  413. package/pglite/session.d.cts +8 -13
  414. package/pglite/session.d.ts +8 -13
  415. package/pglite/session.js +3 -34
  416. package/pglite/session.js.map +1 -1
  417. package/planetscale-serverless/driver.cjs +5 -22
  418. package/planetscale-serverless/driver.cjs.map +1 -1
  419. package/planetscale-serverless/driver.d.cts +6 -7
  420. package/planetscale-serverless/driver.d.ts +6 -7
  421. package/planetscale-serverless/driver.js +8 -12
  422. package/planetscale-serverless/driver.js.map +1 -1
  423. package/planetscale-serverless/migrator.cjs.map +1 -1
  424. package/planetscale-serverless/migrator.d.cts +1 -2
  425. package/planetscale-serverless/migrator.d.ts +1 -2
  426. package/planetscale-serverless/migrator.js.map +1 -1
  427. package/planetscale-serverless/session.cjs +5 -45
  428. package/planetscale-serverless/session.cjs.map +1 -1
  429. package/planetscale-serverless/session.d.cts +9 -14
  430. package/planetscale-serverless/session.d.ts +9 -14
  431. package/planetscale-serverless/session.js +5 -45
  432. package/planetscale-serverless/session.js.map +1 -1
  433. package/postgres-js/driver.cjs +5 -6
  434. package/postgres-js/driver.cjs.map +1 -1
  435. package/postgres-js/driver.d.cts +6 -7
  436. package/postgres-js/driver.d.ts +6 -7
  437. package/postgres-js/driver.js +8 -6
  438. package/postgres-js/driver.js.map +1 -1
  439. package/postgres-js/migrator.cjs.map +1 -1
  440. package/postgres-js/migrator.d.cts +1 -2
  441. package/postgres-js/migrator.d.ts +1 -2
  442. package/postgres-js/migrator.js.map +1 -1
  443. package/postgres-js/session.cjs +6 -51
  444. package/postgres-js/session.cjs.map +1 -1
  445. package/postgres-js/session.d.cts +9 -15
  446. package/postgres-js/session.d.ts +9 -15
  447. package/postgres-js/session.js +6 -51
  448. package/postgres-js/session.js.map +1 -1
  449. package/prisma/mysql/driver.cjs +1 -1
  450. package/prisma/mysql/driver.cjs.map +1 -1
  451. package/prisma/mysql/driver.js +1 -1
  452. package/prisma/mysql/driver.js.map +1 -1
  453. package/prisma/mysql/session.cjs +0 -3
  454. package/prisma/mysql/session.cjs.map +1 -1
  455. package/prisma/mysql/session.d.cts +1 -3
  456. package/prisma/mysql/session.d.ts +1 -3
  457. package/prisma/mysql/session.js +0 -3
  458. package/prisma/mysql/session.js.map +1 -1
  459. package/prisma/pg/driver.cjs +1 -1
  460. package/prisma/pg/driver.cjs.map +1 -1
  461. package/prisma/pg/driver.js +1 -1
  462. package/prisma/pg/driver.js.map +1 -1
  463. package/prisma/pg/session.cjs +0 -3
  464. package/prisma/pg/session.cjs.map +1 -1
  465. package/prisma/pg/session.d.cts +1 -3
  466. package/prisma/pg/session.d.ts +1 -3
  467. package/prisma/pg/session.js +0 -3
  468. package/prisma/pg/session.js.map +1 -1
  469. package/prisma/sqlite/driver.cjs +1 -1
  470. package/prisma/sqlite/driver.cjs.map +1 -1
  471. package/prisma/sqlite/driver.js +1 -1
  472. package/prisma/sqlite/driver.js.map +1 -1
  473. package/prisma/sqlite/session.cjs +0 -3
  474. package/prisma/sqlite/session.cjs.map +1 -1
  475. package/prisma/sqlite/session.d.cts +2 -4
  476. package/prisma/sqlite/session.d.ts +2 -4
  477. package/prisma/sqlite/session.js +0 -3
  478. package/prisma/sqlite/session.js.map +1 -1
  479. package/query-builders/select.types.cjs.map +1 -1
  480. package/query-builders/select.types.d.cts +1 -1
  481. package/query-builders/select.types.d.ts +1 -1
  482. package/relations.cjs +245 -595
  483. package/relations.cjs.map +1 -1
  484. package/relations.d.cts +131 -276
  485. package/relations.d.ts +131 -276
  486. package/relations.js +239 -589
  487. package/relations.js.map +1 -1
  488. package/singlestore/driver.cjs +1 -1
  489. package/singlestore/driver.cjs.map +1 -1
  490. package/singlestore/driver.d.cts +1 -1
  491. package/singlestore/driver.d.ts +1 -1
  492. package/singlestore/driver.js +3 -3
  493. package/singlestore/driver.js.map +1 -1
  494. package/singlestore/session.cjs.map +1 -1
  495. package/singlestore/session.d.cts +4 -4
  496. package/singlestore/session.d.ts +4 -4
  497. package/singlestore/session.js.map +1 -1
  498. package/singlestore-core/db.cjs +17 -11
  499. package/singlestore-core/db.cjs.map +1 -1
  500. package/singlestore-core/db.d.cts +7 -10
  501. package/singlestore-core/db.d.ts +7 -10
  502. package/singlestore-core/db.js +17 -11
  503. package/singlestore-core/db.js.map +1 -1
  504. package/singlestore-core/dialect.cjs +6 -16
  505. package/singlestore-core/dialect.cjs.map +1 -1
  506. package/singlestore-core/dialect.d.cts +6 -6
  507. package/singlestore-core/dialect.d.ts +6 -6
  508. package/singlestore-core/dialect.js +12 -6
  509. package/singlestore-core/dialect.js.map +1 -1
  510. package/singlestore-core/query-builders/query-builder.cjs +15 -11
  511. package/singlestore-core/query-builders/query-builder.cjs.map +1 -1
  512. package/singlestore-core/query-builders/query-builder.d.cts +2 -6
  513. package/singlestore-core/query-builders/query-builder.d.ts +2 -6
  514. package/singlestore-core/query-builders/query-builder.js +15 -11
  515. package/singlestore-core/query-builders/query-builder.js.map +1 -1
  516. package/singlestore-core/query-builders/query.cjs +2 -12
  517. package/singlestore-core/query-builders/query.cjs.map +1 -1
  518. package/singlestore-core/query-builders/query.d.cts +6 -6
  519. package/singlestore-core/query-builders/query.d.ts +6 -6
  520. package/singlestore-core/query-builders/query.js +4 -2
  521. package/singlestore-core/query-builders/query.js.map +1 -1
  522. package/singlestore-core/session.cjs.map +1 -1
  523. package/singlestore-core/session.d.cts +5 -5
  524. package/singlestore-core/session.d.ts +5 -5
  525. package/singlestore-core/session.js.map +1 -1
  526. package/singlestore-core/subquery.cjs.map +1 -1
  527. package/singlestore-core/subquery.d.cts +15 -2
  528. package/singlestore-core/subquery.d.ts +15 -2
  529. package/singlestore-core/table.cjs.map +1 -1
  530. package/singlestore-core/table.d.cts +12 -12
  531. package/singlestore-core/table.d.ts +12 -12
  532. package/singlestore-core/table.js.map +1 -1
  533. package/singlestore-proxy/driver.cjs +1 -1
  534. package/singlestore-proxy/driver.cjs.map +1 -1
  535. package/singlestore-proxy/driver.js +3 -3
  536. package/singlestore-proxy/driver.js.map +1 -1
  537. package/singlestore-proxy/session.cjs.map +1 -1
  538. package/singlestore-proxy/session.d.cts +4 -4
  539. package/singlestore-proxy/session.d.ts +4 -4
  540. package/singlestore-proxy/session.js.map +1 -1
  541. package/sql/sql.cjs +6 -1
  542. package/sql/sql.cjs.map +1 -1
  543. package/sql/sql.d.cts +9 -8
  544. package/sql/sql.d.ts +9 -8
  545. package/sql/sql.js +5 -1
  546. package/sql/sql.js.map +1 -1
  547. package/sql-js/driver.cjs +5 -16
  548. package/sql-js/driver.cjs.map +1 -1
  549. package/sql-js/driver.d.cts +2 -3
  550. package/sql-js/driver.d.ts +2 -3
  551. package/sql-js/driver.js +8 -6
  552. package/sql-js/driver.js.map +1 -1
  553. package/sql-js/migrator.cjs.map +1 -1
  554. package/sql-js/migrator.d.cts +1 -2
  555. package/sql-js/migrator.d.ts +1 -2
  556. package/sql-js/migrator.js.map +1 -1
  557. package/sql-js/session.cjs +4 -76
  558. package/sql-js/session.cjs.map +1 -1
  559. package/sql-js/session.d.cts +8 -15
  560. package/sql-js/session.d.ts +8 -15
  561. package/sql-js/session.js +4 -76
  562. package/sql-js/session.js.map +1 -1
  563. package/sqlite-core/db.cjs +31 -49
  564. package/sqlite-core/db.cjs.map +1 -1
  565. package/sqlite-core/db.d.cts +12 -23
  566. package/sqlite-core/db.d.ts +12 -23
  567. package/sqlite-core/db.js +30 -48
  568. package/sqlite-core/db.js.map +1 -1
  569. package/sqlite-core/dialect.cjs +7 -183
  570. package/sqlite-core/dialect.cjs.map +1 -1
  571. package/sqlite-core/dialect.d.cts +9 -28
  572. package/sqlite-core/dialect.d.ts +9 -28
  573. package/sqlite-core/dialect.js +13 -180
  574. package/sqlite-core/dialect.js.map +1 -1
  575. package/sqlite-core/query-builders/count.cjs.map +1 -1
  576. package/sqlite-core/query-builders/count.d.cts +1 -1
  577. package/sqlite-core/query-builders/count.d.ts +1 -1
  578. package/sqlite-core/query-builders/count.js.map +1 -1
  579. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  580. package/sqlite-core/query-builders/delete.d.cts +1 -1
  581. package/sqlite-core/query-builders/delete.d.ts +1 -1
  582. package/sqlite-core/query-builders/delete.js.map +1 -1
  583. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  584. package/sqlite-core/query-builders/insert.d.cts +3 -3
  585. package/sqlite-core/query-builders/insert.d.ts +3 -3
  586. package/sqlite-core/query-builders/insert.js.map +1 -1
  587. package/sqlite-core/query-builders/query-builder.cjs +15 -11
  588. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  589. package/sqlite-core/query-builders/query-builder.d.cts +2 -6
  590. package/sqlite-core/query-builders/query-builder.d.ts +2 -6
  591. package/sqlite-core/query-builders/query-builder.js +15 -11
  592. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  593. package/sqlite-core/query-builders/query.cjs +32 -53
  594. package/sqlite-core/query-builders/query.cjs.map +1 -1
  595. package/sqlite-core/query-builders/query.d.cts +17 -18
  596. package/sqlite-core/query-builders/query.d.ts +17 -18
  597. package/sqlite-core/query-builders/query.js +32 -53
  598. package/sqlite-core/query-builders/query.js.map +1 -1
  599. package/sqlite-core/query-builders/select.cjs.map +1 -1
  600. package/sqlite-core/query-builders/select.d.cts +3 -3
  601. package/sqlite-core/query-builders/select.d.ts +3 -3
  602. package/sqlite-core/query-builders/select.js.map +1 -1
  603. package/sqlite-core/query-builders/update.cjs.map +1 -1
  604. package/sqlite-core/query-builders/update.d.cts +3 -3
  605. package/sqlite-core/query-builders/update.d.ts +3 -3
  606. package/sqlite-core/query-builders/update.js.map +1 -1
  607. package/sqlite-core/session.cjs +2 -6
  608. package/sqlite-core/session.cjs.map +1 -1
  609. package/sqlite-core/session.d.cts +7 -15
  610. package/sqlite-core/session.d.ts +7 -15
  611. package/sqlite-core/session.js +2 -6
  612. package/sqlite-core/session.js.map +1 -1
  613. package/sqlite-core/subquery.cjs.map +1 -1
  614. package/sqlite-core/subquery.d.cts +15 -2
  615. package/sqlite-core/subquery.d.ts +15 -2
  616. package/sqlite-proxy/driver.cjs +5 -23
  617. package/sqlite-proxy/driver.cjs.map +1 -1
  618. package/sqlite-proxy/driver.d.cts +3 -4
  619. package/sqlite-proxy/driver.d.ts +3 -4
  620. package/sqlite-proxy/driver.js +5 -13
  621. package/sqlite-proxy/driver.js.map +1 -1
  622. package/sqlite-proxy/migrator.cjs.map +1 -1
  623. package/sqlite-proxy/migrator.d.cts +1 -2
  624. package/sqlite-proxy/migrator.d.ts +1 -2
  625. package/sqlite-proxy/migrator.js.map +1 -1
  626. package/sqlite-proxy/session.cjs +6 -50
  627. package/sqlite-proxy/session.cjs.map +1 -1
  628. package/sqlite-proxy/session.d.cts +8 -14
  629. package/sqlite-proxy/session.d.ts +8 -14
  630. package/sqlite-proxy/session.js +6 -50
  631. package/sqlite-proxy/session.js.map +1 -1
  632. package/subquery.cjs.map +1 -1
  633. package/subquery.d.cts +1 -0
  634. package/subquery.d.ts +1 -0
  635. package/subquery.js.map +1 -1
  636. package/table.cjs.map +1 -1
  637. package/table.d.cts +1 -1
  638. package/table.d.ts +1 -1
  639. package/table.js.map +1 -1
  640. package/tidb-serverless/driver.cjs +5 -22
  641. package/tidb-serverless/driver.cjs.map +1 -1
  642. package/tidb-serverless/driver.d.cts +6 -7
  643. package/tidb-serverless/driver.d.ts +6 -7
  644. package/tidb-serverless/driver.js +8 -12
  645. package/tidb-serverless/driver.js.map +1 -1
  646. package/tidb-serverless/migrator.cjs.map +1 -1
  647. package/tidb-serverless/migrator.d.cts +1 -2
  648. package/tidb-serverless/migrator.d.ts +1 -2
  649. package/tidb-serverless/migrator.js.map +1 -1
  650. package/tidb-serverless/session.cjs +5 -62
  651. package/tidb-serverless/session.cjs.map +1 -1
  652. package/tidb-serverless/session.d.cts +9 -14
  653. package/tidb-serverless/session.d.ts +9 -14
  654. package/tidb-serverless/session.js +5 -62
  655. package/tidb-serverless/session.js.map +1 -1
  656. package/utils.cjs +2 -2
  657. package/utils.cjs.map +1 -1
  658. package/utils.d.cts +1 -3
  659. package/utils.d.ts +1 -3
  660. package/utils.js +2 -2
  661. package/utils.js.map +1 -1
  662. package/vercel-postgres/driver.cjs +7 -23
  663. package/vercel-postgres/driver.cjs.map +1 -1
  664. package/vercel-postgres/driver.d.cts +8 -9
  665. package/vercel-postgres/driver.d.ts +8 -9
  666. package/vercel-postgres/driver.js +10 -13
  667. package/vercel-postgres/driver.js.map +1 -1
  668. package/vercel-postgres/migrator.cjs.map +1 -1
  669. package/vercel-postgres/migrator.d.cts +1 -2
  670. package/vercel-postgres/migrator.d.ts +1 -2
  671. package/vercel-postgres/migrator.js.map +1 -1
  672. package/vercel-postgres/session.cjs +8 -34
  673. package/vercel-postgres/session.cjs.map +1 -1
  674. package/vercel-postgres/session.d.cts +10 -14
  675. package/vercel-postgres/session.d.ts +10 -14
  676. package/vercel-postgres/session.js +8 -34
  677. package/vercel-postgres/session.js.map +1 -1
  678. package/version.cjs +1 -1
  679. package/version.d.cts +1 -1
  680. package/version.d.ts +1 -1
  681. package/version.js +1 -1
  682. package/xata-http/driver.cjs +5 -17
  683. package/xata-http/driver.cjs.map +1 -1
  684. package/xata-http/driver.d.cts +4 -5
  685. package/xata-http/driver.d.ts +4 -5
  686. package/xata-http/driver.js +5 -7
  687. package/xata-http/driver.js.map +1 -1
  688. package/xata-http/migrator.cjs.map +1 -1
  689. package/xata-http/migrator.d.cts +1 -2
  690. package/xata-http/migrator.d.ts +1 -2
  691. package/xata-http/migrator.js.map +1 -1
  692. package/xata-http/session.cjs +2 -30
  693. package/xata-http/session.cjs.map +1 -1
  694. package/xata-http/session.d.cts +8 -13
  695. package/xata-http/session.d.ts +8 -13
  696. package/xata-http/session.js +2 -30
  697. package/xata-http/session.js.map +1 -1
  698. package/_relations.cjs +0 -328
  699. package/_relations.cjs.map +0 -1
  700. package/_relations.d.cts +0 -215
  701. package/_relations.d.ts +0 -215
  702. package/_relations.js +0 -316
  703. package/_relations.js.map +0 -1
  704. package/mysql-core/query-builders/_query.cjs +0 -149
  705. package/mysql-core/query-builders/_query.cjs.map +0 -1
  706. package/mysql-core/query-builders/_query.d.cts +0 -44
  707. package/mysql-core/query-builders/_query.d.ts +0 -44
  708. package/mysql-core/query-builders/_query.js +0 -114
  709. package/mysql-core/query-builders/_query.js.map +0 -1
  710. package/pg-core/query-builders/_query.cjs +0 -155
  711. package/pg-core/query-builders/_query.cjs.map +0 -1
  712. package/pg-core/query-builders/_query.d.cts +0 -47
  713. package/pg-core/query-builders/_query.d.ts +0 -47
  714. package/pg-core/query-builders/_query.js +0 -120
  715. package/pg-core/query-builders/_query.js.map +0 -1
  716. package/sqlite-core/query-builders/_query.cjs +0 -187
  717. package/sqlite-core/query-builders/_query.cjs.map +0 -1
  718. package/sqlite-core/query-builders/_query.d.cts +0 -55
  719. package/sqlite-core/query-builders/_query.d.ts +0 -55
  720. package/sqlite-core/query-builders/_query.js +0 -151
  721. package/sqlite-core/query-builders/_query.js.map +0 -1
@@ -1,9 +1,7 @@
1
1
  import { entityKind } from "../../entity.cjs";
2
- import type { TypedQueryBuilder } from "../../query-builders/query-builder.cjs";
3
2
  import type { SingleStoreDialectConfig } from "../dialect.cjs";
4
3
  import { SingleStoreDialect } from "../dialect.cjs";
5
- import type { WithSubqueryWithSelection } from "../subquery.cjs";
6
- import type { ColumnsSelection } from "../../sql/sql.cjs";
4
+ import type { WithBuilder } from "../subquery.cjs";
7
5
  import { WithSubquery } from "../../subquery.cjs";
8
6
  import { SingleStoreSelectBuilder } from "./select.cjs";
9
7
  import type { SelectedFields } from "./select.types.cjs";
@@ -12,9 +10,7 @@ export declare class QueryBuilder {
12
10
  private dialect;
13
11
  private dialectConfig;
14
12
  constructor(dialect?: SingleStoreDialect | SingleStoreDialectConfig);
15
- $with<TAlias extends string>(alias: TAlias): {
16
- as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
17
- };
13
+ $with: WithBuilder;
18
14
  with(...queries: WithSubquery[]): {
19
15
  select: {
20
16
  (): SingleStoreSelectBuilder<undefined, never, "qb">;
@@ -1,9 +1,7 @@
1
1
  import { entityKind } from "../../entity.js";
2
- import type { TypedQueryBuilder } from "../../query-builders/query-builder.js";
3
2
  import type { SingleStoreDialectConfig } from "../dialect.js";
4
3
  import { SingleStoreDialect } from "../dialect.js";
5
- import type { WithSubqueryWithSelection } from "../subquery.js";
6
- import type { ColumnsSelection } from "../../sql/sql.js";
4
+ import type { WithBuilder } from "../subquery.js";
7
5
  import { WithSubquery } from "../../subquery.js";
8
6
  import { SingleStoreSelectBuilder } from "./select.js";
9
7
  import type { SelectedFields } from "./select.types.js";
@@ -12,9 +10,7 @@ export declare class QueryBuilder {
12
10
  private dialect;
13
11
  private dialectConfig;
14
12
  constructor(dialect?: SingleStoreDialect | SingleStoreDialectConfig);
15
- $with<TAlias extends string>(alias: TAlias): {
16
- as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
17
- };
13
+ $with: WithBuilder;
18
14
  with(...queries: WithSubquery[]): {
19
15
  select: {
20
16
  (): SingleStoreSelectBuilder<undefined, never, "qb">;
@@ -11,20 +11,24 @@ class QueryBuilder {
11
11
  this.dialect = is(dialect, SingleStoreDialect) ? dialect : void 0;
12
12
  this.dialectConfig = is(dialect, SingleStoreDialect) ? void 0 : dialect;
13
13
  }
14
- $with(alias) {
14
+ $with = (alias, selection) => {
15
15
  const queryBuilder = this;
16
- return {
17
- as(qb) {
18
- if (typeof qb === "function") {
19
- qb = qb(queryBuilder);
20
- }
21
- return new Proxy(
22
- new WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true),
23
- new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
24
- );
16
+ const as = (qb) => {
17
+ if (typeof qb === "function") {
18
+ qb = qb(queryBuilder);
25
19
  }
20
+ return new Proxy(
21
+ new WithSubquery(
22
+ qb.getSQL(),
23
+ selection ?? ("getSelectedFields" in qb ? qb.getSelectedFields() ?? {} : {}),
24
+ alias,
25
+ true
26
+ ),
27
+ new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
28
+ );
26
29
  };
27
- }
30
+ return { as };
31
+ };
28
32
  with(...queries) {
29
33
  const self = this;
30
34
  function select(fields) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { SingleStoreDialectConfig } from '~/singlestore-core/dialect.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { WithSubqueryWithSelection } from '~/singlestore-core/subquery.ts';\nimport type { ColumnsSelection } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport { SingleStoreSelectBuilder } from './select.ts';\nimport type { SelectedFields } from './select.types.ts';\n\nexport class QueryBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreQueryBuilder';\n\n\tprivate dialect: SingleStoreDialect | undefined;\n\tprivate dialectConfig: SingleStoreDialectConfig | undefined;\n\n\tconstructor(dialect?: SingleStoreDialect | SingleStoreDialectConfig) {\n\t\tthis.dialect = is(dialect, SingleStoreDialect) ? dialect : undefined;\n\t\tthis.dialectConfig = is(dialect, SingleStoreDialect) ? undefined : dialect;\n\t}\n\n\t$with<TAlias extends string>(alias: TAlias) {\n\t\tconst queryBuilder = this;\n\n\t\treturn {\n\t\t\tas<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias> {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(queryBuilder);\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t},\n\t\t};\n\t}\n\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\tfunction select(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields?: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\t\treturn new SingleStoreSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\tfunction selectDistinct(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields?: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\t\treturn new SingleStoreSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\treturn { select, selectDistinct };\n\t}\n\n\tselect(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\tselect<TSelection extends SelectedFields>(fields: TSelection): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields?: TSelection,\n\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\treturn new SingleStoreSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t});\n\t}\n\n\tselectDistinct(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields?: TSelection,\n\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\treturn new SingleStoreSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t// Lazy load dialect to avoid circular dependency\n\tprivate getDialect() {\n\t\tif (!this.dialect) {\n\t\t\tthis.dialect = new SingleStoreDialect(this.dialectConfig);\n\t\t}\n\n\t\treturn this.dialect;\n\t}\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAE/B,SAAS,6BAA6B;AAEtC,SAAS,0BAA0B;AAGnC,SAAS,oBAAoB;AAC7B,SAAS,gCAAgC;AAGlC,MAAM,aAAa;AAAA,EACzB,QAAiB,UAAU,IAAY;AAAA,EAE/B;AAAA,EACA;AAAA,EAER,YAAY,SAAyD;AACpE,SAAK,UAAU,GAAG,SAAS,kBAAkB,IAAI,UAAU;AAC3D,SAAK,gBAAgB,GAAG,SAAS,kBAAkB,IAAI,SAAY;AAAA,EACpE;AAAA,EAEA,MAA6B,OAAe;AAC3C,UAAM,eAAe;AAErB,WAAO;AAAA,MACN,GACC,IACgD;AAChD,YAAI,OAAO,OAAO,YAAY;AAC7B,eAAK,GAAG,YAAY;AAAA,QACrB;AAEA,eAAO,IAAI;AAAA,UACV,IAAI,aAAa,GAAG,OAAO,GAAG,GAAG,kBAAkB,GAAqB,OAAO,IAAI;AAAA,UACnF,IAAI,sBAAsB,EAAE,OAAO,oBAAoB,SAAS,aAAa,QAAQ,CAAC;AAAA,QACvF;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,QAAQ,SAAyB;AAChC,UAAM,OAAO;AAMb,aAAS,OACR,QACgE;AAChE,aAAO,IAAI,yBAAyB;AAAA,QACnC,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAMA,aAAS,eACR,QACgE;AAChE,aAAO,IAAI,yBAAyB;AAAA,QACnC,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAEA,WAAO,EAAE,QAAQ,eAAe;AAAA,EACjC;AAAA,EAIA,OACC,QACgE;AAChE,WAAO,IAAI,yBAAyB;AAAA,MACnC,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,IAC1B,CAAC;AAAA,EACF;AAAA,EAMA,eACC,QACgE;AAChE,WAAO,IAAI,yBAAyB;AAAA,MACnC,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,MACzB,UAAU;AAAA,IACX,CAAC;AAAA,EACF;AAAA;AAAA,EAGQ,aAAa;AACpB,QAAI,CAAC,KAAK,SAAS;AAClB,WAAK,UAAU,IAAI,mBAAmB,KAAK,aAAa;AAAA,IACzD;AAEA,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { SingleStoreDialectConfig } from '~/singlestore-core/dialect.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { WithBuilder } from '~/singlestore-core/subquery.ts';\nimport type { ColumnsSelection, SQL } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport { SingleStoreSelectBuilder } from './select.ts';\nimport type { SelectedFields } from './select.types.ts';\n\nexport class QueryBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreQueryBuilder';\n\n\tprivate dialect: SingleStoreDialect | undefined;\n\tprivate dialectConfig: SingleStoreDialectConfig | undefined;\n\n\tconstructor(dialect?: SingleStoreDialect | SingleStoreDialectConfig) {\n\t\tthis.dialect = is(dialect, SingleStoreDialect) ? dialect : undefined;\n\t\tthis.dialectConfig = is(dialect, SingleStoreDialect) ? undefined : dialect;\n\t}\n\n\t$with: WithBuilder = (alias: string, selection?: ColumnsSelection) => {\n\t\tconst queryBuilder = this;\n\t\tconst as = (\n\t\t\tqb:\n\t\t\t\t| TypedQueryBuilder<ColumnsSelection | undefined>\n\t\t\t\t| SQL\n\t\t\t\t| ((qb: QueryBuilder) => TypedQueryBuilder<ColumnsSelection | undefined> | SQL),\n\t\t) => {\n\t\t\tif (typeof qb === 'function') {\n\t\t\t\tqb = qb(queryBuilder);\n\t\t\t}\n\n\t\t\treturn new Proxy(\n\t\t\t\tnew WithSubquery(\n\t\t\t\t\tqb.getSQL(),\n\t\t\t\t\tselection ?? ('getSelectedFields' in qb ? qb.getSelectedFields() ?? {} : {}) as SelectedFields,\n\t\t\t\t\talias,\n\t\t\t\t\ttrue,\n\t\t\t\t),\n\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t) as any;\n\t\t};\n\t\treturn { as };\n\t};\n\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\tfunction select(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields?: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\t\treturn new SingleStoreSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\tfunction selectDistinct(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields?: TSelection,\n\t\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\t\treturn new SingleStoreSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\treturn { select, selectDistinct };\n\t}\n\n\tselect(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\tselect<TSelection extends SelectedFields>(fields: TSelection): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields?: TSelection,\n\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\treturn new SingleStoreSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t});\n\t}\n\n\tselectDistinct(): SingleStoreSelectBuilder<undefined, never, 'qb'>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): SingleStoreSelectBuilder<TSelection, never, 'qb'>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields?: TSelection,\n\t): SingleStoreSelectBuilder<TSelection | undefined, never, 'qb'> {\n\t\treturn new SingleStoreSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t// Lazy load dialect to avoid circular dependency\n\tprivate getDialect() {\n\t\tif (!this.dialect) {\n\t\t\tthis.dialect = new SingleStoreDialect(this.dialectConfig);\n\t\t}\n\n\t\treturn this.dialect;\n\t}\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAE/B,SAAS,6BAA6B;AAEtC,SAAS,0BAA0B;AAGnC,SAAS,oBAAoB;AAC7B,SAAS,gCAAgC;AAGlC,MAAM,aAAa;AAAA,EACzB,QAAiB,UAAU,IAAY;AAAA,EAE/B;AAAA,EACA;AAAA,EAER,YAAY,SAAyD;AACpE,SAAK,UAAU,GAAG,SAAS,kBAAkB,IAAI,UAAU;AAC3D,SAAK,gBAAgB,GAAG,SAAS,kBAAkB,IAAI,SAAY;AAAA,EACpE;AAAA,EAEA,QAAqB,CAAC,OAAe,cAAiC;AACrE,UAAM,eAAe;AACrB,UAAM,KAAK,CACV,OAII;AACJ,UAAI,OAAO,OAAO,YAAY;AAC7B,aAAK,GAAG,YAAY;AAAA,MACrB;AAEA,aAAO,IAAI;AAAA,QACV,IAAI;AAAA,UACH,GAAG,OAAO;AAAA,UACV,cAAc,uBAAuB,KAAK,GAAG,kBAAkB,KAAK,CAAC,IAAI,CAAC;AAAA,UAC1E;AAAA,UACA;AAAA,QACD;AAAA,QACA,IAAI,sBAAsB,EAAE,OAAO,oBAAoB,SAAS,aAAa,QAAQ,CAAC;AAAA,MACvF;AAAA,IACD;AACA,WAAO,EAAE,GAAG;AAAA,EACb;AAAA,EAEA,QAAQ,SAAyB;AAChC,UAAM,OAAO;AAMb,aAAS,OACR,QACgE;AAChE,aAAO,IAAI,yBAAyB;AAAA,QACnC,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAMA,aAAS,eACR,QACgE;AAChE,aAAO,IAAI,yBAAyB;AAAA,QACnC,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU;AAAA,QACV,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAEA,WAAO,EAAE,QAAQ,eAAe;AAAA,EACjC;AAAA,EAIA,OACC,QACgE;AAChE,WAAO,IAAI,yBAAyB;AAAA,MACnC,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,IAC1B,CAAC;AAAA,EACF;AAAA,EAMA,eACC,QACgE;AAChE,WAAO,IAAI,yBAAyB;AAAA,MACnC,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,MACzB,UAAU;AAAA,IACX,CAAC;AAAA,EACF;AAAA;AAAA,EAGQ,aAAa;AACpB,QAAI,CAAC,KAAK,SAAS;AAClB,WAAK,UAAU,IAAI,mBAAmB,KAAK,aAAa;AAAA,IACzD;AAEA,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
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
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var query_exports = {};
30
20
  __export(query_exports, {
@@ -32,9 +22,9 @@ __export(query_exports, {
32
22
  SingleStoreRelationalQuery: () => SingleStoreRelationalQuery
33
23
  });
34
24
  module.exports = __toCommonJS(query_exports);
35
- var V1 = __toESM(require("../../_relations.cjs"), 1);
36
25
  var import_entity = require("../../entity.cjs");
37
26
  var import_query_promise = require("../../query-promise.cjs");
27
+ var import_relations = require("../../relations.cjs");
38
28
  class RelationalQueryBuilder {
39
29
  constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session) {
40
30
  this.fullSchema = fullSchema;
@@ -93,7 +83,7 @@ class SingleStoreRelationalQuery extends import_query_promise.QueryPromise {
93
83
  builtQuery,
94
84
  void 0,
95
85
  (rawRows) => {
96
- const rows = rawRows.map((row) => V1.mapRelationalRow(this.schema, this.tableConfig, row, query.selection));
86
+ const rows = rawRows.map((row) => (0, import_relations.mapRelationalRow)(this.schema, this.tableConfig, row, query.selection));
97
87
  if (this.queryMode === "first") {
98
88
  return rows[0];
99
89
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends V1.TablesRelationalConfig,\n\tTFields extends V1.TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: V1.TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends V1.DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, V1.DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as V1.DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as V1.DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: V1.TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: V1.TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: V1.DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => V1.mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: V1.BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,oBAA2B;AAC3B,2BAA6B;AAYtB,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,SACC,QACkG;AAClG,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAA4C,CAAC;AAAA,MACvD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC+G;AAC/G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAuD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC9F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,kCAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,wBAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,GAAG,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AAC1G,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEQ,SAAiF;AACxF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAYA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,SACC,QAC+F;AAC/F,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC4G;AAC5G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,kCAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,wBAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,YAAQ,mCAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
@@ -1,12 +1,12 @@
1
- import * as V1 from "../../_relations.cjs";
2
1
  import { entityKind } from "../../entity.cjs";
3
2
  import { QueryPromise } from "../../query-promise.cjs";
3
+ import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig, type TablesRelationalConfig } from "../../relations.cjs";
4
4
  import type { Query } from "../../sql/sql.cjs";
5
5
  import type { KnownKeysOnly } from "../../utils.cjs";
6
6
  import type { SingleStoreDialect } from "../dialect.cjs";
7
7
  import type { PreparedQueryHKTBase, PreparedQueryKind, SingleStorePreparedQueryConfig, SingleStoreSession } from "../session.cjs";
8
8
  import type { SingleStoreTable } from "../table.cjs";
9
- export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTBase, TSchema extends V1.TablesRelationalConfig, TFields extends V1.TableRelationalConfig> {
9
+ export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTBase, TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {
10
10
  private fullSchema;
11
11
  private schema;
12
12
  private tableNamesMap;
@@ -15,9 +15,9 @@ export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQu
15
15
  private dialect;
16
16
  private session;
17
17
  static readonly [entityKind]: string;
18
- constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: V1.TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession);
19
- findMany<TConfig extends V1.DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, V1.DBQueryConfig<'many', true, TSchema, TFields>>): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TConfig>[]>;
20
- findFirst<TSelection extends Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
18
+ constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession);
19
+ findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
20
+ findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
21
21
  }
22
22
  export declare class SingleStoreRelationalQuery<TPreparedQueryHKT extends PreparedQueryHKTBase, TResult> extends QueryPromise<TResult> {
23
23
  private fullSchema;
@@ -31,7 +31,7 @@ export declare class SingleStoreRelationalQuery<TPreparedQueryHKT extends Prepar
31
31
  private queryMode;
32
32
  static readonly [entityKind]: string;
33
33
  protected $brand: 'SingleStoreRelationalQuery';
34
- constructor(fullSchema: Record<string, unknown>, schema: V1.TablesRelationalConfig, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: V1.TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession, config: V1.DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first');
34
+ constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession, config: DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first');
35
35
  prepare(): PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & {
36
36
  execute: TResult;
37
37
  }, true>;
@@ -1,12 +1,12 @@
1
- import * as V1 from "../../_relations.js";
2
1
  import { entityKind } from "../../entity.js";
3
2
  import { QueryPromise } from "../../query-promise.js";
3
+ import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig, type TablesRelationalConfig } from "../../relations.js";
4
4
  import type { Query } from "../../sql/sql.js";
5
5
  import type { KnownKeysOnly } from "../../utils.js";
6
6
  import type { SingleStoreDialect } from "../dialect.js";
7
7
  import type { PreparedQueryHKTBase, PreparedQueryKind, SingleStorePreparedQueryConfig, SingleStoreSession } from "../session.js";
8
8
  import type { SingleStoreTable } from "../table.js";
9
- export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTBase, TSchema extends V1.TablesRelationalConfig, TFields extends V1.TableRelationalConfig> {
9
+ export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTBase, TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {
10
10
  private fullSchema;
11
11
  private schema;
12
12
  private tableNamesMap;
@@ -15,9 +15,9 @@ export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQu
15
15
  private dialect;
16
16
  private session;
17
17
  static readonly [entityKind]: string;
18
- constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: V1.TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession);
19
- findMany<TConfig extends V1.DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, V1.DBQueryConfig<'many', true, TSchema, TFields>>): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TConfig>[]>;
20
- findFirst<TSelection extends Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
18
+ constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession);
19
+ findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
20
+ findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
21
21
  }
22
22
  export declare class SingleStoreRelationalQuery<TPreparedQueryHKT extends PreparedQueryHKTBase, TResult> extends QueryPromise<TResult> {
23
23
  private fullSchema;
@@ -31,7 +31,7 @@ export declare class SingleStoreRelationalQuery<TPreparedQueryHKT extends Prepar
31
31
  private queryMode;
32
32
  static readonly [entityKind]: string;
33
33
  protected $brand: 'SingleStoreRelationalQuery';
34
- constructor(fullSchema: Record<string, unknown>, schema: V1.TablesRelationalConfig, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: V1.TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession, config: V1.DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first');
34
+ constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: SingleStoreTable, tableConfig: TableRelationalConfig, dialect: SingleStoreDialect, session: SingleStoreSession, config: DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first');
35
35
  prepare(): PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & {
36
36
  execute: TResult;
37
37
  }, true>;
@@ -1,6 +1,8 @@
1
- import * as V1 from "../../_relations.js";
2
1
  import { entityKind } from "../../entity.js";
3
2
  import { QueryPromise } from "../../query-promise.js";
3
+ import {
4
+ mapRelationalRow
5
+ } from "../../relations.js";
4
6
  class RelationalQueryBuilder {
5
7
  constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session) {
6
8
  this.fullSchema = fullSchema;
@@ -59,7 +61,7 @@ class SingleStoreRelationalQuery extends QueryPromise {
59
61
  builtQuery,
60
62
  void 0,
61
63
  (rawRows) => {
62
- const rows = rawRows.map((row) => V1.mapRelationalRow(this.schema, this.tableConfig, row, query.selection));
64
+ const rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));
63
65
  if (this.queryMode === "first") {
64
66
  return rows[0];
65
67
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends V1.TablesRelationalConfig,\n\tTFields extends V1.TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: V1.TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends V1.DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, V1.DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as V1.DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<V1.DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, V1.BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as V1.DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: V1.TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: V1.TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: V1.DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => V1.mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: V1.BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAYtB,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,SACC,QACkG;AAClG,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAA4C,CAAC;AAAA,MACvD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC+G;AAC/G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAuD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC9F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,aAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,UAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,GAAG,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AAC1G,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEQ,SAAiF;AACxF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAYA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,SACC,QAC+F;AAC/F,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC4G;AAC5G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,aAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,UAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/singlestore-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { SingleStoreDatabase } from './db.ts';\nimport type { SingleStoreDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface SingleStoreQueryResultHKT {\n\treadonly $brand: 'SingleStoreQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnySingleStoreQueryResultHKT extends SingleStoreQueryResultHKT {\n\treadonly type: any;\n}\n\nexport type SingleStoreQueryResultKind<TKind extends SingleStoreQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface SingleStorePreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface SingleStorePreparedQueryHKT {\n\treadonly $brand: 'SingleStorePreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends SingleStorePreparedQueryHKT,\n\tTConfig extends SingleStorePreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true\n\t? Assume<(TKind & { readonly config: TConfig })['type'], SingleStorePreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class SingleStorePreparedQuery<T extends SingleStorePreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'SingleStorePreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface SingleStoreTransactionConfig {\n\twithConsistentSnapshot?: boolean;\n\taccessMode?: 'read only' | 'read write';\n\tisolationLevel: 'read committed'; // SingleStore only supports read committed isolation level (https://docs.singlestore.com/db/v8.7/introduction/faqs/durability/)\n}\n\nexport abstract class SingleStoreSession<\n\tTQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends V1.TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreSession';\n\n\tconstructor(protected dialect: SingleStoreDialect) {}\n\n\tabstract prepareQuery<\n\t\tT extends SingleStorePreparedQueryConfig,\n\t\tTPreparedQueryHKT extends SingleStorePreparedQueryHKT,\n\t>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<SingleStorePreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[[{ count: string }]]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0][0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql`set transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.withConsistentSnapshot) {\n\t\t\tparts.push('with consistent snapshot');\n\t\t}\n\n\t\tif (config.accessMode) {\n\t\t\tparts.push(config.accessMode);\n\t\t}\n\n\t\treturn parts.length ? sql`start transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n}\n\nexport abstract class SingleStoreTransaction<\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends V1.TablesRelationalConfig = Record<string, never>,\n> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTransaction';\n\n\tconstructor(\n\t\tdialect: SingleStoreDialect,\n\t\tsession: SingleStoreSession,\n\t\tprotected schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends SingleStorePreparedQueryHKT {\n\ttype: SingleStorePreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,oBAAyC;AACzC,iBAA0C;AAE1C,gBAAoC;AAqC7B,MAAe,yBAAmE;AAAA,EACxF,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAQO,MAAe,mBAKpB;AAAA,EAGD,YAAsB,SAA6B;AAA7B;AAAA,EAA8B;AAAA,EAFpD,QAAiB,wBAAU,IAAY;AAAA,EAevC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EAIA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA+BA,IAAG;AAEzD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAClB;AAAA,EACD;AAAA,EAOU,qBAAqB,QAAuD;AACrF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,iCAAsB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC1E;AAAA,EAEU,uBAAuB,QAAuD;AACvF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,wBAAwB;AAClC,YAAM,KAAK,0BAA0B;AAAA,IACtC;AAEA,QAAI,OAAO,YAAY;AACtB,YAAM,KAAK,OAAO,UAAU;AAAA,IAC7B;AAEA,WAAO,MAAM,SAAS,mCAAwB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC5E;AACD;AAEO,MAAe,+BAKZ,8BAA2E;AAAA,EAGpF,YACC,SACA,SACU,QACS,aAClB;AACD,UAAM,SAAS,SAAS,MAAM;AAHpB;AACS;AAAA,EAGpB;AAAA,EATA,QAA0B,wBAAU,IAAY;AAAA,EAWhD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAMD;","names":["sql"]}
1
+ {"version":3,"sources":["../../src/singlestore-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { SingleStoreDatabase } from './db.ts';\nimport type { SingleStoreDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface SingleStoreQueryResultHKT {\n\treadonly $brand: 'SingleStoreQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnySingleStoreQueryResultHKT extends SingleStoreQueryResultHKT {\n\treadonly type: any;\n}\n\nexport type SingleStoreQueryResultKind<TKind extends SingleStoreQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface SingleStorePreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface SingleStorePreparedQueryHKT {\n\treadonly $brand: 'SingleStorePreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends SingleStorePreparedQueryHKT,\n\tTConfig extends SingleStorePreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true\n\t? Assume<(TKind & { readonly config: TConfig })['type'], SingleStorePreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class SingleStorePreparedQuery<T extends SingleStorePreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'SingleStorePreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface SingleStoreTransactionConfig {\n\twithConsistentSnapshot?: boolean;\n\taccessMode?: 'read only' | 'read write';\n\tisolationLevel: 'read committed'; // SingleStore only supports read committed isolation level (https://docs.singlestore.com/db/v8.7/introduction/faqs/durability/)\n}\n\nexport abstract class SingleStoreSession<\n\tTQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreSession';\n\n\tconstructor(protected dialect: SingleStoreDialect) {}\n\n\tabstract prepareQuery<\n\t\tT extends SingleStorePreparedQueryConfig,\n\t\tTPreparedQueryHKT extends SingleStorePreparedQueryHKT,\n\t>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<SingleStorePreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[[{ count: string }]]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0][0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql`set transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.withConsistentSnapshot) {\n\t\t\tparts.push('with consistent snapshot');\n\t\t}\n\n\t\tif (config.accessMode) {\n\t\t\tparts.push(config.accessMode);\n\t\t}\n\n\t\treturn parts.length ? sql`start transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n}\n\nexport abstract class SingleStoreTransaction<\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTransaction';\n\n\tconstructor(\n\t\tdialect: SingleStoreDialect,\n\t\tsession: SingleStoreSession,\n\t\tprotected schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends SingleStorePreparedQueryHKT {\n\ttype: SingleStorePreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAEzC,iBAA0C;AAE1C,gBAAoC;AAqC7B,MAAe,yBAAmE;AAAA,EACxF,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAQO,MAAe,mBAKpB;AAAA,EAGD,YAAsB,SAA6B;AAA7B;AAAA,EAA8B;AAAA,EAFpD,QAAiB,wBAAU,IAAY;AAAA,EAevC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EAIA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA+BA,IAAG;AAEzD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAClB;AAAA,EACD;AAAA,EAOU,qBAAqB,QAAuD;AACrF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,iCAAsB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC1E;AAAA,EAEU,uBAAuB,QAAuD;AACvF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,wBAAwB;AAClC,YAAM,KAAK,0BAA0B;AAAA,IACtC;AAEA,QAAI,OAAO,YAAY;AACtB,YAAM,KAAK,OAAO,UAAU;AAAA,IAC7B;AAEA,WAAO,MAAM,SAAS,mCAAwB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC5E;AACD;AAEO,MAAe,+BAKZ,8BAA2E;AAAA,EAGpF,YACC,SACA,SACU,QACS,aAClB;AACD,UAAM,SAAS,SAAS,MAAM;AAHpB;AACS;AAAA,EAGpB;AAAA,EATA,QAA0B,wBAAU,IAAY;AAAA,EAWhD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAMD;","names":["sql"]}
@@ -1,5 +1,5 @@
1
- import type * as V1 from "../_relations.cjs";
2
1
  import { entityKind } from "../entity.cjs";
2
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
3
3
  import { type Query, type SQL } from "../sql/sql.cjs";
4
4
  import type { Assume, Equal } from "../utils.cjs";
5
5
  import { SingleStoreDatabase } from "./db.cjs";
@@ -40,7 +40,7 @@ export interface SingleStoreTransactionConfig {
40
40
  accessMode?: 'read only' | 'read write';
41
41
  isolationLevel: 'read committed';
42
42
  }
43
- export declare abstract class SingleStoreSession<TQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends V1.TablesRelationalConfig = Record<string, never>> {
43
+ export declare abstract class SingleStoreSession<TQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
44
44
  protected dialect: SingleStoreDialect;
45
45
  static readonly [entityKind]: string;
46
46
  constructor(dialect: SingleStoreDialect);
@@ -52,11 +52,11 @@ export declare abstract class SingleStoreSession<TQueryResult extends SingleStor
52
52
  protected getSetTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined;
53
53
  protected getStartTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined;
54
54
  }
55
- export declare abstract class SingleStoreTransaction<TQueryResult extends SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends V1.TablesRelationalConfig = Record<string, never>> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
56
- protected schema: V1.RelationalSchemaConfig<TSchema> | undefined;
55
+ export declare abstract class SingleStoreTransaction<TQueryResult extends SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
56
+ protected schema: RelationalSchemaConfig<TSchema> | undefined;
57
57
  protected readonly nestedIndex: number;
58
58
  static readonly [entityKind]: string;
59
- constructor(dialect: SingleStoreDialect, session: SingleStoreSession, schema: V1.RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number);
59
+ constructor(dialect: SingleStoreDialect, session: SingleStoreSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number);
60
60
  rollback(): never;
61
61
  /** Nested transactions (aka savepoints) only work with InnoDB engine. */
62
62
  abstract transaction<T>(transaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
@@ -1,5 +1,5 @@
1
- import type * as V1 from "../_relations.js";
2
1
  import { entityKind } from "../entity.js";
2
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
3
3
  import { type Query, type SQL } from "../sql/sql.js";
4
4
  import type { Assume, Equal } from "../utils.js";
5
5
  import { SingleStoreDatabase } from "./db.js";
@@ -40,7 +40,7 @@ export interface SingleStoreTransactionConfig {
40
40
  accessMode?: 'read only' | 'read write';
41
41
  isolationLevel: 'read committed';
42
42
  }
43
- export declare abstract class SingleStoreSession<TQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends V1.TablesRelationalConfig = Record<string, never>> {
43
+ export declare abstract class SingleStoreSession<TQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
44
44
  protected dialect: SingleStoreDialect;
45
45
  static readonly [entityKind]: string;
46
46
  constructor(dialect: SingleStoreDialect);
@@ -52,11 +52,11 @@ export declare abstract class SingleStoreSession<TQueryResult extends SingleStor
52
52
  protected getSetTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined;
53
53
  protected getStartTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined;
54
54
  }
55
- export declare abstract class SingleStoreTransaction<TQueryResult extends SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends V1.TablesRelationalConfig = Record<string, never>> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
56
- protected schema: V1.RelationalSchemaConfig<TSchema> | undefined;
55
+ export declare abstract class SingleStoreTransaction<TQueryResult extends SingleStoreQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
56
+ protected schema: RelationalSchemaConfig<TSchema> | undefined;
57
57
  protected readonly nestedIndex: number;
58
58
  static readonly [entityKind]: string;
59
- constructor(dialect: SingleStoreDialect, session: SingleStoreSession, schema: V1.RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number);
59
+ constructor(dialect: SingleStoreDialect, session: SingleStoreSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number);
60
60
  rollback(): never;
61
61
  /** Nested transactions (aka savepoints) only work with InnoDB engine. */
62
62
  abstract transaction<T>(transaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/singlestore-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { SingleStoreDatabase } from './db.ts';\nimport type { SingleStoreDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface SingleStoreQueryResultHKT {\n\treadonly $brand: 'SingleStoreQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnySingleStoreQueryResultHKT extends SingleStoreQueryResultHKT {\n\treadonly type: any;\n}\n\nexport type SingleStoreQueryResultKind<TKind extends SingleStoreQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface SingleStorePreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface SingleStorePreparedQueryHKT {\n\treadonly $brand: 'SingleStorePreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends SingleStorePreparedQueryHKT,\n\tTConfig extends SingleStorePreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true\n\t? Assume<(TKind & { readonly config: TConfig })['type'], SingleStorePreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class SingleStorePreparedQuery<T extends SingleStorePreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'SingleStorePreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface SingleStoreTransactionConfig {\n\twithConsistentSnapshot?: boolean;\n\taccessMode?: 'read only' | 'read write';\n\tisolationLevel: 'read committed'; // SingleStore only supports read committed isolation level (https://docs.singlestore.com/db/v8.7/introduction/faqs/durability/)\n}\n\nexport abstract class SingleStoreSession<\n\tTQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends V1.TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreSession';\n\n\tconstructor(protected dialect: SingleStoreDialect) {}\n\n\tabstract prepareQuery<\n\t\tT extends SingleStorePreparedQueryConfig,\n\t\tTPreparedQueryHKT extends SingleStorePreparedQueryHKT,\n\t>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<SingleStorePreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[[{ count: string }]]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0][0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql`set transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.withConsistentSnapshot) {\n\t\t\tparts.push('with consistent snapshot');\n\t\t}\n\n\t\tif (config.accessMode) {\n\t\t\tparts.push(config.accessMode);\n\t\t}\n\n\t\treturn parts.length ? sql`start transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n}\n\nexport abstract class SingleStoreTransaction<\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends V1.TablesRelationalConfig = Record<string, never>,\n> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTransaction';\n\n\tconstructor(\n\t\tdialect: SingleStoreDialect,\n\t\tsession: SingleStoreSession,\n\t\tprotected schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends SingleStorePreparedQueryHKT {\n\ttype: SingleStorePreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AACzC,SAA+B,WAAW;AAE1C,SAAS,2BAA2B;AAqC7B,MAAe,yBAAmE;AAAA,EACxF,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAQO,MAAe,mBAKpB;AAAA,EAGD,YAAsB,SAA6B;AAA7B;AAAA,EAA8B;AAAA,EAFpD,QAAiB,UAAU,IAAY;AAAA,EAevC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EAIA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA+BA,IAAG;AAEzD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAClB;AAAA,EACD;AAAA,EAOU,qBAAqB,QAAuD;AACrF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,sBAAsB,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC1E;AAAA,EAEU,uBAAuB,QAAuD;AACvF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,wBAAwB;AAClC,YAAM,KAAK,0BAA0B;AAAA,IACtC;AAEA,QAAI,OAAO,YAAY;AACtB,YAAM,KAAK,OAAO,UAAU;AAAA,IAC7B;AAEA,WAAO,MAAM,SAAS,wBAAwB,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC5E;AACD;AAEO,MAAe,+BAKZ,oBAA2E;AAAA,EAGpF,YACC,SACA,SACU,QACS,aAClB;AACD,UAAM,SAAS,SAAS,MAAM;AAHpB;AACS;AAAA,EAGpB;AAAA,EATA,QAA0B,UAAU,IAAY;AAAA,EAWhD,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAMD;","names":["sql"]}
1
+ {"version":3,"sources":["../../src/singlestore-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { SingleStoreDatabase } from './db.ts';\nimport type { SingleStoreDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface SingleStoreQueryResultHKT {\n\treadonly $brand: 'SingleStoreQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnySingleStoreQueryResultHKT extends SingleStoreQueryResultHKT {\n\treadonly type: any;\n}\n\nexport type SingleStoreQueryResultKind<TKind extends SingleStoreQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface SingleStorePreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface SingleStorePreparedQueryHKT {\n\treadonly $brand: 'SingleStorePreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends SingleStorePreparedQueryHKT,\n\tTConfig extends SingleStorePreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true\n\t? Assume<(TKind & { readonly config: TConfig })['type'], SingleStorePreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class SingleStorePreparedQuery<T extends SingleStorePreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'SingleStorePreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface SingleStoreTransactionConfig {\n\twithConsistentSnapshot?: boolean;\n\taccessMode?: 'read only' | 'read write';\n\tisolationLevel: 'read committed'; // SingleStore only supports read committed isolation level (https://docs.singlestore.com/db/v8.7/introduction/faqs/durability/)\n}\n\nexport abstract class SingleStoreSession<\n\tTQueryResult extends SingleStoreQueryResultHKT = SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreSession';\n\n\tconstructor(protected dialect: SingleStoreDialect) {}\n\n\tabstract prepareQuery<\n\t\tT extends SingleStorePreparedQueryConfig,\n\t\tTPreparedQueryHKT extends SingleStorePreparedQueryHKT,\n\t>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<SingleStorePreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[[{ count: string }]]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0][0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql`set transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(config: SingleStoreTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.withConsistentSnapshot) {\n\t\t\tparts.push('with consistent snapshot');\n\t\t}\n\n\t\tif (config.accessMode) {\n\t\t\tparts.push(config.accessMode);\n\t\t}\n\n\t\treturn parts.length ? sql`start transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n}\n\nexport abstract class SingleStoreTransaction<\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends SingleStoreDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTransaction';\n\n\tconstructor(\n\t\tdialect: SingleStoreDialect,\n\t\tsession: SingleStoreSession,\n\t\tprotected schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: SingleStoreTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends SingleStorePreparedQueryHKT {\n\ttype: SingleStorePreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AAEzC,SAA+B,WAAW;AAE1C,SAAS,2BAA2B;AAqC7B,MAAe,yBAAmE;AAAA,EACxF,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAQO,MAAe,mBAKpB;AAAA,EAGD,YAAsB,SAA6B;AAA7B;AAAA,EAA8B;AAAA,EAFpD,QAAiB,UAAU,IAAY;AAAA,EAevC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EAIA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA+BA,IAAG;AAEzD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAClB;AAAA,EACD;AAAA,EAOU,qBAAqB,QAAuD;AACrF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,sBAAsB,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC1E;AAAA,EAEU,uBAAuB,QAAuD;AACvF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,wBAAwB;AAClC,YAAM,KAAK,0BAA0B;AAAA,IACtC;AAEA,QAAI,OAAO,YAAY;AACtB,YAAM,KAAK,OAAO,UAAU;AAAA,IAC7B;AAEA,WAAO,MAAM,SAAS,wBAAwB,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC5E;AACD;AAEO,MAAe,+BAKZ,oBAA2E;AAAA,EAGpF,YACC,SACA,SACU,QACS,aAClB;AACD,UAAM,SAAS,SAAS,MAAM;AAHpB;AACS;AAAA,EAGpB;AAAA,EATA,QAA0B,UAAU,IAAY;AAAA,EAWhD,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAMD;","names":["sql"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/singlestore-core/subquery.ts"],"sourcesContent":["import type { AddAliasToSelection } from '~/query-builders/select.types.ts';\nimport type { ColumnsSelection } from '~/sql/sql.ts';\nimport type { Subquery, WithSubquery } from '~/subquery.ts';\n\nexport type SubqueryWithSelection<\n\tTSelection extends ColumnsSelection,\n\tTAlias extends string,\n> =\n\t& Subquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>>\n\t& AddAliasToSelection<TSelection, TAlias, 'singlestore'>;\n\nexport type WithSubqueryWithSelection<\n\tTSelection extends ColumnsSelection,\n\tTAlias extends string,\n> =\n\t& WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>>\n\t& AddAliasToSelection<TSelection, TAlias, 'singlestore'>;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/singlestore-core/subquery.ts"],"sourcesContent":["import type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AddAliasToSelection } from '~/query-builders/select.types.ts';\nimport type { ColumnsSelection, SQL } from '~/sql/sql.ts';\nimport type { Subquery, WithSubquery, WithSubqueryWithoutSelection } from '~/subquery.ts';\nimport type { QueryBuilder } from './query-builders/query-builder.ts';\n\nexport type SubqueryWithSelection<\n\tTSelection extends ColumnsSelection,\n\tTAlias extends string,\n> =\n\t& Subquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>>\n\t& AddAliasToSelection<TSelection, TAlias, 'singlestore'>;\n\nexport type WithSubqueryWithSelection<\n\tTSelection extends ColumnsSelection,\n\tTAlias extends string,\n> =\n\t& WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>>\n\t& AddAliasToSelection<TSelection, TAlias, 'singlestore'>;\n\nexport interface WithBuilder {\n\t<TAlias extends string>(alias: TAlias): {\n\t\tas: {\n\t\t\t<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t(\n\t\t\t\tqb: TypedQueryBuilder<undefined> | ((qb: QueryBuilder) => TypedQueryBuilder<undefined>),\n\t\t\t): WithSubqueryWithoutSelection<TAlias>;\n\t\t};\n\t};\n\t<TAlias extends string, TSelection extends ColumnsSelection>(alias: TAlias, selection: TSelection): {\n\t\tas: (qb: SQL | ((qb: QueryBuilder) => SQL)) => WithSubqueryWithSelection<TSelection, TAlias>;\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,5 +1,18 @@
1
+ import type { TypedQueryBuilder } from "../query-builders/query-builder.cjs";
1
2
  import type { AddAliasToSelection } from "../query-builders/select.types.cjs";
2
- import type { ColumnsSelection } from "../sql/sql.cjs";
3
- import type { Subquery, WithSubquery } from "../subquery.cjs";
3
+ import type { ColumnsSelection, SQL } from "../sql/sql.cjs";
4
+ import type { Subquery, WithSubquery, WithSubqueryWithoutSelection } from "../subquery.cjs";
5
+ import type { QueryBuilder } from "./query-builders/query-builder.cjs";
4
6
  export type SubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = Subquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>> & AddAliasToSelection<TSelection, TAlias, 'singlestore'>;
5
7
  export type WithSubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>> & AddAliasToSelection<TSelection, TAlias, 'singlestore'>;
8
+ export interface WithBuilder {
9
+ <TAlias extends string>(alias: TAlias): {
10
+ as: {
11
+ <TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
12
+ (qb: TypedQueryBuilder<undefined> | ((qb: QueryBuilder) => TypedQueryBuilder<undefined>)): WithSubqueryWithoutSelection<TAlias>;
13
+ };
14
+ };
15
+ <TAlias extends string, TSelection extends ColumnsSelection>(alias: TAlias, selection: TSelection): {
16
+ as: (qb: SQL | ((qb: QueryBuilder) => SQL)) => WithSubqueryWithSelection<TSelection, TAlias>;
17
+ };
18
+ }
@@ -1,5 +1,18 @@
1
+ import type { TypedQueryBuilder } from "../query-builders/query-builder.js";
1
2
  import type { AddAliasToSelection } from "../query-builders/select.types.js";
2
- import type { ColumnsSelection } from "../sql/sql.js";
3
- import type { Subquery, WithSubquery } from "../subquery.js";
3
+ import type { ColumnsSelection, SQL } from "../sql/sql.js";
4
+ import type { Subquery, WithSubquery, WithSubqueryWithoutSelection } from "../subquery.js";
5
+ import type { QueryBuilder } from "./query-builders/query-builder.js";
4
6
  export type SubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = Subquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>> & AddAliasToSelection<TSelection, TAlias, 'singlestore'>;
5
7
  export type WithSubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias, 'singlestore'>> & AddAliasToSelection<TSelection, TAlias, 'singlestore'>;
8
+ export interface WithBuilder {
9
+ <TAlias extends string>(alias: TAlias): {
10
+ as: {
11
+ <TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
12
+ (qb: TypedQueryBuilder<undefined> | ((qb: QueryBuilder) => TypedQueryBuilder<undefined>)): WithSubqueryWithoutSelection<TAlias>;
13
+ };
14
+ };
15
+ <TAlias extends string, TSelection extends ColumnsSelection>(alias: TAlias, selection: TSelection): {
16
+ as: (qb: SQL | ((qb: QueryBuilder) => SQL)) => WithSubqueryWithSelection<TSelection, TAlias>;
17
+ };
18
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/singlestore-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport { getSingleStoreColumnBuilders, type SingleStoreColumnBuilders } from './columns/all.ts';\nimport type { SingleStoreColumn, SingleStoreColumnBuilder, SingleStoreColumnBuilderBase } from './columns/common.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type SingleStoreTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder;\n\nexport type SingleStoreTableExtraConfig = Record<\n\tstring,\n\tSingleStoreTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<SingleStoreColumn>;\n\nexport class SingleStoreTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable<T['columns']>;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record<string, SingleStoreColumn>) => SingleStoreTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnySingleStoreTable<TPartial extends Partial<TableConfig> = {}> = SingleStoreTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type SingleStoreTableWithColumns<T extends TableConfig> =\n\t& SingleStoreTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function singlestoreTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,\n\t\t) => SingleStoreTableExtraConfig | SingleStoreTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): SingleStoreTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\tdialect: 'singlestore';\n}> {\n\tconst rawTable = new SingleStoreTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getSingleStoreColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as SingleStoreColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumns as unknown as BuildExtraConfigColumns<\n\t\tTTableName,\n\t\tTColumnsMap,\n\t\t'singlestore'\n\t>;\n\n\tif (extraConfig) {\n\t\ttable[SingleStoreTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record<string, SingleStoreColumn>,\n\t\t) => SingleStoreTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface SingleStoreTableFn<TSchemaName extends string | undefined = undefined> {\n\t/**\n\t * @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig,\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig,\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,\n\t\t) => SingleStoreTableExtraConfigValue[],\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[],\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n}\n\nexport const singlestoreTable: SingleStoreTableFn = (name, columns, extraConfig) => {\n\treturn singlestoreTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function singlestoreTableCreator(customizeTableName: (name: string) => string): SingleStoreTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn singlestoreTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAmF;AACnF,iBAA6E;AAkBtE,MAAM,yBAA8D,mBAAS;AAAA,EACnF,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAKhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ,CAAC,CAAC;AAAA;AAAA,EAGpE,CAAU,mBAAM,OAAO,OAAO;AAAA;AAAA,EAG9B,CAAU,mBAAM,OAAO,kBAAkB,IAE1B;AAChB;AAYO,SAAS,2BAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,iBAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,yCAA6B,CAAC,IAAI;AAE7G,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAMzC,MAAI,aAAa;AAChB,UAAM,iBAAiB,OAAO,kBAAkB,IAAI;AAAA,EAGrD;AAEA,SAAO;AACR;AA0GO,MAAM,mBAAuC,CAAC,MAAM,SAAS,gBAAgB;AACnF,SAAO,2BAA2B,MAAM,SAAS,aAAa,QAAW,IAAI;AAC9E;AAEO,SAAS,wBAAwB,oBAAkE;AACzG,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,2BAA2B,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACjH;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/singlestore-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport { getSingleStoreColumnBuilders, type SingleStoreColumnBuilders } from './columns/all.ts';\nimport type { SingleStoreColumn, SingleStoreColumnBuilder, SingleStoreColumnBuilderBase } from './columns/common.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type SingleStoreTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder;\n\nexport type SingleStoreTableExtraConfig = Record<\n\tstring,\n\tSingleStoreTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<SingleStoreColumn>;\n\nexport class SingleStoreTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable<T['columns']>;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record<string, SingleStoreColumn>) => SingleStoreTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnySingleStoreTable<TPartial extends Partial<TableConfig> = {}> = SingleStoreTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type SingleStoreTableWithColumns<T extends TableConfig> =\n\t& SingleStoreTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function singlestoreTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,\n\t\t) => SingleStoreTableExtraConfig | SingleStoreTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): SingleStoreTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\tdialect: 'singlestore';\n}> {\n\tconst rawTable = new SingleStoreTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getSingleStoreColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as SingleStoreColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumns as unknown as BuildExtraConfigColumns<\n\t\tTTableName,\n\t\tTColumnsMap,\n\t\t'singlestore'\n\t>;\n\n\tif (extraConfig) {\n\t\ttable[SingleStoreTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record<string, SingleStoreColumn>,\n\t\t) => SingleStoreTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface SingleStoreTableFn<TSchemaName extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,\n\t\t) => SingleStoreTableExtraConfigValue[],\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[],\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\t/**\n\t * @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig,\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig,\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n}\n\nexport const singlestoreTable: SingleStoreTableFn = (name, columns, extraConfig) => {\n\treturn singlestoreTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function singlestoreTableCreator(customizeTableName: (name: string) => string): SingleStoreTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn singlestoreTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAmF;AACnF,iBAA6E;AAkBtE,MAAM,yBAA8D,mBAAS;AAAA,EACnF,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAKhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ,CAAC,CAAC;AAAA;AAAA,EAGpE,CAAU,mBAAM,OAAO,OAAO;AAAA;AAAA,EAG9B,CAAU,mBAAM,OAAO,kBAAkB,IAE1B;AAChB;AAYO,SAAS,2BAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,iBAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,yCAA6B,CAAC,IAAI;AAE7G,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAMzC,MAAI,aAAa;AAChB,UAAM,iBAAiB,OAAO,kBAAkB,IAAI;AAAA,EAGrD;AAEA,SAAO;AACR;AAyGO,MAAM,mBAAuC,CAAC,MAAM,SAAS,gBAAgB;AACnF,SAAO,2BAA2B,MAAM,SAAS,aAAa,QAAW,IAAI;AAC9E;AAEO,SAAS,wBAAwB,oBAAkE;AACzG,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,2BAA2B,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACjH;AACD;","names":["name"]}