drizzle-orm 0.36.4 → 0.37.0-3f3eb73

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 (482) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +4 -3
  3. package/column-builder.d.ts +4 -3
  4. package/column-builder.js.map +1 -1
  5. package/durable-sqlite/driver.cjs +64 -0
  6. package/durable-sqlite/driver.cjs.map +1 -0
  7. package/durable-sqlite/driver.d.cts +9 -0
  8. package/durable-sqlite/driver.d.ts +9 -0
  9. package/durable-sqlite/driver.js +42 -0
  10. package/durable-sqlite/driver.js.map +1 -0
  11. package/durable-sqlite/index.cjs +25 -0
  12. package/durable-sqlite/index.cjs.map +1 -0
  13. package/durable-sqlite/index.d.cts +2 -0
  14. package/durable-sqlite/index.d.ts +2 -0
  15. package/durable-sqlite/index.js +3 -0
  16. package/durable-sqlite/index.js.map +1 -0
  17. package/durable-sqlite/migrator.cjs +85 -0
  18. package/durable-sqlite/migrator.cjs.map +1 -0
  19. package/durable-sqlite/migrator.d.cts +14 -0
  20. package/durable-sqlite/migrator.d.ts +14 -0
  21. package/durable-sqlite/migrator.js +61 -0
  22. package/durable-sqlite/migrator.js.map +1 -0
  23. package/durable-sqlite/session.cjs +131 -0
  24. package/durable-sqlite/session.cjs.map +1 -0
  25. package/durable-sqlite/session.d.cts +46 -0
  26. package/durable-sqlite/session.d.ts +46 -0
  27. package/durable-sqlite/session.js +107 -0
  28. package/durable-sqlite/session.js.map +1 -0
  29. package/mysql-core/utils.d.cts +1 -2
  30. package/mysql-core/utils.d.ts +1 -2
  31. package/mysql-core/view.cjs.map +1 -1
  32. package/mysql-core/view.d.cts +2 -3
  33. package/mysql-core/view.d.ts +2 -3
  34. package/mysql-core/view.js.map +1 -1
  35. package/neon-http/driver.cjs +1 -1
  36. package/neon-http/driver.cjs.map +1 -1
  37. package/neon-http/driver.d.cts +2 -2
  38. package/neon-http/driver.d.ts +2 -2
  39. package/neon-http/driver.js +1 -1
  40. package/neon-http/driver.js.map +1 -1
  41. package/neon-http/session.cjs.map +1 -1
  42. package/neon-http/session.js.map +1 -1
  43. package/package.json +784 -3
  44. package/pg-core/db.cjs +4 -2
  45. package/pg-core/db.cjs.map +1 -1
  46. package/pg-core/db.d.cts +2 -2
  47. package/pg-core/db.d.ts +2 -2
  48. package/pg-core/db.js +4 -2
  49. package/pg-core/db.js.map +1 -1
  50. package/pg-core/query-builders/count.cjs +1 -0
  51. package/pg-core/query-builders/count.cjs.map +1 -1
  52. package/pg-core/query-builders/count.d.cts +2 -1
  53. package/pg-core/query-builders/count.d.ts +2 -1
  54. package/pg-core/query-builders/count.js +1 -0
  55. package/pg-core/query-builders/count.js.map +1 -1
  56. package/pg-core/query-builders/delete.cjs.map +1 -1
  57. package/pg-core/query-builders/delete.js.map +1 -1
  58. package/pg-core/query-builders/insert.cjs +1 -9
  59. package/pg-core/query-builders/insert.cjs.map +1 -1
  60. package/pg-core/query-builders/insert.js +1 -9
  61. package/pg-core/query-builders/insert.js.map +1 -1
  62. package/pg-core/query-builders/query.cjs.map +1 -1
  63. package/pg-core/query-builders/query.js.map +1 -1
  64. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  65. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  66. package/pg-core/query-builders/select.cjs +2 -10
  67. package/pg-core/query-builders/select.cjs.map +1 -1
  68. package/pg-core/query-builders/select.js +8 -11
  69. package/pg-core/query-builders/select.js.map +1 -1
  70. package/pg-core/query-builders/update.cjs +1 -7
  71. package/pg-core/query-builders/update.cjs.map +1 -1
  72. package/pg-core/query-builders/update.d.cts +2 -2
  73. package/pg-core/query-builders/update.d.ts +2 -2
  74. package/pg-core/query-builders/update.js +6 -8
  75. package/pg-core/query-builders/update.js.map +1 -1
  76. package/pg-core/session.cjs.map +1 -1
  77. package/pg-core/session.d.cts +2 -1
  78. package/pg-core/session.d.ts +2 -1
  79. package/pg-core/session.js.map +1 -1
  80. package/pg-core/utils.d.cts +2 -3
  81. package/pg-core/utils.d.ts +2 -3
  82. package/pg-core/view.cjs.map +1 -1
  83. package/pg-core/view.d.cts +4 -5
  84. package/pg-core/view.d.ts +4 -5
  85. package/pg-core/view.js.map +1 -1
  86. package/query-builders/select.types.cjs.map +1 -1
  87. package/query-builders/select.types.d.cts +2 -2
  88. package/query-builders/select.types.d.ts +2 -2
  89. package/singlestore/driver.cjs +113 -0
  90. package/singlestore/driver.cjs.map +1 -0
  91. package/singlestore/driver.d.cts +52 -0
  92. package/singlestore/driver.d.ts +52 -0
  93. package/singlestore/driver.js +89 -0
  94. package/singlestore/driver.js.map +1 -0
  95. package/singlestore/index.cjs +25 -0
  96. package/singlestore/index.cjs.map +1 -0
  97. package/singlestore/index.d.cts +2 -0
  98. package/singlestore/index.d.ts +2 -0
  99. package/singlestore/index.js +3 -0
  100. package/singlestore/index.js.map +1 -0
  101. package/singlestore/migrator.cjs +33 -0
  102. package/singlestore/migrator.cjs.map +1 -0
  103. package/singlestore/migrator.d.cts +3 -0
  104. package/singlestore/migrator.d.ts +3 -0
  105. package/singlestore/migrator.js +9 -0
  106. package/singlestore/migrator.js.map +1 -0
  107. package/singlestore/session.cjs +258 -0
  108. package/singlestore/session.cjs.map +1 -0
  109. package/singlestore/session.d.cts +52 -0
  110. package/singlestore/session.d.ts +52 -0
  111. package/singlestore/session.js +236 -0
  112. package/singlestore/session.js.map +1 -0
  113. package/singlestore-core/alias.cjs +32 -0
  114. package/singlestore-core/alias.cjs.map +1 -0
  115. package/singlestore-core/alias.d.cts +4 -0
  116. package/singlestore-core/alias.d.ts +4 -0
  117. package/singlestore-core/alias.js +8 -0
  118. package/singlestore-core/alias.js.map +1 -0
  119. package/singlestore-core/columns/all.cjs +80 -0
  120. package/singlestore-core/columns/all.cjs.map +1 -0
  121. package/singlestore-core/columns/all.d.cts +51 -0
  122. package/singlestore-core/columns/all.d.ts +51 -0
  123. package/singlestore-core/columns/all.js +56 -0
  124. package/singlestore-core/columns/all.js.map +1 -0
  125. package/singlestore-core/columns/bigint.cjs +96 -0
  126. package/singlestore-core/columns/bigint.cjs.map +1 -0
  127. package/singlestore-core/columns/bigint.d.cts +54 -0
  128. package/singlestore-core/columns/bigint.d.ts +54 -0
  129. package/singlestore-core/columns/bigint.js +68 -0
  130. package/singlestore-core/columns/bigint.js.map +1 -0
  131. package/singlestore-core/columns/binary.cjs +60 -0
  132. package/singlestore-core/columns/binary.cjs.map +1 -0
  133. package/singlestore-core/columns/binary.d.cts +28 -0
  134. package/singlestore-core/columns/binary.d.ts +28 -0
  135. package/singlestore-core/columns/binary.js +34 -0
  136. package/singlestore-core/columns/binary.js.map +1 -0
  137. package/singlestore-core/columns/boolean.cjs +62 -0
  138. package/singlestore-core/columns/boolean.cjs.map +1 -0
  139. package/singlestore-core/columns/boolean.d.cts +24 -0
  140. package/singlestore-core/columns/boolean.d.ts +24 -0
  141. package/singlestore-core/columns/boolean.js +36 -0
  142. package/singlestore-core/columns/boolean.js.map +1 -0
  143. package/singlestore-core/columns/char.cjs +62 -0
  144. package/singlestore-core/columns/char.cjs.map +1 -0
  145. package/singlestore-core/columns/char.d.cts +31 -0
  146. package/singlestore-core/columns/char.d.ts +31 -0
  147. package/singlestore-core/columns/char.js +36 -0
  148. package/singlestore-core/columns/char.js.map +1 -0
  149. package/singlestore-core/columns/common.cjs +82 -0
  150. package/singlestore-core/columns/common.cjs.map +1 -0
  151. package/singlestore-core/columns/common.d.cts +42 -0
  152. package/singlestore-core/columns/common.d.ts +42 -0
  153. package/singlestore-core/columns/common.js +55 -0
  154. package/singlestore-core/columns/common.js.map +1 -0
  155. package/singlestore-core/columns/custom.cjs +77 -0
  156. package/singlestore-core/columns/custom.cjs.map +1 -0
  157. package/singlestore-core/columns/custom.d.cts +156 -0
  158. package/singlestore-core/columns/custom.d.ts +156 -0
  159. package/singlestore-core/columns/custom.js +51 -0
  160. package/singlestore-core/columns/custom.js.map +1 -0
  161. package/singlestore-core/columns/date.cjs +93 -0
  162. package/singlestore-core/columns/date.cjs.map +1 -0
  163. package/singlestore-core/columns/date.common.cjs +48 -0
  164. package/singlestore-core/columns/date.common.cjs.map +1 -0
  165. package/singlestore-core/columns/date.common.d.cts +16 -0
  166. package/singlestore-core/columns/date.common.d.ts +16 -0
  167. package/singlestore-core/columns/date.common.js +23 -0
  168. package/singlestore-core/columns/date.common.js.map +1 -0
  169. package/singlestore-core/columns/date.d.cts +53 -0
  170. package/singlestore-core/columns/date.d.ts +53 -0
  171. package/singlestore-core/columns/date.js +65 -0
  172. package/singlestore-core/columns/date.js.map +1 -0
  173. package/singlestore-core/columns/datetime.cjs +106 -0
  174. package/singlestore-core/columns/datetime.cjs.map +1 -0
  175. package/singlestore-core/columns/datetime.d.cts +54 -0
  176. package/singlestore-core/columns/datetime.d.ts +54 -0
  177. package/singlestore-core/columns/datetime.js +78 -0
  178. package/singlestore-core/columns/datetime.js.map +1 -0
  179. package/singlestore-core/columns/decimal.cjs +76 -0
  180. package/singlestore-core/columns/decimal.cjs.map +1 -0
  181. package/singlestore-core/columns/decimal.d.cts +32 -0
  182. package/singlestore-core/columns/decimal.d.ts +32 -0
  183. package/singlestore-core/columns/decimal.js +50 -0
  184. package/singlestore-core/columns/decimal.js.map +1 -0
  185. package/singlestore-core/columns/double.cjs +72 -0
  186. package/singlestore-core/columns/double.cjs.map +1 -0
  187. package/singlestore-core/columns/double.d.cts +32 -0
  188. package/singlestore-core/columns/double.d.ts +32 -0
  189. package/singlestore-core/columns/double.js +46 -0
  190. package/singlestore-core/columns/double.js.map +1 -0
  191. package/singlestore-core/columns/enum.cjs +67 -0
  192. package/singlestore-core/columns/enum.cjs.map +1 -0
  193. package/singlestore-core/columns/enum.d.cts +31 -0
  194. package/singlestore-core/columns/enum.d.ts +31 -0
  195. package/singlestore-core/columns/enum.js +41 -0
  196. package/singlestore-core/columns/enum.js.map +1 -0
  197. package/singlestore-core/columns/float.cjs +72 -0
  198. package/singlestore-core/columns/float.cjs.map +1 -0
  199. package/singlestore-core/columns/float.d.cts +32 -0
  200. package/singlestore-core/columns/float.d.ts +32 -0
  201. package/singlestore-core/columns/float.js +46 -0
  202. package/singlestore-core/columns/float.js.map +1 -0
  203. package/singlestore-core/columns/index.cjs +71 -0
  204. package/singlestore-core/columns/index.cjs.map +1 -0
  205. package/singlestore-core/columns/index.d.cts +25 -0
  206. package/singlestore-core/columns/index.d.ts +25 -0
  207. package/singlestore-core/columns/index.js +26 -0
  208. package/singlestore-core/columns/index.js.map +1 -0
  209. package/singlestore-core/columns/int.cjs +65 -0
  210. package/singlestore-core/columns/int.cjs.map +1 -0
  211. package/singlestore-core/columns/int.d.cts +28 -0
  212. package/singlestore-core/columns/int.d.ts +28 -0
  213. package/singlestore-core/columns/int.js +39 -0
  214. package/singlestore-core/columns/int.js.map +1 -0
  215. package/singlestore-core/columns/json.cjs +59 -0
  216. package/singlestore-core/columns/json.cjs.map +1 -0
  217. package/singlestore-core/columns/json.d.cts +24 -0
  218. package/singlestore-core/columns/json.d.ts +24 -0
  219. package/singlestore-core/columns/json.js +33 -0
  220. package/singlestore-core/columns/json.js.map +1 -0
  221. package/singlestore-core/columns/mediumint.cjs +65 -0
  222. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  223. package/singlestore-core/columns/mediumint.d.cts +26 -0
  224. package/singlestore-core/columns/mediumint.d.ts +26 -0
  225. package/singlestore-core/columns/mediumint.js +39 -0
  226. package/singlestore-core/columns/mediumint.js.map +1 -0
  227. package/singlestore-core/columns/real.cjs +68 -0
  228. package/singlestore-core/columns/real.cjs.map +1 -0
  229. package/singlestore-core/columns/real.d.cts +30 -0
  230. package/singlestore-core/columns/real.d.ts +30 -0
  231. package/singlestore-core/columns/real.js +42 -0
  232. package/singlestore-core/columns/real.js.map +1 -0
  233. package/singlestore-core/columns/serial.cjs +64 -0
  234. package/singlestore-core/columns/serial.cjs.map +1 -0
  235. package/singlestore-core/columns/serial.d.cts +24 -0
  236. package/singlestore-core/columns/serial.d.ts +24 -0
  237. package/singlestore-core/columns/serial.js +38 -0
  238. package/singlestore-core/columns/serial.js.map +1 -0
  239. package/singlestore-core/columns/smallint.cjs +65 -0
  240. package/singlestore-core/columns/smallint.cjs.map +1 -0
  241. package/singlestore-core/columns/smallint.d.cts +26 -0
  242. package/singlestore-core/columns/smallint.d.ts +26 -0
  243. package/singlestore-core/columns/smallint.js +39 -0
  244. package/singlestore-core/columns/smallint.js.map +1 -0
  245. package/singlestore-core/columns/text.cjs +80 -0
  246. package/singlestore-core/columns/text.cjs.map +1 -0
  247. package/singlestore-core/columns/text.d.cts +46 -0
  248. package/singlestore-core/columns/text.d.ts +46 -0
  249. package/singlestore-core/columns/text.js +51 -0
  250. package/singlestore-core/columns/text.js.map +1 -0
  251. package/singlestore-core/columns/time.cjs +56 -0
  252. package/singlestore-core/columns/time.cjs.map +1 -0
  253. package/singlestore-core/columns/time.d.cts +23 -0
  254. package/singlestore-core/columns/time.d.ts +23 -0
  255. package/singlestore-core/columns/time.js +30 -0
  256. package/singlestore-core/columns/time.js.map +1 -0
  257. package/singlestore-core/columns/timestamp.cjs +97 -0
  258. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  259. package/singlestore-core/columns/timestamp.d.cts +49 -0
  260. package/singlestore-core/columns/timestamp.d.ts +49 -0
  261. package/singlestore-core/columns/timestamp.js +69 -0
  262. package/singlestore-core/columns/timestamp.js.map +1 -0
  263. package/singlestore-core/columns/tinyint.cjs +65 -0
  264. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  265. package/singlestore-core/columns/tinyint.d.cts +26 -0
  266. package/singlestore-core/columns/tinyint.d.ts +26 -0
  267. package/singlestore-core/columns/tinyint.js +39 -0
  268. package/singlestore-core/columns/tinyint.js.map +1 -0
  269. package/singlestore-core/columns/varbinary.cjs +61 -0
  270. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  271. package/singlestore-core/columns/varbinary.d.cts +26 -0
  272. package/singlestore-core/columns/varbinary.d.ts +26 -0
  273. package/singlestore-core/columns/varbinary.js +35 -0
  274. package/singlestore-core/columns/varbinary.js.map +1 -0
  275. package/singlestore-core/columns/varchar.cjs +63 -0
  276. package/singlestore-core/columns/varchar.cjs.map +1 -0
  277. package/singlestore-core/columns/varchar.d.cts +29 -0
  278. package/singlestore-core/columns/varchar.d.ts +29 -0
  279. package/singlestore-core/columns/varchar.js +37 -0
  280. package/singlestore-core/columns/varchar.js.map +1 -0
  281. package/singlestore-core/columns/year.cjs +56 -0
  282. package/singlestore-core/columns/year.cjs.map +1 -0
  283. package/singlestore-core/columns/year.d.cts +23 -0
  284. package/singlestore-core/columns/year.d.ts +23 -0
  285. package/singlestore-core/columns/year.js +30 -0
  286. package/singlestore-core/columns/year.js.map +1 -0
  287. package/singlestore-core/db.cjs +261 -0
  288. package/singlestore-core/db.cjs.map +1 -0
  289. package/singlestore-core/db.d.cts +231 -0
  290. package/singlestore-core/db.d.ts +231 -0
  291. package/singlestore-core/db.js +242 -0
  292. package/singlestore-core/db.js.map +1 -0
  293. package/singlestore-core/dialect.cjs +607 -0
  294. package/singlestore-core/dialect.cjs.map +1 -0
  295. package/singlestore-core/dialect.d.cts +64 -0
  296. package/singlestore-core/dialect.d.ts +64 -0
  297. package/singlestore-core/dialect.js +589 -0
  298. package/singlestore-core/dialect.js.map +1 -0
  299. package/singlestore-core/expressions.cjs +49 -0
  300. package/singlestore-core/expressions.cjs.map +1 -0
  301. package/singlestore-core/expressions.d.cts +8 -0
  302. package/singlestore-core/expressions.d.ts +8 -0
  303. package/singlestore-core/expressions.js +22 -0
  304. package/singlestore-core/expressions.js.map +1 -0
  305. package/singlestore-core/index.cjs +47 -0
  306. package/singlestore-core/index.cjs.map +1 -0
  307. package/singlestore-core/index.d.cts +13 -0
  308. package/singlestore-core/index.d.ts +13 -0
  309. package/singlestore-core/index.js +14 -0
  310. package/singlestore-core/index.js.map +1 -0
  311. package/singlestore-core/indexes.cjs +88 -0
  312. package/singlestore-core/indexes.cjs.map +1 -0
  313. package/singlestore-core/indexes.d.cts +62 -0
  314. package/singlestore-core/indexes.d.ts +62 -0
  315. package/singlestore-core/indexes.js +60 -0
  316. package/singlestore-core/indexes.js.map +1 -0
  317. package/singlestore-core/primary-keys.cjs +68 -0
  318. package/singlestore-core/primary-keys.cjs.map +1 -0
  319. package/singlestore-core/primary-keys.d.cts +30 -0
  320. package/singlestore-core/primary-keys.d.ts +30 -0
  321. package/singlestore-core/primary-keys.js +42 -0
  322. package/singlestore-core/primary-keys.js.map +1 -0
  323. package/singlestore-core/query-builders/count.cjs +73 -0
  324. package/singlestore-core/query-builders/count.cjs.map +1 -0
  325. package/singlestore-core/query-builders/count.d.cts +25 -0
  326. package/singlestore-core/query-builders/count.d.ts +25 -0
  327. package/singlestore-core/query-builders/count.js +49 -0
  328. package/singlestore-core/query-builders/count.js.map +1 -0
  329. package/singlestore-core/query-builders/delete.cjs +123 -0
  330. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  331. package/singlestore-core/query-builders/delete.d.cts +83 -0
  332. package/singlestore-core/query-builders/delete.d.ts +83 -0
  333. package/singlestore-core/query-builders/delete.js +99 -0
  334. package/singlestore-core/query-builders/delete.js.map +1 -0
  335. package/singlestore-core/query-builders/index.cjs +33 -0
  336. package/singlestore-core/query-builders/index.cjs.map +1 -0
  337. package/singlestore-core/query-builders/index.d.cts +6 -0
  338. package/singlestore-core/query-builders/index.d.ts +6 -0
  339. package/singlestore-core/query-builders/index.js +7 -0
  340. package/singlestore-core/query-builders/index.js.map +1 -0
  341. package/singlestore-core/query-builders/insert.cjs +146 -0
  342. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  343. package/singlestore-core/query-builders/insert.d.cts +106 -0
  344. package/singlestore-core/query-builders/insert.d.ts +106 -0
  345. package/singlestore-core/query-builders/insert.js +121 -0
  346. package/singlestore-core/query-builders/insert.js.map +1 -0
  347. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  348. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  349. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  350. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  351. package/singlestore-core/query-builders/query-builder.js +75 -0
  352. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  353. package/singlestore-core/query-builders/query.cjs +126 -0
  354. package/singlestore-core/query-builders/query.cjs.map +1 -0
  355. package/singlestore-core/query-builders/query.d.cts +42 -0
  356. package/singlestore-core/query-builders/query.d.ts +42 -0
  357. package/singlestore-core/query-builders/query.js +103 -0
  358. package/singlestore-core/query-builders/query.js.map +1 -0
  359. package/singlestore-core/query-builders/select.cjs +687 -0
  360. package/singlestore-core/query-builders/select.cjs.map +1 -0
  361. package/singlestore-core/query-builders/select.d.cts +585 -0
  362. package/singlestore-core/query-builders/select.d.ts +585 -0
  363. package/singlestore-core/query-builders/select.js +662 -0
  364. package/singlestore-core/query-builders/select.js.map +1 -0
  365. package/singlestore-core/query-builders/select.types.cjs +17 -0
  366. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  367. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  368. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  369. package/singlestore-core/query-builders/select.types.js +1 -0
  370. package/singlestore-core/query-builders/select.types.js.map +1 -0
  371. package/singlestore-core/query-builders/update.cjs +147 -0
  372. package/singlestore-core/query-builders/update.cjs.map +1 -0
  373. package/singlestore-core/query-builders/update.d.cts +102 -0
  374. package/singlestore-core/query-builders/update.d.ts +102 -0
  375. package/singlestore-core/query-builders/update.js +122 -0
  376. package/singlestore-core/query-builders/update.js.map +1 -0
  377. package/singlestore-core/schema.cjs +56 -0
  378. package/singlestore-core/schema.cjs.map +1 -0
  379. package/singlestore-core/schema.d.cts +22 -0
  380. package/singlestore-core/schema.d.ts +22 -0
  381. package/singlestore-core/schema.js +29 -0
  382. package/singlestore-core/schema.js.map +1 -0
  383. package/singlestore-core/session.cjs +87 -0
  384. package/singlestore-core/session.cjs.map +1 -0
  385. package/singlestore-core/session.d.cts +66 -0
  386. package/singlestore-core/session.d.ts +66 -0
  387. package/singlestore-core/session.js +61 -0
  388. package/singlestore-core/session.js.map +1 -0
  389. package/singlestore-core/subquery.cjs +17 -0
  390. package/singlestore-core/subquery.cjs.map +1 -0
  391. package/singlestore-core/subquery.d.cts +5 -0
  392. package/singlestore-core/subquery.d.ts +5 -0
  393. package/singlestore-core/subquery.js +1 -0
  394. package/singlestore-core/subquery.js.map +1 -0
  395. package/singlestore-core/table.cjs +73 -0
  396. package/singlestore-core/table.cjs.map +1 -0
  397. package/singlestore-core/table.d.cts +40 -0
  398. package/singlestore-core/table.d.ts +40 -0
  399. package/singlestore-core/table.js +46 -0
  400. package/singlestore-core/table.js.map +1 -0
  401. package/singlestore-core/unique-constraint.cjs +82 -0
  402. package/singlestore-core/unique-constraint.cjs.map +1 -0
  403. package/singlestore-core/unique-constraint.d.cts +24 -0
  404. package/singlestore-core/unique-constraint.d.ts +24 -0
  405. package/singlestore-core/unique-constraint.js +54 -0
  406. package/singlestore-core/unique-constraint.js.map +1 -0
  407. package/singlestore-core/utils.cjs +65 -0
  408. package/singlestore-core/utils.cjs.map +1 -0
  409. package/singlestore-core/utils.d.cts +13 -0
  410. package/singlestore-core/utils.d.ts +13 -0
  411. package/singlestore-core/utils.js +41 -0
  412. package/singlestore-core/utils.js.map +1 -0
  413. package/singlestore-core/view-base.cjs +33 -0
  414. package/singlestore-core/view-base.cjs.map +1 -0
  415. package/singlestore-core/view-base.d.cts +9 -0
  416. package/singlestore-core/view-base.d.ts +9 -0
  417. package/singlestore-core/view-base.js +9 -0
  418. package/singlestore-core/view-base.js.map +1 -0
  419. package/singlestore-core/view-common.cjs +29 -0
  420. package/singlestore-core/view-common.cjs.map +1 -0
  421. package/singlestore-core/view-common.d.cts +1 -0
  422. package/singlestore-core/view-common.d.ts +1 -0
  423. package/singlestore-core/view-common.js +5 -0
  424. package/singlestore-core/view-common.js.map +1 -0
  425. package/singlestore-core/view.cjs +146 -0
  426. package/singlestore-core/view.cjs.map +1 -0
  427. package/singlestore-core/view.d.cts +65 -0
  428. package/singlestore-core/view.d.ts +65 -0
  429. package/singlestore-core/view.js +119 -0
  430. package/singlestore-core/view.js.map +1 -0
  431. package/singlestore-proxy/driver.cjs +62 -0
  432. package/singlestore-proxy/driver.cjs.map +1 -0
  433. package/singlestore-proxy/driver.d.cts +13 -0
  434. package/singlestore-proxy/driver.d.ts +13 -0
  435. package/singlestore-proxy/driver.js +42 -0
  436. package/singlestore-proxy/driver.js.map +1 -0
  437. package/singlestore-proxy/index.cjs +25 -0
  438. package/singlestore-proxy/index.cjs.map +1 -0
  439. package/singlestore-proxy/index.d.cts +2 -0
  440. package/singlestore-proxy/index.d.ts +2 -0
  441. package/singlestore-proxy/index.js +3 -0
  442. package/singlestore-proxy/index.js.map +1 -0
  443. package/singlestore-proxy/migrator.cjs +60 -0
  444. package/singlestore-proxy/migrator.cjs.map +1 -0
  445. package/singlestore-proxy/migrator.d.cts +4 -0
  446. package/singlestore-proxy/migrator.d.ts +4 -0
  447. package/singlestore-proxy/migrator.js +36 -0
  448. package/singlestore-proxy/migrator.js.map +1 -0
  449. package/singlestore-proxy/session.cjs +127 -0
  450. package/singlestore-proxy/session.cjs.map +1 -0
  451. package/singlestore-proxy/session.d.cts +50 -0
  452. package/singlestore-proxy/session.d.ts +50 -0
  453. package/singlestore-proxy/session.js +101 -0
  454. package/singlestore-proxy/session.js.map +1 -0
  455. package/sql/sql.cjs +8 -0
  456. package/sql/sql.cjs.map +1 -1
  457. package/sql/sql.d.cts +10 -2
  458. package/sql/sql.d.ts +10 -2
  459. package/sql/sql.js +7 -0
  460. package/sql/sql.js.map +1 -1
  461. package/sqlite-core/columns/blob.cjs +16 -2
  462. package/sqlite-core/columns/blob.cjs.map +1 -1
  463. package/sqlite-core/columns/blob.d.cts +2 -2
  464. package/sqlite-core/columns/blob.d.ts +2 -2
  465. package/sqlite-core/columns/blob.js +16 -2
  466. package/sqlite-core/columns/blob.js.map +1 -1
  467. package/sqlite-core/utils.d.cts +1 -2
  468. package/sqlite-core/utils.d.ts +1 -2
  469. package/sqlite-core/view.cjs.map +1 -1
  470. package/sqlite-core/view.d.cts +2 -3
  471. package/sqlite-core/view.d.ts +2 -3
  472. package/sqlite-core/view.js.map +1 -1
  473. package/utils.cjs +5 -0
  474. package/utils.cjs.map +1 -1
  475. package/utils.d.cts +3 -1
  476. package/utils.d.ts +3 -1
  477. package/utils.js +4 -0
  478. package/utils.js.map +1 -1
  479. package/version.cjs +1 -1
  480. package/version.d.cts +1 -1
  481. package/version.d.ts +1 -1
  482. package/version.js +1 -1
