kysely 0.25.0 → 0.26.1

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 +110 -62
  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 +59 -48
  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 +194 -77
  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 +169 -141
  124. package/dist/cjs/query-builder/select-query-builder.js +27 -136
  125. package/dist/cjs/query-builder/update-query-builder.d.ts +147 -66
  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 +98 -40
  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 +110 -62
  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 +59 -48
  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 +194 -77
  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 +169 -141
  274. package/dist/esm/query-builder/select-query-builder.js +28 -137
  275. package/dist/esm/query-builder/update-query-builder.d.ts +147 -66
  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 +98 -40
  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
@@ -19,7 +19,6 @@ import { HavingExpressionFactory, HavingInterface } from './having-interface.js'
19
19
  import { Explainable, ExplainFormat } from '../util/explainable.js';
20
20
  import { AliasedExpression, Expression } from '../expression/expression.js';
21
21
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
22
- import { ExistsExpression } from '../parser/unary-operation-parser.js';
23
22
  import { KyselyTypeError } from '../util/type-error.js';
24
23
  import { Selectable } from '../util/column-type.js';
25
24
  import { Streamable } from '../util/streamable.js';
@@ -53,6 +52,10 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
53
52
  *
54
53
  * ### Examples
55
54
  *
55
+ * <!-- siteExample("where", "Simple where clause", 10) -->
56
+ *
57
+ * `where` method calls are combined with `AND`:
58
+ *
56
59
  * ```ts
57
60
  * const person = await db
58
61
  * .selectFrom('person')
@@ -75,9 +78,71 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
75
78
  * sql`your operator`
76
79
  * ```
77
80
  *
81
+ * <!-- siteExample("where", "Where in", 20) -->
82
+ *
83
+ * Find multiple items using a list of identifiers:
84
+ *
85
+ * ```ts
86
+ * const persons = await db
87
+ * .selectFrom('person')
88
+ * .selectAll()
89
+ * .where('id', 'in', ['1', '2', '3'])
90
+ * .execute()
91
+ * ```
92
+ *
93
+ * The generated SQL (PostgreSQL):
94
+ *
95
+ * ```sql
96
+ * select * from "person" where "id" in ($1, $2, $3)
97
+ * ```
98
+ *
99
+ * <!-- siteExample("where", "OR where", 30) -->
100
+ *
101
+ * To combine conditions using `OR`, you can use the expression builder.
102
+ * There are two ways to create `OR` expressions. Both are shown in this
103
+ * example:
104
+ *
105
+ * ```ts
106
+ * const persons = await db
107
+ * .selectFrom('person')
108
+ * .selectAll()
109
+ * // 1. Using the `or` method on the expression builder:
110
+ * .where((eb) => eb.or([
111
+ * eb('first_name', '=', 'Jennifer'),
112
+ * eb('first_name', '=', 'Sylvester')
113
+ * ]))
114
+ * // 2. Chaining expressions using the `or` method on the
115
+ * // created expressions:
116
+ * .where((eb) =>
117
+ * eb('last_name', '=', 'Aniston').or('last_name', '=', 'Stallone')
118
+ * )
119
+ * .execute()
120
+ * ```
121
+ *
122
+ * The generated SQL (PostgreSQL):
123
+ *
124
+ * ```sql
125
+ * select *
126
+ * from "person"
127
+ * where (
128
+ * ("first_name" = $1 or "first_name" = $2)
129
+ * and
130
+ * ("last_name" = $3 or "last_name" = $4)
131
+ * )
132
+ * ```
133
+ *
134
+ * <!-- siteExample("where", "Conditional where calls", 40) -->
135
+ *
78
136
  * You can add expressions conditionally like this:
79
137
  *
