kysely 0.27.6 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/README.md +169 -1
  2. package/deno.check.d.ts +7 -0
  3. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  4. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +6 -3
  5. package/dist/cjs/dialect/mssql/mssql-driver.js +33 -19
  6. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  7. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +11 -0
  8. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +4 -0
  9. package/dist/cjs/dialect/mysql/mysql-driver.js +27 -12
  10. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +4 -0
  11. package/dist/cjs/dialect/postgres/postgres-driver.js +28 -18
  12. package/dist/cjs/dialect/postgres/postgres-introspector.js +7 -17
  13. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +4 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-driver.js +19 -13
  15. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
  17. package/dist/cjs/driver/database-connection.d.ts +0 -4
  18. package/dist/cjs/driver/driver.d.ts +17 -0
  19. package/dist/cjs/driver/driver.js +13 -1
  20. package/dist/cjs/driver/dummy-driver.d.ts +3 -0
  21. package/dist/cjs/driver/dummy-driver.js +9 -0
  22. package/dist/cjs/driver/runtime-driver.d.ts +4 -0
  23. package/dist/cjs/driver/runtime-driver.js +43 -3
  24. package/dist/cjs/expression/expression-builder.d.ts +7 -10
  25. package/dist/cjs/helpers/postgres.d.ts +48 -0
  26. package/dist/cjs/helpers/postgres.js +50 -0
  27. package/dist/cjs/index.d.ts +13 -2
  28. package/dist/cjs/index.js +13 -2
  29. package/dist/cjs/kysely.d.ts +339 -2
  30. package/dist/cjs/kysely.js +465 -11
  31. package/dist/cjs/migration/migrator.d.ts +8 -0
  32. package/dist/cjs/migration/migrator.js +1 -1
  33. package/dist/cjs/operation-node/aggregate-function-node.d.ts +2 -1
  34. package/dist/cjs/operation-node/aggregate-function-node.js +4 -3
  35. package/dist/cjs/operation-node/alter-table-node.d.ts +3 -1
  36. package/dist/cjs/operation-node/collate-node.d.ts +13 -0
  37. package/dist/cjs/operation-node/collate-node.js +19 -0
  38. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/create-type-node.js +1 -1
  41. package/dist/cjs/operation-node/delete-query-node.d.ts +8 -2
  42. package/dist/cjs/operation-node/delete-query-node.js +11 -15
  43. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -0
  44. package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
  45. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  46. package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
  47. package/dist/cjs/operation-node/operation-node-transformer.d.ts +106 -97
  48. package/dist/cjs/operation-node/operation-node-transformer.js +352 -312
  49. package/dist/cjs/operation-node/operation-node-visitor.d.ts +9 -1
  50. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  51. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/or-action-node.d.ts +12 -0
  53. package/dist/cjs/operation-node/or-action-node.js +18 -0
  54. package/dist/cjs/operation-node/order-by-item-node.d.ts +5 -0
  55. package/dist/cjs/operation-node/order-by-item-node.js +6 -0
  56. package/dist/cjs/operation-node/primary-key-constraint-node.d.ts +29 -0
  57. package/dist/cjs/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  58. package/dist/cjs/operation-node/query-node.d.ts +7 -0
  59. package/dist/cjs/operation-node/query-node.js +15 -0
  60. package/dist/cjs/operation-node/refresh-materialized-view-node.d.ts +17 -0
  61. package/dist/cjs/operation-node/refresh-materialized-view-node.js +25 -0
  62. package/dist/cjs/operation-node/rename-constraint-node.d.ts +14 -0
  63. package/dist/cjs/operation-node/rename-constraint-node.js +20 -0
  64. package/dist/cjs/operation-node/select-query-node.d.ts +8 -2
  65. package/dist/cjs/operation-node/select-query-node.js +11 -15
  66. package/dist/cjs/operation-node/unique-constraint-node.d.ts +2 -0
  67. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  68. package/dist/cjs/operation-node/update-query-node.js +5 -2
  69. package/dist/cjs/parser/collate-parser.d.ts +1 -0
  70. package/dist/cjs/parser/collate-parser.js +2 -0
  71. package/dist/cjs/parser/delete-from-parser.d.ts +5 -0
  72. package/dist/cjs/parser/delete-from-parser.js +2 -0
  73. package/dist/cjs/parser/join-parser.d.ts +1 -1
  74. package/dist/cjs/parser/join-parser.js +7 -1
  75. package/dist/cjs/parser/merge-into-parser.d.ts +5 -0
  76. package/dist/cjs/parser/merge-into-parser.js +2 -0
  77. package/dist/cjs/parser/order-by-parser.d.ts +18 -5
  78. package/dist/cjs/parser/order-by-parser.js +24 -14
  79. package/dist/cjs/parser/savepoint-parser.d.ts +4 -0
  80. package/dist/cjs/parser/savepoint-parser.js +11 -0
  81. package/dist/cjs/parser/select-from-parser.d.ts +4 -0
  82. package/dist/cjs/parser/select-from-parser.js +2 -0
  83. package/dist/cjs/parser/table-parser.d.ts +2 -5
  84. package/dist/cjs/parser/update-parser.d.ts +5 -0
  85. package/dist/cjs/parser/update-parser.js +2 -0
  86. package/dist/cjs/parser/update-set-parser.d.ts +7 -4
  87. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  88. package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  89. package/dist/cjs/plugin/camel-case/camel-case-transformer.js +2 -2
  90. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  91. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  92. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  93. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  94. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +162 -0
  95. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  96. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +29 -0
  97. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  98. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.js +66 -0
  99. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.js +1 -1
  100. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  101. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.js +6 -4
  102. package/dist/cjs/plugin/with-schema/with-schema-plugin.js +1 -1
  103. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +6 -5
  104. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +29 -24
  105. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +83 -5
  106. package/dist/cjs/query-builder/aggregate-function-builder.js +15 -27
  107. package/dist/cjs/query-builder/cte-builder.js +0 -2
  108. package/dist/cjs/query-builder/delete-query-builder.d.ts +36 -47
  109. package/dist/cjs/query-builder/delete-query-builder.js +12 -78
  110. package/dist/cjs/query-builder/function-module.d.ts +31 -4
  111. package/dist/cjs/query-builder/insert-query-builder.d.ts +161 -6
  112. package/dist/cjs/query-builder/insert-query-builder.js +197 -10
  113. package/dist/cjs/query-builder/join-builder.js +0 -2
  114. package/dist/cjs/query-builder/merge-query-builder.d.ts +145 -3
  115. package/dist/cjs/query-builder/merge-query-builder.js +28 -7
  116. package/dist/cjs/query-builder/on-conflict-builder.js +0 -4
  117. package/dist/cjs/query-builder/order-by-interface.d.ts +176 -0
  118. package/dist/cjs/query-builder/order-by-interface.js +2 -0
  119. package/dist/cjs/query-builder/order-by-item-builder.d.ts +43 -0
  120. package/dist/cjs/query-builder/order-by-item-builder.js +75 -0
  121. package/dist/cjs/query-builder/over-builder.d.ts +43 -6
  122. package/dist/cjs/query-builder/over-builder.js +8 -25
  123. package/dist/cjs/query-builder/returning-interface.d.ts +20 -3
  124. package/dist/cjs/query-builder/select-query-builder.d.ts +279 -98
  125. package/dist/cjs/query-builder/select-query-builder.js +26 -26
  126. package/dist/cjs/query-builder/update-query-builder.d.ts +88 -9
  127. package/dist/cjs/query-builder/update-query-builder.js +17 -15
  128. package/dist/cjs/query-compiler/compiled-query.d.ts +2 -0
  129. package/dist/cjs/query-compiler/compiled-query.js +2 -0
  130. package/dist/cjs/query-compiler/default-query-compiler.d.ts +17 -2
  131. package/dist/cjs/query-compiler/default-query-compiler.js +97 -2
  132. package/dist/cjs/query-compiler/query-compiler.d.ts +4 -2
  133. package/dist/cjs/query-creator.d.ts +23 -25
  134. package/dist/cjs/query-creator.js +280 -8
  135. package/dist/cjs/query-executor/default-query-executor.d.ts +2 -1
  136. package/dist/cjs/query-executor/default-query-executor.js +2 -2
  137. package/dist/cjs/query-executor/query-executor-base.js +7 -25
  138. package/dist/cjs/raw-builder/raw-builder.js +0 -3
  139. package/dist/cjs/raw-builder/sql.d.ts +3 -3
  140. package/dist/cjs/raw-builder/sql.js +1 -1
  141. package/dist/cjs/schema/alter-column-builder.js +0 -3
  142. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  143. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  144. package/dist/cjs/schema/alter-table-add-index-builder.js +0 -2
  145. package/dist/cjs/schema/alter-table-builder.d.ts +7 -3
  146. package/dist/cjs/schema/alter-table-builder.js +21 -10
  147. package/dist/cjs/schema/alter-table-drop-constraint-builder.js +0 -2
  148. package/dist/cjs/schema/alter-table-executor.js +0 -2
  149. package/dist/cjs/schema/check-constraint-builder.d.ts +13 -0
  150. package/dist/cjs/schema/check-constraint-builder.js +20 -0
  151. package/dist/cjs/schema/column-definition-builder.js +0 -2
  152. package/dist/cjs/schema/create-index-builder.js +1 -3
  153. package/dist/cjs/schema/create-schema-builder.js +0 -2
  154. package/dist/cjs/schema/create-table-builder.d.ts +5 -4
  155. package/dist/cjs/schema/create-table-builder.js +9 -7
  156. package/dist/cjs/schema/create-type-builder.d.ts +1 -1
  157. package/dist/cjs/schema/create-type-builder.js +0 -2
  158. package/dist/cjs/schema/create-view-builder.js +0 -2
  159. package/dist/cjs/schema/drop-index-builder.js +0 -2
  160. package/dist/cjs/schema/drop-schema-builder.js +0 -2
  161. package/dist/cjs/schema/drop-table-builder.js +0 -2
  162. package/dist/cjs/schema/drop-type-builder.js +0 -2
  163. package/dist/cjs/schema/drop-view-builder.js +0 -2
  164. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +9 -0
  165. package/dist/cjs/schema/foreign-key-constraint-builder.js +16 -2
  166. package/dist/cjs/schema/primary-key-constraint-builder.d.ts +17 -0
  167. package/dist/cjs/schema/primary-key-constraint-builder.js +37 -0
  168. package/dist/cjs/schema/refresh-materialized-view-builder.d.ts +47 -0
  169. package/dist/cjs/schema/refresh-materialized-view-builder.js +75 -0
  170. package/dist/cjs/schema/schema.d.ts +14 -0
  171. package/dist/cjs/schema/schema.js +21 -0
  172. package/dist/cjs/schema/unique-constraint-builder.d.ts +10 -1
  173. package/dist/cjs/schema/unique-constraint-builder.js +26 -5
  174. package/dist/cjs/util/infer-result.d.ts +1 -1
  175. package/dist/cjs/util/log.d.ts +1 -0
  176. package/dist/cjs/util/log.js +3 -2
  177. package/dist/cjs/util/provide-controlled-connection.d.ts +7 -0
  178. package/dist/cjs/util/provide-controlled-connection.js +24 -0
  179. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  180. package/dist/esm/dialect/mssql/mssql-driver.d.ts +6 -3
  181. package/dist/esm/dialect/mssql/mssql-driver.js +33 -19
  182. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  183. package/dist/esm/dialect/mssql/mssql-query-compiler.js +11 -0
  184. package/dist/esm/dialect/mysql/mysql-driver.d.ts +4 -0
  185. package/dist/esm/dialect/mysql/mysql-driver.js +27 -12
  186. package/dist/esm/dialect/postgres/postgres-driver.d.ts +4 -0
  187. package/dist/esm/dialect/postgres/postgres-driver.js +28 -18
  188. package/dist/esm/dialect/postgres/postgres-introspector.js +7 -17
  189. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +4 -0
  190. package/dist/esm/dialect/sqlite/sqlite-driver.js +19 -13
  191. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  192. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
  193. package/dist/esm/driver/database-connection.d.ts +0 -4
  194. package/dist/esm/driver/driver.d.ts +17 -0
  195. package/dist/esm/driver/driver.js +11 -0
  196. package/dist/esm/driver/dummy-driver.d.ts +3 -0
  197. package/dist/esm/driver/dummy-driver.js +9 -0
  198. package/dist/esm/driver/runtime-driver.d.ts +4 -0
  199. package/dist/esm/driver/runtime-driver.js +43 -3
  200. package/dist/esm/expression/expression-builder.d.ts +7 -10
  201. package/dist/esm/helpers/postgres.d.ts +48 -0
  202. package/dist/esm/helpers/postgres.js +49 -0
  203. package/dist/esm/index.d.ts +13 -2
  204. package/dist/esm/index.js +11 -1
  205. package/dist/esm/kysely.d.ts +339 -2
  206. package/dist/esm/kysely.js +461 -10
  207. package/dist/esm/migration/migrator.d.ts +8 -0
  208. package/dist/esm/migration/migrator.js +1 -1
  209. package/dist/esm/operation-node/aggregate-function-node.d.ts +2 -1
  210. package/dist/esm/operation-node/aggregate-function-node.js +4 -3
  211. package/dist/esm/operation-node/alter-table-node.d.ts +3 -1
  212. package/dist/esm/operation-node/collate-node.d.ts +13 -0
  213. package/dist/esm/operation-node/collate-node.js +17 -0
  214. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  215. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  216. package/dist/esm/operation-node/create-type-node.js +1 -1
  217. package/dist/esm/operation-node/delete-query-node.d.ts +8 -2
  218. package/dist/esm/operation-node/delete-query-node.js +11 -15
  219. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -0
  220. package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
  221. package/dist/esm/operation-node/join-node.d.ts +1 -1
  222. package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
  223. package/dist/esm/operation-node/operation-node-transformer.d.ts +106 -97
  224. package/dist/esm/operation-node/operation-node-transformer.js +352 -312
  225. package/dist/esm/operation-node/operation-node-visitor.d.ts +9 -1
  226. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  227. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  228. package/dist/esm/operation-node/or-action-node.d.ts +12 -0
  229. package/dist/esm/operation-node/or-action-node.js +16 -0
  230. package/dist/esm/operation-node/order-by-item-node.d.ts +5 -0
  231. package/dist/esm/operation-node/order-by-item-node.js +6 -0
  232. package/dist/esm/operation-node/primary-key-constraint-node.d.ts +29 -0
  233. package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  234. package/dist/esm/operation-node/query-node.d.ts +7 -0
  235. package/dist/esm/operation-node/query-node.js +15 -0
  236. package/dist/esm/operation-node/refresh-materialized-view-node.d.ts +17 -0
  237. package/dist/esm/operation-node/refresh-materialized-view-node.js +23 -0
  238. package/dist/esm/operation-node/rename-constraint-node.d.ts +14 -0
  239. package/dist/esm/operation-node/rename-constraint-node.js +18 -0
  240. package/dist/esm/operation-node/select-query-node.d.ts +8 -2
  241. package/dist/esm/operation-node/select-query-node.js +11 -15
  242. package/dist/esm/operation-node/unique-constraint-node.d.ts +2 -0
  243. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  244. package/dist/esm/operation-node/update-query-node.js +5 -2
  245. package/dist/esm/parser/collate-parser.d.ts +1 -0
  246. package/dist/esm/parser/collate-parser.js +2 -0
  247. package/dist/esm/parser/delete-from-parser.d.ts +5 -0
  248. package/dist/esm/parser/delete-from-parser.js +2 -0
  249. package/dist/esm/parser/join-parser.d.ts +1 -1
  250. package/dist/esm/parser/join-parser.js +7 -1
  251. package/dist/esm/parser/merge-into-parser.d.ts +5 -0
  252. package/dist/esm/parser/merge-into-parser.js +2 -0
  253. package/dist/esm/parser/order-by-parser.d.ts +18 -5
  254. package/dist/esm/parser/order-by-parser.js +27 -17
  255. package/dist/esm/parser/savepoint-parser.d.ts +4 -0
  256. package/dist/esm/parser/savepoint-parser.js +9 -0
  257. package/dist/esm/parser/select-from-parser.d.ts +4 -0
  258. package/dist/esm/parser/select-from-parser.js +2 -0
  259. package/dist/esm/parser/table-parser.d.ts +2 -5
  260. package/dist/esm/parser/update-parser.d.ts +5 -0
  261. package/dist/esm/parser/update-parser.js +2 -0
  262. package/dist/esm/parser/update-set-parser.d.ts +7 -4
  263. package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -1
  264. package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  265. package/dist/esm/plugin/camel-case/camel-case-transformer.js +2 -2
  266. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  267. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  268. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  269. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  270. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +159 -0
  271. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  272. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +26 -0
  273. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  274. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.js +63 -0
  275. package/dist/esm/plugin/immediate-value/immediate-value-plugin.js +1 -1
  276. package/dist/esm/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  277. package/dist/esm/plugin/immediate-value/immediate-value-transformer.js +6 -4
  278. package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -1
  279. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +6 -5
  280. package/dist/esm/plugin/with-schema/with-schema-transformer.js +29 -24
  281. package/dist/esm/query-builder/aggregate-function-builder.d.ts +83 -5
  282. package/dist/esm/query-builder/aggregate-function-builder.js +15 -27
  283. package/dist/esm/query-builder/cte-builder.js +0 -2
  284. package/dist/esm/query-builder/delete-query-builder.d.ts +36 -47
  285. package/dist/esm/query-builder/delete-query-builder.js +12 -78
  286. package/dist/esm/query-builder/function-module.d.ts +31 -4
  287. package/dist/esm/query-builder/insert-query-builder.d.ts +161 -6
  288. package/dist/esm/query-builder/insert-query-builder.js +197 -10
  289. package/dist/esm/query-builder/join-builder.js +0 -2
  290. package/dist/esm/query-builder/merge-query-builder.d.ts +145 -3
  291. package/dist/esm/query-builder/merge-query-builder.js +29 -8
  292. package/dist/esm/query-builder/on-conflict-builder.js +0 -4
  293. package/dist/esm/query-builder/order-by-interface.d.ts +176 -0
  294. package/dist/esm/query-builder/order-by-interface.js +2 -0
  295. package/dist/esm/query-builder/order-by-item-builder.d.ts +43 -0
  296. package/dist/esm/query-builder/order-by-item-builder.js +72 -0
  297. package/dist/esm/query-builder/over-builder.d.ts +43 -6
  298. package/dist/esm/query-builder/over-builder.js +8 -25
  299. package/dist/esm/query-builder/returning-interface.d.ts +20 -3
  300. package/dist/esm/query-builder/select-query-builder.d.ts +279 -98
  301. package/dist/esm/query-builder/select-query-builder.js +26 -26
  302. package/dist/esm/query-builder/update-query-builder.d.ts +88 -9
  303. package/dist/esm/query-builder/update-query-builder.js +17 -15
  304. package/dist/esm/query-compiler/compiled-query.d.ts +2 -0
  305. package/dist/esm/query-compiler/compiled-query.js +2 -0
  306. package/dist/esm/query-compiler/default-query-compiler.d.ts +17 -2
  307. package/dist/esm/query-compiler/default-query-compiler.js +97 -2
  308. package/dist/esm/query-compiler/query-compiler.d.ts +4 -2
  309. package/dist/esm/query-creator.d.ts +23 -25
  310. package/dist/esm/query-creator.js +281 -9
  311. package/dist/esm/query-executor/default-query-executor.d.ts +2 -1
  312. package/dist/esm/query-executor/default-query-executor.js +2 -2
  313. package/dist/esm/query-executor/query-executor-base.js +7 -25
  314. package/dist/esm/raw-builder/raw-builder.js +0 -3
  315. package/dist/esm/raw-builder/sql.d.ts +3 -3
  316. package/dist/esm/raw-builder/sql.js +1 -1
  317. package/dist/esm/schema/alter-column-builder.js +0 -3
  318. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  319. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  320. package/dist/esm/schema/alter-table-add-index-builder.js +0 -2
  321. package/dist/esm/schema/alter-table-builder.d.ts +7 -3
  322. package/dist/esm/schema/alter-table-builder.js +22 -11
  323. package/dist/esm/schema/alter-table-drop-constraint-builder.js +0 -2
  324. package/dist/esm/schema/alter-table-executor.js +0 -2
  325. package/dist/esm/schema/check-constraint-builder.d.ts +13 -0
  326. package/dist/esm/schema/check-constraint-builder.js +17 -0
  327. package/dist/esm/schema/column-definition-builder.js +0 -2
  328. package/dist/esm/schema/create-index-builder.js +1 -3
  329. package/dist/esm/schema/create-schema-builder.js +0 -2
  330. package/dist/esm/schema/create-table-builder.d.ts +5 -4
  331. package/dist/esm/schema/create-table-builder.js +10 -8
  332. package/dist/esm/schema/create-type-builder.d.ts +1 -1
  333. package/dist/esm/schema/create-type-builder.js +0 -2
  334. package/dist/esm/schema/create-view-builder.js +0 -2
  335. package/dist/esm/schema/drop-index-builder.js +0 -2
  336. package/dist/esm/schema/drop-schema-builder.js +0 -2
  337. package/dist/esm/schema/drop-table-builder.js +0 -2
  338. package/dist/esm/schema/drop-type-builder.js +0 -2
  339. package/dist/esm/schema/drop-view-builder.js +0 -2
  340. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +9 -0
  341. package/dist/esm/schema/foreign-key-constraint-builder.js +16 -2
  342. package/dist/esm/schema/primary-key-constraint-builder.d.ts +17 -0
  343. package/dist/esm/schema/primary-key-constraint-builder.js +34 -0
  344. package/dist/esm/schema/refresh-materialized-view-builder.d.ts +47 -0
  345. package/dist/esm/schema/refresh-materialized-view-builder.js +72 -0
  346. package/dist/esm/schema/schema.d.ts +14 -0
  347. package/dist/esm/schema/schema.js +21 -0
  348. package/dist/esm/schema/unique-constraint-builder.d.ts +10 -1
  349. package/dist/esm/schema/unique-constraint-builder.js +26 -5
  350. package/dist/esm/util/infer-result.d.ts +1 -1
  351. package/dist/esm/util/log.d.ts +1 -0
  352. package/dist/esm/util/log.js +3 -2
  353. package/dist/esm/util/provide-controlled-connection.d.ts +7 -0
  354. package/dist/esm/util/provide-controlled-connection.js +22 -0
  355. package/outdated-typescript.d.ts +5 -0
  356. package/package.json +16 -2
  357. package/CONTRIBUTING.md +0 -168
  358. package/dist/cjs/operation-node/primary-constraint-node.d.ts +0 -15
  359. package/dist/cjs/util/prevent-await.d.ts +0 -1
  360. package/dist/cjs/util/prevent-await.js +0 -13
  361. package/dist/esm/operation-node/primary-constraint-node.d.ts +0 -15
  362. package/dist/esm/util/prevent-await.d.ts +0 -1
  363. package/dist/esm/util/prevent-await.js +0 -11
