relq 1.0.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 (305) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +862 -0
  3. package/dist/addons/buffer.js +1869 -0
  4. package/dist/addons/pg-cursor.js +1425 -0
  5. package/dist/addons/pg-format.js +2248 -0
  6. package/dist/addons/pg.js +4790 -0
  7. package/dist/bin/relq.js +2 -0
  8. package/dist/cjs/cache/index.cjs +9 -0
  9. package/dist/cjs/cache/query-cache.cjs +311 -0
  10. package/dist/cjs/cli/commands/add.cjs +82 -0
  11. package/dist/cjs/cli/commands/commit.cjs +145 -0
  12. package/dist/cjs/cli/commands/diff.cjs +84 -0
  13. package/dist/cjs/cli/commands/export.cjs +333 -0
  14. package/dist/cjs/cli/commands/fetch.cjs +59 -0
  15. package/dist/cjs/cli/commands/generate.cjs +242 -0
  16. package/dist/cjs/cli/commands/history.cjs +165 -0
  17. package/dist/cjs/cli/commands/import.cjs +524 -0
  18. package/dist/cjs/cli/commands/init.cjs +437 -0
  19. package/dist/cjs/cli/commands/introspect.cjs +142 -0
  20. package/dist/cjs/cli/commands/log.cjs +62 -0
  21. package/dist/cjs/cli/commands/migrate.cjs +167 -0
  22. package/dist/cjs/cli/commands/pull.cjs +410 -0
  23. package/dist/cjs/cli/commands/push.cjs +165 -0
  24. package/dist/cjs/cli/commands/rollback.cjs +169 -0
  25. package/dist/cjs/cli/commands/status.cjs +110 -0
  26. package/dist/cjs/cli/commands/sync.cjs +79 -0
  27. package/dist/cjs/cli/index.cjs +275 -0
  28. package/dist/cjs/cli/utils/change-tracker.cjs +446 -0
  29. package/dist/cjs/cli/utils/commit-manager.cjs +239 -0
  30. package/dist/cjs/cli/utils/config-loader.cjs +127 -0
  31. package/dist/cjs/cli/utils/env-loader.cjs +62 -0
  32. package/dist/cjs/cli/utils/fast-introspect.cjs +398 -0
  33. package/dist/cjs/cli/utils/git-utils.cjs +404 -0
  34. package/dist/cjs/cli/utils/migration-generator.cjs +269 -0
  35. package/dist/cjs/cli/utils/relqignore.cjs +114 -0
  36. package/dist/cjs/cli/utils/repo-manager.cjs +515 -0
  37. package/dist/cjs/cli/utils/schema-comparator.cjs +313 -0
  38. package/dist/cjs/cli/utils/schema-diff.cjs +284 -0
  39. package/dist/cjs/cli/utils/schema-hash.cjs +108 -0
  40. package/dist/cjs/cli/utils/schema-introspect.cjs +455 -0
  41. package/dist/cjs/cli/utils/snapshot-manager.cjs +223 -0
  42. package/dist/cjs/cli/utils/spinner.cjs +108 -0
  43. package/dist/cjs/cli/utils/sql-generator.cjs +520 -0
  44. package/dist/cjs/cli/utils/sql-parser.cjs +999 -0
  45. package/dist/cjs/cli/utils/type-generator.cjs +2061 -0
  46. package/dist/cjs/condition/array-condition-builder.cjs +503 -0
  47. package/dist/cjs/condition/array-numeric-condition-builder.cjs +186 -0
  48. package/dist/cjs/condition/array-specialized-condition-builder.cjs +206 -0
  49. package/dist/cjs/condition/array-string-condition-builder.cjs +146 -0
  50. package/dist/cjs/condition/base-condition-builder.cjs +2 -0
  51. package/dist/cjs/condition/condition-collector.cjs +284 -0
  52. package/dist/cjs/condition/fulltext-condition-builder.cjs +61 -0
  53. package/dist/cjs/condition/geometric-condition-builder.cjs +208 -0
  54. package/dist/cjs/condition/index.cjs +25 -0
  55. package/dist/cjs/condition/jsonb-condition-builder.cjs +160 -0
  56. package/dist/cjs/condition/network-condition-builder.cjs +230 -0
  57. package/dist/cjs/condition/range-condition-builder.cjs +82 -0
  58. package/dist/cjs/config/config.cjs +190 -0
  59. package/dist/cjs/config/index.cjs +9 -0
  60. package/dist/cjs/constants/pg-values.cjs +68 -0
  61. package/dist/cjs/copy/copy-builder.cjs +316 -0
  62. package/dist/cjs/copy/index.cjs +6 -0
  63. package/dist/cjs/core/query-builder.cjs +440 -0
  64. package/dist/cjs/core/relq-client.cjs +1831 -0
  65. package/dist/cjs/core/typed-kuery-client.cjs +2 -0
  66. package/dist/cjs/count/count-builder.cjs +88 -0
  67. package/dist/cjs/count/index.cjs +5 -0
  68. package/dist/cjs/cte/cte-builder.cjs +89 -0
  69. package/dist/cjs/cte/index.cjs +5 -0
  70. package/dist/cjs/ddl/function.cjs +48 -0
  71. package/dist/cjs/ddl/index.cjs +7 -0
  72. package/dist/cjs/ddl/sql.cjs +54 -0
  73. package/dist/cjs/delete/delete-builder.cjs +135 -0
  74. package/dist/cjs/delete/index.cjs +5 -0
  75. package/dist/cjs/errors/relq-errors.cjs +329 -0
  76. package/dist/cjs/examples/fulltext-search-test.cjs +122 -0
  77. package/dist/cjs/explain/explain-builder.cjs +99 -0
  78. package/dist/cjs/explain/index.cjs +5 -0
  79. package/dist/cjs/function/create-function-builder.cjs +196 -0
  80. package/dist/cjs/function/index.cjs +6 -0
  81. package/dist/cjs/functions/advanced-functions.cjs +241 -0
  82. package/dist/cjs/functions/case-builder.cjs +66 -0
  83. package/dist/cjs/functions/geometric-functions.cjs +104 -0
  84. package/dist/cjs/functions/index.cjs +184 -0
  85. package/dist/cjs/functions/network-functions.cjs +86 -0
  86. package/dist/cjs/functions/sql-functions.cjs +431 -0
  87. package/dist/cjs/index.cjs +164 -0
  88. package/dist/cjs/indexing/create-index-builder.cjs +187 -0
  89. package/dist/cjs/indexing/drop-index-builder.cjs +89 -0
  90. package/dist/cjs/indexing/index-types.cjs +2 -0
  91. package/dist/cjs/indexing/index.cjs +8 -0
  92. package/dist/cjs/insert/conflict-builder.cjs +173 -0
  93. package/dist/cjs/insert/index.cjs +5 -0
  94. package/dist/cjs/insert/insert-builder.cjs +254 -0
  95. package/dist/cjs/introspect/index.cjs +229 -0
  96. package/dist/cjs/maintenance/index.cjs +6 -0
  97. package/dist/cjs/maintenance/vacuum-builder.cjs +166 -0
  98. package/dist/cjs/pubsub/index.cjs +7 -0
  99. package/dist/cjs/pubsub/listen-notify-builder.cjs +57 -0
  100. package/dist/cjs/pubsub/listener-connection.cjs +180 -0
  101. package/dist/cjs/raw/index.cjs +5 -0
  102. package/dist/cjs/raw/raw-query-builder.cjs +27 -0
  103. package/dist/cjs/schema/index.cjs +15 -0
  104. package/dist/cjs/schema/schema-builder.cjs +1167 -0
  105. package/dist/cjs/schema-builder.cjs +21 -0
  106. package/dist/cjs/schema-definition/column-types.cjs +829 -0
  107. package/dist/cjs/schema-definition/index.cjs +62 -0
  108. package/dist/cjs/schema-definition/introspection.cjs +620 -0
  109. package/dist/cjs/schema-definition/partitions.cjs +129 -0
  110. package/dist/cjs/schema-definition/pg-enum.cjs +76 -0
  111. package/dist/cjs/schema-definition/pg-function.cjs +91 -0
  112. package/dist/cjs/schema-definition/pg-sequence.cjs +56 -0
  113. package/dist/cjs/schema-definition/pg-trigger.cjs +108 -0
  114. package/dist/cjs/schema-definition/relations.cjs +98 -0
  115. package/dist/cjs/schema-definition/sql-expressions.cjs +202 -0
  116. package/dist/cjs/schema-definition/table-definition.cjs +636 -0
  117. package/dist/cjs/select/aggregate-builder.cjs +179 -0
  118. package/dist/cjs/select/index.cjs +5 -0
  119. package/dist/cjs/select/select-builder.cjs +233 -0
  120. package/dist/cjs/sequence/index.cjs +7 -0
  121. package/dist/cjs/sequence/sequence-builder.cjs +264 -0
  122. package/dist/cjs/table/alter-table-builder.cjs +146 -0
  123. package/dist/cjs/table/constraint-builder.cjs +102 -0
  124. package/dist/cjs/table/create-table-builder.cjs +248 -0
  125. package/dist/cjs/table/index.cjs +17 -0
  126. package/dist/cjs/table/partition-builder.cjs +131 -0
  127. package/dist/cjs/table/truncate-builder.cjs +70 -0
  128. package/dist/cjs/transaction/index.cjs +6 -0
  129. package/dist/cjs/transaction/transaction-builder.cjs +78 -0
  130. package/dist/cjs/trigger/create-trigger-builder.cjs +174 -0
  131. package/dist/cjs/trigger/index.cjs +6 -0
  132. package/dist/cjs/types/aggregate-types.cjs +2 -0
  133. package/dist/cjs/types/config-types.cjs +40 -0
  134. package/dist/cjs/types/inference-types.cjs +18 -0
  135. package/dist/cjs/types/pagination-types.cjs +7 -0
  136. package/dist/cjs/types/result-types.cjs +2 -0
  137. package/dist/cjs/types/schema-types.cjs +2 -0
  138. package/dist/cjs/types/subscription-types.cjs +2 -0
  139. package/dist/cjs/types.cjs +2 -0
  140. package/dist/cjs/update/array-update-builder.cjs +205 -0
  141. package/dist/cjs/update/index.cjs +13 -0
  142. package/dist/cjs/update/update-builder.cjs +195 -0
  143. package/dist/cjs/utils/case-converter.cjs +58 -0
  144. package/dist/cjs/utils/environment-detection.cjs +120 -0
  145. package/dist/cjs/utils/index.cjs +10 -0
  146. package/dist/cjs/utils/pool-defaults.cjs +106 -0
  147. package/dist/cjs/utils/type-coercion.cjs +118 -0
  148. package/dist/cjs/view/create-view-builder.cjs +180 -0
  149. package/dist/cjs/view/index.cjs +7 -0
  150. package/dist/cjs/window/index.cjs +5 -0
  151. package/dist/cjs/window/window-builder.cjs +80 -0
  152. package/dist/config.cjs +1 -0
  153. package/dist/config.d.ts +655 -0
  154. package/dist/config.js +1 -0
  155. package/dist/esm/cache/index.js +1 -0
  156. package/dist/esm/cache/query-cache.js +303 -0
  157. package/dist/esm/cli/commands/add.js +78 -0
  158. package/dist/esm/cli/commands/commit.js +109 -0
  159. package/dist/esm/cli/commands/diff.js +81 -0
  160. package/dist/esm/cli/commands/export.js +297 -0
  161. package/dist/esm/cli/commands/fetch.js +56 -0
  162. package/dist/esm/cli/commands/generate.js +206 -0
  163. package/dist/esm/cli/commands/history.js +129 -0
  164. package/dist/esm/cli/commands/import.js +488 -0
  165. package/dist/esm/cli/commands/init.js +401 -0
  166. package/dist/esm/cli/commands/introspect.js +106 -0
  167. package/dist/esm/cli/commands/log.js +59 -0
  168. package/dist/esm/cli/commands/migrate.js +131 -0
  169. package/dist/esm/cli/commands/pull.js +374 -0
  170. package/dist/esm/cli/commands/push.js +129 -0
  171. package/dist/esm/cli/commands/rollback.js +133 -0
  172. package/dist/esm/cli/commands/status.js +107 -0
  173. package/dist/esm/cli/commands/sync.js +76 -0
  174. package/dist/esm/cli/index.js +240 -0
  175. package/dist/esm/cli/utils/change-tracker.js +405 -0
  176. package/dist/esm/cli/utils/commit-manager.js +191 -0
  177. package/dist/esm/cli/utils/config-loader.js +86 -0
  178. package/dist/esm/cli/utils/env-loader.js +57 -0
  179. package/dist/esm/cli/utils/fast-introspect.js +362 -0
  180. package/dist/esm/cli/utils/git-utils.js +347 -0
  181. package/dist/esm/cli/utils/migration-generator.js +263 -0
  182. package/dist/esm/cli/utils/relqignore.js +74 -0
  183. package/dist/esm/cli/utils/repo-manager.js +444 -0
  184. package/dist/esm/cli/utils/schema-comparator.js +307 -0
  185. package/dist/esm/cli/utils/schema-diff.js +276 -0
  186. package/dist/esm/cli/utils/schema-hash.js +69 -0
  187. package/dist/esm/cli/utils/schema-introspect.js +418 -0
  188. package/dist/esm/cli/utils/snapshot-manager.js +179 -0
  189. package/dist/esm/cli/utils/spinner.js +101 -0
  190. package/dist/esm/cli/utils/sql-generator.js +504 -0
  191. package/dist/esm/cli/utils/sql-parser.js +992 -0
  192. package/dist/esm/cli/utils/type-generator.js +2058 -0
  193. package/dist/esm/condition/array-condition-builder.js +495 -0
  194. package/dist/esm/condition/array-numeric-condition-builder.js +182 -0
  195. package/dist/esm/condition/array-specialized-condition-builder.js +200 -0
  196. package/dist/esm/condition/array-string-condition-builder.js +142 -0
  197. package/dist/esm/condition/base-condition-builder.js +1 -0
  198. package/dist/esm/condition/condition-collector.js +275 -0
  199. package/dist/esm/condition/fulltext-condition-builder.js +53 -0
  200. package/dist/esm/condition/geometric-condition-builder.js +200 -0
  201. package/dist/esm/condition/index.js +7 -0
  202. package/dist/esm/condition/jsonb-condition-builder.js +152 -0
  203. package/dist/esm/condition/network-condition-builder.js +222 -0
  204. package/dist/esm/condition/range-condition-builder.js +74 -0
  205. package/dist/esm/config/config.js +150 -0
  206. package/dist/esm/config/index.js +1 -0
  207. package/dist/esm/constants/pg-values.js +63 -0
  208. package/dist/esm/copy/copy-builder.js +308 -0
  209. package/dist/esm/copy/index.js +1 -0
  210. package/dist/esm/core/query-builder.js +426 -0
  211. package/dist/esm/core/relq-client.js +1791 -0
  212. package/dist/esm/core/typed-kuery-client.js +1 -0
  213. package/dist/esm/count/count-builder.js +81 -0
  214. package/dist/esm/count/index.js +1 -0
  215. package/dist/esm/cte/cte-builder.js +82 -0
  216. package/dist/esm/cte/index.js +1 -0
  217. package/dist/esm/ddl/function.js +45 -0
  218. package/dist/esm/ddl/index.js +2 -0
  219. package/dist/esm/ddl/sql.js +51 -0
  220. package/dist/esm/delete/delete-builder.js +128 -0
  221. package/dist/esm/delete/index.js +1 -0
  222. package/dist/esm/errors/relq-errors.js +310 -0
  223. package/dist/esm/examples/fulltext-search-test.js +117 -0
  224. package/dist/esm/explain/explain-builder.js +95 -0
  225. package/dist/esm/explain/index.js +1 -0
  226. package/dist/esm/function/create-function-builder.js +188 -0
  227. package/dist/esm/function/index.js +1 -0
  228. package/dist/esm/functions/advanced-functions.js +231 -0
  229. package/dist/esm/functions/case-builder.js +58 -0
  230. package/dist/esm/functions/geometric-functions.js +97 -0
  231. package/dist/esm/functions/index.js +171 -0
  232. package/dist/esm/functions/network-functions.js +79 -0
  233. package/dist/esm/functions/sql-functions.js +421 -0
  234. package/dist/esm/index.js +34 -0
  235. package/dist/esm/indexing/create-index-builder.js +180 -0
  236. package/dist/esm/indexing/drop-index-builder.js +81 -0
  237. package/dist/esm/indexing/index-types.js +1 -0
  238. package/dist/esm/indexing/index.js +2 -0
  239. package/dist/esm/insert/conflict-builder.js +162 -0
  240. package/dist/esm/insert/index.js +1 -0
  241. package/dist/esm/insert/insert-builder.js +247 -0
  242. package/dist/esm/introspect/index.js +224 -0
  243. package/dist/esm/maintenance/index.js +1 -0
  244. package/dist/esm/maintenance/vacuum-builder.js +158 -0
  245. package/dist/esm/pubsub/index.js +1 -0
  246. package/dist/esm/pubsub/listen-notify-builder.js +48 -0
  247. package/dist/esm/pubsub/listener-connection.js +173 -0
  248. package/dist/esm/raw/index.js +1 -0
  249. package/dist/esm/raw/raw-query-builder.js +20 -0
  250. package/dist/esm/schema/index.js +1 -0
  251. package/dist/esm/schema/schema-builder.js +1150 -0
  252. package/dist/esm/schema-builder.js +2 -0
  253. package/dist/esm/schema-definition/column-types.js +738 -0
  254. package/dist/esm/schema-definition/index.js +10 -0
  255. package/dist/esm/schema-definition/introspection.js +614 -0
  256. package/dist/esm/schema-definition/partitions.js +123 -0
  257. package/dist/esm/schema-definition/pg-enum.js +70 -0
  258. package/dist/esm/schema-definition/pg-function.js +85 -0
  259. package/dist/esm/schema-definition/pg-sequence.js +50 -0
  260. package/dist/esm/schema-definition/pg-trigger.js +102 -0
  261. package/dist/esm/schema-definition/relations.js +90 -0
  262. package/dist/esm/schema-definition/sql-expressions.js +193 -0
  263. package/dist/esm/schema-definition/table-definition.js +630 -0
  264. package/dist/esm/select/aggregate-builder.js +172 -0
  265. package/dist/esm/select/index.js +1 -0
  266. package/dist/esm/select/select-builder.js +226 -0
  267. package/dist/esm/sequence/index.js +1 -0
  268. package/dist/esm/sequence/sequence-builder.js +255 -0
  269. package/dist/esm/table/alter-table-builder.js +138 -0
  270. package/dist/esm/table/constraint-builder.js +95 -0
  271. package/dist/esm/table/create-table-builder.js +241 -0
  272. package/dist/esm/table/index.js +5 -0
  273. package/dist/esm/table/partition-builder.js +121 -0
  274. package/dist/esm/table/truncate-builder.js +63 -0
  275. package/dist/esm/transaction/index.js +1 -0
  276. package/dist/esm/transaction/transaction-builder.js +70 -0
  277. package/dist/esm/trigger/create-trigger-builder.js +166 -0
  278. package/dist/esm/trigger/index.js +1 -0
  279. package/dist/esm/types/aggregate-types.js +1 -0
  280. package/dist/esm/types/config-types.js +36 -0
  281. package/dist/esm/types/inference-types.js +12 -0
  282. package/dist/esm/types/pagination-types.js +4 -0
  283. package/dist/esm/types/result-types.js +1 -0
  284. package/dist/esm/types/schema-types.js +1 -0
  285. package/dist/esm/types/subscription-types.js +1 -0
  286. package/dist/esm/types.js +1 -0
  287. package/dist/esm/update/array-update-builder.js +192 -0
  288. package/dist/esm/update/index.js +2 -0
  289. package/dist/esm/update/update-builder.js +188 -0
  290. package/dist/esm/utils/case-converter.js +55 -0
  291. package/dist/esm/utils/environment-detection.js +113 -0
  292. package/dist/esm/utils/index.js +2 -0
  293. package/dist/esm/utils/pool-defaults.js +100 -0
  294. package/dist/esm/utils/type-coercion.js +110 -0
  295. package/dist/esm/view/create-view-builder.js +171 -0
  296. package/dist/esm/view/index.js +1 -0
  297. package/dist/esm/window/index.js +1 -0
  298. package/dist/esm/window/window-builder.js +73 -0
  299. package/dist/index.cjs +1 -0
  300. package/dist/index.d.ts +10341 -0
  301. package/dist/index.js +1 -0
  302. package/dist/schema-builder.cjs +1 -0
  303. package/dist/schema-builder.d.ts +2272 -0
  304. package/dist/schema-builder.js +1 -0
  305. package/package.json +55 -0
