kysely 0.27.3 → 0.27.5

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 (301) hide show
  1. package/.renovaterc.json +3 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +7 -7
  4. package/deno.check.d.ts +86 -0
  5. package/deno.check.json +21 -0
  6. package/dist/cjs/dialect/dialect-adapter-base.d.ts +13 -3
  7. package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
  8. package/dist/cjs/dialect/dialect-adapter.d.ts +16 -2
  9. package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +12 -7
  10. package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
  11. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +83 -55
  12. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
  13. package/dist/cjs/dialect/mssql/mssql-driver.js +114 -48
  14. package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
  15. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  16. package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
  17. package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
  18. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  19. package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
  20. package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
  21. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  22. package/dist/cjs/driver/database-connection.d.ts +3 -1
  23. package/dist/cjs/driver/dummy-driver.d.ts +13 -12
  24. package/dist/cjs/driver/dummy-driver.js +13 -12
  25. package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
  26. package/dist/cjs/dynamic/dynamic.d.ts +7 -7
  27. package/dist/cjs/dynamic/dynamic.js +7 -7
  28. package/dist/cjs/expression/expression-builder.d.ts +153 -62
  29. package/dist/cjs/expression/expression-builder.js +2 -3
  30. package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
  31. package/dist/cjs/expression/expression.d.ts +40 -5
  32. package/dist/cjs/expression/expression.js +2 -3
  33. package/dist/cjs/helpers/mssql.d.ts +74 -14
  34. package/dist/cjs/helpers/mssql.js +77 -18
  35. package/dist/cjs/helpers/mysql.d.ts +17 -13
  36. package/dist/cjs/helpers/mysql.js +20 -17
  37. package/dist/cjs/helpers/postgres.d.ts +11 -8
  38. package/dist/cjs/helpers/postgres.js +14 -12
  39. package/dist/cjs/helpers/sqlite.d.ts +41 -16
  40. package/dist/cjs/helpers/sqlite.js +44 -20
  41. package/dist/cjs/index.d.ts +28 -21
  42. package/dist/cjs/index.js +28 -21
  43. package/dist/cjs/kysely.d.ts +100 -42
  44. package/dist/cjs/kysely.js +63 -39
  45. package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
  46. package/dist/cjs/migration/file-migration-provider.js +2 -2
  47. package/dist/cjs/migration/migrator.d.ts +82 -14
  48. package/dist/cjs/migration/migrator.js +82 -14
  49. package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
  50. package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
  51. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/case-node.d.ts +1 -1
  53. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  54. package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
  55. package/dist/cjs/operation-node/data-type-node.js +17 -3
  56. package/dist/cjs/operation-node/delete-query-node.d.ts +3 -0
  57. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
  58. package/dist/cjs/operation-node/having-node.d.ts +1 -1
  59. package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
  60. package/dist/cjs/operation-node/merge-query-node.d.ts +3 -0
  61. package/dist/cjs/operation-node/on-node.d.ts +1 -1
  62. package/dist/cjs/operation-node/operation-node-source.js +1 -2
  63. package/dist/cjs/operation-node/operation-node-transformer.d.ts +11 -3
  64. package/dist/cjs/operation-node/operation-node-transformer.js +26 -3
  65. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  66. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  67. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  68. package/dist/cjs/operation-node/operator-node.d.ts +3 -3
  69. package/dist/cjs/operation-node/operator-node.js +8 -6
  70. package/dist/cjs/operation-node/output-node.d.ts +13 -0
  71. package/dist/cjs/operation-node/output-node.js +26 -0
  72. package/dist/cjs/operation-node/query-node.d.ts +15 -6
  73. package/dist/cjs/operation-node/query-node.js +17 -0
  74. package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
  75. package/dist/cjs/operation-node/select-query-node.js +6 -8
  76. package/dist/cjs/operation-node/update-query-node.d.ts +3 -0
  77. package/dist/cjs/operation-node/where-node.d.ts +1 -1
  78. package/dist/cjs/parser/binary-operation-parser.js +5 -6
  79. package/dist/cjs/parser/data-type-parser.js +1 -2
  80. package/dist/cjs/parser/default-value-parser.js +1 -2
  81. package/dist/cjs/parser/expression-parser.js +3 -4
  82. package/dist/cjs/parser/fetch-parser.js +1 -2
  83. package/dist/cjs/parser/group-by-parser.js +1 -2
  84. package/dist/cjs/parser/identifier-parser.js +1 -2
  85. package/dist/cjs/parser/insert-values-parser.js +1 -2
  86. package/dist/cjs/parser/join-parser.js +1 -2
  87. package/dist/cjs/parser/merge-parser.js +2 -3
  88. package/dist/cjs/parser/on-commit-action-parse.js +1 -2
  89. package/dist/cjs/parser/on-modify-action-parser.js +1 -2
  90. package/dist/cjs/parser/order-by-parser.js +3 -4
  91. package/dist/cjs/parser/parse-utils.js +4 -5
  92. package/dist/cjs/parser/partition-by-parser.js +1 -2
  93. package/dist/cjs/parser/reference-parser.js +8 -9
  94. package/dist/cjs/parser/returning-parser.d.ts +4 -3
  95. package/dist/cjs/parser/select-parser.js +2 -3
  96. package/dist/cjs/parser/set-operation-parser.js +1 -2
  97. package/dist/cjs/parser/table-parser.js +4 -5
  98. package/dist/cjs/parser/top-parser.js +1 -2
  99. package/dist/cjs/parser/unary-operation-parser.js +3 -4
  100. package/dist/cjs/parser/update-set-parser.js +2 -3
  101. package/dist/cjs/parser/value-parser.js +4 -5
  102. package/dist/cjs/parser/with-parser.js +1 -2
  103. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +54 -27
  104. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +26 -21
  105. package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
  106. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  107. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  108. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  109. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  110. package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
  111. package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
  112. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
  113. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
  114. package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  115. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
  116. package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
  117. package/dist/cjs/query-builder/delete-query-builder.d.ts +219 -43
  118. package/dist/cjs/query-builder/delete-query-builder.js +95 -31
  119. package/dist/cjs/query-builder/function-module.d.ts +40 -93
  120. package/dist/cjs/query-builder/function-module.js +1 -2
  121. package/dist/cjs/query-builder/insert-query-builder.d.ts +326 -67
  122. package/dist/cjs/query-builder/insert-query-builder.js +212 -61
  123. package/dist/cjs/query-builder/insert-result.d.ts +10 -5
  124. package/dist/cjs/query-builder/insert-result.js +10 -5
  125. package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
  126. package/dist/cjs/query-builder/json-path-builder.js +8 -5
  127. package/dist/cjs/query-builder/merge-query-builder.d.ts +312 -10
  128. package/dist/cjs/query-builder/merge-query-builder.js +98 -7
  129. package/dist/cjs/query-builder/no-result-error.js +2 -2
  130. package/dist/cjs/query-builder/on-conflict-builder.d.ts +53 -20
  131. package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
  132. package/dist/cjs/query-builder/output-interface.d.ts +138 -0
  133. package/dist/cjs/query-builder/output-interface.js +2 -0
  134. package/dist/cjs/query-builder/returning-interface.d.ts +7 -5
  135. package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
  136. package/dist/cjs/query-builder/select-query-builder.d.ts +370 -73
  137. package/dist/cjs/query-builder/select-query-builder.js +14 -9
  138. package/dist/cjs/query-builder/update-query-builder.d.ts +225 -31
  139. package/dist/cjs/query-builder/update-query-builder.js +96 -17
  140. package/dist/cjs/query-builder/update-result.d.ts +9 -0
  141. package/dist/cjs/query-builder/update-result.js +9 -0
  142. package/dist/cjs/query-builder/where-interface.d.ts +6 -2
  143. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
  144. package/dist/cjs/query-compiler/default-query-compiler.js +45 -1
  145. package/dist/cjs/query-creator.d.ts +122 -21
  146. package/dist/cjs/query-creator.js +56 -3
  147. package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
  148. package/dist/cjs/raw-builder/raw-builder.js +1 -2
  149. package/dist/cjs/raw-builder/sql.d.ts +31 -12
  150. package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
  151. package/dist/cjs/schema/alter-column-builder.js +20 -3
  152. package/dist/cjs/schema/alter-table-add-index-builder.d.ts +44 -10
  153. package/dist/cjs/schema/alter-table-add-index-builder.js +27 -10
  154. package/dist/cjs/schema/alter-table-builder.js +1 -2
  155. package/dist/cjs/schema/column-definition-builder.d.ts +286 -24
  156. package/dist/cjs/schema/column-definition-builder.js +288 -24
  157. package/dist/cjs/schema/create-table-builder.d.ts +86 -33
  158. package/dist/cjs/schema/create-table-builder.js +86 -33
  159. package/dist/cjs/util/assert.js +2 -3
  160. package/dist/cjs/util/column-type.d.ts +5 -9
  161. package/dist/cjs/util/compilable.js +1 -2
  162. package/dist/cjs/util/json-object-args.js +1 -2
  163. package/dist/cjs/util/log-once.js +1 -2
  164. package/dist/cjs/util/object-utils.js +38 -26
  165. package/dist/cjs/util/performance-now.js +1 -2
  166. package/dist/cjs/util/prevent-await.js +1 -2
  167. package/dist/cjs/util/query-id.js +1 -2
  168. package/dist/cjs/util/random-string.js +1 -2
  169. package/dist/cjs/util/require-all-props.d.ts +4 -2
  170. package/dist/cjs/util/require-all-props.js +5 -4
  171. package/dist/cjs/util/stack-trace-utils.js +1 -2
  172. package/dist/cjs/util/streamable.d.ts +1 -1
  173. package/dist/cjs/util/type-utils.d.ts +4 -2
  174. package/dist/esm/dialect/dialect-adapter-base.d.ts +13 -3
  175. package/dist/esm/dialect/dialect-adapter-base.js +4 -1
  176. package/dist/esm/dialect/dialect-adapter.d.ts +16 -2
  177. package/dist/esm/dialect/mssql/mssql-adapter.d.ts +12 -7
  178. package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
  179. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +83 -55
  180. package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
  181. package/dist/esm/dialect/mssql/mssql-driver.js +114 -48
  182. package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
  183. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  184. package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
  185. package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
  186. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  187. package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
  188. package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
  189. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  190. package/dist/esm/driver/database-connection.d.ts +3 -1
  191. package/dist/esm/driver/dummy-driver.d.ts +13 -12
  192. package/dist/esm/driver/dummy-driver.js +13 -12
  193. package/dist/esm/dynamic/dynamic.d.ts +7 -7
  194. package/dist/esm/dynamic/dynamic.js +7 -7
  195. package/dist/esm/expression/expression-builder.d.ts +153 -62
  196. package/dist/esm/expression/expression-wrapper.d.ts +92 -23
  197. package/dist/esm/expression/expression.d.ts +40 -5
  198. package/dist/esm/helpers/mssql.d.ts +74 -14
  199. package/dist/esm/helpers/mssql.js +74 -14
  200. package/dist/esm/helpers/mysql.d.ts +17 -13
  201. package/dist/esm/helpers/mysql.js +17 -13
  202. package/dist/esm/helpers/postgres.d.ts +11 -8
  203. package/dist/esm/helpers/postgres.js +11 -8
  204. package/dist/esm/helpers/sqlite.d.ts +41 -16
  205. package/dist/esm/helpers/sqlite.js +41 -16
  206. package/dist/esm/index.d.ts +28 -21
  207. package/dist/esm/index.js +28 -21
  208. package/dist/esm/kysely.d.ts +100 -42
  209. package/dist/esm/kysely.js +61 -37
  210. package/dist/esm/migration/file-migration-provider.d.ts +2 -2
  211. package/dist/esm/migration/file-migration-provider.js +2 -2
  212. package/dist/esm/migration/migrator.d.ts +82 -14
  213. package/dist/esm/migration/migrator.js +82 -14
  214. package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
  215. package/dist/esm/operation-node/aggregate-function-node.js +9 -0
  216. package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
  217. package/dist/esm/operation-node/case-node.d.ts +1 -1
  218. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  219. package/dist/esm/operation-node/data-type-node.d.ts +2 -2
  220. package/dist/esm/operation-node/data-type-node.js +15 -1
  221. package/dist/esm/operation-node/delete-query-node.d.ts +3 -0
  222. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
  223. package/dist/esm/operation-node/having-node.d.ts +1 -1
  224. package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
  225. package/dist/esm/operation-node/merge-query-node.d.ts +3 -0
  226. package/dist/esm/operation-node/on-node.d.ts +1 -1
  227. package/dist/esm/operation-node/operation-node-transformer.d.ts +11 -3
  228. package/dist/esm/operation-node/operation-node-transformer.js +26 -3
  229. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  230. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  231. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  232. package/dist/esm/operation-node/operator-node.d.ts +3 -3
  233. package/dist/esm/operation-node/operator-node.js +2 -0
  234. package/dist/esm/operation-node/output-node.d.ts +13 -0
  235. package/dist/esm/operation-node/output-node.js +24 -0
  236. package/dist/esm/operation-node/query-node.d.ts +15 -6
  237. package/dist/esm/operation-node/query-node.js +17 -0
  238. package/dist/esm/operation-node/select-query-node.d.ts +1 -1
  239. package/dist/esm/operation-node/select-query-node.js +6 -8
  240. package/dist/esm/operation-node/update-query-node.d.ts +3 -0
  241. package/dist/esm/operation-node/where-node.d.ts +1 -1
  242. package/dist/esm/parser/returning-parser.d.ts +4 -3
  243. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +54 -27
  244. package/dist/esm/plugin/camel-case/camel-case-plugin.js +26 -21
  245. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  246. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  247. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  248. package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  249. package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
  250. package/dist/esm/plugin/noop-plugin.d.ts +28 -6
  251. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
  252. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
  253. package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  254. package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
  255. package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
  256. package/dist/esm/query-builder/delete-query-builder.d.ts +219 -43
  257. package/dist/esm/query-builder/delete-query-builder.js +95 -31
  258. package/dist/esm/query-builder/function-module.d.ts +40 -93
  259. package/dist/esm/query-builder/insert-query-builder.d.ts +326 -67
  260. package/dist/esm/query-builder/insert-query-builder.js +212 -61
  261. package/dist/esm/query-builder/insert-result.d.ts +10 -5
  262. package/dist/esm/query-builder/insert-result.js +10 -5
  263. package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
  264. package/dist/esm/query-builder/json-path-builder.js +8 -5
  265. package/dist/esm/query-builder/merge-query-builder.d.ts +312 -10
  266. package/dist/esm/query-builder/merge-query-builder.js +98 -7
  267. package/dist/esm/query-builder/on-conflict-builder.d.ts +53 -20
  268. package/dist/esm/query-builder/on-conflict-builder.js +41 -16
  269. package/dist/esm/query-builder/output-interface.d.ts +138 -0
  270. package/dist/esm/query-builder/output-interface.js +2 -0
  271. package/dist/esm/query-builder/returning-interface.d.ts +7 -5
  272. package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
  273. package/dist/esm/query-builder/select-query-builder.d.ts +370 -73
  274. package/dist/esm/query-builder/select-query-builder.js +13 -7
  275. package/dist/esm/query-builder/update-query-builder.d.ts +225 -31
  276. package/dist/esm/query-builder/update-query-builder.js +96 -17
  277. package/dist/esm/query-builder/update-result.d.ts +9 -0
  278. package/dist/esm/query-builder/update-result.js +9 -0
  279. package/dist/esm/query-builder/where-interface.d.ts +6 -2
  280. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
  281. package/dist/esm/query-compiler/default-query-compiler.js +45 -1
  282. package/dist/esm/query-creator.d.ts +122 -21
  283. package/dist/esm/query-creator.js +56 -3
  284. package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
  285. package/dist/esm/raw-builder/sql.d.ts +31 -12
  286. package/dist/esm/schema/alter-column-builder.d.ts +17 -3
  287. package/dist/esm/schema/alter-column-builder.js +20 -3
  288. package/dist/esm/schema/alter-table-add-index-builder.d.ts +44 -10
  289. package/dist/esm/schema/alter-table-add-index-builder.js +27 -10
  290. package/dist/esm/schema/alter-table-builder.js +1 -2
  291. package/dist/esm/schema/column-definition-builder.d.ts +286 -24
  292. package/dist/esm/schema/column-definition-builder.js +288 -24
  293. package/dist/esm/schema/create-table-builder.d.ts +86 -33
  294. package/dist/esm/schema/create-table-builder.js +86 -33
  295. package/dist/esm/util/column-type.d.ts +5 -9
  296. package/dist/esm/util/object-utils.js +18 -5
  297. package/dist/esm/util/require-all-props.d.ts +4 -2
  298. package/dist/esm/util/require-all-props.js +4 -2
  299. package/dist/esm/util/streamable.d.ts +1 -1
  300. package/dist/esm/util/type-utils.d.ts +4 -2
  301. package/package.json +30 -24