@@ -2,7 +2,6 @@
2
2
  import { AddConstraintNode } from '../operation-node/add-constraint-node.js';
3
3
  import { AlterTableNode } from '../operation-node/alter-table-node.js';
4
4
  import { freeze } from '../util/object-utils.js';
5
- import { preventAwait } from '../util/prevent-await.js';
6
5
  export class AlterTableAddForeignKeyConstraintBuilder {
7
6
  #props;
8
7
  constructor(props) {
@@ -20,6 +19,30 @@ export class AlterTableAddForeignKeyConstraintBuilder {
20
19
  constraintBuilder: this.#props.constraintBuilder.onUpdate(onUpdate),
21
20
  });
22
21
  }
22
+ deferrable() {
23
+ return new AlterTableAddForeignKeyConstraintBuilder({
24
+ ...this.#props,
25
+ constraintBuilder: this.#props.constraintBuilder.deferrable(),
26
+ });
27
+ }
28
+ notDeferrable() {
29
+ return new AlterTableAddForeignKeyConstraintBuilder({
30
+ ...this.#props,
31
+ constraintBuilder: this.#props.constraintBuilder.notDeferrable(),
32
+ });
33
+ }
34
+ initiallyDeferred() {
35
+ return new AlterTableAddForeignKeyConstraintBuilder({
36
+ ...this.#props,
37
+ constraintBuilder: this.#props.constraintBuilder.initiallyDeferred(),
38
+ });
39
+ }
40
+ initiallyImmediate() {
41
+ return new AlterTableAddForeignKeyConstraintBuilder({
42
+ ...this.#props,
43
+ constraintBuilder: this.#props.constraintBuilder.initiallyImmediate(),
44
+ });
45
+ }
23
46
  /**
24
47
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
25
48
  * what the provided function returns.
@@ -39,4 +62,3 @@ export class AlterTableAddForeignKeyConstraintBuilder {
39
62
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
40
63
  }
41
64
  }
42
- preventAwait(AlterTableAddForeignKeyConstraintBuilder, "don't await AlterTableAddForeignKeyConstraintBuilder instances directly. To execute the query you need to call `execute`");
@@ -4,7 +4,6 @@ import { AlterTableNode } from '../operation-node/alter-table-node.js';
4
4
  import { RawNode } from '../operation-node/raw-node.js';
5
5
  import { parseOrderedColumnName, } from '../parser/reference-parser.js';
6
6
  import { freeze } from '../util/object-utils.js';
7
- import { preventAwait } from '../util/prevent-await.js';
8
7
  export class AlterTableAddIndexBuilder {
9
8
  #props;
10
9
  constructor(props) {
@@ -161,4 +160,3 @@ export class AlterTableAddIndexBuilder {
161
160
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
162
161
  }
163
162
  }
164
- preventAwait(AlterTableAddIndexBuilder, "don't await AlterTableAddIndexBuilder instances directly. To execute the query you need to call `execute`");
@@ -6,6 +6,7 @@ import { ColumnDefinitionBuilderCallback } from './column-definition-builder.js'
6
6
  import { QueryId } from '../util/query-id.js';
7
7
  import { QueryExecutor } from '../query-executor/query-executor.js';
8
8
  import { DataTypeExpression } from '../parser/data-type-parser.js';
9
+ import { ForeignKeyConstraintBuilderCallback } from './foreign-key-constraint-builder.js';
9
10
  import { Expression } from '../expression/expression.js';
10
11
  import { AlterColumnBuilderCallback } from './alter-column-builder.js';
11
12
  import { AlterTableExecutor } from './alter-table-executor.js';
@@ -13,6 +14,8 @@ import { AlterTableAddForeignKeyConstraintBuilder } from './alter-table-add-fore
13
14
  import { AlterTableDropConstraintBuilder } from './alter-table-drop-constraint-builder.js';
14
15
  import { AlterTableAddIndexBuilder } from './alter-table-add-index-builder.js';
15
16
  import { UniqueConstraintNodeBuilderCallback } from './unique-constraint-builder.js';
17
+ import { PrimaryKeyConstraintBuilderCallback } from './primary-key-constraint-builder.js';
18
+ import { CheckConstraintBuilderCallback } from './check-constraint-builder.js';
16
19
  /**
17
20
  * This builder can be used to create a `alter table` query.
18
21
  */
