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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSelectQueryBuilder = void 0;
3
+ exports.createSelectQueryBuilder = createSelectQueryBuilder;
4
4
  const alias_node_js_1 = require("../operation-node/alias-node.js");
5
5
  const select_modifier_node_js_1 = require("../operation-node/select-modifier-node.js");
6
6
  const join_parser_js_1 = require("../parser/join-parser.js");
@@ -79,7 +79,7 @@ class SelectQueryBuilderImpl {
79
79
  modifyEnd(modifier) {
80
80
  return new SelectQueryBuilderImpl({
81
81
  ...this.#props,
82
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.createWithExpression(modifier.toOperationNode())),
82
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.createWithExpression(modifier.toOperationNode())),
83
83
  });
84
84
  }
85
85
  distinct() {
@@ -91,37 +91,37 @@ class SelectQueryBuilderImpl {
91
91
  forUpdate(of) {
92
92
  return new SelectQueryBuilderImpl({
93
93
  ...this.#props,
94
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForUpdate', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
94
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForUpdate', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
95
95
  });
96
96
  }
97
97
  forShare(of) {
98
98
  return new SelectQueryBuilderImpl({
99
99
  ...this.#props,
100
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForShare', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
100
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForShare', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
101
101
  });
102
102
  }
103
103
  forKeyShare(of) {
104
104
  return new SelectQueryBuilderImpl({
105
105
  ...this.#props,
106
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForKeyShare', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
106
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForKeyShare', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
107
107
  });
108
108
  }
109
109
  forNoKeyUpdate(of) {
110
110
  return new SelectQueryBuilderImpl({
111
111
  ...this.#props,
112
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForNoKeyUpdate', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
112
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForNoKeyUpdate', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
113
113
  });
114
114
  }
115
115
  skipLocked() {
116
116
  return new SelectQueryBuilderImpl({
117
117
  ...this.#props,
118
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('SkipLocked')),
118
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('SkipLocked')),
119
119
  });
120
120
  }
121
121
  noWait() {
122
122
  return new SelectQueryBuilderImpl({
123
123
  ...this.#props,
124
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('NoWait')),
124
+ queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('NoWait')),
125
125
  });
126
126
  }
127
127
  selectAll(table) {
@@ -271,6 +271,12 @@ class SelectQueryBuilderImpl {
271
271
  queryNode: select_query_node_js_1.SelectQueryNode.cloneWithoutOrderBy(this.#props.queryNode),
272
272
  });
273
273
  }
