kysely 0.21.6 → 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 (380) hide show
  1. package/CONTRIBUTING.md +70 -0
  2. package/README.md +27 -4
  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 +17 -8
  16. package/dist/cjs/index.js +15 -4
  17. package/dist/cjs/kysely.d.ts +3 -3
  18. package/dist/cjs/kysely.js +3 -3
  19. package/dist/cjs/migration/file-migration-provider.js +11 -4
  20. package/dist/cjs/operation-node/aggregate-function-node.d.ts +25 -0
  21. package/dist/cjs/operation-node/aggregate-function-node.js +48 -0
  22. package/dist/cjs/operation-node/alias-node.d.ts +3 -10
  23. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -2
  24. package/dist/cjs/operation-node/alter-table-node.d.ts +5 -7
  25. package/dist/cjs/operation-node/alter-table-node.js +9 -1
  26. package/dist/cjs/operation-node/and-node.d.ts +3 -4
  27. package/dist/cjs/operation-node/binary-operation-node.d.ts +14 -0
  28. package/dist/cjs/operation-node/binary-operation-node.js +20 -0
  29. package/dist/cjs/operation-node/check-constraint-node.d.ts +2 -3
  30. package/dist/cjs/operation-node/column-definition-node.d.ts +6 -5
  31. package/dist/cjs/operation-node/column-definition-node.js +16 -0
  32. package/dist/cjs/operation-node/column-update-node.d.ts +2 -3
  33. package/dist/cjs/operation-node/common-table-expression-node.d.ts +2 -4
  34. package/dist/cjs/operation-node/create-index-node.d.ts +1 -3
  35. package/dist/cjs/operation-node/create-table-node.d.ts +4 -5
  36. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  37. package/dist/cjs/operation-node/create-type-node.js +1 -2
  38. package/dist/cjs/operation-node/default-value-node.d.ts +2 -4
  39. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
  40. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  41. package/dist/cjs/operation-node/drop-type-node.js +1 -2
  42. package/dist/cjs/operation-node/explain-node.d.ts +2 -4
  43. package/dist/cjs/operation-node/explain-node.js +1 -1
  44. package/dist/cjs/operation-node/from-node.d.ts +3 -4
  45. package/dist/cjs/operation-node/generated-node.d.ts +2 -3
  46. package/dist/cjs/operation-node/group-by-item-node.d.ts +2 -3
  47. package/dist/cjs/operation-node/group-by-node.d.ts +1 -1
  48. package/dist/cjs/operation-node/group-by-node.js +3 -3
  49. package/dist/cjs/operation-node/having-node.d.ts +3 -4
  50. package/dist/cjs/operation-node/having-node.js +4 -4
  51. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -4
  52. package/dist/cjs/operation-node/join-node.d.ts +5 -9
  53. package/dist/cjs/operation-node/join-node.js +6 -6
  54. package/dist/cjs/operation-node/on-conflict-node.d.ts +5 -7
  55. package/dist/cjs/operation-node/on-conflict-node.js +12 -12
  56. package/dist/cjs/operation-node/on-node.d.ts +3 -4
  57. package/dist/cjs/operation-node/on-node.js +4 -4
  58. package/dist/cjs/operation-node/operation-node-transformer.d.ts +14 -4
  59. package/dist/cjs/operation-node/operation-node-transformer.js +60 -20
  60. package/dist/cjs/operation-node/operation-node-visitor.d.ts +14 -4
  61. package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
  62. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  63. package/dist/cjs/operation-node/operator-node.d.ts +5 -3
  64. package/dist/cjs/operation-node/operator-node.js +3 -5
  65. package/dist/cjs/operation-node/or-node.d.ts +3 -4
  66. package/dist/cjs/operation-node/order-by-item-node.d.ts +3 -5
  67. package/dist/cjs/operation-node/over-node.d.ts +19 -0
  68. package/dist/cjs/operation-node/over-node.js +35 -0
  69. package/dist/cjs/operation-node/parens-node.d.ts +2 -3
  70. package/dist/cjs/operation-node/partition-by-item-node.d.ts +13 -0
  71. package/dist/cjs/operation-node/{filter-node.js → partition-by-item-node.js} +6 -8
  72. package/dist/cjs/operation-node/partition-by-node.d.ts +14 -0
  73. package/dist/cjs/operation-node/partition-by-node.js +24 -0
  74. package/dist/cjs/operation-node/query-node.d.ts +2 -3
  75. package/dist/cjs/operation-node/query-node.js +6 -6
  76. package/dist/cjs/operation-node/select-modifier-node.d.ts +2 -3
  77. package/dist/cjs/operation-node/select-modifier-node.js +1 -1
  78. package/dist/cjs/operation-node/select-query-node.d.ts +8 -9
  79. package/dist/cjs/operation-node/select-query-node.js +14 -14
  80. package/dist/cjs/operation-node/selection-node.d.ts +2 -3
  81. package/dist/cjs/operation-node/set-operation-node.d.ts +15 -0
  82. package/dist/cjs/operation-node/{union-node.js → set-operation-node.js} +7 -6
  83. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +3 -0
  84. package/dist/cjs/operation-node/{operation-node-utils.js → simple-reference-expression-node.js} +0 -0
  85. package/dist/cjs/operation-node/unary-operation-node.d.ts +13 -0
  86. package/dist/cjs/operation-node/unary-operation-node.js +19 -0
  87. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  88. package/dist/cjs/operation-node/value-list-node.d.ts +2 -8
  89. package/dist/cjs/operation-node/where-node.d.ts +3 -4
  90. package/dist/cjs/operation-node/where-node.js +4 -4
  91. package/dist/cjs/parser/binary-operation-parser.d.ts +20 -0
  92. package/dist/cjs/parser/binary-operation-parser.js +99 -0
  93. package/dist/cjs/parser/coalesce-parser.d.ts +4 -0
  94. package/dist/cjs/parser/coalesce-parser.js +11 -0
  95. package/dist/cjs/parser/data-type-parser.d.ts +5 -5
  96. package/dist/cjs/parser/default-value-parser.d.ts +4 -5
  97. package/dist/cjs/parser/default-value-parser.js +2 -2
  98. package/dist/cjs/parser/expression-parser.d.ts +10 -0
  99. package/dist/cjs/parser/{complex-expression-parser.js → expression-parser.js} +9 -8
  100. package/dist/cjs/parser/group-by-parser.d.ts +1 -1
  101. package/dist/cjs/parser/group-by-parser.js +2 -2
  102. package/dist/cjs/parser/identifier-parser.d.ts +2 -0
  103. package/dist/cjs/parser/identifier-parser.js +23 -0
  104. package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
  105. package/dist/cjs/parser/insert-values-parser.js +2 -2
  106. package/dist/cjs/parser/join-parser.js +2 -2
  107. package/dist/cjs/parser/order-by-parser.d.ts +2 -2
  108. package/dist/cjs/parser/parse-utils.d.ts +2 -0
  109. package/dist/cjs/parser/parse-utils.js +9 -1
  110. package/dist/cjs/parser/partition-by-parser.d.ts +6 -0
  111. package/dist/cjs/parser/partition-by-parser.js +9 -0
  112. package/dist/cjs/parser/reference-parser.d.ts +14 -13
  113. package/dist/cjs/parser/reference-parser.js +12 -9
  114. package/dist/cjs/parser/select-parser.d.ts +6 -6
  115. package/dist/cjs/parser/select-parser.js +2 -2
  116. package/dist/cjs/parser/set-operation-parser.d.ts +3 -0
  117. package/dist/cjs/parser/set-operation-parser.js +8 -0
  118. package/dist/cjs/parser/table-parser.d.ts +11 -12
  119. package/dist/cjs/parser/table-parser.js +2 -2
  120. package/dist/cjs/parser/unary-operation-parser.d.ts +5 -0
  121. package/dist/cjs/parser/unary-operation-parser.js +17 -0
  122. package/dist/cjs/parser/update-set-parser.d.ts +1 -1
  123. package/dist/cjs/parser/value-parser.d.ts +5 -8
  124. package/dist/cjs/parser/value-parser.js +4 -4
  125. package/dist/cjs/parser/with-parser.d.ts +3 -4
  126. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  127. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +348 -0
  128. package/dist/cjs/query-builder/aggregate-function-builder.js +298 -0
  129. package/dist/cjs/query-builder/delete-query-builder.d.ts +20 -20
  130. package/dist/cjs/query-builder/delete-query-builder.js +19 -16
  131. package/dist/cjs/query-builder/expression-builder.d.ts +3 -3
  132. package/dist/cjs/query-builder/expression-builder.js +3 -3
  133. package/dist/cjs/query-builder/function-module.d.ts +241 -0
  134. package/dist/cjs/query-builder/function-module.js +214 -0
  135. package/dist/cjs/query-builder/having-interface.d.ts +9 -8
  136. package/dist/cjs/query-builder/insert-query-builder.d.ts +7 -6
  137. package/dist/cjs/query-builder/insert-query-builder.js +11 -9
  138. package/dist/cjs/query-builder/insert-result.d.ts +8 -1
  139. package/dist/cjs/query-builder/insert-result.js +12 -1
  140. package/dist/cjs/query-builder/join-builder.d.ts +9 -8
  141. package/dist/cjs/query-builder/join-builder.js +10 -9
  142. package/dist/cjs/query-builder/on-conflict-builder.d.ts +25 -24
  143. package/dist/cjs/query-builder/on-conflict-builder.js +18 -17
  144. package/dist/cjs/query-builder/over-builder.d.ts +59 -0
  145. package/dist/cjs/query-builder/over-builder.js +50 -0
  146. package/dist/cjs/query-builder/select-query-builder.d.ts +138 -47
  147. package/dist/cjs/query-builder/select-query-builder.js +122 -40
  148. package/dist/cjs/query-builder/update-query-builder.d.ts +20 -20
  149. package/dist/cjs/query-builder/update-query-builder.js +19 -16
  150. package/dist/cjs/query-builder/where-interface.d.ts +12 -11
  151. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  152. package/dist/cjs/query-compiler/default-query-compiler.d.ts +15 -5
  153. package/dist/cjs/query-compiler/default-query-compiler.js +78 -47
  154. package/dist/cjs/query-executor/query-executor-base.js +16 -1
  155. package/dist/cjs/raw-builder/raw-builder.d.ts +49 -13
  156. package/dist/cjs/raw-builder/raw-builder.js +24 -14
  157. package/dist/cjs/raw-builder/sql.d.ts +15 -7
  158. package/dist/cjs/raw-builder/sql.js +6 -0
  159. package/dist/cjs/schema/alter-column-builder.d.ts +28 -0
  160. package/dist/cjs/schema/alter-column-builder.js +55 -0
  161. package/dist/cjs/schema/alter-table-builder.d.ts +39 -341
  162. package/dist/cjs/schema/alter-table-builder.js +65 -280
  163. package/dist/cjs/schema/column-definition-builder.d.ts +43 -155
  164. package/dist/cjs/schema/column-definition-builder.js +189 -0
  165. package/dist/cjs/schema/create-index-builder.d.ts +2 -2
  166. package/dist/cjs/schema/create-table-builder.d.ts +38 -5
  167. package/dist/cjs/schema/create-table-builder.js +36 -1
  168. package/dist/cjs/schema/create-view-builder.d.ts +3 -2
  169. package/dist/cjs/schema/schema.d.ts +2 -2
  170. package/dist/cjs/schema/schema.js +6 -5
  171. package/dist/cjs/util/compilable.d.ts +2 -2
  172. package/dist/cjs/util/explainable.d.ts +2 -2
  173. package/dist/cjs/util/infer-result.d.ts +46 -0
  174. package/dist/cjs/util/infer-result.js +2 -0
  175. package/dist/cjs/util/log-once.d.ts +5 -0
  176. package/dist/cjs/util/log-once.js +16 -0
  177. package/dist/cjs/util/object-utils.d.ts +1 -0
  178. package/dist/cjs/util/object-utils.js +5 -1
  179. package/dist/cjs/util/type-utils.d.ts +3 -13
  180. package/dist/esm/dialect/database-introspector.d.ts +4 -0
  181. package/dist/esm/dialect/mysql/mysql-driver.js +6 -3
  182. package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
  183. package/dist/esm/dialect/postgres/postgres-driver.js +7 -2
  184. package/dist/esm/dialect/postgres/postgres-introspector.js +8 -0
  185. package/dist/esm/dialect/sqlite/sqlite-driver.js +4 -3
  186. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  187. package/dist/esm/driver/database-connection.d.ts +6 -2
  188. package/dist/esm/dynamic/dynamic-reference-builder.d.ts +2 -3
  189. package/dist/esm/dynamic/dynamic-reference-builder.js +2 -2
  190. package/dist/esm/expression/expression.d.ts +100 -0
  191. package/dist/esm/expression/expression.js +12 -0
  192. package/dist/esm/index.d.ts +17 -8
  193. package/dist/esm/index.js +13 -4
  194. package/dist/esm/kysely.d.ts +3 -3
  195. package/dist/esm/kysely.js +3 -3
  196. package/dist/esm/migration/file-migration-provider.js +11 -4
  197. package/dist/esm/operation-node/aggregate-function-node.d.ts +25 -0
  198. package/dist/esm/operation-node/aggregate-function-node.js +46 -0
  199. package/dist/esm/operation-node/alias-node.d.ts +3 -10
  200. package/dist/esm/operation-node/alter-column-node.d.ts +1 -2
  201. package/dist/esm/operation-node/alter-table-node.d.ts +5 -7
  202. package/dist/esm/operation-node/alter-table-node.js +9 -1
  203. package/dist/esm/operation-node/and-node.d.ts +3 -4
  204. package/dist/esm/operation-node/binary-operation-node.d.ts +14 -0
  205. package/dist/esm/operation-node/binary-operation-node.js +18 -0
  206. package/dist/esm/operation-node/check-constraint-node.d.ts +2 -3
  207. package/dist/esm/operation-node/column-definition-node.d.ts +6 -5
  208. package/dist/esm/operation-node/column-definition-node.js +16 -0
  209. package/dist/esm/operation-node/column-update-node.d.ts +2 -3
  210. package/dist/esm/operation-node/common-table-expression-node.d.ts +2 -4
  211. package/dist/esm/operation-node/create-index-node.d.ts +1 -3
  212. package/dist/esm/operation-node/create-table-node.d.ts +4 -5
  213. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  214. package/dist/esm/operation-node/create-type-node.js +1 -2
  215. package/dist/esm/operation-node/default-value-node.d.ts +2 -4
  216. package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
  217. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  218. package/dist/esm/operation-node/drop-type-node.js +1 -2
  219. package/dist/esm/operation-node/explain-node.d.ts +2 -4
  220. package/dist/esm/operation-node/explain-node.js +1 -1
  221. package/dist/esm/operation-node/from-node.d.ts +3 -4
  222. package/dist/esm/operation-node/generated-node.d.ts +2 -3
  223. package/dist/esm/operation-node/group-by-item-node.d.ts +2 -3
  224. package/dist/esm/operation-node/group-by-node.d.ts +1 -1
  225. package/dist/esm/operation-node/group-by-node.js +3 -3
  226. package/dist/esm/operation-node/having-node.d.ts +3 -4
  227. package/dist/esm/operation-node/having-node.js +4 -4
  228. package/dist/esm/operation-node/insert-query-node.d.ts +1 -4
  229. package/dist/esm/operation-node/join-node.d.ts +5 -9
  230. package/dist/esm/operation-node/join-node.js +6 -6
  231. package/dist/esm/operation-node/on-conflict-node.d.ts +5 -7
  232. package/dist/esm/operation-node/on-conflict-node.js +12 -12
  233. package/dist/esm/operation-node/on-node.d.ts +3 -4
  234. package/dist/esm/operation-node/on-node.js +4 -4
  235. package/dist/esm/operation-node/operation-node-transformer.d.ts +14 -4
  236. package/dist/esm/operation-node/operation-node-transformer.js +60 -20
  237. package/dist/esm/operation-node/operation-node-visitor.d.ts +14 -4
  238. package/dist/esm/operation-node/operation-node-visitor.js +7 -2
  239. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  240. package/dist/esm/operation-node/operator-node.d.ts +5 -3
  241. package/dist/esm/operation-node/operator-node.js +2 -4
  242. package/dist/esm/operation-node/or-node.d.ts +3 -4
  243. package/dist/esm/operation-node/order-by-item-node.d.ts +3 -5
  244. package/dist/esm/operation-node/over-node.d.ts +19 -0
  245. package/dist/esm/operation-node/over-node.js +33 -0
  246. package/dist/esm/operation-node/parens-node.d.ts +2 -3
  247. package/dist/esm/operation-node/partition-by-item-node.d.ts +13 -0
  248. package/dist/esm/operation-node/partition-by-item-node.js +16 -0
  249. package/dist/esm/operation-node/partition-by-node.d.ts +14 -0
  250. package/dist/esm/operation-node/partition-by-node.js +22 -0
  251. package/dist/esm/operation-node/query-node.d.ts +2 -3
  252. package/dist/esm/operation-node/query-node.js +6 -6
  253. package/dist/esm/operation-node/select-modifier-node.d.ts +2 -3
  254. package/dist/esm/operation-node/select-modifier-node.js +1 -1
  255. package/dist/esm/operation-node/select-query-node.d.ts +8 -9
  256. package/dist/esm/operation-node/select-query-node.js +14 -14
  257. package/dist/esm/operation-node/selection-node.d.ts +2 -3
  258. package/dist/esm/operation-node/set-operation-node.d.ts +15 -0
  259. package/dist/esm/operation-node/set-operation-node.js +18 -0
  260. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +3 -0
  261. package/dist/esm/operation-node/simple-reference-expression-node.js +2 -0
  262. package/dist/esm/operation-node/unary-operation-node.d.ts +13 -0
  263. package/dist/esm/operation-node/unary-operation-node.js +17 -0
  264. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  265. package/dist/esm/operation-node/value-list-node.d.ts +2 -8
  266. package/dist/esm/operation-node/where-node.d.ts +3 -4
  267. package/dist/esm/operation-node/where-node.js +4 -4
  268. package/dist/esm/parser/binary-operation-parser.d.ts +20 -0
  269. package/dist/esm/parser/binary-operation-parser.js +92 -0
  270. package/dist/esm/parser/coalesce-parser.d.ts +4 -0
  271. package/dist/esm/parser/coalesce-parser.js +8 -0
  272. package/dist/esm/parser/data-type-parser.d.ts +5 -5
  273. package/dist/esm/parser/default-value-parser.d.ts +4 -5
  274. package/dist/esm/parser/default-value-parser.js +2 -2
  275. package/dist/esm/parser/expression-parser.d.ts +10 -0
  276. package/dist/esm/parser/{complex-expression-parser.js → expression-parser.js} +6 -5
  277. package/dist/esm/parser/group-by-parser.d.ts +1 -1
  278. package/dist/esm/parser/group-by-parser.js +2 -2
  279. package/dist/esm/parser/identifier-parser.d.ts +2 -0
  280. package/dist/esm/parser/identifier-parser.js +20 -0
  281. package/dist/esm/parser/insert-values-parser.d.ts +1 -1
  282. package/dist/esm/parser/insert-values-parser.js +2 -2
  283. package/dist/esm/parser/join-parser.js +2 -2
  284. package/dist/esm/parser/order-by-parser.d.ts +2 -2
  285. package/dist/esm/parser/parse-utils.d.ts +2 -0
  286. package/dist/esm/parser/parse-utils.js +7 -0
  287. package/dist/esm/parser/partition-by-parser.d.ts +6 -0
  288. package/dist/esm/parser/partition-by-parser.js +6 -0
  289. package/dist/esm/parser/reference-parser.d.ts +14 -13
  290. package/dist/esm/parser/reference-parser.js +10 -8
  291. package/dist/esm/parser/select-parser.d.ts +6 -6
  292. package/dist/esm/parser/select-parser.js +2 -2
  293. package/dist/esm/parser/set-operation-parser.d.ts +3 -0
  294. package/dist/esm/parser/set-operation-parser.js +5 -0
  295. package/dist/esm/parser/table-parser.d.ts +11 -12
  296. package/dist/esm/parser/table-parser.js +2 -2
  297. package/dist/esm/parser/unary-operation-parser.d.ts +5 -0
  298. package/dist/esm/parser/unary-operation-parser.js +13 -0
  299. package/dist/esm/parser/update-set-parser.d.ts +1 -1
  300. package/dist/esm/parser/value-parser.d.ts +5 -8
  301. package/dist/esm/parser/value-parser.js +4 -4
  302. package/dist/esm/parser/with-parser.d.ts +3 -4
  303. package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
  304. package/dist/esm/query-builder/aggregate-function-builder.d.ts +348 -0
  305. package/dist/esm/query-builder/aggregate-function-builder.js +294 -0
  306. package/dist/esm/query-builder/delete-query-builder.d.ts +20 -20
  307. package/dist/esm/query-builder/delete-query-builder.js +19 -16
  308. package/dist/esm/query-builder/expression-builder.d.ts +3 -3
  309. package/dist/esm/query-builder/expression-builder.js +3 -3
  310. package/dist/esm/query-builder/function-module.d.ts +241 -0
  311. package/dist/esm/query-builder/function-module.js +211 -0
  312. package/dist/esm/query-builder/having-interface.d.ts +9 -8
  313. package/dist/esm/query-builder/insert-query-builder.d.ts +7 -6
  314. package/dist/esm/query-builder/insert-query-builder.js +11 -9
  315. package/dist/esm/query-builder/insert-result.d.ts +8 -1
  316. package/dist/esm/query-builder/insert-result.js +12 -1
  317. package/dist/esm/query-builder/join-builder.d.ts +9 -8
  318. package/dist/esm/query-builder/join-builder.js +10 -9
  319. package/dist/esm/query-builder/on-conflict-builder.d.ts +25 -24
  320. package/dist/esm/query-builder/on-conflict-builder.js +18 -17
  321. package/dist/esm/query-builder/over-builder.d.ts +59 -0
  322. package/dist/esm/query-builder/over-builder.js +47 -0
  323. package/dist/esm/query-builder/select-query-builder.d.ts +138 -47
  324. package/dist/esm/query-builder/select-query-builder.js +120 -38
  325. package/dist/esm/query-builder/update-query-builder.d.ts +20 -20
  326. package/dist/esm/query-builder/update-query-builder.js +19 -16
  327. package/dist/esm/query-builder/where-interface.d.ts +12 -11
  328. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  329. package/dist/esm/query-compiler/default-query-compiler.d.ts +15 -5
  330. package/dist/esm/query-compiler/default-query-compiler.js +79 -48
  331. package/dist/esm/query-executor/query-executor-base.js +16 -1
  332. package/dist/esm/raw-builder/raw-builder.d.ts +49 -13
  333. package/dist/esm/raw-builder/raw-builder.js +23 -14
  334. package/dist/esm/raw-builder/sql.d.ts +15 -7
  335. package/dist/esm/raw-builder/sql.js +6 -0
  336. package/dist/esm/schema/alter-column-builder.d.ts +28 -0
  337. package/dist/esm/schema/alter-column-builder.js +51 -0
  338. package/dist/esm/schema/alter-table-builder.d.ts +39 -341
  339. package/dist/esm/schema/alter-table-builder.js +61 -274
  340. package/dist/esm/schema/column-definition-builder.d.ts +43 -155
  341. package/dist/esm/schema/column-definition-builder.js +189 -0
  342. package/dist/esm/schema/create-index-builder.d.ts +2 -2
  343. package/dist/esm/schema/create-table-builder.d.ts +38 -5
  344. package/dist/esm/schema/create-table-builder.js +36 -1
  345. package/dist/esm/schema/create-view-builder.d.ts +3 -2
  346. package/dist/esm/schema/schema.d.ts +2 -2
  347. package/dist/esm/schema/schema.js +6 -5
  348. package/dist/esm/util/compilable.d.ts +2 -2
  349. package/dist/esm/util/explainable.d.ts +2 -2
  350. package/dist/esm/util/infer-result.d.ts +46 -0
  351. package/dist/esm/util/infer-result.js +2 -0
  352. package/dist/esm/util/log-once.d.ts +5 -0
  353. package/dist/esm/util/log-once.js +13 -0
  354. package/dist/esm/util/object-utils.d.ts +1 -0
  355. package/dist/esm/util/object-utils.js +3 -0
  356. package/dist/esm/util/type-utils.d.ts +3 -13
  357. package/package.json +4 -1
  358. package/dist/cjs/operation-node/filter-node.d.ts +0 -18
  359. package/dist/cjs/operation-node/operation-node-utils.d.ts +0 -17
  360. package/dist/cjs/operation-node/union-node.d.ts +0 -16
  361. package/dist/cjs/parser/complex-expression-parser.d.ts +0 -10
  362. package/dist/cjs/parser/filter-parser.d.ts +0 -24
  363. package/dist/cjs/parser/filter-parser.js +0 -109
  364. package/dist/cjs/parser/union-parser.d.ts +0 -5
  365. package/dist/cjs/parser/union-parser.js +0 -8
  366. package/dist/cjs/query-builder/function-builder.d.ts +0 -133
  367. package/dist/cjs/query-builder/function-builder.js +0 -160
  368. package/dist/esm/operation-node/filter-node.d.ts +0 -18
  369. package/dist/esm/operation-node/filter-node.js +0 -18
  370. package/dist/esm/operation-node/operation-node-utils.d.ts +0 -17
  371. package/dist/esm/operation-node/operation-node-utils.js +0 -2
  372. package/dist/esm/operation-node/union-node.d.ts +0 -16
  373. package/dist/esm/operation-node/union-node.js +0 -17
  374. package/dist/esm/parser/complex-expression-parser.d.ts +0 -10
  375. package/dist/esm/parser/filter-parser.d.ts +0 -24
  376. package/dist/esm/parser/filter-parser.js +0 -100
  377. package/dist/esm/parser/union-parser.d.ts +0 -5
  378. package/dist/esm/parser/union-parser.js +0 -5
  379. package/dist/esm/query-builder/function-builder.d.ts +0 -133
  380. package/dist/esm/query-builder/function-builder.js +0 -157