@@ -0,0 +1,426 @@
1
+ import { SelectBuilder } from "../select/select-builder.js";
2
+ import { InsertBuilder } from "../insert/insert-builder.js";
3
+ import { UpdateBuilder } from "../update/update-builder.js";
4
+ import { DeleteBuilder } from "../delete/delete-builder.js";
5
+ import { CountBuilder } from "../count/count-builder.js";
6
+ import { RawQueryBuilder } from "../raw/raw-query-builder.js";
7
+ import { CreateIndexBuilder } from "../indexing/create-index-builder.js";
8
+ import { DropIndexBuilder, ReindexBuilder } from "../indexing/drop-index-builder.js";
9
+ import { CreateTableBuilder } from "../table/create-table-builder.js";
10
+ import { AlterTableBuilder, DropTableBuilder } from "../table/alter-table-builder.js";
11
+ import { CreatePartitionBuilder, AttachPartitionBuilder, DetachPartitionBuilder } from "../table/partition-builder.js";
12
+ import { CreateTriggerBuilder, DropTriggerBuilder } from "../trigger/create-trigger-builder.js";
13
+ import { CreateFunctionBuilder, DropFunctionBuilder } from "../function/create-function-builder.js";
14
+ import { CreateViewBuilder, DropViewBuilder, RefreshMaterializedViewBuilder } from "../view/create-view-builder.js";
15
+ import { CreateSchemaBuilder, DropSchemaBuilder, GrantBuilder, RevokeBuilder, CreateRoleBuilder, AlterRoleBuilder, DropRoleBuilder, SetRoleBuilder, ReassignOwnedBuilder, DropOwnedBuilder, DefaultPrivilegesBuilder } from "../schema/schema-builder.js";
16
+ import { TransactionBuilder, SavepointBuilder } from "../transaction/transaction-builder.js";
17
+ import { CTEBuilder } from "../cte/cte-builder.js";
18
+ import { WindowBuilder } from "../window/window-builder.js";
19
+ import { TruncateBuilder } from "../table/truncate-builder.js";
20
+ import { CreateSequenceBuilder, AlterSequenceBuilder, DropSequenceBuilder } from "../sequence/sequence-builder.js";
21
+ import { ExplainBuilder } from "../explain/explain-builder.js";
22
+ import { ListenBuilder, UnlistenBuilder, NotifyBuilder } from "../pubsub/listen-notify-builder.js";
23
+ import { VacuumBuilder, AnalyzeBuilder } from "../maintenance/vacuum-builder.js";
24
+ import { CopyToBuilder, CopyFromBuilder } from "../copy/copy-builder.js";
25
+ import format from "../../addons/pg-format.js";
26
+ export class TypedSelectBuilder {
27
+ builder;
28
+ constructor(builder) {
29
+ this.builder = builder;
30
+ }
31
+ where(callback) {
32
+ this.builder.where(callback);
33
+ return this;
34
+ }
35
+ orderBy(column, direction = 'ASC') {
36
+ this.builder.orderBy(column, direction);
37
+ return this;
38
+ }
39
+ orderAsc(column) {
40
+ this.builder.orderAsc(column);
41
+ return this;
42
+ }
43
+ orderDesc(column) {
44
+ this.builder.orderDesc(column);
45
+ return this;
46
+ }
47
+ limit(count) {
48
+ this.builder.limit(count);
49
+ return this;
50
+ }
51
+ offset(count) {
52
+ this.builder.offset(count);
53
+ return this;
54
+ }
55
+ groupBy(...columns) {
56
+ this.builder.groupBy(...columns);
57
+ return this;
58
+ }
59
+ having(callback) {
60
+ this.builder.having(callback);
61
+ return this;
62
+ }
63
+ distinct() {
64
+ this.builder.distinct();
65
+ return this;
66
+ }
67
+ distinctOn(...columns) {
68
+ this.builder.distinctOn(...columns);
69
+ return this;
70
+ }
71
+ join(table, condition) {
72
+ this.builder.join(table, condition);
73
+ return this;
74
+ }
75
+ leftJoin(table, condition) {
76
+ this.builder.leftJoin(table, condition);
77
+ return this;
78
+ }
79
+ rightJoin(table, condition) {
80
+ this.builder.rightJoin(table, condition);
81
+ return this;
82
+ }
83
+ innerJoin(table, condition) {
84
+ this.builder.innerJoin(table, condition);
85
+ return this;
86
+ }
87
+ forUpdate() {
88
+ this.builder.forUpdate();
89
+ return this;
90
+ }
91
+ forUpdateNoWait() {
92
+ this.builder.forUpdateNoWait();
93
+ return this;
94
+ }
95
+ forUpdateSkipLocked() {
96
+ this.builder.forUpdateSkipLocked();
97
+ return this;
98
+ }
99
+ forShare() {
100
+ this.builder.forShare();
101
+ return this;
102
+ }
103
+ union(query) {
104
+ this.builder.union(query instanceof TypedSelectBuilder ? query.builder : query);
105
+ return this;
106
+ }
107
+ unionAll(query) {
108
+ this.builder.unionAll(query instanceof TypedSelectBuilder ? query.builder : query);
109
+ return this;
110
+ }
111
+ intersect(query) {
112
+ this.builder.intersect(query instanceof TypedSelectBuilder ? query.builder : query);
113
+ return this;
114
+ }
115
+ except(query) {
116
+ this.builder.except(query instanceof TypedSelectBuilder ? query.builder : query);
117
+ return this;
118
+ }
119
+ toString() {
120
+ return this.builder.toString();
121
+ }
122
+ getBuilder() {
123
+ return this.builder;
124
+ }
125
+ }
126
+ export class TypedInsertBuilder {
127
+ builder;
128
+ constructor(builder) {
129
+ this.builder = builder;
130
+ }
131
+ addRow(row) {
132
+ this.builder.addRow(row);
133
+ return this;
134
+ }
135
+ addRows(rows) {
136
+ this.builder.addRows(rows);
137
+ return this;
138
+ }
139
+ clear() {
140
+ this.builder.clear();
141
+ return this;
142
+ }
143
+ get total() {
144
+ return this.builder.total;
145
+ }
146
+ onConflict(columns, callback) {
147
+ const cols = Array.isArray(columns) ? columns : [columns];
148
+ this.builder.onConflict(cols, (conflictBuilder) => {
149
+ callback(conflictBuilder);
150
+ });
151
+ return this;
152
+ }
153
+ returning(columns) {
154
+ this.builder.returning([...columns]);
155
+ return this;
156
+ }
157
+ toString() {
158
+ return this.builder.toString();
159
+ }
160
+ getBuilder() {
161
+ return this.builder;
162
+ }
163
+ }
164
+ export class TypedUpdateBuilder {
165
+ builder;
166
+ constructor(builder) {
167
+ this.builder = builder;
168
+ }
169
+ where(callback) {
170
+ this.builder.where(callback);
171
+ return this;
172
+ }
173
+ returning(columns) {
174
+ this.builder.returning([...columns]);
175
+ return this;
176
+ }
177
+ toString() {
178
+ return this.builder.toString();
179
+ }
180
+ getBuilder() {
181
+ return this.builder;
182
+ }
183
+ }
184
+ export class TypedDeleteBuilder {
185
+ builder;
186
+ constructor(builder) {
187
+ this.builder = builder;
188
+ }
189
+ where(callback) {
190
+ this.builder.where(callback);
191
+ return this;
192
+ }
193
+ returning(columns) {
194
+ this.builder.returning([...columns]);
195
+ return this;
196
+ }
197
+ toString() {
198
+ return this.builder.toString();
199
+ }
200
+ getBuilder() {
201
+ return this.builder;
202
+ }
203
+ }
204
+ export class TypedCountBuilder {
205
+ builder;
206
+ constructor(builder) {
207
+ this.builder = builder;
208
+ }
209
+ where(callback) {
210
+ this.builder.where(callback);
211
+ return this;
212
+ }
213
+ toString() {
214
+ return this.builder.toString();
215
+ }
216
+ getBuilder() {
217
+ return this.builder;
218
+ }
219
+ }
220
+ export class QueryBuilder {
221
+ tableName;
222
+ constructor(tableName) {
223
+ this.tableName = tableName;
224
+ }
225
+ select(columns) {
226
+ const builder = new SelectBuilder(this.tableName, columns);
227
+ return new TypedSelectBuilder(builder);
228
+ }
229
+ insert(data) {
230
+ const builder = new InsertBuilder(this.tableName, data);
231
+ return new TypedInsertBuilder(builder);
232
+ }
233
+ update(data) {
234
+ const builder = new UpdateBuilder(this.tableName, data);
235
+ return new TypedUpdateBuilder(builder);
236
+ }
237
+ delete() {
238
+ const builder = new DeleteBuilder(this.tableName);
239
+ return new TypedDeleteBuilder(builder);
240
+ }
241
+ count() {
242
+ const builder = new CountBuilder(this.tableName);
243
+ return new TypedCountBuilder(builder);
244
+ }
245
+ createTable() {
246
+ return new CreateTableBuilder(this.tableName);
247
+ }
248
+ alterTable() {
249
+ return new AlterTableBuilder(this.tableName);
250
+ }
251
+ dropTable() {
252
+ return new DropTableBuilder(this.tableName);
253
+ }
254
+ createIndex(indexName) {
255
+ return new CreateIndexBuilder(this.tableName, indexName);
256
+ }
257
+ dropIndex(indexName) {
258
+ return new DropIndexBuilder(indexName);
259
+ }
260
+ reindex() {
261
+ return new ReindexBuilder('TABLE', this.tableName);
262
+ }
263
+ raw(query, ...params) {
264
+ return new RawQueryBuilder(query, params);
265
+ }
266
+ sql(query, ...params) {
267
+ return new RawQueryBuilder(query, params);
268
+ }
269
+ truncate() {
270
+ return new TruncateBuilder(this.tableName);
271
+ }
272
+ vacuum() {
273
+ return new VacuumBuilder(this.tableName);
274
+ }
275
+ analyze() {
276
+ return new AnalyzeBuilder(this.tableName);
277
+ }
278
+ copyTo() {
279
+ return new CopyToBuilder(this.tableName);
280
+ }
281
+ copyFrom() {
282
+ return new CopyFromBuilder(this.tableName);
283
+ }
284
+ static raw(query, ...params) {
285
+ return new RawQueryBuilder(query, params);
286
+ }
287
+ static sql(query, ...params) {
288
+ return new RawQueryBuilder(query, params);
289
+ }
290
+ static bulkInsert(tableName, columns, values) {
291
+ const query = format('INSERT INTO %I (%I) VALUES %L', tableName, columns, values);
292
+ return new RawQueryBuilder(query);
293
+ }
294
+ static bulkUpdate(tableName, updates, keyColumn) {
295
+ const columns = Object.keys(updates[0]);
296
+ const values = updates.map(update => Object.values(update));
297
+ const valuesList = format('%L', values);
298
+ const columnAliases = columns.map((_, idx) => `column${idx + 1}`).join(', ');
299
+ const columnMappings = columns.map((col, idx) => format('%I = v.column%s', col, idx + 1)).join(', ');
300
+ const query = format('UPDATE %I SET %s FROM (VALUES %s) AS v(%s) WHERE %I.%I = v.column1', tableName, columnMappings, valuesList, columnAliases, tableName, keyColumn);
301
+ return new RawQueryBuilder(query);
302
+ }
303
+ static createTrigger(triggerName) {
304
+ return new CreateTriggerBuilder(triggerName);
305
+ }
306
+ static dropTrigger(triggerName, tableName) {
307
+ return new DropTriggerBuilder(triggerName, tableName);
308
+ }
309
+ static createFunction(functionName) {
310
+ return new CreateFunctionBuilder(functionName);
311
+ }
312
+ static dropFunction(functionName, parameterTypes) {
313
+ return new DropFunctionBuilder(functionName, parameterTypes);
314
+ }
315
+ static createPartition(partitionName, parentTable) {
316
+ return new CreatePartitionBuilder(partitionName, parentTable);
317
+ }
318
+ static attachPartition(parentTable, partitionName) {
319
+ return new AttachPartitionBuilder(parentTable, partitionName);
320
+ }
321
+ static detachPartition(parentTable, partitionName) {
322
+ return new DetachPartitionBuilder(parentTable, partitionName);
323
+ }
324
+ static createView(viewName) {
325
+ return new CreateViewBuilder(viewName);
326
+ }
327
+ static dropView(viewName, materialized) {
328
+ return new DropViewBuilder(viewName, materialized);
329
+ }
330
+ static refreshMaterializedView(viewName) {
331
+ return new RefreshMaterializedViewBuilder(viewName);
332
+ }
333
+ static createSchema(schemaName) {
334
+ return new CreateSchemaBuilder(schemaName);
335
+ }
336
+ static dropSchema(schemaName) {
337
+ return new DropSchemaBuilder(schemaName);
338
+ }
339
+ static grant() {
340
+ return new GrantBuilder();
341
+ }
342
+ static revoke() {
343
+ return new RevokeBuilder();
344
+ }
345
+ static transaction() {
346
+ return new TransactionBuilder();
347
+ }
348
+ static savepoint(name) {
349
+ return new SavepointBuilder(name);
350
+ }
351
+ static cte() {
352
+ return new CTEBuilder();
353
+ }
354
+ static window() {
355
+ return new WindowBuilder();
356
+ }
357
+ static reindex(target, name) {
358
+ return new ReindexBuilder(target, name);
359
+ }
360
+ static truncate(tables) {
361
+ return new TruncateBuilder(tables);
362
+ }
363
+ static createSequence(sequenceName) {
364
+ return new CreateSequenceBuilder(sequenceName);
365
+ }
366
+ static alterSequence(sequenceName) {
367
+ return new AlterSequenceBuilder(sequenceName);
368
+ }
369
+ static dropSequence(sequenceNames) {
370
+ return new DropSequenceBuilder(sequenceNames);
371
+ }
372
+ static explain(query, options) {
373
+ return new ExplainBuilder(query, options);
374
+ }
375
+ static listen(channel) {
376
+ return new ListenBuilder(channel);
377
+ }
378
+ static unlisten(channel) {
379
+ return new UnlistenBuilder(channel);
380
+ }
381
+ static notify(channel, payload) {
382
+ return new NotifyBuilder(channel, payload);
383
+ }
384
+ static vacuum(tables) {
385
+ return new VacuumBuilder(tables);
386
+ }
387
+ static analyze(tables) {
388
+ return new AnalyzeBuilder(tables);
389
+ }
390
+ static copyTo(tableOrQuery) {
391
+ return new CopyToBuilder(tableOrQuery);
392
+ }
393
+ static copyFrom(tableName) {
394
+ return new CopyFromBuilder(tableName);
395
+ }
396
+ static createRole(roleName) {
397
+ return new CreateRoleBuilder(roleName);
398
+ }
399
+ static alterRole(roleName) {
400
+ return new AlterRoleBuilder(roleName);
401
+ }
402
+ static dropRole(roleNames) {
403
+ return new DropRoleBuilder(roleNames);
404
+ }
405
+ static setRole() {
406
+ return new SetRoleBuilder();
407
+ }
408
+ static reassignOwned() {
409
+ return new ReassignOwnedBuilder();
410
+ }
411
+ static dropOwned() {
412
+ return new DropOwnedBuilder();
413
+ }
414
+ static defaultPrivileges() {
415
+ return new DefaultPrivilegesBuilder();
416
+ }
417
+ }
418
+ export default function relq(tableName) {
419
+ return new QueryBuilder(tableName);
420
+ }
421
+ export function relqFor() {
422
+ return (tableName) => {
423
+ return new QueryBuilder(tableName);
424
+ };
425
+ }
426
+ export { relq };