@@ -41,7 +44,7 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface {
41
44
  /**
42
45
  * See {@link CreateTableBuilder.addCheckConstraint}
43
46
  */
44
- addCheckConstraint(constraintName: string, checkExpression: Expression<any>): AlterTableExecutor;
47
+ addCheckConstraint(constraintName: string, checkExpression: Expression<any>, build?: CheckConstraintBuilderCallback): AlterTableExecutor;
45
48
  /**
46
49
  * See {@link CreateTableBuilder.addForeignKeyConstraint}
47
50
  *
@@ -49,12 +52,13 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface {
49
52
  * the constraint builder and doesn't take a callback as the last argument. This
50
53
  * is because you can only add one column per `ALTER TABLE` query.
51
54
  */
52
- addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
55
+ addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[], build?: ForeignKeyConstraintBuilderCallback): AlterTableAddForeignKeyConstraintBuilder;
53
56
  /**
54
57
  * See {@link CreateTableBuilder.addPrimaryKeyConstraint}
55
58
  */
56
- addPrimaryKeyConstraint(constraintName: string, columns: string[]): AlterTableExecutor;
59
+ addPrimaryKeyConstraint(constraintName: string, columns: string[], build?: PrimaryKeyConstraintBuilderCallback): AlterTableExecutor;
57
60
  dropConstraint(constraintName: string): AlterTableDropConstraintBuilder;
