vsrepo 2.6.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +45 -3
  2. package/README.md +40 -102
  3. package/README.pt-BR.md +40 -102
  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 +118 -100
  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 +4 -3
@@ -12,6 +12,8 @@ import { VSRepoQueryOptions } from "./types/vsrepo/vsrepo-query-options.type";
12
12
  import { NumericKeys } from "./types/utils/numeric-keys.type";
13
13
  import { RestrictMethodOptions } from "./types/utils/restrict-method-options.type";
14
14
  import { VSQueryBuilder } from "./internal/utils/vs-query-builder.util";
15
+ import { VSRawQueryBuilder } from "./internal/utils/vs-raw-query-builder.util";
16
+ import { VSSql } from "./internal/utils/vs-sql.util";
15
17
  /**
16
18
  * ORM-agnostic base repository, exposing a complete set of ready-to-use CRUD
17
19
  * and soft-delete methods around an entity, plus any `@DynamicMethod`/`@QueryMethod`
@@ -51,6 +53,7 @@ export declare abstract class VSRepository<Entity, PKType, OrmTypes extends VSRe
51
53
  private readonly validator;
52
54
  private readonly softRemoveKey?;
53
55
  private readonly defaultOrdering?;
56
+ private readonly vsPlaceholders;
54
57
  /**
55
58
  * Whether `resolveDynamicMethods` has already run once for this instance.
56
59
  * Used to warn on redundant re-resolutions (e.g. calling it manually
@@ -109,15 +112,45 @@ export declare abstract class VSRepository<Entity, PKType, OrmTypes extends VSRe
109
112
  * ```
110
113
  */
111
114
  createQueryBuilder(db?: OrmTypes["dbClient"] | OrmTypes["dbTransaction"]): VSQueryBuilder<Entity, OrmTypes>;
115
+ /**
116
+ * Returns a fluent {@link VSRawQueryBuilder}, for hand-written `SELECT` queries whose SQL is
117
+ * too specific (window functions, vendor-specific syntax, ad-hoc subqueries, ...) for
118
+ * {@link VSRepository.createQueryBuilder}'s `where`/`relations` model.
119
+ *
120
+ * Goes through the same adapter as every other method, and requires the adapter to implement
121
+ * `getPlaceholder()` (see {@link VSSql}). Nothing runs until
122
+ * {@link VSRawQueryBuilder.execute} is called.
123
+ *
124
+ * @param db Client or transaction to run in. Defaults to the repository's own client — see
125
+ * `VSRawQueryBuilder.setDb()` to change it later, or run inside a `transaction()`.
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const rows = await userRepository
130
+ * .createRawQueryBuilder()
131
+ * .select("id", "name")
132
+ * .from("user")
133
+ * .where(VSSql.sql`active = ${true}`)
134
+ * .orderBy("name")
135
+ * .limit(20)
136
+ * .execute<User[]>();
137
+ * ```
138
+ */
139
+ createRawQueryBuilder(db?: OrmTypes["dbClient"] | OrmTypes["dbTransaction"]): VSRawQueryBuilder<OrmTypes>;
112
140
  /**
113
141
  * Executes a raw query/statement directly against the underlying database.
114
142
  *
115
- * Use placeholders for values passed via `options.args` — never interpolate
116
- * values directly into `query`, to avoid SQL injection. The placeholder
117
- * syntax depends on the database/driver behind your adapter.
143
+ * Accepts either a plain SQL string — use placeholders for values passed
144
+ * via `options.args`, never interpolate values directly into `query`, to
145
+ * avoid SQL injection; the placeholder syntax depends on the
146
+ * database/driver behind your adapter — or a `VSSql` fragment built with
147
+ * `VSSql.sql`/`raw`/`join`/`empty`, which is parameterized automatically
148
+ * and compiled using your adapter's own placeholder syntax (requires the
149
+ * adapter to implement `getPlaceholder()`; see {@link VSSql}).
150
+ *
118
151
  * Set `options.modifying: true` for `INSERT`/`UPDATE`/`DELETE` statements.
119
152
  * Set `options.singleResult: true` to collapse an array result into its
120
- * first element (`null` if empty) — see {@link VSRepoQueryOptions.singleResult}.
153
+ * first element (`null` if empty).
121
154
  *
122
155
  * @example
123
156
  * ```typescript
@@ -137,9 +170,22 @@ export declare abstract class VSRepository<Entity, PKType, OrmTypes extends VSRe
137
170
  * 'SELECT * FROM "user" WHERE id = $1 LIMIT 1',
138
171
  * { args: ["123"], singleResult: true },
139
172
  * );
173
+ *
174
+ * // Same thing, built with a `VSSql` fragment instead of a hand-written
175
+ * // placeholder string — `email` is still sent as a parameter.
176
+ * const usersViaSql = await userRepository.query<User[]>(VSSql.sql`SELECT * FROM "user" WHERE email = ${"joao@email.com"}`);
177
+ *
178
+ * // With `vsPlaceholders: true` in the constructor options, plain
179
+ * // strings use VSRepository's own `?1`, `?2`, ... placeholders instead
180
+ * // of the adapter's native syntax — `?1` may repeat to reuse an arg.
181
+ * const usersViaVsPlaceholders = await userRepository.query<User[]>(
182
+ * 'SELECT * FROM "user" WHERE email = ?1',
183
+ * { args: ["joao@email.com"] },
184
+ * );
140
185
  * ```
141
186
  */
