drizzle-orm 1.0.0-beta.1-08e4e66 → 1.0.0-beta.1-17c242e

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 (1420) hide show
  1. package/_relations.cjs +0 -48
  2. package/_relations.cjs.map +1 -1
  3. package/_relations.d.cts +0 -1
  4. package/_relations.d.ts +0 -1
  5. package/_relations.js +0 -47
  6. package/_relations.js.map +1 -1
  7. package/bun-sql/driver.cjs +35 -75
  8. package/bun-sql/driver.cjs.map +1 -1
  9. package/bun-sql/driver.d.cts +69 -10
  10. package/bun-sql/driver.d.ts +69 -10
  11. package/bun-sql/driver.js +35 -64
  12. package/bun-sql/driver.js.map +1 -1
  13. package/bun-sql/migrator.cjs +18 -3
  14. package/bun-sql/migrator.cjs.map +1 -1
  15. package/bun-sql/migrator.d.cts +8 -1
  16. package/bun-sql/migrator.d.ts +8 -1
  17. package/bun-sql/migrator.js +18 -3
  18. package/bun-sql/migrator.js.map +1 -1
  19. package/bun-sql/mysql/driver.cjs +117 -0
  20. package/bun-sql/mysql/driver.cjs.map +1 -0
  21. package/bun-sql/mysql/driver.d.cts +38 -0
  22. package/bun-sql/mysql/driver.d.ts +38 -0
  23. package/bun-sql/mysql/driver.js +82 -0
  24. package/bun-sql/mysql/driver.js.map +1 -0
  25. package/{node-mssql → bun-sql/mysql}/index.cjs +4 -4
  26. package/bun-sql/mysql/index.cjs.map +1 -0
  27. package/bun-sql/mysql/index.js.map +1 -0
  28. package/{node-mssql → bun-sql/mysql}/migrator.cjs +1 -1
  29. package/bun-sql/mysql/migrator.cjs.map +1 -0
  30. package/bun-sql/mysql/migrator.d.cts +4 -0
  31. package/bun-sql/mysql/migrator.d.ts +4 -0
  32. package/{node-mssql → bun-sql/mysql}/migrator.js +1 -1
  33. package/bun-sql/mysql/migrator.js.map +1 -0
  34. package/bun-sql/mysql/session.cjs +244 -0
  35. package/bun-sql/mysql/session.cjs.map +1 -0
  36. package/bun-sql/mysql/session.d.cts +65 -0
  37. package/bun-sql/mysql/session.d.ts +65 -0
  38. package/bun-sql/mysql/session.js +222 -0
  39. package/bun-sql/mysql/session.js.map +1 -0
  40. package/{cockroach → bun-sql/postgres}/driver.cjs +32 -35
  41. package/bun-sql/postgres/driver.cjs.map +1 -0
  42. package/bun-sql/postgres/driver.d.cts +30 -0
  43. package/bun-sql/postgres/driver.d.ts +30 -0
  44. package/bun-sql/postgres/driver.js +75 -0
  45. package/bun-sql/postgres/driver.js.map +1 -0
  46. package/{cockroach → bun-sql/postgres}/index.cjs +4 -4
  47. package/bun-sql/postgres/index.cjs.map +1 -0
  48. package/bun-sql/postgres/index.js.map +1 -0
  49. package/{cockroach → bun-sql/postgres}/migrator.cjs +1 -1
  50. package/bun-sql/postgres/migrator.cjs.map +1 -0
  51. package/bun-sql/postgres/migrator.d.cts +4 -0
  52. package/bun-sql/postgres/migrator.d.ts +4 -0
  53. package/{cockroach → bun-sql/postgres}/migrator.js +1 -1
  54. package/bun-sql/postgres/migrator.js.map +1 -0
  55. package/bun-sql/postgres/session.cjs +220 -0
  56. package/bun-sql/postgres/session.cjs.map +1 -0
  57. package/bun-sql/postgres/session.d.cts +65 -0
  58. package/bun-sql/postgres/session.d.ts +65 -0
  59. package/bun-sql/postgres/session.js +194 -0
  60. package/bun-sql/postgres/session.js.map +1 -0
  61. package/bun-sql/session.cjs +3 -200
  62. package/bun-sql/session.cjs.map +1 -1
  63. package/bun-sql/session.d.cts +1 -65
  64. package/bun-sql/session.d.ts +1 -65
  65. package/bun-sql/session.js +1 -193
  66. package/bun-sql/session.js.map +1 -1
  67. package/{node-mssql → bun-sql/sqlite}/driver.cjs +32 -39
  68. package/bun-sql/sqlite/driver.cjs.map +1 -0
  69. package/bun-sql/sqlite/driver.d.cts +30 -0
  70. package/bun-sql/sqlite/driver.d.ts +30 -0
  71. package/bun-sql/sqlite/driver.js +75 -0
  72. package/bun-sql/sqlite/driver.js.map +1 -0
  73. package/{cockroach-core/utils → bun-sql/sqlite}/index.cjs +6 -4
  74. package/bun-sql/sqlite/index.cjs.map +1 -0
  75. package/bun-sql/sqlite/index.d.cts +2 -0
  76. package/bun-sql/sqlite/index.d.ts +2 -0
  77. package/bun-sql/sqlite/index.js +3 -0
  78. package/bun-sql/sqlite/index.js.map +1 -0
  79. package/{mssql-core/alias.cjs → bun-sql/sqlite/migrator.cjs} +10 -9
  80. package/bun-sql/sqlite/migrator.cjs.map +1 -0
  81. package/bun-sql/sqlite/migrator.d.cts +4 -0
  82. package/bun-sql/sqlite/migrator.d.ts +4 -0
  83. package/bun-sql/sqlite/migrator.js +9 -0
  84. package/bun-sql/sqlite/migrator.js.map +1 -0
  85. package/bun-sql/sqlite/session.cjs +225 -0
  86. package/bun-sql/sqlite/session.cjs.map +1 -0
  87. package/bun-sql/sqlite/session.d.cts +67 -0
  88. package/bun-sql/sqlite/session.d.ts +67 -0
  89. package/bun-sql/sqlite/session.js +199 -0
  90. package/bun-sql/sqlite/session.js.map +1 -0
  91. package/bun-sqlite/driver.cjs +5 -5
  92. package/bun-sqlite/driver.cjs.map +1 -1
  93. package/bun-sqlite/driver.d.cts +5 -5
  94. package/bun-sqlite/driver.d.ts +5 -5
  95. package/bun-sqlite/driver.js +4 -4
  96. package/bun-sqlite/driver.js.map +1 -1
  97. package/bun-sqlite/migrator.cjs.map +1 -1
  98. package/bun-sqlite/migrator.d.cts +2 -2
  99. package/bun-sqlite/migrator.d.ts +2 -2
  100. package/bun-sqlite/migrator.js.map +1 -1
  101. package/cache/core/cache.cjs.map +1 -1
  102. package/cache/core/cache.d.cts +1 -1
  103. package/cache/core/cache.d.ts +1 -1
  104. package/cache/core/cache.js.map +1 -1
  105. package/cache/upstash/cache.cjs +2 -2
  106. package/cache/upstash/cache.cjs.map +1 -1
  107. package/cache/upstash/cache.js +1 -1
  108. package/cache/upstash/cache.js.map +1 -1
  109. package/column-builder.cjs.map +1 -1
  110. package/column-builder.d.cts +8 -10
  111. package/column-builder.d.ts +8 -10
  112. package/column-builder.js.map +1 -1
  113. package/column.cjs +0 -2
  114. package/column.cjs.map +1 -1
  115. package/column.d.cts +0 -1
  116. package/column.d.ts +0 -1
  117. package/column.js +0 -2
  118. package/column.js.map +1 -1
  119. package/gel-core/columns/bigint.cjs.map +1 -1
  120. package/gel-core/columns/bigint.d.cts +1 -0
  121. package/gel-core/columns/bigint.d.ts +1 -0
  122. package/gel-core/columns/bigint.js.map +1 -1
  123. package/gel-core/columns/bigintT.cjs.map +1 -1
  124. package/gel-core/columns/bigintT.d.cts +1 -0
  125. package/gel-core/columns/bigintT.d.ts +1 -0
  126. package/gel-core/columns/bigintT.js.map +1 -1
  127. package/gel-core/columns/boolean.cjs.map +1 -1
  128. package/gel-core/columns/boolean.d.cts +1 -0
  129. package/gel-core/columns/boolean.d.ts +1 -0
  130. package/gel-core/columns/boolean.js.map +1 -1
  131. package/gel-core/columns/bytes.cjs.map +1 -1
  132. package/gel-core/columns/bytes.d.cts +1 -0
  133. package/gel-core/columns/bytes.d.ts +1 -0
  134. package/gel-core/columns/bytes.js.map +1 -1
  135. package/gel-core/columns/custom.cjs.map +1 -1
  136. package/gel-core/columns/custom.d.cts +1 -0
  137. package/gel-core/columns/custom.d.ts +1 -0
  138. package/gel-core/columns/custom.js.map +1 -1
  139. package/gel-core/columns/date-duration.cjs.map +1 -1
  140. package/gel-core/columns/date-duration.d.cts +1 -0
  141. package/gel-core/columns/date-duration.d.ts +1 -0
  142. package/gel-core/columns/date-duration.js.map +1 -1
  143. package/gel-core/columns/decimal.cjs.map +1 -1
  144. package/gel-core/columns/decimal.d.cts +1 -0
  145. package/gel-core/columns/decimal.d.ts +1 -0
  146. package/gel-core/columns/decimal.js.map +1 -1
  147. package/gel-core/columns/double-precision.cjs.map +1 -1
  148. package/gel-core/columns/double-precision.d.cts +1 -0
  149. package/gel-core/columns/double-precision.d.ts +1 -0
  150. package/gel-core/columns/double-precision.js.map +1 -1
  151. package/gel-core/columns/duration.cjs.map +1 -1
  152. package/gel-core/columns/duration.d.cts +1 -0
  153. package/gel-core/columns/duration.d.ts +1 -0
  154. package/gel-core/columns/duration.js.map +1 -1
  155. package/gel-core/columns/integer.cjs.map +1 -1
  156. package/gel-core/columns/integer.d.cts +1 -0
  157. package/gel-core/columns/integer.d.ts +1 -0
  158. package/gel-core/columns/integer.js.map +1 -1
  159. package/gel-core/columns/json.cjs.map +1 -1
  160. package/gel-core/columns/json.d.cts +1 -0
  161. package/gel-core/columns/json.d.ts +1 -0
  162. package/gel-core/columns/json.js.map +1 -1
  163. package/gel-core/columns/localdate.cjs.map +1 -1
  164. package/gel-core/columns/localdate.d.cts +1 -0
  165. package/gel-core/columns/localdate.d.ts +1 -0
  166. package/gel-core/columns/localdate.js.map +1 -1
  167. package/gel-core/columns/localtime.cjs.map +1 -1
  168. package/gel-core/columns/localtime.d.cts +1 -0
  169. package/gel-core/columns/localtime.d.ts +1 -0
  170. package/gel-core/columns/localtime.js.map +1 -1
  171. package/gel-core/columns/real.cjs.map +1 -1
  172. package/gel-core/columns/real.d.cts +1 -0
  173. package/gel-core/columns/real.d.ts +1 -0
  174. package/gel-core/columns/real.js.map +1 -1
  175. package/gel-core/columns/relative-duration.cjs.map +1 -1
  176. package/gel-core/columns/relative-duration.d.cts +1 -0
  177. package/gel-core/columns/relative-duration.d.ts +1 -0
  178. package/gel-core/columns/relative-duration.js.map +1 -1
  179. package/gel-core/columns/smallint.cjs.map +1 -1
  180. package/gel-core/columns/smallint.d.cts +1 -0
  181. package/gel-core/columns/smallint.d.ts +1 -0
  182. package/gel-core/columns/smallint.js.map +1 -1
  183. package/gel-core/columns/text.cjs.map +1 -1
  184. package/gel-core/columns/text.d.cts +1 -0
  185. package/gel-core/columns/text.d.ts +1 -0
  186. package/gel-core/columns/text.js.map +1 -1
  187. package/gel-core/columns/timestamp.cjs.map +1 -1
  188. package/gel-core/columns/timestamp.d.cts +1 -0
  189. package/gel-core/columns/timestamp.d.ts +1 -0
  190. package/gel-core/columns/timestamp.js.map +1 -1
  191. package/gel-core/columns/timestamptz.cjs.map +1 -1
  192. package/gel-core/columns/timestamptz.d.cts +1 -0
  193. package/gel-core/columns/timestamptz.d.ts +1 -0
  194. package/gel-core/columns/timestamptz.js.map +1 -1
  195. package/gel-core/columns/uuid.cjs.map +1 -1
  196. package/gel-core/columns/uuid.d.cts +1 -0
  197. package/gel-core/columns/uuid.d.ts +1 -0
  198. package/gel-core/columns/uuid.js.map +1 -1
  199. package/gel-core/query-builders/insert.cjs.map +1 -1
  200. package/gel-core/query-builders/insert.d.cts +9 -6
  201. package/gel-core/query-builders/insert.d.ts +9 -6
  202. package/gel-core/query-builders/insert.js.map +1 -1
  203. package/gel-core/query-builders/update.cjs.map +1 -1
  204. package/gel-core/query-builders/update.d.cts +1 -1
  205. package/gel-core/query-builders/update.d.ts +1 -1
  206. package/gel-core/query-builders/update.js.map +1 -1
  207. package/mysql-core/columns/bigint.cjs +4 -0
  208. package/mysql-core/columns/bigint.cjs.map +1 -1
  209. package/mysql-core/columns/bigint.d.cts +4 -1
  210. package/mysql-core/columns/bigint.d.ts +4 -1
  211. package/mysql-core/columns/bigint.js +4 -0
  212. package/mysql-core/columns/bigint.js.map +1 -1
  213. package/mysql-core/columns/binary.cjs +1 -0
  214. package/mysql-core/columns/binary.cjs.map +1 -1
  215. package/mysql-core/columns/binary.d.cts +2 -0
  216. package/mysql-core/columns/binary.d.ts +2 -0
  217. package/mysql-core/columns/binary.js +1 -0
  218. package/mysql-core/columns/binary.js.map +1 -1
  219. package/mysql-core/columns/boolean.cjs.map +1 -1
  220. package/mysql-core/columns/boolean.d.cts +1 -0
  221. package/mysql-core/columns/boolean.d.ts +1 -0
  222. package/mysql-core/columns/boolean.js.map +1 -1
  223. package/mysql-core/columns/char.cjs +1 -0
  224. package/mysql-core/columns/char.cjs.map +1 -1
  225. package/mysql-core/columns/char.d.cts +2 -0
  226. package/mysql-core/columns/char.d.ts +2 -0
  227. package/mysql-core/columns/char.js +1 -0
  228. package/mysql-core/columns/char.js.map +1 -1
  229. package/mysql-core/columns/common.cjs.map +1 -1
  230. package/mysql-core/columns/common.d.cts +1 -1
  231. package/mysql-core/columns/common.d.ts +1 -1
  232. package/mysql-core/columns/common.js.map +1 -1
  233. package/mysql-core/columns/custom.cjs.map +1 -1
  234. package/mysql-core/columns/custom.d.cts +1 -0
  235. package/mysql-core/columns/custom.d.ts +1 -0
  236. package/mysql-core/columns/custom.js.map +1 -1
  237. package/mysql-core/columns/date.cjs +4 -0
  238. package/mysql-core/columns/date.cjs.map +1 -1
  239. package/mysql-core/columns/date.d.cts +3 -0
  240. package/mysql-core/columns/date.d.ts +3 -0
  241. package/mysql-core/columns/date.js +4 -0
  242. package/mysql-core/columns/date.js.map +1 -1
  243. package/mysql-core/columns/datetime.cjs +6 -1
  244. package/mysql-core/columns/datetime.cjs.map +1 -1
  245. package/mysql-core/columns/datetime.d.cts +4 -1
  246. package/mysql-core/columns/datetime.d.ts +4 -1
  247. package/mysql-core/columns/datetime.js +6 -1
  248. package/mysql-core/columns/datetime.js.map +1 -1
  249. package/mysql-core/columns/decimal.cjs.map +1 -1
  250. package/mysql-core/columns/decimal.d.cts +3 -0
  251. package/mysql-core/columns/decimal.d.ts +3 -0
  252. package/mysql-core/columns/decimal.js.map +1 -1
  253. package/mysql-core/columns/double.cjs.map +1 -1
  254. package/mysql-core/columns/double.d.cts +1 -0
  255. package/mysql-core/columns/double.d.ts +1 -0
  256. package/mysql-core/columns/double.js.map +1 -1
  257. package/mysql-core/columns/enum.cjs.map +1 -1
  258. package/mysql-core/columns/enum.d.cts +2 -0
  259. package/mysql-core/columns/enum.d.ts +2 -0
  260. package/mysql-core/columns/enum.js.map +1 -1
  261. package/mysql-core/columns/float.cjs.map +1 -1
  262. package/mysql-core/columns/float.d.cts +1 -0
  263. package/mysql-core/columns/float.d.ts +1 -0
  264. package/mysql-core/columns/float.js.map +1 -1
  265. package/mysql-core/columns/int.cjs.map +1 -1
  266. package/mysql-core/columns/int.d.cts +1 -0
  267. package/mysql-core/columns/int.d.ts +1 -0
  268. package/mysql-core/columns/int.js.map +1 -1
  269. package/mysql-core/columns/json.cjs.map +1 -1
  270. package/mysql-core/columns/json.d.cts +1 -0
  271. package/mysql-core/columns/json.d.ts +1 -0
  272. package/mysql-core/columns/json.js.map +1 -1
  273. package/mysql-core/columns/mediumint.cjs.map +1 -1
  274. package/mysql-core/columns/mediumint.d.cts +1 -0
  275. package/mysql-core/columns/mediumint.d.ts +1 -0
  276. package/mysql-core/columns/mediumint.js.map +1 -1
  277. package/mysql-core/columns/real.cjs.map +1 -1
  278. package/mysql-core/columns/real.d.cts +1 -0
  279. package/mysql-core/columns/real.d.ts +1 -0
  280. package/mysql-core/columns/real.js.map +1 -1
  281. package/mysql-core/columns/serial.cjs.map +1 -1
  282. package/mysql-core/columns/serial.d.cts +1 -0
  283. package/mysql-core/columns/serial.d.ts +1 -0
  284. package/mysql-core/columns/serial.js.map +1 -1
  285. package/mysql-core/columns/smallint.cjs.map +1 -1
  286. package/mysql-core/columns/smallint.d.cts +1 -0
  287. package/mysql-core/columns/smallint.d.ts +1 -0
  288. package/mysql-core/columns/smallint.js.map +1 -1
  289. package/mysql-core/columns/text.cjs.map +1 -1
  290. package/mysql-core/columns/text.d.cts +1 -0
  291. package/mysql-core/columns/text.d.ts +1 -0
  292. package/mysql-core/columns/text.js.map +1 -1
  293. package/mysql-core/columns/time.cjs +4 -0
  294. package/mysql-core/columns/time.cjs.map +1 -1
  295. package/mysql-core/columns/time.d.cts +2 -0
  296. package/mysql-core/columns/time.d.ts +2 -0
  297. package/mysql-core/columns/time.js +4 -0
  298. package/mysql-core/columns/time.js.map +1 -1
  299. package/mysql-core/columns/timestamp.cjs +8 -1
  300. package/mysql-core/columns/timestamp.cjs.map +1 -1
  301. package/mysql-core/columns/timestamp.d.cts +4 -1
  302. package/mysql-core/columns/timestamp.d.ts +4 -1
  303. package/mysql-core/columns/timestamp.js +8 -1
  304. package/mysql-core/columns/timestamp.js.map +1 -1
  305. package/mysql-core/columns/tinyint.cjs.map +1 -1
  306. package/mysql-core/columns/tinyint.d.cts +1 -0
  307. package/mysql-core/columns/tinyint.d.ts +1 -0
  308. package/mysql-core/columns/tinyint.js.map +1 -1
  309. package/mysql-core/columns/varbinary.cjs.map +1 -1
  310. package/mysql-core/columns/varbinary.d.cts +1 -0
  311. package/mysql-core/columns/varbinary.d.ts +1 -0
  312. package/mysql-core/columns/varbinary.js.map +1 -1
  313. package/mysql-core/columns/varchar.cjs +1 -1
  314. package/mysql-core/columns/varchar.cjs.map +1 -1
  315. package/mysql-core/columns/varchar.d.cts +2 -1
  316. package/mysql-core/columns/varchar.d.ts +2 -1
  317. package/mysql-core/columns/varchar.js +1 -1
  318. package/mysql-core/columns/varchar.js.map +1 -1
  319. package/mysql-core/columns/year.cjs +4 -0
  320. package/mysql-core/columns/year.cjs.map +1 -1
  321. package/mysql-core/columns/year.d.cts +2 -0
  322. package/mysql-core/columns/year.d.ts +2 -0
  323. package/mysql-core/columns/year.js +4 -0
  324. package/mysql-core/columns/year.js.map +1 -1
  325. package/mysql-core/dialect.cjs +0 -3
  326. package/mysql-core/dialect.cjs.map +1 -1
  327. package/mysql-core/dialect.d.cts +0 -1
  328. package/mysql-core/dialect.d.ts +0 -1
  329. package/mysql-core/dialect.js +0 -3
  330. package/mysql-core/dialect.js.map +1 -1
  331. package/mysql-core/query-builders/insert.cjs.map +1 -1
  332. package/mysql-core/query-builders/insert.d.cts +2 -2
  333. package/mysql-core/query-builders/insert.d.ts +2 -2
  334. package/mysql-core/query-builders/insert.js.map +1 -1
  335. package/mysql-core/query-builders/update.cjs.map +1 -1
  336. package/mysql-core/query-builders/update.d.cts +1 -1
  337. package/mysql-core/query-builders/update.d.ts +1 -1
  338. package/mysql-core/query-builders/update.js.map +1 -1
  339. package/mysql-core/utils.cjs +2 -2
  340. package/mysql-core/utils.cjs.map +1 -1
  341. package/mysql-core/utils.d.cts +2 -2
  342. package/mysql-core/utils.d.ts +2 -2
  343. package/mysql-core/utils.js +1 -1
  344. package/mysql-core/utils.js.map +1 -1
  345. package/mysql-proxy/driver.cjs +2 -2
  346. package/mysql-proxy/driver.cjs.map +1 -1
  347. package/mysql-proxy/driver.d.cts +1 -2
  348. package/mysql-proxy/driver.d.ts +1 -2
  349. package/mysql-proxy/driver.js +2 -2
  350. package/mysql-proxy/driver.js.map +1 -1
  351. package/node-postgres/session.cjs.map +1 -1
  352. package/node-postgres/session.js.map +1 -1
  353. package/package.json +243 -1541
  354. package/pg-core/columns/bigint.cjs.map +1 -1
  355. package/pg-core/columns/bigint.d.cts +2 -0
  356. package/pg-core/columns/bigint.d.ts +2 -0
  357. package/pg-core/columns/bigint.js.map +1 -1
  358. package/pg-core/columns/bigserial.cjs +0 -1
  359. package/pg-core/columns/bigserial.cjs.map +1 -1
  360. package/pg-core/columns/bigserial.d.cts +2 -0
  361. package/pg-core/columns/bigserial.d.ts +2 -0
  362. package/pg-core/columns/bigserial.js +0 -1
  363. package/pg-core/columns/bigserial.js.map +1 -1
  364. package/pg-core/columns/boolean.cjs.map +1 -1
  365. package/pg-core/columns/boolean.d.cts +1 -0
  366. package/pg-core/columns/boolean.d.ts +1 -0
  367. package/pg-core/columns/boolean.js.map +1 -1
  368. package/pg-core/columns/bytea.cjs.map +1 -1
  369. package/pg-core/columns/bytea.d.cts +1 -0
  370. package/pg-core/columns/bytea.d.ts +1 -0
  371. package/pg-core/columns/bytea.js.map +1 -1
  372. package/pg-core/columns/char.cjs +1 -0
  373. package/pg-core/columns/char.cjs.map +1 -1
  374. package/pg-core/columns/char.d.cts +2 -0
  375. package/pg-core/columns/char.d.ts +2 -0
  376. package/pg-core/columns/char.js +1 -0
  377. package/pg-core/columns/char.js.map +1 -1
  378. package/pg-core/columns/cidr.cjs.map +1 -1
  379. package/pg-core/columns/cidr.d.cts +1 -0
  380. package/pg-core/columns/cidr.d.ts +1 -0
  381. package/pg-core/columns/cidr.js.map +1 -1
  382. package/pg-core/columns/common.cjs +10 -11
  383. package/pg-core/columns/common.cjs.map +1 -1
  384. package/pg-core/columns/common.d.cts +2 -3
  385. package/pg-core/columns/common.d.ts +2 -3
  386. package/pg-core/columns/common.js +10 -11
  387. package/pg-core/columns/common.js.map +1 -1
  388. package/pg-core/columns/custom.cjs.map +1 -1
  389. package/pg-core/columns/custom.d.cts +1 -0
  390. package/pg-core/columns/custom.d.ts +1 -0
  391. package/pg-core/columns/custom.js.map +1 -1
  392. package/pg-core/columns/date.cjs.map +1 -1
  393. package/pg-core/columns/date.d.cts +2 -0
  394. package/pg-core/columns/date.d.ts +2 -0
  395. package/pg-core/columns/date.js.map +1 -1
  396. package/pg-core/columns/double-precision.cjs.map +1 -1
  397. package/pg-core/columns/double-precision.d.cts +1 -0
  398. package/pg-core/columns/double-precision.d.ts +1 -0
  399. package/pg-core/columns/double-precision.js.map +1 -1
  400. package/pg-core/columns/enum.cjs.map +1 -1
  401. package/pg-core/columns/enum.d.cts +2 -0
  402. package/pg-core/columns/enum.d.ts +2 -0
  403. package/pg-core/columns/enum.js.map +1 -1
  404. package/pg-core/columns/inet.cjs.map +1 -1
  405. package/pg-core/columns/inet.d.cts +1 -0
  406. package/pg-core/columns/inet.d.ts +1 -0
  407. package/pg-core/columns/inet.js.map +1 -1
  408. package/pg-core/columns/integer.cjs.map +1 -1
  409. package/pg-core/columns/integer.d.cts +1 -0
  410. package/pg-core/columns/integer.d.ts +1 -0
  411. package/pg-core/columns/integer.js.map +1 -1
  412. package/pg-core/columns/interval.cjs.map +1 -1
  413. package/pg-core/columns/interval.d.cts +1 -0
  414. package/pg-core/columns/interval.d.ts +1 -0
  415. package/pg-core/columns/interval.js.map +1 -1
  416. package/pg-core/columns/json.cjs.map +1 -1
  417. package/pg-core/columns/json.d.cts +1 -0
  418. package/pg-core/columns/json.d.ts +1 -0
  419. package/pg-core/columns/json.js.map +1 -1
  420. package/pg-core/columns/jsonb.cjs.map +1 -1
  421. package/pg-core/columns/jsonb.d.cts +1 -0
  422. package/pg-core/columns/jsonb.d.ts +1 -0
  423. package/pg-core/columns/jsonb.js.map +1 -1
  424. package/pg-core/columns/line.cjs +0 -2
  425. package/pg-core/columns/line.cjs.map +1 -1
  426. package/pg-core/columns/line.d.cts +2 -2
  427. package/pg-core/columns/line.d.ts +2 -2
  428. package/pg-core/columns/line.js +0 -2
  429. package/pg-core/columns/line.js.map +1 -1
  430. package/pg-core/columns/macaddr.cjs.map +1 -1
  431. package/pg-core/columns/macaddr.d.cts +1 -0
  432. package/pg-core/columns/macaddr.d.ts +1 -0
  433. package/pg-core/columns/macaddr.js.map +1 -1
  434. package/pg-core/columns/macaddr8.cjs.map +1 -1
  435. package/pg-core/columns/macaddr8.d.cts +1 -0
  436. package/pg-core/columns/macaddr8.d.ts +1 -0
  437. package/pg-core/columns/macaddr8.js.map +1 -1
  438. package/pg-core/columns/numeric.cjs.map +1 -1
  439. package/pg-core/columns/numeric.d.cts +3 -0
  440. package/pg-core/columns/numeric.d.ts +3 -0
  441. package/pg-core/columns/numeric.js.map +1 -1
  442. package/pg-core/columns/point.cjs +0 -2
  443. package/pg-core/columns/point.cjs.map +1 -1
  444. package/pg-core/columns/point.d.cts +2 -2
  445. package/pg-core/columns/point.d.ts +2 -2
  446. package/pg-core/columns/point.js +0 -2
  447. package/pg-core/columns/point.js.map +1 -1
  448. package/pg-core/columns/postgis_extension/geometry.cjs +8 -14
  449. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  450. package/pg-core/columns/postgis_extension/geometry.d.cts +6 -16
  451. package/pg-core/columns/postgis_extension/geometry.d.ts +6 -16
  452. package/pg-core/columns/postgis_extension/geometry.js +8 -14
  453. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  454. package/pg-core/columns/postgis_extension/utils.cjs +3 -3
  455. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -1
  456. package/pg-core/columns/postgis_extension/utils.d.cts +1 -4
  457. package/pg-core/columns/postgis_extension/utils.d.ts +1 -4
  458. package/pg-core/columns/postgis_extension/utils.js +3 -3
  459. package/pg-core/columns/postgis_extension/utils.js.map +1 -1
  460. package/pg-core/columns/real.cjs.map +1 -1
  461. package/pg-core/columns/real.d.cts +1 -0
  462. package/pg-core/columns/real.d.ts +1 -0
  463. package/pg-core/columns/real.js.map +1 -1
  464. package/pg-core/columns/serial.cjs.map +1 -1
  465. package/pg-core/columns/serial.d.cts +1 -0
  466. package/pg-core/columns/serial.d.ts +1 -0
  467. package/pg-core/columns/serial.js.map +1 -1
  468. package/pg-core/columns/smallint.cjs.map +1 -1
  469. package/pg-core/columns/smallint.d.cts +1 -0
  470. package/pg-core/columns/smallint.d.ts +1 -0
  471. package/pg-core/columns/smallint.js.map +1 -1
  472. package/pg-core/columns/smallserial.cjs.map +1 -1
  473. package/pg-core/columns/smallserial.d.cts +1 -0
  474. package/pg-core/columns/smallserial.d.ts +1 -0
  475. package/pg-core/columns/smallserial.js.map +1 -1
  476. package/pg-core/columns/text.cjs.map +1 -1
  477. package/pg-core/columns/text.d.cts +1 -0
  478. package/pg-core/columns/text.d.ts +1 -0
  479. package/pg-core/columns/text.js.map +1 -1
  480. package/pg-core/columns/time.cjs.map +1 -1
  481. package/pg-core/columns/time.d.cts +1 -0
  482. package/pg-core/columns/time.d.ts +1 -0
  483. package/pg-core/columns/time.js.map +1 -1
  484. package/pg-core/columns/timestamp.cjs.map +1 -1
  485. package/pg-core/columns/timestamp.d.cts +2 -0
  486. package/pg-core/columns/timestamp.d.ts +2 -0
  487. package/pg-core/columns/timestamp.js.map +1 -1
  488. package/pg-core/columns/uuid.cjs.map +1 -1
  489. package/pg-core/columns/uuid.d.cts +1 -0
  490. package/pg-core/columns/uuid.d.ts +1 -0
  491. package/pg-core/columns/uuid.js.map +1 -1
  492. package/pg-core/columns/varchar.cjs.map +1 -1
  493. package/pg-core/columns/varchar.d.cts +1 -0
  494. package/pg-core/columns/varchar.d.ts +1 -0
  495. package/pg-core/columns/varchar.js.map +1 -1
  496. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  497. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  498. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  499. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  500. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  501. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  502. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  503. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  504. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  505. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  506. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  507. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  508. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  509. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  510. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  511. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  512. package/pg-core/foreign-keys.cjs +0 -4
  513. package/pg-core/foreign-keys.cjs.map +1 -1
  514. package/pg-core/foreign-keys.d.cts +0 -2
  515. package/pg-core/foreign-keys.d.ts +0 -2
  516. package/pg-core/foreign-keys.js +0 -4
  517. package/pg-core/foreign-keys.js.map +1 -1
  518. package/pg-core/primary-keys.cjs +0 -3
  519. package/pg-core/primary-keys.cjs.map +1 -1
  520. package/pg-core/primary-keys.d.cts +0 -1
  521. package/pg-core/primary-keys.d.ts +0 -1
  522. package/pg-core/primary-keys.js +0 -3
  523. package/pg-core/primary-keys.js.map +1 -1
  524. package/pg-core/query-builders/insert.cjs.map +1 -1
  525. package/pg-core/query-builders/insert.d.cts +9 -6
  526. package/pg-core/query-builders/insert.d.ts +9 -6
  527. package/pg-core/query-builders/insert.js.map +1 -1
  528. package/pg-core/query-builders/update.cjs.map +1 -1
  529. package/pg-core/query-builders/update.d.cts +1 -1
  530. package/pg-core/query-builders/update.d.ts +1 -1
  531. package/pg-core/query-builders/update.js.map +1 -1
  532. package/pg-core/unique-constraint.cjs +0 -5
  533. package/pg-core/unique-constraint.cjs.map +1 -1
  534. package/pg-core/unique-constraint.d.cts +0 -2
  535. package/pg-core/unique-constraint.d.ts +0 -2
  536. package/pg-core/unique-constraint.js +0 -5
  537. package/pg-core/unique-constraint.js.map +1 -1
  538. package/relations.cjs +9 -1
  539. package/relations.cjs.map +1 -1
  540. package/relations.js +9 -1
  541. package/relations.js.map +1 -1
  542. package/session.cjs.map +1 -1
  543. package/session.d.cts +1 -1
  544. package/session.d.ts +1 -1
  545. package/singlestore-core/columns/bigint.cjs.map +1 -1
  546. package/singlestore-core/columns/bigint.d.cts +2 -0
  547. package/singlestore-core/columns/bigint.d.ts +2 -0
  548. package/singlestore-core/columns/bigint.js.map +1 -1
  549. package/singlestore-core/columns/binary.cjs +1 -0
  550. package/singlestore-core/columns/binary.cjs.map +1 -1
  551. package/singlestore-core/columns/binary.d.cts +2 -0
  552. package/singlestore-core/columns/binary.d.ts +2 -0
  553. package/singlestore-core/columns/binary.js +1 -0
  554. package/singlestore-core/columns/binary.js.map +1 -1
  555. package/singlestore-core/columns/boolean.cjs.map +1 -1
  556. package/singlestore-core/columns/boolean.d.cts +1 -0
  557. package/singlestore-core/columns/boolean.d.ts +1 -0
  558. package/singlestore-core/columns/boolean.js.map +1 -1
  559. package/singlestore-core/columns/char.cjs +1 -0
  560. package/singlestore-core/columns/char.cjs.map +1 -1
  561. package/singlestore-core/columns/char.d.cts +2 -0
  562. package/singlestore-core/columns/char.d.ts +2 -0
  563. package/singlestore-core/columns/char.js +1 -0
  564. package/singlestore-core/columns/char.js.map +1 -1
  565. package/singlestore-core/columns/common.cjs.map +1 -1
  566. package/singlestore-core/columns/common.d.cts +1 -1
  567. package/singlestore-core/columns/common.d.ts +1 -1
  568. package/singlestore-core/columns/common.js.map +1 -1
  569. package/singlestore-core/columns/custom.cjs.map +1 -1
  570. package/singlestore-core/columns/custom.d.cts +1 -0
  571. package/singlestore-core/columns/custom.d.ts +1 -0
  572. package/singlestore-core/columns/custom.js.map +1 -1
  573. package/singlestore-core/columns/date.cjs.map +1 -1
  574. package/singlestore-core/columns/date.d.cts +2 -0
  575. package/singlestore-core/columns/date.d.ts +2 -0
  576. package/singlestore-core/columns/date.js.map +1 -1
  577. package/singlestore-core/columns/datetime.cjs.map +1 -1
  578. package/singlestore-core/columns/datetime.d.cts +2 -0
  579. package/singlestore-core/columns/datetime.d.ts +2 -0
  580. package/singlestore-core/columns/datetime.js.map +1 -1
  581. package/singlestore-core/columns/decimal.cjs.map +1 -1
  582. package/singlestore-core/columns/decimal.d.cts +3 -0
  583. package/singlestore-core/columns/decimal.d.ts +3 -0
  584. package/singlestore-core/columns/decimal.js.map +1 -1
  585. package/singlestore-core/columns/double.cjs.map +1 -1
  586. package/singlestore-core/columns/double.d.cts +1 -0
  587. package/singlestore-core/columns/double.d.ts +1 -0
  588. package/singlestore-core/columns/double.js.map +1 -1
  589. package/singlestore-core/columns/enum.cjs.map +1 -1
  590. package/singlestore-core/columns/enum.d.cts +1 -0
  591. package/singlestore-core/columns/enum.d.ts +1 -0
  592. package/singlestore-core/columns/enum.js.map +1 -1
  593. package/singlestore-core/columns/float.cjs.map +1 -1
  594. package/singlestore-core/columns/float.d.cts +1 -0
  595. package/singlestore-core/columns/float.d.ts +1 -0
  596. package/singlestore-core/columns/float.js.map +1 -1
  597. package/singlestore-core/columns/int.cjs.map +1 -1
  598. package/singlestore-core/columns/int.d.cts +1 -0
  599. package/singlestore-core/columns/int.d.ts +1 -0
  600. package/singlestore-core/columns/int.js.map +1 -1
  601. package/singlestore-core/columns/json.cjs.map +1 -1
  602. package/singlestore-core/columns/json.d.cts +1 -0
  603. package/singlestore-core/columns/json.d.ts +1 -0
  604. package/singlestore-core/columns/json.js.map +1 -1
  605. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  606. package/singlestore-core/columns/mediumint.d.cts +1 -0
  607. package/singlestore-core/columns/mediumint.d.ts +1 -0
  608. package/singlestore-core/columns/mediumint.js.map +1 -1
  609. package/singlestore-core/columns/real.cjs.map +1 -1
  610. package/singlestore-core/columns/real.d.cts +1 -0
  611. package/singlestore-core/columns/real.d.ts +1 -0
  612. package/singlestore-core/columns/real.js.map +1 -1
  613. package/singlestore-core/columns/serial.cjs.map +1 -1
  614. package/singlestore-core/columns/serial.d.cts +1 -0
  615. package/singlestore-core/columns/serial.d.ts +1 -0
  616. package/singlestore-core/columns/serial.js.map +1 -1
  617. package/singlestore-core/columns/smallint.cjs.map +1 -1
  618. package/singlestore-core/columns/smallint.d.cts +1 -0
  619. package/singlestore-core/columns/smallint.d.ts +1 -0
  620. package/singlestore-core/columns/smallint.js.map +1 -1
  621. package/singlestore-core/columns/text.cjs.map +1 -1
  622. package/singlestore-core/columns/text.d.cts +1 -0
  623. package/singlestore-core/columns/text.d.ts +1 -0
  624. package/singlestore-core/columns/text.js.map +1 -1
  625. package/singlestore-core/columns/time.cjs.map +1 -1
  626. package/singlestore-core/columns/time.d.cts +1 -0
  627. package/singlestore-core/columns/time.d.ts +1 -0
  628. package/singlestore-core/columns/time.js.map +1 -1
  629. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  630. package/singlestore-core/columns/timestamp.d.cts +2 -0
  631. package/singlestore-core/columns/timestamp.d.ts +2 -0
  632. package/singlestore-core/columns/timestamp.js.map +1 -1
  633. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  634. package/singlestore-core/columns/tinyint.d.cts +1 -0
  635. package/singlestore-core/columns/tinyint.d.ts +1 -0
  636. package/singlestore-core/columns/tinyint.js.map +1 -1
  637. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  638. package/singlestore-core/columns/varbinary.d.cts +1 -0
  639. package/singlestore-core/columns/varbinary.d.ts +1 -0
  640. package/singlestore-core/columns/varbinary.js.map +1 -1
  641. package/singlestore-core/columns/varchar.cjs.map +1 -1
  642. package/singlestore-core/columns/varchar.d.cts +1 -0
  643. package/singlestore-core/columns/varchar.d.ts +1 -0
  644. package/singlestore-core/columns/varchar.js.map +1 -1
  645. package/singlestore-core/columns/vector.cjs.map +1 -1
  646. package/singlestore-core/columns/vector.d.cts +2 -0
  647. package/singlestore-core/columns/vector.d.ts +2 -0
  648. package/singlestore-core/columns/vector.js.map +1 -1
  649. package/singlestore-core/columns/year.cjs.map +1 -1
  650. package/singlestore-core/columns/year.d.cts +1 -0
  651. package/singlestore-core/columns/year.d.ts +1 -0
  652. package/singlestore-core/columns/year.js.map +1 -1
  653. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  654. package/singlestore-core/query-builders/insert.d.cts +1 -1
  655. package/singlestore-core/query-builders/insert.d.ts +1 -1
  656. package/singlestore-core/query-builders/insert.js.map +1 -1
  657. package/singlestore-core/query-builders/update.cjs.map +1 -1
  658. package/singlestore-core/query-builders/update.d.cts +1 -1
  659. package/singlestore-core/query-builders/update.d.ts +1 -1
  660. package/singlestore-core/query-builders/update.js.map +1 -1
  661. package/sql/sql.cjs +3 -10
  662. package/sql/sql.cjs.map +1 -1
  663. package/sql/sql.d.cts +1 -1
  664. package/sql/sql.d.ts +1 -1
  665. package/sql/sql.js +3 -10
  666. package/sql/sql.js.map +1 -1
  667. package/sqlite-core/columns/blob.cjs +3 -3
  668. package/sqlite-core/columns/blob.cjs.map +1 -1
  669. package/sqlite-core/columns/blob.d.cts +3 -0
  670. package/sqlite-core/columns/blob.d.ts +3 -0
  671. package/sqlite-core/columns/blob.js +3 -3
  672. package/sqlite-core/columns/blob.js.map +1 -1
  673. package/sqlite-core/columns/custom.cjs.map +1 -1
  674. package/sqlite-core/columns/custom.d.cts +1 -0
  675. package/sqlite-core/columns/custom.d.ts +1 -0
  676. package/sqlite-core/columns/custom.js.map +1 -1
  677. package/sqlite-core/columns/integer.cjs.map +1 -1
  678. package/sqlite-core/columns/integer.d.cts +3 -0
  679. package/sqlite-core/columns/integer.d.ts +3 -0
  680. package/sqlite-core/columns/integer.js.map +1 -1
  681. package/sqlite-core/columns/numeric.cjs.map +1 -1
  682. package/sqlite-core/columns/numeric.d.cts +3 -0
  683. package/sqlite-core/columns/numeric.d.ts +3 -0
  684. package/sqlite-core/columns/numeric.js.map +1 -1
  685. package/sqlite-core/columns/real.cjs.map +1 -1
  686. package/sqlite-core/columns/real.d.cts +1 -0
  687. package/sqlite-core/columns/real.d.ts +1 -0
  688. package/sqlite-core/columns/real.js.map +1 -1
  689. package/sqlite-core/columns/text.cjs.map +1 -1
  690. package/sqlite-core/columns/text.d.cts +2 -0
  691. package/sqlite-core/columns/text.d.ts +2 -0
  692. package/sqlite-core/columns/text.js.map +1 -1
  693. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  694. package/sqlite-core/query-builders/insert.d.cts +2 -2
  695. package/sqlite-core/query-builders/insert.d.ts +2 -2
  696. package/sqlite-core/query-builders/insert.js.map +1 -1
  697. package/sqlite-core/query-builders/update.cjs.map +1 -1
  698. package/sqlite-core/query-builders/update.d.cts +1 -1
  699. package/sqlite-core/query-builders/update.d.ts +1 -1
  700. package/sqlite-core/query-builders/update.js.map +1 -1
  701. package/version.cjs +1 -1
  702. package/version.d.cts +1 -1
  703. package/version.d.ts +1 -1
  704. package/version.js +1 -1
  705. package/cockroach/driver.cjs.map +0 -1
  706. package/cockroach/driver.d.cts +0 -42
  707. package/cockroach/driver.d.ts +0 -42
  708. package/cockroach/driver.js +0 -77
  709. package/cockroach/driver.js.map +0 -1
  710. package/cockroach/index.cjs.map +0 -1
  711. package/cockroach/index.js.map +0 -1
  712. package/cockroach/migrator.cjs.map +0 -1
  713. package/cockroach/migrator.d.cts +0 -3
  714. package/cockroach/migrator.d.ts +0 -3
  715. package/cockroach/migrator.js.map +0 -1
  716. package/cockroach/session.cjs +0 -253
  717. package/cockroach/session.cjs.map +0 -1
  718. package/cockroach/session.d.cts +0 -48
  719. package/cockroach/session.d.ts +0 -48
  720. package/cockroach/session.js +0 -217
  721. package/cockroach/session.js.map +0 -1
  722. package/cockroach-core/alias.cjs +0 -32
  723. package/cockroach-core/alias.cjs.map +0 -1
  724. package/cockroach-core/alias.d.cts +0 -4
  725. package/cockroach-core/alias.d.ts +0 -4
  726. package/cockroach-core/alias.js +0 -8
  727. package/cockroach-core/alias.js.map +0 -1
  728. package/cockroach-core/checks.cjs +0 -58
  729. package/cockroach-core/checks.cjs.map +0 -1
  730. package/cockroach-core/checks.d.cts +0 -18
  731. package/cockroach-core/checks.d.ts +0 -18
  732. package/cockroach-core/checks.js +0 -32
  733. package/cockroach-core/checks.js.map +0 -1
  734. package/cockroach-core/columns/all.cjs +0 -81
  735. package/cockroach-core/columns/all.cjs.map +0 -1
  736. package/cockroach-core/columns/all.d.cts +0 -52
  737. package/cockroach-core/columns/all.d.ts +0 -52
  738. package/cockroach-core/columns/all.js +0 -57
  739. package/cockroach-core/columns/all.js.map +0 -1
  740. package/cockroach-core/columns/bigint.cjs +0 -104
  741. package/cockroach-core/columns/bigint.cjs.map +0 -1
  742. package/cockroach-core/columns/bigint.d.cts +0 -37
  743. package/cockroach-core/columns/bigint.d.ts +0 -37
  744. package/cockroach-core/columns/bigint.js +0 -75
  745. package/cockroach-core/columns/bigint.js.map +0 -1
  746. package/cockroach-core/columns/bit.cjs +0 -61
  747. package/cockroach-core/columns/bit.cjs.map +0 -1
  748. package/cockroach-core/columns/bit.d.cts +0 -29
  749. package/cockroach-core/columns/bit.d.ts +0 -29
  750. package/cockroach-core/columns/bit.js +0 -35
  751. package/cockroach-core/columns/bit.js.map +0 -1
  752. package/cockroach-core/columns/bool.cjs +0 -59
  753. package/cockroach-core/columns/bool.cjs.map +0 -1
  754. package/cockroach-core/columns/bool.d.cts +0 -17
  755. package/cockroach-core/columns/bool.d.ts +0 -17
  756. package/cockroach-core/columns/bool.js +0 -32
  757. package/cockroach-core/columns/bool.js.map +0 -1
  758. package/cockroach-core/columns/char.cjs +0 -62
  759. package/cockroach-core/columns/char.cjs.map +0 -1
  760. package/cockroach-core/columns/char.d.cts +0 -31
  761. package/cockroach-core/columns/char.d.ts +0 -31
  762. package/cockroach-core/columns/char.js +0 -36
  763. package/cockroach-core/columns/char.js.map +0 -1
  764. package/cockroach-core/columns/common.cjs +0 -199
  765. package/cockroach-core/columns/common.cjs.map +0 -1
  766. package/cockroach-core/columns/common.d.cts +0 -98
  767. package/cockroach-core/columns/common.d.ts +0 -98
  768. package/cockroach-core/columns/common.js +0 -169
  769. package/cockroach-core/columns/common.js.map +0 -1
  770. package/cockroach-core/columns/custom.cjs +0 -102
  771. package/cockroach-core/columns/custom.cjs.map +0 -1
  772. package/cockroach-core/columns/custom.d.cts +0 -261
  773. package/cockroach-core/columns/custom.d.ts +0 -261
  774. package/cockroach-core/columns/custom.js +0 -76
  775. package/cockroach-core/columns/custom.js.map +0 -1
  776. package/cockroach-core/columns/date.cjs +0 -91
  777. package/cockroach-core/columns/date.cjs.map +0 -1
  778. package/cockroach-core/columns/date.common.cjs +0 -37
  779. package/cockroach-core/columns/date.common.cjs.map +0 -1
  780. package/cockroach-core/columns/date.common.d.cts +0 -7
  781. package/cockroach-core/columns/date.common.d.ts +0 -7
  782. package/cockroach-core/columns/date.common.js +0 -13
  783. package/cockroach-core/columns/date.common.js.map +0 -1
  784. package/cockroach-core/columns/date.d.cts +0 -36
  785. package/cockroach-core/columns/date.d.ts +0 -36
  786. package/cockroach-core/columns/date.js +0 -63
  787. package/cockroach-core/columns/date.js.map +0 -1
  788. package/cockroach-core/columns/decimal.cjs +0 -164
  789. package/cockroach-core/columns/decimal.cjs.map +0 -1
  790. package/cockroach-core/columns/decimal.d.cts +0 -80
  791. package/cockroach-core/columns/decimal.d.ts +0 -80
  792. package/cockroach-core/columns/decimal.js +0 -133
  793. package/cockroach-core/columns/decimal.js.map +0 -1
  794. package/cockroach-core/columns/enum.cjs +0 -127
  795. package/cockroach-core/columns/enum.cjs.map +0 -1
  796. package/cockroach-core/columns/enum.d.cts +0 -64
  797. package/cockroach-core/columns/enum.d.ts +0 -64
  798. package/cockroach-core/columns/enum.js +0 -96
  799. package/cockroach-core/columns/enum.js.map +0 -1
  800. package/cockroach-core/columns/float.cjs +0 -65
  801. package/cockroach-core/columns/float.cjs.map +0 -1
  802. package/cockroach-core/columns/float.d.cts +0 -18
  803. package/cockroach-core/columns/float.d.ts +0 -18
  804. package/cockroach-core/columns/float.js +0 -38
  805. package/cockroach-core/columns/float.js.map +0 -1
  806. package/cockroach-core/columns/geometry.cjs +0 -105
  807. package/cockroach-core/columns/geometry.cjs.map +0 -1
  808. package/cockroach-core/columns/geometry.d.cts +0 -60
  809. package/cockroach-core/columns/geometry.d.ts +0 -60
  810. package/cockroach-core/columns/geometry.js +0 -77
  811. package/cockroach-core/columns/geometry.js.map +0 -1
  812. package/cockroach-core/columns/index.cjs +0 -71
  813. package/cockroach-core/columns/index.cjs.map +0 -1
  814. package/cockroach-core/columns/index.d.cts +0 -25
  815. package/cockroach-core/columns/index.d.ts +0 -25
  816. package/cockroach-core/columns/index.js +0 -26
  817. package/cockroach-core/columns/index.js.map +0 -1
  818. package/cockroach-core/columns/inet.cjs +0 -56
  819. package/cockroach-core/columns/inet.cjs.map +0 -1
  820. package/cockroach-core/columns/inet.d.cts +0 -16
  821. package/cockroach-core/columns/inet.d.ts +0 -16
  822. package/cockroach-core/columns/inet.js +0 -30
  823. package/cockroach-core/columns/inet.js.map +0 -1
  824. package/cockroach-core/columns/int.common.cjs +0 -55
  825. package/cockroach-core/columns/int.common.cjs.map +0 -1
  826. package/cockroach-core/columns/int.common.d.cts +0 -11
  827. package/cockroach-core/columns/int.common.d.ts +0 -11
  828. package/cockroach-core/columns/int.common.js +0 -31
  829. package/cockroach-core/columns/int.common.js.map +0 -1
  830. package/cockroach-core/columns/integer.cjs +0 -63
  831. package/cockroach-core/columns/integer.cjs.map +0 -1
  832. package/cockroach-core/columns/integer.d.cts +0 -18
  833. package/cockroach-core/columns/integer.d.ts +0 -18
  834. package/cockroach-core/columns/integer.js +0 -37
  835. package/cockroach-core/columns/integer.js.map +0 -1
  836. package/cockroach-core/columns/interval.cjs +0 -63
  837. package/cockroach-core/columns/interval.cjs.map +0 -1
  838. package/cockroach-core/columns/interval.d.cts +0 -28
  839. package/cockroach-core/columns/interval.d.ts +0 -28
  840. package/cockroach-core/columns/interval.js +0 -37
  841. package/cockroach-core/columns/interval.js.map +0 -1
  842. package/cockroach-core/columns/jsonb.cjs +0 -72
  843. package/cockroach-core/columns/jsonb.cjs.map +0 -1
  844. package/cockroach-core/columns/jsonb.d.cts +0 -20
  845. package/cockroach-core/columns/jsonb.d.ts +0 -20
  846. package/cockroach-core/columns/jsonb.js +0 -46
  847. package/cockroach-core/columns/jsonb.js.map +0 -1
  848. package/cockroach-core/columns/real.cjs +0 -66
  849. package/cockroach-core/columns/real.cjs.map +0 -1
  850. package/cockroach-core/columns/real.d.cts +0 -21
  851. package/cockroach-core/columns/real.d.ts +0 -21
  852. package/cockroach-core/columns/real.js +0 -40
  853. package/cockroach-core/columns/real.js.map +0 -1
  854. package/cockroach-core/columns/smallint.cjs +0 -68
  855. package/cockroach-core/columns/smallint.cjs.map +0 -1
  856. package/cockroach-core/columns/smallint.d.cts +0 -19
  857. package/cockroach-core/columns/smallint.d.ts +0 -19
  858. package/cockroach-core/columns/smallint.js +0 -41
  859. package/cockroach-core/columns/smallint.js.map +0 -1
  860. package/cockroach-core/columns/string.cjs +0 -67
  861. package/cockroach-core/columns/string.cjs.map +0 -1
  862. package/cockroach-core/columns/string.d.cts +0 -36
  863. package/cockroach-core/columns/string.d.ts +0 -36
  864. package/cockroach-core/columns/string.js +0 -40
  865. package/cockroach-core/columns/string.js.map +0 -1
  866. package/cockroach-core/columns/time.cjs +0 -70
  867. package/cockroach-core/columns/time.cjs.map +0 -1
  868. package/cockroach-core/columns/time.d.cts +0 -31
  869. package/cockroach-core/columns/time.d.ts +0 -31
  870. package/cockroach-core/columns/time.js +0 -44
  871. package/cockroach-core/columns/time.js.map +0 -1
  872. package/cockroach-core/columns/timestamp.cjs +0 -111
  873. package/cockroach-core/columns/timestamp.cjs.map +0 -1
  874. package/cockroach-core/columns/timestamp.d.cts +0 -52
  875. package/cockroach-core/columns/timestamp.d.ts +0 -52
  876. package/cockroach-core/columns/timestamp.js +0 -83
  877. package/cockroach-core/columns/timestamp.js.map +0 -1
  878. package/cockroach-core/columns/utils.cjs +0 -65
  879. package/cockroach-core/columns/utils.cjs.map +0 -1
  880. package/cockroach-core/columns/utils.d.cts +0 -4
  881. package/cockroach-core/columns/utils.d.ts +0 -4
  882. package/cockroach-core/columns/utils.js +0 -41
  883. package/cockroach-core/columns/utils.js.map +0 -1
  884. package/cockroach-core/columns/uuid.cjs +0 -63
  885. package/cockroach-core/columns/uuid.cjs.map +0 -1
  886. package/cockroach-core/columns/uuid.d.cts +0 -20
  887. package/cockroach-core/columns/uuid.d.ts +0 -20
  888. package/cockroach-core/columns/uuid.js +0 -37
  889. package/cockroach-core/columns/uuid.js.map +0 -1
  890. package/cockroach-core/columns/varbit.cjs +0 -59
  891. package/cockroach-core/columns/varbit.cjs.map +0 -1
  892. package/cockroach-core/columns/varbit.d.cts +0 -24
  893. package/cockroach-core/columns/varbit.d.ts +0 -24
  894. package/cockroach-core/columns/varbit.js +0 -33
  895. package/cockroach-core/columns/varbit.js.map +0 -1
  896. package/cockroach-core/columns/varchar.cjs +0 -61
  897. package/cockroach-core/columns/varchar.cjs.map +0 -1
  898. package/cockroach-core/columns/varchar.d.cts +0 -30
  899. package/cockroach-core/columns/varchar.d.ts +0 -30
  900. package/cockroach-core/columns/varchar.js +0 -35
  901. package/cockroach-core/columns/varchar.js.map +0 -1
  902. package/cockroach-core/columns/vector.cjs +0 -65
  903. package/cockroach-core/columns/vector.cjs.map +0 -1
  904. package/cockroach-core/columns/vector.d.cts +0 -26
  905. package/cockroach-core/columns/vector.d.ts +0 -26
  906. package/cockroach-core/columns/vector.js +0 -39
  907. package/cockroach-core/columns/vector.js.map +0 -1
  908. package/cockroach-core/db.cjs +0 -346
  909. package/cockroach-core/db.cjs.map +0 -1
  910. package/cockroach-core/db.d.cts +0 -282
  911. package/cockroach-core/db.d.ts +0 -282
  912. package/cockroach-core/db.js +0 -327
  913. package/cockroach-core/db.js.map +0 -1
  914. package/cockroach-core/dialect.cjs +0 -1146
  915. package/cockroach-core/dialect.cjs.map +0 -1
  916. package/cockroach-core/dialect.d.cts +0 -65
  917. package/cockroach-core/dialect.d.ts +0 -65
  918. package/cockroach-core/dialect.js +0 -1126
  919. package/cockroach-core/dialect.js.map +0 -1
  920. package/cockroach-core/expressions.cjs +0 -49
  921. package/cockroach-core/expressions.cjs.map +0 -1
  922. package/cockroach-core/expressions.d.cts +0 -8
  923. package/cockroach-core/expressions.d.ts +0 -8
  924. package/cockroach-core/expressions.js +0 -22
  925. package/cockroach-core/expressions.js.map +0 -1
  926. package/cockroach-core/foreign-keys.cjs +0 -92
  927. package/cockroach-core/foreign-keys.cjs.map +0 -1
  928. package/cockroach-core/foreign-keys.d.cts +0 -52
  929. package/cockroach-core/foreign-keys.d.ts +0 -52
  930. package/cockroach-core/foreign-keys.js +0 -66
  931. package/cockroach-core/foreign-keys.js.map +0 -1
  932. package/cockroach-core/index.cjs +0 -61
  933. package/cockroach-core/index.cjs.map +0 -1
  934. package/cockroach-core/index.d.cts +0 -20
  935. package/cockroach-core/index.d.ts +0 -20
  936. package/cockroach-core/index.js +0 -21
  937. package/cockroach-core/index.js.map +0 -1
  938. package/cockroach-core/indexes.cjs +0 -137
  939. package/cockroach-core/indexes.cjs.map +0 -1
  940. package/cockroach-core/indexes.d.cts +0 -64
  941. package/cockroach-core/indexes.d.ts +0 -64
  942. package/cockroach-core/indexes.js +0 -109
  943. package/cockroach-core/indexes.js.map +0 -1
  944. package/cockroach-core/policies.cjs +0 -58
  945. package/cockroach-core/policies.cjs.map +0 -1
  946. package/cockroach-core/policies.d.cts +0 -24
  947. package/cockroach-core/policies.d.ts +0 -24
  948. package/cockroach-core/policies.js +0 -33
  949. package/cockroach-core/policies.js.map +0 -1
  950. package/cockroach-core/primary-keys.cjs +0 -64
  951. package/cockroach-core/primary-keys.cjs.map +0 -1
  952. package/cockroach-core/primary-keys.d.cts +0 -23
  953. package/cockroach-core/primary-keys.d.ts +0 -23
  954. package/cockroach-core/primary-keys.js +0 -38
  955. package/cockroach-core/primary-keys.js.map +0 -1
  956. package/cockroach-core/query-builders/count.cjs +0 -79
  957. package/cockroach-core/query-builders/count.cjs.map +0 -1
  958. package/cockroach-core/query-builders/count.d.cts +0 -29
  959. package/cockroach-core/query-builders/count.d.ts +0 -29
  960. package/cockroach-core/query-builders/count.js +0 -55
  961. package/cockroach-core/query-builders/count.js.map +0 -1
  962. package/cockroach-core/query-builders/delete.cjs +0 -124
  963. package/cockroach-core/query-builders/delete.cjs.map +0 -1
  964. package/cockroach-core/query-builders/delete.d.cts +0 -103
  965. package/cockroach-core/query-builders/delete.d.ts +0 -103
  966. package/cockroach-core/query-builders/delete.js +0 -100
  967. package/cockroach-core/query-builders/delete.js.map +0 -1
  968. package/cockroach-core/query-builders/index.cjs +0 -35
  969. package/cockroach-core/query-builders/index.cjs.map +0 -1
  970. package/cockroach-core/query-builders/index.d.cts +0 -7
  971. package/cockroach-core/query-builders/index.d.ts +0 -7
  972. package/cockroach-core/query-builders/index.js +0 -8
  973. package/cockroach-core/query-builders/index.js.map +0 -1
  974. package/cockroach-core/query-builders/insert.cjs +0 -213
  975. package/cockroach-core/query-builders/insert.cjs.map +0 -1
  976. package/cockroach-core/query-builders/insert.d.cts +0 -168
  977. package/cockroach-core/query-builders/insert.d.ts +0 -168
  978. package/cockroach-core/query-builders/insert.js +0 -188
  979. package/cockroach-core/query-builders/insert.js.map +0 -1
  980. package/cockroach-core/query-builders/query-builder.cjs +0 -118
  981. package/cockroach-core/query-builders/query-builder.cjs.map +0 -1
  982. package/cockroach-core/query-builders/query-builder.d.cts +0 -37
  983. package/cockroach-core/query-builders/query-builder.d.ts +0 -37
  984. package/cockroach-core/query-builders/query-builder.js +0 -94
  985. package/cockroach-core/query-builders/query-builder.js.map +0 -1
  986. package/cockroach-core/query-builders/query.cjs +0 -145
  987. package/cockroach-core/query-builders/query.cjs.map +0 -1
  988. package/cockroach-core/query-builders/query.d.cts +0 -47
  989. package/cockroach-core/query-builders/query.d.ts +0 -47
  990. package/cockroach-core/query-builders/query.js +0 -122
  991. package/cockroach-core/query-builders/query.js.map +0 -1
  992. package/cockroach-core/query-builders/raw.cjs +0 -57
  993. package/cockroach-core/query-builders/raw.cjs.map +0 -1
  994. package/cockroach-core/query-builders/raw.d.cts +0 -22
  995. package/cockroach-core/query-builders/raw.d.ts +0 -22
  996. package/cockroach-core/query-builders/raw.js +0 -33
  997. package/cockroach-core/query-builders/raw.js.map +0 -1
  998. package/cockroach-core/query-builders/refresh-materialized-view.cjs +0 -83
  999. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +0 -1
  1000. package/cockroach-core/query-builders/refresh-materialized-view.d.cts +0 -28
  1001. package/cockroach-core/query-builders/refresh-materialized-view.d.ts +0 -28
  1002. package/cockroach-core/query-builders/refresh-materialized-view.js +0 -59
  1003. package/cockroach-core/query-builders/refresh-materialized-view.js.map +0 -1
  1004. package/cockroach-core/query-builders/select.cjs +0 -848
  1005. package/cockroach-core/query-builders/select.cjs.map +0 -1
  1006. package/cockroach-core/query-builders/select.d.cts +0 -787
  1007. package/cockroach-core/query-builders/select.d.ts +0 -787
  1008. package/cockroach-core/query-builders/select.js +0 -821
  1009. package/cockroach-core/query-builders/select.js.map +0 -1
  1010. package/cockroach-core/query-builders/select.types.cjs +0 -17
  1011. package/cockroach-core/query-builders/select.types.cjs.map +0 -1
  1012. package/cockroach-core/query-builders/select.types.d.cts +0 -140
  1013. package/cockroach-core/query-builders/select.types.d.ts +0 -140
  1014. package/cockroach-core/query-builders/select.types.js +0 -1
  1015. package/cockroach-core/query-builders/select.types.js.map +0 -1
  1016. package/cockroach-core/query-builders/update.cjs +0 -240
  1017. package/cockroach-core/query-builders/update.cjs.map +0 -1
  1018. package/cockroach-core/query-builders/update.d.cts +0 -170
  1019. package/cockroach-core/query-builders/update.d.ts +0 -170
  1020. package/cockroach-core/query-builders/update.js +0 -219
  1021. package/cockroach-core/query-builders/update.js.map +0 -1
  1022. package/cockroach-core/roles.cjs +0 -54
  1023. package/cockroach-core/roles.cjs.map +0 -1
  1024. package/cockroach-core/roles.d.cts +0 -12
  1025. package/cockroach-core/roles.d.ts +0 -12
  1026. package/cockroach-core/roles.js +0 -29
  1027. package/cockroach-core/roles.js.map +0 -1
  1028. package/cockroach-core/schema.cjs +0 -80
  1029. package/cockroach-core/schema.cjs.map +0 -1
  1030. package/cockroach-core/schema.d.cts +0 -22
  1031. package/cockroach-core/schema.d.ts +0 -22
  1032. package/cockroach-core/schema.js +0 -60
  1033. package/cockroach-core/schema.js.map +0 -1
  1034. package/cockroach-core/sequence.cjs +0 -52
  1035. package/cockroach-core/sequence.cjs.map +0 -1
  1036. package/cockroach-core/sequence.d.cts +0 -17
  1037. package/cockroach-core/sequence.d.ts +0 -17
  1038. package/cockroach-core/sequence.js +0 -25
  1039. package/cockroach-core/sequence.js.map +0 -1
  1040. package/cockroach-core/session.cjs +0 -120
  1041. package/cockroach-core/session.cjs.map +0 -1
  1042. package/cockroach-core/session.d.cts +0 -62
  1043. package/cockroach-core/session.d.ts +0 -62
  1044. package/cockroach-core/session.js +0 -94
  1045. package/cockroach-core/session.js.map +0 -1
  1046. package/cockroach-core/subquery.cjs +0 -17
  1047. package/cockroach-core/subquery.cjs.map +0 -1
  1048. package/cockroach-core/subquery.d.cts +0 -18
  1049. package/cockroach-core/subquery.d.ts +0 -18
  1050. package/cockroach-core/subquery.js +0 -1
  1051. package/cockroach-core/subquery.js.map +0 -1
  1052. package/cockroach-core/table.cjs +0 -100
  1053. package/cockroach-core/table.cjs.map +0 -1
  1054. package/cockroach-core/table.d.cts +0 -37
  1055. package/cockroach-core/table.d.ts +0 -37
  1056. package/cockroach-core/table.js +0 -73
  1057. package/cockroach-core/table.js.map +0 -1
  1058. package/cockroach-core/unique-constraint.cjs +0 -77
  1059. package/cockroach-core/unique-constraint.cjs.map +0 -1
  1060. package/cockroach-core/unique-constraint.d.cts +0 -23
  1061. package/cockroach-core/unique-constraint.d.ts +0 -23
  1062. package/cockroach-core/unique-constraint.js +0 -50
  1063. package/cockroach-core/unique-constraint.js.map +0 -1
  1064. package/cockroach-core/utils/array.cjs +0 -106
  1065. package/cockroach-core/utils/array.cjs.map +0 -1
  1066. package/cockroach-core/utils/array.d.cts +0 -3
  1067. package/cockroach-core/utils/array.d.ts +0 -3
  1068. package/cockroach-core/utils/array.js +0 -80
  1069. package/cockroach-core/utils/array.js.map +0 -1
  1070. package/cockroach-core/utils/index.cjs.map +0 -1
  1071. package/cockroach-core/utils/index.d.cts +0 -1
  1072. package/cockroach-core/utils/index.d.ts +0 -1
  1073. package/cockroach-core/utils/index.js +0 -2
  1074. package/cockroach-core/utils/index.js.map +0 -1
  1075. package/cockroach-core/utils.cjs +0 -98
  1076. package/cockroach-core/utils.cjs.map +0 -1
  1077. package/cockroach-core/utils.d.cts +0 -47
  1078. package/cockroach-core/utils.d.ts +0 -47
  1079. package/cockroach-core/utils.js +0 -72
  1080. package/cockroach-core/utils.js.map +0 -1
  1081. package/cockroach-core/view-base.cjs +0 -33
  1082. package/cockroach-core/view-base.cjs.map +0 -1
  1083. package/cockroach-core/view-base.d.cts +0 -8
  1084. package/cockroach-core/view-base.d.ts +0 -8
  1085. package/cockroach-core/view-base.js +0 -9
  1086. package/cockroach-core/view-base.js.map +0 -1
  1087. package/cockroach-core/view.cjs +0 -271
  1088. package/cockroach-core/view.cjs.map +0 -1
  1089. package/cockroach-core/view.d.cts +0 -106
  1090. package/cockroach-core/view.d.ts +0 -106
  1091. package/cockroach-core/view.js +0 -233
  1092. package/cockroach-core/view.js.map +0 -1
  1093. package/mssql-core/alias.cjs.map +0 -1
  1094. package/mssql-core/alias.d.cts +0 -4
  1095. package/mssql-core/alias.d.ts +0 -4
  1096. package/mssql-core/alias.js +0 -8
  1097. package/mssql-core/alias.js.map +0 -1
  1098. package/mssql-core/checks.cjs +0 -58
  1099. package/mssql-core/checks.cjs.map +0 -1
  1100. package/mssql-core/checks.d.cts +0 -18
  1101. package/mssql-core/checks.d.ts +0 -18
  1102. package/mssql-core/checks.js +0 -32
  1103. package/mssql-core/checks.js.map +0 -1
  1104. package/mssql-core/columns/all.cjs +0 -74
  1105. package/mssql-core/columns/all.cjs.map +0 -1
  1106. package/mssql-core/columns/all.d.cts +0 -45
  1107. package/mssql-core/columns/all.d.ts +0 -45
  1108. package/mssql-core/columns/all.js +0 -50
  1109. package/mssql-core/columns/all.js.map +0 -1
  1110. package/mssql-core/columns/bigint.cjs +0 -72
  1111. package/mssql-core/columns/bigint.cjs.map +0 -1
  1112. package/mssql-core/columns/bigint.d.cts +0 -25
  1113. package/mssql-core/columns/bigint.d.ts +0 -25
  1114. package/mssql-core/columns/bigint.js +0 -46
  1115. package/mssql-core/columns/bigint.js.map +0 -1
  1116. package/mssql-core/columns/binary.cjs +0 -57
  1117. package/mssql-core/columns/binary.cjs.map +0 -1
  1118. package/mssql-core/columns/binary.d.cts +0 -24
  1119. package/mssql-core/columns/binary.d.ts +0 -24
  1120. package/mssql-core/columns/binary.js +0 -31
  1121. package/mssql-core/columns/binary.js.map +0 -1
  1122. package/mssql-core/columns/bit.cjs +0 -54
  1123. package/mssql-core/columns/bit.cjs.map +0 -1
  1124. package/mssql-core/columns/bit.d.cts +0 -17
  1125. package/mssql-core/columns/bit.d.ts +0 -17
  1126. package/mssql-core/columns/bit.js +0 -28
  1127. package/mssql-core/columns/bit.js.map +0 -1
  1128. package/mssql-core/columns/char.cjs +0 -73
  1129. package/mssql-core/columns/char.cjs.map +0 -1
  1130. package/mssql-core/columns/char.d.cts +0 -29
  1131. package/mssql-core/columns/char.d.ts +0 -29
  1132. package/mssql-core/columns/char.js +0 -46
  1133. package/mssql-core/columns/char.js.map +0 -1
  1134. package/mssql-core/columns/common.cjs +0 -112
  1135. package/mssql-core/columns/common.cjs.map +0 -1
  1136. package/mssql-core/columns/common.d.cts +0 -57
  1137. package/mssql-core/columns/common.d.ts +0 -57
  1138. package/mssql-core/columns/common.js +0 -85
  1139. package/mssql-core/columns/common.js.map +0 -1
  1140. package/mssql-core/columns/custom.cjs +0 -105
  1141. package/mssql-core/columns/custom.cjs.map +0 -1
  1142. package/mssql-core/columns/custom.d.cts +0 -261
  1143. package/mssql-core/columns/custom.d.ts +0 -261
  1144. package/mssql-core/columns/custom.js +0 -79
  1145. package/mssql-core/columns/custom.js.map +0 -1
  1146. package/mssql-core/columns/date.cjs +0 -94
  1147. package/mssql-core/columns/date.cjs.map +0 -1
  1148. package/mssql-core/columns/date.common.cjs +0 -37
  1149. package/mssql-core/columns/date.common.cjs.map +0 -1
  1150. package/mssql-core/columns/date.common.d.cts +0 -12
  1151. package/mssql-core/columns/date.common.d.ts +0 -12
  1152. package/mssql-core/columns/date.common.js +0 -13
  1153. package/mssql-core/columns/date.common.js.map +0 -1
  1154. package/mssql-core/columns/date.d.cts +0 -39
  1155. package/mssql-core/columns/date.d.ts +0 -39
  1156. package/mssql-core/columns/date.js +0 -66
  1157. package/mssql-core/columns/date.js.map +0 -1
  1158. package/mssql-core/columns/datetime.cjs +0 -94
  1159. package/mssql-core/columns/datetime.cjs.map +0 -1
  1160. package/mssql-core/columns/datetime.d.cts +0 -38
  1161. package/mssql-core/columns/datetime.d.ts +0 -38
  1162. package/mssql-core/columns/datetime.js +0 -66
  1163. package/mssql-core/columns/datetime.js.map +0 -1
  1164. package/mssql-core/columns/datetime2.cjs +0 -102
  1165. package/mssql-core/columns/datetime2.cjs.map +0 -1
  1166. package/mssql-core/columns/datetime2.d.cts +0 -38
  1167. package/mssql-core/columns/datetime2.d.ts +0 -38
  1168. package/mssql-core/columns/datetime2.js +0 -74
  1169. package/mssql-core/columns/datetime2.js.map +0 -1
  1170. package/mssql-core/columns/datetimeoffset.cjs +0 -102
  1171. package/mssql-core/columns/datetimeoffset.cjs.map +0 -1
  1172. package/mssql-core/columns/datetimeoffset.d.cts +0 -39
  1173. package/mssql-core/columns/datetimeoffset.d.ts +0 -39
  1174. package/mssql-core/columns/datetimeoffset.js +0 -74
  1175. package/mssql-core/columns/datetimeoffset.js.map +0 -1
  1176. package/mssql-core/columns/decimal.cjs +0 -146
  1177. package/mssql-core/columns/decimal.cjs.map +0 -1
  1178. package/mssql-core/columns/decimal.d.cts +0 -58
  1179. package/mssql-core/columns/decimal.d.ts +0 -58
  1180. package/mssql-core/columns/decimal.js +0 -116
  1181. package/mssql-core/columns/decimal.js.map +0 -1
  1182. package/mssql-core/columns/float.cjs +0 -58
  1183. package/mssql-core/columns/float.cjs.map +0 -1
  1184. package/mssql-core/columns/float.d.cts +0 -21
  1185. package/mssql-core/columns/float.d.ts +0 -21
  1186. package/mssql-core/columns/float.js +0 -32
  1187. package/mssql-core/columns/float.js.map +0 -1
  1188. package/mssql-core/columns/index.cjs +0 -63
  1189. package/mssql-core/columns/index.cjs.map +0 -1
  1190. package/mssql-core/columns/index.d.cts +0 -21
  1191. package/mssql-core/columns/index.d.ts +0 -21
  1192. package/mssql-core/columns/index.js +0 -22
  1193. package/mssql-core/columns/index.js.map +0 -1
  1194. package/mssql-core/columns/int.cjs +0 -53
  1195. package/mssql-core/columns/int.cjs.map +0 -1
  1196. package/mssql-core/columns/int.d.cts +0 -16
  1197. package/mssql-core/columns/int.d.ts +0 -16
  1198. package/mssql-core/columns/int.js +0 -27
  1199. package/mssql-core/columns/int.js.map +0 -1
  1200. package/mssql-core/columns/numeric.cjs +0 -146
  1201. package/mssql-core/columns/numeric.cjs.map +0 -1
  1202. package/mssql-core/columns/numeric.d.cts +0 -58
  1203. package/mssql-core/columns/numeric.d.ts +0 -58
  1204. package/mssql-core/columns/numeric.js +0 -116
  1205. package/mssql-core/columns/numeric.js.map +0 -1
  1206. package/mssql-core/columns/real.cjs +0 -53
  1207. package/mssql-core/columns/real.cjs.map +0 -1
  1208. package/mssql-core/columns/real.d.cts +0 -16
  1209. package/mssql-core/columns/real.d.ts +0 -16
  1210. package/mssql-core/columns/real.js +0 -27
  1211. package/mssql-core/columns/real.js.map +0 -1
  1212. package/mssql-core/columns/smallint.cjs +0 -62
  1213. package/mssql-core/columns/smallint.cjs.map +0 -1
  1214. package/mssql-core/columns/smallint.d.cts +0 -17
  1215. package/mssql-core/columns/smallint.d.ts +0 -17
  1216. package/mssql-core/columns/smallint.js +0 -36
  1217. package/mssql-core/columns/smallint.js.map +0 -1
  1218. package/mssql-core/columns/text.cjs +0 -68
  1219. package/mssql-core/columns/text.cjs.map +0 -1
  1220. package/mssql-core/columns/text.d.cts +0 -36
  1221. package/mssql-core/columns/text.d.ts +0 -36
  1222. package/mssql-core/columns/text.js +0 -41
  1223. package/mssql-core/columns/text.js.map +0 -1
  1224. package/mssql-core/columns/time.cjs +0 -90
  1225. package/mssql-core/columns/time.cjs.map +0 -1
  1226. package/mssql-core/columns/time.d.cts +0 -37
  1227. package/mssql-core/columns/time.d.ts +0 -37
  1228. package/mssql-core/columns/time.js +0 -62
  1229. package/mssql-core/columns/time.js.map +0 -1
  1230. package/mssql-core/columns/tinyint.cjs +0 -62
  1231. package/mssql-core/columns/tinyint.cjs.map +0 -1
  1232. package/mssql-core/columns/tinyint.d.cts +0 -17
  1233. package/mssql-core/columns/tinyint.d.ts +0 -17
  1234. package/mssql-core/columns/tinyint.js +0 -36
  1235. package/mssql-core/columns/tinyint.js.map +0 -1
  1236. package/mssql-core/columns/varbinary.cjs +0 -61
  1237. package/mssql-core/columns/varbinary.cjs.map +0 -1
  1238. package/mssql-core/columns/varbinary.d.cts +0 -23
  1239. package/mssql-core/columns/varbinary.d.ts +0 -23
  1240. package/mssql-core/columns/varbinary.js +0 -35
  1241. package/mssql-core/columns/varbinary.js.map +0 -1
  1242. package/mssql-core/columns/varchar.cjs +0 -117
  1243. package/mssql-core/columns/varchar.cjs.map +0 -1
  1244. package/mssql-core/columns/varchar.d.cts +0 -59
  1245. package/mssql-core/columns/varchar.d.ts +0 -59
  1246. package/mssql-core/columns/varchar.js +0 -88
  1247. package/mssql-core/columns/varchar.js.map +0 -1
  1248. package/mssql-core/db.cjs +0 -254
  1249. package/mssql-core/db.cjs.map +0 -1
  1250. package/mssql-core/db.d.cts +0 -228
  1251. package/mssql-core/db.d.ts +0 -228
  1252. package/mssql-core/db.js +0 -235
  1253. package/mssql-core/db.js.map +0 -1
  1254. package/mssql-core/dialect.cjs +0 -633
  1255. package/mssql-core/dialect.cjs.map +0 -1
  1256. package/mssql-core/dialect.d.cts +0 -58
  1257. package/mssql-core/dialect.d.ts +0 -58
  1258. package/mssql-core/dialect.js +0 -599
  1259. package/mssql-core/dialect.js.map +0 -1
  1260. package/mssql-core/expressions.cjs +0 -49
  1261. package/mssql-core/expressions.cjs.map +0 -1
  1262. package/mssql-core/expressions.d.cts +0 -8
  1263. package/mssql-core/expressions.d.ts +0 -8
  1264. package/mssql-core/expressions.js +0 -22
  1265. package/mssql-core/expressions.js.map +0 -1
  1266. package/mssql-core/foreign-keys.cjs +0 -91
  1267. package/mssql-core/foreign-keys.cjs.map +0 -1
  1268. package/mssql-core/foreign-keys.d.cts +0 -51
  1269. package/mssql-core/foreign-keys.d.ts +0 -51
  1270. package/mssql-core/foreign-keys.js +0 -65
  1271. package/mssql-core/foreign-keys.js.map +0 -1
  1272. package/mssql-core/index.cjs +0 -55
  1273. package/mssql-core/index.cjs.map +0 -1
  1274. package/mssql-core/index.d.cts +0 -17
  1275. package/mssql-core/index.d.ts +0 -17
  1276. package/mssql-core/index.js +0 -18
  1277. package/mssql-core/index.js.map +0 -1
  1278. package/mssql-core/indexes.cjs +0 -80
  1279. package/mssql-core/indexes.cjs.map +0 -1
  1280. package/mssql-core/indexes.d.cts +0 -49
  1281. package/mssql-core/indexes.d.ts +0 -49
  1282. package/mssql-core/indexes.js +0 -52
  1283. package/mssql-core/indexes.js.map +0 -1
  1284. package/mssql-core/primary-keys.cjs +0 -64
  1285. package/mssql-core/primary-keys.cjs.map +0 -1
  1286. package/mssql-core/primary-keys.d.cts +0 -23
  1287. package/mssql-core/primary-keys.d.ts +0 -23
  1288. package/mssql-core/primary-keys.js +0 -38
  1289. package/mssql-core/primary-keys.js.map +0 -1
  1290. package/mssql-core/query-builders/delete.cjs +0 -107
  1291. package/mssql-core/query-builders/delete.cjs.map +0 -1
  1292. package/mssql-core/query-builders/delete.d.cts +0 -98
  1293. package/mssql-core/query-builders/delete.d.ts +0 -98
  1294. package/mssql-core/query-builders/delete.js +0 -83
  1295. package/mssql-core/query-builders/delete.js.map +0 -1
  1296. package/mssql-core/query-builders/index.cjs +0 -33
  1297. package/mssql-core/query-builders/index.cjs.map +0 -1
  1298. package/mssql-core/query-builders/index.d.cts +0 -6
  1299. package/mssql-core/query-builders/index.d.ts +0 -6
  1300. package/mssql-core/query-builders/index.js +0 -7
  1301. package/mssql-core/query-builders/index.js.map +0 -1
  1302. package/mssql-core/query-builders/insert.cjs +0 -105
  1303. package/mssql-core/query-builders/insert.cjs.map +0 -1
  1304. package/mssql-core/query-builders/insert.d.cts +0 -79
  1305. package/mssql-core/query-builders/insert.d.ts +0 -79
  1306. package/mssql-core/query-builders/insert.js +0 -80
  1307. package/mssql-core/query-builders/insert.js.map +0 -1
  1308. package/mssql-core/query-builders/query-builder.cjs +0 -95
  1309. package/mssql-core/query-builders/query-builder.cjs.map +0 -1
  1310. package/mssql-core/query-builders/query-builder.d.cts +0 -32
  1311. package/mssql-core/query-builders/query-builder.d.ts +0 -32
  1312. package/mssql-core/query-builders/query-builder.js +0 -71
  1313. package/mssql-core/query-builders/query-builder.js.map +0 -1
  1314. package/mssql-core/query-builders/query.cjs +0 -126
  1315. package/mssql-core/query-builders/query.cjs.map +0 -1
  1316. package/mssql-core/query-builders/query.d.cts +0 -42
  1317. package/mssql-core/query-builders/query.d.ts +0 -42
  1318. package/mssql-core/query-builders/query.js +0 -103
  1319. package/mssql-core/query-builders/query.js.map +0 -1
  1320. package/mssql-core/query-builders/select.cjs +0 -679
  1321. package/mssql-core/query-builders/select.cjs.map +0 -1
  1322. package/mssql-core/query-builders/select.d.cts +0 -549
  1323. package/mssql-core/query-builders/select.d.ts +0 -549
  1324. package/mssql-core/query-builders/select.js +0 -649
  1325. package/mssql-core/query-builders/select.js.map +0 -1
  1326. package/mssql-core/query-builders/select.types.cjs +0 -17
  1327. package/mssql-core/query-builders/select.types.cjs.map +0 -1
  1328. package/mssql-core/query-builders/select.types.d.cts +0 -142
  1329. package/mssql-core/query-builders/select.types.d.ts +0 -142
  1330. package/mssql-core/query-builders/select.types.js +0 -1
  1331. package/mssql-core/query-builders/select.types.js.map +0 -1
  1332. package/mssql-core/query-builders/update.cjs +0 -138
  1333. package/mssql-core/query-builders/update.cjs.map +0 -1
  1334. package/mssql-core/query-builders/update.d.cts +0 -142
  1335. package/mssql-core/query-builders/update.d.ts +0 -142
  1336. package/mssql-core/query-builders/update.js +0 -113
  1337. package/mssql-core/query-builders/update.js.map +0 -1
  1338. package/mssql-core/schema.cjs +0 -51
  1339. package/mssql-core/schema.cjs.map +0 -1
  1340. package/mssql-core/schema.d.cts +0 -22
  1341. package/mssql-core/schema.d.ts +0 -22
  1342. package/mssql-core/schema.js +0 -25
  1343. package/mssql-core/schema.js.map +0 -1
  1344. package/mssql-core/session.cjs +0 -74
  1345. package/mssql-core/session.cjs.map +0 -1
  1346. package/mssql-core/session.d.cts +0 -63
  1347. package/mssql-core/session.d.ts +0 -63
  1348. package/mssql-core/session.js +0 -48
  1349. package/mssql-core/session.js.map +0 -1
  1350. package/mssql-core/subquery.cjs +0 -17
  1351. package/mssql-core/subquery.cjs.map +0 -1
  1352. package/mssql-core/subquery.d.cts +0 -18
  1353. package/mssql-core/subquery.d.ts +0 -18
  1354. package/mssql-core/subquery.js +0 -1
  1355. package/mssql-core/subquery.js.map +0 -1
  1356. package/mssql-core/table.cjs +0 -81
  1357. package/mssql-core/table.cjs.map +0 -1
  1358. package/mssql-core/table.d.cts +0 -40
  1359. package/mssql-core/table.d.ts +0 -40
  1360. package/mssql-core/table.js +0 -55
  1361. package/mssql-core/table.js.map +0 -1
  1362. package/mssql-core/unique-constraint.cjs +0 -76
  1363. package/mssql-core/unique-constraint.cjs.map +0 -1
  1364. package/mssql-core/unique-constraint.d.cts +0 -23
  1365. package/mssql-core/unique-constraint.d.ts +0 -23
  1366. package/mssql-core/unique-constraint.js +0 -49
  1367. package/mssql-core/unique-constraint.js.map +0 -1
  1368. package/mssql-core/utils.cjs +0 -85
  1369. package/mssql-core/utils.cjs.map +0 -1
  1370. package/mssql-core/utils.d.cts +0 -31
  1371. package/mssql-core/utils.d.ts +0 -31
  1372. package/mssql-core/utils.js +0 -60
  1373. package/mssql-core/utils.js.map +0 -1
  1374. package/mssql-core/view-base.cjs +0 -33
  1375. package/mssql-core/view-base.cjs.map +0 -1
  1376. package/mssql-core/view-base.d.cts +0 -9
  1377. package/mssql-core/view-base.d.ts +0 -9
  1378. package/mssql-core/view-base.js +0 -9
  1379. package/mssql-core/view-base.js.map +0 -1
  1380. package/mssql-core/view-common.cjs +0 -29
  1381. package/mssql-core/view-common.cjs.map +0 -1
  1382. package/mssql-core/view-common.d.cts +0 -1
  1383. package/mssql-core/view-common.d.ts +0 -1
  1384. package/mssql-core/view-common.js +0 -5
  1385. package/mssql-core/view-common.js.map +0 -1
  1386. package/mssql-core/view.cjs +0 -154
  1387. package/mssql-core/view.cjs.map +0 -1
  1388. package/mssql-core/view.d.cts +0 -63
  1389. package/mssql-core/view.d.ts +0 -63
  1390. package/mssql-core/view.js +0 -125
  1391. package/mssql-core/view.js.map +0 -1
  1392. package/node-mssql/driver.cjs.map +0 -1
  1393. package/node-mssql/driver.d.cts +0 -46
  1394. package/node-mssql/driver.d.ts +0 -46
  1395. package/node-mssql/driver.js +0 -81
  1396. package/node-mssql/driver.js.map +0 -1
  1397. package/node-mssql/index.cjs.map +0 -1
  1398. package/node-mssql/index.js.map +0 -1
  1399. package/node-mssql/migrator.cjs.map +0 -1
  1400. package/node-mssql/migrator.d.cts +0 -3
  1401. package/node-mssql/migrator.d.ts +0 -3
  1402. package/node-mssql/migrator.js.map +0 -1
  1403. package/node-mssql/pool.cjs +0 -54
  1404. package/node-mssql/pool.cjs.map +0 -1
  1405. package/node-mssql/pool.d.cts +0 -8
  1406. package/node-mssql/pool.d.ts +0 -8
  1407. package/node-mssql/pool.js +0 -20
  1408. package/node-mssql/pool.js.map +0 -1
  1409. package/node-mssql/session.cjs +0 -256
  1410. package/node-mssql/session.cjs.map +0 -1
  1411. package/node-mssql/session.d.cts +0 -48
  1412. package/node-mssql/session.d.ts +0 -48
  1413. package/node-mssql/session.js +0 -224
  1414. package/node-mssql/session.js.map +0 -1
  1415. /package/{cockroach → bun-sql/mysql}/index.d.cts +0 -0
  1416. /package/{cockroach → bun-sql/mysql}/index.d.ts +0 -0
  1417. /package/{cockroach → bun-sql/mysql}/index.js +0 -0
  1418. /package/{node-mssql → bun-sql/postgres}/index.d.cts +0 -0
  1419. /package/{node-mssql → bun-sql/postgres}/index.d.ts +0 -0
  1420. /package/{node-mssql → bun-sql/postgres}/index.js +0 -0
