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
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /// <reference types="./index.d.ts" />
2
2
  export * from './kysely.js';
3
3
  export * from './query-creator.js';
4
+ export * from './expression/expression.js';
4
5
  export * from './query-builder/where-interface.js';
5
6
  export * from './query-builder/returning-interface.js';
6
7
  export * from './query-builder/having-interface.js';
@@ -39,6 +40,7 @@ export * from './schema/foreign-key-constraint-builder.js';
39
40
  export * from './schema/alter-table-builder.js';
40
41
  export * from './schema/create-view-builder.js';
41
42
  export * from './schema/drop-view-builder.js';
43
+ export * from './schema/alter-column-builder.js';
42
44
  export * from './dynamic/dynamic.js';
43
45
  export * from './driver/driver.js';
44
46
  export * from './driver/database-connection.js';
@@ -104,7 +106,6 @@ export * from './operation-node/drop-schema-node.js';
104
106
  export * from './operation-node/drop-table-node.js';
105
107
  export * from './operation-node/drop-type-node.js';
106
108
  export * from './operation-node/drop-view-node.js';
107
- export * from './operation-node/filter-node.js';
108
109
  export * from './operation-node/foreign-key-constraint-node.js';
109
110
  export * from './operation-node/from-node.js';
110
111
  export * from './operation-node/generated-node.js';
@@ -123,7 +124,6 @@ export * from './operation-node/on-duplicate-key-node.js';
123
124
  export * from './operation-node/on-node.js';
124
125
  export * from './operation-node/operation-node-source.js';
125
126
  export * from './operation-node/operation-node-transformer.js';
126
- export * from './operation-node/operation-node-utils.js';
127
127
  export * from './operation-node/operation-node-visitor.js';
128
128
  export * from './operation-node/operation-node.js';
129
129
  export * from './operation-node/operator-node.js';
@@ -158,7 +158,11 @@ export * from './operation-node/over-node.js';
158
158
  export * from './operation-node/partition-by-node.js';
159
159
  export * from './operation-node/partition-by-item-node.js';
160
160
  export * from './operation-node/set-operation-node.js';
161
+ export * from './operation-node/binary-operation-node.js';
162
+ export * from './operation-node/unary-operation-node.js';
161
163
  export * from './util/column-type.js';
162
164
  export * from './util/compilable.js';
163
165
  export * from './util/explainable.js';
164
166
  export * from './util/log.js';