61
+ renameConstraint(oldName: string, newName: string): AlterTableDropConstraintBuilder;
58
62
  /**
59
63
  * This can be used to add index to table.
60
64
  *
@@ -6,11 +6,10 @@ import { DropColumnNode } from '../operation-node/drop-column-node.js';
6
6
  import { IdentifierNode } from '../operation-node/identifier-node.js';
7
7
  import { RenameColumnNode } from '../operation-node/rename-column-node.js';
8
8
  import { freeze, noop } from '../util/object-utils.js';
9
- import { preventAwait } from '../util/prevent-await.js';
10
9
  import { ColumnDefinitionBuilder, } from './column-definition-builder.js';
11
10
  import { ModifyColumnNode } from '../operation-node/modify-column-node.js';
12
11
  import { parseDataTypeExpression, } from '../parser/data-type-parser.js';
13
- import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
12
+ import { ForeignKeyConstraintBuilder, } from './foreign-key-constraint-builder.js';
14
13
  import { AddConstraintNode } from '../operation-node/add-constraint-node.js';
15
14
  import { UniqueConstraintNode } from '../operation-node/unique-constraint-node.js';
16
15
  import { CheckConstraintNode } from '../operation-node/check-constraint-node.js';
@@ -22,11 +21,14 @@ import { AlterColumnBuilder, } from './alter-column-builder.js';
22
21
  import { AlterTableExecutor } from './alter-table-executor.js';
23
22
  import { AlterTableAddForeignKeyConstraintBuilder } from './alter-table-add-foreign-key-constraint-builder.js';
24
23
  import { AlterTableDropConstraintBuilder } from './alter-table-drop-constraint-builder.js';
25
- import { PrimaryConstraintNode } from '../operation-node/primary-constraint-node.js';
24
+ import { PrimaryKeyConstraintNode } from '../operation-node/primary-key-constraint-node.js';
26
25
  import { DropIndexNode } from '../operation-node/drop-index-node.js';
27
26
  import { AddIndexNode } from '../operation-node/add-index-node.js';
28
27
  import { AlterTableAddIndexBuilder } from './alter-table-add-index-builder.js';
29
28
  import { UniqueConstraintNodeBuilder, } from './unique-constraint-builder.js';
29
+ import { PrimaryKeyConstraintBuilder, } from './primary-key-constraint-builder.js';
30
+ import { CheckConstraintBuilder, } from './check-constraint-builder.js';
31
+ import { RenameConstraintNode } from '../operation-node/rename-constraint-node.js';
30
32
  /**
31
33
  * This builder can be used to create a `alter table` query.
32
34
  */
