drizzle-orm 1.0.0-beta.1-ec2e97b → 1.0.0-beta.1-140e6cc

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 (1795) hide show
  1. package/_relations.cjs +6 -50
  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 +6 -49
  6. package/_relations.js.map +1 -1
  7. package/alias.cjs +8 -56
  8. package/alias.cjs.map +1 -1
  9. package/alias.d.cts +3 -13
  10. package/alias.d.ts +3 -13
  11. package/alias.js +8 -53
  12. package/alias.js.map +1 -1
  13. package/aws-data-api/common/index.cjs +9 -18
  14. package/aws-data-api/common/index.cjs.map +1 -1
  15. package/aws-data-api/common/index.d.cts +1 -4
  16. package/aws-data-api/common/index.d.ts +1 -4
  17. package/aws-data-api/common/index.js +9 -17
  18. package/aws-data-api/common/index.js.map +1 -1
  19. package/aws-data-api/pg/driver.cjs +3 -0
  20. package/aws-data-api/pg/driver.cjs.map +1 -1
  21. package/aws-data-api/pg/driver.d.cts +3 -0
  22. package/aws-data-api/pg/driver.d.ts +3 -0
  23. package/aws-data-api/pg/driver.js +3 -0
  24. package/aws-data-api/pg/driver.js.map +1 -1
  25. package/better-sqlite3/driver.cjs +14 -10
  26. package/better-sqlite3/driver.cjs.map +1 -1
  27. package/better-sqlite3/driver.d.cts +3 -3
  28. package/better-sqlite3/driver.d.ts +3 -3
  29. package/better-sqlite3/driver.js +14 -10
  30. package/better-sqlite3/driver.js.map +1 -1
  31. package/bun-sql/driver.cjs.map +1 -1
  32. package/bun-sql/driver.d.cts +8 -8
  33. package/bun-sql/driver.d.ts +8 -8
  34. package/bun-sql/driver.js.map +1 -1
  35. package/bun-sql/mysql/driver.cjs +14 -10
  36. package/bun-sql/mysql/driver.cjs.map +1 -1
  37. package/bun-sql/mysql/driver.d.cts +3 -3
  38. package/bun-sql/mysql/driver.d.ts +3 -3
  39. package/bun-sql/mysql/driver.js +14 -10
  40. package/bun-sql/mysql/driver.js.map +1 -1
  41. package/bun-sql/postgres/driver.cjs +14 -10
  42. package/bun-sql/postgres/driver.cjs.map +1 -1
  43. package/bun-sql/postgres/driver.d.cts +3 -3
  44. package/bun-sql/postgres/driver.d.ts +3 -3
  45. package/bun-sql/postgres/driver.js +14 -10
  46. package/bun-sql/postgres/driver.js.map +1 -1
  47. package/bun-sql/sqlite/driver.cjs +14 -10
  48. package/bun-sql/sqlite/driver.cjs.map +1 -1
  49. package/bun-sql/sqlite/driver.d.cts +3 -3
  50. package/bun-sql/sqlite/driver.d.ts +3 -3
  51. package/bun-sql/sqlite/driver.js +14 -10
  52. package/bun-sql/sqlite/driver.js.map +1 -1
  53. package/bun-sql/sqlite/session.cjs +2 -0
  54. package/bun-sql/sqlite/session.cjs.map +1 -1
  55. package/bun-sql/sqlite/session.js +2 -0
  56. package/bun-sql/sqlite/session.js.map +1 -1
  57. package/bun-sqlite/driver.cjs +15 -11
  58. package/bun-sqlite/driver.cjs.map +1 -1
  59. package/bun-sqlite/driver.d.cts +3 -3
  60. package/bun-sqlite/driver.d.ts +3 -3
  61. package/bun-sqlite/driver.js +15 -11
  62. package/bun-sqlite/driver.js.map +1 -1
  63. package/column-builder.cjs.map +1 -1
  64. package/column-builder.d.cts +8 -9
  65. package/column-builder.d.ts +8 -9
  66. package/column-builder.js.map +1 -1
  67. package/column.cjs +0 -7
  68. package/column.cjs.map +1 -1
  69. package/column.d.cts +0 -2
  70. package/column.d.ts +0 -2
  71. package/column.js +0 -7
  72. package/column.js.map +1 -1
  73. package/durable-sqlite/migrator.cjs +7 -10
  74. package/durable-sqlite/migrator.cjs.map +1 -1
  75. package/durable-sqlite/migrator.d.cts +9 -1
  76. package/durable-sqlite/migrator.d.ts +9 -1
  77. package/durable-sqlite/migrator.js +7 -10
  78. package/durable-sqlite/migrator.js.map +1 -1
  79. package/durable-sqlite/session.cjs +3 -6
  80. package/durable-sqlite/session.cjs.map +1 -1
  81. package/durable-sqlite/session.d.cts +2 -1
  82. package/durable-sqlite/session.d.ts +2 -1
  83. package/durable-sqlite/session.js +2 -6
  84. package/durable-sqlite/session.js.map +1 -1
  85. package/entity.cjs.map +1 -1
  86. package/entity.js.map +1 -1
  87. package/expo-sqlite/migrator.cjs +7 -10
  88. package/expo-sqlite/migrator.cjs.map +1 -1
  89. package/expo-sqlite/migrator.d.cts +8 -0
  90. package/expo-sqlite/migrator.d.ts +8 -0
  91. package/expo-sqlite/migrator.js +7 -10
  92. package/expo-sqlite/migrator.js.map +1 -1
  93. package/gel/driver.cjs +10 -6
  94. package/gel/driver.cjs.map +1 -1
  95. package/gel/driver.d.cts +2 -2
  96. package/gel/driver.d.ts +2 -2
  97. package/gel/driver.js +10 -6
  98. package/gel/driver.js.map +1 -1
  99. package/gel-core/columns/bigint.cjs.map +1 -1
  100. package/gel-core/columns/bigint.d.cts +1 -0
  101. package/gel-core/columns/bigint.d.ts +1 -0
  102. package/gel-core/columns/bigint.js.map +1 -1
  103. package/gel-core/columns/bigintT.cjs.map +1 -1
  104. package/gel-core/columns/bigintT.d.cts +1 -0
  105. package/gel-core/columns/bigintT.d.ts +1 -0
  106. package/gel-core/columns/bigintT.js.map +1 -1
  107. package/gel-core/columns/boolean.cjs.map +1 -1
  108. package/gel-core/columns/boolean.d.cts +1 -0
  109. package/gel-core/columns/boolean.d.ts +1 -0
  110. package/gel-core/columns/boolean.js.map +1 -1
  111. package/gel-core/columns/bytes.cjs.map +1 -1
  112. package/gel-core/columns/bytes.d.cts +1 -0
  113. package/gel-core/columns/bytes.d.ts +1 -0
  114. package/gel-core/columns/bytes.js.map +1 -1
  115. package/gel-core/columns/common.cjs +4 -0
  116. package/gel-core/columns/common.cjs.map +1 -1
  117. package/gel-core/columns/common.d.cts +1 -1
  118. package/gel-core/columns/common.d.ts +1 -1
  119. package/gel-core/columns/common.js +4 -0
  120. package/gel-core/columns/common.js.map +1 -1
  121. package/gel-core/columns/custom.cjs.map +1 -1
  122. package/gel-core/columns/custom.d.cts +1 -0
  123. package/gel-core/columns/custom.d.ts +1 -0
  124. package/gel-core/columns/custom.js.map +1 -1
  125. package/gel-core/columns/date-duration.cjs.map +1 -1
  126. package/gel-core/columns/date-duration.d.cts +1 -0
  127. package/gel-core/columns/date-duration.d.ts +1 -0
  128. package/gel-core/columns/date-duration.js.map +1 -1
  129. package/gel-core/columns/decimal.cjs.map +1 -1
  130. package/gel-core/columns/decimal.d.cts +1 -0
  131. package/gel-core/columns/decimal.d.ts +1 -0
  132. package/gel-core/columns/decimal.js.map +1 -1
  133. package/gel-core/columns/double-precision.cjs.map +1 -1
  134. package/gel-core/columns/double-precision.d.cts +1 -0
  135. package/gel-core/columns/double-precision.d.ts +1 -0
  136. package/gel-core/columns/double-precision.js.map +1 -1
  137. package/gel-core/columns/duration.cjs.map +1 -1
  138. package/gel-core/columns/duration.d.cts +1 -0
  139. package/gel-core/columns/duration.d.ts +1 -0
  140. package/gel-core/columns/duration.js.map +1 -1
  141. package/gel-core/columns/integer.cjs.map +1 -1
  142. package/gel-core/columns/integer.d.cts +1 -0
  143. package/gel-core/columns/integer.d.ts +1 -0
  144. package/gel-core/columns/integer.js.map +1 -1
  145. package/gel-core/columns/json.cjs.map +1 -1
  146. package/gel-core/columns/json.d.cts +1 -0
  147. package/gel-core/columns/json.d.ts +1 -0
  148. package/gel-core/columns/json.js.map +1 -1
  149. package/gel-core/columns/localdate.cjs.map +1 -1
  150. package/gel-core/columns/localdate.d.cts +1 -0
  151. package/gel-core/columns/localdate.d.ts +1 -0
  152. package/gel-core/columns/localdate.js.map +1 -1
  153. package/gel-core/columns/localtime.cjs.map +1 -1
  154. package/gel-core/columns/localtime.d.cts +1 -0
  155. package/gel-core/columns/localtime.d.ts +1 -0
  156. package/gel-core/columns/localtime.js.map +1 -1
  157. package/gel-core/columns/real.cjs.map +1 -1
  158. package/gel-core/columns/real.d.cts +1 -0
  159. package/gel-core/columns/real.d.ts +1 -0
  160. package/gel-core/columns/real.js.map +1 -1
  161. package/gel-core/columns/relative-duration.cjs.map +1 -1
  162. package/gel-core/columns/relative-duration.d.cts +1 -0
  163. package/gel-core/columns/relative-duration.d.ts +1 -0
  164. package/gel-core/columns/relative-duration.js.map +1 -1
  165. package/gel-core/columns/smallint.cjs.map +1 -1
  166. package/gel-core/columns/smallint.d.cts +1 -0
  167. package/gel-core/columns/smallint.d.ts +1 -0
  168. package/gel-core/columns/smallint.js.map +1 -1
  169. package/gel-core/columns/text.cjs.map +1 -1
  170. package/gel-core/columns/text.d.cts +1 -0
  171. package/gel-core/columns/text.d.ts +1 -0
  172. package/gel-core/columns/text.js.map +1 -1
  173. package/gel-core/columns/timestamp.cjs.map +1 -1
  174. package/gel-core/columns/timestamp.d.cts +1 -0
  175. package/gel-core/columns/timestamp.d.ts +1 -0
  176. package/gel-core/columns/timestamp.js.map +1 -1
  177. package/gel-core/columns/timestamptz.cjs.map +1 -1
  178. package/gel-core/columns/timestamptz.d.cts +1 -0
  179. package/gel-core/columns/timestamptz.d.ts +1 -0
  180. package/gel-core/columns/timestamptz.js.map +1 -1
  181. package/gel-core/columns/uuid.cjs.map +1 -1
  182. package/gel-core/columns/uuid.d.cts +1 -0
  183. package/gel-core/columns/uuid.d.ts +1 -0
  184. package/gel-core/columns/uuid.js.map +1 -1
  185. package/gel-core/dialect.cjs +13 -2
  186. package/gel-core/dialect.cjs.map +1 -1
  187. package/gel-core/dialect.js +14 -9
  188. package/gel-core/dialect.js.map +1 -1
  189. package/gel-core/query-builders/count.cjs.map +1 -1
  190. package/gel-core/query-builders/count.d.cts +3 -4
  191. package/gel-core/query-builders/count.d.ts +3 -4
  192. package/gel-core/query-builders/count.js.map +1 -1
  193. package/gel-core/query-builders/insert.cjs.map +1 -1
  194. package/gel-core/query-builders/insert.d.cts +9 -6
  195. package/gel-core/query-builders/insert.d.ts +9 -6
  196. package/gel-core/query-builders/insert.js.map +1 -1
  197. package/gel-core/query-builders/select.cjs +7 -6
  198. package/gel-core/query-builders/select.cjs.map +1 -1
  199. package/gel-core/query-builders/select.js +2 -2
  200. package/gel-core/query-builders/select.js.map +1 -1
  201. package/gel-core/query-builders/update.cjs.map +1 -1
  202. package/gel-core/query-builders/update.d.cts +1 -1
  203. package/gel-core/query-builders/update.d.ts +1 -1
  204. package/gel-core/query-builders/update.js.map +1 -1
  205. package/gel-core/utils.cjs +2 -1
  206. package/gel-core/utils.cjs.map +1 -1
  207. package/gel-core/utils.d.cts +1 -1
  208. package/gel-core/utils.d.ts +1 -1
  209. package/gel-core/utils.js +2 -1
  210. package/gel-core/utils.js.map +1 -1
  211. package/gel-core/view-common.cjs +0 -3
  212. package/gel-core/view-common.cjs.map +1 -1
  213. package/gel-core/view-common.d.cts +0 -1
  214. package/gel-core/view-common.d.ts +0 -1
  215. package/gel-core/view-common.js +0 -2
  216. package/gel-core/view-common.js.map +1 -1
  217. package/gel-core/view.cjs +5 -2
  218. package/gel-core/view.cjs.map +1 -1
  219. package/gel-core/view.d.cts +2 -1
  220. package/gel-core/view.d.ts +2 -1
  221. package/gel-core/view.js +3 -1
  222. package/gel-core/view.js.map +1 -1
  223. package/libsql/driver.cjs +10 -6
  224. package/libsql/driver.cjs.map +1 -1
  225. package/libsql/driver.d.cts +3 -3
  226. package/libsql/driver.d.ts +3 -3
  227. package/libsql/driver.js +10 -6
  228. package/libsql/driver.js.map +1 -1
  229. package/libsql/http/index.cjs +10 -6
  230. package/libsql/http/index.cjs.map +1 -1
  231. package/libsql/http/index.d.cts +3 -3
  232. package/libsql/http/index.d.ts +3 -3
  233. package/libsql/http/index.js +10 -6
  234. package/libsql/http/index.js.map +1 -1
  235. package/libsql/node/index.cjs +10 -6
  236. package/libsql/node/index.cjs.map +1 -1
  237. package/libsql/node/index.d.cts +3 -3
  238. package/libsql/node/index.d.ts +3 -3
  239. package/libsql/node/index.js +10 -6
  240. package/libsql/node/index.js.map +1 -1
  241. package/libsql/session.cjs +2 -0
  242. package/libsql/session.cjs.map +1 -1
  243. package/libsql/session.d.cts +1 -1
  244. package/libsql/session.d.ts +1 -1
  245. package/libsql/session.js +2 -0
  246. package/libsql/session.js.map +1 -1
  247. package/libsql/sqlite3/index.cjs +10 -6
  248. package/libsql/sqlite3/index.cjs.map +1 -1
  249. package/libsql/sqlite3/index.d.cts +3 -3
  250. package/libsql/sqlite3/index.d.ts +3 -3
  251. package/libsql/sqlite3/index.js +10 -6
  252. package/libsql/sqlite3/index.js.map +1 -1
  253. package/libsql/wasm/index.cjs +10 -6
  254. package/libsql/wasm/index.cjs.map +1 -1
  255. package/libsql/wasm/index.d.cts +3 -3
  256. package/libsql/wasm/index.d.ts +3 -3
  257. package/libsql/wasm/index.js +10 -6
  258. package/libsql/wasm/index.js.map +1 -1
  259. package/libsql/web/index.cjs +10 -6
  260. package/libsql/web/index.cjs.map +1 -1
  261. package/libsql/web/index.d.cts +3 -3
  262. package/libsql/web/index.d.ts +3 -3
  263. package/libsql/web/index.js +10 -6
  264. package/libsql/web/index.js.map +1 -1
  265. package/libsql/ws/index.cjs +10 -6
  266. package/libsql/ws/index.cjs.map +1 -1
  267. package/libsql/ws/index.d.cts +3 -3
  268. package/libsql/ws/index.d.ts +3 -3
  269. package/libsql/ws/index.js +10 -6
  270. package/libsql/ws/index.js.map +1 -1
  271. package/migrator.cjs +5 -42
  272. package/migrator.cjs.map +1 -1
  273. package/migrator.d.cts +0 -5
  274. package/migrator.d.ts +0 -5
  275. package/migrator.js +6 -42
  276. package/migrator.js.map +1 -1
  277. package/mysql-core/columns/all.cjs +1 -6
  278. package/mysql-core/columns/all.cjs.map +1 -1
  279. package/mysql-core/columns/all.d.cts +0 -5
  280. package/mysql-core/columns/all.d.ts +0 -5
  281. package/mysql-core/columns/all.js +1 -6
  282. package/mysql-core/columns/all.js.map +1 -1
  283. package/mysql-core/columns/bigint.cjs +33 -0
  284. package/mysql-core/columns/bigint.cjs.map +1 -1
  285. package/mysql-core/columns/bigint.d.cts +23 -3
  286. package/mysql-core/columns/bigint.d.ts +23 -3
  287. package/mysql-core/columns/bigint.js +31 -0
  288. package/mysql-core/columns/bigint.js.map +1 -1
  289. package/mysql-core/columns/binary.cjs +1 -0
  290. package/mysql-core/columns/binary.cjs.map +1 -1
  291. package/mysql-core/columns/binary.d.cts +2 -0
  292. package/mysql-core/columns/binary.d.ts +2 -0
  293. package/mysql-core/columns/binary.js +1 -0
  294. package/mysql-core/columns/binary.js.map +1 -1
  295. package/mysql-core/columns/boolean.cjs.map +1 -1
  296. package/mysql-core/columns/boolean.d.cts +1 -0
  297. package/mysql-core/columns/boolean.d.ts +1 -0
  298. package/mysql-core/columns/boolean.js.map +1 -1
  299. package/mysql-core/columns/char.cjs +4 -3
  300. package/mysql-core/columns/char.cjs.map +1 -1
  301. package/mysql-core/columns/char.d.cts +5 -3
  302. package/mysql-core/columns/char.d.ts +5 -3
  303. package/mysql-core/columns/char.js +4 -3
  304. package/mysql-core/columns/char.js.map +1 -1
  305. package/mysql-core/columns/common.cjs +4 -0
  306. package/mysql-core/columns/common.cjs.map +1 -1
  307. package/mysql-core/columns/common.d.cts +1 -1
  308. package/mysql-core/columns/common.d.ts +1 -1
  309. package/mysql-core/columns/common.js +4 -0
  310. package/mysql-core/columns/common.js.map +1 -1
  311. package/mysql-core/columns/custom.cjs.map +1 -1
  312. package/mysql-core/columns/custom.d.cts +1 -0
  313. package/mysql-core/columns/custom.d.ts +1 -0
  314. package/mysql-core/columns/custom.js.map +1 -1
  315. package/mysql-core/columns/date.cjs.map +1 -1
  316. package/mysql-core/columns/date.common.cjs +1 -3
  317. package/mysql-core/columns/date.common.cjs.map +1 -1
  318. package/mysql-core/columns/date.common.d.cts +1 -6
  319. package/mysql-core/columns/date.common.d.ts +1 -6
  320. package/mysql-core/columns/date.common.js +1 -3
  321. package/mysql-core/columns/date.common.js.map +1 -1
  322. package/mysql-core/columns/date.d.cts +2 -0
  323. package/mysql-core/columns/date.d.ts +2 -0
  324. package/mysql-core/columns/date.js.map +1 -1
  325. package/mysql-core/columns/datetime.cjs.map +1 -1
  326. package/mysql-core/columns/datetime.d.cts +2 -0
  327. package/mysql-core/columns/datetime.d.ts +2 -0
  328. package/mysql-core/columns/datetime.js.map +1 -1
  329. package/mysql-core/columns/decimal.cjs.map +1 -1
  330. package/mysql-core/columns/decimal.d.cts +3 -0
  331. package/mysql-core/columns/decimal.d.ts +3 -0
  332. package/mysql-core/columns/decimal.js.map +1 -1
  333. package/mysql-core/columns/double.cjs.map +1 -1
  334. package/mysql-core/columns/double.d.cts +1 -0
  335. package/mysql-core/columns/double.d.ts +1 -0
  336. package/mysql-core/columns/double.js.map +1 -1
  337. package/mysql-core/columns/enum.cjs +5 -5
  338. package/mysql-core/columns/enum.cjs.map +1 -1
  339. package/mysql-core/columns/enum.d.cts +7 -5
  340. package/mysql-core/columns/enum.d.ts +7 -5
  341. package/mysql-core/columns/enum.js +5 -5
  342. package/mysql-core/columns/enum.js.map +1 -1
  343. package/mysql-core/columns/float.cjs.map +1 -1
  344. package/mysql-core/columns/float.d.cts +1 -0
  345. package/mysql-core/columns/float.d.ts +1 -0
  346. package/mysql-core/columns/float.js.map +1 -1
  347. package/mysql-core/columns/index.cjs +0 -2
  348. package/mysql-core/columns/index.cjs.map +1 -1
  349. package/mysql-core/columns/index.d.cts +0 -1
  350. package/mysql-core/columns/index.d.ts +0 -1
  351. package/mysql-core/columns/index.js +0 -1
  352. package/mysql-core/columns/index.js.map +1 -1
  353. package/mysql-core/columns/int.cjs.map +1 -1
  354. package/mysql-core/columns/int.d.cts +1 -0
  355. package/mysql-core/columns/int.d.ts +1 -0
  356. package/mysql-core/columns/int.js.map +1 -1
  357. package/mysql-core/columns/json.cjs.map +1 -1
  358. package/mysql-core/columns/json.d.cts +1 -0
  359. package/mysql-core/columns/json.d.ts +1 -0
  360. package/mysql-core/columns/json.js.map +1 -1
  361. package/mysql-core/columns/mediumint.cjs.map +1 -1
  362. package/mysql-core/columns/mediumint.d.cts +1 -0
  363. package/mysql-core/columns/mediumint.d.ts +1 -0
  364. package/mysql-core/columns/mediumint.js.map +1 -1
  365. package/mysql-core/columns/real.cjs.map +1 -1
  366. package/mysql-core/columns/real.d.cts +1 -0
  367. package/mysql-core/columns/real.d.ts +1 -0
  368. package/mysql-core/columns/real.js.map +1 -1
  369. package/mysql-core/columns/serial.cjs.map +1 -1
  370. package/mysql-core/columns/serial.d.cts +1 -0
  371. package/mysql-core/columns/serial.d.ts +1 -0
  372. package/mysql-core/columns/serial.js.map +1 -1
  373. package/mysql-core/columns/smallint.cjs.map +1 -1
  374. package/mysql-core/columns/smallint.d.cts +1 -0
  375. package/mysql-core/columns/smallint.d.ts +1 -0
  376. package/mysql-core/columns/smallint.js.map +1 -1
  377. package/mysql-core/columns/text.cjs +3 -3
  378. package/mysql-core/columns/text.cjs.map +1 -1
  379. package/mysql-core/columns/text.d.cts +4 -3
  380. package/mysql-core/columns/text.d.ts +4 -3
  381. package/mysql-core/columns/text.js +3 -3
  382. package/mysql-core/columns/text.js.map +1 -1
  383. package/mysql-core/columns/time.cjs.map +1 -1
  384. package/mysql-core/columns/time.d.cts +1 -0
  385. package/mysql-core/columns/time.d.ts +1 -0
  386. package/mysql-core/columns/time.js.map +1 -1
  387. package/mysql-core/columns/timestamp.cjs.map +1 -1
  388. package/mysql-core/columns/timestamp.d.cts +2 -0
  389. package/mysql-core/columns/timestamp.d.ts +2 -0
  390. package/mysql-core/columns/timestamp.js.map +1 -1
  391. package/mysql-core/columns/tinyint.cjs.map +1 -1
  392. package/mysql-core/columns/tinyint.d.cts +1 -0
  393. package/mysql-core/columns/tinyint.d.ts +1 -0
  394. package/mysql-core/columns/tinyint.js.map +1 -1
  395. package/mysql-core/columns/varbinary.cjs.map +1 -1
  396. package/mysql-core/columns/varbinary.d.cts +1 -0
  397. package/mysql-core/columns/varbinary.d.ts +1 -0
  398. package/mysql-core/columns/varbinary.js.map +1 -1
  399. package/mysql-core/columns/varchar.cjs +4 -4
  400. package/mysql-core/columns/varchar.cjs.map +1 -1
  401. package/mysql-core/columns/varchar.d.cts +5 -4
  402. package/mysql-core/columns/varchar.d.ts +5 -4
  403. package/mysql-core/columns/varchar.js +4 -4
  404. package/mysql-core/columns/varchar.js.map +1 -1
  405. package/mysql-core/columns/year.cjs.map +1 -1
  406. package/mysql-core/columns/year.d.cts +1 -0
  407. package/mysql-core/columns/year.d.ts +1 -0
  408. package/mysql-core/columns/year.js.map +1 -1
  409. package/mysql-core/dialect.cjs +16 -9
  410. package/mysql-core/dialect.cjs.map +1 -1
  411. package/mysql-core/dialect.d.cts +0 -1
  412. package/mysql-core/dialect.d.ts +0 -1
  413. package/mysql-core/dialect.js +17 -16
  414. package/mysql-core/dialect.js.map +1 -1
  415. package/mysql-core/foreign-keys.cjs +0 -3
  416. package/mysql-core/foreign-keys.cjs.map +1 -1
  417. package/mysql-core/foreign-keys.d.cts +0 -1
  418. package/mysql-core/foreign-keys.d.ts +0 -1
  419. package/mysql-core/foreign-keys.js +0 -3
  420. package/mysql-core/foreign-keys.js.map +1 -1
  421. package/mysql-core/indexes.cjs +2 -4
  422. package/mysql-core/indexes.cjs.map +1 -1
  423. package/mysql-core/indexes.d.cts +3 -4
  424. package/mysql-core/indexes.d.ts +3 -4
  425. package/mysql-core/indexes.js +2 -4
  426. package/mysql-core/indexes.js.map +1 -1
  427. package/mysql-core/primary-keys.cjs +13 -4
  428. package/mysql-core/primary-keys.cjs.map +1 -1
  429. package/mysql-core/primary-keys.d.cts +6 -3
  430. package/mysql-core/primary-keys.d.ts +6 -3
  431. package/mysql-core/primary-keys.js +13 -4
  432. package/mysql-core/primary-keys.js.map +1 -1
  433. package/mysql-core/query-builders/count.cjs.map +1 -1
  434. package/mysql-core/query-builders/count.d.cts +1 -1
  435. package/mysql-core/query-builders/count.d.ts +1 -1
  436. package/mysql-core/query-builders/count.js.map +1 -1
  437. package/mysql-core/query-builders/insert.cjs.map +1 -1
  438. package/mysql-core/query-builders/insert.d.cts +2 -2
  439. package/mysql-core/query-builders/insert.d.ts +2 -2
  440. package/mysql-core/query-builders/insert.js.map +1 -1
  441. package/mysql-core/query-builders/update.cjs.map +1 -1
  442. package/mysql-core/query-builders/update.d.cts +1 -1
  443. package/mysql-core/query-builders/update.d.ts +1 -1
  444. package/mysql-core/query-builders/update.js.map +1 -1
  445. package/mysql-core/unique-constraint.cjs +0 -2
  446. package/mysql-core/unique-constraint.cjs.map +1 -1
  447. package/mysql-core/unique-constraint.d.cts +2 -3
  448. package/mysql-core/unique-constraint.d.ts +2 -3
  449. package/mysql-core/unique-constraint.js +0 -2
  450. package/mysql-core/unique-constraint.js.map +1 -1
  451. package/mysql-proxy/driver.cjs +2 -2
  452. package/mysql-proxy/driver.cjs.map +1 -1
  453. package/mysql-proxy/driver.d.cts +1 -2
  454. package/mysql-proxy/driver.d.ts +1 -2
  455. package/mysql-proxy/driver.js +2 -2
  456. package/mysql-proxy/driver.js.map +1 -1
  457. package/mysql2/driver.cjs +14 -10
  458. package/mysql2/driver.cjs.map +1 -1
  459. package/mysql2/driver.d.cts +3 -3
  460. package/mysql2/driver.d.ts +3 -3
  461. package/mysql2/driver.js +14 -10
  462. package/mysql2/driver.js.map +1 -1
  463. package/mysql2/session.cjs.map +1 -1
  464. package/mysql2/session.js.map +1 -1
  465. package/neon-http/driver.cjs +14 -10
  466. package/neon-http/driver.cjs.map +1 -1
  467. package/neon-http/driver.d.cts +3 -3
  468. package/neon-http/driver.d.ts +3 -3
  469. package/neon-http/driver.js +14 -10
  470. package/neon-http/driver.js.map +1 -1
  471. package/neon-http/session.cjs.map +1 -1
  472. package/neon-http/session.d.cts +1 -1
  473. package/neon-http/session.d.ts +1 -1
  474. package/neon-http/session.js.map +1 -1
  475. package/neon-serverless/driver.cjs +14 -10
  476. package/neon-serverless/driver.cjs.map +1 -1
  477. package/neon-serverless/driver.d.cts +3 -3
  478. package/neon-serverless/driver.d.ts +3 -3
  479. package/neon-serverless/driver.js +14 -10
  480. package/neon-serverless/driver.js.map +1 -1
  481. package/neon-serverless/session.cjs.map +1 -1
  482. package/neon-serverless/session.js.map +1 -1
  483. package/node-postgres/driver.cjs +12 -8
  484. package/node-postgres/driver.cjs.map +1 -1
  485. package/node-postgres/driver.d.cts +3 -3
  486. package/node-postgres/driver.d.ts +3 -3
  487. package/node-postgres/driver.js +12 -8
  488. package/node-postgres/driver.js.map +1 -1
  489. package/node-postgres/session.cjs +3 -2
  490. package/node-postgres/session.cjs.map +1 -1
  491. package/node-postgres/session.js +3 -2
  492. package/node-postgres/session.js.map +1 -1
  493. package/op-sqlite/migrator.cjs +7 -10
  494. package/op-sqlite/migrator.cjs.map +1 -1
  495. package/op-sqlite/migrator.d.cts +16 -0
  496. package/op-sqlite/migrator.d.ts +16 -0
  497. package/op-sqlite/migrator.js +7 -10
  498. package/op-sqlite/migrator.js.map +1 -1
  499. package/operations.cjs.map +1 -1
  500. package/operations.d.cts +3 -2
  501. package/operations.d.ts +3 -2
  502. package/package.json +193 -1671
  503. package/pg-core/columns/bigint.cjs +27 -0
  504. package/pg-core/columns/bigint.cjs.map +1 -1
  505. package/pg-core/columns/bigint.d.cts +19 -3
  506. package/pg-core/columns/bigint.d.ts +19 -3
  507. package/pg-core/columns/bigint.js +25 -0
  508. package/pg-core/columns/bigint.js.map +1 -1
  509. package/pg-core/columns/bigserial.cjs +0 -1
  510. package/pg-core/columns/bigserial.cjs.map +1 -1
  511. package/pg-core/columns/bigserial.d.cts +2 -0
  512. package/pg-core/columns/bigserial.d.ts +2 -0
  513. package/pg-core/columns/bigserial.js +0 -1
  514. package/pg-core/columns/bigserial.js.map +1 -1
  515. package/pg-core/columns/boolean.cjs.map +1 -1
  516. package/pg-core/columns/boolean.d.cts +1 -0
  517. package/pg-core/columns/boolean.d.ts +1 -0
  518. package/pg-core/columns/boolean.js.map +1 -1
  519. package/pg-core/columns/bytea.cjs.map +1 -1
  520. package/pg-core/columns/bytea.d.cts +1 -0
  521. package/pg-core/columns/bytea.d.ts +1 -0
  522. package/pg-core/columns/bytea.js.map +1 -1
  523. package/pg-core/columns/char.cjs +1 -0
  524. package/pg-core/columns/char.cjs.map +1 -1
  525. package/pg-core/columns/char.d.cts +2 -0
  526. package/pg-core/columns/char.d.ts +2 -0
  527. package/pg-core/columns/char.js +1 -0
  528. package/pg-core/columns/char.js.map +1 -1
  529. package/pg-core/columns/cidr.cjs.map +1 -1
  530. package/pg-core/columns/cidr.d.cts +1 -0
  531. package/pg-core/columns/cidr.d.ts +1 -0
  532. package/pg-core/columns/cidr.js.map +1 -1
  533. package/pg-core/columns/common.cjs +14 -10
  534. package/pg-core/columns/common.cjs.map +1 -1
  535. package/pg-core/columns/common.d.cts +3 -4
  536. package/pg-core/columns/common.d.ts +3 -4
  537. package/pg-core/columns/common.js +14 -10
  538. package/pg-core/columns/common.js.map +1 -1
  539. package/pg-core/columns/custom.cjs.map +1 -1
  540. package/pg-core/columns/custom.d.cts +1 -0
  541. package/pg-core/columns/custom.d.ts +1 -0
  542. package/pg-core/columns/custom.js.map +1 -1
  543. package/pg-core/columns/date.cjs +6 -1
  544. package/pg-core/columns/date.cjs.map +1 -1
  545. package/pg-core/columns/date.d.cts +4 -1
  546. package/pg-core/columns/date.d.ts +4 -1
  547. package/pg-core/columns/date.js +6 -1
  548. package/pg-core/columns/date.js.map +1 -1
  549. package/pg-core/columns/double-precision.cjs.map +1 -1
  550. package/pg-core/columns/double-precision.d.cts +1 -0
  551. package/pg-core/columns/double-precision.d.ts +1 -0
  552. package/pg-core/columns/double-precision.js.map +1 -1
  553. package/pg-core/columns/enum.cjs.map +1 -1
  554. package/pg-core/columns/enum.d.cts +2 -0
  555. package/pg-core/columns/enum.d.ts +2 -0
  556. package/pg-core/columns/enum.js.map +1 -1
  557. package/pg-core/columns/inet.cjs.map +1 -1
  558. package/pg-core/columns/inet.d.cts +1 -0
  559. package/pg-core/columns/inet.d.ts +1 -0
  560. package/pg-core/columns/inet.js.map +1 -1
  561. package/pg-core/columns/integer.cjs.map +1 -1
  562. package/pg-core/columns/integer.d.cts +1 -0
  563. package/pg-core/columns/integer.d.ts +1 -0
  564. package/pg-core/columns/integer.js.map +1 -1
  565. package/pg-core/columns/interval.cjs.map +1 -1
  566. package/pg-core/columns/interval.d.cts +1 -0
  567. package/pg-core/columns/interval.d.ts +1 -0
  568. package/pg-core/columns/interval.js.map +1 -1
  569. package/pg-core/columns/json.cjs.map +1 -1
  570. package/pg-core/columns/json.d.cts +1 -0
  571. package/pg-core/columns/json.d.ts +1 -0
  572. package/pg-core/columns/json.js.map +1 -1
  573. package/pg-core/columns/jsonb.cjs.map +1 -1
  574. package/pg-core/columns/jsonb.d.cts +1 -0
  575. package/pg-core/columns/jsonb.d.ts +1 -0
  576. package/pg-core/columns/jsonb.js.map +1 -1
  577. package/pg-core/columns/line.cjs +0 -2
  578. package/pg-core/columns/line.cjs.map +1 -1
  579. package/pg-core/columns/line.d.cts +2 -2
  580. package/pg-core/columns/line.d.ts +2 -2
  581. package/pg-core/columns/line.js +0 -2
  582. package/pg-core/columns/line.js.map +1 -1
  583. package/pg-core/columns/macaddr.cjs.map +1 -1
  584. package/pg-core/columns/macaddr.d.cts +1 -0
  585. package/pg-core/columns/macaddr.d.ts +1 -0
  586. package/pg-core/columns/macaddr.js.map +1 -1
  587. package/pg-core/columns/macaddr8.cjs.map +1 -1
  588. package/pg-core/columns/macaddr8.d.cts +1 -0
  589. package/pg-core/columns/macaddr8.d.ts +1 -0
  590. package/pg-core/columns/macaddr8.js.map +1 -1
  591. package/pg-core/columns/numeric.cjs.map +1 -1
  592. package/pg-core/columns/numeric.d.cts +3 -0
  593. package/pg-core/columns/numeric.d.ts +3 -0
  594. package/pg-core/columns/numeric.js.map +1 -1
  595. package/pg-core/columns/point.cjs +0 -2
  596. package/pg-core/columns/point.cjs.map +1 -1
  597. package/pg-core/columns/point.d.cts +2 -2
  598. package/pg-core/columns/point.d.ts +2 -2
  599. package/pg-core/columns/point.js +0 -2
  600. package/pg-core/columns/point.js.map +1 -1
  601. package/pg-core/columns/postgis_extension/geometry.cjs +8 -14
  602. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  603. package/pg-core/columns/postgis_extension/geometry.d.cts +6 -16
  604. package/pg-core/columns/postgis_extension/geometry.d.ts +6 -16
  605. package/pg-core/columns/postgis_extension/geometry.js +8 -14
  606. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  607. package/pg-core/columns/postgis_extension/utils.cjs +3 -3
  608. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -1
  609. package/pg-core/columns/postgis_extension/utils.d.cts +1 -4
  610. package/pg-core/columns/postgis_extension/utils.d.ts +1 -4
  611. package/pg-core/columns/postgis_extension/utils.js +3 -3
  612. package/pg-core/columns/postgis_extension/utils.js.map +1 -1
  613. package/pg-core/columns/real.cjs.map +1 -1
  614. package/pg-core/columns/real.d.cts +1 -0
  615. package/pg-core/columns/real.d.ts +1 -0
  616. package/pg-core/columns/real.js.map +1 -1
  617. package/pg-core/columns/serial.cjs.map +1 -1
  618. package/pg-core/columns/serial.d.cts +1 -0
  619. package/pg-core/columns/serial.d.ts +1 -0
  620. package/pg-core/columns/serial.js.map +1 -1
  621. package/pg-core/columns/smallint.cjs.map +1 -1
  622. package/pg-core/columns/smallint.d.cts +1 -0
  623. package/pg-core/columns/smallint.d.ts +1 -0
  624. package/pg-core/columns/smallint.js.map +1 -1
  625. package/pg-core/columns/smallserial.cjs.map +1 -1
  626. package/pg-core/columns/smallserial.d.cts +1 -0
  627. package/pg-core/columns/smallserial.d.ts +1 -0
  628. package/pg-core/columns/smallserial.js.map +1 -1
  629. package/pg-core/columns/text.cjs.map +1 -1
  630. package/pg-core/columns/text.d.cts +1 -0
  631. package/pg-core/columns/text.d.ts +1 -0
  632. package/pg-core/columns/text.js.map +1 -1
  633. package/pg-core/columns/time.cjs.map +1 -1
  634. package/pg-core/columns/time.d.cts +1 -0
  635. package/pg-core/columns/time.d.ts +1 -0
  636. package/pg-core/columns/time.js.map +1 -1
  637. package/pg-core/columns/timestamp.cjs +14 -3
  638. package/pg-core/columns/timestamp.cjs.map +1 -1
  639. package/pg-core/columns/timestamp.d.cts +4 -1
  640. package/pg-core/columns/timestamp.d.ts +4 -1
  641. package/pg-core/columns/timestamp.js +14 -3
  642. package/pg-core/columns/timestamp.js.map +1 -1
  643. package/pg-core/columns/uuid.cjs.map +1 -1
  644. package/pg-core/columns/uuid.d.cts +1 -0
  645. package/pg-core/columns/uuid.d.ts +1 -0
  646. package/pg-core/columns/uuid.js.map +1 -1
  647. package/pg-core/columns/varchar.cjs.map +1 -1
  648. package/pg-core/columns/varchar.d.cts +1 -0
  649. package/pg-core/columns/varchar.d.ts +1 -0
  650. package/pg-core/columns/varchar.js.map +1 -1
  651. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  652. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  653. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  654. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  655. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  656. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  657. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  658. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  659. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  660. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  661. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  662. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  663. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  664. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  665. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  666. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  667. package/pg-core/dialect.cjs +15 -5
  668. package/pg-core/dialect.cjs.map +1 -1
  669. package/pg-core/dialect.js +16 -12
  670. package/pg-core/dialect.js.map +1 -1
  671. package/pg-core/foreign-keys.cjs +0 -4
  672. package/pg-core/foreign-keys.cjs.map +1 -1
  673. package/pg-core/foreign-keys.d.cts +0 -2
  674. package/pg-core/foreign-keys.d.ts +0 -2
  675. package/pg-core/foreign-keys.js +0 -4
  676. package/pg-core/foreign-keys.js.map +1 -1
  677. package/pg-core/indexes.cjs +0 -2
  678. package/pg-core/indexes.cjs.map +1 -1
  679. package/pg-core/indexes.d.cts +0 -1
  680. package/pg-core/indexes.d.ts +0 -1
  681. package/pg-core/indexes.js +0 -2
  682. package/pg-core/indexes.js.map +1 -1
  683. package/pg-core/primary-keys.cjs +0 -2
  684. package/pg-core/primary-keys.cjs.map +1 -1
  685. package/pg-core/primary-keys.d.cts +0 -1
  686. package/pg-core/primary-keys.d.ts +0 -1
  687. package/pg-core/primary-keys.js +0 -2
  688. package/pg-core/primary-keys.js.map +1 -1
  689. package/pg-core/query-builders/count.cjs.map +1 -1
  690. package/pg-core/query-builders/count.d.cts +3 -4
  691. package/pg-core/query-builders/count.d.ts +3 -4
  692. package/pg-core/query-builders/count.js.map +1 -1
  693. package/pg-core/query-builders/insert.cjs.map +1 -1
  694. package/pg-core/query-builders/insert.d.cts +9 -6
  695. package/pg-core/query-builders/insert.d.ts +9 -6
  696. package/pg-core/query-builders/insert.js.map +1 -1
  697. package/pg-core/query-builders/select.cjs +7 -6
  698. package/pg-core/query-builders/select.cjs.map +1 -1
  699. package/pg-core/query-builders/select.js +2 -2
  700. package/pg-core/query-builders/select.js.map +1 -1
  701. package/pg-core/query-builders/update.cjs.map +1 -1
  702. package/pg-core/query-builders/update.d.cts +1 -1
  703. package/pg-core/query-builders/update.d.ts +1 -1
  704. package/pg-core/query-builders/update.js.map +1 -1
  705. package/pg-core/schema.cjs +0 -12
  706. package/pg-core/schema.cjs.map +1 -1
  707. package/pg-core/schema.d.cts +0 -2
  708. package/pg-core/schema.d.ts +0 -2
  709. package/pg-core/schema.js +1 -13
  710. package/pg-core/schema.js.map +1 -1
  711. package/pg-core/table.cjs +2 -15
  712. package/pg-core/table.cjs.map +1 -1
  713. package/pg-core/table.d.cts +1 -5
  714. package/pg-core/table.d.ts +1 -5
  715. package/pg-core/table.js +2 -15
  716. package/pg-core/table.js.map +1 -1
  717. package/pg-core/unique-constraint.cjs +0 -2
  718. package/pg-core/unique-constraint.cjs.map +1 -1
  719. package/pg-core/unique-constraint.d.cts +0 -1
  720. package/pg-core/unique-constraint.d.ts +0 -1
  721. package/pg-core/unique-constraint.js +0 -2
  722. package/pg-core/unique-constraint.js.map +1 -1
  723. package/pg-core/utils.cjs +2 -1
  724. package/pg-core/utils.cjs.map +1 -1
  725. package/pg-core/utils.d.cts +1 -1
  726. package/pg-core/utils.d.ts +1 -1
  727. package/pg-core/utils.js +2 -1
  728. package/pg-core/utils.js.map +1 -1
  729. package/pg-core/view-common.cjs +0 -3
  730. package/pg-core/view-common.cjs.map +1 -1
  731. package/pg-core/view-common.d.cts +0 -1
  732. package/pg-core/view-common.d.ts +0 -1
  733. package/pg-core/view-common.js +0 -2
  734. package/pg-core/view-common.js.map +1 -1
  735. package/pg-core/view.cjs +5 -2
  736. package/pg-core/view.cjs.map +1 -1
  737. package/pg-core/view.d.cts +2 -1
  738. package/pg-core/view.d.ts +2 -1
  739. package/pg-core/view.js +3 -1
  740. package/pg-core/view.js.map +1 -1
  741. package/pglite/driver.cjs +14 -10
  742. package/pglite/driver.cjs.map +1 -1
  743. package/pglite/driver.d.cts +3 -3
  744. package/pglite/driver.d.ts +3 -3
  745. package/pglite/driver.js +14 -10
  746. package/pglite/driver.js.map +1 -1
  747. package/planetscale-serverless/driver.cjs +15 -11
  748. package/planetscale-serverless/driver.cjs.map +1 -1
  749. package/planetscale-serverless/driver.d.cts +3 -3
  750. package/planetscale-serverless/driver.d.ts +3 -3
  751. package/planetscale-serverless/driver.js +15 -11
  752. package/planetscale-serverless/driver.js.map +1 -1
  753. package/postgres-js/driver.cjs +14 -10
  754. package/postgres-js/driver.cjs.map +1 -1
  755. package/postgres-js/driver.d.cts +3 -3
  756. package/postgres-js/driver.d.ts +3 -3
  757. package/postgres-js/driver.js +14 -10
  758. package/postgres-js/driver.js.map +1 -1
  759. package/query-builders/select.types.cjs.map +1 -1
  760. package/query-builders/select.types.d.cts +4 -4
  761. package/query-builders/select.types.d.ts +4 -4
  762. package/relations.cjs +0 -2
  763. package/relations.cjs.map +1 -1
  764. package/relations.d.cts +3 -3
  765. package/relations.d.ts +3 -3
  766. package/relations.js +1 -3
  767. package/relations.js.map +1 -1
  768. package/selection-proxy.cjs +3 -4
  769. package/selection-proxy.cjs.map +1 -1
  770. package/selection-proxy.js +4 -5
  771. package/selection-proxy.js.map +1 -1
  772. package/singlestore/driver.cjs +26 -19
  773. package/singlestore/driver.cjs.map +1 -1
  774. package/singlestore/driver.d.cts +3 -3
  775. package/singlestore/driver.d.ts +3 -3
  776. package/singlestore/driver.js +26 -19
  777. package/singlestore/driver.js.map +1 -1
  778. package/singlestore/session.cjs.map +1 -1
  779. package/singlestore/session.js.map +1 -1
  780. package/singlestore-core/columns/bigint.cjs +27 -0
  781. package/singlestore-core/columns/bigint.cjs.map +1 -1
  782. package/singlestore-core/columns/bigint.d.cts +22 -3
  783. package/singlestore-core/columns/bigint.d.ts +22 -3
  784. package/singlestore-core/columns/bigint.js +25 -0
  785. package/singlestore-core/columns/bigint.js.map +1 -1
  786. package/singlestore-core/columns/binary.cjs +1 -0
  787. package/singlestore-core/columns/binary.cjs.map +1 -1
  788. package/singlestore-core/columns/binary.d.cts +2 -0
  789. package/singlestore-core/columns/binary.d.ts +2 -0
  790. package/singlestore-core/columns/binary.js +1 -0
  791. package/singlestore-core/columns/binary.js.map +1 -1
  792. package/singlestore-core/columns/boolean.cjs.map +1 -1
  793. package/singlestore-core/columns/boolean.d.cts +1 -0
  794. package/singlestore-core/columns/boolean.d.ts +1 -0
  795. package/singlestore-core/columns/boolean.js.map +1 -1
  796. package/singlestore-core/columns/char.cjs +1 -0
  797. package/singlestore-core/columns/char.cjs.map +1 -1
  798. package/singlestore-core/columns/char.d.cts +2 -0
  799. package/singlestore-core/columns/char.d.ts +2 -0
  800. package/singlestore-core/columns/char.js +1 -0
  801. package/singlestore-core/columns/char.js.map +1 -1
  802. package/singlestore-core/columns/common.cjs +4 -0
  803. package/singlestore-core/columns/common.cjs.map +1 -1
  804. package/singlestore-core/columns/common.d.cts +1 -1
  805. package/singlestore-core/columns/common.d.ts +1 -1
  806. package/singlestore-core/columns/common.js +4 -0
  807. package/singlestore-core/columns/common.js.map +1 -1
  808. package/singlestore-core/columns/custom.cjs.map +1 -1
  809. package/singlestore-core/columns/custom.d.cts +1 -0
  810. package/singlestore-core/columns/custom.d.ts +1 -0
  811. package/singlestore-core/columns/custom.js.map +1 -1
  812. package/singlestore-core/columns/date.cjs.map +1 -1
  813. package/singlestore-core/columns/date.d.cts +2 -0
  814. package/singlestore-core/columns/date.d.ts +2 -0
  815. package/singlestore-core/columns/date.js.map +1 -1
  816. package/singlestore-core/columns/datetime.cjs.map +1 -1
  817. package/singlestore-core/columns/datetime.d.cts +2 -0
  818. package/singlestore-core/columns/datetime.d.ts +2 -0
  819. package/singlestore-core/columns/datetime.js.map +1 -1
  820. package/singlestore-core/columns/decimal.cjs.map +1 -1
  821. package/singlestore-core/columns/decimal.d.cts +3 -0
  822. package/singlestore-core/columns/decimal.d.ts +3 -0
  823. package/singlestore-core/columns/decimal.js.map +1 -1
  824. package/singlestore-core/columns/double.cjs.map +1 -1
  825. package/singlestore-core/columns/double.d.cts +1 -0
  826. package/singlestore-core/columns/double.d.ts +1 -0
  827. package/singlestore-core/columns/double.js.map +1 -1
  828. package/singlestore-core/columns/enum.cjs.map +1 -1
  829. package/singlestore-core/columns/enum.d.cts +1 -0
  830. package/singlestore-core/columns/enum.d.ts +1 -0
  831. package/singlestore-core/columns/enum.js.map +1 -1
  832. package/singlestore-core/columns/float.cjs.map +1 -1
  833. package/singlestore-core/columns/float.d.cts +1 -0
  834. package/singlestore-core/columns/float.d.ts +1 -0
  835. package/singlestore-core/columns/float.js.map +1 -1
  836. package/singlestore-core/columns/int.cjs.map +1 -1
  837. package/singlestore-core/columns/int.d.cts +1 -0
  838. package/singlestore-core/columns/int.d.ts +1 -0
  839. package/singlestore-core/columns/int.js.map +1 -1
  840. package/singlestore-core/columns/json.cjs.map +1 -1
  841. package/singlestore-core/columns/json.d.cts +1 -0
  842. package/singlestore-core/columns/json.d.ts +1 -0
  843. package/singlestore-core/columns/json.js.map +1 -1
  844. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  845. package/singlestore-core/columns/mediumint.d.cts +1 -0
  846. package/singlestore-core/columns/mediumint.d.ts +1 -0
  847. package/singlestore-core/columns/mediumint.js.map +1 -1
  848. package/singlestore-core/columns/real.cjs.map +1 -1
  849. package/singlestore-core/columns/real.d.cts +1 -0
  850. package/singlestore-core/columns/real.d.ts +1 -0
  851. package/singlestore-core/columns/real.js.map +1 -1
  852. package/singlestore-core/columns/serial.cjs.map +1 -1
  853. package/singlestore-core/columns/serial.d.cts +1 -0
  854. package/singlestore-core/columns/serial.d.ts +1 -0
  855. package/singlestore-core/columns/serial.js.map +1 -1
  856. package/singlestore-core/columns/smallint.cjs.map +1 -1
  857. package/singlestore-core/columns/smallint.d.cts +1 -0
  858. package/singlestore-core/columns/smallint.d.ts +1 -0
  859. package/singlestore-core/columns/smallint.js.map +1 -1
  860. package/singlestore-core/columns/text.cjs.map +1 -1
  861. package/singlestore-core/columns/text.d.cts +1 -0
  862. package/singlestore-core/columns/text.d.ts +1 -0
  863. package/singlestore-core/columns/text.js.map +1 -1
  864. package/singlestore-core/columns/time.cjs.map +1 -1
  865. package/singlestore-core/columns/time.d.cts +1 -0
  866. package/singlestore-core/columns/time.d.ts +1 -0
  867. package/singlestore-core/columns/time.js.map +1 -1
  868. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  869. package/singlestore-core/columns/timestamp.d.cts +2 -0
  870. package/singlestore-core/columns/timestamp.d.ts +2 -0
  871. package/singlestore-core/columns/timestamp.js.map +1 -1
  872. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  873. package/singlestore-core/columns/tinyint.d.cts +1 -0
  874. package/singlestore-core/columns/tinyint.d.ts +1 -0
  875. package/singlestore-core/columns/tinyint.js.map +1 -1
  876. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  877. package/singlestore-core/columns/varbinary.d.cts +1 -0
  878. package/singlestore-core/columns/varbinary.d.ts +1 -0
  879. package/singlestore-core/columns/varbinary.js.map +1 -1
  880. package/singlestore-core/columns/varchar.cjs.map +1 -1
  881. package/singlestore-core/columns/varchar.d.cts +1 -0
  882. package/singlestore-core/columns/varchar.d.ts +1 -0
  883. package/singlestore-core/columns/varchar.js.map +1 -1
  884. package/singlestore-core/columns/vector.cjs.map +1 -1
  885. package/singlestore-core/columns/vector.d.cts +2 -0
  886. package/singlestore-core/columns/vector.d.ts +2 -0
  887. package/singlestore-core/columns/vector.js.map +1 -1
  888. package/singlestore-core/columns/year.cjs.map +1 -1
  889. package/singlestore-core/columns/year.d.cts +1 -0
  890. package/singlestore-core/columns/year.d.ts +1 -0
  891. package/singlestore-core/columns/year.js.map +1 -1
  892. package/singlestore-core/dialect.cjs +15 -5
  893. package/singlestore-core/dialect.cjs.map +1 -1
  894. package/singlestore-core/dialect.js +16 -12
  895. package/singlestore-core/dialect.js.map +1 -1
  896. package/singlestore-core/indexes.cjs +2 -4
  897. package/singlestore-core/indexes.cjs.map +1 -1
  898. package/singlestore-core/indexes.d.cts +3 -4
  899. package/singlestore-core/indexes.d.ts +3 -4
  900. package/singlestore-core/indexes.js +2 -4
  901. package/singlestore-core/indexes.js.map +1 -1
  902. package/singlestore-core/primary-keys.cjs +0 -2
  903. package/singlestore-core/primary-keys.cjs.map +1 -1
  904. package/singlestore-core/primary-keys.d.cts +0 -1
  905. package/singlestore-core/primary-keys.d.ts +0 -1
  906. package/singlestore-core/primary-keys.js +0 -2
  907. package/singlestore-core/primary-keys.js.map +1 -1
  908. package/singlestore-core/query-builders/count.cjs.map +1 -1
  909. package/singlestore-core/query-builders/count.d.cts +1 -1
  910. package/singlestore-core/query-builders/count.d.ts +1 -1
  911. package/singlestore-core/query-builders/count.js.map +1 -1
  912. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  913. package/singlestore-core/query-builders/insert.d.cts +1 -1
  914. package/singlestore-core/query-builders/insert.d.ts +1 -1
  915. package/singlestore-core/query-builders/insert.js.map +1 -1
  916. package/singlestore-core/query-builders/update.cjs.map +1 -1
  917. package/singlestore-core/query-builders/update.d.cts +1 -1
  918. package/singlestore-core/query-builders/update.d.ts +1 -1
  919. package/singlestore-core/query-builders/update.js.map +1 -1
  920. package/singlestore-core/unique-constraint.cjs +0 -2
  921. package/singlestore-core/unique-constraint.cjs.map +1 -1
  922. package/singlestore-core/unique-constraint.d.cts +2 -3
  923. package/singlestore-core/unique-constraint.d.ts +2 -3
  924. package/singlestore-core/unique-constraint.js +0 -2
  925. package/singlestore-core/unique-constraint.js.map +1 -1
  926. package/sql/sql.cjs +10 -11
  927. package/sql/sql.cjs.map +1 -1
  928. package/sql/sql.d.cts +3 -3
  929. package/sql/sql.d.ts +3 -3
  930. package/sql/sql.js +10 -11
  931. package/sql/sql.js.map +1 -1
  932. package/sql-js/session.cjs.map +1 -1
  933. package/sql-js/session.js.map +1 -1
  934. package/sqlite-core/columns/blob.cjs.map +1 -1
  935. package/sqlite-core/columns/blob.d.cts +3 -0
  936. package/sqlite-core/columns/blob.d.ts +3 -0
  937. package/sqlite-core/columns/blob.js.map +1 -1
  938. package/sqlite-core/columns/common.cjs +4 -0
  939. package/sqlite-core/columns/common.cjs.map +1 -1
  940. package/sqlite-core/columns/common.js +4 -0
  941. package/sqlite-core/columns/common.js.map +1 -1
  942. package/sqlite-core/columns/custom.cjs.map +1 -1
  943. package/sqlite-core/columns/custom.d.cts +1 -0
  944. package/sqlite-core/columns/custom.d.ts +1 -0
  945. package/sqlite-core/columns/custom.js.map +1 -1
  946. package/sqlite-core/columns/integer.cjs.map +1 -1
  947. package/sqlite-core/columns/integer.d.cts +3 -0
  948. package/sqlite-core/columns/integer.d.ts +3 -0
  949. package/sqlite-core/columns/integer.js.map +1 -1
  950. package/sqlite-core/columns/numeric.cjs.map +1 -1
  951. package/sqlite-core/columns/numeric.d.cts +3 -0
  952. package/sqlite-core/columns/numeric.d.ts +3 -0
  953. package/sqlite-core/columns/numeric.js.map +1 -1
  954. package/sqlite-core/columns/real.cjs.map +1 -1
  955. package/sqlite-core/columns/real.d.cts +1 -0
  956. package/sqlite-core/columns/real.d.ts +1 -0
  957. package/sqlite-core/columns/real.js.map +1 -1
  958. package/sqlite-core/columns/text.cjs.map +1 -1
  959. package/sqlite-core/columns/text.d.cts +2 -0
  960. package/sqlite-core/columns/text.d.ts +2 -0
  961. package/sqlite-core/columns/text.js.map +1 -1
  962. package/sqlite-core/dialect.cjs +15 -9
  963. package/sqlite-core/dialect.cjs.map +1 -1
  964. package/sqlite-core/dialect.js +16 -16
  965. package/sqlite-core/dialect.js.map +1 -1
  966. package/sqlite-core/foreign-keys.cjs +0 -3
  967. package/sqlite-core/foreign-keys.cjs.map +1 -1
  968. package/sqlite-core/foreign-keys.d.cts +14 -1
  969. package/sqlite-core/foreign-keys.d.ts +14 -1
  970. package/sqlite-core/foreign-keys.js +0 -3
  971. package/sqlite-core/foreign-keys.js.map +1 -1
  972. package/sqlite-core/indexes.cjs +0 -2
  973. package/sqlite-core/indexes.cjs.map +1 -1
  974. package/sqlite-core/indexes.d.cts +0 -1
  975. package/sqlite-core/indexes.d.ts +0 -1
  976. package/sqlite-core/indexes.js +0 -2
  977. package/sqlite-core/indexes.js.map +1 -1
  978. package/sqlite-core/primary-keys.cjs +0 -2
  979. package/sqlite-core/primary-keys.cjs.map +1 -1
  980. package/sqlite-core/primary-keys.d.cts +0 -1
  981. package/sqlite-core/primary-keys.d.ts +0 -1
  982. package/sqlite-core/primary-keys.js +0 -2
  983. package/sqlite-core/primary-keys.js.map +1 -1
  984. package/sqlite-core/query-builders/count.cjs.map +1 -1
  985. package/sqlite-core/query-builders/count.d.cts +1 -1
  986. package/sqlite-core/query-builders/count.d.ts +1 -1
  987. package/sqlite-core/query-builders/count.js.map +1 -1
  988. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  989. package/sqlite-core/query-builders/insert.d.cts +2 -2
  990. package/sqlite-core/query-builders/insert.d.ts +2 -2
  991. package/sqlite-core/query-builders/insert.js.map +1 -1
  992. package/sqlite-core/query-builders/update.cjs.map +1 -1
  993. package/sqlite-core/query-builders/update.d.cts +1 -1
  994. package/sqlite-core/query-builders/update.d.ts +1 -1
  995. package/sqlite-core/query-builders/update.js.map +1 -1
  996. package/sqlite-core/unique-constraint.cjs +0 -2
  997. package/sqlite-core/unique-constraint.cjs.map +1 -1
  998. package/sqlite-core/unique-constraint.d.cts +2 -3
  999. package/sqlite-core/unique-constraint.d.ts +2 -3
  1000. package/sqlite-core/unique-constraint.js +0 -2
  1001. package/sqlite-core/unique-constraint.js.map +1 -1
  1002. package/sqlite-proxy/session.cjs +1 -0
  1003. package/sqlite-proxy/session.cjs.map +1 -1
  1004. package/sqlite-proxy/session.js +1 -0
  1005. package/sqlite-proxy/session.js.map +1 -1
  1006. package/table.cjs +1 -0
  1007. package/table.cjs.map +1 -1
  1008. package/table.d.cts +3 -2
  1009. package/table.d.ts +3 -2
  1010. package/table.js +1 -0
  1011. package/table.js.map +1 -1
  1012. package/tidb-serverless/driver.cjs +12 -8
  1013. package/tidb-serverless/driver.cjs.map +1 -1
  1014. package/tidb-serverless/driver.d.cts +3 -3
  1015. package/tidb-serverless/driver.d.ts +3 -3
  1016. package/tidb-serverless/driver.js +12 -8
  1017. package/tidb-serverless/driver.js.map +1 -1
  1018. package/tracing.cjs +1 -1
  1019. package/tracing.cjs.map +1 -1
  1020. package/tracing.js +1 -1
  1021. package/tracing.js.map +1 -1
  1022. package/tursodatabase/database.cjs +10 -6
  1023. package/tursodatabase/database.cjs.map +1 -1
  1024. package/tursodatabase/database.d.cts +3 -3
  1025. package/tursodatabase/database.d.ts +3 -3
  1026. package/tursodatabase/database.js +10 -6
  1027. package/tursodatabase/database.js.map +1 -1
  1028. package/tursodatabase/session.cjs +2 -0
  1029. package/tursodatabase/session.cjs.map +1 -1
  1030. package/tursodatabase/session.js +2 -0
  1031. package/tursodatabase/session.js.map +1 -1
  1032. package/tursodatabase/wasm.cjs +10 -6
  1033. package/tursodatabase/wasm.cjs.map +1 -1
  1034. package/tursodatabase/wasm.d.cts +3 -3
  1035. package/tursodatabase/wasm.d.ts +3 -3
  1036. package/tursodatabase/wasm.js +10 -6
  1037. package/tursodatabase/wasm.js.map +1 -1
  1038. package/utils.cjs +8 -1
  1039. package/utils.cjs.map +1 -1
  1040. package/utils.d.cts +11 -0
  1041. package/utils.d.ts +11 -0
  1042. package/utils.js +7 -1
  1043. package/utils.js.map +1 -1
  1044. package/vercel-postgres/session.cjs.map +1 -1
  1045. package/vercel-postgres/session.js.map +1 -1
  1046. package/version.cjs +2 -2
  1047. package/version.cjs.map +1 -1
  1048. package/version.d.cts +2 -2
  1049. package/version.d.ts +2 -2
  1050. package/version.js +2 -2
  1051. package/version.js.map +1 -1
  1052. package/cockroach/driver.cjs +0 -109
  1053. package/cockroach/driver.cjs.map +0 -1
  1054. package/cockroach/driver.d.cts +0 -42
  1055. package/cockroach/driver.d.ts +0 -42
  1056. package/cockroach/driver.js +0 -73
  1057. package/cockroach/driver.js.map +0 -1
  1058. package/cockroach/index.cjs +0 -25
  1059. package/cockroach/index.cjs.map +0 -1
  1060. package/cockroach/index.d.cts +0 -2
  1061. package/cockroach/index.d.ts +0 -2
  1062. package/cockroach/index.js +0 -3
  1063. package/cockroach/index.js.map +0 -1
  1064. package/cockroach/migrator.cjs +0 -33
  1065. package/cockroach/migrator.cjs.map +0 -1
  1066. package/cockroach/migrator.d.cts +0 -3
  1067. package/cockroach/migrator.d.ts +0 -3
  1068. package/cockroach/migrator.js +0 -9
  1069. package/cockroach/migrator.js.map +0 -1
  1070. package/cockroach/session.cjs +0 -253
  1071. package/cockroach/session.cjs.map +0 -1
  1072. package/cockroach/session.d.cts +0 -48
  1073. package/cockroach/session.d.ts +0 -48
  1074. package/cockroach/session.js +0 -217
  1075. package/cockroach/session.js.map +0 -1
  1076. package/cockroach-core/alias.cjs +0 -32
  1077. package/cockroach-core/alias.cjs.map +0 -1
  1078. package/cockroach-core/alias.d.cts +0 -4
  1079. package/cockroach-core/alias.d.ts +0 -4
  1080. package/cockroach-core/alias.js +0 -8
  1081. package/cockroach-core/alias.js.map +0 -1
  1082. package/cockroach-core/checks.cjs +0 -58
  1083. package/cockroach-core/checks.cjs.map +0 -1
  1084. package/cockroach-core/checks.d.cts +0 -18
  1085. package/cockroach-core/checks.d.ts +0 -18
  1086. package/cockroach-core/checks.js +0 -32
  1087. package/cockroach-core/checks.js.map +0 -1
  1088. package/cockroach-core/columns/all.cjs +0 -81
  1089. package/cockroach-core/columns/all.cjs.map +0 -1
  1090. package/cockroach-core/columns/all.d.cts +0 -52
  1091. package/cockroach-core/columns/all.d.ts +0 -52
  1092. package/cockroach-core/columns/all.js +0 -57
  1093. package/cockroach-core/columns/all.js.map +0 -1
  1094. package/cockroach-core/columns/bigint.cjs +0 -104
  1095. package/cockroach-core/columns/bigint.cjs.map +0 -1
  1096. package/cockroach-core/columns/bigint.d.cts +0 -37
  1097. package/cockroach-core/columns/bigint.d.ts +0 -37
  1098. package/cockroach-core/columns/bigint.js +0 -75
  1099. package/cockroach-core/columns/bigint.js.map +0 -1
  1100. package/cockroach-core/columns/bit.cjs +0 -61
  1101. package/cockroach-core/columns/bit.cjs.map +0 -1
  1102. package/cockroach-core/columns/bit.d.cts +0 -29
  1103. package/cockroach-core/columns/bit.d.ts +0 -29
  1104. package/cockroach-core/columns/bit.js +0 -35
  1105. package/cockroach-core/columns/bit.js.map +0 -1
  1106. package/cockroach-core/columns/bool.cjs +0 -59
  1107. package/cockroach-core/columns/bool.cjs.map +0 -1
  1108. package/cockroach-core/columns/bool.d.cts +0 -17
  1109. package/cockroach-core/columns/bool.d.ts +0 -17
  1110. package/cockroach-core/columns/bool.js +0 -32
  1111. package/cockroach-core/columns/bool.js.map +0 -1
  1112. package/cockroach-core/columns/char.cjs +0 -62
  1113. package/cockroach-core/columns/char.cjs.map +0 -1
  1114. package/cockroach-core/columns/char.d.cts +0 -31
  1115. package/cockroach-core/columns/char.d.ts +0 -31
  1116. package/cockroach-core/columns/char.js +0 -36
  1117. package/cockroach-core/columns/char.js.map +0 -1
  1118. package/cockroach-core/columns/common.cjs +0 -198
  1119. package/cockroach-core/columns/common.cjs.map +0 -1
  1120. package/cockroach-core/columns/common.d.cts +0 -98
  1121. package/cockroach-core/columns/common.d.ts +0 -98
  1122. package/cockroach-core/columns/common.js +0 -168
  1123. package/cockroach-core/columns/common.js.map +0 -1
  1124. package/cockroach-core/columns/custom.cjs +0 -102
  1125. package/cockroach-core/columns/custom.cjs.map +0 -1
  1126. package/cockroach-core/columns/custom.d.cts +0 -261
  1127. package/cockroach-core/columns/custom.d.ts +0 -261
  1128. package/cockroach-core/columns/custom.js +0 -76
  1129. package/cockroach-core/columns/custom.js.map +0 -1
  1130. package/cockroach-core/columns/date.cjs +0 -91
  1131. package/cockroach-core/columns/date.cjs.map +0 -1
  1132. package/cockroach-core/columns/date.common.cjs +0 -37
  1133. package/cockroach-core/columns/date.common.cjs.map +0 -1
  1134. package/cockroach-core/columns/date.common.d.cts +0 -7
  1135. package/cockroach-core/columns/date.common.d.ts +0 -7
  1136. package/cockroach-core/columns/date.common.js +0 -13
  1137. package/cockroach-core/columns/date.common.js.map +0 -1
  1138. package/cockroach-core/columns/date.d.cts +0 -36
  1139. package/cockroach-core/columns/date.d.ts +0 -36
  1140. package/cockroach-core/columns/date.js +0 -63
  1141. package/cockroach-core/columns/date.js.map +0 -1
  1142. package/cockroach-core/columns/decimal.cjs +0 -164
  1143. package/cockroach-core/columns/decimal.cjs.map +0 -1
  1144. package/cockroach-core/columns/decimal.d.cts +0 -80
  1145. package/cockroach-core/columns/decimal.d.ts +0 -80
  1146. package/cockroach-core/columns/decimal.js +0 -133
  1147. package/cockroach-core/columns/decimal.js.map +0 -1
  1148. package/cockroach-core/columns/enum.cjs +0 -127
  1149. package/cockroach-core/columns/enum.cjs.map +0 -1
  1150. package/cockroach-core/columns/enum.d.cts +0 -64
  1151. package/cockroach-core/columns/enum.d.ts +0 -64
  1152. package/cockroach-core/columns/enum.js +0 -96
  1153. package/cockroach-core/columns/enum.js.map +0 -1
  1154. package/cockroach-core/columns/float.cjs +0 -65
  1155. package/cockroach-core/columns/float.cjs.map +0 -1
  1156. package/cockroach-core/columns/float.d.cts +0 -18
  1157. package/cockroach-core/columns/float.d.ts +0 -18
  1158. package/cockroach-core/columns/float.js +0 -38
  1159. package/cockroach-core/columns/float.js.map +0 -1
  1160. package/cockroach-core/columns/geometry.cjs +0 -105
  1161. package/cockroach-core/columns/geometry.cjs.map +0 -1
  1162. package/cockroach-core/columns/geometry.d.cts +0 -60
  1163. package/cockroach-core/columns/geometry.d.ts +0 -60
  1164. package/cockroach-core/columns/geometry.js +0 -77
  1165. package/cockroach-core/columns/geometry.js.map +0 -1
  1166. package/cockroach-core/columns/index.cjs +0 -71
  1167. package/cockroach-core/columns/index.cjs.map +0 -1
  1168. package/cockroach-core/columns/index.d.cts +0 -25
  1169. package/cockroach-core/columns/index.d.ts +0 -25
  1170. package/cockroach-core/columns/index.js +0 -26
  1171. package/cockroach-core/columns/index.js.map +0 -1
  1172. package/cockroach-core/columns/inet.cjs +0 -56
  1173. package/cockroach-core/columns/inet.cjs.map +0 -1
  1174. package/cockroach-core/columns/inet.d.cts +0 -16
  1175. package/cockroach-core/columns/inet.d.ts +0 -16
  1176. package/cockroach-core/columns/inet.js +0 -30
  1177. package/cockroach-core/columns/inet.js.map +0 -1
  1178. package/cockroach-core/columns/int.common.cjs +0 -55
  1179. package/cockroach-core/columns/int.common.cjs.map +0 -1
  1180. package/cockroach-core/columns/int.common.d.cts +0 -11
  1181. package/cockroach-core/columns/int.common.d.ts +0 -11
  1182. package/cockroach-core/columns/int.common.js +0 -31
  1183. package/cockroach-core/columns/int.common.js.map +0 -1
  1184. package/cockroach-core/columns/integer.cjs +0 -63
  1185. package/cockroach-core/columns/integer.cjs.map +0 -1
  1186. package/cockroach-core/columns/integer.d.cts +0 -18
  1187. package/cockroach-core/columns/integer.d.ts +0 -18
  1188. package/cockroach-core/columns/integer.js +0 -37
  1189. package/cockroach-core/columns/integer.js.map +0 -1
  1190. package/cockroach-core/columns/interval.cjs +0 -63
  1191. package/cockroach-core/columns/interval.cjs.map +0 -1
  1192. package/cockroach-core/columns/interval.d.cts +0 -28
  1193. package/cockroach-core/columns/interval.d.ts +0 -28
  1194. package/cockroach-core/columns/interval.js +0 -37
  1195. package/cockroach-core/columns/interval.js.map +0 -1
  1196. package/cockroach-core/columns/jsonb.cjs +0 -72
  1197. package/cockroach-core/columns/jsonb.cjs.map +0 -1
  1198. package/cockroach-core/columns/jsonb.d.cts +0 -20
  1199. package/cockroach-core/columns/jsonb.d.ts +0 -20
  1200. package/cockroach-core/columns/jsonb.js +0 -46
  1201. package/cockroach-core/columns/jsonb.js.map +0 -1
  1202. package/cockroach-core/columns/real.cjs +0 -66
  1203. package/cockroach-core/columns/real.cjs.map +0 -1
  1204. package/cockroach-core/columns/real.d.cts +0 -21
  1205. package/cockroach-core/columns/real.d.ts +0 -21
  1206. package/cockroach-core/columns/real.js +0 -40
  1207. package/cockroach-core/columns/real.js.map +0 -1
  1208. package/cockroach-core/columns/smallint.cjs +0 -68
  1209. package/cockroach-core/columns/smallint.cjs.map +0 -1
  1210. package/cockroach-core/columns/smallint.d.cts +0 -19
  1211. package/cockroach-core/columns/smallint.d.ts +0 -19
  1212. package/cockroach-core/columns/smallint.js +0 -41
  1213. package/cockroach-core/columns/smallint.js.map +0 -1
  1214. package/cockroach-core/columns/string.cjs +0 -67
  1215. package/cockroach-core/columns/string.cjs.map +0 -1
  1216. package/cockroach-core/columns/string.d.cts +0 -36
  1217. package/cockroach-core/columns/string.d.ts +0 -36
  1218. package/cockroach-core/columns/string.js +0 -40
  1219. package/cockroach-core/columns/string.js.map +0 -1
  1220. package/cockroach-core/columns/time.cjs +0 -70
  1221. package/cockroach-core/columns/time.cjs.map +0 -1
  1222. package/cockroach-core/columns/time.d.cts +0 -31
  1223. package/cockroach-core/columns/time.d.ts +0 -31
  1224. package/cockroach-core/columns/time.js +0 -44
  1225. package/cockroach-core/columns/time.js.map +0 -1
  1226. package/cockroach-core/columns/timestamp.cjs +0 -111
  1227. package/cockroach-core/columns/timestamp.cjs.map +0 -1
  1228. package/cockroach-core/columns/timestamp.d.cts +0 -52
  1229. package/cockroach-core/columns/timestamp.d.ts +0 -52
  1230. package/cockroach-core/columns/timestamp.js +0 -83
  1231. package/cockroach-core/columns/timestamp.js.map +0 -1
  1232. package/cockroach-core/columns/utils.cjs +0 -65
  1233. package/cockroach-core/columns/utils.cjs.map +0 -1
  1234. package/cockroach-core/columns/utils.d.cts +0 -4
  1235. package/cockroach-core/columns/utils.d.ts +0 -4
  1236. package/cockroach-core/columns/utils.js +0 -41
  1237. package/cockroach-core/columns/utils.js.map +0 -1
  1238. package/cockroach-core/columns/uuid.cjs +0 -63
  1239. package/cockroach-core/columns/uuid.cjs.map +0 -1
  1240. package/cockroach-core/columns/uuid.d.cts +0 -20
  1241. package/cockroach-core/columns/uuid.d.ts +0 -20
  1242. package/cockroach-core/columns/uuid.js +0 -37
  1243. package/cockroach-core/columns/uuid.js.map +0 -1
  1244. package/cockroach-core/columns/varbit.cjs +0 -59
  1245. package/cockroach-core/columns/varbit.cjs.map +0 -1
  1246. package/cockroach-core/columns/varbit.d.cts +0 -24
  1247. package/cockroach-core/columns/varbit.d.ts +0 -24
  1248. package/cockroach-core/columns/varbit.js +0 -33
  1249. package/cockroach-core/columns/varbit.js.map +0 -1
  1250. package/cockroach-core/columns/varchar.cjs +0 -61
  1251. package/cockroach-core/columns/varchar.cjs.map +0 -1
  1252. package/cockroach-core/columns/varchar.d.cts +0 -30
  1253. package/cockroach-core/columns/varchar.d.ts +0 -30
  1254. package/cockroach-core/columns/varchar.js +0 -35
  1255. package/cockroach-core/columns/varchar.js.map +0 -1
  1256. package/cockroach-core/columns/vector.cjs +0 -65
  1257. package/cockroach-core/columns/vector.cjs.map +0 -1
  1258. package/cockroach-core/columns/vector.d.cts +0 -26
  1259. package/cockroach-core/columns/vector.d.ts +0 -26
  1260. package/cockroach-core/columns/vector.js +0 -39
  1261. package/cockroach-core/columns/vector.js.map +0 -1
  1262. package/cockroach-core/db.cjs +0 -346
  1263. package/cockroach-core/db.cjs.map +0 -1
  1264. package/cockroach-core/db.d.cts +0 -282
  1265. package/cockroach-core/db.d.ts +0 -282
  1266. package/cockroach-core/db.js +0 -327
  1267. package/cockroach-core/db.js.map +0 -1
  1268. package/cockroach-core/dialect.cjs +0 -1162
  1269. package/cockroach-core/dialect.cjs.map +0 -1
  1270. package/cockroach-core/dialect.d.cts +0 -65
  1271. package/cockroach-core/dialect.d.ts +0 -65
  1272. package/cockroach-core/dialect.js +0 -1148
  1273. package/cockroach-core/dialect.js.map +0 -1
  1274. package/cockroach-core/expressions.cjs +0 -49
  1275. package/cockroach-core/expressions.cjs.map +0 -1
  1276. package/cockroach-core/expressions.d.cts +0 -8
  1277. package/cockroach-core/expressions.d.ts +0 -8
  1278. package/cockroach-core/expressions.js +0 -22
  1279. package/cockroach-core/expressions.js.map +0 -1
  1280. package/cockroach-core/foreign-keys.cjs +0 -95
  1281. package/cockroach-core/foreign-keys.cjs.map +0 -1
  1282. package/cockroach-core/foreign-keys.d.cts +0 -53
  1283. package/cockroach-core/foreign-keys.d.ts +0 -53
  1284. package/cockroach-core/foreign-keys.js +0 -69
  1285. package/cockroach-core/foreign-keys.js.map +0 -1
  1286. package/cockroach-core/index.cjs +0 -61
  1287. package/cockroach-core/index.cjs.map +0 -1
  1288. package/cockroach-core/index.d.cts +0 -20
  1289. package/cockroach-core/index.d.ts +0 -20
  1290. package/cockroach-core/index.js +0 -21
  1291. package/cockroach-core/index.js.map +0 -1
  1292. package/cockroach-core/indexes.cjs +0 -139
  1293. package/cockroach-core/indexes.cjs.map +0 -1
  1294. package/cockroach-core/indexes.d.cts +0 -65
  1295. package/cockroach-core/indexes.d.ts +0 -65
  1296. package/cockroach-core/indexes.js +0 -111
  1297. package/cockroach-core/indexes.js.map +0 -1
  1298. package/cockroach-core/policies.cjs +0 -58
  1299. package/cockroach-core/policies.cjs.map +0 -1
  1300. package/cockroach-core/policies.d.cts +0 -24
  1301. package/cockroach-core/policies.d.ts +0 -24
  1302. package/cockroach-core/policies.js +0 -33
  1303. package/cockroach-core/policies.js.map +0 -1
  1304. package/cockroach-core/primary-keys.cjs +0 -66
  1305. package/cockroach-core/primary-keys.cjs.map +0 -1
  1306. package/cockroach-core/primary-keys.d.cts +0 -24
  1307. package/cockroach-core/primary-keys.d.ts +0 -24
  1308. package/cockroach-core/primary-keys.js +0 -40
  1309. package/cockroach-core/primary-keys.js.map +0 -1
  1310. package/cockroach-core/query-builders/count.cjs +0 -79
  1311. package/cockroach-core/query-builders/count.cjs.map +0 -1
  1312. package/cockroach-core/query-builders/count.d.cts +0 -30
  1313. package/cockroach-core/query-builders/count.d.ts +0 -30
  1314. package/cockroach-core/query-builders/count.js +0 -55
  1315. package/cockroach-core/query-builders/count.js.map +0 -1
  1316. package/cockroach-core/query-builders/delete.cjs +0 -124
  1317. package/cockroach-core/query-builders/delete.cjs.map +0 -1
  1318. package/cockroach-core/query-builders/delete.d.cts +0 -103
  1319. package/cockroach-core/query-builders/delete.d.ts +0 -103
  1320. package/cockroach-core/query-builders/delete.js +0 -100
  1321. package/cockroach-core/query-builders/delete.js.map +0 -1
  1322. package/cockroach-core/query-builders/index.cjs +0 -35
  1323. package/cockroach-core/query-builders/index.cjs.map +0 -1
  1324. package/cockroach-core/query-builders/index.d.cts +0 -7
  1325. package/cockroach-core/query-builders/index.d.ts +0 -7
  1326. package/cockroach-core/query-builders/index.js +0 -8
  1327. package/cockroach-core/query-builders/index.js.map +0 -1
  1328. package/cockroach-core/query-builders/insert.cjs +0 -213
  1329. package/cockroach-core/query-builders/insert.cjs.map +0 -1
  1330. package/cockroach-core/query-builders/insert.d.cts +0 -168
  1331. package/cockroach-core/query-builders/insert.d.ts +0 -168
  1332. package/cockroach-core/query-builders/insert.js +0 -188
  1333. package/cockroach-core/query-builders/insert.js.map +0 -1
  1334. package/cockroach-core/query-builders/query-builder.cjs +0 -118
  1335. package/cockroach-core/query-builders/query-builder.cjs.map +0 -1
  1336. package/cockroach-core/query-builders/query-builder.d.cts +0 -37
  1337. package/cockroach-core/query-builders/query-builder.d.ts +0 -37
  1338. package/cockroach-core/query-builders/query-builder.js +0 -94
  1339. package/cockroach-core/query-builders/query-builder.js.map +0 -1
  1340. package/cockroach-core/query-builders/query.cjs +0 -145
  1341. package/cockroach-core/query-builders/query.cjs.map +0 -1
  1342. package/cockroach-core/query-builders/query.d.cts +0 -47
  1343. package/cockroach-core/query-builders/query.d.ts +0 -47
  1344. package/cockroach-core/query-builders/query.js +0 -122
  1345. package/cockroach-core/query-builders/query.js.map +0 -1
  1346. package/cockroach-core/query-builders/raw.cjs +0 -57
  1347. package/cockroach-core/query-builders/raw.cjs.map +0 -1
  1348. package/cockroach-core/query-builders/raw.d.cts +0 -22
  1349. package/cockroach-core/query-builders/raw.d.ts +0 -22
  1350. package/cockroach-core/query-builders/raw.js +0 -33
  1351. package/cockroach-core/query-builders/raw.js.map +0 -1
  1352. package/cockroach-core/query-builders/refresh-materialized-view.cjs +0 -83
  1353. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +0 -1
  1354. package/cockroach-core/query-builders/refresh-materialized-view.d.cts +0 -28
  1355. package/cockroach-core/query-builders/refresh-materialized-view.d.ts +0 -28
  1356. package/cockroach-core/query-builders/refresh-materialized-view.js +0 -59
  1357. package/cockroach-core/query-builders/refresh-materialized-view.js.map +0 -1
  1358. package/cockroach-core/query-builders/select.cjs +0 -847
  1359. package/cockroach-core/query-builders/select.cjs.map +0 -1
  1360. package/cockroach-core/query-builders/select.d.cts +0 -787
  1361. package/cockroach-core/query-builders/select.d.ts +0 -787
  1362. package/cockroach-core/query-builders/select.js +0 -821
  1363. package/cockroach-core/query-builders/select.js.map +0 -1
  1364. package/cockroach-core/query-builders/select.types.cjs +0 -17
  1365. package/cockroach-core/query-builders/select.types.cjs.map +0 -1
  1366. package/cockroach-core/query-builders/select.types.d.cts +0 -140
  1367. package/cockroach-core/query-builders/select.types.d.ts +0 -140
  1368. package/cockroach-core/query-builders/select.types.js +0 -1
  1369. package/cockroach-core/query-builders/select.types.js.map +0 -1
  1370. package/cockroach-core/query-builders/update.cjs +0 -240
  1371. package/cockroach-core/query-builders/update.cjs.map +0 -1
  1372. package/cockroach-core/query-builders/update.d.cts +0 -170
  1373. package/cockroach-core/query-builders/update.d.ts +0 -170
  1374. package/cockroach-core/query-builders/update.js +0 -219
  1375. package/cockroach-core/query-builders/update.js.map +0 -1
  1376. package/cockroach-core/roles.cjs +0 -54
  1377. package/cockroach-core/roles.cjs.map +0 -1
  1378. package/cockroach-core/roles.d.cts +0 -12
  1379. package/cockroach-core/roles.d.ts +0 -12
  1380. package/cockroach-core/roles.js +0 -29
  1381. package/cockroach-core/roles.js.map +0 -1
  1382. package/cockroach-core/schema.cjs +0 -92
  1383. package/cockroach-core/schema.cjs.map +0 -1
  1384. package/cockroach-core/schema.d.cts +0 -24
  1385. package/cockroach-core/schema.d.ts +0 -24
  1386. package/cockroach-core/schema.js +0 -72
  1387. package/cockroach-core/schema.js.map +0 -1
  1388. package/cockroach-core/sequence.cjs +0 -52
  1389. package/cockroach-core/sequence.cjs.map +0 -1
  1390. package/cockroach-core/sequence.d.cts +0 -17
  1391. package/cockroach-core/sequence.d.ts +0 -17
  1392. package/cockroach-core/sequence.js +0 -25
  1393. package/cockroach-core/sequence.js.map +0 -1
  1394. package/cockroach-core/session.cjs +0 -120
  1395. package/cockroach-core/session.cjs.map +0 -1
  1396. package/cockroach-core/session.d.cts +0 -62
  1397. package/cockroach-core/session.d.ts +0 -62
  1398. package/cockroach-core/session.js +0 -94
  1399. package/cockroach-core/session.js.map +0 -1
  1400. package/cockroach-core/subquery.cjs +0 -17
  1401. package/cockroach-core/subquery.cjs.map +0 -1
  1402. package/cockroach-core/subquery.d.cts +0 -18
  1403. package/cockroach-core/subquery.d.ts +0 -18
  1404. package/cockroach-core/subquery.js +0 -1
  1405. package/cockroach-core/subquery.js.map +0 -1
  1406. package/cockroach-core/table.cjs +0 -121
  1407. package/cockroach-core/table.cjs.map +0 -1
  1408. package/cockroach-core/table.d.cts +0 -41
  1409. package/cockroach-core/table.d.ts +0 -41
  1410. package/cockroach-core/table.js +0 -94
  1411. package/cockroach-core/table.js.map +0 -1
  1412. package/cockroach-core/unique-constraint.cjs +0 -77
  1413. package/cockroach-core/unique-constraint.cjs.map +0 -1
  1414. package/cockroach-core/unique-constraint.d.cts +0 -23
  1415. package/cockroach-core/unique-constraint.d.ts +0 -23
  1416. package/cockroach-core/unique-constraint.js +0 -50
  1417. package/cockroach-core/unique-constraint.js.map +0 -1
  1418. package/cockroach-core/utils/array.cjs +0 -106
  1419. package/cockroach-core/utils/array.cjs.map +0 -1
  1420. package/cockroach-core/utils/array.d.cts +0 -3
  1421. package/cockroach-core/utils/array.d.ts +0 -3
  1422. package/cockroach-core/utils/array.js +0 -80
  1423. package/cockroach-core/utils/array.js.map +0 -1
  1424. package/cockroach-core/utils/index.cjs +0 -23
  1425. package/cockroach-core/utils/index.cjs.map +0 -1
  1426. package/cockroach-core/utils/index.d.cts +0 -1
  1427. package/cockroach-core/utils/index.d.ts +0 -1
  1428. package/cockroach-core/utils/index.js +0 -2
  1429. package/cockroach-core/utils/index.js.map +0 -1
  1430. package/cockroach-core/utils.cjs +0 -98
  1431. package/cockroach-core/utils.cjs.map +0 -1
  1432. package/cockroach-core/utils.d.cts +0 -47
  1433. package/cockroach-core/utils.d.ts +0 -47
  1434. package/cockroach-core/utils.js +0 -72
  1435. package/cockroach-core/utils.js.map +0 -1
  1436. package/cockroach-core/view-base.cjs +0 -33
  1437. package/cockroach-core/view-base.cjs.map +0 -1
  1438. package/cockroach-core/view-base.d.cts +0 -8
  1439. package/cockroach-core/view-base.d.ts +0 -8
  1440. package/cockroach-core/view-base.js +0 -9
  1441. package/cockroach-core/view-base.js.map +0 -1
  1442. package/cockroach-core/view.cjs +0 -271
  1443. package/cockroach-core/view.cjs.map +0 -1
  1444. package/cockroach-core/view.d.cts +0 -106
  1445. package/cockroach-core/view.d.ts +0 -106
  1446. package/cockroach-core/view.js +0 -233
  1447. package/cockroach-core/view.js.map +0 -1
  1448. package/column-common.cjs +0 -29
  1449. package/column-common.cjs.map +0 -1
  1450. package/column-common.d.cts +0 -1
  1451. package/column-common.d.ts +0 -1
  1452. package/column-common.js +0 -5
  1453. package/column-common.js.map +0 -1
  1454. package/mssql-core/alias.cjs +0 -32
  1455. package/mssql-core/alias.cjs.map +0 -1
  1456. package/mssql-core/alias.d.cts +0 -4
  1457. package/mssql-core/alias.d.ts +0 -4
  1458. package/mssql-core/alias.js +0 -8
  1459. package/mssql-core/alias.js.map +0 -1
  1460. package/mssql-core/checks.cjs +0 -58
  1461. package/mssql-core/checks.cjs.map +0 -1
  1462. package/mssql-core/checks.d.cts +0 -18
  1463. package/mssql-core/checks.d.ts +0 -18
  1464. package/mssql-core/checks.js +0 -32
  1465. package/mssql-core/checks.js.map +0 -1
  1466. package/mssql-core/columns/all.cjs +0 -74
  1467. package/mssql-core/columns/all.cjs.map +0 -1
  1468. package/mssql-core/columns/all.d.cts +0 -45
  1469. package/mssql-core/columns/all.d.ts +0 -45
  1470. package/mssql-core/columns/all.js +0 -50
  1471. package/mssql-core/columns/all.js.map +0 -1
  1472. package/mssql-core/columns/bigint.cjs +0 -72
  1473. package/mssql-core/columns/bigint.cjs.map +0 -1
  1474. package/mssql-core/columns/bigint.d.cts +0 -25
  1475. package/mssql-core/columns/bigint.d.ts +0 -25
  1476. package/mssql-core/columns/bigint.js +0 -46
  1477. package/mssql-core/columns/bigint.js.map +0 -1
  1478. package/mssql-core/columns/binary.cjs +0 -57
  1479. package/mssql-core/columns/binary.cjs.map +0 -1
  1480. package/mssql-core/columns/binary.d.cts +0 -24
  1481. package/mssql-core/columns/binary.d.ts +0 -24
  1482. package/mssql-core/columns/binary.js +0 -31
  1483. package/mssql-core/columns/binary.js.map +0 -1
  1484. package/mssql-core/columns/bit.cjs +0 -54
  1485. package/mssql-core/columns/bit.cjs.map +0 -1
  1486. package/mssql-core/columns/bit.d.cts +0 -17
  1487. package/mssql-core/columns/bit.d.ts +0 -17
  1488. package/mssql-core/columns/bit.js +0 -28
  1489. package/mssql-core/columns/bit.js.map +0 -1
  1490. package/mssql-core/columns/char.cjs +0 -73
  1491. package/mssql-core/columns/char.cjs.map +0 -1
  1492. package/mssql-core/columns/char.d.cts +0 -29
  1493. package/mssql-core/columns/char.d.ts +0 -29
  1494. package/mssql-core/columns/char.js +0 -46
  1495. package/mssql-core/columns/char.js.map +0 -1
  1496. package/mssql-core/columns/common.cjs +0 -112
  1497. package/mssql-core/columns/common.cjs.map +0 -1
  1498. package/mssql-core/columns/common.d.cts +0 -57
  1499. package/mssql-core/columns/common.d.ts +0 -57
  1500. package/mssql-core/columns/common.js +0 -85
  1501. package/mssql-core/columns/common.js.map +0 -1
  1502. package/mssql-core/columns/custom.cjs +0 -105
  1503. package/mssql-core/columns/custom.cjs.map +0 -1
  1504. package/mssql-core/columns/custom.d.cts +0 -261
  1505. package/mssql-core/columns/custom.d.ts +0 -261
  1506. package/mssql-core/columns/custom.js +0 -79
  1507. package/mssql-core/columns/custom.js.map +0 -1
  1508. package/mssql-core/columns/date.cjs +0 -94
  1509. package/mssql-core/columns/date.cjs.map +0 -1
  1510. package/mssql-core/columns/date.common.cjs +0 -37
  1511. package/mssql-core/columns/date.common.cjs.map +0 -1
  1512. package/mssql-core/columns/date.common.d.cts +0 -12
  1513. package/mssql-core/columns/date.common.d.ts +0 -12
  1514. package/mssql-core/columns/date.common.js +0 -13
  1515. package/mssql-core/columns/date.common.js.map +0 -1
  1516. package/mssql-core/columns/date.d.cts +0 -39
  1517. package/mssql-core/columns/date.d.ts +0 -39
  1518. package/mssql-core/columns/date.js +0 -66
  1519. package/mssql-core/columns/date.js.map +0 -1
  1520. package/mssql-core/columns/datetime.cjs +0 -94
  1521. package/mssql-core/columns/datetime.cjs.map +0 -1
  1522. package/mssql-core/columns/datetime.d.cts +0 -38
  1523. package/mssql-core/columns/datetime.d.ts +0 -38
  1524. package/mssql-core/columns/datetime.js +0 -66
  1525. package/mssql-core/columns/datetime.js.map +0 -1
  1526. package/mssql-core/columns/datetime2.cjs +0 -102
  1527. package/mssql-core/columns/datetime2.cjs.map +0 -1
  1528. package/mssql-core/columns/datetime2.d.cts +0 -38
  1529. package/mssql-core/columns/datetime2.d.ts +0 -38
  1530. package/mssql-core/columns/datetime2.js +0 -74
  1531. package/mssql-core/columns/datetime2.js.map +0 -1
  1532. package/mssql-core/columns/datetimeoffset.cjs +0 -102
  1533. package/mssql-core/columns/datetimeoffset.cjs.map +0 -1
  1534. package/mssql-core/columns/datetimeoffset.d.cts +0 -39
  1535. package/mssql-core/columns/datetimeoffset.d.ts +0 -39
  1536. package/mssql-core/columns/datetimeoffset.js +0 -74
  1537. package/mssql-core/columns/datetimeoffset.js.map +0 -1
  1538. package/mssql-core/columns/decimal.cjs +0 -146
  1539. package/mssql-core/columns/decimal.cjs.map +0 -1
  1540. package/mssql-core/columns/decimal.d.cts +0 -58
  1541. package/mssql-core/columns/decimal.d.ts +0 -58
  1542. package/mssql-core/columns/decimal.js +0 -116
  1543. package/mssql-core/columns/decimal.js.map +0 -1
  1544. package/mssql-core/columns/float.cjs +0 -58
  1545. package/mssql-core/columns/float.cjs.map +0 -1
  1546. package/mssql-core/columns/float.d.cts +0 -21
  1547. package/mssql-core/columns/float.d.ts +0 -21
  1548. package/mssql-core/columns/float.js +0 -32
  1549. package/mssql-core/columns/float.js.map +0 -1
  1550. package/mssql-core/columns/index.cjs +0 -63
  1551. package/mssql-core/columns/index.cjs.map +0 -1
  1552. package/mssql-core/columns/index.d.cts +0 -21
  1553. package/mssql-core/columns/index.d.ts +0 -21
  1554. package/mssql-core/columns/index.js +0 -22
  1555. package/mssql-core/columns/index.js.map +0 -1
  1556. package/mssql-core/columns/int.cjs +0 -53
  1557. package/mssql-core/columns/int.cjs.map +0 -1
  1558. package/mssql-core/columns/int.d.cts +0 -16
  1559. package/mssql-core/columns/int.d.ts +0 -16
  1560. package/mssql-core/columns/int.js +0 -27
  1561. package/mssql-core/columns/int.js.map +0 -1
  1562. package/mssql-core/columns/numeric.cjs +0 -146
  1563. package/mssql-core/columns/numeric.cjs.map +0 -1
  1564. package/mssql-core/columns/numeric.d.cts +0 -58
  1565. package/mssql-core/columns/numeric.d.ts +0 -58
  1566. package/mssql-core/columns/numeric.js +0 -116
  1567. package/mssql-core/columns/numeric.js.map +0 -1
  1568. package/mssql-core/columns/real.cjs +0 -53
  1569. package/mssql-core/columns/real.cjs.map +0 -1
  1570. package/mssql-core/columns/real.d.cts +0 -16
  1571. package/mssql-core/columns/real.d.ts +0 -16
  1572. package/mssql-core/columns/real.js +0 -27
  1573. package/mssql-core/columns/real.js.map +0 -1
  1574. package/mssql-core/columns/smallint.cjs +0 -62
  1575. package/mssql-core/columns/smallint.cjs.map +0 -1
  1576. package/mssql-core/columns/smallint.d.cts +0 -17
  1577. package/mssql-core/columns/smallint.d.ts +0 -17
  1578. package/mssql-core/columns/smallint.js +0 -36
  1579. package/mssql-core/columns/smallint.js.map +0 -1
  1580. package/mssql-core/columns/text.cjs +0 -68
  1581. package/mssql-core/columns/text.cjs.map +0 -1
  1582. package/mssql-core/columns/text.d.cts +0 -36
  1583. package/mssql-core/columns/text.d.ts +0 -36
  1584. package/mssql-core/columns/text.js +0 -41
  1585. package/mssql-core/columns/text.js.map +0 -1
  1586. package/mssql-core/columns/time.cjs +0 -90
  1587. package/mssql-core/columns/time.cjs.map +0 -1
  1588. package/mssql-core/columns/time.d.cts +0 -37
  1589. package/mssql-core/columns/time.d.ts +0 -37
  1590. package/mssql-core/columns/time.js +0 -62
  1591. package/mssql-core/columns/time.js.map +0 -1
  1592. package/mssql-core/columns/tinyint.cjs +0 -62
  1593. package/mssql-core/columns/tinyint.cjs.map +0 -1
  1594. package/mssql-core/columns/tinyint.d.cts +0 -17
  1595. package/mssql-core/columns/tinyint.d.ts +0 -17
  1596. package/mssql-core/columns/tinyint.js +0 -36
  1597. package/mssql-core/columns/tinyint.js.map +0 -1
  1598. package/mssql-core/columns/varbinary.cjs +0 -61
  1599. package/mssql-core/columns/varbinary.cjs.map +0 -1
  1600. package/mssql-core/columns/varbinary.d.cts +0 -23
  1601. package/mssql-core/columns/varbinary.d.ts +0 -23
  1602. package/mssql-core/columns/varbinary.js +0 -35
  1603. package/mssql-core/columns/varbinary.js.map +0 -1
  1604. package/mssql-core/columns/varchar.cjs +0 -117
  1605. package/mssql-core/columns/varchar.cjs.map +0 -1
  1606. package/mssql-core/columns/varchar.d.cts +0 -59
  1607. package/mssql-core/columns/varchar.d.ts +0 -59
  1608. package/mssql-core/columns/varchar.js +0 -88
  1609. package/mssql-core/columns/varchar.js.map +0 -1
  1610. package/mssql-core/db.cjs +0 -255
  1611. package/mssql-core/db.cjs.map +0 -1
  1612. package/mssql-core/db.d.cts +0 -228
  1613. package/mssql-core/db.d.ts +0 -228
  1614. package/mssql-core/db.js +0 -236
  1615. package/mssql-core/db.js.map +0 -1
  1616. package/mssql-core/dialect.cjs +0 -654
  1617. package/mssql-core/dialect.cjs.map +0 -1
  1618. package/mssql-core/dialect.d.cts +0 -58
  1619. package/mssql-core/dialect.d.ts +0 -58
  1620. package/mssql-core/dialect.js +0 -626
  1621. package/mssql-core/dialect.js.map +0 -1
  1622. package/mssql-core/expressions.cjs +0 -49
  1623. package/mssql-core/expressions.cjs.map +0 -1
  1624. package/mssql-core/expressions.d.cts +0 -8
  1625. package/mssql-core/expressions.d.ts +0 -8
  1626. package/mssql-core/expressions.js +0 -22
  1627. package/mssql-core/expressions.js.map +0 -1
  1628. package/mssql-core/foreign-keys.cjs +0 -94
  1629. package/mssql-core/foreign-keys.cjs.map +0 -1
  1630. package/mssql-core/foreign-keys.d.cts +0 -52
  1631. package/mssql-core/foreign-keys.d.ts +0 -52
  1632. package/mssql-core/foreign-keys.js +0 -68
  1633. package/mssql-core/foreign-keys.js.map +0 -1
  1634. package/mssql-core/index.cjs +0 -55
  1635. package/mssql-core/index.cjs.map +0 -1
  1636. package/mssql-core/index.d.cts +0 -17
  1637. package/mssql-core/index.d.ts +0 -17
  1638. package/mssql-core/index.js +0 -18
  1639. package/mssql-core/index.js.map +0 -1
  1640. package/mssql-core/indexes.cjs +0 -82
  1641. package/mssql-core/indexes.cjs.map +0 -1
  1642. package/mssql-core/indexes.d.cts +0 -50
  1643. package/mssql-core/indexes.d.ts +0 -50
  1644. package/mssql-core/indexes.js +0 -54
  1645. package/mssql-core/indexes.js.map +0 -1
  1646. package/mssql-core/primary-keys.cjs +0 -66
  1647. package/mssql-core/primary-keys.cjs.map +0 -1
  1648. package/mssql-core/primary-keys.d.cts +0 -24
  1649. package/mssql-core/primary-keys.d.ts +0 -24
  1650. package/mssql-core/primary-keys.js +0 -40
  1651. package/mssql-core/primary-keys.js.map +0 -1
  1652. package/mssql-core/query-builders/delete.cjs +0 -107
  1653. package/mssql-core/query-builders/delete.cjs.map +0 -1
  1654. package/mssql-core/query-builders/delete.d.cts +0 -98
  1655. package/mssql-core/query-builders/delete.d.ts +0 -98
  1656. package/mssql-core/query-builders/delete.js +0 -83
  1657. package/mssql-core/query-builders/delete.js.map +0 -1
  1658. package/mssql-core/query-builders/index.cjs +0 -33
  1659. package/mssql-core/query-builders/index.cjs.map +0 -1
  1660. package/mssql-core/query-builders/index.d.cts +0 -6
  1661. package/mssql-core/query-builders/index.d.ts +0 -6
  1662. package/mssql-core/query-builders/index.js +0 -7
  1663. package/mssql-core/query-builders/index.js.map +0 -1
  1664. package/mssql-core/query-builders/insert.cjs +0 -105
  1665. package/mssql-core/query-builders/insert.cjs.map +0 -1
  1666. package/mssql-core/query-builders/insert.d.cts +0 -79
  1667. package/mssql-core/query-builders/insert.d.ts +0 -79
  1668. package/mssql-core/query-builders/insert.js +0 -80
  1669. package/mssql-core/query-builders/insert.js.map +0 -1
  1670. package/mssql-core/query-builders/query-builder.cjs +0 -95
  1671. package/mssql-core/query-builders/query-builder.cjs.map +0 -1
  1672. package/mssql-core/query-builders/query-builder.d.cts +0 -32
  1673. package/mssql-core/query-builders/query-builder.d.ts +0 -32
  1674. package/mssql-core/query-builders/query-builder.js +0 -71
  1675. package/mssql-core/query-builders/query-builder.js.map +0 -1
  1676. package/mssql-core/query-builders/query.cjs +0 -126
  1677. package/mssql-core/query-builders/query.cjs.map +0 -1
  1678. package/mssql-core/query-builders/query.d.cts +0 -42
  1679. package/mssql-core/query-builders/query.d.ts +0 -42
  1680. package/mssql-core/query-builders/query.js +0 -103
  1681. package/mssql-core/query-builders/query.js.map +0 -1
  1682. package/mssql-core/query-builders/select.cjs +0 -678
  1683. package/mssql-core/query-builders/select.cjs.map +0 -1
  1684. package/mssql-core/query-builders/select.d.cts +0 -549
  1685. package/mssql-core/query-builders/select.d.ts +0 -549
  1686. package/mssql-core/query-builders/select.js +0 -654
  1687. package/mssql-core/query-builders/select.js.map +0 -1
  1688. package/mssql-core/query-builders/select.types.cjs +0 -17
  1689. package/mssql-core/query-builders/select.types.cjs.map +0 -1
  1690. package/mssql-core/query-builders/select.types.d.cts +0 -142
  1691. package/mssql-core/query-builders/select.types.d.ts +0 -142
  1692. package/mssql-core/query-builders/select.types.js +0 -1
  1693. package/mssql-core/query-builders/select.types.js.map +0 -1
  1694. package/mssql-core/query-builders/update.cjs +0 -138
  1695. package/mssql-core/query-builders/update.cjs.map +0 -1
  1696. package/mssql-core/query-builders/update.d.cts +0 -142
  1697. package/mssql-core/query-builders/update.d.ts +0 -142
  1698. package/mssql-core/query-builders/update.js +0 -113
  1699. package/mssql-core/query-builders/update.js.map +0 -1
  1700. package/mssql-core/schema.cjs +0 -53
  1701. package/mssql-core/schema.cjs.map +0 -1
  1702. package/mssql-core/schema.d.cts +0 -13
  1703. package/mssql-core/schema.d.ts +0 -13
  1704. package/mssql-core/schema.js +0 -28
  1705. package/mssql-core/schema.js.map +0 -1
  1706. package/mssql-core/session.cjs +0 -74
  1707. package/mssql-core/session.cjs.map +0 -1
  1708. package/mssql-core/session.d.cts +0 -63
  1709. package/mssql-core/session.d.ts +0 -63
  1710. package/mssql-core/session.js +0 -48
  1711. package/mssql-core/session.js.map +0 -1
  1712. package/mssql-core/subquery.cjs +0 -17
  1713. package/mssql-core/subquery.cjs.map +0 -1
  1714. package/mssql-core/subquery.d.cts +0 -18
  1715. package/mssql-core/subquery.d.ts +0 -18
  1716. package/mssql-core/subquery.js +0 -1
  1717. package/mssql-core/subquery.js.map +0 -1
  1718. package/mssql-core/table.cjs +0 -81
  1719. package/mssql-core/table.cjs.map +0 -1
  1720. package/mssql-core/table.d.cts +0 -40
  1721. package/mssql-core/table.d.ts +0 -40
  1722. package/mssql-core/table.js +0 -55
  1723. package/mssql-core/table.js.map +0 -1
  1724. package/mssql-core/unique-constraint.cjs +0 -78
  1725. package/mssql-core/unique-constraint.cjs.map +0 -1
  1726. package/mssql-core/unique-constraint.d.cts +0 -24
  1727. package/mssql-core/unique-constraint.d.ts +0 -24
  1728. package/mssql-core/unique-constraint.js +0 -51
  1729. package/mssql-core/unique-constraint.js.map +0 -1
  1730. package/mssql-core/utils.cjs +0 -85
  1731. package/mssql-core/utils.cjs.map +0 -1
  1732. package/mssql-core/utils.d.cts +0 -31
  1733. package/mssql-core/utils.d.ts +0 -31
  1734. package/mssql-core/utils.js +0 -60
  1735. package/mssql-core/utils.js.map +0 -1
  1736. package/mssql-core/view-base.cjs +0 -33
  1737. package/mssql-core/view-base.cjs.map +0 -1
  1738. package/mssql-core/view-base.d.cts +0 -9
  1739. package/mssql-core/view-base.d.ts +0 -9
  1740. package/mssql-core/view-base.js +0 -9
  1741. package/mssql-core/view-base.js.map +0 -1
  1742. package/mssql-core/view-common.cjs +0 -29
  1743. package/mssql-core/view-common.cjs.map +0 -1
  1744. package/mssql-core/view-common.d.cts +0 -1
  1745. package/mssql-core/view-common.d.ts +0 -1
  1746. package/mssql-core/view-common.js +0 -5
  1747. package/mssql-core/view-common.js.map +0 -1
  1748. package/mssql-core/view.cjs +0 -154
  1749. package/mssql-core/view.cjs.map +0 -1
  1750. package/mssql-core/view.d.cts +0 -63
  1751. package/mssql-core/view.d.ts +0 -63
  1752. package/mssql-core/view.js +0 -125
  1753. package/mssql-core/view.js.map +0 -1
  1754. package/mysql-core/columns/blob.cjs +0 -158
  1755. package/mysql-core/columns/blob.cjs.map +0 -1
  1756. package/mysql-core/columns/blob.d.cts +0 -54
  1757. package/mysql-core/columns/blob.d.ts +0 -54
  1758. package/mysql-core/columns/blob.js +0 -127
  1759. package/mysql-core/columns/blob.js.map +0 -1
  1760. package/mysql-core/columns/string.common.cjs +0 -48
  1761. package/mysql-core/columns/string.common.cjs.map +0 -1
  1762. package/mysql-core/columns/string.common.d.cts +0 -21
  1763. package/mysql-core/columns/string.common.d.ts +0 -21
  1764. package/mysql-core/columns/string.common.js +0 -23
  1765. package/mysql-core/columns/string.common.js.map +0 -1
  1766. package/node-mssql/driver.cjs +0 -129
  1767. package/node-mssql/driver.cjs.map +0 -1
  1768. package/node-mssql/driver.d.cts +0 -48
  1769. package/node-mssql/driver.d.ts +0 -48
  1770. package/node-mssql/driver.js +0 -92
  1771. package/node-mssql/driver.js.map +0 -1
  1772. package/node-mssql/index.cjs +0 -25
  1773. package/node-mssql/index.cjs.map +0 -1
  1774. package/node-mssql/index.d.cts +0 -2
  1775. package/node-mssql/index.d.ts +0 -2
  1776. package/node-mssql/index.js +0 -3
  1777. package/node-mssql/index.js.map +0 -1
  1778. package/node-mssql/migrator.cjs +0 -33
  1779. package/node-mssql/migrator.cjs.map +0 -1
  1780. package/node-mssql/migrator.d.cts +0 -3
  1781. package/node-mssql/migrator.d.ts +0 -3
  1782. package/node-mssql/migrator.js +0 -9
  1783. package/node-mssql/migrator.js.map +0 -1
  1784. package/node-mssql/pool.cjs +0 -54
  1785. package/node-mssql/pool.cjs.map +0 -1
  1786. package/node-mssql/pool.d.cts +0 -8
  1787. package/node-mssql/pool.d.ts +0 -8
  1788. package/node-mssql/pool.js +0 -20
  1789. package/node-mssql/pool.js.map +0 -1
  1790. package/node-mssql/session.cjs +0 -256
  1791. package/node-mssql/session.cjs.map +0 -1
  1792. package/node-mssql/session.d.cts +0 -48
  1793. package/node-mssql/session.d.ts +0 -48
  1794. package/node-mssql/session.js +0 -224
  1795. package/node-mssql/session.js.map +0 -1
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
  });