@@ -6,7 +6,6 @@ import type { ColumnsSelection, SQL } from "../sql/sql.cjs";
6
6
  import type { RequireAtLeastOne } from "../utils.cjs";
7
7
  import type { PgColumnBuilderBase } from "./columns/common.cjs";
8
8
  import { QueryBuilder } from "./query-builders/query-builder.cjs";
9
- import type { SelectedFields } from "./query-builders/select.types.cjs";
10
9
  import { PgViewBase } from "./view-base.cjs";
11
10
  import { PgViewConfig } from "./view-common.cjs";
12
11
  export type ViewWithConfig = RequireAtLeastOne<{
@@ -35,7 +34,7 @@ export declare class ViewBuilder<TName extends string = string> extends DefaultV
35
34
  name: TName;
36
35
  }> {
37
36
  static readonly [entityKind]: string;
38
- as<TSelectedFields extends SelectedFields>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
37
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
39
38
  }
40
39
  export declare class ManualViewBuilder<TName extends string = string, TColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>> extends DefaultViewBuilderCore<{
41
40
  name: TName;
@@ -94,7 +93,7 @@ export declare class MaterializedViewBuilder<TName extends string = string> exte
94
93
  name: TName;
95
94
  }> {
96
95
  static readonly [entityKind]: string;
97
- as<TSelectedFields extends SelectedFields>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
96
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
98
97
  }
