litedbmodel 0.22.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,7 +27,7 @@ litedbmodel keeps SQL visible and controllable: generated queries are intentiona
27
27
 
28
28
  ### Refactoring-friendly, without sacrificing SQL control
29
29
  - Column references are **symbol-based** (`Model.column`) so IDE rename/find-references work.
30
- - Conditions are **type-safe tuples** (`[Column, value]`), and an ESLint plugin catches mistakes TS cannot.
30
+ - Conditions are **type-safe tuples** (`[Column, value]`), with a `sql` tagged template for operators (`[sql\`${Col} > ?\`, value]`). An ESLint plugin catches mistakes TS cannot.
31
31
 
32
32
  > See [Design Philosophy](./docs/BENCHMARK.md#litedbmodels-design-philosophy) for detailed comparison with query-centric ORMs.
33
33
 
@@ -93,6 +93,17 @@ npm install mysql2 # MySQL
93
93
  npm install better-sqlite3 # SQLite
94
94
  ```
95
95
 
96
+ ### Code Generation (optional)
97
+
98
+ [**litedbmodel-gen**](https://www.npmjs.com/package/litedbmodel-gen) generates model column definitions from SQL DDL (`schema.sql`). Column definitions inside markers are auto-updated when the schema changes; hand-written code (relations, methods, exports) is preserved.
99
+
100
+ ```bash
101
+ npm install -D litedbmodel-gen embedoc
102
+ npx embedoc init && npx litedbmodel-gen init
103
+ npx embedoc generate --datasource schema # scaffold model files
104
+ npx embedoc build # sync column definitions
105
+ ```
106
+
96
107
  ## Quick Start
97
108
 
98
109
  ```typescript
@@ -216,6 +227,31 @@ Use explicit type decorators when auto-inference isn't sufficient:
216
227
  @column.json<Settings>() settings?: Settings; // JSON with type
217
228
  ```
218
229
 
230
+ ### Date vs DateTime: Important Distinction
231
+
232
+ TypeScript has only one `Date` type, but databases distinguish between:
233
+
234
+ | DB Column Type | Decorator | Example |
235
+ |----------------|-----------|---------|
236
+ | `TIMESTAMP` / `DATETIME` | `@column()` or `@column.datetime()` | `created_at`, `updated_at` |
237
+ | `DATE` | `@column.date()` | `birth_date`, `settlement_date` |
238
+
239
+ **⚠️ Important**: `@column()` with `Date` type is treated as `TIMESTAMP/DATETIME`. For date-only columns (no time component), you **must** use `@column.date()` explicitly.
240
+
241
+ ```typescript
242
+ // ✅ Correct usage
243
+ @column() created_at?: Date; // TIMESTAMP column (datetime)
244
+ @column.datetime() updated_at?: Date; // TIMESTAMP column (explicit)
245
+ @column.date() settlement_date?: Date; // DATE column (date only)
246
+
247
+ // ❌ Wrong: will cause type mismatch errors
248
+ @column() settlement_date?: Date; // Treated as TIMESTAMP, not DATE!
249
+ ```
250
+
251
+ **Serialization behavior** (PostgreSQL):
252
+ - `@column()` / `@column.datetime()` → ISO 8601 UTC: `2024-06-15T10:30:00.000Z`
253
+ - `@column.date()` → UTC date only: `2024-06-15`
254
+
219
255
  ---
220
256
 
221
257
  ## CRUD Operations
@@ -432,34 +468,55 @@ await User.updateMany([
432
468
 
433
469
  ## Type-Safe Conditions
434
470
 
435
- Conditions use `[Column, value]` tuples for compile-time validation. For operators, use `${Model.column}` in template literals—the ESLint plugin catches incorrect column references.
471
+ ### Column Tuples (recommended for equality/simple conditions)
472
+
473
+ The simplest and most type-safe form. The value type is validated at compile time:
436
474
 
437
475
  ```typescript
438
- // Equality: compile-time type-safe via Column symbols
439
- await User.find([[User.status, 'active']]);
476
+ await User.find([
477
+ [User.status, 'active'], // status = 'active'
478
+ [User.is_active, true], // is_active = TRUE
479
+ ]);
480
+ await User.find([[User.email, 'john@example.com']]);
481
+ ```
482
+
483
+ ### `sql` Tagged Template (for operators, LIKE, BETWEEN, IS NULL, etc.)
440
484
 
441
- // Operators: ESLint plugin validates ${Model.column} references
442
- await User.find([[`${User.age} > ?`, 18]]);
443
- await User.find([[`${User.age} BETWEEN ? AND ?`, [18, 65]]]);
444
- await User.find([[`${User.name} LIKE ?`, '%test%']]);
445
- await User.find([[`${User.status} IN (?)`, ['a', 'b']]]);
485
+ Use the `sql` tagged template for conditions that need operators. The `sql` tag extracts the Column reference, producing a type-safe fragment.
486
+ See [sql Tagged Template Literal](./docs/sql-tagged-template.md) for full reference.
446
487
 
447
- // NULL checks: ESLint plugin validates column reference
448
- await User.find([[`${User.deleted_at} IS NULL`]]);
488
+ ```typescript
489
+ import { sql } from 'litedbmodel';
449
490
 
450
- // OR conditions: inner tuples are compile-time type-safe
491
+ await User.find([
492
+ [sql`${User.age} > ?`, 18], // age > 18
493
+ [sql`${User.age} BETWEEN ? AND ?`, [18, 65]], // age BETWEEN 18 AND 65
494
+ [sql`${User.name} LIKE ?`, '%test%'], // name LIKE '%test%'
495
+ [sql`${User.status} IN (?)`, ['active', 'pending']], // status IN ('active', 'pending')
496
+ sql`${User.deleted_at} IS NULL`, // deleted_at IS NULL (no value needed)
497
+ ]);
498
+ ```
499
+
500
+ Values can also be embedded directly in the template. The `sql` tag automatically extracts them as parameterized values:
501
+
502
+ ```typescript
503
+ await User.find([
504
+ sql`${User.age} > ${18}`,
505
+ sql`${User.name} LIKE ${'%test%'}`,
506
+ sql`${User.deleted_at} IS NULL`,
507
+ ]);
508
+ ```
509
+
510
+ ### OR Conditions and ORDER BY
511
+
512
+ ```typescript
451
513
  await User.find([
452
514
  [User.is_active, true],
453
515
  User.or(
454
516
  [[User.role, 'admin']],
455
517
  [[User.role, 'moderator']],
456
518
  ),
457
- ]);
458
-
459
- // ORDER BY
460
- await User.find([[User.is_active, true]], {
461
- order: User.created_at.desc()
462
- });
519
+ ], { order: User.created_at.desc() });
463
520
  ```
464
521
 
465
522
  > **ESLint Plugin:** Use `litedbmodel/eslint-plugin` to catch mistakes that TypeScript cannot:
@@ -555,7 +612,7 @@ Works for conditions too:
555
612
  ```typescript