@@ -166,15 +165,19 @@ function extractTablesRelationalConfig(schema, configHelpers) {
166
165
  const relations2 = value.config(
167
166
  configHelpers(value.table)
168
167
  );
168
+ let primaryKey;
169
169
  for (const [relationName, relation] of Object.entries(relations2)) {
170
170
  if (tableName) {
171
171
  const tableConfig = tablesConfig[tableName];
172
172
  tableConfig.relations[relationName] = relation;
173
+ if (primaryKey) {
174
+ tableConfig.primaryKey.push(...primaryKey);
175
+ }
173
176
  } else {
174
177
  if (!(dbName in relationsBuffer)) {
175
178
  relationsBuffer[dbName] = {
176
- relations: {}
177
- // primaryKey,
179
+ relations: {},
180
+ primaryKey
178
181
  };
179
182
  }
180
183
  relationsBuffer[dbName].relations[relationName] = relation;
@@ -306,52 +309,6 @@ function mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelect
306
309
  }
307
310
  return result;
308
311
  }
309
- function mapRelationalRowFromObj(tablesConfig, tableConfig, row, buildQueryResultSelection, mapColumnValue = (value) => value) {
310
- const result = {};
311
- for (const [
312
- selectionItemIndex,
313
- selectionItem
314
- ] of buildQueryResultSelection.entries()) {
315
- if (selectionItem.isJson) {
316
- const relation = tableConfig.relations[selectionItem.tsKey];
317
- const isOne = (0, import_entity.is)(relation, One);
318
- const rawSubRows = row[selectionItemIndex];
319
- let subRows = rawSubRows;
320
- if (subRows || Array.isArray(subRows)) {
321
- subRows = typeof rawSubRows === "string" ? JSON.parse(rawSubRows) : rawSubRows;
322
- subRows = isOne ? subRows.flatMap((r) => Array.isArray(r) ? r : Object.values(r)) : subRows.map((r) => Array.isArray(r) ? r : Object.values(r));
323
- }
324
- result[selectionItem.tsKey] = isOne ? subRows && mapRelationalRowFromObj(
325
- tablesConfig,
326
- tablesConfig[selectionItem.relationTableTsKey],
327
- subRows,
328
- selectionItem.selection,
329
- mapColumnValue
330
- ) : (subRows ?? []).map(
331
- (subRow) => mapRelationalRowFromObj(
332
- tablesConfig,
333
- tablesConfig[selectionItem.relationTableTsKey],
334
- subRow,
335
- selectionItem.selection,
336
- mapColumnValue
337
- )
338
- );
339
- } else {
340
- const value = mapColumnValue(row[selectionItemIndex]);
341
- const field = selectionItem.field;
342
- let decoder;
343
- if ((0, import_entity.is)(field, import_column.Column)) {
344
- decoder = field;
345
- } else if ((0, import_entity.is)(field, import_sql.SQL)) {
346
- decoder = field.decoder;
347
- } else {
348
- decoder = field.sql.decoder;
349
- }
350
- result[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);
351
- }
352
- }
353
- return result;
354
- }
355
312
  // Annotate the CommonJS export names for ESM import in node:
356
313
  0 && (module.exports = {
357
314
  Many,
@@ -365,7 +322,6 @@ function mapRelationalRowFromObj(tablesConfig, tableConfig, row, buildQueryResul
365
322
  getOperators,
366
323
  getOrderByOperators,
367
324
  mapRelationalRow,
368
- mapRelationalRowFromObj,
369
325
  normalizeRelation,
370
326
  relations
371
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\t// let 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\t// if (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\t// primaryKey,\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
@@ -154,15 +154,19 @@ function extractTablesRelationalConfig(schema, configHelpers) {
154
154
  const relations2 = value.config(
155
155
  configHelpers(value.table)
156
156
  );
157
+ let primaryKey;
157
158
  for (const [relationName, relation] of Object.entries(relations2)) {
158
159
  if (tableName) {
159
160
  const tableConfig = tablesConfig[tableName];
160
161
  tableConfig.relations[relationName] = relation;
162
+ if (primaryKey) {
163
+ tableConfig.primaryKey.push(...primaryKey);
164
+ }
161
165
  } else {
162
166
  if (!(dbName in relationsBuffer)) {
163
167
  relationsBuffer[dbName] = {
164
- relations: {}
165
- // primaryKey,
168
+ relations: {},
169
+ primaryKey
166
170
  };
167
171
  }
168
172
  relationsBuffer[dbName].relations[relationName] = relation;
@@ -294,52 +298,6 @@ function mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelect
294
298
  }
295
299
  return result;
296
300
  }
297
- function mapRelationalRowFromObj(tablesConfig, tableConfig, row, buildQueryResultSelection, mapColumnValue = (value) => value) {
298
- const result = {};
299
- for (const [
300
- selectionItemIndex,
301
- selectionItem
302
- ] of buildQueryResultSelection.entries()) {
303
- if (selectionItem.isJson) {
304
- const relation = tableConfig.relations[selectionItem.tsKey];
305
- const isOne = is(relation, One);
306
- const rawSubRows = row[selectionItemIndex];
307
- let subRows = rawSubRows;
308
- if (subRows || Array.isArray(subRows)) {
309
- subRows = typeof rawSubRows === "string" ? JSON.parse(rawSubRows) : rawSubRows;
310
- subRows = isOne ? subRows.flatMap((r) => Array.isArray(r) ? r : Object.values(r)) : subRows.map((r) => Array.isArray(r) ? r : Object.values(r));
311
- }
312
- result[selectionItem.tsKey] = isOne ? subRows && mapRelationalRowFromObj(
313
- tablesConfig,
314
- tablesConfig[selectionItem.relationTableTsKey],
315
- subRows,
316
- selectionItem.selection,
317
- mapColumnValue
318
- ) : (subRows ?? []).map(
319
- (subRow) => mapRelationalRowFromObj(
320
- tablesConfig,
321
- tablesConfig[selectionItem.relationTableTsKey],
322
- subRow,
323
- selectionItem.selection,
324
- mapColumnValue
325
- )
326
- );
327
- } else {
328
- const value = mapColumnValue(row[selectionItemIndex]);
329
- const field = selectionItem.field;
330
- let decoder;
331
- if (is(field, Column)) {
332
- decoder = field;
333
- } else if (is(field, SQL)) {
334
- decoder = field.decoder;
335
- } else {
336
- decoder = field.sql.decoder;
337
- }
338
- result[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);
339
- }
340
- }
341
- return result;
342
- }
343
301
  export {
344
302
  Many,
345
303
  One,
@@ -352,7 +310,6 @@ export {
352
310
  getOperators,
353
311
  getOrderByOperators,
354
312
  mapRelationalRow,
355
- mapRelationalRowFromObj,
356
313
  normalizeRelation,
357
314
  relations
358
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\t// let 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\t// if (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\t// primaryKey,\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":"AAAA,SAAwB,oBAAgD,aAAa;AACrF,SAAyB,cAAc;AACvC,SAAS,YAAY,UAAU;AAC/B,SAAS,yBAAyB;AAClC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAA2B,KAAK,WAAW;AAGpC,MAAe,SAA6C;AAAA,EAOlE,YACU,aACA,iBACA,cACR;AAHQ;AACA;AACA;AAET,SAAK,sBAAsB,gBAAgB,MAAM,OAAO,IAAI;AAAA,EAC7D;AAAA,EAZA,QAAiB,UAAU,IAAY;AAAA,EAG9B;AAAA,EACT;AAWD;AAEO,MAAM,UAGX;AAAA,EAKD,YACU,OACA,QACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,QAAiB,UAAU,IAAY;AAQxC;AAEO,MAAM,YAGH,SAAqB;AAAA,EAK9B,YACC,aACA,iBACS,QAOA,YACR;AACD,UAAM,aAAa,iBAAiB,QAAQ,YAAY;AAT/C;AAOA;AAAA,EAGV;AAAA,EAjBA,QAA0B,UAAU,IAAY;AAAA,EAmBhD,cAAc,WAAoC;AACjD,UAAM,WAAW,IAAI;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,aAAS,YAAY;AACrB,WAAO;AAAA,EACR;AACD;AAEO,MAAM,aAAwC,SAAqB;AAAA,EAKzE,YACC,aACA,iBACS,QACR;AACD,UAAM,aAAa,iBAAiB,QAAQ,YAAY;AAF/C;AAAA,EAGV;AAAA,EAVA,QAA0B,UAAU,IAAY;AAAA,EAYhD,cAAc,WAAqC;AAClD,UAAM,WAAW,IAAI;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,aAAS,YAAY;AACrB,WAAO;AAAA,EACR;AACD;AAqCO,SAAS,eAAe;AAC9B,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAIO,SAAS,sBAAsB;AACrC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AA8NO,SAAS,8BAGf,QACA,eAC6D;AAC7D,MACC,OAAO,KAAK,MAAM,EAAE,WAAW,KAC5B,aAAa,UACb,CAAC,GAAG,OAAO,SAAS,GAAG,KAAK,GAC9B;AACD,aAAS,OAAO,SAAS;AAAA,EAC1B;AAGA,QAAM,gBAAwC,CAAC;AAE/C,QAAM,kBAGF,CAAC;AACL,QAAM,eAAuC,CAAC;AAC9C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,QAAI,GAAG,OAAO,KAAK,GAAG;AACrB,YAAM,SAAS,mBAAmB,KAAK;AACvC,YAAM,oBAAoB,gBAAgB,MAAM;AAChD,oBAAc,MAAM,IAAI;AACxB,mBAAa,GAAG,IAAI;AAAA,QACnB,QAAQ;AAAA,QACR,QAAQ,MAAM,MAAM,OAAO,IAAI;AAAA,QAC/B,QAAQ,MAAM,MAAM,OAAO,MAAM;AAAA,QACjC,SAAS,MAAM,MAAM,OAAO,OAAO;AAAA,QACnC,WAAW,mBAAmB,aAAa,CAAC;AAAA,QAC5C,YAAY,mBAAmB,cAAc,CAAC;AAAA,MAC/C;AAGA,iBACO,UAAU,OAAO;AAAA,QACrB,MAAgB,MAAM,OAAO,OAAO;AAAA,MACtC,GACC;AACD,YAAI,OAAO,SAAS;AACnB,uBAAa,GAAG,EAAG,WAAW,KAAK,MAAM;AAAA,QAC1C;AAAA,MACD;AAEA,YAAM,cAAc,MAAM,MAAM,OAAO,kBAAkB,IAAK,MAAgB,MAAM,OAAO,kBAAkB,CAAC;AAC9G,UAAI,aAAa;AAChB,mBAAW,eAAe,OAAO,OAAO,WAAW,GAAG;AACrD,cAAI,GAAG,aAAa,iBAAiB,GAAG;AACvC,yBAAa,GAAG,EAAG,WAAW,KAAK,GAAG,YAAY,OAAO;AAAA,UAC1D;AAAA,QACD;AAAA,MACD;AAAA,IACD,WAAW,GAAG,OAAO,SAAS,GAAG;AAChC,YAAM,SAAS,mBAAmB,MAAM,KAAK;AAC7C,YAAM,YAAY,cAAc,MAAM;AACtC,YAAMA,aAAsC,MAAM;AAAA,QACjD,cAAc,MAAM,KAAK;AAAA,MAC1B;AAGA,iBAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQA,UAAS,GAAG;AACjE,YAAI,WAAW;AACd,gBAAM,cAAc,aAAa,SAAS;AAC1C,sBAAY,UAAU,YAAY,IAAI;AAAA,QAIvC,OAAO;AACN,cAAI,EAAE,UAAU,kBAAkB;AACjC,4BAAgB,MAAM,IAAI;AAAA,cACzB,WAAW,CAAC;AAAA;AAAA,YAEb;AAAA,UACD;AACA,0BAAgB,MAAM,EAAG,UAAU,YAAY,IAAI;AAAA,QACpD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SAAO,EAAE,QAAQ,cAAyB,cAAc;AACzD;AAEO,SAAS,UAIf,OACAA,YACoC;AACpC,SAAO,IAAI;AAAA,IACV;AAAA,IACA,CAAC,YACA,OAAO;AAAA,MACN,OAAO,QAAQA,WAAU,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAAA,QACxD;AAAA,QACA,MAAM,cAAc,GAAG;AAAA,MACxB,CAAC;AAAA,IACF;AAAA,EACF;AACD;AAEO,SAAS,UAAqC,aAAoB;AACxE,SAAO,SAAS,IAOf,OACA,QAIC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACC,QAAQ,OAAO,OAAgB,CAAC,KAAK,MAAM,OAAO,EAAE,SAAS,IAAI,KAC9D;AAAA,IACL;AAAA,EACD;AACD;AAEO,SAAS,WAAW,aAAoB;AAC9C,SAAO,SAAS,KACf,iBACA,QACmC;AACnC,WAAO,IAAI,KAAK,aAAa,iBAAiB,MAAM;AAAA,EACrD;AACD;AAOO,SAAS,kBACf,QACA,eACA,UACqB;AACrB,MAAI,GAAG,UAAU,GAAG,KAAK,SAAS,QAAQ;AACzC,WAAO;AAAA,MACN,QAAQ,SAAS,OAAO;AAAA,MACxB,YAAY,SAAS,OAAO;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,wBAAwB,cAAc,mBAAmB,SAAS,eAAe,CAAC;AACxF,MAAI,CAAC,uBAAuB;AAC3B,UAAM,IAAI;AAAA,MACT,UAAU,SAAS,gBAAgB,MAAM,OAAO,IAAI,CAAC;AAAA,IACtD;AAAA,EACD;AAEA,QAAM,wBAAwB,OAAO,qBAAqB;AAC1D,MAAI,CAAC,uBAAuB;AAC3B,UAAM,IAAI,MAAM,UAAU,qBAAqB,uBAAuB;AAAA,EACvE;AAEA,QAAM,cAAc,SAAS;AAC7B,QAAM,oBAAoB,cAAc,mBAAmB,WAAW,CAAC;AACvE,MAAI,CAAC,mBAAmB;AACvB,UAAM,IAAI;AAAA,MACT,UAAU,YAAY,MAAM,OAAO,IAAI,CAAC;AAAA,IACzC;AAAA,EACD;AAEA,QAAM,mBAA+B,CAAC;AACtC,aACO,2BAA2B,OAAO;AAAA,IACvC,sBAAsB;AAAA,EACvB,GACC;AACD,QACE,SAAS,gBACN,aAAa,2BACb,wBAAwB,iBAAiB,SAAS,gBAClD,CAAC,SAAS,gBACV,wBAAwB,oBAAoB,SAAS,aACxD;AACD,uBAAiB,KAAK,uBAAuB;AAAA,IAC9C;AAAA,EACD;AAEA,MAAI,iBAAiB,SAAS,GAAG;AAChC,UAAM,SAAS,eACZ,IAAI;AAAA,MACL,2CAA2C,SAAS,YAAY,eAAe,qBAAqB;AAAA,IACrG,IACE,IAAI;AAAA,MACL,yCAAyC,qBAAqB,UAC7D,SAAS,YAAY,MAAM,OAAO,IAAI,CACvC;AAAA,IACD;AAAA,EACF;AAEA,MACC,iBAAiB,CAAC,KACf,GAAG,iBAAiB,CAAC,GAAG,GAAG,KAC3B,iBAAiB,CAAC,EAAE,QACtB;AACD,WAAO;AAAA,MACN,QAAQ,iBAAiB,CAAC,EAAE,OAAO;AAAA,MACnC,YAAY,iBAAiB,CAAC,EAAE,OAAO;AAAA,IACxC;AAAA,EACD;AAEA,QAAM,IAAI;AAAA,IACT,sDAAsD,iBAAiB,IAAI,SAAS,SAAS;AAAA,EAC9F;AACD;AAEO,SAAS,4BACf,aACC;AACD,SAAO;AAAA,IACN,KAAK,UAAsB,WAAW;AAAA,IACtC,MAAM,WAAW,WAAW;AAAA,EAC7B;AACD;AAuBO,SAAS,iBACf,cACA,aACA,KACA,2BACA,iBAA8C,CAAC,UAAU,OAC/B;AAC1B,QAAM,SAAkC,CAAC;AAEzC,aACO;AAAA,IACL;AAAA,IACA;AAAA,EACD,KAAK,0BAA0B,QAAQ,GACtC;AACD,QAAI,cAAc,QAAQ;AACzB,YAAM,WAAW,YAAY,UAAU,cAAc,KAAK;AAC1D,YAAM,aAAa,IAAI,kBAAkB;AAKzC,YAAM,UAAU,OAAO,eAAe,WAClC,KAAK,MAAM,UAAU,IACtB;AACH,aAAO,cAAc,KAAK,IAAI,GAAG,UAAU,GAAG,IAC3C,WACE;AAAA,QACF;AAAA,QACA,aAAa,cAAc,kBAAmB;AAAA,QAC9C;AAAA,QACA,cAAc;AAAA,QACd;AAAA,MACD,IACE,QAAwB;AAAA,QAAI,CAAC,WAC/B;AAAA,UACC;AAAA,UACA,aAAa,cAAc,kBAAmB;AAAA,UAC9C;AAAA,UACA,cAAc;AAAA,UACd;AAAA,QACD;AAAA,MACD;AAAA,IACF,OAAO;AACN,YAAM,QAAQ,eAAe,IAAI,kBAAkB,CAAC;AACpD,YAAM,QAAQ,cAAc;AAC5B,UAAI;AACJ,UAAI,GAAG,OAAO,MAAM,GAAG;AACtB,kBAAU;AAAA,MACX,WAAW,GAAG,OAAO,GAAG,GAAG;AAC1B,kBAAU,MAAM;AAAA,MACjB,OAAO;AACN,kBAAU,MAAM,IAAI;AAAA,MACrB;AACA,aAAO,cAAc,KAAK,IAAI,UAAU,OAAO,OAAO,QAAQ,mBAAmB,KAAK;AAAA,IACvF;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,wBACf,cACA,aACA,KACA,2BACA,iBAA8C,CAAC,UAAU,OAC/B;AAC1B,QAAM,SAAkC,CAAC;AAEzC,aACO;AAAA,IACL;AAAA,IACA;AAAA,EACD,KAAK,0BAA0B,QAAQ,GACtC;AACD,QAAI,cAAc,QAAQ;AACzB,YAAM,WAAW,YAAY,UAAU,cAAc,KAAK;AAC1D,YAAM,QAAQ,GAAG,UAAU,GAAG;AAC9B,YAAM,aAAa,IAAI,kBAAkB;AAEzC,UAAI,UAAU;AACd,UAAI,WAAW,MAAM,QAAQ,OAAO,GAAG;AACtC,kBAAW,OAAO,eAAe,WAAW,KAAK,MAAM,UAAU,IAAI;AAErE,kBAAU,QACP,QAAQ,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI,OAAO,OAAO,CAAQ,CAAC,IACrE,QAAQ,IAAI,CAAC,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI,OAAO,OAAO,CAAQ,CAAC;AAAA,MACrE;AAEA,aAAO,cAAc,KAAK,IAAI,QAC3B,WACE;AAAA,QACF;AAAA,QACA,aAAa,cAAc,kBAAmB;AAAA,QAC9C;AAAA,QACA,cAAc;AAAA,QACd;AAAA,MACD,KACG,WAAW,CAAC,GAAmB;AAAA,QAAI,CAAC,WACvC;AAAA,UACC;AAAA,UACA,aAAa,cAAc,kBAAmB;AAAA,UAC9C;AAAA,UACA,cAAc;AAAA,UACd;AAAA,QACD;AAAA,MACD;AAAA,IACF,OAAO;AACN,YAAM,QAAQ,eAAe,IAAI,kBAAkB,CAAC;AACpD,YAAM,QAAQ,cAAc;AAC5B,UAAI;AACJ,UAAI,GAAG,OAAO,MAAM,GAAG;AACtB,kBAAU;AAAA,MACX,WAAW,GAAG,OAAO,GAAG,GAAG;AAC1B,kBAAU,MAAM;AAAA,MACjB,OAAO;AACN,kBAAU,MAAM,IAAI;AAAA,MACrB;AACA,aAAO,cAAc,KAAK,IAAI,UAAU,OAAO,OAAO,QAAQ,mBAAmB,KAAK;AAAA,IACvF;AAAA,EACD;AAEA,SAAO;AACR;","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/alias.cjs CHANGED
@@ -19,45 +19,36 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var alias_exports = {};
20
20
  __export(alias_exports, {
21
21
  ColumnAliasProxyHandler: () => ColumnAliasProxyHandler,
22
- ColumnTableAliasProxyHandler: () => ColumnTableAliasProxyHandler,
23
22
  RelationTableAliasProxyHandler: () => RelationTableAliasProxyHandler,
24
23
  TableAliasProxyHandler: () => TableAliasProxyHandler,
25
- aliasedColumn: () => aliasedColumn,
26
24
  aliasedRelation: () => aliasedRelation,
27
25
  aliasedTable: () => aliasedTable,
28
26
  aliasedTableColumn: () => aliasedTableColumn,
29
- getOriginalColumnFromAlias: () => getOriginalColumnFromAlias,
30
27
  mapColumnsInAliasedSQLToAlias: () => mapColumnsInAliasedSQLToAlias,
31
28
  mapColumnsInSQLToAlias: () => mapColumnsInSQLToAlias
32
29
  });
33
30
  module.exports = __toCommonJS(alias_exports);
34
- var import_column_common = require("./column-common.cjs");
35
31
  var import_column = require("./column.cjs");
36
32
  var import_entity = require("./entity.cjs");
37
33
  var import_sql = require("./sql/sql.cjs");
38
34
  var import_table = require("./table.cjs");
39
35
  var import_view_common = require("./view-common.cjs");
40
- class ColumnTableAliasProxyHandler {
41
- constructor(table, ignoreColumnAlias) {
36
+ class ColumnAliasProxyHandler {
37
+ constructor(table) {
42
38
  this.table = table;
43
- this.ignoreColumnAlias = ignoreColumnAlias;
44
39
  }
45
- static [import_entity.entityKind] = "ColumnTableAliasProxyHandler";
40
+ static [import_entity.entityKind] = "ColumnAliasProxyHandler";
46
41
  get(columnObj, prop) {
47
42
  if (prop === "table") {
48
43
  return this.table;
49
44
  }
50
- if (prop === "isAlias" && this.ignoreColumnAlias) {
51
- return false;
52
- }
53
45
  return columnObj[prop];
54
46
  }
55
47
  }
56
48
  class TableAliasProxyHandler {
57
- constructor(alias, replaceOriginalName, ignoreColumnAlias) {
49
+ constructor(alias, replaceOriginalName) {
58
50
  this.alias = alias;
59
51
  this.replaceOriginalName = replaceOriginalName;
60
- this.ignoreColumnAlias = ignoreColumnAlias;
61
52
  }
62
53
  static [import_entity.entityKind] = "TableAliasProxyHandler";
63
54
  get(target, prop) {
@@ -86,42 +77,18 @@ class TableAliasProxyHandler {
86
77
  Object.keys(columns).map((key) => {
87
78
  proxiedColumns[key] = new Proxy(
88
79
  columns[key],
89
- new ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias)
80
+ new ColumnAliasProxyHandler(new Proxy(target, this))
90
81
  );
91
82
  });
92
83
  return proxiedColumns;
93
84
  }
94
85
  const value = target[prop];
95
86
  if ((0, import_entity.is)(value, import_column.Column)) {
96
- return new Proxy(
97
- value,
98
- new ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias)
99
- );
87
+ return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(target, this)));
100
88
  }
101
89
  return value;
102
90
  }
103
91
  }
104
- class ColumnAliasProxyHandler {
105
- constructor(alias) {
106
- this.alias = alias;
107
- }
108
- static [import_entity.entityKind] = "ColumnAliasProxyHandler";
109
- get(target, prop) {
110
- if (prop === "isAlias") {
111
- return true;
112
- }
113
- if (prop === "name") {
114
- return this.alias;
115
- }
116
- if (prop === "keyAsName") {
117
- return false;
118
- }
119
- if (prop === import_column_common.OriginalColumn) {
120
- return () => target;
121
- }
122
- return target[prop];
123
- }
124
- }
125
92
  class RelationTableAliasProxyHandler {
126
93
  constructor(alias) {
127
94
  this.alias = alias;
@@ -135,10 +102,7 @@ class RelationTableAliasProxyHandler {
135
102
  }
136
103
  }
137
104
  function aliasedTable(table, tableAlias) {
138
- return new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));
139
- }
140
- function aliasedColumn(column, alias) {
141
- return new Proxy(column, new ColumnAliasProxyHandler(alias));
105
+ return new Proxy(table, new TableAliasProxyHandler(tableAlias, false));
142
106
  }
143
107
  function aliasedRelation(relation, tableAlias) {
144
108
  return new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));
@@ -146,10 +110,7 @@ function aliasedRelation(relation, tableAlias) {
146
110
  function aliasedTableColumn(column, tableAlias) {
147
111
  return new Proxy(
148
112
  column,
149
- new ColumnTableAliasProxyHandler(
150
- new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)),
151
- false
152
- )
113
+ new ColumnAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false)))
153
114
  );
154
115
  }
155
116
  function mapColumnsInAliasedSQLToAlias(query, alias) {
@@ -169,23 +130,14 @@ function mapColumnsInSQLToAlias(query, alias) {
169
130
  return c;
170
131
  }));
171
132
  }
172
- import_column.Column.prototype.as = function(alias) {
173
- return aliasedColumn(this, alias);
174
- };
175
- function getOriginalColumnFromAlias(column) {
176
- return column[import_column_common.OriginalColumn]();
177
- }
178
133
  // Annotate the CommonJS export names for ESM import in node:
179
134
  0 && (module.exports = {
180
135
  ColumnAliasProxyHandler,
181
- ColumnTableAliasProxyHandler,
182
136
  RelationTableAliasProxyHandler,
183
137
  TableAliasProxyHandler,
184
- aliasedColumn,
185
138
  aliasedRelation,
186
139
  aliasedTable,
187
140
  aliasedTableColumn,
188
- getOriginalColumnFromAlias,
189
141
  mapColumnsInAliasedSQLToAlias,
190
142
  mapColumnsInSQLToAlias
191
143
  });