@@ -24,7 +24,8 @@ import { KyselyTypeError } from '../util/type-error.js';
24
24
  import { Streamable } from '../util/streamable.js';
25
25
  import { ExpressionOrFactory } from '../parser/expression-parser.js';
26
26
  import { ValueExpression } from '../parser/value-parser.js';
27
- export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
27
+ import { OutputCallback, OutputExpression, OutputInterface, SelectExpressionFromOutputCallback, SelectExpressionFromOutputExpression } from './output-interface.js';
28
+ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OutputInterface<DB, TB, O, 'deleted'>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
28
29
  #private;
29
30
  constructor(props: DeleteQueryBuilderProps);
30
31
  /**
@@ -59,6 +60,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
59
60
  * you can always use:
60
61
  *
61
62
  * ```ts
63
+ * import { sql } from 'kysely'
64
+ *
62
65
  * sql`your operator`
63
66
  * ```
64
67
  *
@@ -70,7 +73,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
70
73
  * const persons = await db
71
74
  * .selectFrom('person')
72
75
  * .selectAll()
73
- * .where('id', 'in', ['1', '2', '3'])
76
+ * .where('id', 'in', [1, 2, 3])
74
77
  * .execute()
75
78
  * ```
76
79
  *
@@ -289,7 +292,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
289
292
  * .selectFrom('person')
290
293
  * .selectAll()
291
294
  * .where(
292
- * sql`coalesce(first_name, last_name)`,
295
+ * sql<string>`coalesce(first_name, last_name)`,
293
296
  * 'like',
294
297
  * '%' + name + '%',
295
298
  * )
@@ -318,6 +321,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
318
321
  * import { sql } from 'kysely'
319
322
  * const { ref } = db.dynamic
320
323
  *
324
+ * const columnFromUserInput: string = 'id'
325
+ *
321
326
  * const persons = await db
322
327
  * .selectFrom('person')
323
328
  * .selectAll()
@@ -528,7 +533,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
528
533
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
529
534
  * // `select` needs to come after the call to `innerJoin` so
530
535
  * // that you can select from the joined table.
531
- * .select('person.id', 'pet.name')
536
+ * .select(['person.id', 'pet.name'])
532
537
  * .execute()
533
538
  *
534
539
  * result[0].id
@@ -600,7 +605,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
600
605
  * ```ts
601
606
  * await db.selectFrom('person')
602
607
  * .innerJoin(
603
- * qb.selectFrom('pet')
608
+ * db.selectFrom('pet')
604
609
  * .select(['owner_id', 'name'])
605
610
  * .where('name', '=', 'Doggo')
606
611
  * .as('doggos'),
@@ -665,20 +670,20 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
665
670
  * last_name: 'Aniston'
666
671
  * })
667
672
  * .returning('id')
668
- * .executeTakeFirst()
673
+ * .executeTakeFirstOrThrow()
669
674
  * ```
670
675
  *
671
676
  * Return multiple columns:
672
677
  *
673
678
  * ```ts
674
- * const { id, first_name } = await db
679
+ * const { id, last_name } = await db
675
680
  * .insertInto('person')
676
681
  * .values({
677
682
  * first_name: 'Jennifer',
678
683
  * last_name: 'Aniston'
679
684
  * })
680
685
  * .returning(['id', 'last_name'])
681
- * .executeTakeFirst()
686
+ * .executeTakeFirstOrThrow()
682
687
  * ```
683
688
  *
684
689
  * Return arbitrary expressions:
@@ -695,9 +700,9 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
695
700
  * .returning((eb) => [
696
701
  * 'id as id',
697
702
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
698
- * eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
703
+ * eb.selectFrom('pet').select('pet.id').limit(1).as('first_pet_id')
699
704
  * ])
700
- * .executeTakeFirst()
705
+ * .executeTakeFirstOrThrow()
701
706
  * ```
702
707
  */