@@ -99,11 +101,12 @@ export class AlterTableBuilder {
99
101
  /**
100
102
  * See {@link CreateTableBuilder.addCheckConstraint}
101
103
  */
102
- addCheckConstraint(constraintName, checkExpression) {
104
+ addCheckConstraint(constraintName, checkExpression, build = noop) {
105
+ const constraintBuilder = build(new CheckConstraintBuilder(CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)));
103
106
  return new AlterTableExecutor({
104
107
  ...this.#props,
105
108
  node: AlterTableNode.cloneWithTableProps(this.#props.node, {
106
- addConstraint: AddConstraintNode.create(CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
109
+ addConstraint: AddConstraintNode.create(constraintBuilder.toOperationNode()),
107
110
  }),
108
111
  });
109
112
  }
@@ -114,20 +117,22 @@ export class AlterTableBuilder {
114
117
  * the constraint builder and doesn't take a callback as the last argument. This
115
118
  * is because you can only add one column per `ALTER TABLE` query.
116
119
  */
117
- addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns) {
120
+ addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns, build = noop) {
121
+ const constraintBuilder = build(new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.create(columns.map(ColumnNode.create), parseTable(targetTable), targetColumns.map(ColumnNode.create), constraintName)));
118
122
  return new AlterTableAddForeignKeyConstraintBuilder({
119
123
  ...this.#props,
120
- constraintBuilder: new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.create(columns.map(ColumnNode.create), parseTable(targetTable), targetColumns.map(ColumnNode.create), constraintName)),
124
+ constraintBuilder,
121
125
  });
122
126
  }
123
127
  /**
124
128
  * See {@link CreateTableBuilder.addPrimaryKeyConstraint}
125
129
  */
126
- addPrimaryKeyConstraint(constraintName, columns) {
130
+ addPrimaryKeyConstraint(constraintName, columns, build = noop) {
131
+ const constraintBuilder = build(new PrimaryKeyConstraintBuilder(PrimaryKeyConstraintNode.create(columns, constraintName)));
127
132
  return new AlterTableExecutor({
128
133
  ...this.#props,
129
134
  node: AlterTableNode.cloneWithTableProps(this.#props.node, {
130
- addConstraint: AddConstraintNode.create(PrimaryConstraintNode.create(columns, constraintName)),
135
+ addConstraint: AddConstraintNode.create(constraintBuilder.toOperationNode()),
131
136
  }),
132
137
  });
133
138
  }
@@ -139,6 +144,14 @@ export class AlterTableBuilder {
139
144
  }),
140
145
  });
141
146
  }
