kysely 0.25.0 → 0.26.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 (315) hide show
  1. package/README.md +10 -563
  2. package/dist/cjs/dialect/database-introspector.d.ts +1 -1
  3. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -2
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +5 -1
  5. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  6. package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -4
  7. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
  8. package/dist/cjs/driver/database-connection.d.ts +6 -0
  9. package/dist/cjs/driver/driver.d.ts +1 -1
  10. package/dist/cjs/expression/expression-builder.d.ts +207 -108
  11. package/dist/cjs/expression/expression-builder.js +28 -7
  12. package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
  13. package/dist/cjs/expression/expression-wrapper.js +70 -2
  14. package/dist/cjs/helpers/postgres.d.ts +30 -18
  15. package/dist/cjs/helpers/postgres.js +30 -18
  16. package/dist/cjs/index.d.ts +6 -0
  17. package/dist/cjs/index.js +6 -0
  18. package/dist/cjs/kysely.d.ts +23 -13
  19. package/dist/cjs/kysely.js +13 -9
  20. package/dist/cjs/migration/file-migration-provider.js +2 -2
  21. package/dist/cjs/operation-node/alter-column-node.d.ts +2 -3
  22. package/dist/cjs/operation-node/alter-column-node.js +2 -7
  23. package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
  24. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
  25. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  26. package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
  27. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
  28. package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
  29. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  30. package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
  31. package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
  32. package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
  33. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
  34. package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
  35. package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
  36. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  37. package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
  38. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/generated-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
  41. package/dist/cjs/operation-node/join-node.d.ts +1 -2
  42. package/dist/cjs/operation-node/join-node.js +0 -8
  43. package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
  44. package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
  45. package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
  46. package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
  47. package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
  48. package/dist/cjs/operation-node/json-path-node.js +25 -0
  49. package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
  50. package/dist/cjs/operation-node/json-reference-node.js +25 -0
  51. package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
  53. package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
  54. package/dist/cjs/operation-node/operation-node-transformer.js +33 -1
  55. package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
  56. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  57. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  58. package/dist/cjs/operation-node/operator-node.d.ts +13 -9
  59. package/dist/cjs/operation-node/operator-node.js +12 -2
  60. package/dist/cjs/operation-node/query-node.d.ts +9 -10
  61. package/dist/cjs/operation-node/query-node.js +0 -8
  62. package/dist/cjs/operation-node/reference-node.d.ts +2 -2
  63. package/dist/cjs/operation-node/reference-node.js +1 -1
  64. package/dist/cjs/operation-node/references-node.d.ts +1 -1
  65. package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
  66. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  67. package/dist/cjs/operation-node/select-query-node.js +0 -8
  68. package/dist/cjs/operation-node/selection-node.d.ts +1 -1
  69. package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
  70. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
  71. package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
  72. package/dist/cjs/operation-node/values-node.d.ts +1 -1
  73. package/dist/cjs/operation-node/with-node.d.ts +1 -1
  74. package/dist/cjs/parser/binary-operation-parser.d.ts +9 -12
  75. package/dist/cjs/parser/binary-operation-parser.js +40 -119
  76. package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
  77. package/dist/cjs/parser/data-type-parser.d.ts +1 -1
  78. package/dist/cjs/parser/default-value-parser.d.ts +1 -1
  79. package/dist/cjs/parser/expression-parser.d.ts +5 -5
  80. package/dist/cjs/parser/group-by-parser.d.ts +2 -2
  81. package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
  82. package/dist/cjs/parser/join-parser.d.ts +4 -4
  83. package/dist/cjs/parser/order-by-parser.d.ts +3 -3
  84. package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
  85. package/dist/cjs/parser/reference-parser.d.ts +13 -9
  86. package/dist/cjs/parser/reference-parser.js +28 -16
  87. package/dist/cjs/parser/returning-parser.d.ts +2 -2
  88. package/dist/cjs/parser/select-parser.d.ts +10 -10
  89. package/dist/cjs/parser/table-parser.d.ts +12 -12
  90. package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
  91. package/dist/cjs/parser/update-set-parser.d.ts +3 -3
  92. package/dist/cjs/parser/update-set-parser.js +1 -3
  93. package/dist/cjs/parser/value-parser.d.ts +4 -4
  94. package/dist/cjs/parser/with-parser.d.ts +12 -8
  95. package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
  96. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
  97. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
  98. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
  99. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
  100. package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
  101. package/dist/cjs/query-builder/case-builder.d.ts +11 -11
  102. package/dist/cjs/query-builder/case-builder.js +2 -2
  103. package/dist/cjs/query-builder/delete-query-builder.d.ts +84 -59
  104. package/dist/cjs/query-builder/delete-query-builder.js +1 -62
  105. package/dist/cjs/query-builder/delete-result.d.ts +1 -2
  106. package/dist/cjs/query-builder/delete-result.js +2 -8
  107. package/dist/cjs/query-builder/function-module.d.ts +44 -66
  108. package/dist/cjs/query-builder/having-interface.d.ts +2 -35
  109. package/dist/cjs/query-builder/insert-query-builder.d.ts +58 -47
  110. package/dist/cjs/query-builder/insert-query-builder.js +17 -34
  111. package/dist/cjs/query-builder/insert-result.d.ts +3 -4
  112. package/dist/cjs/query-builder/insert-result.js +5 -14
  113. package/dist/cjs/query-builder/join-builder.d.ts +2 -35
  114. package/dist/cjs/query-builder/join-builder.js +1 -56
  115. package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
  116. package/dist/cjs/query-builder/json-path-builder.js +191 -0
  117. package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
  118. package/dist/cjs/query-builder/on-conflict-builder.d.ts +144 -73
  119. package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
  120. package/dist/cjs/query-builder/over-builder.d.ts +2 -2
  121. package/dist/cjs/query-builder/over-builder.js +1 -1
  122. package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
  123. package/dist/cjs/query-builder/select-query-builder.d.ts +139 -134
  124. package/dist/cjs/query-builder/select-query-builder.js +24 -133
  125. package/dist/cjs/query-builder/update-query-builder.d.ts +89 -62
  126. package/dist/cjs/query-builder/update-query-builder.js +3 -63
  127. package/dist/cjs/query-builder/update-result.d.ts +3 -3
  128. package/dist/cjs/query-builder/update-result.js +5 -9
  129. package/dist/cjs/query-builder/where-interface.d.ts +73 -38
  130. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  131. package/dist/cjs/query-compiler/compiled-query.js +2 -2
  132. package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
  133. package/dist/cjs/query-compiler/default-query-compiler.js +37 -2
  134. package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
  135. package/dist/cjs/query-creator.d.ts +4 -2
  136. package/dist/cjs/schema/alter-column-builder.d.ts +11 -5
  137. package/dist/cjs/schema/alter-column-builder.js +19 -21
  138. package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
  139. package/dist/cjs/schema/alter-table-builder.js +2 -9
  140. package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
  141. package/dist/cjs/schema/column-definition-builder.js +1 -2
  142. package/dist/cjs/schema/create-index-builder.js +1 -1
  143. package/dist/cjs/schema/create-table-builder.d.ts +2 -6
  144. package/dist/cjs/schema/create-table-builder.js +0 -6
  145. package/dist/cjs/schema/schema.d.ts +1 -2
  146. package/dist/cjs/schema/schema.js +1 -2
  147. package/dist/cjs/util/column-type.d.ts +22 -18
  148. package/dist/cjs/util/explainable.d.ts +1 -1
  149. package/dist/cjs/util/infer-result.d.ts +2 -2
  150. package/dist/cjs/util/log.d.ts +4 -4
  151. package/dist/cjs/util/require-all-props.d.ts +1 -1
  152. package/dist/cjs/util/type-utils.d.ts +19 -19
  153. package/dist/esm/dialect/database-introspector.d.ts +1 -1
  154. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -2
  155. package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
  156. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  157. package/dist/esm/dialect/postgres/postgres-introspector.js +1 -4
  158. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
  159. package/dist/esm/driver/database-connection.d.ts +6 -0
  160. package/dist/esm/driver/driver.d.ts +1 -1
  161. package/dist/esm/expression/expression-builder.d.ts +207 -108
  162. package/dist/esm/expression/expression-builder.js +30 -9
  163. package/dist/esm/expression/expression-wrapper.d.ts +296 -5
  164. package/dist/esm/expression/expression-wrapper.js +67 -1
  165. package/dist/esm/helpers/postgres.d.ts +30 -18
  166. package/dist/esm/helpers/postgres.js +30 -18
  167. package/dist/esm/index.d.ts +6 -0
  168. package/dist/esm/index.js +6 -0
  169. package/dist/esm/kysely.d.ts +23 -13
  170. package/dist/esm/kysely.js +13 -9
  171. package/dist/esm/operation-node/alter-column-node.d.ts +2 -3
  172. package/dist/esm/operation-node/alter-column-node.js +2 -7
  173. package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
  174. package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
  175. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  176. package/dist/esm/operation-node/create-index-node.d.ts +2 -2
  177. package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
  178. package/dist/esm/operation-node/create-table-node.d.ts +2 -2
  179. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  180. package/dist/esm/operation-node/create-view-node.d.ts +1 -1
  181. package/dist/esm/operation-node/data-type-node.d.ts +2 -2
  182. package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
  183. package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
  184. package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
  185. package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
  186. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  187. package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
  188. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
  189. package/dist/esm/operation-node/generated-node.d.ts +1 -1
  190. package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
  191. package/dist/esm/operation-node/join-node.d.ts +1 -2
  192. package/dist/esm/operation-node/join-node.js +0 -8
  193. package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
  194. package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
  195. package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
  196. package/dist/esm/operation-node/json-path-leg-node.js +17 -0
  197. package/dist/esm/operation-node/json-path-node.d.ts +16 -0
  198. package/dist/esm/operation-node/json-path-node.js +23 -0
  199. package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
  200. package/dist/esm/operation-node/json-reference-node.js +23 -0
  201. package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
  202. package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
  203. package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
  204. package/dist/esm/operation-node/operation-node-transformer.js +33 -1
  205. package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
  206. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  207. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  208. package/dist/esm/operation-node/operator-node.d.ts +13 -9
  209. package/dist/esm/operation-node/operator-node.js +10 -1
  210. package/dist/esm/operation-node/query-node.d.ts +9 -10
  211. package/dist/esm/operation-node/query-node.js +0 -8
  212. package/dist/esm/operation-node/reference-node.d.ts +2 -2
  213. package/dist/esm/operation-node/reference-node.js +1 -1
  214. package/dist/esm/operation-node/references-node.d.ts +1 -1
  215. package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
  216. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  217. package/dist/esm/operation-node/select-query-node.js +0 -8
  218. package/dist/esm/operation-node/selection-node.d.ts +1 -1
  219. package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
  220. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
  221. package/dist/esm/operation-node/update-query-node.d.ts +1 -1
  222. package/dist/esm/operation-node/values-node.d.ts +1 -1
  223. package/dist/esm/operation-node/with-node.d.ts +1 -1
  224. package/dist/esm/parser/binary-operation-parser.d.ts +9 -12
  225. package/dist/esm/parser/binary-operation-parser.js +38 -114
  226. package/dist/esm/parser/coalesce-parser.d.ts +1 -1
  227. package/dist/esm/parser/data-type-parser.d.ts +1 -1
  228. package/dist/esm/parser/default-value-parser.d.ts +1 -1
  229. package/dist/esm/parser/expression-parser.d.ts +5 -5
  230. package/dist/esm/parser/group-by-parser.d.ts +2 -2
  231. package/dist/esm/parser/insert-values-parser.d.ts +4 -4
  232. package/dist/esm/parser/join-parser.d.ts +4 -4
  233. package/dist/esm/parser/order-by-parser.d.ts +3 -3
  234. package/dist/esm/parser/partition-by-parser.d.ts +2 -2
  235. package/dist/esm/parser/reference-parser.d.ts +13 -9
  236. package/dist/esm/parser/reference-parser.js +26 -15
  237. package/dist/esm/parser/returning-parser.d.ts +2 -2
  238. package/dist/esm/parser/select-parser.d.ts +10 -10
  239. package/dist/esm/parser/table-parser.d.ts +12 -12
  240. package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
  241. package/dist/esm/parser/update-set-parser.d.ts +3 -3
  242. package/dist/esm/parser/update-set-parser.js +2 -4
  243. package/dist/esm/parser/value-parser.d.ts +4 -4
  244. package/dist/esm/parser/with-parser.d.ts +12 -8
  245. package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
  246. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
  247. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
  248. package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
  249. package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
  250. package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
  251. package/dist/esm/query-builder/case-builder.d.ts +11 -11
  252. package/dist/esm/query-builder/case-builder.js +3 -3
  253. package/dist/esm/query-builder/delete-query-builder.d.ts +84 -59
  254. package/dist/esm/query-builder/delete-query-builder.js +2 -63
  255. package/dist/esm/query-builder/delete-result.d.ts +1 -2
  256. package/dist/esm/query-builder/delete-result.js +2 -8
  257. package/dist/esm/query-builder/function-module.d.ts +44 -66
  258. package/dist/esm/query-builder/having-interface.d.ts +2 -35
  259. package/dist/esm/query-builder/insert-query-builder.d.ts +58 -47
  260. package/dist/esm/query-builder/insert-query-builder.js +17 -34
  261. package/dist/esm/query-builder/insert-result.d.ts +3 -4
  262. package/dist/esm/query-builder/insert-result.js +5 -14
  263. package/dist/esm/query-builder/join-builder.d.ts +2 -35
  264. package/dist/esm/query-builder/join-builder.js +2 -57
  265. package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
  266. package/dist/esm/query-builder/json-path-builder.js +186 -0
  267. package/dist/esm/query-builder/no-result-error.d.ts +1 -1
  268. package/dist/esm/query-builder/on-conflict-builder.d.ts +144 -73
  269. package/dist/esm/query-builder/on-conflict-builder.js +3 -112
  270. package/dist/esm/query-builder/over-builder.d.ts +2 -2
  271. package/dist/esm/query-builder/over-builder.js +1 -1
  272. package/dist/esm/query-builder/returning-interface.d.ts +1 -1
  273. package/dist/esm/query-builder/select-query-builder.d.ts +139 -134
  274. package/dist/esm/query-builder/select-query-builder.js +25 -134
  275. package/dist/esm/query-builder/update-query-builder.d.ts +89 -62
  276. package/dist/esm/query-builder/update-query-builder.js +4 -64
  277. package/dist/esm/query-builder/update-result.d.ts +3 -3
  278. package/dist/esm/query-builder/update-result.js +5 -9
  279. package/dist/esm/query-builder/where-interface.d.ts +73 -38
  280. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  281. package/dist/esm/query-compiler/compiled-query.js +2 -2
  282. package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
  283. package/dist/esm/query-compiler/default-query-compiler.js +37 -2
  284. package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
  285. package/dist/esm/query-creator.d.ts +4 -2
  286. package/dist/esm/schema/alter-column-builder.d.ts +11 -5
  287. package/dist/esm/schema/alter-column-builder.js +19 -21
  288. package/dist/esm/schema/alter-table-builder.d.ts +0 -4
  289. package/dist/esm/schema/alter-table-builder.js +2 -9
  290. package/dist/esm/schema/column-definition-builder.d.ts +1 -1
  291. package/dist/esm/schema/column-definition-builder.js +1 -2
  292. package/dist/esm/schema/create-index-builder.js +2 -2
  293. package/dist/esm/schema/create-table-builder.d.ts +2 -6
  294. package/dist/esm/schema/create-table-builder.js +0 -6
  295. package/dist/esm/schema/schema.d.ts +1 -2
  296. package/dist/esm/schema/schema.js +1 -2
  297. package/dist/esm/util/column-type.d.ts +22 -18
  298. package/dist/esm/util/explainable.d.ts +1 -1
  299. package/dist/esm/util/infer-result.d.ts +2 -2
  300. package/dist/esm/util/log.d.ts +4 -4
  301. package/dist/esm/util/require-all-props.d.ts +1 -1
  302. package/dist/esm/util/type-utils.d.ts +19 -19
  303. package/package.json +25 -23
  304. package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
  305. package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
  306. package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
  307. package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
  308. package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
  309. package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
  310. package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
  311. package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
  312. package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
  313. package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
  314. package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
  315. package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
