kysely 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/CONTRIBUTING.md +70 -0
  2. package/README.md +25 -2
  3. package/dist/cjs/dialect/database-introspector.d.ts +4 -0
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +6 -3
  5. package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
  6. package/dist/cjs/dialect/postgres/postgres-driver.js +7 -2
  7. package/dist/cjs/dialect/postgres/postgres-introspector.js +8 -0
  8. package/dist/cjs/dialect/sqlite/sqlite-driver.js +4 -3
  9. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
  10. package/dist/cjs/driver/database-connection.d.ts +6 -2
  11. package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +2 -3
  12. package/dist/cjs/dynamic/dynamic-reference-builder.js +1 -1
  13. package/dist/cjs/expression/expression.d.ts +100 -0
  14. package/dist/cjs/expression/expression.js +16 -0
  15. package/dist/cjs/index.d.ts +10 -6
  16. package/dist/cjs/index.js +8 -2
  17. package/dist/cjs/migration/file-migration-provider.js +5 -3
  18. package/dist/cjs/operation-node/aggregate-function-node.d.ts +7 -4
  19. package/dist/cjs/operation-node/aggregate-function-node.js +17 -0
  20. package/dist/cjs/operation-node/alias-node.d.ts +3 -11
  21. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -2
  22. package/dist/cjs/operation-node/alter-table-node.d.ts +5 -7
  23. package/dist/cjs/operation-node/alter-table-node.js +9 -1
  24. package/dist/cjs/operation-node/and-node.d.ts +3 -4
  25. package/dist/cjs/operation-node/binary-operation-node.d.ts +14 -0
  26. package/dist/cjs/operation-node/binary-operation-node.js +20 -0
  27. package/dist/cjs/operation-node/check-constraint-node.d.ts +2 -3
  28. package/dist/cjs/operation-node/column-definition-node.d.ts +6 -5
  29. package/dist/cjs/operation-node/column-definition-node.js +16 -0
  30. package/dist/cjs/operation-node/column-update-node.d.ts +2 -3
  31. package/dist/cjs/operation-node/common-table-expression-node.d.ts +2 -4
  32. package/dist/cjs/operation-node/create-index-node.d.ts +1 -3
  33. package/dist/cjs/operation-node/create-table-node.d.ts +4 -5
  34. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  35. package/dist/cjs/operation-node/create-type-node.js +1 -2
  36. package/dist/cjs/operation-node/default-value-node.d.ts +2 -4
  37. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
  38. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/drop-type-node.js +1 -2
  40. package/dist/cjs/operation-node/explain-node.d.ts +2 -4
  41. package/dist/cjs/operation-node/explain-node.js +1 -1
  42. package/dist/cjs/operation-node/from-node.d.ts +3 -4
  43. package/dist/cjs/operation-node/generated-node.d.ts +2 -3
  44. package/dist/cjs/operation-node/group-by-item-node.d.ts +2 -3
  45. package/dist/cjs/operation-node/having-node.d.ts +3 -4
  46. package/dist/cjs/operation-node/having-node.js +4 -4
  47. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -5
  48. package/dist/cjs/operation-node/join-node.d.ts +5 -9
  49. package/dist/cjs/operation-node/join-node.js +6 -6
  50. package/dist/cjs/operation-node/on-conflict-node.d.ts +5 -7
  51. package/dist/cjs/operation-node/on-conflict-node.js +12 -12
  52. package/dist/cjs/operation-node/on-node.d.ts +3 -4
  53. package/dist/cjs/operation-node/on-node.js +4 -4
  54. package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -2
  55. package/dist/cjs/operation-node/operation-node-transformer.js +22 -15
  56. package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -2
  57. package/dist/cjs/operation-node/operation-node-visitor.js +2 -1
  58. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  59. package/dist/cjs/operation-node/operator-node.d.ts +5 -3
  60. package/dist/cjs/operation-node/operator-node.js +3 -5
  61. package/dist/cjs/operation-node/or-node.d.ts +3 -4
  62. package/dist/cjs/operation-node/order-by-item-node.d.ts +3 -5
  63. package/dist/cjs/operation-node/parens-node.d.ts +2 -3
  64. package/dist/cjs/operation-node/partition-by-item-node.d.ts +3 -4
  65. package/dist/cjs/operation-node/query-node.d.ts +2 -3
  66. package/dist/cjs/operation-node/query-node.js +6 -6
  67. package/dist/cjs/operation-node/select-modifier-node.d.ts +2 -3
  68. package/dist/cjs/operation-node/select-modifier-node.js +1 -1
  69. package/dist/cjs/operation-node/select-query-node.d.ts +5 -6
  70. package/dist/cjs/operation-node/select-query-node.js +10 -10
  71. package/dist/cjs/operation-node/selection-node.d.ts +2 -3
  72. package/dist/cjs/operation-node/set-operation-node.d.ts +2 -5
  73. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +3 -0
  74. package/dist/cjs/operation-node/{operation-node-utils.js → simple-reference-expression-node.js} +0 -0
  75. package/dist/cjs/operation-node/unary-operation-node.d.ts +13 -0
  76. package/dist/cjs/operation-node/unary-operation-node.js +19 -0
  77. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  78. package/dist/cjs/operation-node/value-list-node.d.ts +2 -9
  79. package/dist/cjs/operation-node/where-node.d.ts +3 -4
  80. package/dist/cjs/operation-node/where-node.js +4 -4
  81. package/dist/cjs/parser/binary-operation-parser.d.ts +20 -0
  82. package/dist/cjs/parser/binary-operation-parser.js +99 -0
  83. package/dist/cjs/parser/coalesce-parser.d.ts +4 -0
  84. package/dist/cjs/parser/coalesce-parser.js +11 -0
  85. package/dist/cjs/parser/data-type-parser.d.ts +5 -5
  86. package/dist/cjs/parser/default-value-parser.d.ts +4 -5
  87. package/dist/cjs/parser/default-value-parser.js +2 -2
  88. package/dist/cjs/parser/expression-parser.d.ts +10 -0
  89. package/dist/cjs/parser/{complex-expression-parser.js → expression-parser.js} +9 -8
  90. package/dist/cjs/parser/identifier-parser.d.ts +2 -0
  91. package/dist/cjs/parser/identifier-parser.js +23 -0
  92. package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
  93. package/dist/cjs/parser/insert-values-parser.js +2 -2
  94. package/dist/cjs/parser/join-parser.js +2 -2
  95. package/dist/cjs/parser/order-by-parser.d.ts +2 -2
  96. package/dist/cjs/parser/reference-parser.d.ts +14 -14
  97. package/dist/cjs/parser/reference-parser.js +12 -9
  98. package/dist/cjs/parser/select-parser.d.ts +6 -7
  99. package/dist/cjs/parser/select-parser.js +2 -2
  100. package/dist/cjs/parser/set-operation-parser.d.ts +2 -4
  101. package/dist/cjs/parser/table-parser.d.ts +11 -12
  102. package/dist/cjs/parser/table-parser.js +2 -2
  103. package/dist/cjs/parser/unary-operation-parser.d.ts +5 -0
  104. package/dist/cjs/parser/unary-operation-parser.js +17 -0
  105. package/dist/cjs/parser/update-set-parser.d.ts +1 -1
  106. package/dist/cjs/parser/value-parser.d.ts +5 -9
  107. package/dist/cjs/parser/value-parser.js +4 -4
  108. package/dist/cjs/parser/with-parser.d.ts +3 -4
  109. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  110. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +245 -14
  111. package/dist/cjs/query-builder/aggregate-function-builder.js +164 -12
  112. package/dist/cjs/query-builder/delete-query-builder.d.ts +20 -20
  113. package/dist/cjs/query-builder/delete-query-builder.js +19 -16
  114. package/dist/cjs/query-builder/function-module.d.ts +123 -22
  115. package/dist/cjs/query-builder/function-module.js +91 -48
  116. package/dist/cjs/query-builder/having-interface.d.ts +9 -8
  117. package/dist/cjs/query-builder/insert-query-builder.d.ts +7 -6
  118. package/dist/cjs/query-builder/insert-query-builder.js +11 -9
  119. package/dist/cjs/query-builder/insert-result.d.ts +8 -1
  120. package/dist/cjs/query-builder/insert-result.js +12 -1
  121. package/dist/cjs/query-builder/join-builder.d.ts +9 -8
  122. package/dist/cjs/query-builder/join-builder.js +10 -9
  123. package/dist/cjs/query-builder/on-conflict-builder.d.ts +25 -24
  124. package/dist/cjs/query-builder/on-conflict-builder.js +18 -17
  125. package/dist/cjs/query-builder/select-query-builder.d.ts +82 -51
  126. package/dist/cjs/query-builder/select-query-builder.js +39 -37
  127. package/dist/cjs/query-builder/update-query-builder.d.ts +20 -20
  128. package/dist/cjs/query-builder/update-query-builder.js +19 -16
  129. package/dist/cjs/query-builder/where-interface.d.ts +12 -11
  130. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  131. package/dist/cjs/query-compiler/default-query-compiler.d.ts +5 -3
  132. package/dist/cjs/query-compiler/default-query-compiler.js +37 -33
  133. package/dist/cjs/query-executor/query-executor-base.js +16 -1
  134. package/dist/cjs/raw-builder/raw-builder.d.ts +49 -13
  135. package/dist/cjs/raw-builder/raw-builder.js +24 -14
  136. package/dist/cjs/raw-builder/sql.d.ts +4 -4
  137. package/dist/cjs/schema/alter-column-builder.d.ts +28 -0
  138. package/dist/cjs/schema/alter-column-builder.js +55 -0
  139. package/dist/cjs/schema/alter-table-builder.d.ts +39 -341
  140. package/dist/cjs/schema/alter-table-builder.js +65 -280
  141. package/dist/cjs/schema/column-definition-builder.d.ts +43 -155
  142. package/dist/cjs/schema/column-definition-builder.js +189 -0
  143. package/dist/cjs/schema/create-index-builder.d.ts +2 -2
  144. package/dist/cjs/schema/create-table-builder.d.ts +38 -5
  145. package/dist/cjs/schema/create-table-builder.js +36 -1
  146. package/dist/cjs/schema/create-view-builder.d.ts +3 -2
  147. package/dist/cjs/schema/schema.d.ts +2 -2
  148. package/dist/cjs/schema/schema.js +6 -5
  149. package/dist/cjs/util/compilable.d.ts +2 -2
  150. package/dist/cjs/util/explainable.d.ts +2 -2
  151. package/dist/cjs/util/infer-result.d.ts +46 -0
  152. package/dist/cjs/util/infer-result.js +2 -0
  153. package/dist/cjs/util/log-once.d.ts +5 -0
  154. package/dist/cjs/util/log-once.js +16 -0
  155. package/dist/cjs/util/object-utils.d.ts +1 -0
  156. package/dist/cjs/util/object-utils.js +5 -1
  157. package/dist/cjs/util/type-utils.d.ts +3 -17
  158. package/dist/esm/dialect/database-introspector.d.ts +4 -0
  159. package/dist/esm/dialect/mysql/mysql-driver.js +6 -3
  160. package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
  161. package/dist/esm/dialect/postgres/postgres-driver.js +7 -2
  162. package/dist/esm/dialect/postgres/postgres-introspector.js +8 -0
  163. package/dist/esm/dialect/sqlite/sqlite-driver.js +4 -3
  164. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  165. package/dist/esm/driver/database-connection.d.ts +6 -2
  166. package/dist/esm/dynamic/dynamic-reference-builder.d.ts +2 -3
  167. package/dist/esm/dynamic/dynamic-reference-builder.js +2 -2
  168. package/dist/esm/expression/expression.d.ts +100 -0
  169. package/dist/esm/expression/expression.js +12 -0
  170. package/dist/esm/index.d.ts +10 -6
  171. package/dist/esm/index.js +6 -2
  172. package/dist/esm/migration/file-migration-provider.js +5 -3
  173. package/dist/esm/operation-node/aggregate-function-node.d.ts +7 -4
  174. package/dist/esm/operation-node/aggregate-function-node.js +17 -0
  175. package/dist/esm/operation-node/alias-node.d.ts +3 -11
  176. package/dist/esm/operation-node/alter-column-node.d.ts +1 -2
  177. package/dist/esm/operation-node/alter-table-node.d.ts +5 -7
  178. package/dist/esm/operation-node/alter-table-node.js +9 -1
  179. package/dist/esm/operation-node/and-node.d.ts +3 -4
  180. package/dist/esm/operation-node/binary-operation-node.d.ts +14 -0
  181. package/dist/esm/operation-node/binary-operation-node.js +18 -0
  182. package/dist/esm/operation-node/check-constraint-node.d.ts +2 -3
  183. package/dist/esm/operation-node/column-definition-node.d.ts +6 -5
  184. package/dist/esm/operation-node/column-definition-node.js +16 -0
  185. package/dist/esm/operation-node/column-update-node.d.ts +2 -3
  186. package/dist/esm/operation-node/common-table-expression-node.d.ts +2 -4
  187. package/dist/esm/operation-node/create-index-node.d.ts +1 -3
  188. package/dist/esm/operation-node/create-table-node.d.ts +4 -5
  189. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  190. package/dist/esm/operation-node/create-type-node.js +1 -2
  191. package/dist/esm/operation-node/default-value-node.d.ts +2 -4
  192. package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
  193. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  194. package/dist/esm/operation-node/drop-type-node.js +1 -2
  195. package/dist/esm/operation-node/explain-node.d.ts +2 -4
  196. package/dist/esm/operation-node/explain-node.js +1 -1
  197. package/dist/esm/operation-node/from-node.d.ts +3 -4
  198. package/dist/esm/operation-node/generated-node.d.ts +2 -3
  199. package/dist/esm/operation-node/group-by-item-node.d.ts +2 -3
  200. package/dist/esm/operation-node/having-node.d.ts +3 -4
  201. package/dist/esm/operation-node/having-node.js +4 -4
  202. package/dist/esm/operation-node/insert-query-node.d.ts +1 -5
  203. package/dist/esm/operation-node/join-node.d.ts +5 -9
  204. package/dist/esm/operation-node/join-node.js +6 -6
  205. package/dist/esm/operation-node/on-conflict-node.d.ts +5 -7
  206. package/dist/esm/operation-node/on-conflict-node.js +12 -12
  207. package/dist/esm/operation-node/on-node.d.ts +3 -4
  208. package/dist/esm/operation-node/on-node.js +4 -4
  209. package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -2
  210. package/dist/esm/operation-node/operation-node-transformer.js +22 -15
  211. package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -2
  212. package/dist/esm/operation-node/operation-node-visitor.js +2 -1
  213. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  214. package/dist/esm/operation-node/operator-node.d.ts +5 -3
  215. package/dist/esm/operation-node/operator-node.js +2 -4
  216. package/dist/esm/operation-node/or-node.d.ts +3 -4
  217. package/dist/esm/operation-node/order-by-item-node.d.ts +3 -5
  218. package/dist/esm/operation-node/parens-node.d.ts +2 -3
  219. package/dist/esm/operation-node/partition-by-item-node.d.ts +3 -4
  220. package/dist/esm/operation-node/query-node.d.ts +2 -3
  221. package/dist/esm/operation-node/query-node.js +6 -6
  222. package/dist/esm/operation-node/select-modifier-node.d.ts +2 -3
  223. package/dist/esm/operation-node/select-modifier-node.js +1 -1
  224. package/dist/esm/operation-node/select-query-node.d.ts +5 -6
  225. package/dist/esm/operation-node/select-query-node.js +10 -10
  226. package/dist/esm/operation-node/selection-node.d.ts +2 -3
  227. package/dist/esm/operation-node/set-operation-node.d.ts +2 -5
  228. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +3 -0
  229. package/dist/esm/operation-node/simple-reference-expression-node.js +2 -0
  230. package/dist/esm/operation-node/unary-operation-node.d.ts +13 -0
  231. package/dist/esm/operation-node/unary-operation-node.js +17 -0
  232. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  233. package/dist/esm/operation-node/value-list-node.d.ts +2 -9
  234. package/dist/esm/operation-node/where-node.d.ts +3 -4
  235. package/dist/esm/operation-node/where-node.js +4 -4
  236. package/dist/esm/parser/binary-operation-parser.d.ts +20 -0
  237. package/dist/esm/parser/binary-operation-parser.js +92 -0
  238. package/dist/esm/parser/coalesce-parser.d.ts +4 -0
  239. package/dist/esm/parser/coalesce-parser.js +8 -0
  240. package/dist/esm/parser/data-type-parser.d.ts +5 -5
  241. package/dist/esm/parser/default-value-parser.d.ts +4 -5
  242. package/dist/esm/parser/default-value-parser.js +2 -2
  243. package/dist/esm/parser/expression-parser.d.ts +10 -0
  244. package/dist/esm/parser/{complex-expression-parser.js → expression-parser.js} +6 -5
  245. package/dist/esm/parser/identifier-parser.d.ts +2 -0
  246. package/dist/esm/parser/identifier-parser.js +20 -0
  247. package/dist/esm/parser/insert-values-parser.d.ts +1 -1
  248. package/dist/esm/parser/insert-values-parser.js +2 -2
  249. package/dist/esm/parser/join-parser.js +2 -2
  250. package/dist/esm/parser/order-by-parser.d.ts +2 -2
  251. package/dist/esm/parser/reference-parser.d.ts +14 -14
  252. package/dist/esm/parser/reference-parser.js +10 -8
  253. package/dist/esm/parser/select-parser.d.ts +6 -7
  254. package/dist/esm/parser/select-parser.js +2 -2
  255. package/dist/esm/parser/set-operation-parser.d.ts +2 -4
  256. package/dist/esm/parser/table-parser.d.ts +11 -12
  257. package/dist/esm/parser/table-parser.js +2 -2
  258. package/dist/esm/parser/unary-operation-parser.d.ts +5 -0
  259. package/dist/esm/parser/unary-operation-parser.js +13 -0
  260. package/dist/esm/parser/update-set-parser.d.ts +1 -1
  261. package/dist/esm/parser/value-parser.d.ts +5 -9
  262. package/dist/esm/parser/value-parser.js +4 -4
  263. package/dist/esm/parser/with-parser.d.ts +3 -4
  264. package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
  265. package/dist/esm/query-builder/aggregate-function-builder.d.ts +245 -14
  266. package/dist/esm/query-builder/aggregate-function-builder.js +164 -12
  267. package/dist/esm/query-builder/delete-query-builder.d.ts +20 -20
  268. package/dist/esm/query-builder/delete-query-builder.js +19 -16
  269. package/dist/esm/query-builder/function-module.d.ts +123 -22
  270. package/dist/esm/query-builder/function-module.js +92 -49
  271. package/dist/esm/query-builder/having-interface.d.ts +9 -8
  272. package/dist/esm/query-builder/insert-query-builder.d.ts +7 -6
  273. package/dist/esm/query-builder/insert-query-builder.js +11 -9
  274. package/dist/esm/query-builder/insert-result.d.ts +8 -1
  275. package/dist/esm/query-builder/insert-result.js +12 -1
  276. package/dist/esm/query-builder/join-builder.d.ts +9 -8
  277. package/dist/esm/query-builder/join-builder.js +10 -9
  278. package/dist/esm/query-builder/on-conflict-builder.d.ts +25 -24
  279. package/dist/esm/query-builder/on-conflict-builder.js +18 -17
  280. package/dist/esm/query-builder/select-query-builder.d.ts +82 -51
  281. package/dist/esm/query-builder/select-query-builder.js +38 -36
  282. package/dist/esm/query-builder/update-query-builder.d.ts +20 -20
  283. package/dist/esm/query-builder/update-query-builder.js +19 -16
  284. package/dist/esm/query-builder/where-interface.d.ts +12 -11
  285. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  286. package/dist/esm/query-compiler/default-query-compiler.d.ts +5 -3
  287. package/dist/esm/query-compiler/default-query-compiler.js +38 -34
  288. package/dist/esm/query-executor/query-executor-base.js +16 -1
  289. package/dist/esm/raw-builder/raw-builder.d.ts +49 -13
  290. package/dist/esm/raw-builder/raw-builder.js +23 -14
  291. package/dist/esm/raw-builder/sql.d.ts +4 -4
  292. package/dist/esm/schema/alter-column-builder.d.ts +28 -0
  293. package/dist/esm/schema/alter-column-builder.js +51 -0
  294. package/dist/esm/schema/alter-table-builder.d.ts +39 -341
  295. package/dist/esm/schema/alter-table-builder.js +61 -274
  296. package/dist/esm/schema/column-definition-builder.d.ts +43 -155
  297. package/dist/esm/schema/column-definition-builder.js +189 -0
  298. package/dist/esm/schema/create-index-builder.d.ts +2 -2
  299. package/dist/esm/schema/create-table-builder.d.ts +38 -5
  300. package/dist/esm/schema/create-table-builder.js +36 -1
  301. package/dist/esm/schema/create-view-builder.d.ts +3 -2
  302. package/dist/esm/schema/schema.d.ts +2 -2
  303. package/dist/esm/schema/schema.js +6 -5
  304. package/dist/esm/util/compilable.d.ts +2 -2
  305. package/dist/esm/util/explainable.d.ts +2 -2
  306. package/dist/esm/util/infer-result.d.ts +46 -0
  307. package/dist/esm/util/infer-result.js +2 -0
  308. package/dist/esm/util/log-once.d.ts +5 -0
  309. package/dist/esm/util/log-once.js +13 -0
  310. package/dist/esm/util/object-utils.d.ts +1 -0
  311. package/dist/esm/util/object-utils.js +3 -0
  312. package/dist/esm/util/type-utils.d.ts +3 -17
  313. package/package.json +1 -1
  314. package/dist/cjs/operation-node/filter-node.d.ts +0 -18
  315. package/dist/cjs/operation-node/filter-node.js +0 -20
  316. package/dist/cjs/operation-node/operation-node-utils.d.ts +0 -18
  317. package/dist/cjs/parser/complex-expression-parser.d.ts +0 -12
  318. package/dist/cjs/parser/filter-parser.d.ts +0 -24
  319. package/dist/cjs/parser/filter-parser.js +0 -109
  320. package/dist/esm/operation-node/filter-node.d.ts +0 -18
  321. package/dist/esm/operation-node/filter-node.js +0 -18
  322. package/dist/esm/operation-node/operation-node-utils.d.ts +0 -18
  323. package/dist/esm/operation-node/operation-node-utils.js +0 -2
  324. package/dist/esm/parser/complex-expression-parser.d.ts +0 -12
  325. package/dist/esm/parser/filter-parser.d.ts +0 -24
  326. package/dist/esm/parser/filter-parser.js +0 -100