80
138
  * ```ts
139
+ * import { Expression, SqlBool } from 'kysely'
140
+ *
141
+ * const firstName: string | undefined = 'Jennifer'
142
+ * const lastName: string | undefined = 'Aniston'
143
+ * const under18 = true
144
+ * const over60 = true
145
+ *
81
146
  * let query = db
82
147
  * .selectFrom('person')
83
148
  * .selectAll()
@@ -92,6 +157,23 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
92
157
  * query = query.where('last_name', '=', lastName)
93
158
  * }
94
159
  *
160
+ * if (under18 || over60) {
161
+ * // Conditional OR expressions can be added like this.
162
+ * query = query.where((eb) => {
163
+ * const ors: Expression<SqlBool>[] = []
164
+ *
165
+ * if (under18) {
166
+ * ors.push(eb('age', '<', 18))
167
+ * }
168
+ *
169
+ * if (over60) {
170
+ * ors.push(eb('age', '>', 60))
171
+ * }
172
+ *
173
+ * return eb.or(ors)
174
+ * })
175
+ * }
176
+ *
95
177
  * const persons = await query.execute()
96
178
  * ```
97
179
  *
@@ -144,22 +226,30 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
144
226
  * select * from "person" where "id" in ($1, $2, $3)
145
227
  * ```
146
228
  *
229
+ * <!-- siteExample("where", "Complex where clause", 50) -->
230
+ *
147
231
  * For complex `where` expressions you can pass in a single callback and
148
- * use the {@link ExpressionBuilder} to build your expression:
232
+ * use the `ExpressionBuilder` to build your expression:
149
233
  *
150
234
  * ```ts
235
+ * const firstName = 'Jennifer'
236
+ * const maxAge = 60
237
+ *
151
238
  * const persons = await db
152
239
  * .selectFrom('person')
153
240
  * .selectAll('person')
154
- * .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
241
+ * .where(({ eb, or, and, not, exists, selectFrom }) => and([
155
242
  * or([
156
- * cmpr('first_name', '=', firstName),
157
- * cmpr('age', '<', maxAge)
243
+ * eb('first_name', '=', firstName),
244
+ * eb('age', '<', maxAge)
158
245
  * ]),
159
246
  * not(exists(
160
- * selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
247
+ * selectFrom('pet')
248
+ * .select('pet.id')
249
+ * .whereRef('pet.owner_id', '=', 'person.id')
161
250
  * ))
162
251
  * ]))
252
+ * .execute()
163
253
  * ```
164
254
  *
165
255
  * The generated SQL (PostgreSQL):
@@ -280,32 +370,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
280
370
  * from "person"
281
371
  */
282
372
  whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
283
- /**
284
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
285
- */
286
- orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): SelectQueryBuilder<DB, TB, O>;
287
- orWhere(factory: WhereExpressionFactory<DB, TB>): SelectQueryBuilder<DB, TB, O>;
288
- orWhere(expression: Expression<any>): SelectQueryBuilder<DB, TB, O>;
289
- /**
290
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
291
- */
292
- orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
293
- /**
294
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
295
- */
296
- whereExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
297
- /**
298
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
299
- */
300
- whereNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
301
- /**
302
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
303
- */
304
- orWhereExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
305
- /**
306
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
307
- */
308
- orWhereNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
309
373
  /**
310
374
  * Just like {@link WhereInterface.where | where} but adds a `having` statement
311
375
  * instead of a `where` statement.
@@ -318,36 +382,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
318
382
  * instead of a `where` statement.
319
383
  */
320
384
  havingRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
321
- /**
322
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
323
- */
324
- orHaving<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): SelectQueryBuilder<DB, TB, O>;
325
- orHaving(factory: HavingExpressionFactory<DB, TB>): SelectQueryBuilder<DB, TB, O>;
326
- orHaving(expression: Expression<any>): SelectQueryBuilder<DB, TB, O>;
327
- /**
328
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
329
- */
330
- orHavingRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
331
- /**
332
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
333
- */
334
- havingExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
335
- /**
336
- * @deprecated Use {@link havingNotExists} instead.
337
- */
338
- havingNotExist(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
339
- /**
340
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
341
- */
342
- havingNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
343
- /**
344
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
345
- */
346
- orHavingExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
347
- /**
348
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
349
- */
350
- orHavingNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
351
385
  /**
352
386
  * Adds a select statement to the query.
353
387
  *
@@ -372,6 +406,8 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
372
406
  *
373
407
  * ### Examples
374
408
  *
409
+ * <!-- siteExample("select", "A single column", 10) -->
410
+ *
375
411
  * Select a single column:
376
412
  *
377
413
  * ```ts
@@ -380,8 +416,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
380
416
  * .select('id')
