@relq/orm 0.1.3 → 0.1.5

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 (412) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +33 -224
  3. package/dist/cjs/addon/cursor.cjs +2 -1407
  4. package/dist/cjs/addon/mysql2.cjs +21143 -0
  5. package/dist/cjs/addon/pg.cjs +5 -5
  6. package/dist/cjs/cache/query-cache.cjs +1 -4
  7. package/dist/cjs/core/cte/cte-accessor.cjs +80 -0
  8. package/dist/cjs/core/cte/cte-types.cjs +24 -0
  9. package/dist/cjs/core/cte/native-cte-builder.cjs +254 -0
  10. package/dist/cjs/core/helpers/index.cjs +14 -14
  11. package/dist/cjs/core/relq-base.cjs +4 -88
  12. package/dist/cjs/core/relq-client.cjs +59 -41
  13. package/dist/cjs/core/shared/column-mapping.cjs +1 -1
  14. package/dist/cjs/core/shared/table-accessor.cjs +1 -1
  15. package/dist/cjs/core/shared/where.cjs +15 -0
  16. package/dist/cjs/index.cjs +40 -5
  17. package/dist/cjs/mysql/clients/index.cjs +17 -0
  18. package/dist/cjs/mysql/clients/mariadb-client/capabilities.cjs +31 -0
  19. package/dist/cjs/mysql/clients/mariadb-client/index.cjs +7 -0
  20. package/dist/cjs/mysql/clients/mariadb-client/relq-mariadb.cjs +14 -0
  21. package/dist/cjs/mysql/clients/mysql-client/capabilities.cjs +31 -0
  22. package/dist/cjs/mysql/clients/mysql-client/index.cjs +7 -0
  23. package/dist/cjs/mysql/clients/mysql-client/relq-mysql.cjs +14 -0
  24. package/dist/cjs/mysql/clients/planetscale-client/capabilities.cjs +31 -0
  25. package/dist/cjs/mysql/clients/planetscale-client/index.cjs +7 -0
  26. package/dist/cjs/mysql/clients/planetscale-client/relq-planetscale.cjs +32 -0
  27. package/dist/cjs/mysql/clients/shared/index.cjs +32 -0
  28. package/dist/cjs/mysql/clients/shared/mysql-base.cjs +362 -0
  29. package/dist/cjs/mysql/clients/shared/mysql-dialect.cjs +141 -0
  30. package/dist/cjs/mysql/clients/shared/mysql-error-parser.cjs +195 -0
  31. package/dist/cjs/mysql/clients/shared/mysql-format.cjs +95 -0
  32. package/dist/cjs/mysql/clients/shared/mysql-type-coercion.cjs +14 -0
  33. package/dist/cjs/mysql/condition/condition-collector.cjs +377 -0
  34. package/dist/cjs/mysql/condition/fulltext-condition-builder.cjs +63 -0
  35. package/dist/cjs/mysql/condition/index.cjs +16 -0
  36. package/dist/cjs/mysql/condition/json-condition-builder.cjs +144 -0
  37. package/dist/cjs/mysql/condition/json-path-proxy.cjs +520 -0
  38. package/dist/cjs/mysql/count/count-builder.cjs +109 -0
  39. package/dist/cjs/mysql/count/index.cjs +5 -0
  40. package/dist/cjs/mysql/delete/delete-builder.cjs +105 -0
  41. package/dist/cjs/mysql/delete/index.cjs +5 -0
  42. package/dist/cjs/mysql/explain/explain-builder.cjs +43 -0
  43. package/dist/cjs/mysql/explain/index.cjs +5 -0
  44. package/dist/cjs/mysql/helpers/MysqlConnectedAggregateBuilder.cjs +132 -0
  45. package/dist/cjs/mysql/helpers/MysqlConnectedCountBuilder.cjs +83 -0
  46. package/dist/cjs/mysql/helpers/MysqlConnectedDeleteBuilder.cjs +91 -0
  47. package/dist/cjs/mysql/helpers/MysqlConnectedInsertBuilder.cjs +75 -0
  48. package/dist/cjs/mysql/helpers/MysqlConnectedInsertFromSelectBuilder.cjs +57 -0
  49. package/dist/cjs/mysql/helpers/MysqlConnectedQueryBuilder.cjs +141 -0
  50. package/dist/cjs/mysql/helpers/MysqlConnectedRawQueryBuilder.cjs +60 -0
  51. package/dist/cjs/mysql/helpers/MysqlConnectedSelectBuilder.cjs +398 -0
  52. package/dist/cjs/mysql/helpers/MysqlConnectedTransactionBuilder.cjs +128 -0
  53. package/dist/cjs/mysql/helpers/MysqlConnectedUpdateBuilder.cjs +92 -0
  54. package/dist/cjs/mysql/helpers/MysqlPaginateBuilder.cjs +186 -0
  55. package/dist/cjs/mysql/helpers/MysqlReturningExecutor.cjs +69 -0
  56. package/dist/cjs/mysql/helpers/index.cjs +45 -0
  57. package/dist/cjs/mysql/helpers/query-convenience.cjs +210 -0
  58. package/dist/cjs/mysql/helpers/select-joins.cjs +465 -0
  59. package/dist/cjs/mysql/helpers/select-pagination.cjs +190 -0
  60. package/dist/cjs/mysql/index.cjs +154 -0
  61. package/dist/cjs/mysql/insert/duplicate-key-builder.cjs +185 -0
  62. package/dist/cjs/mysql/insert/index.cjs +13 -0
  63. package/dist/cjs/mysql/insert/insert-builder.cjs +169 -0
  64. package/dist/cjs/mysql/insert/insert-from-select-builder.cjs +74 -0
  65. package/dist/cjs/mysql/raw/index.cjs +8 -0
  66. package/dist/cjs/mysql/raw/raw-query-builder.cjs +27 -0
  67. package/dist/cjs/mysql/raw/sql-template.cjs +65 -0
  68. package/dist/cjs/mysql/select/aggregate-builder.cjs +211 -0
  69. package/dist/cjs/mysql/select/index.cjs +32 -0
  70. package/dist/cjs/mysql/select/join-builder.cjs +206 -0
  71. package/dist/cjs/mysql/select/join-condition-builder.cjs +205 -0
  72. package/dist/cjs/mysql/select/join-internals.cjs +5 -0
  73. package/dist/cjs/mysql/select/scalar-query-builder.cjs +164 -0
  74. package/dist/cjs/mysql/select/scalar-select-builder.cjs +78 -0
  75. package/dist/cjs/mysql/select/select-builder.cjs +414 -0
  76. package/dist/cjs/mysql/select/sql-expression.cjs +56 -0
  77. package/dist/cjs/mysql/select/table-proxy.cjs +99 -0
  78. package/dist/cjs/mysql/shared/mysql-table-accessor.cjs +22 -0
  79. package/dist/cjs/mysql/transaction/index.cjs +6 -0
  80. package/dist/cjs/mysql/transaction/transaction-builder.cjs +64 -0
  81. package/dist/cjs/mysql/update/column-expression-builder.cjs +49 -0
  82. package/dist/cjs/mysql/update/index.cjs +7 -0
  83. package/dist/cjs/mysql/update/mysql-json-update-builder.cjs +200 -0
  84. package/dist/cjs/mysql/update/update-builder.cjs +167 -0
  85. package/dist/cjs/mysql/utils/addon/mysql/mysql2.cjs +23 -0
  86. package/dist/cjs/mysql/utils/fk-resolver.cjs +187 -0
  87. package/dist/cjs/mysql/utils/index.cjs +16 -0
  88. package/dist/cjs/mysql/utils/type-coercion.cjs +158 -0
  89. package/dist/cjs/mysql/window/index.cjs +5 -0
  90. package/dist/cjs/mysql/window/window-builder.cjs +80 -0
  91. package/dist/cjs/pg/clients/alloydb-client/capabilities.cjs +31 -0
  92. package/dist/cjs/pg/clients/alloydb-client/index.cjs +7 -0
  93. package/dist/cjs/pg/clients/alloydb-client/relq-alloydb.cjs +43 -0
  94. package/dist/cjs/pg/clients/aurora-client/capabilities.cjs +31 -0
  95. package/dist/cjs/pg/clients/aurora-client/index.cjs +7 -0
  96. package/dist/cjs/pg/clients/aurora-client/relq-aurora.cjs +43 -0
  97. package/dist/cjs/pg/clients/citus-client/capabilities.cjs +31 -0
  98. package/dist/cjs/pg/clients/citus-client/index.cjs +7 -0
  99. package/dist/cjs/pg/clients/citus-client/relq-citus.cjs +43 -0
  100. package/dist/cjs/pg/clients/neon-client/capabilities.cjs +31 -0
  101. package/dist/cjs/pg/clients/neon-client/index.cjs +7 -0
  102. package/dist/cjs/pg/clients/neon-client/relq-neon.cjs +43 -0
  103. package/dist/cjs/pg/clients/pg-client/relq-postgres.cjs +56 -0
  104. package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-base.cjs +64 -7
  105. package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-type-coercion.cjs +1 -1
  106. package/dist/cjs/pg/clients/supabase-client/capabilities.cjs +31 -0
  107. package/dist/cjs/pg/clients/supabase-client/index.cjs +7 -0
  108. package/dist/cjs/{core/pg-family/pg-client/relq-postgres.cjs → pg/clients/supabase-client/relq-supabase.cjs} +9 -9
  109. package/dist/cjs/pg/clients/timescale-client/capabilities.cjs +31 -0
  110. package/dist/cjs/pg/clients/timescale-client/index.cjs +7 -0
  111. package/dist/cjs/pg/clients/timescale-client/relq-timescale.cjs +43 -0
  112. package/dist/cjs/pg/clients/yugabytedb-client/capabilities.cjs +31 -0
  113. package/dist/cjs/pg/clients/yugabytedb-client/index.cjs +7 -0
  114. package/dist/cjs/pg/clients/yugabytedb-client/relq-yugabytedb.cjs +16 -0
  115. package/dist/cjs/{condition → pg/condition}/array-condition-builder.cjs +1 -1
  116. package/dist/cjs/pg/condition/array-path-proxy.cjs +379 -0
  117. package/dist/cjs/{condition → pg/condition}/condition-collector.cjs +18 -9
  118. package/dist/cjs/{condition → pg/condition}/fulltext-condition-builder.cjs +1 -1
  119. package/dist/cjs/{condition → pg/condition}/geometric-condition-builder.cjs +1 -1
  120. package/dist/cjs/pg/condition/json-path-proxy.cjs +480 -0
  121. package/dist/cjs/{condition → pg/condition}/jsonb-condition-builder.cjs +1 -1
  122. package/dist/cjs/{condition → pg/condition}/network-condition-builder.cjs +1 -1
  123. package/dist/cjs/{condition → pg/condition}/postgis-condition-builder.cjs +1 -1
  124. package/dist/cjs/{condition → pg/condition}/range-condition-builder.cjs +1 -1
  125. package/dist/cjs/{count → pg/count}/count-builder.cjs +10 -5
  126. package/dist/cjs/{delete → pg/delete}/delete-builder.cjs +10 -5
  127. package/dist/cjs/{core → pg}/helpers/ConnectedAggregateBuilder.cjs +16 -3
  128. package/dist/cjs/{core → pg}/helpers/ConnectedCountBuilder.cjs +16 -3
  129. package/dist/cjs/{core → pg}/helpers/ConnectedDeleteBuilder.cjs +27 -7
  130. package/dist/cjs/{core → pg}/helpers/ConnectedInsertBuilder.cjs +16 -8
  131. package/dist/cjs/{core → pg}/helpers/ConnectedInsertFromSelectBuilder.cjs +9 -5
  132. package/dist/cjs/{core → pg}/helpers/ConnectedQueryBuilder.cjs +14 -19
  133. package/dist/cjs/pg/helpers/ConnectedRawQueryBuilder.cjs +67 -0
  134. package/dist/cjs/{core → pg}/helpers/ConnectedSelectBuilder.cjs +121 -25
  135. package/dist/cjs/{core → pg}/helpers/ConnectedTransactionBuilder.cjs +34 -4
  136. package/dist/cjs/{core → pg}/helpers/ConnectedUpdateBuilder.cjs +27 -7
  137. package/dist/cjs/{core → pg}/helpers/PaginateBuilder.cjs +3 -3
  138. package/dist/cjs/{core → pg}/helpers/ReturningExecutor.cjs +3 -3
  139. package/dist/cjs/{core → pg}/helpers/query-convenience.cjs +11 -12
  140. package/dist/cjs/{core → pg}/helpers/select-joins.cjs +17 -14
  141. package/dist/cjs/{core → pg}/helpers/select-pagination.cjs +1 -1
  142. package/dist/cjs/{insert → pg/insert}/conflict-builder.cjs +2 -2
  143. package/dist/cjs/{insert → pg/insert}/insert-builder.cjs +8 -5
  144. package/dist/cjs/{insert → pg/insert}/insert-from-select-builder.cjs +1 -1
  145. package/dist/cjs/{pubsub → pg/pubsub}/listen-notify-builder.cjs +1 -1
  146. package/dist/cjs/{pubsub → pg/pubsub}/listener-connection.cjs +2 -2
  147. package/dist/cjs/{raw → pg/raw}/raw-query-builder.cjs +2 -2
  148. package/dist/cjs/{raw → pg/raw}/sql-template.cjs +1 -6
  149. package/dist/cjs/{select → pg/select}/aggregate-builder.cjs +10 -5
  150. package/dist/cjs/{select → pg/select}/join-builder.cjs +2 -2
  151. package/dist/cjs/{select → pg/select}/join-condition-builder.cjs +11 -1
  152. package/dist/cjs/{select → pg/select}/join-many-condition-builder.cjs +3 -4
  153. package/dist/cjs/{select → pg/select}/scalar-query-builder.cjs +31 -1
  154. package/dist/cjs/{select → pg/select}/scalar-select-builder.cjs +1 -1
  155. package/dist/cjs/{select → pg/select}/select-builder.cjs +40 -7
  156. package/dist/cjs/pg/select/sql-expression.cjs +56 -0
  157. package/dist/cjs/{transaction → pg/transaction}/transaction-builder.cjs +1 -1
  158. package/dist/cjs/{update → pg/update}/array-update-builder.cjs +2 -5
  159. package/dist/cjs/pg/update/column-expression-builder.cjs +49 -0
  160. package/dist/cjs/{update → pg/update}/jsonb-update-builder.cjs +1 -1
  161. package/dist/cjs/{update → pg/update}/update-builder.cjs +14 -7
  162. package/dist/cjs/{utils → pg/utils}/addon/pg/cursor.cjs +1 -1
  163. package/dist/cjs/{utils → pg/utils}/addon/pg/pg.cjs +2 -2
  164. package/dist/cjs/{utils → pg/utils}/fk-resolver.cjs +47 -30
  165. package/dist/cjs/{window → pg/window}/window-builder.cjs +1 -1
  166. package/dist/cjs/shared/errors/relq-errors.cjs +496 -35
  167. package/dist/cjs/shared/types/config-types.cjs +2 -2
  168. package/dist/cjs/utils/env-resolver.cjs +76 -13
  169. package/dist/cjs/utils/index.cjs +1 -1
  170. package/dist/esm/addon/cursor.js +1 -1438
  171. package/dist/esm/addon/mysql2.js +21129 -0
  172. package/dist/esm/addon/pg.js +5 -5
  173. package/dist/esm/cache/query-cache.js +1 -4
  174. package/dist/esm/core/cte/cte-accessor.js +75 -0
  175. package/dist/esm/core/cte/cte-types.js +20 -0
  176. package/dist/esm/core/cte/native-cte-builder.js +250 -0
  177. package/dist/esm/core/helpers/index.js +12 -12
  178. package/dist/esm/core/relq-base.js +5 -56
  179. package/dist/esm/core/relq-client.js +54 -32
  180. package/dist/esm/core/shared/column-mapping.js +1 -1
  181. package/dist/esm/core/shared/table-accessor.js +1 -1
  182. package/dist/esm/core/shared/where.js +12 -0
  183. package/dist/esm/index.js +17 -5
  184. package/dist/esm/mysql/clients/index.js +5 -0
  185. package/dist/esm/mysql/clients/mariadb-client/capabilities.js +28 -0
  186. package/dist/esm/mysql/clients/mariadb-client/index.js +2 -0
  187. package/dist/esm/mysql/clients/mariadb-client/relq-mariadb.js +10 -0
  188. package/dist/esm/mysql/clients/mysql-client/capabilities.js +28 -0
  189. package/dist/esm/mysql/clients/mysql-client/index.js +2 -0
  190. package/dist/esm/mysql/clients/mysql-client/relq-mysql.js +10 -0
  191. package/dist/esm/mysql/clients/planetscale-client/capabilities.js +28 -0
  192. package/dist/esm/mysql/clients/planetscale-client/index.js +2 -0
  193. package/dist/esm/mysql/clients/planetscale-client/relq-planetscale.js +28 -0
  194. package/dist/esm/mysql/clients/shared/index.js +7 -0
  195. package/dist/esm/mysql/clients/shared/mysql-base.js +321 -0
  196. package/dist/esm/mysql/clients/shared/mysql-dialect.js +136 -0
  197. package/dist/esm/mysql/clients/shared/mysql-error-parser.js +188 -0
  198. package/dist/esm/mysql/clients/shared/mysql-format.js +92 -0
  199. package/dist/esm/mysql/clients/shared/mysql-type-coercion.js +6 -0
  200. package/dist/esm/mysql/condition/condition-collector.js +368 -0
  201. package/dist/esm/mysql/condition/fulltext-condition-builder.js +55 -0
  202. package/dist/esm/mysql/condition/index.js +4 -0
  203. package/dist/esm/mysql/condition/json-condition-builder.js +136 -0
  204. package/dist/esm/mysql/condition/json-path-proxy.js +513 -0
  205. package/dist/esm/mysql/count/count-builder.js +102 -0
  206. package/dist/esm/mysql/count/index.js +1 -0
  207. package/dist/esm/mysql/delete/delete-builder.js +98 -0
  208. package/dist/esm/mysql/delete/index.js +1 -0
  209. package/dist/esm/mysql/explain/explain-builder.js +39 -0
  210. package/dist/esm/mysql/explain/index.js +1 -0
  211. package/dist/esm/mysql/helpers/MysqlConnectedAggregateBuilder.js +128 -0
  212. package/dist/esm/{core/helpers/ConnectedCountBuilder.js → mysql/helpers/MysqlConnectedCountBuilder.js} +15 -5
  213. package/dist/esm/mysql/helpers/MysqlConnectedDeleteBuilder.js +87 -0
  214. package/dist/esm/mysql/helpers/MysqlConnectedInsertBuilder.js +71 -0
  215. package/dist/esm/mysql/helpers/MysqlConnectedInsertFromSelectBuilder.js +53 -0
  216. package/dist/esm/mysql/helpers/MysqlConnectedQueryBuilder.js +137 -0
  217. package/dist/esm/mysql/helpers/MysqlConnectedRawQueryBuilder.js +56 -0
  218. package/dist/esm/mysql/helpers/MysqlConnectedSelectBuilder.js +391 -0
  219. package/dist/esm/mysql/helpers/MysqlConnectedTransactionBuilder.js +123 -0
  220. package/dist/esm/mysql/helpers/MysqlConnectedUpdateBuilder.js +88 -0
  221. package/dist/esm/mysql/helpers/MysqlPaginateBuilder.js +182 -0
  222. package/dist/esm/mysql/helpers/MysqlReturningExecutor.js +65 -0
  223. package/dist/esm/mysql/helpers/index.js +15 -0
  224. package/dist/esm/mysql/helpers/query-convenience.js +199 -0
  225. package/dist/esm/mysql/helpers/select-joins.js +455 -0
  226. package/dist/esm/mysql/helpers/select-pagination.js +186 -0
  227. package/dist/esm/mysql/index.js +47 -0
  228. package/dist/esm/mysql/insert/duplicate-key-builder.js +174 -0
  229. package/dist/esm/mysql/insert/index.js +3 -0
  230. package/dist/esm/mysql/insert/insert-builder.js +162 -0
  231. package/dist/esm/mysql/insert/insert-from-select-builder.js +67 -0
  232. package/dist/esm/mysql/raw/index.js +2 -0
  233. package/dist/esm/mysql/raw/raw-query-builder.js +20 -0
  234. package/dist/esm/mysql/raw/sql-template.js +58 -0
  235. package/dist/esm/mysql/select/aggregate-builder.js +204 -0
  236. package/dist/esm/mysql/select/index.js +9 -0
  237. package/dist/esm/mysql/select/join-builder.js +198 -0
  238. package/dist/esm/mysql/select/join-condition-builder.js +197 -0
  239. package/dist/esm/mysql/select/join-internals.js +2 -0
  240. package/dist/esm/mysql/select/scalar-query-builder.js +156 -0
  241. package/dist/esm/mysql/select/scalar-select-builder.js +70 -0
  242. package/dist/esm/mysql/select/select-builder.js +407 -0
  243. package/dist/esm/mysql/select/sql-expression.js +51 -0
  244. package/dist/esm/mysql/select/table-proxy.js +91 -0
  245. package/dist/esm/mysql/shared/mysql-table-accessor.js +19 -0
  246. package/dist/esm/mysql/transaction/index.js +1 -0
  247. package/dist/esm/mysql/transaction/transaction-builder.js +56 -0
  248. package/dist/esm/mysql/update/column-expression-builder.js +42 -0
  249. package/dist/esm/mysql/update/index.js +2 -0
  250. package/dist/esm/mysql/update/mysql-json-update-builder.js +193 -0
  251. package/dist/esm/mysql/update/update-builder.js +160 -0
  252. package/dist/esm/mysql/utils/addon/mysql/mysql2.js +2 -0
  253. package/dist/esm/mysql/utils/fk-resolver.js +179 -0
  254. package/dist/esm/mysql/utils/index.js +2 -0
  255. package/dist/esm/mysql/utils/type-coercion.js +150 -0
  256. package/dist/esm/mysql/window/index.js +1 -0
  257. package/dist/esm/mysql/window/window-builder.js +73 -0
  258. package/dist/esm/pg/clients/alloydb-client/capabilities.js +28 -0
  259. package/dist/esm/pg/clients/alloydb-client/index.js +2 -0
  260. package/dist/esm/{core/pg-family/pg-client/relq-postgres.js → pg/clients/alloydb-client/relq-alloydb.js} +8 -8
  261. package/dist/esm/pg/clients/aurora-client/capabilities.js +28 -0
  262. package/dist/esm/pg/clients/aurora-client/index.js +2 -0
  263. package/dist/esm/pg/clients/aurora-client/relq-aurora.js +39 -0
  264. package/dist/esm/pg/clients/citus-client/capabilities.js +28 -0
  265. package/dist/esm/pg/clients/citus-client/index.js +2 -0
  266. package/dist/esm/pg/clients/citus-client/relq-citus.js +39 -0
  267. package/dist/esm/pg/clients/neon-client/capabilities.js +28 -0
  268. package/dist/esm/pg/clients/neon-client/index.js +2 -0
  269. package/dist/esm/pg/clients/neon-client/relq-neon.js +39 -0
  270. package/dist/esm/pg/clients/pg-client/relq-postgres.js +52 -0
  271. package/dist/esm/{core/pg-family → pg/clients}/shared/pg-base.js +64 -7
  272. package/dist/esm/{core/pg-family → pg/clients}/shared/pg-type-coercion.js +1 -1
  273. package/dist/esm/pg/clients/supabase-client/capabilities.js +28 -0
  274. package/dist/esm/pg/clients/supabase-client/index.js +2 -0
  275. package/dist/esm/pg/clients/supabase-client/relq-supabase.js +39 -0
  276. package/dist/esm/pg/clients/timescale-client/capabilities.js +28 -0
  277. package/dist/esm/pg/clients/timescale-client/index.js +2 -0
  278. package/dist/esm/pg/clients/timescale-client/relq-timescale.js +39 -0
  279. package/dist/esm/pg/clients/yugabytedb-client/capabilities.js +28 -0
  280. package/dist/esm/pg/clients/yugabytedb-client/index.js +2 -0
  281. package/dist/esm/pg/clients/yugabytedb-client/relq-yugabytedb.js +12 -0
  282. package/dist/esm/{condition → pg/condition}/array-condition-builder.js +1 -1
  283. package/dist/esm/pg/condition/array-path-proxy.js +372 -0
  284. package/dist/esm/{condition → pg/condition}/condition-collector.js +20 -11
  285. package/dist/esm/{condition → pg/condition}/fulltext-condition-builder.js +1 -1
  286. package/dist/esm/{condition → pg/condition}/geometric-condition-builder.js +1 -1
  287. package/dist/esm/pg/condition/json-path-proxy.js +473 -0
  288. package/dist/esm/{condition → pg/condition}/jsonb-condition-builder.js +1 -1
  289. package/dist/esm/{condition → pg/condition}/network-condition-builder.js +1 -1
  290. package/dist/esm/{condition → pg/condition}/postgis-condition-builder.js +1 -1
  291. package/dist/esm/{condition → pg/condition}/range-condition-builder.js +1 -1
  292. package/dist/esm/{count → pg/count}/count-builder.js +10 -5
  293. package/dist/esm/{delete → pg/delete}/delete-builder.js +10 -5
  294. package/dist/esm/{core → pg}/helpers/ConnectedAggregateBuilder.js +16 -3
  295. package/dist/esm/pg/helpers/ConnectedCountBuilder.js +82 -0
  296. package/dist/esm/{core → pg}/helpers/ConnectedDeleteBuilder.js +27 -7
  297. package/dist/esm/{core → pg}/helpers/ConnectedInsertBuilder.js +16 -8
  298. package/dist/esm/{core → pg}/helpers/ConnectedInsertFromSelectBuilder.js +9 -5
  299. package/dist/esm/{core → pg}/helpers/ConnectedQueryBuilder.js +15 -20
  300. package/dist/esm/pg/helpers/ConnectedRawQueryBuilder.js +63 -0
  301. package/dist/esm/{core → pg}/helpers/ConnectedSelectBuilder.js +118 -25
  302. package/dist/esm/{core → pg}/helpers/ConnectedTransactionBuilder.js +34 -4
  303. package/dist/esm/{core → pg}/helpers/ConnectedUpdateBuilder.js +27 -7
  304. package/dist/esm/{core → pg}/helpers/PaginateBuilder.js +3 -3
  305. package/dist/esm/{core → pg}/helpers/ReturningExecutor.js +3 -3
  306. package/dist/esm/{core → pg}/helpers/query-convenience.js +11 -12
  307. package/dist/esm/{core → pg}/helpers/select-joins.js +18 -15
  308. package/dist/esm/{core → pg}/helpers/select-pagination.js +1 -1
  309. package/dist/esm/{insert → pg/insert}/conflict-builder.js +2 -2
  310. package/dist/esm/{insert → pg/insert}/insert-builder.js +8 -5
  311. package/dist/esm/{insert → pg/insert}/insert-from-select-builder.js +1 -1
  312. package/dist/esm/{pubsub → pg/pubsub}/listen-notify-builder.js +1 -1
  313. package/dist/esm/{pubsub → pg/pubsub}/listener-connection.js +2 -2
  314. package/dist/esm/{raw → pg/raw}/raw-query-builder.js +2 -2
  315. package/dist/esm/{raw → pg/raw}/sql-template.js +1 -6
  316. package/dist/esm/{select → pg/select}/aggregate-builder.js +10 -5
  317. package/dist/esm/{select → pg/select}/join-builder.js +2 -2
  318. package/dist/esm/{select → pg/select}/join-condition-builder.js +11 -1
  319. package/dist/esm/{select → pg/select}/join-many-condition-builder.js +3 -4
  320. package/dist/esm/{select → pg/select}/scalar-query-builder.js +31 -1
  321. package/dist/esm/{select → pg/select}/scalar-select-builder.js +1 -1
  322. package/dist/esm/{select → pg/select}/select-builder.js +40 -7
  323. package/dist/esm/pg/select/sql-expression.js +51 -0
  324. package/dist/esm/{transaction → pg/transaction}/transaction-builder.js +1 -1
  325. package/dist/esm/{update → pg/update}/array-update-builder.js +2 -5
  326. package/dist/esm/pg/update/column-expression-builder.js +42 -0
  327. package/dist/esm/{update → pg/update}/jsonb-update-builder.js +1 -1
  328. package/dist/esm/{update → pg/update}/update-builder.js +14 -7
  329. package/dist/esm/pg/utils/addon/pg/cursor.js +1 -0
  330. package/dist/esm/pg/utils/addon/pg/pg.js +2 -0
  331. package/dist/esm/{utils → pg/utils}/fk-resolver.js +47 -30
  332. package/dist/esm/{window → pg/window}/window-builder.js +1 -1
  333. package/dist/esm/shared/errors/relq-errors.js +486 -34
  334. package/dist/esm/shared/types/config-types.js +2 -2
  335. package/dist/esm/utils/env-resolver.js +74 -13
  336. package/dist/esm/utils/index.js +1 -1
  337. package/dist/index.d.ts +9629 -3974
  338. package/package.json +6 -3
  339. package/dist/cjs/core/helpers/ConnectedCTEBuilder.cjs +0 -53
  340. package/dist/cjs/core/helpers/ConnectedRawQueryBuilder.cjs +0 -46
  341. package/dist/cjs/select/sql-expression.cjs +0 -38
  342. package/dist/esm/core/helpers/ConnectedCTEBuilder.js +0 -49
  343. package/dist/esm/core/helpers/ConnectedRawQueryBuilder.js +0 -42
  344. package/dist/esm/select/sql-expression.js +0 -33
  345. package/dist/esm/utils/addon/pg/cursor.js +0 -1
  346. package/dist/esm/utils/addon/pg/pg.js +0 -2
  347. /package/dist/cjs/{core/pg-family → pg/clients}/cockroachdb-client/capabilities.cjs +0 -0
  348. /package/dist/cjs/{core/pg-family → pg/clients}/cockroachdb-client/index.cjs +0 -0
  349. /package/dist/cjs/{core/pg-family → pg/clients}/cockroachdb-client/relq-cockroach.cjs +0 -0
  350. /package/dist/cjs/{core/pg-family → pg/clients}/dsql-client/capabilities.cjs +0 -0
  351. /package/dist/cjs/{core/pg-family → pg/clients}/dsql-client/index.cjs +0 -0
  352. /package/dist/cjs/{core/pg-family → pg/clients}/dsql-client/relq-dsql.cjs +0 -0
  353. /package/dist/cjs/{core/pg-family → pg/clients}/index.cjs +0 -0
  354. /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/capabilities.cjs +0 -0
  355. /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/index.cjs +0 -0
  356. /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/relq-nile.cjs +0 -0
  357. /package/dist/cjs/{core/pg-family → pg/clients}/nile-client/tenant-context.cjs +0 -0
  358. /package/dist/cjs/{core/pg-family → pg/clients}/pg-client/capabilities.cjs +0 -0
  359. /package/dist/cjs/{core/pg-family → pg/clients}/pg-client/index.cjs +0 -0
  360. /package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-dialect.cjs +0 -0
  361. /package/dist/cjs/{core/pg-family → pg/clients}/shared/pg-error-parser.cjs +0 -0
  362. /package/dist/cjs/{condition → pg/condition}/array-numeric-condition-builder.cjs +0 -0
  363. /package/dist/cjs/{condition → pg/condition}/array-specialized-condition-builder.cjs +0 -0
  364. /package/dist/cjs/{condition → pg/condition}/array-string-condition-builder.cjs +0 -0
  365. /package/dist/cjs/{condition → pg/condition}/index.cjs +0 -0
  366. /package/dist/cjs/{count → pg/count}/index.cjs +0 -0
  367. /package/dist/cjs/{delete → pg/delete}/index.cjs +0 -0
  368. /package/dist/cjs/{explain → pg/explain}/explain-builder.cjs +0 -0
  369. /package/dist/cjs/{explain → pg/explain}/index.cjs +0 -0
  370. /package/dist/cjs/{insert → pg/insert}/index.cjs +0 -0
  371. /package/dist/cjs/{pubsub → pg/pubsub}/index.cjs +0 -0
  372. /package/dist/cjs/{raw → pg/raw}/index.cjs +0 -0
  373. /package/dist/cjs/{select → pg/select}/index.cjs +0 -0
  374. /package/dist/cjs/{select → pg/select}/join-internals.cjs +0 -0
  375. /package/dist/cjs/{select → pg/select}/table-proxy.cjs +0 -0
  376. /package/dist/cjs/{transaction → pg/transaction}/index.cjs +0 -0
  377. /package/dist/cjs/{update → pg/update}/index.cjs +0 -0
  378. /package/dist/cjs/{utils → pg/utils}/type-coercion.cjs +0 -0
  379. /package/dist/cjs/{window → pg/window}/index.cjs +0 -0
  380. /package/dist/esm/{core/pg-family → pg/clients}/cockroachdb-client/capabilities.js +0 -0
  381. /package/dist/esm/{core/pg-family → pg/clients}/cockroachdb-client/index.js +0 -0
  382. /package/dist/esm/{core/pg-family → pg/clients}/cockroachdb-client/relq-cockroach.js +0 -0
  383. /package/dist/esm/{core/pg-family → pg/clients}/dsql-client/capabilities.js +0 -0
  384. /package/dist/esm/{core/pg-family → pg/clients}/dsql-client/index.js +0 -0
  385. /package/dist/esm/{core/pg-family → pg/clients}/dsql-client/relq-dsql.js +0 -0
  386. /package/dist/esm/{core/pg-family → pg/clients}/index.js +0 -0
  387. /package/dist/esm/{core/pg-family → pg/clients}/nile-client/capabilities.js +0 -0
  388. /package/dist/esm/{core/pg-family → pg/clients}/nile-client/index.js +0 -0
  389. /package/dist/esm/{core/pg-family → pg/clients}/nile-client/relq-nile.js +0 -0
  390. /package/dist/esm/{core/pg-family → pg/clients}/nile-client/tenant-context.js +0 -0
  391. /package/dist/esm/{core/pg-family → pg/clients}/pg-client/capabilities.js +0 -0
  392. /package/dist/esm/{core/pg-family → pg/clients}/pg-client/index.js +0 -0
  393. /package/dist/esm/{core/pg-family → pg/clients}/shared/pg-dialect.js +0 -0
  394. /package/dist/esm/{core/pg-family → pg/clients}/shared/pg-error-parser.js +0 -0
  395. /package/dist/esm/{condition → pg/condition}/array-numeric-condition-builder.js +0 -0
  396. /package/dist/esm/{condition → pg/condition}/array-specialized-condition-builder.js +0 -0
  397. /package/dist/esm/{condition → pg/condition}/array-string-condition-builder.js +0 -0
  398. /package/dist/esm/{condition → pg/condition}/index.js +0 -0
  399. /package/dist/esm/{count → pg/count}/index.js +0 -0
  400. /package/dist/esm/{delete → pg/delete}/index.js +0 -0
  401. /package/dist/esm/{explain → pg/explain}/explain-builder.js +0 -0
  402. /package/dist/esm/{explain → pg/explain}/index.js +0 -0
  403. /package/dist/esm/{insert → pg/insert}/index.js +0 -0
  404. /package/dist/esm/{pubsub → pg/pubsub}/index.js +0 -0
  405. /package/dist/esm/{raw → pg/raw}/index.js +0 -0
  406. /package/dist/esm/{select → pg/select}/index.js +0 -0
  407. /package/dist/esm/{select → pg/select}/join-internals.js +0 -0
  408. /package/dist/esm/{select → pg/select}/table-proxy.js +0 -0
  409. /package/dist/esm/{transaction → pg/transaction}/index.js +0 -0
  410. /package/dist/esm/{update → pg/update}/index.js +0 -0
  411. /package/dist/esm/{utils → pg/utils}/type-coercion.js +0 -0
  412. /package/dist/esm/{window → pg/window}/index.js +0 -0