274
+ clearGroupBy() {
275
+ return new SelectQueryBuilderImpl({
276
+ ...this.#props,
277
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithoutGroupBy(this.#props.queryNode),
278
+ });
279
+ }
274
280
  $call(func) {
275
281
  return func(this);
276
282
  }
@@ -344,7 +350,6 @@ class SelectQueryBuilderImpl {
344
350
  function createSelectQueryBuilder(props) {
345
351
  return new SelectQueryBuilderImpl(props);
346
352
  }
347
- exports.createSelectQueryBuilder = createSelectQueryBuilder;
348
353
  /**
349
354
  * {@link SelectQueryBuilder} with an alias. The result of calling {@link SelectQueryBuilder.as}.
350
355
  */
@@ -3,7 +3,7 @@ import { CompiledQuery } from '../query-compiler/compiled-query.js';
3
3
  import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js';
4
4
  import { TableExpression, From, FromTables } from '../parser/table-parser.js';
5
5
  import { SelectExpression, SelectCallback } from '../parser/select-parser.js';
6
- import { ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js';
6
+ import { ReturningAllRow, ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js';
7
7
  import { ReferenceExpression } from '../parser/reference-parser.js';
8
8
  import { QueryNode } from '../operation-node/query-node.js';
9
9
  import { DrainOuterGeneric, NarrowPartial, Nullable, ShallowRecord, SimplifyResult, SimplifySingleResult, SqlBool } from '../util/type-utils.js';
@@ -17,7 +17,6 @@ import { KyselyPlugin } from '../plugin/kysely-plugin.js';
17
17
  import { WhereInterface } from './where-interface.js';
18
18
  import { ReturningInterface } from './returning-interface.js';
19
19
  import { NoResultErrorConstructor } from './no-result-error.js';
20
- import { Selectable } from '../util/column-type.js';
21
20
  import { Explainable, ExplainFormat } from '../util/explainable.js';
22
21
  import { AliasedExpression, Expression } from '../expression/expression.js';
23
22
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
@@ -25,7 +24,8 @@ import { KyselyTypeError } from '../util/type-error.js';
25
24
  import { Streamable } from '../util/streamable.js';
26
25
  import { ExpressionOrFactory } from '../parser/expression-parser.js';
27
26
  import { ValueExpression } from '../parser/value-parser.js';
28
- 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> {
27
+ import { OutputCallback, OutputExpression, OutputInterface, OutputPrefix, SelectExpressionFromOutputCallback, SelectExpressionFromOutputExpression } from './output-interface.js';
28
+ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OutputInterface<DB, TB, O>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
29
29
  #private;
30
30
  constructor(props: UpdateQueryBuilderProps);
31
31
  /**
@@ -60,6 +60,8 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
60
60
  * you can always use:
61
61
  *
62
62
  * ```ts
63
+ * import { sql } from 'kysely'
64
+ *
63
65
  * sql`your operator`
64
66
  * ```
65
67
  *
@@ -71,7 +73,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
71
73
  * const persons = await db
72
74
  * .selectFrom('person')
73
75
  * .selectAll()
74
- * .where('id', 'in', ['1', '2', '3'])
76
+ * .where('id', 'in', [1, 2, 3])
75
77
  * .execute()
76
78
  * ```
77
79
  *
@@ -290,7 +292,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
290
292
  * .selectFrom('person')
291
293
  * .selectAll()
292
294
  * .where(
293
- * sql`coalesce(first_name, last_name)`,
295
+ * sql<string>`coalesce(first_name, last_name)`,
294
296
  * 'like',
295
297
  * '%' + name + '%',
296
298
  * )
@@ -319,6 +321,8 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
319
321
  * import { sql } from 'kysely'
320
322
  * const { ref } = db.dynamic
321
323
  *
324
+ * const columnFromUserInput: string = 'id'
325
+ *
322
326
  * const persons = await db
323
327
  * .selectFrom('person')
324
328
  * .selectAll()
@@ -554,7 +558,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
554
558
  * ```ts
555
559
  * await db.selectFrom('person')
556
560
  * .innerJoin(
557
- * qb.selectFrom('pet')
561
+ * db.selectFrom('pet')
558
562
  * .select(['owner_id', 'name'])
559
563
  * .where('name', '=', 'Doggo')
560
564
  * .as('doggos'),
@@ -603,15 +607,17 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
603
607
  * Update the first 2 rows in the 'person' table:
604
608
  *
605
609
  * ```ts
606
- * return await db
610
+ * await db
607
611
  * .updateTable('person')
608
612
  * .set({ first_name: 'Foo' })
609
- * .limit(2);
613
+ * .limit(2)
614
+ * .execute()
610
615
  * ```
611
616
  *
612
617
  * The generated SQL (MySQL):
618
+ *
613
619
  * ```sql
614
- * update `person` set `first_name` = 'Foo' limit 2
620
+ * update `person` set `first_name` = ? limit ?
615
621
  * ```
616
622
  */
617
623
  limit(limit: ValueExpression<DB, TB, number>): UpdateQueryBuilder<DB, UT, TB, O>;
@@ -643,7 +649,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
643
649
  * first_name: 'Jennifer',
644
650
  * last_name: 'Aniston'
645
651
  * })
646
- * .where('id', '=', '1')
652
+ * .where('id', '=', 1)
647
653
  * .executeTakeFirst()
648
654
  *
649
655
  * console.log(result.numUpdatedRows)
@@ -668,7 +674,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
668
674
  * first_name: eb.selectFrom('pet').select('name').limit(1),
669
675
  * last_name: 'updated',
670
676
  * }))
671
- * .where('id', '=', '1')
677
+ * .where('id', '=', 1)
672
678
  * .executeTakeFirst()
673
679
  *
674
680
  * console.log(result.numUpdatedRows)
@@ -690,13 +696,15 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
690
696
  * (or other target) and the second as the value:
691
697
  *
692
698
  * ```ts
699
+ * import { sql } from 'kysely'
700
+ *
693
701
  * const result = await db
694
702
  * .updateTable('person')
695
703
  * .set('first_name', 'Foo')
696
704
  * // As always, both arguments can be arbitrary expressions or
697
705
  * // callbacks that give you access to an expression builder:
698
- * .set(sql`address['postalCode']`, (eb) => eb.val('61710))
699
- * .where('id', '=', '1')
706
+ * .set(sql<string>`address['postalCode']`, (eb) => eb.val('61710'))
707
+ * .where('id', '=', 1)
700
708
  * .executeTakeFirst()
701
709
  * ```
702
710
  *
@@ -736,7 +744,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
736
744
  * first_name: selectFrom('person').select('first_name').limit(1),