381
417
  * .where('first_name', '=', 'Arnold')
382
418
  * .execute()
383
- *
384
- * persons[0].id
385
419
  * ```
386
420
  *
387
421
  * The generated SQL (PostgreSQL):
@@ -390,6 +424,8 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
390
424
  * select "id" from "person" where "first_name" = $1
391
425
  * ```
392
426
  *
427
+ * <!-- siteExample("select", "Column with a table", 20) -->
428
+ *
393
429
  * Select a single column and specify a table:
394
430
  *
395
431
  * ```ts
@@ -397,8 +433,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
397
433
  * .selectFrom(['person', 'pet'])
398
434
  * .select('person.id')
399
435
  * .execute()
400
- *
401
- * persons[0].id
402
436
  * ```
403
437
  *
404
438
  * The generated SQL (PostgreSQL):
@@ -407,6 +441,8 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
407
441
  * select "person"."id" from "person", "pet"
408
442
  * ```
409
443
  *
444
+ * <!-- siteExample("select", "Multiple columns", 30) -->
445
+ *
410
446
  * Select multiple columns:
411
447
  *
412
448
  * ```ts
@@ -414,9 +450,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
414
450
  * .selectFrom('person')
415
451
  * .select(['person.id', 'first_name'])
416
452
  * .execute()
417
- *
418
- * persons[0].id
419
- * persons[0].first_name
420
453
  * ```
421
454
  *
422
455
  * The generated SQL (PostgreSQL):
@@ -425,38 +458,39 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
425
458
  * select "person"."id", "first_name" from "person"
426
459
  * ```
427
460
  *
428
- * Aliased selections:
461
+ * <!-- siteExample("select", "Aliases", 40) -->
462
+ *
463
+ * You can provide an alias for the selections by appending `as the_alias` to the selection.
429
464
  *
430
465
  * ```ts
431
466
  * const persons = await db
432
467
  * .selectFrom('person')
433
468
  * .select([
434
- * 'person.first_name as fn',
469
+ * 'first_name as fn',
435
470
  * 'person.last_name as ln'
436
471
  * ])
437
472
  * .execute()
438
- *
439
- * persons[0].fn
440
- * persons[0].ln
441
473
  * ```
442
474
  *
443
475
  * The generated SQL (PostgreSQL):
444
476
  *
445
477
  * ```sql
446
478
  * select
447
- * "person"."first_name" as "fn",
479
+ * "first_name" as "fn",
448
480
  * "person"."last_name" as "ln"
449
481
  * from "person"
450
482
  * ```
451
483
  *
452
- * You can also select arbitrary expression including subqueries and raw sql snippets.
453
- * When you do that, you need to give a name for the selections using the {@link as} method:
484
+ * <!-- siteExample("select", "Complex selections", 50) -->
485
+ *
486
+ * You can select arbitrary expression including subqueries and raw sql snippets.
487
+ * When you do that, you need to give a name for the selections using the `as` method:
454
488
  *
455
489
  * ```ts
456
- * import { sql } from 'kysely'
490
+ * import { sql } from 'kysely'
457
491
  *
458
492
  * const persons = await db.selectFrom('person')
459
- * .select(({ selectFrom, or, cmpr }) => [
493
+ * .select(({ eb, selectFrom, or }) => [
460
494
  * // Select a correlated subquery
461
495
  * selectFrom('pet')
462
496
  * .whereRef('person.id', '=', 'pet.owner_id')
@@ -465,20 +499,17 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
465
499
  * .limit(1)
466
500
  * .as('first_pet_name'),
467
501
  *
468
- * // Build and select an expression using the expression builder
502
+ * // Build and select an expression using
503
+ * // the expression builder
469
504
  * or([
470
- * cmpr('first_name', '=', 'Jennifer'),
471
- * cmpr('first_name', '=', 'Arnold')
505
+ * eb('first_name', '=', 'Jennifer'),
506
+ * eb('first_name', '=', 'Arnold')
472
507
  * ]).as('is_jennifer_or_arnold'),
473
508
  *
474
509
  * // Select a raw sql expression
475
510
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
476
511
  * ])
477
512
  * .execute()
478
- *
479
- * persons[0].first_pet_name
480
- * persons[0].is_jennifer_or_arnold
481
- * persons[0].full_name
482
513
  * ```