556
613
  await User.find([
557
614
  [User.deleted, false],
558
- [`${User.name} LIKE ?`, query.name ? `%${query.name}%` : SKIP],
615
+ query.name ? [sql`${User.name} LIKE ?`, `%${query.name}%`] : SKIP,
559
616
  [User.status, query.status ?? SKIP],
560
617
  ]);
561
618
  ```
@@ -940,20 +997,19 @@ const rankings = await UserRanking.query(`
940
997
 
941
998
  ### DBModel.execute() - Non-Model Operations
942
999
 
943
- Use `execute()` for DDL, maintenance, and operations that don't return model instances:
1000
+ Use `execute()` for DDL, maintenance, and operations that don't return model instances.
1001
+ Accepts either raw SQL strings or `sql` tagged templates:
944
1002
 
945
1003
  ```typescript
946
- // Materialized view refresh
947
- await DBModel.execute('REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales_summary');
948
-
949
- // Database maintenance
950
- await DBModel.execute('VACUUM ANALYZE orders');
1004
+ import { sql } from 'litedbmodel';
951
1005
 
952
- // Stored procedure / function calls
953
- await DBModel.execute('SELECT process_daily_aggregates($1)', [targetDate]);
954
- await DBModel.execute('SELECT pg_notify($1, $2)', ['events', JSON.stringify(payload)]);
1006
+ // With sql tag — parameters are co-located
1007
+ await DBModel.execute(sql`SELECT process_daily_aggregates(${targetDate})`);
1008
+ await DBModel.execute(sql`SELECT pg_notify(${'events'}, ${JSON.stringify(payload)})`);
955
1009
 
956
- // DDL operations
1010
+ // Raw SQL strings for DDL and maintenance
1011
+ await DBModel.execute('REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales_summary');
1012
+ await DBModel.execute('VACUUM ANALYZE orders');
957
1013
  await DBModel.execute('CREATE INDEX CONCURRENTLY idx_orders_date ON orders(created_at)');
958
1014
  ```