package/_relations.cjs CHANGED
@@ -29,7 +29,6 @@ __export(relations_exports, {
29
29
  getOperators: () => getOperators,
30
30
  getOrderByOperators: () => getOrderByOperators,
31
31
  mapRelationalRow: () => mapRelationalRow,
32
- mapRelationalRowFromObj: () => mapRelationalRowFromObj,
33
32
  normalizeRelation: () => normalizeRelation,
34
33
  relations: () => relations
35
34
  });
@@ -310,52 +309,6 @@ function mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelect
310
309
  }
311
310
  return result;
312
311
  }
313
- function mapRelationalRowFromObj(tablesConfig, tableConfig, row, buildQueryResultSelection, mapColumnValue = (value) => value) {
314
- const result = {};
315
- for (const [
316
- selectionItemIndex,
317
- selectionItem
318
- ] of buildQueryResultSelection.entries()) {
319
- if (selectionItem.isJson) {
320
- const relation = tableConfig.relations[selectionItem.tsKey];
321
- const isOne = (0, import_entity.is)(relation, One);
322
- const rawSubRows = row[selectionItemIndex];
323
- let subRows = rawSubRows;
324
- if (subRows || Array.isArray(subRows)) {
325
- subRows = typeof rawSubRows === "string" ? JSON.parse(rawSubRows) : rawSubRows;
326
- subRows = isOne ? subRows.flatMap((r) => Array.isArray(r) ? r : Object.values(r)) : subRows.map((r) => Array.isArray(r) ? r : Object.values(r));
327
- }
328
- result[selectionItem.tsKey] = isOne ? subRows && mapRelationalRowFromObj(
329
- tablesConfig,
330
- tablesConfig[selectionItem.relationTableTsKey],
331
- subRows,
332
- selectionItem.selection,
333
- mapColumnValue
334
- ) : (subRows ?? []).map(
335
- (subRow) => mapRelationalRowFromObj(
336
- tablesConfig,
337
- tablesConfig[selectionItem.relationTableTsKey],
338
- subRow,
339
- selectionItem.selection,
340
- mapColumnValue
341
- )
342
- );
343
- } else {
344
- const value = mapColumnValue(row[selectionItemIndex]);
345
- const field = selectionItem.field;
346
- let decoder;
347
- if ((0, import_entity.is)(field, import_column.Column)) {
348
- decoder = field;
349
- } else if ((0, import_entity.is)(field, import_sql.SQL)) {
350
- decoder = field.decoder;
351
- } else {
352
- decoder = field.sql.decoder;
353
- }
354
- result[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);
355
- }
356
- }
357
- return result;
358
- }
359
312
  // Annotate the CommonJS export names for ESM import in node:
