drizzle-orm 1.0.0-beta.1-d9557d9 → 1.0.0-beta.1-2cd01ec

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 (1789) 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.map +1 -1
  14. package/aws-data-api/common/index.js.map +1 -1
  15. package/aws-data-api/pg/driver.cjs +3 -0
  16. package/aws-data-api/pg/driver.cjs.map +1 -1
  17. package/aws-data-api/pg/driver.d.cts +3 -0
  18. package/aws-data-api/pg/driver.d.ts +3 -0
  19. package/aws-data-api/pg/driver.js +3 -0
  20. package/aws-data-api/pg/driver.js.map +1 -1
  21. package/better-sqlite3/driver.cjs +14 -10
  22. package/better-sqlite3/driver.cjs.map +1 -1
  23. package/better-sqlite3/driver.d.cts +3 -3
  24. package/better-sqlite3/driver.d.ts +3 -3
  25. package/better-sqlite3/driver.js +14 -10
  26. package/better-sqlite3/driver.js.map +1 -1
  27. package/bun-sql/driver.cjs.map +1 -1
  28. package/bun-sql/driver.d.cts +8 -8
  29. package/bun-sql/driver.d.ts +8 -8
  30. package/bun-sql/driver.js.map +1 -1
  31. package/bun-sql/mysql/driver.cjs +14 -10
  32. package/bun-sql/mysql/driver.cjs.map +1 -1
  33. package/bun-sql/mysql/driver.d.cts +3 -3
  34. package/bun-sql/mysql/driver.d.ts +3 -3
  35. package/bun-sql/mysql/driver.js +14 -10
  36. package/bun-sql/mysql/driver.js.map +1 -1
  37. package/bun-sql/postgres/driver.cjs +14 -10
  38. package/bun-sql/postgres/driver.cjs.map +1 -1
  39. package/bun-sql/postgres/driver.d.cts +3 -3
  40. package/bun-sql/postgres/driver.d.ts +3 -3
  41. package/bun-sql/postgres/driver.js +14 -10
  42. package/bun-sql/postgres/driver.js.map +1 -1
  43. package/bun-sql/sqlite/driver.cjs +14 -10
  44. package/bun-sql/sqlite/driver.cjs.map +1 -1
  45. package/bun-sql/sqlite/driver.d.cts +3 -3
  46. package/bun-sql/sqlite/driver.d.ts +3 -3
  47. package/bun-sql/sqlite/driver.js +14 -10
  48. package/bun-sql/sqlite/driver.js.map +1 -1
  49. package/bun-sql/sqlite/session.cjs +2 -0
  50. package/bun-sql/sqlite/session.cjs.map +1 -1
  51. package/bun-sql/sqlite/session.js +2 -0
  52. package/bun-sql/sqlite/session.js.map +1 -1
  53. package/bun-sqlite/driver.cjs +15 -11
  54. package/bun-sqlite/driver.cjs.map +1 -1
  55. package/bun-sqlite/driver.d.cts +3 -3
  56. package/bun-sqlite/driver.d.ts +3 -3
  57. package/bun-sqlite/driver.js +15 -11
  58. package/bun-sqlite/driver.js.map +1 -1
  59. package/column-builder.cjs.map +1 -1
  60. package/column-builder.d.cts +8 -9
  61. package/column-builder.d.ts +8 -9
  62. package/column-builder.js.map +1 -1
  63. package/column.cjs +0 -7
  64. package/column.cjs.map +1 -1
  65. package/column.d.cts +0 -2
  66. package/column.d.ts +0 -2
  67. package/column.js +0 -7
  68. package/column.js.map +1 -1
  69. package/durable-sqlite/migrator.cjs +7 -10
  70. package/durable-sqlite/migrator.cjs.map +1 -1
  71. package/durable-sqlite/migrator.d.cts +8 -0
  72. package/durable-sqlite/migrator.d.ts +8 -0
  73. package/durable-sqlite/migrator.js +7 -10
  74. package/durable-sqlite/migrator.js.map +1 -1
  75. package/durable-sqlite/session.cjs +3 -6
  76. package/durable-sqlite/session.cjs.map +1 -1
  77. package/durable-sqlite/session.d.cts +2 -1
  78. package/durable-sqlite/session.d.ts +2 -1
  79. package/durable-sqlite/session.js +2 -6
  80. package/durable-sqlite/session.js.map +1 -1
  81. package/entity.cjs.map +1 -1
  82. package/entity.js.map +1 -1
  83. package/expo-sqlite/migrator.cjs +7 -10
  84. package/expo-sqlite/migrator.cjs.map +1 -1
  85. package/expo-sqlite/migrator.d.cts +8 -0
  86. package/expo-sqlite/migrator.d.ts +8 -0
  87. package/expo-sqlite/migrator.js +7 -10
  88. package/expo-sqlite/migrator.js.map +1 -1
  89. package/gel/driver.cjs +10 -6
  90. package/gel/driver.cjs.map +1 -1
  91. package/gel/driver.d.cts +2 -2
  92. package/gel/driver.d.ts +2 -2
  93. package/gel/driver.js +10 -6
  94. package/gel/driver.js.map +1 -1
  95. package/gel-core/columns/bigint.cjs.map +1 -1
  96. package/gel-core/columns/bigint.d.cts +1 -0
  97. package/gel-core/columns/bigint.d.ts +1 -0
  98. package/gel-core/columns/bigint.js.map +1 -1
  99. package/gel-core/columns/bigintT.cjs.map +1 -1
  100. package/gel-core/columns/bigintT.d.cts +1 -0
  101. package/gel-core/columns/bigintT.d.ts +1 -0
  102. package/gel-core/columns/bigintT.js.map +1 -1
  103. package/gel-core/columns/boolean.cjs.map +1 -1
  104. package/gel-core/columns/boolean.d.cts +1 -0
  105. package/gel-core/columns/boolean.d.ts +1 -0
  106. package/gel-core/columns/boolean.js.map +1 -1
  107. package/gel-core/columns/bytes.cjs.map +1 -1
  108. package/gel-core/columns/bytes.d.cts +1 -0
  109. package/gel-core/columns/bytes.d.ts +1 -0
  110. package/gel-core/columns/bytes.js.map +1 -1
  111. package/gel-core/columns/common.cjs +4 -0
  112. package/gel-core/columns/common.cjs.map +1 -1
  113. package/gel-core/columns/common.d.cts +1 -1
  114. package/gel-core/columns/common.d.ts +1 -1
  115. package/gel-core/columns/common.js +4 -0
  116. package/gel-core/columns/common.js.map +1 -1
  117. package/gel-core/columns/custom.cjs.map +1 -1
  118. package/gel-core/columns/custom.d.cts +1 -0
  119. package/gel-core/columns/custom.d.ts +1 -0
  120. package/gel-core/columns/custom.js.map +1 -1
  121. package/gel-core/columns/date-duration.cjs.map +1 -1
  122. package/gel-core/columns/date-duration.d.cts +1 -0
  123. package/gel-core/columns/date-duration.d.ts +1 -0
  124. package/gel-core/columns/date-duration.js.map +1 -1
  125. package/gel-core/columns/decimal.cjs.map +1 -1
  126. package/gel-core/columns/decimal.d.cts +1 -0
  127. package/gel-core/columns/decimal.d.ts +1 -0
  128. package/gel-core/columns/decimal.js.map +1 -1
  129. package/gel-core/columns/double-precision.cjs.map +1 -1
  130. package/gel-core/columns/double-precision.d.cts +1 -0
  131. package/gel-core/columns/double-precision.d.ts +1 -0
  132. package/gel-core/columns/double-precision.js.map +1 -1
  133. package/gel-core/columns/duration.cjs.map +1 -1
  134. package/gel-core/columns/duration.d.cts +1 -0
  135. package/gel-core/columns/duration.d.ts +1 -0
  136. package/gel-core/columns/duration.js.map +1 -1
  137. package/gel-core/columns/integer.cjs.map +1 -1
  138. package/gel-core/columns/integer.d.cts +1 -0
  139. package/gel-core/columns/integer.d.ts +1 -0
  140. package/gel-core/columns/integer.js.map +1 -1
  141. package/gel-core/columns/json.cjs.map +1 -1
  142. package/gel-core/columns/json.d.cts +1 -0
  143. package/gel-core/columns/json.d.ts +1 -0
  144. package/gel-core/columns/json.js.map +1 -1
  145. package/gel-core/columns/localdate.cjs.map +1 -1
  146. package/gel-core/columns/localdate.d.cts +1 -0
  147. package/gel-core/columns/localdate.d.ts +1 -0
  148. package/gel-core/columns/localdate.js.map +1 -1
  149. package/gel-core/columns/localtime.cjs.map +1 -1
  150. package/gel-core/columns/localtime.d.cts +1 -0
  151. package/gel-core/columns/localtime.d.ts +1 -0
  152. package/gel-core/columns/localtime.js.map +1 -1
  153. package/gel-core/columns/real.cjs.map +1 -1
  154. package/gel-core/columns/real.d.cts +1 -0
  155. package/gel-core/columns/real.d.ts +1 -0
  156. package/gel-core/columns/real.js.map +1 -1
  157. package/gel-core/columns/relative-duration.cjs.map +1 -1
  158. package/gel-core/columns/relative-duration.d.cts +1 -0
  159. package/gel-core/columns/relative-duration.d.ts +1 -0
  160. package/gel-core/columns/relative-duration.js.map +1 -1
  161. package/gel-core/columns/smallint.cjs.map +1 -1
  162. package/gel-core/columns/smallint.d.cts +1 -0
  163. package/gel-core/columns/smallint.d.ts +1 -0
  164. package/gel-core/columns/smallint.js.map +1 -1
  165. package/gel-core/columns/text.cjs.map +1 -1
  166. package/gel-core/columns/text.d.cts +1 -0
  167. package/gel-core/columns/text.d.ts +1 -0
  168. package/gel-core/columns/text.js.map +1 -1
  169. package/gel-core/columns/timestamp.cjs.map +1 -1
  170. package/gel-core/columns/timestamp.d.cts +1 -0
  171. package/gel-core/columns/timestamp.d.ts +1 -0
  172. package/gel-core/columns/timestamp.js.map +1 -1
  173. package/gel-core/columns/timestamptz.cjs.map +1 -1
  174. package/gel-core/columns/timestamptz.d.cts +1 -0
  175. package/gel-core/columns/timestamptz.d.ts +1 -0
  176. package/gel-core/columns/timestamptz.js.map +1 -1
  177. package/gel-core/columns/uuid.cjs.map +1 -1
  178. package/gel-core/columns/uuid.d.cts +1 -0
  179. package/gel-core/columns/uuid.d.ts +1 -0
  180. package/gel-core/columns/uuid.js.map +1 -1
  181. package/gel-core/dialect.cjs +1 -1
  182. package/gel-core/dialect.cjs.map +1 -1
  183. package/gel-core/dialect.js +2 -8
  184. package/gel-core/dialect.js.map +1 -1
  185. package/gel-core/query-builders/count.cjs.map +1 -1
  186. package/gel-core/query-builders/count.d.cts +3 -4
  187. package/gel-core/query-builders/count.d.ts +3 -4
  188. package/gel-core/query-builders/count.js.map +1 -1
  189. package/gel-core/query-builders/insert.cjs.map +1 -1
  190. package/gel-core/query-builders/insert.d.cts +9 -6
  191. package/gel-core/query-builders/insert.d.ts +9 -6
  192. package/gel-core/query-builders/insert.js.map +1 -1
  193. package/gel-core/query-builders/select.cjs +9 -8
  194. package/gel-core/query-builders/select.cjs.map +1 -1
  195. package/gel-core/query-builders/select.js +4 -4
  196. package/gel-core/query-builders/select.js.map +1 -1
  197. package/gel-core/query-builders/update.cjs +2 -2
  198. package/gel-core/query-builders/update.cjs.map +1 -1
  199. package/gel-core/query-builders/update.d.cts +1 -1
  200. package/gel-core/query-builders/update.d.ts +1 -1
  201. package/gel-core/query-builders/update.js +2 -2
  202. package/gel-core/query-builders/update.js.map +1 -1
  203. package/gel-core/schema.cjs +4 -4
  204. package/gel-core/schema.cjs.map +1 -1
  205. package/gel-core/schema.js +4 -4
  206. package/gel-core/schema.js.map +1 -1
  207. package/gel-core/utils.cjs +2 -1
  208. package/gel-core/utils.cjs.map +1 -1
  209. package/gel-core/utils.d.cts +1 -1
  210. package/gel-core/utils.d.ts +1 -1
  211. package/gel-core/utils.js +2 -1
  212. package/gel-core/utils.js.map +1 -1
  213. package/gel-core/view-common.cjs +0 -3
  214. package/gel-core/view-common.cjs.map +1 -1
  215. package/gel-core/view-common.d.cts +0 -1
  216. package/gel-core/view-common.d.ts +0 -1
  217. package/gel-core/view-common.js +0 -2
  218. package/gel-core/view-common.js.map +1 -1
  219. package/gel-core/view.cjs +5 -2
  220. package/gel-core/view.cjs.map +1 -1
  221. package/gel-core/view.d.cts +2 -1
  222. package/gel-core/view.d.ts +2 -1
  223. package/gel-core/view.js +3 -1
  224. package/gel-core/view.js.map +1 -1
  225. package/libsql/driver.cjs +10 -6
  226. package/libsql/driver.cjs.map +1 -1
  227. package/libsql/driver.d.cts +3 -3
  228. package/libsql/driver.d.ts +3 -3
  229. package/libsql/driver.js +10 -6
  230. package/libsql/driver.js.map +1 -1
  231. package/libsql/http/index.cjs +10 -6
  232. package/libsql/http/index.cjs.map +1 -1
  233. package/libsql/http/index.d.cts +3 -3
  234. package/libsql/http/index.d.ts +3 -3
  235. package/libsql/http/index.js +10 -6
  236. package/libsql/http/index.js.map +1 -1
  237. package/libsql/node/index.cjs +10 -6
  238. package/libsql/node/index.cjs.map +1 -1
  239. package/libsql/node/index.d.cts +3 -3
  240. package/libsql/node/index.d.ts +3 -3
  241. package/libsql/node/index.js +10 -6
  242. package/libsql/node/index.js.map +1 -1
  243. package/libsql/session.cjs +2 -0
  244. package/libsql/session.cjs.map +1 -1
  245. package/libsql/session.d.cts +1 -1
  246. package/libsql/session.d.ts +1 -1
  247. package/libsql/session.js +2 -0
  248. package/libsql/session.js.map +1 -1
  249. package/libsql/sqlite3/index.cjs +10 -6
  250. package/libsql/sqlite3/index.cjs.map +1 -1
  251. package/libsql/sqlite3/index.d.cts +3 -3
  252. package/libsql/sqlite3/index.d.ts +3 -3
  253. package/libsql/sqlite3/index.js +10 -6
  254. package/libsql/sqlite3/index.js.map +1 -1
  255. package/libsql/wasm/index.cjs +10 -6
  256. package/libsql/wasm/index.cjs.map +1 -1
  257. package/libsql/wasm/index.d.cts +3 -3
  258. package/libsql/wasm/index.d.ts +3 -3
  259. package/libsql/wasm/index.js +10 -6
  260. package/libsql/wasm/index.js.map +1 -1
  261. package/libsql/web/index.cjs +10 -6
  262. package/libsql/web/index.cjs.map +1 -1
  263. package/libsql/web/index.d.cts +3 -3
  264. package/libsql/web/index.d.ts +3 -3
  265. package/libsql/web/index.js +10 -6
  266. package/libsql/web/index.js.map +1 -1
  267. package/libsql/ws/index.cjs +10 -6
  268. package/libsql/ws/index.cjs.map +1 -1
  269. package/libsql/ws/index.d.cts +3 -3
  270. package/libsql/ws/index.d.ts +3 -3
  271. package/libsql/ws/index.js +10 -6
  272. package/libsql/ws/index.js.map +1 -1
  273. package/migrator.cjs +5 -42
  274. package/migrator.cjs.map +1 -1
  275. package/migrator.d.cts +0 -1
  276. package/migrator.d.ts +0 -1
  277. package/migrator.js +6 -42
  278. package/migrator.js.map +1 -1
  279. package/mysql-core/columns/all.cjs +1 -6
  280. package/mysql-core/columns/all.cjs.map +1 -1
  281. package/mysql-core/columns/all.d.cts +0 -5
  282. package/mysql-core/columns/all.d.ts +0 -5
  283. package/mysql-core/columns/all.js +1 -6
  284. package/mysql-core/columns/all.js.map +1 -1
  285. package/mysql-core/columns/bigint.cjs.map +1 -1
  286. package/mysql-core/columns/bigint.d.cts +2 -0
  287. package/mysql-core/columns/bigint.d.ts +2 -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 +2 -7
  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 +3 -14
  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 +0 -2
  422. package/mysql-core/indexes.cjs.map +1 -1
  423. package/mysql-core/indexes.d.cts +0 -1
  424. package/mysql-core/indexes.d.ts +0 -1
  425. package/mysql-core/indexes.js +0 -2
  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/select.cjs +2 -2
  442. package/mysql-core/query-builders/select.cjs.map +1 -1
  443. package/mysql-core/query-builders/select.js +2 -2
  444. package/mysql-core/query-builders/select.js.map +1 -1
  445. package/mysql-core/query-builders/update.cjs.map +1 -1
  446. package/mysql-core/query-builders/update.d.cts +1 -1
  447. package/mysql-core/query-builders/update.d.ts +1 -1
  448. package/mysql-core/query-builders/update.js.map +1 -1
  449. package/mysql-core/schema.cjs +2 -2
  450. package/mysql-core/schema.cjs.map +1 -1
  451. package/mysql-core/schema.js +2 -2
  452. package/mysql-core/schema.js.map +1 -1
  453. package/mysql-core/unique-constraint.cjs +0 -2
  454. package/mysql-core/unique-constraint.cjs.map +1 -1
  455. package/mysql-core/unique-constraint.d.cts +2 -3
  456. package/mysql-core/unique-constraint.d.ts +2 -3
  457. package/mysql-core/unique-constraint.js +0 -2
  458. package/mysql-core/unique-constraint.js.map +1 -1
  459. package/mysql-proxy/driver.cjs +2 -2
  460. package/mysql-proxy/driver.cjs.map +1 -1
  461. package/mysql-proxy/driver.d.cts +1 -2
  462. package/mysql-proxy/driver.d.ts +1 -2
  463. package/mysql-proxy/driver.js +2 -2
  464. package/mysql-proxy/driver.js.map +1 -1
  465. package/mysql2/driver.cjs +14 -10
  466. package/mysql2/driver.cjs.map +1 -1
  467. package/mysql2/driver.d.cts +3 -3
  468. package/mysql2/driver.d.ts +3 -3
  469. package/mysql2/driver.js +14 -10
  470. package/mysql2/driver.js.map +1 -1
  471. package/mysql2/session.cjs.map +1 -1
  472. package/mysql2/session.js.map +1 -1
  473. package/neon-http/driver.cjs +14 -10
  474. package/neon-http/driver.cjs.map +1 -1
  475. package/neon-http/driver.d.cts +3 -3
  476. package/neon-http/driver.d.ts +3 -3
  477. package/neon-http/driver.js +14 -10
  478. package/neon-http/driver.js.map +1 -1
  479. package/neon-http/session.cjs.map +1 -1
  480. package/neon-http/session.d.cts +1 -1
  481. package/neon-http/session.d.ts +1 -1
  482. package/neon-http/session.js.map +1 -1
  483. package/neon-serverless/driver.cjs +14 -10
  484. package/neon-serverless/driver.cjs.map +1 -1
  485. package/neon-serverless/driver.d.cts +3 -3
  486. package/neon-serverless/driver.d.ts +3 -3
  487. package/neon-serverless/driver.js +14 -10
  488. package/neon-serverless/driver.js.map +1 -1
  489. package/neon-serverless/session.cjs.map +1 -1
  490. package/neon-serverless/session.js.map +1 -1
  491. package/node-postgres/driver.cjs +12 -8
  492. package/node-postgres/driver.cjs.map +1 -1
  493. package/node-postgres/driver.d.cts +3 -3
  494. package/node-postgres/driver.d.ts +3 -3
  495. package/node-postgres/driver.js +12 -8
  496. package/node-postgres/driver.js.map +1 -1
  497. package/node-postgres/session.cjs.map +1 -1
  498. package/node-postgres/session.js.map +1 -1
  499. package/op-sqlite/migrator.cjs +7 -10
  500. package/op-sqlite/migrator.cjs.map +1 -1
  501. package/op-sqlite/migrator.d.cts +16 -0
  502. package/op-sqlite/migrator.d.ts +16 -0
  503. package/op-sqlite/migrator.js +7 -10
  504. package/op-sqlite/migrator.js.map +1 -1
  505. package/package.json +18 -1496
  506. package/pg-core/columns/bigint.cjs.map +1 -1
  507. package/pg-core/columns/bigint.d.cts +2 -0
  508. package/pg-core/columns/bigint.d.ts +2 -0
  509. package/pg-core/columns/bigint.js.map +1 -1
  510. package/pg-core/columns/bigserial.cjs +0 -1
  511. package/pg-core/columns/bigserial.cjs.map +1 -1
  512. package/pg-core/columns/bigserial.d.cts +2 -0
  513. package/pg-core/columns/bigserial.d.ts +2 -0
  514. package/pg-core/columns/bigserial.js +0 -1
  515. package/pg-core/columns/bigserial.js.map +1 -1
  516. package/pg-core/columns/boolean.cjs.map +1 -1
  517. package/pg-core/columns/boolean.d.cts +1 -0
  518. package/pg-core/columns/boolean.d.ts +1 -0
  519. package/pg-core/columns/boolean.js.map +1 -1
  520. package/pg-core/columns/bytea.cjs.map +1 -1
  521. package/pg-core/columns/bytea.d.cts +1 -0
  522. package/pg-core/columns/bytea.d.ts +1 -0
  523. package/pg-core/columns/bytea.js.map +1 -1
  524. package/pg-core/columns/char.cjs +1 -0
  525. package/pg-core/columns/char.cjs.map +1 -1
  526. package/pg-core/columns/char.d.cts +2 -0
  527. package/pg-core/columns/char.d.ts +2 -0
  528. package/pg-core/columns/char.js +1 -0
  529. package/pg-core/columns/char.js.map +1 -1
  530. package/pg-core/columns/cidr.cjs.map +1 -1
  531. package/pg-core/columns/cidr.d.cts +1 -0
  532. package/pg-core/columns/cidr.d.ts +1 -0
  533. package/pg-core/columns/cidr.js.map +1 -1
  534. package/pg-core/columns/common.cjs +14 -10
  535. package/pg-core/columns/common.cjs.map +1 -1
  536. package/pg-core/columns/common.d.cts +3 -4
  537. package/pg-core/columns/common.d.ts +3 -4
  538. package/pg-core/columns/common.js +14 -10
  539. package/pg-core/columns/common.js.map +1 -1
  540. package/pg-core/columns/custom.cjs.map +1 -1
  541. package/pg-core/columns/custom.d.cts +1 -0
  542. package/pg-core/columns/custom.d.ts +1 -0
  543. package/pg-core/columns/custom.js.map +1 -1
  544. package/pg-core/columns/date.cjs.map +1 -1
  545. package/pg-core/columns/date.d.cts +2 -0
  546. package/pg-core/columns/date.d.ts +2 -0
  547. package/pg-core/columns/date.js.map +1 -1
  548. package/pg-core/columns/double-precision.cjs.map +1 -1
  549. package/pg-core/columns/double-precision.d.cts +1 -0
  550. package/pg-core/columns/double-precision.d.ts +1 -0
  551. package/pg-core/columns/double-precision.js.map +1 -1
  552. package/pg-core/columns/enum.cjs.map +1 -1
  553. package/pg-core/columns/enum.d.cts +2 -0
  554. package/pg-core/columns/enum.d.ts +2 -0
  555. package/pg-core/columns/enum.js.map +1 -1
  556. package/pg-core/columns/inet.cjs.map +1 -1
  557. package/pg-core/columns/inet.d.cts +1 -0
  558. package/pg-core/columns/inet.d.ts +1 -0
  559. package/pg-core/columns/inet.js.map +1 -1
  560. package/pg-core/columns/integer.cjs.map +1 -1
  561. package/pg-core/columns/integer.d.cts +1 -0
  562. package/pg-core/columns/integer.d.ts +1 -0
  563. package/pg-core/columns/integer.js.map +1 -1
  564. package/pg-core/columns/interval.cjs.map +1 -1
  565. package/pg-core/columns/interval.d.cts +1 -0
  566. package/pg-core/columns/interval.d.ts +1 -0
  567. package/pg-core/columns/interval.js.map +1 -1
  568. package/pg-core/columns/json.cjs.map +1 -1
  569. package/pg-core/columns/json.d.cts +1 -0
  570. package/pg-core/columns/json.d.ts +1 -0
  571. package/pg-core/columns/json.js.map +1 -1
  572. package/pg-core/columns/jsonb.cjs.map +1 -1
  573. package/pg-core/columns/jsonb.d.cts +1 -0
  574. package/pg-core/columns/jsonb.d.ts +1 -0
  575. package/pg-core/columns/jsonb.js.map +1 -1
  576. package/pg-core/columns/line.cjs +0 -2
  577. package/pg-core/columns/line.cjs.map +1 -1
  578. package/pg-core/columns/line.d.cts +2 -2
  579. package/pg-core/columns/line.d.ts +2 -2
  580. package/pg-core/columns/line.js +0 -2
  581. package/pg-core/columns/line.js.map +1 -1
  582. package/pg-core/columns/macaddr.cjs.map +1 -1
  583. package/pg-core/columns/macaddr.d.cts +1 -0
  584. package/pg-core/columns/macaddr.d.ts +1 -0
  585. package/pg-core/columns/macaddr.js.map +1 -1
  586. package/pg-core/columns/macaddr8.cjs.map +1 -1
  587. package/pg-core/columns/macaddr8.d.cts +1 -0
  588. package/pg-core/columns/macaddr8.d.ts +1 -0
  589. package/pg-core/columns/macaddr8.js.map +1 -1
  590. package/pg-core/columns/numeric.cjs.map +1 -1
  591. package/pg-core/columns/numeric.d.cts +3 -0
  592. package/pg-core/columns/numeric.d.ts +3 -0
  593. package/pg-core/columns/numeric.js.map +1 -1
  594. package/pg-core/columns/point.cjs +0 -2
  595. package/pg-core/columns/point.cjs.map +1 -1
  596. package/pg-core/columns/point.d.cts +2 -2
  597. package/pg-core/columns/point.d.ts +2 -2
  598. package/pg-core/columns/point.js +0 -2
  599. package/pg-core/columns/point.js.map +1 -1
  600. package/pg-core/columns/postgis_extension/geometry.cjs +8 -14
  601. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  602. package/pg-core/columns/postgis_extension/geometry.d.cts +6 -16
  603. package/pg-core/columns/postgis_extension/geometry.d.ts +6 -16
  604. package/pg-core/columns/postgis_extension/geometry.js +8 -14
  605. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  606. package/pg-core/columns/postgis_extension/utils.cjs +3 -3
  607. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -1
  608. package/pg-core/columns/postgis_extension/utils.d.cts +1 -4
  609. package/pg-core/columns/postgis_extension/utils.d.ts +1 -4
  610. package/pg-core/columns/postgis_extension/utils.js +3 -3
  611. package/pg-core/columns/postgis_extension/utils.js.map +1 -1
  612. package/pg-core/columns/real.cjs.map +1 -1
  613. package/pg-core/columns/real.d.cts +1 -0
  614. package/pg-core/columns/real.d.ts +1 -0
  615. package/pg-core/columns/real.js.map +1 -1
  616. package/pg-core/columns/serial.cjs.map +1 -1
  617. package/pg-core/columns/serial.d.cts +1 -0
  618. package/pg-core/columns/serial.d.ts +1 -0
  619. package/pg-core/columns/serial.js.map +1 -1
  620. package/pg-core/columns/smallint.cjs.map +1 -1
  621. package/pg-core/columns/smallint.d.cts +1 -0
  622. package/pg-core/columns/smallint.d.ts +1 -0
  623. package/pg-core/columns/smallint.js.map +1 -1
  624. package/pg-core/columns/smallserial.cjs.map +1 -1
  625. package/pg-core/columns/smallserial.d.cts +1 -0
  626. package/pg-core/columns/smallserial.d.ts +1 -0
  627. package/pg-core/columns/smallserial.js.map +1 -1
  628. package/pg-core/columns/text.cjs.map +1 -1
  629. package/pg-core/columns/text.d.cts +1 -0
  630. package/pg-core/columns/text.d.ts +1 -0
  631. package/pg-core/columns/text.js.map +1 -1
  632. package/pg-core/columns/time.cjs.map +1 -1
  633. package/pg-core/columns/time.d.cts +1 -0
  634. package/pg-core/columns/time.d.ts +1 -0
  635. package/pg-core/columns/time.js.map +1 -1
  636. package/pg-core/columns/timestamp.cjs.map +1 -1
  637. package/pg-core/columns/timestamp.d.cts +2 -0
  638. package/pg-core/columns/timestamp.d.ts +2 -0
  639. package/pg-core/columns/timestamp.js.map +1 -1
  640. package/pg-core/columns/uuid.cjs.map +1 -1
  641. package/pg-core/columns/uuid.d.cts +1 -0
  642. package/pg-core/columns/uuid.d.ts +1 -0
  643. package/pg-core/columns/uuid.js.map +1 -1
  644. package/pg-core/columns/varchar.cjs.map +1 -1
  645. package/pg-core/columns/varchar.d.cts +1 -0
  646. package/pg-core/columns/varchar.d.ts +1 -0
  647. package/pg-core/columns/varchar.js.map +1 -1
  648. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  649. package/pg-core/columns/vector_extension/bit.d.cts +1 -0
  650. package/pg-core/columns/vector_extension/bit.d.ts +1 -0
  651. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  652. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  653. package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
  654. package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
  655. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  656. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  657. package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
  658. package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
  659. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  660. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  661. package/pg-core/columns/vector_extension/vector.d.cts +1 -0
  662. package/pg-core/columns/vector_extension/vector.d.ts +1 -0
  663. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  664. package/pg-core/dialect.cjs +2 -4
  665. package/pg-core/dialect.cjs.map +1 -1
  666. package/pg-core/dialect.js +3 -11
  667. package/pg-core/dialect.js.map +1 -1
  668. package/pg-core/foreign-keys.cjs +0 -4
  669. package/pg-core/foreign-keys.cjs.map +1 -1
  670. package/pg-core/foreign-keys.d.cts +0 -2
  671. package/pg-core/foreign-keys.d.ts +0 -2
  672. package/pg-core/foreign-keys.js +0 -4
  673. package/pg-core/foreign-keys.js.map +1 -1
  674. package/pg-core/indexes.cjs +0 -2
  675. package/pg-core/indexes.cjs.map +1 -1
  676. package/pg-core/indexes.d.cts +0 -1
  677. package/pg-core/indexes.d.ts +0 -1
  678. package/pg-core/indexes.js +0 -2
  679. package/pg-core/indexes.js.map +1 -1
  680. package/pg-core/primary-keys.cjs +0 -2
  681. package/pg-core/primary-keys.cjs.map +1 -1
  682. package/pg-core/primary-keys.d.cts +0 -1
  683. package/pg-core/primary-keys.d.ts +0 -1
  684. package/pg-core/primary-keys.js +0 -2
  685. package/pg-core/primary-keys.js.map +1 -1
  686. package/pg-core/query-builders/count.cjs.map +1 -1
  687. package/pg-core/query-builders/count.d.cts +3 -4
  688. package/pg-core/query-builders/count.d.ts +3 -4
  689. package/pg-core/query-builders/count.js.map +1 -1
  690. package/pg-core/query-builders/insert.cjs.map +1 -1
  691. package/pg-core/query-builders/insert.d.cts +9 -6
  692. package/pg-core/query-builders/insert.d.ts +9 -6
  693. package/pg-core/query-builders/insert.js.map +1 -1
  694. package/pg-core/query-builders/select.cjs +9 -8
  695. package/pg-core/query-builders/select.cjs.map +1 -1
  696. package/pg-core/query-builders/select.js +4 -4
  697. package/pg-core/query-builders/select.js.map +1 -1
  698. package/pg-core/query-builders/update.cjs +2 -2
  699. package/pg-core/query-builders/update.cjs.map +1 -1
  700. package/pg-core/query-builders/update.d.cts +1 -1
  701. package/pg-core/query-builders/update.d.ts +1 -1
  702. package/pg-core/query-builders/update.js +2 -2
  703. package/pg-core/query-builders/update.js.map +1 -1
  704. package/pg-core/schema.cjs +8 -20
  705. package/pg-core/schema.cjs.map +1 -1
  706. package/pg-core/schema.d.cts +0 -2
  707. package/pg-core/schema.d.ts +0 -2
  708. package/pg-core/schema.js +9 -21
  709. package/pg-core/schema.js.map +1 -1
  710. package/pg-core/table.cjs +2 -15
  711. package/pg-core/table.cjs.map +1 -1
  712. package/pg-core/table.d.cts +1 -5
  713. package/pg-core/table.d.ts +1 -5
  714. package/pg-core/table.js +2 -15
  715. package/pg-core/table.js.map +1 -1
  716. package/pg-core/unique-constraint.cjs +0 -2
  717. package/pg-core/unique-constraint.cjs.map +1 -1
  718. package/pg-core/unique-constraint.d.cts +0 -1
  719. package/pg-core/unique-constraint.d.ts +0 -1
  720. package/pg-core/unique-constraint.js +0 -2
  721. package/pg-core/unique-constraint.js.map +1 -1
  722. package/pg-core/utils.cjs +2 -1
  723. package/pg-core/utils.cjs.map +1 -1
  724. package/pg-core/utils.d.cts +1 -1
  725. package/pg-core/utils.d.ts +1 -1
  726. package/pg-core/utils.js +2 -1
  727. package/pg-core/utils.js.map +1 -1
  728. package/pg-core/view-common.cjs +0 -3
  729. package/pg-core/view-common.cjs.map +1 -1
  730. package/pg-core/view-common.d.cts +0 -1
  731. package/pg-core/view-common.d.ts +0 -1
  732. package/pg-core/view-common.js +0 -2
  733. package/pg-core/view-common.js.map +1 -1
  734. package/pg-core/view.cjs +5 -2
  735. package/pg-core/view.cjs.map +1 -1
  736. package/pg-core/view.d.cts +2 -1
  737. package/pg-core/view.d.ts +2 -1
  738. package/pg-core/view.js +3 -1
  739. package/pg-core/view.js.map +1 -1
  740. package/pglite/driver.cjs +14 -10
  741. package/pglite/driver.cjs.map +1 -1
  742. package/pglite/driver.d.cts +3 -3
  743. package/pglite/driver.d.ts +3 -3
  744. package/pglite/driver.js +14 -10
  745. package/pglite/driver.js.map +1 -1
  746. package/planetscale-serverless/driver.cjs +15 -11
  747. package/planetscale-serverless/driver.cjs.map +1 -1
  748. package/planetscale-serverless/driver.d.cts +3 -3
  749. package/planetscale-serverless/driver.d.ts +3 -3
  750. package/planetscale-serverless/driver.js +15 -11
  751. package/planetscale-serverless/driver.js.map +1 -1
  752. package/postgres-js/driver.cjs +14 -10
  753. package/postgres-js/driver.cjs.map +1 -1
  754. package/postgres-js/driver.d.cts +3 -3
  755. package/postgres-js/driver.d.ts +3 -3
  756. package/postgres-js/driver.js +14 -10
  757. package/postgres-js/driver.js.map +1 -1
  758. package/relations.cjs +0 -2
  759. package/relations.cjs.map +1 -1
  760. package/relations.d.cts +3 -3
  761. package/relations.d.ts +3 -3
  762. package/relations.js +1 -3
  763. package/relations.js.map +1 -1
  764. package/selection-proxy.cjs +3 -4
  765. package/selection-proxy.cjs.map +1 -1
  766. package/selection-proxy.js +4 -5
  767. package/selection-proxy.js.map +1 -1
  768. package/singlestore/driver.cjs +26 -19
  769. package/singlestore/driver.cjs.map +1 -1
  770. package/singlestore/driver.d.cts +3 -3
  771. package/singlestore/driver.d.ts +3 -3
  772. package/singlestore/driver.js +26 -19
  773. package/singlestore/driver.js.map +1 -1
  774. package/singlestore/session.cjs.map +1 -1
  775. package/singlestore/session.js.map +1 -1
  776. package/singlestore-core/columns/bigint.cjs.map +1 -1
  777. package/singlestore-core/columns/bigint.d.cts +2 -0
  778. package/singlestore-core/columns/bigint.d.ts +2 -0
  779. package/singlestore-core/columns/bigint.js.map +1 -1
  780. package/singlestore-core/columns/binary.cjs +1 -0
  781. package/singlestore-core/columns/binary.cjs.map +1 -1
  782. package/singlestore-core/columns/binary.d.cts +2 -0
  783. package/singlestore-core/columns/binary.d.ts +2 -0
  784. package/singlestore-core/columns/binary.js +1 -0
  785. package/singlestore-core/columns/binary.js.map +1 -1
  786. package/singlestore-core/columns/boolean.cjs.map +1 -1
  787. package/singlestore-core/columns/boolean.d.cts +1 -0
  788. package/singlestore-core/columns/boolean.d.ts +1 -0
  789. package/singlestore-core/columns/boolean.js.map +1 -1
  790. package/singlestore-core/columns/char.cjs +1 -0
  791. package/singlestore-core/columns/char.cjs.map +1 -1
  792. package/singlestore-core/columns/char.d.cts +2 -0
  793. package/singlestore-core/columns/char.d.ts +2 -0
  794. package/singlestore-core/columns/char.js +1 -0
  795. package/singlestore-core/columns/char.js.map +1 -1
  796. package/singlestore-core/columns/common.cjs +4 -0
  797. package/singlestore-core/columns/common.cjs.map +1 -1
  798. package/singlestore-core/columns/common.d.cts +1 -1
  799. package/singlestore-core/columns/common.d.ts +1 -1
  800. package/singlestore-core/columns/common.js +4 -0
  801. package/singlestore-core/columns/common.js.map +1 -1
  802. package/singlestore-core/columns/custom.cjs.map +1 -1
  803. package/singlestore-core/columns/custom.d.cts +1 -0
  804. package/singlestore-core/columns/custom.d.ts +1 -0
  805. package/singlestore-core/columns/custom.js.map +1 -1
  806. package/singlestore-core/columns/date.cjs.map +1 -1
  807. package/singlestore-core/columns/date.d.cts +2 -0
  808. package/singlestore-core/columns/date.d.ts +2 -0
  809. package/singlestore-core/columns/date.js.map +1 -1
  810. package/singlestore-core/columns/datetime.cjs.map +1 -1
  811. package/singlestore-core/columns/datetime.d.cts +2 -0
  812. package/singlestore-core/columns/datetime.d.ts +2 -0
  813. package/singlestore-core/columns/datetime.js.map +1 -1
  814. package/singlestore-core/columns/decimal.cjs.map +1 -1
  815. package/singlestore-core/columns/decimal.d.cts +3 -0
  816. package/singlestore-core/columns/decimal.d.ts +3 -0
  817. package/singlestore-core/columns/decimal.js.map +1 -1
  818. package/singlestore-core/columns/double.cjs.map +1 -1
  819. package/singlestore-core/columns/double.d.cts +1 -0
  820. package/singlestore-core/columns/double.d.ts +1 -0
  821. package/singlestore-core/columns/double.js.map +1 -1
  822. package/singlestore-core/columns/enum.cjs.map +1 -1
  823. package/singlestore-core/columns/enum.d.cts +1 -0
  824. package/singlestore-core/columns/enum.d.ts +1 -0
  825. package/singlestore-core/columns/enum.js.map +1 -1
  826. package/singlestore-core/columns/float.cjs.map +1 -1
  827. package/singlestore-core/columns/float.d.cts +1 -0
  828. package/singlestore-core/columns/float.d.ts +1 -0
  829. package/singlestore-core/columns/float.js.map +1 -1
  830. package/singlestore-core/columns/int.cjs.map +1 -1
  831. package/singlestore-core/columns/int.d.cts +1 -0
  832. package/singlestore-core/columns/int.d.ts +1 -0
  833. package/singlestore-core/columns/int.js.map +1 -1
  834. package/singlestore-core/columns/json.cjs.map +1 -1
  835. package/singlestore-core/columns/json.d.cts +1 -0
  836. package/singlestore-core/columns/json.d.ts +1 -0
  837. package/singlestore-core/columns/json.js.map +1 -1
  838. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  839. package/singlestore-core/columns/mediumint.d.cts +1 -0
  840. package/singlestore-core/columns/mediumint.d.ts +1 -0
  841. package/singlestore-core/columns/mediumint.js.map +1 -1
  842. package/singlestore-core/columns/real.cjs.map +1 -1
  843. package/singlestore-core/columns/real.d.cts +1 -0
  844. package/singlestore-core/columns/real.d.ts +1 -0
  845. package/singlestore-core/columns/real.js.map +1 -1
  846. package/singlestore-core/columns/serial.cjs.map +1 -1
  847. package/singlestore-core/columns/serial.d.cts +1 -0
  848. package/singlestore-core/columns/serial.d.ts +1 -0
  849. package/singlestore-core/columns/serial.js.map +1 -1
  850. package/singlestore-core/columns/smallint.cjs.map +1 -1
  851. package/singlestore-core/columns/smallint.d.cts +1 -0
  852. package/singlestore-core/columns/smallint.d.ts +1 -0
  853. package/singlestore-core/columns/smallint.js.map +1 -1
  854. package/singlestore-core/columns/text.cjs.map +1 -1
  855. package/singlestore-core/columns/text.d.cts +1 -0
  856. package/singlestore-core/columns/text.d.ts +1 -0
  857. package/singlestore-core/columns/text.js.map +1 -1
  858. package/singlestore-core/columns/time.cjs.map +1 -1
  859. package/singlestore-core/columns/time.d.cts +1 -0
  860. package/singlestore-core/columns/time.d.ts +1 -0
  861. package/singlestore-core/columns/time.js.map +1 -1
  862. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  863. package/singlestore-core/columns/timestamp.d.cts +2 -0
  864. package/singlestore-core/columns/timestamp.d.ts +2 -0
  865. package/singlestore-core/columns/timestamp.js.map +1 -1
  866. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  867. package/singlestore-core/columns/tinyint.d.cts +1 -0
  868. package/singlestore-core/columns/tinyint.d.ts +1 -0
  869. package/singlestore-core/columns/tinyint.js.map +1 -1
  870. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  871. package/singlestore-core/columns/varbinary.d.cts +1 -0
  872. package/singlestore-core/columns/varbinary.d.ts +1 -0
  873. package/singlestore-core/columns/varbinary.js.map +1 -1
  874. package/singlestore-core/columns/varchar.cjs.map +1 -1
  875. package/singlestore-core/columns/varchar.d.cts +1 -0
  876. package/singlestore-core/columns/varchar.d.ts +1 -0
  877. package/singlestore-core/columns/varchar.js.map +1 -1
  878. package/singlestore-core/columns/vector.cjs.map +1 -1
  879. package/singlestore-core/columns/vector.d.cts +2 -0
  880. package/singlestore-core/columns/vector.d.ts +2 -0
  881. package/singlestore-core/columns/vector.js.map +1 -1
  882. package/singlestore-core/columns/year.cjs.map +1 -1
  883. package/singlestore-core/columns/year.d.cts +1 -0
  884. package/singlestore-core/columns/year.d.ts +1 -0
  885. package/singlestore-core/columns/year.js.map +1 -1
  886. package/singlestore-core/dialect.cjs +2 -4
  887. package/singlestore-core/dialect.cjs.map +1 -1
  888. package/singlestore-core/dialect.js +3 -11
  889. package/singlestore-core/dialect.js.map +1 -1
  890. package/singlestore-core/indexes.cjs +0 -2
  891. package/singlestore-core/indexes.cjs.map +1 -1
  892. package/singlestore-core/indexes.d.cts +0 -1
  893. package/singlestore-core/indexes.d.ts +0 -1
  894. package/singlestore-core/indexes.js +0 -2
  895. package/singlestore-core/indexes.js.map +1 -1
  896. package/singlestore-core/primary-keys.cjs +0 -2
  897. package/singlestore-core/primary-keys.cjs.map +1 -1
  898. package/singlestore-core/primary-keys.d.cts +0 -1
  899. package/singlestore-core/primary-keys.d.ts +0 -1
  900. package/singlestore-core/primary-keys.js +0 -2
  901. package/singlestore-core/primary-keys.js.map +1 -1
  902. package/singlestore-core/query-builders/count.cjs.map +1 -1
  903. package/singlestore-core/query-builders/count.d.cts +1 -1
  904. package/singlestore-core/query-builders/count.d.ts +1 -1
  905. package/singlestore-core/query-builders/count.js.map +1 -1
  906. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  907. package/singlestore-core/query-builders/insert.d.cts +1 -1
  908. package/singlestore-core/query-builders/insert.d.ts +1 -1
  909. package/singlestore-core/query-builders/insert.js.map +1 -1
  910. package/singlestore-core/query-builders/select.cjs +2 -2
  911. package/singlestore-core/query-builders/select.cjs.map +1 -1
  912. package/singlestore-core/query-builders/select.js +2 -2
  913. package/singlestore-core/query-builders/select.js.map +1 -1
  914. package/singlestore-core/query-builders/update.cjs.map +1 -1
  915. package/singlestore-core/query-builders/update.d.cts +1 -1
  916. package/singlestore-core/query-builders/update.d.ts +1 -1
  917. package/singlestore-core/query-builders/update.js.map +1 -1
  918. package/singlestore-core/unique-constraint.cjs +0 -2
  919. package/singlestore-core/unique-constraint.cjs.map +1 -1
  920. package/singlestore-core/unique-constraint.d.cts +2 -3
  921. package/singlestore-core/unique-constraint.d.ts +2 -3
  922. package/singlestore-core/unique-constraint.js +0 -2
  923. package/singlestore-core/unique-constraint.js.map +1 -1
  924. package/sql/sql.cjs +10 -11
  925. package/sql/sql.cjs.map +1 -1
  926. package/sql/sql.d.cts +3 -3
  927. package/sql/sql.d.ts +3 -3
  928. package/sql/sql.js +10 -11
  929. package/sql/sql.js.map +1 -1
  930. package/sql-js/session.cjs.map +1 -1
  931. package/sql-js/session.js.map +1 -1
  932. package/sqlite-core/columns/blob.cjs.map +1 -1
  933. package/sqlite-core/columns/blob.d.cts +3 -0
  934. package/sqlite-core/columns/blob.d.ts +3 -0
  935. package/sqlite-core/columns/blob.js.map +1 -1
  936. package/sqlite-core/columns/common.cjs +4 -0
  937. package/sqlite-core/columns/common.cjs.map +1 -1
  938. package/sqlite-core/columns/common.js +4 -0
  939. package/sqlite-core/columns/common.js.map +1 -1
  940. package/sqlite-core/columns/custom.cjs.map +1 -1
  941. package/sqlite-core/columns/custom.d.cts +1 -0
  942. package/sqlite-core/columns/custom.d.ts +1 -0
  943. package/sqlite-core/columns/custom.js.map +1 -1
  944. package/sqlite-core/columns/integer.cjs.map +1 -1
  945. package/sqlite-core/columns/integer.d.cts +3 -0
  946. package/sqlite-core/columns/integer.d.ts +3 -0
  947. package/sqlite-core/columns/integer.js.map +1 -1
  948. package/sqlite-core/columns/numeric.cjs.map +1 -1
  949. package/sqlite-core/columns/numeric.d.cts +3 -0
  950. package/sqlite-core/columns/numeric.d.ts +3 -0
  951. package/sqlite-core/columns/numeric.js.map +1 -1
  952. package/sqlite-core/columns/real.cjs.map +1 -1
  953. package/sqlite-core/columns/real.d.cts +1 -0
  954. package/sqlite-core/columns/real.d.ts +1 -0
  955. package/sqlite-core/columns/real.js.map +1 -1
  956. package/sqlite-core/columns/text.cjs.map +1 -1
  957. package/sqlite-core/columns/text.d.cts +2 -0
  958. package/sqlite-core/columns/text.d.ts +2 -0
  959. package/sqlite-core/columns/text.js.map +1 -1
  960. package/sqlite-core/dialect.cjs +5 -8
  961. package/sqlite-core/dialect.cjs.map +1 -1
  962. package/sqlite-core/dialect.js +6 -15
  963. package/sqlite-core/dialect.js.map +1 -1
  964. package/sqlite-core/foreign-keys.cjs +0 -3
  965. package/sqlite-core/foreign-keys.cjs.map +1 -1
  966. package/sqlite-core/foreign-keys.d.cts +14 -1
  967. package/sqlite-core/foreign-keys.d.ts +14 -1
  968. package/sqlite-core/foreign-keys.js +0 -3
  969. package/sqlite-core/foreign-keys.js.map +1 -1
  970. package/sqlite-core/indexes.cjs +0 -2
  971. package/sqlite-core/indexes.cjs.map +1 -1
  972. package/sqlite-core/indexes.d.cts +0 -1
  973. package/sqlite-core/indexes.d.ts +0 -1
  974. package/sqlite-core/indexes.js +0 -2
  975. package/sqlite-core/indexes.js.map +1 -1
  976. package/sqlite-core/primary-keys.cjs +0 -2
  977. package/sqlite-core/primary-keys.cjs.map +1 -1
  978. package/sqlite-core/primary-keys.d.cts +0 -1
  979. package/sqlite-core/primary-keys.d.ts +0 -1
  980. package/sqlite-core/primary-keys.js +0 -2
  981. package/sqlite-core/primary-keys.js.map +1 -1
  982. package/sqlite-core/query-builders/count.cjs.map +1 -1
  983. package/sqlite-core/query-builders/count.d.cts +1 -1
  984. package/sqlite-core/query-builders/count.d.ts +1 -1
  985. package/sqlite-core/query-builders/count.js.map +1 -1
  986. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  987. package/sqlite-core/query-builders/insert.d.cts +2 -2
  988. package/sqlite-core/query-builders/insert.d.ts +2 -2
  989. package/sqlite-core/query-builders/insert.js.map +1 -1
  990. package/sqlite-core/query-builders/update.cjs +2 -2
  991. package/sqlite-core/query-builders/update.cjs.map +1 -1
  992. package/sqlite-core/query-builders/update.d.cts +1 -1
  993. package/sqlite-core/query-builders/update.d.ts +1 -1
  994. package/sqlite-core/query-builders/update.js +2 -2
  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 +3 -3
  1019. package/tracing.cjs.map +1 -1
  1020. package/tracing.js +3 -3
  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/vercel-postgres/session.cjs.map +1 -1
  1039. package/vercel-postgres/session.js.map +1 -1
  1040. package/version.cjs +2 -2
  1041. package/version.cjs.map +1 -1
  1042. package/version.d.cts +2 -2
  1043. package/version.d.ts +2 -2
  1044. package/version.js +2 -2
  1045. package/version.js.map +1 -1
  1046. package/cockroach/driver.cjs +0 -109
  1047. package/cockroach/driver.cjs.map +0 -1
  1048. package/cockroach/driver.d.cts +0 -42
  1049. package/cockroach/driver.d.ts +0 -42
  1050. package/cockroach/driver.js +0 -73
  1051. package/cockroach/driver.js.map +0 -1
  1052. package/cockroach/index.cjs +0 -25
  1053. package/cockroach/index.cjs.map +0 -1
  1054. package/cockroach/index.d.cts +0 -2
  1055. package/cockroach/index.d.ts +0 -2
  1056. package/cockroach/index.js +0 -3
  1057. package/cockroach/index.js.map +0 -1
  1058. package/cockroach/migrator.cjs +0 -33
  1059. package/cockroach/migrator.cjs.map +0 -1
  1060. package/cockroach/migrator.d.cts +0 -3
  1061. package/cockroach/migrator.d.ts +0 -3
  1062. package/cockroach/migrator.js +0 -9
  1063. package/cockroach/migrator.js.map +0 -1
  1064. package/cockroach/session.cjs +0 -253
  1065. package/cockroach/session.cjs.map +0 -1
  1066. package/cockroach/session.d.cts +0 -48
  1067. package/cockroach/session.d.ts +0 -48
  1068. package/cockroach/session.js +0 -217
  1069. package/cockroach/session.js.map +0 -1
  1070. package/cockroach-core/alias.cjs +0 -32
  1071. package/cockroach-core/alias.cjs.map +0 -1
  1072. package/cockroach-core/alias.d.cts +0 -4
  1073. package/cockroach-core/alias.d.ts +0 -4
  1074. package/cockroach-core/alias.js +0 -8
  1075. package/cockroach-core/alias.js.map +0 -1
  1076. package/cockroach-core/checks.cjs +0 -58
  1077. package/cockroach-core/checks.cjs.map +0 -1
  1078. package/cockroach-core/checks.d.cts +0 -18
  1079. package/cockroach-core/checks.d.ts +0 -18
  1080. package/cockroach-core/checks.js +0 -32
  1081. package/cockroach-core/checks.js.map +0 -1
  1082. package/cockroach-core/columns/all.cjs +0 -81
  1083. package/cockroach-core/columns/all.cjs.map +0 -1
  1084. package/cockroach-core/columns/all.d.cts +0 -52
  1085. package/cockroach-core/columns/all.d.ts +0 -52
  1086. package/cockroach-core/columns/all.js +0 -57
  1087. package/cockroach-core/columns/all.js.map +0 -1
  1088. package/cockroach-core/columns/bigint.cjs +0 -104
  1089. package/cockroach-core/columns/bigint.cjs.map +0 -1
  1090. package/cockroach-core/columns/bigint.d.cts +0 -37
  1091. package/cockroach-core/columns/bigint.d.ts +0 -37
  1092. package/cockroach-core/columns/bigint.js +0 -75
  1093. package/cockroach-core/columns/bigint.js.map +0 -1
  1094. package/cockroach-core/columns/bit.cjs +0 -61
  1095. package/cockroach-core/columns/bit.cjs.map +0 -1
  1096. package/cockroach-core/columns/bit.d.cts +0 -29
  1097. package/cockroach-core/columns/bit.d.ts +0 -29
  1098. package/cockroach-core/columns/bit.js +0 -35
  1099. package/cockroach-core/columns/bit.js.map +0 -1
  1100. package/cockroach-core/columns/bool.cjs +0 -59
  1101. package/cockroach-core/columns/bool.cjs.map +0 -1
  1102. package/cockroach-core/columns/bool.d.cts +0 -17
  1103. package/cockroach-core/columns/bool.d.ts +0 -17
  1104. package/cockroach-core/columns/bool.js +0 -32
  1105. package/cockroach-core/columns/bool.js.map +0 -1
  1106. package/cockroach-core/columns/char.cjs +0 -62
  1107. package/cockroach-core/columns/char.cjs.map +0 -1
  1108. package/cockroach-core/columns/char.d.cts +0 -31
  1109. package/cockroach-core/columns/char.d.ts +0 -31
  1110. package/cockroach-core/columns/char.js +0 -36
  1111. package/cockroach-core/columns/char.js.map +0 -1
  1112. package/cockroach-core/columns/common.cjs +0 -198
  1113. package/cockroach-core/columns/common.cjs.map +0 -1
  1114. package/cockroach-core/columns/common.d.cts +0 -98
  1115. package/cockroach-core/columns/common.d.ts +0 -98
  1116. package/cockroach-core/columns/common.js +0 -168
  1117. package/cockroach-core/columns/common.js.map +0 -1
  1118. package/cockroach-core/columns/custom.cjs +0 -102
  1119. package/cockroach-core/columns/custom.cjs.map +0 -1
  1120. package/cockroach-core/columns/custom.d.cts +0 -261
  1121. package/cockroach-core/columns/custom.d.ts +0 -261
  1122. package/cockroach-core/columns/custom.js +0 -76
  1123. package/cockroach-core/columns/custom.js.map +0 -1
  1124. package/cockroach-core/columns/date.cjs +0 -91
  1125. package/cockroach-core/columns/date.cjs.map +0 -1
  1126. package/cockroach-core/columns/date.common.cjs +0 -37
  1127. package/cockroach-core/columns/date.common.cjs.map +0 -1
  1128. package/cockroach-core/columns/date.common.d.cts +0 -7
  1129. package/cockroach-core/columns/date.common.d.ts +0 -7
  1130. package/cockroach-core/columns/date.common.js +0 -13
  1131. package/cockroach-core/columns/date.common.js.map +0 -1
  1132. package/cockroach-core/columns/date.d.cts +0 -36
  1133. package/cockroach-core/columns/date.d.ts +0 -36
  1134. package/cockroach-core/columns/date.js +0 -63
  1135. package/cockroach-core/columns/date.js.map +0 -1
  1136. package/cockroach-core/columns/decimal.cjs +0 -164
  1137. package/cockroach-core/columns/decimal.cjs.map +0 -1
  1138. package/cockroach-core/columns/decimal.d.cts +0 -80
  1139. package/cockroach-core/columns/decimal.d.ts +0 -80
  1140. package/cockroach-core/columns/decimal.js +0 -133
  1141. package/cockroach-core/columns/decimal.js.map +0 -1
  1142. package/cockroach-core/columns/enum.cjs +0 -127
  1143. package/cockroach-core/columns/enum.cjs.map +0 -1
  1144. package/cockroach-core/columns/enum.d.cts +0 -64
  1145. package/cockroach-core/columns/enum.d.ts +0 -64
  1146. package/cockroach-core/columns/enum.js +0 -96
  1147. package/cockroach-core/columns/enum.js.map +0 -1
  1148. package/cockroach-core/columns/float.cjs +0 -65
  1149. package/cockroach-core/columns/float.cjs.map +0 -1
  1150. package/cockroach-core/columns/float.d.cts +0 -18
  1151. package/cockroach-core/columns/float.d.ts +0 -18
  1152. package/cockroach-core/columns/float.js +0 -38
  1153. package/cockroach-core/columns/float.js.map +0 -1
  1154. package/cockroach-core/columns/geometry.cjs +0 -105
  1155. package/cockroach-core/columns/geometry.cjs.map +0 -1
  1156. package/cockroach-core/columns/geometry.d.cts +0 -60
  1157. package/cockroach-core/columns/geometry.d.ts +0 -60
  1158. package/cockroach-core/columns/geometry.js +0 -77
  1159. package/cockroach-core/columns/geometry.js.map +0 -1
  1160. package/cockroach-core/columns/index.cjs +0 -71
  1161. package/cockroach-core/columns/index.cjs.map +0 -1
  1162. package/cockroach-core/columns/index.d.cts +0 -25
  1163. package/cockroach-core/columns/index.d.ts +0 -25
  1164. package/cockroach-core/columns/index.js +0 -26
  1165. package/cockroach-core/columns/index.js.map +0 -1
  1166. package/cockroach-core/columns/inet.cjs +0 -56
  1167. package/cockroach-core/columns/inet.cjs.map +0 -1
  1168. package/cockroach-core/columns/inet.d.cts +0 -16
  1169. package/cockroach-core/columns/inet.d.ts +0 -16
  1170. package/cockroach-core/columns/inet.js +0 -30
  1171. package/cockroach-core/columns/inet.js.map +0 -1
  1172. package/cockroach-core/columns/int.common.cjs +0 -55
  1173. package/cockroach-core/columns/int.common.cjs.map +0 -1
  1174. package/cockroach-core/columns/int.common.d.cts +0 -11
  1175. package/cockroach-core/columns/int.common.d.ts +0 -11
  1176. package/cockroach-core/columns/int.common.js +0 -31
  1177. package/cockroach-core/columns/int.common.js.map +0 -1
  1178. package/cockroach-core/columns/integer.cjs +0 -63
  1179. package/cockroach-core/columns/integer.cjs.map +0 -1
  1180. package/cockroach-core/columns/integer.d.cts +0 -18
  1181. package/cockroach-core/columns/integer.d.ts +0 -18
  1182. package/cockroach-core/columns/integer.js +0 -37
  1183. package/cockroach-core/columns/integer.js.map +0 -1
  1184. package/cockroach-core/columns/interval.cjs +0 -63
  1185. package/cockroach-core/columns/interval.cjs.map +0 -1
  1186. package/cockroach-core/columns/interval.d.cts +0 -28
  1187. package/cockroach-core/columns/interval.d.ts +0 -28
  1188. package/cockroach-core/columns/interval.js +0 -37
  1189. package/cockroach-core/columns/interval.js.map +0 -1
  1190. package/cockroach-core/columns/jsonb.cjs +0 -72
  1191. package/cockroach-core/columns/jsonb.cjs.map +0 -1
  1192. package/cockroach-core/columns/jsonb.d.cts +0 -20
  1193. package/cockroach-core/columns/jsonb.d.ts +0 -20
  1194. package/cockroach-core/columns/jsonb.js +0 -46
  1195. package/cockroach-core/columns/jsonb.js.map +0 -1
  1196. package/cockroach-core/columns/real.cjs +0 -66
  1197. package/cockroach-core/columns/real.cjs.map +0 -1
  1198. package/cockroach-core/columns/real.d.cts +0 -21
  1199. package/cockroach-core/columns/real.d.ts +0 -21
  1200. package/cockroach-core/columns/real.js +0 -40
  1201. package/cockroach-core/columns/real.js.map +0 -1
  1202. package/cockroach-core/columns/smallint.cjs +0 -68
  1203. package/cockroach-core/columns/smallint.cjs.map +0 -1
  1204. package/cockroach-core/columns/smallint.d.cts +0 -19
  1205. package/cockroach-core/columns/smallint.d.ts +0 -19
  1206. package/cockroach-core/columns/smallint.js +0 -41
  1207. package/cockroach-core/columns/smallint.js.map +0 -1
  1208. package/cockroach-core/columns/string.cjs +0 -67
  1209. package/cockroach-core/columns/string.cjs.map +0 -1
  1210. package/cockroach-core/columns/string.d.cts +0 -36
  1211. package/cockroach-core/columns/string.d.ts +0 -36
  1212. package/cockroach-core/columns/string.js +0 -40
  1213. package/cockroach-core/columns/string.js.map +0 -1
  1214. package/cockroach-core/columns/time.cjs +0 -70
  1215. package/cockroach-core/columns/time.cjs.map +0 -1
  1216. package/cockroach-core/columns/time.d.cts +0 -31
  1217. package/cockroach-core/columns/time.d.ts +0 -31
  1218. package/cockroach-core/columns/time.js +0 -44
  1219. package/cockroach-core/columns/time.js.map +0 -1
  1220. package/cockroach-core/columns/timestamp.cjs +0 -111
  1221. package/cockroach-core/columns/timestamp.cjs.map +0 -1
  1222. package/cockroach-core/columns/timestamp.d.cts +0 -52
  1223. package/cockroach-core/columns/timestamp.d.ts +0 -52
  1224. package/cockroach-core/columns/timestamp.js +0 -83
  1225. package/cockroach-core/columns/timestamp.js.map +0 -1
  1226. package/cockroach-core/columns/utils.cjs +0 -65
  1227. package/cockroach-core/columns/utils.cjs.map +0 -1
  1228. package/cockroach-core/columns/utils.d.cts +0 -4
  1229. package/cockroach-core/columns/utils.d.ts +0 -4
  1230. package/cockroach-core/columns/utils.js +0 -41
  1231. package/cockroach-core/columns/utils.js.map +0 -1
  1232. package/cockroach-core/columns/uuid.cjs +0 -63
  1233. package/cockroach-core/columns/uuid.cjs.map +0 -1
  1234. package/cockroach-core/columns/uuid.d.cts +0 -20
  1235. package/cockroach-core/columns/uuid.d.ts +0 -20
  1236. package/cockroach-core/columns/uuid.js +0 -37
  1237. package/cockroach-core/columns/uuid.js.map +0 -1
  1238. package/cockroach-core/columns/varbit.cjs +0 -59
  1239. package/cockroach-core/columns/varbit.cjs.map +0 -1
  1240. package/cockroach-core/columns/varbit.d.cts +0 -24
  1241. package/cockroach-core/columns/varbit.d.ts +0 -24
  1242. package/cockroach-core/columns/varbit.js +0 -33
  1243. package/cockroach-core/columns/varbit.js.map +0 -1
  1244. package/cockroach-core/columns/varchar.cjs +0 -61
  1245. package/cockroach-core/columns/varchar.cjs.map +0 -1
  1246. package/cockroach-core/columns/varchar.d.cts +0 -30
  1247. package/cockroach-core/columns/varchar.d.ts +0 -30
  1248. package/cockroach-core/columns/varchar.js +0 -35
  1249. package/cockroach-core/columns/varchar.js.map +0 -1
  1250. package/cockroach-core/columns/vector.cjs +0 -65
  1251. package/cockroach-core/columns/vector.cjs.map +0 -1
  1252. package/cockroach-core/columns/vector.d.cts +0 -26
  1253. package/cockroach-core/columns/vector.d.ts +0 -26
  1254. package/cockroach-core/columns/vector.js +0 -39
  1255. package/cockroach-core/columns/vector.js.map +0 -1
  1256. package/cockroach-core/db.cjs +0 -346
  1257. package/cockroach-core/db.cjs.map +0 -1
  1258. package/cockroach-core/db.d.cts +0 -282
  1259. package/cockroach-core/db.d.ts +0 -282
  1260. package/cockroach-core/db.js +0 -327
  1261. package/cockroach-core/db.js.map +0 -1
  1262. package/cockroach-core/dialect.cjs +0 -1148
  1263. package/cockroach-core/dialect.cjs.map +0 -1
  1264. package/cockroach-core/dialect.d.cts +0 -65
  1265. package/cockroach-core/dialect.d.ts +0 -65
  1266. package/cockroach-core/dialect.js +0 -1134
  1267. package/cockroach-core/dialect.js.map +0 -1
  1268. package/cockroach-core/expressions.cjs +0 -49
  1269. package/cockroach-core/expressions.cjs.map +0 -1
  1270. package/cockroach-core/expressions.d.cts +0 -8
  1271. package/cockroach-core/expressions.d.ts +0 -8
  1272. package/cockroach-core/expressions.js +0 -22
  1273. package/cockroach-core/expressions.js.map +0 -1
  1274. package/cockroach-core/foreign-keys.cjs +0 -95
  1275. package/cockroach-core/foreign-keys.cjs.map +0 -1
  1276. package/cockroach-core/foreign-keys.d.cts +0 -53
  1277. package/cockroach-core/foreign-keys.d.ts +0 -53
  1278. package/cockroach-core/foreign-keys.js +0 -69
  1279. package/cockroach-core/foreign-keys.js.map +0 -1
  1280. package/cockroach-core/index.cjs +0 -61
  1281. package/cockroach-core/index.cjs.map +0 -1
  1282. package/cockroach-core/index.d.cts +0 -20
  1283. package/cockroach-core/index.d.ts +0 -20
  1284. package/cockroach-core/index.js +0 -21
  1285. package/cockroach-core/index.js.map +0 -1
  1286. package/cockroach-core/indexes.cjs +0 -139
  1287. package/cockroach-core/indexes.cjs.map +0 -1
  1288. package/cockroach-core/indexes.d.cts +0 -65
  1289. package/cockroach-core/indexes.d.ts +0 -65
  1290. package/cockroach-core/indexes.js +0 -111
  1291. package/cockroach-core/indexes.js.map +0 -1
  1292. package/cockroach-core/policies.cjs +0 -58
  1293. package/cockroach-core/policies.cjs.map +0 -1
  1294. package/cockroach-core/policies.d.cts +0 -24
  1295. package/cockroach-core/policies.d.ts +0 -24
  1296. package/cockroach-core/policies.js +0 -33
  1297. package/cockroach-core/policies.js.map +0 -1
  1298. package/cockroach-core/primary-keys.cjs +0 -66
  1299. package/cockroach-core/primary-keys.cjs.map +0 -1
  1300. package/cockroach-core/primary-keys.d.cts +0 -24
  1301. package/cockroach-core/primary-keys.d.ts +0 -24
  1302. package/cockroach-core/primary-keys.js +0 -40
  1303. package/cockroach-core/primary-keys.js.map +0 -1
  1304. package/cockroach-core/query-builders/count.cjs +0 -79
  1305. package/cockroach-core/query-builders/count.cjs.map +0 -1
  1306. package/cockroach-core/query-builders/count.d.cts +0 -30
  1307. package/cockroach-core/query-builders/count.d.ts +0 -30
  1308. package/cockroach-core/query-builders/count.js +0 -55
  1309. package/cockroach-core/query-builders/count.js.map +0 -1
  1310. package/cockroach-core/query-builders/delete.cjs +0 -124
  1311. package/cockroach-core/query-builders/delete.cjs.map +0 -1
  1312. package/cockroach-core/query-builders/delete.d.cts +0 -103
  1313. package/cockroach-core/query-builders/delete.d.ts +0 -103
  1314. package/cockroach-core/query-builders/delete.js +0 -100
  1315. package/cockroach-core/query-builders/delete.js.map +0 -1
  1316. package/cockroach-core/query-builders/index.cjs +0 -35
  1317. package/cockroach-core/query-builders/index.cjs.map +0 -1
  1318. package/cockroach-core/query-builders/index.d.cts +0 -7
  1319. package/cockroach-core/query-builders/index.d.ts +0 -7
  1320. package/cockroach-core/query-builders/index.js +0 -8
  1321. package/cockroach-core/query-builders/index.js.map +0 -1
  1322. package/cockroach-core/query-builders/insert.cjs +0 -213
  1323. package/cockroach-core/query-builders/insert.cjs.map +0 -1
  1324. package/cockroach-core/query-builders/insert.d.cts +0 -168
  1325. package/cockroach-core/query-builders/insert.d.ts +0 -168
  1326. package/cockroach-core/query-builders/insert.js +0 -188
  1327. package/cockroach-core/query-builders/insert.js.map +0 -1
  1328. package/cockroach-core/query-builders/query-builder.cjs +0 -118
  1329. package/cockroach-core/query-builders/query-builder.cjs.map +0 -1
  1330. package/cockroach-core/query-builders/query-builder.d.cts +0 -37
  1331. package/cockroach-core/query-builders/query-builder.d.ts +0 -37
  1332. package/cockroach-core/query-builders/query-builder.js +0 -94
  1333. package/cockroach-core/query-builders/query-builder.js.map +0 -1
  1334. package/cockroach-core/query-builders/query.cjs +0 -145
  1335. package/cockroach-core/query-builders/query.cjs.map +0 -1
  1336. package/cockroach-core/query-builders/query.d.cts +0 -47
  1337. package/cockroach-core/query-builders/query.d.ts +0 -47
  1338. package/cockroach-core/query-builders/query.js +0 -122
  1339. package/cockroach-core/query-builders/query.js.map +0 -1
  1340. package/cockroach-core/query-builders/raw.cjs +0 -57
  1341. package/cockroach-core/query-builders/raw.cjs.map +0 -1
  1342. package/cockroach-core/query-builders/raw.d.cts +0 -22
  1343. package/cockroach-core/query-builders/raw.d.ts +0 -22
  1344. package/cockroach-core/query-builders/raw.js +0 -33
  1345. package/cockroach-core/query-builders/raw.js.map +0 -1
  1346. package/cockroach-core/query-builders/refresh-materialized-view.cjs +0 -83
  1347. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +0 -1
  1348. package/cockroach-core/query-builders/refresh-materialized-view.d.cts +0 -28
  1349. package/cockroach-core/query-builders/refresh-materialized-view.d.ts +0 -28
  1350. package/cockroach-core/query-builders/refresh-materialized-view.js +0 -59
  1351. package/cockroach-core/query-builders/refresh-materialized-view.js.map +0 -1
  1352. package/cockroach-core/query-builders/select.cjs +0 -847
  1353. package/cockroach-core/query-builders/select.cjs.map +0 -1
  1354. package/cockroach-core/query-builders/select.d.cts +0 -787
  1355. package/cockroach-core/query-builders/select.d.ts +0 -787
  1356. package/cockroach-core/query-builders/select.js +0 -821
  1357. package/cockroach-core/query-builders/select.js.map +0 -1
  1358. package/cockroach-core/query-builders/select.types.cjs +0 -17
  1359. package/cockroach-core/query-builders/select.types.cjs.map +0 -1
  1360. package/cockroach-core/query-builders/select.types.d.cts +0 -140
  1361. package/cockroach-core/query-builders/select.types.d.ts +0 -140
  1362. package/cockroach-core/query-builders/select.types.js +0 -1
  1363. package/cockroach-core/query-builders/select.types.js.map +0 -1
  1364. package/cockroach-core/query-builders/update.cjs +0 -240
  1365. package/cockroach-core/query-builders/update.cjs.map +0 -1
  1366. package/cockroach-core/query-builders/update.d.cts +0 -170
  1367. package/cockroach-core/query-builders/update.d.ts +0 -170
  1368. package/cockroach-core/query-builders/update.js +0 -219
  1369. package/cockroach-core/query-builders/update.js.map +0 -1
  1370. package/cockroach-core/roles.cjs +0 -54
  1371. package/cockroach-core/roles.cjs.map +0 -1
  1372. package/cockroach-core/roles.d.cts +0 -12
  1373. package/cockroach-core/roles.d.ts +0 -12
  1374. package/cockroach-core/roles.js +0 -29
  1375. package/cockroach-core/roles.js.map +0 -1
  1376. package/cockroach-core/schema.cjs +0 -92
  1377. package/cockroach-core/schema.cjs.map +0 -1
  1378. package/cockroach-core/schema.d.cts +0 -24
  1379. package/cockroach-core/schema.d.ts +0 -24
  1380. package/cockroach-core/schema.js +0 -72
  1381. package/cockroach-core/schema.js.map +0 -1
  1382. package/cockroach-core/sequence.cjs +0 -52
  1383. package/cockroach-core/sequence.cjs.map +0 -1
  1384. package/cockroach-core/sequence.d.cts +0 -17
  1385. package/cockroach-core/sequence.d.ts +0 -17
  1386. package/cockroach-core/sequence.js +0 -25
  1387. package/cockroach-core/sequence.js.map +0 -1
  1388. package/cockroach-core/session.cjs +0 -120
  1389. package/cockroach-core/session.cjs.map +0 -1
  1390. package/cockroach-core/session.d.cts +0 -62
  1391. package/cockroach-core/session.d.ts +0 -62
  1392. package/cockroach-core/session.js +0 -94
  1393. package/cockroach-core/session.js.map +0 -1
  1394. package/cockroach-core/subquery.cjs +0 -17
  1395. package/cockroach-core/subquery.cjs.map +0 -1
  1396. package/cockroach-core/subquery.d.cts +0 -18
  1397. package/cockroach-core/subquery.d.ts +0 -18
  1398. package/cockroach-core/subquery.js +0 -1
  1399. package/cockroach-core/subquery.js.map +0 -1
  1400. package/cockroach-core/table.cjs +0 -121
  1401. package/cockroach-core/table.cjs.map +0 -1
  1402. package/cockroach-core/table.d.cts +0 -41
  1403. package/cockroach-core/table.d.ts +0 -41
  1404. package/cockroach-core/table.js +0 -94
  1405. package/cockroach-core/table.js.map +0 -1
  1406. package/cockroach-core/unique-constraint.cjs +0 -77
  1407. package/cockroach-core/unique-constraint.cjs.map +0 -1
  1408. package/cockroach-core/unique-constraint.d.cts +0 -23
  1409. package/cockroach-core/unique-constraint.d.ts +0 -23
  1410. package/cockroach-core/unique-constraint.js +0 -50
  1411. package/cockroach-core/unique-constraint.js.map +0 -1
  1412. package/cockroach-core/utils/array.cjs +0 -106
  1413. package/cockroach-core/utils/array.cjs.map +0 -1
  1414. package/cockroach-core/utils/array.d.cts +0 -3
  1415. package/cockroach-core/utils/array.d.ts +0 -3
  1416. package/cockroach-core/utils/array.js +0 -80
  1417. package/cockroach-core/utils/array.js.map +0 -1
  1418. package/cockroach-core/utils/index.cjs +0 -23
  1419. package/cockroach-core/utils/index.cjs.map +0 -1
  1420. package/cockroach-core/utils/index.d.cts +0 -1
  1421. package/cockroach-core/utils/index.d.ts +0 -1
  1422. package/cockroach-core/utils/index.js +0 -2
  1423. package/cockroach-core/utils/index.js.map +0 -1
  1424. package/cockroach-core/utils.cjs +0 -98
  1425. package/cockroach-core/utils.cjs.map +0 -1
  1426. package/cockroach-core/utils.d.cts +0 -47
  1427. package/cockroach-core/utils.d.ts +0 -47
  1428. package/cockroach-core/utils.js +0 -72
  1429. package/cockroach-core/utils.js.map +0 -1
  1430. package/cockroach-core/view-base.cjs +0 -33
  1431. package/cockroach-core/view-base.cjs.map +0 -1
  1432. package/cockroach-core/view-base.d.cts +0 -8
  1433. package/cockroach-core/view-base.d.ts +0 -8
  1434. package/cockroach-core/view-base.js +0 -9
  1435. package/cockroach-core/view-base.js.map +0 -1
  1436. package/cockroach-core/view.cjs +0 -271
  1437. package/cockroach-core/view.cjs.map +0 -1
  1438. package/cockroach-core/view.d.cts +0 -106
  1439. package/cockroach-core/view.d.ts +0 -106
  1440. package/cockroach-core/view.js +0 -233
  1441. package/cockroach-core/view.js.map +0 -1
  1442. package/column-common.cjs +0 -29
  1443. package/column-common.cjs.map +0 -1
  1444. package/column-common.d.cts +0 -1
  1445. package/column-common.d.ts +0 -1
  1446. package/column-common.js +0 -5
  1447. package/column-common.js.map +0 -1
  1448. package/mssql-core/alias.cjs +0 -32
  1449. package/mssql-core/alias.cjs.map +0 -1
  1450. package/mssql-core/alias.d.cts +0 -4
  1451. package/mssql-core/alias.d.ts +0 -4
  1452. package/mssql-core/alias.js +0 -8
  1453. package/mssql-core/alias.js.map +0 -1
  1454. package/mssql-core/checks.cjs +0 -58
  1455. package/mssql-core/checks.cjs.map +0 -1
  1456. package/mssql-core/checks.d.cts +0 -18
  1457. package/mssql-core/checks.d.ts +0 -18
  1458. package/mssql-core/checks.js +0 -32
  1459. package/mssql-core/checks.js.map +0 -1
  1460. package/mssql-core/columns/all.cjs +0 -74
  1461. package/mssql-core/columns/all.cjs.map +0 -1
  1462. package/mssql-core/columns/all.d.cts +0 -45
  1463. package/mssql-core/columns/all.d.ts +0 -45
  1464. package/mssql-core/columns/all.js +0 -50
  1465. package/mssql-core/columns/all.js.map +0 -1
  1466. package/mssql-core/columns/bigint.cjs +0 -72
  1467. package/mssql-core/columns/bigint.cjs.map +0 -1
  1468. package/mssql-core/columns/bigint.d.cts +0 -25
  1469. package/mssql-core/columns/bigint.d.ts +0 -25
  1470. package/mssql-core/columns/bigint.js +0 -46
  1471. package/mssql-core/columns/bigint.js.map +0 -1
  1472. package/mssql-core/columns/binary.cjs +0 -57
  1473. package/mssql-core/columns/binary.cjs.map +0 -1
  1474. package/mssql-core/columns/binary.d.cts +0 -24
  1475. package/mssql-core/columns/binary.d.ts +0 -24
  1476. package/mssql-core/columns/binary.js +0 -31
  1477. package/mssql-core/columns/binary.js.map +0 -1
  1478. package/mssql-core/columns/bit.cjs +0 -54
  1479. package/mssql-core/columns/bit.cjs.map +0 -1
  1480. package/mssql-core/columns/bit.d.cts +0 -17
  1481. package/mssql-core/columns/bit.d.ts +0 -17
  1482. package/mssql-core/columns/bit.js +0 -28
  1483. package/mssql-core/columns/bit.js.map +0 -1
  1484. package/mssql-core/columns/char.cjs +0 -73
  1485. package/mssql-core/columns/char.cjs.map +0 -1
  1486. package/mssql-core/columns/char.d.cts +0 -29
  1487. package/mssql-core/columns/char.d.ts +0 -29
  1488. package/mssql-core/columns/char.js +0 -46
  1489. package/mssql-core/columns/char.js.map +0 -1
  1490. package/mssql-core/columns/common.cjs +0 -112
  1491. package/mssql-core/columns/common.cjs.map +0 -1
  1492. package/mssql-core/columns/common.d.cts +0 -57
  1493. package/mssql-core/columns/common.d.ts +0 -57
  1494. package/mssql-core/columns/common.js +0 -85
  1495. package/mssql-core/columns/common.js.map +0 -1
  1496. package/mssql-core/columns/custom.cjs +0 -105
  1497. package/mssql-core/columns/custom.cjs.map +0 -1
  1498. package/mssql-core/columns/custom.d.cts +0 -261
  1499. package/mssql-core/columns/custom.d.ts +0 -261
  1500. package/mssql-core/columns/custom.js +0 -79
  1501. package/mssql-core/columns/custom.js.map +0 -1
  1502. package/mssql-core/columns/date.cjs +0 -94
  1503. package/mssql-core/columns/date.cjs.map +0 -1
  1504. package/mssql-core/columns/date.common.cjs +0 -37
  1505. package/mssql-core/columns/date.common.cjs.map +0 -1
  1506. package/mssql-core/columns/date.common.d.cts +0 -12
  1507. package/mssql-core/columns/date.common.d.ts +0 -12
  1508. package/mssql-core/columns/date.common.js +0 -13
  1509. package/mssql-core/columns/date.common.js.map +0 -1
  1510. package/mssql-core/columns/date.d.cts +0 -39
  1511. package/mssql-core/columns/date.d.ts +0 -39
  1512. package/mssql-core/columns/date.js +0 -66
  1513. package/mssql-core/columns/date.js.map +0 -1
  1514. package/mssql-core/columns/datetime.cjs +0 -94
  1515. package/mssql-core/columns/datetime.cjs.map +0 -1
  1516. package/mssql-core/columns/datetime.d.cts +0 -38
  1517. package/mssql-core/columns/datetime.d.ts +0 -38
  1518. package/mssql-core/columns/datetime.js +0 -66
  1519. package/mssql-core/columns/datetime.js.map +0 -1
  1520. package/mssql-core/columns/datetime2.cjs +0 -102
  1521. package/mssql-core/columns/datetime2.cjs.map +0 -1
  1522. package/mssql-core/columns/datetime2.d.cts +0 -38
  1523. package/mssql-core/columns/datetime2.d.ts +0 -38
  1524. package/mssql-core/columns/datetime2.js +0 -74
  1525. package/mssql-core/columns/datetime2.js.map +0 -1
  1526. package/mssql-core/columns/datetimeoffset.cjs +0 -102
  1527. package/mssql-core/columns/datetimeoffset.cjs.map +0 -1
  1528. package/mssql-core/columns/datetimeoffset.d.cts +0 -39
  1529. package/mssql-core/columns/datetimeoffset.d.ts +0 -39
  1530. package/mssql-core/columns/datetimeoffset.js +0 -74
  1531. package/mssql-core/columns/datetimeoffset.js.map +0 -1
  1532. package/mssql-core/columns/decimal.cjs +0 -146
  1533. package/mssql-core/columns/decimal.cjs.map +0 -1
  1534. package/mssql-core/columns/decimal.d.cts +0 -58
  1535. package/mssql-core/columns/decimal.d.ts +0 -58
  1536. package/mssql-core/columns/decimal.js +0 -116
  1537. package/mssql-core/columns/decimal.js.map +0 -1
  1538. package/mssql-core/columns/float.cjs +0 -58
  1539. package/mssql-core/columns/float.cjs.map +0 -1
  1540. package/mssql-core/columns/float.d.cts +0 -21
  1541. package/mssql-core/columns/float.d.ts +0 -21
  1542. package/mssql-core/columns/float.js +0 -32
  1543. package/mssql-core/columns/float.js.map +0 -1
  1544. package/mssql-core/columns/index.cjs +0 -63
  1545. package/mssql-core/columns/index.cjs.map +0 -1
  1546. package/mssql-core/columns/index.d.cts +0 -21
  1547. package/mssql-core/columns/index.d.ts +0 -21
  1548. package/mssql-core/columns/index.js +0 -22
  1549. package/mssql-core/columns/index.js.map +0 -1
  1550. package/mssql-core/columns/int.cjs +0 -53
  1551. package/mssql-core/columns/int.cjs.map +0 -1
  1552. package/mssql-core/columns/int.d.cts +0 -16
  1553. package/mssql-core/columns/int.d.ts +0 -16
  1554. package/mssql-core/columns/int.js +0 -27
  1555. package/mssql-core/columns/int.js.map +0 -1
  1556. package/mssql-core/columns/numeric.cjs +0 -146
  1557. package/mssql-core/columns/numeric.cjs.map +0 -1
  1558. package/mssql-core/columns/numeric.d.cts +0 -58
  1559. package/mssql-core/columns/numeric.d.ts +0 -58
  1560. package/mssql-core/columns/numeric.js +0 -116
  1561. package/mssql-core/columns/numeric.js.map +0 -1
  1562. package/mssql-core/columns/real.cjs +0 -53
  1563. package/mssql-core/columns/real.cjs.map +0 -1
  1564. package/mssql-core/columns/real.d.cts +0 -16
  1565. package/mssql-core/columns/real.d.ts +0 -16
  1566. package/mssql-core/columns/real.js +0 -27
  1567. package/mssql-core/columns/real.js.map +0 -1
  1568. package/mssql-core/columns/smallint.cjs +0 -62
  1569. package/mssql-core/columns/smallint.cjs.map +0 -1
  1570. package/mssql-core/columns/smallint.d.cts +0 -17
  1571. package/mssql-core/columns/smallint.d.ts +0 -17
  1572. package/mssql-core/columns/smallint.js +0 -36
  1573. package/mssql-core/columns/smallint.js.map +0 -1
  1574. package/mssql-core/columns/text.cjs +0 -68
  1575. package/mssql-core/columns/text.cjs.map +0 -1
  1576. package/mssql-core/columns/text.d.cts +0 -36
  1577. package/mssql-core/columns/text.d.ts +0 -36
  1578. package/mssql-core/columns/text.js +0 -41
  1579. package/mssql-core/columns/text.js.map +0 -1
  1580. package/mssql-core/columns/time.cjs +0 -90
  1581. package/mssql-core/columns/time.cjs.map +0 -1
  1582. package/mssql-core/columns/time.d.cts +0 -37
  1583. package/mssql-core/columns/time.d.ts +0 -37
  1584. package/mssql-core/columns/time.js +0 -62
  1585. package/mssql-core/columns/time.js.map +0 -1
  1586. package/mssql-core/columns/tinyint.cjs +0 -62
  1587. package/mssql-core/columns/tinyint.cjs.map +0 -1
  1588. package/mssql-core/columns/tinyint.d.cts +0 -17
  1589. package/mssql-core/columns/tinyint.d.ts +0 -17
  1590. package/mssql-core/columns/tinyint.js +0 -36
  1591. package/mssql-core/columns/tinyint.js.map +0 -1
  1592. package/mssql-core/columns/varbinary.cjs +0 -61
  1593. package/mssql-core/columns/varbinary.cjs.map +0 -1
  1594. package/mssql-core/columns/varbinary.d.cts +0 -23
  1595. package/mssql-core/columns/varbinary.d.ts +0 -23
  1596. package/mssql-core/columns/varbinary.js +0 -35
  1597. package/mssql-core/columns/varbinary.js.map +0 -1
  1598. package/mssql-core/columns/varchar.cjs +0 -117
  1599. package/mssql-core/columns/varchar.cjs.map +0 -1
  1600. package/mssql-core/columns/varchar.d.cts +0 -59
  1601. package/mssql-core/columns/varchar.d.ts +0 -59
  1602. package/mssql-core/columns/varchar.js +0 -88
  1603. package/mssql-core/columns/varchar.js.map +0 -1
  1604. package/mssql-core/db.cjs +0 -254
  1605. package/mssql-core/db.cjs.map +0 -1
  1606. package/mssql-core/db.d.cts +0 -228
  1607. package/mssql-core/db.d.ts +0 -228
  1608. package/mssql-core/db.js +0 -235
  1609. package/mssql-core/db.js.map +0 -1
  1610. package/mssql-core/dialect.cjs +0 -640
  1611. package/mssql-core/dialect.cjs.map +0 -1
  1612. package/mssql-core/dialect.d.cts +0 -58
  1613. package/mssql-core/dialect.d.ts +0 -58
  1614. package/mssql-core/dialect.js +0 -612
  1615. package/mssql-core/dialect.js.map +0 -1
  1616. package/mssql-core/expressions.cjs +0 -49
  1617. package/mssql-core/expressions.cjs.map +0 -1
  1618. package/mssql-core/expressions.d.cts +0 -8
  1619. package/mssql-core/expressions.d.ts +0 -8
  1620. package/mssql-core/expressions.js +0 -22
  1621. package/mssql-core/expressions.js.map +0 -1
  1622. package/mssql-core/foreign-keys.cjs +0 -94
  1623. package/mssql-core/foreign-keys.cjs.map +0 -1
  1624. package/mssql-core/foreign-keys.d.cts +0 -52
  1625. package/mssql-core/foreign-keys.d.ts +0 -52
  1626. package/mssql-core/foreign-keys.js +0 -68
  1627. package/mssql-core/foreign-keys.js.map +0 -1
  1628. package/mssql-core/index.cjs +0 -55
  1629. package/mssql-core/index.cjs.map +0 -1
  1630. package/mssql-core/index.d.cts +0 -17
  1631. package/mssql-core/index.d.ts +0 -17
  1632. package/mssql-core/index.js +0 -18
  1633. package/mssql-core/index.js.map +0 -1
  1634. package/mssql-core/indexes.cjs +0 -82
  1635. package/mssql-core/indexes.cjs.map +0 -1
  1636. package/mssql-core/indexes.d.cts +0 -50
  1637. package/mssql-core/indexes.d.ts +0 -50
  1638. package/mssql-core/indexes.js +0 -54
  1639. package/mssql-core/indexes.js.map +0 -1
  1640. package/mssql-core/primary-keys.cjs +0 -66
  1641. package/mssql-core/primary-keys.cjs.map +0 -1
  1642. package/mssql-core/primary-keys.d.cts +0 -24
  1643. package/mssql-core/primary-keys.d.ts +0 -24
  1644. package/mssql-core/primary-keys.js +0 -40
  1645. package/mssql-core/primary-keys.js.map +0 -1
  1646. package/mssql-core/query-builders/delete.cjs +0 -107
  1647. package/mssql-core/query-builders/delete.cjs.map +0 -1
  1648. package/mssql-core/query-builders/delete.d.cts +0 -98
  1649. package/mssql-core/query-builders/delete.d.ts +0 -98
  1650. package/mssql-core/query-builders/delete.js +0 -83
  1651. package/mssql-core/query-builders/delete.js.map +0 -1
  1652. package/mssql-core/query-builders/index.cjs +0 -33
  1653. package/mssql-core/query-builders/index.cjs.map +0 -1
  1654. package/mssql-core/query-builders/index.d.cts +0 -6
  1655. package/mssql-core/query-builders/index.d.ts +0 -6
  1656. package/mssql-core/query-builders/index.js +0 -7
  1657. package/mssql-core/query-builders/index.js.map +0 -1
  1658. package/mssql-core/query-builders/insert.cjs +0 -105
  1659. package/mssql-core/query-builders/insert.cjs.map +0 -1
  1660. package/mssql-core/query-builders/insert.d.cts +0 -79
  1661. package/mssql-core/query-builders/insert.d.ts +0 -79
  1662. package/mssql-core/query-builders/insert.js +0 -80
  1663. package/mssql-core/query-builders/insert.js.map +0 -1
  1664. package/mssql-core/query-builders/query-builder.cjs +0 -95
  1665. package/mssql-core/query-builders/query-builder.cjs.map +0 -1
  1666. package/mssql-core/query-builders/query-builder.d.cts +0 -32
  1667. package/mssql-core/query-builders/query-builder.d.ts +0 -32
  1668. package/mssql-core/query-builders/query-builder.js +0 -71
  1669. package/mssql-core/query-builders/query-builder.js.map +0 -1
  1670. package/mssql-core/query-builders/query.cjs +0 -126
  1671. package/mssql-core/query-builders/query.cjs.map +0 -1
  1672. package/mssql-core/query-builders/query.d.cts +0 -42
  1673. package/mssql-core/query-builders/query.d.ts +0 -42
  1674. package/mssql-core/query-builders/query.js +0 -103
  1675. package/mssql-core/query-builders/query.js.map +0 -1
  1676. package/mssql-core/query-builders/select.cjs +0 -678
  1677. package/mssql-core/query-builders/select.cjs.map +0 -1
  1678. package/mssql-core/query-builders/select.d.cts +0 -549
  1679. package/mssql-core/query-builders/select.d.ts +0 -549
  1680. package/mssql-core/query-builders/select.js +0 -654
  1681. package/mssql-core/query-builders/select.js.map +0 -1
  1682. package/mssql-core/query-builders/select.types.cjs +0 -17
  1683. package/mssql-core/query-builders/select.types.cjs.map +0 -1
  1684. package/mssql-core/query-builders/select.types.d.cts +0 -142
  1685. package/mssql-core/query-builders/select.types.d.ts +0 -142
  1686. package/mssql-core/query-builders/select.types.js +0 -1
  1687. package/mssql-core/query-builders/select.types.js.map +0 -1
  1688. package/mssql-core/query-builders/update.cjs +0 -138
  1689. package/mssql-core/query-builders/update.cjs.map +0 -1
  1690. package/mssql-core/query-builders/update.d.cts +0 -142
  1691. package/mssql-core/query-builders/update.d.ts +0 -142
  1692. package/mssql-core/query-builders/update.js +0 -113
  1693. package/mssql-core/query-builders/update.js.map +0 -1
  1694. package/mssql-core/schema.cjs +0 -53
  1695. package/mssql-core/schema.cjs.map +0 -1
  1696. package/mssql-core/schema.d.cts +0 -13
  1697. package/mssql-core/schema.d.ts +0 -13
  1698. package/mssql-core/schema.js +0 -28
  1699. package/mssql-core/schema.js.map +0 -1
  1700. package/mssql-core/session.cjs +0 -74
  1701. package/mssql-core/session.cjs.map +0 -1
  1702. package/mssql-core/session.d.cts +0 -63
  1703. package/mssql-core/session.d.ts +0 -63
  1704. package/mssql-core/session.js +0 -48
  1705. package/mssql-core/session.js.map +0 -1
  1706. package/mssql-core/subquery.cjs +0 -17
  1707. package/mssql-core/subquery.cjs.map +0 -1
  1708. package/mssql-core/subquery.d.cts +0 -18
  1709. package/mssql-core/subquery.d.ts +0 -18
  1710. package/mssql-core/subquery.js +0 -1
  1711. package/mssql-core/subquery.js.map +0 -1
  1712. package/mssql-core/table.cjs +0 -81
  1713. package/mssql-core/table.cjs.map +0 -1
  1714. package/mssql-core/table.d.cts +0 -40
  1715. package/mssql-core/table.d.ts +0 -40
  1716. package/mssql-core/table.js +0 -55
  1717. package/mssql-core/table.js.map +0 -1
  1718. package/mssql-core/unique-constraint.cjs +0 -78
  1719. package/mssql-core/unique-constraint.cjs.map +0 -1
  1720. package/mssql-core/unique-constraint.d.cts +0 -24
  1721. package/mssql-core/unique-constraint.d.ts +0 -24
  1722. package/mssql-core/unique-constraint.js +0 -51
  1723. package/mssql-core/unique-constraint.js.map +0 -1
  1724. package/mssql-core/utils.cjs +0 -85
  1725. package/mssql-core/utils.cjs.map +0 -1
  1726. package/mssql-core/utils.d.cts +0 -31
  1727. package/mssql-core/utils.d.ts +0 -31
  1728. package/mssql-core/utils.js +0 -60
  1729. package/mssql-core/utils.js.map +0 -1
  1730. package/mssql-core/view-base.cjs +0 -33
  1731. package/mssql-core/view-base.cjs.map +0 -1
  1732. package/mssql-core/view-base.d.cts +0 -9
  1733. package/mssql-core/view-base.d.ts +0 -9
  1734. package/mssql-core/view-base.js +0 -9
  1735. package/mssql-core/view-base.js.map +0 -1
  1736. package/mssql-core/view-common.cjs +0 -29
  1737. package/mssql-core/view-common.cjs.map +0 -1
  1738. package/mssql-core/view-common.d.cts +0 -1
  1739. package/mssql-core/view-common.d.ts +0 -1
  1740. package/mssql-core/view-common.js +0 -5
  1741. package/mssql-core/view-common.js.map +0 -1
  1742. package/mssql-core/view.cjs +0 -154
  1743. package/mssql-core/view.cjs.map +0 -1
  1744. package/mssql-core/view.d.cts +0 -63
  1745. package/mssql-core/view.d.ts +0 -63
  1746. package/mssql-core/view.js +0 -125
  1747. package/mssql-core/view.js.map +0 -1
  1748. package/mysql-core/columns/blob.cjs +0 -158
  1749. package/mysql-core/columns/blob.cjs.map +0 -1
  1750. package/mysql-core/columns/blob.d.cts +0 -54
  1751. package/mysql-core/columns/blob.d.ts +0 -54
  1752. package/mysql-core/columns/blob.js +0 -127
  1753. package/mysql-core/columns/blob.js.map +0 -1
  1754. package/mysql-core/columns/string.common.cjs +0 -48
  1755. package/mysql-core/columns/string.common.cjs.map +0 -1
  1756. package/mysql-core/columns/string.common.d.cts +0 -21
  1757. package/mysql-core/columns/string.common.d.ts +0 -21
  1758. package/mysql-core/columns/string.common.js +0 -23
  1759. package/mysql-core/columns/string.common.js.map +0 -1
  1760. package/node-mssql/driver.cjs +0 -113
  1761. package/node-mssql/driver.cjs.map +0 -1
  1762. package/node-mssql/driver.d.cts +0 -46
  1763. package/node-mssql/driver.d.ts +0 -46
  1764. package/node-mssql/driver.js +0 -77
  1765. package/node-mssql/driver.js.map +0 -1
  1766. package/node-mssql/index.cjs +0 -25
  1767. package/node-mssql/index.cjs.map +0 -1
  1768. package/node-mssql/index.d.cts +0 -2
  1769. package/node-mssql/index.d.ts +0 -2
  1770. package/node-mssql/index.js +0 -3
  1771. package/node-mssql/index.js.map +0 -1
  1772. package/node-mssql/migrator.cjs +0 -33
  1773. package/node-mssql/migrator.cjs.map +0 -1
  1774. package/node-mssql/migrator.d.cts +0 -3
  1775. package/node-mssql/migrator.d.ts +0 -3
  1776. package/node-mssql/migrator.js +0 -9
  1777. package/node-mssql/migrator.js.map +0 -1
  1778. package/node-mssql/pool.cjs +0 -54
  1779. package/node-mssql/pool.cjs.map +0 -1
  1780. package/node-mssql/pool.d.cts +0 -8
  1781. package/node-mssql/pool.d.ts +0 -8
  1782. package/node-mssql/pool.js +0 -20
  1783. package/node-mssql/pool.js.map +0 -1
  1784. package/node-mssql/session.cjs +0 -256
  1785. package/node-mssql/session.cjs.map +0 -1
  1786. package/node-mssql/session.d.cts +0 -48
  1787. package/node-mssql/session.d.ts +0 -48
  1788. package/node-mssql/session.js +0 -224
  1789. 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":"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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":"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;AACA,UAAI;AAEJ,iBAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQA,UAAS,GAAG;AACjE,YAAI,WAAW;AACd,gBAAM,cAAc,aAAa,SAAS;AAC1C,sBAAY,UAAU,YAAY,IAAI;AACtC,cAAI,YAAY;AACf,wBAAY,WAAW,KAAK,GAAG,UAAU;AAAA,UAC1C;AAAA,QACD,OAAO;AACN,cAAI,EAAE,UAAU,kBAAkB;AACjC,4BAAgB,MAAM,IAAI;AAAA,cACzB,WAAW,CAAC;AAAA,cACZ;AAAA,YACD;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;","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
  });