drizzle-orm 1.0.0-beta.22-8d8ecb7 → 1.0.0-beta.23

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 (2207) hide show
  1. package/_relations.cjs +1 -1
  2. package/_relations.cjs.map +1 -1
  3. package/_relations.d.cts +13 -2
  4. package/_relations.d.ts +13 -2
  5. package/_relations.js +1 -1
  6. package/_relations.js.map +1 -1
  7. package/alias.cjs +2 -2
  8. package/alias.js +2 -2
  9. package/arktype/column.cjs +1 -1
  10. package/arktype/column.js +1 -1
  11. package/arktype/schema.cjs +1 -1
  12. package/arktype/schema.js +1 -1
  13. package/arktype/schema.types.internal.d.ts +1 -1
  14. package/aws-data-api/common/index.cjs +0 -2
  15. package/aws-data-api/common/index.cjs.map +1 -1
  16. package/aws-data-api/common/index.d.cts +1 -1
  17. package/aws-data-api/common/index.d.ts +1 -1
  18. package/aws-data-api/common/index.js +0 -2
  19. package/aws-data-api/common/index.js.map +1 -1
  20. package/aws-data-api/pg/driver.cjs +21 -127
  21. package/aws-data-api/pg/driver.cjs.map +1 -1
  22. package/aws-data-api/pg/driver.d.cts +13 -17
  23. package/aws-data-api/pg/driver.d.ts +14 -18
  24. package/aws-data-api/pg/driver.js +22 -128
  25. package/aws-data-api/pg/driver.js.map +1 -1
  26. package/aws-data-api/pg/index.cjs +1 -1
  27. package/aws-data-api/pg/index.d.cts +3 -3
  28. package/aws-data-api/pg/index.d.ts +3 -3
  29. package/aws-data-api/pg/index.js +3 -3
  30. package/aws-data-api/pg/migrator.cjs +1 -1
  31. package/aws-data-api/pg/migrator.cjs.map +1 -1
  32. package/aws-data-api/pg/migrator.d.cts +1 -1
  33. package/aws-data-api/pg/migrator.d.ts +1 -1
  34. package/aws-data-api/pg/migrator.js +1 -1
  35. package/aws-data-api/pg/migrator.js.map +1 -1
  36. package/aws-data-api/pg/session.cjs +113 -44
  37. package/aws-data-api/pg/session.cjs.map +1 -1
  38. package/aws-data-api/pg/session.d.cts +43 -13
  39. package/aws-data-api/pg/session.d.ts +43 -13
  40. package/aws-data-api/pg/session.js +114 -46
  41. package/aws-data-api/pg/session.js.map +1 -1
  42. package/better-sqlite3/driver.cjs +3 -6
  43. package/better-sqlite3/driver.cjs.map +1 -1
  44. package/better-sqlite3/driver.d.ts +1 -1
  45. package/better-sqlite3/driver.js +3 -6
  46. package/better-sqlite3/driver.js.map +1 -1
  47. package/better-sqlite3/session.cjs +14 -15
  48. package/better-sqlite3/session.cjs.map +1 -1
  49. package/better-sqlite3/session.d.cts +9 -13
  50. package/better-sqlite3/session.d.ts +13 -17
  51. package/better-sqlite3/session.js +18 -19
  52. package/better-sqlite3/session.js.map +1 -1
  53. package/bun-sql/driver.cjs.map +1 -1
  54. package/bun-sql/driver.d.cts +6 -7
  55. package/bun-sql/driver.d.ts +7 -8
  56. package/bun-sql/driver.js.map +1 -1
  57. package/bun-sql/index.cjs +1 -0
  58. package/bun-sql/index.d.cts +2 -2
  59. package/bun-sql/index.d.ts +2 -2
  60. package/bun-sql/index.js +2 -2
  61. package/bun-sql/migrator.cjs.map +1 -1
  62. package/bun-sql/migrator.d.cts +2 -2
  63. package/bun-sql/migrator.d.ts +2 -2
  64. package/bun-sql/migrator.js.map +1 -1
  65. package/bun-sql/mysql/driver.cjs +4 -5
  66. package/bun-sql/mysql/driver.cjs.map +1 -1
  67. package/bun-sql/mysql/driver.d.ts +1 -1
  68. package/bun-sql/mysql/driver.js +4 -5
  69. package/bun-sql/mysql/driver.js.map +1 -1
  70. package/bun-sql/mysql/session.cjs +24 -37
  71. package/bun-sql/mysql/session.cjs.map +1 -1
  72. package/bun-sql/mysql/session.d.cts +4 -10
  73. package/bun-sql/mysql/session.d.ts +6 -12
  74. package/bun-sql/mysql/session.js +24 -37
  75. package/bun-sql/mysql/session.js.map +1 -1
  76. package/bun-sql/postgres/driver.cjs +18 -166
  77. package/bun-sql/postgres/driver.cjs.map +1 -1
  78. package/bun-sql/postgres/driver.d.cts +6 -10
  79. package/bun-sql/postgres/driver.d.ts +7 -11
  80. package/bun-sql/postgres/driver.js +18 -166
  81. package/bun-sql/postgres/driver.js.map +1 -1
  82. package/bun-sql/postgres/index.cjs +1 -1
  83. package/bun-sql/postgres/index.d.cts +3 -3
  84. package/bun-sql/postgres/index.d.ts +3 -3
  85. package/bun-sql/postgres/index.js +3 -3
  86. package/bun-sql/postgres/migrator.cjs +1 -1
  87. package/bun-sql/postgres/migrator.cjs.map +1 -1
  88. package/bun-sql/postgres/migrator.d.cts +1 -1
  89. package/bun-sql/postgres/migrator.d.ts +1 -1
  90. package/bun-sql/postgres/migrator.js +1 -1
  91. package/bun-sql/postgres/migrator.js.map +1 -1
  92. package/bun-sql/postgres/session.cjs +111 -16
  93. package/bun-sql/postgres/session.cjs.map +1 -1
  94. package/bun-sql/postgres/session.d.cts +34 -11
  95. package/bun-sql/postgres/session.d.ts +34 -11
  96. package/bun-sql/postgres/session.js +111 -17
  97. package/bun-sql/postgres/session.js.map +1 -1
  98. package/bun-sql/session.cjs +1 -0
  99. package/bun-sql/session.d.cts +2 -2
  100. package/bun-sql/session.d.ts +2 -2
  101. package/bun-sql/session.js +2 -2
  102. package/bun-sql/sqlite/driver.cjs +4 -5
  103. package/bun-sql/sqlite/driver.cjs.map +1 -1
  104. package/bun-sql/sqlite/driver.d.ts +2 -2
  105. package/bun-sql/sqlite/driver.js +4 -5
  106. package/bun-sql/sqlite/driver.js.map +1 -1
  107. package/bun-sql/sqlite/session.cjs +17 -18
  108. package/bun-sql/sqlite/session.cjs.map +1 -1
  109. package/bun-sql/sqlite/session.d.cts +9 -12
  110. package/bun-sql/sqlite/session.d.ts +14 -17
  111. package/bun-sql/sqlite/session.js +21 -22
  112. package/bun-sql/sqlite/session.js.map +1 -1
  113. package/bun-sqlite/driver.cjs +3 -6
  114. package/bun-sqlite/driver.cjs.map +1 -1
  115. package/bun-sqlite/driver.d.ts +1 -1
  116. package/bun-sqlite/driver.js +3 -6
  117. package/bun-sqlite/driver.js.map +1 -1
  118. package/bun-sqlite/session.cjs +14 -15
  119. package/bun-sqlite/session.cjs.map +1 -1
  120. package/bun-sqlite/session.d.cts +9 -13
  121. package/bun-sqlite/session.d.ts +12 -16
  122. package/bun-sqlite/session.js +18 -19
  123. package/bun-sqlite/session.js.map +1 -1
  124. package/cache/core/cache-effect.cjs +2 -2
  125. package/cache/core/cache-effect.d.cts +1 -1
  126. package/cache/core/cache-effect.d.ts +2 -2
  127. package/cache/core/cache-effect.js +1 -1
  128. package/cache/upstash/cache.d.cts +1 -1
  129. package/cache/upstash/cache.d.ts +1 -1
  130. package/casing.cjs +38 -5
  131. package/casing.cjs.map +1 -1
  132. package/casing.d.cts +14 -3
  133. package/casing.d.ts +14 -3
  134. package/casing.js +38 -5
  135. package/casing.js.map +1 -1
  136. package/cockroach/driver.cjs +5 -11
  137. package/cockroach/driver.cjs.map +1 -1
  138. package/cockroach/driver.d.cts +0 -1
  139. package/cockroach/driver.d.ts +2 -3
  140. package/cockroach/driver.js +5 -11
  141. package/cockroach/driver.js.map +1 -1
  142. package/cockroach/session.cjs +10 -8
  143. package/cockroach/session.cjs.map +1 -1
  144. package/cockroach/session.d.cts +3 -5
  145. package/cockroach/session.d.ts +5 -7
  146. package/cockroach/session.js +11 -9
  147. package/cockroach/session.js.map +1 -1
  148. package/cockroach-core/columns/bigint.cjs +4 -4
  149. package/cockroach-core/columns/bigint.cjs.map +1 -1
  150. package/cockroach-core/columns/bigint.d.cts +2 -2
  151. package/cockroach-core/columns/bigint.d.ts +2 -2
  152. package/cockroach-core/columns/bigint.js +4 -4
  153. package/cockroach-core/columns/bigint.js.map +1 -1
  154. package/cockroach-core/columns/char.d.ts +1 -1
  155. package/cockroach-core/columns/common.cjs +4 -4
  156. package/cockroach-core/columns/common.cjs.map +1 -1
  157. package/cockroach-core/columns/common.d.cts +4 -4
  158. package/cockroach-core/columns/common.d.ts +6 -6
  159. package/cockroach-core/columns/common.js +4 -4
  160. package/cockroach-core/columns/common.js.map +1 -1
  161. package/cockroach-core/columns/custom.cjs +4 -4
  162. package/cockroach-core/columns/custom.cjs.map +1 -1
  163. package/cockroach-core/columns/custom.d.cts +2 -2
  164. package/cockroach-core/columns/custom.d.ts +3 -3
  165. package/cockroach-core/columns/custom.js +4 -4
  166. package/cockroach-core/columns/custom.js.map +1 -1
  167. package/cockroach-core/columns/date.cjs +6 -6
  168. package/cockroach-core/columns/date.cjs.map +1 -1
  169. package/cockroach-core/columns/date.d.cts +3 -3
  170. package/cockroach-core/columns/date.d.ts +4 -4
  171. package/cockroach-core/columns/date.js +6 -6
  172. package/cockroach-core/columns/date.js.map +1 -1
  173. package/cockroach-core/columns/decimal.cjs +4 -4
  174. package/cockroach-core/columns/decimal.cjs.map +1 -1
  175. package/cockroach-core/columns/decimal.d.cts +2 -2
  176. package/cockroach-core/columns/decimal.d.ts +3 -3
  177. package/cockroach-core/columns/decimal.js +4 -4
  178. package/cockroach-core/columns/decimal.js.map +1 -1
  179. package/cockroach-core/columns/enum.d.ts +1 -1
  180. package/cockroach-core/columns/float.cjs +2 -2
  181. package/cockroach-core/columns/float.cjs.map +1 -1
  182. package/cockroach-core/columns/float.d.cts +1 -1
  183. package/cockroach-core/columns/float.d.ts +1 -1
  184. package/cockroach-core/columns/float.js +2 -2
  185. package/cockroach-core/columns/float.js.map +1 -1
  186. package/cockroach-core/columns/geometry.cjs +8 -8
  187. package/cockroach-core/columns/geometry.cjs.map +1 -1
  188. package/cockroach-core/columns/geometry.d.cts +5 -5
  189. package/cockroach-core/columns/geometry.d.ts +6 -6
  190. package/cockroach-core/columns/geometry.js +8 -8
  191. package/cockroach-core/columns/geometry.js.map +1 -1
  192. package/cockroach-core/columns/integer.cjs +2 -2
  193. package/cockroach-core/columns/integer.cjs.map +1 -1
  194. package/cockroach-core/columns/integer.d.cts +1 -1
  195. package/cockroach-core/columns/integer.d.ts +1 -1
  196. package/cockroach-core/columns/integer.js +2 -2
  197. package/cockroach-core/columns/integer.js.map +1 -1
  198. package/cockroach-core/columns/jsonb.cjs +4 -4
  199. package/cockroach-core/columns/jsonb.cjs.map +1 -1
  200. package/cockroach-core/columns/jsonb.d.cts +2 -2
  201. package/cockroach-core/columns/jsonb.d.ts +2 -2
  202. package/cockroach-core/columns/jsonb.js +4 -4
  203. package/cockroach-core/columns/jsonb.js.map +1 -1
  204. package/cockroach-core/columns/string.d.ts +1 -1
  205. package/cockroach-core/columns/timestamp.d.ts +1 -1
  206. package/cockroach-core/columns/varchar.d.ts +1 -1
  207. package/cockroach-core/columns/vector.cjs +4 -4
  208. package/cockroach-core/columns/vector.cjs.map +1 -1
  209. package/cockroach-core/columns/vector.d.cts +2 -2
  210. package/cockroach-core/columns/vector.d.ts +2 -2
  211. package/cockroach-core/columns/vector.js +4 -4
  212. package/cockroach-core/columns/vector.js.map +1 -1
  213. package/cockroach-core/db.cjs +2 -2
  214. package/cockroach-core/db.cjs.map +1 -1
  215. package/cockroach-core/db.d.ts +3 -3
  216. package/cockroach-core/db.js +2 -2
  217. package/cockroach-core/db.js.map +1 -1
  218. package/cockroach-core/dialect.cjs +15 -9
  219. package/cockroach-core/dialect.cjs.map +1 -1
  220. package/cockroach-core/dialect.d.cts +5 -3
  221. package/cockroach-core/dialect.d.ts +6 -4
  222. package/cockroach-core/dialect.js +15 -9
  223. package/cockroach-core/dialect.js.map +1 -1
  224. package/cockroach-core/index.cjs +11 -17
  225. package/cockroach-core/index.d.cts +3 -4
  226. package/cockroach-core/index.d.ts +3 -4
  227. package/cockroach-core/index.js +14 -15
  228. package/cockroach-core/indexes.cjs.map +1 -1
  229. package/cockroach-core/indexes.js.map +1 -1
  230. package/cockroach-core/query-builders/delete.cjs +3 -7
  231. package/cockroach-core/query-builders/delete.cjs.map +1 -1
  232. package/cockroach-core/query-builders/delete.d.cts +1 -1
  233. package/cockroach-core/query-builders/delete.d.ts +3 -3
  234. package/cockroach-core/query-builders/delete.js +3 -7
  235. package/cockroach-core/query-builders/delete.js.map +1 -1
  236. package/cockroach-core/query-builders/index.cjs +1 -1
  237. package/cockroach-core/query-builders/index.js +1 -1
  238. package/cockroach-core/query-builders/insert.cjs +5 -9
  239. package/cockroach-core/query-builders/insert.cjs.map +1 -1
  240. package/cockroach-core/query-builders/insert.d.ts +2 -2
  241. package/cockroach-core/query-builders/insert.js +5 -9
  242. package/cockroach-core/query-builders/insert.js.map +1 -1
  243. package/cockroach-core/query-builders/query-builder.d.ts +1 -1
  244. package/cockroach-core/query-builders/query.cjs +2 -2
  245. package/cockroach-core/query-builders/query.cjs.map +1 -1
  246. package/cockroach-core/query-builders/query.js +2 -2
  247. package/cockroach-core/query-builders/query.js.map +1 -1
  248. package/cockroach-core/query-builders/raw.cjs +4 -0
  249. package/cockroach-core/query-builders/raw.cjs.map +1 -1
  250. package/cockroach-core/query-builders/raw.js +4 -0
  251. package/cockroach-core/query-builders/raw.js.map +1 -1
  252. package/cockroach-core/query-builders/refresh-materialized-view.cjs +2 -2
  253. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  254. package/cockroach-core/query-builders/refresh-materialized-view.js +2 -2
  255. package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -1
  256. package/cockroach-core/query-builders/select.cjs +5 -9
  257. package/cockroach-core/query-builders/select.cjs.map +1 -1
  258. package/cockroach-core/query-builders/select.d.ts +4 -4
  259. package/cockroach-core/query-builders/select.js +5 -9
  260. package/cockroach-core/query-builders/select.js.map +1 -1
  261. package/cockroach-core/query-builders/select.types.d.ts +2 -2
  262. package/cockroach-core/query-builders/update.cjs +4 -8
  263. package/cockroach-core/query-builders/update.cjs.map +1 -1
  264. package/cockroach-core/query-builders/update.d.ts +3 -3
  265. package/cockroach-core/query-builders/update.js +4 -8
  266. package/cockroach-core/query-builders/update.js.map +1 -1
  267. package/cockroach-core/schema.cjs +8 -10
  268. package/cockroach-core/schema.cjs.map +1 -1
  269. package/cockroach-core/schema.d.cts +1 -3
  270. package/cockroach-core/schema.d.ts +1 -3
  271. package/cockroach-core/schema.js +8 -10
  272. package/cockroach-core/schema.js.map +1 -1
  273. package/cockroach-core/session.cjs +2 -2
  274. package/cockroach-core/session.cjs.map +1 -1
  275. package/cockroach-core/session.d.cts +1 -1
  276. package/cockroach-core/session.d.ts +1 -1
  277. package/cockroach-core/session.js +2 -2
  278. package/cockroach-core/session.js.map +1 -1
  279. package/cockroach-core/subquery.d.ts +1 -1
  280. package/cockroach-core/table.cjs +16 -23
  281. package/cockroach-core/table.cjs.map +1 -1
  282. package/cockroach-core/table.d.cts +2 -3
  283. package/cockroach-core/table.d.ts +2 -3
  284. package/cockroach-core/table.js +17 -23
  285. package/cockroach-core/table.js.map +1 -1
  286. package/cockroach-core/utils.cjs +5 -5
  287. package/cockroach-core/utils.js +5 -5
  288. package/cockroach-core/view.cjs +12 -17
  289. package/cockroach-core/view.cjs.map +1 -1
  290. package/cockroach-core/view.d.cts +7 -15
  291. package/cockroach-core/view.d.ts +7 -15
  292. package/cockroach-core/view.js +14 -17
  293. package/cockroach-core/view.js.map +1 -1
  294. package/column-builder.cjs +2 -2
  295. package/column-builder.cjs.map +1 -1
  296. package/column-builder.d.cts +5 -4
  297. package/column-builder.d.ts +5 -4
  298. package/column-builder.js +2 -2
  299. package/column-builder.js.map +1 -1
  300. package/column.cjs +6 -11
  301. package/column.cjs.map +1 -1
  302. package/column.d.cts +3 -3
  303. package/column.d.ts +3 -3
  304. package/column.js +6 -11
  305. package/column.js.map +1 -1
  306. package/d1/driver.cjs +2 -2
  307. package/d1/driver.cjs.map +1 -1
  308. package/d1/driver.d.cts +1 -1
  309. package/d1/driver.d.ts +2 -2
  310. package/d1/driver.js +2 -2
  311. package/d1/driver.js.map +1 -1
  312. package/d1/session.cjs +11 -9
  313. package/d1/session.cjs.map +1 -1
  314. package/d1/session.d.cts +9 -8
  315. package/d1/session.d.ts +13 -12
  316. package/d1/session.js +14 -12
  317. package/d1/session.js.map +1 -1
  318. package/durable-sqlite/driver.cjs +3 -6
  319. package/durable-sqlite/driver.cjs.map +1 -1
  320. package/durable-sqlite/driver.d.ts +1 -1
  321. package/durable-sqlite/driver.js +3 -6
  322. package/durable-sqlite/driver.js.map +1 -1
  323. package/durable-sqlite/migrator.cjs +1 -1
  324. package/durable-sqlite/migrator.js +1 -1
  325. package/durable-sqlite/session.cjs +14 -15
  326. package/durable-sqlite/session.cjs.map +1 -1
  327. package/durable-sqlite/session.d.cts +9 -13
  328. package/durable-sqlite/session.d.ts +12 -16
  329. package/durable-sqlite/session.js +18 -19
  330. package/durable-sqlite/session.js.map +1 -1
  331. package/effect-core/index.cjs +1 -1
  332. package/effect-core/index.js +1 -1
  333. package/effect-postgres/driver.cjs +15 -132
  334. package/effect-postgres/driver.cjs.map +1 -1
  335. package/effect-postgres/driver.d.cts +8 -12
  336. package/effect-postgres/driver.d.ts +10 -14
  337. package/effect-postgres/driver.js +15 -132
  338. package/effect-postgres/driver.js.map +1 -1
  339. package/effect-postgres/index.cjs +1 -1
  340. package/effect-postgres/index.d.cts +3 -3
  341. package/effect-postgres/index.d.ts +3 -3
  342. package/effect-postgres/index.js +3 -3
  343. package/effect-postgres/migrator.cjs.map +1 -1
  344. package/effect-postgres/migrator.d.cts +1 -1
  345. package/effect-postgres/migrator.d.ts +1 -1
  346. package/effect-postgres/migrator.js.map +1 -1
  347. package/effect-postgres/session.cjs +71 -12
  348. package/effect-postgres/session.cjs.map +1 -1
  349. package/effect-postgres/session.d.cts +32 -15
  350. package/effect-postgres/session.d.ts +35 -18
  351. package/effect-postgres/session.js +71 -13
  352. package/effect-postgres/session.js.map +1 -1
  353. package/effect-schema/column.cjs +1 -1
  354. package/effect-schema/column.d.ts +8 -8
  355. package/effect-schema/column.js +1 -1
  356. package/effect-schema/column.types.d.ts +15 -15
  357. package/effect-schema/schema.cjs +1 -1
  358. package/effect-schema/schema.js +1 -1
  359. package/effect-schema/schema.types.internal.d.ts +8 -8
  360. package/expo-sqlite/driver.cjs +3 -6
  361. package/expo-sqlite/driver.cjs.map +1 -1
  362. package/expo-sqlite/driver.d.ts +1 -1
  363. package/expo-sqlite/driver.js +3 -6
  364. package/expo-sqlite/driver.js.map +1 -1
  365. package/expo-sqlite/index.cjs +1 -1
  366. package/expo-sqlite/index.js +1 -1
  367. package/expo-sqlite/query.cjs +1 -1
  368. package/expo-sqlite/query.js +1 -1
  369. package/expo-sqlite/session.cjs +14 -15
  370. package/expo-sqlite/session.cjs.map +1 -1
  371. package/expo-sqlite/session.d.cts +9 -13
  372. package/expo-sqlite/session.d.ts +12 -16
  373. package/expo-sqlite/session.js +18 -19
  374. package/expo-sqlite/session.js.map +1 -1
  375. package/gel/driver.cjs +76 -0
  376. package/gel/driver.cjs.map +1 -0
  377. package/gel/driver.d.cts +43 -0
  378. package/gel/driver.d.ts +43 -0
  379. package/gel/driver.js +66 -0
  380. package/gel/driver.js.map +1 -0
  381. package/gel/index.cjs +15 -0
  382. package/gel/index.d.cts +3 -0
  383. package/gel/index.d.ts +3 -0
  384. package/gel/index.js +4 -0
  385. package/gel/migrator.cjs +0 -0
  386. package/gel/migrator.d.cts +1 -0
  387. package/gel/migrator.d.ts +1 -0
  388. package/gel/migrator.js +1 -0
  389. package/gel/session.cjs +136 -0
  390. package/gel/session.cjs.map +1 -0
  391. package/gel/session.d.cts +67 -0
  392. package/gel/session.d.ts +67 -0
  393. package/gel/session.js +132 -0
  394. package/gel/session.js.map +1 -0
  395. package/gel-core/alias.cjs +12 -0
  396. package/gel-core/alias.cjs.map +1 -0
  397. package/gel-core/alias.d.cts +9 -0
  398. package/gel-core/alias.d.ts +9 -0
  399. package/gel-core/alias.js +10 -0
  400. package/gel-core/alias.js.map +1 -0
  401. package/gel-core/checks.cjs +36 -0
  402. package/gel-core/checks.cjs.map +1 -0
  403. package/gel-core/checks.d.cts +23 -0
  404. package/gel-core/checks.d.ts +23 -0
  405. package/gel-core/checks.js +32 -0
  406. package/gel-core/checks.js.map +1 -0
  407. package/gel-core/columns/all.cjs +51 -0
  408. package/gel-core/columns/all.cjs.map +1 -0
  409. package/gel-core/columns/all.d.cts +48 -0
  410. package/gel-core/columns/all.d.ts +48 -0
  411. package/gel-core/columns/all.js +50 -0
  412. package/gel-core/columns/all.js.map +1 -0
  413. package/gel-core/columns/bigint.cjs +32 -0
  414. package/gel-core/columns/bigint.cjs.map +1 -0
  415. package/gel-core/columns/bigint.d.cts +22 -0
  416. package/gel-core/columns/bigint.d.ts +22 -0
  417. package/gel-core/columns/bigint.js +28 -0
  418. package/gel-core/columns/bigint.js.map +1 -0
  419. package/gel-core/columns/bigintT.cjs +35 -0
  420. package/gel-core/columns/bigintT.cjs.map +1 -0
  421. package/gel-core/columns/bigintT.d.cts +23 -0
  422. package/gel-core/columns/bigintT.d.ts +23 -0
  423. package/gel-core/columns/bigintT.js +31 -0
  424. package/gel-core/columns/bigintT.js.map +1 -0
  425. package/gel-core/columns/boolean.cjs +31 -0
  426. package/gel-core/columns/boolean.cjs.map +1 -0
  427. package/gel-core/columns/boolean.d.cts +21 -0
  428. package/gel-core/columns/boolean.d.ts +21 -0
  429. package/gel-core/columns/boolean.js +27 -0
  430. package/gel-core/columns/boolean.js.map +1 -0
  431. package/gel-core/columns/bytes.cjs +31 -0
  432. package/gel-core/columns/bytes.cjs.map +1 -0
  433. package/gel-core/columns/bytes.d.cts +21 -0
  434. package/gel-core/columns/bytes.d.ts +21 -0
  435. package/gel-core/columns/bytes.js +27 -0
  436. package/gel-core/columns/bytes.js.map +1 -0
  437. package/gel-core/columns/common.cjs +185 -0
  438. package/gel-core/columns/common.cjs.map +1 -0
  439. package/gel-core/columns/common.d.cts +135 -0
  440. package/gel-core/columns/common.d.ts +135 -0
  441. package/gel-core/columns/common.js +178 -0
  442. package/gel-core/columns/common.js.map +1 -0
  443. package/gel-core/columns/custom.cjs +66 -0
  444. package/gel-core/columns/custom.cjs.map +1 -0
  445. package/gel-core/columns/custom.d.cts +266 -0
  446. package/gel-core/columns/custom.d.ts +266 -0
  447. package/gel-core/columns/custom.js +62 -0
  448. package/gel-core/columns/custom.js.map +1 -0
  449. package/gel-core/columns/date-duration.cjs +31 -0
  450. package/gel-core/columns/date-duration.cjs.map +1 -0
  451. package/gel-core/columns/date-duration.d.cts +22 -0
  452. package/gel-core/columns/date-duration.d.ts +22 -0
  453. package/gel-core/columns/date-duration.js +27 -0
  454. package/gel-core/columns/date-duration.js.map +1 -0
  455. package/gel-core/columns/date.common.cjs +17 -0
  456. package/gel-core/columns/date.common.cjs.map +1 -0
  457. package/gel-core/columns/date.common.d.cts +13 -0
  458. package/gel-core/columns/date.common.d.ts +13 -0
  459. package/gel-core/columns/date.common.js +15 -0
  460. package/gel-core/columns/date.common.js.map +1 -0
  461. package/gel-core/columns/decimal.cjs +34 -0
  462. package/gel-core/columns/decimal.cjs.map +1 -0
  463. package/gel-core/columns/decimal.d.cts +25 -0
  464. package/gel-core/columns/decimal.d.ts +25 -0
  465. package/gel-core/columns/decimal.js +30 -0
  466. package/gel-core/columns/decimal.js.map +1 -0
  467. package/gel-core/columns/double-precision.cjs +35 -0
  468. package/gel-core/columns/double-precision.cjs.map +1 -0
  469. package/gel-core/columns/double-precision.d.cts +22 -0
  470. package/gel-core/columns/double-precision.d.ts +22 -0
  471. package/gel-core/columns/double-precision.js +31 -0
  472. package/gel-core/columns/double-precision.js.map +1 -0
  473. package/gel-core/columns/duration.cjs +31 -0
  474. package/gel-core/columns/duration.cjs.map +1 -0
  475. package/gel-core/columns/duration.d.cts +22 -0
  476. package/gel-core/columns/duration.d.ts +22 -0
  477. package/gel-core/columns/duration.js +27 -0
  478. package/gel-core/columns/duration.js.map +1 -0
  479. package/gel-core/columns/index.cjs +91 -0
  480. package/gel-core/columns/index.d.cts +23 -0
  481. package/gel-core/columns/index.d.ts +23 -0
  482. package/gel-core/columns/index.js +24 -0
  483. package/gel-core/columns/int.common.cjs +39 -0
  484. package/gel-core/columns/int.common.cjs.map +1 -0
  485. package/gel-core/columns/int.common.d.cts +20 -0
  486. package/gel-core/columns/int.common.d.ts +20 -0
  487. package/gel-core/columns/int.common.js +37 -0
  488. package/gel-core/columns/int.common.js.map +1 -0
  489. package/gel-core/columns/integer.cjs +32 -0
  490. package/gel-core/columns/integer.cjs.map +1 -0
  491. package/gel-core/columns/integer.d.cts +22 -0
  492. package/gel-core/columns/integer.d.ts +22 -0
  493. package/gel-core/columns/integer.js +28 -0
  494. package/gel-core/columns/integer.js.map +1 -0
  495. package/gel-core/columns/json.cjs +34 -0
  496. package/gel-core/columns/json.cjs.map +1 -0
  497. package/gel-core/columns/json.d.cts +25 -0
  498. package/gel-core/columns/json.d.ts +25 -0
  499. package/gel-core/columns/json.js +30 -0
  500. package/gel-core/columns/json.js.map +1 -0
  501. package/gel-core/columns/localdate.cjs +32 -0
  502. package/gel-core/columns/localdate.cjs.map +1 -0
  503. package/gel-core/columns/localdate.d.cts +23 -0
  504. package/gel-core/columns/localdate.d.ts +23 -0
  505. package/gel-core/columns/localdate.js +28 -0
  506. package/gel-core/columns/localdate.js.map +1 -0
  507. package/gel-core/columns/localtime.cjs +32 -0
  508. package/gel-core/columns/localtime.cjs.map +1 -0
  509. package/gel-core/columns/localtime.d.cts +23 -0
  510. package/gel-core/columns/localtime.d.ts +23 -0
  511. package/gel-core/columns/localtime.js +28 -0
  512. package/gel-core/columns/localtime.js.map +1 -0
  513. package/gel-core/columns/real.cjs +35 -0
  514. package/gel-core/columns/real.cjs.map +1 -0
  515. package/gel-core/columns/real.d.cts +27 -0
  516. package/gel-core/columns/real.d.ts +27 -0
  517. package/gel-core/columns/real.js +31 -0
  518. package/gel-core/columns/real.js.map +1 -0
  519. package/gel-core/columns/relative-duration.cjs +31 -0
  520. package/gel-core/columns/relative-duration.cjs.map +1 -0
  521. package/gel-core/columns/relative-duration.d.cts +22 -0
  522. package/gel-core/columns/relative-duration.d.ts +22 -0
  523. package/gel-core/columns/relative-duration.js +27 -0
  524. package/gel-core/columns/relative-duration.js.map +1 -0
  525. package/gel-core/columns/smallint.cjs +32 -0
  526. package/gel-core/columns/smallint.cjs.map +1 -0
  527. package/gel-core/columns/smallint.d.cts +22 -0
  528. package/gel-core/columns/smallint.d.ts +22 -0
  529. package/gel-core/columns/smallint.js +28 -0
  530. package/gel-core/columns/smallint.js.map +1 -0
  531. package/gel-core/columns/text.cjs +32 -0
  532. package/gel-core/columns/text.cjs.map +1 -0
  533. package/gel-core/columns/text.d.cts +24 -0
  534. package/gel-core/columns/text.d.ts +24 -0
  535. package/gel-core/columns/text.js +28 -0
  536. package/gel-core/columns/text.js.map +1 -0
  537. package/gel-core/columns/timestamp.cjs +35 -0
  538. package/gel-core/columns/timestamp.cjs.map +1 -0
  539. package/gel-core/columns/timestamp.d.cts +27 -0
  540. package/gel-core/columns/timestamp.d.ts +27 -0
  541. package/gel-core/columns/timestamp.js +31 -0
  542. package/gel-core/columns/timestamp.js.map +1 -0
  543. package/gel-core/columns/timestamptz.cjs +39 -0
  544. package/gel-core/columns/timestamptz.cjs.map +1 -0
  545. package/gel-core/columns/timestamptz.d.cts +27 -0
  546. package/gel-core/columns/timestamptz.d.ts +27 -0
  547. package/gel-core/columns/timestamptz.js +35 -0
  548. package/gel-core/columns/timestamptz.js.map +1 -0
  549. package/gel-core/columns/uuid.cjs +31 -0
  550. package/gel-core/columns/uuid.cjs.map +1 -0
  551. package/gel-core/columns/uuid.d.cts +21 -0
  552. package/gel-core/columns/uuid.d.ts +21 -0
  553. package/gel-core/columns/uuid.js +27 -0
  554. package/gel-core/columns/uuid.js.map +1 -0
  555. package/gel-core/db.cjs +386 -0
  556. package/gel-core/db.cjs.map +1 -0
  557. package/gel-core/db.d.cts +294 -0
  558. package/gel-core/db.d.ts +294 -0
  559. package/gel-core/db.js +383 -0
  560. package/gel-core/db.js.map +1 -0
  561. package/gel-core/dialect.cjs +575 -0
  562. package/gel-core/dialect.cjs.map +1 -0
  563. package/gel-core/dialect.d.cts +154 -0
  564. package/gel-core/dialect.d.ts +154 -0
  565. package/gel-core/dialect.js +572 -0
  566. package/gel-core/dialect.js.map +1 -0
  567. package/gel-core/expressions.cjs +28 -0
  568. package/gel-core/expressions.cjs.map +1 -0
  569. package/gel-core/expressions.d.cts +16 -0
  570. package/gel-core/expressions.d.ts +16 -0
  571. package/gel-core/expressions.js +20 -0
  572. package/gel-core/expressions.js.map +1 -0
  573. package/gel-core/foreign-keys.cjs +83 -0
  574. package/gel-core/foreign-keys.cjs.map +1 -0
  575. package/gel-core/foreign-keys.d.cts +50 -0
  576. package/gel-core/foreign-keys.d.ts +50 -0
  577. package/gel-core/foreign-keys.js +79 -0
  578. package/gel-core/foreign-keys.js.map +1 -0
  579. package/gel-core/index.cjs +189 -0
  580. package/gel-core/index.d.cts +48 -0
  581. package/gel-core/index.d.ts +48 -0
  582. package/gel-core/index.js +47 -0
  583. package/gel-core/indexes.cjs +115 -0
  584. package/gel-core/indexes.cjs.map +1 -0
  585. package/gel-core/indexes.d.cts +81 -0
  586. package/gel-core/indexes.d.ts +81 -0
  587. package/gel-core/indexes.js +109 -0
  588. package/gel-core/indexes.js.map +1 -0
  589. package/gel-core/policies.cjs +37 -0
  590. package/gel-core/policies.cjs.map +1 -0
  591. package/gel-core/policies.d.cts +29 -0
  592. package/gel-core/policies.d.ts +29 -0
  593. package/gel-core/policies.js +34 -0
  594. package/gel-core/policies.js.map +1 -0
  595. package/gel-core/primary-keys.cjs +44 -0
  596. package/gel-core/primary-keys.cjs.map +1 -0
  597. package/gel-core/primary-keys.d.cts +35 -0
  598. package/gel-core/primary-keys.d.ts +35 -0
  599. package/gel-core/primary-keys.js +40 -0
  600. package/gel-core/primary-keys.js.map +1 -0
  601. package/gel-core/query-builders/_query.cjs +95 -0
  602. package/gel-core/query-builders/_query.cjs.map +1 -0
  603. package/gel-core/query-builders/_query.d.cts +51 -0
  604. package/gel-core/query-builders/_query.d.ts +51 -0
  605. package/gel-core/query-builders/_query.js +91 -0
  606. package/gel-core/query-builders/_query.js.map +1 -0
  607. package/gel-core/query-builders/count.cjs +44 -0
  608. package/gel-core/query-builders/count.cjs.map +1 -0
  609. package/gel-core/query-builders/count.d.cts +31 -0
  610. package/gel-core/query-builders/count.d.ts +31 -0
  611. package/gel-core/query-builders/count.js +42 -0
  612. package/gel-core/query-builders/count.js.map +1 -0
  613. package/gel-core/query-builders/delete.cjs +94 -0
  614. package/gel-core/query-builders/delete.cjs.map +1 -0
  615. package/gel-core/query-builders/delete.d.cts +104 -0
  616. package/gel-core/query-builders/delete.d.ts +104 -0
  617. package/gel-core/query-builders/delete.js +92 -0
  618. package/gel-core/query-builders/delete.js.map +1 -0
  619. package/gel-core/query-builders/index.cjs +24 -0
  620. package/gel-core/query-builders/index.d.cts +8 -0
  621. package/gel-core/query-builders/index.d.ts +8 -0
  622. package/gel-core/query-builders/index.js +8 -0
  623. package/gel-core/query-builders/insert.cjs +151 -0
  624. package/gel-core/query-builders/insert.cjs.map +1 -0
  625. package/gel-core/query-builders/insert.d.cts +112 -0
  626. package/gel-core/query-builders/insert.d.ts +112 -0
  627. package/gel-core/query-builders/insert.js +148 -0
  628. package/gel-core/query-builders/insert.js.map +1 -0
  629. package/gel-core/query-builders/query-builder.cjs +92 -0
  630. package/gel-core/query-builders/query-builder.cjs.map +1 -0
  631. package/gel-core/query-builders/query-builder.d.cts +44 -0
  632. package/gel-core/query-builders/query-builder.d.ts +44 -0
  633. package/gel-core/query-builders/query-builder.js +90 -0
  634. package/gel-core/query-builders/query-builder.js.map +1 -0
  635. package/gel-core/query-builders/query.cjs +85 -0
  636. package/gel-core/query-builders/query.cjs.map +1 -0
  637. package/gel-core/query-builders/query.d.cts +47 -0
  638. package/gel-core/query-builders/query.d.ts +47 -0
  639. package/gel-core/query-builders/query.js +82 -0
  640. package/gel-core/query-builders/query.js.map +1 -0
  641. package/gel-core/query-builders/raw.cjs +37 -0
  642. package/gel-core/query-builders/raw.cjs.map +1 -0
  643. package/gel-core/query-builders/raw.d.cts +26 -0
  644. package/gel-core/query-builders/raw.d.ts +26 -0
  645. package/gel-core/query-builders/raw.js +35 -0
  646. package/gel-core/query-builders/raw.js.map +1 -0
  647. package/gel-core/query-builders/refresh-materialized-view.cjs +55 -0
  648. package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  649. package/gel-core/query-builders/refresh-materialized-view.d.cts +32 -0
  650. package/gel-core/query-builders/refresh-materialized-view.d.ts +32 -0
  651. package/gel-core/query-builders/refresh-materialized-view.js +53 -0
  652. package/gel-core/query-builders/refresh-materialized-view.js.map +1 -0
  653. package/gel-core/query-builders/select.cjs +961 -0
  654. package/gel-core/query-builders/select.cjs.map +1 -0
  655. package/gel-core/query-builders/select.d.cts +805 -0
  656. package/gel-core/query-builders/select.d.ts +805 -0
  657. package/gel-core/query-builders/select.js +951 -0
  658. package/gel-core/query-builders/select.js.map +1 -0
  659. package/gel-core/query-builders/select.types.cjs +0 -0
  660. package/gel-core/query-builders/select.types.d.cts +141 -0
  661. package/gel-core/query-builders/select.types.d.ts +141 -0
  662. package/gel-core/query-builders/select.types.js +1 -0
  663. package/gel-core/query-builders/update.cjs +190 -0
  664. package/gel-core/query-builders/update.cjs.map +1 -0
  665. package/gel-core/query-builders/update.d.cts +160 -0
  666. package/gel-core/query-builders/update.d.ts +160 -0
  667. package/gel-core/query-builders/update.js +187 -0
  668. package/gel-core/query-builders/update.js.map +1 -0
  669. package/gel-core/roles.cjs +36 -0
  670. package/gel-core/roles.cjs.map +1 -0
  671. package/gel-core/roles.d.cts +18 -0
  672. package/gel-core/roles.d.ts +18 -0
  673. package/gel-core/roles.js +33 -0
  674. package/gel-core/roles.js.map +1 -0
  675. package/gel-core/schema.cjs +39 -0
  676. package/gel-core/schema.cjs.map +1 -0
  677. package/gel-core/schema.d.cts +20 -0
  678. package/gel-core/schema.d.ts +20 -0
  679. package/gel-core/schema.js +35 -0
  680. package/gel-core/schema.js.map +1 -0
  681. package/gel-core/sequence.cjs +30 -0
  682. package/gel-core/sequence.cjs.map +1 -0
  683. package/gel-core/sequence.d.cts +23 -0
  684. package/gel-core/sequence.d.ts +23 -0
  685. package/gel-core/sequence.js +25 -0
  686. package/gel-core/sequence.js.map +1 -0
  687. package/gel-core/session.cjs +112 -0
  688. package/gel-core/session.cjs.map +1 -0
  689. package/gel-core/session.d.cts +75 -0
  690. package/gel-core/session.d.ts +75 -0
  691. package/gel-core/session.js +108 -0
  692. package/gel-core/session.js.map +1 -0
  693. package/gel-core/subquery.cjs +0 -0
  694. package/gel-core/subquery.d.cts +10 -0
  695. package/gel-core/subquery.d.ts +10 -0
  696. package/gel-core/subquery.js +1 -0
  697. package/gel-core/table.cjs +69 -0
  698. package/gel-core/table.cjs.map +1 -0
  699. package/gel-core/table.d.cts +98 -0
  700. package/gel-core/table.d.ts +98 -0
  701. package/gel-core/table.js +62 -0
  702. package/gel-core/table.js.map +1 -0
  703. package/gel-core/unique-constraint.cjs +65 -0
  704. package/gel-core/unique-constraint.cjs.map +1 -0
  705. package/gel-core/unique-constraint.d.cts +30 -0
  706. package/gel-core/unique-constraint.d.ts +30 -0
  707. package/gel-core/unique-constraint.js +59 -0
  708. package/gel-core/unique-constraint.js.map +1 -0
  709. package/gel-core/utils.cjs +77 -0
  710. package/gel-core/utils.cjs.map +1 -0
  711. package/gel-core/utils.d.cts +59 -0
  712. package/gel-core/utils.d.ts +59 -0
  713. package/gel-core/utils.js +72 -0
  714. package/gel-core/utils.js.map +1 -0
  715. package/gel-core/view-base.cjs +13 -0
  716. package/gel-core/view-base.cjs.map +1 -0
  717. package/gel-core/view-base.d.cts +13 -0
  718. package/gel-core/view-base.d.ts +13 -0
  719. package/gel-core/view-base.js +11 -0
  720. package/gel-core/view-base.js.map +1 -0
  721. package/gel-core/view-common.cjs +10 -0
  722. package/gel-core/view-common.cjs.map +1 -0
  723. package/gel-core/view-common.d.cts +6 -0
  724. package/gel-core/view-common.d.ts +6 -0
  725. package/gel-core/view-common.js +7 -0
  726. package/gel-core/view-common.js.map +1 -0
  727. package/gel-core/view.cjs +230 -0
  728. package/gel-core/view.cjs.map +1 -0
  729. package/gel-core/view.d.cts +159 -0
  730. package/gel-core/view.d.ts +159 -0
  731. package/gel-core/view.js +219 -0
  732. package/gel-core/view.js.map +1 -0
  733. package/index.cjs +7 -14
  734. package/index.d.cts +6 -6
  735. package/index.d.ts +6 -6
  736. package/index.js +10 -10
  737. package/libsql/driver-core.cjs +3 -4
  738. package/libsql/driver-core.cjs.map +1 -1
  739. package/libsql/driver-core.d.ts +1 -1
  740. package/libsql/driver-core.js +3 -4
  741. package/libsql/driver-core.js.map +1 -1
  742. package/libsql/session.cjs +14 -13
  743. package/libsql/session.cjs.map +1 -1
  744. package/libsql/session.d.cts +9 -12
  745. package/libsql/session.d.ts +13 -16
  746. package/libsql/session.js +18 -17
  747. package/libsql/session.js.map +1 -1
  748. package/mssql-core/columns/bigint.cjs +2 -2
  749. package/mssql-core/columns/bigint.cjs.map +1 -1
  750. package/mssql-core/columns/bigint.d.cts +1 -1
  751. package/mssql-core/columns/bigint.d.ts +1 -1
  752. package/mssql-core/columns/bigint.js +2 -2
  753. package/mssql-core/columns/bigint.js.map +1 -1
  754. package/mssql-core/columns/char.d.ts +1 -1
  755. package/mssql-core/columns/common.d.ts +2 -2
  756. package/mssql-core/columns/custom.cjs +4 -4
  757. package/mssql-core/columns/custom.cjs.map +1 -1
  758. package/mssql-core/columns/custom.d.cts +2 -2
  759. package/mssql-core/columns/custom.d.ts +3 -3
  760. package/mssql-core/columns/custom.js +4 -4
  761. package/mssql-core/columns/custom.js.map +1 -1
  762. package/mssql-core/columns/date.cjs +4 -4
  763. package/mssql-core/columns/date.cjs.map +1 -1
  764. package/mssql-core/columns/date.d.cts +2 -2
  765. package/mssql-core/columns/date.d.ts +3 -3
  766. package/mssql-core/columns/date.js +4 -4
  767. package/mssql-core/columns/date.js.map +1 -1
  768. package/mssql-core/columns/datetime.cjs +2 -2
  769. package/mssql-core/columns/datetime.cjs.map +1 -1
  770. package/mssql-core/columns/datetime.d.cts +1 -1
  771. package/mssql-core/columns/datetime.d.ts +2 -2
  772. package/mssql-core/columns/datetime.js +2 -2
  773. package/mssql-core/columns/datetime.js.map +1 -1
  774. package/mssql-core/columns/datetime2.cjs +2 -2
  775. package/mssql-core/columns/datetime2.cjs.map +1 -1
  776. package/mssql-core/columns/datetime2.d.cts +1 -1
  777. package/mssql-core/columns/datetime2.d.ts +2 -2
  778. package/mssql-core/columns/datetime2.js +2 -2
  779. package/mssql-core/columns/datetime2.js.map +1 -1
  780. package/mssql-core/columns/datetimeoffset.cjs +2 -2
  781. package/mssql-core/columns/datetimeoffset.cjs.map +1 -1
  782. package/mssql-core/columns/datetimeoffset.d.cts +1 -1
  783. package/mssql-core/columns/datetimeoffset.d.ts +2 -2
  784. package/mssql-core/columns/datetimeoffset.js +2 -2
  785. package/mssql-core/columns/datetimeoffset.js.map +1 -1
  786. package/mssql-core/columns/decimal.cjs +4 -4
  787. package/mssql-core/columns/decimal.cjs.map +1 -1
  788. package/mssql-core/columns/decimal.d.cts +2 -2
  789. package/mssql-core/columns/decimal.d.ts +3 -3
  790. package/mssql-core/columns/decimal.js +4 -4
  791. package/mssql-core/columns/decimal.js.map +1 -1
  792. package/mssql-core/columns/numeric.cjs +4 -4
  793. package/mssql-core/columns/numeric.cjs.map +1 -1
  794. package/mssql-core/columns/numeric.d.cts +2 -2
  795. package/mssql-core/columns/numeric.d.ts +3 -3
  796. package/mssql-core/columns/numeric.js +4 -4
  797. package/mssql-core/columns/numeric.js.map +1 -1
  798. package/mssql-core/columns/real.cjs +2 -2
  799. package/mssql-core/columns/real.cjs.map +1 -1
  800. package/mssql-core/columns/real.d.cts +1 -1
  801. package/mssql-core/columns/real.d.ts +1 -1
  802. package/mssql-core/columns/real.js +2 -2
  803. package/mssql-core/columns/real.js.map +1 -1
  804. package/mssql-core/columns/smallint.cjs +2 -2
  805. package/mssql-core/columns/smallint.cjs.map +1 -1
  806. package/mssql-core/columns/smallint.d.cts +1 -1
  807. package/mssql-core/columns/smallint.d.ts +1 -1
  808. package/mssql-core/columns/smallint.js +2 -2
  809. package/mssql-core/columns/smallint.js.map +1 -1
  810. package/mssql-core/columns/text.d.ts +1 -1
  811. package/mssql-core/columns/time.cjs +2 -2
  812. package/mssql-core/columns/time.cjs.map +1 -1
  813. package/mssql-core/columns/time.d.cts +1 -1
  814. package/mssql-core/columns/time.d.ts +2 -2
  815. package/mssql-core/columns/time.js +2 -2
  816. package/mssql-core/columns/time.js.map +1 -1
  817. package/mssql-core/columns/tinyint.cjs +2 -2
  818. package/mssql-core/columns/tinyint.cjs.map +1 -1
  819. package/mssql-core/columns/tinyint.d.cts +1 -1
  820. package/mssql-core/columns/tinyint.d.ts +1 -1
  821. package/mssql-core/columns/tinyint.js +2 -2
  822. package/mssql-core/columns/tinyint.js.map +1 -1
  823. package/mssql-core/columns/varchar.cjs +4 -4
  824. package/mssql-core/columns/varchar.cjs.map +1 -1
  825. package/mssql-core/columns/varchar.d.cts +2 -2
  826. package/mssql-core/columns/varchar.d.ts +3 -3
  827. package/mssql-core/columns/varchar.js +4 -4
  828. package/mssql-core/columns/varchar.js.map +1 -1
  829. package/mssql-core/db.cjs +1 -1
  830. package/mssql-core/db.d.ts +1 -1
  831. package/mssql-core/db.js +1 -1
  832. package/mssql-core/dialect.cjs +17 -11
  833. package/mssql-core/dialect.cjs.map +1 -1
  834. package/mssql-core/dialect.d.cts +5 -3
  835. package/mssql-core/dialect.d.ts +5 -3
  836. package/mssql-core/dialect.js +17 -11
  837. package/mssql-core/dialect.js.map +1 -1
  838. package/mssql-core/index.cjs +14 -19
  839. package/mssql-core/index.d.cts +3 -4
  840. package/mssql-core/index.d.ts +3 -4
  841. package/mssql-core/index.js +17 -18
  842. package/mssql-core/query-builders/query-builder.d.ts +2 -2
  843. package/mssql-core/query-builders/select.cjs +2 -6
  844. package/mssql-core/query-builders/select.cjs.map +1 -1
  845. package/mssql-core/query-builders/select.d.ts +2 -2
  846. package/mssql-core/query-builders/select.js +2 -6
  847. package/mssql-core/query-builders/select.js.map +1 -1
  848. package/mssql-core/query-builders/select.types.d.ts +1 -1
  849. package/mssql-core/query-builders/update.d.cts +1 -1
  850. package/mssql-core/query-builders/update.d.ts +2 -2
  851. package/mssql-core/schema.cjs +5 -7
  852. package/mssql-core/schema.cjs.map +1 -1
  853. package/mssql-core/schema.d.cts +1 -3
  854. package/mssql-core/schema.d.ts +1 -3
  855. package/mssql-core/schema.js +5 -7
  856. package/mssql-core/schema.js.map +1 -1
  857. package/mssql-core/subquery.d.ts +1 -1
  858. package/mssql-core/table.cjs +8 -14
  859. package/mssql-core/table.cjs.map +1 -1
  860. package/mssql-core/table.d.cts +4 -6
  861. package/mssql-core/table.d.ts +4 -6
  862. package/mssql-core/table.js +9 -14
  863. package/mssql-core/table.js.map +1 -1
  864. package/mssql-core/utils.cjs +5 -5
  865. package/mssql-core/utils.js +5 -5
  866. package/mssql-core/view.cjs +8 -11
  867. package/mssql-core/view.cjs.map +1 -1
  868. package/mssql-core/view.d.cts +4 -8
  869. package/mssql-core/view.d.ts +4 -8
  870. package/mssql-core/view.js +9 -11
  871. package/mssql-core/view.js.map +1 -1
  872. package/mysql-core/columns/bigint.cjs +8 -8
  873. package/mysql-core/columns/bigint.cjs.map +1 -1
  874. package/mysql-core/columns/bigint.d.cts +4 -4
  875. package/mysql-core/columns/bigint.d.ts +5 -5
  876. package/mysql-core/columns/bigint.js +8 -8
  877. package/mysql-core/columns/bigint.js.map +1 -1
  878. package/mysql-core/columns/binary.cjs +2 -2
  879. package/mysql-core/columns/binary.cjs.map +1 -1
  880. package/mysql-core/columns/binary.d.cts +1 -1
  881. package/mysql-core/columns/binary.d.ts +1 -1
  882. package/mysql-core/columns/binary.js +2 -2
  883. package/mysql-core/columns/binary.js.map +1 -1
  884. package/mysql-core/columns/blob.cjs +4 -4
  885. package/mysql-core/columns/blob.cjs.map +1 -1
  886. package/mysql-core/columns/blob.d.cts +2 -2
  887. package/mysql-core/columns/blob.d.ts +3 -3
  888. package/mysql-core/columns/blob.js +4 -4
  889. package/mysql-core/columns/blob.js.map +1 -1
  890. package/mysql-core/columns/boolean.cjs +2 -2
  891. package/mysql-core/columns/boolean.cjs.map +1 -1
  892. package/mysql-core/columns/boolean.d.cts +1 -1
  893. package/mysql-core/columns/boolean.d.ts +1 -1
  894. package/mysql-core/columns/boolean.js +2 -2
  895. package/mysql-core/columns/boolean.js.map +1 -1
  896. package/mysql-core/columns/char.d.ts +1 -1
  897. package/mysql-core/columns/common.d.ts +1 -1
  898. package/mysql-core/columns/custom.cjs +4 -4
  899. package/mysql-core/columns/custom.cjs.map +1 -1
  900. package/mysql-core/columns/custom.d.cts +2 -2
  901. package/mysql-core/columns/custom.d.ts +3 -3
  902. package/mysql-core/columns/custom.js +4 -4
  903. package/mysql-core/columns/custom.js.map +1 -1
  904. package/mysql-core/columns/date.cjs +4 -4
  905. package/mysql-core/columns/date.cjs.map +1 -1
  906. package/mysql-core/columns/date.d.cts +2 -2
  907. package/mysql-core/columns/date.d.ts +3 -3
  908. package/mysql-core/columns/date.js +4 -4
  909. package/mysql-core/columns/date.js.map +1 -1
  910. package/mysql-core/columns/datetime.cjs +8 -8
  911. package/mysql-core/columns/datetime.cjs.map +1 -1
  912. package/mysql-core/columns/datetime.d.cts +4 -4
  913. package/mysql-core/columns/datetime.d.ts +5 -5
  914. package/mysql-core/columns/datetime.js +8 -8
  915. package/mysql-core/columns/datetime.js.map +1 -1
  916. package/mysql-core/columns/decimal.cjs +4 -4
  917. package/mysql-core/columns/decimal.cjs.map +1 -1
  918. package/mysql-core/columns/decimal.d.cts +2 -2
  919. package/mysql-core/columns/decimal.d.ts +3 -3
  920. package/mysql-core/columns/decimal.js +4 -4
  921. package/mysql-core/columns/decimal.js.map +1 -1
  922. package/mysql-core/columns/double.d.ts +1 -1
  923. package/mysql-core/columns/enum.d.ts +1 -1
  924. package/mysql-core/columns/float.cjs +2 -2
  925. package/mysql-core/columns/float.cjs.map +1 -1
  926. package/mysql-core/columns/float.d.cts +1 -1
  927. package/mysql-core/columns/float.d.ts +2 -2
  928. package/mysql-core/columns/float.js +2 -2
  929. package/mysql-core/columns/float.js.map +1 -1
  930. package/mysql-core/columns/int.cjs +2 -2
  931. package/mysql-core/columns/int.cjs.map +1 -1
  932. package/mysql-core/columns/int.d.cts +1 -1
  933. package/mysql-core/columns/int.d.ts +2 -2
  934. package/mysql-core/columns/int.js +2 -2
  935. package/mysql-core/columns/int.js.map +1 -1
  936. package/mysql-core/columns/json.cjs +2 -2
  937. package/mysql-core/columns/json.cjs.map +1 -1
  938. package/mysql-core/columns/json.d.cts +1 -1
  939. package/mysql-core/columns/json.d.ts +1 -1
  940. package/mysql-core/columns/json.js +2 -2
  941. package/mysql-core/columns/json.js.map +1 -1
  942. package/mysql-core/columns/mediumint.cjs +2 -2
  943. package/mysql-core/columns/mediumint.cjs.map +1 -1
  944. package/mysql-core/columns/mediumint.d.cts +1 -1
  945. package/mysql-core/columns/mediumint.d.ts +2 -2
  946. package/mysql-core/columns/mediumint.js +2 -2
  947. package/mysql-core/columns/mediumint.js.map +1 -1
  948. package/mysql-core/columns/serial.cjs +2 -2
  949. package/mysql-core/columns/serial.cjs.map +1 -1
  950. package/mysql-core/columns/serial.d.cts +1 -1
  951. package/mysql-core/columns/serial.d.ts +1 -1
  952. package/mysql-core/columns/serial.js +2 -2
  953. package/mysql-core/columns/serial.js.map +1 -1
  954. package/mysql-core/columns/smallint.cjs +2 -2
  955. package/mysql-core/columns/smallint.cjs.map +1 -1
  956. package/mysql-core/columns/smallint.d.cts +1 -1
  957. package/mysql-core/columns/smallint.d.ts +2 -2
  958. package/mysql-core/columns/smallint.js +2 -2
  959. package/mysql-core/columns/smallint.js.map +1 -1
  960. package/mysql-core/columns/text.d.ts +1 -1
  961. package/mysql-core/columns/time.cjs +2 -2
  962. package/mysql-core/columns/time.cjs.map +1 -1
  963. package/mysql-core/columns/time.d.cts +1 -1
  964. package/mysql-core/columns/time.d.ts +1 -1
  965. package/mysql-core/columns/time.js +2 -2
  966. package/mysql-core/columns/time.js.map +1 -1
  967. package/mysql-core/columns/timestamp.cjs +8 -8
  968. package/mysql-core/columns/timestamp.cjs.map +1 -1
  969. package/mysql-core/columns/timestamp.d.cts +4 -4
  970. package/mysql-core/columns/timestamp.d.ts +5 -5
  971. package/mysql-core/columns/timestamp.js +8 -8
  972. package/mysql-core/columns/timestamp.js.map +1 -1
  973. package/mysql-core/columns/tinyint.cjs +2 -2
  974. package/mysql-core/columns/tinyint.cjs.map +1 -1
  975. package/mysql-core/columns/tinyint.d.cts +1 -1
  976. package/mysql-core/columns/tinyint.d.ts +2 -2
  977. package/mysql-core/columns/tinyint.js +2 -2
  978. package/mysql-core/columns/tinyint.js.map +1 -1
  979. package/mysql-core/columns/varbinary.cjs +2 -2
  980. package/mysql-core/columns/varbinary.cjs.map +1 -1
  981. package/mysql-core/columns/varbinary.d.cts +1 -1
  982. package/mysql-core/columns/varbinary.d.ts +1 -1
  983. package/mysql-core/columns/varbinary.js +2 -2
  984. package/mysql-core/columns/varbinary.js.map +1 -1
  985. package/mysql-core/columns/varchar.d.ts +1 -1
  986. package/mysql-core/columns/year.cjs +2 -2
  987. package/mysql-core/columns/year.cjs.map +1 -1
  988. package/mysql-core/columns/year.d.cts +1 -1
  989. package/mysql-core/columns/year.d.ts +1 -1
  990. package/mysql-core/columns/year.js +2 -2
  991. package/mysql-core/columns/year.js.map +1 -1
  992. package/mysql-core/db.cjs +1 -1
  993. package/mysql-core/db.d.cts +1 -1
  994. package/mysql-core/db.d.ts +2 -2
  995. package/mysql-core/db.js +1 -1
  996. package/mysql-core/dialect.cjs +20 -15
  997. package/mysql-core/dialect.cjs.map +1 -1
  998. package/mysql-core/dialect.d.cts +2 -1
  999. package/mysql-core/dialect.d.ts +2 -1
  1000. package/mysql-core/dialect.js +20 -15
  1001. package/mysql-core/dialect.js.map +1 -1
  1002. package/mysql-core/index.cjs +6 -11
  1003. package/mysql-core/index.d.cts +2 -3
  1004. package/mysql-core/index.d.ts +2 -3
  1005. package/mysql-core/index.js +9 -10
  1006. package/mysql-core/query-builders/delete.d.ts +1 -1
  1007. package/mysql-core/query-builders/insert.d.cts +1 -1
  1008. package/mysql-core/query-builders/insert.d.ts +1 -1
  1009. package/mysql-core/query-builders/query.cjs +5 -13
  1010. package/mysql-core/query-builders/query.cjs.map +1 -1
  1011. package/mysql-core/query-builders/query.d.ts +1 -1
  1012. package/mysql-core/query-builders/query.js +5 -13
  1013. package/mysql-core/query-builders/query.js.map +1 -1
  1014. package/mysql-core/query-builders/select.cjs +4 -8
  1015. package/mysql-core/query-builders/select.cjs.map +1 -1
  1016. package/mysql-core/query-builders/select.d.cts +1 -1
  1017. package/mysql-core/query-builders/select.d.ts +3 -3
  1018. package/mysql-core/query-builders/select.js +4 -8
  1019. package/mysql-core/query-builders/select.js.map +1 -1
  1020. package/mysql-core/query-builders/select.types.d.ts +2 -2
  1021. package/mysql-core/query-builders/update.d.cts +1 -1
  1022. package/mysql-core/query-builders/update.d.ts +2 -2
  1023. package/mysql-core/schema.cjs +12 -7
  1024. package/mysql-core/schema.cjs.map +1 -1
  1025. package/mysql-core/schema.d.cts +1 -3
  1026. package/mysql-core/schema.d.ts +1 -3
  1027. package/mysql-core/schema.js +12 -7
  1028. package/mysql-core/schema.js.map +1 -1
  1029. package/mysql-core/session.cjs +2 -1
  1030. package/mysql-core/session.cjs.map +1 -1
  1031. package/mysql-core/session.d.cts +4 -3
  1032. package/mysql-core/session.d.ts +4 -3
  1033. package/mysql-core/session.js +2 -1
  1034. package/mysql-core/session.js.map +1 -1
  1035. package/mysql-core/subquery.d.ts +1 -1
  1036. package/mysql-core/table.cjs +8 -13
  1037. package/mysql-core/table.cjs.map +1 -1
  1038. package/mysql-core/table.d.cts +3 -4
  1039. package/mysql-core/table.d.ts +3 -4
  1040. package/mysql-core/table.js +9 -13
  1041. package/mysql-core/table.js.map +1 -1
  1042. package/mysql-core/utils.cjs +5 -5
  1043. package/mysql-core/utils.d.ts +1 -1
  1044. package/mysql-core/utils.js +5 -5
  1045. package/mysql-core/view.cjs +7 -10
  1046. package/mysql-core/view.cjs.map +1 -1
  1047. package/mysql-core/view.d.cts +4 -8
  1048. package/mysql-core/view.d.ts +4 -8
  1049. package/mysql-core/view.js +9 -11
  1050. package/mysql-core/view.js.map +1 -1
  1051. package/mysql-proxy/driver.cjs +3 -6
  1052. package/mysql-proxy/driver.cjs.map +1 -1
  1053. package/mysql-proxy/driver.js +3 -6
  1054. package/mysql-proxy/driver.js.map +1 -1
  1055. package/mysql-proxy/session.cjs +20 -27
  1056. package/mysql-proxy/session.cjs.map +1 -1
  1057. package/mysql-proxy/session.d.cts +4 -11
  1058. package/mysql-proxy/session.d.ts +15 -22
  1059. package/mysql-proxy/session.js +24 -31
  1060. package/mysql-proxy/session.js.map +1 -1
  1061. package/mysql2/driver.cjs +3 -4
  1062. package/mysql2/driver.cjs.map +1 -1
  1063. package/mysql2/driver.d.cts +0 -1
  1064. package/mysql2/driver.d.ts +1 -2
  1065. package/mysql2/driver.js +3 -4
  1066. package/mysql2/driver.js.map +1 -1
  1067. package/mysql2/session.cjs +39 -49
  1068. package/mysql2/session.cjs.map +1 -1
  1069. package/mysql2/session.d.cts +4 -11
  1070. package/mysql2/session.d.ts +5 -12
  1071. package/mysql2/session.js +39 -49
  1072. package/mysql2/session.js.map +1 -1
  1073. package/neon-http/driver.cjs +65 -55
  1074. package/neon-http/driver.cjs.map +1 -1
  1075. package/neon-http/driver.d.cts +25 -14
  1076. package/neon-http/driver.d.ts +25 -14
  1077. package/neon-http/driver.js +64 -55
  1078. package/neon-http/driver.js.map +1 -1
  1079. package/neon-http/index.cjs +4 -2
  1080. package/neon-http/index.d.cts +3 -3
  1081. package/neon-http/index.d.ts +3 -3
  1082. package/neon-http/index.js +3 -3
  1083. package/neon-http/migrator.cjs +1 -1
  1084. package/neon-http/migrator.cjs.map +1 -1
  1085. package/neon-http/migrator.d.cts +1 -1
  1086. package/neon-http/migrator.d.ts +1 -1
  1087. package/neon-http/migrator.js +1 -1
  1088. package/neon-http/migrator.js.map +1 -1
  1089. package/neon-http/session.cjs +116 -27
  1090. package/neon-http/session.cjs.map +1 -1
  1091. package/neon-http/session.d.cts +39 -10
  1092. package/neon-http/session.d.ts +38 -9
  1093. package/neon-http/session.js +116 -29
  1094. package/neon-http/session.js.map +1 -1
  1095. package/neon-serverless/driver.cjs +32 -38
  1096. package/neon-serverless/driver.cjs.map +1 -1
  1097. package/neon-serverless/driver.d.cts +18 -13
  1098. package/neon-serverless/driver.d.ts +18 -13
  1099. package/neon-serverless/driver.js +31 -38
  1100. package/neon-serverless/driver.js.map +1 -1
  1101. package/neon-serverless/index.cjs +3 -2
  1102. package/neon-serverless/index.d.cts +3 -3
  1103. package/neon-serverless/index.d.ts +3 -3
  1104. package/neon-serverless/index.js +3 -3
  1105. package/neon-serverless/migrator.cjs +1 -1
  1106. package/neon-serverless/migrator.cjs.map +1 -1
  1107. package/neon-serverless/migrator.d.cts +1 -1
  1108. package/neon-serverless/migrator.d.ts +1 -1
  1109. package/neon-serverless/migrator.js +1 -1
  1110. package/neon-serverless/migrator.js.map +1 -1
  1111. package/neon-serverless/session.cjs +108 -32
  1112. package/neon-serverless/session.cjs.map +1 -1
  1113. package/neon-serverless/session.d.cts +33 -9
  1114. package/neon-serverless/session.d.ts +33 -9
  1115. package/neon-serverless/session.js +109 -34
  1116. package/neon-serverless/session.js.map +1 -1
  1117. package/netlify-db/driver.cjs +48 -62
  1118. package/netlify-db/driver.cjs.map +1 -1
  1119. package/netlify-db/driver.d.cts +35 -29
  1120. package/netlify-db/driver.d.ts +36 -30
  1121. package/netlify-db/driver.js +47 -61
  1122. package/netlify-db/driver.js.map +1 -1
  1123. package/netlify-db/index.cjs +2 -3
  1124. package/netlify-db/index.d.cts +3 -3
  1125. package/netlify-db/index.d.ts +3 -3
  1126. package/netlify-db/index.js +2 -2
  1127. package/netlify-db/migrator.cjs +1 -1
  1128. package/netlify-db/migrator.cjs.map +1 -1
  1129. package/netlify-db/migrator.d.cts +1 -1
  1130. package/netlify-db/migrator.d.ts +1 -1
  1131. package/netlify-db/migrator.js +1 -1
  1132. package/netlify-db/migrator.js.map +1 -1
  1133. package/netlify-db/session.cjs +39 -60
  1134. package/netlify-db/session.cjs.map +1 -1
  1135. package/netlify-db/session.d.cts +24 -21
  1136. package/netlify-db/session.d.ts +25 -22
  1137. package/netlify-db/session.js +41 -62
  1138. package/netlify-db/session.js.map +1 -1
  1139. package/node-mssql/driver.cjs +5 -11
  1140. package/node-mssql/driver.cjs.map +1 -1
  1141. package/node-mssql/driver.d.cts +0 -1
  1142. package/node-mssql/driver.d.ts +2 -3
  1143. package/node-mssql/driver.js +5 -11
  1144. package/node-mssql/driver.js.map +1 -1
  1145. package/node-mssql/session.cjs +4 -6
  1146. package/node-mssql/session.cjs.map +1 -1
  1147. package/node-mssql/session.d.cts +1 -4
  1148. package/node-mssql/session.d.ts +2 -5
  1149. package/node-mssql/session.js +5 -7
  1150. package/node-mssql/session.js.map +1 -1
  1151. package/node-postgres/driver.cjs +18 -39
  1152. package/node-postgres/driver.cjs.map +1 -1
  1153. package/node-postgres/driver.d.cts +12 -10
  1154. package/node-postgres/driver.d.ts +12 -10
  1155. package/node-postgres/driver.js +18 -39
  1156. package/node-postgres/driver.js.map +1 -1
  1157. package/node-postgres/index.cjs +2 -2
  1158. package/node-postgres/index.d.cts +3 -3
  1159. package/node-postgres/index.d.ts +3 -3
  1160. package/node-postgres/index.js +3 -3
  1161. package/node-postgres/migrator.cjs +1 -1
  1162. package/node-postgres/migrator.cjs.map +1 -1
  1163. package/node-postgres/migrator.d.cts +1 -1
  1164. package/node-postgres/migrator.d.ts +1 -1
  1165. package/node-postgres/migrator.js +1 -1
  1166. package/node-postgres/migrator.js.map +1 -1
  1167. package/node-postgres/session.cjs +125 -32
  1168. package/node-postgres/session.cjs.map +1 -1
  1169. package/node-postgres/session.d.cts +31 -10
  1170. package/node-postgres/session.d.ts +30 -9
  1171. package/node-postgres/session.js +126 -34
  1172. package/node-postgres/session.js.map +1 -1
  1173. package/node-sqlite/driver.cjs +2 -2
  1174. package/node-sqlite/driver.cjs.map +1 -1
  1175. package/node-sqlite/driver.d.ts +1 -1
  1176. package/node-sqlite/driver.js +2 -2
  1177. package/node-sqlite/driver.js.map +1 -1
  1178. package/node-sqlite/session.cjs +9 -4
  1179. package/node-sqlite/session.cjs.map +1 -1
  1180. package/node-sqlite/session.d.cts +8 -7
  1181. package/node-sqlite/session.d.ts +12 -11
  1182. package/node-sqlite/session.js +12 -7
  1183. package/node-sqlite/session.js.map +1 -1
  1184. package/op-sqlite/driver.cjs +3 -4
  1185. package/op-sqlite/driver.cjs.map +1 -1
  1186. package/op-sqlite/driver.d.ts +1 -1
  1187. package/op-sqlite/driver.js +3 -4
  1188. package/op-sqlite/driver.js.map +1 -1
  1189. package/op-sqlite/session.cjs +15 -17
  1190. package/op-sqlite/session.cjs.map +1 -1
  1191. package/op-sqlite/session.d.cts +9 -13
  1192. package/op-sqlite/session.d.ts +13 -17
  1193. package/op-sqlite/session.js +19 -21
  1194. package/op-sqlite/session.js.map +1 -1
  1195. package/operations.d.cts +0 -3
  1196. package/operations.d.ts +0 -3
  1197. package/package.cjs +1 -1
  1198. package/package.js +1 -1
  1199. package/package.json +5070 -4290
  1200. package/pg-core/async/count.cjs +9 -2
  1201. package/pg-core/async/count.cjs.map +1 -1
  1202. package/pg-core/async/count.js +9 -2
  1203. package/pg-core/async/count.js.map +1 -1
  1204. package/pg-core/async/db.cjs +29 -9
  1205. package/pg-core/async/db.cjs.map +1 -1
  1206. package/pg-core/async/db.d.cts +14 -6
  1207. package/pg-core/async/db.d.ts +17 -9
  1208. package/pg-core/async/db.js +29 -9
  1209. package/pg-core/async/db.js.map +1 -1
  1210. package/pg-core/async/delete.cjs +14 -9
  1211. package/pg-core/async/delete.cjs.map +1 -1
  1212. package/pg-core/async/delete.js +14 -9
  1213. package/pg-core/async/delete.js.map +1 -1
  1214. package/pg-core/async/insert.cjs +13 -8
  1215. package/pg-core/async/insert.cjs.map +1 -1
  1216. package/pg-core/async/insert.js +13 -8
  1217. package/pg-core/async/insert.js.map +1 -1
  1218. package/pg-core/async/query.cjs +15 -9
  1219. package/pg-core/async/query.cjs.map +1 -1
  1220. package/pg-core/async/query.js +15 -9
  1221. package/pg-core/async/query.js.map +1 -1
  1222. package/pg-core/async/refresh-materialized-view.cjs +10 -2
  1223. package/pg-core/async/refresh-materialized-view.cjs.map +1 -1
  1224. package/pg-core/async/refresh-materialized-view.js +10 -2
  1225. package/pg-core/async/refresh-materialized-view.js.map +1 -1
  1226. package/pg-core/async/select.cjs +14 -5
  1227. package/pg-core/async/select.cjs.map +1 -1
  1228. package/pg-core/async/select.js +14 -5
  1229. package/pg-core/async/select.js.map +1 -1
  1230. package/pg-core/async/session.cjs +23 -47
  1231. package/pg-core/async/session.cjs.map +1 -1
  1232. package/pg-core/async/session.d.cts +32 -26
  1233. package/pg-core/async/session.d.ts +32 -26
  1234. package/pg-core/async/session.js +24 -48
  1235. package/pg-core/async/session.js.map +1 -1
  1236. package/pg-core/async/update.cjs +15 -11
  1237. package/pg-core/async/update.cjs.map +1 -1
  1238. package/pg-core/async/update.d.ts +1 -1
  1239. package/pg-core/async/update.js +15 -11
  1240. package/pg-core/async/update.js.map +1 -1
  1241. package/pg-core/columns/bigint.cjs +9 -10
  1242. package/pg-core/columns/bigint.cjs.map +1 -1
  1243. package/pg-core/columns/bigint.d.cts +3 -2
  1244. package/pg-core/columns/bigint.d.ts +3 -2
  1245. package/pg-core/columns/bigint.js +9 -10
  1246. package/pg-core/columns/bigint.js.map +1 -1
  1247. package/pg-core/columns/bigserial.cjs +6 -6
  1248. package/pg-core/columns/bigserial.cjs.map +1 -1
  1249. package/pg-core/columns/bigserial.d.cts +2 -1
  1250. package/pg-core/columns/bigserial.d.ts +2 -1
  1251. package/pg-core/columns/bigserial.js +6 -6
  1252. package/pg-core/columns/bigserial.js.map +1 -1
  1253. package/pg-core/columns/boolean.cjs +0 -2
  1254. package/pg-core/columns/boolean.cjs.map +1 -1
  1255. package/pg-core/columns/boolean.js +0 -2
  1256. package/pg-core/columns/boolean.js.map +1 -1
  1257. package/pg-core/columns/bytea.cjs +8 -2
  1258. package/pg-core/columns/bytea.cjs.map +1 -1
  1259. package/pg-core/columns/bytea.d.cts +1 -0
  1260. package/pg-core/columns/bytea.d.ts +1 -0
  1261. package/pg-core/columns/bytea.js +8 -2
  1262. package/pg-core/columns/bytea.js.map +1 -1
  1263. package/pg-core/columns/char.cjs +0 -2
  1264. package/pg-core/columns/char.cjs.map +1 -1
  1265. package/pg-core/columns/char.js +0 -2
  1266. package/pg-core/columns/char.js.map +1 -1
  1267. package/pg-core/columns/cidr.cjs +0 -2
  1268. package/pg-core/columns/cidr.cjs.map +1 -1
  1269. package/pg-core/columns/cidr.js +0 -2
  1270. package/pg-core/columns/cidr.js.map +1 -1
  1271. package/pg-core/columns/common.cjs +10 -12
  1272. package/pg-core/columns/common.cjs.map +1 -1
  1273. package/pg-core/columns/common.d.cts +41 -36
  1274. package/pg-core/columns/common.d.ts +42 -37
  1275. package/pg-core/columns/common.js +10 -12
  1276. package/pg-core/columns/common.js.map +1 -1
  1277. package/pg-core/columns/custom.cjs +46 -16
  1278. package/pg-core/columns/custom.cjs.map +1 -1
  1279. package/pg-core/columns/custom.d.cts +8 -17
  1280. package/pg-core/columns/custom.d.ts +8 -17
  1281. package/pg-core/columns/custom.js +46 -16
  1282. package/pg-core/columns/custom.js.map +1 -1
  1283. package/pg-core/columns/date.cjs +12 -11
  1284. package/pg-core/columns/date.cjs.map +1 -1
  1285. package/pg-core/columns/date.d.cts +4 -3
  1286. package/pg-core/columns/date.d.ts +4 -3
  1287. package/pg-core/columns/date.js +12 -11
  1288. package/pg-core/columns/date.js.map +1 -1
  1289. package/pg-core/columns/double-precision.cjs +4 -2
  1290. package/pg-core/columns/double-precision.cjs.map +1 -1
  1291. package/pg-core/columns/double-precision.d.cts +1 -0
  1292. package/pg-core/columns/double-precision.d.ts +1 -0
  1293. package/pg-core/columns/double-precision.js +4 -2
  1294. package/pg-core/columns/double-precision.js.map +1 -1
  1295. package/pg-core/columns/enum.cjs +0 -4
  1296. package/pg-core/columns/enum.cjs.map +1 -1
  1297. package/pg-core/columns/enum.js +0 -4
  1298. package/pg-core/columns/enum.js.map +1 -1
  1299. package/pg-core/columns/index.d.cts +2 -2
  1300. package/pg-core/columns/index.d.ts +2 -2
  1301. package/pg-core/columns/inet.cjs +0 -2
  1302. package/pg-core/columns/inet.cjs.map +1 -1
  1303. package/pg-core/columns/inet.js +0 -2
  1304. package/pg-core/columns/inet.js.map +1 -1
  1305. package/pg-core/columns/integer.cjs +4 -2
  1306. package/pg-core/columns/integer.cjs.map +1 -1
  1307. package/pg-core/columns/integer.d.cts +1 -0
  1308. package/pg-core/columns/integer.d.ts +1 -0
  1309. package/pg-core/columns/integer.js +4 -2
  1310. package/pg-core/columns/integer.js.map +1 -1
  1311. package/pg-core/columns/interval.cjs +0 -2
  1312. package/pg-core/columns/interval.cjs.map +1 -1
  1313. package/pg-core/columns/interval.js +0 -2
  1314. package/pg-core/columns/interval.js.map +1 -1
  1315. package/pg-core/columns/json.cjs +11 -2
  1316. package/pg-core/columns/json.cjs.map +1 -1
  1317. package/pg-core/columns/json.d.cts +2 -0
  1318. package/pg-core/columns/json.d.ts +2 -0
  1319. package/pg-core/columns/json.js +11 -2
  1320. package/pg-core/columns/json.js.map +1 -1
  1321. package/pg-core/columns/jsonb.cjs +11 -2
  1322. package/pg-core/columns/jsonb.cjs.map +1 -1
  1323. package/pg-core/columns/jsonb.d.cts +2 -0
  1324. package/pg-core/columns/jsonb.d.ts +2 -0
  1325. package/pg-core/columns/jsonb.js +11 -2
  1326. package/pg-core/columns/jsonb.js.map +1 -1
  1327. package/pg-core/columns/line.cjs +8 -12
  1328. package/pg-core/columns/line.cjs.map +1 -1
  1329. package/pg-core/columns/line.d.cts +5 -5
  1330. package/pg-core/columns/line.d.ts +5 -5
  1331. package/pg-core/columns/line.js +8 -12
  1332. package/pg-core/columns/line.js.map +1 -1
  1333. package/pg-core/columns/macaddr.cjs +0 -2
  1334. package/pg-core/columns/macaddr.cjs.map +1 -1
  1335. package/pg-core/columns/macaddr.js +0 -2
  1336. package/pg-core/columns/macaddr.js.map +1 -1
  1337. package/pg-core/columns/macaddr8.cjs +0 -2
  1338. package/pg-core/columns/macaddr8.cjs.map +1 -1
  1339. package/pg-core/columns/macaddr8.js +0 -2
  1340. package/pg-core/columns/macaddr8.js.map +1 -1
  1341. package/pg-core/columns/numeric.cjs +15 -12
  1342. package/pg-core/columns/numeric.cjs.map +1 -1
  1343. package/pg-core/columns/numeric.d.cts +5 -4
  1344. package/pg-core/columns/numeric.d.ts +5 -4
  1345. package/pg-core/columns/numeric.js +15 -12
  1346. package/pg-core/columns/numeric.js.map +1 -1
  1347. package/pg-core/columns/point.cjs +21 -19
  1348. package/pg-core/columns/point.cjs.map +1 -1
  1349. package/pg-core/columns/point.d.cts +11 -5
  1350. package/pg-core/columns/point.d.ts +11 -5
  1351. package/pg-core/columns/point.js +21 -19
  1352. package/pg-core/columns/point.js.map +1 -1
  1353. package/pg-core/columns/postgis_extension/geometry.cjs +9 -12
  1354. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  1355. package/pg-core/columns/postgis_extension/geometry.d.cts +5 -5
  1356. package/pg-core/columns/postgis_extension/geometry.d.ts +5 -5
  1357. package/pg-core/columns/postgis_extension/geometry.js +9 -12
  1358. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  1359. package/pg-core/columns/real.cjs +4 -2
  1360. package/pg-core/columns/real.cjs.map +1 -1
  1361. package/pg-core/columns/real.d.cts +1 -0
  1362. package/pg-core/columns/real.d.ts +1 -0
  1363. package/pg-core/columns/real.js +4 -2
  1364. package/pg-core/columns/real.js.map +1 -1
  1365. package/pg-core/columns/serial.cjs +0 -2
  1366. package/pg-core/columns/serial.cjs.map +1 -1
  1367. package/pg-core/columns/serial.js +0 -2
  1368. package/pg-core/columns/serial.js.map +1 -1
  1369. package/pg-core/columns/smallint.cjs +4 -2
  1370. package/pg-core/columns/smallint.cjs.map +1 -1
  1371. package/pg-core/columns/smallint.d.cts +1 -0
  1372. package/pg-core/columns/smallint.d.ts +1 -0
  1373. package/pg-core/columns/smallint.js +4 -2
  1374. package/pg-core/columns/smallint.js.map +1 -1
  1375. package/pg-core/columns/smallserial.cjs +0 -2
  1376. package/pg-core/columns/smallserial.cjs.map +1 -1
  1377. package/pg-core/columns/smallserial.js +0 -2
  1378. package/pg-core/columns/smallserial.js.map +1 -1
  1379. package/pg-core/columns/text.cjs +0 -2
  1380. package/pg-core/columns/text.cjs.map +1 -1
  1381. package/pg-core/columns/text.js +0 -2
  1382. package/pg-core/columns/text.js.map +1 -1
  1383. package/pg-core/columns/time.cjs +0 -2
  1384. package/pg-core/columns/time.cjs.map +1 -1
  1385. package/pg-core/columns/time.js +0 -2
  1386. package/pg-core/columns/time.js.map +1 -1
  1387. package/pg-core/columns/timestamp.cjs +14 -13
  1388. package/pg-core/columns/timestamp.cjs.map +1 -1
  1389. package/pg-core/columns/timestamp.d.cts +4 -3
  1390. package/pg-core/columns/timestamp.d.ts +4 -3
  1391. package/pg-core/columns/timestamp.js +14 -13
  1392. package/pg-core/columns/timestamp.js.map +1 -1
  1393. package/pg-core/columns/uuid.cjs +0 -2
  1394. package/pg-core/columns/uuid.cjs.map +1 -1
  1395. package/pg-core/columns/uuid.js +0 -2
  1396. package/pg-core/columns/uuid.js.map +1 -1
  1397. package/pg-core/columns/varchar.cjs +0 -2
  1398. package/pg-core/columns/varchar.cjs.map +1 -1
  1399. package/pg-core/columns/varchar.js +0 -2
  1400. package/pg-core/columns/varchar.js.map +1 -1
  1401. package/pg-core/columns/vector_extension/bit.cjs +0 -2
  1402. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  1403. package/pg-core/columns/vector_extension/bit.js +0 -2
  1404. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  1405. package/pg-core/columns/vector_extension/halfvec.cjs +4 -6
  1406. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  1407. package/pg-core/columns/vector_extension/halfvec.d.cts +2 -2
  1408. package/pg-core/columns/vector_extension/halfvec.d.ts +2 -2
  1409. package/pg-core/columns/vector_extension/halfvec.js +4 -6
  1410. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  1411. package/pg-core/columns/vector_extension/sparsevec.cjs +0 -2
  1412. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  1413. package/pg-core/columns/vector_extension/sparsevec.js +0 -2
  1414. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  1415. package/pg-core/columns/vector_extension/vector.cjs +4 -6
  1416. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  1417. package/pg-core/columns/vector_extension/vector.d.cts +2 -2
  1418. package/pg-core/columns/vector_extension/vector.d.ts +2 -2
  1419. package/pg-core/columns/vector_extension/vector.js +4 -6
  1420. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  1421. package/pg-core/dialect.cjs +240 -83
  1422. package/pg-core/dialect.cjs.map +1 -1
  1423. package/pg-core/dialect.d.cts +34 -24
  1424. package/pg-core/dialect.d.ts +35 -25
  1425. package/pg-core/dialect.js +242 -86
  1426. package/pg-core/dialect.js.map +1 -1
  1427. package/pg-core/effect/count.cjs +1 -1
  1428. package/pg-core/effect/count.cjs.map +1 -1
  1429. package/pg-core/effect/count.d.cts +2 -2
  1430. package/pg-core/effect/count.d.ts +2 -2
  1431. package/pg-core/effect/count.js +1 -1
  1432. package/pg-core/effect/count.js.map +1 -1
  1433. package/pg-core/effect/db.cjs +23 -14
  1434. package/pg-core/effect/db.cjs.map +1 -1
  1435. package/pg-core/effect/db.d.cts +11 -7
  1436. package/pg-core/effect/db.d.ts +14 -10
  1437. package/pg-core/effect/db.js +23 -14
  1438. package/pg-core/effect/db.js.map +1 -1
  1439. package/pg-core/effect/delete.cjs +6 -8
  1440. package/pg-core/effect/delete.cjs.map +1 -1
  1441. package/pg-core/effect/delete.d.cts +1 -1
  1442. package/pg-core/effect/delete.d.ts +1 -1
  1443. package/pg-core/effect/delete.js +6 -8
  1444. package/pg-core/effect/delete.js.map +1 -1
  1445. package/pg-core/effect/index.cjs +6 -6
  1446. package/pg-core/effect/index.js +6 -6
  1447. package/pg-core/effect/insert.cjs +5 -7
  1448. package/pg-core/effect/insert.cjs.map +1 -1
  1449. package/pg-core/effect/insert.d.cts +1 -1
  1450. package/pg-core/effect/insert.d.ts +1 -1
  1451. package/pg-core/effect/insert.js +5 -7
  1452. package/pg-core/effect/insert.js.map +1 -1
  1453. package/pg-core/effect/query.cjs +6 -7
  1454. package/pg-core/effect/query.cjs.map +1 -1
  1455. package/pg-core/effect/query.d.cts +1 -1
  1456. package/pg-core/effect/query.d.ts +1 -1
  1457. package/pg-core/effect/query.js +6 -7
  1458. package/pg-core/effect/query.js.map +1 -1
  1459. package/pg-core/effect/refresh-materialized-view.cjs +2 -1
  1460. package/pg-core/effect/refresh-materialized-view.cjs.map +1 -1
  1461. package/pg-core/effect/refresh-materialized-view.d.cts +1 -1
  1462. package/pg-core/effect/refresh-materialized-view.d.ts +1 -1
  1463. package/pg-core/effect/refresh-materialized-view.js +2 -1
  1464. package/pg-core/effect/refresh-materialized-view.js.map +1 -1
  1465. package/pg-core/effect/select.cjs +5 -3
  1466. package/pg-core/effect/select.cjs.map +1 -1
  1467. package/pg-core/effect/select.d.cts +1 -1
  1468. package/pg-core/effect/select.d.ts +1 -1
  1469. package/pg-core/effect/select.js +5 -3
  1470. package/pg-core/effect/select.js.map +1 -1
  1471. package/pg-core/effect/session.cjs +17 -28
  1472. package/pg-core/effect/session.cjs.map +1 -1
  1473. package/pg-core/effect/session.d.cts +29 -25
  1474. package/pg-core/effect/session.d.ts +29 -25
  1475. package/pg-core/effect/session.js +18 -29
  1476. package/pg-core/effect/session.js.map +1 -1
  1477. package/pg-core/effect/update.cjs +8 -8
  1478. package/pg-core/effect/update.cjs.map +1 -1
  1479. package/pg-core/effect/update.d.cts +1 -1
  1480. package/pg-core/effect/update.d.ts +2 -2
  1481. package/pg-core/effect/update.js +8 -8
  1482. package/pg-core/effect/update.js.map +1 -1
  1483. package/pg-core/index.cjs +12 -18
  1484. package/pg-core/index.d.cts +5 -6
  1485. package/pg-core/index.d.ts +5 -6
  1486. package/pg-core/index.js +12 -13
  1487. package/pg-core/indexes.cjs.map +1 -1
  1488. package/pg-core/indexes.js.map +1 -1
  1489. package/pg-core/query-builders/_query.cjs +101 -0
  1490. package/pg-core/query-builders/_query.cjs.map +1 -0
  1491. package/pg-core/query-builders/_query.d.cts +55 -0
  1492. package/pg-core/query-builders/_query.d.ts +55 -0
  1493. package/pg-core/query-builders/_query.js +97 -0
  1494. package/pg-core/query-builders/_query.js.map +1 -0
  1495. package/pg-core/query-builders/delete.cjs +2 -6
  1496. package/pg-core/query-builders/delete.cjs.map +1 -1
  1497. package/pg-core/query-builders/delete.d.cts +0 -2
  1498. package/pg-core/query-builders/delete.d.ts +2 -4
  1499. package/pg-core/query-builders/delete.js +2 -6
  1500. package/pg-core/query-builders/delete.js.map +1 -1
  1501. package/pg-core/query-builders/insert.cjs +4 -9
  1502. package/pg-core/query-builders/insert.cjs.map +1 -1
  1503. package/pg-core/query-builders/insert.d.cts +0 -2
  1504. package/pg-core/query-builders/insert.d.ts +2 -4
  1505. package/pg-core/query-builders/insert.js +4 -9
  1506. package/pg-core/query-builders/insert.js.map +1 -1
  1507. package/pg-core/query-builders/query-builder.cjs +2 -3
  1508. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  1509. package/pg-core/query-builders/query-builder.d.ts +1 -1
  1510. package/pg-core/query-builders/query-builder.js +2 -3
  1511. package/pg-core/query-builders/query-builder.js.map +1 -1
  1512. package/pg-core/query-builders/query.cjs +1 -0
  1513. package/pg-core/query-builders/query.cjs.map +1 -1
  1514. package/pg-core/query-builders/query.d.cts +1 -2
  1515. package/pg-core/query-builders/query.d.ts +1 -2
  1516. package/pg-core/query-builders/query.js +1 -0
  1517. package/pg-core/query-builders/query.js.map +1 -1
  1518. package/pg-core/query-builders/raw.cjs +4 -0
  1519. package/pg-core/query-builders/raw.cjs.map +1 -1
  1520. package/pg-core/query-builders/raw.js +4 -0
  1521. package/pg-core/query-builders/raw.js.map +1 -1
  1522. package/pg-core/query-builders/select.cjs +4 -8
  1523. package/pg-core/query-builders/select.cjs.map +1 -1
  1524. package/pg-core/query-builders/select.d.cts +0 -1
  1525. package/pg-core/query-builders/select.d.ts +3 -4
  1526. package/pg-core/query-builders/select.js +4 -8
  1527. package/pg-core/query-builders/select.js.map +1 -1
  1528. package/pg-core/query-builders/select.types.d.cts +0 -1
  1529. package/pg-core/query-builders/select.types.d.ts +2 -3
  1530. package/pg-core/query-builders/update.cjs +4 -8
  1531. package/pg-core/query-builders/update.cjs.map +1 -1
  1532. package/pg-core/query-builders/update.d.cts +0 -2
  1533. package/pg-core/query-builders/update.d.ts +3 -5
  1534. package/pg-core/query-builders/update.js +4 -8
  1535. package/pg-core/query-builders/update.js.map +1 -1
  1536. package/pg-core/schema.cjs +8 -10
  1537. package/pg-core/schema.cjs.map +1 -1
  1538. package/pg-core/schema.d.cts +1 -3
  1539. package/pg-core/schema.d.ts +1 -3
  1540. package/pg-core/schema.js +8 -10
  1541. package/pg-core/schema.js.map +1 -1
  1542. package/pg-core/session.cjs +5 -3
  1543. package/pg-core/session.cjs.map +1 -1
  1544. package/pg-core/session.d.cts +7 -4
  1545. package/pg-core/session.d.ts +7 -4
  1546. package/pg-core/session.js +5 -3
  1547. package/pg-core/session.js.map +1 -1
  1548. package/pg-core/subquery.d.ts +1 -1
  1549. package/pg-core/table.cjs +16 -23
  1550. package/pg-core/table.cjs.map +1 -1
  1551. package/pg-core/table.d.cts +2 -3
  1552. package/pg-core/table.d.ts +2 -3
  1553. package/pg-core/table.js +17 -23
  1554. package/pg-core/table.js.map +1 -1
  1555. package/pg-core/{array.cjs → utils/array.cjs} +1 -1
  1556. package/pg-core/utils/array.cjs.map +1 -0
  1557. package/pg-core/{array.d.cts → utils/array.d.cts} +1 -1
  1558. package/pg-core/{array.d.ts → utils/array.d.ts} +1 -1
  1559. package/pg-core/{array.js → utils/array.js} +1 -1
  1560. package/pg-core/utils/array.js.map +1 -0
  1561. package/pg-core/utils/index.cjs +6 -0
  1562. package/pg-core/utils/index.d.cts +2 -0
  1563. package/pg-core/utils/index.d.ts +2 -0
  1564. package/pg-core/utils/index.js +3 -0
  1565. package/pg-core/utils.cjs +4 -4
  1566. package/pg-core/utils.cjs.map +1 -1
  1567. package/pg-core/utils.d.cts +1 -7
  1568. package/pg-core/utils.d.ts +2 -8
  1569. package/pg-core/utils.js +4 -4
  1570. package/pg-core/utils.js.map +1 -1
  1571. package/pg-core/view.cjs +14 -20
  1572. package/pg-core/view.cjs.map +1 -1
  1573. package/pg-core/view.d.cts +7 -14
  1574. package/pg-core/view.d.ts +7 -14
  1575. package/pg-core/view.js +16 -20
  1576. package/pg-core/view.js.map +1 -1
  1577. package/pg-proxy/driver.cjs +15 -9
  1578. package/pg-proxy/driver.cjs.map +1 -1
  1579. package/pg-proxy/driver.d.cts +3 -6
  1580. package/pg-proxy/driver.d.ts +4 -7
  1581. package/pg-proxy/driver.js +14 -9
  1582. package/pg-proxy/driver.js.map +1 -1
  1583. package/pg-proxy/index.cjs +2 -0
  1584. package/pg-proxy/index.d.cts +2 -2
  1585. package/pg-proxy/index.d.ts +2 -2
  1586. package/pg-proxy/index.js +2 -2
  1587. package/pg-proxy/migrator.cjs.map +1 -1
  1588. package/pg-proxy/migrator.d.cts +1 -1
  1589. package/pg-proxy/migrator.d.ts +1 -1
  1590. package/pg-proxy/migrator.js.map +1 -1
  1591. package/pg-proxy/session.cjs +84 -8
  1592. package/pg-proxy/session.cjs.map +1 -1
  1593. package/pg-proxy/session.d.cts +33 -10
  1594. package/pg-proxy/session.d.ts +33 -10
  1595. package/pg-proxy/session.js +84 -10
  1596. package/pg-proxy/session.js.map +1 -1
  1597. package/pglite/driver.cjs +33 -57
  1598. package/pglite/driver.cjs.map +1 -1
  1599. package/pglite/driver.d.cts +23 -11
  1600. package/pglite/driver.d.ts +23 -11
  1601. package/pglite/driver.js +32 -57
  1602. package/pglite/driver.js.map +1 -1
  1603. package/pglite/index.cjs +3 -2
  1604. package/pglite/index.d.cts +3 -3
  1605. package/pglite/index.d.ts +3 -3
  1606. package/pglite/index.js +3 -3
  1607. package/pglite/migrator.cjs +1 -1
  1608. package/pglite/migrator.cjs.map +1 -1
  1609. package/pglite/migrator.d.cts +1 -1
  1610. package/pglite/migrator.d.ts +1 -1
  1611. package/pglite/migrator.js +1 -1
  1612. package/pglite/migrator.js.map +1 -1
  1613. package/pglite/session.cjs +86 -25
  1614. package/pglite/session.cjs.map +1 -1
  1615. package/pglite/session.d.cts +31 -9
  1616. package/pglite/session.d.ts +31 -9
  1617. package/pglite/session.js +87 -27
  1618. package/pglite/session.js.map +1 -1
  1619. package/planetscale-serverless/driver.cjs +3 -4
  1620. package/planetscale-serverless/driver.cjs.map +1 -1
  1621. package/planetscale-serverless/driver.d.cts +0 -1
  1622. package/planetscale-serverless/driver.d.ts +1 -2
  1623. package/planetscale-serverless/driver.js +3 -4
  1624. package/planetscale-serverless/driver.js.map +1 -1
  1625. package/planetscale-serverless/session.cjs +20 -27
  1626. package/planetscale-serverless/session.cjs.map +1 -1
  1627. package/planetscale-serverless/session.d.cts +6 -12
  1628. package/planetscale-serverless/session.d.ts +7 -13
  1629. package/planetscale-serverless/session.js +20 -27
  1630. package/planetscale-serverless/session.js.map +1 -1
  1631. package/postgres-js/driver.cjs +18 -87
  1632. package/postgres-js/driver.cjs.map +1 -1
  1633. package/postgres-js/driver.d.cts +6 -10
  1634. package/postgres-js/driver.d.ts +6 -10
  1635. package/postgres-js/driver.js +18 -87
  1636. package/postgres-js/driver.js.map +1 -1
  1637. package/postgres-js/index.cjs +2 -2
  1638. package/postgres-js/index.d.cts +3 -3
  1639. package/postgres-js/index.d.ts +3 -3
  1640. package/postgres-js/index.js +3 -3
  1641. package/postgres-js/migrator.cjs +1 -1
  1642. package/postgres-js/migrator.cjs.map +1 -1
  1643. package/postgres-js/migrator.d.cts +1 -1
  1644. package/postgres-js/migrator.d.ts +1 -1
  1645. package/postgres-js/migrator.js +1 -1
  1646. package/postgres-js/migrator.js.map +1 -1
  1647. package/postgres-js/session.cjs +111 -16
  1648. package/postgres-js/session.cjs.map +1 -1
  1649. package/postgres-js/session.d.cts +32 -10
  1650. package/postgres-js/session.d.ts +31 -9
  1651. package/postgres-js/session.js +111 -17
  1652. package/postgres-js/session.js.map +1 -1
  1653. package/prisma/mysql/driver.cjs +32 -0
  1654. package/prisma/mysql/driver.cjs.map +1 -0
  1655. package/prisma/mysql/driver.d.cts +28 -0
  1656. package/prisma/mysql/driver.d.ts +28 -0
  1657. package/prisma/mysql/driver.js +29 -0
  1658. package/prisma/mysql/driver.js.map +1 -0
  1659. package/prisma/mysql/index.cjs +8 -0
  1660. package/prisma/mysql/index.d.cts +3 -0
  1661. package/prisma/mysql/index.d.ts +3 -0
  1662. package/prisma/mysql/index.js +4 -0
  1663. package/prisma/mysql/session.cjs +54 -0
  1664. package/prisma/mysql/session.cjs.map +1 -0
  1665. package/prisma/mysql/session.d.cts +43 -0
  1666. package/prisma/mysql/session.d.ts +43 -0
  1667. package/prisma/mysql/session.js +51 -0
  1668. package/prisma/mysql/session.js.map +1 -0
  1669. package/prisma/pg/driver.cjs +33 -0
  1670. package/prisma/pg/driver.cjs.map +1 -0
  1671. package/prisma/pg/driver.d.cts +28 -0
  1672. package/prisma/pg/driver.d.ts +28 -0
  1673. package/prisma/pg/driver.js +30 -0
  1674. package/prisma/pg/driver.js.map +1 -0
  1675. package/prisma/pg/index.cjs +8 -0
  1676. package/prisma/pg/index.d.cts +3 -0
  1677. package/prisma/pg/index.d.ts +3 -0
  1678. package/prisma/pg/index.js +4 -0
  1679. package/prisma/pg/session.cjs +54 -0
  1680. package/prisma/pg/session.cjs.map +1 -0
  1681. package/prisma/pg/session.d.cts +41 -0
  1682. package/prisma/pg/session.d.ts +41 -0
  1683. package/prisma/pg/session.js +51 -0
  1684. package/prisma/pg/session.js.map +1 -0
  1685. package/prisma/sqlite/driver.cjs +25 -0
  1686. package/prisma/sqlite/driver.cjs.map +1 -0
  1687. package/prisma/sqlite/driver.d.cts +21 -0
  1688. package/prisma/sqlite/driver.d.ts +21 -0
  1689. package/prisma/sqlite/driver.js +23 -0
  1690. package/prisma/sqlite/driver.js.map +1 -0
  1691. package/prisma/sqlite/index.cjs +7 -0
  1692. package/prisma/sqlite/index.d.cts +3 -0
  1693. package/prisma/sqlite/index.d.ts +3 -0
  1694. package/prisma/sqlite/index.js +4 -0
  1695. package/prisma/sqlite/session.cjs +57 -0
  1696. package/prisma/sqlite/session.cjs.map +1 -0
  1697. package/prisma/sqlite/session.d.cts +42 -0
  1698. package/prisma/sqlite/session.d.ts +42 -0
  1699. package/prisma/sqlite/session.js +54 -0
  1700. package/prisma/sqlite/session.js.map +1 -0
  1701. package/query-builders/query-builder.cjs +0 -4
  1702. package/query-builders/query-builder.cjs.map +1 -1
  1703. package/query-builders/query-builder.js +0 -4
  1704. package/query-builders/query-builder.js.map +1 -1
  1705. package/query-builders/select.types.d.ts +2 -2
  1706. package/relations.cjs +35 -98
  1707. package/relations.cjs.map +1 -1
  1708. package/relations.d.cts +19 -45
  1709. package/relations.d.ts +19 -45
  1710. package/relations.js +36 -97
  1711. package/relations.js.map +1 -1
  1712. package/row-mappers/index.cjs +1 -1
  1713. package/row-mappers/index.cjs.map +1 -1
  1714. package/row-mappers/index.js +1 -1
  1715. package/row-mappers/index.js.map +1 -1
  1716. package/selection-proxy.cjs +1 -1
  1717. package/selection-proxy.js +1 -1
  1718. package/singlestore/driver.cjs +4 -6
  1719. package/singlestore/driver.cjs.map +1 -1
  1720. package/singlestore/driver.d.cts +2 -3
  1721. package/singlestore/driver.d.ts +3 -4
  1722. package/singlestore/driver.js +4 -6
  1723. package/singlestore/driver.js.map +1 -1
  1724. package/singlestore/session.cjs +7 -17
  1725. package/singlestore/session.cjs.map +1 -1
  1726. package/singlestore/session.d.cts +4 -8
  1727. package/singlestore/session.d.ts +5 -9
  1728. package/singlestore/session.js +7 -17
  1729. package/singlestore/session.js.map +1 -1
  1730. package/singlestore-core/columns/bigint.cjs +4 -4
  1731. package/singlestore-core/columns/bigint.cjs.map +1 -1
  1732. package/singlestore-core/columns/bigint.d.cts +2 -2
  1733. package/singlestore-core/columns/bigint.d.ts +3 -3
  1734. package/singlestore-core/columns/bigint.js +4 -4
  1735. package/singlestore-core/columns/bigint.js.map +1 -1
  1736. package/singlestore-core/columns/binary.cjs +2 -2
  1737. package/singlestore-core/columns/binary.cjs.map +1 -1
  1738. package/singlestore-core/columns/binary.d.cts +1 -1
  1739. package/singlestore-core/columns/binary.d.ts +1 -1
  1740. package/singlestore-core/columns/binary.js +2 -2
  1741. package/singlestore-core/columns/binary.js.map +1 -1
  1742. package/singlestore-core/columns/boolean.cjs +2 -2
  1743. package/singlestore-core/columns/boolean.cjs.map +1 -1
  1744. package/singlestore-core/columns/boolean.d.cts +1 -1
  1745. package/singlestore-core/columns/boolean.d.ts +1 -1
  1746. package/singlestore-core/columns/boolean.js +2 -2
  1747. package/singlestore-core/columns/boolean.js.map +1 -1
  1748. package/singlestore-core/columns/char.d.ts +1 -1
  1749. package/singlestore-core/columns/common.d.ts +1 -1
  1750. package/singlestore-core/columns/custom.cjs +4 -4
  1751. package/singlestore-core/columns/custom.cjs.map +1 -1
  1752. package/singlestore-core/columns/custom.d.cts +2 -2
  1753. package/singlestore-core/columns/custom.d.ts +3 -3
  1754. package/singlestore-core/columns/custom.js +4 -4
  1755. package/singlestore-core/columns/custom.js.map +1 -1
  1756. package/singlestore-core/columns/date.cjs +2 -2
  1757. package/singlestore-core/columns/date.cjs.map +1 -1
  1758. package/singlestore-core/columns/date.d.cts +1 -1
  1759. package/singlestore-core/columns/date.d.ts +2 -2
  1760. package/singlestore-core/columns/date.js +2 -2
  1761. package/singlestore-core/columns/date.js.map +1 -1
  1762. package/singlestore-core/columns/datetime.cjs +6 -6
  1763. package/singlestore-core/columns/datetime.cjs.map +1 -1
  1764. package/singlestore-core/columns/datetime.d.cts +3 -3
  1765. package/singlestore-core/columns/datetime.d.ts +4 -4
  1766. package/singlestore-core/columns/datetime.js +6 -6
  1767. package/singlestore-core/columns/datetime.js.map +1 -1
  1768. package/singlestore-core/columns/decimal.cjs +4 -4
  1769. package/singlestore-core/columns/decimal.cjs.map +1 -1
  1770. package/singlestore-core/columns/decimal.d.cts +2 -2
  1771. package/singlestore-core/columns/decimal.d.ts +3 -3
  1772. package/singlestore-core/columns/decimal.js +4 -4
  1773. package/singlestore-core/columns/decimal.js.map +1 -1
  1774. package/singlestore-core/columns/double.d.ts +1 -1
  1775. package/singlestore-core/columns/enum.d.ts +1 -1
  1776. package/singlestore-core/columns/float.cjs +2 -2
  1777. package/singlestore-core/columns/float.cjs.map +1 -1
  1778. package/singlestore-core/columns/float.d.cts +1 -1
  1779. package/singlestore-core/columns/float.d.ts +2 -2
  1780. package/singlestore-core/columns/float.js +2 -2
  1781. package/singlestore-core/columns/float.js.map +1 -1
  1782. package/singlestore-core/columns/int.cjs +2 -2
  1783. package/singlestore-core/columns/int.cjs.map +1 -1
  1784. package/singlestore-core/columns/int.d.cts +1 -1
  1785. package/singlestore-core/columns/int.d.ts +2 -2
  1786. package/singlestore-core/columns/int.js +2 -2
  1787. package/singlestore-core/columns/int.js.map +1 -1
  1788. package/singlestore-core/columns/json.cjs +2 -2
  1789. package/singlestore-core/columns/json.cjs.map +1 -1
  1790. package/singlestore-core/columns/json.d.cts +1 -1
  1791. package/singlestore-core/columns/json.d.ts +1 -1
  1792. package/singlestore-core/columns/json.js +2 -2
  1793. package/singlestore-core/columns/json.js.map +1 -1
  1794. package/singlestore-core/columns/mediumint.cjs +2 -2
  1795. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  1796. package/singlestore-core/columns/mediumint.d.cts +1 -1
  1797. package/singlestore-core/columns/mediumint.d.ts +2 -2
  1798. package/singlestore-core/columns/mediumint.js +2 -2
  1799. package/singlestore-core/columns/mediumint.js.map +1 -1
  1800. package/singlestore-core/columns/serial.cjs +2 -2
  1801. package/singlestore-core/columns/serial.cjs.map +1 -1
  1802. package/singlestore-core/columns/serial.d.cts +1 -1
  1803. package/singlestore-core/columns/serial.d.ts +1 -1
  1804. package/singlestore-core/columns/serial.js +2 -2
  1805. package/singlestore-core/columns/serial.js.map +1 -1
  1806. package/singlestore-core/columns/smallint.cjs +2 -2
  1807. package/singlestore-core/columns/smallint.cjs.map +1 -1
  1808. package/singlestore-core/columns/smallint.d.cts +1 -1
  1809. package/singlestore-core/columns/smallint.d.ts +2 -2
  1810. package/singlestore-core/columns/smallint.js +2 -2
  1811. package/singlestore-core/columns/smallint.js.map +1 -1
  1812. package/singlestore-core/columns/text.d.ts +1 -1
  1813. package/singlestore-core/columns/timestamp.cjs +6 -6
  1814. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  1815. package/singlestore-core/columns/timestamp.d.cts +3 -3
  1816. package/singlestore-core/columns/timestamp.d.ts +4 -4
  1817. package/singlestore-core/columns/timestamp.js +6 -6
  1818. package/singlestore-core/columns/timestamp.js.map +1 -1
  1819. package/singlestore-core/columns/tinyint.cjs +2 -2
  1820. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  1821. package/singlestore-core/columns/tinyint.d.cts +1 -1
  1822. package/singlestore-core/columns/tinyint.d.ts +2 -2
  1823. package/singlestore-core/columns/tinyint.js +2 -2
  1824. package/singlestore-core/columns/tinyint.js.map +1 -1
  1825. package/singlestore-core/columns/varbinary.cjs +2 -2
  1826. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  1827. package/singlestore-core/columns/varbinary.d.cts +1 -1
  1828. package/singlestore-core/columns/varbinary.d.ts +1 -1
  1829. package/singlestore-core/columns/varbinary.js +2 -2
  1830. package/singlestore-core/columns/varbinary.js.map +1 -1
  1831. package/singlestore-core/columns/varchar.d.ts +1 -1
  1832. package/singlestore-core/columns/vector.cjs +8 -8
  1833. package/singlestore-core/columns/vector.cjs.map +1 -1
  1834. package/singlestore-core/columns/vector.d.cts +4 -4
  1835. package/singlestore-core/columns/vector.d.ts +5 -5
  1836. package/singlestore-core/columns/vector.js +8 -8
  1837. package/singlestore-core/columns/vector.js.map +1 -1
  1838. package/singlestore-core/columns/year.cjs +2 -2
  1839. package/singlestore-core/columns/year.cjs.map +1 -1
  1840. package/singlestore-core/columns/year.d.cts +1 -1
  1841. package/singlestore-core/columns/year.d.ts +1 -1
  1842. package/singlestore-core/columns/year.js +2 -2
  1843. package/singlestore-core/columns/year.js.map +1 -1
  1844. package/singlestore-core/db.cjs +1 -1
  1845. package/singlestore-core/db.d.cts +1 -1
  1846. package/singlestore-core/db.d.ts +2 -2
  1847. package/singlestore-core/db.js +1 -1
  1848. package/singlestore-core/dialect.cjs +21 -15
  1849. package/singlestore-core/dialect.cjs.map +1 -1
  1850. package/singlestore-core/dialect.d.cts +5 -3
  1851. package/singlestore-core/dialect.d.ts +5 -3
  1852. package/singlestore-core/dialect.js +21 -15
  1853. package/singlestore-core/dialect.js.map +1 -1
  1854. package/singlestore-core/index.cjs +4 -8
  1855. package/singlestore-core/index.d.cts +1 -2
  1856. package/singlestore-core/index.d.ts +1 -2
  1857. package/singlestore-core/index.js +6 -7
  1858. package/singlestore-core/query-builders/delete.d.ts +1 -1
  1859. package/singlestore-core/query-builders/query.cjs +5 -13
  1860. package/singlestore-core/query-builders/query.cjs.map +1 -1
  1861. package/singlestore-core/query-builders/query.d.ts +1 -1
  1862. package/singlestore-core/query-builders/query.js +5 -13
  1863. package/singlestore-core/query-builders/query.js.map +1 -1
  1864. package/singlestore-core/query-builders/select.cjs +1 -5
  1865. package/singlestore-core/query-builders/select.cjs.map +1 -1
  1866. package/singlestore-core/query-builders/select.d.ts +1 -1
  1867. package/singlestore-core/query-builders/select.js +1 -5
  1868. package/singlestore-core/query-builders/select.js.map +1 -1
  1869. package/singlestore-core/query-builders/select.types.d.ts +1 -1
  1870. package/singlestore-core/query-builders/update.d.ts +2 -2
  1871. package/singlestore-core/schema.cjs +11 -6
  1872. package/singlestore-core/schema.cjs.map +1 -1
  1873. package/singlestore-core/schema.d.cts +1 -3
  1874. package/singlestore-core/schema.d.ts +1 -3
  1875. package/singlestore-core/schema.js +11 -6
  1876. package/singlestore-core/schema.js.map +1 -1
  1877. package/singlestore-core/session.cjs.map +1 -1
  1878. package/singlestore-core/session.d.cts +2 -2
  1879. package/singlestore-core/session.d.ts +2 -2
  1880. package/singlestore-core/session.js.map +1 -1
  1881. package/singlestore-core/subquery.d.ts +1 -1
  1882. package/singlestore-core/table.cjs +8 -13
  1883. package/singlestore-core/table.cjs.map +1 -1
  1884. package/singlestore-core/table.d.cts +3 -4
  1885. package/singlestore-core/table.d.ts +3 -4
  1886. package/singlestore-core/table.js +9 -13
  1887. package/singlestore-core/table.js.map +1 -1
  1888. package/singlestore-core/utils.cjs +2 -2
  1889. package/singlestore-core/utils.d.ts +1 -1
  1890. package/singlestore-core/utils.js +2 -2
  1891. package/singlestore-core/view.cjs +1 -1
  1892. package/singlestore-core/view.js +1 -1
  1893. package/singlestore-proxy/driver.cjs +4 -7
  1894. package/singlestore-proxy/driver.cjs.map +1 -1
  1895. package/singlestore-proxy/driver.js +4 -7
  1896. package/singlestore-proxy/driver.js.map +1 -1
  1897. package/singlestore-proxy/session.cjs +7 -12
  1898. package/singlestore-proxy/session.cjs.map +1 -1
  1899. package/singlestore-proxy/session.d.cts +4 -9
  1900. package/singlestore-proxy/session.d.ts +5 -10
  1901. package/singlestore-proxy/session.js +7 -12
  1902. package/singlestore-proxy/session.js.map +1 -1
  1903. package/sql/index.cjs +0 -1
  1904. package/sql/index.d.cts +2 -2
  1905. package/sql/index.d.ts +2 -2
  1906. package/sql/index.js +2 -2
  1907. package/sql/sql.cjs +12 -33
  1908. package/sql/sql.cjs.map +1 -1
  1909. package/sql/sql.d.cts +7 -15
  1910. package/sql/sql.d.ts +8 -16
  1911. package/sql/sql.js +13 -33
  1912. package/sql/sql.js.map +1 -1
  1913. package/sql-js/driver.cjs +3 -6
  1914. package/sql-js/driver.cjs.map +1 -1
  1915. package/sql-js/driver.d.ts +1 -1
  1916. package/sql-js/driver.js +3 -6
  1917. package/sql-js/driver.js.map +1 -1
  1918. package/sql-js/session.cjs +14 -14
  1919. package/sql-js/session.cjs.map +1 -1
  1920. package/sql-js/session.d.cts +9 -13
  1921. package/sql-js/session.d.ts +12 -16
  1922. package/sql-js/session.js +18 -18
  1923. package/sql-js/session.js.map +1 -1
  1924. package/sqlite-cloud/driver.cjs +3 -4
  1925. package/sqlite-cloud/driver.cjs.map +1 -1
  1926. package/sqlite-cloud/driver.d.ts +1 -1
  1927. package/sqlite-cloud/driver.js +3 -4
  1928. package/sqlite-cloud/driver.js.map +1 -1
  1929. package/sqlite-cloud/session.cjs +20 -21
  1930. package/sqlite-cloud/session.cjs.map +1 -1
  1931. package/sqlite-cloud/session.d.cts +9 -12
  1932. package/sqlite-cloud/session.d.ts +13 -16
  1933. package/sqlite-cloud/session.js +24 -25
  1934. package/sqlite-cloud/session.js.map +1 -1
  1935. package/sqlite-core/columns/blob.cjs +10 -10
  1936. package/sqlite-core/columns/blob.cjs.map +1 -1
  1937. package/sqlite-core/columns/blob.d.cts +5 -5
  1938. package/sqlite-core/columns/blob.d.ts +6 -6
  1939. package/sqlite-core/columns/blob.js +10 -10
  1940. package/sqlite-core/columns/blob.js.map +1 -1
  1941. package/sqlite-core/columns/common.d.ts +1 -1
  1942. package/sqlite-core/columns/custom.cjs +4 -4
  1943. package/sqlite-core/columns/custom.cjs.map +1 -1
  1944. package/sqlite-core/columns/custom.d.cts +2 -2
  1945. package/sqlite-core/columns/custom.d.ts +3 -3
  1946. package/sqlite-core/columns/custom.js +4 -4
  1947. package/sqlite-core/columns/custom.js.map +1 -1
  1948. package/sqlite-core/columns/integer.cjs +8 -8
  1949. package/sqlite-core/columns/integer.cjs.map +1 -1
  1950. package/sqlite-core/columns/integer.d.cts +4 -4
  1951. package/sqlite-core/columns/integer.d.ts +5 -5
  1952. package/sqlite-core/columns/integer.js +8 -8
  1953. package/sqlite-core/columns/integer.js.map +1 -1
  1954. package/sqlite-core/columns/numeric.cjs +4 -4
  1955. package/sqlite-core/columns/numeric.cjs.map +1 -1
  1956. package/sqlite-core/columns/numeric.d.cts +2 -2
  1957. package/sqlite-core/columns/numeric.d.ts +3 -3
  1958. package/sqlite-core/columns/numeric.js +4 -4
  1959. package/sqlite-core/columns/numeric.js.map +1 -1
  1960. package/sqlite-core/columns/text.cjs +4 -4
  1961. package/sqlite-core/columns/text.cjs.map +1 -1
  1962. package/sqlite-core/columns/text.d.cts +2 -2
  1963. package/sqlite-core/columns/text.d.ts +3 -3
  1964. package/sqlite-core/columns/text.js +4 -4
  1965. package/sqlite-core/columns/text.js.map +1 -1
  1966. package/sqlite-core/db.cjs +1 -1
  1967. package/sqlite-core/db.d.cts +1 -1
  1968. package/sqlite-core/db.d.ts +3 -3
  1969. package/sqlite-core/db.js +1 -1
  1970. package/sqlite-core/dialect.cjs +22 -16
  1971. package/sqlite-core/dialect.cjs.map +1 -1
  1972. package/sqlite-core/dialect.d.cts +5 -3
  1973. package/sqlite-core/dialect.d.ts +6 -4
  1974. package/sqlite-core/dialect.js +22 -16
  1975. package/sqlite-core/dialect.js.map +1 -1
  1976. package/sqlite-core/index.cjs +7 -13
  1977. package/sqlite-core/index.d.cts +2 -3
  1978. package/sqlite-core/index.d.ts +2 -3
  1979. package/sqlite-core/index.js +9 -10
  1980. package/sqlite-core/query-builders/_query.cjs +1 -1
  1981. package/sqlite-core/query-builders/_query.cjs.map +1 -1
  1982. package/sqlite-core/query-builders/_query.js +1 -1
  1983. package/sqlite-core/query-builders/_query.js.map +1 -1
  1984. package/sqlite-core/query-builders/delete.cjs +1 -1
  1985. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  1986. package/sqlite-core/query-builders/delete.d.ts +1 -1
  1987. package/sqlite-core/query-builders/delete.js +1 -1
  1988. package/sqlite-core/query-builders/delete.js.map +1 -1
  1989. package/sqlite-core/query-builders/index.cjs +1 -1
  1990. package/sqlite-core/query-builders/index.js +1 -1
  1991. package/sqlite-core/query-builders/insert.cjs +1 -1
  1992. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  1993. package/sqlite-core/query-builders/insert.d.ts +1 -1
  1994. package/sqlite-core/query-builders/insert.js +1 -1
  1995. package/sqlite-core/query-builders/insert.js.map +1 -1
  1996. package/sqlite-core/query-builders/query.cjs +5 -13
  1997. package/sqlite-core/query-builders/query.cjs.map +1 -1
  1998. package/sqlite-core/query-builders/query.d.ts +1 -1
  1999. package/sqlite-core/query-builders/query.js +5 -13
  2000. package/sqlite-core/query-builders/query.js.map +1 -1
  2001. package/sqlite-core/query-builders/raw.cjs +4 -0
  2002. package/sqlite-core/query-builders/raw.cjs.map +1 -1
  2003. package/sqlite-core/query-builders/raw.js +4 -0
  2004. package/sqlite-core/query-builders/raw.js.map +1 -1
  2005. package/sqlite-core/query-builders/select.cjs +3 -7
  2006. package/sqlite-core/query-builders/select.cjs.map +1 -1
  2007. package/sqlite-core/query-builders/select.d.ts +1 -1
  2008. package/sqlite-core/query-builders/select.js +3 -7
  2009. package/sqlite-core/query-builders/select.js.map +1 -1
  2010. package/sqlite-core/query-builders/select.types.d.ts +1 -1
  2011. package/sqlite-core/query-builders/update.cjs +3 -3
  2012. package/sqlite-core/query-builders/update.cjs.map +1 -1
  2013. package/sqlite-core/query-builders/update.d.ts +2 -2
  2014. package/sqlite-core/query-builders/update.js +3 -3
  2015. package/sqlite-core/query-builders/update.js.map +1 -1
  2016. package/sqlite-core/session.cjs +9 -9
  2017. package/sqlite-core/session.cjs.map +1 -1
  2018. package/sqlite-core/session.d.cts +5 -5
  2019. package/sqlite-core/session.d.ts +6 -6
  2020. package/sqlite-core/session.js +9 -9
  2021. package/sqlite-core/session.js.map +1 -1
  2022. package/sqlite-core/subquery.d.ts +1 -1
  2023. package/sqlite-core/table.cjs +8 -15
  2024. package/sqlite-core/table.cjs.map +1 -1
  2025. package/sqlite-core/table.d.cts +2 -3
  2026. package/sqlite-core/table.d.ts +2 -3
  2027. package/sqlite-core/table.js +9 -14
  2028. package/sqlite-core/table.js.map +1 -1
  2029. package/sqlite-core/utils.cjs +4 -4
  2030. package/sqlite-core/utils.d.ts +1 -1
  2031. package/sqlite-core/utils.js +4 -4
  2032. package/sqlite-core/view.cjs +5 -10
  2033. package/sqlite-core/view.cjs.map +1 -1
  2034. package/sqlite-core/view.d.cts +5 -9
  2035. package/sqlite-core/view.d.ts +5 -9
  2036. package/sqlite-core/view.js +7 -11
  2037. package/sqlite-core/view.js.map +1 -1
  2038. package/sqlite-proxy/driver.cjs +3 -4
  2039. package/sqlite-proxy/driver.cjs.map +1 -1
  2040. package/sqlite-proxy/driver.d.ts +1 -1
  2041. package/sqlite-proxy/driver.js +3 -4
  2042. package/sqlite-proxy/driver.js.map +1 -1
  2043. package/sqlite-proxy/session.cjs +16 -19
  2044. package/sqlite-proxy/session.cjs.map +1 -1
  2045. package/sqlite-proxy/session.d.cts +8 -12
  2046. package/sqlite-proxy/session.d.ts +15 -19
  2047. package/sqlite-proxy/session.js +20 -23
  2048. package/sqlite-proxy/session.js.map +1 -1
  2049. package/table.d.cts +1 -1
  2050. package/table.d.ts +1 -1
  2051. package/tidb-serverless/driver.cjs +3 -4
  2052. package/tidb-serverless/driver.cjs.map +1 -1
  2053. package/tidb-serverless/driver.d.cts +0 -1
  2054. package/tidb-serverless/driver.d.ts +0 -1
  2055. package/tidb-serverless/driver.js +3 -4
  2056. package/tidb-serverless/driver.js.map +1 -1
  2057. package/tidb-serverless/session.cjs +37 -25
  2058. package/tidb-serverless/session.cjs.map +1 -1
  2059. package/tidb-serverless/session.d.cts +4 -10
  2060. package/tidb-serverless/session.d.ts +5 -11
  2061. package/tidb-serverless/session.js +37 -25
  2062. package/tidb-serverless/session.js.map +1 -1
  2063. package/tursodatabase/driver-core.cjs +3 -4
  2064. package/tursodatabase/driver-core.cjs.map +1 -1
  2065. package/tursodatabase/driver-core.d.ts +1 -1
  2066. package/tursodatabase/driver-core.js +3 -4
  2067. package/tursodatabase/driver-core.js.map +1 -1
  2068. package/tursodatabase/session.cjs +19 -20
  2069. package/tursodatabase/session.cjs.map +1 -1
  2070. package/tursodatabase/session.d.cts +9 -12
  2071. package/tursodatabase/session.d.ts +13 -16
  2072. package/tursodatabase/session.js +23 -24
  2073. package/tursodatabase/session.js.map +1 -1
  2074. package/typebox/column.types.d.ts +1 -1
  2075. package/typebox/schema.cjs +1 -1
  2076. package/typebox/schema.js +1 -1
  2077. package/typebox/schema.types.internal.d.ts +1 -1
  2078. package/typebox-legacy/column.types.d.ts +1 -1
  2079. package/typebox-legacy/schema.cjs +1 -1
  2080. package/typebox-legacy/schema.js +1 -1
  2081. package/typebox-legacy/schema.types.internal.d.ts +1 -1
  2082. package/up-migrations/effect-pg.cjs +3 -3
  2083. package/up-migrations/effect-pg.cjs.map +1 -1
  2084. package/up-migrations/effect-pg.d.ts +1 -1
  2085. package/up-migrations/effect-pg.js +3 -3
  2086. package/up-migrations/effect-pg.js.map +1 -1
  2087. package/up-migrations/pg-proxy.cjs +2 -2
  2088. package/up-migrations/pg-proxy.cjs.map +1 -1
  2089. package/up-migrations/pg-proxy.d.cts +1 -1
  2090. package/up-migrations/pg-proxy.d.ts +1 -1
  2091. package/up-migrations/pg-proxy.js +2 -2
  2092. package/up-migrations/pg-proxy.js.map +1 -1
  2093. package/up-migrations/pg.cjs +8 -3
  2094. package/up-migrations/pg.cjs.map +1 -1
  2095. package/up-migrations/pg.d.cts +1 -1
  2096. package/up-migrations/pg.d.ts +2 -2
  2097. package/up-migrations/pg.js +8 -3
  2098. package/up-migrations/pg.js.map +1 -1
  2099. package/up-migrations/sqlite.d.ts +3 -3
  2100. package/utils.cjs +13 -153
  2101. package/utils.cjs.map +1 -1
  2102. package/utils.d.cts +5 -12
  2103. package/utils.d.ts +5 -12
  2104. package/utils.js +14 -150
  2105. package/utils.js.map +1 -1
  2106. package/valibot/column.types.d.ts +1 -1
  2107. package/valibot/schema.cjs +1 -1
  2108. package/valibot/schema.js +1 -1
  2109. package/valibot/schema.types.internal.d.ts +1 -1
  2110. package/vercel-postgres/driver.cjs +33 -39
  2111. package/vercel-postgres/driver.cjs.map +1 -1
  2112. package/vercel-postgres/driver.d.cts +23 -11
  2113. package/vercel-postgres/driver.d.ts +24 -12
  2114. package/vercel-postgres/driver.js +32 -39
  2115. package/vercel-postgres/driver.js.map +1 -1
  2116. package/vercel-postgres/index.cjs +3 -2
  2117. package/vercel-postgres/index.d.cts +3 -3
  2118. package/vercel-postgres/index.d.ts +3 -3
  2119. package/vercel-postgres/index.js +3 -3
  2120. package/vercel-postgres/migrator.cjs +1 -1
  2121. package/vercel-postgres/migrator.cjs.map +1 -1
  2122. package/vercel-postgres/migrator.d.cts +1 -1
  2123. package/vercel-postgres/migrator.d.ts +1 -1
  2124. package/vercel-postgres/migrator.js +1 -1
  2125. package/vercel-postgres/migrator.js.map +1 -1
  2126. package/vercel-postgres/session.cjs +111 -33
  2127. package/vercel-postgres/session.cjs.map +1 -1
  2128. package/vercel-postgres/session.d.cts +33 -9
  2129. package/vercel-postgres/session.d.ts +34 -10
  2130. package/vercel-postgres/session.js +112 -35
  2131. package/vercel-postgres/session.js.map +1 -1
  2132. package/xata-http/driver.cjs +31 -117
  2133. package/xata-http/driver.cjs.map +1 -1
  2134. package/xata-http/driver.d.cts +22 -9
  2135. package/xata-http/driver.d.ts +22 -9
  2136. package/xata-http/driver.js +30 -117
  2137. package/xata-http/driver.js.map +1 -1
  2138. package/xata-http/index.cjs +4 -2
  2139. package/xata-http/index.d.cts +3 -3
  2140. package/xata-http/index.d.ts +3 -3
  2141. package/xata-http/index.js +3 -3
  2142. package/xata-http/migrator.cjs +1 -1
  2143. package/xata-http/migrator.cjs.map +1 -1
  2144. package/xata-http/migrator.d.cts +1 -1
  2145. package/xata-http/migrator.d.ts +1 -1
  2146. package/xata-http/migrator.js +1 -1
  2147. package/xata-http/migrator.js.map +1 -1
  2148. package/xata-http/session.cjs +109 -23
  2149. package/xata-http/session.cjs.map +1 -1
  2150. package/xata-http/session.d.cts +34 -7
  2151. package/xata-http/session.d.ts +33 -6
  2152. package/xata-http/session.js +109 -25
  2153. package/xata-http/session.js.map +1 -1
  2154. package/zod/column.types.d.ts +1 -1
  2155. package/zod/schema.cjs +1 -1
  2156. package/zod/schema.js +1 -1
  2157. package/zod/schema.types.internal.d.ts +1 -1
  2158. package/cockroach-core/casing.cjs +0 -27
  2159. package/cockroach-core/casing.cjs.map +0 -1
  2160. package/cockroach-core/casing.d.cts +0 -20
  2161. package/cockroach-core/casing.d.ts +0 -20
  2162. package/cockroach-core/casing.js +0 -25
  2163. package/cockroach-core/casing.js.map +0 -1
  2164. package/codecs.cjs +0 -77
  2165. package/codecs.cjs.map +0 -1
  2166. package/codecs.d.cts +0 -68
  2167. package/codecs.d.ts +0 -68
  2168. package/codecs.js +0 -74
  2169. package/codecs.js.map +0 -1
  2170. package/mssql-core/casing.cjs +0 -25
  2171. package/mssql-core/casing.cjs.map +0 -1
  2172. package/mssql-core/casing.d.cts +0 -18
  2173. package/mssql-core/casing.d.ts +0 -18
  2174. package/mssql-core/casing.js +0 -23
  2175. package/mssql-core/casing.js.map +0 -1
  2176. package/mysql-core/casing.cjs +0 -25
  2177. package/mysql-core/casing.cjs.map +0 -1
  2178. package/mysql-core/casing.d.cts +0 -18
  2179. package/mysql-core/casing.d.ts +0 -18
  2180. package/mysql-core/casing.js +0 -23
  2181. package/mysql-core/casing.js.map +0 -1
  2182. package/pg-core/array.cjs.map +0 -1
  2183. package/pg-core/array.js.map +0 -1
  2184. package/pg-core/casing.cjs +0 -27
  2185. package/pg-core/casing.cjs.map +0 -1
  2186. package/pg-core/casing.d.cts +0 -20
  2187. package/pg-core/casing.d.ts +0 -20
  2188. package/pg-core/casing.js +0 -25
  2189. package/pg-core/casing.js.map +0 -1
  2190. package/pg-core/codecs.cjs +0 -126
  2191. package/pg-core/codecs.cjs.map +0 -1
  2192. package/pg-core/codecs.d.cts +0 -87
  2193. package/pg-core/codecs.d.ts +0 -87
  2194. package/pg-core/codecs.js +0 -118
  2195. package/pg-core/codecs.js.map +0 -1
  2196. package/singlestore-core/casing.cjs +0 -22
  2197. package/singlestore-core/casing.cjs.map +0 -1
  2198. package/singlestore-core/casing.d.cts +0 -15
  2199. package/singlestore-core/casing.d.ts +0 -15
  2200. package/singlestore-core/casing.js +0 -20
  2201. package/singlestore-core/casing.js.map +0 -1
  2202. package/sqlite-core/casing.cjs +0 -18
  2203. package/sqlite-core/casing.cjs.map +0 -1
  2204. package/sqlite-core/casing.d.cts +0 -15
  2205. package/sqlite-core/casing.d.ts +0 -15
  2206. package/sqlite-core/casing.js +0 -16
  2207. package/sqlite-core/casing.js.map +0 -1