737
745
  * middle_name: ref('first_name'),
738
746
  * age: eb('age', '+', 1),
739
- * last_name: sql`${'Ani'} || ${'ston'}`,
747
+ * last_name: sql<string>`${'Ani'} || ${'ston'}`,
740
748
  * }))
741
749
  * .where('id', '=', 1)
742
750
  * .executeTakeFirst()
@@ -781,20 +789,20 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
781
789
  * last_name: 'Aniston'
782
790
  * })
783
791
  * .returning('id')
784
- * .executeTakeFirst()
792
+ * .executeTakeFirstOrThrow()
785
793
  * ```
786
794
  *
787
795
  * Return multiple columns:
788
796
  *
789
797
  * ```ts
790
- * const { id, first_name } = await db
798
+ * const { id, last_name } = await db
791
799
  * .insertInto('person')
792
800
  * .values({
793
801
  * first_name: 'Jennifer',
794
802
  * last_name: 'Aniston'
795
803
  * })
796
804
  * .returning(['id', 'last_name'])
797
- * .executeTakeFirst()
805
+ * .executeTakeFirstOrThrow()
798
806
  * ```
799
807
  *
800
808
  * Return arbitrary expressions:
@@ -811,9 +819,9 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
811
819
  * .returning((eb) => [
812
820
  * 'id as id',
813
821
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
814
- * eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
822
+ * eb.selectFrom('pet').select('pet.id').limit(1).as('first_pet_id')
815
823
  * ])
816
- * .executeTakeFirst()
824
+ * .executeTakeFirstOrThrow()
817
825
  * ```
818
826
  */
819
827
  returning<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SE>>;
@@ -822,8 +830,160 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
822
830
  /**
823
831
  * Adds a `returning *` to an insert/update/delete query on databases
824
832
  * that support `returning` such as PostgreSQL.
833
+ *
834
+ * Also see the {@link returning} method.
835
+ */
836
+ returningAll<T extends TB>(tables: ReadonlyArray<T>): UpdateQueryBuilder<DB, UT, TB, ReturningAllRow<DB, T, O>>;
837
+ returningAll<T extends TB>(table: T): UpdateQueryBuilder<DB, UT, TB, ReturningAllRow<DB, T, O>>;
838
+ returningAll(): UpdateQueryBuilder<DB, UT, TB, ReturningAllRow<DB, TB, O>>;
839
+ /**
840
+ * Allows you to return data from modified rows.
841
+ *
842
+ * On supported databases like MS SQL Server (MSSQL), this method can be chained
843
+ * to `insert`, `update`, `delete` and `merge` queries to return data.
844
+ *
845
+ * Also see the {@link outputAll} method.
846
+ *
847
+ * ### Examples
848
+ *
849
+ * Return one column:
850
+ *
851
+ * ```ts
852
+ * const { id } = await db
853
+ * .insertInto('person')
854
+ * .output('inserted.id')
855
+ * .values({
856
+ * first_name: 'Jennifer',
857
+ * last_name: 'Aniston',
858
+ * gender: 'female',
859
+ * })
860
+ * .executeTakeFirstOrThrow()
861
+ * ```
862
+ *
863
+ * The generated SQL (MSSQL):
864
+ *
865
+ * ```sql
866
+ * insert into "person" ("first_name", "last_name", "gender")
867
+ * output "inserted"."id"
868
+ * values (@1, @2, @3)
869
+ * ```
870
+ *
871
+ * Return multiple columns:
872
+ *
873
+ * ```ts
874
+ * const { old_first_name, old_last_name, new_first_name, new_last_name } = await db
875
+ * .updateTable('person')
876
+ * .set({ first_name: 'John', last_name: 'Doe' })
877
+ * .output([
878
+ * 'deleted.first_name as old_first_name',
879
+ * 'deleted.last_name as old_last_name',
880
+ * 'inserted.first_name as new_first_name',
881
+ * 'inserted.last_name as new_last_name',
882
+ * ])
883
+ * .where('created_at', '<', new Date())
884
+ * .executeTakeFirstOrThrow()
885
+ * ```
886
+ *
887
+ * The generated SQL (MSSQL):
888
+ *
889
+ * ```sql
890
+ * update "person"
891
+ * set "first_name" = @1, "last_name" = @2
892
+ * output "deleted"."first_name" as "old_first_name",
893
+ * "deleted"."last_name" as "old_last_name",
894
+ * "inserted"."first_name" as "new_first_name",
895
+ * "inserted"."last_name" as "new_last_name"
896
+ * where "created_at" < @3
897
+ * ```
898
+ *
899
+ * Return arbitrary expressions:
900
+ *
901
+ * ```ts
902
+ * import { sql } from 'kysely'
903
+ *
904
+ * const { full_name } = await db
905
+ * .deleteFrom('person')
906
+ * .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name'))
907
+ * .where('created_at', '<', new Date())
908
+ * .executeTakeFirstOrThrow()
909
+ * ```
910
+ *
911
+ * The generated SQL (MSSQL):
912
+ *
913
+ * ```sql
914
+ * delete from "person"
915
+ * output concat("deleted"."first_name", ' ', "deleted"."last_name") as "full_name"
916
+ * where "created_at" < @1
917
+ * ```
918
+ *
919
+ * Return the action performed on the row:
920
+ *
921
+ * ```ts
922
+ * await db
923
+ * .mergeInto('person')
924
+ * .using('pet', 'pet.owner_id', 'person.id')
925
+ * .whenMatched()
926
+ * .thenDelete()
927
+ * .whenNotMatched()
928
+ * .thenInsertValues({
929
+ * first_name: 'John',
930
+ * last_name: 'Doe',
931
+ * gender: 'male'
932
+ * })
933
+ * .output([
934
+ * 'inserted.id as inserted_id',
935
+ * 'deleted.id as deleted_id',
936
+ * ])
937
+ * .execute()
938
+ * ```
939
+ *
940
+ * The generated SQL (MSSQL):
941
+ *
942
+ * ```sql
943
+ * merge into "person"
944
+ * using "pet" on "pet"."owner_id" = "person"."id"
945
+ * when matched then delete
946
+ * when not matched then
947
+ * insert ("first_name", "last_name", "gender")
948
+ * values (@1, @2, @3)
949
+ * output "inserted"."id" as "inserted_id", "deleted"."id" as "deleted_id"
950
+ * ```
951
+ *
825
952
  */