142
187
  query<T = any>(query: string, options?: VSRepoQueryOptions<OrmTypes>): Promise<T>;
188
+ query<T = any>(sql: VSSql, options?: Omit<VSRepoQueryOptions<OrmTypes>, "args">): Promise<T>;
143
189
  /** Fetches a record by its primary key (PK). */
144
190
  get(pk: PKType, options?: MethodOptions<Entity, OrmTypes>): Promise<Entity | null>;
145
191
  /** Fetches a record by PK and throws an Error if not found. */
@@ -9,6 +9,9 @@ const dynamic_methods_resolver_1 = require("./internal/resolvers/dynamic-methods
9
9
  const VSRepoError_1 = require("./errors/VSRepoError");
10
10
  const vsrepo_error_type_enum_1 = require("./internal/enums/vsrepo-error-type.enum");
11
11
  const vs_query_builder_util_1 = require("./internal/utils/vs-query-builder.util");
12
+ const vs_raw_query_builder_util_1 = require("./internal/utils/vs-raw-query-builder.util");
13
+ const vs_sql_util_1 = require("./internal/utils/vs-sql.util");
14
+ const vs_placeholder_parser_util_1 = require("./internal/utils/vs-placeholder-parser.util");
12
15
  /**
13
16
  * ORM-agnostic base repository, exposing a complete set of ready-to-use CRUD
14
17
  * and soft-delete methods around an entity, plus any `@DynamicMethod`/`@QueryMethod`
@@ -48,6 +51,7 @@ class VSRepository {
48
51
  validator;
49
52
  softRemoveKey;
50
53
  defaultOrdering;
54
+ vsPlaceholders;
51
55
  /**
52
56
  * Whether `resolveDynamicMethods` has already run once for this instance.
53
57
  * Used to warn on redundant re-resolutions (e.g. calling it manually
@@ -78,6 +82,10 @@ class VSRepository {
78
82
  }
79
83
  this.softRemoveKey = optionsValidated.softRemoveKey;
80
84
  this.defaultOrdering = optionsValidated.defaultOrdering;
85
+ this.vsPlaceholders = optionsValidated.vsPlaceholders ?? false;
86
+ if (this.vsPlaceholders && !this.adapter.getPlaceholder) {
87
+ throw new VSRepoError_1.VSRepoError("'vsPlaceholders' is enabled but your adapter did not implement the 'getPlaceholder' method; try updating your adapter to a newer version or disable 'vsPlaceholders'.", vsrepo_error_type_enum_1.VSRepoErrorType.VALIDATOR);
88
+ }
81
89
  this.mergeWheresResolver = new merge_wheres_resolver_1.MergeWheresResolver(this.softRemoveKey);
82
90
  this.logger = new vs_logger_util_1.VSLogger(optionsValidated.logLevel ?? vs_log_level_enum_1.VSLogLevel.WARN, this.constructor.name + "Logger", optionsValidated.logSlowThresholdMs);
83
91
  this.validator.setLogger(this.logger);
@@ -114,7 +122,7 @@ class VSRepository {
114
122
  `If you are calling it manually, make sure lazyDynamicMethods is set to true ` +
115
123
  `in the constructor options to skip the automatic resolution.`);
116
124
  }
117
- const dynamicMethodsResolver = new dynamic_methods_resolver_1.DynamicMethodsResolver(this.logger, this.adapter, this.mergeWheresResolver, this.validator, this.defaultOrdering);
125
+ const dynamicMethodsResolver = new dynamic_methods_resolver_1.DynamicMethodsResolver(this.logger, this.adapter, this.mergeWheresResolver, this.validator, this.defaultOrdering, this.vsPlaceholders);
118
126
  let dynamicMethodsCount = 0;
119
127
  let queryMethodsCount = 0;
120
128
  try {
@@ -198,41 +206,62 @@ class VSRepository {
198
206
  return new vs_query_builder_util_1.VSQueryBuilder(db ?? this.adapter.getDbClient(), this.adapter, this.mergeWheresResolver, this.logger);
199
207
  }
200
208
  /**
201
- * Executes a raw query/statement directly against the underlying database.
209
+ * Returns a fluent {@link VSRawQueryBuilder}, for hand-written `SELECT` queries whose SQL is
210
+ * too specific (window functions, vendor-specific syntax, ad-hoc subqueries, ...) for
211
+ * {@link VSRepository.createQueryBuilder}'s `where`/`relations` model.
212
+ *
213
+ * Goes through the same adapter as every other method, and requires the adapter to implement
214
+ * `getPlaceholder()` (see {@link VSSql}). Nothing runs until
215
+ * {@link VSRawQueryBuilder.execute} is called.
202
216
  *
203
- * Use placeholders for values passed via `options.args` — never interpolate
204
- * values directly into `query`, to avoid SQL injection. The placeholder
205
- * syntax depends on the database/driver behind your adapter.
206
- * Set `options.modifying: true` for `INSERT`/`UPDATE`/`DELETE` statements.
207
- * Set `options.singleResult: true` to collapse an array result into its
208
- * first element (`null` if empty) — see {@link VSRepoQueryOptions.singleResult}.
217
+ * @param db Client or transaction to run in. Defaults to the repository's own client — see
218
+ * `VSRawQueryBuilder.setDb()` to change it later, or run inside a `transaction()`.
209
219
  *
210
220
  * @example
211
221
  * ```typescript
212
- * const users = await userRepository.query<User[]>(
213
- * 'SELECT * FROM "user" WHERE email = $1',
214
- * { args: ["joao@email.com"] },
215
- * );
216
- *
217
- * const affected = await userRepository.query<number>(
218
- * 'UPDATE "user" SET active = true WHERE id = $1',
219
- * { args: ["123"], modifying: true },
220
- * );
221
- *
222
- * // Only one row is ever expected here, so `singleResult` collapses the
223
- * // array into a single object (or `null` when no row matches).
224
- * const user = await userRepository.query<User | null>(
225
- * 'SELECT * FROM "user" WHERE id = $1 LIMIT 1',
226
- * { args: ["123"], singleResult: true },
227
- * );
222
+ * const rows = await userRepository
223
+ * .createRawQueryBuilder()
224
+ * .select("id", "name")
225
+ * .from("user")
226
+ * .where(VSSql.sql`active = ${true}`)
227
+ * .orderBy("name")
228
+ * .limit(20)
229
+ * .execute<User[]>();
228
230
  * ```
229
231
  */
230
- async query(query, options) {
231
- if (typeof query !== "string") {
232
- this.fail("'query' must be a valid string", vsrepo_error_type_enum_1.VSRepoErrorType.BASE);
232
+ createRawQueryBuilder(db) {
233
+ return new vs_raw_query_builder_util_1.VSRawQueryBuilder(db ?? this.adapter.getDbClient(), this.adapter, this.logger);
234
+ }
235
+ async query(queryOrSql, options) {
236
+ let query;
237
+ let args = options?.args;
238
+ const sqlFragment = queryOrSql instanceof vs_sql_util_1.VSSql
239
+ ? queryOrSql
240
+ : typeof queryOrSql === "string" && this.vsPlaceholders
241
+ ? vs_placeholder_parser_util_1.VSPlaceholdersParser.parse(queryOrSql, args ?? [])
242
+ : undefined;
243
+ if (sqlFragment) {
244
+ if (!this.adapter.getPlaceholder) {
245
+ this.fail("Your adapter did not implement the 'getPlaceholder' method, required to compile a 'VSSql' fragment or a 'vsPlaceholders' query; try updating your adapter to a newer version.", vsrepo_error_type_enum_1.VSRepoErrorType.VALIDATOR);
246
+ }
247
+ const compiled = sqlFragment.compile(index => this.adapter.getPlaceholder(index));
248
+ query = compiled.text;
249
+ args = compiled.args;
250
+ }
251
+ else if (typeof queryOrSql === "string") {
252
+ query = queryOrSql;
253
+ }
254
+ else {
255
+ this.fail("'query' must be a valid string or a 'VSSql' fragment", vsrepo_error_type_enum_1.VSRepoErrorType.BASE);
233
256
  }
234
- const optionsValidated = this.validator.validateQueryOptions(options);
257
+ const optionsValidated = this.validator.validateQueryOptions({ ...options, args });
235
258
  optionsValidated.db ??= this.getDbClient();
259
+ this.logger.logDebug(`${this.constructor.name} query:`, {
260
+ query,
261
+ args: optionsValidated.args ?? [],
262
+ modifying: optionsValidated.modifying ?? false,
263
+ singleResult: optionsValidated.singleResult ?? false,
264
+ });
236
265
  const start = this.logger.startPerformLog("run query");
237
266
  try {
238
267
  const result = await this.adapter.query(query, {
@@ -1 +1 @@
1
- {"version":3,"file":"VSRepository.js","sourceRoot":"","sources":["../src/VSRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VSRepository.js","sourceRoot":"","sources":["../src/VSRepository.ts"],"names":[],"mappings":"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"}
@@ -9,15 +9,12 @@ import type { QueryMethodOptions } from "../types/decorators/query-method-option
9
9
  * `spreadArgs: true`, via separate positional arguments instead.
10
10
  *
11
11
  * The placeholder syntax depends on the database/driver behind your adapter. Check your adapter's
12
- * documentation for the exact syntax before writing queries.
12
+ * documentation for the exact syntax before writing queries — or set `vsPlaceholders: true` in the
13
+ * `VSRepository` constructor options to use `?1`, `?2`, ... instead, regardless of adapter.
13
14
  *
14
15
  * @param value Raw SQL statement to execute. Use placeholders for the values
15
16
  * that will be passed via `args` — never interpolate values directly into `value`.
16
- * @param options Optional configuration; set `modifying: true` for `INSERT`/`UPDATE`/`DELETE` statements,
17
- * `singleResult: true` to collapse an array result into its first element, and
18
- * `spreadArgs: true` to receive placeholder values as separate arguments instead of a
19
- * single `QueryMethodArg` object — see {@link QueryMethodOptions.singleResult} and
20
- * {@link QueryMethodOptions.spreadArgs}.
17
+ * @param options Optional configuration; set `modifying: true` for `INSERT`/`UPDATE`/`DELETE` statements.
21
18
  *
22
19
  * @example
23
20
  * ```typescript
@@ -27,25 +24,7 @@ import type { QueryMethodOptions } from "../types/decorators/query-method-option
27
24
  *
28
25
  * @QueryMethod('UPDATE "user" SET active = true WHERE id = $1', { modifying: true })
29
26
  * declare activateUser: (arg: QueryMethodArg<[id: string]>) => Promise<number>;
30
- *
31
- * // Only one row is ever expected here, so `singleResult` collapses the
32
- * // array into a single object (or `null` when no row matches).
33
- * @QueryMethod('SELECT * FROM "user" WHERE id = $1 LIMIT 1', { singleResult: true })
34
- * declare findByIdRaw: (arg: QueryMethodArg<[id: string]>) => Promise<User | null>;
35
- *
36
- * // `spreadArgs: true` takes placeholder values as separate arguments,
37
- * // JpaRepository style, instead of a single `{ args: [...] }` object.
38
- * // An optional trailing `withDb(tx)` runs the query in a transaction.
39
- * @QueryMethod('SELECT * FROM "user" WHERE email = $1 AND "userType" = $2', {
40
- * spreadArgs: true,
41
- * })
42
- * declare findByEmailAndType: (
43
- * ...args: QueryArgs<[email: string, userType: string]>
44
- * ) => Promise<User[]>;
45
27
  * }
46
- *
47
- * await userRepository.findByEmailAndType("joao@email.com", "admin");
48
- * await userRepository.findByEmailAndType("joao@email.com", "admin", withDb(tx));
49
28
  * ```
50
29
  *
51
30
  * @publicApi
@@ -15,15 +15,12 @@ const decorators_validator_1 = require("../internal/validators/decorators.valida
15
15
  * `spreadArgs: true`, via separate positional arguments instead.
16
16
  *
17
17
  * The placeholder syntax depends on the database/driver behind your adapter. Check your adapter's
18
- * documentation for the exact syntax before writing queries.
18
+ * documentation for the exact syntax before writing queries — or set `vsPlaceholders: true` in the
19
+ * `VSRepository` constructor options to use `?1`, `?2`, ... instead, regardless of adapter.
19
20
  *
20
21
  * @param value Raw SQL statement to execute. Use placeholders for the values
21
22
  * that will be passed via `args` — never interpolate values directly into `value`.
22
- * @param options Optional configuration; set `modifying: true` for `INSERT`/`UPDATE`/`DELETE` statements,
23
- * `singleResult: true` to collapse an array result into its first element, and
24
- * `spreadArgs: true` to receive placeholder values as separate arguments instead of a
25
- * single `QueryMethodArg` object — see {@link QueryMethodOptions.singleResult} and
26
- * {@link QueryMethodOptions.spreadArgs}.
23
+ * @param options Optional configuration; set `modifying: true` for `INSERT`/`UPDATE`/`DELETE` statements.
27
24
  *
28
25
  * @example
29
26
  * ```typescript
@@ -33,25 +30,7 @@ const decorators_validator_1 = require("../internal/validators/decorators.valida
33
30
  *
34
31
  * @QueryMethod('UPDATE "user" SET active = true WHERE id = $1', { modifying: true })
35
32
  * declare activateUser: (arg: QueryMethodArg<[id: string]>) => Promise<number>;
36
- *
37
- * // Only one row is ever expected here, so `singleResult` collapses the
38
- * // array into a single object (or `null` when no row matches).
39
- * @QueryMethod('SELECT * FROM "user" WHERE id = $1 LIMIT 1', { singleResult: true })
40
- * declare findByIdRaw: (arg: QueryMethodArg<[id: string]>) => Promise<User | null>;
41
- *
42
- * // `spreadArgs: true` takes placeholder values as separate arguments,
43
- * // JpaRepository style, instead of a single `{ args: [...] }` object.
44
- * // An optional trailing `withDb(tx)` runs the query in a transaction.
45
- * @QueryMethod('SELECT * FROM "user" WHERE email = $1 AND "userType" = $2', {
46
- * spreadArgs: true,
47
- * })
48
- * declare findByEmailAndType: (
49
- * ...args: QueryArgs<[email: string, userType: string]>
50
- * ) => Promise<User[]>;
51
33
  * }
52
- *
53
- * await userRepository.findByEmailAndType("joao@email.com", "admin");
54
- * await userRepository.findByEmailAndType("joao@email.com", "admin", withDb(tx));
55
34
  * ```
56
35
  *
57
36
  * @publicApi
@@ -60,9 +39,7 @@ function QueryMethod(value, options) {
60
39
  if (typeof value !== "string") {
61
40
  throw new VSRepoError_1.VSRepoError(`'value' must be a valid string`, vsrepo_error_type_enum_1.VSRepoErrorType.DECORATOR);
62
41
  }
63
- const validatedConfig = options
64
- ? decorators_validator_1.DecoratorsValidator.validateQueryMethodOptions(options)
65
- : { modifying: false };
42
+ const validatedConfig = decorators_validator_1.DecoratorsValidator.validateQueryMethodOptions(options);
66
43
  return (target, propertyKey) => {
67
44
  const methods = Reflect.getMetadata(query_methods_key_constant_1.QUERY_METHODS_KEY, target) ?? [];
68
45
  methods.push({ ...validatedConfig, value, propertyKey });
@@ -1 +1 @@
1
- {"version":3,"file":"query-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/query-method.decorator.ts"],"names":[],"mappings":";;AA0DA,kCAgBC;AA1ED,uDAAoD;AACpD,iGAAqF;AACrF,qFAA2E;AAC3E,sFAAkF;AAIlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,OAA4B;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,yBAAW,CAAC,gCAAgC,EAAE,wCAAe,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,eAAe,GAAuB,OAAO;QAC/C,CAAC,CAAC,0CAAmB,CAAC,0BAA0B,CAAC,OAAO,CAAC;QACzD,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAE3B,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,OAAO,GAAkB,OAAO,CAAC,WAAW,CAAC,8CAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAEzD,OAAO,CAAC,cAAc,CAAC,8CAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"query-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/query-method.decorator.ts"],"names":[],"mappings":";;AAqCA,kCAcC;AAnDD,uDAAoD;AACpD,iGAAqF;AACrF,qFAA2E;AAC3E,sFAAkF;AAIlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,OAA4B;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,yBAAW,CAAC,gCAAgC,EAAE,wCAAe,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,eAAe,GAAuB,0CAAmB,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAEpG,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,OAAO,GAAkB,OAAO,CAAC,WAAW,CAAC,8CAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAEzD,OAAO,CAAC,cAAc,CAAC,8CAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { VSRepoError } from "./errors/VSRepoError.js";
5
5
  export { VSRepoAdapterError } from "./errors/VSRepoAdapterError.js";
6
6
  export { DbArg } from "./internal/utils/db-arg.util.js";
7
7
  export { VSQueryBuilder } from "./internal/utils/vs-query-builder.util.js";
8
+ export { VSRawQueryBuilder } from "./internal/utils/vs-raw-query-builder.util.js";
9
+ export { VSSql } from "./internal/utils/vs-sql.util.js";
8
10
  export { DynamicMethod } from "./decorators/dynamic-method.decorator.js";
9
11
  export { QueryMethod } from "./decorators/query-method.decorator.js";
10
12
  export { VSRepoErrorType } from "./internal/enums/vsrepo-error-type.enum.js";
@@ -41,4 +43,6 @@ export type { NumericKeys } from "./types/utils/numeric-keys.type.js";
41
43
  export type { NumericLike } from "./types/utils/numeric-like.type.js";
42
44
  export type { RestrictMethodOptions } from "./types/utils/restrict-method-options.type.js";
43
45
  export type { QueryArgs } from "./types/utils/query-args.type.js";
46
+ export type { VSRawQueryBuilderTarget } from "./types/vsrepo/vs-raw-query-builder-target.type.js";
47
+ export type { VSRawQueryBuilderCteQuery } from "./types/vsrepo/vs-raw-query-builder-cte-query.type.js";
44
48
  export { VSLogger } from "./internal/utils/vs-logger.util.js";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VSLogger = exports.withDb = exports.AdapterErrorCode = exports.TransactionIsolationLevel = exports.VSLogLevel = exports.VSRepoErrorType = exports.QueryMethod = exports.DynamicMethod = exports.VSQueryBuilder = exports.DbArg = exports.VSRepoAdapterError = exports.VSRepoError = exports.VSRepoAdapter = exports.VSRepository = void 0;
3
+ exports.VSLogger = exports.withDb = exports.AdapterErrorCode = exports.TransactionIsolationLevel = exports.VSLogLevel = exports.VSRepoErrorType = exports.QueryMethod = exports.DynamicMethod = exports.VSSql = exports.VSRawQueryBuilder = exports.VSQueryBuilder = exports.DbArg = exports.VSRepoAdapterError = exports.VSRepoError = exports.VSRepoAdapter = exports.VSRepository = void 0;
4
4
  require("reflect-metadata");
5
5
  // Public classes / constructors
6
6
  var VSRepository_js_1 = require("./VSRepository.js");
@@ -15,6 +15,10 @@ var db_arg_util_js_1 = require("./internal/utils/db-arg.util.js");
15
15
  Object.defineProperty(exports, "DbArg", { enumerable: true, get: function () { return db_arg_util_js_1.DbArg; } });
16
16
  var vs_query_builder_util_js_1 = require("./internal/utils/vs-query-builder.util.js");
17
17
  Object.defineProperty(exports, "VSQueryBuilder", { enumerable: true, get: function () { return vs_query_builder_util_js_1.VSQueryBuilder; } });
18
+ var vs_raw_query_builder_util_js_1 = require("./internal/utils/vs-raw-query-builder.util.js");
19
+ Object.defineProperty(exports, "VSRawQueryBuilder", { enumerable: true, get: function () { return vs_raw_query_builder_util_js_1.VSRawQueryBuilder; } });
20
+ var vs_sql_util_js_1 = require("./internal/utils/vs-sql.util.js");
21
+ Object.defineProperty(exports, "VSSql", { enumerable: true, get: function () { return vs_sql_util_js_1.VSSql; } });
18
22
  // Decorators
19
23
  var dynamic_method_decorator_js_1 = require("./decorators/dynamic-method.decorator.js");
20
24
  Object.defineProperty(exports, "DynamicMethod", { enumerable: true, get: function () { return dynamic_method_decorator_js_1.DynamicMethod; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAE1B,gCAAgC;AAChC,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,0DAAsD;AAA7C,6GAAA,WAAW,OAAA;AACpB,wEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAC3B,kEAAwD;AAA/C,uGAAA,KAAK,OAAA;AACd,sFAA2E;AAAlE,0HAAA,cAAc,OAAA;AAEvB,aAAa;AACb,wFAAyE;AAAhE,4HAAA,aAAa,OAAA;AACtB,oFAAqE;AAA5D,wHAAA,WAAW,OAAA;AAEpB,eAAe;AACf,wFAA6E;AAApE,4HAAA,eAAe,OAAA;AACxB,8EAAmE;AAA1D,kHAAA,UAAU,OAAA;AACnB,4GAAiG;AAAxF,gJAAA,yBAAyB,OAAA;AAClC,0FAA+E;AAAtE,8HAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,oEAA0D;AAAjD,yGAAA,MAAM,OAAA;AAsCf,oBAAoB;AACpB,wEAA8D;AAArD,6GAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAE1B,gCAAgC;AAChC,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,0DAAsD;AAA7C,6GAAA,WAAW,OAAA;AACpB,wEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAC3B,kEAAwD;AAA/C,uGAAA,KAAK,OAAA;AACd,sFAA2E;AAAlE,0HAAA,cAAc,OAAA;AACvB,8FAAkF;AAAzE,iIAAA,iBAAiB,OAAA;AAC1B,kEAAwD;AAA/C,uGAAA,KAAK,OAAA;AAEd,aAAa;AACb,wFAAyE;AAAhE,4HAAA,aAAa,OAAA;AACtB,oFAAqE;AAA5D,wHAAA,WAAW,OAAA;AAEpB,eAAe;AACf,wFAA6E;AAApE,4HAAA,eAAe,OAAA;AACxB,8EAAmE;AAA1D,kHAAA,UAAU,OAAA;AACnB,4GAAiG;AAAxF,gJAAA,yBAAyB,OAAA;AAClC,0FAA+E;AAAtE,8HAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,oEAA0D;AAAjD,yGAAA,MAAM,OAAA;AAwCf,oBAAoB;AACpB,wEAA8D;AAArD,6GAAA,QAAQ,OAAA"}
@@ -10,11 +10,12 @@ export declare class DynamicMethodsResolver<T, K> {
10
10
  private readonly mergeWheresResolver;
11
11
  private readonly validator;
12
12
  private readonly defaultOrdering?;
13
- constructor(logger: VSLogger, adapter: VSRepoAdapter<T>, mergeWheresResolver: MergeWheresResolver<T>, validator: VSRepoValidator<T, K>, defaultOrdering?: Ordering<T> | undefined);
14
- private keywordTemplate;
15
- private fieldModifiers;
16
- private operators;
17
- private customizationModifiers;
13
+ private readonly vsPlaceholders;
14
+ constructor(logger: VSLogger, adapter: VSRepoAdapter<T>, mergeWheresResolver: MergeWheresResolver<T>, validator: VSRepoValidator<T, K>, defaultOrdering?: Ordering<T> | undefined, vsPlaceholders?: boolean);
15
+ private static keywordTemplate;
16
+ private static fieldModifiers;
17
+ private static operators;
18
+ private static customizationModifiers;
18
19
  private logAndThrowError;
19
20
  private validateIndexedArg;
20
21
  private resolveDynamicMethodInfo;