kysely 0.21.6 → 0.23.0

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 (380) hide show
  1. package/CONTRIBUTING.md +70 -0
  2. package/README.md +27 -4
  3. package/dist/cjs/dialect/database-introspector.d.ts +4 -0
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +6 -3
  5. package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
  6. package/dist/cjs/dialect/postgres/postgres-driver.js +7 -2
  7. package/dist/cjs/dialect/postgres/postgres-introspector.js +8 -0
  8. package/dist/cjs/dialect/sqlite/sqlite-driver.js +4 -3
  9. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
  10. package/dist/cjs/driver/database-connection.d.ts +6 -2
  11. package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +2 -3
  12. package/dist/cjs/dynamic/dynamic-reference-builder.js +1 -1
  13. package/dist/cjs/expression/expression.d.ts +100 -0
  14. package/dist/cjs/expression/expression.js +16 -0
  15. package/dist/cjs/index.d.ts +17 -8
  16. package/dist/cjs/index.js +15 -4
  17. package/dist/cjs/kysely.d.ts +3 -3
  18. package/dist/cjs/kysely.js +3 -3
  19. package/dist/cjs/migration/file-migration-provider.js +11 -4
  20. package/dist/cjs/operation-node/aggregate-function-node.d.ts +25 -0
  21. package/dist/cjs/operation-node/aggregate-function-node.js +48 -0
  22. package/dist/cjs/operation-node/alias-node.d.ts +3 -10
  23. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -2
  24. package/dist/cjs/operation-node/alter-table-node.d.ts +5 -7
  25. package/dist/cjs/operation-node/alter-table-node.js +9 -1
  26. package/dist/cjs/operation-node/and-node.d.ts +3 -4
  27. package/dist/cjs/operation-node/binary-operation-node.d.ts +14 -0
  28. package/dist/cjs/operation-node/binary-operation-node.js +20 -0
  29. package/dist/cjs/operation-node/check-constraint-node.d.ts +2 -3
  30. package/dist/cjs/operation-node/column-definition-node.d.ts +6 -5
  31. package/dist/cjs/operation-node/column-definition-node.js +16 -0
  32. package/dist/cjs/operation-node/column-update-node.d.ts +2 -3
  33. package/dist/cjs/operation-node/common-table-expression-node.d.ts +2 -4
  34. package/dist/cjs/operation-node/create-index-node.d.ts +1 -3
  35. package/dist/cjs/operation-node/create-table-node.d.ts +4 -5
  36. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  37. package/dist/cjs/operation-node/create-type-node.js +1 -2
  38. package/dist/cjs/operation-node/default-value-node.d.ts +2 -4
  39. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
  40. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  41. package/dist/cjs/operation-node/drop-type-node.js +1 -2
  42. package/dist/cjs/operation-node/explain-node.d.ts +2 -4
  43. package/dist/cjs/operation-node/explain-node.js +1 -1
  44. package/dist/cjs/operation-node/from-node.d.ts +3 -4
  45. package/dist/cjs/operation-node/generated-node.d.ts +2 -3
  46. package/dist/cjs/operation-node/group-by-item-node.d.ts +2 -3
  47. package/dist/cjs/operation-node/group-by-node.d.ts +1 -1
  48. package/dist/cjs/operation-node/group-by-node.js +3 -3
  49. package/dist/cjs/operation-node/having-node.d.ts +3 -4
  50. package/dist/cjs/operation-node/having-node.js +4 -4
  51. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -4
  52. package/dist/cjs/operation-node/join-node.d.ts +5 -9
  53. package/dist/cjs/operation-node/join-node.js +6 -6
  54. package/dist/cjs/operation-node/on-conflict-node.d.ts +5 -7
  55. package/dist/cjs/operation-node/on-conflict-node.js +12 -12
  56. package/dist/cjs/operation-node/on-node.d.ts +3 -4
  57. package/dist/cjs/operation-node/on-node.js +4 -4
  58. package/dist/cjs/operation-node/operation-node-transformer.d.ts +14 -4
  59. package/dist/cjs/operation-node/operation-node-transformer.js +60 -20
  60. package/dist/cjs/operation-node/operation-node-visitor.d.ts +14 -4
  61. package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
  62. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  63. package/dist/cjs/operation-node/operator-node.d.ts +5 -3
  64. package/dist/cjs/operation-node/operator-node.js +3 -5
  65. package/dist/cjs/operation-node/or-node.d.ts +3 -4
  66. package/dist/cjs/operation-node/order-by-item-node.d.ts +3 -5
  67. package/dist/cjs/operation-node/over-node.d.ts +19 -0
  68. package/dist/cjs/operation-node/over-node.js +35 -0
  69. package/dist/cjs/operation-node/parens-node.d.ts +2 -3
  70. package/dist/cjs/operation-node/partition-by-item-node.d.ts +13 -0
  71. package/dist/cjs/operation-node/{filter-node.js → partition-by-item-node.js} +6 -8
  72. package/dist/cjs/operation-node/partition-by-node.d.ts +14 -0
  73. package/dist/cjs/operation-node/partition-by-node.js +24 -0
  74. package/dist/cjs/operation-node/query-node.d.ts +2 -3
  75. package/dist/cjs/operation-node/query-node.js +6 -6
  76. package/dist/cjs/operation-node/select-modifier-node.d.ts +2 -3
  77. package/dist/cjs/operation-node/select-modifier-node.js +1 -1
  78. package/dist/cjs/operation-node/select-query-node.d.ts +8 -9
  79. package/dist/cjs/operation-node/select-query-node.js +14 -14
  80. package/dist/cjs/operation-node/selection-node.d.ts +2 -3
  81. package/dist/cjs/operation-node/set-operation-node.d.ts +15 -0
  82. package/dist/cjs/operation-node/{union-node.js → set-operation-node.js} +7 -6
  83. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +3 -0
  84. package/dist/cjs/operation-node/{operation-node-utils.js → simple-reference-expression-node.js} +0 -0
  85. package/dist/cjs/operation-node/unary-operation-node.d.ts +13 -0
  86. package/dist/cjs/operation-node/unary-operation-node.js +19 -0
  87. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  88. package/dist/cjs/operation-node/value-list-node.d.ts +2 -8
  89. package/dist/cjs/operation-node/where-node.d.ts +3 -4
  90. package/dist/cjs/operation-node/where-node.js +4 -4
  91. package/dist/cjs/parser/binary-operation-parser.d.ts +20 -0
  92. package/dist/cjs/parser/binary-operation-parser.js +99 -0
  93. package/dist/cjs/parser/coalesce-parser.d.ts +4 -0
  94. package/dist/cjs/parser/coalesce-parser.js +11 -0
  95. package/dist/cjs/parser/data-type-parser.d.ts +5 -5
  96. package/dist/cjs/parser/default-value-parser.d.ts +4 -5
  97. package/dist/cjs/parser/default-value-parser.js +2 -2
  98. package/dist/cjs/parser/expression-parser.d.ts +10 -0
  99. package/dist/cjs/parser/{complex-expression-parser.js → expression-parser.js} +9 -8
  100. package/dist/cjs/parser/group-by-parser.d.ts +1 -1
  101. package/dist/cjs/parser/group-by-parser.js +2 -2
  102. package/dist/cjs/parser/identifier-parser.d.ts +2 -0
  103. package/dist/cjs/parser/identifier-parser.js +23 -0
  104. package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
  105. package/dist/cjs/parser/insert-values-parser.js +2 -2
  106. package/dist/cjs/parser/join-parser.js +2 -2
  107. package/dist/cjs/parser/order-by-parser.d.ts +2 -2
  108. package/dist/cjs/parser/parse-utils.d.ts +2 -0
  109. package/dist/cjs/parser/parse-utils.js +9 -1
  110. package/dist/cjs/parser/partition-by-parser.d.ts +6 -0
  111. package/dist/cjs/parser/partition-by-parser.js +9 -0
  112. package/dist/cjs/parser/reference-parser.d.ts +14 -13
  113. package/dist/cjs/parser/reference-parser.js +12 -9
  114. package/dist/cjs/parser/select-parser.d.ts +6 -6
  115. package/dist/cjs/parser/select-parser.js +2 -2
  116. package/dist/cjs/parser/set-operation-parser.d.ts +3 -0
  117. package/dist/cjs/parser/set-operation-parser.js +8 -0
  118. package/dist/cjs/parser/table-parser.d.ts +11 -12
  119. package/dist/cjs/parser/table-parser.js +2 -2
  120. package/dist/cjs/parser/unary-operation-parser.d.ts +5 -0
  121. package/dist/cjs/parser/unary-operation-parser.js +17 -0
  122. package/dist/cjs/parser/update-set-parser.d.ts +1 -1
  123. package/dist/cjs/parser/value-parser.d.ts +5 -8
  124. package/dist/cjs/parser/value-parser.js +4 -4
  125. package/dist/cjs/parser/with-parser.d.ts +3 -4
  126. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  127. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +348 -0
  128. package/dist/cjs/query-builder/aggregate-function-builder.js +298 -0
  129. package/dist/cjs/query-builder/delete-query-builder.d.ts +20 -20
  130. package/dist/cjs/query-builder/delete-query-builder.js +19 -16
  131. package/dist/cjs/query-builder/expression-builder.d.ts +3 -3
  132. package/dist/cjs/query-builder/expression-builder.js +3 -3
  133. package/dist/cjs/query-builder/function-module.d.ts +241 -0
  134. package/dist/cjs/query-builder/function-module.js +214 -0
  135. package/dist/cjs/query-builder/having-interface.d.ts +9 -8
  136. package/dist/cjs/query-builder/insert-query-builder.d.ts +7 -6
  137. package/dist/cjs/query-builder/insert-query-builder.js +11 -9
  138. package/dist/cjs/query-builder/insert-result.d.ts +8 -1
  139. package/dist/cjs/query-builder/insert-result.js +12 -1
  140. package/dist/cjs/query-builder/join-builder.d.ts +9 -8
  141. package/dist/cjs/query-builder/join-builder.js +10 -9
  142. package/dist/cjs/query-builder/on-conflict-builder.d.ts +25 -24
  143. package/dist/cjs/query-builder/on-conflict-builder.js +18 -17
  144. package/dist/cjs/query-builder/over-builder.d.ts +59 -0
  145. package/dist/cjs/query-builder/over-builder.js +50 -0
  146. package/dist/cjs/query-builder/select-query-builder.d.ts +138 -47
  147. package/dist/cjs/query-builder/select-query-builder.js +122 -40
  148. package/dist/cjs/query-builder/update-query-builder.d.ts +20 -20
  149. package/dist/cjs/query-builder/update-query-builder.js +19 -16
  150. package/dist/cjs/query-builder/where-interface.d.ts +12 -11
  151. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  152. package/dist/cjs/query-compiler/default-query-compiler.d.ts +15 -5
  153. package/dist/cjs/query-compiler/default-query-compiler.js +78 -47
  154. package/dist/cjs/query-executor/query-executor-base.js +16 -1
  155. package/dist/cjs/raw-builder/raw-builder.d.ts +49 -13
  156. package/dist/cjs/raw-builder/raw-builder.js +24 -14
  157. package/dist/cjs/raw-builder/sql.d.ts +15 -7
  158. package/dist/cjs/raw-builder/sql.js +6 -0
  159. package/dist/cjs/schema/alter-column-builder.d.ts +28 -0
  160. package/dist/cjs/schema/alter-column-builder.js +55 -0
  161. package/dist/cjs/schema/alter-table-builder.d.ts +39 -341
  162. package/dist/cjs/schema/alter-table-builder.js +65 -280
  163. package/dist/cjs/schema/column-definition-builder.d.ts +43 -155
  164. package/dist/cjs/schema/column-definition-builder.js +189 -0
  165. package/dist/cjs/schema/create-index-builder.d.ts +2 -2
  166. package/dist/cjs/schema/create-table-builder.d.ts +38 -5
  167. package/dist/cjs/schema/create-table-builder.js +36 -1
  168. package/dist/cjs/schema/create-view-builder.d.ts +3 -2
  169. package/dist/cjs/schema/schema.d.ts +2 -2
  170. package/dist/cjs/schema/schema.js +6 -5
  171. package/dist/cjs/util/compilable.d.ts +2 -2
  172. package/dist/cjs/util/explainable.d.ts +2 -2
  173. package/dist/cjs/util/infer-result.d.ts +46 -0
  174. package/dist/cjs/util/infer-result.js +2 -0
  175. package/dist/cjs/util/log-once.d.ts +5 -0
  176. package/dist/cjs/util/log-once.js +16 -0
  177. package/dist/cjs/util/object-utils.d.ts +1 -0
  178. package/dist/cjs/util/object-utils.js +5 -1
  179. package/dist/cjs/util/type-utils.d.ts +3 -13
  180. package/dist/esm/dialect/database-introspector.d.ts +4 -0
  181. package/dist/esm/dialect/mysql/mysql-driver.js +6 -3
  182. package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
  183. package/dist/esm/dialect/postgres/postgres-driver.js +7 -2
  184. package/dist/esm/dialect/postgres/postgres-introspector.js +8 -0
  185. package/dist/esm/dialect/sqlite/sqlite-driver.js +4 -3
  186. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  187. package/dist/esm/driver/database-connection.d.ts +6 -2
  188. package/dist/esm/dynamic/dynamic-reference-builder.d.ts +2 -3
  189. package/dist/esm/dynamic/dynamic-reference-builder.js +2 -2
  190. package/dist/esm/expression/expression.d.ts +100 -0
  191. package/dist/esm/expression/expression.js +12 -0
  192. package/dist/esm/index.d.ts +17 -8
  193. package/dist/esm/index.js +13 -4
  194. package/dist/esm/kysely.d.ts +3 -3
  195. package/dist/esm/kysely.js +3 -3
  196. package/dist/esm/migration/file-migration-provider.js +11 -4
  197. package/dist/esm/operation-node/aggregate-function-node.d.ts +25 -0
  198. package/dist/esm/operation-node/aggregate-function-node.js +46 -0
  199. package/dist/esm/operation-node/alias-node.d.ts +3 -10
  200. package/dist/esm/operation-node/alter-column-node.d.ts +1 -2
  201. package/dist/esm/operation-node/alter-table-node.d.ts +5 -7
  202. package/dist/esm/operation-node/alter-table-node.js +9 -1
  203. package/dist/esm/operation-node/and-node.d.ts +3 -4
  204. package/dist/esm/operation-node/binary-operation-node.d.ts +14 -0
  205. package/dist/esm/operation-node/binary-operation-node.js +18 -0
  206. package/dist/esm/operation-node/check-constraint-node.d.ts +2 -3
  207. package/dist/esm/operation-node/column-definition-node.d.ts +6 -5
  208. package/dist/esm/operation-node/column-definition-node.js +16 -0
  209. package/dist/esm/operation-node/column-update-node.d.ts +2 -3
  210. package/dist/esm/operation-node/common-table-expression-node.d.ts +2 -4
  211. package/dist/esm/operation-node/create-index-node.d.ts +1 -3
  212. package/dist/esm/operation-node/create-table-node.d.ts +4 -5
  213. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  214. package/dist/esm/operation-node/create-type-node.js +1 -2
  215. package/dist/esm/operation-node/default-value-node.d.ts +2 -4
  216. package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
  217. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  218. package/dist/esm/operation-node/drop-type-node.js +1 -2
  219. package/dist/esm/operation-node/explain-node.d.ts +2 -4
  220. package/dist/esm/operation-node/explain-node.js +1 -1
  221. package/dist/esm/operation-node/from-node.d.ts +3 -4
  222. package/dist/esm/operation-node/generated-node.d.ts +2 -3
  223. package/dist/esm/operation-node/group-by-item-node.d.ts +2 -3
  224. package/dist/esm/operation-node/group-by-node.d.ts +1 -1
  225. package/dist/esm/operation-node/group-by-node.js +3 -3
  226. package/dist/esm/operation-node/having-node.d.ts +3 -4
  227. package/dist/esm/operation-node/having-node.js +4 -4
  228. package/dist/esm/operation-node/insert-query-node.d.ts +1 -4
  229. package/dist/esm/operation-node/join-node.d.ts +5 -9
  230. package/dist/esm/operation-node/join-node.js +6 -6
  231. package/dist/esm/operation-node/on-conflict-node.d.ts +5 -7
  232. package/dist/esm/operation-node/on-conflict-node.js +12 -12
  233. package/dist/esm/operation-node/on-node.d.ts +3 -4
  234. package/dist/esm/operation-node/on-node.js +4 -4
  235. package/dist/esm/operation-node/operation-node-transformer.d.ts +14 -4
  236. package/dist/esm/operation-node/operation-node-transformer.js +60 -20
  237. package/dist/esm/operation-node/operation-node-visitor.d.ts +14 -4
  238. package/dist/esm/operation-node/operation-node-visitor.js +7 -2
  239. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  240. package/dist/esm/operation-node/operator-node.d.ts +5 -3
  241. package/dist/esm/operation-node/operator-node.js +2 -4
  242. package/dist/esm/operation-node/or-node.d.ts +3 -4
  243. package/dist/esm/operation-node/order-by-item-node.d.ts +3 -5
  244. package/dist/esm/operation-node/over-node.d.ts +19 -0
  245. package/dist/esm/operation-node/over-node.js +33 -0
  246. package/dist/esm/operation-node/parens-node.d.ts +2 -3
  247. package/dist/esm/operation-node/partition-by-item-node.d.ts +13 -0
  248. package/dist/esm/operation-node/partition-by-item-node.js +16 -0
  249. package/dist/esm/operation-node/partition-by-node.d.ts +14 -0
  250. package/dist/esm/operation-node/partition-by-node.js +22 -0
  251. package/dist/esm/operation-node/query-node.d.ts +2 -3
  252. package/dist/esm/operation-node/query-node.js +6 -6
  253. package/dist/esm/operation-node/select-modifier-node.d.ts +2 -3
  254. package/dist/esm/operation-node/select-modifier-node.js +1 -1
  255. package/dist/esm/operation-node/select-query-node.d.ts +8 -9
  256. package/dist/esm/operation-node/select-query-node.js +14 -14
  257. package/dist/esm/operation-node/selection-node.d.ts +2 -3
  258. package/dist/esm/operation-node/set-operation-node.d.ts +15 -0
  259. package/dist/esm/operation-node/set-operation-node.js +18 -0
  260. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +3 -0
  261. package/dist/esm/operation-node/simple-reference-expression-node.js +2 -0
  262. package/dist/esm/operation-node/unary-operation-node.d.ts +13 -0
  263. package/dist/esm/operation-node/unary-operation-node.js +17 -0
  264. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  265. package/dist/esm/operation-node/value-list-node.d.ts +2 -8
  266. package/dist/esm/operation-node/where-node.d.ts +3 -4
  267. package/dist/esm/operation-node/where-node.js +4 -4
  268. package/dist/esm/parser/binary-operation-parser.d.ts +20 -0
  269. package/dist/esm/parser/binary-operation-parser.js +92 -0
  270. package/dist/esm/parser/coalesce-parser.d.ts +4 -0
  271. package/dist/esm/parser/coalesce-parser.js +8 -0
  272. package/dist/esm/parser/data-type-parser.d.ts +5 -5
  273. package/dist/esm/parser/default-value-parser.d.ts +4 -5
  274. package/dist/esm/parser/default-value-parser.js +2 -2
  275. package/dist/esm/parser/expression-parser.d.ts +10 -0
  276. package/dist/esm/parser/{complex-expression-parser.js → expression-parser.js} +6 -5
  277. package/dist/esm/parser/group-by-parser.d.ts +1 -1
  278. package/dist/esm/parser/group-by-parser.js +2 -2
  279. package/dist/esm/parser/identifier-parser.d.ts +2 -0
  280. package/dist/esm/parser/identifier-parser.js +20 -0
  281. package/dist/esm/parser/insert-values-parser.d.ts +1 -1
  282. package/dist/esm/parser/insert-values-parser.js +2 -2
  283. package/dist/esm/parser/join-parser.js +2 -2
  284. package/dist/esm/parser/order-by-parser.d.ts +2 -2
  285. package/dist/esm/parser/parse-utils.d.ts +2 -0
  286. package/dist/esm/parser/parse-utils.js +7 -0
  287. package/dist/esm/parser/partition-by-parser.d.ts +6 -0
  288. package/dist/esm/parser/partition-by-parser.js +6 -0
  289. package/dist/esm/parser/reference-parser.d.ts +14 -13
  290. package/dist/esm/parser/reference-parser.js +10 -8
  291. package/dist/esm/parser/select-parser.d.ts +6 -6
  292. package/dist/esm/parser/select-parser.js +2 -2
  293. package/dist/esm/parser/set-operation-parser.d.ts +3 -0
  294. package/dist/esm/parser/set-operation-parser.js +5 -0
  295. package/dist/esm/parser/table-parser.d.ts +11 -12
  296. package/dist/esm/parser/table-parser.js +2 -2
  297. package/dist/esm/parser/unary-operation-parser.d.ts +5 -0
  298. package/dist/esm/parser/unary-operation-parser.js +13 -0
  299. package/dist/esm/parser/update-set-parser.d.ts +1 -1
  300. package/dist/esm/parser/value-parser.d.ts +5 -8
  301. package/dist/esm/parser/value-parser.js +4 -4
  302. package/dist/esm/parser/with-parser.d.ts +3 -4
  303. package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
  304. package/dist/esm/query-builder/aggregate-function-builder.d.ts +348 -0
  305. package/dist/esm/query-builder/aggregate-function-builder.js +294 -0
  306. package/dist/esm/query-builder/delete-query-builder.d.ts +20 -20
  307. package/dist/esm/query-builder/delete-query-builder.js +19 -16
  308. package/dist/esm/query-builder/expression-builder.d.ts +3 -3
  309. package/dist/esm/query-builder/expression-builder.js +3 -3
  310. package/dist/esm/query-builder/function-module.d.ts +241 -0
  311. package/dist/esm/query-builder/function-module.js +211 -0
  312. package/dist/esm/query-builder/having-interface.d.ts +9 -8
  313. package/dist/esm/query-builder/insert-query-builder.d.ts +7 -6
  314. package/dist/esm/query-builder/insert-query-builder.js +11 -9
  315. package/dist/esm/query-builder/insert-result.d.ts +8 -1
  316. package/dist/esm/query-builder/insert-result.js +12 -1
  317. package/dist/esm/query-builder/join-builder.d.ts +9 -8
  318. package/dist/esm/query-builder/join-builder.js +10 -9
  319. package/dist/esm/query-builder/on-conflict-builder.d.ts +25 -24
  320. package/dist/esm/query-builder/on-conflict-builder.js +18 -17
  321. package/dist/esm/query-builder/over-builder.d.ts +59 -0
  322. package/dist/esm/query-builder/over-builder.js +47 -0
  323. package/dist/esm/query-builder/select-query-builder.d.ts +138 -47
  324. package/dist/esm/query-builder/select-query-builder.js +120 -38
  325. package/dist/esm/query-builder/update-query-builder.d.ts +20 -20
  326. package/dist/esm/query-builder/update-query-builder.js +19 -16
  327. package/dist/esm/query-builder/where-interface.d.ts +12 -11
  328. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  329. package/dist/esm/query-compiler/default-query-compiler.d.ts +15 -5
  330. package/dist/esm/query-compiler/default-query-compiler.js +79 -48
  331. package/dist/esm/query-executor/query-executor-base.js +16 -1
  332. package/dist/esm/raw-builder/raw-builder.d.ts +49 -13
  333. package/dist/esm/raw-builder/raw-builder.js +23 -14
  334. package/dist/esm/raw-builder/sql.d.ts +15 -7
  335. package/dist/esm/raw-builder/sql.js +6 -0
  336. package/dist/esm/schema/alter-column-builder.d.ts +28 -0
  337. package/dist/esm/schema/alter-column-builder.js +51 -0
  338. package/dist/esm/schema/alter-table-builder.d.ts +39 -341
  339. package/dist/esm/schema/alter-table-builder.js +61 -274
  340. package/dist/esm/schema/column-definition-builder.d.ts +43 -155
  341. package/dist/esm/schema/column-definition-builder.js +189 -0
  342. package/dist/esm/schema/create-index-builder.d.ts +2 -2
  343. package/dist/esm/schema/create-table-builder.d.ts +38 -5
  344. package/dist/esm/schema/create-table-builder.js +36 -1
  345. package/dist/esm/schema/create-view-builder.d.ts +3 -2
  346. package/dist/esm/schema/schema.d.ts +2 -2
  347. package/dist/esm/schema/schema.js +6 -5
  348. package/dist/esm/util/compilable.d.ts +2 -2
  349. package/dist/esm/util/explainable.d.ts +2 -2
  350. package/dist/esm/util/infer-result.d.ts +46 -0
  351. package/dist/esm/util/infer-result.js +2 -0
  352. package/dist/esm/util/log-once.d.ts +5 -0
  353. package/dist/esm/util/log-once.js +13 -0
  354. package/dist/esm/util/object-utils.d.ts +1 -0
  355. package/dist/esm/util/object-utils.js +3 -0
  356. package/dist/esm/util/type-utils.d.ts +3 -13
  357. package/package.json +4 -1
  358. package/dist/cjs/operation-node/filter-node.d.ts +0 -18
  359. package/dist/cjs/operation-node/operation-node-utils.d.ts +0 -17
  360. package/dist/cjs/operation-node/union-node.d.ts +0 -16
  361. package/dist/cjs/parser/complex-expression-parser.d.ts +0 -10
  362. package/dist/cjs/parser/filter-parser.d.ts +0 -24
  363. package/dist/cjs/parser/filter-parser.js +0 -109
  364. package/dist/cjs/parser/union-parser.d.ts +0 -5
  365. package/dist/cjs/parser/union-parser.js +0 -8
  366. package/dist/cjs/query-builder/function-builder.d.ts +0 -133
  367. package/dist/cjs/query-builder/function-builder.js +0 -160
  368. package/dist/esm/operation-node/filter-node.d.ts +0 -18
  369. package/dist/esm/operation-node/filter-node.js +0 -18
  370. package/dist/esm/operation-node/operation-node-utils.d.ts +0 -17
  371. package/dist/esm/operation-node/operation-node-utils.js +0 -2
  372. package/dist/esm/operation-node/union-node.d.ts +0 -16
  373. package/dist/esm/operation-node/union-node.js +0 -17
  374. package/dist/esm/parser/complex-expression-parser.d.ts +0 -10
  375. package/dist/esm/parser/filter-parser.d.ts +0 -24
  376. package/dist/esm/parser/filter-parser.js +0 -100
  377. package/dist/esm/parser/union-parser.d.ts +0 -5
  378. package/dist/esm/parser/union-parser.js +0 -5
  379. package/dist/esm/query-builder/function-builder.d.ts +0 -133
  380. package/dist/esm/query-builder/function-builder.js +0 -157