@@ -15,8 +15,7 @@ import { parseGroupBy } from '../parser/group-by-parser.js';
15
15
  import { isNoResultErrorConstructor, NoResultError, } from './no-result-error.js';
16
16
  import { IdentifierNode } from '../operation-node/identifier-node.js';
17
17
  import { parseSetOperation } from '../parser/set-operation-parser.js';
18
- import { parseHaving, parseReferentialComparison, parseWhere, } from '../parser/binary-operation-parser.js';
19
- import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
18
+ import { parseFilter, parseReferentialComparison, } from '../parser/binary-operation-parser.js';
20
19
  export class SelectQueryBuilder {
21
20
  #props;
22
21
  constructor(props) {
@@ -29,7 +28,7 @@ export class SelectQueryBuilder {
29
28
  where(...args) {
30
29
  return new SelectQueryBuilder({
31
30
  ...this.#props,
32
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseWhere(args)),
31
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseFilter(args)),
33
32
  });
34
33
  }
35
34
  whereRef(lhs, op, rhs) {
@@ -38,46 +37,10 @@ export class SelectQueryBuilder {
38
37
  queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
39
38
  });
40
39
  }
41
- orWhere(...args) {
42
- return new SelectQueryBuilder({
43
- ...this.#props,
44
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseWhere(args)),
45
- });
46
- }
47
- orWhereRef(lhs, op, rhs) {
48
- return new SelectQueryBuilder({
49
- ...this.#props,
50
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
51
- });
52
- }
53
- whereExists(arg) {
54
- return new SelectQueryBuilder({
55
- ...this.#props,
56
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseExists(arg)),
57
- });
58
- }
59
- whereNotExists(arg) {
60
- return new SelectQueryBuilder({
61
- ...this.#props,
62
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseNotExists(arg)),
63
- });
64
- }
65
- orWhereExists(arg) {
66
- return new SelectQueryBuilder({
67
- ...this.#props,
68
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseExists(arg)),
69
- });
70
- }
71
- orWhereNotExists(arg) {
72
- return new SelectQueryBuilder({
73
- ...this.#props,
74
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseNotExists(arg)),
75
- });
76
- }
77
40
  having(...args) {
78
41
  return new SelectQueryBuilder({
79
42
  ...this.#props,
80
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, parseHaving(args)),
43
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, parseFilter(args)),
81
44
  });