@@ -1,38 +1,36 @@
1
- import { AlterColumnNode } from '../operation-node/alter-column-node.js';
2
1
  import { AlterTableNode } from '../operation-node/alter-table-node.js';
3
- import { ColumnDataType } from '../operation-node/data-type-node.js';
4
2
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
5
3
  import { OnModifyForeignAction } from '../operation-node/references-node.js';
6
4
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
7
5
  import { Compilable } from '../util/compilable.js';
8
- import { ColumnDefinitionBuilder, ColumnDefinitionBuilderInterface } from './column-definition-builder.js';
9
- import { AnyRawBuilder } from '../util/type-utils.js';
6
+ import { ColumnDefinitionBuilderCallback } from './column-definition-builder.js';
10
7
  import { QueryId } from '../util/query-id.js';
11
8
  import { QueryExecutor } from '../query-executor/query-executor.js';
12
9
  import { DataTypeExpression } from '../parser/data-type-parser.js';
13
10
  import { ForeignKeyConstraintBuilder, ForeignKeyConstraintBuilderInterface } from './foreign-key-constraint-builder.js';
14
- import { DefaultValueExpression } from '../parser/default-value-parser.js';
11
+ import { Expression } from '../expression/expression.js';
12
+ import { AlterColumnBuilderCallback } from './alter-column-builder.js';
15
13
  /**
16
14
  * This builder can be used to create a `alter table` query.
17
15
  */