@@ -1,10 +1,11 @@
1
+ import { Expression } from '../expression/expression.js';
1
2
  import { OnConflictNode } from '../operation-node/on-conflict-node.js';
2
3
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
3
- import { ComplexExpression } from '../parser/complex-expression-parser.js';
4
- import { WhereGrouper, FilterOperator, FilterValueExpressionOrList } from '../parser/filter-parser.js';
4
+ import { ComparisonOperatorExpression, OperandValueExpressionOrList, WhereGrouper } from '../parser/binary-operation-parser.js';
5
+ import { ExpressionOrFactory } from '../parser/expression-parser.js';
5
6
  import { ReferenceExpression } from '../parser/reference-parser.js';
6
7
  import { MutationObject } from '../parser/update-set-parser.js';
7
- import { AnyColumn, AnyRawBuilder } from '../util/type-utils.js';
8
+ import { AnyColumn } from '../util/type-utils.js';
8
9
  import { WhereInterface } from './where-interface.js';
9
10
  export declare class OnConflictBuilder<DB, TB extends keyof DB> implements WhereInterface<DB, TB> {
10
11
  #private;
@@ -38,13 +39,13 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
38
39
  * Also see the {@link column}, {@link columns} and {@link constraint}
39
40
  * methods for alternative ways to specify the conflict target.
40
41
  */
41
- expression(expression: AnyRawBuilder): OnConflictBuilder<DB, TB>;
42
+ expression(expression: Expression<any>): OnConflictBuilder<DB, TB>;
42
43
  /**
43
44
  * Specify an index predicate for the index target.
44
45
  *
45
46
  * See {@link WhereInterface.where} for more info.
46
47
  */
47
- where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): OnConflictBuilder<DB, TB>;
48
+ where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictBuilder<DB, TB>;
48
49
  /**
49
50
  * Adds a `where` clause to the query.
50
51
  *
@@ -230,19 +231,19 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
230
231
  * ```
231
232
  */
