drizzle-orm 1.0.0-beta.23-c02e161 → 1.0.0-beta.23-0bbcaa2

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