703
708
  returning<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SE>>;
@@ -726,7 +731,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
726
731
  * Return all columns from all tables
727
732
  *
728
733
  * ```ts
729
- * const result = ctx.db
734
+ * const result = await db
730
735
  * .deleteFrom('toy')
731
736
  * .using(['pet', 'person'])
732
737
  * .whereRef('toy.pet_id', '=', 'pet.id')
@@ -750,7 +755,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
750
755
  * Return all columns from a single table.
751
756
  *
752
757
  * ```ts
753
- * const result = ctx.db
758
+ * const result = await db
754
759
  * .deleteFrom('toy')
755
760
  * .using(['pet', 'person'])
756
761
  * .whereRef('toy.pet_id', '=', 'pet.id')
@@ -774,7 +779,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
774
779
  * Return all columns from multiple tables.
775
780
  *
776
781
  * ```ts
777
- * const result = ctx.db
782
+ * const result = await db
778
783
  * .deleteFrom('toy')
779
784
  * .using(['pet', 'person'])
780
785
  * .whereRef('toy.pet_id', '=', 'pet.id')
@@ -799,19 +804,146 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
799
804
  /**
800
805
  * Adds a `returning *` to an insert/update/delete query on databases
801
806
  * that support `returning` such as PostgreSQL.
807
+ *
808
+ * Also see the {@link returning} method.
802
809
  */
803
810
  returningAll<T extends TB>(table: T): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, T, O>>;
804
811
  returningAll(): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, TB, O>>;
812
+ /**
813
+ * Allows you to return data from modified rows.
814
+ *
815
+ * On supported databases like MS SQL Server (MSSQL), this method can be chained
816
+ * to `insert`, `update`, `delete` and `merge` queries to return data.
817
+ *
818
+ * Also see the {@link outputAll} method.
819
+ *
820
+ * ### Examples
821
+ *
822
+ * Return one column:
823
+ *
824
+ * ```ts
825
+ * const { id } = await db
826
+ * .insertInto('person')
827
+ * .output('inserted.id')
828
+ * .values({
829
+ * first_name: 'Jennifer',
830
+ * last_name: 'Aniston',
831
+ * gender: 'female',
832
+ * })
833
+ * .executeTakeFirstOrThrow()
834
+ * ```
835
+ *
836
+ * The generated SQL (MSSQL):
837
+ *
838
+ * ```sql
839
+ * insert into "person" ("first_name", "last_name", "gender")
840
+ * output "inserted"."id"
841
+ * values (@1, @2, @3)
842
+ * ```
843
+ *
844
+ * Return multiple columns:
845
+ *
846
+ * ```ts
847
+ * const { old_first_name, old_last_name, new_first_name, new_last_name } = await db
848
+ * .updateTable('person')
849
+ * .set({ first_name: 'John', last_name: 'Doe' })
850
+ * .output([
851
+ * 'deleted.first_name as old_first_name',
852
+ * 'deleted.last_name as old_last_name',
853
+ * 'inserted.first_name as new_first_name',
854
+ * 'inserted.last_name as new_last_name',
855
+ * ])
856
+ * .where('created_at', '<', new Date())
857
+ * .executeTakeFirstOrThrow()
858
+ * ```
859
+ *
860
+ * The generated SQL (MSSQL):
861
+ *
862
+ * ```sql
863
+ * update "person"
864
+ * set "first_name" = @1, "last_name" = @2
865
+ * output "deleted"."first_name" as "old_first_name",
866
+ * "deleted"."last_name" as "old_last_name",
867
+ * "inserted"."first_name" as "new_first_name",
868
+ * "inserted"."last_name" as "new_last_name"
869
+ * where "created_at" < @3
870
+ * ```
871
+ *
872
+ * Return arbitrary expressions:
873
+ *
874
+ * ```ts
875
+ * import { sql } from 'kysely'
876
+ *
877
+ * const { full_name } = await db
878
+ * .deleteFrom('person')
879
+ * .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name'))
880
+ * .where('created_at', '<', new Date())
881
+ * .executeTakeFirstOrThrow()
882
+ * ```
883
+ *
884
+ * The generated SQL (MSSQL):
885
+ *
886
+ * ```sql
887
+ * delete from "person"
888
+ * output concat("deleted"."first_name", ' ', "deleted"."last_name") as "full_name"
889
+ * where "created_at" < @1
890
+ * ```
891
+ *
892
+ * Return the action performed on the row:
893
+ *
894
+ * ```ts
895
+ * await db
896
+ * .mergeInto('person')
897
+ * .using('pet', 'pet.owner_id', 'person.id')
898
+ * .whenMatched()
899
+ * .thenDelete()
900
+ * .whenNotMatched()
901
+ * .thenInsertValues({
902
+ * first_name: 'John',
903
+ * last_name: 'Doe',
904
+ * gender: 'male'
905
+ * })
906
+ * .output([
907
+ * 'inserted.id as inserted_id',
908
+ * 'deleted.id as deleted_id',
909
+ * ])
910
+ * .execute()
911
+ * ```
912
+ *
913
+ * The generated SQL (MSSQL):
914
+ *
915
+ * ```sql
916
+ * merge into "person"
917
+ * using "pet" on "pet"."owner_id" = "person"."id"
918
+ * when matched then delete
919
+ * when not matched then
920
+ * insert ("first_name", "last_name", "gender")
921
+ * values (@1, @2, @3)
922
+ * output "inserted"."id" as "inserted_id", "deleted"."id" as "deleted_id"
923
+ * ```
924
+ *
925
+ */
926
+ output<OE extends OutputExpression<DB, TB, 'deleted'>>(selections: readonly OE[]): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
927
+ output<CB extends OutputCallback<DB, TB, 'deleted'>>(callback: CB): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputCallback<CB>>>;
928
+ output<OE extends OutputExpression<DB, TB, 'deleted'>>(selection: OE): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
929
+ /**
930
+ * Adds an `output {prefix}.*` to an `insert`/`update`/`delete`/`merge` query on databases
931
+ * that support `output` such as MS SQL Server (MSSQL).
932
+ *
933
+ * Also see the {@link output} method.
934
+ */
935
+ outputAll(table: 'deleted'): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, TB, O>>;
805
936
  /**
806
937
  * Clears all `returning` clauses from the query.
807
938
  *
808
939
  * ### Examples
809
940
  *
810
941
  * ```ts