82
45
  }
83
46
  havingRef(lhs, op, rhs) {
@@ -86,51 +49,6 @@ export class SelectQueryBuilder {
86
49
  queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
87
50
  });
88
51
  }
89
- orHaving(...args) {
90
- return new SelectQueryBuilder({
91
- ...this.#props,
92
- queryNode: SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, parseHaving(args)),
93
- });
94
- }
95
- orHavingRef(lhs, op, rhs) {
96
- return new SelectQueryBuilder({
97
- ...this.#props,
98
- queryNode: SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
99
- });
100
- }
101
- havingExists(arg) {
102
- return new SelectQueryBuilder({
103
- ...this.#props,
104
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, parseExists(arg)),
105
- });
106
- }
107
- /**
108
- * @deprecated Use {@link havingNotExists} instead.
109
- */
110
- havingNotExist(arg) {
111
- return new SelectQueryBuilder({
112
- ...this.#props,
113
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, parseNotExists(arg)),
114
- });
115
- }
116
- havingNotExists(arg) {
117
- return new SelectQueryBuilder({
118
- ...this.#props,
119
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, parseNotExists(arg)),
120
- });
121
- }
122
- orHavingExists(arg) {
123
- return new SelectQueryBuilder({
124
- ...this.#props,
125
- queryNode: SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, parseExists(arg)),
126
- });
127
- }
128
- orHavingNotExists(arg) {
129
- return new SelectQueryBuilder({
130
- ...this.#props,
131
- queryNode: SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, parseNotExists(arg)),
132
- });
133
- }
134
52
  /**
135
53
  * Adds a select statement to the query.
136
54
  *
@@ -155,6 +73,8 @@ export class SelectQueryBuilder {
155
73
  *
156
74
  * ### Examples
157
75
  *
76
+ * <!-- siteExample("select", "A single column", 10) -->
77
+ *
158
78
  * Select a single column:
159
79
  *
160
80
  * ```ts
@@ -163,8 +83,6 @@ export class SelectQueryBuilder {
163
83
  * .select('id')
164
84
  * .where('first_name', '=', 'Arnold')
165
85
  * .execute()
166
- *
167
- * persons[0].id
168
86
  * ```
169
87
  *
170
88
  * The generated SQL (PostgreSQL):
@@ -173,6 +91,8 @@ export class SelectQueryBuilder {
173
91
  * select "id" from "person" where "first_name" = $1
174
92
  * ```
175
93
  *
94
+ * <!-- siteExample("select", "Column with a table", 20) -->
95
+ *
176
96
  * Select a single column and specify a table:
177
97
  *
178
98
  * ```ts
@@ -180,8 +100,6 @@ export class SelectQueryBuilder {
180
100
  * .selectFrom(['person', 'pet'])
181
101
  * .select('person.id')
182
102
  * .execute()
183
- *
184
- * persons[0].id
185
103
  * ```
186
104
  *
187
105
  * The generated SQL (PostgreSQL):
@@ -190,6 +108,8 @@ export class SelectQueryBuilder {
190
108
  * select "person"."id" from "person", "pet"
191
109
  * ```
192
110
  *
111
+ * <!-- siteExample("select", "Multiple columns", 30) -->
112
+ *
193
113
  * Select multiple columns:
194
114
  *
195
115
  * ```ts
@@ -197,9 +117,6 @@ export class SelectQueryBuilder {
197
117
  * .selectFrom('person')
198
118
  * .select(['person.id', 'first_name'])
199
119
  * .execute()
200
- *
201
- * persons[0].id
202
- * persons[0].first_name
203
120
  * ```
204
121
  *
205
122
  * The generated SQL (PostgreSQL):
@@ -208,35 +125,36 @@ export class SelectQueryBuilder {
208
125
  * select "person"."id", "first_name" from "person"
209
126
  * ```
210
127
  *
211
- * Aliased selections:
128
+ * <!-- siteExample("select", "Aliases", 40) -->
129
+ *
130
+ * You can provide an alias for the selections by appending `as the_alias` to the selection.
212
131
  *
213
132
  * ```ts
214
133
  * const persons = await db
215
134
  * .selectFrom('person')
216
135
  * .select([
217
- * 'person.first_name as fn',
136
+ * 'first_name as fn',
218
137
  * 'person.last_name as ln'
219
138
  * ])
220
139
  * .execute()
221
- *
222
- * persons[0].fn
223
- * persons[0].ln
224
140
  * ```
225
141
  *
226
142
  * The generated SQL (PostgreSQL):
227
143
  *
228
144
  * ```sql
229
145
  * select
230
- * "person"."first_name" as "fn",
146
+ * "first_name" as "fn",
231
147
  * "person"."last_name" as "ln"
232
148
  * from "person"
233
149
  * ```
234
150
  *
235
- * You can also select arbitrary expression including subqueries and raw sql snippets.
236
- * When you do that, you need to give a name for the selections using the {@link as} method:
151
+ * <!-- siteExample("select", "Complex selections", 50) -->
152
+ *
153
+ * You can select arbitrary expression including subqueries and raw sql snippets.
154
+ * When you do that, you need to give a name for the selections using the `as` method:
237
155
  *
238
156
  * ```ts
239
- * import { sql } from 'kysely'
157
+ * import { sql } from 'kysely'
240
158
  *
241
159
  * const persons = await db.selectFrom('person')
242
160
  * .select(({ selectFrom, or, cmpr }) => [
@@ -248,7 +166,8 @@ export class SelectQueryBuilder {
248
166
  * .limit(1)
249
167
  * .as('first_pet_name'),
250
168
  *
251
- * // Build and select an expression using the expression builder
169
+ * // Build and select an expression using
170
+ * // the expression builder
252
171
  * or([
253
172
  * cmpr('first_name', '=', 'Jennifer'),
254
173
  * cmpr('first_name', '=', 'Arnold')
@@ -258,10 +177,6 @@ export class SelectQueryBuilder {
258
177
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
259
178
  * ])
260
179
  * .execute()
261
- *
262
- * persons[0].first_pet_name
263
- * persons[0].is_jennifer_or_arnold
264
- * persons[0].full_name
265
180
  * ```
266
181
  *
267
182
  * The generated SQL (PostgreSQL):
@@ -389,10 +304,12 @@ export class SelectQueryBuilder {
389
304
  /**
390
305
  * Makes the selection distinct.
391
306
  *
307
+ * <!-- siteExample("select", "Distinct", 70) -->
308
+ *
392
309
  * ### Examples
393
310
  *
394
311
  * ```ts
395
- * await db.selectFrom('person')
312
+ * const persons = await db.selectFrom('person')
396
313
  * .select('first_name')
397
314
  * .distinct()
398
315
  * .execute()
@@ -1025,12 +942,6 @@ export class SelectQueryBuilder {
1025
942
  $call(func) {
1026
943
  return func(this);
1027
944
  }
1028
- /**
1029
- * @deprecated Use `$call` instead
1030
- */
1031
- call(func) {
1032
- return this.$call(func);
1033
- }
1034
945
  /**
1035
946
  * Call `func(this)` if `condition` is true.
1036
947
  *
@@ -1086,14 +997,12 @@ export class SelectQueryBuilder {
1086
997
  * You can also call any other methods inside the callback:
1087
998
  *
1088
999
  * ```ts
1089
- * const { count } = db.fn
1090
- *
1091
1000
  * db.selectFrom('person')
1092
1001
  * .select('person.id')
1093
1002
  * .$if(filterByFirstName, (qb) => qb.where('first_name', '=', firstName))
1094
1003
  * .$if(filterByPetCount, (qb) => qb
1095
1004
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
1096
- * .having(count('pet.id'), '>', petCountLimit)
1005
+ * .having((eb) => eb.fn.count('pet.id'), '>', petCountLimit)
1097
1006
  * .groupBy('person.id')
1098
1007
  * )
1099
1008
  * ```
@@ -1106,12 +1015,6 @@ export class SelectQueryBuilder {
1106
1015
  ...this.#props,
1107
1016
  });
1108
1017
  }
1109
- /**
1110
- * @deprecated Use `$if` instead
1111
- */
1112
- if(condition, func) {
1113
- return this.$if(condition, func);
1114
- }
1115
1018
  /**
1116
1019
  * Change the output type of the query.
1117
1020
  *
@@ -1121,12 +1024,6 @@ export class SelectQueryBuilder {
1121
1024
  $castTo() {
1122
1025
  return new SelectQueryBuilder(this.#props);
1123
1026
  }
1124
- /**
1125
- * @deprecated Use `$castTo` instead.
1126
- */
1127
- castTo() {
1128
- return this.$castTo();
1129
- }
1130
1027
  /**
1131
1028
  * Narrows (parts of) the output type of the query.
1132
1029
  *
@@ -1212,12 +1109,6 @@ export class SelectQueryBuilder {
1212
1109
  $assertType() {
1213
1110
  return new SelectQueryBuilder(this.#props);
1214
1111
  }
1215
- /**
1216
- * @deprecated Use `$assertType` instead.
1217
- */
1218
- assertType() {
1219
- return new SelectQueryBuilder(this.#props);
1220
- }
1221
1112
  /**
1222
1113
  * Returns a copy of this SelectQueryBuilder instance with the given plugin installed.
1223
1114
  */
@@ -21,7 +21,6 @@ import { Selectable } from '../util/column-type.js';
21
21
  import { Explainable, ExplainFormat } from '../util/explainable.js';
22
22
  import { AliasedExpression, Expression } from '../expression/expression.js';
23
23
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
24
- import { ExistsExpression } from '../parser/unary-operation-parser.js';
25
24
  import { KyselyTypeError } from '../util/type-error.js';
26
25
  import { Streamable } from '../util/streamable.js';
27
26
  export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
@@ -36,6 +35,10 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
36
35
  *
37
36
  * ### Examples
38
37
  *
38
+ * <!-- siteExample("where", "Simple where clause", 10) -->
39
+ *
40
+ * `where` method calls are combined with `AND`:
41
+ *
39
42
  * ```ts
40
43
  * const person = await db
41
44
  * .selectFrom('person')
@@ -58,9 +61,65 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
58
61
  * sql`your operator`
59
62
  * ```
60
63
  *
64
+ * <!-- siteExample("where", "Where in", 20) -->
65
+ *
66
+ * Find multiple items using a list of identifiers:
67
+ *
68
+ * ```ts
69
+ * const persons = await db
70
+ * .selectFrom('person')
71
+ * .selectAll()
72
+ * .where('id', 'in', ['1', '2', '3'])
73
+ * .execute()
74
+ * ```
75
+ *
76
+ * The generated SQL (PostgreSQL):
77
+ *
78
+ * ```sql
79
+ * select * from "person" where "id" in ($1, $2, $3)
80
+ * ```
81
+ *
82
+ * <!-- siteExample("where", "OR where", 30) -->
83
+ *
84
+ * To combine conditions using `OR`, you can use the expression builder:
85
+ *
86
+ * ```ts
87
+ * const persons = await db
88
+ * .selectFrom('person')
89
+ * .selectAll()
90
+ * .where(({ or, and, cmpr }) => or([
91
+ * and([
92
+ * cmpr('first_name', '=', 'Jennifer'),
93
+ * cmpr('last_name', '=', 'Aniston')
94
+ * ]),
95
+ * and([
96
+ * cmpr('first_name', '=', 'Sylvester'),
97
+ * cmpr('last_name', '=', 'Stallone')
98
+ * ])
99
+ * ]))
100
+ * .execute()
101
+ * ```
102
+ *
103
+ * The generated SQL (PostgreSQL):
104
+ *
105
+ * ```sql
106
+ * select *
107
+ * from "person"
108
+ * where (
109
+ * ("first_name" = $1 AND "last_name" = $2)
110
+ * OR
111
+ * ("first_name" = $3 AND "last_name" = $4)
112
+ * )
113
+ * ```
114
+ *
115
+ * <!-- siteExample("where", "Conditional where calls", 40) -->
116
+ *
61
117
  * You can add expressions conditionally like this:
62
118
  *
63
119
  * ```ts
120
+ * const firstName: string | undefined = 'Jennifer'
121
+ * const lastName: string | undefined = 'Aniston'
122
+ *
64
123
  * let query = db
65
124
  * .selectFrom('person')
66
125
  * .selectAll()
@@ -127,22 +186,30 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
127
186
  * select * from "person" where "id" in ($1, $2, $3)
128
187
  * ```
129
188
  *
189
+ * <!-- siteExample("where", "Complex where clause", 50) -->
190
+ *
130
191
  * For complex `where` expressions you can pass in a single callback and
131
- * use the {@link ExpressionBuilder} to build your expression:
192
+ * use the `ExpressionBuilder` to build your expression:
132
193
  *
133
194
  * ```ts
195
+ * const firstName = 'Jennifer'
196
+ * const maxAge = 60
197
+ *
134
198
  * const persons = await db
135
199
  * .selectFrom('person')
136
200
  * .selectAll('person')
137
- * .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
201
+ * .where(({ cmpr, or, and, not, exists, selectFrom }) => and([
138
202
  * or([
139
203
  * cmpr('first_name', '=', firstName),
140
204
  * cmpr('age', '<', maxAge)
141
205
  * ]),
142
206
  * not(exists(
143
- * selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
207
+ * selectFrom('pet')
208
+ * .select('pet.id')
209
+ * .whereRef('pet.owner_id', '=', 'person.id')
144
210
  * ))
145
211
  * ]))
212
+ * .execute()
146
213
  * ```
147
214
  *
148
215
  * The generated SQL (PostgreSQL):
@@ -263,32 +330,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
263
330
  * from "person"
264
331
  */
265
332
  whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
266
- /**
267
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
268
- */
269
- orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): UpdateQueryBuilder<DB, UT, TB, O>;
270
- orWhere(factory: WhereExpressionFactory<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
271
- orWhere(expression: Expression<any>): UpdateQueryBuilder<DB, UT, TB, O>;
272
- /**
273
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
274
- */
275
- orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
276
- /**
277
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
278
- */
279
- whereExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
280
- /**
281
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
282
- */
283
- whereNotExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
284
- /**
285
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
286
- */
287
- orWhereExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
288
- /**
289
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
290
- */
291
- orWhereNotExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
292
333
  /**
293
334
  * Clears all where expressions from the query.
294
335
  *
@@ -480,6 +521,8 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
480
521
  *
481
522
  * ### Examples
482
523
  *
524
+ * <!-- siteExample("update", "Single row", 10) -->
525
+ *
483
526
  * Update a row in `person` table:
484
527
  *
485
528
  * ```ts
@@ -489,7 +532,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
489
532
  * first_name: 'Jennifer',
490
533
  * last_name: 'Aniston'
491
534
  * })
492
- * .where('id', '=', 1)
535
+ * .where('id', '=', '1')
493
536
  * .executeTakeFirst()
494
537
  *
495
538
  * console.log(result.numUpdatedRows)
@@ -533,10 +576,10 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
533
576
  *
534
577
  * const result = await db
535
578
  * .updateTable('person')
536
- * .set(({ selectFrom, ref, fn, bxp }) => ({
579
+ * .set(({ selectFrom, ref, fn, eb }) => ({
537
580
  * first_name: selectFrom('person').select('first_name').limit(1),
538
581
  * middle_name: ref('first_name'),
539
- * age: bxp('age', '+', 1),
582
+ * age: eb('age', '+', 1),
540
583
  * last_name: sql`${'Ani'} || ${'ston'}`,
541
584
  * }))
542
585
  * .where('id', '=', 1)
@@ -609,7 +652,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
609
652
  * first_name: 'Jennifer',
610
653
  * last_name: 'Aniston'
611
654
  * })
612
- * .returning(eb => [
655
+ * .returning((eb) => [
613
656
  * 'id as id',
614
657
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
615
658
  * eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
@@ -647,10 +690,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
647
690
  * ```
648
691
  */
649
692
  $call<T>(func: (qb: this) => T): T;
650
- /**
651
- * @deprecated Use `$call` instead
652
- */
653
- call<T>(func: (qb: this) => T): T;
654
693
  /**
655
694
  * Call `func(this)` if `condition` is true.
656
695
  *
@@ -688,10 +727,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
688
727
  * ```
689
728
  */
690
729
  $if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<DB, UT, TB, O2>): O2 extends UpdateResult ? UpdateQueryBuilder<DB, UT, TB, UpdateResult> : O2 extends O & infer E ? UpdateQueryBuilder<DB, UT, TB, O & Partial<E>> : UpdateQueryBuilder<DB, UT, TB, Partial<O2>>;