483
514
  *
484
515
  * The generated SQL (PostgreSQL):
@@ -543,8 +574,10 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
543
574
  *
544
575
  * ### Examples
545
576
  *
577
+ * <!-- siteExample("select", "Distinct on", 80) -->
578
+ *
546
579
  * ```ts
547
- * await db.selectFrom('person')
580
+ * const persons = await db.selectFrom('person')
548
581
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
549
582
  * .where('pet.name', '=', 'Doggo')
550
583
  * .distinctOn('person.id')
@@ -610,10 +643,12 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
610
643
  /**
611
644
  * Makes the selection distinct.
612
645
  *
646
+ * <!-- siteExample("select", "Distinct", 70) -->
647
+ *
613
648
  * ### Examples
614
649
  *
615
650
  * ```ts
616
- * await db.selectFrom('person')
651
+ * const persons = await db.selectFrom('person')
617
652
  * .select('first_name')
618
653
  * .distinct()
619
654
  * .execute()
@@ -655,6 +690,10 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
655
690
  *
656
691
  * ### Examples
657
692
  *
693
+ * <!-- siteExample("select", "All columns", 90) -->
694
+ *
695
+ * The `selectAll` method generates `SELECT *`:
696
+ *
658
697
  * ```ts
659
698
  * const persons = await db
660
699
  * .selectFrom('person')
@@ -668,6 +707,8 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
668
707
  * select * from "person"
669
708
  * ```
670
709
  *
710
+ * <!-- siteExample("select", "All columns of a table", 100) -->
711
+ *
671
712
  * Select all columns of a table:
672
713
  *
673
714
  * ```ts
@@ -699,14 +740,16 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
699
740
  * ```
700
741
  */
701
742
  selectAll<T extends TB>(table: ReadonlyArray<T>): SelectQueryBuilder<DB, TB, O & AllSelection<DB, T>>;
702
- selectAll<T extends TB>(table: T): SelectQueryBuilder<DB, TB, Selectable<DB[T]>>;
743
+ selectAll<T extends TB>(table: T): SelectQueryBuilder<DB, TB, O & Selectable<DB[T]>>;
703
744
  selectAll(): SelectQueryBuilder<DB, TB, O & AllSelection<DB, TB>>;