959
1015
 
@@ -1005,8 +1061,8 @@ export const UserStats = UserStatsModel.asModel();
1005
1061
 
1006
1062
  // Use find() with additional conditions
1007
1063
  const topContributors = await UserStats.find([
1008
- [`${UserStats.post_count} >= ?`, 10],
1009
- [`${UserStats.last_activity} > ?`, lastWeek],
1064
+ [sql`${UserStats.post_count} >= ?`, 10],
1065
+ [sql`${UserStats.last_activity} > ?`, lastWeek],
1010
1066
  ], { order: UserStats.post_count.desc(), limit: 100 });
1011
1067
  ```
1012
1068
 
@@ -1034,11 +1090,13 @@ ORDER BY post_count DESC
1034
1090
  LIMIT 100
1035
1091
  ```
1036
1092
 
1037
- ### Parameterized Queries
1093
+ ### Parameterized Queries with `sql` Tag
1038
1094
 
1039
- For queries that need runtime parameters, define a factory method that encapsulates the query:
1095
+ For queries that need runtime parameters, use the `sql` tagged template with `withQuery()`. Parameters are co-located with SQL — no manual `$1`/`$2` numbering or DB dialect differences:
1040
1096
 
1041
1097
  ```typescript
1098
+ import { sql } from 'litedbmodel';
1099
+
1042
1100
  @model('sales_report')
1043
1101
  class SalesReportModel extends DBModel {
1044
1102
  @column() product_id?: number;
@@ -1047,72 +1105,49 @@ class SalesReportModel extends DBModel {
1047
1105
  @column() total_revenue?: number;
1048
1106
  @column() order_count?: number;
1049
1107
 
1050
- // Factory method - encapsulates query construction
1051
1108
  static forPeriod(startDate: string, endDate: string) {
1052
- return this.withQuery({
1053
- sql: `
1054
- SELECT
1055
- p.id AS product_id,
1056
- p.name AS product_name,
1057
- SUM(oi.quantity) AS total_quantity,
1058
- SUM(oi.quantity * oi.unit_price) AS total_revenue,
1059
- COUNT(DISTINCT o.id) AS order_count
1060
- FROM products p
1061
- INNER JOIN order_items oi ON p.id = oi.product_id
1062
- INNER JOIN orders o ON oi.order_id = o.id
1063
- WHERE o.status = 'completed'
1064
- AND o.created_at >= $1
1065
- AND o.created_at < $2
1066
- GROUP BY p.id, p.name
1067
- `,
1068
- params: [startDate, endDate],
1069
- });
1109
+ return this.withQuery(sql`
1110
+ SELECT
1111
+ p.id AS product_id,
1112
+ p.name AS product_name,
1113
+ SUM(oi.quantity) AS total_quantity,
1114
+ SUM(oi.quantity * oi.unit_price) AS total_revenue,
1115
+ COUNT(DISTINCT o.id) AS order_count
1116
+ FROM products p
1117
+ INNER JOIN order_items oi ON p.id = oi.product_id
1118
+ INNER JOIN orders o ON oi.order_id = o.id
1119
+ WHERE o.status = 'completed'
1120
+ AND o.created_at >= ${startDate}
1121
+ AND o.created_at < ${endDate}
1122
+ GROUP BY p.id, p.name
1123
+ `);
1070
1124
  }
1071
1125
  }
1072
1126
  export const SalesReport = SalesReportModel.asModel();
1073
1127
 
1074
- // Usage: Clean, encapsulated API
1128
+ // Usage
1075
1129
  const Q1Report = SalesReport.forPeriod('2024-01-01', '2024-04-01');
1076
1130
  const topProducts = await Q1Report.find([
1077
- [`${SalesReport.total_revenue} > ?`, 10000],
1131
+ [sql`${SalesReport.total_revenue} > ?`, 10000],
1078
1132
  ], { order: SalesReport.total_revenue.desc() });
1079
1133
  ```
