drizzle-orm 0.39.3 → 0.40.0-262a7b0

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 (381) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +6 -5
  3. package/column-builder.d.ts +6 -5
  4. package/column-builder.js.map +1 -1
  5. package/gel/driver.cjs +97 -0
  6. package/gel/driver.cjs.map +1 -0
  7. package/gel/driver.d.cts +38 -0
  8. package/gel/driver.d.ts +38 -0
  9. package/gel/driver.js +74 -0
  10. package/gel/driver.js.map +1 -0
  11. package/gel/index.cjs +25 -0
  12. package/gel/index.cjs.map +1 -0
  13. package/gel/index.d.cts +2 -0
  14. package/gel/index.d.ts +2 -0
  15. package/gel/index.js +3 -0
  16. package/gel/index.js.map +1 -0
  17. package/gel/migrator.cjs +5 -0
  18. package/gel/migrator.cjs.map +1 -0
  19. package/gel/migrator.d.cts +1 -0
  20. package/gel/migrator.d.ts +1 -0
  21. package/gel/migrator.js +4 -0
  22. package/gel/migrator.js.map +1 -0
  23. package/gel/session.cjs +139 -0
  24. package/gel/session.cjs.map +1 -0
  25. package/gel/session.d.cts +47 -0
  26. package/gel/session.d.ts +47 -0
  27. package/gel/session.js +113 -0
  28. package/gel/session.js.map +1 -0
  29. package/gel-core/alias.cjs +32 -0
  30. package/gel-core/alias.cjs.map +1 -0
  31. package/gel-core/alias.d.cts +4 -0
  32. package/gel-core/alias.d.ts +4 -0
  33. package/gel-core/alias.js +8 -0
  34. package/gel-core/alias.js.map +1 -0
  35. package/gel-core/checks.cjs +58 -0
  36. package/gel-core/checks.cjs.map +1 -0
  37. package/gel-core/checks.d.cts +18 -0
  38. package/gel-core/checks.d.ts +18 -0
  39. package/gel-core/checks.js +32 -0
  40. package/gel-core/checks.js.map +1 -0
  41. package/gel-core/columns/all.cjs +72 -0
  42. package/gel-core/columns/all.cjs.map +1 -0
  43. package/gel-core/columns/all.d.cts +43 -0
  44. package/gel-core/columns/all.d.ts +43 -0
  45. package/gel-core/columns/all.js +48 -0
  46. package/gel-core/columns/all.js.map +1 -0
  47. package/gel-core/columns/bigint.cjs +54 -0
  48. package/gel-core/columns/bigint.cjs.map +1 -0
  49. package/gel-core/columns/bigint.d.cts +23 -0
  50. package/gel-core/columns/bigint.d.ts +23 -0
  51. package/gel-core/columns/bigint.js +28 -0
  52. package/gel-core/columns/bigint.js.map +1 -0
  53. package/gel-core/columns/bigintT.cjs +60 -0
  54. package/gel-core/columns/bigintT.cjs.map +1 -0
  55. package/gel-core/columns/bigintT.d.cts +24 -0
  56. package/gel-core/columns/bigintT.d.ts +24 -0
  57. package/gel-core/columns/bigintT.js +34 -0
  58. package/gel-core/columns/bigintT.js.map +1 -0
  59. package/gel-core/columns/boolean.cjs +53 -0
  60. package/gel-core/columns/boolean.cjs.map +1 -0
  61. package/gel-core/columns/boolean.d.cts +22 -0
  62. package/gel-core/columns/boolean.d.ts +22 -0
  63. package/gel-core/columns/boolean.js +27 -0
  64. package/gel-core/columns/boolean.js.map +1 -0
  65. package/gel-core/columns/bytes.cjs +56 -0
  66. package/gel-core/columns/bytes.cjs.map +1 -0
  67. package/gel-core/columns/bytes.d.cts +22 -0
  68. package/gel-core/columns/bytes.d.ts +22 -0
  69. package/gel-core/columns/bytes.js +30 -0
  70. package/gel-core/columns/bytes.js.map +1 -0
  71. package/gel-core/columns/common.cjs +213 -0
  72. package/gel-core/columns/common.cjs.map +1 -0
  73. package/gel-core/columns/common.d.cts +147 -0
  74. package/gel-core/columns/common.d.ts +147 -0
  75. package/gel-core/columns/common.js +184 -0
  76. package/gel-core/columns/common.js.map +1 -0
  77. package/gel-core/columns/custom.cjs +77 -0
  78. package/gel-core/columns/custom.cjs.map +1 -0
  79. package/gel-core/columns/custom.d.cts +155 -0
  80. package/gel-core/columns/custom.d.ts +155 -0
  81. package/gel-core/columns/custom.js +51 -0
  82. package/gel-core/columns/custom.js.map +1 -0
  83. package/gel-core/columns/date-duration.cjs +56 -0
  84. package/gel-core/columns/date-duration.cjs.map +1 -0
  85. package/gel-core/columns/date-duration.d.cts +23 -0
  86. package/gel-core/columns/date-duration.d.ts +23 -0
  87. package/gel-core/columns/date-duration.js +30 -0
  88. package/gel-core/columns/date-duration.js.map +1 -0
  89. package/gel-core/columns/date.common.cjs +37 -0
  90. package/gel-core/columns/date.common.cjs.map +1 -0
  91. package/gel-core/columns/date.common.d.cts +7 -0
  92. package/gel-core/columns/date.common.d.ts +7 -0
  93. package/gel-core/columns/date.common.js +13 -0
  94. package/gel-core/columns/date.common.js.map +1 -0
  95. package/gel-core/columns/decimal.cjs +56 -0
  96. package/gel-core/columns/decimal.cjs.map +1 -0
  97. package/gel-core/columns/decimal.d.cts +26 -0
  98. package/gel-core/columns/decimal.d.ts +26 -0
  99. package/gel-core/columns/decimal.js +30 -0
  100. package/gel-core/columns/decimal.js.map +1 -0
  101. package/gel-core/columns/double-precision.cjs +62 -0
  102. package/gel-core/columns/double-precision.cjs.map +1 -0
  103. package/gel-core/columns/double-precision.d.cts +23 -0
  104. package/gel-core/columns/double-precision.d.ts +23 -0
  105. package/gel-core/columns/double-precision.js +36 -0
  106. package/gel-core/columns/double-precision.js.map +1 -0
  107. package/gel-core/columns/duration.cjs +53 -0
  108. package/gel-core/columns/duration.cjs.map +1 -0
  109. package/gel-core/columns/duration.d.cts +23 -0
  110. package/gel-core/columns/duration.d.ts +23 -0
  111. package/gel-core/columns/duration.js +27 -0
  112. package/gel-core/columns/duration.js.map +1 -0
  113. package/gel-core/columns/index.cjs +65 -0
  114. package/gel-core/columns/index.cjs.map +1 -0
  115. package/gel-core/columns/index.d.cts +22 -0
  116. package/gel-core/columns/index.d.ts +22 -0
  117. package/gel-core/columns/index.js +23 -0
  118. package/gel-core/columns/index.js.map +1 -0
  119. package/gel-core/columns/int.common.cjs +67 -0
  120. package/gel-core/columns/int.common.cjs.map +1 -0
  121. package/gel-core/columns/int.common.d.cts +15 -0
  122. package/gel-core/columns/int.common.d.ts +15 -0
  123. package/gel-core/columns/int.common.js +43 -0
  124. package/gel-core/columns/int.common.js.map +1 -0
  125. package/gel-core/columns/integer.cjs +54 -0
  126. package/gel-core/columns/integer.cjs.map +1 -0
  127. package/gel-core/columns/integer.d.cts +23 -0
  128. package/gel-core/columns/integer.d.ts +23 -0
  129. package/gel-core/columns/integer.js +28 -0
  130. package/gel-core/columns/integer.js.map +1 -0
  131. package/gel-core/columns/json.cjs +56 -0
  132. package/gel-core/columns/json.cjs.map +1 -0
  133. package/gel-core/columns/json.d.cts +26 -0
  134. package/gel-core/columns/json.d.ts +26 -0
  135. package/gel-core/columns/json.js +30 -0
  136. package/gel-core/columns/json.js.map +1 -0
  137. package/gel-core/columns/localdate.cjs +57 -0
  138. package/gel-core/columns/localdate.cjs.map +1 -0
  139. package/gel-core/columns/localdate.d.cts +24 -0
  140. package/gel-core/columns/localdate.d.ts +24 -0
  141. package/gel-core/columns/localdate.js +31 -0
  142. package/gel-core/columns/localdate.js.map +1 -0
  143. package/gel-core/columns/localtime.cjs +57 -0
  144. package/gel-core/columns/localtime.cjs.map +1 -0
  145. package/gel-core/columns/localtime.d.cts +24 -0
  146. package/gel-core/columns/localtime.d.ts +24 -0
  147. package/gel-core/columns/localtime.js +31 -0
  148. package/gel-core/columns/localtime.js.map +1 -0
  149. package/gel-core/columns/real.cjs +57 -0
  150. package/gel-core/columns/real.cjs.map +1 -0
  151. package/gel-core/columns/real.d.cts +28 -0
  152. package/gel-core/columns/real.d.ts +28 -0
  153. package/gel-core/columns/real.js +31 -0
  154. package/gel-core/columns/real.js.map +1 -0
  155. package/gel-core/columns/relative-duration.cjs +56 -0
  156. package/gel-core/columns/relative-duration.cjs.map +1 -0
  157. package/gel-core/columns/relative-duration.d.cts +23 -0
  158. package/gel-core/columns/relative-duration.d.ts +23 -0
  159. package/gel-core/columns/relative-duration.js +30 -0
  160. package/gel-core/columns/relative-duration.js.map +1 -0
  161. package/gel-core/columns/smallint.cjs +54 -0
  162. package/gel-core/columns/smallint.cjs.map +1 -0
  163. package/gel-core/columns/smallint.d.cts +23 -0
  164. package/gel-core/columns/smallint.d.ts +23 -0
  165. package/gel-core/columns/smallint.js +28 -0
  166. package/gel-core/columns/smallint.js.map +1 -0
  167. package/gel-core/columns/text.cjs +54 -0
  168. package/gel-core/columns/text.cjs.map +1 -0
  169. package/gel-core/columns/text.d.cts +26 -0
  170. package/gel-core/columns/text.d.ts +26 -0
  171. package/gel-core/columns/text.js +28 -0
  172. package/gel-core/columns/text.js.map +1 -0
  173. package/gel-core/columns/timestamp.cjs +60 -0
  174. package/gel-core/columns/timestamp.cjs.map +1 -0
  175. package/gel-core/columns/timestamp.d.cts +28 -0
  176. package/gel-core/columns/timestamp.d.ts +28 -0
  177. package/gel-core/columns/timestamp.js +34 -0
  178. package/gel-core/columns/timestamp.js.map +1 -0
  179. package/gel-core/columns/timestamptz.cjs +60 -0
  180. package/gel-core/columns/timestamptz.cjs.map +1 -0
  181. package/gel-core/columns/timestamptz.d.cts +27 -0
  182. package/gel-core/columns/timestamptz.d.ts +27 -0
  183. package/gel-core/columns/timestamptz.js +34 -0
  184. package/gel-core/columns/timestamptz.js.map +1 -0
  185. package/gel-core/columns/uuid.cjs +53 -0
  186. package/gel-core/columns/uuid.cjs.map +1 -0
  187. package/gel-core/columns/uuid.d.cts +22 -0
  188. package/gel-core/columns/uuid.d.ts +22 -0
  189. package/gel-core/columns/uuid.js +27 -0
  190. package/gel-core/columns/uuid.js.map +1 -0
  191. package/gel-core/db.cjs +338 -0
  192. package/gel-core/db.cjs.map +1 -0
  193. package/gel-core/db.d.cts +281 -0
  194. package/gel-core/db.d.ts +281 -0
  195. package/gel-core/db.js +319 -0
  196. package/gel-core/db.js.map +1 -0
  197. package/gel-core/dialect.cjs +1142 -0
  198. package/gel-core/dialect.cjs.map +1 -0
  199. package/gel-core/dialect.d.cts +62 -0
  200. package/gel-core/dialect.d.ts +62 -0
  201. package/gel-core/dialect.js +1128 -0
  202. package/gel-core/dialect.js.map +1 -0
  203. package/gel-core/expressions.cjs +49 -0
  204. package/gel-core/expressions.cjs.map +1 -0
  205. package/gel-core/expressions.d.cts +8 -0
  206. package/gel-core/expressions.d.ts +8 -0
  207. package/gel-core/expressions.js +22 -0
  208. package/gel-core/expressions.js.map +1 -0
  209. package/gel-core/foreign-keys.cjs +100 -0
  210. package/gel-core/foreign-keys.cjs.map +1 -0
  211. package/gel-core/foreign-keys.d.cts +48 -0
  212. package/gel-core/foreign-keys.d.ts +48 -0
  213. package/gel-core/foreign-keys.js +74 -0
  214. package/gel-core/foreign-keys.js.map +1 -0
  215. package/gel-core/index.cjs +61 -0
  216. package/gel-core/index.cjs.map +1 -0
  217. package/gel-core/index.d.cts +20 -0
  218. package/gel-core/index.d.ts +20 -0
  219. package/gel-core/index.js +21 -0
  220. package/gel-core/index.js.map +1 -0
  221. package/gel-core/indexes.cjs +149 -0
  222. package/gel-core/indexes.cjs.map +1 -0
  223. package/gel-core/indexes.d.cts +79 -0
  224. package/gel-core/indexes.d.ts +79 -0
  225. package/gel-core/indexes.js +121 -0
  226. package/gel-core/indexes.js.map +1 -0
  227. package/gel-core/policies.cjs +58 -0
  228. package/gel-core/policies.cjs.map +1 -0
  229. package/gel-core/policies.d.cts +24 -0
  230. package/gel-core/policies.d.ts +24 -0
  231. package/gel-core/policies.js +33 -0
  232. package/gel-core/policies.js.map +1 -0
  233. package/gel-core/primary-keys.cjs +68 -0
  234. package/gel-core/primary-keys.cjs.map +1 -0
  235. package/gel-core/primary-keys.d.cts +30 -0
  236. package/gel-core/primary-keys.d.ts +30 -0
  237. package/gel-core/primary-keys.js +42 -0
  238. package/gel-core/primary-keys.js.map +1 -0
  239. package/gel-core/query-builders/count.cjs +73 -0
  240. package/gel-core/query-builders/count.cjs.map +1 -0
  241. package/gel-core/query-builders/count.d.cts +25 -0
  242. package/gel-core/query-builders/count.d.ts +25 -0
  243. package/gel-core/query-builders/count.js +49 -0
  244. package/gel-core/query-builders/count.js.map +1 -0
  245. package/gel-core/query-builders/delete.cjs +105 -0
  246. package/gel-core/query-builders/delete.cjs.map +1 -0
  247. package/gel-core/query-builders/delete.d.cts +99 -0
  248. package/gel-core/query-builders/delete.d.ts +99 -0
  249. package/gel-core/query-builders/delete.js +81 -0
  250. package/gel-core/query-builders/delete.js.map +1 -0
  251. package/gel-core/query-builders/index.cjs +35 -0
  252. package/gel-core/query-builders/index.cjs.map +1 -0
  253. package/gel-core/query-builders/index.d.cts +7 -0
  254. package/gel-core/query-builders/index.d.ts +7 -0
  255. package/gel-core/query-builders/index.js +8 -0
  256. package/gel-core/query-builders/index.js.map +1 -0
  257. package/gel-core/query-builders/insert.cjs +218 -0
  258. package/gel-core/query-builders/insert.cjs.map +1 -0
  259. package/gel-core/query-builders/insert.d.cts +116 -0
  260. package/gel-core/query-builders/insert.d.ts +116 -0
  261. package/gel-core/query-builders/insert.js +193 -0
  262. package/gel-core/query-builders/insert.js.map +1 -0
  263. package/gel-core/query-builders/query-builder.cjs +114 -0
  264. package/gel-core/query-builders/query-builder.cjs.map +1 -0
  265. package/gel-core/query-builders/query-builder.d.cts +40 -0
  266. package/gel-core/query-builders/query-builder.d.ts +40 -0
  267. package/gel-core/query-builders/query-builder.js +90 -0
  268. package/gel-core/query-builders/query-builder.js.map +1 -0
  269. package/gel-core/query-builders/query.cjs +139 -0
  270. package/gel-core/query-builders/query.cjs.map +1 -0
  271. package/gel-core/query-builders/query.d.cts +46 -0
  272. package/gel-core/query-builders/query.d.ts +46 -0
  273. package/gel-core/query-builders/query.js +116 -0
  274. package/gel-core/query-builders/query.js.map +1 -0
  275. package/gel-core/query-builders/raw.cjs +57 -0
  276. package/gel-core/query-builders/raw.cjs.map +1 -0
  277. package/gel-core/query-builders/raw.d.cts +22 -0
  278. package/gel-core/query-builders/raw.d.ts +22 -0
  279. package/gel-core/query-builders/raw.js +33 -0
  280. package/gel-core/query-builders/raw.js.map +1 -0
  281. package/gel-core/query-builders/refresh-materialized-view.cjs +77 -0
  282. package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -0
  283. package/gel-core/query-builders/refresh-materialized-view.d.cts +27 -0
  284. package/gel-core/query-builders/refresh-materialized-view.d.ts +27 -0
  285. package/gel-core/query-builders/refresh-materialized-view.js +53 -0
  286. package/gel-core/query-builders/refresh-materialized-view.js.map +1 -0
  287. package/gel-core/query-builders/select.cjs +775 -0
  288. package/gel-core/query-builders/select.cjs.map +1 -0
  289. package/gel-core/query-builders/select.d.cts +721 -0
  290. package/gel-core/query-builders/select.d.ts +721 -0
  291. package/gel-core/query-builders/select.js +748 -0
  292. package/gel-core/query-builders/select.js.map +1 -0
  293. package/gel-core/query-builders/select.types.cjs +17 -0
  294. package/gel-core/query-builders/select.types.cjs.map +1 -0
  295. package/gel-core/query-builders/select.types.d.cts +138 -0
  296. package/gel-core/query-builders/select.types.d.ts +138 -0
  297. package/gel-core/query-builders/select.types.js +1 -0
  298. package/gel-core/query-builders/select.types.js.map +1 -0
  299. package/gel-core/query-builders/update.cjs +226 -0
  300. package/gel-core/query-builders/update.cjs.map +1 -0
  301. package/gel-core/query-builders/update.d.cts +166 -0
  302. package/gel-core/query-builders/update.d.ts +166 -0
  303. package/gel-core/query-builders/update.js +205 -0
  304. package/gel-core/query-builders/update.js.map +1 -0
  305. package/gel-core/roles.cjs +57 -0
  306. package/gel-core/roles.cjs.map +1 -0
  307. package/gel-core/roles.d.cts +13 -0
  308. package/gel-core/roles.d.ts +13 -0
  309. package/gel-core/roles.js +32 -0
  310. package/gel-core/roles.js.map +1 -0
  311. package/gel-core/schema.cjs +74 -0
  312. package/gel-core/schema.cjs.map +1 -0
  313. package/gel-core/schema.d.cts +15 -0
  314. package/gel-core/schema.d.ts +15 -0
  315. package/gel-core/schema.js +48 -0
  316. package/gel-core/schema.js.map +1 -0
  317. package/gel-core/sequence.cjs +52 -0
  318. package/gel-core/sequence.cjs.map +1 -0
  319. package/gel-core/sequence.d.cts +18 -0
  320. package/gel-core/sequence.d.ts +18 -0
  321. package/gel-core/sequence.js +25 -0
  322. package/gel-core/sequence.js.map +1 -0
  323. package/gel-core/session.cjs +94 -0
  324. package/gel-core/session.cjs.map +1 -0
  325. package/gel-core/session.d.cts +56 -0
  326. package/gel-core/session.d.ts +56 -0
  327. package/gel-core/session.js +68 -0
  328. package/gel-core/session.js.map +1 -0
  329. package/gel-core/subquery.cjs +17 -0
  330. package/gel-core/subquery.cjs.map +1 -0
  331. package/gel-core/subquery.d.cts +5 -0
  332. package/gel-core/subquery.d.ts +5 -0
  333. package/gel-core/subquery.js +1 -0
  334. package/gel-core/subquery.js.map +1 -0
  335. package/gel-core/table.cjs +100 -0
  336. package/gel-core/table.cjs.map +1 -0
  337. package/gel-core/table.d.cts +95 -0
  338. package/gel-core/table.d.ts +95 -0
  339. package/gel-core/table.js +71 -0
  340. package/gel-core/table.js.map +1 -0
  341. package/gel-core/unique-constraint.cjs +89 -0
  342. package/gel-core/unique-constraint.cjs.map +1 -0
  343. package/gel-core/unique-constraint.d.cts +25 -0
  344. package/gel-core/unique-constraint.d.ts +25 -0
  345. package/gel-core/unique-constraint.js +61 -0
  346. package/gel-core/unique-constraint.js.map +1 -0
  347. package/gel-core/utils.cjs +100 -0
  348. package/gel-core/utils.cjs.map +1 -0
  349. package/gel-core/utils.d.cts +51 -0
  350. package/gel-core/utils.d.ts +51 -0
  351. package/gel-core/utils.js +74 -0
  352. package/gel-core/utils.js.map +1 -0
  353. package/gel-core/view-base.cjs +33 -0
  354. package/gel-core/view-base.cjs.map +1 -0
  355. package/gel-core/view-base.d.cts +8 -0
  356. package/gel-core/view-base.d.ts +8 -0
  357. package/gel-core/view-base.js +9 -0
  358. package/gel-core/view-base.js.map +1 -0
  359. package/gel-core/view-common.cjs +29 -0
  360. package/gel-core/view-common.cjs.map +1 -0
  361. package/gel-core/view-common.d.cts +1 -0
  362. package/gel-core/view-common.d.ts +1 -0
  363. package/gel-core/view-common.js +5 -0
  364. package/gel-core/view-common.js.map +1 -0
  365. package/gel-core/view.cjs +302 -0
  366. package/gel-core/view.cjs.map +1 -0
  367. package/gel-core/view.d.cts +150 -0
  368. package/gel-core/view.d.ts +150 -0
  369. package/gel-core/view.js +268 -0
  370. package/gel-core/view.js.map +1 -0
  371. package/package.json +1066 -321
  372. package/pg-core/table.cjs +2 -0
  373. package/pg-core/table.cjs.map +1 -1
  374. package/pg-core/table.js +2 -0
  375. package/pg-core/table.js.map +1 -1
  376. package/table.cjs.map +1 -1
  377. package/table.js.map +1 -1
  378. package/version.cjs +1 -1
  379. package/version.d.cts +1 -1
  380. package/version.d.ts +1 -1
  381. package/version.js +1 -1