360
313
  0 && (module.exports = {
361
314
  Many,
@@ -369,7 +322,6 @@ function mapRelationalRowFromObj(tablesConfig, tableConfig, row, buildQueryResul
369
322
  getOperators,
370
323
  getOrderByOperators,
371
324
  mapRelationalRow,
372
- mapRelationalRowFromObj,
373
325
  normalizeRelation,
374
326
  relations
375
327
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/_relations.ts"],"sourcesContent":["import { type AnyTable, getTableUniqueName, type InferModelFromColumns, Table } from '~/table.ts';\nimport { type AnyColumn, Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';\nimport {\n\tand,\n\tasc,\n\tbetween,\n\tdesc,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tisNotNull,\n\tisNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotIlike,\n\tnotInArray,\n\tnotLike,\n\tor,\n} from './sql/expressions/index.ts';\nimport { type Placeholder, SQL, sql } from './sql/sql.ts';\nimport type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';\n\nexport abstract class Relation<TTableName extends string = string> {\n\tstatic readonly [entityKind]: string = 'Relation';\n\n\tdeclare readonly $brand: 'Relation';\n\treadonly referencedTableName: TTableName;\n\tfieldName!: string;\n\n\tconstructor(\n\t\treadonly sourceTable: Table,\n\t\treadonly referencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly relationName: string | undefined,\n\t) {\n\t\tthis.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;\n\t}\n\n\tabstract withFieldName(fieldName: string): Relation<TTableName>;\n}\n\nexport class Relations<\n\tTTableName extends string = string,\n\tTConfig extends Record<string, Relation> = Record<string, Relation>,\n> {\n\tstatic readonly [entityKind]: string = 'Relations';\n\n\tdeclare readonly $brand: 'Relations';\n\n\tconstructor(\n\t\treadonly table: AnyTable<{ name: TTableName }>,\n\t\treadonly config: (helpers: TableRelationsHelpers<TTableName>) => TConfig,\n\t) {}\n}\n\nexport class One<\n\tTTableName extends string = string,\n\tTIsNullable extends boolean = boolean,\n> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'One';\n\n\tdeclare protected $relationBrand: 'One';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config:\n\t\t\t| RelationConfig<\n\t\t\t\tTTableName,\n\t\t\t\tstring,\n\t\t\t\tAnyColumn<{ tableName: TTableName }>[]\n\t\t\t>\n\t\t\t| undefined,\n\t\treadonly isNullable: TIsNullable,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): One<TTableName> {\n\t\tconst relation = new One(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t\tthis.isNullable,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport class Many<TTableName extends string> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'Many';\n\n\tdeclare protected $relationBrand: 'Many';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config: { relationName: string } | undefined,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): Many<TTableName> {\n\t\tconst relation = new Many(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport type TableRelationsKeysOnly<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n\tK extends keyof TSchema,\n> = TSchema[K] extends Relations<TTableName> ? K : never;\n\nexport type ExtractTableRelationsFromSchema<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TableRelationsKeysOnly<\n\t\t\t\tTSchema,\n\t\t\t\tTTableName,\n\t\t\t\tK\n\t\t\t>\n\t\t]: TSchema[K] extends Relations<TTableName, infer TConfig> ? TConfig : never;\n\t}\n>;\n\nexport type ExtractObjectValues<T> = T[keyof T];\n\nexport type ExtractRelationsFromTableExtraConfigSchema<\n\tTConfig extends unknown[],\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TConfig as TConfig[K] extends Relations<any> ? K\n\t\t\t\t: never\n\t\t]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig\n\t\t\t: never;\n\t}\n>;\n\nexport function getOperators() {\n\treturn {\n\t\tand,\n\t\tbetween,\n\t\teq,\n\t\texists,\n\t\tgt,\n\t\tgte,\n\t\tilike,\n\t\tinArray,\n\t\tisNull,\n\t\tisNotNull,\n\t\tlike,\n\t\tlt,\n\t\tlte,\n\t\tne,\n\t\tnot,\n\t\tnotBetween,\n\t\tnotExists,\n\t\tnotLike,\n\t\tnotIlike,\n\t\tnotInArray,\n\t\tor,\n\t\tsql,\n\t};\n}\n\nexport type Operators = ReturnType<typeof getOperators>;\n\nexport function getOrderByOperators() {\n\treturn {\n\t\tsql,\n\t\tasc,\n\t\tdesc,\n\t};\n}\n\nexport type OrderByOperators = ReturnType<typeof getOrderByOperators>;\n\nexport type FindTableByDBName<\n\tTSchema extends TablesRelationalConfig,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K\n\t\t\t\t: never\n\t\t]: TSchema[K];\n\t}\n>;\n\nexport type DBQueryConfig<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> =\n\t& {\n\t\tcolumns?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['columns']]?: boolean;\n\t\t\t}\n\t\t\t| undefined;\n\t\twith?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['relations']]?:\n\t\t\t\t\t| true\n\t\t\t\t\t| DBQueryConfig<\n\t\t\t\t\t\tTTableConfig['relations'][K] extends One ? 'one' : 'many',\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\tFindTableByDBName<\n\t\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\t\tTTableConfig['relations'][K]['referencedTableName']\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t\t| undefined;\n\t\t\t}\n\t\t\t| undefined;\n\t\textras?:\n\t\t\t| Record<string, SQL.Aliased>\n\t\t\t| ((\n\t\t\t\tfields: Simplify<\n\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t>,\n\t\t\t\toperators: { sql: Operators['sql'] },\n\t\t\t) => Record<string, SQL.Aliased>)\n\t\t\t| undefined;\n\t}\n\t& (TRelationType extends 'many' ?\n\t\t\t& {\n\t\t\t\twhere?:\n\t\t\t\t\t| SQL\n\t\t\t\t\t| undefined\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: Operators,\n\t\t\t\t\t) => SQL | undefined);\n\t\t\t\torderBy?:\n\t\t\t\t\t| ValueOrArray<AnyColumn | SQL>\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: OrderByOperators,\n\t\t\t\t\t) => ValueOrArray<AnyColumn | SQL>)\n\t\t\t\t\t| undefined;\n\t\t\t\tlimit?: number | Placeholder | undefined;\n\t\t\t}\n\t\t\t& (TIsRoot extends true ? {\n\t\t\t\t\toffset?: number | Placeholder | undefined;\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t: {});\n\nexport interface TableRelationalConfig {\n\ttsName: string;\n\tdbName: string;\n\tcolumns: Record<string, Column>;\n\trelations: Record<string, Relation>;\n\tprimaryKey: AnyColumn[];\n\tschema?: string;\n}\n\nexport type TablesRelationalConfig = Record<string, TableRelationalConfig>;\n\nexport interface RelationalSchemaConfig<\n\tTSchema extends TablesRelationalConfig,\n> {\n\tfullSchema: Record<string, unknown>;\n\tschema: TSchema;\n\ttableNamesMap: Record<string, string>;\n}\n\nexport type ExtractTablesWithRelations<\n\tTSchema extends Record<string, unknown>,\n> = {\n\t[\n\t\tK in keyof TSchema as TSchema[K] extends Table ? K\n\t\t\t: never\n\t]: TSchema[K] extends Table ? {\n\t\t\ttsName: K & string;\n\t\t\tdbName: TSchema[K]['_']['name'];\n\t\t\tcolumns: TSchema[K]['_']['columns'];\n\t\t\trelations: ExtractTableRelationsFromSchema<\n\t\t\t\tTSchema,\n\t\t\t\tTSchema[K]['_']['name']\n\t\t\t>;\n\t\t\tprimaryKey: AnyColumn[];\n\t\t}\n\t\t: never;\n};\n\nexport type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R\n\t: T;\n\nexport type BuildRelationResult<\n\tTSchema extends TablesRelationalConfig,\n\tTInclude,\n\tTRelations extends Record<string, Relation>,\n> = {\n\t[\n\t\tK in\n\t\t\t& NonUndefinedKeysOnly<TInclude>\n\t\t\t& keyof TRelations\n\t]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<\n\t\t\tTSchema,\n\t\t\tFindTableByDBName<TSchema, TRel['referencedTableName']>,\n\t\t\tAssume<TInclude[K], true | Record<string, unknown>>\n\t\t> extends infer TResult ? TRel extends One ?\n\t\t\t\t\t| TResult\n\t\t\t\t\t| (Equal<TRel['isNullable'], false> extends true ? null : never)\n\t\t\t: TResult[]\n\t\t: never\n\t\t: never;\n};\n\nexport type NonUndefinedKeysOnly<T> =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type BuildQueryResult<\n\tTSchema extends TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig,\n\tTFullSelection extends true | Record<string, unknown>,\n> = Equal<TFullSelection, true> extends true ? InferModelFromColumns<TTableConfig['columns']>\n\t: TFullSelection extends Record<string, unknown> ? Simplify<\n\t\t\t& (TFullSelection['columns'] extends Record<string, unknown> ? InferModelFromColumns<\n\t\t\t\t\t{\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tK in Equal<\n\t\t\t\t\t\t\t\tExclude<\n\t\t\t\t\t\t\t\t\tTFullSelection['columns'][\n\t\t\t\t\t\t\t\t\t\t& keyof TFullSelection['columns']\n\t\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t> extends true ? Exclude<\n\t\t\t\t\t\t\t\t\tkeyof TTableConfig['columns'],\n\t\t\t\t\t\t\t\t\tNonUndefinedKeysOnly<TFullSelection['columns']>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t& {\n\t\t\t\t\t\t\t\t\t\t[K in keyof TFullSelection['columns']]: Equal<\n\t\t\t\t\t\t\t\t\t\t\tTFullSelection['columns'][K],\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t> extends true ? K\n\t\t\t\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t\t\t\t}[keyof TFullSelection['columns']]\n\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t]: TTableConfig['columns'][K];\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t: InferModelFromColumns<TTableConfig['columns']>)\n\t\t\t& (TFullSelection['extras'] extends\n\t\t\t\t| Record<string, unknown>\n\t\t\t\t| ((...args: any[]) => Record<string, unknown>) ? {\n\t\t\t\t\t[\n\t\t\t\t\t\tK in NonUndefinedKeysOnly<\n\t\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>\n\t\t\t\t\t\t>\n\t\t\t\t\t]: Assume<\n\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>[K],\n\t\t\t\t\t\tSQL.Aliased\n\t\t\t\t\t>['_']['type'];\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t\t& (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<\n\t\t\t\t\tTSchema,\n\t\t\t\t\tTFullSelection['with'],\n\t\t\t\t\tTTableConfig['relations']\n\t\t\t\t>\n\t\t\t\t: {})\n\t\t>\n\t: never;\n\nexport interface RelationConfig<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> {\n\trelationName?: string;\n\tfields: TColumns;\n\treferences: ColumnsWithTable<TTableName, TForeignTableName, TColumns>;\n}\n\nexport function extractTablesRelationalConfig<\n\tTTables extends TablesRelationalConfig,\n>(\n\tschema: Record<string, unknown>,\n\tconfigHelpers: (table: Table) => any,\n): { tables: TTables; tableNamesMap: Record<string, string> } {\n\tif (\n\t\tObject.keys(schema).length === 1\n\t\t&& 'default' in schema\n\t\t&& !is(schema['default'], Table)\n\t) {\n\t\tschema = schema['default'] as Record<string, unknown>;\n\t}\n\n\t// table DB name -> schema table key\n\tconst tableNamesMap: Record<string, string> = {};\n\t// Table relations found before their tables - need to buffer them until we know the schema table key\n\tconst relationsBuffer: Record<\n\t\tstring,\n\t\t{ relations: Record<string, Relation>; primaryKey?: AnyColumn[] }\n\t> = {};\n\tconst tablesConfig: TablesRelationalConfig = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (is(value, Table)) {\n\t\t\tconst dbName = getTableUniqueName(value);\n\t\t\tconst bufferedRelations = relationsBuffer[dbName];\n\t\t\ttableNamesMap[dbName] = key;\n\t\t\ttablesConfig[key] = {\n\t\t\t\ttsName: key,\n\t\t\t\tdbName: value[Table.Symbol.Name],\n\t\t\t\tschema: value[Table.Symbol.Schema],\n\t\t\t\tcolumns: value[Table.Symbol.Columns],\n\t\t\t\trelations: bufferedRelations?.relations ?? {},\n\t\t\t\tprimaryKey: bufferedRelations?.primaryKey ?? [],\n\t\t\t};\n\n\t\t\t// Fill in primary keys\n\t\t\tfor (\n\t\t\t\tconst column of Object.values(\n\t\t\t\t\t(value as Table)[Table.Symbol.Columns],\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (column.primary) {\n\t\t\t\t\ttablesConfig[key]!.primaryKey.push(column);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.((value as Table)[Table.Symbol.ExtraConfigColumns]);\n\t\t\tif (extraConfig) {\n\t\t\t\tfor (const configEntry of Object.values(extraConfig)) {\n\t\t\t\t\tif (is(configEntry, PrimaryKeyBuilder)) {\n\t\t\t\t\t\ttablesConfig[key]!.primaryKey.push(...configEntry.columns);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (is(value, Relations)) {\n\t\t\tconst dbName = getTableUniqueName(value.table);\n\t\t\tconst tableName = tableNamesMap[dbName];\n\t\t\tconst relations: Record<string, Relation> = value.config(\n\t\t\t\tconfigHelpers(value.table),\n\t\t\t);\n\t\t\tlet primaryKey: AnyColumn[] | undefined;\n\n\t\t\tfor (const [relationName, relation] of Object.entries(relations)) {\n\t\t\t\tif (tableName) {\n\t\t\t\t\tconst tableConfig = tablesConfig[tableName]!;\n\t\t\t\t\ttableConfig.relations[relationName] = relation;\n\t\t\t\t\tif (primaryKey) {\n\t\t\t\t\t\ttableConfig.primaryKey.push(...primaryKey);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(dbName in relationsBuffer)) {\n\t\t\t\t\t\trelationsBuffer[dbName] = {\n\t\t\t\t\t\t\trelations: {},\n\t\t\t\t\t\t\tprimaryKey,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\trelationsBuffer[dbName]!.relations[relationName] = relation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { tables: tablesConfig as TTables, tableNamesMap };\n}\n\nexport function relations<\n\tTTableName extends string,\n\tTRelations extends Record<string, Relation<any>>,\n>(\n\ttable: AnyTable<{ name: TTableName }>,\n\trelations: (helpers: TableRelationsHelpers<TTableName>) => TRelations,\n): Relations<TTableName, TRelations> {\n\treturn new Relations<TTableName, TRelations>(\n\t\ttable,\n\t\t(helpers: TableRelationsHelpers<TTableName>) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(relations(helpers)).map(([key, value]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue.withFieldName(key),\n\t\t\t\t]),\n\t\t\t) as TRelations,\n\t);\n}\n\nexport function createOne<TTableName extends string>(sourceTable: Table) {\n\treturn function one<\n\t\tTForeignTable extends Table,\n\t\tTColumns extends [\n\t\t\tAnyColumn<{ tableName: TTableName }>,\n\t\t\t...AnyColumn<{ tableName: TTableName }>[],\n\t\t],\n\t>(\n\t\ttable: TForeignTable,\n\t\tconfig?: RelationConfig<TTableName, TForeignTable['_']['name'], TColumns>,\n\t): One<\n\t\tTForeignTable['_']['name'],\n\t\tEqual<TColumns[number]['_']['notNull'], true>\n\t> {\n\t\treturn new One(\n\t\t\tsourceTable,\n\t\t\ttable,\n\t\t\tconfig,\n\t\t\t(config?.fields.reduce<boolean>((res, f) => res && f.notNull, true)\n\t\t\t\t?? false) as Equal<TColumns[number]['_']['notNull'], true>,\n\t\t);\n\t};\n}\n\nexport function createMany(sourceTable: Table) {\n\treturn function many<TForeignTable extends Table>(\n\t\treferencedTable: TForeignTable,\n\t\tconfig?: { relationName: string },\n\t): Many<TForeignTable['_']['name']> {\n\t\treturn new Many(sourceTable, referencedTable, config);\n\t};\n}\n\nexport interface NormalizedRelation {\n\tfields: AnyColumn[];\n\treferences: AnyColumn[];\n}\n\nexport function normalizeRelation(\n\tschema: TablesRelationalConfig,\n\ttableNamesMap: Record<string, string>,\n\trelation: Relation,\n): NormalizedRelation {\n\tif (is(relation, One) && relation.config) {\n\t\treturn {\n\t\t\tfields: relation.config.fields,\n\t\t\treferences: relation.config.references,\n\t\t};\n\t}\n\n\tconst referencedTableTsName = tableNamesMap[getTableUniqueName(relation.referencedTable)];\n\tif (!referencedTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${relation.referencedTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst referencedTableConfig = schema[referencedTableTsName];\n\tif (!referencedTableConfig) {\n\t\tthrow new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n\t}\n\n\tconst sourceTable = relation.sourceTable;\n\tconst sourceTableTsName = tableNamesMap[getTableUniqueName(sourceTable)];\n\tif (!sourceTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${sourceTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst reverseRelations: Relation[] = [];\n\tfor (\n\t\tconst referencedTableRelation of Object.values(\n\t\t\treferencedTableConfig.relations,\n\t\t)\n\t) {\n\t\tif (\n\t\t\t(relation.relationName\n\t\t\t\t&& relation !== referencedTableRelation\n\t\t\t\t&& referencedTableRelation.relationName === relation.relationName)\n\t\t\t|| (!relation.relationName\n\t\t\t\t&& referencedTableRelation.referencedTable === relation.sourceTable)\n\t\t) {\n\t\t\treverseRelations.push(referencedTableRelation);\n\t\t}\n\t}\n\n\tif (reverseRelations.length > 1) {\n\t\tthrow relation.relationName\n\t\t\t? new Error(\n\t\t\t\t`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`,\n\t\t\t)\n\t\t\t: new Error(\n\t\t\t\t`There are multiple relations between \"${referencedTableTsName}\" and \"${\n\t\t\t\t\trelation.sourceTable[Table.Symbol.Name]\n\t\t\t\t}\". Please specify relation name`,\n\t\t\t);\n\t}\n\n\tif (\n\t\treverseRelations[0]\n\t\t&& is(reverseRelations[0], One)\n\t\t&& reverseRelations[0].config\n\t) {\n\t\treturn {\n\t\t\tfields: reverseRelations[0].config.references,\n\t\t\treferences: reverseRelations[0].config.fields,\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`,\n\t);\n}\n\nexport function createTableRelationsHelpers<TTableName extends string>(\n\tsourceTable: AnyTable<{ name: TTableName }>,\n) {\n\treturn {\n\t\tone: createOne<TTableName>(sourceTable),\n\t\tmany: createMany(sourceTable),\n\t};\n}\n\nexport type TableRelationsHelpers<TTableName extends string> = ReturnType<\n\ttypeof createTableRelationsHelpers<TTableName>\n>;\n\nexport interface BuildRelationalQueryResult<\n\tTTable extends Table = Table,\n\tTColumn extends Column = Column,\n> {\n\ttableTsKey: string;\n\tselection: {\n\t\tdbKey: string;\n\t\ttsKey: string;\n\t\tfield: TColumn | SQL | SQL.Aliased;\n\t\trelationTableTsKey: string | undefined;\n\t\tisJson: boolean;\n\t\tisExtra?: boolean;\n\t\tselection: BuildRelationalQueryResult<TTable>['selection'];\n\t}[];\n\tsql: TTable | SQL;\n}\n\nexport function mapRelationalRow(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst rawSubRows = row[selectionItemIndex] as\n\t\t\t\t| unknown[]\n\t\t\t\t| null\n\t\t\t\t| [null]\n\t\t\t\t| string;\n\t\t\tconst subRows = typeof rawSubRows === 'string'\n\t\t\t\t? (JSON.parse(rawSubRows) as unknown[])\n\t\t\t\t: rawSubRows;\n\t\t\tresult[selectionItem.tsKey] = is(relation, One)\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: (subRows as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function mapRelationalRowFromObj(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst isOne = is(relation, One);\n\t\t\tconst rawSubRows = row[selectionItemIndex] as unknown[] | null | [null] | string;\n\n\t\t\tlet subRows = rawSubRows as unknown[] | null;\n\t\t\tif (subRows || Array.isArray(subRows)) {\n\t\t\t\tsubRows = (typeof rawSubRows === 'string' ? JSON.parse(rawSubRows) : rawSubRows) as unknown[];\n\n\t\t\t\tsubRows = isOne\n\t\t\t\t\t? subRows.flatMap((r) => Array.isArray(r) ? r : Object.values(r as any))\n\t\t\t\t\t: subRows.map((r) => Array.isArray(r) ? r : Object.values(r as any));\n\t\t\t}\n\n\t\t\tresult[selectionItem.tsKey] = isOne\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRowFromObj(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: ((subRows ?? []) as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRowFromObj(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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","names":["relations"]}
1
+ {"version":3,"sources":["../src/_relations.ts"],"sourcesContent":["import { type AnyTable, getTableUniqueName, type InferModelFromColumns, Table } from '~/table.ts';\nimport { type AnyColumn, Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';\nimport {\n\tand,\n\tasc,\n\tbetween,\n\tdesc,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tisNotNull,\n\tisNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotIlike,\n\tnotInArray,\n\tnotLike,\n\tor,\n} from './sql/expressions/index.ts';\nimport { type Placeholder, SQL, sql } from './sql/sql.ts';\nimport type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';\n\nexport abstract class Relation<TTableName extends string = string> {\n\tstatic readonly [entityKind]: string = 'Relation';\n\n\tdeclare readonly $brand: 'Relation';\n\treadonly referencedTableName: TTableName;\n\tfieldName!: string;\n\n\tconstructor(\n\t\treadonly sourceTable: Table,\n\t\treadonly referencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly relationName: string | undefined,\n\t) {\n\t\tthis.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;\n\t}\n\n\tabstract withFieldName(fieldName: string): Relation<TTableName>;\n}\n\nexport class Relations<\n\tTTableName extends string = string,\n\tTConfig extends Record<string, Relation> = Record<string, Relation>,\n> {\n\tstatic readonly [entityKind]: string = 'Relations';\n\n\tdeclare readonly $brand: 'Relations';\n\n\tconstructor(\n\t\treadonly table: AnyTable<{ name: TTableName }>,\n\t\treadonly config: (helpers: TableRelationsHelpers<TTableName>) => TConfig,\n\t) {}\n}\n\nexport class One<\n\tTTableName extends string = string,\n\tTIsNullable extends boolean = boolean,\n> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'One';\n\n\tdeclare protected $relationBrand: 'One';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config:\n\t\t\t| RelationConfig<\n\t\t\t\tTTableName,\n\t\t\t\tstring,\n\t\t\t\tAnyColumn<{ tableName: TTableName }>[]\n\t\t\t>\n\t\t\t| undefined,\n\t\treadonly isNullable: TIsNullable,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): One<TTableName> {\n\t\tconst relation = new One(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t\tthis.isNullable,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport class Many<TTableName extends string> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'Many';\n\n\tdeclare protected $relationBrand: 'Many';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config: { relationName: string } | undefined,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): Many<TTableName> {\n\t\tconst relation = new Many(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport type TableRelationsKeysOnly<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n\tK extends keyof TSchema,\n> = TSchema[K] extends Relations<TTableName> ? K : never;\n\nexport type ExtractTableRelationsFromSchema<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TableRelationsKeysOnly<\n\t\t\t\tTSchema,\n\t\t\t\tTTableName,\n\t\t\t\tK\n\t\t\t>\n\t\t]: TSchema[K] extends Relations<TTableName, infer TConfig> ? TConfig : never;\n\t}\n>;\n\nexport type ExtractObjectValues<T> = T[keyof T];\n\nexport type ExtractRelationsFromTableExtraConfigSchema<\n\tTConfig extends unknown[],\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TConfig as TConfig[K] extends Relations<any> ? K\n\t\t\t\t: never\n\t\t]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig\n\t\t\t: never;\n\t}\n>;\n\nexport function getOperators() {\n\treturn {\n\t\tand,\n\t\tbetween,\n\t\teq,\n\t\texists,\n\t\tgt,\n\t\tgte,\n\t\tilike,\n\t\tinArray,\n\t\tisNull,\n\t\tisNotNull,\n\t\tlike,\n\t\tlt,\n\t\tlte,\n\t\tne,\n\t\tnot,\n\t\tnotBetween,\n\t\tnotExists,\n\t\tnotLike,\n\t\tnotIlike,\n\t\tnotInArray,\n\t\tor,\n\t\tsql,\n\t};\n}\n\nexport type Operators = ReturnType<typeof getOperators>;\n\nexport function getOrderByOperators() {\n\treturn {\n\t\tsql,\n\t\tasc,\n\t\tdesc,\n\t};\n}\n\nexport type OrderByOperators = ReturnType<typeof getOrderByOperators>;\n\nexport type FindTableByDBName<\n\tTSchema extends TablesRelationalConfig,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K\n\t\t\t\t: never\n\t\t]: TSchema[K];\n\t}\n>;\n\nexport type DBQueryConfig<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> =\n\t& {\n\t\tcolumns?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['columns']]?: boolean;\n\t\t\t}\n\t\t\t| undefined;\n\t\twith?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['relations']]?:\n\t\t\t\t\t| true\n\t\t\t\t\t| DBQueryConfig<\n\t\t\t\t\t\tTTableConfig['relations'][K] extends One ? 'one' : 'many',\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\tFindTableByDBName<\n\t\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\t\tTTableConfig['relations'][K]['referencedTableName']\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t\t| undefined;\n\t\t\t}\n\t\t\t| undefined;\n\t\textras?:\n\t\t\t| Record<string, SQL.Aliased>\n\t\t\t| ((\n\t\t\t\tfields: Simplify<\n\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t>,\n\t\t\t\toperators: { sql: Operators['sql'] },\n\t\t\t) => Record<string, SQL.Aliased>)\n\t\t\t| undefined;\n\t}\n\t& (TRelationType extends 'many' ?\n\t\t\t& {\n\t\t\t\twhere?:\n\t\t\t\t\t| SQL\n\t\t\t\t\t| undefined\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: Operators,\n\t\t\t\t\t) => SQL | undefined);\n\t\t\t\torderBy?:\n\t\t\t\t\t| ValueOrArray<AnyColumn | SQL>\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: OrderByOperators,\n\t\t\t\t\t) => ValueOrArray<AnyColumn | SQL>)\n\t\t\t\t\t| undefined;\n\t\t\t\tlimit?: number | Placeholder | undefined;\n\t\t\t}\n\t\t\t& (TIsRoot extends true ? {\n\t\t\t\t\toffset?: number | Placeholder | undefined;\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t: {});\n\nexport interface TableRelationalConfig {\n\ttsName: string;\n\tdbName: string;\n\tcolumns: Record<string, Column>;\n\trelations: Record<string, Relation>;\n\tprimaryKey: AnyColumn[];\n\tschema?: string;\n}\n\nexport type TablesRelationalConfig = Record<string, TableRelationalConfig>;\n\nexport interface RelationalSchemaConfig<\n\tTSchema extends TablesRelationalConfig,\n> {\n\tfullSchema: Record<string, unknown>;\n\tschema: TSchema;\n\ttableNamesMap: Record<string, string>;\n}\n\nexport type ExtractTablesWithRelations<\n\tTSchema extends Record<string, unknown>,\n> = {\n\t[\n\t\tK in keyof TSchema as TSchema[K] extends Table ? K\n\t\t\t: never\n\t]: TSchema[K] extends Table ? {\n\t\t\ttsName: K & string;\n\t\t\tdbName: TSchema[K]['_']['name'];\n\t\t\tcolumns: TSchema[K]['_']['columns'];\n\t\t\trelations: ExtractTableRelationsFromSchema<\n\t\t\t\tTSchema,\n\t\t\t\tTSchema[K]['_']['name']\n\t\t\t>;\n\t\t\tprimaryKey: AnyColumn[];\n\t\t}\n\t\t: never;\n};\n\nexport type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R\n\t: T;\n\nexport type BuildRelationResult<\n\tTSchema extends TablesRelationalConfig,\n\tTInclude,\n\tTRelations extends Record<string, Relation>,\n> = {\n\t[\n\t\tK in\n\t\t\t& NonUndefinedKeysOnly<TInclude>\n\t\t\t& keyof TRelations\n\t]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<\n\t\t\tTSchema,\n\t\t\tFindTableByDBName<TSchema, TRel['referencedTableName']>,\n\t\t\tAssume<TInclude[K], true | Record<string, unknown>>\n\t\t> extends infer TResult ? TRel extends One ?\n\t\t\t\t\t| TResult\n\t\t\t\t\t| (Equal<TRel['isNullable'], false> extends true ? null : never)\n\t\t\t: TResult[]\n\t\t: never\n\t\t: never;\n};\n\nexport type NonUndefinedKeysOnly<T> =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type BuildQueryResult<\n\tTSchema extends TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig,\n\tTFullSelection extends true | Record<string, unknown>,\n> = Equal<TFullSelection, true> extends true ? InferModelFromColumns<TTableConfig['columns']>\n\t: TFullSelection extends Record<string, unknown> ? Simplify<\n\t\t\t& (TFullSelection['columns'] extends Record<string, unknown> ? InferModelFromColumns<\n\t\t\t\t\t{\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tK in Equal<\n\t\t\t\t\t\t\t\tExclude<\n\t\t\t\t\t\t\t\t\tTFullSelection['columns'][\n\t\t\t\t\t\t\t\t\t\t& keyof TFullSelection['columns']\n\t\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t> extends true ? Exclude<\n\t\t\t\t\t\t\t\t\tkeyof TTableConfig['columns'],\n\t\t\t\t\t\t\t\t\tNonUndefinedKeysOnly<TFullSelection['columns']>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t& {\n\t\t\t\t\t\t\t\t\t\t[K in keyof TFullSelection['columns']]: Equal<\n\t\t\t\t\t\t\t\t\t\t\tTFullSelection['columns'][K],\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t> extends true ? K\n\t\t\t\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t\t\t\t}[keyof TFullSelection['columns']]\n\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t]: TTableConfig['columns'][K];\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t: InferModelFromColumns<TTableConfig['columns']>)\n\t\t\t& (TFullSelection['extras'] extends\n\t\t\t\t| Record<string, unknown>\n\t\t\t\t| ((...args: any[]) => Record<string, unknown>) ? {\n\t\t\t\t\t[\n\t\t\t\t\t\tK in NonUndefinedKeysOnly<\n\t\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>\n\t\t\t\t\t\t>\n\t\t\t\t\t]: Assume<\n\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>[K],\n\t\t\t\t\t\tSQL.Aliased\n\t\t\t\t\t>['_']['type'];\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t\t& (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<\n\t\t\t\t\tTSchema,\n\t\t\t\t\tTFullSelection['with'],\n\t\t\t\t\tTTableConfig['relations']\n\t\t\t\t>\n\t\t\t\t: {})\n\t\t>\n\t: never;\n\nexport interface RelationConfig<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> {\n\trelationName?: string;\n\tfields: TColumns;\n\treferences: ColumnsWithTable<TTableName, TForeignTableName, TColumns>;\n}\n\nexport function extractTablesRelationalConfig<\n\tTTables extends TablesRelationalConfig,\n>(\n\tschema: Record<string, unknown>,\n\tconfigHelpers: (table: Table) => any,\n): { tables: TTables; tableNamesMap: Record<string, string> } {\n\tif (\n\t\tObject.keys(schema).length === 1\n\t\t&& 'default' in schema\n\t\t&& !is(schema['default'], Table)\n\t) {\n\t\tschema = schema['default'] as Record<string, unknown>;\n\t}\n\n\t// table DB name -> schema table key\n\tconst tableNamesMap: Record<string, string> = {};\n\t// Table relations found before their tables - need to buffer them until we know the schema table key\n\tconst relationsBuffer: Record<\n\t\tstring,\n\t\t{ relations: Record<string, Relation>; primaryKey?: AnyColumn[] }\n\t> = {};\n\tconst tablesConfig: TablesRelationalConfig = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (is(value, Table)) {\n\t\t\tconst dbName = getTableUniqueName(value);\n\t\t\tconst bufferedRelations = relationsBuffer[dbName];\n\t\t\ttableNamesMap[dbName] = key;\n\t\t\ttablesConfig[key] = {\n\t\t\t\ttsName: key,\n\t\t\t\tdbName: value[Table.Symbol.Name],\n\t\t\t\tschema: value[Table.Symbol.Schema],\n\t\t\t\tcolumns: value[Table.Symbol.Columns],\n\t\t\t\trelations: bufferedRelations?.relations ?? {},\n\t\t\t\tprimaryKey: bufferedRelations?.primaryKey ?? [],\n\t\t\t};\n\n\t\t\t// Fill in primary keys\n\t\t\tfor (\n\t\t\t\tconst column of Object.values(\n\t\t\t\t\t(value as Table)[Table.Symbol.Columns],\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (column.primary) {\n\t\t\t\t\ttablesConfig[key]!.primaryKey.push(column);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.((value as Table)[Table.Symbol.ExtraConfigColumns]);\n\t\t\tif (extraConfig) {\n\t\t\t\tfor (const configEntry of Object.values(extraConfig)) {\n\t\t\t\t\tif (is(configEntry, PrimaryKeyBuilder)) {\n\t\t\t\t\t\ttablesConfig[key]!.primaryKey.push(...configEntry.columns);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (is(value, Relations)) {\n\t\t\tconst dbName = getTableUniqueName(value.table);\n\t\t\tconst tableName = tableNamesMap[dbName];\n\t\t\tconst relations: Record<string, Relation> = value.config(\n\t\t\t\tconfigHelpers(value.table),\n\t\t\t);\n\t\t\tlet primaryKey: AnyColumn[] | undefined;\n\n\t\t\tfor (const [relationName, relation] of Object.entries(relations)) {\n\t\t\t\tif (tableName) {\n\t\t\t\t\tconst tableConfig = tablesConfig[tableName]!;\n\t\t\t\t\ttableConfig.relations[relationName] = relation;\n\t\t\t\t\tif (primaryKey) {\n\t\t\t\t\t\ttableConfig.primaryKey.push(...primaryKey);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(dbName in relationsBuffer)) {\n\t\t\t\t\t\trelationsBuffer[dbName] = {\n\t\t\t\t\t\t\trelations: {},\n\t\t\t\t\t\t\tprimaryKey,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\trelationsBuffer[dbName]!.relations[relationName] = relation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { tables: tablesConfig as TTables, tableNamesMap };\n}\n\nexport function relations<\n\tTTableName extends string,\n\tTRelations extends Record<string, Relation<any>>,\n>(\n\ttable: AnyTable<{ name: TTableName }>,\n\trelations: (helpers: TableRelationsHelpers<TTableName>) => TRelations,\n): Relations<TTableName, TRelations> {\n\treturn new Relations<TTableName, TRelations>(\n\t\ttable,\n\t\t(helpers: TableRelationsHelpers<TTableName>) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(relations(helpers)).map(([key, value]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue.withFieldName(key),\n\t\t\t\t]),\n\t\t\t) as TRelations,\n\t);\n}\n\nexport function createOne<TTableName extends string>(sourceTable: Table) {\n\treturn function one<\n\t\tTForeignTable extends Table,\n\t\tTColumns extends [\n\t\t\tAnyColumn<{ tableName: TTableName }>,\n\t\t\t...AnyColumn<{ tableName: TTableName }>[],\n\t\t],\n\t>(\n\t\ttable: TForeignTable,\n\t\tconfig?: RelationConfig<TTableName, TForeignTable['_']['name'], TColumns>,\n\t): One<\n\t\tTForeignTable['_']['name'],\n\t\tEqual<TColumns[number]['_']['notNull'], true>\n\t> {\n\t\treturn new One(\n\t\t\tsourceTable,\n\t\t\ttable,\n\t\t\tconfig,\n\t\t\t(config?.fields.reduce<boolean>((res, f) => res && f.notNull, true)\n\t\t\t\t?? false) as Equal<TColumns[number]['_']['notNull'], true>,\n\t\t);\n\t};\n}\n\nexport function createMany(sourceTable: Table) {\n\treturn function many<TForeignTable extends Table>(\n\t\treferencedTable: TForeignTable,\n\t\tconfig?: { relationName: string },\n\t): Many<TForeignTable['_']['name']> {\n\t\treturn new Many(sourceTable, referencedTable, config);\n\t};\n}\n\nexport interface NormalizedRelation {\n\tfields: AnyColumn[];\n\treferences: AnyColumn[];\n}\n\nexport function normalizeRelation(\n\tschema: TablesRelationalConfig,\n\ttableNamesMap: Record<string, string>,\n\trelation: Relation,\n): NormalizedRelation {\n\tif (is(relation, One) && relation.config) {\n\t\treturn {\n\t\t\tfields: relation.config.fields,\n\t\t\treferences: relation.config.references,\n\t\t};\n\t}\n\n\tconst referencedTableTsName = tableNamesMap[getTableUniqueName(relation.referencedTable)];\n\tif (!referencedTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${relation.referencedTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst referencedTableConfig = schema[referencedTableTsName];\n\tif (!referencedTableConfig) {\n\t\tthrow new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n\t}\n\n\tconst sourceTable = relation.sourceTable;\n\tconst sourceTableTsName = tableNamesMap[getTableUniqueName(sourceTable)];\n\tif (!sourceTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${sourceTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst reverseRelations: Relation[] = [];\n\tfor (\n\t\tconst referencedTableRelation of Object.values(\n\t\t\treferencedTableConfig.relations,\n\t\t)\n\t) {\n\t\tif (\n\t\t\t(relation.relationName\n\t\t\t\t&& relation !== referencedTableRelation\n\t\t\t\t&& referencedTableRelation.relationName === relation.relationName)\n\t\t\t|| (!relation.relationName\n\t\t\t\t&& referencedTableRelation.referencedTable === relation.sourceTable)\n\t\t) {\n\t\t\treverseRelations.push(referencedTableRelation);\n\t\t}\n\t}\n\n\tif (reverseRelations.length > 1) {\n\t\tthrow relation.relationName\n\t\t\t? new Error(\n\t\t\t\t`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`,\n\t\t\t)\n\t\t\t: new Error(\n\t\t\t\t`There are multiple relations between \"${referencedTableTsName}\" and \"${\n\t\t\t\t\trelation.sourceTable[Table.Symbol.Name]\n\t\t\t\t}\". Please specify relation name`,\n\t\t\t);\n\t}\n\n\tif (\n\t\treverseRelations[0]\n\t\t&& is(reverseRelations[0], One)\n\t\t&& reverseRelations[0].config\n\t) {\n\t\treturn {\n\t\t\tfields: reverseRelations[0].config.references,\n\t\t\treferences: reverseRelations[0].config.fields,\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`,\n\t);\n}\n\nexport function createTableRelationsHelpers<TTableName extends string>(\n\tsourceTable: AnyTable<{ name: TTableName }>,\n) {\n\treturn {\n\t\tone: createOne<TTableName>(sourceTable),\n\t\tmany: createMany(sourceTable),\n\t};\n}\n\nexport type TableRelationsHelpers<TTableName extends string> = ReturnType<\n\ttypeof createTableRelationsHelpers<TTableName>\n>;\n\nexport interface BuildRelationalQueryResult<\n\tTTable extends Table = Table,\n\tTColumn extends Column = Column,\n> {\n\ttableTsKey: string;\n\tselection: {\n\t\tdbKey: string;\n\t\ttsKey: string;\n\t\tfield: TColumn | SQL | SQL.Aliased;\n\t\trelationTableTsKey: string | undefined;\n\t\tisJson: boolean;\n\t\tisExtra?: boolean;\n\t\tselection: BuildRelationalQueryResult<TTable>['selection'];\n\t}[];\n\tsql: TTable | SQL;\n}\n\nexport function mapRelationalRow(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst rawSubRows = row[selectionItemIndex] as\n\t\t\t\t| unknown[]\n\t\t\t\t| null\n\t\t\t\t| [null]\n\t\t\t\t| string;\n\t\t\tconst subRows = typeof rawSubRows === 'string'\n\t\t\t\t? (JSON.parse(rawSubRows) as unknown[])\n\t\t\t\t: rawSubRows;\n\t\t\tresult[selectionItem.tsKey] = is(relation, One)\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: (subRows as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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","names":["relations"]}
package/_relations.d.cts CHANGED
@@ -213,4 +213,3 @@ export interface BuildRelationalQueryResult<TTable extends Table = Table, TColum
213
213
  sql: TTable | SQL;
214
214
  }
215
215
  export declare function mapRelationalRow(tablesConfig: TablesRelationalConfig, tableConfig: TableRelationalConfig, row: unknown[], buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown): Record<string, unknown>;
216
- export declare function mapRelationalRowFromObj(tablesConfig: TablesRelationalConfig, tableConfig: TableRelationalConfig, row: unknown[], buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown): Record<string, unknown>;
package/_relations.d.ts CHANGED
@@ -213,4 +213,3 @@ export interface BuildRelationalQueryResult<TTable extends Table = Table, TColum
213
213
  sql: TTable | SQL;
214
214
  }
215
215
  export declare function mapRelationalRow(tablesConfig: TablesRelationalConfig, tableConfig: TableRelationalConfig, row: unknown[], buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown): Record<string, unknown>;
216
- export declare function mapRelationalRowFromObj(tablesConfig: TablesRelationalConfig, tableConfig: TableRelationalConfig, row: unknown[], buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown): Record<string, unknown>;
package/_relations.js CHANGED
@@ -298,52 +298,6 @@ function mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelect
298
298
  }
299
299
  return result;
300
300
  }
301
- function mapRelationalRowFromObj(tablesConfig, tableConfig, row, buildQueryResultSelection, mapColumnValue = (value) => value) {
302
- const result = {};
303
- for (const [
304
- selectionItemIndex,
305
- selectionItem
306
- ] of buildQueryResultSelection.entries()) {
307
- if (selectionItem.isJson) {
308
- const relation = tableConfig.relations[selectionItem.tsKey];
309
- const isOne = is(relation, One);
310
- const rawSubRows = row[selectionItemIndex];
311
- let subRows = rawSubRows;
312
- if (subRows || Array.isArray(subRows)) {
313
- subRows = typeof rawSubRows === "string" ? JSON.parse(rawSubRows) : rawSubRows;
314
- subRows = isOne ? subRows.flatMap((r) => Array.isArray(r) ? r : Object.values(r)) : subRows.map((r) => Array.isArray(r) ? r : Object.values(r));
315
- }
316
- result[selectionItem.tsKey] = isOne ? subRows && mapRelationalRowFromObj(
317
- tablesConfig,
318
- tablesConfig[selectionItem.relationTableTsKey],
319
- subRows,
320
- selectionItem.selection,
321
- mapColumnValue
322
- ) : (subRows ?? []).map(
323
- (subRow) => mapRelationalRowFromObj(
324
- tablesConfig,
325
- tablesConfig[selectionItem.relationTableTsKey],
326
- subRow,
327
- selectionItem.selection,
328
- mapColumnValue
329
- )
330
- );
331
- } else {
332
- const value = mapColumnValue(row[selectionItemIndex]);
333
- const field = selectionItem.field;
334
- let decoder;
335
- if (is(field, Column)) {
336
- decoder = field;
337
- } else if (is(field, SQL)) {
338
- decoder = field.decoder;
339
- } else {
340
- decoder = field.sql.decoder;
341
- }
342
- result[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);
343
- }
344
- }
345
- return result;
346
- }
347
301
  export {
348
302
  Many,
349
303
  One,
@@ -356,7 +310,6 @@ export {
356
310
  getOperators,
357
311
  getOrderByOperators,
358
312
  mapRelationalRow,
359
- mapRelationalRowFromObj,
360
313
  normalizeRelation,
361
314
  relations
362
315
  };
package/_relations.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/_relations.ts"],"sourcesContent":["import { type AnyTable, getTableUniqueName, type InferModelFromColumns, Table } from '~/table.ts';\nimport { type AnyColumn, Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';\nimport {\n\tand,\n\tasc,\n\tbetween,\n\tdesc,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tisNotNull,\n\tisNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotIlike,\n\tnotInArray,\n\tnotLike,\n\tor,\n} from './sql/expressions/index.ts';\nimport { type Placeholder, SQL, sql } from './sql/sql.ts';\nimport type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';\n\nexport abstract class Relation<TTableName extends string = string> {\n\tstatic readonly [entityKind]: string = 'Relation';\n\n\tdeclare readonly $brand: 'Relation';\n\treadonly referencedTableName: TTableName;\n\tfieldName!: string;\n\n\tconstructor(\n\t\treadonly sourceTable: Table,\n\t\treadonly referencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly relationName: string | undefined,\n\t) {\n\t\tthis.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;\n\t}\n\n\tabstract withFieldName(fieldName: string): Relation<TTableName>;\n}\n\nexport class Relations<\n\tTTableName extends string = string,\n\tTConfig extends Record<string, Relation> = Record<string, Relation>,\n> {\n\tstatic readonly [entityKind]: string = 'Relations';\n\n\tdeclare readonly $brand: 'Relations';\n\n\tconstructor(\n\t\treadonly table: AnyTable<{ name: TTableName }>,\n\t\treadonly config: (helpers: TableRelationsHelpers<TTableName>) => TConfig,\n\t) {}\n}\n\nexport class One<\n\tTTableName extends string = string,\n\tTIsNullable extends boolean = boolean,\n> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'One';\n\n\tdeclare protected $relationBrand: 'One';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config:\n\t\t\t| RelationConfig<\n\t\t\t\tTTableName,\n\t\t\t\tstring,\n\t\t\t\tAnyColumn<{ tableName: TTableName }>[]\n\t\t\t>\n\t\t\t| undefined,\n\t\treadonly isNullable: TIsNullable,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): One<TTableName> {\n\t\tconst relation = new One(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t\tthis.isNullable,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport class Many<TTableName extends string> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'Many';\n\n\tdeclare protected $relationBrand: 'Many';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config: { relationName: string } | undefined,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): Many<TTableName> {\n\t\tconst relation = new Many(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport type TableRelationsKeysOnly<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n\tK extends keyof TSchema,\n> = TSchema[K] extends Relations<TTableName> ? K : never;\n\nexport type ExtractTableRelationsFromSchema<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TableRelationsKeysOnly<\n\t\t\t\tTSchema,\n\t\t\t\tTTableName,\n\t\t\t\tK\n\t\t\t>\n\t\t]: TSchema[K] extends Relations<TTableName, infer TConfig> ? TConfig : never;\n\t}\n>;\n\nexport type ExtractObjectValues<T> = T[keyof T];\n\nexport type ExtractRelationsFromTableExtraConfigSchema<\n\tTConfig extends unknown[],\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TConfig as TConfig[K] extends Relations<any> ? K\n\t\t\t\t: never\n\t\t]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig\n\t\t\t: never;\n\t}\n>;\n\nexport function getOperators() {\n\treturn {\n\t\tand,\n\t\tbetween,\n\t\teq,\n\t\texists,\n\t\tgt,\n\t\tgte,\n\t\tilike,\n\t\tinArray,\n\t\tisNull,\n\t\tisNotNull,\n\t\tlike,\n\t\tlt,\n\t\tlte,\n\t\tne,\n\t\tnot,\n\t\tnotBetween,\n\t\tnotExists,\n\t\tnotLike,\n\t\tnotIlike,\n\t\tnotInArray,\n\t\tor,\n\t\tsql,\n\t};\n}\n\nexport type Operators = ReturnType<typeof getOperators>;\n\nexport function getOrderByOperators() {\n\treturn {\n\t\tsql,\n\t\tasc,\n\t\tdesc,\n\t};\n}\n\nexport type OrderByOperators = ReturnType<typeof getOrderByOperators>;\n\nexport type FindTableByDBName<\n\tTSchema extends TablesRelationalConfig,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K\n\t\t\t\t: never\n\t\t]: TSchema[K];\n\t}\n>;\n\nexport type DBQueryConfig<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> =\n\t& {\n\t\tcolumns?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['columns']]?: boolean;\n\t\t\t}\n\t\t\t| undefined;\n\t\twith?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['relations']]?:\n\t\t\t\t\t| true\n\t\t\t\t\t| DBQueryConfig<\n\t\t\t\t\t\tTTableConfig['relations'][K] extends One ? 'one' : 'many',\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\tFindTableByDBName<\n\t\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\t\tTTableConfig['relations'][K]['referencedTableName']\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t\t| undefined;\n\t\t\t}\n\t\t\t| undefined;\n\t\textras?:\n\t\t\t| Record<string, SQL.Aliased>\n\t\t\t| ((\n\t\t\t\tfields: Simplify<\n\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t>,\n\t\t\t\toperators: { sql: Operators['sql'] },\n\t\t\t) => Record<string, SQL.Aliased>)\n\t\t\t| undefined;\n\t}\n\t& (TRelationType extends 'many' ?\n\t\t\t& {\n\t\t\t\twhere?:\n\t\t\t\t\t| SQL\n\t\t\t\t\t| undefined\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: Operators,\n\t\t\t\t\t) => SQL | undefined);\n\t\t\t\torderBy?:\n\t\t\t\t\t| ValueOrArray<AnyColumn | SQL>\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: OrderByOperators,\n\t\t\t\t\t) => ValueOrArray<AnyColumn | SQL>)\n\t\t\t\t\t| undefined;\n\t\t\t\tlimit?: number | Placeholder | undefined;\n\t\t\t}\n\t\t\t& (TIsRoot extends true ? {\n\t\t\t\t\toffset?: number | Placeholder | undefined;\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t: {});\n\nexport interface TableRelationalConfig {\n\ttsName: string;\n\tdbName: string;\n\tcolumns: Record<string, Column>;\n\trelations: Record<string, Relation>;\n\tprimaryKey: AnyColumn[];\n\tschema?: string;\n}\n\nexport type TablesRelationalConfig = Record<string, TableRelationalConfig>;\n\nexport interface RelationalSchemaConfig<\n\tTSchema extends TablesRelationalConfig,\n> {\n\tfullSchema: Record<string, unknown>;\n\tschema: TSchema;\n\ttableNamesMap: Record<string, string>;\n}\n\nexport type ExtractTablesWithRelations<\n\tTSchema extends Record<string, unknown>,\n> = {\n\t[\n\t\tK in keyof TSchema as TSchema[K] extends Table ? K\n\t\t\t: never\n\t]: TSchema[K] extends Table ? {\n\t\t\ttsName: K & string;\n\t\t\tdbName: TSchema[K]['_']['name'];\n\t\t\tcolumns: TSchema[K]['_']['columns'];\n\t\t\trelations: ExtractTableRelationsFromSchema<\n\t\t\t\tTSchema,\n\t\t\t\tTSchema[K]['_']['name']\n\t\t\t>;\n\t\t\tprimaryKey: AnyColumn[];\n\t\t}\n\t\t: never;\n};\n\nexport type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R\n\t: T;\n\nexport type BuildRelationResult<\n\tTSchema extends TablesRelationalConfig,\n\tTInclude,\n\tTRelations extends Record<string, Relation>,\n> = {\n\t[\n\t\tK in\n\t\t\t& NonUndefinedKeysOnly<TInclude>\n\t\t\t& keyof TRelations\n\t]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<\n\t\t\tTSchema,\n\t\t\tFindTableByDBName<TSchema, TRel['referencedTableName']>,\n\t\t\tAssume<TInclude[K], true | Record<string, unknown>>\n\t\t> extends infer TResult ? TRel extends One ?\n\t\t\t\t\t| TResult\n\t\t\t\t\t| (Equal<TRel['isNullable'], false> extends true ? null : never)\n\t\t\t: TResult[]\n\t\t: never\n\t\t: never;\n};\n\nexport type NonUndefinedKeysOnly<T> =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type BuildQueryResult<\n\tTSchema extends TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig,\n\tTFullSelection extends true | Record<string, unknown>,\n> = Equal<TFullSelection, true> extends true ? InferModelFromColumns<TTableConfig['columns']>\n\t: TFullSelection extends Record<string, unknown> ? Simplify<\n\t\t\t& (TFullSelection['columns'] extends Record<string, unknown> ? InferModelFromColumns<\n\t\t\t\t\t{\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tK in Equal<\n\t\t\t\t\t\t\t\tExclude<\n\t\t\t\t\t\t\t\t\tTFullSelection['columns'][\n\t\t\t\t\t\t\t\t\t\t& keyof TFullSelection['columns']\n\t\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t> extends true ? Exclude<\n\t\t\t\t\t\t\t\t\tkeyof TTableConfig['columns'],\n\t\t\t\t\t\t\t\t\tNonUndefinedKeysOnly<TFullSelection['columns']>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t& {\n\t\t\t\t\t\t\t\t\t\t[K in keyof TFullSelection['columns']]: Equal<\n\t\t\t\t\t\t\t\t\t\t\tTFullSelection['columns'][K],\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t> extends true ? K\n\t\t\t\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t\t\t\t}[keyof TFullSelection['columns']]\n\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t]: TTableConfig['columns'][K];\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t: InferModelFromColumns<TTableConfig['columns']>)\n\t\t\t& (TFullSelection['extras'] extends\n\t\t\t\t| Record<string, unknown>\n\t\t\t\t| ((...args: any[]) => Record<string, unknown>) ? {\n\t\t\t\t\t[\n\t\t\t\t\t\tK in NonUndefinedKeysOnly<\n\t\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>\n\t\t\t\t\t\t>\n\t\t\t\t\t]: Assume<\n\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>[K],\n\t\t\t\t\t\tSQL.Aliased\n\t\t\t\t\t>['_']['type'];\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t\t& (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<\n\t\t\t\t\tTSchema,\n\t\t\t\t\tTFullSelection['with'],\n\t\t\t\t\tTTableConfig['relations']\n\t\t\t\t>\n\t\t\t\t: {})\n\t\t>\n\t: never;\n\nexport interface RelationConfig<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> {\n\trelationName?: string;\n\tfields: TColumns;\n\treferences: ColumnsWithTable<TTableName, TForeignTableName, TColumns>;\n}\n\nexport function extractTablesRelationalConfig<\n\tTTables extends TablesRelationalConfig,\n>(\n\tschema: Record<string, unknown>,\n\tconfigHelpers: (table: Table) => any,\n): { tables: TTables; tableNamesMap: Record<string, string> } {\n\tif (\n\t\tObject.keys(schema).length === 1\n\t\t&& 'default' in schema\n\t\t&& !is(schema['default'], Table)\n\t) {\n\t\tschema = schema['default'] as Record<string, unknown>;\n\t}\n\n\t// table DB name -> schema table key\n\tconst tableNamesMap: Record<string, string> = {};\n\t// Table relations found before their tables - need to buffer them until we know the schema table key\n\tconst relationsBuffer: Record<\n\t\tstring,\n\t\t{ relations: Record<string, Relation>; primaryKey?: AnyColumn[] }\n\t> = {};\n\tconst tablesConfig: TablesRelationalConfig = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (is(value, Table)) {\n\t\t\tconst dbName = getTableUniqueName(value);\n\t\t\tconst bufferedRelations = relationsBuffer[dbName];\n\t\t\ttableNamesMap[dbName] = key;\n\t\t\ttablesConfig[key] = {\n\t\t\t\ttsName: key,\n\t\t\t\tdbName: value[Table.Symbol.Name],\n\t\t\t\tschema: value[Table.Symbol.Schema],\n\t\t\t\tcolumns: value[Table.Symbol.Columns],\n\t\t\t\trelations: bufferedRelations?.relations ?? {},\n\t\t\t\tprimaryKey: bufferedRelations?.primaryKey ?? [],\n\t\t\t};\n\n\t\t\t// Fill in primary keys\n\t\t\tfor (\n\t\t\t\tconst column of Object.values(\n\t\t\t\t\t(value as Table)[Table.Symbol.Columns],\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (column.primary) {\n\t\t\t\t\ttablesConfig[key]!.primaryKey.push(column);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.((value as Table)[Table.Symbol.ExtraConfigColumns]);\n\t\t\tif (extraConfig) {\n\t\t\t\tfor (const configEntry of Object.values(extraConfig)) {\n\t\t\t\t\tif (is(configEntry, PrimaryKeyBuilder)) {\n\t\t\t\t\t\ttablesConfig[key]!.primaryKey.push(...configEntry.columns);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (is(value, Relations)) {\n\t\t\tconst dbName = getTableUniqueName(value.table);\n\t\t\tconst tableName = tableNamesMap[dbName];\n\t\t\tconst relations: Record<string, Relation> = value.config(\n\t\t\t\tconfigHelpers(value.table),\n\t\t\t);\n\t\t\tlet primaryKey: AnyColumn[] | undefined;\n\n\t\t\tfor (const [relationName, relation] of Object.entries(relations)) {\n\t\t\t\tif (tableName) {\n\t\t\t\t\tconst tableConfig = tablesConfig[tableName]!;\n\t\t\t\t\ttableConfig.relations[relationName] = relation;\n\t\t\t\t\tif (primaryKey) {\n\t\t\t\t\t\ttableConfig.primaryKey.push(...primaryKey);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(dbName in relationsBuffer)) {\n\t\t\t\t\t\trelationsBuffer[dbName] = {\n\t\t\t\t\t\t\trelations: {},\n\t\t\t\t\t\t\tprimaryKey,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\trelationsBuffer[dbName]!.relations[relationName] = relation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { tables: tablesConfig as TTables, tableNamesMap };\n}\n\nexport function relations<\n\tTTableName extends string,\n\tTRelations extends Record<string, Relation<any>>,\n>(\n\ttable: AnyTable<{ name: TTableName }>,\n\trelations: (helpers: TableRelationsHelpers<TTableName>) => TRelations,\n): Relations<TTableName, TRelations> {\n\treturn new Relations<TTableName, TRelations>(\n\t\ttable,\n\t\t(helpers: TableRelationsHelpers<TTableName>) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(relations(helpers)).map(([key, value]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue.withFieldName(key),\n\t\t\t\t]),\n\t\t\t) as TRelations,\n\t);\n}\n\nexport function createOne<TTableName extends string>(sourceTable: Table) {\n\treturn function one<\n\t\tTForeignTable extends Table,\n\t\tTColumns extends [\n\t\t\tAnyColumn<{ tableName: TTableName }>,\n\t\t\t...AnyColumn<{ tableName: TTableName }>[],\n\t\t],\n\t>(\n\t\ttable: TForeignTable,\n\t\tconfig?: RelationConfig<TTableName, TForeignTable['_']['name'], TColumns>,\n\t): One<\n\t\tTForeignTable['_']['name'],\n\t\tEqual<TColumns[number]['_']['notNull'], true>\n\t> {\n\t\treturn new One(\n\t\t\tsourceTable,\n\t\t\ttable,\n\t\t\tconfig,\n\t\t\t(config?.fields.reduce<boolean>((res, f) => res && f.notNull, true)\n\t\t\t\t?? false) as Equal<TColumns[number]['_']['notNull'], true>,\n\t\t);\n\t};\n}\n\nexport function createMany(sourceTable: Table) {\n\treturn function many<TForeignTable extends Table>(\n\t\treferencedTable: TForeignTable,\n\t\tconfig?: { relationName: string },\n\t): Many<TForeignTable['_']['name']> {\n\t\treturn new Many(sourceTable, referencedTable, config);\n\t};\n}\n\nexport interface NormalizedRelation {\n\tfields: AnyColumn[];\n\treferences: AnyColumn[];\n}\n\nexport function normalizeRelation(\n\tschema: TablesRelationalConfig,\n\ttableNamesMap: Record<string, string>,\n\trelation: Relation,\n): NormalizedRelation {\n\tif (is(relation, One) && relation.config) {\n\t\treturn {\n\t\t\tfields: relation.config.fields,\n\t\t\treferences: relation.config.references,\n\t\t};\n\t}\n\n\tconst referencedTableTsName = tableNamesMap[getTableUniqueName(relation.referencedTable)];\n\tif (!referencedTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${relation.referencedTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst referencedTableConfig = schema[referencedTableTsName];\n\tif (!referencedTableConfig) {\n\t\tthrow new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n\t}\n\n\tconst sourceTable = relation.sourceTable;\n\tconst sourceTableTsName = tableNamesMap[getTableUniqueName(sourceTable)];\n\tif (!sourceTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${sourceTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst reverseRelations: Relation[] = [];\n\tfor (\n\t\tconst referencedTableRelation of Object.values(\n\t\t\treferencedTableConfig.relations,\n\t\t)\n\t) {\n\t\tif (\n\t\t\t(relation.relationName\n\t\t\t\t&& relation !== referencedTableRelation\n\t\t\t\t&& referencedTableRelation.relationName === relation.relationName)\n\t\t\t|| (!relation.relationName\n\t\t\t\t&& referencedTableRelation.referencedTable === relation.sourceTable)\n\t\t) {\n\t\t\treverseRelations.push(referencedTableRelation);\n\t\t}\n\t}\n\n\tif (reverseRelations.length > 1) {\n\t\tthrow relation.relationName\n\t\t\t? new Error(\n\t\t\t\t`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`,\n\t\t\t)\n\t\t\t: new Error(\n\t\t\t\t`There are multiple relations between \"${referencedTableTsName}\" and \"${\n\t\t\t\t\trelation.sourceTable[Table.Symbol.Name]\n\t\t\t\t}\". Please specify relation name`,\n\t\t\t);\n\t}\n\n\tif (\n\t\treverseRelations[0]\n\t\t&& is(reverseRelations[0], One)\n\t\t&& reverseRelations[0].config\n\t) {\n\t\treturn {\n\t\t\tfields: reverseRelations[0].config.references,\n\t\t\treferences: reverseRelations[0].config.fields,\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`,\n\t);\n}\n\nexport function createTableRelationsHelpers<TTableName extends string>(\n\tsourceTable: AnyTable<{ name: TTableName }>,\n) {\n\treturn {\n\t\tone: createOne<TTableName>(sourceTable),\n\t\tmany: createMany(sourceTable),\n\t};\n}\n\nexport type TableRelationsHelpers<TTableName extends string> = ReturnType<\n\ttypeof createTableRelationsHelpers<TTableName>\n>;\n\nexport interface BuildRelationalQueryResult<\n\tTTable extends Table = Table,\n\tTColumn extends Column = Column,\n> {\n\ttableTsKey: string;\n\tselection: {\n\t\tdbKey: string;\n\t\ttsKey: string;\n\t\tfield: TColumn | SQL | SQL.Aliased;\n\t\trelationTableTsKey: string | undefined;\n\t\tisJson: boolean;\n\t\tisExtra?: boolean;\n\t\tselection: BuildRelationalQueryResult<TTable>['selection'];\n\t}[];\n\tsql: TTable | SQL;\n}\n\nexport function mapRelationalRow(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst rawSubRows = row[selectionItemIndex] as\n\t\t\t\t| unknown[]\n\t\t\t\t| null\n\t\t\t\t| [null]\n\t\t\t\t| string;\n\t\t\tconst subRows = typeof rawSubRows === 'string'\n\t\t\t\t? (JSON.parse(rawSubRows) as unknown[])\n\t\t\t\t: rawSubRows;\n\t\t\tresult[selectionItem.tsKey] = is(relation, One)\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: (subRows as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function mapRelationalRowFromObj(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst isOne = is(relation, One);\n\t\t\tconst rawSubRows = row[selectionItemIndex] as unknown[] | null | [null] | string;\n\n\t\t\tlet subRows = rawSubRows as unknown[] | null;\n\t\t\tif (subRows || Array.isArray(subRows)) {\n\t\t\t\tsubRows = (typeof rawSubRows === 'string' ? JSON.parse(rawSubRows) : rawSubRows) as unknown[];\n\n\t\t\t\tsubRows = isOne\n\t\t\t\t\t? subRows.flatMap((r) => Array.isArray(r) ? r : Object.values(r as any))\n\t\t\t\t\t: subRows.map((r) => Array.isArray(r) ? r : Object.values(r as any));\n\t\t\t}\n\n\t\t\tresult[selectionItem.tsKey] = isOne\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRowFromObj(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: ((subRows ?? []) as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRowFromObj(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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","names":["relations"]}
1
+ {"version":3,"sources":["../src/_relations.ts"],"sourcesContent":["import { type AnyTable, getTableUniqueName, type InferModelFromColumns, Table } from '~/table.ts';\nimport { type AnyColumn, Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';\nimport {\n\tand,\n\tasc,\n\tbetween,\n\tdesc,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tisNotNull,\n\tisNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotIlike,\n\tnotInArray,\n\tnotLike,\n\tor,\n} from './sql/expressions/index.ts';\nimport { type Placeholder, SQL, sql } from './sql/sql.ts';\nimport type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';\n\nexport abstract class Relation<TTableName extends string = string> {\n\tstatic readonly [entityKind]: string = 'Relation';\n\n\tdeclare readonly $brand: 'Relation';\n\treadonly referencedTableName: TTableName;\n\tfieldName!: string;\n\n\tconstructor(\n\t\treadonly sourceTable: Table,\n\t\treadonly referencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly relationName: string | undefined,\n\t) {\n\t\tthis.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;\n\t}\n\n\tabstract withFieldName(fieldName: string): Relation<TTableName>;\n}\n\nexport class Relations<\n\tTTableName extends string = string,\n\tTConfig extends Record<string, Relation> = Record<string, Relation>,\n> {\n\tstatic readonly [entityKind]: string = 'Relations';\n\n\tdeclare readonly $brand: 'Relations';\n\n\tconstructor(\n\t\treadonly table: AnyTable<{ name: TTableName }>,\n\t\treadonly config: (helpers: TableRelationsHelpers<TTableName>) => TConfig,\n\t) {}\n}\n\nexport class One<\n\tTTableName extends string = string,\n\tTIsNullable extends boolean = boolean,\n> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'One';\n\n\tdeclare protected $relationBrand: 'One';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config:\n\t\t\t| RelationConfig<\n\t\t\t\tTTableName,\n\t\t\t\tstring,\n\t\t\t\tAnyColumn<{ tableName: TTableName }>[]\n\t\t\t>\n\t\t\t| undefined,\n\t\treadonly isNullable: TIsNullable,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): One<TTableName> {\n\t\tconst relation = new One(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t\tthis.isNullable,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport class Many<TTableName extends string> extends Relation<TTableName> {\n\tstatic override readonly [entityKind]: string = 'Many';\n\n\tdeclare protected $relationBrand: 'Many';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config: { relationName: string } | undefined,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): Many<TTableName> {\n\t\tconst relation = new Many(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport type TableRelationsKeysOnly<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n\tK extends keyof TSchema,\n> = TSchema[K] extends Relations<TTableName> ? K : never;\n\nexport type ExtractTableRelationsFromSchema<\n\tTSchema extends Record<string, unknown>,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TableRelationsKeysOnly<\n\t\t\t\tTSchema,\n\t\t\t\tTTableName,\n\t\t\t\tK\n\t\t\t>\n\t\t]: TSchema[K] extends Relations<TTableName, infer TConfig> ? TConfig : never;\n\t}\n>;\n\nexport type ExtractObjectValues<T> = T[keyof T];\n\nexport type ExtractRelationsFromTableExtraConfigSchema<\n\tTConfig extends unknown[],\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TConfig as TConfig[K] extends Relations<any> ? K\n\t\t\t\t: never\n\t\t]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig\n\t\t\t: never;\n\t}\n>;\n\nexport function getOperators() {\n\treturn {\n\t\tand,\n\t\tbetween,\n\t\teq,\n\t\texists,\n\t\tgt,\n\t\tgte,\n\t\tilike,\n\t\tinArray,\n\t\tisNull,\n\t\tisNotNull,\n\t\tlike,\n\t\tlt,\n\t\tlte,\n\t\tne,\n\t\tnot,\n\t\tnotBetween,\n\t\tnotExists,\n\t\tnotLike,\n\t\tnotIlike,\n\t\tnotInArray,\n\t\tor,\n\t\tsql,\n\t};\n}\n\nexport type Operators = ReturnType<typeof getOperators>;\n\nexport function getOrderByOperators() {\n\treturn {\n\t\tsql,\n\t\tasc,\n\t\tdesc,\n\t};\n}\n\nexport type OrderByOperators = ReturnType<typeof getOrderByOperators>;\n\nexport type FindTableByDBName<\n\tTSchema extends TablesRelationalConfig,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K\n\t\t\t\t: never\n\t\t]: TSchema[K];\n\t}\n>;\n\nexport type DBQueryConfig<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> =\n\t& {\n\t\tcolumns?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['columns']]?: boolean;\n\t\t\t}\n\t\t\t| undefined;\n\t\twith?:\n\t\t\t| {\n\t\t\t\t[K in keyof TTableConfig['relations']]?:\n\t\t\t\t\t| true\n\t\t\t\t\t| DBQueryConfig<\n\t\t\t\t\t\tTTableConfig['relations'][K] extends One ? 'one' : 'many',\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\tFindTableByDBName<\n\t\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\t\tTTableConfig['relations'][K]['referencedTableName']\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t\t| undefined;\n\t\t\t}\n\t\t\t| undefined;\n\t\textras?:\n\t\t\t| Record<string, SQL.Aliased>\n\t\t\t| ((\n\t\t\t\tfields: Simplify<\n\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t>,\n\t\t\t\toperators: { sql: Operators['sql'] },\n\t\t\t) => Record<string, SQL.Aliased>)\n\t\t\t| undefined;\n\t}\n\t& (TRelationType extends 'many' ?\n\t\t\t& {\n\t\t\t\twhere?:\n\t\t\t\t\t| SQL\n\t\t\t\t\t| undefined\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: Operators,\n\t\t\t\t\t) => SQL | undefined);\n\t\t\t\torderBy?:\n\t\t\t\t\t| ValueOrArray<AnyColumn | SQL>\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: OrderByOperators,\n\t\t\t\t\t) => ValueOrArray<AnyColumn | SQL>)\n\t\t\t\t\t| undefined;\n\t\t\t\tlimit?: number | Placeholder | undefined;\n\t\t\t}\n\t\t\t& (TIsRoot extends true ? {\n\t\t\t\t\toffset?: number | Placeholder | undefined;\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t: {});\n\nexport interface TableRelationalConfig {\n\ttsName: string;\n\tdbName: string;\n\tcolumns: Record<string, Column>;\n\trelations: Record<string, Relation>;\n\tprimaryKey: AnyColumn[];\n\tschema?: string;\n}\n\nexport type TablesRelationalConfig = Record<string, TableRelationalConfig>;\n\nexport interface RelationalSchemaConfig<\n\tTSchema extends TablesRelationalConfig,\n> {\n\tfullSchema: Record<string, unknown>;\n\tschema: TSchema;\n\ttableNamesMap: Record<string, string>;\n}\n\nexport type ExtractTablesWithRelations<\n\tTSchema extends Record<string, unknown>,\n> = {\n\t[\n\t\tK in keyof TSchema as TSchema[K] extends Table ? K\n\t\t\t: never\n\t]: TSchema[K] extends Table ? {\n\t\t\ttsName: K & string;\n\t\t\tdbName: TSchema[K]['_']['name'];\n\t\t\tcolumns: TSchema[K]['_']['columns'];\n\t\t\trelations: ExtractTableRelationsFromSchema<\n\t\t\t\tTSchema,\n\t\t\t\tTSchema[K]['_']['name']\n\t\t\t>;\n\t\t\tprimaryKey: AnyColumn[];\n\t\t}\n\t\t: never;\n};\n\nexport type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R\n\t: T;\n\nexport type BuildRelationResult<\n\tTSchema extends TablesRelationalConfig,\n\tTInclude,\n\tTRelations extends Record<string, Relation>,\n> = {\n\t[\n\t\tK in\n\t\t\t& NonUndefinedKeysOnly<TInclude>\n\t\t\t& keyof TRelations\n\t]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<\n\t\t\tTSchema,\n\t\t\tFindTableByDBName<TSchema, TRel['referencedTableName']>,\n\t\t\tAssume<TInclude[K], true | Record<string, unknown>>\n\t\t> extends infer TResult ? TRel extends One ?\n\t\t\t\t\t| TResult\n\t\t\t\t\t| (Equal<TRel['isNullable'], false> extends true ? null : never)\n\t\t\t: TResult[]\n\t\t: never\n\t\t: never;\n};\n\nexport type NonUndefinedKeysOnly<T> =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type BuildQueryResult<\n\tTSchema extends TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig,\n\tTFullSelection extends true | Record<string, unknown>,\n> = Equal<TFullSelection, true> extends true ? InferModelFromColumns<TTableConfig['columns']>\n\t: TFullSelection extends Record<string, unknown> ? Simplify<\n\t\t\t& (TFullSelection['columns'] extends Record<string, unknown> ? InferModelFromColumns<\n\t\t\t\t\t{\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tK in Equal<\n\t\t\t\t\t\t\t\tExclude<\n\t\t\t\t\t\t\t\t\tTFullSelection['columns'][\n\t\t\t\t\t\t\t\t\t\t& keyof TFullSelection['columns']\n\t\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t> extends true ? Exclude<\n\t\t\t\t\t\t\t\t\tkeyof TTableConfig['columns'],\n\t\t\t\t\t\t\t\t\tNonUndefinedKeysOnly<TFullSelection['columns']>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t& {\n\t\t\t\t\t\t\t\t\t\t[K in keyof TFullSelection['columns']]: Equal<\n\t\t\t\t\t\t\t\t\t\t\tTFullSelection['columns'][K],\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t> extends true ? K\n\t\t\t\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t\t\t\t}[keyof TFullSelection['columns']]\n\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t]: TTableConfig['columns'][K];\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t: InferModelFromColumns<TTableConfig['columns']>)\n\t\t\t& (TFullSelection['extras'] extends\n\t\t\t\t| Record<string, unknown>\n\t\t\t\t| ((...args: any[]) => Record<string, unknown>) ? {\n\t\t\t\t\t[\n\t\t\t\t\t\tK in NonUndefinedKeysOnly<\n\t\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>\n\t\t\t\t\t\t>\n\t\t\t\t\t]: Assume<\n\t\t\t\t\t\tReturnTypeOrValue<TFullSelection['extras']>[K],\n\t\t\t\t\t\tSQL.Aliased\n\t\t\t\t\t>['_']['type'];\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t\t& (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<\n\t\t\t\t\tTSchema,\n\t\t\t\t\tTFullSelection['with'],\n\t\t\t\t\tTTableConfig['relations']\n\t\t\t\t>\n\t\t\t\t: {})\n\t\t>\n\t: never;\n\nexport interface RelationConfig<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> {\n\trelationName?: string;\n\tfields: TColumns;\n\treferences: ColumnsWithTable<TTableName, TForeignTableName, TColumns>;\n}\n\nexport function extractTablesRelationalConfig<\n\tTTables extends TablesRelationalConfig,\n>(\n\tschema: Record<string, unknown>,\n\tconfigHelpers: (table: Table) => any,\n): { tables: TTables; tableNamesMap: Record<string, string> } {\n\tif (\n\t\tObject.keys(schema).length === 1\n\t\t&& 'default' in schema\n\t\t&& !is(schema['default'], Table)\n\t) {\n\t\tschema = schema['default'] as Record<string, unknown>;\n\t}\n\n\t// table DB name -> schema table key\n\tconst tableNamesMap: Record<string, string> = {};\n\t// Table relations found before their tables - need to buffer them until we know the schema table key\n\tconst relationsBuffer: Record<\n\t\tstring,\n\t\t{ relations: Record<string, Relation>; primaryKey?: AnyColumn[] }\n\t> = {};\n\tconst tablesConfig: TablesRelationalConfig = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (is(value, Table)) {\n\t\t\tconst dbName = getTableUniqueName(value);\n\t\t\tconst bufferedRelations = relationsBuffer[dbName];\n\t\t\ttableNamesMap[dbName] = key;\n\t\t\ttablesConfig[key] = {\n\t\t\t\ttsName: key,\n\t\t\t\tdbName: value[Table.Symbol.Name],\n\t\t\t\tschema: value[Table.Symbol.Schema],\n\t\t\t\tcolumns: value[Table.Symbol.Columns],\n\t\t\t\trelations: bufferedRelations?.relations ?? {},\n\t\t\t\tprimaryKey: bufferedRelations?.primaryKey ?? [],\n\t\t\t};\n\n\t\t\t// Fill in primary keys\n\t\t\tfor (\n\t\t\t\tconst column of Object.values(\n\t\t\t\t\t(value as Table)[Table.Symbol.Columns],\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (column.primary) {\n\t\t\t\t\ttablesConfig[key]!.primaryKey.push(column);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.((value as Table)[Table.Symbol.ExtraConfigColumns]);\n\t\t\tif (extraConfig) {\n\t\t\t\tfor (const configEntry of Object.values(extraConfig)) {\n\t\t\t\t\tif (is(configEntry, PrimaryKeyBuilder)) {\n\t\t\t\t\t\ttablesConfig[key]!.primaryKey.push(...configEntry.columns);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (is(value, Relations)) {\n\t\t\tconst dbName = getTableUniqueName(value.table);\n\t\t\tconst tableName = tableNamesMap[dbName];\n\t\t\tconst relations: Record<string, Relation> = value.config(\n\t\t\t\tconfigHelpers(value.table),\n\t\t\t);\n\t\t\tlet primaryKey: AnyColumn[] | undefined;\n\n\t\t\tfor (const [relationName, relation] of Object.entries(relations)) {\n\t\t\t\tif (tableName) {\n\t\t\t\t\tconst tableConfig = tablesConfig[tableName]!;\n\t\t\t\t\ttableConfig.relations[relationName] = relation;\n\t\t\t\t\tif (primaryKey) {\n\t\t\t\t\t\ttableConfig.primaryKey.push(...primaryKey);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(dbName in relationsBuffer)) {\n\t\t\t\t\t\trelationsBuffer[dbName] = {\n\t\t\t\t\t\t\trelations: {},\n\t\t\t\t\t\t\tprimaryKey,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\trelationsBuffer[dbName]!.relations[relationName] = relation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { tables: tablesConfig as TTables, tableNamesMap };\n}\n\nexport function relations<\n\tTTableName extends string,\n\tTRelations extends Record<string, Relation<any>>,\n>(\n\ttable: AnyTable<{ name: TTableName }>,\n\trelations: (helpers: TableRelationsHelpers<TTableName>) => TRelations,\n): Relations<TTableName, TRelations> {\n\treturn new Relations<TTableName, TRelations>(\n\t\ttable,\n\t\t(helpers: TableRelationsHelpers<TTableName>) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(relations(helpers)).map(([key, value]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue.withFieldName(key),\n\t\t\t\t]),\n\t\t\t) as TRelations,\n\t);\n}\n\nexport function createOne<TTableName extends string>(sourceTable: Table) {\n\treturn function one<\n\t\tTForeignTable extends Table,\n\t\tTColumns extends [\n\t\t\tAnyColumn<{ tableName: TTableName }>,\n\t\t\t...AnyColumn<{ tableName: TTableName }>[],\n\t\t],\n\t>(\n\t\ttable: TForeignTable,\n\t\tconfig?: RelationConfig<TTableName, TForeignTable['_']['name'], TColumns>,\n\t): One<\n\t\tTForeignTable['_']['name'],\n\t\tEqual<TColumns[number]['_']['notNull'], true>\n\t> {\n\t\treturn new One(\n\t\t\tsourceTable,\n\t\t\ttable,\n\t\t\tconfig,\n\t\t\t(config?.fields.reduce<boolean>((res, f) => res && f.notNull, true)\n\t\t\t\t?? false) as Equal<TColumns[number]['_']['notNull'], true>,\n\t\t);\n\t};\n}\n\nexport function createMany(sourceTable: Table) {\n\treturn function many<TForeignTable extends Table>(\n\t\treferencedTable: TForeignTable,\n\t\tconfig?: { relationName: string },\n\t): Many<TForeignTable['_']['name']> {\n\t\treturn new Many(sourceTable, referencedTable, config);\n\t};\n}\n\nexport interface NormalizedRelation {\n\tfields: AnyColumn[];\n\treferences: AnyColumn[];\n}\n\nexport function normalizeRelation(\n\tschema: TablesRelationalConfig,\n\ttableNamesMap: Record<string, string>,\n\trelation: Relation,\n): NormalizedRelation {\n\tif (is(relation, One) && relation.config) {\n\t\treturn {\n\t\t\tfields: relation.config.fields,\n\t\t\treferences: relation.config.references,\n\t\t};\n\t}\n\n\tconst referencedTableTsName = tableNamesMap[getTableUniqueName(relation.referencedTable)];\n\tif (!referencedTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${relation.referencedTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst referencedTableConfig = schema[referencedTableTsName];\n\tif (!referencedTableConfig) {\n\t\tthrow new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n\t}\n\n\tconst sourceTable = relation.sourceTable;\n\tconst sourceTableTsName = tableNamesMap[getTableUniqueName(sourceTable)];\n\tif (!sourceTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${sourceTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst reverseRelations: Relation[] = [];\n\tfor (\n\t\tconst referencedTableRelation of Object.values(\n\t\t\treferencedTableConfig.relations,\n\t\t)\n\t) {\n\t\tif (\n\t\t\t(relation.relationName\n\t\t\t\t&& relation !== referencedTableRelation\n\t\t\t\t&& referencedTableRelation.relationName === relation.relationName)\n\t\t\t|| (!relation.relationName\n\t\t\t\t&& referencedTableRelation.referencedTable === relation.sourceTable)\n\t\t) {\n\t\t\treverseRelations.push(referencedTableRelation);\n\t\t}\n\t}\n\n\tif (reverseRelations.length > 1) {\n\t\tthrow relation.relationName\n\t\t\t? new Error(\n\t\t\t\t`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`,\n\t\t\t)\n\t\t\t: new Error(\n\t\t\t\t`There are multiple relations between \"${referencedTableTsName}\" and \"${\n\t\t\t\t\trelation.sourceTable[Table.Symbol.Name]\n\t\t\t\t}\". Please specify relation name`,\n\t\t\t);\n\t}\n\n\tif (\n\t\treverseRelations[0]\n\t\t&& is(reverseRelations[0], One)\n\t\t&& reverseRelations[0].config\n\t) {\n\t\treturn {\n\t\t\tfields: reverseRelations[0].config.references,\n\t\t\treferences: reverseRelations[0].config.fields,\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`,\n\t);\n}\n\nexport function createTableRelationsHelpers<TTableName extends string>(\n\tsourceTable: AnyTable<{ name: TTableName }>,\n) {\n\treturn {\n\t\tone: createOne<TTableName>(sourceTable),\n\t\tmany: createMany(sourceTable),\n\t};\n}\n\nexport type TableRelationsHelpers<TTableName extends string> = ReturnType<\n\ttypeof createTableRelationsHelpers<TTableName>\n>;\n\nexport interface BuildRelationalQueryResult<\n\tTTable extends Table = Table,\n\tTColumn extends Column = Column,\n> {\n\ttableTsKey: string;\n\tselection: {\n\t\tdbKey: string;\n\t\ttsKey: string;\n\t\tfield: TColumn | SQL | SQL.Aliased;\n\t\trelationTableTsKey: string | undefined;\n\t\tisJson: boolean;\n\t\tisExtra?: boolean;\n\t\tselection: BuildRelationalQueryResult<TTable>['selection'];\n\t}[];\n\tsql: TTable | SQL;\n}\n\nexport function mapRelationalRow(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst rawSubRows = row[selectionItemIndex] as\n\t\t\t\t| unknown[]\n\t\t\t\t| null\n\t\t\t\t| [null]\n\t\t\t\t| string;\n\t\t\tconst subRows = typeof rawSubRows === 'string'\n\t\t\t\t? (JSON.parse(rawSubRows) as unknown[])\n\t\t\t\t: rawSubRows;\n\t\t\tresult[selectionItem.tsKey] = is(relation, One)\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: (subRows as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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","names":["relations"]}
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,94 +15,56 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var driver_exports = {};
30
20
  __export(driver_exports, {
31
- BunSQLDatabase: () => BunSQLDatabase,
32
21
  drizzle: () => drizzle
33
22
  });
34
23
  module.exports = __toCommonJS(driver_exports);
35
- var import_bun = require("bun");
36
- var V1 = __toESM(require("../_relations.cjs"), 1);
37
- var import_entity = require("../entity.cjs");
38
- var import_logger = require("../logger.cjs");
39
- var import_db = require("../pg-core/db.cjs");
40
- var import_dialect = require("../pg-core/dialect.cjs");
41
- var import_utils = require("../utils.cjs");
42
- var import_session = require("./session.cjs");
43
- class BunSQLDatabase extends import_db.PgDatabase {
44
- static [import_entity.entityKind] = "BunSQLDatabase";
45
- }
46
- function construct(client, config = {}) {
47
- const dialect = new import_dialect.PgDialect({ casing: config.casing });
48
- let logger;
49
- if (config.logger === true) {
50
- logger = new import_logger.DefaultLogger();
51
- } else if (config.logger !== false) {
52
- logger = config.logger;
53
- }
54
- let schema;
55
- if (config.schema) {
56
- const tablesConfig = V1.extractTablesRelationalConfig(
57
- config.schema,
58
- V1.createTableRelationsHelpers
59
- );
60
- schema = {
61
- fullSchema: config.schema,
62
- schema: tablesConfig.tables,
63
- tableNamesMap: tablesConfig.tableNamesMap
64
- };
65
- }
66
- const relations = config.relations ?? {};
67
- const session = new import_session.BunSQLSession(client, dialect, relations, schema, { logger, cache: config.cache });
68
- const db = new BunSQLDatabase(dialect, session, relations, schema);
69
- db.$client = client;
70
- db.$cache = config.cache;
71
- if (db.$cache) {
72
- db.$cache["invalidate"] = config.cache?.onMutate;
73
- }
74
- return db;
75
- }
24
+ var import_driver = require("./mysql/driver.cjs");
25
+ var import_driver2 = require("./postgres/driver.cjs");
26
+ var import_driver3 = require("./sqlite/driver.cjs");
76
27
  function drizzle(...params) {
77
- if (typeof params[0] === "string") {
78
- const instance = new import_bun.SQL(params[0]);
79
- return construct(instance, params[1]);
80
- }
81
- if ((0, import_utils.isConfig)(params[0])) {
82
- const { connection, client, ...drizzleConfig } = params[0];
83
- if (client) return construct(client, drizzleConfig);
84
- if (typeof connection === "object" && connection.url !== void 0) {
85
- const { url, ...config } = connection;
86
- const instance2 = new import_bun.SQL({ url, ...config });
87
- return construct(instance2, drizzleConfig);
88
- }
89
- const instance = new import_bun.SQL(connection);
90
- return construct(instance, drizzleConfig);
91
- }
92
- return construct(params[0], params[1]);
28
+ return (0, import_driver2.drizzle)(...params);
93
29
  }
94
30
  ((drizzle2) => {
95
31
  function mock(config) {
96
- return construct({
97
- options: {
98
- parsers: {},
99
- serializers: {}
100
- }
101
- }, config);
32
+ return import_driver2.drizzle.mock(config);
102
33
  }
103
34
  drizzle2.mock = mock;
35
+ function postgres(...params) {
36
+ return (0, import_driver2.drizzle)(...params);
37
+ }
38
+ drizzle2.postgres = postgres;
39
+ ((postgres2) => {
40
+ function mock2(config) {
41
+ return import_driver2.drizzle.mock(config);
42
+ }
43
+ postgres2.mock = mock2;
44
+ })(postgres = drizzle2.postgres || (drizzle2.postgres = {}));
45
+ function sqlite(...params) {
46
+ return (0, import_driver3.drizzle)(...params);
47
+ }
48
+ drizzle2.sqlite = sqlite;
49
+ ((sqlite2) => {
50
+ function mock2(config) {
51
+ return import_driver3.drizzle.mock(config);
52
+ }
53
+ sqlite2.mock = mock2;
54
+ })(sqlite = drizzle2.sqlite || (drizzle2.sqlite = {}));
55
+ function mysql(...params) {
56
+ return (0, import_driver.drizzle)(...params);
57
+ }
58
+ drizzle2.mysql = mysql;
59
+ ((mysql2) => {
60
+ function mock2(config) {
61
+ return import_driver.drizzle.mock(config);
62
+ }
63
+ mysql2.mock = mock2;
64
+ })(mysql = drizzle2.mysql || (drizzle2.mysql = {}));
104
65
  })(drizzle || (drizzle = {}));
105
66
  // Annotate the CommonJS export names for ESM import in node:
106
67
  0 && (module.exports = {
107
- BunSQLDatabase,
108
68
  drizzle
109
69
  });
110
70
  //# sourceMappingURL=driver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bun-sql/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { SQLOptions } from 'bun';\nimport { SQL } from 'bun';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { BunSQLQueryResultHKT } from './session.ts';\nimport { BunSQLSession } from './session.ts';\n\nexport class BunSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<BunSQLQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'BunSQLDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQL,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: SQL;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\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 relations = config.relations ?? {} as TRelations;\n\tconst session = new BunSQLSession(client, dialect, relations, schema, { logger, cache: config.cache });\n\tconst db = new BunSQLDatabase(dialect, session, relations, schema as any) as BunSQLDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & SQLOptions);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new SQL(params[0]);\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\tconnection?: { url?: string } & SQLOptions;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, TRelations>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = new SQL({ url, ...config });\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new SQL(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): BunSQLDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAoB;AACpB,SAAoB;AACpB,oBAA2B;AAC3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAE1B,mBAA6C;AAE7C,qBAA8B;AAEvB,MAAM,uBAGH,qBAAsD;AAAA,EAC/D,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI,6BAAc,QAAQ,SAAS,WAAW,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AACrG,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,WAAW,MAAa;AAIxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAKZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,eAAI,OAAO,CAAC,CAAC;AAElC,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;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,IAAI,eAAI,EAAE,KAAK,GAAG,OAAO,CAAC;AAC3C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,eAAI,UAAU;AACnC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAdO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
1
+ {"version":3,"sources":["../../src/bun-sql/driver.ts"],"sourcesContent":["import type { SQL } from 'bun';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type BunMySqlDatabase, type BunMySqlDrizzleConfig, drizzle as mysqlConstructor } from './mysql/driver.ts';\nimport { type BunSQLDatabase, drizzle as postgresConstructor } from './postgres/driver.ts';\nimport { type BunSQLiteDatabase, drizzle as sqliteConstructor } from './sqlite/driver.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\treturn postgresConstructor(...params);\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn postgresConstructor.mock(config);\n\t}\n\n\texport function postgres<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\tTClient extends SQL = SQL,\n\t>(\n\t\t...params: [\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema, TRelations>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\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): BunSQLDatabase<TSchema, TRelations> & {\n\t\t$client: TClient;\n\t} {\n\t\treturn postgresConstructor(...params);\n\t}\n\n\texport namespace postgres {\n\t\texport function mock<\n\t\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\t>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLDatabase<TSchema, TRelations> & {\n\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t} {\n\t\t\treturn postgresConstructor.mock(config);\n\t\t}\n\t}\n\n\texport function sqlite<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\tTClient extends SQL = SQL,\n\t>(\n\t\t...params: [\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema, TRelations>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\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): BunSQLiteDatabase<TSchema, TRelations> & {\n\t\t$client: TClient;\n\t} {\n\t\treturn sqliteConstructor(...params);\n\t}\n\n\texport namespace sqlite {\n\t\texport function mock<\n\t\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\t>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLiteDatabase<TSchema, TRelations> & {\n\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t} {\n\t\t\treturn sqliteConstructor.mock(config);\n\t\t}\n\t}\n\n\texport function mysql<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\tTClient extends SQL = SQL,\n\t>(\n\t\t...params: [\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tBunMySqlDrizzleConfig<TSchema, TRelations>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& BunMySqlDrizzleConfig<TSchema, TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\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): BunMySqlDatabase<TSchema, TRelations> & {\n\t\t$client: TClient;\n\t} {\n\t\treturn mysqlConstructor(...params) as BunMySqlDatabase<TSchema, TRelations> & {\n\t\t\t$client: TClient;\n\t\t};\n\t}\n\n\texport namespace mysql {\n\t\texport function mock<\n\t\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\t>(config?: BunMySqlDrizzleConfig<TSchema, TRelations>): BunMySqlDatabase<TSchema, TRelations> & {\n\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t} {\n\t\t\treturn mysqlConstructor.mock(config) as BunMySqlDatabase<TSchema, TRelations> & {\n\t\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t\t};\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAA+F;AAC/F,IAAAA,iBAAoE;AACpE,IAAAA,iBAAqE;AAE9D,SAAS,WAKZ,QAiBF;AACD,aAAO,eAAAC,SAAoB,GAAG,MAAM;AACrC;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAGd,QAEA;AACD,WAAO,eAAAD,QAAoB,KAAK,MAAM;AAAA,EACvC;AAPO,EAAAC,SAAS;AAST,WAAS,YAKZ,QAiBF;AACD,eAAO,eAAAD,SAAoB,GAAG,MAAM;AAAA,EACrC;AAxBO,EAAAC,SAAS;AA0BT,IAAUC,cAAV;AACC,aAASC,MAGd,QAEA;AACD,aAAO,eAAAH,QAAoB,KAAK,MAAM;AAAA,IACvC;AAPO,IAAAE,UAAS,OAAAC;AAAA,KADA,WAAAF,SAAA,aAAAA,SAAA;AAWV,WAAS,UAKZ,QAiBF;AACD,eAAO,eAAAG,SAAkB,GAAG,MAAM;AAAA,EACnC;AAxBO,EAAAH,SAAS;AA0BT,IAAUI,YAAV;AACC,aAASF,MAGd,QAEA;AACD,aAAO,eAAAC,QAAkB,KAAK,MAAM;AAAA,IACrC;AAPO,IAAAC,QAAS,OAAAF;AAAA,KADA,SAAAF,SAAA,WAAAA,SAAA;AAWV,WAAS,SAKZ,QAiBF;AACD,eAAO,cAAAK,SAAiB,GAAG,MAAM;AAAA,EAGlC;AA1BO,EAAAL,SAAS;AA4BT,IAAUM,WAAV;AACC,aAASJ,MAGd,QAEA;AACD,aAAO,cAAAG,QAAiB,KAAK,MAAM;AAAA,IAGpC;AATO,IAAAC,OAAS,OAAAJ;AAAA,KADA,QAAAF,SAAA,UAAAA,SAAA;AAAA,GAhHD;","names":["import_driver","postgresConstructor","drizzle","postgres","mock","sqliteConstructor","sqlite","mysqlConstructor","mysql"]}