vsrepo 2.6.0 → 2.7.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 (41) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +3 -2
  3. package/README.pt-BR.md +3 -2
  4. package/dist/VSRepoAdapter.d.ts +12 -0
  5. package/dist/VSRepoAdapter.js.map +1 -1
  6. package/dist/VSRepository.d.ts +50 -4
  7. package/dist/VSRepository.js +57 -28
  8. package/dist/VSRepository.js.map +1 -1
  9. package/dist/decorators/query-method.decorator.d.ts +3 -24
  10. package/dist/decorators/query-method.decorator.js +4 -27
  11. package/dist/decorators/query-method.decorator.js.map +1 -1
  12. package/dist/index.d.ts +4 -0
  13. package/dist/index.js +5 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/internal/resolvers/dynamic-methods.resolver.d.ts +6 -5
  16. package/dist/internal/resolvers/dynamic-methods.resolver.js +112 -98
  17. package/dist/internal/resolvers/dynamic-methods.resolver.js.map +1 -1
  18. package/dist/internal/utils/vs-placeholder-parser.util.d.ts +2 -0
  19. package/dist/internal/utils/vs-placeholder-parser.util.js +62 -0
  20. package/dist/internal/utils/vs-placeholder-parser.util.js.map +1 -0
  21. package/dist/internal/utils/vs-query-builder.util.d.ts +5 -1
  22. package/dist/internal/utils/vs-query-builder.util.js +1 -13
  23. package/dist/internal/utils/vs-query-builder.util.js.map +1 -1
  24. package/dist/internal/utils/vs-raw-query-builder.util.d.ts +238 -0
  25. package/dist/internal/utils/vs-raw-query-builder.util.js +433 -0
  26. package/dist/internal/utils/vs-raw-query-builder.util.js.map +1 -0
  27. package/dist/internal/utils/vs-sql.util.d.ts +100 -0
  28. package/dist/internal/utils/vs-sql.util.js +151 -0
  29. package/dist/internal/utils/vs-sql.util.js.map +1 -0
  30. package/dist/internal/validators/decorators.validator.js +1 -1
  31. package/dist/internal/validators/decorators.validator.js.map +1 -1
  32. package/dist/internal/validators/vsrepo.validator.js +1 -0
  33. package/dist/internal/validators/vsrepo.validator.js.map +1 -1
  34. package/dist/types/vsrepo/vs-raw-query-builder-cte-query.type.d.ts +8 -0
  35. package/dist/types/vsrepo/vs-raw-query-builder-cte-query.type.js +3 -0
  36. package/dist/types/vsrepo/vs-raw-query-builder-cte-query.type.js.map +1 -0
  37. package/dist/types/vsrepo/vs-raw-query-builder-target.type.d.ts +7 -0
  38. package/dist/types/vsrepo/vs-raw-query-builder-target.type.js +3 -0
  39. package/dist/types/vsrepo/vs-raw-query-builder-target.type.js.map +1 -0
  40. package/dist/types/vsrepo/vsrepo-options.type.d.ts +18 -0
  41. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-methods.resolver.js","sourceRoot":"","sources":["../../../src/internal/resolvers/dynamic-methods.resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-methods.resolver.js","sourceRoot":"","sources":["../../../src/internal/resolvers/dynamic-methods.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare class VSPlaceholdersParser {
2
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VSPlaceholdersParser = void 0;
4
+ const VSRepoError_1 = require("../../errors/VSRepoError");
5
+ const vsrepo_error_type_enum_1 = require("../enums/vsrepo-error-type.enum");
6
+ const vs_sql_util_1 = require("./vs-sql.util");
7
+ class VSPlaceholdersParser {
8
+ /**
9
+ * Parses a raw SQL string written with VSRepository's own agnostic,
10
+ * positional placeholders — `?1`, `?2`, ... (1-based, Spring Data JPA style)
11
+ * — into a `VSSql` fragment, so it compiles through `adapter.getPlaceholder()`
12
+ * exactly like any other `VSSql`. Enabled via `vsPlaceholders: true` in the
13
+ * `VSRepository` constructor options.
14
+ *
15
+ * The same index may appear more than once (`?1 ... ?1`) to reuse the same
16
+ * argument — each *occurrence* becomes its own placeholder/value pair in the
17
+ * compiled output (duplicating the value in `args` rather than trying to
18
+ * reference a single bound parameter twice), since not every adapter
19
+ * supports referencing one bound parameter more than once.
20
+ *
21
+ * A `?N` inside a single-quoted string literal (e.g. `'keep ?1 literally'`)
22
+ * is *not* interpreted as a placeholder — it is passed through to the SQL
23
+ * untouched and consumes no `args` entry. Standard SQL escapes are
24
+ * respected: `''` inside a literal does not end it, so a literal like
25
+ * `'it''s ?1'` is fully skipped. There is no escape mechanism outside a
26
+ * literal — if a query needs literal `?` + digits text in an unquoted
27
+ * context, build that part with a `VSSql` fragment instead. Matching only
28
+ * triggers on `?` immediately followed by a digit, so operators like
29
+ * PostgreSQL's `?`, `?|` and `?&` are unaffected.
30
+ *
31
+ * @internal
32
+ */
33
+ static parse(query, args = []) {
34
+ const placeholderPattern = /\?(\d+)/g;
35
+ // Blank out every single-quoted string literal (`''` escapes a quote,
36
+ // per standard SQL) so a `?N` written as literal text inside one is
37
+ // never mistaken for a placeholder. Whitespace is preserved and every
38
+ // non-whitespace char is replaced 1:1 by a space, so `match.index`
39
+ // still lines up with the original `query` when slicing the chunks.
40
+ const masked = query.replace(/'(?:''|[^'])*'/g, m => m.replace(/\S/g, " "));
41
+ const chunks = [];
42
+ const values = [];
43
+ let lastIndex = 0;
44
+ let match;
45
+ while ((match = placeholderPattern.exec(masked)) !== null) {
46
+ const position = Number(match[1]);
47
+ if (!Number.isInteger(position) || position < 1 || position > args.length) {
48
+ throw new VSRepoError_1.VSRepoError(`Invalid 'vsPlaceholders' reference '?${match[1]}' in query — expected a number between 1 and ${args.length} (the length of 'args').`, vsrepo_error_type_enum_1.VSRepoErrorType.VALIDATOR);
49
+ }
50
+ chunks.push(query.slice(lastIndex, match.index));
51
+ values.push(args[position - 1]);
52
+ lastIndex = match.index + match[0].length;
53
+ }
54
+ chunks.push(query.slice(lastIndex));
55
+ // `VSSql.sql` only ever reads `strings` by index (`strings[0]`, `strings[i + 1]`)
56
+ // and never touches `.raw`, so a plain string array built at runtime works
57
+ // the same as a real tagged-template `TemplateStringsArray` here.
58
+ return vs_sql_util_1.VSSql.sql(chunks, ...values);
59
+ }
60
+ }
61
+ exports.VSPlaceholdersParser = VSPlaceholdersParser;
62
+ //# sourceMappingURL=vs-placeholder-parser.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vs-placeholder-parser.util.js","sourceRoot":"","sources":["../../../src/internal/utils/vs-placeholder-parser.util.ts"],"names":[],"mappings":";;;AAAA,0DAAuD;AACvD,4EAAkE;AAClE,+CAAsC;AAEtC,MAAa,oBAAoB;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,OAA2B,EAAE;QACrD,MAAM,kBAAkB,GAAG,UAAU,CAAC;QAEtC,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,KAA6B,CAAC;QAElC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxE,MAAM,IAAI,yBAAW,CACjB,wCAAwC,KAAK,CAAC,CAAC,CAAC,gDAAgD,IAAI,CAAC,MAAM,0BAA0B,EACrI,wCAAe,CAAC,SAAS,CAC5B,CAAC;YACN,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAEpC,kFAAkF;QAClF,2EAA2E;QAC3E,kEAAkE;QAClE,OAAO,mBAAK,CAAC,GAAG,CAAC,MAAyC,EAAE,GAAG,MAAM,CAAC,CAAC;IAC3E,CAAC;CACJ;AAhED,oDAgEC"}
@@ -8,7 +8,7 @@ import { VSRepoSelect } from "../../types/vsrepo/vsrepo-select.type";
8
8
  import { VSRepoWhere } from "../../types/vsrepo/vsrepo-where.type";