811
- * db.deleteFrom('pet')
942
+ * await db.deleteFrom('pet')
812
943
  * .returningAll()
813
944
  * .where('name', '=', 'Max')
814
945
  * .clearReturning()
946
+ * .execute()
815
947
  * ```
816
948
  *
817
949
  * The generated SQL(PostgreSQL):
@@ -827,11 +959,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
827
959
  * ### Examples
828
960
  *
829
961
  * ```ts
830
- * db.deleteFrom('pet')
962
+ * await db.deleteFrom('pet')
831
963
  * .returningAll()
832
964
  * .where('name', '=', 'Max')
833
965
  * .limit(5)
834
966
  * .clearLimit()
967
+ * .execute()
835
968
  * ```
836
969
  *
837
970
  * The generated SQL(PostgreSQL):
@@ -847,11 +980,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
847
980
  * ### Examples
848
981
  *
849
982
  * ```ts
850
- * db.deleteFrom('pet')
983
+ * await db.deleteFrom('pet')
851
984
  * .returningAll()
852
985
  * .where('name', '=', 'Max')
853
986
  * .orderBy('id')
854
987
  * .clearOrderBy()
988
+ * .execute()
855
989
  * ```
856
990
  *
857
991
  * The generated SQL(PostgreSQL):
@@ -913,8 +1047,36 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
913
1047
  * .limit(5)
914
1048
  * .execute()
915
1049
  * ```