691
- /**
692
- * @deprecated Use `$if` instead
693
- */
694
- if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<DB, UT, TB, O2>): O2 extends UpdateResult ? UpdateQueryBuilder<DB, UT, TB, UpdateResult> : O2 extends O & infer E ? UpdateQueryBuilder<DB, UT, TB, O & Partial<E>> : UpdateQueryBuilder<DB, UT, TB, Partial<O2>>;
695
730
  /**
696
731
  * Change the output type of the query.
697
732
  *
@@ -699,10 +734,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
699
734
  * don't support your use case.
700
735
  */
701
736
  $castTo<T>(): UpdateQueryBuilder<DB, UT, TB, T>;
702
- /**
703
- * @deprecated Use `$castTo` instead.
704
- */
705
- castTo<T>(): UpdateQueryBuilder<DB, UT, TB, T>;
706
737
  /**
707
738
  * Narrows (parts of) the output type of the query.
708
739
  *
@@ -792,10 +823,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
792
823
  * ```
793
824
  */
794
825
  $assertType<T extends O>(): O extends T ? UpdateQueryBuilder<DB, UT, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
795
- /**
796
- * @deprecated Use `$assertType` instead.
797
- */
798
- assertType<T extends O>(): O extends T ? UpdateQueryBuilder<DB, UT, TB, T> : KyselyTypeError<`assertType() call failed: The type passed in is not equal to the output type of the query.`>;
799
826
  /**
800
827
  * Returns a copy of this UpdateQueryBuilder instance with the given plugin installed.
801
828
  */