147
+ renameConstraint(oldName, newName) {
148
+ return new AlterTableDropConstraintBuilder({
149
+ ...this.#props,
150
+ node: AlterTableNode.cloneWithTableProps(this.#props.node, {
151
+ renameConstraint: RenameConstraintNode.create(oldName, newName),
152
+ }),
153
+ });
154
+ }
142
155
  /**
143
156
  * This can be used to add index to table.
144
157
  *
@@ -200,7 +213,6 @@ export class AlterTableBuilder {
200
213
  return func(this);
201
214
  }
202
215
  }
203
- preventAwait(AlterTableBuilder, "don't await AlterTableBuilder instances");
204
216
  export class AlterTableColumnAlteringBuilder {
205
217
  #props;
206
218
  constructor(props) {
@@ -249,4 +261,3 @@ export class AlterTableColumnAlteringBuilder {
249
261
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
250
262
  }
251
263
  }
252
- preventAwait(AlterTableColumnAlteringBuilder, "don't await AlterTableColumnAlteringBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  import { AlterTableNode } from '../operation-node/alter-table-node.js';
3
3
  import { DropConstraintNode } from '../operation-node/drop-constraint-node.js';
4
4
  import { freeze } from '../util/object-utils.js';
5
- import { preventAwait } from '../util/prevent-await.js';
6
5
  export class AlterTableDropConstraintBuilder {
7
6
  #props;
8
7
  constructor(props) {
@@ -55,4 +54,3 @@ export class AlterTableDropConstraintBuilder {
55
54
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
56
55
  }
57
56
  }
58
- preventAwait(AlterTableDropConstraintBuilder, "don't await AlterTableDropConstraintBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./alter-table-executor.d.ts" />
2
2
  import { freeze } from '../util/object-utils.js';
3
- import { preventAwait } from '../util/prevent-await.js';
4
3
  export class AlterTableExecutor {
5
4
  #props;
6
5
  constructor(props) {
@@ -16,4 +15,3 @@ export class AlterTableExecutor {
16
15
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
17
16
  }
18
17
  }
19
- preventAwait(AlterTableExecutor, "don't await AlterTableExecutor instances directly. To execute the query you need to call `execute`");
@@ -0,0 +1,13 @@
1
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
+ import { CheckConstraintNode } from '../operation-node/check-constraint-node.js';
3
+ export declare class CheckConstraintBuilder implements OperationNodeSource {
4
+ #private;
5
+ constructor(node: CheckConstraintNode);
6
+ /**
7
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
8
+ * what the provided function returns.
9
+ */
10
+ $call<T>(func: (qb: this) => T): T;
11
+ toOperationNode(): CheckConstraintNode;
12
+ }
13
+ export type CheckConstraintBuilderCallback = (builder: CheckConstraintBuilder) => CheckConstraintBuilder;
@@ -0,0 +1,17 @@
1
+ /// <reference types="./check-constraint-builder.d.ts" />
2
+ export class CheckConstraintBuilder {
3
+ #node;
4
+ constructor(node) {
5
+ this.#node = node;
6
+ }
7
+ /**
8
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
9
+ * what the provided function returns.
10
+ */
11
+ $call(func) {
12
+ return func(this);
13
+ }
14
+ toOperationNode() {
15
+ return this.#node;
16
+ }
17
+ }
@@ -3,7 +3,6 @@ import { CheckConstraintNode } from '../operation-node/check-constraint-node.js'
3
3
  import { ReferencesNode, } from '../operation-node/references-node.js';
4
4
  import { SelectAllNode } from '../operation-node/select-all-node.js';
5
5
  import { parseStringReference } from '../parser/reference-parser.js';
6
- import { preventAwait } from '../util/prevent-await.js';
7
6
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
8
7
  import { parseDefaultValueExpression, } from '../parser/default-value-parser.js';
9
8
  import { GeneratedNode } from '../operation-node/generated-node.js';
@@ -596,4 +595,3 @@ export class ColumnDefinitionBuilder {
596
595
  return this.#node;
597
596
  }
598
597
  }
599
- preventAwait(ColumnDefinitionBuilder, "don't await ColumnDefinitionBuilder instances directly.");
@@ -3,7 +3,6 @@ import { CreateIndexNode, } from '../operation-node/create-index-node.js';
3
3
  import { RawNode } from '../operation-node/raw-node.js';
4
4
  import { parseOrderedColumnName, } from '../parser/reference-parser.js';
5
5
  import { parseTable } from '../parser/table-parser.js';
6
- import { preventAwait } from '../util/prevent-await.js';
7
6
  import { freeze } from '../util/object-utils.js';
8
7
  import { parseValueBinaryOperationOrExpression, } from '../parser/binary-operation-parser.js';
9
8
  import { QueryNode } from '../operation-node/query-node.js';
@@ -178,7 +177,7 @@ export class CreateIndexBuilder {
178
177
  const transformer = new ImmediateValueTransformer();
179
178
  return new CreateIndexBuilder({
180
179
  ...this.#props,
181
- node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(parseValueBinaryOperationOrExpression(args))),
180
+ node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(parseValueBinaryOperationOrExpression(args), this.#props.queryId)),
182
181
  });
183
182
  }
184
183
  /**
@@ -198,4 +197,3 @@ export class CreateIndexBuilder {
198
197
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
199
198
  }
200
199
  }
201
- preventAwait(CreateIndexBuilder, "don't await CreateIndexBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./create-schema-builder.d.ts" />
2
2
  import { CreateSchemaNode } from '../operation-node/create-schema-node.js';
3
- import { preventAwait } from '../util/prevent-await.js';
4
3
  import { freeze } from '../util/object-utils.js';
5
4
  export class CreateSchemaBuilder {
6
5
  #props;
@@ -30,4 +29,3 @@ export class CreateSchemaBuilder {
30
29
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
31
30
  }
32
31
  }
33
- preventAwait(CreateSchemaBuilder, "don't await CreateSchemaBuilder instances directly. To execute the query you need to call `execute`");
@@ -5,10 +5,12 @@ import { Compilable } from '../util/compilable.js';
5
5
  import { QueryExecutor } from '../query-executor/query-executor.js';
6
6
  import { ColumnDefinitionBuilder } from './column-definition-builder.js';
7
7
  import { QueryId } from '../util/query-id.js';
8
- import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
8
+ import { ForeignKeyConstraintBuilderCallback } from './foreign-key-constraint-builder.js';
9
9
  import { DataTypeExpression } from '../parser/data-type-parser.js';
10
10
  import { Expression } from '../expression/expression.js';
11
11
  import { UniqueConstraintNodeBuilderCallback } from './unique-constraint-builder.js';
12
+ import { PrimaryKeyConstraintBuilderCallback } from './primary-key-constraint-builder.js';
13
+ import { CheckConstraintBuilderCallback } from './check-constraint-builder.js';
12
14
  /**
13
15
  * This builder can be used to create a `create table` query.
14
16
  */
@@ -106,7 +108,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
106
108
  * .execute()
107
109
  * ```
108
110
  */
109
- addPrimaryKeyConstraint(constraintName: string, columns: C[]): CreateTableBuilder<TB, C>;
111
+ addPrimaryKeyConstraint(constraintName: string, columns: C[], build?: PrimaryKeyConstraintBuilderCallback): CreateTableBuilder<TB, C>;
110
112
  /**
111
113
  * Adds a unique constraint for one or more columns.
112
114
  *
@@ -161,7 +163,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
161
163
  * .execute()
162
164
  * ```