826
- returningAll(): UpdateQueryBuilder<DB, UT, TB, Selectable<DB[TB]>>;
953
+ output<OE extends OutputExpression<DB, UT>>(selections: readonly OE[]): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
954
+ output<CB extends OutputCallback<DB, TB>>(callback: CB): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputCallback<CB>>>;
955
+ output<OE extends OutputExpression<DB, TB>>(selection: OE): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
956
+ /**
957
+ * Adds an `output {prefix}.*` to an `insert`/`update`/`delete`/`merge` query on databases
958
+ * that support `output` such as MS SQL Server (MSSQL).
959
+ *
960
+ * Also see the {@link output} method.
961
+ */
962
+ outputAll(table: OutputPrefix): UpdateQueryBuilder<DB, UT, TB, ReturningAllRow<DB, TB, O>>;
963
+ /**
964
+ * This can be used to add any additional SQL to the end of the query.
965
+ *
966
+ * ### Examples
967
+ *
968
+ * ```ts
969
+ * import { sql } from 'kysely'
970
+ *
971
+ * await db.updateTable('person')
972
+ * .set({ age: 39 })
973
+ * .where('first_name', '=', 'John')
974
+ * .modifyEnd(sql.raw('-- This is a comment'))
975
+ * .execute()
976
+ * ```
977
+ *
978
+ * The generated SQL (MySQL):
979
+ *
980
+ * ```sql
981
+ * update `person`
982
+ * set `age` = 39
983
+ * where `first_name` = "John" -- This is a comment
984
+ * ```
985
+ */
986
+ modifyEnd(modifier: Expression<any>): UpdateQueryBuilder<DB, UT, TB, O>;
827
987
  /**
828
988
  * Clears all `returning` clauses from the query.
829
989
  *
@@ -856,11 +1016,18 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
856
1016
  * The next example uses a helper function `log` to log a query:
857
1017
  *
858
1018
  * ```ts
1019
+ * import type { Compilable } from 'kysely'
1020
+ * import type { PersonUpdate } from 'type-editor' // imaginary module
1021
+ *
859
1022
  * function log<T extends Compilable>(qb: T): T {
860
1023
  * console.log(qb.compile())
861
1024
  * return qb
862
1025
  * }
863
1026
  *
1027
+ * const values = {
1028
+ * first_name: 'John',
1029
+ * } satisfies PersonUpdate
1030
+ *
864
1031
  * db.updateTable('person')
865
1032
  * .set(values)
866
1033
  * .$call(log)
@@ -881,7 +1048,9 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
881
1048
  * ### Examples
882
1049
  *
883
1050
  * ```ts
884
- * async function updatePerson(id: number, updates: UpdateablePerson, returnLastName: boolean) {
1051
+ * import type { PersonUpdate } from 'type-editor' // imaginary module
1052
+ *
1053
+ * async function updatePerson(id: number, updates: PersonUpdate, returnLastName: boolean) {
885
1054
  * return await db
886
1055
  * .updateTable('person')
887
1056
  * .set(updates)
@@ -897,11 +1066,11 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
897
1066
  * the code. In the example above the return type of the `updatePerson` function is:
898
1067
  *
899
1068
  * ```ts
900
- * {
1069
+ * Promise<{
901
1070
  * id: number
902
1071
  * first_name: string
903
1072
  * last_name?: string
904
- * }
1073
+ * }>
905
1074
  * ```
906
1075
  */