232
233
  where(grouper: WhereGrouper<DB, TB>): OnConflictBuilder<DB, TB>;
233
- where(raw: AnyRawBuilder): OnConflictBuilder<DB, TB>;
234
+ where(expression: Expression<any>): OnConflictBuilder<DB, TB>;
234
235
  /**
235
236
  * Specify an index predicate for the index target.
236
237
  *
237
238
  * See {@link WhereInterface.whereRef} for more info.
238
239
  */
239
- whereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): OnConflictBuilder<DB, TB>;
240
+ whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictBuilder<DB, TB>;
240
241
  /**
241
242
  * Specify an index predicate for the index target.
242
243
  *
243
244
  * See {@link WhereInterface.orWhere} for more info.
244
245
  */
245
- orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): OnConflictBuilder<DB, TB>;
246
+ orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictBuilder<DB, TB>;
246
247
  /**
247
248
  * Adds an `or where` clause to the query. Otherwise works just like {@link where}.
248
249
  *
@@ -307,37 +308,37 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
307
308
  * ```
308
309
  */
309
310
  orWhere(grouper: WhereGrouper<DB, TB>): OnConflictBuilder<DB, TB>;
310
- orWhere(raw: AnyRawBuilder): OnConflictBuilder<DB, TB>;
311
+ orWhere(expression: Expression<any>): OnConflictBuilder<DB, TB>;
311
312
  /**
312
313
  * Specify an index predicate for the index target.
313
314
  *
314
315
  * See {@link WhereInterface.orWhereRef} for more info.
315
316
  */