1050
+ *
1051
+ * The generated SQL (MySQL):
1052
+ *
1053
+ * ```sql
1054
+ * delete from `pet` order by `created_at` limit ?
1055
+ * ```
916
1056
  */
917
1057
  limit(limit: ValueExpression<DB, TB, number>): DeleteQueryBuilder<DB, TB, O>;
1058
+ /**
1059
+ * This can be used to add any additional SQL to the end of the query.
1060
+ *
1061
+ * ### Examples
1062
+ *
1063
+ * ```ts
1064
+ * import { sql } from 'kysely'
1065
+ *
1066
+ * await db.deleteFrom('person')
1067
+ * .where('first_name', '=', 'John')
1068
+ * .modifyEnd(sql`-- This is a comment`)
1069
+ * .execute()
1070
+ * ```
1071
+ *
1072
+ * The generated SQL (MySQL):
1073
+ *
1074
+ * ```sql
1075
+ * delete from `person`
1076
+ * where `first_name` = "John" -- This is a comment
1077
+ * ```
1078
+ */
1079
+ modifyEnd(modifier: Expression<any>): DeleteQueryBuilder<DB, TB, O>;
918
1080
  /**
919
1081
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
920
1082
  * what the provided function returns.
@@ -927,12 +1089,14 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
927
1089
  * The next example uses a helper function `log` to log a query:
928
1090
  *
929
1091
  * ```ts
1092
+ * import type { Compilable } from 'kysely'
1093
+ *
930
1094
  * function log<T extends Compilable>(qb: T): T {
931
1095
  * console.log(qb.compile())
932
1096
  * return qb
933
1097
  * }
934
1098
  *
935
- * db.deleteFrom('person')
1099
+ * await db.deleteFrom('person')
936
1100
  * .$call(log)
937
1101
  * .execute()
938
1102
  * ```
@@ -966,11 +1130,11 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
966
1130
  * the code. In the example above the return type of the `deletePerson` function is:
967
1131
  *
968
1132
  * ```ts
969
- * {
1133
+ * Promise<{
970
1134
  * id: number
971
1135
  * first_name: string
972
1136
  * last_name?: string
973
- * }
1137
+ * }>
974
1138
  * ```
975
1139
  */