1080
1134
 
1081
- ### Generated SQL
1082
-
1083
- ```sql
1084
- WITH sales_report AS (
1085
- SELECT
1086
- p.id AS product_id,
1087
- p.name AS product_name,
1088
- SUM(oi.quantity) AS total_quantity,
1089
- SUM(oi.quantity * oi.unit_price) AS total_revenue,
1090
- COUNT(DISTINCT o.id) AS order_count
1091
- FROM products p
1092
- INNER JOIN order_items oi ON p.id = oi.product_id
1093
- INNER JOIN orders o ON oi.order_id = o.id
1094
- WHERE o.status = 'completed'
1095
- AND o.created_at >= $1
1096
- AND o.created_at < $2
1097
- GROUP BY p.id, p.name
1098
- )
1099
- SELECT * FROM sales_report
1100
- WHERE total_revenue > $3
1101
- ORDER BY total_revenue DESC
1102
- ```
1135
+ The `sql` tag automatically converts interpolated values to `?` placeholders and extracts them as parameters. The internal dialect conversion (`?` → `$1`/`$2` for PostgreSQL) is handled transparently.
1103
1136
 
1104
- ### Type-Safe Column References
1137
+ ### Type-Safe Column References in QUERY
1105
1138
 
1106
- Use Column symbols in your QUERY for refactoring safety:
1139
+ Use the `sql` tag with Column and `TABLE_NAME` references for refactoring safety. Columns and table names are embedded directly in SQL; they are not parameterized:
1107
1140
 
1108
1141
  ```typescript
1142
+ import { sql } from 'litedbmodel';
1143
+
1109
1144
  @model('user_activity')
1110
1145
  class UserActivityModel extends DBModel {
1111
1146
  @column() user_id?: number;
1112
1147
  @column() user_name?: string;
1113
1148
  @column() total_posts?: number;
1114
1149
 
1115
- static QUERY = `
1150
+ static QUERY = sql`
1116
1151
  SELECT
1117
1152
  ${User.id} AS user_id,
1118
1153
  ${User.name} AS user_name,
package/dist/Column.d.ts CHANGED
@@ -18,6 +18,7 @@
18
18
  * ```
19
19
  */
20
20
  import { DBNotNullValue, DBCast, DBCastArray } from './DBValues';
21
+ import { type SqlFragment, type SqlTypedFragment, type SqlCondition } from './SqlFragment';
21
22
  /**
22
23
  * Sort direction for ORDER BY
23
24
  * @internal
@@ -419,6 +420,18 @@ export declare class Conditions<Model> {
419
420
  * Add a raw condition with template literal (e.g., `${User.age} > ?`).
420
421
  */
421
422
  addRaw(condition: string, value?: unknown): this;
423
+ /**
424
+ * Add a type-safe sql-tagged condition.
425
+ *
426
+ * @example
427
+ * ```typescript
428
+ * const where = new Conditions<User>();
429
+ * where.addSql(sql`${User.age} > ?`, 18);
430
+ * where.addSql(sql`${User.deleted_at} IS NULL`);
431
+ * ```
432
+ */
433
+ addSql<V>(fragment: SqlTypedFragment<V, Model>, value: V): this;
434
+ addSql(fragment: SqlTypedFragment<any, Model>): this;
422
435
  /**
423
436
  * Add an OR condition group.
424
437
  */