@@ -42,11 +42,12 @@ exports.executeSoftDelete = executeSoftDelete;
42
42
  exports.executeRestore = executeRestore;
43
43
  exports.executeCreateWith = executeCreateWith;
44
44
  exports.getPrimaryKeyColumn = getPrimaryKeyColumn;
45
- const count_builder_1 = require("../../count/count-builder.cjs");
46
- const insert_builder_1 = require("../../insert/insert-builder.cjs");
47
- const select_builder_1 = require("../../select/select-builder.cjs");
48
- const update_builder_1 = require("../../update/update-builder.cjs");
49
- const methods_1 = require("./methods.cjs");
45
+ const count_builder_1 = require("../count/count-builder.cjs");
46
+ const insert_builder_1 = require("../insert/insert-builder.cjs");
47
+ const select_builder_1 = require("../select/select-builder.cjs");
48
+ const update_builder_1 = require("../update/update-builder.cjs");
49
+ const methods_1 = require("../../core/helpers/methods.cjs");
50
+ const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
50
51
  async function executeFindById(ctx, id, getPrimaryKeyColumn) {
51
52
  const pkColumn = getPrimaryKeyColumn();
52
53
  const dbColumn = ctx.relq[methods_1.INTERNAL].transformToDbColumns(ctx.tableName, { [pkColumn]: id });
@@ -150,8 +151,7 @@ async function executeCreateWith(ctx, parentData, related) {
150
151
  const schema = internal.getSchema();
151
152
  const relations = internal.getRelations();
152
153
  if (!schema || !relations) {
153
- throw new Error('Cannot use createWith() without schema and relations config. ' +
154
- 'Use separate insert calls with a transaction instead.');
154
+ throw new relq_errors_1.RelqBuilderError('Cannot use createWith() without schema and relations config', { builder: 'createWith', hint: 'Pass schema and relations to your Relq client, or use separate insert calls with a transaction instead' });
155
155
  }
156
156
  const parentSchemaKey = findSchemaKeyByTableName(schema, ctx.tableName) || ctx.tableName;
157
157
  try {
@@ -162,20 +162,19 @@ async function executeCreateWith(ctx, parentData, related) {
162
162
  const parentSQL = parentBuilder.toString();
163
163
  const parentResult = await internal.executeQuery(parentSQL);
164
164
  if (!parentResult.result.rows || parentResult.result.rows.length === 0) {
165
- throw new Error('Parent insert returned no rows');
165
+ throw new relq_errors_1.RelqBuilderError('Parent insert returned no rows', { builder: 'createWith', hint: 'Ensure the parent table supports RETURNING * and the insert data is valid' });
166
166
  }
167
167
  const parentRow = parentResult.result.rows[0];
168
168
  for (const [relationKey, childData] of Object.entries(related)) {
169
169
  const childTableDef = schema[relationKey];
170
170
  if (!childTableDef) {
171
- throw new Error(`Unknown table "${relationKey}" in createWith(). Check your schema.`);
171
+ throw new relq_errors_1.RelqBuilderError(`Unknown table "${relationKey}" in createWith()`, { builder: 'createWith', hint: 'Verify the relation key matches a table name defined in your schema' });
172
172
  }
173
173
  const childTableName = childTableDef.$name || relationKey;
174
- const { resolveForeignKey } = await Promise.resolve().then(() => __importStar(require("../../utils/fk-resolver.cjs")));
174
+ const { resolveForeignKey } = await Promise.resolve().then(() => __importStar(require("../utils/fk-resolver.cjs")));
175
175
  const fk = resolveForeignKey(relations, schema, parentSchemaKey, relationKey);
176
176
  if (!fk) {
177
- throw new Error(`No FK relationship between "${parentSchemaKey}" and "${relationKey}". ` +
178
- 'Define the relationship in your relations config.');
177
+ throw new relq_errors_1.RelqBuilderError(`No FK relationship between "${parentSchemaKey}" and "${relationKey}"`, { builder: 'createWith', hint: 'Define the relationship in your relations config, or use separate insert calls with explicit FK values' });
179
178
  }
180
179
  let fkColumn;
181
180
  let fkValue;
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeTypeSafeJoin = executeTypeSafeJoin;
4
4
  exports.executeTypeSafeJoinMany = executeTypeSafeJoinMany;
5
5
  exports.executeTypeSafeJoinManyThrough = executeTypeSafeJoinManyThrough;
6
- const table_proxy_1 = require("../../select/table-proxy.cjs");
7
- const join_condition_builder_1 = require("../../select/join-condition-builder.cjs");
8
- const join_internals_1 = require("../../select/join-internals.cjs");
9
- const join_many_condition_builder_1 = require("../../select/join-many-condition-builder.cjs");
6
+ const table_proxy_1 = require("../select/table-proxy.cjs");
7
+ const join_condition_builder_1 = require("../select/join-condition-builder.cjs");
8
+ const join_internals_1 = require("../select/join-internals.cjs");
9
+ const join_many_condition_builder_1 = require("../select/join-many-condition-builder.cjs");
10
10
  const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
11
- const fk_resolver_1 = require("../../utils/fk-resolver.cjs");
12
- const methods_1 = require("./methods.cjs");
11
+ const fk_resolver_1 = require("../utils/fk-resolver.cjs");
12
+ const methods_1 = require("../../core/helpers/methods.cjs");
13
13
  function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
14
14
  const [rightTableKey, rightAlias] = Array.isArray(tableOrAlias)
15
15
  ? tableOrAlias
@@ -42,8 +42,8 @@ function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
42
42
  conditionBuilder.equal(leftCol, rightCol);
43
43
  }
44
44
  else {
45
- throw new relq_errors_1.RelqQueryError(`Cannot auto-resolve FK relationship between "${ctx.schemaKey || ctx.tableName}" and "${rightTableKey}". ` +
46
- `Either provide a callback with explicit join conditions, or define the relationship in your relations config.`, { hint: `Use .join('${rightTableKey}', (on, ${rightTableKey}, source) => on.equal(${rightTableKey}.id, source.columnName))` });
45
+ throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between "${ctx.schemaKey || ctx.tableName}" and "${rightTableKey}". ` +
46
+ `Either provide a callback with explicit join conditions, or define the relationship in your relations config.`, { builder: 'join', hint: `Use .join('${rightTableKey}', (on, ${rightTableKey}, source) => on.equal(${rightTableKey}.fkColumn, source.id))` });
47
47
  }
48
48
  }
49
49
  const selectedProps = conditionInternals.getSelectedColumns();
@@ -66,6 +66,7 @@ function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
66
66
  sqlName: colDef.$columnName || toSnake(propName),
67
67
  }));
68
68
  }
69
+ const flatConfig = conditionInternals.getFlatConfig();
69
70
  const joinClause = {
70
71
  type: joinType,
71
72
  table: rightTableName,
@@ -73,7 +74,11 @@ function executeTypeSafeJoin(ctx, joinType, tableOrAlias, callback) {
73
74
  schemaKey: rightTableKey,
74
75
  onClause: conditionInternals.toSQL() || undefined,
75
76
  usingColumns: conditionInternals.getUsingColumns() || undefined,
76
- selectColumns
77
+ selectColumns,
78
+ flat: flatConfig ? {
79
+ mode: 'prefix',
80
+ prefix: flatConfig.prefix || rightAlias,
81
+ } : undefined,
77
82
  };
78
83
  ctx.builder.addStructuredJoin(joinClause);
79
84
  }
@@ -172,22 +177,20 @@ function executeTypeSafeJoinManyThrough(ctx, joinType, targetTableOrAlias, junct
172
177
  const schema = internal.getSchema();
173
178
  const relations = internal.getRelations();
174
179
  if (!schema || !relations) {
175
- throw new relq_errors_1.RelqQueryError(`Cannot use { through } without schema and relations config.`, { hint: `Define relations in your schema to use the { through } pattern, or use the callback form of joinMany instead.` });
180
+ throw new relq_errors_1.RelqBuilderError(`Cannot use { through } without schema and relations config. Pass relations when creating Relq: new Relq(schema, dialect, { relations }).`, { builder: 'joinMany', hint: `Use the callback form of joinMany instead, or add relations to your Relq config.` });
176
181
  }
177
- const leftTableDef = internal.getTableDef(ctx.schemaKey || ctx.tableName);
178
182
  const junctionTableDef = internal.getTableDef(junctionTableKey);
179
183
  const targetTableDef = internal.getTableDef(targetKey);
180
- const leftTableName = leftTableDef?.$name || ctx.tableName;
181
184
  const junctionTableName = junctionTableDef?.$name || junctionTableKey;
182
185
  const targetTableName = targetTableDef?.$name || targetKey;
183
186
  const leftAlias = ctx.builder.getTableIdentifier();
184
187
  const leftToJunction = (0, fk_resolver_1.resolveForeignKey)(relations, schema, ctx.schemaKey || ctx.tableName, junctionTableKey);
185
188
  if (!leftToJunction) {
186
- throw new relq_errors_1.RelqQueryError(`Cannot resolve FK between "${ctx.schemaKey || ctx.tableName}" and junction table "${junctionTableKey}".`, { hint: `Define a foreign key relationship between these tables in your relations config, or use the callback form of joinMany instead.` });
189
+ throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between "${ctx.schemaKey || ctx.tableName}" and junction table "${junctionTableKey}". Define the relationship in your relations config.`, { builder: 'joinMany', hint: `Add a relation from "${ctx.schemaKey || ctx.tableName}" to "${junctionTableKey}" in pgRelations(), or use the callback form of joinMany.` });
187
190
  }
188
191
  const junctionToTarget = (0, fk_resolver_1.resolveForeignKey)(relations, schema, junctionTableKey, targetKey);
189
192
  if (!junctionToTarget) {
190
- throw new relq_errors_1.RelqQueryError(`Cannot resolve FK between junction table "${junctionTableKey}" and target table "${targetKey}".`, { hint: `Define a foreign key relationship between these tables in your relations config, or use the callback form of joinMany instead.` });
193
+ throw new relq_errors_1.RelqBuilderError(`No foreign key relationship found between junction table "${junctionTableKey}" and target table "${targetKey}". Define the relationship in your relations config.`, { builder: 'joinMany', hint: `Add a relation from "${junctionTableKey}" to "${targetKey}" in pgRelations(), or use the callback form of joinMany.` });
191
194
  }
192
195
  const conditionBuilder = new join_many_condition_builder_1.JoinManyConditionBuilder();
193
196
  if (callback) {
@@ -8,7 +8,7 @@ exports.executePagination = executePagination;
8
8
  const pg_cursor_1 = __importDefault(require("../../addon/cursor.cjs"));
9
9
  const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
10
10
  const pagination_types_1 = require("../../types/pagination-types.cjs");
11
- const methods_1 = require("./methods.cjs");
11
+ const methods_1 = require("../../core/helpers/methods.cjs");
12
12
  async function executeCursorEach(ctx, callback, options = {}) {
13
13
  const batchSize = options.batchSize ?? 100;
14
14
  const sql = ctx.builder.toString();
@@ -8,7 +8,7 @@ exports.createExcludedProxy = createExcludedProxy;
8
8
  exports.createRowProxy = createRowProxy;
9
9
  exports.createSqlHelpers = createSqlHelpers;
10
10
  exports.buildConflictUpdateSql = buildConflictUpdateSql;
11
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
11
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
12
12
  function isColumnRef(value) {
13
13
  return typeof value === 'object' && value !== null && value.__type === 'column_ref';
14
14
  }
@@ -184,7 +184,7 @@ class ConflictBuilder {
184
184
  }
185
185
  }
186
186
  exports.ConflictBuilder = ConflictBuilder;
187
- function buildConflictUpdateSql(updateData, tableName, columnResolver) {
187
+ function buildConflictUpdateSql(updateData, _tableName, columnResolver) {
188
188
  const resolve = (col) => columnResolver ? columnResolver(col) : col;
189
189
  const setClauses = [];
190
190
  for (const [column, value] of Object.entries(updateData)) {
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InsertBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
8
- const case_converter_1 = require("../utils/case-converter.cjs");
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
+ const case_converter_1 = require("../../utils/case-converter.cjs");
9
9
  const select_builder_1 = require("../select/select-builder.cjs");
10
10
  const count_builder_1 = require("../count/count-builder.cjs");
11
11
  const conflict_builder_1 = require("./conflict-builder.cjs");
12
- const relq_errors_1 = require("../shared/errors/relq-errors.cjs");
12
+ const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
13
13
  class InsertBuilder {
14
14
  tableName;
15
15
  insertData;
@@ -82,8 +82,11 @@ class InsertBuilder {
82
82
  if (this.insertData.length === 0) {
83
83
  this.originalColumns = Object.keys(normalizedRows[0]).sort();
84
84
  }
85
- for (const row of normalizedRows) {
86
- this.validateColumns(row);
85
+ if (normalizedRows.length > 0) {
86
+ this.validateColumns(normalizedRows[0]);
87
+ if (normalizedRows.length > 1) {
88
+ this.validateColumns(normalizedRows[normalizedRows.length - 1]);
89
+ }
87
90
  }
88
91
  this.insertData.push(...normalizedRows);
89
92
  return this;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InsertFromSelectBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  const conflict_builder_1 = require("./conflict-builder.cjs");
9
9
  class InsertFromSelectBuilder {
10
10
  tableName;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NotifyBuilder = exports.UnlistenBuilder = exports.ListenBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  class ListenBuilder {
9
9
  channelName;
10
10
  constructor(channelName) {
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ListenerConnection = void 0;
7
7
  const node_events_1 = require("node:events");
8
- const pg_1 = require("../addon/pg.cjs");
9
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
8
+ const pg_1 = require("../../addon/pg.cjs");
9
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
10
10
  class ListenerConnection extends node_events_1.EventEmitter {
11
11
  client = null;
12
12
  config;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RawQueryBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
8
- const relq_errors_1 = require("../shared/errors/relq-errors.cjs");
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
+ const relq_errors_1 = require("../../shared/errors/relq-errors.cjs");
9
9
  class RawQueryBuilder {
10
10
  query;
11
11
  params;
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SqlFragment = void 0;
7
7
  exports.sql = sql;
8
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
8
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
9
9
  class SqlFragment {
10
10
  text;
11
11
  _isSqlFragment = true;
@@ -20,9 +20,6 @@ exports.SqlFragment = SqlFragment;
20
20
  function sqlIdentifier(name) {
21
21
  return new SqlFragment(pg_format_1.default.ident(name));
22
22
  }
23
- function sqlRaw(text) {
24
- return new SqlFragment(text);
25
- }
26
23
  function sql(strings, ...values) {
27
24
  let result = '';
28
25
  for (let i = 0; i < strings.length; i++) {
@@ -69,5 +66,3 @@ function formatValue(value) {
69
66
  return (0, pg_format_1.default)('%L', String(value));
70
67
  }
71
68
  sql.id = sqlIdentifier;
72
- sql.raw = sqlRaw;
73
- sql.fragment = sqlRaw;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AggregateQueryBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  const condition_collector_1 = require("../condition/condition-collector.cjs");
9
9
  const NUMERIC_FUNCS = new Set(['COUNT', 'SUM', 'AVG', 'MIN', 'MAX']);
10
10
  class AggregateQueryBuilder {
@@ -87,10 +87,15 @@ class AggregateQueryBuilder {
87
87
  this.entries.push({ func: 'BOOL_OR', column, alias: alias || column });
88
88
  return this;
89
89
  }
90
- where(callback) {
91
- const collector = new condition_collector_1.ConditionCollector();
92
- callback(collector);
93
- this.whereConditions.push(...collector.getConditions());
90
+ where(callbackOrCondition) {
91
+ if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
92
+ this.whereConditions.push(...callbackOrCondition.getConditions());
93
+ }
94
+ else {
95
+ const collector = new condition_collector_1.ConditionCollector();
96
+ callbackOrCondition(collector);
97
+ this.whereConditions.push(...collector.getConditions());
98
+ }
94
99
  return this;
95
100
  }
96
101
  having(callback) {
@@ -8,7 +8,7 @@ exports.createJoinManyBuilder = createJoinManyBuilder;
8
8
  const join_condition_builder_1 = require("./join-condition-builder.cjs");
9
9
  const table_proxy_1 = require("./table-proxy.cjs");
10
10
  const condition_collector_1 = require("../condition/condition-collector.cjs");
11
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
11
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
12
12
  class JoinManyBuilder extends join_condition_builder_1.JoinConditionBuilder {
13
13
  orderBySpecs = [];
14
14
  selectColumns = [];
@@ -127,7 +127,7 @@ class JoinManyBuilder extends join_condition_builder_1.JoinConditionBuilder {
127
127
  .map(col => (0, table_proxy_1.columnRefToSQLUnqualified)(col))
128
128
  .join(', ');
129
129
  }
130
- buildWherePart(leftAlias) {
130
+ buildWherePart(_leftAlias) {
131
131
  const parts = [];
132
132
  for (const cond of this.conditions) {
133
133
  if (cond.type === 'using' || cond.type === 'raw') {
@@ -7,12 +7,13 @@ exports.JoinConditionBuilder = void 0;
7
7
  exports.createJoinConditionBuilder = createJoinConditionBuilder;
8
8
  const table_proxy_1 = require("./table-proxy.cjs");
9
9
  const condition_collector_1 = require("../condition/condition-collector.cjs");
10
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
10
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
11
11
  const join_internals_1 = require("./join-internals.cjs");
12
12
  class JoinConditionBuilder {
13
13
  conditions = [];
14
14
  whereConditions = [];
15
15
  selectedColumns;
16
+ flatConfig;
16
17
  equal(left, right) {
17
18
  this.conditions.push({
18
19
  type: 'equal',
@@ -107,6 +108,14 @@ class JoinConditionBuilder {
107
108
  }
108
109
  return this;
109
110
  }
111
+ flat() {
112
+ if (!this.selectedColumns || this.selectedColumns.length === 0) {
113
+ throw new Error('Relq: .flat() requires .select() with explicit columns. ' +
114
+ 'Cannot flatten without knowing the column set.');
115
+ }
116
+ this.flatConfig = { mode: 'prefix' };
117
+ return this;
118
+ }
110
119
  get [join_internals_1.JOIN_INTERNAL]() {
111
120
  return {
112
121
  toSQL: () => this.internalToSQL(),
@@ -118,6 +127,7 @@ class JoinConditionBuilder {
118
127
  hasConditions: () => this.conditions.length > 0,
119
128
  hasWhereConditions: () => this.whereConditions.length > 0,
120
129
  getSelectedColumns: () => this.selectedColumns ?? null,
130
+ getFlatConfig: () => this.flatConfig ?? null,
121
131
  };
122
132
  }
123
133
  internalToSQL() {
@@ -8,14 +8,13 @@ exports.createJoinManyConditionBuilder = createJoinManyConditionBuilder;
8
8
  const table_proxy_1 = require("./table-proxy.cjs");
9
9
  const join_condition_builder_1 = require("./join-condition-builder.cjs");
10
10
  const join_internals_1 = require("./join-internals.cjs");
11
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
11
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
12
12
  class JoinManyConditionBuilder extends join_condition_builder_1.JoinConditionBuilder {
13
13
  orderSpecs = [];
14
14
  limitValue;
15
15
  offsetValue;
16
16
  innerJoins = [];
17
17
  proxyCreator;
18
- rightProxy;
19
18
  orderBy(column, direction = 'ASC', nulls) {
20
19
  this.orderSpecs.push({ column, direction, nulls });
21
20
  return this;
@@ -29,9 +28,8 @@ class JoinManyConditionBuilder extends join_condition_builder_1.JoinConditionBui
29
28
  return this;
30
29
  }
31
30
  get [join_internals_1.JOIN_SETUP]() {
32
- return (creator, rightProxy) => {
31
+ return (creator, _rightProxy) => {
33
32
  this.proxyCreator = creator;
34
- this.rightProxy = rightProxy;
35
33
  };
36
34
  }
37
35
  innerJoin(tableOrAlias, callback) {
@@ -92,6 +90,7 @@ class JoinManyConditionBuilder extends join_condition_builder_1.JoinConditionBui
92
90
  hasConditions: () => this.conditions.length > 0,
93
91
  hasWhereConditions: () => this.whereConditions.length > 0,
94
92
  getSelectedColumns: () => this.selectedColumns ?? null,
93
+ getFlatConfig: () => this.flatConfig ?? null,
95
94
  toSelectSQL: (alias) => this.buildSelectSQL(alias),
96
95
  toOrderBySQL: () => this.buildOrderBySQL(),
97
96
  toLimitSQL: () => this.buildLimitSQL(),
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ScalarQueryBuilderImpl = void 0;
7
7
  exports.createScalarTableAccessor = createScalarTableAccessor;
8
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
8
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
9
9
  const condition_collector_1 = require("../condition/condition-collector.cjs");
10
10
  class ScalarResultImpl {
11
11
  sql;
@@ -73,6 +73,36 @@ class ScalarQueryBuilderImpl {
73
73
  const sql = `(EXISTS(SELECT 1 FROM ${pg_format_1.default.ident(this.tableName)}${whereClause}))`;
74
74
  return new ScalarResultImpl(sql);
75
75
  }
76
+ countDistinct(column) {
77
+ const sqlColumn = this.resolveColumn(column);
78
+ const sql = this.buildSQL(`COUNT(DISTINCT ${pg_format_1.default.ident(sqlColumn)})`);
79
+ return new ScalarResultImpl(sql);
80
+ }
81
+ stringAgg(column, delimiter = ', ') {
82
+ const sqlColumn = this.resolveColumn(column);
83
+ const sql = this.buildSQL(`STRING_AGG(${pg_format_1.default.ident(sqlColumn)}::text, ${pg_format_1.default.literal(delimiter)})`);
84
+ return new ScalarResultImpl(sql);
85
+ }
86
+ arrayAgg(column) {
87
+ const sqlColumn = this.resolveColumn(column);
88
+ const sql = this.buildSQL(`COALESCE(ARRAY_AGG(${pg_format_1.default.ident(sqlColumn)}), ARRAY[]::text[])`);
89
+ return new ScalarResultImpl(sql);
90
+ }
91
+ jsonAgg(column) {
92
+ const sqlColumn = this.resolveColumn(column);
93
+ const sql = this.buildSQL(`COALESCE(JSON_AGG(${pg_format_1.default.ident(sqlColumn)}), '[]'::json)`);
94
+ return new ScalarResultImpl(sql);
95
+ }
96
+ boolAnd(column) {
97
+ const sqlColumn = this.resolveColumn(column);
98
+ const sql = this.buildSQL(`BOOL_AND(${pg_format_1.default.ident(sqlColumn)})`);
99
+ return new ScalarResultImpl(sql);
100
+ }
101
+ boolOr(column) {
102
+ const sqlColumn = this.resolveColumn(column);
103
+ const sql = this.buildSQL(`BOOL_OR(${pg_format_1.default.ident(sqlColumn)})`);
104
+ return new ScalarResultImpl(sql);
105
+ }
76
106
  resolveColumn(column) {
77
107
  if (this.columnResolver) {
78
108
  return this.columnResolver(column);
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ConnectedScalarSelectBuilder = exports.ScalarSelectBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  const scalar_query_builder_1 = require("./scalar-query-builder.cjs");
9
9
  class ScalarSelectBuilder {
10
10
  executeQuery;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SelectBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  const condition_collector_1 = require("../condition/condition-collector.cjs");
9
9
  class SelectBuilder {
10
10
  tableName;
@@ -75,10 +75,15 @@ class SelectBuilder {
75
75
  this.isDistinct = true;
76
76
  return this;
77
77
  }
78
- where(callback) {
79
- const conditionBuilder = new condition_collector_1.ConditionCollector();
80
- callback(conditionBuilder);
81
- this.whereConditions.push(...conditionBuilder.getConditions());
78
+ where(callbackOrCondition) {
79
+ if (callbackOrCondition instanceof condition_collector_1.ConditionCollector) {
80
+ this.whereConditions.push(...callbackOrCondition.getConditions());
81
+ }
82
+ else {
83
+ const conditionBuilder = new condition_collector_1.ConditionCollector();
84
+ callbackOrCondition(conditionBuilder);
85
+ this.whereConditions.push(...conditionBuilder.getConditions());
86
+ }
82
87
  return this;
83
88
  }
84
89
  join(table, condition) {
@@ -277,10 +282,32 @@ class SelectBuilder {
277
282
  }
278
283
  return pg_format_1.default.ident(col);
279
284
  });
285
+ const hasGroupBy = this.groupByColumns.length > 0
286
+ || (this.includeExpressions.length > 0 && this.selectColumns.some(c => typeof c === 'string' && c !== '*'));
280
287
  for (const join of this.structuredJoins) {
281
288
  if (join.type === 'LEFT JOIN LATERAL' || join.type === 'JOIN LATERAL') {
282
289
  columns.push(`${pg_format_1.default.ident(join.alias + '_lateral')}.${pg_format_1.default.ident(join.alias)} AS ${pg_format_1.default.ident(join.alias)}`);
283
290
  }
291
+ else if (hasGroupBy) {
292
+ if (join.selectColumns && join.selectColumns.length > 0) {
293
+ const jsonArgs = join.selectColumns
294
+ .map(col => `'${col.property}', ${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(col.sqlName)}`)
295
+ .join(', ');
296
+ columns.push(`COALESCE(json_agg(json_build_object(${jsonArgs})) FILTER (WHERE ${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(join.selectColumns[0].sqlName)} IS NOT NULL), '[]'::json) AS ${pg_format_1.default.ident(join.alias)}`);
297
+ }
298
+ else {
299
+ columns.push(`COALESCE(json_agg(row_to_json(${pg_format_1.default.ident(join.alias)}.*)) FILTER (WHERE ${pg_format_1.default.ident(join.alias)} IS NOT NULL), '[]'::json) AS ${pg_format_1.default.ident(join.alias)}`);
300
+ }
301
+ }
302
+ else if (join.flat && join.selectColumns && join.selectColumns.length > 0) {
303
+ const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
304
+ const prefix = join.flat.prefix || join.alias;
305
+ for (const col of join.selectColumns) {
306
+ const sqlRef = `${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(col.sqlName)}`;
307
+ const alias = `${prefix}${capitalize(col.property)}`;
308
+ columns.push(`${sqlRef} AS ${pg_format_1.default.ident(alias)}`);
309
+ }
310
+ }
284
311
  else if (join.selectColumns && join.selectColumns.length > 0) {
285
312
  const jsonArgs = join.selectColumns
286
313
  .map(col => `'${col.property}', ${pg_format_1.default.ident(join.alias)}.${pg_format_1.default.ident(col.sqlName)}`)
@@ -325,8 +352,14 @@ class SelectBuilder {
325
352
  }
326
353
  query += ' WHERE ' + (0, condition_collector_1.buildConditionsSQL)(conditions);
327
354
  }
328
- if (this.groupByColumns.length > 0) {
329
- const groupBySQL = this.groupByColumns.map(col => {
355
+ let effectiveGroupBy = this.groupByColumns;
356
+ if (effectiveGroupBy.length === 0 && this.includeExpressions.length > 0) {
357
+ effectiveGroupBy = this.selectColumns
358
+ .filter(col => typeof col === 'string' && col !== '*')
359
+ .map(col => col);
360
+ }
361
+ if (effectiveGroupBy.length > 0) {
362
+ const groupBySQL = effectiveGroupBy.map(col => {
330
363
  if (col.includes('.'))
331
364
  return col;
332
365
  if (hasJoins)
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateFunctions = exports.SqlExpression = void 0;
4
+ const table_proxy_1 = require("./table-proxy.cjs");
5
+ class SqlExpression {
6
+ sql;
7
+ _isSqlExpression = true;
8
+ constructor(sql) {
9
+ this.sql = sql;
10
+ }
11
+ }
12
+ exports.SqlExpression = SqlExpression;
13
+ class AggregateFunctions {
14
+ count(ref) {
15
+ if (!ref)
16
+ return new SqlExpression('COALESCE(COUNT(*)::integer, 0)');
17
+ return new SqlExpression(`COALESCE(COUNT(${(0, table_proxy_1.columnRefToSQL)(ref)})::integer, 0)`);
18
+ }
19
+ countDistinct(ref) {
20
+ return new SqlExpression(`COALESCE(COUNT(DISTINCT ${(0, table_proxy_1.columnRefToSQL)(ref)})::integer, 0)`);
21
+ }
22
+ sum(ref) {
23
+ return new SqlExpression(`COALESCE(SUM(${(0, table_proxy_1.columnRefToSQL)(ref)})::float, 0)`);
24
+ }
25
+ avg(ref) {
26
+ return new SqlExpression(`AVG(${(0, table_proxy_1.columnRefToSQL)(ref)})::float`);
27
+ }
28
+ min(ref) {
29
+ return new SqlExpression(`MIN(${(0, table_proxy_1.columnRefToSQL)(ref)})`);
30
+ }
31
+ max(ref) {
32
+ return new SqlExpression(`MAX(${(0, table_proxy_1.columnRefToSQL)(ref)})`);
33
+ }
34
+ stringAgg(ref, delimiter = ', ') {
35
+ return new SqlExpression(`COALESCE(STRING_AGG(${(0, table_proxy_1.columnRefToSQL)(ref)}::text, '${delimiter}'), '')`);
36
+ }
37
+ arrayAgg(ref) {
38
+ return new SqlExpression(`COALESCE(ARRAY_AGG(${(0, table_proxy_1.columnRefToSQL)(ref)}) FILTER (WHERE ${(0, table_proxy_1.columnRefToSQL)(ref)} IS NOT NULL), '{}')`);
39
+ }
40
+ arrayAggDistinct(ref) {
41
+ return new SqlExpression(`COALESCE(ARRAY_AGG(DISTINCT ${(0, table_proxy_1.columnRefToSQL)(ref)}) FILTER (WHERE ${(0, table_proxy_1.columnRefToSQL)(ref)} IS NOT NULL), '{}')`);
42
+ }
43
+ boolAnd(ref) {
44
+ return new SqlExpression(`COALESCE(BOOL_AND(${(0, table_proxy_1.columnRefToSQL)(ref)}), false)`);
45
+ }
46
+ boolOr(ref) {
47
+ return new SqlExpression(`COALESCE(BOOL_OR(${(0, table_proxy_1.columnRefToSQL)(ref)}), false)`);
48
+ }
49
+ stddev(ref) {
50
+ return new SqlExpression(`STDDEV(${(0, table_proxy_1.columnRefToSQL)(ref)})::float`);
51
+ }
52
+ variance(ref) {
53
+ return new SqlExpression(`VARIANCE(${(0, table_proxy_1.columnRefToSQL)(ref)})::float`);
54
+ }
55
+ }
56
+ exports.AggregateFunctions = AggregateFunctions;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SavepointBuilder = exports.TransactionBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  class TransactionBuilder {
9
9
  isolationLevel;
10
10
  mode;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ArrayUpdateBuilder = exports.ArrayJsonbUpdateBuilder = exports.ArrayDateUpdateBuilder = exports.ArrayUuidUpdateBuilder = exports.ArrayBooleanUpdateBuilder = exports.ArrayNumericUpdateBuilder = exports.ArrayStringUpdateBuilder = void 0;
7
- const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
7
+ const pg_format_1 = __importDefault(require("../../shared/pg-format.cjs"));
8
8
  class ArrayStringUpdateBuilder {
9
9
  set(values) {
10
10
  if (values.length === 0)
@@ -200,10 +200,7 @@ class ArrayJsonbUpdateBuilder {
200
200
  }
201
201
  exports.ArrayJsonbUpdateBuilder = ArrayJsonbUpdateBuilder;
202
202
  class ArrayUpdateBuilder {
203
- currentColumn;
204
- constructor(currentColumn) {
205
- this.currentColumn = currentColumn;
206
- }
203
+ constructor(_currentColumn) { }
207
204
  get string() {
208
205
  return new ArrayStringUpdateBuilder();
209
206
  }