907
1076
  $if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<any, any, any, 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>>;
@@ -930,27 +1099,41 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
930
1099
  * Turn this code:
931
1100
  *
932
1101
  * ```ts
1102
+ * import type { Person } from 'type-editor' // imaginary module
1103
+ *
1104
+ * const id = 1
1105
+ * const now = new Date().toISOString()
1106
+ *
933
1107
  * const person = await db.updateTable('person')
934
- * .set({ deletedAt: now })
1108
+ * .set({ deleted_at: now })
935
1109
  * .where('id', '=', id)
936
1110
  * .where('nullable_column', 'is not', null)
937
1111
  * .returningAll()
938
1112
  * .executeTakeFirstOrThrow()
939
1113
  *
940
- * if (person.nullable_column) {
1114
+ * if (isWithNoNullValue(person)) {
941
1115
  * functionThatExpectsPersonWithNonNullValue(person)
942
1116
  * }
1117
+ *
1118
+ * function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
1119
+ * return person.nullable_column != null
1120
+ * }
943
1121
  * ```
944
1122
  *
945
1123
  * Into this:
946
1124
  *
947
1125
  * ```ts
1126
+ * import type { NotNull } from 'kysely'
1127
+ *
1128
+ * const id = 1
1129
+ * const now = new Date().toISOString()
1130
+ *
948
1131
  * const person = await db.updateTable('person')
949
- * .set({ deletedAt: now })
1132
+ * .set({ deleted_at: now })
950
1133
  * .where('id', '=', id)
951
1134
  * .where('nullable_column', 'is not', null)
952
1135
  * .returningAll()
953
- * .$narrowType<{ deletedAt: Date; nullable_column: string }>()
1136
+ * .$narrowType<{ deleted_at: Date; nullable_column: NotNull }>()
954
1137
  * .executeTakeFirstOrThrow()
955
1138
  *
956
1139
  * functionThatExpectsPersonWithNonNullValue(person)
@@ -960,17 +1143,17 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
960
1143
  /**
961
1144
  * Asserts that query's output row type equals the given type `T`.
962
1145
  *
963
- * This method can be used to simplify excessively complex types to make typescript happy
1146
+ * This method can be used to simplify excessively complex types to make TypeScript happy
964
1147
  * and much faster.
965
1148
  *
966
1149
  * Kysely uses complex type magic to achieve its type safety. This complexity is sometimes too much
967
- * for typescript and you get errors like this:
1150
+ * for TypeScript and you get errors like this:
968
1151
  *
969
1152
  * ```
970
1153
  * error TS2589: Type instantiation is excessively deep and possibly infinite.
971
1154
  * ```
972
1155
  *
973
- * In these case you can often use this method to help typescript a little bit. When you use this
1156
+ * In these case you can often use this method to help TypeScript a little bit. When you use this
974
1157
  * method to assert the output type of a query, Kysely can drop the complex output type that
975
1158
  * consists of multiple nested helper types and replace it with the simple asserted type.
976
1159
  *
@@ -980,6 +1163,17 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
980
1163
  * ### Examples
981
1164
  *
982
1165
  * ```ts
1166
+ * import type { PersonUpdate, PetUpdate, Species } from 'type-editor' // imaginary module
1167
+ *
1168
+ * const person = {
1169
+ * id: 1,
1170
+ * gender: 'other',
1171
+ * } satisfies PersonUpdate
1172
+ *
1173
+ * const pet = {
1174
+ * name: 'Fluffy',
1175
+ * } satisfies PetUpdate
1176
+ *
983
1177
  * const result = await db
984
1178
  * .with('updated_person', (qb) => qb
985
1179
  * .updateTable('person')
@@ -1036,7 +1230,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
1036
1230
  * ### Examples
1037
1231
  *
1038
1232
  * ```ts
1039
- * const stream = db.
1233
+ * const stream = db
1040
1234
  * .selectFrom('person')
1041
1235
  * .select(['first_name', 'last_name'])
1042
1236
  * .where('gender', '=', 'other')