316
- orWhereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): OnConflictBuilder<DB, TB>;
317
+ orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictBuilder<DB, TB>;
317
318
  /**
318
319
  * Specify an index predicate for the index target.
319
320
  *
320
321
  * See {@link WhereInterface.whereExists} for more info.
321
322
  */
322
- whereExists(arg: ComplexExpression<DB, TB>): OnConflictBuilder<DB, TB>;
323
+ whereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
323
324
  /**
324
325
  * Specify an index predicate for the index target.
325
326
  *
326
327
  * See {@link WhereInterface.whereNotExists} for more info.
327
328
  */
328
- whereNotExists(arg: ComplexExpression<DB, TB>): OnConflictBuilder<DB, TB>;
329
+ whereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
329
330
  /**
330
331
  * Specify an index predicate for the index target.
331
332
  *
332
333
  * See {@link WhereInterface.orWhereExists} for more info.
333
334
  */
334
- orWhereExists(arg: ComplexExpression<DB, TB>): OnConflictBuilder<DB, TB>;
335
+ orWhereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
335
336
  /**
336
337
  * Specify an index predicate for the index target.
337
338
  *
338
339
  * See {@link WhereInterface.orWhereNotExists} for more info.
339
340
  */
340
- orWhereNotExists(arg: ComplexExpression<DB, TB>): OnConflictBuilder<DB, TB>;
341
+ orWhereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
341
342
  /**
342
343
  * Adds the "do nothing" conflict action.
343
344
  *
@@ -408,7 +409,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
408
409
  *
409
410
  * See {@link WhereInterface.where} for more info.
410
411
  */