18
- export declare class AlterTableBuilder {
16
+ export declare class AlterTableBuilder implements ColumnAlteringInterface {
19
17
  #private;
20
18
  constructor(props: AlterTableBuilderProps);
21
19
  renameTo(newTableName: string): AlterTableExecutor;
22
20
  setSchema(newSchema: string): AlterTableExecutor;
23
- alterColumn(column: string): AlterColumnBuilder;
24
- dropColumn(column: string): AlterTableExecutor;
25
- renameColumn(column: string, newColumn: string): AlterTableExecutor;
21
+ alterColumn(column: string, alteration: AlterColumnBuilderCallback): AlterTableColumnAlteringBuilder;
22
+ dropColumn(column: string): AlterTableColumnAlteringBuilder;
23
+ renameColumn(column: string, newColumn: string): AlterTableColumnAlteringBuilder;
26
24
  /**
27
25
  * See {@link CreateTableBuilder.addColumn}
28
26
  */
29
- addColumn(columnName: string, dataType: DataTypeExpression, build?: AlterTableAddColumnBuilderCallback): AlterTableAddColumnBuilder;
27
+ addColumn(columnName: string, dataType: DataTypeExpression, build?: ColumnDefinitionBuilderCallback): AlterTableColumnAlteringBuilder;
30
28
  /**
31
29
  * Creates an `alter table modify column` query. The `modify column` statement
32
30
  * is only implemeted by MySQL and oracle AFAIK. On other databases you
33
31
  * should use the `alterColumn` method.
34
32
  */
35
- modifyColumn(columnName: string, dataType: DataTypeExpression): AlterTableModifyColumnBuilder;
33
+ modifyColumn(columnName: string, dataType: DataTypeExpression, build?: ColumnDefinitionBuilderCallback): AlterTableColumnAlteringBuilder;
36
34
  /**
37
35
  * See {@link CreateTableBuilder.addUniqueConstraint}
38
36
  */
@@ -40,7 +38,7 @@ export declare class AlterTableBuilder {
40
38
  /**
41
39
  * See {@link CreateTableBuilder.addCheckConstraint}
42
40
  */
43
- addCheckConstraint(constraintName: string, checkExpression: AnyRawBuilder): AlterTableExecutor;
41
+ addCheckConstraint(constraintName: string, checkExpression: Expression<any>): AlterTableExecutor;
44
42
  /**
45
43
  * See {@link CreateTableBuilder.addForeignKeyConstraint}
46
44
  *
@@ -50,24 +48,18 @@ export declare class AlterTableBuilder {
50
48
  */
51
49
  addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
52
50
  dropConstraint(constraintName: string): AlterTableDropConstraintBuilder;
51
+ /**
52
+ * Calls the given function passing `this` as the only argument.
53
+ *
54
+ * See {@link CreateTableBuilder.call}
55
+ */
56
+ call<T>(func: (qb: this) => T): T;
53
57
  }
54
58
  export interface AlterTableBuilderProps {
55
59
  readonly queryId: QueryId;
56
- readonly alterTableNode: AlterTableNode;
60
+ readonly node: AlterTableNode;
57
61
  readonly executor: QueryExecutor;
58
62
  }
59
- export declare class AlterColumnBuilder {
60
- #private;
61
- constructor(props: AlterColumnBuilderProps);
62
- setDataType(dataType: ColumnDataType): AlterTableExecutor;
63
- setDefault(value: DefaultValueExpression): AlterTableExecutor;
64
- dropDefault(): AlterTableExecutor;
65
- setNotNull(): AlterTableExecutor;
66
- dropNotNull(): AlterTableExecutor;
67
- }
68
- export interface AlterColumnBuilderProps extends AlterTableBuilderProps {
69
- readonly alterColumnNode: AlterColumnNode;
70
- }
71
63
  export declare class AlterTableExecutor implements OperationNodeSource, Compilable {
72
64
  #private;
73
65
  constructor(props: AlterTableExecutorProps);
@@ -77,336 +69,42 @@ export declare class AlterTableExecutor implements OperationNodeSource, Compilab
77
69
  }
78
70
  export interface AlterTableExecutorProps extends AlterTableBuilderProps {
79
71
  }
80
- export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface, OperationNodeSource, Compilable {
81
- #private;
82
- constructor(props: AlterTableAddColumnBuilderProps);
83
- /**
84
- * Adds `auto_increment` or `autoincrement` to the column definition
85
- * depending on the dialect.
86
- *
87
- * Some dialects like PostgreSQL don't support this. On PostgreSQL
88
- * you can use the `serial` or `bigserial` data type instead.
89
- */
90
- autoIncrement(): AlterTableAddColumnBuilder;
91
- /**
92
- * Makes the column the primary key.
93
- *
94
- * If you want to specify a composite primary key use the
95
- * {@link CreateTableBuilder.addPrimaryKeyConstraint} method.
96
- */
97
- primaryKey(): AlterTableAddColumnBuilder;
98
- /**
99
- * Adds a foreign key constraint for the column.
100
- *
101
- * If your database engine doesn't support foreign key constraints in the
102
- * column definition (like MySQL 5) you need to call the table level
103
- * {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
104
- *
105
- * ### Examples
106
- *
107
- * ```ts
108
- * col.references('person.id')
109
- * ```
110
- */
111
- references(ref: string): AlterTableAddColumnBuilder;
112
- /**
113
- * Adds an `on delete` constraint for the foreign key column.
114
- *
115
- * If your database engine doesn't support foreign key constraints in the
116
- * column definition (like MySQL 5) you need to call the table level
117
- * {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
118
- *
119
- * ### Examples
120
- *
121
- * ```ts
122
- * col.references('person.id').onDelete('cascade')
123
- * ```
124
- */
125
- onDelete(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
126
- /**
127
- * Adds an `on update` constraint for the foreign key column.
128
- *
129
- * ### Examples
130
- *
131
- * ```ts
132
- * col.references('person.id').onUpdate('cascade')
133
- * ```
134
- */
135
- onUpdate(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
136
- /**
137
- * Adds a unique constraint for the column.
138
- */
139
- unique(): AlterTableAddColumnBuilder;
72
+ export interface ColumnAlteringInterface {
73
+ alterColumn(column: string, alteration: AlterColumnBuilderCallback): ColumnAlteringInterface;
74
+ dropColumn(column: string): ColumnAlteringInterface;
75
+ renameColumn(column: string, newColumn: string): ColumnAlteringInterface;
140
76
  /**
141
- * Adds a `not null` constraint for the column.
142
- */
143
- notNull(): AlterTableAddColumnBuilder;
144
- /**
145
- * Adds a `unsigned` modifier for the column.
146
- *
147
- * This only works on some dialects like MySQL.
148
- */
149
- unsigned(): AlterTableAddColumnBuilder;
150
- /**
151
- * Adds a default value constraint for the column.
152
- *
153
- * ### Examples
154
- *
155
- * ```ts
156
- * db.schema
157
- * .createTable('pet')
158
- * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
159
- * .execute()
160
- * ```
161
- *
162
- * Values passed to `defaultTo` are interpreted as value literals by default. You can define
163
- * an arbitrary SQL expression using the {@link sql} template tag:
164
- *
165
- * ```ts
166
- * import { sql } from 'kysely'
167
- *
168
- * db.schema
169
- * .createTable('pet')
170
- * .addColumn(
171
- * 'number_of_legs',
172
- * 'integer',
173
- * (col) => col.defaultTo(sql`any SQL here`)
174
- * )
175
- * .execute()
176
- * ```
177
- */
178
- defaultTo(value: DefaultValueExpression): AlterTableAddColumnBuilder;
179
- /**
180
- * Adds a check constraint for the column.
181
- *
182
- * ### Examples
183
- *
184
- * ```ts
185
- * import { sql } from 'kysely'
186
- *
187
- * db.schema
188
- * .createTable('pet')
189
- * .addColumn('number_of_legs', 'integer', (col) =>
190
- * col.check(sql`number_of_legs < 5`)
191
- * )
192
- * .execute()
193
- * ```
194
- */
195
- check(expression: AnyRawBuilder): AlterTableAddColumnBuilder;
196
- /**
197
- * Makes the column a generated column using a `generated always as` statement.
198
- *
199
- * ### Examples
200
- *
201
- * ```ts
202
- * import { sql } from 'kysely'
203
- *
204
- * db.schema
205
- * .createTable('person')
206
- * .addColumn('full_name', 'varchar(255)',
207
- * (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
208
- * )
209
- * .execute()
210
- * ```
211
- */
212
- generatedAlwaysAs(expression: AnyRawBuilder): AlterTableAddColumnBuilder;
213
- /**
214
- * Adds the `generated always as identity` specifier on supported dialects.
215
- */
216
- generatedAlwaysAsIdentity(): AlterTableAddColumnBuilder;
217
- /**
218
- * Adds the `generated by default as identity` specifier on supported dialects.
77
+ * See {@link CreateTableBuilder.addColumn}
219
78
  */
220
- generatedByDefaultAsIdentity(): AlterTableAddColumnBuilder;
79
+ addColumn(columnName: string, dataType: DataTypeExpression, build?: ColumnDefinitionBuilderCallback): ColumnAlteringInterface;
221
80
  /**
222
- * Makes a generated column stored instead of virtual. This method can only
223
- * be used with {@link generatedAlwaysAs}
224
- *
225
- * ### Examples
226
- *
227
- * ```ts
228
- * db.schema
229
- * .createTable('person')
230
- * .addColumn('full_name', 'varchar(255)', (col) => col
231
- * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
232
- * .stored()
233
- * )
234
- * .execute()
235
- * ```
81
+ * Creates an `alter table modify column` query. The `modify column` statement
82
+ * is only implemeted by MySQL and oracle AFAIK. On other databases you
83
+ * should use the `alterColumn` method.
236
84
  */
237
- stored(): AlterTableAddColumnBuilder;
238
- toOperationNode(): AlterTableNode;
239
- compile(): CompiledQuery;
240
- execute(): Promise<void>;
85
+ modifyColumn(columnName: string, dataType: DataTypeExpression, build: ColumnDefinitionBuilderCallback): ColumnAlteringInterface;
241
86
  }
242
- export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps {
243
- readonly columnBuilder: ColumnDefinitionBuilder;
244
- }
245
- export declare type AlterTableAddColumnBuilderCallback = (builder: AlterTableAddColumnBuilder) => AlterTableAddColumnBuilder;
246
- export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface, OperationNodeSource, Compilable {
87
+ export declare class AlterTableColumnAlteringBuilder implements ColumnAlteringInterface, OperationNodeSource, Compilable {
247
88
  #private;
248
- constructor(props: AlterTableModifyColumnBuilderProps);
249
- /**
250
- * Adds `auto_increment` or `autoincrement` to the column definition
251
- * depending on the dialect.
252
- *
253
- * Some dialects like PostgreSQL don't support this. On PostgreSQL
254
- * you can use the `serial` or `bigserial` data type instead.
255
- */
256
- autoIncrement(): AlterTableModifyColumnBuilder;
257
- /**
258
- * Makes the column the primary key.
259
- *
260
- * If you want to specify a composite primary key use the
261
- * {@link CreateTableBuilder.addPrimaryKeyConstraint} method.
262
- */
263
- primaryKey(): AlterTableModifyColumnBuilder;
264
- /**
265
- * Adds a foreign key constraint for the column.
266
- *
267
- * If your database engine doesn't support foreign key constraints in the
268
- * column definition (like MySQL 5) you need to call the table level
269
- * {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
270
- *
271
- * ### Examples
272
- *
273
- * ```ts
274
- * col.references('person.id')
275
- * ```
276
- */
277
- references(ref: string): AlterTableModifyColumnBuilder;
278
- /**
279
- * Adds an `on delete` constraint for the foreign key column.
280
- *
281
- * If your database engine doesn't support foreign key constraints in the
282
- * column definition (like MySQL 5) you need to call the table level
283
- * {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
284
- *
285
- * ### Examples
286
- *
287
- * ```ts
288
- * col.references('person.id').onDelete('cascade')
289
- * ```
290
- */
291
- onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
292
- /**
293
- * Adds an `on update` constraint for the foreign key column.
294
- *
295
- * ### Examples
296
- *
297
- * ```ts
298
- * col.references('person.id').onUpdate('cascade')
299
- * ```
300
- */
301
- onUpdate(onUpdate: OnModifyForeignAction): AlterTableModifyColumnBuilder;
302
- /**
303
- * Adds a unique constraint for the column.
304
- */
305
- unique(): AlterTableModifyColumnBuilder;
306
- /**
307
- * Adds a `not null` constraint for the column.
308
- */
309
- notNull(): AlterTableModifyColumnBuilder;
89
+ constructor(props: AlterTableColumnAlteringBuilderProps);
90
+ alterColumn(column: string, alteration: AlterColumnBuilderCallback): AlterTableColumnAlteringBuilder;
91
+ dropColumn(column: string): AlterTableColumnAlteringBuilder;
92
+ renameColumn(column: string, newColumn: string): AlterTableColumnAlteringBuilder;
310
93
  /**
311
- * Adds a `unsigned` modifier for the column.
312
- *
313
- * This only works on some dialects like MySQL.
314
- */
315
- unsigned(): AlterTableModifyColumnBuilder;
316
- /**
317
- * Adds a default value constraint for the column.
318
- *
319
- * ### Examples
320
- *
321
- * ```ts
322
- * db.schema
323
- * .createTable('pet')
324
- * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
325
- * .execute()
326
- * ```
327
- *
328
- * Values passed to `defaultTo` are interpreted as value literals by default. You can define
329
- * an arbitrary SQL expression using the {@link sql} template tag:
330
- *
331
- * ```ts
332
- * import { sql } from 'kysely'
333
- *
334
- * db.schema
335
- * .createTable('pet')
336
- * .addColumn(
337
- * 'number_of_legs',
338
- * 'integer',
339
- * (col) => col.defaultTo(sql`any SQL here`)
340
- * )
341
- * .execute()
342
- * ```
343
- */
344
- defaultTo(value: DefaultValueExpression): AlterTableModifyColumnBuilder;
345
- /**
346
- * Adds a check constraint for the column.
347
- *
348
- * ### Examples
349
- *
350
- * ```ts
351
- * import { sql } from 'kysely'
352
- *
353
- * db.schema
354
- * .createTable('pet')
355
- * .addColumn('number_of_legs', 'integer', (col) =>
356
- * col.check(sql`number_of_legs < 5`)
357
- * )
358
- * .execute()
359
- * ```
360
- */
361
- check(expression: AnyRawBuilder): AlterTableModifyColumnBuilder;
362
- /**
363
- * Makes the column a generated column using a `generated always as` statement.
364
- *
365
- * ### Examples
366
- *
367
- * ```ts
368
- * import { sql } from 'kysely'
369
- *
370
- * db.schema
371
- * .createTable('person')
372
- * .addColumn('full_name', 'varchar(255)',
373
- * (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
374
- * )
375
- * .execute()
376
- * ```
377
- */
378
- generatedAlwaysAs(expression: AnyRawBuilder): AlterTableModifyColumnBuilder;
379
- /**
380
- * Adds the `generated always as identity` specifier on supported dialects.
381
- */
382
- generatedAlwaysAsIdentity(): AlterTableModifyColumnBuilder;
383
- /**
384
- * Adds the `generated by default as identity` specifier on supported dialects.
94
+ * See {@link CreateTableBuilder.addColumn}
385
95
  */
386
- generatedByDefaultAsIdentity(): AlterTableModifyColumnBuilder;
96
+ addColumn(columnName: string, dataType: DataTypeExpression, build?: ColumnDefinitionBuilderCallback): AlterTableColumnAlteringBuilder;
387
97
  /**
388
- * Makes a generated column stored instead of virtual. This method can only
389
- * be used with {@link generatedAlwaysAs}
390
- *
391
- * ### Examples
392
- *
393
- * ```ts
394
- * db.schema
395
- * .createTable('person')
396
- * .addColumn('full_name', 'varchar(255)', (col) => col
397
- * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
398
- * .stored()
399
- * )
400
- * .execute()
401
- * ```
98
+ * Creates an `alter table modify column` query. The `modify column` statement
99
+ * is only implemeted by MySQL and oracle AFAIK. On other databases you
100
+ * should use the `alterColumn` method.
402
101
  */
403
- stored(): AlterTableModifyColumnBuilder;
102
+ modifyColumn(columnName: string, dataType: DataTypeExpression, build?: ColumnDefinitionBuilderCallback): AlterTableColumnAlteringBuilder;
404
103
  toOperationNode(): AlterTableNode;
405
104
  compile(): CompiledQuery;
406
105
  execute(): Promise<void>;
407
106
  }
408
- export interface AlterTableModifyColumnBuilderProps extends AlterTableBuilderProps {
409
- readonly columnBuilder: ColumnDefinitionBuilder;
107
+ export interface AlterTableColumnAlteringBuilderProps extends AlterTableBuilderProps {
410
108
  }
411
109
  export declare class AlterTableAddForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<AlterTableAddForeignKeyConstraintBuilder>, OperationNodeSource, Compilable {
412
110
  #private;