704
745
  /**
705
746
  * Joins another table to the query using an inner join.
706
747
  *
707
748
  * ### Examples
708
749
  *
709
- * Simple usage by providing a table name and two columns to join:
750
+ * <!-- siteExample("join", "Simple inner join", 10) -->
751
+ *
752
+ * Simple inner joins can be done by providing a table name and two columns to join:
710
753
  *
711
754
  * ```ts
712
755
  * const result = await db
@@ -714,22 +757,21 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
714
757
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
715
758
  * // `select` needs to come after the call to `innerJoin` so
716
759
  * // that you can select from the joined table.
717
- * .select('person.id', 'pet.name')
760
+ * .select(['person.id', 'pet.name as pet_name'])
718
761
  * .execute()
719
- *
720
- * result[0].id
721
- * result[0].name
722
762
  * ```
723
763
  *
724
764
  * The generated SQL (PostgreSQL):
725
765
  *
726
766
  * ```sql
727
- * select "person"."id", "pet"."name"
767
+ * select "person"."id", "pet"."name" as "pet_name"
728
768
  * from "person"
729
769
  * inner join "pet"
730
770
  * on "pet"."owner_id" = "person"."id"
731
771
  * ```
732
772
  *
773
+ * <!-- siteExample("join", "Aliased inner join", 20) -->
774
+ *
733
775
  * You can give an alias for the joined table like this:
734
776
  *
735
777
  * ```ts
@@ -750,13 +792,15 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
750
792
  * where "p".name" = $1
751
793
  * ```
752
794
  *
795
+ * <!-- siteExample("join", "Complex join", 30) -->
796
+ *
753
797
  * You can provide a function as the second argument to get a join
754
798
  * builder for creating more complex joins. The join builder has a
755
799
  * bunch of `on*` methods for building the `on` clause of the join.
756
800
  * There's basically an equivalent for every `where` method
757
- * (`on`, `onRef`, `onExists` etc.). You can do all the same things
758
- * with the `on` method that you can with the corresponding `where`
759
- * method. See the `where` method documentation for more examples.
801
+ * (`on`, `onRef` etc.). You can do all the same things with the
802
+ * `on` method that you can with the corresponding `where` method.
803
+ * See the `where` method documentation for more examples.
760
804
  *
761
805
  * ```ts
762
806
  * await db.selectFrom('person')
@@ -780,34 +824,36 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
780
824
  * and "pet"."name" = $1
781
825
  * ```
782
826
  *
783
- * You can join a subquery by providing a select query (or a callback)
784
- * as the first argument:
827
+ * <!-- siteExample("join", "Subquery join", 40) -->
828
+ *
829
+ * You can join a subquery by providing two callbacks:
785
830
  *
786
831
  * ```ts
787
- * await db.selectFrom('person')
832
+ * const result = await db.selectFrom('person')
788
833
  * .innerJoin(
789
- * db.selectFrom('pet')
790
- * .select(['owner_id', 'name'])
834
+ * (eb) => eb
835
+ * .selectFrom('pet')
836
+ * .select(['owner_id as owner', 'name'])
791
837
  * .where('name', '=', 'Doggo')
792
838
  * .as('doggos'),
793
- * 'doggos.owner_id',
794
- * 'person.id',
839
+ * (join) => join
840
+ * .onRef('doggos.owner', '=', 'person.id'),
795
841
  * )
796
- * .selectAll()
842
+ * .selectAll('doggos')
797
843
  * .execute()
798
844
  * ```
799
845
  *
800
846
  * The generated SQL (PostgreSQL):
801
847
  *
802
848
  * ```sql
803
- * select *
849
+ * select "doggos".*
804
850
  * from "person"
805
851
  * inner join (
806
- * select "owner_id", "name"
852
+ * select "owner_id" as "owner", "name"
807
853
  * from "pet"
808
854
  * where "name" = $1
809
855
  * ) as "doggos"
810
- * on "doggos"."owner_id" = "person"."id"
856
+ * on "doggos"."owner" = "person"."id"
811
857
  * ```
812
858
  */
813
859
  innerJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): SelectQueryBuilderWithInnerJoin<DB, TB, O, TE>;
@@ -1326,10 +1372,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
1326
1372
  * ```
1327
1373
  */
1328
1374
  $call<T>(func: (qb: this) => T): T;
1329
- /**
1330
- * @deprecated Use `$call` instead
1331
- */
1332
- call<T>(func: (qb: this) => T): T;
1333
1375
  /**
1334
1376
  * Call `func(this)` if `condition` is true.
1335
1377
  *
@@ -1385,23 +1427,17 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
1385
1427
  * You can also call any other methods inside the callback:
1386
1428
  *
1387
1429
  * ```ts
1388
- * const { count } = db.fn
1389
- *
1390
1430
  * db.selectFrom('person')
1391
1431
  * .select('person.id')
1392
1432
  * .$if(filterByFirstName, (qb) => qb.where('first_name', '=', firstName))
1393
1433
  * .$if(filterByPetCount, (qb) => qb
1394
1434
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
1395
- * .having(count('pet.id'), '>', petCountLimit)
1435
+ * .having((eb) => eb.fn.count('pet.id'), '>', petCountLimit)
1396
1436
  * .groupBy('person.id')
1397
1437
  * )
1398
1438
  * ```
1399
1439
  */
1400
- $if<O2>(condition: boolean, func: (qb: this) => SelectQueryBuilder<DB, TB, O & O2>): SelectQueryBuilder<DB, TB, O & Partial<O2>>;
1401
- /**
1402
- * @deprecated Use `$if` instead
1403
- */
1404
- if<O2>(condition: boolean, func: (qb: this) => SelectQueryBuilder<DB, TB, O & O2>): SelectQueryBuilder<DB, TB, O & Partial<O2>>;
1440
+ $if<O2>(condition: boolean, func: (qb: this) => SelectQueryBuilder<any, any, O & O2>): SelectQueryBuilder<DB, TB, O & Partial<O2>>;
1405
1441
  /**
1406
1442
  * Change the output type of the query.
1407
1443
  *
@@ -1409,10 +1445,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
1409
1445
  * don't support your use case.
1410
1446
  */
1411
1447
  $castTo<T>(): SelectQueryBuilder<DB, TB, T>;
1412
- /**
1413
- * @deprecated Use `$castTo` instead.
1414
- */
1415
- castTo<T>(): SelectQueryBuilder<DB, TB, T>;
1416
1448
  /**
1417
1449
  * Narrows (parts of) the output type of the query.
1418
1450
  *
@@ -1494,10 +1526,6 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
1494
1526
  * ```