99
98
  export declare class ManualMaterializedViewBuilder<TName extends string = string, TColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>> extends MaterializedViewBuilderCore<{
100
99
  name: TName;
@@ -118,7 +117,7 @@ export declare class PgView<TName extends string = string, TExisting extends boo
118
117
  config: {
119
118
  name: TName;
120
119
  schema: string | undefined;
121
- selectedFields: SelectedFields;
120
+ selectedFields: ColumnsSelection;
122
121
  query: SQL | undefined;
123
122
  };
124
123
  });
@@ -143,7 +142,7 @@ export declare class PgMaterializedView<TName extends string = string, TExisting
143
142
  config: {
144
143
  name: TName;
145
144
  schema: string | undefined;
146
- selectedFields: SelectedFields;
145
+ selectedFields: ColumnsSelection;
147
146
  query: SQL | undefined;
148
147
  };
149
148
  });
package/pg-core/view.d.ts CHANGED
@@ -6,7 +6,6 @@ import type { ColumnsSelection, SQL } from "../sql/sql.js";
6
6
  import type { RequireAtLeastOne } from "../utils.js";
7
7
  import type { PgColumnBuilderBase } from "./columns/common.js";
8
8
  import { QueryBuilder } from "./query-builders/query-builder.js";
9
- import type { SelectedFields } from "./query-builders/select.types.js";
10
9
  import { PgViewBase } from "./view-base.js";
11
10
  import { PgViewConfig } from "./view-common.js";
12
11
  export type ViewWithConfig = RequireAtLeastOne<{
@@ -35,7 +34,7 @@ export declare class ViewBuilder<TName extends string = string> extends DefaultV
35
34
  name: TName;
36
35
  }> {
37
36
  static readonly [entityKind]: string;
38
- as<TSelectedFields extends SelectedFields>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
37
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
39
38
  }
40
39
  export declare class ManualViewBuilder<TName extends string = string, TColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>> extends DefaultViewBuilderCore<{
41
40
  name: TName;
@@ -94,7 +93,7 @@ export declare class MaterializedViewBuilder<TName extends string = string> exte
94
93
  name: TName;
95
94
  }> {
96
95
  static readonly [entityKind]: string;
97
- as<TSelectedFields extends SelectedFields>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
96
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;
98
97
  }
99
98
  export declare class ManualMaterializedViewBuilder<TName extends string = string, TColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>> extends MaterializedViewBuilderCore<{
100
99
  name: TName;
@@ -118,7 +117,7 @@ export declare class PgView<TName extends string = string, TExisting extends boo
118
117
  config: {
119
118
  name: TName;
120
119
  schema: string | undefined;
121
- selectedFields: SelectedFields;
120
+ selectedFields: ColumnsSelection;
122
121
  query: SQL | undefined;
123
122
  };
124
123
  });
@@ -143,7 +142,7 @@ export declare class PgMaterializedView<TName extends string = string, TExisting
143
142
  config: {
144
143
  name: TName;
145
144
  schema: string | undefined;
146
- selectedFields: SelectedFields;
145
+ selectedFields: ColumnsSelection;
147
146
  query: SQL | undefined;
148
147
  };