9
9
  /**
10
10
  * Fluent builder for queries whose shape is only known at runtime (optional filters, user-controlled
11
- * ordering and pagination, ...). Get one from `VSRepository#createQueryBuilder()`.
11
+ * ordering and pagination, ...). Get one from `VSRepository.createQueryBuilder()`.
12
12
  *
13
13
  * Chain the configuration methods (`select`, `relations`, `where`, `orderBy`, `limit`, `offset`,
14
14
  * `distinctOn`, `see`) and run the query with a terminal method (`getResult`,
@@ -55,6 +55,10 @@ export declare class VSQueryBuilder<Entity, OrmTypes extends VSRepoOrmTypes = VS
55
55
  private resolveWhere;
56
56
  private trace;
57
57
  private execute;
58
+ private setOptions;
59
+ private setWhereFilter;
60
+ private setDistinct;
61
+ private setSeeMode;
58
62
  /**
59
63
  * Sets the client or transaction the query runs on, replacing the one given to `createQueryBuilder()`.
60
64
  *
@@ -47,7 +47,7 @@ const where_schema_1 = __importDefault(require("../validators/schemas/where.sche
47
47
  const v = __importStar(require("valibot"));
48
48
  /**
49
49
  * Fluent builder for queries whose shape is only known at runtime (optional filters, user-controlled
50
- * ordering and pagination, ...). Get one from `VSRepository#createQueryBuilder()`.
50
+ * ordering and pagination, ...). Get one from `VSRepository.createQueryBuilder()`.
51
51
  *
52
52
  * Chain the configuration methods (`select`, `relations`, `where`, `orderBy`, `limit`, `offset`,
53
53
  * `distinctOn`, `see`) and run the query with a terminal method (`getResult`,
@@ -128,27 +128,15 @@ class VSQueryBuilder {
128
128
  this.logger?.endPerformLog(start);
129
129
  }
130
130
  }
131
- /**
132
- * @internal
133
- */
134
131
  setOptions(options) {
135
132
  this.options = options;
136
133
  }