1495
1527
  */
1496
1528
  $assertType<T extends O>(): O extends T ? SelectQueryBuilder<DB, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
1497
- /**
1498
- * @deprecated Use `$assertType` instead.
1499
- */
1500
- assertType<T extends O>(): O extends T ? SelectQueryBuilder<DB, TB, T> : KyselyTypeError<`assertType() call failed: The type passed in is not equal to the output type of the query.`>;
1501
1529
  /**
1502
1530
  * Returns a copy of this SelectQueryBuilder instance with the given plugin installed.
1503
1531
  */
@@ -1628,24 +1656,24 @@ export declare class AliasedSelectQueryBuilder<DB, TB extends keyof DB, O = unde
1628
1656
  */
1629
1657
  toOperationNode(): AliasNode;
1630
1658
  }
1631
- export declare type SelectQueryBuilderWithInnerJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? SelectQueryBuilder<DB, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, TB, O, QA, QO> : never;
1632
- declare type InnerJoinedBuilder<DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? SelectQueryBuilder<InnerJoinedDB<DB, A, R>, TB | A, O> : SelectQueryBuilder<DB & ShallowRecord<A, R>, TB | A, O>;
1633
- declare type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
1659
+ export type SelectQueryBuilderWithInnerJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? SelectQueryBuilder<DB, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, TB, O, QA, QO> : never;
1660
+ type InnerJoinedBuilder<DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? SelectQueryBuilder<InnerJoinedDB<DB, A, R>, TB | A, O> : SelectQueryBuilder<DB & ShallowRecord<A, R>, TB | A, O>;
1661
+ type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
1634
1662
  [C in keyof DB | A]: C extends A ? R : C extends keyof DB ? DB[C] : never;
1635
1663
  }>;
1636
- export declare type SelectQueryBuilderWithLeftJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, TB, O, QA, QO> : never;
1637
- declare type LeftJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? SelectQueryBuilder<LeftJoinedDB<DB, A, R>, TB | A, O> : SelectQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, TB | A, O>;
1638
- declare type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
1664
+ export type SelectQueryBuilderWithLeftJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, TB, O, QA, QO> : never;
1665
+ type LeftJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? SelectQueryBuilder<LeftJoinedDB<DB, A, R>, TB | A, O> : SelectQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, TB | A, O>;
1666
+ type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
1639
1667
  [C in keyof DB | A]: C extends A ? Nullable<R> : C extends keyof DB ? DB[C] : never;
1640
1668
  }>;
1641
- export declare type SelectQueryBuilderWithRightJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, TB, O, QA, QO> : never;
1642
- declare type RightJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = SelectQueryBuilder<RightJoinedDB<DB, TB, A, R>, TB | A, O>;
1643
- declare type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
1669
+ export type SelectQueryBuilderWithRightJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, TB, O, QA, QO> : never;
1670
+ type RightJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = SelectQueryBuilder<RightJoinedDB<DB, TB, A, R>, TB | A, O>;
1671
+ type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
1644
1672
  [C in keyof DB | A]: C extends A ? R : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
1645
1673
  }>;
1646
- export declare type SelectQueryBuilderWithFullJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, TB, O, QA, QO> : never;
1647
- declare type OuterJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = SelectQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, TB | A, O>;
1648
- declare type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
1674
+ export type SelectQueryBuilderWithFullJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, TB, O, QA, QO> : never;
1675
+ type OuterJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = SelectQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, TB | A, O>;
1676
+ type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
1649
1677
  [C in keyof DB | A]: C extends A ? Nullable<R> : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
1650
1678
  }>;
1651
1679
  export {};