package/_relations.cjs CHANGED
@@ -2,10 +2,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
3
  const require_entity = require('./entity.cjs');
4
4
  const require_column = require('./column.cjs');
5
+ const require_pg_core_primary_keys = require('./pg-core/primary-keys.cjs');
5
6
  const require_sql_sql = require('./sql/sql.cjs');
6
7
  const require_sql_expressions_conditions = require('./sql/expressions/conditions.cjs');
7
8
  const require_sql_expressions_select = require('./sql/expressions/select.cjs');
8
- const require_pg_core_primary_keys = require('./pg-core/primary-keys.cjs');
9
9
  let __table_ts = require("./table.cjs");
10
10
 
11
11
  //#region src/_relations.ts
@@ -1 +1 @@
1
- {"version":3,"file":"_relations.cjs","names":["entityKind","Table","is","PrimaryKeyBuilder","Column","SQL"],"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 CommentInput, 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 type DBQueryConfigWithComment<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> = DBQueryConfig<TRelationType, TIsRoot, TSchema, TTableConfig> & { comment?: CommentInput | undefined };\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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"}
1
+ {"version":3,"file":"_relations.cjs","names":["entityKind","Table","is","PrimaryKeyBuilder","Column","SQL"],"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 CommentInput, 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 type DBQueryConfigWithComment<\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\tcomment?: CommentInput | 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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"}
package/_relations.d.cts CHANGED
@@ -109,9 +109,20 @@ type DBQueryConfig<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoo
109
109
  } & (TIsRoot extends true ? {
110
110
  offset?: number | Placeholder | undefined;
111
111
  } : {}) : {});
