kysely 0.27.6 → 0.28.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 (363) hide show
  1. package/README.md +169 -1
  2. package/deno.check.d.ts +7 -0
  3. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  4. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +6 -3
  5. package/dist/cjs/dialect/mssql/mssql-driver.js +33 -19
  6. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  7. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +11 -0
  8. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +4 -0
  9. package/dist/cjs/dialect/mysql/mysql-driver.js +27 -12
  10. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +4 -0
  11. package/dist/cjs/dialect/postgres/postgres-driver.js +28 -18
  12. package/dist/cjs/dialect/postgres/postgres-introspector.js +7 -17
  13. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +4 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-driver.js +19 -13
  15. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
  17. package/dist/cjs/driver/database-connection.d.ts +0 -4
  18. package/dist/cjs/driver/driver.d.ts +17 -0
  19. package/dist/cjs/driver/driver.js +13 -1
  20. package/dist/cjs/driver/dummy-driver.d.ts +3 -0
  21. package/dist/cjs/driver/dummy-driver.js +9 -0
  22. package/dist/cjs/driver/runtime-driver.d.ts +4 -0
  23. package/dist/cjs/driver/runtime-driver.js +43 -3
  24. package/dist/cjs/expression/expression-builder.d.ts +7 -10
  25. package/dist/cjs/helpers/postgres.d.ts +48 -0
  26. package/dist/cjs/helpers/postgres.js +50 -0
  27. package/dist/cjs/index.d.ts +13 -2
  28. package/dist/cjs/index.js +13 -2
  29. package/dist/cjs/kysely.d.ts +339 -2
  30. package/dist/cjs/kysely.js +465 -11
  31. package/dist/cjs/migration/migrator.d.ts +8 -0
  32. package/dist/cjs/migration/migrator.js +1 -1
  33. package/dist/cjs/operation-node/aggregate-function-node.d.ts +2 -1
  34. package/dist/cjs/operation-node/aggregate-function-node.js +4 -3
  35. package/dist/cjs/operation-node/alter-table-node.d.ts +3 -1
  36. package/dist/cjs/operation-node/collate-node.d.ts +13 -0
  37. package/dist/cjs/operation-node/collate-node.js +19 -0
  38. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/create-type-node.js +1 -1
  41. package/dist/cjs/operation-node/delete-query-node.d.ts +8 -2
  42. package/dist/cjs/operation-node/delete-query-node.js +11 -15
  43. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -0
  44. package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
  45. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  46. package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
  47. package/dist/cjs/operation-node/operation-node-transformer.d.ts +106 -97
  48. package/dist/cjs/operation-node/operation-node-transformer.js +352 -312
  49. package/dist/cjs/operation-node/operation-node-visitor.d.ts +9 -1
  50. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  51. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/or-action-node.d.ts +12 -0
  53. package/dist/cjs/operation-node/or-action-node.js +18 -0
  54. package/dist/cjs/operation-node/order-by-item-node.d.ts +5 -0
  55. package/dist/cjs/operation-node/order-by-item-node.js +6 -0
  56. package/dist/cjs/operation-node/primary-key-constraint-node.d.ts +29 -0
  57. package/dist/cjs/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  58. package/dist/cjs/operation-node/query-node.d.ts +7 -0
  59. package/dist/cjs/operation-node/query-node.js +15 -0
  60. package/dist/cjs/operation-node/refresh-materialized-view-node.d.ts +17 -0
  61. package/dist/cjs/operation-node/refresh-materialized-view-node.js +25 -0
  62. package/dist/cjs/operation-node/rename-constraint-node.d.ts +14 -0
  63. package/dist/cjs/operation-node/rename-constraint-node.js +20 -0
  64. package/dist/cjs/operation-node/select-query-node.d.ts +8 -2
  65. package/dist/cjs/operation-node/select-query-node.js +11 -15
  66. package/dist/cjs/operation-node/unique-constraint-node.d.ts +2 -0
  67. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  68. package/dist/cjs/operation-node/update-query-node.js +5 -2
  69. package/dist/cjs/parser/collate-parser.d.ts +1 -0
  70. package/dist/cjs/parser/collate-parser.js +2 -0
  71. package/dist/cjs/parser/delete-from-parser.d.ts +5 -0
  72. package/dist/cjs/parser/delete-from-parser.js +2 -0
  73. package/dist/cjs/parser/join-parser.d.ts +1 -1
  74. package/dist/cjs/parser/join-parser.js +7 -1
  75. package/dist/cjs/parser/merge-into-parser.d.ts +5 -0
  76. package/dist/cjs/parser/merge-into-parser.js +2 -0
  77. package/dist/cjs/parser/order-by-parser.d.ts +18 -5
  78. package/dist/cjs/parser/order-by-parser.js +24 -14
  79. package/dist/cjs/parser/savepoint-parser.d.ts +4 -0
  80. package/dist/cjs/parser/savepoint-parser.js +11 -0
  81. package/dist/cjs/parser/select-from-parser.d.ts +4 -0
  82. package/dist/cjs/parser/select-from-parser.js +2 -0
  83. package/dist/cjs/parser/table-parser.d.ts +2 -5
  84. package/dist/cjs/parser/update-parser.d.ts +5 -0
  85. package/dist/cjs/parser/update-parser.js +2 -0
  86. package/dist/cjs/parser/update-set-parser.d.ts +7 -4
  87. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  88. package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  89. package/dist/cjs/plugin/camel-case/camel-case-transformer.js +2 -2
  90. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  91. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  92. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  93. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  94. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +162 -0
  95. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  96. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +29 -0
  97. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  98. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.js +66 -0
  99. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.js +1 -1
  100. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  101. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.js +6 -4
  102. package/dist/cjs/plugin/with-schema/with-schema-plugin.js +1 -1
  103. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +6 -5
  104. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +29 -24
  105. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +83 -5
  106. package/dist/cjs/query-builder/aggregate-function-builder.js +15 -27
  107. package/dist/cjs/query-builder/cte-builder.js +0 -2
  108. package/dist/cjs/query-builder/delete-query-builder.d.ts +36 -47
  109. package/dist/cjs/query-builder/delete-query-builder.js +12 -78
  110. package/dist/cjs/query-builder/function-module.d.ts +31 -4
  111. package/dist/cjs/query-builder/insert-query-builder.d.ts +161 -6
  112. package/dist/cjs/query-builder/insert-query-builder.js +197 -10
  113. package/dist/cjs/query-builder/join-builder.js +0 -2
  114. package/dist/cjs/query-builder/merge-query-builder.d.ts +145 -3
  115. package/dist/cjs/query-builder/merge-query-builder.js +28 -7
  116. package/dist/cjs/query-builder/on-conflict-builder.js +0 -4
  117. package/dist/cjs/query-builder/order-by-interface.d.ts +176 -0
  118. package/dist/cjs/query-builder/order-by-interface.js +2 -0
  119. package/dist/cjs/query-builder/order-by-item-builder.d.ts +43 -0
  120. package/dist/cjs/query-builder/order-by-item-builder.js +75 -0
  121. package/dist/cjs/query-builder/over-builder.d.ts +43 -6
  122. package/dist/cjs/query-builder/over-builder.js +8 -25
  123. package/dist/cjs/query-builder/returning-interface.d.ts +20 -3
  124. package/dist/cjs/query-builder/select-query-builder.d.ts +279 -98
  125. package/dist/cjs/query-builder/select-query-builder.js +26 -26
  126. package/dist/cjs/query-builder/update-query-builder.d.ts +88 -9
  127. package/dist/cjs/query-builder/update-query-builder.js +17 -15
  128. package/dist/cjs/query-compiler/compiled-query.d.ts +2 -0
  129. package/dist/cjs/query-compiler/compiled-query.js +2 -0
  130. package/dist/cjs/query-compiler/default-query-compiler.d.ts +17 -2
  131. package/dist/cjs/query-compiler/default-query-compiler.js +97 -2
  132. package/dist/cjs/query-compiler/query-compiler.d.ts +4 -2
  133. package/dist/cjs/query-creator.d.ts +23 -25
  134. package/dist/cjs/query-creator.js +280 -8
  135. package/dist/cjs/query-executor/default-query-executor.d.ts +2 -1
  136. package/dist/cjs/query-executor/default-query-executor.js +2 -2
  137. package/dist/cjs/query-executor/query-executor-base.js +7 -25
  138. package/dist/cjs/raw-builder/raw-builder.js +0 -3
  139. package/dist/cjs/raw-builder/sql.d.ts +3 -3
  140. package/dist/cjs/raw-builder/sql.js +1 -1
  141. package/dist/cjs/schema/alter-column-builder.js +0 -3
  142. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  143. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  144. package/dist/cjs/schema/alter-table-add-index-builder.js +0 -2
  145. package/dist/cjs/schema/alter-table-builder.d.ts +7 -3
  146. package/dist/cjs/schema/alter-table-builder.js +21 -10
  147. package/dist/cjs/schema/alter-table-drop-constraint-builder.js +0 -2
  148. package/dist/cjs/schema/alter-table-executor.js +0 -2
  149. package/dist/cjs/schema/check-constraint-builder.d.ts +13 -0
  150. package/dist/cjs/schema/check-constraint-builder.js +20 -0
  151. package/dist/cjs/schema/column-definition-builder.js +0 -2
  152. package/dist/cjs/schema/create-index-builder.js +1 -3
  153. package/dist/cjs/schema/create-schema-builder.js +0 -2
  154. package/dist/cjs/schema/create-table-builder.d.ts +5 -4
  155. package/dist/cjs/schema/create-table-builder.js +9 -7
  156. package/dist/cjs/schema/create-type-builder.d.ts +1 -1
  157. package/dist/cjs/schema/create-type-builder.js +0 -2
  158. package/dist/cjs/schema/create-view-builder.js +0 -2
  159. package/dist/cjs/schema/drop-index-builder.js +0 -2
  160. package/dist/cjs/schema/drop-schema-builder.js +0 -2
  161. package/dist/cjs/schema/drop-table-builder.js +0 -2
  162. package/dist/cjs/schema/drop-type-builder.js +0 -2
  163. package/dist/cjs/schema/drop-view-builder.js +0 -2
  164. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +9 -0
  165. package/dist/cjs/schema/foreign-key-constraint-builder.js +16 -2
  166. package/dist/cjs/schema/primary-key-constraint-builder.d.ts +17 -0
  167. package/dist/cjs/schema/primary-key-constraint-builder.js +37 -0
  168. package/dist/cjs/schema/refresh-materialized-view-builder.d.ts +47 -0
  169. package/dist/cjs/schema/refresh-materialized-view-builder.js +75 -0
  170. package/dist/cjs/schema/schema.d.ts +14 -0
  171. package/dist/cjs/schema/schema.js +21 -0
  172. package/dist/cjs/schema/unique-constraint-builder.d.ts +10 -1
  173. package/dist/cjs/schema/unique-constraint-builder.js +26 -5
  174. package/dist/cjs/util/infer-result.d.ts +1 -1
  175. package/dist/cjs/util/log.d.ts +1 -0
  176. package/dist/cjs/util/log.js +3 -2
  177. package/dist/cjs/util/provide-controlled-connection.d.ts +7 -0
  178. package/dist/cjs/util/provide-controlled-connection.js +24 -0
  179. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  180. package/dist/esm/dialect/mssql/mssql-driver.d.ts +6 -3
  181. package/dist/esm/dialect/mssql/mssql-driver.js +33 -19
  182. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  183. package/dist/esm/dialect/mssql/mssql-query-compiler.js +11 -0
  184. package/dist/esm/dialect/mysql/mysql-driver.d.ts +4 -0
  185. package/dist/esm/dialect/mysql/mysql-driver.js +27 -12
  186. package/dist/esm/dialect/postgres/postgres-driver.d.ts +4 -0
  187. package/dist/esm/dialect/postgres/postgres-driver.js +28 -18
  188. package/dist/esm/dialect/postgres/postgres-introspector.js +7 -17
  189. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +4 -0
  190. package/dist/esm/dialect/sqlite/sqlite-driver.js +19 -13
  191. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  192. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
  193. package/dist/esm/driver/database-connection.d.ts +0 -4
  194. package/dist/esm/driver/driver.d.ts +17 -0
  195. package/dist/esm/driver/driver.js +11 -0
  196. package/dist/esm/driver/dummy-driver.d.ts +3 -0
  197. package/dist/esm/driver/dummy-driver.js +9 -0
  198. package/dist/esm/driver/runtime-driver.d.ts +4 -0
  199. package/dist/esm/driver/runtime-driver.js +43 -3
  200. package/dist/esm/expression/expression-builder.d.ts +7 -10
  201. package/dist/esm/helpers/postgres.d.ts +48 -0
  202. package/dist/esm/helpers/postgres.js +49 -0
  203. package/dist/esm/index.d.ts +13 -2
  204. package/dist/esm/index.js +11 -1
  205. package/dist/esm/kysely.d.ts +339 -2
  206. package/dist/esm/kysely.js +461 -10
  207. package/dist/esm/migration/migrator.d.ts +8 -0
  208. package/dist/esm/migration/migrator.js +1 -1
  209. package/dist/esm/operation-node/aggregate-function-node.d.ts +2 -1
  210. package/dist/esm/operation-node/aggregate-function-node.js +4 -3
  211. package/dist/esm/operation-node/alter-table-node.d.ts +3 -1
  212. package/dist/esm/operation-node/collate-node.d.ts +13 -0
  213. package/dist/esm/operation-node/collate-node.js +17 -0
  214. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  215. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  216. package/dist/esm/operation-node/create-type-node.js +1 -1
  217. package/dist/esm/operation-node/delete-query-node.d.ts +8 -2
  218. package/dist/esm/operation-node/delete-query-node.js +11 -15
  219. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -0
  220. package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
  221. package/dist/esm/operation-node/join-node.d.ts +1 -1
  222. package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
  223. package/dist/esm/operation-node/operation-node-transformer.d.ts +106 -97
  224. package/dist/esm/operation-node/operation-node-transformer.js +352 -312
  225. package/dist/esm/operation-node/operation-node-visitor.d.ts +9 -1
  226. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  227. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  228. package/dist/esm/operation-node/or-action-node.d.ts +12 -0
  229. package/dist/esm/operation-node/or-action-node.js +16 -0
  230. package/dist/esm/operation-node/order-by-item-node.d.ts +5 -0
  231. package/dist/esm/operation-node/order-by-item-node.js +6 -0
  232. package/dist/esm/operation-node/primary-key-constraint-node.d.ts +29 -0
  233. package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  234. package/dist/esm/operation-node/query-node.d.ts +7 -0
  235. package/dist/esm/operation-node/query-node.js +15 -0
  236. package/dist/esm/operation-node/refresh-materialized-view-node.d.ts +17 -0
  237. package/dist/esm/operation-node/refresh-materialized-view-node.js +23 -0
  238. package/dist/esm/operation-node/rename-constraint-node.d.ts +14 -0
  239. package/dist/esm/operation-node/rename-constraint-node.js +18 -0
  240. package/dist/esm/operation-node/select-query-node.d.ts +8 -2
  241. package/dist/esm/operation-node/select-query-node.js +11 -15
  242. package/dist/esm/operation-node/unique-constraint-node.d.ts +2 -0
  243. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  244. package/dist/esm/operation-node/update-query-node.js +5 -2
  245. package/dist/esm/parser/collate-parser.d.ts +1 -0
  246. package/dist/esm/parser/collate-parser.js +2 -0
  247. package/dist/esm/parser/delete-from-parser.d.ts +5 -0
  248. package/dist/esm/parser/delete-from-parser.js +2 -0
  249. package/dist/esm/parser/join-parser.d.ts +1 -1
  250. package/dist/esm/parser/join-parser.js +7 -1
  251. package/dist/esm/parser/merge-into-parser.d.ts +5 -0
  252. package/dist/esm/parser/merge-into-parser.js +2 -0
  253. package/dist/esm/parser/order-by-parser.d.ts +18 -5
  254. package/dist/esm/parser/order-by-parser.js +27 -17
  255. package/dist/esm/parser/savepoint-parser.d.ts +4 -0
  256. package/dist/esm/parser/savepoint-parser.js +9 -0
  257. package/dist/esm/parser/select-from-parser.d.ts +4 -0
  258. package/dist/esm/parser/select-from-parser.js +2 -0
  259. package/dist/esm/parser/table-parser.d.ts +2 -5
  260. package/dist/esm/parser/update-parser.d.ts +5 -0
  261. package/dist/esm/parser/update-parser.js +2 -0
  262. package/dist/esm/parser/update-set-parser.d.ts +7 -4
  263. package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -1
  264. package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  265. package/dist/esm/plugin/camel-case/camel-case-transformer.js +2 -2
  266. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  267. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  268. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  269. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  270. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +159 -0
  271. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  272. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +26 -0
  273. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  274. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.js +63 -0
  275. package/dist/esm/plugin/immediate-value/immediate-value-plugin.js +1 -1
  276. package/dist/esm/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  277. package/dist/esm/plugin/immediate-value/immediate-value-transformer.js +6 -4
  278. package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -1
  279. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +6 -5
  280. package/dist/esm/plugin/with-schema/with-schema-transformer.js +29 -24
  281. package/dist/esm/query-builder/aggregate-function-builder.d.ts +83 -5
  282. package/dist/esm/query-builder/aggregate-function-builder.js +15 -27
  283. package/dist/esm/query-builder/cte-builder.js +0 -2
  284. package/dist/esm/query-builder/delete-query-builder.d.ts +36 -47
  285. package/dist/esm/query-builder/delete-query-builder.js +12 -78
  286. package/dist/esm/query-builder/function-module.d.ts +31 -4
  287. package/dist/esm/query-builder/insert-query-builder.d.ts +161 -6
  288. package/dist/esm/query-builder/insert-query-builder.js +197 -10
  289. package/dist/esm/query-builder/join-builder.js +0 -2
  290. package/dist/esm/query-builder/merge-query-builder.d.ts +145 -3
  291. package/dist/esm/query-builder/merge-query-builder.js +29 -8
  292. package/dist/esm/query-builder/on-conflict-builder.js +0 -4
  293. package/dist/esm/query-builder/order-by-interface.d.ts +176 -0
  294. package/dist/esm/query-builder/order-by-interface.js +2 -0
  295. package/dist/esm/query-builder/order-by-item-builder.d.ts +43 -0
  296. package/dist/esm/query-builder/order-by-item-builder.js +72 -0
  297. package/dist/esm/query-builder/over-builder.d.ts +43 -6
  298. package/dist/esm/query-builder/over-builder.js +8 -25
  299. package/dist/esm/query-builder/returning-interface.d.ts +20 -3
  300. package/dist/esm/query-builder/select-query-builder.d.ts +279 -98
  301. package/dist/esm/query-builder/select-query-builder.js +26 -26
  302. package/dist/esm/query-builder/update-query-builder.d.ts +88 -9
  303. package/dist/esm/query-builder/update-query-builder.js +17 -15
  304. package/dist/esm/query-compiler/compiled-query.d.ts +2 -0
  305. package/dist/esm/query-compiler/compiled-query.js +2 -0
  306. package/dist/esm/query-compiler/default-query-compiler.d.ts +17 -2
  307. package/dist/esm/query-compiler/default-query-compiler.js +97 -2
  308. package/dist/esm/query-compiler/query-compiler.d.ts +4 -2
  309. package/dist/esm/query-creator.d.ts +23 -25
  310. package/dist/esm/query-creator.js +281 -9
  311. package/dist/esm/query-executor/default-query-executor.d.ts +2 -1
  312. package/dist/esm/query-executor/default-query-executor.js +2 -2
  313. package/dist/esm/query-executor/query-executor-base.js +7 -25
  314. package/dist/esm/raw-builder/raw-builder.js +0 -3
  315. package/dist/esm/raw-builder/sql.d.ts +3 -3
  316. package/dist/esm/raw-builder/sql.js +1 -1
  317. package/dist/esm/schema/alter-column-builder.js +0 -3
  318. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  319. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  320. package/dist/esm/schema/alter-table-add-index-builder.js +0 -2
  321. package/dist/esm/schema/alter-table-builder.d.ts +7 -3
  322. package/dist/esm/schema/alter-table-builder.js +22 -11
  323. package/dist/esm/schema/alter-table-drop-constraint-builder.js +0 -2
  324. package/dist/esm/schema/alter-table-executor.js +0 -2
  325. package/dist/esm/schema/check-constraint-builder.d.ts +13 -0
  326. package/dist/esm/schema/check-constraint-builder.js +17 -0
  327. package/dist/esm/schema/column-definition-builder.js +0 -2
  328. package/dist/esm/schema/create-index-builder.js +1 -3
  329. package/dist/esm/schema/create-schema-builder.js +0 -2
  330. package/dist/esm/schema/create-table-builder.d.ts +5 -4
  331. package/dist/esm/schema/create-table-builder.js +10 -8
  332. package/dist/esm/schema/create-type-builder.d.ts +1 -1
  333. package/dist/esm/schema/create-type-builder.js +0 -2
  334. package/dist/esm/schema/create-view-builder.js +0 -2
  335. package/dist/esm/schema/drop-index-builder.js +0 -2
  336. package/dist/esm/schema/drop-schema-builder.js +0 -2
  337. package/dist/esm/schema/drop-table-builder.js +0 -2
  338. package/dist/esm/schema/drop-type-builder.js +0 -2
  339. package/dist/esm/schema/drop-view-builder.js +0 -2
  340. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +9 -0
  341. package/dist/esm/schema/foreign-key-constraint-builder.js +16 -2
  342. package/dist/esm/schema/primary-key-constraint-builder.d.ts +17 -0
  343. package/dist/esm/schema/primary-key-constraint-builder.js +34 -0
  344. package/dist/esm/schema/refresh-materialized-view-builder.d.ts +47 -0
  345. package/dist/esm/schema/refresh-materialized-view-builder.js +72 -0
  346. package/dist/esm/schema/schema.d.ts +14 -0
  347. package/dist/esm/schema/schema.js +21 -0
  348. package/dist/esm/schema/unique-constraint-builder.d.ts +10 -1
  349. package/dist/esm/schema/unique-constraint-builder.js +26 -5
  350. package/dist/esm/util/infer-result.d.ts +1 -1
  351. package/dist/esm/util/log.d.ts +1 -0
  352. package/dist/esm/util/log.js +3 -2
  353. package/dist/esm/util/provide-controlled-connection.d.ts +7 -0
  354. package/dist/esm/util/provide-controlled-connection.js +22 -0
  355. package/outdated-typescript.d.ts +5 -0
  356. package/package.json +16 -2
  357. package/CONTRIBUTING.md +0 -168
  358. package/dist/cjs/operation-node/primary-constraint-node.d.ts +0 -15
  359. package/dist/cjs/util/prevent-await.d.ts +0 -1
  360. package/dist/cjs/util/prevent-await.js +0 -13
  361. package/dist/esm/operation-node/primary-constraint-node.d.ts +0 -15
  362. package/dist/esm/util/prevent-await.d.ts +0 -1
  363. package/dist/esm/util/prevent-await.js +0 -11