@@ -891,24 +918,24 @@ export interface UpdateQueryBuilderProps {
891
918
  readonly queryNode: UpdateQueryNode;
892
919
  readonly executor: QueryExecutor;
893
920
  }
894
- export declare type UpdateQueryBuilderWithInnerJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? UpdateQueryBuilder<DB, UT, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
895
- declare type InnerJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? UpdateQueryBuilder<InnerJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, R>, UT, TB | A, O>;
896
- declare type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
921
+ export type UpdateQueryBuilderWithInnerJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? UpdateQueryBuilder<DB, UT, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
922
+ type InnerJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? UpdateQueryBuilder<InnerJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, R>, UT, TB | A, O>;
923
+ type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
897
924
  [C in keyof DB | A]: C extends A ? R : C extends keyof DB ? DB[C] : never;
898
925
  }>;
899
- export declare type UpdateQueryBuilderWithLeftJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
900
- declare type LeftJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? UpdateQueryBuilder<LeftJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, UT, TB | A, O>;
901
- declare type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
926
+ export type UpdateQueryBuilderWithLeftJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
927
+ type LeftJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? UpdateQueryBuilder<LeftJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, UT, TB | A, O>;
928
+ type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
902
929
  [C in keyof DB | A]: C extends A ? Nullable<R> : C extends keyof DB ? DB[C] : never;
903
930
  }>;
904
- export declare type UpdateQueryBuilderWithRightJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
905
- declare type RightJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<RightJoinedDB<DB, TB, A, R>, UT, TB | A, O>;
906
- declare type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
931
+ export type UpdateQueryBuilderWithRightJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
932
+ type RightJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<RightJoinedDB<DB, TB, A, R>, UT, TB | A, O>;
933
+ type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
907
934
  [C in keyof DB | A]: C extends A ? R : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
908
935
  }>;
909
- export declare type UpdateQueryBuilderWithFullJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
910
- declare type OuterJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, UT, TB | A, O>;
911
- declare type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
936
+ export type UpdateQueryBuilderWithFullJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
937
+ type OuterJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, UT, TB | A, O>;
938
+ type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
912
939
  [C in keyof DB | A]: C extends A ? Nullable<R> : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
913
940
  }>;
914
941
  export {};