163
165
  */
164
- addCheckConstraint(constraintName: string, checkExpression: Expression<any>): CreateTableBuilder<TB, C>;
166
+ addCheckConstraint(constraintName: string, checkExpression: Expression<any>, build?: CheckConstraintBuilderCallback): CreateTableBuilder<TB, C>;
165
167
  /**
166
168
  * Adds a foreign key constraint.
167
169
  *
@@ -327,4 +329,3 @@ export interface CreateTableBuilderProps {
327
329
  readonly node: CreateTableNode;
328
330
  }
329
331
  export type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
330
- export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
@@ -1,20 +1,21 @@
1
1
  /// <reference types="./create-table-builder.d.ts" />
2
2
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
3
3
  import { CreateTableNode, } from '../operation-node/create-table-node.js';
4
- import { preventAwait } from '../util/prevent-await.js';
5
4
  import { ColumnDefinitionBuilder } from './column-definition-builder.js';
6
5
  import { freeze, noop } from '../util/object-utils.js';
7
6
  import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constraint-node.js';
8
7
  import { ColumnNode } from '../operation-node/column-node.js';
9
- import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
8
+ import { ForeignKeyConstraintBuilder, } from './foreign-key-constraint-builder.js';
10
9
  import { parseDataTypeExpression, } from '../parser/data-type-parser.js';
11
- import { PrimaryConstraintNode } from '../operation-node/primary-constraint-node.js';
10
+ import { PrimaryKeyConstraintNode } from '../operation-node/primary-key-constraint-node.js';
12
11
  import { UniqueConstraintNode } from '../operation-node/unique-constraint-node.js';
13
12
  import { CheckConstraintNode } from '../operation-node/check-constraint-node.js';
14
13
  import { parseTable } from '../parser/table-parser.js';
15
14
  import { parseOnCommitAction } from '../parser/on-commit-action-parse.js';
16
15
  import { UniqueConstraintNodeBuilder, } from './unique-constraint-builder.js';
17
16
  import { parseExpression } from '../parser/expression-parser.js';
17
+ import { PrimaryKeyConstraintBuilder, } from './primary-key-constraint-builder.js';
18
+ import { CheckConstraintBuilder, } from './check-constraint-builder.js';
18
19
  /**
19
20
  * This builder can be used to create a `create table` query.
20
21
  */