112
- type DBQueryConfigWithComment<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoot extends boolean = boolean, TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig> = DBQueryConfig<TRelationType, TIsRoot, TSchema, TTableConfig> & {
112
+ type DBQueryConfigWithComment<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoot extends boolean = boolean, TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig> = {
113
+ columns?: { [K in keyof TTableConfig['columns']]?: boolean } | undefined;
114
+ with?: { [K in keyof TTableConfig['relations']]?: true | DBQueryConfig<TTableConfig['relations'][K] extends One ? 'one' : 'many', false, TSchema, FindTableByDBName<TSchema, TTableConfig['relations'][K]['referencedTableName']>> | undefined } | undefined;
115
+ extras?: Record<string, SQL.Aliased> | ((fields: Simplify<[TTableConfig['columns']] extends [never] ? {} : TTableConfig['columns']>, operators: {
116
+ sql: Operators['sql'];
117
+ }) => Record<string, SQL.Aliased>) | undefined;
113
118
  comment?: CommentInput | undefined;
114
- };
119
+ } & (TRelationType extends 'many' ? {
120
+ where?: SQL | undefined | ((fields: Simplify<[TTableConfig['columns']] extends [never] ? {} : TTableConfig['columns']>, operators: Operators) => SQL | undefined);
121
+ orderBy?: ValueOrArray<AnyColumn | SQL> | ((fields: Simplify<[TTableConfig['columns']] extends [never] ? {} : TTableConfig['columns']>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>) | undefined;
122
+ limit?: number | Placeholder | undefined;
123
+ } & (TIsRoot extends true ? {
124
+ offset?: number | Placeholder | undefined;
125
+ } : {}) : {});
115
126
  interface TableRelationalConfig {
116
127
  tsName: string;
117
128
  dbName: string;
package/_relations.d.ts CHANGED
@@ -109,9 +109,20 @@ type DBQueryConfig<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoo
109
109
  } & (TIsRoot extends true ? {
110
110
  offset?: number | Placeholder | undefined;
111
111
  } : {}) : {});