976
1140
  $if<O2>(condition: boolean, func: (qb: this) => DeleteQueryBuilder<any, any, O2>): O2 extends DeleteResult ? DeleteQueryBuilder<DB, TB, DeleteResult> : O2 extends O & infer E ? DeleteQueryBuilder<DB, TB, O & Partial<E>> : DeleteQueryBuilder<DB, TB, Partial<O2>>;
@@ -998,25 +1162,33 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
998
1162
  * Turn this code:
999
1163
  *
1000
1164
  * ```ts
1165
+ * import type { Person } from 'type-editor' // imaginary module
1166
+ *
1001
1167
  * const person = await db.deleteFrom('person')
1002
- * .where('id', '=', id)
1168
+ * .where('id', '=', 3)
1003
1169
  * .where('nullable_column', 'is not', null)
1004
1170
  * .returningAll()
1005
1171
  * .executeTakeFirstOrThrow()
1006
1172
  *
1007
- * if (person.nullable_column) {
1173
+ * if (isWithNoNullValue(person)) {
1008
1174
  * functionThatExpectsPersonWithNonNullValue(person)
1009
1175
  * }
1176
+ *
1177
+ * function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
1178
+ * return person.nullable_column != null
1179
+ * }
1010
1180
  * ```
1011
1181
  *