149
148
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/view.ts"],"sourcesContent":["import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AddAliasToSelection } from '~/query-builders/select.types.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQL } from '~/sql/sql.ts';\nimport { getTableColumns } from '~/utils.ts';\nimport type { RequireAtLeastOne } from '~/utils.ts';\nimport type { PgColumn, PgColumnBuilderBase } from './columns/common.ts';\nimport { QueryBuilder } from './query-builders/query-builder.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport { pgTable } from './table.ts';\nimport { PgViewBase } from './view-base.ts';\nimport { PgViewConfig } from './view-common.ts';\n\nexport type ViewWithConfig = RequireAtLeastOne<{\n\tcheckOption: 'local' | 'cascaded';\n\tsecurityBarrier: boolean;\n\tsecurityInvoker: boolean;\n}>;\n\nexport class DefaultViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'PgDefaultViewBuilderCore';\n\n\tdeclare readonly _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twith?: ViewWithConfig;\n\t} = {};\n\n\twith(config: ViewWithConfig): this {\n\t\tthis.config.with = config;\n\t\treturn this;\n\t}\n}\n\nexport class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{ name: TName }> {\n\tstatic override readonly [entityKind]: string = 'PgViewBuilder';\n\n\tas<TSelectedFields extends SelectedFields>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew PgView({\n\t\t\t\tpgConfig: this.config,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;\n\t}\n}\n\nexport class ManualViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>,\n> extends DefaultViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'PgManualViewBuilder';\n\n\tprivate columns: Record<string, PgColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(pgTable(name, columns));\n\t}\n\n\texisting(): PgViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgView({\n\t\t\t\tpgConfig: undefined,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n\n\tas(query: SQL): PgViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgView({\n\t\t\t\tpgConfig: this.config,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n}\n\nexport type PgMaterializedViewWithConfig = RequireAtLeastOne<{\n\tfillfactor: number;\n\ttoastTupleTarget: number;\n\tparallelWorkers: number;\n\tautovacuumEnabled: boolean;\n\tvacuumIndexCleanup: 'auto' | 'off' | 'on';\n\tvacuumTruncate: boolean;\n\tautovacuumVacuumThreshold: number;\n\tautovacuumVacuumScaleFactor: number;\n\tautovacuumVacuumCostDelay: number;\n\tautovacuumVacuumCostLimit: number;\n\tautovacuumFreezeMinAge: number;\n\tautovacuumFreezeMaxAge: number;\n\tautovacuumFreezeTableAge: number;\n\tautovacuumMultixactFreezeMinAge: number;\n\tautovacuumMultixactFreezeMaxAge: number;\n\tautovacuumMultixactFreezeTableAge: number;\n\tlogAutovacuumMinDuration: number;\n\tuserCatalogTable: boolean;\n}>;\n\nexport class MaterializedViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'PgMaterializedViewBuilderCore';\n\n\tdeclare _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twith?: PgMaterializedViewWithConfig;\n\t\tusing?: string;\n\t\ttablespace?: string;\n\t\twithNoData?: boolean;\n\t} = {};\n\n\tusing(using: string): this {\n\t\tthis.config.using = using;\n\t\treturn this;\n\t}\n\n\twith(config: PgMaterializedViewWithConfig): this {\n\t\tthis.config.with = config;\n\t\treturn this;\n\t}\n\n\ttablespace(tablespace: string): this {\n\t\tthis.config.tablespace = tablespace;\n\t\treturn this;\n\t}\n\n\twithNoData(): this {\n\t\tthis.config.withNoData = true;\n\t\treturn this;\n\t}\n}\n\nexport class MaterializedViewBuilder<TName extends string = string>\n\textends MaterializedViewBuilderCore<{ name: TName }>\n{\n\tstatic override readonly [entityKind]: string = 'PgMaterializedViewBuilder';\n\n\tas<TSelectedFields extends SelectedFields>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew PgMaterializedView({\n\t\t\t\tpgConfig: {\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;\n\t}\n}\n\nexport class ManualMaterializedViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>,\n> extends MaterializedViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'PgManualMaterializedViewBuilder';\n\n\tprivate columns: Record<string, PgColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(pgTable(name, columns));\n\t}\n\n\texisting(): PgMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgMaterializedView({\n\t\t\t\tpgConfig: {\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n\n\tas(query: SQL): PgMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgMaterializedView({\n\t\t\t\tpgConfig: {\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n}\n\nexport class PgView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends PgViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'PgView';\n\n\t[PgViewConfig]: {\n\t\twith?: ViewWithConfig;\n\t} | undefined;\n\n\tconstructor({ pgConfig, config }: {\n\t\tpgConfig: {\n\t\t\twith?: ViewWithConfig;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: SelectedFields;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tif (pgConfig) {\n\t\t\tthis[PgViewConfig] = {\n\t\t\t\twith: pgConfig.with,\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport type PgViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = PgView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\nexport const PgMaterializedViewConfig = Symbol.for('drizzle:PgMaterializedViewConfig');\n\nexport class PgMaterializedView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends PgViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'PgMaterializedView';\n\n\treadonly [PgMaterializedViewConfig]: {\n\t\treadonly with?: PgMaterializedViewWithConfig;\n\t\treadonly using?: string;\n\t\treadonly tablespace?: string;\n\t\treadonly withNoData?: boolean;\n\t} | undefined;\n\n\tconstructor({ pgConfig, config }: {\n\t\tpgConfig: {\n\t\t\twith: PgMaterializedViewWithConfig | undefined;\n\t\t\tusing: string | undefined;\n\t\t\ttablespace: string | undefined;\n\t\t\twithNoData: boolean | undefined;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: SelectedFields;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tthis[PgMaterializedViewConfig] = {\n\t\t\twith: pgConfig?.with,\n\t\t\tusing: pgConfig?.using,\n\t\t\ttablespace: pgConfig?.tablespace,\n\t\t\twithNoData: pgConfig?.withNoData,\n\t\t};\n\t}\n}\n\nexport type PgMaterializedViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = PgMaterializedView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\n/** @internal */\nexport function pgViewWithSchema(\n\tname: string,\n\tselection: Record<string, PgColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): ViewBuilder | ManualViewBuilder {\n\tif (selection) {\n\t\treturn new ManualViewBuilder(name, selection, schema);\n\t}\n\treturn new ViewBuilder(name, schema);\n}\n\n/** @internal */\nexport function pgMaterializedViewWithSchema(\n\tname: string,\n\tselection: Record<string, PgColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\tif (selection) {\n\t\treturn new ManualMaterializedViewBuilder(name, selection, schema);\n\t}\n\treturn new MaterializedViewBuilder(name, schema);\n}\n\nexport function pgView<TName extends string>(name: TName): ViewBuilder<TName>;\nexport function pgView<TName extends string, TColumns extends Record<string, PgColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualViewBuilder<TName, TColumns>;\nexport function pgView(name: string, columns?: Record<string, PgColumnBuilderBase>): ViewBuilder | ManualViewBuilder {\n\treturn pgViewWithSchema(name, columns, undefined);\n}\n\nexport function pgMaterializedView<TName extends string>(name: TName): MaterializedViewBuilder<TName>;\nexport function pgMaterializedView<TName extends string, TColumns extends Record<string, PgColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualMaterializedViewBuilder<TName, TColumns>;\nexport function pgMaterializedView(\n\tname: string,\n\tcolumns?: Record<string, PgColumnBuilderBase>,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\treturn pgMaterializedViewWithSchema(name, columns, undefined);\n}\n\nexport function isPgView(obj: unknown): obj is PgView {\n\treturn is(obj, PgView);\n}\n\nexport function isPgMaterializedView(obj: unknown): obj is PgMaterializedView {\n\treturn is(obj, PgMaterializedView);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/view.ts"],"sourcesContent":["import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AddAliasToSelection } from '~/query-builders/select.types.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQL } from '~/sql/sql.ts';\nimport { getTableColumns } from '~/utils.ts';\nimport type { RequireAtLeastOne } from '~/utils.ts';\nimport type { PgColumn, PgColumnBuilderBase } from './columns/common.ts';\nimport { QueryBuilder } from './query-builders/query-builder.ts';\nimport { pgTable } from './table.ts';\nimport { PgViewBase } from './view-base.ts';\nimport { PgViewConfig } from './view-common.ts';\n\nexport type ViewWithConfig = RequireAtLeastOne<{\n\tcheckOption: 'local' | 'cascaded';\n\tsecurityBarrier: boolean;\n\tsecurityInvoker: boolean;\n}>;\n\nexport class DefaultViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'PgDefaultViewBuilderCore';\n\n\tdeclare readonly _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twith?: ViewWithConfig;\n\t} = {};\n\n\twith(config: ViewWithConfig): this {\n\t\tthis.config.with = config;\n\t\treturn this;\n\t}\n}\n\nexport class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{ name: TName }> {\n\tstatic override readonly [entityKind]: string = 'PgViewBuilder';\n\n\tas<TSelectedFields extends ColumnsSelection>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew PgView({\n\t\t\t\tpgConfig: this.config,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as PgViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;\n\t}\n}\n\nexport class ManualViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>,\n> extends DefaultViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'PgManualViewBuilder';\n\n\tprivate columns: Record<string, PgColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(pgTable(name, columns));\n\t}\n\n\texisting(): PgViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgView({\n\t\t\t\tpgConfig: undefined,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n\n\tas(query: SQL): PgViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgView({\n\t\t\t\tpgConfig: this.config,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n}\n\nexport type PgMaterializedViewWithConfig = RequireAtLeastOne<{\n\tfillfactor: number;\n\ttoastTupleTarget: number;\n\tparallelWorkers: number;\n\tautovacuumEnabled: boolean;\n\tvacuumIndexCleanup: 'auto' | 'off' | 'on';\n\tvacuumTruncate: boolean;\n\tautovacuumVacuumThreshold: number;\n\tautovacuumVacuumScaleFactor: number;\n\tautovacuumVacuumCostDelay: number;\n\tautovacuumVacuumCostLimit: number;\n\tautovacuumFreezeMinAge: number;\n\tautovacuumFreezeMaxAge: number;\n\tautovacuumFreezeTableAge: number;\n\tautovacuumMultixactFreezeMinAge: number;\n\tautovacuumMultixactFreezeMaxAge: number;\n\tautovacuumMultixactFreezeTableAge: number;\n\tlogAutovacuumMinDuration: number;\n\tuserCatalogTable: boolean;\n}>;\n\nexport class MaterializedViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'PgMaterializedViewBuilderCore';\n\n\tdeclare _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twith?: PgMaterializedViewWithConfig;\n\t\tusing?: string;\n\t\ttablespace?: string;\n\t\twithNoData?: boolean;\n\t} = {};\n\n\tusing(using: string): this {\n\t\tthis.config.using = using;\n\t\treturn this;\n\t}\n\n\twith(config: PgMaterializedViewWithConfig): this {\n\t\tthis.config.with = config;\n\t\treturn this;\n\t}\n\n\ttablespace(tablespace: string): this {\n\t\tthis.config.tablespace = tablespace;\n\t\treturn this;\n\t}\n\n\twithNoData(): this {\n\t\tthis.config.withNoData = true;\n\t\treturn this;\n\t}\n}\n\nexport class MaterializedViewBuilder<TName extends string = string>\n\textends MaterializedViewBuilderCore<{ name: TName }>\n{\n\tstatic override readonly [entityKind]: string = 'PgMaterializedViewBuilder';\n\n\tas<TSelectedFields extends ColumnsSelection>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew PgMaterializedView({\n\t\t\t\tpgConfig: {\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as PgMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'pg'>>;\n\t}\n}\n\nexport class ManualMaterializedViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, PgColumnBuilderBase> = Record<string, PgColumnBuilderBase>,\n> extends MaterializedViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'PgManualMaterializedViewBuilder';\n\n\tprivate columns: Record<string, PgColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(pgTable(name, columns));\n\t}\n\n\texisting(): PgMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgMaterializedView({\n\t\t\t\tpgConfig: {\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n\n\tas(query: SQL): PgMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>> {\n\t\treturn new Proxy(\n\t\t\tnew PgMaterializedView({\n\t\t\t\tpgConfig: {\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as PgMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'pg'>>;\n\t}\n}\n\nexport class PgView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends PgViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'PgView';\n\n\t[PgViewConfig]: {\n\t\twith?: ViewWithConfig;\n\t} | undefined;\n\n\tconstructor({ pgConfig, config }: {\n\t\tpgConfig: {\n\t\t\twith?: ViewWithConfig;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tif (pgConfig) {\n\t\t\tthis[PgViewConfig] = {\n\t\t\t\twith: pgConfig.with,\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport type PgViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = PgView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\nexport const PgMaterializedViewConfig = Symbol.for('drizzle:PgMaterializedViewConfig');\n\nexport class PgMaterializedView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends PgViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'PgMaterializedView';\n\n\treadonly [PgMaterializedViewConfig]: {\n\t\treadonly with?: PgMaterializedViewWithConfig;\n\t\treadonly using?: string;\n\t\treadonly tablespace?: string;\n\t\treadonly withNoData?: boolean;\n\t} | undefined;\n\n\tconstructor({ pgConfig, config }: {\n\t\tpgConfig: {\n\t\t\twith: PgMaterializedViewWithConfig | undefined;\n\t\t\tusing: string | undefined;\n\t\t\ttablespace: string | undefined;\n\t\t\twithNoData: boolean | undefined;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tthis[PgMaterializedViewConfig] = {\n\t\t\twith: pgConfig?.with,\n\t\t\tusing: pgConfig?.using,\n\t\t\ttablespace: pgConfig?.tablespace,\n\t\t\twithNoData: pgConfig?.withNoData,\n\t\t};\n\t}\n}\n\nexport type PgMaterializedViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = PgMaterializedView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\n/** @internal */\nexport function pgViewWithSchema(\n\tname: string,\n\tselection: Record<string, PgColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): ViewBuilder | ManualViewBuilder {\n\tif (selection) {\n\t\treturn new ManualViewBuilder(name, selection, schema);\n\t}\n\treturn new ViewBuilder(name, schema);\n}\n\n/** @internal */\nexport function pgMaterializedViewWithSchema(\n\tname: string,\n\tselection: Record<string, PgColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\tif (selection) {\n\t\treturn new ManualMaterializedViewBuilder(name, selection, schema);\n\t}\n\treturn new MaterializedViewBuilder(name, schema);\n}\n\nexport function pgView<TName extends string>(name: TName): ViewBuilder<TName>;\nexport function pgView<TName extends string, TColumns extends Record<string, PgColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualViewBuilder<TName, TColumns>;\nexport function pgView(name: string, columns?: Record<string, PgColumnBuilderBase>): ViewBuilder | ManualViewBuilder {\n\treturn pgViewWithSchema(name, columns, undefined);\n}\n\nexport function pgMaterializedView<TName extends string>(name: TName): MaterializedViewBuilder<TName>;\nexport function pgMaterializedView<TName extends string, TColumns extends Record<string, PgColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualMaterializedViewBuilder<TName, TColumns>;\nexport function pgMaterializedView(\n\tname: string,\n\tcolumns?: Record<string, PgColumnBuilderBase>,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\treturn pgMaterializedViewWithSchema(name, columns, undefined);\n}\n\nexport function isPgView(obj: unknown): obj is PgView {\n\treturn is(obj, PgView);\n}\n\nexport function isPgMaterializedView(obj: unknown): obj is PgMaterializedView {\n\treturn is(obj, PgMaterializedView);\n}\n"],"mappings":"AACA,SAAS,YAAY,UAAU;AAG/B,SAAS,6BAA6B;AAEtC,SAAS,uBAAuB;AAGhC,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAQtB,MAAM,uBAA4E;AAAA,EAQxF,YACW,MACA,QACT;AAFS;AACA;AAAA,EACR;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAY7B,SAEN,CAAC;AAAA,EAEL,KAAK,QAA8B;AAClC,SAAK,OAAO,OAAO;AACnB,WAAO;AAAA,EACR;AACD;AAEO,MAAM,oBAAmD,uBAAwC;AAAA,EACvG,QAA0B,UAAU,IAAY;AAAA,EAEhD,GACC,IACuF;AACvF,QAAI,OAAO,OAAO,YAAY;AAC7B,WAAK,GAAG,IAAI,aAAa,CAAC;AAAA,IAC3B;AACA,UAAM,iBAAiB,IAAI,sBAAuC;AAAA,MACjE,OAAO,KAAK;AAAA,MACZ,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,IACtB,CAAC;AACD,UAAM,mBAAmB,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc;AACzE,WAAO,IAAI;AAAA,MACV,IAAI,OAAO;AAAA,QACV,UAAU,KAAK;AAAA,QACf,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB;AAAA,UAChB,OAAO,GAAG,OAAO,EAAE,aAAa;AAAA,QACjC;AAAA,MACD,CAAC;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,0BAGH,uBAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAER,YACC,MACA,SACA,QACC;AACD,UAAM,MAAM,MAAM;AAClB,SAAK,UAAU,gBAAgB,QAAQ,MAAM,OAAO,CAAC;AAAA,EACtD;AAAA,EAEA,WAAkF;AACjF,WAAO,IAAI;AAAA,MACV,IAAI,OAAO;AAAA,QACV,UAAU;AAAA,QACV,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO;AAAA,QACR;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,GAAG,OAAoF;AACtF,WAAO,IAAI;AAAA,MACV,IAAI,OAAO;AAAA,QACV,UAAU,KAAK;AAAA,QACf,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO,MAAM,aAAa;AAAA,QAC3B;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AACD;AAuBO,MAAM,4BAAiF;AAAA,EAQ7F,YACW,MACA,QACT;AAFS;AACA;AAAA,EACR;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAY7B,SAKN,CAAC;AAAA,EAEL,MAAM,OAAqB;AAC1B,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAEA,KAAK,QAA4C;AAChD,SAAK,OAAO,OAAO;AACnB,WAAO;AAAA,EACR;AAAA,EAEA,WAAW,YAA0B;AACpC,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,aAAmB;AAClB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AACD;AAEO,MAAM,gCACJ,4BACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,GACC,IACmG;AACnG,QAAI,OAAO,OAAO,YAAY;AAC7B,WAAK,GAAG,IAAI,aAAa,CAAC;AAAA,IAC3B;AACA,UAAM,iBAAiB,IAAI,sBAAuC;AAAA,MACjE,OAAO,KAAK;AAAA,MACZ,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,IACtB,CAAC;AACD,UAAM,mBAAmB,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc;AACzE,WAAO,IAAI;AAAA,MACV,IAAI,mBAAmB;AAAA,QACtB,UAAU;AAAA,UACT,MAAM,KAAK,OAAO;AAAA,UAClB,OAAO,KAAK,OAAO;AAAA,UACnB,YAAY,KAAK,OAAO;AAAA,UACxB,YAAY,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB;AAAA,UAChB,OAAO,GAAG,OAAO,EAAE,aAAa;AAAA,QACjC;AAAA,MACD,CAAC;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,sCAGH,4BAAgE;AAAA,EACzE,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAER,YACC,MACA,SACA,QACC;AACD,UAAM,MAAM,MAAM;AAClB,SAAK,UAAU,gBAAgB,QAAQ,MAAM,OAAO,CAAC;AAAA,EACtD;AAAA,EAEA,WAA8F;AAC7F,WAAO,IAAI;AAAA,MACV,IAAI,mBAAmB;AAAA,QACtB,UAAU;AAAA,UACT,YAAY,KAAK,OAAO;AAAA,UACxB,OAAO,KAAK,OAAO;AAAA,UACnB,MAAM,KAAK,OAAO;AAAA,UAClB,YAAY,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO;AAAA,QACR;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,GAAG,OAAgG;AAClG,WAAO,IAAI;AAAA,MACV,IAAI,mBAAmB;AAAA,QACtB,UAAU;AAAA,UACT,YAAY,KAAK,OAAO;AAAA,UACxB,OAAO,KAAK,OAAO;AAAA,UACnB,MAAM,KAAK,OAAO;AAAA,UAClB,YAAY,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,QAAQ;AAAA,UACP,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,gBAAgB,KAAK;AAAA,UACrB,OAAO,MAAM,aAAa;AAAA,QAC3B;AAAA,MACD,CAAC;AAAA,MACD,IAAI,sBAAsB;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,MACtB,CAAC;AAAA,IACF;AAAA,EACD;AACD;AAEO,MAAM,eAIH,WAA8C;AAAA,EACvD,QAA0B,UAAU,IAAY;AAAA,EAEhD,CAAC,YAAY;AAAA,EAIb,YAAY,EAAE,UAAU,OAAO,GAU5B;AACF,UAAM,MAAM;AACZ,QAAI,UAAU;AACb,WAAK,YAAY,IAAI;AAAA,QACpB,MAAM,SAAS;AAAA,MAChB;AAAA,IACD;AAAA,EACD;AACD;AAQO,MAAM,2BAA2B,OAAO,IAAI,kCAAkC;AAE9E,MAAM,2BAIH,WAA8C;AAAA,EACvD,QAA0B,UAAU,IAAY;AAAA,EAEhD,CAAU,wBAAwB;AAAA,EAOlC,YAAY,EAAE,UAAU,OAAO,GAa5B;AACF,UAAM,MAAM;AACZ,SAAK,wBAAwB,IAAI;AAAA,MAChC,MAAM,UAAU;AAAA,MAChB,OAAO,UAAU;AAAA,MACjB,YAAY,UAAU;AAAA,MACtB,YAAY,UAAU;AAAA,IACvB;AAAA,EACD;AACD;AASO,SAAS,iBACf,MACA,WACA,QACkC;AAClC,MAAI,WAAW;AACd,WAAO,IAAI,kBAAkB,MAAM,WAAW,MAAM;AAAA,EACrD;AACA,SAAO,IAAI,YAAY,MAAM,MAAM;AACpC;AAGO,SAAS,6BACf,MACA,WACA,QAC0D;AAC1D,MAAI,WAAW;AACd,WAAO,IAAI,8BAA8B,MAAM,WAAW,MAAM;AAAA,EACjE;AACA,SAAO,IAAI,wBAAwB,MAAM,MAAM;AAChD;AAOO,SAAS,OAAO,MAAc,SAAgF;AACpH,SAAO,iBAAiB,MAAM,SAAS,MAAS;AACjD;AAOO,SAAS,mBACf,MACA,SAC0D;AAC1D,SAAO,6BAA6B,MAAM,SAAS,MAAS;AAC7D;AAEO,SAAS,SAAS,KAA6B;AACrD,SAAO,GAAG,KAAK,MAAM;AACtB;AAEO,SAAS,qBAAqB,KAAyC;AAC7E,SAAO,GAAG,KAAK,kBAAkB;AAClC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builders/select.types.ts"],"sourcesContent":["import type { ChangeColumnTableName, ColumnDataType, Dialect } from '~/column-builder.ts';\nimport type { AnyColumn, Column, ColumnBaseConfig, GetColumnData, UpdateColConfig } from '~/column.ts';\nimport type { SelectedFields } from '~/operations.ts';\nimport type { ColumnsSelection, SQL, View } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport type { Table } from '~/table.ts';\nimport type { Assume, DrizzleTypeError, Equal, IsAny, Simplify } from '~/utils.ts';\n\nexport type JoinType = 'inner' | 'left' | 'right' | 'full';\n\nexport type JoinNullability = 'nullable' | 'not-null';\n\nexport type ApplyNullability<T, TNullability extends JoinNullability> = TNullability extends 'nullable' ? T | null\n\t: TNullability extends 'null' ? null\n\t: T;\n\nexport type ApplyNullabilityToColumn<TColumn extends Column, TNullability extends JoinNullability> =\n\tTNullability extends 'not-null' ? TColumn\n\t\t: Column<\n\t\t\tAssume<\n\t\t\t\tUpdateColConfig<TColumn['_'], {\n\t\t\t\t\tnotNull: TNullability extends 'nullable' ? false : TColumn['_']['notNull'];\n\t\t\t\t}>,\n\t\t\t\tColumnBaseConfig<ColumnDataType, string>\n\t\t\t>\n\t\t>;\n\nexport type ApplyNotNullMapToJoins<TResult, TNullabilityMap extends Record<string, JoinNullability>> =\n\t& {\n\t\t[TTableName in keyof TResult & keyof TNullabilityMap & string]: ApplyNullability<\n\t\t\tTResult[TTableName],\n\t\t\tTNullabilityMap[TTableName]\n\t\t>;\n\t}\n\t& {};\n\nexport type SelectMode = 'partial' | 'single' | 'multiple';\n\nexport type SelectResult<\n\tTResult,\n\tTSelectMode extends SelectMode,\n\tTNullabilityMap extends Record<string, JoinNullability>,\n> = TSelectMode extends 'partial' ? SelectPartialResult<TResult, TNullabilityMap>\n\t: TSelectMode extends 'single' ? SelectResultFields<TResult>\n\t: ApplyNotNullMapToJoins<SelectResultFields<TResult>, TNullabilityMap>;\n\ntype IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false : true;\n\ntype Not<T extends boolean> = T extends true ? false : true;\n\ntype SelectPartialResult<TFields, TNullability extends Record<string, JoinNullability>> = TNullability extends\n\tTNullability ? {\n\t\t[Key in keyof TFields]: TFields[Key] extends infer TField\n\t\t\t? TField extends Table ? TField['_']['name'] extends keyof TNullability ? ApplyNullability<\n\t\t\t\t\t\tSelectResultFields<TField['_']['columns']>,\n\t\t\t\t\t\tTNullability[TField['_']['name']]\n\t\t\t\t\t>\n\t\t\t\t: never\n\t\t\t: TField extends Column\n\t\t\t\t? TField['_']['tableName'] extends keyof TNullability\n\t\t\t\t\t? ApplyNullability<SelectResultField<TField>, TNullability[TField['_']['tableName']]>\n\t\t\t\t: never\n\t\t\t: TField extends SQL | SQL.Aliased ? SelectResultField<TField>\n\t\t\t: TField extends Record<string, any>\n\t\t\t\t? TField[keyof TField] extends AnyColumn<{ tableName: infer TTableName extends string }> | SQL | SQL.Aliased\n\t\t\t\t\t? Not<IsUnion<TTableName>> extends true\n\t\t\t\t\t\t? ApplyNullability<SelectResultFields<TField>, TNullability[TTableName]>\n\t\t\t\t\t: SelectPartialResult<TField, TNullability>\n\t\t\t\t: never\n\t\t\t: never\n\t\t\t: never;\n\t}\n\t: never;\n\nexport type MapColumnsToTableAlias<\n\tTColumns extends ColumnsSelection,\n\tTAlias extends string,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TColumns]: TColumns[Key] extends Column\n\t\t\t? ChangeColumnTableName<Assume<TColumns[Key], Column>, TAlias, TDialect>\n\t\t\t: TColumns[Key];\n\t}\n\t& {};\n\nexport type AddAliasToSelection<\n\tTSelection extends ColumnsSelection,\n\tTAlias extends string,\n\tTDialect extends Dialect,\n> = Simplify<\n\tIsAny<TSelection> extends true ? any\n\t\t: {\n\t\t\t[Key in keyof TSelection]: TSelection[Key] extends Column\n\t\t\t\t? ChangeColumnTableName<TSelection[Key], TAlias, TDialect>\n\t\t\t\t: TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key]\n\t\t\t\t: TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect>\n\t\t\t\t: never;\n\t\t}\n>;\n\nexport type AppendToResult<\n\tTTableName extends string | undefined,\n\tTResult,\n\tTJoinedName extends string | undefined,\n\tTSelectedFields extends SelectedFields<Column, Table>,\n\tTOldSelectMode extends SelectMode,\n> = TOldSelectMode extends 'partial' ? TResult\n\t: TOldSelectMode extends 'single' ?\n\t\t\t& (TTableName extends string ? Record<TTableName, TResult> : TResult)\n\t\t\t& (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields)\n\t: TResult & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields);\n\nexport type BuildSubquerySelection<\n\tTSelection extends ColumnsSelection,\n\tTNullability extends Record<string, JoinNullability>,\n> = TSelection extends never ? any\n\t:\n\t\t& {\n\t\t\t[Key in keyof TSelection]: TSelection[Key] extends SQL\n\t\t\t\t? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'>\n\t\t\t\t: TSelection[Key] extends SQL.Aliased ? TSelection[Key]\n\t\t\t\t: TSelection[Key] extends Column\n\t\t\t\t\t? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]>\n\t\t\t\t: TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability>\n\t\t\t\t: never;\n\t\t}\n\t\t& {};\n\ntype SetJoinsNullability<TNullabilityMap extends Record<string, JoinNullability>, TValue extends JoinNullability> = {\n\t[Key in keyof TNullabilityMap]: TValue;\n};\n\nexport type AppendToNullabilityMap<\n\tTJoinsNotNull extends Record<string, JoinNullability>,\n\tTJoinedName extends string | undefined,\n\tTJoinType extends JoinType,\n> = TJoinedName extends string ? 'left' extends TJoinType ? TJoinsNotNull & { [name in TJoinedName]: 'nullable' }\n\t: 'right' extends TJoinType ? SetJoinsNullability<TJoinsNotNull, 'nullable'> & { [name in TJoinedName]: 'not-null' }\n\t: 'inner' extends TJoinType ? TJoinsNotNull & { [name in TJoinedName]: 'not-null' }\n\t: 'full' extends TJoinType ? SetJoinsNullability<TJoinsNotNull, 'nullable'> & { [name in TJoinedName]: 'nullable' }\n\t: never\n\t: TJoinsNotNull;\n\nexport type TableLike = Table | Subquery | View | SQL;\n\nexport type GetSelectTableName<TTable extends TableLike> = TTable extends Table ? TTable['_']['name']\n\t: TTable extends Subquery ? TTable['_']['alias']\n\t: TTable extends View ? TTable['_']['name']\n\t: TTable extends SQL ? undefined\n\t: never;\n\nexport type GetSelectTableSelection<TTable extends TableLike> = TTable extends Table ? TTable['_']['columns']\n\t: TTable extends Subquery | View ? Assume<TTable['_']['selectedFields'], ColumnsSelection>\n\t: TTable extends SQL ? {}\n\t: never;\n\nexport type SelectResultField<T, TDeep extends boolean = true> = T extends DrizzleTypeError<any> ? T\n\t: T extends Table ? Equal<TDeep, true> extends true ? SelectResultField<T['_']['columns'], false> : never\n\t: T extends Column<any> ? GetColumnData<T>\n\t: T extends SQL | SQL.Aliased ? T['_']['type']\n\t: T extends Record<string, any> ? SelectResultFields<T, true>\n\t: never;\n\nexport type SelectResultFields<TSelectedFields, TDeep extends boolean = true> = Simplify<\n\t{\n\t\t[Key in keyof TSelectedFields & string]: SelectResultField<TSelectedFields[Key], TDeep>;\n\t}\n>;\n\nexport type SetOperator = 'union' | 'intersect' | 'except';\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/query-builders/select.types.ts"],"sourcesContent":["import type { ChangeColumnTableName, ColumnDataType, Dialect } from '~/column-builder.ts';\nimport type { AnyColumn, Column, ColumnBaseConfig, GetColumnData, UpdateColConfig } from '~/column.ts';\nimport type { SelectedFields } from '~/operations.ts';\nimport type { ColumnsSelection, SQL, View } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport type { Table } from '~/table.ts';\nimport type { Assume, DrizzleTypeError, Equal, IsAny, Simplify } from '~/utils.ts';\n\nexport type JoinType = 'inner' | 'left' | 'right' | 'full';\n\nexport type JoinNullability = 'nullable' | 'not-null';\n\nexport type ApplyNullability<T, TNullability extends JoinNullability> = TNullability extends 'nullable' ? T | null\n\t: TNullability extends 'null' ? null\n\t: T;\n\nexport type ApplyNullabilityToColumn<TColumn extends Column, TNullability extends JoinNullability> =\n\tTNullability extends 'not-null' ? TColumn\n\t\t: Column<\n\t\t\tAssume<\n\t\t\t\tUpdateColConfig<TColumn['_'], {\n\t\t\t\t\tnotNull: TNullability extends 'nullable' ? false : TColumn['_']['notNull'];\n\t\t\t\t}>,\n\t\t\t\tColumnBaseConfig<ColumnDataType, string>\n\t\t\t>\n\t\t>;\n\nexport type ApplyNotNullMapToJoins<TResult, TNullabilityMap extends Record<string, JoinNullability>> =\n\t& {\n\t\t[TTableName in keyof TResult & keyof TNullabilityMap & string]: ApplyNullability<\n\t\t\tTResult[TTableName],\n\t\t\tTNullabilityMap[TTableName]\n\t\t>;\n\t}\n\t& {};\n\nexport type SelectMode = 'partial' | 'single' | 'multiple';\n\nexport type SelectResult<\n\tTResult,\n\tTSelectMode extends SelectMode,\n\tTNullabilityMap extends Record<string, JoinNullability>,\n> = TSelectMode extends 'partial' ? SelectPartialResult<TResult, TNullabilityMap>\n\t: TSelectMode extends 'single' ? SelectResultFields<TResult>\n\t: ApplyNotNullMapToJoins<SelectResultFields<TResult>, TNullabilityMap>;\n\ntype IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false : true;\n\ntype Not<T extends boolean> = T extends true ? false : true;\n\ntype SelectPartialResult<TFields, TNullability extends Record<string, JoinNullability>> = TNullability extends\n\tTNullability ? {\n\t\t[Key in keyof TFields]: TFields[Key] extends infer TField\n\t\t\t? TField extends Table ? TField['_']['name'] extends keyof TNullability ? ApplyNullability<\n\t\t\t\t\t\tSelectResultFields<TField['_']['columns']>,\n\t\t\t\t\t\tTNullability[TField['_']['name']]\n\t\t\t\t\t>\n\t\t\t\t: never\n\t\t\t: TField extends Column\n\t\t\t\t? TField['_']['tableName'] extends keyof TNullability\n\t\t\t\t\t? ApplyNullability<SelectResultField<TField>, TNullability[TField['_']['tableName']]>\n\t\t\t\t: never\n\t\t\t: TField extends SQL | SQL.Aliased ? SelectResultField<TField>\n\t\t\t: TField extends Record<string, any>\n\t\t\t\t? TField[keyof TField] extends AnyColumn<{ tableName: infer TTableName extends string }> | SQL | SQL.Aliased\n\t\t\t\t\t? Not<IsUnion<TTableName>> extends true\n\t\t\t\t\t\t? ApplyNullability<SelectResultFields<TField>, TNullability[TTableName]>\n\t\t\t\t\t: SelectPartialResult<TField, TNullability>\n\t\t\t\t: never\n\t\t\t: never\n\t\t\t: never;\n\t}\n\t: never;\n\nexport type MapColumnsToTableAlias<\n\tTColumns extends ColumnsSelection,\n\tTAlias extends string,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TColumns]: TColumns[Key] extends Column\n\t\t\t? ChangeColumnTableName<Assume<TColumns[Key], Column>, TAlias, TDialect>\n\t\t\t: TColumns[Key];\n\t}\n\t& {};\n\nexport type AddAliasToSelection<\n\tTSelection extends ColumnsSelection,\n\tTAlias extends string,\n\tTDialect extends Dialect,\n> = Simplify<\n\tIsAny<TSelection> extends true ? any\n\t\t: {\n\t\t\t[Key in keyof TSelection]: TSelection[Key] extends Column\n\t\t\t\t? ChangeColumnTableName<TSelection[Key], TAlias, TDialect>\n\t\t\t\t: TSelection[Key] extends Table ? AddAliasToSelection<TSelection[Key]['_']['columns'], TAlias, TDialect>\n\t\t\t\t: TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key]\n\t\t\t\t: TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect>\n\t\t\t\t: never;\n\t\t}\n>;\n\nexport type AppendToResult<\n\tTTableName extends string | undefined,\n\tTResult,\n\tTJoinedName extends string | undefined,\n\tTSelectedFields extends SelectedFields<Column, Table>,\n\tTOldSelectMode extends SelectMode,\n> = TOldSelectMode extends 'partial' ? TResult\n\t: TOldSelectMode extends 'single' ?\n\t\t\t& (TTableName extends string ? Record<TTableName, TResult> : TResult)\n\t\t\t& (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields)\n\t: TResult & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields);\n\nexport type BuildSubquerySelection<\n\tTSelection extends ColumnsSelection,\n\tTNullability extends Record<string, JoinNullability>,\n> = TSelection extends never ? any\n\t:\n\t\t& {\n\t\t\t[Key in keyof TSelection]: TSelection[Key] extends SQL\n\t\t\t\t? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'>\n\t\t\t\t: TSelection[Key] extends SQL.Aliased ? TSelection[Key]\n\t\t\t\t: TSelection[Key] extends Table ? BuildSubquerySelection<TSelection[Key]['_']['columns'], TNullability>\n\t\t\t\t: TSelection[Key] extends Column\n\t\t\t\t\t? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]>\n\t\t\t\t: TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability>\n\t\t\t\t: never;\n\t\t}\n\t\t& {};\n\ntype SetJoinsNullability<TNullabilityMap extends Record<string, JoinNullability>, TValue extends JoinNullability> = {\n\t[Key in keyof TNullabilityMap]: TValue;\n};\n\nexport type AppendToNullabilityMap<\n\tTJoinsNotNull extends Record<string, JoinNullability>,\n\tTJoinedName extends string | undefined,\n\tTJoinType extends JoinType,\n> = TJoinedName extends string ? 'left' extends TJoinType ? TJoinsNotNull & { [name in TJoinedName]: 'nullable' }\n\t: 'right' extends TJoinType ? SetJoinsNullability<TJoinsNotNull, 'nullable'> & { [name in TJoinedName]: 'not-null' }\n\t: 'inner' extends TJoinType ? TJoinsNotNull & { [name in TJoinedName]: 'not-null' }\n\t: 'full' extends TJoinType ? SetJoinsNullability<TJoinsNotNull, 'nullable'> & { [name in TJoinedName]: 'nullable' }\n\t: never\n\t: TJoinsNotNull;\n\nexport type TableLike = Table | Subquery | View | SQL;\n\nexport type GetSelectTableName<TTable extends TableLike> = TTable extends Table ? TTable['_']['name']\n\t: TTable extends Subquery ? TTable['_']['alias']\n\t: TTable extends View ? TTable['_']['name']\n\t: TTable extends SQL ? undefined\n\t: never;\n\nexport type GetSelectTableSelection<TTable extends TableLike> = TTable extends Table ? TTable['_']['columns']\n\t: TTable extends Subquery | View ? Assume<TTable['_']['selectedFields'], ColumnsSelection>\n\t: TTable extends SQL ? {}\n\t: never;\n\nexport type SelectResultField<T, TDeep extends boolean = true> = T extends DrizzleTypeError<any> ? T\n\t: T extends Table ? Equal<TDeep, true> extends true ? SelectResultField<T['_']['columns'], false> : never\n\t: T extends Column<any> ? GetColumnData<T>\n\t: T extends SQL | SQL.Aliased ? T['_']['type']\n\t: T extends Record<string, any> ? SelectResultFields<T, true>\n\t: never;\n\nexport type SelectResultFields<TSelectedFields, TDeep extends boolean = true> = Simplify<\n\t{\n\t\t[Key in keyof TSelectedFields & string]: SelectResultField<TSelectedFields[Key], TDeep>;\n\t}\n>;\n\nexport type SetOperator = 'union' | 'intersect' | 'except';\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -27,11 +27,11 @@ export type MapColumnsToTableAlias<TColumns extends ColumnsSelection, TAlias ext
27
27
  [Key in keyof TColumns]: TColumns[Key] extends Column ? ChangeColumnTableName<Assume<TColumns[Key], Column>, TAlias, TDialect> : TColumns[Key];
28
28
  } & {};
29
29
  export type AddAliasToSelection<TSelection extends ColumnsSelection, TAlias extends string, TDialect extends Dialect> = Simplify<IsAny<TSelection> extends true ? any : {
30
- [Key in keyof TSelection]: TSelection[Key] extends Column ? ChangeColumnTableName<TSelection[Key], TAlias, TDialect> : TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key] : TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect> : never;
30
+ [Key in keyof TSelection]: TSelection[Key] extends Column ? ChangeColumnTableName<TSelection[Key], TAlias, TDialect> : TSelection[Key] extends Table ? AddAliasToSelection<TSelection[Key]['_']['columns'], TAlias, TDialect> : TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key] : TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect> : never;
31
31
  }>;
32
32
  export type AppendToResult<TTableName extends string | undefined, TResult, TJoinedName extends string | undefined, TSelectedFields extends SelectedFields<Column, Table>, TOldSelectMode extends SelectMode> = TOldSelectMode extends 'partial' ? TResult : TOldSelectMode extends 'single' ? (TTableName extends string ? Record<TTableName, TResult> : TResult) & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields) : TResult & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields);
33
33
  export type BuildSubquerySelection<TSelection extends ColumnsSelection, TNullability extends Record<string, JoinNullability>> = TSelection extends never ? any : {
34
- [Key in keyof TSelection]: TSelection[Key] extends SQL ? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'> : TSelection[Key] extends SQL.Aliased ? TSelection[Key] : TSelection[Key] extends Column ? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]> : TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability> : never;
34
+ [Key in keyof TSelection]: TSelection[Key] extends SQL ? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'> : TSelection[Key] extends SQL.Aliased ? TSelection[Key] : TSelection[Key] extends Table ? BuildSubquerySelection<TSelection[Key]['_']['columns'], TNullability> : TSelection[Key] extends Column ? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]> : TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability> : never;
35
35
  } & {};
36
36
  type SetJoinsNullability<TNullabilityMap extends Record<string, JoinNullability>, TValue extends JoinNullability> = {
37
37
  [Key in keyof TNullabilityMap]: TValue;
@@ -27,11 +27,11 @@ export type MapColumnsToTableAlias<TColumns extends ColumnsSelection, TAlias ext
27
27
  [Key in keyof TColumns]: TColumns[Key] extends Column ? ChangeColumnTableName<Assume<TColumns[Key], Column>, TAlias, TDialect> : TColumns[Key];
28
28
  } & {};
29
29
  export type AddAliasToSelection<TSelection extends ColumnsSelection, TAlias extends string, TDialect extends Dialect> = Simplify<IsAny<TSelection> extends true ? any : {
30
- [Key in keyof TSelection]: TSelection[Key] extends Column ? ChangeColumnTableName<TSelection[Key], TAlias, TDialect> : TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key] : TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect> : never;
30
+ [Key in keyof TSelection]: TSelection[Key] extends Column ? ChangeColumnTableName<TSelection[Key], TAlias, TDialect> : TSelection[Key] extends Table ? AddAliasToSelection<TSelection[Key]['_']['columns'], TAlias, TDialect> : TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key] : TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect> : never;
31
31
  }>;
32
32
  export type AppendToResult<TTableName extends string | undefined, TResult, TJoinedName extends string | undefined, TSelectedFields extends SelectedFields<Column, Table>, TOldSelectMode extends SelectMode> = TOldSelectMode extends 'partial' ? TResult : TOldSelectMode extends 'single' ? (TTableName extends string ? Record<TTableName, TResult> : TResult) & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields) : TResult & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields);