167
+ export * from './util/infer-result.js';
168
+ export { logOnce } from './util/log-once.js';
@@ -25,11 +25,13 @@ export class FileMigrationProvider {
25
25
  const migrations = {};
26
26
  const files = await this.#props.fs.readdir(this.#props.migrationFolder);
27
27
  for (const fileName of files) {
28
- if ((fileName.endsWith('.js') || fileName.endsWith('.ts') || fileName.endsWith('.mjs')) &&
29
- !fileName.endsWith('.d.ts')) {
28
+ if (fileName.endsWith('.js') ||
29
+ (fileName.endsWith('.ts') && !fileName.endsWith('.d.ts')) ||
30
+ fileName.endsWith('.mjs') ||
31
+ (fileName.endsWith('.mts') && !fileName.endsWith('.d.mts'))) {
30
32
  const migration = await import(
31
33
  /* webpackIgnore: true */ this.#props.path.join(this.#props.migrationFolder, fileName));
32
- const migrationKey = fileName.substring(0, fileName.length - 3);
34
+ const migrationKey = fileName.substring(0, fileName.lastIndexOf('.'));
33
35
  // Handle esModuleInterop export's `default` prop...
34
36
  if (isMigration(migration?.default)) {
35
37
  migrations[migrationKey] = migration.default;
@@ -1,13 +1,14 @@
1
- import { ColumnNode } from './column-node.js';
2
1
  import { OperationNode } from './operation-node.js';
3
2
  import { OverNode } from './over-node.js';
4
- import { ReferenceNode } from './reference-node.js';
3
+ import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js';
4
+ import { WhereNode } from './where-node.js';
5
5
  declare type AggregateFunction = 'avg' | 'count' | 'max' | 'min' | 'sum';
6
6
  export interface AggregateFunctionNode extends OperationNode {
7
7
  readonly kind: 'AggregateFunctionNode';
8
8
  readonly func: AggregateFunction;
9
- readonly column: ColumnNode | ReferenceNode;
9
+ readonly column: SimpleReferenceExpressionNode;
10
10
  readonly distinct?: boolean;
11
+ readonly filter?: WhereNode;
11
12
  readonly over?: OverNode;
12
13
  }
13
14
  /**
@@ -15,8 +16,10 @@ export interface AggregateFunctionNode extends OperationNode {
15
16
  */
16
17
  export declare const AggregateFunctionNode: Readonly<{
17
18
  is(node: OperationNode): node is AggregateFunctionNode;
18
- create(aggregateFunction: AggregateFunction, column: ColumnNode | ReferenceNode): AggregateFunctionNode;
19
+ create(aggregateFunction: AggregateFunction, column: SimpleReferenceExpressionNode): AggregateFunctionNode;
19
20
  cloneWithDistinct(aggregateFunctionNode: AggregateFunctionNode): AggregateFunctionNode;
21
+ cloneWithFilter(aggregateFunctionNode: AggregateFunctionNode, filter: OperationNode): AggregateFunctionNode;
22
+ cloneWithOrFilter(aggregateFunctionNode: AggregateFunctionNode, filter: OperationNode): AggregateFunctionNode;
20
23
  cloneWithOver(aggregateFunctionNode: AggregateFunctionNode, over?: OverNode): AggregateFunctionNode;
21
24
  }>;
22
25
  export {};
@@ -1,5 +1,6 @@
1
1
  /// <reference types="./aggregate-function-node.d.ts" />
2
2
  import { freeze } from '../util/object-utils.js';
3
+ import { WhereNode } from './where-node.js';
3
4
  /**
4
5
  * @internal
5
6
  */
@@ -20,6 +21,22 @@ export const AggregateFunctionNode = freeze({
20
21
  distinct: true,
21
22
  });
22
23
  },
24
+ cloneWithFilter(aggregateFunctionNode, filter) {
25
+ return freeze({
26
+ ...aggregateFunctionNode,
27
+ filter: aggregateFunctionNode.filter
28
+ ? WhereNode.cloneWithOperation(aggregateFunctionNode.filter, 'And', filter)
29
+ : WhereNode.create(filter),
30
+ });
31
+ },
32
+ cloneWithOrFilter(aggregateFunctionNode, filter) {
33
+ return freeze({
34
+ ...aggregateFunctionNode,
35
+ filter: aggregateFunctionNode.filter
36
+ ? WhereNode.cloneWithOperation(aggregateFunctionNode.filter, 'Or', filter)
37
+ : WhereNode.create(filter),
38
+ });
39
+ },
23
40
  cloneWithOver(aggregateFunctionNode, over) {
24
41
  return freeze({
25
42
  ...aggregateFunctionNode,
@@ -1,21 +1,13 @@
1
- import { AggregateFunctionNode } from './aggregate-function-node.js';
2
- import { ColumnNode } from './column-node.js';
3
- import { IdentifierNode } from './identifier-node.js';
4
1
  import { OperationNode } from './operation-node.js';
5
- import { RawNode } from './raw-node.js';
6
- import { ReferenceNode } from './reference-node.js';
7
- import { SelectQueryNode } from './select-query-node.js';
8
- import { TableNode } from './table-node.js';
9
- export declare type AliasNodeChild = ColumnNode | ReferenceNode | TableNode | SelectQueryNode | RawNode | AggregateFunctionNode;
10
2
  export interface AliasNode extends OperationNode {
11
3
  readonly kind: 'AliasNode';
12
- readonly node: AliasNodeChild;
13
- readonly alias: IdentifierNode | RawNode;
4
+ readonly node: OperationNode;
5
+ readonly alias: OperationNode;
14
6
  }
15
7
  /**
16
8
  * @internal
17
9
  */
18
10
  export declare const AliasNode: Readonly<{
19
11
  is(node: OperationNode): node is AliasNode;
20
- create(node: AliasNodeChild, alias: IdentifierNode | RawNode): AliasNode;
12
+ create(node: OperationNode, alias: OperationNode): AliasNode;
21
13
  }>;
@@ -1,7 +1,6 @@
1
1
  import { OperationNode } from './operation-node.js';
2
2
  import { ColumnNode } from './column-node.js';
3
3
  import { DataTypeNode } from './data-type-node.js';
4
- import { ValueNode } from './value-node.js';
5
4
  import { RawNode } from './raw-node.js';
6
5
  export declare type AlterColumnNodeProps = Omit<AlterColumnNode, 'kind' | 'column'>;
7
6
  export interface AlterColumnNode extends OperationNode {
@@ -9,7 +8,7 @@ export interface AlterColumnNode extends OperationNode {
9
8
  readonly column: ColumnNode;
10
9
  readonly dataType?: DataTypeNode;
11
10
  readonly dataTypeExpression?: RawNode;
12
- readonly setDefault?: ValueNode | RawNode;
11
+ readonly setDefault?: OperationNode;
13
12
  readonly dropDefault?: true;
14
13
  readonly setNotNull?: true;
15
14
  readonly dropNotNull?: true;
@@ -8,17 +8,14 @@ import { AlterColumnNode } from './alter-column-node.js';
8
8
  import { AddConstraintNode } from './add-constraint-node.js';
9
9
  import { DropConstraintNode } from './drop-constraint-node.js';
10
10
  import { ModifyColumnNode } from './modify-column-node.js';
11
- export declare type AlterTableNodeProps = Omit<AlterTableNode, 'kind' | 'table'>;
11
+ export declare type AlterTableNodeTableProps = Pick<AlterTableNode, 'renameTo' | 'setSchema' | 'addConstraint' | 'dropConstraint'>;
12
+ export declare type AlterTableColumnAlterationNode = RenameColumnNode | AddColumnNode | DropColumnNode | AlterColumnNode | ModifyColumnNode;
12
13
  export interface AlterTableNode extends OperationNode {
13
14
  readonly kind: 'AlterTableNode';
14
15
  readonly table: TableNode;
15
16
  readonly renameTo?: TableNode;
16
17
  readonly setSchema?: IdentifierNode;
17
- readonly renameColumn?: RenameColumnNode;
18
- readonly addColumn?: AddColumnNode;
19
- readonly dropColumn?: DropColumnNode;
20
- readonly alterColumn?: AlterColumnNode;
21
- readonly modifyColumn?: ModifyColumnNode;
18
+ readonly columnAlterations?: ReadonlyArray<AlterTableColumnAlterationNode>;
22
19
  readonly addConstraint?: AddConstraintNode;
23
20
  readonly dropConstraint?: DropConstraintNode;
24
21
  }
@@ -28,5 +25,6 @@ export interface AlterTableNode extends OperationNode {
28
25
  export declare const AlterTableNode: Readonly<{
29
26
  is(node: OperationNode): node is AlterTableNode;
30
27
  create(table: string): AlterTableNode;
31
- cloneWith(node: AlterTableNode, props: AlterTableNodeProps): AlterTableNode;
28
+ cloneWithTableProps(node: AlterTableNode, props: AlterTableNodeTableProps): AlterTableNode;
29
+ cloneWithColumnAlteration(node: AlterTableNode, columnAlteration: AlterTableColumnAlterationNode): AlterTableNode;
32
30
  }>;
@@ -14,10 +14,18 @@ export const AlterTableNode = freeze({
14
14
  table: TableNode.create(table),
15
15
  });
16
16
  },
17
- cloneWith(node, props) {
17
+ cloneWithTableProps(node, props) {
18
18
  return freeze({
19
19
  ...node,
20
20
  ...props,
21
21
  });
22
22
  },
23
+ cloneWithColumnAlteration(node, columnAlteration) {
24
+ return freeze({
25
+ ...node,
26
+ columnAlterations: node.columnAlterations
27
+ ? [...node.columnAlterations, columnAlteration]
28
+ : [columnAlteration],
29
+ });
30
+ },
23
31
  });
@@ -1,14 +1,13 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- import { FilterExpressionNode } from './operation-node-utils.js';
3
2
  export interface AndNode extends OperationNode {
4
3
  readonly kind: 'AndNode';
5
- readonly left: FilterExpressionNode;
6
- readonly right: FilterExpressionNode;
4
+ readonly left: OperationNode;
5
+ readonly right: OperationNode;
7
6
  }
8
7
  /**
9
8
  * @internal
10
9
  */
11
10
  export declare const AndNode: Readonly<{
12
11
  is(node: OperationNode): node is AndNode;
13
- create(left: FilterExpressionNode, right: FilterExpressionNode): AndNode;
12
+ create(left: OperationNode, right: OperationNode): AndNode;
14
13
  }>;
@@ -0,0 +1,14 @@
1
+ import { OperationNode } from './operation-node.js';
2
+ export interface BinaryOperationNode extends OperationNode {
3
+ readonly kind: 'BinaryOperationNode';
4
+ readonly leftOperand: OperationNode;
5
+ readonly operator: OperationNode;
6
+ readonly rightOperand: OperationNode;
7
+ }
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const BinaryOperationNode: Readonly<{
12
+ is(node: OperationNode): node is BinaryOperationNode;
13
+ create(leftOperand: OperationNode, operator: OperationNode, rightOperand: OperationNode): BinaryOperationNode;
14
+ }>;
@@ -0,0 +1,18 @@
1
+ /// <reference types="./binary-operation-node.d.ts" />
2
+ import { freeze } from '../util/object-utils.js';
3
+ /**
4
+ * @internal
5
+ */
6
+ export const BinaryOperationNode = freeze({
7
+ is(node) {
8
+ return node.kind === 'BinaryOperationNode';
9
+ },
10
+ create(leftOperand, operator, rightOperand) {
11
+ return freeze({
12
+ kind: 'BinaryOperationNode',
13
+ leftOperand,
14
+ operator,
15
+ rightOperand,
16
+ });
17
+ },
18
+ });
@@ -1,9 +1,8 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
2
  import { IdentifierNode } from './identifier-node.js';
4
3
  export interface CheckConstraintNode extends OperationNode {
5
4
  readonly kind: 'CheckConstraintNode';
6
- readonly expression: RawNode;
5
+ readonly expression: OperationNode;
7
6
  readonly name?: IdentifierNode;
8
7
  }
9
8
  /**
@@ -11,5 +10,5 @@ export interface CheckConstraintNode extends OperationNode {
11
10
  */
12
11
  export declare const CheckConstraintNode: Readonly<{
13
12
  is(node: OperationNode): node is CheckConstraintNode;
14
- create(expression: RawNode, constraintName?: string): CheckConstraintNode;
13
+ create(expression: OperationNode, constraintName?: string): CheckConstraintNode;
15
14
  }>;
@@ -1,17 +1,14 @@
1
1
  import { CheckConstraintNode } from './check-constraint-node.js';
2
2
  import { ColumnNode } from './column-node.js';
3
- import { DataTypeNode } from './data-type-node.js';
4
3
  import { DefaultValueNode } from './default-value-node.js';
5
4
  import { GeneratedNode } from './generated-node.js';
6
5
  import { OperationNode } from './operation-node.js';
7
- import { RawNode } from './raw-node.js';
8
6
  import { ReferencesNode } from './references-node.js';
9
7
  export declare type ColumnDefinitionNodeProps = Omit<Partial<ColumnDefinitionNode>, 'kind' | 'dataType'>;
10
- export declare type ColumnDataTypeNode = DataTypeNode | RawNode;
11
8
  export interface ColumnDefinitionNode extends OperationNode {
12
9
  readonly kind: 'ColumnDefinitionNode';
13
10
  readonly column: ColumnNode;
14
- readonly dataType: ColumnDataTypeNode;
11
+ readonly dataType: OperationNode;
15
12
  readonly references?: ReferencesNode;
16
13
  readonly primaryKey?: boolean;
17
14
  readonly autoIncrement?: boolean;
@@ -21,12 +18,16 @@ export interface ColumnDefinitionNode extends OperationNode {
21
18
  readonly check?: CheckConstraintNode;
22
19
  readonly generated?: GeneratedNode;
23
20
  readonly unsigned?: boolean;
21
+ readonly frontModifiers?: ReadonlyArray<OperationNode>;
22
+ readonly endModifiers?: ReadonlyArray<OperationNode>;
24
23
  }
25
24
  /**
26
25
  * @internal
27
26
  */
28
27
  export declare const ColumnDefinitionNode: Readonly<{
29
28
  is(node: OperationNode): node is ColumnDefinitionNode;
30
- create(column: string, dataType: ColumnDataTypeNode): ColumnDefinitionNode;
29
+ create(column: string, dataType: OperationNode): ColumnDefinitionNode;
30
+ cloneWithFrontModifier(node: ColumnDefinitionNode, modifier: OperationNode): ColumnDefinitionNode;
31
+ cloneWithEndModifier(node: ColumnDefinitionNode, modifier: OperationNode): ColumnDefinitionNode;
31
32
  cloneWith(node: ColumnDefinitionNode, props: ColumnDefinitionNodeProps): ColumnDefinitionNode;
32
33
  }>;
@@ -15,6 +15,22 @@ export const ColumnDefinitionNode = freeze({
15
15
  dataType,
16
16
  });
17
17
  },
18
+ cloneWithFrontModifier(node, modifier) {
19
+ return freeze({
20
+ ...node,
21
+ frontModifiers: node.frontModifiers
22
+ ? freeze([...node.frontModifiers, modifier])
23
+ : [modifier],
24
+ });
25
+ },
26
+ cloneWithEndModifier(node, modifier) {
27
+ return freeze({
28
+ ...node,
29
+ endModifiers: node.endModifiers
30
+ ? freeze([...node.endModifiers, modifier])
31
+ : [modifier],
32
+ });
33
+ },
18
34
  cloneWith(node, props) {
19
35
  return freeze({
20
36
  ...node,
@@ -1,15 +1,14 @@
1
1
  import { ColumnNode } from './column-node.js';
2
2
  import { OperationNode } from './operation-node.js';
3
- import { ValueExpressionNode } from './operation-node-utils.js';
4
3
  export interface ColumnUpdateNode extends OperationNode {
5
4
  readonly kind: 'ColumnUpdateNode';
6
5
  readonly column: ColumnNode;
7
- readonly value: ValueExpressionNode;
6
+ readonly value: OperationNode;
8
7
  }
9
8
  /**
10
9
  * @internal
11
10
  */
12
11
  export declare const ColumnUpdateNode: Readonly<{
13
12
  is(node: OperationNode): node is ColumnUpdateNode;
14
- create(column: ColumnNode, value: ValueExpressionNode): ColumnUpdateNode;
13
+ create(column: ColumnNode, value: OperationNode): ColumnUpdateNode;
15
14
  }>;
@@ -1,16 +1,14 @@
1
1
  import { CommonTableExpressionNameNode } from './common-table-expression-name-node.js';
2
2
  import { OperationNode } from './operation-node.js';
3
- import { QueryNode } from './query-node.js';
4
- import { RawNode } from './raw-node.js';
5
3
  export interface CommonTableExpressionNode extends OperationNode {
6
4
  readonly kind: 'CommonTableExpressionNode';
7
5
  readonly name: CommonTableExpressionNameNode;
8
- readonly expression: QueryNode | RawNode;
6
+ readonly expression: OperationNode;
9
7
  }
10
8
  /**
11
9
  * @internal
12
10
  */
13
11
  export declare const CommonTableExpressionNode: Readonly<{
14
12
  is(node: OperationNode): node is CommonTableExpressionNode;
15
- create(name: CommonTableExpressionNameNode, expression: QueryNode | RawNode): CommonTableExpressionNode;
13
+ create(name: CommonTableExpressionNameNode, expression: OperationNode): CommonTableExpressionNode;
16
14
  }>;
@@ -1,6 +1,4 @@
1
- import { ColumnNode } from './column-node.js';
2
1
  import { IdentifierNode } from './identifier-node.js';
3
- import { ListNode } from './list-node.js';
4
2
  import { OperationNode } from './operation-node.js';
5
3
  import { RawNode } from './raw-node.js';
6
4
  import { TableNode } from './table-node.js';
@@ -10,7 +8,7 @@ export interface CreateIndexNode extends OperationNode {
10
8
  readonly kind: 'CreateIndexNode';
11
9
  readonly name: IdentifierNode;
12
10
  readonly table?: TableNode;
13
- readonly expression?: ColumnNode | ListNode | RawNode;
11
+ readonly expression?: OperationNode;
14
12
  readonly unique?: boolean;
15
13
  readonly using?: RawNode;
16
14
  }
@@ -3,7 +3,6 @@ import { TableNode } from './table-node.js';
3
3
  import { ConstraintNode } from './constraint-node.js';
4
4
  import { ColumnDefinitionNode } from './column-definition-node.js';
5
5
  import { ArrayItemType } from '../util/type-utils.js';
6
- import { RawNode } from './raw-node.js';
7
6
  export declare const ON_COMMIT_ACTIONS: string[];
8
7
  export declare type OnCommitAction = ArrayItemType<typeof ON_COMMIT_ACTIONS>;
9
8
  export declare type CreateTableNodeParams = Omit<CreateTableNode, 'kind' | 'table' | 'columns' | 'constraints' | 'frontModifiers' | 'endModifiers'>;
@@ -15,8 +14,8 @@ export interface CreateTableNode extends OperationNode {
15
14
  readonly temporary?: boolean;
16
15
  readonly ifNotExists?: boolean;
17
16
  readonly onCommit?: OnCommitAction;
18
- readonly frontModifiers?: ReadonlyArray<RawNode>;
19
- readonly endModifiers?: ReadonlyArray<RawNode>;
17
+ readonly frontModifiers?: ReadonlyArray<OperationNode>;
18
+ readonly endModifiers?: ReadonlyArray<OperationNode>;
20
19
  }
21
20
  /**
22
21
  * @internal
@@ -26,7 +25,7 @@ export declare const CreateTableNode: Readonly<{
26
25
  create(table: TableNode): CreateTableNode;
27
26
  cloneWithColumn(createTable: CreateTableNode, column: ColumnDefinitionNode): CreateTableNode;
28
27
  cloneWithConstraint(createTable: CreateTableNode, constraint: ConstraintNode): CreateTableNode;
29
- cloneWithFrontModifier(createTable: CreateTableNode, modifier: RawNode): CreateTableNode;
30
- cloneWithEndModifier(createTable: CreateTableNode, modifier: RawNode): CreateTableNode;
28
+ cloneWithFrontModifier(createTable: CreateTableNode, modifier: OperationNode): CreateTableNode;
29
+ cloneWithEndModifier(createTable: CreateTableNode, modifier: OperationNode): CreateTableNode;
31
30
  cloneWith(createTable: CreateTableNode, params: CreateTableNodeParams): CreateTableNode;
32
31
  }>;
@@ -12,6 +12,6 @@ export interface CreateTypeNode extends OperationNode {
12
12
  */
13
13
  export declare const CreateTypeNode: Readonly<{
14
14
  is(node: OperationNode): node is CreateTypeNode;
15
- create(name: string): CreateTypeNode;
15
+ create(name: SchemableIdentifierNode): CreateTypeNode;
16
16
  cloneWithEnum(createType: CreateTypeNode, values: string[]): CreateTypeNode;
17
17
  }>;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./create-type-node.d.ts" />
2
2
  import { freeze } from '../util/object-utils.js';
3
- import { SchemableIdentifierNode } from './schemable-identifier-node.js';
4
3
  import { ValueListNode } from './value-list-node.js';
5
4
  import { ValueNode } from './value-node.js';
6
5
  /**
@@ -13,7 +12,7 @@ export const CreateTypeNode = freeze({
13
12
  create(name) {
14
13
  return freeze({
15
14
  kind: 'CreateTypeNode',
16
- name: SchemableIdentifierNode.create(name),
15
+ name,
17
16
  });
18
17
  },
19
18
  cloneWithEnum(createType, values) {
@@ -1,14 +1,12 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
- import { ValueNode } from './value-node.js';
4
2
  export interface DefaultValueNode extends OperationNode {
5
3
  readonly kind: 'DefaultValueNode';
6
- readonly defaultValue: ValueNode | RawNode;
4
+ readonly defaultValue: OperationNode;
7
5
  }
8
6
  /**
9
7
  * @internal
10
8
  */
11
9
  export declare const DefaultValueNode: Readonly<{
12
10
  is(node: OperationNode): node is DefaultValueNode;
13
- create(defaultValue: ValueNode | RawNode): DefaultValueNode;
11
+ create(defaultValue: OperationNode): DefaultValueNode;
14
12
  }>;
@@ -1,7 +1,6 @@
1
1
  import { FromNode } from './from-node.js';
2
2
  import { JoinNode } from './join-node.js';
3
3
  import { OperationNode } from './operation-node.js';
4
- import { TableExpressionNode } from './operation-node-utils.js';
5
4
  import { ReturningNode } from './returning-node.js';
6
5
  import { WhereNode } from './where-node.js';
7
6
  import { WithNode } from './with-node.js';
@@ -25,7 +24,7 @@ export interface DeleteQueryNode extends OperationNode {
25
24
  */
26
25
  export declare const DeleteQueryNode: Readonly<{
27
26
  is(node: OperationNode): node is DeleteQueryNode;
28
- create(fromItem: TableExpressionNode, withNode?: WithNode): DeleteQueryNode;
27
+ create(fromItem: OperationNode, withNode?: WithNode): DeleteQueryNode;
29
28
  cloneWithOrderByItem(deleteNode: DeleteQueryNode, item: OrderByItemNode): DeleteQueryNode;
30
29
  cloneWithLimit(deleteNode: DeleteQueryNode, limit: LimitNode): DeleteQueryNode;
31
30
  cloneWithExplain(deleteNode: DeleteQueryNode, explain: ExplainNode): DeleteQueryNode;
@@ -11,6 +11,6 @@ export interface DropTypeNode extends OperationNode {
11
11
  */
12
12
  export declare const DropTypeNode: Readonly<{
13
13
  is(node: OperationNode): node is DropTypeNode;
14
- create(name: string): DropTypeNode;
14
+ create(name: SchemableIdentifierNode): DropTypeNode;
15
15
  cloneWith(dropType: DropTypeNode, params: DropTypeNodeParams): DropTypeNode;
16
16
  }>;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./drop-type-node.d.ts" />
2
2
  import { freeze } from '../util/object-utils.js';
3
- import { SchemableIdentifierNode } from './schemable-identifier-node.js';
4
3
  /**
5
4
  * @internal
6
5
  */
@@ -11,7 +10,7 @@ export const DropTypeNode = freeze({
11
10
  create(name) {
12
11
  return freeze({
13
12
  kind: 'DropTypeNode',
14
- name: SchemableIdentifierNode.create(name),
13
+ name,
15
14
  });
16
15
  },
17
16
  cloneWith(dropType, params) {
@@ -1,16 +1,14 @@
1
1
  import { ExplainFormat } from '../util/explainable.js';
2
- import { AnyRawBuilder } from '../util/type-utils.js';
3
2
  import { OperationNode } from './operation-node.js';
4
- import { RawNode } from './raw-node.js';
5
3
  export interface ExplainNode extends OperationNode {
6
4
  readonly kind: 'ExplainNode';
7
5
  readonly format?: ExplainFormat;
8
- readonly options?: RawNode;
6
+ readonly options?: OperationNode;
9
7
  }
10
8
  /**
11
9
  * @internal
12
10
  */
13
11
  export declare const ExplainNode: Readonly<{
14
12
  is(node: OperationNode): node is ExplainNode;
15
- create(format?: ExplainFormat, options?: AnyRawBuilder): ExplainNode;
13
+ create(format?: ExplainFormat, options?: OperationNode): ExplainNode;
16
14
  }>;
@@ -11,7 +11,7 @@ export const ExplainNode = freeze({
11
11
  return freeze({
12
12
  kind: 'ExplainNode',
13
13
  format,
14
- options: options?.toOperationNode(),
14
+ options,
15
15
  });
16
16
  },
17
17
  });
@@ -1,14 +1,13 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- import { TableExpressionNode } from './operation-node-utils.js';
3
2
  export interface FromNode extends OperationNode {
4
3
  readonly kind: 'FromNode';
5
- readonly froms: ReadonlyArray<TableExpressionNode>;
4
+ readonly froms: ReadonlyArray<OperationNode>;
6
5
  }
7
6
  /**
8
7
  * @internal
9
8
  */
10
9
  export declare const FromNode: Readonly<{
11
10
  is(node: OperationNode): node is FromNode;
12
- create(froms: ReadonlyArray<TableExpressionNode>): FromNode;
13
- cloneWithFroms(from: FromNode, froms: ReadonlyArray<TableExpressionNode>): FromNode;
11
+ create(froms: ReadonlyArray<OperationNode>): FromNode;
12
+ cloneWithFroms(from: FromNode, froms: ReadonlyArray<OperationNode>): FromNode;
14
13
  }>;
@@ -1,5 +1,4 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
2
  export declare type GeneratedNodeParams = Omit<GeneratedNode, 'kind' | 'expression'>;
4
3
  export interface GeneratedNode extends OperationNode {
5
4
  readonly kind: 'GeneratedNode';
@@ -7,7 +6,7 @@ export interface GeneratedNode extends OperationNode {
7
6
  readonly always?: boolean;
8
7
  readonly identity?: boolean;
9
8
  readonly stored?: boolean;
10
- readonly expression?: RawNode;
9
+ readonly expression?: OperationNode;
11
10
  }
12
11
  /**
13
12
  * @internal
@@ -15,6 +14,6 @@ export interface GeneratedNode extends OperationNode {
15
14
  export declare const GeneratedNode: Readonly<{
16
15
  is(node: OperationNode): node is GeneratedNode;
17
16
  create(params: GeneratedNodeParams): GeneratedNode;
18
- createWithExpression(expression: RawNode): GeneratedNode;
17
+ createWithExpression(expression: OperationNode): GeneratedNode;
19
18
  cloneWith(node: GeneratedNode, params: GeneratedNodeParams): GeneratedNode;
20
19
  }>;
@@ -1,13 +1,12 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- import { ReferenceExpressionNode } from './operation-node-utils.js';
3
2
  export interface GroupByItemNode extends OperationNode {
4
3
  readonly kind: 'GroupByItemNode';
5
- readonly groupBy: ReferenceExpressionNode;
4
+ readonly groupBy: OperationNode;
6
5
  }
7
6
  /**
8
7
  * @internal
9
8
  */
10
9
  export declare const GroupByItemNode: Readonly<{
11
10
  is(node: OperationNode): node is GroupByItemNode;
12
- create(groupBy: ReferenceExpressionNode): GroupByItemNode;
11
+ create(groupBy: OperationNode): GroupByItemNode;
13
12
  }>;
@@ -1,14 +1,13 @@
1
- import { FilterExpressionNode } from './operation-node-utils.js';
2
1
  import { OperationNode } from './operation-node.js';
3
2
  export interface HavingNode extends OperationNode {
4
3
  readonly kind: 'HavingNode';
5
- readonly having: FilterExpressionNode;
4
+ readonly having: OperationNode;
6
5
  }
7
6
  /**
8
7
  * @internal
9
8
  */
10
9
  export declare const HavingNode: Readonly<{
11
10
  is(node: OperationNode): node is HavingNode;
12
- create(filter: FilterExpressionNode): HavingNode;
13
- cloneWithFilter(havingNode: HavingNode, op: 'And' | 'Or', filter: FilterExpressionNode): HavingNode;
11
+ create(filter: OperationNode): HavingNode;
12
+ cloneWithOperation(havingNode: HavingNode, operator: 'And' | 'Or', operation: OperationNode): HavingNode;
14
13
  }>;