112
- type DBQueryConfigWithComment<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoot extends boolean = boolean, TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig> = DBQueryConfig<TRelationType, TIsRoot, TSchema, TTableConfig> & {
112
+ type DBQueryConfigWithComment<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoot extends boolean = boolean, TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig> = {
113
+ columns?: { [K in keyof TTableConfig['columns']]?: boolean } | undefined;
114
+ with?: { [K in keyof TTableConfig['relations']]?: true | DBQueryConfig<TTableConfig['relations'][K] extends One ? 'one' : 'many', false, TSchema, FindTableByDBName<TSchema, TTableConfig['relations'][K]['referencedTableName']>> | undefined } | undefined;
115
+ extras?: Record<string, SQL.Aliased> | ((fields: Simplify<[TTableConfig['columns']] extends [never] ? {} : TTableConfig['columns']>, operators: {
116
+ sql: Operators['sql'];
117
+ }) => Record<string, SQL.Aliased>) | undefined;
113
118
  comment?: CommentInput | undefined;
114
- };
119
+ } & (TRelationType extends 'many' ? {
120
+ where?: SQL | undefined | ((fields: Simplify<[TTableConfig['columns']] extends [never] ? {} : TTableConfig['columns']>, operators: Operators) => SQL | undefined);
121
+ orderBy?: ValueOrArray<AnyColumn | SQL> | ((fields: Simplify<[TTableConfig['columns']] extends [never] ? {} : TTableConfig['columns']>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>) | undefined;
122
+ limit?: number | Placeholder | undefined;
123
+ } & (TIsRoot extends true ? {
124
+ offset?: number | Placeholder | undefined;
125
+ } : {}) : {});
115
126
  interface TableRelationalConfig {
116
127
  tsName: string;
117
128
  dbName: string;
package/_relations.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { entityKind, is } from "./entity.js";
2
2
  import { Column } from "./column.js";
3
+ import { PrimaryKeyBuilder } from "./pg-core/primary-keys.js";
3
4
  import { SQL, sql } from "./sql/sql.js";
4
5
  import { and, between, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or } from "./sql/expressions/conditions.js";
5
6
  import { asc, desc } from "./sql/expressions/select.js";
6
- import { PrimaryKeyBuilder } from "./pg-core/primary-keys.js";
7
7
  import { Table, getTableUniqueName } from "./table.js";
8
8
 
9
9
  //#region src/_relations.ts
package/_relations.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"_relations.js","names":[],"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 CommentInput, 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 type DBQueryConfigWithComment<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> = DBQueryConfig<TRelationType, TIsRoot, TSchema, TTableConfig> & { comment?: CommentInput | undefined };\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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"}
1
+ {"version":3,"file":"_relations.js","names":[],"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 CommentInput, 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 type DBQueryConfigWithComment<\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\tcomment?: CommentInput | 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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"}
package/alias.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_entity = require('./entity.cjs');
3
2
  const require_column_common = require('./column-common.cjs');
3
+ const require_entity = require('./entity.cjs');
4
4
  const require_column = require('./column.cjs');
5
- const require_subquery = require('./subquery.cjs');
6
5
  const require_table = require('./table.cjs');
7
6
  const require_sql_sql = require('./sql/sql.cjs');
7
+ const require_subquery = require('./subquery.cjs');
8
8
  const require_view_common = require('./view-common.cjs');
9
9
 
10
10
  //#region src/alias.ts
package/alias.js CHANGED
@@ -1,9 +1,9 @@
1
- import { entityKind, is } from "./entity.js";
2
1
  import { OriginalColumn } from "./column-common.js";
2
+ import { entityKind, is } from "./entity.js";
3
3
  import { Column } from "./column.js";
4
- import { Subquery } from "./subquery.js";
5
4
  import { Table } from "./table.js";
6
5
  import { SQL, View, isSQLWrapper, sql } from "./sql/sql.js";
6
+ import { Subquery } from "./subquery.js";
7
7
  import { ViewBaseConfig } from "./view-common.js";
8
8
 
9
9
  //#region src/alias.ts
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  let __table_ts = require("../table.cjs");
4
- let __column_ts = require("../column.cjs");
5
4
  let __utils_ts = require("../utils.cjs");
5
+ let __column_ts = require("../column.cjs");
6
6
  let __column_builder_ts = require("../column-builder.cjs");
7
7
  let arktype = require("arktype");
8
8
 
package/arktype/column.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { getTableName } from "../table.js";
2
- import { getColumnTable } from "../column.js";
3
2
  import { CONSTANTS } from "../utils.js";
3
+ import { getColumnTable } from "../column.js";
4
4
  import { extractExtendedColumnType } from "../column-builder.js";
5
5
  import { type } from "arktype";
6
6
 
@@ -4,8 +4,8 @@ const require_utils = require('../utils.cjs');
4
4
  const require_arktype_column = require('./column.cjs');
5
5
  let __entity_ts = require("../entity.cjs");
6
6
  let __table_ts = require("../table.cjs");
7
- let __column_ts = require("../column.cjs");
8
7
  let __utils_ts = require("../utils.cjs");
8
+ let __column_ts = require("../column.cjs");
9
9
  let __sql_sql_ts = require("../sql/sql.cjs");
10
10
  let arktype = require("arktype");
11
11
 
package/arktype/schema.js CHANGED
@@ -2,8 +2,8 @@ import { isWithEnum } from "../utils.js";
2
2
  import { columnToSchema } from "./column.js";
3
3
  import { is } from "../entity.js";
4
4
  import { isTable } from "../table.js";
5
- import { Column } from "../column.js";
6
5
  import { getColumns } from "../utils.js";
6
+ import { Column } from "../column.js";
7
7
  import { SQL, isView } from "../sql/sql.js";
8
8
  import { type } from "arktype";
9
9
 
@@ -1,8 +1,8 @@
1
1
  import { ColumnIsGeneratedAlwaysAs, GetSelection } from "../utils.js";
2
2
  import { ArktypeNullable, ArktypeOptional, GetArktypeType, HandleColumn } from "./column.types.js";
3
3
  import { Table } from "../table.js";
4
- import { Column } from "../column.js";
5
4
  import { DrizzleTypeError, Simplify } from "../utils.js";
5
+ import { Column } from "../column.js";
6
6
  import { View } from "../sql/sql.js";
7
7
  import { Type, type } from "arktype";
8
8
  import { SelectedFieldsFlat } from "../operations.js";
@@ -55,8 +55,6 @@ function toValueParam(value, typings) {
55
55
  else if (typeof value === "number" && !Number.isInteger(value)) response.value = { doubleValue: value };
56
56
  else if (typeof value === "boolean") response.value = { booleanValue: value };
57
57
  else if (value instanceof Date) response.value = { stringValue: value.toISOString().replace("T", " ").replace("Z", "") };
58
- else if (typeof value === "bigint") response.value = { stringValue: value.toString() };
59
- else if (typeof Buffer !== "undefined" && Buffer.isBuffer(value) || value instanceof Uint8Array) response.value = { blobValue: value };
60
58
  else throw new Error(`Unknown type for ${value}`);
61
59
  return response;
62
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport type { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport const typeHint: { [K in TypeHint]: K } = {\n\tDATE: 'DATE',\n\tDECIMAL: 'DECIMAL',\n\tJSON: 'JSON',\n\tTIME: 'TIME',\n\tTIMESTAMP: 'TIMESTAMP',\n\tUUID: 'UUID',\n};\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tif (field.arrayValue.longValues !== undefined) {\n\t\t\treturn field.arrayValue.longValues;\n\t\t}\n\t\tif (field.arrayValue.doubleValues !== undefined) {\n\t\t\treturn field.arrayValue.doubleValues;\n\t\t}\n\t\tif (field.arrayValue.booleanValues !== undefined) {\n\t\t\treturn field.arrayValue.booleanValues;\n\t\t}\n\t\tif (field.arrayValue.arrayValues !== undefined) {\n\t\t\treturn field.arrayValue.arrayValues;\n\t\t}\n\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn typeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn typeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn typeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn typeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn typeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn typeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase typeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase typeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else if (typeof value === 'bigint') {\n\t\tresponse.value = { stringValue: value.toString() };\n\t} else if ((typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) || value instanceof Uint8Array) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\tresponse.value = { blobValue: value };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";;;AAIA,MAAa,WAAmC;CAC/C,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,WAAW;CACX,MAAM;CACN;AAED,SAAgB,oBAAoB,OAAc;AACjD,KAAI,MAAM,gBAAgB,OACzB,QAAO,MAAM;UACH,MAAM,iBAAiB,OACjC,QAAO,MAAM;UACH,MAAM,gBAAgB,OAChC,QAAO,MAAM;UACH,MAAM,WAAW,OAC3B,QAAO;UACG,MAAM,cAAc,OAC9B,QAAO,MAAM;UACH,MAAM,cAAc,OAC9B,QAAO,MAAM;UAEH,MAAM,eAAe,QAAW;AAC1C,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,eAAe,OACnC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,kBAAkB,OACtC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,gBAAgB,OACpC,QAAO,MAAM,WAAW;AAGzB,QAAM,IAAI,MAAM,qBAAqB;OAErC,OAAM,IAAI,MAAM,eAAe;;AAIjC,SAAgB,qBAAqB,SAAmD;AACvF,KAAI,YAAY,OACf,QAAO,SAAS;UACN,YAAY,UACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,YACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;KAEhB;;AAIF,SAAgB,aAAa,OAAY,SAAoE;CAC5G,MAAM,WAAkD;EACvD,OAAO,EAAE;EACT,UAAU,qBAAqB,QAAQ;EACvC;AAED,KAAI,UAAU,KACb,UAAS,QAAQ,EAAE,QAAQ,MAAM;UACvB,OAAO,UAAU,SAC3B,SAAQ,SAAS,UAAjB;EACC,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,IAAI,CAAC,IAAK;AACtD;EAED,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC1E;EAED;AACC,YAAS,QAAQ,EAAE,aAAa,OAAO;AACvC;;UAGQ,OAAO,UAAU,YAAY,OAAO,UAAU,MAAM,CAC9D,UAAS,QAAQ,EAAE,WAAW,OAAO;UAC3B,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,MAAM,CAC/D,UAAS,QAAQ,EAAE,aAAa,OAAO;UAC7B,OAAO,UAAU,UAC3B,UAAS,QAAQ,EAAE,cAAc,OAAO;UAC9B,iBAAiB,KAE3B,UAAS,QAAQ,EAAE,aAAa,MAAM,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;UAC9E,OAAO,UAAU,SAC3B,UAAS,QAAQ,EAAE,aAAa,MAAM,UAAU,EAAE;UACvC,OAAO,WAAW,eAAe,OAAO,SAAS,MAAM,IAAK,iBAAiB,WACxF,UAAS,QAAQ,EAAE,WAAW,OAAO;KAErC,OAAM,IAAI,MAAM,oBAAoB,QAAQ;AAG7C,QAAO"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport type { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport const typeHint: { [K in TypeHint]: K } = {\n\tDATE: 'DATE',\n\tDECIMAL: 'DECIMAL',\n\tJSON: 'JSON',\n\tTIME: 'TIME',\n\tTIMESTAMP: 'TIMESTAMP',\n\tUUID: 'UUID',\n};\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tif (field.arrayValue.longValues !== undefined) {\n\t\t\treturn field.arrayValue.longValues;\n\t\t}\n\t\tif (field.arrayValue.doubleValues !== undefined) {\n\t\t\treturn field.arrayValue.doubleValues;\n\t\t}\n\t\tif (field.arrayValue.booleanValues !== undefined) {\n\t\t\treturn field.arrayValue.booleanValues;\n\t\t}\n\t\tif (field.arrayValue.arrayValues !== undefined) {\n\t\t\treturn field.arrayValue.arrayValues;\n\t\t}\n\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn typeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn typeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn typeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn typeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn typeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn typeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase typeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase typeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";;;AAIA,MAAa,WAAmC;CAC/C,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,WAAW;CACX,MAAM;CACN;AAED,SAAgB,oBAAoB,OAAc;AACjD,KAAI,MAAM,gBAAgB,OACzB,QAAO,MAAM;UACH,MAAM,iBAAiB,OACjC,QAAO,MAAM;UACH,MAAM,gBAAgB,OAChC,QAAO,MAAM;UACH,MAAM,WAAW,OAC3B,QAAO;UACG,MAAM,cAAc,OAC9B,QAAO,MAAM;UACH,MAAM,cAAc,OAC9B,QAAO,MAAM;UAEH,MAAM,eAAe,QAAW;AAC1C,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,eAAe,OACnC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,kBAAkB,OACtC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,gBAAgB,OACpC,QAAO,MAAM,WAAW;AAGzB,QAAM,IAAI,MAAM,qBAAqB;OAErC,OAAM,IAAI,MAAM,eAAe;;AAIjC,SAAgB,qBAAqB,SAAmD;AACvF,KAAI,YAAY,OACf,QAAO,SAAS;UACN,YAAY,UACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,YACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;KAEhB;;AAIF,SAAgB,aAAa,OAAY,SAAoE;CAC5G,MAAM,WAAkD;EACvD,OAAO,EAAE;EACT,UAAU,qBAAqB,QAAQ;EACvC;AAED,KAAI,UAAU,KACb,UAAS,QAAQ,EAAE,QAAQ,MAAM;UACvB,OAAO,UAAU,SAC3B,SAAQ,SAAS,UAAjB;EACC,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,IAAI,CAAC,IAAK;AACtD;EAED,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC1E;EAED;AACC,YAAS,QAAQ,EAAE,aAAa,OAAO;AACvC;;UAGQ,OAAO,UAAU,YAAY,OAAO,UAAU,MAAM,CAC9D,UAAS,QAAQ,EAAE,WAAW,OAAO;UAC3B,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,MAAM,CAC/D,UAAS,QAAQ,EAAE,aAAa,OAAO;UAC7B,OAAO,UAAU,UAC3B,UAAS,QAAQ,EAAE,cAAc,OAAO;UAC9B,iBAAiB,KAE3B,UAAS,QAAQ,EAAE,aAAa,MAAM,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;KAExF,OAAM,IAAI,MAAM,oBAAoB,QAAQ;AAG7C,QAAO"}
@@ -4,7 +4,7 @@ import { Field, TypeHint } from "@aws-sdk/client-rds-data";
4
4
 
5
5
  //#region src/aws-data-api/common/index.d.ts
6
6
  declare const typeHint: { [K in TypeHint]: K };
7
- declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | Uint8Array<ArrayBufferLike> | number[] | boolean[] | _aws_sdk_client_rds_data0.ArrayValue[] | null;
7
+ declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | number[] | Uint8Array<ArrayBufferLike> | boolean[] | _aws_sdk_client_rds_data0.ArrayValue[] | null;
8
8
  declare function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined;
9
9
  declare function toValueParam(value: any, typings?: QueryTypingsValue): {
10
10
  value: Field;
@@ -4,7 +4,7 @@ import { Field, TypeHint } from "@aws-sdk/client-rds-data";
4
4
 
5
5
  //#region src/aws-data-api/common/index.d.ts
6
6
  declare const typeHint: { [K in TypeHint]: K };
7
- declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | Uint8Array<ArrayBufferLike> | number[] | boolean[] | _aws_sdk_client_rds_data0.ArrayValue[] | null;
7
+ declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | number[] | Uint8Array<ArrayBufferLike> | boolean[] | _aws_sdk_client_rds_data0.ArrayValue[] | null;
8
8
  declare function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined;
9
9
  declare function toValueParam(value: any, typings?: QueryTypingsValue): {
10
10
  value: Field;
@@ -53,8 +53,6 @@ function toValueParam(value, typings) {
53
53
  else if (typeof value === "number" && !Number.isInteger(value)) response.value = { doubleValue: value };
54
54
  else if (typeof value === "boolean") response.value = { booleanValue: value };
55
55
  else if (value instanceof Date) response.value = { stringValue: value.toISOString().replace("T", " ").replace("Z", "") };
56
- else if (typeof value === "bigint") response.value = { stringValue: value.toString() };
57
- else if (typeof Buffer !== "undefined" && Buffer.isBuffer(value) || value instanceof Uint8Array) response.value = { blobValue: value };
58
56
  else throw new Error(`Unknown type for ${value}`);
59
57
  return response;
60
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport type { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport const typeHint: { [K in TypeHint]: K } = {\n\tDATE: 'DATE',\n\tDECIMAL: 'DECIMAL',\n\tJSON: 'JSON',\n\tTIME: 'TIME',\n\tTIMESTAMP: 'TIMESTAMP',\n\tUUID: 'UUID',\n};\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tif (field.arrayValue.longValues !== undefined) {\n\t\t\treturn field.arrayValue.longValues;\n\t\t}\n\t\tif (field.arrayValue.doubleValues !== undefined) {\n\t\t\treturn field.arrayValue.doubleValues;\n\t\t}\n\t\tif (field.arrayValue.booleanValues !== undefined) {\n\t\t\treturn field.arrayValue.booleanValues;\n\t\t}\n\t\tif (field.arrayValue.arrayValues !== undefined) {\n\t\t\treturn field.arrayValue.arrayValues;\n\t\t}\n\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn typeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn typeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn typeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn typeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn typeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn typeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase typeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase typeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else if (typeof value === 'bigint') {\n\t\tresponse.value = { stringValue: value.toString() };\n\t} else if ((typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) || value instanceof Uint8Array) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\tresponse.value = { blobValue: value };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";AAIA,MAAa,WAAmC;CAC/C,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,WAAW;CACX,MAAM;CACN;AAED,SAAgB,oBAAoB,OAAc;AACjD,KAAI,MAAM,gBAAgB,OACzB,QAAO,MAAM;UACH,MAAM,iBAAiB,OACjC,QAAO,MAAM;UACH,MAAM,gBAAgB,OAChC,QAAO,MAAM;UACH,MAAM,WAAW,OAC3B,QAAO;UACG,MAAM,cAAc,OAC9B,QAAO,MAAM;UACH,MAAM,cAAc,OAC9B,QAAO,MAAM;UAEH,MAAM,eAAe,QAAW;AAC1C,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,eAAe,OACnC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,kBAAkB,OACtC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,gBAAgB,OACpC,QAAO,MAAM,WAAW;AAGzB,QAAM,IAAI,MAAM,qBAAqB;OAErC,OAAM,IAAI,MAAM,eAAe;;AAIjC,SAAgB,qBAAqB,SAAmD;AACvF,KAAI,YAAY,OACf,QAAO,SAAS;UACN,YAAY,UACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,YACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;KAEhB;;AAIF,SAAgB,aAAa,OAAY,SAAoE;CAC5G,MAAM,WAAkD;EACvD,OAAO,EAAE;EACT,UAAU,qBAAqB,QAAQ;EACvC;AAED,KAAI,UAAU,KACb,UAAS,QAAQ,EAAE,QAAQ,MAAM;UACvB,OAAO,UAAU,SAC3B,SAAQ,SAAS,UAAjB;EACC,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,IAAI,CAAC,IAAK;AACtD;EAED,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC1E;EAED;AACC,YAAS,QAAQ,EAAE,aAAa,OAAO;AACvC;;UAGQ,OAAO,UAAU,YAAY,OAAO,UAAU,MAAM,CAC9D,UAAS,QAAQ,EAAE,WAAW,OAAO;UAC3B,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,MAAM,CAC/D,UAAS,QAAQ,EAAE,aAAa,OAAO;UAC7B,OAAO,UAAU,UAC3B,UAAS,QAAQ,EAAE,cAAc,OAAO;UAC9B,iBAAiB,KAE3B,UAAS,QAAQ,EAAE,aAAa,MAAM,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;UAC9E,OAAO,UAAU,SAC3B,UAAS,QAAQ,EAAE,aAAa,MAAM,UAAU,EAAE;UACvC,OAAO,WAAW,eAAe,OAAO,SAAS,MAAM,IAAK,iBAAiB,WACxF,UAAS,QAAQ,EAAE,WAAW,OAAO;KAErC,OAAM,IAAI,MAAM,oBAAoB,QAAQ;AAG7C,QAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/aws-data-api/common/index.ts"],"sourcesContent":["import type { Field } from '@aws-sdk/client-rds-data';\nimport type { TypeHint } from '@aws-sdk/client-rds-data';\nimport type { QueryTypingsValue } from '~/sql/sql.ts';\n\nexport const typeHint: { [K in TypeHint]: K } = {\n\tDATE: 'DATE',\n\tDECIMAL: 'DECIMAL',\n\tJSON: 'JSON',\n\tTIME: 'TIME',\n\tTIMESTAMP: 'TIMESTAMP',\n\tUUID: 'UUID',\n};\n\nexport function getValueFromDataApi(field: Field) {\n\tif (field.stringValue !== undefined) {\n\t\treturn field.stringValue;\n\t} else if (field.booleanValue !== undefined) {\n\t\treturn field.booleanValue;\n\t} else if (field.doubleValue !== undefined) {\n\t\treturn field.doubleValue;\n\t} else if (field.isNull !== undefined) {\n\t\treturn null;\n\t} else if (field.longValue !== undefined) {\n\t\treturn field.longValue;\n\t} else if (field.blobValue !== undefined) {\n\t\treturn field.blobValue;\n\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t} else if (field.arrayValue !== undefined) {\n\t\tif (field.arrayValue.stringValues !== undefined) {\n\t\t\treturn field.arrayValue.stringValues;\n\t\t}\n\t\tif (field.arrayValue.longValues !== undefined) {\n\t\t\treturn field.arrayValue.longValues;\n\t\t}\n\t\tif (field.arrayValue.doubleValues !== undefined) {\n\t\t\treturn field.arrayValue.doubleValues;\n\t\t}\n\t\tif (field.arrayValue.booleanValues !== undefined) {\n\t\t\treturn field.arrayValue.booleanValues;\n\t\t}\n\t\tif (field.arrayValue.arrayValues !== undefined) {\n\t\t\treturn field.arrayValue.arrayValues;\n\t\t}\n\n\t\tthrow new Error('Unknown array type');\n\t} else {\n\t\tthrow new Error('Unknown type');\n\t}\n}\n\nexport function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined {\n\tif (typings === 'date') {\n\t\treturn typeHint.DATE;\n\t} else if (typings === 'decimal') {\n\t\treturn typeHint.DECIMAL;\n\t} else if (typings === 'json') {\n\t\treturn typeHint.JSON;\n\t} else if (typings === 'time') {\n\t\treturn typeHint.TIME;\n\t} else if (typings === 'timestamp') {\n\t\treturn typeHint.TIMESTAMP;\n\t} else if (typings === 'uuid') {\n\t\treturn typeHint.UUID;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function toValueParam(value: any, typings?: QueryTypingsValue): { value: Field; typeHint?: TypeHint } {\n\tconst response: { value: Field; typeHint?: TypeHint } = {\n\t\tvalue: {} as any,\n\t\ttypeHint: typingsToAwsTypeHint(typings),\n\t};\n\n\tif (value === null) {\n\t\tresponse.value = { isNull: true };\n\t} else if (typeof value === 'string') {\n\t\tswitch (response.typeHint) {\n\t\t\tcase typeHint.DATE: {\n\t\t\t\tresponse.value = { stringValue: value.split('T')[0]! };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase typeHint.TIMESTAMP: {\n\t\t\t\tresponse.value = { stringValue: value.replace('T', ' ').replace('Z', '') };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tresponse.value = { stringValue: value };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else if (typeof value === 'number' && Number.isInteger(value)) {\n\t\tresponse.value = { longValue: value };\n\t} else if (typeof value === 'number' && !Number.isInteger(value)) {\n\t\tresponse.value = { doubleValue: value };\n\t} else if (typeof value === 'boolean') {\n\t\tresponse.value = { booleanValue: value };\n\t} else if (value instanceof Date) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t// TODO: check if this clause is needed? Seems like date value always comes as string\n\t\tresponse.value = { stringValue: value.toISOString().replace('T', ' ').replace('Z', '') };\n\t} else {\n\t\tthrow new Error(`Unknown type for ${value}`);\n\t}\n\n\treturn response;\n}\n"],"mappings":";AAIA,MAAa,WAAmC;CAC/C,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,WAAW;CACX,MAAM;CACN;AAED,SAAgB,oBAAoB,OAAc;AACjD,KAAI,MAAM,gBAAgB,OACzB,QAAO,MAAM;UACH,MAAM,iBAAiB,OACjC,QAAO,MAAM;UACH,MAAM,gBAAgB,OAChC,QAAO,MAAM;UACH,MAAM,WAAW,OAC3B,QAAO;UACG,MAAM,cAAc,OAC9B,QAAO,MAAM;UACH,MAAM,cAAc,OAC9B,QAAO,MAAM;UAEH,MAAM,eAAe,QAAW;AAC1C,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,eAAe,OACnC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,iBAAiB,OACrC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,kBAAkB,OACtC,QAAO,MAAM,WAAW;AAEzB,MAAI,MAAM,WAAW,gBAAgB,OACpC,QAAO,MAAM,WAAW;AAGzB,QAAM,IAAI,MAAM,qBAAqB;OAErC,OAAM,IAAI,MAAM,eAAe;;AAIjC,SAAgB,qBAAqB,SAAmD;AACvF,KAAI,YAAY,OACf,QAAO,SAAS;UACN,YAAY,UACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;UACN,YAAY,YACtB,QAAO,SAAS;UACN,YAAY,OACtB,QAAO,SAAS;KAEhB;;AAIF,SAAgB,aAAa,OAAY,SAAoE;CAC5G,MAAM,WAAkD;EACvD,OAAO,EAAE;EACT,UAAU,qBAAqB,QAAQ;EACvC;AAED,KAAI,UAAU,KACb,UAAS,QAAQ,EAAE,QAAQ,MAAM;UACvB,OAAO,UAAU,SAC3B,SAAQ,SAAS,UAAjB;EACC,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,MAAM,IAAI,CAAC,IAAK;AACtD;EAED,KAAK,SAAS;AACb,YAAS,QAAQ,EAAE,aAAa,MAAM,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC1E;EAED;AACC,YAAS,QAAQ,EAAE,aAAa,OAAO;AACvC;;UAGQ,OAAO,UAAU,YAAY,OAAO,UAAU,MAAM,CAC9D,UAAS,QAAQ,EAAE,WAAW,OAAO;UAC3B,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,MAAM,CAC/D,UAAS,QAAQ,EAAE,aAAa,OAAO;UAC7B,OAAO,UAAU,UAC3B,UAAS,QAAQ,EAAE,cAAc,OAAO;UAC9B,iBAAiB,KAE3B,UAAS,QAAQ,EAAE,aAAa,MAAM,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;KAExF,OAAM,IAAI,MAAM,oBAAoB,QAAQ;AAG7C,QAAO"}