@@ -0,0 +1,176 @@
1
+ import { Expression } from '../expression/expression.js';
2
+ import { OrderByExpression, DirectedOrderByStringReference, OrderByModifiers } from '../parser/order-by-parser.js';
3
+ export interface OrderByInterface<DB, TB extends keyof DB, O> {
4
+ /**
5
+ * Adds an `order by` clause to the query.
6
+ *
7
+ * `orderBy` calls are additive. Meaning, additional `orderBy` calls append to
8
+ * the existing order by clause.
9
+ *
10
+ * `orderBy` is supported in select queries on all dialects. In MySQL, you can
11
+ * also use `orderBy` in update and delete queries.
12
+ *
13
+ * In a single call you can add a single column/expression or multiple columns/expressions.
14
+ *
15
+ * Single column/expression calls can have 1-2 arguments. The first argument is
16
+ * the expression to order by, while the second optional argument is the direction
17
+ * (`asc` or `desc`), a callback that accepts and returns an {@link OrderByItemBuilder}
18
+ * or an expression.
19
+ *
20
+ * See {@link clearOrderBy} to remove the `order by` clause from a query.
21
+ *
22
+ * ### Examples
23
+ *
24
+ * Single column/expression per call:
25
+ *
26
+ * ```ts
27
+ * await db
28
+ * .selectFrom('person')
29
+ * .select('person.first_name as fn')
30
+ * .orderBy('id')
31
+ * .orderBy('fn', 'desc')
32
+ * .execute()
33
+ * ```
34
+ *
35
+ * The generated SQL (PostgreSQL):
36
+ *
37
+ * ```sql
38
+ * select "person"."first_name" as "fn"
39
+ * from "person"
40
+ * order by "id", "fn" desc
41
+ * ```
42
+ *
43
+ * Multiple columns/expressions per call:
44
+ *
45
+ * ```ts
46
+ * await db
47
+ * .selectFrom('person')
48
+ * .select('person.first_name as fn')
49
+ * .orderBy(['id', 'fn'])
50
+ * .execute()
51
+ * ```
52
+ *
53
+ * The generated SQL (PostgreSQL):
54
+ *
55
+ * ```sql
56
+ * select "person"."first_name" as "fn"
57
+ * from "person"
58
+ * order by "id", "fn"
59
+ * ```
60
+ *
61
+ * Building advanced modifiers:
62
+ *
63
+ * ```ts
64
+ * await db
65
+ * .selectFrom('person')
66
+ * .select('person.first_name as fn')
67
+ * .orderBy('id', (ob) => ob.desc().nullsFirst())
68
+ * .execute()
69
+ * ```
70
+ *
71
+ * The generated SQL (PostgreSQL):
72
+ *
73
+ * ```sql
74
+ * select "person"."first_name" as "fn"
75
+ * from "person"
76
+ * order by "id" desc nulls first
77
+ * ```
78
+ *
79
+ * The order by expression can also be a raw sql expression or a subquery
80
+ * in addition to column references:
81
+ *
82
+ * ```ts
83
+ * import { sql } from 'kysely'
84
+ *
85
+ * await db
86
+ * .selectFrom('person')
87
+ * .selectAll()
88
+ * .orderBy((eb) => eb.selectFrom('pet')
89
+ * .select('pet.name')
90
+ * .whereRef('pet.owner_id', '=', 'person.id')
91
+ * .limit(1)
92
+ * )
93
+ * .orderBy(
94
+ * sql<string>`concat(first_name, last_name) asc`
95
+ * )
96
+ * .execute()
97
+ * ```
98
+ *
99
+ * The generated SQL (PostgreSQL):
100
+ *
101
+ * ```sql
102
+ * select *
103
+ * from "person"
104
+ * order by
105
+ * ( select "pet"."name"
106
+ * from "pet"
107
+ * where "pet"."owner_id" = "person"."id"
108
+ * limit $1
109
+ * ) asc,
110
+ * concat(first_name, last_name) asc
111
+ * ```
112
+ *
113
+ * `dynamic.ref` can be used to refer to columns not known at
114
+ * compile time:
115
+ *
116
+ * ```ts
117
+ * async function someQuery(orderBy: string) {
118
+ * const { ref } = db.dynamic
119
+ *
120
+ * return await db
121
+ * .selectFrom('person')
122
+ * .select('person.first_name as fn')
123
+ * .orderBy(ref(orderBy))
124
+ * .execute()
125
+ * }
126
+ *
127
+ * someQuery('fn')
128
+ * ```
129
+ *
130
+ * The generated SQL (PostgreSQL):
131
+ *
132
+ * ```sql
133
+ * select "person"."first_name" as "fn"
134
+ * from "person"
135
+ * order by "fn"
136
+ * ```
137
+ */
138
+ orderBy<OE extends OrderByExpression<DB, TB, O>>(expr: OE, modifiers?: OrderByModifiers): OrderByInterface<DB, TB, O>;
139
+ /**
140
+ * @deprecated It does ~2-2.6x more compile-time instantiations compared to multiple chained `orderBy(expr, modifiers?)` calls (in `order by` clauses with reasonable item counts), and has broken autocompletion.
141
+ */
142
+ orderBy<OE extends OrderByExpression<DB, TB, O> | DirectedOrderByStringReference<DB, TB, O>>(exprs: ReadonlyArray<OE>): OrderByInterface<DB, TB, O>;
143
+ /**
144
+ * @deprecated It does ~2.9x more compile-time instantiations compared to a `orderBy(expr, direction)` call.
145
+ */
146
+ orderBy<OE extends DirectedOrderByStringReference<DB, TB, O>>(expr: OE): OrderByInterface<DB, TB, O>;
147
+ /**
148
+ * @deprecated Use `orderBy(expr, (ob) => ...)` instead.
149
+ */
150
+ orderBy<OE extends OrderByExpression<DB, TB, O>>(expr: OE, modifiers: Expression<any>): OrderByInterface<DB, TB, O>;
151
+ /**
152
+ * Clears the `order by` clause from the query.
153
+ *
154
+ * See {@link orderBy} for adding an `order by` clause or item to a query.
155
+ *
156
+ * ### Examples
157
+ *
158
+ * ```ts
159
+ * const query = db
160
+ * .selectFrom('person')
161
+ * .selectAll()
162
+ * .orderBy('id', 'desc')
163
+ *
164
+ * const results = await query
165
+ * .clearOrderBy()
166
+ * .execute()
167
+ * ```
168
+ *
169
+ * The generated SQL (PostgreSQL):
170
+ *
171
+ * ```sql
172
+ * select * from "person"
173
+ * ```
174
+ */
175
+ clearOrderBy(): OrderByInterface<DB, TB, O>;
176
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,43 @@
1
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
+ import { OrderByItemNode } from '../operation-node/order-by-item-node.js';
3
+ import { Collation } from '../parser/collate-parser.js';
4
+ export declare class OrderByItemBuilder implements OperationNodeSource {
5
+ #private;
6
+ constructor(props: OrderByItemBuilderProps);
7
+ /**
8
+ * Adds `desc` to the `order by` item.
9
+ *
10
+ * See {@link asc} for the opposite.
11
+ */
12
+ desc(): OrderByItemBuilder;
13
+ /**
14
+ * Adds `asc` to the `order by` item.
15
+ *
16
+ * See {@link desc} for the opposite.
17
+ */
18
+ asc(): OrderByItemBuilder;
19
+ /**
20
+ * Adds `nulls last` to the `order by` item.
21
+ *
22
+ * This is only supported by some dialects like PostgreSQL and SQLite.
23
+ *
24
+ * See {@link nullsFirst} for the opposite.
25
+ */
26
+ nullsLast(): OrderByItemBuilder;
27
+ /**
28
+ * Adds `nulls first` to the `order by` item.
29
+ *
30
+ * This is only supported by some dialects like PostgreSQL and SQLite.
31
+ *
32
+ * See {@link nullsLast} for the opposite.
33
+ */
34
+ nullsFirst(): OrderByItemBuilder;
35
+ /**
36
+ * Adds `collate <collationName>` to the `order by` item.
37
+ */
38
+ collate(collation: Collation): OrderByItemBuilder;
39
+ toOperationNode(): OrderByItemNode;
40
+ }
41
+ export interface OrderByItemBuilderProps {
42
+ readonly node: OrderByItemNode;
43
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderByItemBuilder = void 0;
4
+ const collate_node_js_1 = require("../operation-node/collate-node.js");
5
+ const order_by_item_node_js_1 = require("../operation-node/order-by-item-node.js");
6
+ const raw_node_js_1 = require("../operation-node/raw-node.js");
7
+ const object_utils_js_1 = require("../util/object-utils.js");
8
+ class OrderByItemBuilder {
9
+ #props;
10
+ constructor(props) {
11
+ this.#props = (0, object_utils_js_1.freeze)(props);
12
+ }
13
+ /**
14
+ * Adds `desc` to the `order by` item.
15
+ *
16
+ * See {@link asc} for the opposite.
17
+ */
18
+ desc() {
19
+ return new OrderByItemBuilder({
20
+ node: order_by_item_node_js_1.OrderByItemNode.cloneWith(this.#props.node, {
21
+ direction: raw_node_js_1.RawNode.createWithSql('desc'),
22
+ }),
23
+ });
24
+ }
25
+ /**
26
+ * Adds `asc` to the `order by` item.
27
+ *
28
+ * See {@link desc} for the opposite.
29
+ */
30
+ asc() {
31
+ return new OrderByItemBuilder({
32
+ node: order_by_item_node_js_1.OrderByItemNode.cloneWith(this.#props.node, {
33
+ direction: raw_node_js_1.RawNode.createWithSql('asc'),
34
+ }),
35
+ });
36
+ }
37
+ /**
38
+ * Adds `nulls last` to the `order by` item.
39
+ *
40
+ * This is only supported by some dialects like PostgreSQL and SQLite.
41
+ *
42
+ * See {@link nullsFirst} for the opposite.
43
+ */
44
+ nullsLast() {
45
+ return new OrderByItemBuilder({
46
+ node: order_by_item_node_js_1.OrderByItemNode.cloneWith(this.#props.node, { nulls: 'last' }),
47
+ });
48
+ }
49
+ /**
50
+ * Adds `nulls first` to the `order by` item.
51
+ *
52
+ * This is only supported by some dialects like PostgreSQL and SQLite.
53
+ *
54
+ * See {@link nullsLast} for the opposite.
55
+ */
56
+ nullsFirst() {
57
+ return new OrderByItemBuilder({
58
+ node: order_by_item_node_js_1.OrderByItemNode.cloneWith(this.#props.node, { nulls: 'first' }),
59
+ });
60
+ }
61
+ /**
62
+ * Adds `collate <collationName>` to the `order by` item.
63
+ */
64
+ collate(collation) {
65
+ return new OrderByItemBuilder({
66
+ node: order_by_item_node_js_1.OrderByItemNode.cloneWith(this.#props.node, {
67
+ collation: collate_node_js_1.CollateNode.create(collation),
68
+ }),
69
+ });
70
+ }
71
+ toOperationNode() {
72
+ return this.#props.node;
73
+ }
74
+ }
75
+ exports.OrderByItemBuilder = OrderByItemBuilder;
@@ -1,14 +1,14 @@
1
- import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
1
+ import { Expression } from '../expression/expression.js';
2
2
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
3
3
  import { OverNode } from '../operation-node/over-node.js';
4
- import { OrderByDirectionExpression } from '../parser/order-by-parser.js';
4
+ import { DirectedOrderByStringReference, OrderByExpression, OrderByModifiers } from '../parser/order-by-parser.js';
5
5
  import { PartitionByExpression } from '../parser/partition-by-parser.js';
6
- import { StringReference } from '../parser/reference-parser.js';
7
- export declare class OverBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
6
+ import { OrderByInterface } from './order-by-interface.js';
7
+ export declare class OverBuilder<DB, TB extends keyof DB> implements OrderByInterface<DB, TB, {}>, OperationNodeSource {
8
8
  #private;
9
9
  constructor(props: OverBuilderProps);
10
10
  /**
11
- * Adds an order by clause item inside the over function.
11
+ * Adds an `order by` clause or item inside the `over` function.
12
12
  *
13
13
  * ```ts
14
14
  * const result = await db
@@ -28,7 +28,44 @@ export declare class OverBuilder<DB, TB extends keyof DB> implements OperationNo
28
28
  * from "person"
29
29
  * ```
30
30
  */
31
- orderBy<OE extends StringReference<DB, TB> | DynamicReferenceBuilder<any>>(orderBy: OE, direction?: OrderByDirectionExpression): OverBuilder<DB, TB>;
31
+ orderBy<OE extends OrderByExpression<DB, TB, {}>>(expr: OE, modifiers?: OrderByModifiers): OverBuilder<DB, TB>;
32
+ /**
33
+ * @deprecated It does ~2-2.6x more compile-time instantiations compared to multiple chained `orderBy(expr, modifiers?)` calls (in `order by` clauses with reasonable item counts), and has broken autocompletion.
34
+ */
35
+ orderBy<OE extends OrderByExpression<DB, TB, {}> | DirectedOrderByStringReference<DB, TB, {}>>(exprs: ReadonlyArray<OE>): OverBuilder<DB, TB>;
36
+ /**
37
+ * @deprecated It does ~2.9x more compile-time instantiations compared to a `orderBy(expr, direction)` call.
38
+ */
39
+ orderBy<OE extends DirectedOrderByStringReference<DB, TB, {}>>(expr: OE): OverBuilder<DB, TB>;
40
+ /**
41
+ * @deprecated Use `orderBy(expr, (ob) => ...)` instead.
42
+ */
43
+ orderBy<OE extends OrderByExpression<DB, TB, {}>>(expr: OE, modifiers: Expression<any>): OverBuilder<DB, TB>;
44
+ /**
45
+ * Clears the `order by` clause from the query.
46
+ *
47
+ * See {@link orderBy} for adding an `order by` clause or item to a query.
48
+ *
49
+ * ### Examples
50
+ *
51
+ * ```ts
52
+ * const query = db
53
+ * .selectFrom('person')
54
+ * .selectAll()
55
+ * .orderBy('id', 'desc')
56
+ *
57
+ * const results = await query
58
+ * .clearOrderBy()
59
+ * .execute()
60
+ * ```
61
+ *
62
+ * The generated SQL (PostgreSQL):
63
+ *
64
+ * ```sql
65
+ * select * from "person"
66
+ * ```
67
+ */
68
+ clearOrderBy(): OverBuilder<DB, TB>;
32
69
  /**
33
70
  * Adds partition by clause item/s inside the over function.
34
71
  *
@@ -2,39 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OverBuilder = void 0;
4
4
  const over_node_js_1 = require("../operation-node/over-node.js");
5
+ const query_node_js_1 = require("../operation-node/query-node.js");
5
6
  const order_by_parser_js_1 = require("../parser/order-by-parser.js");
6
7
  const partition_by_parser_js_1 = require("../parser/partition-by-parser.js");
7
8
  const object_utils_js_1 = require("../util/object-utils.js");
8
- const prevent_await_js_1 = require("../util/prevent-await.js");
9
9
  class OverBuilder {
10
10
  #props;
11
11
  constructor(props) {
12
12
  this.#props = (0, object_utils_js_1.freeze)(props);
13
13
  }
14
- /**
15
- * Adds an order by clause item inside the over function.
16
- *
17
- * ```ts
18
- * const result = await db
19
- * .selectFrom('person')
20
- * .select(
21
- * (eb) => eb.fn.avg<number>('age').over(
22
- * ob => ob.orderBy('first_name', 'asc').orderBy('last_name', 'asc')
23
- * ).as('average_age')
24
- * )
25
- * .execute()
26
- * ```
27
- *
28
- * The generated SQL (PostgreSQL):
29
- *
30
- * ```sql
31
- * select avg("age") over(order by "first_name" asc, "last_name" asc) as "average_age"
32
- * from "person"
33
- * ```
34
- */
35
- orderBy(orderBy, direction) {
14
+ orderBy(...args) {
15
+ return new OverBuilder({
16
+ overNode: over_node_js_1.OverNode.cloneWithOrderByItems(this.#props.overNode, (0, order_by_parser_js_1.parseOrderBy)(args)),
17
+ });
18
+ }
19
+ clearOrderBy() {
36
20
  return new OverBuilder({
37
- overNode: over_node_js_1.OverNode.cloneWithOrderByItems(this.#props.overNode, (0, order_by_parser_js_1.parseOrderBy)([orderBy, direction])),
21
+ overNode: query_node_js_1.QueryNode.cloneWithoutOrderBy(this.#props.overNode),
38
22
  });
39
23
  }
40
24
  partitionBy(partitionBy) {
@@ -54,4 +38,3 @@ class OverBuilder {
54
38
  }
55
39
  }
56
40
  exports.OverBuilder = OverBuilder;
57
- (0, prevent_await_js_1.preventAwait)(OverBuilder, "don't await OverBuilder instances. They are never executed directly and are always just a part of a query.");
@@ -1,4 +1,4 @@
1
- import { ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js';
1
+ import { ReturningAllRow, ReturningCallbackRow, ReturningRow } from '../parser/returning-parser.js';
2
2
  import { SelectCallback, SelectExpression } from '../parser/select-parser.js';
3
3
  import { Selectable } from '../util/column-type.js';
4
4
  export interface ReturningInterface<DB, TB extends keyof DB, O> {
@@ -6,7 +6,7 @@ export interface ReturningInterface<DB, TB extends keyof DB, O> {
6
6
  * Allows you to return data from modified rows.
7
7
  *
8
8
  * On supported databases like PostgreSQL, this method can be chained to
9
- * `insert`, `update` and `delete` queries to return data.
9
+ * `insert`, `update`, `delete` and `merge` queries to return data.
10
10
  *
11
11
  * Note that on SQLite you need to give aliases for the expressions to avoid
12
12
  * [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
@@ -65,10 +65,27 @@ export interface ReturningInterface<DB, TB extends keyof DB, O> {
65
65
  returning<CB extends SelectCallback<DB, TB>>(callback: CB): ReturningInterface<DB, TB, ReturningCallbackRow<DB, TB, O, CB>>;
66
66
  returning<SE extends SelectExpression<DB, TB>>(selection: SE): ReturningInterface<DB, TB, ReturningRow<DB, TB, O, SE>>;
67
67
  /**
68
- * Adds a `returning *` to an insert/update/delete query on databases
68
+ * Adds a `returning *` to an insert/update/delete/merge query on databases
69
69
  * that support `returning` such as PostgreSQL.
70
70
  *
71
71
  * Also see the {@link returning} method.
72
72
  */
73
73
  returningAll(): ReturningInterface<DB, TB, Selectable<DB[TB]>>;
74
74
  }
75
+ export interface MultiTableReturningInterface<DB, TB extends keyof DB, O> extends ReturningInterface<DB, TB, O> {
76
+ /**
77
+ * Adds a `returning *` or `returning table.*` to an insert/update/delete/merge
78
+ * query on databases that support `returning` such as PostgreSQL.
79
+ *
80
+ * Also see the {@link returning} method.
81
+ */
82
+ returningAll<T extends TB>(tables: ReadonlyArray<T>): MultiTableReturningInterface<DB, TB, ReturningAllRow<DB, T, O>>;
83
+ /**
84
+ * Adds a `returning *` to an insert/update/delete/merge query on databases
85
+ * that support `returning` such as PostgreSQL.
86
+ *
87
+ * Also see the {@link returning} method.
88
+ */
89
+ returningAll<T extends TB>(table: T): MultiTableReturningInterface<DB, TB, ReturningAllRow<DB, T, O>>;
90
+ returningAll(): ReturningInterface<DB, TB, Selectable<DB[TB]>>;
91
+ }