@@ -0,0 +1,150 @@
1
+ import type { BuildColumns } from "../column-builder.cjs";
2
+ import { entityKind } from "../entity.cjs";
3
+ import type { TypedQueryBuilder } from "../query-builders/query-builder.cjs";
4
+ import type { AddAliasToSelection } from "../query-builders/select.types.cjs";
5
+ import type { ColumnsSelection, SQL } from "../sql/sql.cjs";
6
+ import type { RequireAtLeastOne } from "../utils.cjs";
7
+ import type { GelColumnBuilderBase } from "./columns/common.cjs";
8
+ import { QueryBuilder } from "./query-builders/query-builder.cjs";
9
+ import { GelViewBase } from "./view-base.cjs";
10
+ import { GelViewConfig } from "./view-common.cjs";
11
+ export type ViewWithConfig = RequireAtLeastOne<{
12
+ checkOption: 'local' | 'cascaded';
13
+ securityBarrier: boolean;
14
+ securityInvoker: boolean;
15
+ }>;
16
+ export declare class DefaultViewBuilderCore<TConfig extends {
17
+ name: string;
18
+ columns?: unknown;
19
+ }> {
20
+ protected name: TConfig['name'];
21
+ protected schema: string | undefined;
22
+ static readonly [entityKind]: string;
23
+ readonly _: {
24
+ readonly name: TConfig['name'];
25
+ readonly columns: TConfig['columns'];
26
+ };
27
+ constructor(name: TConfig['name'], schema: string | undefined);
28
+ protected config: {
29
+ with?: ViewWithConfig;
30
+ };
31
+ with(config: ViewWithConfig): this;
32
+ }
33
+ export declare class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{
34
+ name: TName;
35
+ }> {
36
+ static readonly [entityKind]: string;
37
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): GelViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;
38
+ }
39
+ export declare class ManualViewBuilder<TName extends string = string, TColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>> extends DefaultViewBuilderCore<{
40
+ name: TName;
41
+ columns: TColumns;
42
+ }> {
43
+ static readonly [entityKind]: string;
44
+ private columns;
45
+ constructor(name: TName, columns: TColumns, schema: string | undefined);
46
+ existing(): GelViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;
47
+ as(query: SQL): GelViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;
48
+ }
49
+ export type GelMaterializedViewWithConfig = RequireAtLeastOne<{
50
+ fillfactor: number;
51
+ toastTupleTarget: number;
52
+ parallelWorkers: number;
53
+ autovacuumEnabled: boolean;
54
+ vacuumIndexCleanup: 'auto' | 'off' | 'on';
55
+ vacuumTruncate: boolean;
56
+ autovacuumVacuumThreshold: number;
57
+ autovacuumVacuumScaleFactor: number;
58
+ autovacuumVacuumCostDelay: number;
59
+ autovacuumVacuumCostLimit: number;
60
+ autovacuumFreezeMinAge: number;
61
+ autovacuumFreezeMaxAge: number;
62
+ autovacuumFreezeTableAge: number;
63
+ autovacuumMultixactFreezeMinAge: number;
64
+ autovacuumMultixactFreezeMaxAge: number;
65
+ autovacuumMultixactFreezeTableAge: number;
66
+ logAutovacuumMinDuration: number;
67
+ userCatalogTable: boolean;
68
+ }>;
69
+ export declare class MaterializedViewBuilderCore<TConfig extends {
70
+ name: string;
71
+ columns?: unknown;
72
+ }> {
73
+ protected name: TConfig['name'];
74
+ protected schema: string | undefined;
75
+ static readonly [entityKind]: string;
76
+ _: {
77
+ readonly name: TConfig['name'];
78
+ readonly columns: TConfig['columns'];
79
+ };
80
+ constructor(name: TConfig['name'], schema: string | undefined);
81
+ protected config: {
82
+ with?: GelMaterializedViewWithConfig;
83
+ using?: string;
84
+ tablespace?: string;
85
+ withNoData?: boolean;
86
+ };
87
+ using(using: string): this;
88
+ with(config: GelMaterializedViewWithConfig): this;
89
+ tablespace(tablespace: string): this;
90
+ withNoData(): this;
91
+ }
92
+ export declare class MaterializedViewBuilder<TName extends string = string> extends MaterializedViewBuilderCore<{
93
+ name: TName;
94
+ }> {
95
+ static readonly [entityKind]: string;
96
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): GelMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;
97
+ }
98
+ export declare class ManualMaterializedViewBuilder<TName extends string = string, TColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>> extends MaterializedViewBuilderCore<{
99
+ name: TName;
100
+ columns: TColumns;
101
+ }> {
102
+ static readonly [entityKind]: string;
103
+ private columns;
104
+ constructor(name: TName, columns: TColumns, schema: string | undefined);
105
+ existing(): GelMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;
106
+ as(query: SQL): GelMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;
107
+ }
108
+ export declare class GelView<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> extends GelViewBase<TName, TExisting, TSelectedFields> {
109
+ static readonly [entityKind]: string;
110
+ [GelViewConfig]: {
111
+ with?: ViewWithConfig;
112
+ } | undefined;
113
+ constructor({ GelConfig, config }: {
114
+ GelConfig: {
115
+ with?: ViewWithConfig;
116
+ } | undefined;
117
+ config: {
118
+ name: TName;
119
+ schema: string | undefined;
120
+ selectedFields: ColumnsSelection;
121
+ query: SQL | undefined;
122
+ };
123
+ });
124
+ }
125
+ export type GelViewWithSelection<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> = GelView<TName, TExisting, TSelectedFields> & TSelectedFields;
126
+ export declare const GelMaterializedViewConfig: unique symbol;
127
+ export declare class GelMaterializedView<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> extends GelViewBase<TName, TExisting, TSelectedFields> {
128
+ static readonly [entityKind]: string;
129
+ readonly [GelMaterializedViewConfig]: {
130
+ readonly with?: GelMaterializedViewWithConfig;
131
+ readonly using?: string;
132
+ readonly tablespace?: string;
133
+ readonly withNoData?: boolean;
134
+ } | undefined;
135
+ constructor({ GelConfig, config }: {
136
+ GelConfig: {
137
+ with: GelMaterializedViewWithConfig | undefined;
138
+ using: string | undefined;
139
+ tablespace: string | undefined;
140
+ withNoData: boolean | undefined;
141
+ } | undefined;
142
+ config: {
143
+ name: TName;
144
+ schema: string | undefined;
145
+ selectedFields: ColumnsSelection;
146
+ query: SQL | undefined;
147
+ };
148
+ });
149
+ }
150
+ export type GelMaterializedViewWithSelection<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> = GelMaterializedView<TName, TExisting, TSelectedFields> & TSelectedFields;
@@ -0,0 +1,150 @@
1
+ import type { BuildColumns } from "../column-builder.js";
2
+ import { entityKind } from "../entity.js";
3
+ import type { TypedQueryBuilder } from "../query-builders/query-builder.js";
4
+ import type { AddAliasToSelection } from "../query-builders/select.types.js";
5
+ import type { ColumnsSelection, SQL } from "../sql/sql.js";
6
+ import type { RequireAtLeastOne } from "../utils.js";
7
+ import type { GelColumnBuilderBase } from "./columns/common.js";
8
+ import { QueryBuilder } from "./query-builders/query-builder.js";
9
+ import { GelViewBase } from "./view-base.js";
10
+ import { GelViewConfig } from "./view-common.js";
11
+ export type ViewWithConfig = RequireAtLeastOne<{
12
+ checkOption: 'local' | 'cascaded';
13
+ securityBarrier: boolean;
14
+ securityInvoker: boolean;
15
+ }>;
16
+ export declare class DefaultViewBuilderCore<TConfig extends {
17
+ name: string;
18
+ columns?: unknown;
19
+ }> {
20
+ protected name: TConfig['name'];
21
+ protected schema: string | undefined;
22
+ static readonly [entityKind]: string;
23
+ readonly _: {
24
+ readonly name: TConfig['name'];
25
+ readonly columns: TConfig['columns'];
26
+ };
27
+ constructor(name: TConfig['name'], schema: string | undefined);
28
+ protected config: {
29
+ with?: ViewWithConfig;
30
+ };
31
+ with(config: ViewWithConfig): this;
32
+ }
33
+ export declare class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{
34
+ name: TName;
35
+ }> {
36
+ static readonly [entityKind]: string;
37
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): GelViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;
38
+ }
39
+ export declare class ManualViewBuilder<TName extends string = string, TColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>> extends DefaultViewBuilderCore<{
40
+ name: TName;
41
+ columns: TColumns;
42
+ }> {
43
+ static readonly [entityKind]: string;
44
+ private columns;
45
+ constructor(name: TName, columns: TColumns, schema: string | undefined);
46
+ existing(): GelViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;
47
+ as(query: SQL): GelViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;
48
+ }
49
+ export type GelMaterializedViewWithConfig = RequireAtLeastOne<{
50
+ fillfactor: number;
51
+ toastTupleTarget: number;
52
+ parallelWorkers: number;
53
+ autovacuumEnabled: boolean;
54
+ vacuumIndexCleanup: 'auto' | 'off' | 'on';
55
+ vacuumTruncate: boolean;
56
+ autovacuumVacuumThreshold: number;
57
+ autovacuumVacuumScaleFactor: number;
58
+ autovacuumVacuumCostDelay: number;
59
+ autovacuumVacuumCostLimit: number;
60
+ autovacuumFreezeMinAge: number;
61
+ autovacuumFreezeMaxAge: number;
62
+ autovacuumFreezeTableAge: number;
63
+ autovacuumMultixactFreezeMinAge: number;
64
+ autovacuumMultixactFreezeMaxAge: number;
65
+ autovacuumMultixactFreezeTableAge: number;
66
+ logAutovacuumMinDuration: number;
67
+ userCatalogTable: boolean;
68
+ }>;
69
+ export declare class MaterializedViewBuilderCore<TConfig extends {
70
+ name: string;
71
+ columns?: unknown;
72
+ }> {
73
+ protected name: TConfig['name'];
74
+ protected schema: string | undefined;
75
+ static readonly [entityKind]: string;
76
+ _: {
77
+ readonly name: TConfig['name'];
78
+ readonly columns: TConfig['columns'];
79
+ };
80
+ constructor(name: TConfig['name'], schema: string | undefined);
81
+ protected config: {
82
+ with?: GelMaterializedViewWithConfig;
83
+ using?: string;
84
+ tablespace?: string;
85
+ withNoData?: boolean;
86
+ };
87
+ using(using: string): this;
88
+ with(config: GelMaterializedViewWithConfig): this;
89
+ tablespace(tablespace: string): this;
90
+ withNoData(): this;
91
+ }
92
+ export declare class MaterializedViewBuilder<TName extends string = string> extends MaterializedViewBuilderCore<{
93
+ name: TName;
94
+ }> {
95
+ static readonly [entityKind]: string;
96
+ as<TSelectedFields extends ColumnsSelection>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): GelMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;
97
+ }
98
+ export declare class ManualMaterializedViewBuilder<TName extends string = string, TColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>> extends MaterializedViewBuilderCore<{
99
+ name: TName;
100
+ columns: TColumns;
101
+ }> {
102
+ static readonly [entityKind]: string;
103
+ private columns;
104
+ constructor(name: TName, columns: TColumns, schema: string | undefined);
105
+ existing(): GelMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;
106
+ as(query: SQL): GelMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;
107
+ }
108
+ export declare class GelView<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> extends GelViewBase<TName, TExisting, TSelectedFields> {
109
+ static readonly [entityKind]: string;
110
+ [GelViewConfig]: {
111
+ with?: ViewWithConfig;
112
+ } | undefined;
113
+ constructor({ GelConfig, config }: {
114
+ GelConfig: {
115
+ with?: ViewWithConfig;
116
+ } | undefined;
117
+ config: {
118
+ name: TName;
119
+ schema: string | undefined;
120
+ selectedFields: ColumnsSelection;
121
+ query: SQL | undefined;
122
+ };
123
+ });
124
+ }
125
+ export type GelViewWithSelection<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> = GelView<TName, TExisting, TSelectedFields> & TSelectedFields;
126
+ export declare const GelMaterializedViewConfig: unique symbol;
127
+ export declare class GelMaterializedView<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> extends GelViewBase<TName, TExisting, TSelectedFields> {
128
+ static readonly [entityKind]: string;
129
+ readonly [GelMaterializedViewConfig]: {
130
+ readonly with?: GelMaterializedViewWithConfig;
131
+ readonly using?: string;
132
+ readonly tablespace?: string;
133
+ readonly withNoData?: boolean;
134
+ } | undefined;
135
+ constructor({ GelConfig, config }: {
136
+ GelConfig: {
137
+ with: GelMaterializedViewWithConfig | undefined;
138
+ using: string | undefined;
139
+ tablespace: string | undefined;
140
+ withNoData: boolean | undefined;
141
+ } | undefined;
142
+ config: {
143
+ name: TName;
144
+ schema: string | undefined;
145
+ selectedFields: ColumnsSelection;
146
+ query: SQL | undefined;
147
+ };
148
+ });
149
+ }
150
+ export type GelMaterializedViewWithSelection<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> = GelMaterializedView<TName, TExisting, TSelectedFields> & TSelectedFields;
@@ -0,0 +1,268 @@
1
+ import { entityKind, is } from "../entity.js";
2
+ import { SelectionProxyHandler } from "../selection-proxy.js";
3
+ import { getTableColumns } from "../utils.js";
4
+ import { QueryBuilder } from "./query-builders/query-builder.js";
5
+ import { gelTable } from "./table.js";
6
+ import { GelViewBase } from "./view-base.js";
7
+ import { GelViewConfig } from "./view-common.js";
8
+ class DefaultViewBuilderCore {
9
+ constructor(name, schema) {
10
+ this.name = name;
11
+ this.schema = schema;
12
+ }
13
+ static [entityKind] = "GelDefaultViewBuilderCore";
14
+ config = {};
15
+ with(config) {
16
+ this.config.with = config;
17
+ return this;
18
+ }
19
+ }
20
+ class ViewBuilder extends DefaultViewBuilderCore {
21
+ static [entityKind] = "GelViewBuilder";
22
+ as(qb) {
23
+ if (typeof qb === "function") {
24
+ qb = qb(new QueryBuilder());
25
+ }
26
+ const selectionProxy = new SelectionProxyHandler({
27
+ alias: this.name,
28
+ sqlBehavior: "error",
29
+ sqlAliasedBehavior: "alias",
30
+ replaceOriginalName: true
31
+ });
32
+ const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);
33
+ return new Proxy(
34
+ new GelView({
35
+ GelConfig: this.config,
36
+ config: {
37
+ name: this.name,
38
+ schema: this.schema,
39
+ selectedFields: aliasedSelection,
40
+ query: qb.getSQL().inlineParams()
41
+ }
42
+ }),
43
+ selectionProxy
44
+ );
45
+ }
46
+ }
47
+ class ManualViewBuilder extends DefaultViewBuilderCore {
48
+ static [entityKind] = "GelManualViewBuilder";
49
+ columns;
50
+ constructor(name, columns, schema) {
51
+ super(name, schema);
52
+ this.columns = getTableColumns(gelTable(name, columns));
53
+ }
54
+ existing() {
55
+ return new Proxy(
56
+ new GelView({
57
+ GelConfig: void 0,
58
+ config: {
59
+ name: this.name,
60
+ schema: this.schema,
61
+ selectedFields: this.columns,
62
+ query: void 0
63
+ }
64
+ }),
65
+ new SelectionProxyHandler({
66
+ alias: this.name,
67
+ sqlBehavior: "error",
68
+ sqlAliasedBehavior: "alias",
69
+ replaceOriginalName: true
70
+ })
71
+ );
72
+ }
73
+ as(query) {
74
+ return new Proxy(
75
+ new GelView({
76
+ GelConfig: this.config,
77
+ config: {
78
+ name: this.name,
79
+ schema: this.schema,
80
+ selectedFields: this.columns,
81
+ query: query.inlineParams()
82
+ }
83
+ }),
84
+ new SelectionProxyHandler({
85
+ alias: this.name,
86
+ sqlBehavior: "error",
87
+ sqlAliasedBehavior: "alias",
88
+ replaceOriginalName: true
89
+ })
90
+ );
91
+ }
92
+ }
93
+ class MaterializedViewBuilderCore {
94
+ constructor(name, schema) {
95
+ this.name = name;
96
+ this.schema = schema;
97
+ }
98
+ static [entityKind] = "GelMaterializedViewBuilderCore";
99
+ config = {};
100
+ using(using) {
101
+ this.config.using = using;
102
+ return this;
103
+ }
104
+ with(config) {
105
+ this.config.with = config;
106
+ return this;
107
+ }
108
+ tablespace(tablespace) {
109
+ this.config.tablespace = tablespace;
110
+ return this;
111
+ }
112
+ withNoData() {
113
+ this.config.withNoData = true;
114
+ return this;
115
+ }
116
+ }
117
+ class MaterializedViewBuilder extends MaterializedViewBuilderCore {
118
+ static [entityKind] = "GelMaterializedViewBuilder";
119
+ as(qb) {
120
+ if (typeof qb === "function") {
121
+ qb = qb(new QueryBuilder());
122
+ }
123
+ const selectionProxy = new SelectionProxyHandler({
124
+ alias: this.name,
125
+ sqlBehavior: "error",
126
+ sqlAliasedBehavior: "alias",
127
+ replaceOriginalName: true
128
+ });
129
+ const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);
130
+ return new Proxy(
131
+ new GelMaterializedView({
132
+ GelConfig: {
133
+ with: this.config.with,
134
+ using: this.config.using,
135
+ tablespace: this.config.tablespace,
136
+ withNoData: this.config.withNoData
137
+ },
138
+ config: {
139
+ name: this.name,
140
+ schema: this.schema,
141
+ selectedFields: aliasedSelection,
142
+ query: qb.getSQL().inlineParams()
143
+ }
144
+ }),
145
+ selectionProxy
146
+ );
147
+ }
148
+ }
149
+ class ManualMaterializedViewBuilder extends MaterializedViewBuilderCore {
150
+ static [entityKind] = "GelManualMaterializedViewBuilder";
151
+ columns;
152
+ constructor(name, columns, schema) {
153
+ super(name, schema);
154
+ this.columns = getTableColumns(gelTable(name, columns));
155
+ }
156
+ existing() {
157
+ return new Proxy(
158
+ new GelMaterializedView({
159
+ GelConfig: {
160
+ tablespace: this.config.tablespace,
161
+ using: this.config.using,
162
+ with: this.config.with,
163
+ withNoData: this.config.withNoData
164
+ },
165
+ config: {
166
+ name: this.name,
167
+ schema: this.schema,
168
+ selectedFields: this.columns,
169
+ query: void 0
170
+ }
171
+ }),
172
+ new SelectionProxyHandler({
173
+ alias: this.name,
174
+ sqlBehavior: "error",
175
+ sqlAliasedBehavior: "alias",
176
+ replaceOriginalName: true
177
+ })
178
+ );
179
+ }
180
+ as(query) {
181
+ return new Proxy(
182
+ new GelMaterializedView({
183
+ GelConfig: {
184
+ tablespace: this.config.tablespace,
185
+ using: this.config.using,
186
+ with: this.config.with,
187
+ withNoData: this.config.withNoData
188
+ },
189
+ config: {
190
+ name: this.name,
191
+ schema: this.schema,
192
+ selectedFields: this.columns,
193
+ query: query.inlineParams()
194
+ }
195
+ }),
196
+ new SelectionProxyHandler({
197
+ alias: this.name,
198
+ sqlBehavior: "error",
199
+ sqlAliasedBehavior: "alias",
200
+ replaceOriginalName: true
201
+ })
202
+ );
203
+ }
204
+ }
205
+ class GelView extends GelViewBase {
206
+ static [entityKind] = "GelView";
207
+ [GelViewConfig];
208
+ constructor({ GelConfig, config }) {
209
+ super(config);
210
+ if (GelConfig) {
211
+ this[GelViewConfig] = {
212
+ with: GelConfig.with
213
+ };
214
+ }
215
+ }
216
+ }
217
+ const GelMaterializedViewConfig = Symbol.for("drizzle:GelMaterializedViewConfig");
218
+ class GelMaterializedView extends GelViewBase {
219
+ static [entityKind] = "GelMaterializedView";
220
+ [GelMaterializedViewConfig];
221
+ constructor({ GelConfig, config }) {
222
+ super(config);
223
+ this[GelMaterializedViewConfig] = {
224
+ with: GelConfig?.with,
225
+ using: GelConfig?.using,
226
+ tablespace: GelConfig?.tablespace,
227
+ withNoData: GelConfig?.withNoData
228
+ };
229
+ }
230
+ }
231
+ function gelViewWithSchema(name, selection, schema) {
232
+ if (selection) {
233
+ return new ManualViewBuilder(name, selection, schema);
234
+ }
235
+ return new ViewBuilder(name, schema);
236
+ }
237
+ function gelMaterializedViewWithSchema(name, selection, schema) {
238
+ if (selection) {
239
+ return new ManualMaterializedViewBuilder(name, selection, schema);
240
+ }
241
+ return new MaterializedViewBuilder(name, schema);
242
+ }
243
+ function gelView(name, columns) {
244
+ return gelViewWithSchema(name, columns, void 0);
245
+ }
246
+ function gelMaterializedView(name, columns) {
247
+ return gelMaterializedViewWithSchema(name, columns, void 0);
248
+ }
249
+ function isGelView(obj) {
250
+ return is(obj, GelView);
251
+ }
252
+ function isGelMaterializedView(obj) {
253
+ return is(obj, GelMaterializedView);
254
+ }
255
+ export {
256
+ DefaultViewBuilderCore,
257
+ GelMaterializedView,
258
+ GelMaterializedViewConfig,
259
+ GelView,
260
+ ManualMaterializedViewBuilder,
261
+ ManualViewBuilder,
262
+ MaterializedViewBuilder,
263
+ MaterializedViewBuilderCore,
264
+ ViewBuilder,
265
+ gelMaterializedViewWithSchema,
266
+ gelViewWithSchema
267
+ };
268
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/gel-core/view.ts"],"sourcesContent":["import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AddAliasToSelection } from '~/query-builders/select.types.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQL } from '~/sql/sql.ts';\nimport { getTableColumns } from '~/utils.ts';\nimport type { RequireAtLeastOne } from '~/utils.ts';\nimport type { GelColumn, GelColumnBuilderBase } from './columns/common.ts';\nimport { QueryBuilder } from './query-builders/query-builder.ts';\nimport { gelTable } from './table.ts';\nimport { GelViewBase } from './view-base.ts';\nimport { GelViewConfig } from './view-common.ts';\n\nexport type ViewWithConfig = RequireAtLeastOne<{\n\tcheckOption: 'local' | 'cascaded';\n\tsecurityBarrier: boolean;\n\tsecurityInvoker: boolean;\n}>;\n\nexport class DefaultViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'GelDefaultViewBuilderCore';\n\n\tdeclare readonly _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twith?: ViewWithConfig;\n\t} = {};\n\n\twith(config: ViewWithConfig): this {\n\t\tthis.config.with = config;\n\t\treturn this;\n\t}\n}\n\nexport class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{ name: TName }> {\n\tstatic override readonly [entityKind]: string = 'GelViewBuilder';\n\n\tas<TSelectedFields extends ColumnsSelection>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): GelViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew GelView({\n\t\t\t\tGelConfig: this.config,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as GelViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;\n\t}\n}\n\nexport class ManualViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>,\n> extends DefaultViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'GelManualViewBuilder';\n\n\tprivate columns: Record<string, GelColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(gelTable(name, columns));\n\t}\n\n\texisting(): GelViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>> {\n\t\treturn new Proxy(\n\t\t\tnew GelView({\n\t\t\t\tGelConfig: undefined,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as GelViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;\n\t}\n\n\tas(query: SQL): GelViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>> {\n\t\treturn new Proxy(\n\t\t\tnew GelView({\n\t\t\t\tGelConfig: this.config,\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as GelViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;\n\t}\n}\n\nexport type GelMaterializedViewWithConfig = RequireAtLeastOne<{\n\tfillfactor: number;\n\ttoastTupleTarget: number;\n\tparallelWorkers: number;\n\tautovacuumEnabled: boolean;\n\tvacuumIndexCleanup: 'auto' | 'off' | 'on';\n\tvacuumTruncate: boolean;\n\tautovacuumVacuumThreshold: number;\n\tautovacuumVacuumScaleFactor: number;\n\tautovacuumVacuumCostDelay: number;\n\tautovacuumVacuumCostLimit: number;\n\tautovacuumFreezeMinAge: number;\n\tautovacuumFreezeMaxAge: number;\n\tautovacuumFreezeTableAge: number;\n\tautovacuumMultixactFreezeMinAge: number;\n\tautovacuumMultixactFreezeMaxAge: number;\n\tautovacuumMultixactFreezeTableAge: number;\n\tlogAutovacuumMinDuration: number;\n\tuserCatalogTable: boolean;\n}>;\n\nexport class MaterializedViewBuilderCore<TConfig extends { name: string; columns?: unknown }> {\n\tstatic readonly [entityKind]: string = 'GelMaterializedViewBuilderCore';\n\n\tdeclare _: {\n\t\treadonly name: TConfig['name'];\n\t\treadonly columns: TConfig['columns'];\n\t};\n\n\tconstructor(\n\t\tprotected name: TConfig['name'],\n\t\tprotected schema: string | undefined,\n\t) {}\n\n\tprotected config: {\n\t\twith?: GelMaterializedViewWithConfig;\n\t\tusing?: string;\n\t\ttablespace?: string;\n\t\twithNoData?: boolean;\n\t} = {};\n\n\tusing(using: string): this {\n\t\tthis.config.using = using;\n\t\treturn this;\n\t}\n\n\twith(config: GelMaterializedViewWithConfig): this {\n\t\tthis.config.with = config;\n\t\treturn this;\n\t}\n\n\ttablespace(tablespace: string): this {\n\t\tthis.config.tablespace = tablespace;\n\t\treturn this;\n\t}\n\n\twithNoData(): this {\n\t\tthis.config.withNoData = true;\n\t\treturn this;\n\t}\n}\n\nexport class MaterializedViewBuilder<TName extends string = string>\n\textends MaterializedViewBuilderCore<{ name: TName }>\n{\n\tstatic override readonly [entityKind]: string = 'GelMaterializedViewBuilder';\n\n\tas<TSelectedFields extends ColumnsSelection>(\n\t\tqb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),\n\t): GelMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>> {\n\t\tif (typeof qb === 'function') {\n\t\t\tqb = qb(new QueryBuilder());\n\t\t}\n\t\tconst selectionProxy = new SelectionProxyHandler<TSelectedFields>({\n\t\t\talias: this.name,\n\t\t\tsqlBehavior: 'error',\n\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\treplaceOriginalName: true,\n\t\t});\n\t\tconst aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);\n\t\treturn new Proxy(\n\t\t\tnew GelMaterializedView({\n\t\t\t\tGelConfig: {\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: aliasedSelection,\n\t\t\t\t\tquery: qb.getSQL().inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tselectionProxy as any,\n\t\t) as GelMaterializedViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;\n\t}\n}\n\nexport class ManualMaterializedViewBuilder<\n\tTName extends string = string,\n\tTColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>,\n> extends MaterializedViewBuilderCore<{ name: TName; columns: TColumns }> {\n\tstatic override readonly [entityKind]: string = 'GelManualMaterializedViewBuilder';\n\n\tprivate columns: Record<string, GelColumn>;\n\n\tconstructor(\n\t\tname: TName,\n\t\tcolumns: TColumns,\n\t\tschema: string | undefined,\n\t) {\n\t\tsuper(name, schema);\n\t\tthis.columns = getTableColumns(gelTable(name, columns));\n\t}\n\n\texisting(): GelMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>> {\n\t\treturn new Proxy(\n\t\t\tnew GelMaterializedView({\n\t\t\t\tGelConfig: {\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as GelMaterializedViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;\n\t}\n\n\tas(query: SQL): GelMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>> {\n\t\treturn new Proxy(\n\t\t\tnew GelMaterializedView({\n\t\t\t\tGelConfig: {\n\t\t\t\t\ttablespace: this.config.tablespace,\n\t\t\t\t\tusing: this.config.using,\n\t\t\t\t\twith: this.config.with,\n\t\t\t\t\twithNoData: this.config.withNoData,\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tschema: this.schema,\n\t\t\t\t\tselectedFields: this.columns,\n\t\t\t\t\tquery: query.inlineParams(),\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew SelectionProxyHandler({\n\t\t\t\talias: this.name,\n\t\t\t\tsqlBehavior: 'error',\n\t\t\t\tsqlAliasedBehavior: 'alias',\n\t\t\t\treplaceOriginalName: true,\n\t\t\t}),\n\t\t) as GelMaterializedViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;\n\t}\n}\n\nexport class GelView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends GelViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'GelView';\n\n\t[GelViewConfig]: {\n\t\twith?: ViewWithConfig;\n\t} | undefined;\n\n\tconstructor({ GelConfig, config }: {\n\t\tGelConfig: {\n\t\t\twith?: ViewWithConfig;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tif (GelConfig) {\n\t\t\tthis[GelViewConfig] = {\n\t\t\t\twith: GelConfig.with,\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport type GelViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = GelView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\nexport const GelMaterializedViewConfig = Symbol.for('drizzle:GelMaterializedViewConfig');\n\nexport class GelMaterializedView<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> extends GelViewBase<TName, TExisting, TSelectedFields> {\n\tstatic override readonly [entityKind]: string = 'GelMaterializedView';\n\n\treadonly [GelMaterializedViewConfig]: {\n\t\treadonly with?: GelMaterializedViewWithConfig;\n\t\treadonly using?: string;\n\t\treadonly tablespace?: string;\n\t\treadonly withNoData?: boolean;\n\t} | undefined;\n\n\tconstructor({ GelConfig, config }: {\n\t\tGelConfig: {\n\t\t\twith: GelMaterializedViewWithConfig | undefined;\n\t\t\tusing: string | undefined;\n\t\t\ttablespace: string | undefined;\n\t\t\twithNoData: boolean | undefined;\n\t\t} | undefined;\n\t\tconfig: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: ColumnsSelection;\n\t\t\tquery: SQL | undefined;\n\t\t};\n\t}) {\n\t\tsuper(config);\n\t\tthis[GelMaterializedViewConfig] = {\n\t\t\twith: GelConfig?.with,\n\t\t\tusing: GelConfig?.using,\n\t\t\ttablespace: GelConfig?.tablespace,\n\t\t\twithNoData: GelConfig?.withNoData,\n\t\t};\n\t}\n}\n\nexport type GelMaterializedViewWithSelection<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = GelMaterializedView<TName, TExisting, TSelectedFields> & TSelectedFields;\n\n/** @internal */\nexport function gelViewWithSchema(\n\tname: string,\n\tselection: Record<string, GelColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): ViewBuilder | ManualViewBuilder {\n\tif (selection) {\n\t\treturn new ManualViewBuilder(name, selection, schema);\n\t}\n\treturn new ViewBuilder(name, schema);\n}\n\n/** @internal */\nexport function gelMaterializedViewWithSchema(\n\tname: string,\n\tselection: Record<string, GelColumnBuilderBase> | undefined,\n\tschema: string | undefined,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\tif (selection) {\n\t\treturn new ManualMaterializedViewBuilder(name, selection, schema);\n\t}\n\treturn new MaterializedViewBuilder(name, schema);\n}\n\n// TODO not implemented\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction gelView<TName extends string>(name: TName): ViewBuilder<TName>;\nfunction gelView<TName extends string, TColumns extends Record<string, GelColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualViewBuilder<TName, TColumns>;\nfunction gelView(name: string, columns?: Record<string, GelColumnBuilderBase>): ViewBuilder | ManualViewBuilder {\n\treturn gelViewWithSchema(name, columns, undefined);\n}\n\n// TODO not implemented\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction gelMaterializedView<TName extends string>(name: TName): MaterializedViewBuilder<TName>;\nfunction gelMaterializedView<TName extends string, TColumns extends Record<string, GelColumnBuilderBase>>(\n\tname: TName,\n\tcolumns: TColumns,\n): ManualMaterializedViewBuilder<TName, TColumns>;\nfunction gelMaterializedView(\n\tname: string,\n\tcolumns?: Record<string, GelColumnBuilderBase>,\n): MaterializedViewBuilder | ManualMaterializedViewBuilder {\n\treturn gelMaterializedViewWithSchema(name, columns, undefined);\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction isGelView(obj: unknown): obj is GelView {\n\treturn is(obj, GelView);\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction isGelMaterializedView(obj: unknown): obj is GelMaterializedView {\n\treturn is(obj, GelMaterializedView);\n}\n"],"mappings":"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","names":[]}