@@ -27,12 +27,19 @@ class FileMigrationProvider {
27
27
  const migrations = {};
28
28
  const files = await this.#props.fs.readdir(this.#props.migrationFolder);
29
29
  for (const fileName of files) {
30
- if ((fileName.endsWith('.js') || fileName.endsWith('.ts') || fileName.endsWith('.mjs')) &&
31
- !fileName.endsWith('.d.ts')) {
30
+ if (fileName.endsWith('.js') ||
31
+ (fileName.endsWith('.ts') && !fileName.endsWith('.d.ts')) ||
32
+ fileName.endsWith('.mjs') ||
33
+ (fileName.endsWith('.mts') && !fileName.endsWith('.d.mts'))) {
32
34
  const migration = await Promise.resolve().then(() => require(
33
35
  /* webpackIgnore: true */ this.#props.path.join(this.#props.migrationFolder, fileName)));
34
- if (isMigration(migration)) {
35
- migrations[fileName.substring(0, fileName.length - 3)] = migration;
36
+ const migrationKey = fileName.substring(0, fileName.lastIndexOf('.'));
37
+ // Handle esModuleInterop export's `default` prop...
38
+ if (isMigration(migration?.default)) {
39
+ migrations[migrationKey] = migration.default;
40
+ }
41
+ else if (isMigration(migration)) {
42
+ migrations[migrationKey] = migration;
36
43
  }
37
44
  }
38
45
  }
@@ -0,0 +1,25 @@
1
+ import { OperationNode } from './operation-node.js';
2
+ import { OverNode } from './over-node.js';
3
+ import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js';
4
+ import { WhereNode } from './where-node.js';
5
+ declare type AggregateFunction = 'avg' | 'count' | 'max' | 'min' | 'sum';
6
+ export interface AggregateFunctionNode extends OperationNode {
7
+ readonly kind: 'AggregateFunctionNode';
8
+ readonly func: AggregateFunction;
9
+ readonly column: SimpleReferenceExpressionNode;
10
+ readonly distinct?: boolean;
11
+ readonly filter?: WhereNode;
12
+ readonly over?: OverNode;
13
+ }
14
+ /**
15
+ * @internal
16
+ */
17
+ export declare const AggregateFunctionNode: Readonly<{
18
+ is(node: OperationNode): node is AggregateFunctionNode;
19
+ create(aggregateFunction: AggregateFunction, column: SimpleReferenceExpressionNode): AggregateFunctionNode;
20
+ cloneWithDistinct(aggregateFunctionNode: AggregateFunctionNode): AggregateFunctionNode;
21
+ cloneWithFilter(aggregateFunctionNode: AggregateFunctionNode, filter: OperationNode): AggregateFunctionNode;
22
+ cloneWithOrFilter(aggregateFunctionNode: AggregateFunctionNode, filter: OperationNode): AggregateFunctionNode;
23
+ cloneWithOver(aggregateFunctionNode: AggregateFunctionNode, over?: OverNode): AggregateFunctionNode;
24
+ }>;
25
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateFunctionNode = void 0;
4
+ const object_utils_js_1 = require("../util/object-utils.js");
5
+ const where_node_js_1 = require("./where-node.js");
6
+ /**
7
+ * @internal
8
+ */
9
+ exports.AggregateFunctionNode = (0, object_utils_js_1.freeze)({
10
+ is(node) {
11
+ return node.kind === 'AggregateFunctionNode';
12
+ },
13
+ create(aggregateFunction, column) {
14
+ return (0, object_utils_js_1.freeze)({
15
+ kind: 'AggregateFunctionNode',
16
+ func: aggregateFunction,
17
+ column,
18
+ });
19
+ },
20
+ cloneWithDistinct(aggregateFunctionNode) {
21
+ return (0, object_utils_js_1.freeze)({
22
+ ...aggregateFunctionNode,
23
+ distinct: true,
24
+ });
25
+ },
26
+ cloneWithFilter(aggregateFunctionNode, filter) {
27
+ return (0, object_utils_js_1.freeze)({
28
+ ...aggregateFunctionNode,
29
+ filter: aggregateFunctionNode.filter
30
+ ? where_node_js_1.WhereNode.cloneWithOperation(aggregateFunctionNode.filter, 'And', filter)
31
+ : where_node_js_1.WhereNode.create(filter),
32
+ });
33
+ },
34
+ cloneWithOrFilter(aggregateFunctionNode, filter) {
35
+ return (0, object_utils_js_1.freeze)({
36
+ ...aggregateFunctionNode,
37
+ filter: aggregateFunctionNode.filter
38
+ ? where_node_js_1.WhereNode.cloneWithOperation(aggregateFunctionNode.filter, 'Or', filter)
39
+ : where_node_js_1.WhereNode.create(filter),
40
+ });
41
+ },
42
+ cloneWithOver(aggregateFunctionNode, over) {
43
+ return (0, object_utils_js_1.freeze)({
44
+ ...aggregateFunctionNode,
45
+ over,
46
+ });
47
+ },
48
+ });
@@ -1,20 +1,13 @@
1
- import { ColumnNode } from './column-node.js';
2
- import { IdentifierNode } from './identifier-node.js';
3
1
  import { OperationNode } from './operation-node.js';
4
- import { RawNode } from './raw-node.js';
5
- import { ReferenceNode } from './reference-node.js';
6
- import { SelectQueryNode } from './select-query-node.js';
7
- import { TableNode } from './table-node.js';
8
- export declare type AliasNodeChild = ColumnNode | ReferenceNode | TableNode | SelectQueryNode | RawNode;
9
2
  export interface AliasNode extends OperationNode {
10
3
  readonly kind: 'AliasNode';
11
- readonly node: AliasNodeChild;
12
- readonly alias: IdentifierNode | RawNode;
4
+ readonly node: OperationNode;
5
+ readonly alias: OperationNode;
13
6
  }
14
7
  /**
15
8
  * @internal
16
9
  */
17
10
  export declare const AliasNode: Readonly<{
18
11
  is(node: OperationNode): node is AliasNode;
19
- create(node: AliasNodeChild, alias: IdentifierNode | RawNode): AliasNode;
12
+ create(node: OperationNode, alias: OperationNode): AliasNode;
20
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
  }>;
@@ -16,10 +16,18 @@ exports.AlterTableNode = (0, object_utils_js_1.freeze)({
16
16
  table: table_node_js_1.TableNode.create(table),
17
17
  });
18
18
  },
19
- cloneWith(node, props) {
19
+ cloneWithTableProps(node, props) {
20
20
  return (0, object_utils_js_1.freeze)({
21
21
  ...node,
22
22
  ...props,
23
23
  });
24
24
  },
25
+ cloneWithColumnAlteration(node, columnAlteration) {
26
+ return (0, object_utils_js_1.freeze)({
27
+ ...node,
28
+ columnAlterations: node.columnAlterations
29
+ ? [...node.columnAlterations, columnAlteration]
30
+ : [columnAlteration],
31
+ });
32
+ },
25
33
  });
@@ -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,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinaryOperationNode = void 0;
4
+ const object_utils_js_1 = require("../util/object-utils.js");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.BinaryOperationNode = (0, object_utils_js_1.freeze)({
9
+ is(node) {
10
+ return node.kind === 'BinaryOperationNode';
11
+ },
12
+ create(leftOperand, operator, rightOperand) {
13
+ return (0, object_utils_js_1.freeze)({
14
+ kind: 'BinaryOperationNode',
15
+ leftOperand,
16
+ operator,
17
+ rightOperand,
18
+ });
19
+ },
20
+ });
@@ -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
  }>;
@@ -17,6 +17,22 @@ exports.ColumnDefinitionNode = (0, object_utils_js_1.freeze)({
17
17
  dataType,
18
18
  });
19
19
  },
20
+ cloneWithFrontModifier(node, modifier) {
21
+ return (0, object_utils_js_1.freeze)({
22
+ ...node,
23
+ frontModifiers: node.frontModifiers
24
+ ? (0, object_utils_js_1.freeze)([...node.frontModifiers, modifier])
25
+ : [modifier],
26
+ });
27
+ },
28
+ cloneWithEndModifier(node, modifier) {
29
+ return (0, object_utils_js_1.freeze)({
30
+ ...node,
31
+ endModifiers: node.endModifiers
32
+ ? (0, object_utils_js_1.freeze)([...node.endModifiers, modifier])
33
+ : [modifier],
34
+ });
35
+ },
20
36
  cloneWith(node, props) {
21
37
  return (0, object_utils_js_1.freeze)({
22
38
  ...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
  }>;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateTypeNode = void 0;
4
4
  const object_utils_js_1 = require("../util/object-utils.js");
5
- const schemable_identifier_node_js_1 = require("./schemable-identifier-node.js");
6
5
  const value_list_node_js_1 = require("./value-list-node.js");
7
6
  const value_node_js_1 = require("./value-node.js");
8
7
  /**
@@ -15,7 +14,7 @@ exports.CreateTypeNode = (0, object_utils_js_1.freeze)({
15
14
  create(name) {
16
15
  return (0, object_utils_js_1.freeze)({
17
16
  kind: 'CreateTypeNode',
18
- name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
17
+ name,
19
18
  });
20
19
  },
21
20
  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
  }>;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DropTypeNode = void 0;
4
4
  const object_utils_js_1 = require("../util/object-utils.js");
5
- const schemable_identifier_node_js_1 = require("./schemable-identifier-node.js");
6
5
  /**
7
6
  * @internal
8
7
  */
@@ -13,7 +12,7 @@ exports.DropTypeNode = (0, object_utils_js_1.freeze)({
13
12
  create(name) {
14
13
  return (0, object_utils_js_1.freeze)({
15
14
  kind: 'DropTypeNode',
16
- name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
15
+ name,
17
16
  });
18
17
  },
19
18
  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
  }>;
@@ -13,7 +13,7 @@ exports.ExplainNode = (0, object_utils_js_1.freeze)({
13
13
  return (0, object_utils_js_1.freeze)({
14
14
  kind: 'ExplainNode',
15
15
  format,
16
- options: options?.toOperationNode(),
16
+ options,
17
17
  });
18
18
  },
19
19
  });
@@ -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
  }>;
@@ -10,5 +10,5 @@ export interface GroupByNode extends OperationNode {
10
10
  export declare const GroupByNode: Readonly<{
11
11
  is(node: OperationNode): node is GroupByNode;
12
12
  create(items: ReadonlyArray<GroupByItemNode>): GroupByNode;
13
- cloneWithItems(orderBy: GroupByNode, items: ReadonlyArray<GroupByItemNode>): GroupByNode;
13
+ cloneWithItems(groupBy: GroupByNode, items: ReadonlyArray<GroupByItemNode>): GroupByNode;
14
14
  }>;
@@ -15,10 +15,10 @@ exports.GroupByNode = (0, object_utils_js_1.freeze)({
15
15
  items: (0, object_utils_js_1.freeze)(items),
16
16
  });
17
17
  },
18
- cloneWithItems(orderBy, items) {
18
+ cloneWithItems(groupBy, items) {
19
19
  return (0, object_utils_js_1.freeze)({
20
- ...orderBy,
21
- items: (0, object_utils_js_1.freeze)([...orderBy.items, ...items]),
20
+ ...groupBy,
21
+ items: (0, object_utils_js_1.freeze)([...groupBy.items, ...items]),
22
22
  });
23
23
  },
24
24
  });
@@ -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
  }>;