1012
1182
  * Into this:
1013
1183
  *
1014
1184
  * ```ts
1185
+ * import type { NotNull } from 'kysely'
1186
+ *
1015
1187
  * const person = await db.deleteFrom('person')
1016
- * .where('id', '=', id)
1188
+ * .where('id', '=', 3)
1017
1189
  * .where('nullable_column', 'is not', null)
1018
1190
  * .returningAll()
1019
- * .$narrowType<{ nullable_column: string }>()
1191
+ * .$narrowType<{ nullable_column: NotNull }>()
1020
1192
  * .executeTakeFirstOrThrow()
1021
1193
  *
1022
1194
  * functionThatExpectsPersonWithNonNullValue(person)
@@ -1026,17 +1198,17 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
1026
1198
  /**
1027
1199
  * Asserts that query's output row type equals the given type `T`.
1028
1200
  *
1029
- * This method can be used to simplify excessively complex types to make typescript happy
1201
+ * This method can be used to simplify excessively complex types to make TypeScript happy
1030
1202
  * and much faster.
1031
1203
  *
1032
1204
  * Kysely uses complex type magic to achieve its type safety. This complexity is sometimes too much
1033
- * for typescript and you get errors like this:
1205
+ * for TypeScript and you get errors like this:
1034
1206
  *
1035
1207
  * ```