33
33
  export type BuildSubquerySelection<TSelection extends ColumnsSelection, TNullability extends Record<string, JoinNullability>> = TSelection extends never ? any : {
34
- [Key in keyof TSelection]: TSelection[Key] extends SQL ? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'> : TSelection[Key] extends SQL.Aliased ? TSelection[Key] : TSelection[Key] extends Column ? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]> : TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability> : never;
34
+ [Key in keyof TSelection]: TSelection[Key] extends SQL ? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'> : TSelection[Key] extends SQL.Aliased ? TSelection[Key] : TSelection[Key] extends Table ? BuildSubquerySelection<TSelection[Key]['_']['columns'], TNullability> : TSelection[Key] extends Column ? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]> : TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability> : never;
35
35
  } & {};
36
36
  type SetJoinsNullability<TNullabilityMap extends Record<string, JoinNullability>, TValue extends JoinNullability> = {
37
37
  [Key in keyof TNullabilityMap]: TValue;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var driver_exports = {};
20
+ __export(driver_exports, {
21
+ SingleStoreDatabase: () => import_db2.SingleStoreDatabase,
22
+ SingleStoreDriverDatabase: () => SingleStoreDriverDatabase,
23
+ SingleStoreDriverDriver: () => SingleStoreDriverDriver,
24
+ drizzle: () => drizzle
25
+ });
26
+ module.exports = __toCommonJS(driver_exports);
27
+ var import_mysql2 = require("mysql2");
28
+ var import_entity = require("../entity.cjs");
29
+ var import_logger = require("../logger.cjs");
30
+ var import_relations = require("../relations.cjs");
31
+ var import_db = require("../singlestore-core/db.cjs");
32
+ var import_dialect = require("../singlestore-core/dialect.cjs");
33
+ var import_utils = require("../utils.cjs");
34
+ var import_session = require("./session.cjs");
35
+ var import_db2 = require("../singlestore-core/db.cjs");
36
+ class SingleStoreDriverDriver {
37
+ constructor(client, dialect, options = {}) {
38
+ this.client = client;
39
+ this.dialect = dialect;
40
+ this.options = options;
41
+ }
42
+ static [import_entity.entityKind] = "SingleStoreDriverDriver";
43
+ createSession(schema) {
44
+ return new import_session.SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });
45
+ }
46
+ }
47
+ class SingleStoreDriverDatabase extends import_db.SingleStoreDatabase {
48
+ static [import_entity.entityKind] = "SingleStoreDriverDatabase";
49
+ }
50
+ function construct(client, config = {}) {
51
+ const dialect = new import_dialect.SingleStoreDialect({ casing: config.casing });
52
+ let logger;
53
+ if (config.logger === true) {
54
+ logger = new import_logger.DefaultLogger();
55
+ } else if (config.logger !== false) {
56
+ logger = config.logger;
57
+ }
58
+ const clientForInstance = isCallbackClient(client) ? client.promise() : client;
59
+ let schema;
60
+ if (config.schema) {
61
+ const tablesConfig = (0, import_relations.extractTablesRelationalConfig)(
62
+ config.schema,
63
+ import_relations.createTableRelationsHelpers
64
+ );
65
+ schema = {
66
+ fullSchema: config.schema,
67
+ schema: tablesConfig.tables,
68
+ tableNamesMap: tablesConfig.tableNamesMap
69
+ };
70
+ }
71
+ const driver = new SingleStoreDriverDriver(clientForInstance, dialect, { logger });
72
+ const session = driver.createSession(schema);
73
+ const db = new SingleStoreDriverDatabase(dialect, session, schema);
74
+ db.$client = client;
75
+ return db;
76
+ }
77
+ function isCallbackClient(client) {
78
+ return typeof client.promise === "function";
79
+ }
80
+ function drizzle(...params) {
81
+ if (typeof params[0] === "string") {
82
+ const connectionString = params[0];
83
+ const instance = (0, import_mysql2.createPool)({
84
+ uri: connectionString
85
+ });
86
+ return construct(instance, params[1]);
87
+ }
88
+ if ((0, import_utils.isConfig)(params[0])) {
89
+ const { connection, client, ...drizzleConfig } = params[0];
90
+ if (client)
91
+ return construct(client, drizzleConfig);
92
+ const instance = typeof connection === "string" ? (0, import_mysql2.createPool)({
93
+ uri: connection
94
+ }) : (0, import_mysql2.createPool)(connection);
95
+ const db = construct(instance, drizzleConfig);
96
+ return db;
97
+ }
98
+ return construct(params[0], params[1]);
99
+ }
100
+ ((drizzle2) => {
101
+ function mock(config) {
102
+ return construct({}, config);
103
+ }
104
+ drizzle2.mock = mock;
105
+ })(drizzle || (drizzle = {}));
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {
108
+ SingleStoreDatabase,
109
+ SingleStoreDriverDatabase,
110
+ SingleStoreDriverDriver,
111
+ drizzle
112
+ });
113
+ //# sourceMappingURL=driver.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, type IfNotImported, type ImportTypeError, isConfig } from '~/utils.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema> = {},\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: IfNotImported<\n\t\tCallbackPool,\n\t\t[ImportTypeError<'singlestore'>],\n\t\t[\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tSingleStoreDriverDrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolOptions;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? createPool({\n\t\t\t\turi: connection,\n\t\t\t})\n\t\t\t: createPool(connection!);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as SingleStoreDriverDrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema>,\n\t): SingleStoreDriverDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+G;AAE/G,oBAA2B;AAE3B,oBAA8B;AAC9B,uBAKO;AACP,gBAAoC;AACpC,qBAAmC;AACnC,mBAAuF;AAMvF,qBAAyC;AAuBzC,IAAAA,aAAoC;AAjB7B,MAAM,wBAAwB;AAAA,EAGpC,YACS,QACA,SACA,UAAoC,CAAC,GAC5C;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QAC4E;AAC5E,WAAO,IAAI,wCAAyB,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACvG;AACD;AAIO,MAAM,kCAEH,8BAAiG;AAAA,EAC1G,QAA0B,wBAAU,IAAY;AACjD;AAMA,SAAS,UAIR,QACA,SAAkD,CAAC,GAGlD;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,wBAAwB,mBAA8C,SAAS,EAAE,OAAO,CAAC;AAC5G,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,0BAA0B,SAAS,SAAS,MAAa;AACxE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;AAIO,SAAS,WAIZ,QAqBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,mBAAmB,OAAO,CAAC;AACjC,UAAM,eAAW,0BAAW;AAAA,MAC3B,KAAK;AAAA,IACN,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,eACpC,0BAAW;AAAA,MACZ,KAAK;AAAA,IACN,CAAC,QACC,0BAAW,UAAW;AACzB,UAAM,KAAK,UAAU,UAAU,aAAa;AAE5C,WAAO;AAAA,EACR;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAwD;AACxG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["import_db","drizzle"]}
@@ -0,0 +1,52 @@
1
+ import { type Connection as CallbackConnection, type Pool as CallbackPool, type PoolOptions } from 'mysql2';
2
+ import type { Connection, Pool } from 'mysql2/promise';
3
+ import { entityKind } from "../entity.cjs";
4
+ import type { Logger } from "../logger.cjs";
5
+ import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.cjs";
6
+ import { SingleStoreDatabase } from "../singlestore-core/db.cjs";
7
+ import { SingleStoreDialect } from "../singlestore-core/dialect.cjs";
8
+ import { type DrizzleConfig, type IfNotImported, type ImportTypeError } from "../utils.cjs";
9
+ import type { SingleStoreDriverClient, SingleStoreDriverPreparedQueryHKT, SingleStoreDriverQueryResultHKT } from "./session.cjs";
10
+ import { SingleStoreDriverSession } from "./session.cjs";
11
+ export interface SingleStoreDriverOptions {
12
+ logger?: Logger;
13
+ }
14
+ export declare class SingleStoreDriverDriver {
15
+ private client;
16
+ private dialect;
17
+ private options;
18
+ static readonly [entityKind]: string;
19
+ constructor(client: SingleStoreDriverClient, dialect: SingleStoreDialect, options?: SingleStoreDriverOptions);
20
+ createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig>;
21
+ }
22
+ export { SingleStoreDatabase } from "../singlestore-core/db.cjs";
23
+ export declare class SingleStoreDriverDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {
24
+ static readonly [entityKind]: string;
25
+ }
26
+ export type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> = Omit<DrizzleConfig<TSchema>, 'schema'> & ({
27
+ schema: TSchema;
28
+ } | {
29
+ schema?: undefined;
30
+ });
31
+ export type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;
32
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends AnySingleStoreDriverConnection = CallbackPool>(...params: IfNotImported<CallbackPool, [
33
+ ImportTypeError<'singlestore'>
34
+ ], [
35
+ TClient | string
36
+ ] | [
37
+ TClient | string,
38
+ SingleStoreDriverDrizzleConfig<TSchema>
39
+ ] | [
40
+ (SingleStoreDriverDrizzleConfig<TSchema> & ({
41
+ connection: string | PoolOptions;
42
+ } | {
43
+ client: TClient;
44
+ }))
45
+ ]>): SingleStoreDriverDatabase<TSchema> & {
46
+ $client: TClient;
47
+ };
48
+ export declare namespace drizzle {
49
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: SingleStoreDriverDrizzleConfig<TSchema>): SingleStoreDriverDatabase<TSchema> & {
50
+ $client: '$client is not available on drizzle.mock()';
51
+ };
52
+ }
@@ -0,0 +1,52 @@
1
+ import { type Connection as CallbackConnection, type Pool as CallbackPool, type PoolOptions } from 'mysql2';
2
+ import type { Connection, Pool } from 'mysql2/promise';
3
+ import { entityKind } from "../entity.js";
4
+ import type { Logger } from "../logger.js";
5
+ import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.js";
6
+ import { SingleStoreDatabase } from "../singlestore-core/db.js";
7
+ import { SingleStoreDialect } from "../singlestore-core/dialect.js";
8
+ import { type DrizzleConfig, type IfNotImported, type ImportTypeError } from "../utils.js";
9
+ import type { SingleStoreDriverClient, SingleStoreDriverPreparedQueryHKT, SingleStoreDriverQueryResultHKT } from "./session.js";
10
+ import { SingleStoreDriverSession } from "./session.js";
11
+ export interface SingleStoreDriverOptions {
12
+ logger?: Logger;
13
+ }
14
+ export declare class SingleStoreDriverDriver {
15
+ private client;
16
+ private dialect;
17
+ private options;
18
+ static readonly [entityKind]: string;
19
+ constructor(client: SingleStoreDriverClient, dialect: SingleStoreDialect, options?: SingleStoreDriverOptions);
20
+ createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig>;
21
+ }
22
+ export { SingleStoreDatabase } from "../singlestore-core/db.js";
23
+ export declare class SingleStoreDriverDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {
24
+ static readonly [entityKind]: string;
25
+ }
26
+ export type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> = Omit<DrizzleConfig<TSchema>, 'schema'> & ({
27
+ schema: TSchema;
28
+ } | {
29
+ schema?: undefined;
30
+ });
31
+ export type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;
32
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends AnySingleStoreDriverConnection = CallbackPool>(...params: IfNotImported<CallbackPool, [
33
+ ImportTypeError<'singlestore'>
34
+ ], [
35
+ TClient | string
36
+ ] | [
37
+ TClient | string,
38
+ SingleStoreDriverDrizzleConfig<TSchema>
39
+ ] | [
40
+ (SingleStoreDriverDrizzleConfig<TSchema> & ({
41
+ connection: string | PoolOptions;
42
+ } | {
43
+ client: TClient;
44
+ }))
45
+ ]>): SingleStoreDriverDatabase<TSchema> & {
46
+ $client: TClient;
47
+ };
48
+ export declare namespace drizzle {
49
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: SingleStoreDriverDrizzleConfig<TSchema>): SingleStoreDriverDatabase<TSchema> & {
50
+ $client: '$client is not available on drizzle.mock()';
51
+ };
52
+ }
@@ -0,0 +1,89 @@
1
+ import { createPool } from "mysql2";
2
+ import { entityKind } from "../entity.js";
3
+ import { DefaultLogger } from "../logger.js";
4
+ import {
5
+ createTableRelationsHelpers,
6
+ extractTablesRelationalConfig
7
+ } from "../relations.js";
8
+ import { SingleStoreDatabase } from "../singlestore-core/db.js";
9
+ import { SingleStoreDialect } from "../singlestore-core/dialect.js";
10
+ import { isConfig } from "../utils.js";
11
+ import { SingleStoreDriverSession } from "./session.js";
12
+ class SingleStoreDriverDriver {
13
+ constructor(client, dialect, options = {}) {
14
+ this.client = client;
15
+ this.dialect = dialect;
16
+ this.options = options;
17
+ }
18
+ static [entityKind] = "SingleStoreDriverDriver";
19
+ createSession(schema) {
20
+ return new SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });
21
+ }
22
+ }
23
+ import { SingleStoreDatabase as SingleStoreDatabase2 } from "../singlestore-core/db.js";
24
+ class SingleStoreDriverDatabase extends SingleStoreDatabase {
25
+ static [entityKind] = "SingleStoreDriverDatabase";
26
+ }
27
+ function construct(client, config = {}) {
28
+ const dialect = new SingleStoreDialect({ casing: config.casing });
29
+ let logger;
30
+ if (config.logger === true) {
31
+ logger = new DefaultLogger();
32
+ } else if (config.logger !== false) {
33
+ logger = config.logger;
34
+ }
35
+ const clientForInstance = isCallbackClient(client) ? client.promise() : client;
36
+ let schema;
37
+ if (config.schema) {
38
+ const tablesConfig = extractTablesRelationalConfig(
39
+ config.schema,
40
+ createTableRelationsHelpers
41
+ );
42
+ schema = {
43
+ fullSchema: config.schema,
44
+ schema: tablesConfig.tables,
45
+ tableNamesMap: tablesConfig.tableNamesMap
46
+ };
47
+ }
48
+ const driver = new SingleStoreDriverDriver(clientForInstance, dialect, { logger });
49
+ const session = driver.createSession(schema);
50
+ const db = new SingleStoreDriverDatabase(dialect, session, schema);
51
+ db.$client = client;
52
+ return db;
53
+ }
54
+ function isCallbackClient(client) {
55
+ return typeof client.promise === "function";
56
+ }
57
+ function drizzle(...params) {
58
+ if (typeof params[0] === "string") {
59
+ const connectionString = params[0];
60
+ const instance = createPool({
61
+ uri: connectionString
62
+ });
63
+ return construct(instance, params[1]);
64
+ }
65
+ if (isConfig(params[0])) {
66
+ const { connection, client, ...drizzleConfig } = params[0];
67
+ if (client)
68
+ return construct(client, drizzleConfig);
69
+ const instance = typeof connection === "string" ? createPool({
70
+ uri: connection
71
+ }) : createPool(connection);
72
+ const db = construct(instance, drizzleConfig);
73
+ return db;
74
+ }
75
+ return construct(params[0], params[1]);
76
+ }
77
+ ((drizzle2) => {
78
+ function mock(config) {
79
+ return construct({}, config);
80
+ }
81
+ drizzle2.mock = mock;
82
+ })(drizzle || (drizzle = {}));
83
+ export {
84
+ SingleStoreDatabase2 as SingleStoreDatabase,
85
+ SingleStoreDriverDatabase,
86
+ SingleStoreDriverDriver,
87
+ drizzle
88
+ };
89
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, type IfNotImported, type ImportTypeError, isConfig } from '~/utils.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): SingleStoreDriverSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema> = {},\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: IfNotImported<\n\t\tCallbackPool,\n\t\t[ImportTypeError<'singlestore'>],\n\t\t[\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tSingleStoreDriverDrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolOptions;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): SingleStoreDriverDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? createPool({\n\t\t\t\turi: connection,\n\t\t\t})\n\t\t\t: createPool(connection!);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as SingleStoreDriverDrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema>,\n\t): SingleStoreDriverDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAgD,kBAA+D;AAE/G,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAuE,gBAAgB;AAMvF,SAAS,gCAAgC;AAMlC,MAAM,wBAAwB;AAAA,EAGpC,YACS,QACA,SACA,UAAoC,CAAC,GAC5C;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QAC4E;AAC5E,WAAO,IAAI,yBAAyB,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EACvG;AACD;AAEA,SAAS,uBAAAA,4BAA2B;AAE7B,MAAM,kCAEH,oBAAiG;AAAA,EAC1G,QAA0B,UAAU,IAAY;AACjD;AAMA,SAAS,UAIR,QACA,SAAkD,CAAC,GAGlD;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,wBAAwB,mBAA8C,SAAS,EAAE,OAAO,CAAC;AAC5G,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,0BAA0B,SAAS,SAAS,MAAa;AACxE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;AAIO,SAAS,WAIZ,QAqBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,mBAAmB,OAAO,CAAC;AACjC,UAAM,WAAW,WAAW;AAAA,MAC3B,KAAK;AAAA,IACN,CAAC;AAED,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,OAAO,eAAe,WACpC,WAAW;AAAA,MACZ,KAAK;AAAA,IACN,CAAC,IACC,WAAW,UAAW;AACzB,UAAM,KAAK,UAAU,UAAU,aAAa;AAE5C,WAAO;AAAA,EACR;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAwD;AACxG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["SingleStoreDatabase","drizzle"]}