137
- /**
138
- * @internal
139
- */
140
134
  setWhereFilter(whereFilter) {
141
135
  this.whereFilter = whereFilter;
142
136
  }
143
- /**
144
- * @internal
145
- */
146
137
  setDistinct(distinct) {
147
138
  this.distinct = distinct;
148
139
  }
149
- /**
150
- * @internal
151
- */
152
140
  setSeeMode(seeMode) {
153
141
  this.seeMode = seeMode;
154
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vs-query-builder.util.js","sourceRoot":"","sources":["../../../src/internal/utils/vs-query-builder.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vs-query-builder.util.js","sourceRoot":"","sources":["../../../src/internal/utils/vs-query-builder.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ import { VSRawQueryBuilderCteQuery } from "../../types/vsrepo/vs-raw-query-builder-cte-query.type";
2
+ import { VSRawQueryBuilderTarget } from "../../types/vsrepo/vs-raw-query-builder-target.type";
3
+ import { VSRepoOrmTypes } from "../../types/vsrepo/vsrepo-orm-types.type";
4
+ import { VSSql } from "./vs-sql.util";
5
+ /**
6
+ * Fluent, SQL-agnostic builder for hand-written **`SELECT`** queries whose shape is only known
7
+ * at runtime, but whose SQL is too specific (window functions, CTEs referenced elsewhere,
8
+ * vendor-specific syntax, ...) to express through {@link VSQueryBuilder}'s `where`/`relations`
9
+ * model. Compiles down to a single {@link VSSql} fragment — get one from
10
+ * `VSRepository.createRawQueryBuilder()`.
11
+ *
12
+ * Nothing reaches the database until {@link VSRawQueryBuilder.execute} is called. The builder is
13
+ * **mutable**: every chained call changes the same instance and returns it. Use
14
+ * {@link VSRawQueryBuilder.clone} to derive variations from a common base.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { VSSql } from "vsrepo";
19
+ *
20
+ * const rows = await orderRepository
21
+ * .createRawQueryBuilder()
22
+ * .select("o.id", "o.total", "u.name")
23
+ * .from("order", "o")
24
+ * .innerJoin("user", "u", "u.id = o.user_id")
25
+ * .where(VSSql.sql`u.active = ${true}`)
26
+ * .andWhere(VSSql.sql`o.total > ${100}`)
27
+ * .andWhere("o.deleted_at is null")
28
+ * .groupBy("o.id", "u.name")
29
+ * .having(VSSql.sql`count(*) > ${1}`)
30
+ * .orderBy("o.total", "desc")
31
+ * .limit(20)
32
+ * .offset(0)
33
+ * .execute<{ id: string; total: number; name: string }[]>();
34
+ * ```
35
+ *
36
+ * @publicApi
37
+ */
38
+ export declare class VSRawQueryBuilder<OrmTypes extends VSRepoOrmTypes = VSRepoOrmTypes> {
39
+ private db;
40
+ private readonly adapter;
41
+ private readonly logger?;
42
+ private cteClauses;
43
+ private recursiveWith;
44
+ private selectColumns;
45
+ private fromTarget?;
46
+ private joinClauses;
47
+ private whereConditions;
48
+ private groupByColumns;
49
+ private havingConditions;
50
+ private orderByClauses;
51
+ private limitValue?;
52
+ private offsetValue?;
53
+ private trace;
54
+ private static validateNonEmptyString;
55
+ /** Converts a raw string into a `VSSql.raw` fragment (validating it isn't empty/blank first,
56
+ * since that would silently compile into broken SQL — e.g. a trailing comma or an empty
57
+ * `WHERE ()`) or passes an already-built `VSSql` fragment through untouched.
58
+ *
59
+ * @param context Name of the calling method/argument, used in the `VSRepoError` message. */
60
+ private static toFragment;
61
+ private newSubBuilder;
62
+ private resolveSubquery;
63
+ private resolveTarget;
64
+ private resolveCteQuery;
65
+ private static combine;
66
+ private static validateNonNegativeInt;
67
+ /**
68
+ * Sets the columns to select, replacing any previous `select`. Each column is either a raw,
69
+ * trusted string (an identifier, passed through as-is — like `VSSql.raw`, never pass
70
+ * user-controlled input) or a `VSSql` fragment for anything parameterized or aliased
71
+ * (**VSSql.sql\`count(*) AS total\`**).
72
+ *
73
+ * @param columns One or more columns/expressions. `select()` with no arguments is equivalent
74
+ * to `SELECT *`.
75
+ */
76
+ select(...columns: (string | VSSql)[]): this;
77
+ /**
78
+ * Sets the `FROM` target, replacing any previous one.
79
+ *
80
+ * @param target A raw table name, a `VSSql` fragment, or another `VSRawQueryBuilder`
81
+ * (compiled inline as a subquery, wrapped in parentheses).
82
+ * @param alias Optional alias, appended as `AS alias` (raw, trusted text).
83
+ */
84
+ from(target: VSRawQueryBuilderTarget, alias?: string): this;
85
+ private addCte;
86
+ /**
87
+ * Adds a `WITH` (common table expression). Each call adds one CTE; call it
88
+ * again to add more — they're all listed under a single `WITH`, in the order added.
89
+ *
90
+ * @param name Name the CTE is referenced by elsewhere in the query (raw, trusted text).
91
+ * @param query The CTE's body: a `VSRawQueryBuilder`, a subquery function, or a `VSSql` fragment — needed for
92
+ * anything a single `SELECT` builder can't express (e.g. a `UNION`).
93
+ * @param columns Optional explicit column list, rendered as `name(col1, col2) AS (...)`.
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const rows = await orderRepository
98
+ * .createRawQueryBuilder()
99
+ * .with("big_spenders", qb => qb.select("user_id").from("order").groupBy("user_id").having("sum(total) > 1000"))
100
+ * .select("u.*")
101
+ * .from("user", "u")
102
+ * .innerJoin("big_spenders", "bs", "bs.user_id = u.id")
103
+ * .execute();
104
+ * ```
105
+ */
106
+ with(name: string, query: VSRawQueryBuilderCteQuery, columns?: string[]): this;
107
+ /**
108
+ * Same as {@link VSRawQueryBuilder.with}, but marks the whole `WITH` clause as `RECURSIVE`
109
+ * (required by the SQL standard for a CTE that references itself in its own body — usually
110
+ * a `VSSql` fragment with a `... UNION ALL SELECT ... FROM name ...` shape). One recursive
111
+ * CTE is enough to make the whole clause `WITH RECURSIVE`, even when combined with other,
112
+ * non-recursive ones added via {@link VSRawQueryBuilder.with}.
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const orgChart = await employeeRepository
117
+ * .createRawQueryBuilder()
118
+ * .withRecursive(
119
+ * "subordinates",
120
+ * VSSql.sql`
121
+ * SELECT id, manager_id, 1 AS depth FROM employee WHERE id = ${managerId}
122
+ * UNION ALL
123
+ * SELECT e.id, e.manager_id, s.depth + 1 FROM employee e
124
+ * INNER JOIN subordinates s ON e.manager_id = s.id
125
+ * `,
126
+ * ["id", "manager_id", "depth"],
127
+ * )
128
+ * .select("*")
129
+ * .from("subordinates")
130
+ * .orderBy("depth")
131
+ * .execute();
132
+ * ```
133
+ */
134
+ withRecursive(name: string, query: VSRawQueryBuilderCteQuery, columns?: string[]): this;
135
+ private addJoin;
136
+ /**
137
+ * Adds an `INNER JOIN`.
138
+ */
139
+ innerJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
140
+ /**
141
+ * Adds a `LEFT JOIN`.
142
+ */
143
+ leftJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
144
+ /**
145
+ * Adds a `RIGHT JOIN`.
146
+ */
147
+ rightJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
148
+ /**
149
+ * Adds a `FULL JOIN`.
150
+ */
151
+ fullJoin(target: VSRawQueryBuilderTarget, alias: string, on: string | VSSql): this;
152
+ /**
153
+ * Adds a `WHERE` condition. The first call sets the filter; every later call (`where` or
154
+ * {@link VSRawQueryBuilder.andWhere}) is `AND`-combined with it, each wrapped in parentheses.
155
+ * Use {@link VSRawQueryBuilder.orWhere} to `OR`-combine instead.
156
+ */
157
+ where(condition: string | VSSql): this;
158
+ /** Alias for {@link VSRawQueryBuilder.where} — `AND`-combines `condition` with the existing filter. */
159
+ andWhere(condition: string | VSSql): this;
160
+ /** `OR`-combines `condition` with the existing `WHERE` filter. */
161
+ orWhere(condition: string | VSSql): this;
162
+ /**
163
+ * Adds columns to `GROUP BY`. Each call appends; call {@link VSRawQueryBuilder.clone} from a
164
+ * common base if you need independent variations.
165
+ */
166
+ groupBy(...columns: (string | VSSql)[]): this;
167
+ /**
168
+ * Adds a `HAVING` condition, `AND`-combined with any previous one (same semantics as
169
+ * {@link VSRawQueryBuilder.where}). Use {@link VSRawQueryBuilder.orHaving} to `OR`-combine.
170
+ */
171
+ having(condition: string | VSSql): this;
172
+ /** Alias for {@link VSRawQueryBuilder.having} — `AND`-combines `condition` with the existing `HAVING` filter. */
173
+ andHaving(condition: string | VSSql): this;
174
+ /** `OR`-combines `condition` with the existing `HAVING` filter. */
175
+ orHaving(condition: string | VSSql): this;
176
+ /**
177
+ * Adds a column to `ORDER BY`. Each call appends, in order, so call it once per column for a
178
+ * multi-column ordering.
179
+ */
180
+ orderBy(column: string | VSSql, direction?: "asc" | "desc" | "ASC" | "DESC"): this;
181
+ /**
182
+ * Sets the maximum number of rows to return, replacing any previous `limit`.
183
+ */
184
+ limit(limit: number): this;
185
+ /**
186
+ * Sets how many rows to skip, replacing any previous `offset`.
187
+ */
188
+ offset(offset: number): this;
189
+ /**
190
+ * Sets the client or transaction the query runs on, replacing the one given to
191
+ * `createRawQueryBuilder()`.
192
+ *
193
+ * It's lazy — it only matters when {@link VSRawQueryBuilder.execute} runs — so a builder can
194
+ * be created before a transaction and pointed at it from inside, or a
195
+ * {@link VSRawQueryBuilder.clone} can be pointed at another client without touching the
196
+ * original builder.
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const qb = orderRepository.createRawQueryBuilder().select("*").from("order");
201
+ *
202
+ * await orderRepository.transaction(async tx => {
203
+ * qb.setDb(tx);
204
+ * return qb.execute();
205
+ * });
206
+ * ```
207
+ */
208
+ setDb(db: OrmTypes["dbClient"] | OrmTypes["dbTransaction"]): void;
209
+ /**
210
+ * Returns an independent builder with the same clauses and `db`. Changes made to either one
211
+ * afterwards don't affect the other (the underlying `VSSql`/`VSRawQueryBuilder` values
212
+ * themselves are immutable, so a shallow copy of every clause array is enough).
213
+ */
214
+ clone(): VSRawQueryBuilder<OrmTypes>;
215
+ private compileCteClause;
216
+ /**
217
+ * Compiles every configured clause into a single {@link VSSql} fragment, in the order
218
+ * `WITH` (CTEs) -> `SELECT` -> `FROM` -> `JOIN`s -> `WHERE` -> `GROUP BY` -> `HAVING` -> `ORDER BY`
219
+ * -> `LIMIT` -> `OFFSET`. Nothing runs by itself — splice the result into another `VSSql`
220
+ * fragment as a subquery, or pass it to `VSRepository.query()`.
221
+ */
222
+ toVSSql(): VSSql;
223
+ private compileForAdapter;
224
+ /**
225
+ * Compiles the builder down to a plain SQL string, rendered with the adapter's own
226
+ * placeholder syntax (e.g. `$1`, `$2`, ...). Values themselves are **not** interpolated into
227
+ * the string — use {@link VSRawQueryBuilder.toVSSql} (`.compile()`) or
228
+ * {@link VSRawQueryBuilder.execute} if you also need the parameter values/to run the query.
229
+ */
230
+ toSql(): string;
231
+ /**
232
+ * Compiles and runs the query against the underlying database, through the same adapter as
233
+ * every other `VSRepository` method.
234
+ *
235
+ * @template T Shape of the returned rows. Defaults to `any`.
236
+ */
237
+ execute<T = any>(): Promise<T>;
238
+ }