1036
1208
  * error TS2589: Type instantiation is excessively deep and possibly infinite.
1037
1209
  * ```
1038
1210
  *
1039
- * In these case you can often use this method to help typescript a little bit. When you use this
1211
+ * In these case you can often use this method to help TypeScript a little bit. When you use this
1040
1212
  * method to assert the output type of a query, Kysely can drop the complex output type that
1041
1213
  * consists of multiple nested helper types and replace it with the simple asserted type.
1042
1214
  *
@@ -1046,22 +1218,26 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
1046
1218
  * ### Examples
1047
1219
  *
1048
1220
  * ```ts
1049
- * const result = await db
1050
- * .with('deleted_person', (qb) => qb
1051
- * .deleteFrom('person')
1052
- * .where('id', '=', person.id)
1053
- * .returning('first_name')
1054
- * .$assertType<{ first_name: string }>()
1055
- * )
1056
- * .with('deleted_pet', (qb) => qb
1057
- * .deleteFrom('pet')
1058
- * .where('owner_id', '=', person.id)
1059
- * .returning(['name as pet_name', 'species'])
1060
- * .$assertType<{ pet_name: string, species: Species }>()
1061
- * )
1062
- * .selectFrom(['deleted_person', 'deleted_pet'])
1063
- * .selectAll()
1064
- * .executeTakeFirstOrThrow()
1221
+ * import type { Species } from 'type-editor' // imaginary module
1222
+ *
1223
+ * async function deletePersonAndPets(personId: number) {
1224
+ * return await db
1225
+ * .with('deleted_person', (qb) => qb
1226
+ * .deleteFrom('person')
1227
+ * .where('id', '=', personId)
1228
+ * .returning('first_name')
1229
+ * .$assertType<{ first_name: string }>()
1230
+ * )
1231
+ * .with('deleted_pets', (qb) => qb
1232
+ * .deleteFrom('pet')
1233
+ * .where('owner_id', '=', personId)
1234
+ * .returning(['name as pet_name', 'species'])
1235
+ * .$assertType<{ pet_name: string, species: Species }>()
1236
+ * )
1237
+ * .selectFrom(['deleted_person', 'deleted_pets'])
1238
+ * .selectAll()
1239
+ * .execute()
1240
+ * }
1065
1241
  * ```
1066
1242
  */
1067
1243
  $assertType<T extends O>(): O extends T ? DeleteQueryBuilder<DB, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
@@ -1100,7 +1276,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
1100
1276
  * ### Examples
1101
1277
  *
1102
1278
  * ```ts
1103
- * const stream = db.
1279
+ * const stream = db
1104
1280
  * .selectFrom('person')
1105
1281
  * .select(['first_name', 'last_name'])
1106
1282
  * .where('gender', '=', 'other')