@@ -141,10 +142,11 @@ export class CreateTableBuilder {
141
142
  * .execute()
142
143
  * ```
143
144
  */
144
- addPrimaryKeyConstraint(constraintName, columns) {
145
+ addPrimaryKeyConstraint(constraintName, columns, build = noop) {
146
+ const constraintBuilder = build(new PrimaryKeyConstraintBuilder(PrimaryKeyConstraintNode.create(columns, constraintName)));
145
147
  return new CreateTableBuilder({
146
148
  ...this.#props,
147
- node: CreateTableNode.cloneWithConstraint(this.#props.node, PrimaryConstraintNode.create(columns, constraintName)),
149
+ node: CreateTableNode.cloneWithConstraint(this.#props.node, constraintBuilder.toOperationNode()),
148
150
  });
149
151
  }
150
152
  /**
@@ -207,10 +209,11 @@ export class CreateTableBuilder {
207
209
  * .execute()
208
210
  * ```
209
211
  */
210
- addCheckConstraint(constraintName, checkExpression) {
212
+ addCheckConstraint(constraintName, checkExpression, build = noop) {
213
+ const constraintBuilder = build(new CheckConstraintBuilder(CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)));
211
214
  return new CreateTableBuilder({
212
215
  ...this.#props,
213
- node: CreateTableNode.cloneWithConstraint(this.#props.node, CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
216
+ node: CreateTableNode.cloneWithConstraint(this.#props.node, constraintBuilder.toOperationNode()),
214
217
  });
215
218
  }
216
219
  /**
@@ -403,4 +406,3 @@ export class CreateTableBuilder {
403
406
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
404
407
  }
405
408
  }
406
- preventAwait(CreateTableBuilder, "don't await CreateTableBuilder instances directly. To execute the query you need to call `execute`");
@@ -17,7 +17,7 @@ export declare class CreateTypeBuilder implements OperationNodeSource, Compilabl
17
17
  * db.schema.createType('species').asEnum(['cat', 'dog', 'frog'])
18
18
  * ```
19
19
  */
20
- asEnum(values: string[]): CreateTypeBuilder;
20
+ asEnum(values: readonly string[]): CreateTypeBuilder;
21
21
  /**
22
22
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
23
23
  * what the provided function returns.
@@ -1,5 +1,4 @@
1
1
  /// <reference types="./create-type-builder.d.ts" />
2
- import { preventAwait } from '../util/prevent-await.js';
3
2
  import { freeze } from '../util/object-utils.js';
4
3
  import { CreateTypeNode } from '../operation-node/create-type-node.js';
5
4
  export class CreateTypeBuilder {
@@ -39,4 +38,3 @@ export class CreateTypeBuilder {
39
38
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
40
39
  }
41
40
  }
42
- preventAwait(CreateTypeBuilder, "don't await CreateTypeBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,5 +1,4 @@
1
1
  /// <reference types="./create-view-builder.d.ts" />
2
- import { preventAwait } from '../util/prevent-await.js';
3
2
  import { freeze } from '../util/object-utils.js';
4
3
  import { CreateViewNode } from '../operation-node/create-view-node.js';
5
4
  import { parseColumnName } from '../parser/reference-parser.js';
@@ -94,4 +93,3 @@ export class CreateViewBuilder {
94
93
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
95
94
  }
96
95
  }
97
- preventAwait(CreateViewBuilder, "don't await CreateViewBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./drop-index-builder.d.ts" />
2
2
  import { DropIndexNode } from '../operation-node/drop-index-node.js';
3
- import { preventAwait } from '../util/prevent-await.js';
4
3
  import { parseTable } from '../parser/table-parser.js';
5
4
  import { freeze } from '../util/object-utils.js';
6
5
  export class DropIndexBuilder {
@@ -53,4 +52,3 @@ export class DropIndexBuilder {
53
52
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
54
53
  }
55
54
  }
56
- preventAwait(DropIndexBuilder, "don't await DropIndexBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./drop-schema-builder.d.ts" />
2
2
  import { DropSchemaNode } from '../operation-node/drop-schema-node.js';
3
- import { preventAwait } from '../util/prevent-await.js';
4
3
  import { freeze } from '../util/object-utils.js';
5
4
  export class DropSchemaBuilder {
6
5
  #props;
@@ -40,4 +39,3 @@ export class DropSchemaBuilder {
40
39
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
41
40
  }
42
41
  }
43
- preventAwait(DropSchemaBuilder, "don't await DropSchemaBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./drop-table-builder.d.ts" />
2
2
  import { DropTableNode } from '../operation-node/drop-table-node.js';
3
- import { preventAwait } from '../util/prevent-await.js';
4
3
  import { freeze } from '../util/object-utils.js';
5
4
  export class DropTableBuilder {
6
5
  #props;
@@ -40,4 +39,3 @@ export class DropTableBuilder {
40
39
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
41
40
  }
42
41
  }
43
- preventAwait(DropTableBuilder, "don't await DropTableBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./drop-type-builder.d.ts" />
2
2
  import { DropTypeNode } from '../operation-node/drop-type-node.js';
3
- import { preventAwait } from '../util/prevent-await.js';
4
3
  import { freeze } from '../util/object-utils.js';
5
4
  export class DropTypeBuilder {
6
5
  #props;
@@ -32,4 +31,3 @@ export class DropTypeBuilder {
32
31
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
33
32
  }
34
33
  }
35
- preventAwait(DropTypeBuilder, "don't await DropTypeBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,5 +1,4 @@
1
1
  /// <reference types="./drop-view-builder.d.ts" />
2
- import { preventAwait } from '../util/prevent-await.js';
3
2
  import { freeze } from '../util/object-utils.js';
4
3
  import { DropViewNode } from '../operation-node/drop-view-node.js';
5
4
  export class DropViewBuilder {
@@ -48,4 +47,3 @@ export class DropViewBuilder {
48
47
  await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
49
48
  }
50
49
  }
51
- preventAwait(DropViewBuilder, "don't await DropViewBuilder instances directly. To execute the query you need to call `execute`");
@@ -4,12 +4,20 @@ import { OnModifyForeignAction } from '../operation-node/references-node.js';
4
4
  export interface ForeignKeyConstraintBuilderInterface<R> {
5
5
  onDelete(onDelete: OnModifyForeignAction): R;
6
6
  onUpdate(onUpdate: OnModifyForeignAction): R;
7
+ deferrable(): R;
8
+ notDeferrable(): R;
9
+ initiallyDeferred(): R;
10
+ initiallyImmediate(): R;
7
11
  }
8
12
  export declare class ForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<ForeignKeyConstraintBuilder>, OperationNodeSource {
9
13
  #private;
10
14
  constructor(node: ForeignKeyConstraintNode);
11
15
  onDelete(onDelete: OnModifyForeignAction): ForeignKeyConstraintBuilder;
12
16
  onUpdate(onUpdate: OnModifyForeignAction): ForeignKeyConstraintBuilder;
17
+ deferrable(): ForeignKeyConstraintBuilder;
18
+ notDeferrable(): ForeignKeyConstraintBuilder;
19
+ initiallyDeferred(): ForeignKeyConstraintBuilder;
20
+ initiallyImmediate(): ForeignKeyConstraintBuilder;
13
21
  /**
14
22
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
15
23
  * what the provided function returns.
@@ -17,3 +25,4 @@ export declare class ForeignKeyConstraintBuilder implements ForeignKeyConstraint
17
25
  $call<T>(func: (qb: this) => T): T;
18
26
  toOperationNode(): ForeignKeyConstraintNode;
19
27
  }
28
+ export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="./foreign-key-constraint-builder.d.ts" />
2
2
  import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constraint-node.js';
3
3
  import { parseOnModifyForeignAction } from '../parser/on-modify-action-parser.js';
4
- import { preventAwait } from '../util/prevent-await.js';
5
4
  export class ForeignKeyConstraintBuilder {
6
5
  #node;
7
6
  constructor(node) {
@@ -17,6 +16,22 @@ export class ForeignKeyConstraintBuilder {
17
16
  onUpdate: parseOnModifyForeignAction(onUpdate),
18
17
  }));
19
18
  }
19
+ deferrable() {
20
+ return new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.cloneWith(this.#node, { deferrable: true }));
21
+ }
22
+ notDeferrable() {
23
+ return new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.cloneWith(this.#node, { deferrable: false }));
24
+ }
25
+ initiallyDeferred() {
26
+ return new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.cloneWith(this.#node, {
27
+ initiallyDeferred: true,
28
+ }));
29
+ }
30
+ initiallyImmediate() {
31
+ return new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.cloneWith(this.#node, {
32
+ initiallyDeferred: false,
33
+ }));
34
+ }
20
35
  /**
21
36
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
22
37
  * what the provided function returns.
@@ -28,4 +43,3 @@ export class ForeignKeyConstraintBuilder {
28
43
  return this.#node;
29
44
  }
30
45
  }
31
- preventAwait(ForeignKeyConstraintBuilder, "don't await ForeignKeyConstraintBuilder instances directly.");
@@ -0,0 +1,17 @@
1
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
+ import { PrimaryKeyConstraintNode } from '../operation-node/primary-key-constraint-node.js';
3
+ export declare class PrimaryKeyConstraintBuilder implements OperationNodeSource {
4
+ #private;
5
+ constructor(node: PrimaryKeyConstraintNode);
6
+ deferrable(): PrimaryKeyConstraintBuilder;
7
+ notDeferrable(): PrimaryKeyConstraintBuilder;
8
+ initiallyDeferred(): PrimaryKeyConstraintBuilder;
9
+ initiallyImmediate(): PrimaryKeyConstraintBuilder;
10
+ /**
11
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
12
+ * what the provided function returns.
13
+ */
14
+ $call<T>(func: (qb: this) => T): T;
15
+ toOperationNode(): PrimaryKeyConstraintNode;
16
+ }
17
+ export type PrimaryKeyConstraintBuilderCallback = (builder: PrimaryKeyConstraintBuilder) => PrimaryKeyConstraintBuilder;
@@ -0,0 +1,34 @@
1
+ /// <reference types="./primary-key-constraint-builder.d.ts" />
2
+ import { PrimaryKeyConstraintNode } from '../operation-node/primary-key-constraint-node.js';
3
+ export class PrimaryKeyConstraintBuilder {
4
+ #node;
5
+ constructor(node) {
6
+ this.#node = node;
7
+ }
8
+ deferrable() {
9
+ return new PrimaryKeyConstraintBuilder(PrimaryKeyConstraintNode.cloneWith(this.#node, { deferrable: true }));
10
+ }
11
+ notDeferrable() {
12
+ return new PrimaryKeyConstraintBuilder(PrimaryKeyConstraintNode.cloneWith(this.#node, { deferrable: false }));
13
+ }
14
+ initiallyDeferred() {
15
+ return new PrimaryKeyConstraintBuilder(PrimaryKeyConstraintNode.cloneWith(this.#node, {
16
+ initiallyDeferred: true,
17
+ }));
18
+ }
19
+ initiallyImmediate() {
20
+ return new PrimaryKeyConstraintBuilder(PrimaryKeyConstraintNode.cloneWith(this.#node, {
21
+ initiallyDeferred: false,
22
+ }));
23
+ }
24
+ /**
25
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
26
+ * what the provided function returns.
27
+ */
28
+ $call(func) {
29
+ return func(this);
30
+ }
31
+ toOperationNode() {
32
+ return this.#node;
33
+ }
34
+ }