411
- where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): OnConflictUpdateBuilder<DB, TB>;
412
+ where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictUpdateBuilder<DB, TB>;
412
413
  /**
413
414
  * Adds a `where` clause to the query.
414
415
  *
@@ -594,19 +595,19 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
594
595
  * ```
595
596
  */
596
597
  where(grouper: WhereGrouper<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
597
- where(raw: AnyRawBuilder): OnConflictUpdateBuilder<DB, TB>;
598
+ where(expression: Expression<any>): OnConflictUpdateBuilder<DB, TB>;
598
599
  /**
599
600
  * Specify a where condition for the update operation.
600
601
  *
601
602
  * See {@link WhereInterface.whereRef} for more info.
602
603
  */
603
- whereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
604
+ whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
604
605
  /**
605
606
  * Specify a where condition for the update operation.
606
607
  *
607
608
  * See {@link WhereInterface.orWhere} for more info.
608
609
  */
609
- orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): OnConflictUpdateBuilder<DB, TB>;
610
+ orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictUpdateBuilder<DB, TB>;
610
611
  /**
611
612
  * Adds an `or where` clause to the query. Otherwise works just like {@link where}.
612
613
  *
@@ -671,36 +672,36 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
671
672
  * ```
672
673
  */
673
674
  orWhere(grouper: WhereGrouper<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
674
- orWhere(raw: AnyRawBuilder): OnConflictUpdateBuilder<DB, TB>;
675
+ orWhere(expression: Expression<any>): OnConflictUpdateBuilder<DB, TB>;
675
676
  /**
676
677
  * Specify a where condition for the update operation.
677
678
  *
678
679
  * See {@link WhereInterface.orWhereRef} for more info.
679
680
  */
680
- orWhereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
681
+ orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
681
682
  /**
682
683
  * Specify a where condition for the update operation.
683
684
  *
684
685
  * See {@link WhereInterface.whereExists} for more info.
685
686
  */
686
- whereExists(arg: ComplexExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
687
+ whereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
687
688
  /**
688
689
  * Specify a where condition for the update operation.
689
690
  *
690
691
  * See {@link WhereInterface.whereNotExists} for more info.
691
692
  */
692
- whereNotExists(arg: ComplexExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
693
+ whereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
693
694
  /**
694
695
  * Specify a where condition for the update operation.
695
696
  *
696
697
  * See {@link WhereInterface.orWhereExists} for more info.
697
698
  */
698
- orWhereExists(arg: ComplexExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
699
+ orWhereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
699
700
  /**
700
701
  * Specify a where condition for the update operation.
701
702
  *
702
703
  * See {@link WhereInterface.orWhereNotExists} for more info.
703
704
  */
704
- orWhereNotExists(arg: ComplexExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
705
+ orWhereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
705
706
  toOperationNode(): OnConflictNode;
706
707
  }
@@ -4,7 +4,8 @@ exports.OnConflictUpdateBuilder = exports.OnConflictDoNothingBuilder = exports.O
4
4
  const column_node_js_1 = require("../operation-node/column-node.js");
5
5
  const identifier_node_js_1 = require("../operation-node/identifier-node.js");
6
6
  const on_conflict_node_js_1 = require("../operation-node/on-conflict-node.js");
7
- const filter_parser_js_1 = require("../parser/filter-parser.js");
7
+ const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js");
8
+ const unary_operation_parser_js_1 = require("../parser/unary-operation-parser.js");
8
9
  const update_set_parser_js_1 = require("../parser/update-set-parser.js");
9
10
  const object_utils_js_1 = require("../util/object-utils.js");
10
11
  const prevent_await_js_1 = require("../util/prevent-await.js");
@@ -80,7 +81,7 @@ class OnConflictBuilder {
80
81
  where(...args) {
81
82
  return new OnConflictBuilder({
82
83
  ...this.#props,
83
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
84
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
84
85
  });
85
86
  }
86
87
  /**
@@ -91,13 +92,13 @@ class OnConflictBuilder {
91
92
  whereRef(lhs, op, rhs) {
92
93
  return new OnConflictBuilder({
93
94
  ...this.#props,
94
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
95
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseReferentialFilter)(lhs, op, rhs)),
95
96
  });
96
97
  }
97
98
  orWhere(...args) {
98
99
  return new OnConflictBuilder({
99
100
  ...this.#props,
100
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
101
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
101
102
  });
102
103
  }
103
104
  /**
@@ -108,7 +109,7 @@ class OnConflictBuilder {
108
109
  orWhereRef(lhs, op, rhs) {
109
110
  return new OnConflictBuilder({
110
111
  ...this.#props,
111
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
112
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseReferentialFilter)(lhs, op, rhs)),
112
113
  });
113
114
  }
114
115
  /**
@@ -119,7 +120,7 @@ class OnConflictBuilder {
119
120
  whereExists(arg) {
120
121
  return new OnConflictBuilder({
121
122
  ...this.#props,
122
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
123
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
123
124
  });
124
125
  }
125
126
  /**
@@ -130,7 +131,7 @@ class OnConflictBuilder {
130
131
  whereNotExists(arg) {
131
132
  return new OnConflictBuilder({
132
133
  ...this.#props,
133
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
134
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
134
135
  });
135
136
  }
136
137
  /**
@@ -141,7 +142,7 @@ class OnConflictBuilder {
141
142
  orWhereExists(arg) {
142
143
  return new OnConflictBuilder({
143
144
  ...this.#props,
144
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
145
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
145
146
  });
146
147
  }
147
148
  /**
@@ -152,7 +153,7 @@ class OnConflictBuilder {
152
153
  orWhereNotExists(arg) {
153
154
  return new OnConflictBuilder({
154
155
  ...this.#props,
155
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
156
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
156
157
  });
157
158
  }
158
159
  /**
@@ -240,7 +241,7 @@ class OnConflictUpdateBuilder {
240
241
  where(...args) {
241
242
  return new OnConflictUpdateBuilder({
242
243
  ...this.#props,
243
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
244
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
244
245
  });
245
246
  }
246
247
  /**
@@ -251,13 +252,13 @@ class OnConflictUpdateBuilder {
251
252
  whereRef(lhs, op, rhs) {
252
253
  return new OnConflictUpdateBuilder({
253
254
  ...this.#props,
254
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
255
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseReferentialFilter)(lhs, op, rhs)),
255
256
  });
256
257
  }
257
258
  orWhere(...args) {
258
259
  return new OnConflictUpdateBuilder({
259
260
  ...this.#props,
260
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
261
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
261
262
  });
262
263
  }
263
264
  /**
@@ -268,7 +269,7 @@ class OnConflictUpdateBuilder {
268
269
  orWhereRef(lhs, op, rhs) {
269
270
  return new OnConflictUpdateBuilder({
270
271
  ...this.#props,
271
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
272
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseReferentialFilter)(lhs, op, rhs)),
272
273
  });
273
274
  }
274
275
  /**
@@ -279,7 +280,7 @@ class OnConflictUpdateBuilder {
279
280
  whereExists(arg) {
280
281
  return new OnConflictUpdateBuilder({
281
282
  ...this.#props,
282
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
283
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
283
284
  });
284
285
  }
285
286
  /**
@@ -290,7 +291,7 @@ class OnConflictUpdateBuilder {
290
291
  whereNotExists(arg) {
291
292
  return new OnConflictUpdateBuilder({
292
293
  ...this.#props,
293
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
294
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
294
295
  });
295
296
  }
296
297
  /**
@@ -301,7 +302,7 @@ class OnConflictUpdateBuilder {
301
302
  orWhereExists(arg) {
302
303
  return new OnConflictUpdateBuilder({
303
304
  ...this.#props,
304
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
305
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
305
306
  });
306
307
  }
307
308
  /**
@@ -312,7 +313,7 @@ class OnConflictUpdateBuilder {
312
313
  orWhereNotExists(arg) {
313
314
  return new OnConflictUpdateBuilder({
314
315
  ...this.#props,
315
- onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
316
+ onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
316
317
  });
317
318
  }
318
319
  toOperationNode() {
@@ -0,0 +1,59 @@
1
+ import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
2
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
3
+ import { OverNode } from '../operation-node/over-node.js';
4
+ import { OrderByDirectionExpression } from '../parser/order-by-parser.js';
5
+ import { PartitionByExpression } from '../parser/partition-by-parser.js';
6
+ import { StringReference } from '../parser/reference-parser.js';
7
+ export declare class OverBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
8
+ #private;
9
+ constructor(props: OverBuilderProps);
10
+ /**
11
+ * Adds an order by clause item inside the over function.
12
+ *
13
+ * ```ts
14
+ * const result = await db
15
+ * .selectFrom('person')
16
+ * .select(
17
+ * eb => eb.fn.avg<number>('age').over(
18
+ * ob => ob.orderBy('first_name', 'asc').orderBy('last_name', 'asc')
19
+ * ).as('average_age')
20
+ * )
21
+ * .execute()
22
+ * ```
23
+ *
24
+ * The generated SQL (PostgreSQL):
25
+ *
26
+ * ```sql
27
+ * select avg("age") over(order by "first_name" asc, "last_name" asc) as "average_age"
28
+ * from "person"
29
+ * ```
30
+ */
31
+ orderBy(orderBy: StringReference<DB, TB> | DynamicReferenceBuilder<any>, direction?: OrderByDirectionExpression): OverBuilder<DB, TB>;
32
+ /**
33
+ * Adds partition by clause item/s inside the over function.
34
+ *
35
+ * ```ts
36
+ * const result = await db
37
+ * .selectFrom('person')
38
+ * .select(
39
+ * eb => eb.fn.avg<number>('age').over(
40
+ * ob => ob.partitionBy(['last_name', 'first_name'])
41
+ * ).as('average_age')
42
+ * )
43
+ * .execute()
44
+ * ```
45
+ *
46
+ * The generated SQL (PostgreSQL):
47
+ *
48
+ * ```sql
49
+ * select avg("age") over(partition by "last_name", "first_name") as "average_age"
50
+ * from "person"
51
+ * ```
52
+ */
53
+ partitionBy(partitionBy: ReadonlyArray<PartitionByExpression<DB, TB>>): OverBuilder<DB, TB>;
54
+ partitionBy(partitionBy: PartitionByExpression<DB, TB>): OverBuilder<DB, TB>;
55
+ toOperationNode(): OverNode;
56
+ }
57
+ export interface OverBuilderProps {
58
+ readonly overNode: OverNode;
59
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OverBuilder = void 0;
4
+ const over_node_js_1 = require("../operation-node/over-node.js");
5
+ const order_by_parser_js_1 = require("../parser/order-by-parser.js");
6
+ const partition_by_parser_js_1 = require("../parser/partition-by-parser.js");
7
+ const object_utils_js_1 = require("../util/object-utils.js");
8
+ const prevent_await_js_1 = require("../util/prevent-await.js");
9
+ class OverBuilder {
10
+ #props;
11
+ constructor(props) {
12
+ this.#props = (0, object_utils_js_1.freeze)(props);
13
+ }
14
+ /**
15
+ * Adds an order by clause item inside the over function.
16
+ *
17
+ * ```ts
18
+ * const result = await db
19
+ * .selectFrom('person')
20
+ * .select(
21
+ * eb => eb.fn.avg<number>('age').over(
22
+ * ob => ob.orderBy('first_name', 'asc').orderBy('last_name', 'asc')
23
+ * ).as('average_age')
24
+ * )
25
+ * .execute()
26
+ * ```
27
+ *
28
+ * The generated SQL (PostgreSQL):
29
+ *
30
+ * ```sql
31
+ * select avg("age") over(order by "first_name" asc, "last_name" asc) as "average_age"
32
+ * from "person"
33
+ * ```
34
+ */
35
+ orderBy(orderBy, direction) {
36
+ return new OverBuilder({
37
+ overNode: over_node_js_1.OverNode.cloneWithOrderByItem(this.#props.overNode, (0, order_by_parser_js_1.parseOrderBy)(orderBy, direction)),
38
+ });
39
+ }
40
+ partitionBy(partitionBy) {
41
+ return new OverBuilder({
42
+ overNode: over_node_js_1.OverNode.cloneWithPartitionByItems(this.#props.overNode, (0, partition_by_parser_js_1.parsePartitionBy)(partitionBy)),
43
+ });
44
+ }
45
+ toOperationNode() {
46
+ return this.#props.overNode;
47
+ }
48
+ }
49
+ exports.OverBuilder = OverBuilder;
50
+ (0, prevent_await_js_1.preventAwait)(OverBuilder, "don't await OverBuilder instances. They are never executed directly and are always just a part of a query.");