@@ -505,7 +518,7 @@ export declare function pairsToRecord(pairs: readonly (readonly [Column<any, any
505
518
  * @deprecated Use CondOf<M> for type-safe conditions
506
519
  * @internal
507
520
  */
508
- export type Cond = readonly [Column<any, any>, unknown] | readonly [Column<any, any>[], unknown[][]] | readonly [string, unknown] | readonly [string];
521
+ export type Cond = readonly [Column<any, any>, unknown] | readonly [Column<any, any>[], unknown[][]] | readonly [SqlTypedFragment<any, any>, unknown] | readonly [string, unknown] | readonly [string];
509
522
  /**
510
523
  * Extract instance type from a model class type.
511
524
  * If M is already an instance type, returns M unchanged.
@@ -530,7 +543,7 @@ type ModelInstance<M> = M extends new (...args: any[]) => infer I ? I : M;
530
543
  *
531
544
  * @internal
532
545
  */
533
- export type CondOf<M> = readonly [Column<any, ModelInstance<M>>, unknown] | readonly [Column<any, ModelInstance<M>>[], unknown[][]] | readonly [string, unknown] | readonly [string];
546
+ export type CondOf<M> = readonly [Column<any, ModelInstance<M>>, unknown] | readonly [Column<any, ModelInstance<M>>[], unknown[][]] | readonly [SqlTypedFragment<any, ModelInstance<M>>, unknown] | readonly [string, unknown] | readonly [string];
534
547
  /**
535
548
  * OR condition marker (legacy)
536
549
  * @deprecated Use OrCondOf<M> for type-safe OR conditions
@@ -554,13 +567,13 @@ export interface OrCondOf<M> {
554
567
  * @deprecated Use CondElementOf<M> for type-safe conditions
555
568
  * @internal
556
569
  */
557
- export type CondElement = Cond | OrCond | SkipType;
570
+ export type CondElement = Cond | OrCond | SkipType | SqlCondition | SqlTypedFragment | SqlFragment;
558
571
  /**
559
572
  * Type-safe condition element for a specific model.
560
573
  * @typeParam M - The model class type
561
574
  * @internal
562
575
  */
563
- export type CondElementOf<M> = CondOf<M> | OrCondOf<M> | SkipType;
576
+ export type CondElementOf<M> = CondOf<M> | OrCondOf<M> | SkipType | SqlCondition<ModelInstance<M>> | SqlTypedFragment<any, ModelInstance<M>> | SqlFragment;
564
577
  /**
565
578
  * Array of condition elements (legacy).
566
579
  * @deprecated Use CondsOf<M> for type-safe conditions
@@ -596,11 +609,6 @@ export declare function createOrCond<M>(condGroups: readonly CondsOf<M>[]): OrCo
596
609
  * @internal
597
610
  */
598
611
  export declare function isOrCond(cond: CondElement | CondElementOf<any>): cond is OrCond | OrCondOf<any>;
599
- /**
600
- * Convert condition tuples to a ConditionObject.
601
- * Handles regular conditions, OR conditions, and SKIP.
602
- * @internal
603
- */
604
612
  export declare function condsToRecord(conditions: Conds): Record<string, unknown>;
605
613
  export {};
606
614
  //# sourceMappingURL=Column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
package/dist/Column.js CHANGED
@@ -30,6 +30,7 @@ exports.createOrCond = createOrCond;
30
30
  exports.isOrCond = isOrCond;
31
31
  exports.condsToRecord = condsToRecord;
32
32
  const DBValues_1 = require("./DBValues");
33
+ const SqlFragment_1 = require("./SqlFragment");
33
34
  /**
34
35
  * Type-safe ORDER BY column reference.
35
36
  * Returned by `Column.desc()`, `Column.asc()` methods.
@@ -367,6 +368,16 @@ class Conditions {
367
368
  }
368
369
  return this;
369
370
  }
371
+ addSql(fragment, value) {
372
+ if (value !== undefined) {
373
+ this.conds.push([fragment, value]);
374
+ }
375
+ else {
376
+ // Value-free condition (IS NULL, etc.) — push as direct SqlTypedFragment
377
+ this.conds.push(fragment);
378
+ }
379
+ return this;
380
+ }
370
381
  /**
371
382
  * Add an OR condition group.
372
383
  */
@@ -459,9 +470,12 @@ function condToKeyValue(cond) {
459
470
  const columns = keyOrCol;
460
471
  const tuples = value;
461
472
  const columnNames = columns.map(col => col.columnName);
462
- // Use special key for tuple IN, the actual SQL is generated by dbTupleIn
463
473
  return ['__tuple__', (0, DBValues_1.dbTupleIn)(columnNames, tuples)];
464
474
  }
475
+ // Handle SqlTypedFragment tuple: [sql`${Col} > ?`, value]
476
+ if ((0, SqlFragment_1.isSqlTypedFragment)(keyOrCol)) {
477
+ return [keyOrCol.sql, value];
478
+ }
465
479
  if (typeof keyOrCol === 'string') {
466
480
  return [keyOrCol, value];
467
481
  }
@@ -486,6 +500,21 @@ function condToKeyValue(cond) {
486
500
  * Handles regular conditions, OR conditions, and SKIP.
487
501
  * @internal
488
502
  */
503
+ /**
504
+ * Convert a SqlCondition/SqlFragment/SqlTypedFragment to key-value pair(s).
505
+ * @internal
506
+ */
507
+ function sqlFragmentToKeyValue(frag) {
508
+ if (frag.params.length === 0) {
509
+ // Value-free condition (e.g., IS NULL)
510
+ return [frag.sql, true];
511
+ }
512
+ if (frag.params.length === 1) {
513
+ return [frag.sql, frag.params[0]];
514
+ }
515
+ // Multiple params (e.g., BETWEEN ? AND ?)
516
+ return [frag.sql, [...frag.params]];
517
+ }
489
518
  function condsToRecord(conditions) {
490
519
  const result = {};
491
520
  for (const cond of conditions) {
@@ -494,15 +523,21 @@ function condsToRecord(conditions) {
494
523
  continue;
495
524
  }
496
525
  if (isOrCond(cond)) {
497
- // OR condition: convert each group and wrap with DBOrConditions
498
526
  const orGroups = cond.conditions.map(group => condsToRecord(group));
499
- // Use special key for OR conditions (will be processed by DBConditions)
500
527
  result['__or__'] = orGroups;
501
528
  }
529
+ else if ((0, SqlFragment_1.isAnySqlFragment)(cond)) {
530
+ // Direct SqlCondition / SqlFragment / SqlTypedFragment as condition element
531
+ const kv = sqlFragmentToKeyValue(cond);
532
+ if (kv !== null) {
533
+ const [key, value] = kv;
534
+ result[key] = value;
535
+ }
536
+ }
502
537
  else {
503
538
  const kv = condToKeyValue(cond);
504
539
  if (kv === null)
505
- continue; // Skip conditions with SKIP value
540
+ continue;
506
541
  const [key, value] = kv;
507
542
  result[key] = value;
508
543
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Column.js","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Column.js","sourceRoot":"","sources":["../src/Column.ts"],"names":[],"mappings":"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"}
package/dist/DBModel.d.ts CHANGED
@@ -7,6 +7,7 @@ import { type ConditionObject } from './DBConditions';
7
7
  import { DBHandler, type DBConfig, type DBConnection } from './DBHandler';
8
8
  import type { SelectOptions, InsertOptions, UpdateOptions, DeleteOptions, UpdateManyOptions, TransactionOptions, LimitConfig, DBConfigOptions, PkeyResult } from './types';
9
9
  import { type Column, type OrderSpec, type CVs, type Conds, type CondsOf, type OrCondOf, type ColumnsOf } from './Column';
10
+ import { type SqlFragment, type SqlCondition, type SqlTypedFragment } from './SqlFragment';
10
11
  import { type MiddlewareClass, type MiddlewareConfig, type CreatedMiddlewareClass, type ExecuteResult } from './Middleware';
11
12
  import { type KeyPair, type CompositeKeyPairs } from './decorators';
12
13
  import { LazyRelationContext, type RelationType } from './LazyRelation';
@@ -124,7 +125,7 @@ export declare abstract class DBModel {
124
125
  * `;
125
126
  * ```
126
127
  */
127
- static QUERY: string | null;
128
+ static QUERY: string | SqlFragment | SqlCondition | SqlTypedFragment | null;
128
129
  /**
129
130
  * Query parameters for QUERY (set via withQuery())
130
131
  * @internal
@@ -573,6 +574,20 @@ export declare abstract class DBModel {
573
574
  * @internal
574
575
  */
575
576
  static getCTEAlias(): string;
577
+ /**
578
+ * Resolve QUERY to a SQL string and params.
579
+ * Handles both string and SqlFragment QUERY types.
580
+ * @internal
581
+ */
582
+ protected static _resolveQuery(): {
583
+ sql: string;
584
+ params: unknown[];
585
+ } | null;
586
+ /**
587
+ * Get the QUERY SQL string (resolves SqlFragment if needed).
588
+ * @internal
589
+ */
590
+ protected static _getQuerySQL(): string | null;
576
591
  /**
577
592
  * Get query parameters (set via withQuery()).
578
593
  * @internal
@@ -585,31 +600,32 @@ export declare abstract class DBModel {
585
600
  /**
586
601
  * Create a new model class bound to specific query parameters.
587
602
  * Used for parameterized query-based models.
603
+ * Accepts either `{ sql, params }` object or a `SqlFragment` from `sql` tagged template.
588
604
  *
589
- * @param queryConfig - Query configuration with sql and params
605
+ * @param queryConfig - Query configuration with sql and params, or SqlFragment
590
606
  * @returns A new model class with bound parameters
591
607
  *
592
608
  * @example
593
609
  * ```typescript
594
- * class SalesReportModel extends DBModel {
595
- * static QUERY = '...'; // Base query template
610
+ * import { sql } from 'litedbmodel';
596
611
  *
612
+ * class SalesReportModel extends DBModel {
597
613
  * static forPeriod(startDate: string, endDate: string) {
598
- * return this.withQuery({
599
- * sql: `SELECT ... WHERE date >= $1 AND date < $2 ...`,
600
- * params: [startDate, endDate],
601
- * });
614
+ * return this.withQuery(sql`
615
+ * SELECT p.id, SUM(oi.quantity) AS total
616
+ * FROM products p
617
+ * JOIN order_items oi ON p.id = oi.product_id
618
+ * WHERE oi.created_at >= ${startDate} AND oi.created_at < ${endDate}
619
+ * GROUP BY p.id
620
+ * `);
602
621
  * }
603
622
  * }
604
- *
605
- * const Q1Report = SalesReport.forPeriod('2024-01-01', '2024-04-01');
606
- * const results = await Q1Report.find([...]);
607
623
  * ```
608
624
  */
609
625
  static withQuery<T extends typeof DBModel>(this: T, queryConfig: {
610
626
  sql: string;
611
627
  params?: unknown[];
612
- }): T;
628
+ } | SqlFragment | SqlCondition | SqlTypedFragment): T;
613
629
  /**
614
630
  * Get table name for UPDATE/DELETE queries.
615
631
  * Query-based models cannot be updated/deleted directly.
@@ -969,22 +985,29 @@ export declare abstract class DBModel {
969
985
  static updateMany<T extends typeof DBModel>(this: T, rows: readonly (readonly (readonly [Column<any, any>, any])[])[], options: UpdateManyOptions): Promise<PkeyResult | null>;
970
986
  /**
971
987
  * Execute raw SQL query.
988
+ * Accepts either a SQL string with params, or a `SqlFragment` from `sql` tagged template.
972
989
  *
973
- * @param sql - SQL query
974
- * @param params - Query parameters
990
+ * @param sql - SQL query string or SqlFragment
991
+ * @param params - Query parameters (ignored when SqlFragment is passed)
975
992
  * @returns QueryResult with rows, rowCount
976
993
  *
977
994
  * @example
978
995
  * ```typescript
996
+ * // Traditional
979
997
  * const result = await DBModel.execute(
980
998
  * 'SELECT * FROM users WHERE id = $1',
981
999
  * [1]
982
1000
  * );
983
- * console.log(result.rows);
984
- * console.log(result.rowCount);
1001
+ *
1002
+ * // With sql tag
1003
+ * import { sql } from 'litedbmodel';
1004
+ * const result = await DBModel.execute(
1005
+ * sql`SELECT process_daily_aggregates(${targetDate})`
1006
+ * );
985
1007
  * ```
986
1008
  */
987
1009
  static execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
1010
+ static execute(fragment: SqlFragment | SqlCondition | SqlTypedFragment): Promise<ExecuteResult>;
988
1011
  /**
989
1012
  * Execute raw SQL and return model instances.
990
1013
  * The SQL should return columns matching the model's properties.