@warlock.js/cascade 4.5.0 → 4.6.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 (78) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/cjs/index.cjs +1012 -104
  3. package/cjs/index.cjs.map +1 -1
  4. package/esm/contracts/database-driver.contract.d.mts +27 -4
  5. package/esm/contracts/database-driver.contract.d.mts.map +1 -1
  6. package/esm/contracts/database-id-generator.contract.d.mts +38 -0
  7. package/esm/contracts/database-id-generator.contract.d.mts.map +1 -1
  8. package/esm/contracts/index.d.mts +1 -1
  9. package/esm/contracts/query-builder.contract.d.mts +27 -0
  10. package/esm/contracts/query-builder.contract.d.mts.map +1 -1
  11. package/esm/data-source/data-source.d.mts +21 -1
  12. package/esm/data-source/data-source.d.mts.map +1 -1
  13. package/esm/data-source/data-source.mjs +22 -0
  14. package/esm/data-source/data-source.mjs.map +1 -1
  15. package/esm/drivers/mongodb/mongodb-driver.d.mts +2 -2
  16. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -1
  17. package/esm/drivers/mongodb/mongodb-driver.mjs +5 -4
  18. package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -1
  19. package/esm/drivers/mongodb/mongodb-id-generator.d.mts +98 -48
  20. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -1
  21. package/esm/drivers/mongodb/mongodb-id-generator.mjs +153 -59
  22. package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -1
  23. package/esm/drivers/mongodb/mongodb-query-builder.d.mts +25 -0
  24. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -1
  25. package/esm/drivers/mongodb/mongodb-query-builder.mjs +32 -0
  26. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -1
  27. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +36 -0
  28. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -1
  29. package/esm/drivers/mongodb/mongodb-query-parser.mjs +80 -1
  30. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -1
  31. package/esm/drivers/postgres/postgres-dialect.d.mts +32 -4
  32. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -1
  33. package/esm/drivers/postgres/postgres-dialect.mjs +57 -4
  34. package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -1
  35. package/esm/drivers/postgres/postgres-driver.d.mts +83 -1
  36. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -1
  37. package/esm/drivers/postgres/postgres-driver.mjs +129 -16
  38. package/esm/drivers/postgres/postgres-driver.mjs.map +1 -1
  39. package/esm/drivers/postgres/postgres-query-builder.d.mts +32 -0
  40. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -1
  41. package/esm/drivers/postgres/postgres-query-builder.mjs +47 -1
  42. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -1
  43. package/esm/drivers/postgres/postgres-query-parser.d.mts +13 -2
  44. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -1
  45. package/esm/drivers/postgres/postgres-query-parser.mjs +21 -4
  46. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -1
  47. package/esm/drivers/postgres/types.d.mts +15 -0
  48. package/esm/drivers/postgres/types.d.mts.map +1 -1
  49. package/esm/drivers/sql/sql-dialect.contract.d.mts +20 -0
  50. package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -1
  51. package/esm/expressions/aggregate-expressions.d.mts +71 -34
  52. package/esm/expressions/aggregate-expressions.d.mts.map +1 -1
  53. package/esm/expressions/aggregate-expressions.mjs +80 -7
  54. package/esm/expressions/aggregate-expressions.mjs.map +1 -1
  55. package/esm/expressions/column-expressions.d.mts +193 -0
  56. package/esm/expressions/column-expressions.d.mts.map +1 -0
  57. package/esm/expressions/column-expressions.mjs +152 -0
  58. package/esm/expressions/column-expressions.mjs.map +1 -0
  59. package/esm/index.d.mts +3 -2
  60. package/esm/index.mjs +2 -1
  61. package/esm/model/methods/write-methods.d.mts +29 -0
  62. package/esm/model/methods/write-methods.d.mts.map +1 -0
  63. package/esm/model/methods/write-methods.mjs +164 -2
  64. package/esm/model/methods/write-methods.mjs.map +1 -1
  65. package/esm/model/model.d.mts +64 -3
  66. package/esm/model/model.d.mts.map +1 -1
  67. package/esm/model/model.mjs +65 -3
  68. package/esm/model/model.mjs.map +1 -1
  69. package/esm/writer/database-writer.d.mts.map +1 -1
  70. package/esm/writer/database-writer.mjs +4 -3
  71. package/esm/writer/database-writer.mjs.map +1 -1
  72. package/llms-full.txt +111 -8
  73. package/llms.txt +3 -3
  74. package/package.json +4 -4
  75. package/skills/README.md +3 -3
  76. package/skills/aggregate-data/SKILL.md +43 -3
  77. package/skills/manage-transactions/SKILL.md +45 -2
  78. package/skills/perform-atomic-ops/SKILL.md +23 -3
@@ -56,6 +56,25 @@ type InsertResult<TDocument = unknown> = {
56
56
  type UpdateResult = {
57
57
  modifiedCount: number;
58
58
  };
59
+ /**
60
+ * Result returned by a raw query execution ({@link DriverContract.query}).
61
+ *
62
+ * Mirrors the shape both the `pg` and MongoDB drivers already return: an
63
+ * array of typed `rows` and the affected `rowCount` (`null` for statements
64
+ * that don't report one). `command` / `fields` are optional driver extras
65
+ * (the `pg` driver populates them; MongoDB does not).
66
+ *
67
+ * @typeParam T - The row shape (defaults to a generic record).
68
+ */
69
+ type RawQueryResult<T = Record<string, unknown>> = {
70
+ /** Rows returned by the query, typed as `T`. */readonly rows: T[]; /** Rows affected by INSERT/UPDATE/DELETE, or `null` when not reported. */
71
+ readonly rowCount: number | null; /** Command executed (SELECT, INSERT, …) — driver-dependent. */
72
+ readonly command?: string; /** Result column metadata — driver-dependent. */
73
+ readonly fields?: ReadonlyArray<{
74
+ readonly name: string;
75
+ readonly dataTypeID: number;
76
+ }>;
77
+ };
59
78
  /**
60
79
  * Database-agnostic update operations.
61
80
  *
@@ -318,13 +337,17 @@ interface DriverContract {
318
337
  getSQLSerializer(): SQLSerializer;
319
338
  /**
320
339
  * Execute a raw SQL query.
321
- * Used by the runner to execute phase-ordered SQL.
322
340
  *
341
+ * Transaction-aware: when called inside a `transaction()` scope the driver
342
+ * routes the query through the active transaction client automatically.
343
+ * Used by the runner to execute phase-ordered SQL and by `Model.raw()`.
344
+ *
345
+ * @typeParam T - The expected row shape.
323
346
  * @param sql - SQL query string
324
347
  * @param params - Optional query parameters
325
- * @returns Query result
348
+ * @returns The query result (`rows` + `rowCount`)
326
349
  */
327
- query<T = unknown>(sql: string, params?: unknown[]): Promise<any>;
350
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<RawQueryResult<T>>;
328
351
  /**
329
352
  * Create a new database.
330
353
  *
@@ -439,5 +462,5 @@ type DropDatabaseOptions = {
439
462
  ifExists?: boolean;
440
463
  };
441
464
  //#endregion
442
- export { CreateDatabaseOptions, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, DropDatabaseOptions, InsertResult, TransactionContext, UpdateOperations, UpdateResult };
465
+ export { CreateDatabaseOptions, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, DropDatabaseOptions, InsertResult, RawQueryResult, TransactionContext, UpdateOperations, UpdateResult };
443
466
  //# sourceMappingURL=database-driver.contract.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-driver.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/contracts/database-driver.contract.ts"],"mappings":";;;;;;;;;;;KASY,WAAA;;KAGA,mBAAA,OAA0B,IAAI;;UAGzB,yBAAA;EANM;EAQrB,OAAA,EAAS,QAAA;EALC;EAOV,MAAA,IAAU,OAAA;;EAEV,QAAA,IAAY,OAAA;AAAA;AANd;;;;;;AAAA,UAeiB,kBAAA;EATI;;;;;;;;;AAAA;AASrB;;;;AAmB0B;AAI1B;;;EAJE,QAAA,CAAS,MAAe;AAAA;;KAId,YAAA;EACV,QAAA,EAAU,SAAS;AAAA;AAIrB;AAAA,KAAY,YAAA;EACV,aAAa;AAAA;AAAA;AA6Bf;;;;;;;;;;;;;;;;;;;;;;;;AAYgB;AAzCD,KA6BH,gBAAA;EAkBmB,uBAhB7B,IAAA,GAAO,MAAA,mBAwBQ;EAtBf,MAAA,GAAS,MAAA,oBAkDwB;EAhDjC,IAAA,GAAO,MAAA,kBAsDI;EApDX,IAAA,GAAO,MAAA,kBAwDwB;EAtD/B,KAAA,GAAQ,MAAA,mBA2DkC;EAzD1C,KAAA,GAAQ,MAAA;AAAA;;;;UAMO,cAAA;EAuEH;;;;;;;EAAA,SA/DH,IAAA,EAAM,cAAA;EA6EL;;;EAAA,SAxED,SAAA,EAAW,uBAAA;EA2EjB;;;;;;;;;;;;;;;;;;;;;EAAA,SApDM,aAAA,GAAgB,OAAA,CAAQ,aAAA;EAoIrB;EAAA,SAjIH,WAAA;EAkIN;EA/HH,OAAA,IAAW,OAAA;EAqIC;EAnIZ,UAAA,IAAc,OAAA;EAyIH;EAvIX,SAAA,sBAA+B,MAAA;EAyI5B;;;EApIH,SAAA,CAAU,IAAA,EAAM,MAAA,oBAA0B,MAAA;EA4JA;;;EAvJ1C,WAAA,CAAY,IAAA,EAAM,MAAA,oBAA0B,MAAA;EA+NhC;;;;;EAxNZ,eAAA,CAAgB,IAAA,EAAM,MAAA,oBAA0B,oBAAA;EA+NtC;EA5NV,EAAA,CAAG,KAAA,EAAO,WAAA,EAAa,QAAA,EAAU,mBAAA;EA8NrB;EA3NZ,MAAA,CACE,KAAA,UACA,QAAA,EAAU,MAAA,mBACV,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,YAAA;EAwNR;EArNH,UAAA,CACE,KAAA,UACA,SAAA,EAAW,MAAA,qBACX,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,YAAA;EAuNQ;EApNnB,MAAA,CACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,MAAA,EAAQ,gBAAA,EACR,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,YAAA;EA+N0C;EA5NrD,UAAA,CACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,MAAA,EAAQ,gBAAA,EACR,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,YAAA;EA+OoD;EA5O/D,OAAA,cACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,QAAA,EAAU,MAAA,mBACV,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,CAAA;EAwPgD;EArP3D,gBAAA,cACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,MAAA,EAAQ,MAAA,mBACR,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,CAAA;EAuQM;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAzOjB,MAAA,cACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,QAAA,EAAU,MAAA,mBACV,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,CAAA;EApFX;;;;;;;;;;;;;;;;EAsGA,gBAAA,cACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,CAAA;EA7FX;EAgGA,MAAA,CACE,KAAA,UACA,MAAA,GAAS,MAAA,mBACT,OAAA,GAAU,MAAA,oBACT,OAAA;EAlGU;EAqGb,UAAA,CACE,KAAA,UACA,MAAA,GAAS,MAAA,mBACT,OAAA,GAAU,MAAA,oBACT,OAAA;EAxGS;;;;;;;;;;;;;;;;;;;EA6HZ,aAAA,CAAc,KAAA,UAAe,OAAA,GAAU,MAAA,oBAA0B,OAAA;EA7GrD;EAgHZ,YAAA,cAA0B,KAAA,WAAgB,oBAAA,CAAqB,CAAA;EA/G5D;;;;;;;;;;;;;;;;;;;;;;;;EAyIH,gBAAA,CAAiB,OAAA,GAAU,MAAA,oBAA0B,OAAA,CAAQ,yBAAA;EA3FtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwIP,WAAA,IACE,EAAA,GAAK,GAAA,EAAK,kBAAA,KAAuB,OAAA,CAAQ,CAAA,GACzC,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,CAAA;EAhDgB;EAmD3B,MAAA,CACE,KAAA,UACA,MAAA,EAAQ,MAAA,mBACR,UAAA,EAAY,gBAAA,EACZ,OAAA,GAAU,MAAA,oBACT,OAAA,CAAQ,YAAA;EAxD0C;EA2DrD,WAAA,IAAe,mBAAA;EAdf;EAiBA,eAAA,IAAmB,uBAAA;EAhBP;;;;EAsBZ,gBAAA,IAN0C,aAAA;EAf9B;;;;;;;;EA+BZ,KAAA,cAAmB,GAAA,UAAa,MAAA,eAAqB,OAAA;EAxBnD;;;;;;;;;;;;;;;;;;EAgDF,cAAA,CAAe,IAAA,UAAc,OAAA,GAAU,qBAAA,GAAwB,OAAA;EAAlC;;;;;;;;;;;;;;;EAiB7B,YAAA,CAAa,IAAA,UAAc,OAAA,GAAU,mBAAA,GAAsB,OAAA;EAuDzC;;;;;AAeM;AAM1B;;;;;;;;EA5DE,cAAA,CAAe,IAAA,WAAe,OAAA;EAoEzB;AAMP;;;;EAnEE,aAAA,IAAiB,OAAA;;;;;;;;;;;;;EAkBjB,SAAA,CAAU,IAAA,WAAe,OAAA;;;;;;;;;;;;;EAczB,iBAAA,CAAkB,IAAA,WAAe,OAAA;;;;;;;;;;;;;;EAejC,aAAA,IAAiB,OAAA;AAAA;;;;KAMP,qBAAA;2DAEV,QAAA;EAEA,QAAA;EAEA,MAAA;EAEA,KAAA;AAAA;;;;KAMU,mBAAA;wDAEV,KAAA;EAEA,QAAQ;AAAA"}
1
+ {"version":3,"file":"database-driver.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/contracts/database-driver.contract.ts"],"mappings":"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"}
@@ -63,6 +63,44 @@ interface IdGeneratorContract {
63
63
  * ```
64
64
  */
65
65
  generateNextId(options: GenerateIdOptions): Promise<number>;
66
+ /**
67
+ * Reserve a contiguous block of `count` ids in a SINGLE atomic operation.
68
+ *
69
+ * This is the batch counterpart of {@link generateNextId}, intended for
70
+ * multi-row inserts (`createMany`): instead of N separate counter round-trips
71
+ * (one per row), the counter is advanced by `count * incrementIdBy` in one
72
+ * atomic step and the whole block is handed back at once.
73
+ *
74
+ * Semantics:
75
+ * - Returns the `count` reserved ids in ascending order. The FIRST id of the
76
+ * first-ever block for a table equals `initialId` (same anchor as
77
+ * {@link generateNextId}); subsequent blocks continue from the stored
78
+ * counter, so blocks never overlap — even across concurrent callers.
79
+ * - Goal of "update the stored last id" is satisfied by the same atomic op:
80
+ * advancing the counter by `count * incrementIdBy` leaves the persisted
81
+ * counter equal to the block's LAST id, so {@link getLastId} stays
82
+ * consistent with no extra write. Do NOT pair this with {@link setLastId}.
83
+ * - **Not transactional.** Like {@link generateNextId} (and SQL `SERIAL`),
84
+ * the counter write is standalone and durable immediately; if a surrounding
85
+ * transaction rolls back, the reserved block is consumed and left as a gap.
86
+ *
87
+ * Optional: drivers without a counter (SQL with native `AUTO_INCREMENT` /
88
+ * `SERIAL`) do not implement this — callers must feature-detect it and fall
89
+ * back to per-row {@link generateNextId}.
90
+ *
91
+ * @param options - `GenerateIdOptions` plus the block `count` (`>= 1`)
92
+ * @returns The reserved ids in ascending order (length `count`)
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * // Reserve 100 ids in one atomic op for a bulk insert
97
+ * const ids = await idGenerator.generateNextIds({ table: "users", count: 100 });
98
+ * // ids[0] is the first, ids[99] the last; getLastId("users") === ids[99]
99
+ * ```
100
+ */
101
+ generateNextIds?(options: GenerateIdOptions & {
102
+ count: number;
103
+ }): Promise<number[]>;
66
104
  /**
67
105
  * Get the last generated ID for a table.
68
106
  *
@@ -1 +1 @@
1
- {"version":3,"file":"database-id-generator.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/contracts/database-id-generator.contract.ts"],"mappings":";;AAGA;;KAAY,iBAAA;EAAiB,gCAE3B,KAAA,UAEA;EAAA,SAAA,WAEa;EAAb,aAAA;AAAA;;;;;;;;;;;;;;;;;;;;;AAoG6C;;;;;;;;;;;UAlE9B,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;EAwBf,cAAA,CAAe,OAAA,EAAS,iBAAA,GAAoB,OAAA;;;;;;;;;;;;;;;EAgB5C,SAAA,CAAU,KAAA,WAAgB,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1B,SAAA,CAAU,KAAA,UAAe,EAAA,WAAa,OAAA;AAAA"}
1
+ {"version":3,"file":"database-id-generator.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/contracts/database-id-generator.contract.ts"],"mappings":";;AAGA;;KAAY,iBAAA;EAAiB,gCAE3B,KAAA,UAEA;EAAA,SAAA,WAEa;EAAb,aAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyI6C;;;;UAvG9B,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;EAwBf,cAAA,CAAe,OAAA,EAAS,iBAAA,GAAoB,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC5C,eAAA,EAAiB,OAAA,EAAS,iBAAA;IAAsB,KAAA;EAAA,IAAkB,OAAA;;;;;;;;;;;;;;;EAgBlE,SAAA,CAAU,KAAA,WAAgB,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1B,SAAA,CAAU,KAAA,UAAe,EAAA,WAAa,OAAA;AAAA"}
@@ -2,7 +2,7 @@ import { DriverBlueprintContract, TableIndexInformation } from "./driver-bluepri
2
2
  import { ColumnDefinition, ColumnType, ForeignKeyDefinition, FullTextIndexOptions, GeoIndexOptions, IndexDefinition, MigrationDriverContract, MigrationDriverFactory, VectorIndexOptions } from "./migration-driver.contract.mjs";
3
3
  import { ChunkCallback, CursorPaginationOptions, CursorPaginationResult, DriverQuery, GroupByInput, HavingInput, JoinOptions, OrderDirection, PaginationOptions, PaginationResult, QueryBuilderContract, RawExpression, WhereCallback, WhereObject, WhereOperator } from "./query-builder.contract.mjs";
4
4
  import { SyncAdapterContract, SyncInstruction } from "./sync-adapter.contract.mjs";
5
- import { CreateDatabaseOptions, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, DropDatabaseOptions, InsertResult, TransactionContext, UpdateOperations, UpdateResult } from "./database-driver.contract.mjs";
5
+ import { CreateDatabaseOptions, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, DropDatabaseOptions, InsertResult, RawQueryResult, TransactionContext, UpdateOperations, UpdateResult } from "./database-driver.contract.mjs";
6
6
  import { GenerateIdOptions, IdGeneratorContract } from "./database-id-generator.contract.mjs";
7
7
  import { RemoverContract, RemoverOptions, RemoverResult } from "./database-remover.contract.mjs";
8
8
  import { RestorerContract, RestorerOptions, RestorerResult } from "./database-restorer.contract.mjs";
@@ -1360,6 +1360,33 @@ interface QueryBuilderContract<T = unknown> {
1360
1360
  * ```
1361
1361
  */
1362
1362
  groupBy(fields: GroupByInput, aggregates: Record<string, RawExpression>): this;
1363
+ /**
1364
+ * Portable date-bucketed GROUP BY.
1365
+ *
1366
+ * Buckets `column` to the given granularity and groups by the truncated
1367
+ * value, exposing the bucket under the column's own name in the result.
1368
+ * Optional `aggregates` follow the same rules as the two-arg {@link groupBy}
1369
+ * (`$agg.*` helpers or driver-native raw expressions).
1370
+ *
1371
+ * - **PostgreSQL**: `date_trunc('<unit>', "column")`
1372
+ * - **MongoDB**: `{ $dateTrunc: { date: "$column", unit } }` in the `$group` `_id`
1373
+ *
1374
+ * @param column - The date/timestamp column to bucket
1375
+ * @param unit - The bucket granularity (`day` / `week` / `month` / `year`)
1376
+ * @param aggregates - Optional aggregate projections keyed by output alias
1377
+ *
1378
+ * @example
1379
+ * ```typescript
1380
+ * import { $agg, $expr } from "@warlock.js/cascade";
1381
+ *
1382
+ * await Order.query()
1383
+ * .groupByDate("created_at", "month", {
1384
+ * revenue: $agg.sum($expr.mul("price", "quantity")),
1385
+ * })
1386
+ * .get();
1387
+ * ```
1388
+ */
1389
+ groupByDate(column: string, unit: "day" | "week" | "month" | "year", aggregates?: Record<string, RawExpression>): this;
1363
1390
  /**
1364
1391
  * Apply raw grouping expressions.
1365
1392
  *
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/contracts/query-builder.contract.ts"],"mappings":";;;;;KAGY,cAAA;AAAZ;;;AAAA,KAKY,WAAA;EALc,kCAOxB,KAAA,UAFqB;EAIrB,UAAA,WAcmB;EAZnB,QAAA,WAFA;EAIA,YAAA;EAEA,IAAA,kDAEA;EAAA,KAAA,WAEU;EAAV,OAAA,GAAU,MAAA,mBAIV;EAFA,MAAA,aAIA;EAFA,UAAA,GAAa,MAAM,mBAEX;EAAR,QAAA;AAAA;;;;KAMU,gBAAA;EACV,IAAA,EAAM,CAAC;EACP,UAAA;IACE,KAAA;IACA,IAAA;IACA,KAAA;IACA,KAAA;EAAA;AAAA;AAOJ;;;AAAA,KAAY,sBAAA;EACV,IAAA,EAAM,CAAC;EACP,UAAA;IACE,OAAA;IACA,OAAA;IACA,UAAA;IACA,UAAA;EAAA;AAAA;;AAAU;AAOd;KAAY,aAAA,OACV,IAAA,EAAM,CAAA,IACN,UAAA,aACG,OAAO;;;;KAKA,uBAAA;EACV,MAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;AAAA;AAJF;;;AAAA,KAUY,iBAAA;EACV,IAAA;EACA,KAAK;AAAA;;;AARC;KAcI,aAAA;AAAA,KAwBA,WAAA,GAAc,MAAM;;;;KAKpB,aAAA,OAAoB,OAAA,EAAS,oBAAoB,CAAC,CAAA;AAL9D;;;AAAA,KAUY,YAAA,uBAGR,MAAA,oBACA,KAAA,CAAM,MAAA;AAdsB;AAKhC;;AALgC,KAmBpB,WAAA,GACR,MAAA,qBACC,KAAA,UAAe,KAAA,cACf,KAAA,UAAe,QAAA,EAAU,aAAa,EAAE,KAAA;;;;KAKjC,aAAA,YAAyB,MAAM;;;AAtBqB;AAKhE;;;;;;;;;;;;AAIgB;AAKhB;KA2BY,WAAA;wDAEV,KAAA,WA5BE;EA8BF,QAAA,cA7BkB;EA+BlB,QAAA,cA9BkB;EAgClB,MAAA;AAAA;;AAhCgD;AAKlD;;;;AAA2C;UAqC1B,oBAAA;EAlBM;;;EAsBrB,KAAA;EAlBA;;;;EAuBA,OAAA,CAAQ,QAAA,GAAW,IAAA,OAAW,KAAA;EATf;;;;;EAgBf,UAAA,CAAW,QAAA,GAAW,KAAA,kBAAuB,OAAA;EAwBX;;;;;EAjBlC,WAAA,CAAY,QAAA,GAAW,OAAA,SAAgB,OAAA,iBAAwB,OAAA;EA6C1C;;;;;EAtCrB,SAAA,CAAU,QAAA,GAAW,OAAA,SAAgB,OAAA,iBAAwB,OAAA;EA8L/B;;;;EApL9B,mBAAA,GAAsB,GAAA,SAAY,qBAAA;EAqNK;;;;EA/MvC,oBAAA,GAAuB,GAAA,SAAY,kBAAA;EAoPG;;;EA/OtC,oBAAA,GAAuB,GAAA;EA8TN;;;EAzTjB,aAAA;EA4VqB;;;;;;EAhVrB,kBAAA,GAAqB,GAAA,qBAAwB,KAAA,EAAO,oBAAA;EA6WpB;;;;;;;;;;;EAhWhC,cAAA,GAAiB,GAAA;IAukBD,wFAnkBZ,QAAA,UA8kBkB;IA5kBlB,aAAA;EAAA;EA6nBwC;;;;EArnB5C,aAAA,GAAgB,GAAA;IAGZ,KAAA;IACA,IAAA;IACA,KAAA;IACA,QAAA;IACA,UAAA;IACA,QAAA;IACA,UAAA;IACA,YAAA;IACA,WAAA;IACA,MAAA;EAAA;EAo0Be;;;;EA5zBnB,mBAAA,GAAsB,MAAA;EAs9BN;;;EAj9BhB,UAAA;EAymC+C;;;;;;;;;;;;;;;;;;;;;;;;;EA9kC/C,QAAA,IAAY,SAAA;EAm4CS;;;;;;;;;;;;;;;EAl3CrB,kBAAA,IAAsB,UAAA;EAo8CZ;;;;;;;;;;;EAv7CV,mBAAA;EAkgD8C;;;;;;;;;;;;;;;;EAh/C9C,KAAA,CAAM,SAAA,aAAsB,IAAA;EAnLN;;;;;;;;;;;;;;;;EAyMtB,KAAA,CAAM,KAAA,UAAe,KAAA;EACrB,KAAA,CAAM,KAAA,UAAe,QAAA,EAAU,aAAA,EAAe,KAAA;EAC9C,KAAA,CAAM,UAAA,EAAY,WAAA;EAClB,KAAA,CAAM,QAAA,EAAU,aAAA,CAAc,CAAA;EAzKP;;;;;;;EAkLvB,QAAA,CAAS,UAAA,EAAY,aAAA,EAAe,QAAA;EAhJhC;;;;;;EAwJJ,UAAA,CAAW,UAAA,EAAY,aAAA,EAAe,QAAA;EAxIlC;;;;;;EAgJJ,WAAA,CAAY,KAAA,UAAe,QAAA,EAAU,aAAA,EAAe,MAAA;EAlIpD;;;;;;EA0IA,aAAA,CAAc,KAAA,UAAe,QAAA,EAAU,aAAA,EAAe,MAAA;EA5EtD;;;;;;;;;EAuFA,YAAA,CAAa,WAAA,EAAa,KAAA,EAAO,IAAA,UAAc,QAAA,EAAU,aAAA,EAAe,KAAA;EA9CnD;;;;;;EAsDrB,mBAAA,CAAoB,KAAA,UAAe,WAAA,UAAqB,WAAA;EApD1B;;;;;;EA4D9B,SAAA,CAAU,KAAA,UAAe,KAAA,EAAO,IAAA;EA3CT;;;EAgDvB,eAAA,CAAgB,KAAA,UAAe,KAAA,EAAO,IAAA;EAxC1B;;;EA6CZ,eAAA,CAAgB,KAAA,UAAe,KAAA,EAAO,IAAA;EArCtC;;;EA0CA,cAAA,CAAe,KAAA,UAAe,KAAA,EAAO,IAAA;EA1CiB;;;;;;EAkDtD,SAAA,CAAU,KAAA,UAAe,KAAA;EAvCZ;;;EA4Cb,QAAA,CAAS,KAAA,UAAe,KAAA;EApCgC;;;EAyCxD,UAAA,CAAW,KAAA,UAAe,KAAA;EAjCD;;;EAsCzB,SAAA,CAAU,KAAA,UAAe,KAAA;EAjCM;;;EAsC/B,iBAAA,CAAkB,IAAA,UAAc,KAAA;EAjCD;;;EAsC/B,sBAAA,CAAuB,IAAA,UAAc,KAAA;EAjCP;;;EAsC9B,oBAAA,CAAqB,IAAA;EAzBrB;;;;;;EAiCA,eAAA,CAAgB,IAAA,UAAc,QAAA,EAAU,aAAA,EAAe,KAAA;EAvB7C;;;EA4BV,gBAAA,CAAiB,IAAA;EAvBe;;;EA4BhC,iBAAA,CAAkB,IAAA;EAlBlB;;;;;;EA0BA,gBAAA,CAAiB,KAAA,UAAe,QAAA,EAAU,aAAA,EAAe,KAAA;EAbzD;;;EAkBA,OAAA,CAAQ,KAAA;EALR;;;EAUA,QAAA,CAAS,MAAA,EAAQ,KAAA;EAVwC;;;EAezD,SAAA,CAAU,KAAA;EALO;;;EAUjB,SAAA,CAAU,KAAA;EAAV;;;EAKA,aAAA,CAAc,MAAA,qBAA2B,KAAA;EAAA;;;EAKzC,eAAA,CAAgB,MAAA,qBAA2B,KAAA;EAK3C;;;EAAA,WAAA,CAAY,KAAA,UAAe,KAAA;EAKR;;;EAAnB,QAAA,CAAS,QAAA,EAAU,aAAA,CAAc,CAAA;EAKZ;;;EAArB,UAAA,CAAW,QAAA,EAAU,aAAA,CAAc,CAAA;EASb;;;;;;;EAAtB,WAAA,CAAY,QAAA,EAAU,aAAA,CAAc,CAAA;EAiB5B;;;;;;;EARR,cAAA,CAAe,QAAA,EAAU,aAAA,CAAc,CAAA;EAUnB;;;;;;EAFpB,OAAA,CAAQ,KAAA,UAAe,KAAA;EACvB,OAAA,CAAQ,KAAA,UAAe,QAAA,EAAU,aAAA,EAAe,KAAA;EAChD,OAAA,CAAQ,UAAA,EAAY,WAAA;EACpB,OAAA,CAAQ,QAAA,EAAU,aAAA,CAAc,CAAA;EAgBrB;;;;;;EARX,OAAA,CAAQ,KAAA,UAAe,MAAA;EAgCV;;;;;;EAxBb,UAAA,CAAW,KAAA,UAAe,MAAA;EAwCQ;;;;;;EAhClC,SAAA,CAAU,KAAA;EAgDqB;;;;;;EAxC/B,YAAA,CAAa,KAAA;EAgEb;;;;;;EAxDA,YAAA,CAAa,KAAA,UAAe,KAAA;EAgEI;;;;;;EAxDhC,eAAA,CAAgB,KAAA,UAAe,KAAA;EAwEnB;;;;;;EAhEZ,SAAA,CAAU,KAAA,UAAe,OAAA,EAAS,MAAA;EAqFxB;;;;;;EA7EV,YAAA,CAAa,KAAA,UAAe,OAAA;EAkG5B;;;;;;EA1FA,eAAA,CAAgB,KAAA,UAAe,KAAA;EAkGsB;;;;;;EA1FrD,kBAAA,CAAmB,KAAA,UAAe,KAAA;EA0GM;;;;;;EAlGxC,aAAA,CAAc,KAAA,UAAe,KAAA;EAgH7B;;;;;;EAxGA,gBAAA,CAAiB,KAAA,UAAe,KAAA;EAiHvB;;;;;;EAzGT,gBAAA,CAAiB,KAAA,UAAe,KAAA,GAAQ,IAAA,EAAM,IAAA;EA6H/B;;;;;;EArHf,mBAAA,CAAoB,KAAA,UAAe,KAAA,GAAQ,IAAA,EAAM,IAAA;EAkI3B;;;;;;EA1HtB,WAAA,CAAY,KAAA;EAuIZ;;;;;;EA/HA,cAAA,CAAe,KAAA;EAmJf;;;;;;;;;;EAvIA,SAAA,CAAU,KAAA,UAAe,IAAA;EACzB,SAAA,CAAU,KAAA,UAAe,QAAA,iCAAyC,IAAA;EAwJhE;;;;;;EAhJF,UAAA,CAAW,KAAA,UAAe,OAAA,GAAU,WAAA;EA4JlC;;;;;;;;;;;EA/IF,kBAAA,CAAmB,KAAA,UAAe,KAAA,WAAgB,GAAA;EA2KtB;;;;;;EAnK5B,qBAAA,CAAsB,KAAA,UAAe,KAAA,WAAgB,GAAA;EAgLxC;;;;;;EAxKb,oBAAA,CAAqB,KAAA,UAAe,KAAA,WAAgB,GAAA;EA4LpD;;;;;;EApLA,wBAAA,CAAyB,KAAA,UAAe,KAAA,WAAgB,GAAA;EA2MxD;;;;;;EA/LA,MAAA,CAAO,MAAA;EACP,MAAA,CAAO,MAAA,EAAQ,MAAA;EACf,MAAA,IAAU,MAAA,EAAQ,KAAA;EAClB,MAAA,IAAU,IAAA,EAAM,KAAA;EAgPF;;;;;;EAxOd,QAAA,CAAS,KAAA,UAAe,KAAA;EA+PN;;;;;;EAvPlB,SAAA,CAAU,UAAA,EAAY,aAAA,EAAe,QAAA;EA8QlB;;;;;;;;;EAnQnB,aAAA,CACE,WAAA,EAAa,KAAA;IACX,KAAA;IACA,UAAA,EAAY,aAAA;IACZ,QAAA;EAAA;EA4Sc;;;;;;EAlSlB,SAAA,CAAU,UAAA,EAAY,aAAA,EAAe,KAAA;EAoVF;;;EA/UnC,YAAA,CAAa,UAAA,EAAY,aAAA,EAAe,KAAA;EAmXhC;;;;;;EA3WR,eAAA,CACE,KAAA,UACA,SAAA,8DACA,KAAA;EAsZc;;;;;;EA7YhB,YAAA,CAAa,KAAA,UAAe,KAAA;EAgbf;;;;;;EAxab,WAAA,CAAY,KAAA,UAAe,KAAA;EAidzB;;;;;;;;;;;;;EAlcF,UAAA,CACE,KAAA,EAAO,KAAA;IAAQ,IAAA,EAAM,aAAA;IAAe,IAAA,EAAM,aAAA;EAAA,IAC1C,SAAA,EAAW,aAAA,YACX,KAAA;EAyhBF;;;;;;EAhhBA,UAAA,CACE,SAAA,EAAW,aAAA,EACX,SAAA,EAAW,aAAA,YACX,SAAA,EAAW,aAAA,YACX,KAAA;EA4iBF;;;;;;;;EAjiBA,sBAAA,CAAuB,QAAA,GAAW,UAAA,EAAY,MAAA;EA0iBlC;;;;;;EAliBZ,UAAA,CAAW,IAAA,UAAc,KAAA;EA4jBzB;;;;;;EApjBA,aAAA,CAAc,IAAA,UAAc,UAAA,EAAY,aAAA,EAAe,KAAA;EAykBjD;;;EApkBN,YAAA,CAAa,IAAA;EAolBN;;;;;;EA5kBP,YAAA,CAAa,MAAA,EAAQ,KAAA,UAAe,aAAA,GAAgB,KAAA;EAymBpC;;;;;;EAjmBhB,cAAA,CAAe,MAAA,EAAQ,KAAA,UAAe,aAAA,GAAgB,KAAA;EAsoBxB;;;;;;;;;;EA1nB9B,YAAA,CAAa,IAAA,EAAM,aAAA;EA2oBG;;;;;;EAnoBtB,QAAA,CAAS,MAAA;EA4oBC;;;EAvoBV,WAAA;EAwpBK;;;EAnpBL,SAAA;EA0qBA;;;EArqBA,aAAA;EAqqBkD;;;;;;;EA5pBlD,cAAA,CAAe,MAAA;EAurBb;;;;;;EA/qBF,SAAA,CAAU,MAAA;EA8rBV;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA5pBA,IAAA,CAAK,KAAA,UAAe,UAAA,UAAoB,YAAA;EACxC,IAAA,CAAK,OAAA,EAAS,WAAA;EAotBV;;;;;;;;;;;;;;;;;;;;EA9rBJ,QAAA,CAAS,KAAA,UAAe,UAAA,UAAoB,YAAA;EAC5C,QAAA,CAAS,OAAA,EAAS,WAAA;EAuvBlB;;;;;;;;;;;;;;;;;;;;EAjuBA,SAAA,CAAU,KAAA,UAAe,UAAA,UAAoB,YAAA;EAC7C,SAAA,CAAU,OAAA,EAAS,WAAA;EAkxByB;;;;;;;;;;;;;;;;;;;;EA5vB5C,SAAA,CAAU,KAAA,UAAe,UAAA,UAAoB,YAAA;EAC7C,SAAA,CAAU,OAAA,EAAS,WAAA;EA80BO;;;AAAmC;;;;;;;;;;;;;;;;EAzzB7D,QAAA,CAAS,KAAA,UAAe,UAAA,UAAoB,YAAA;EAC5C,QAAA,CAAS,OAAA,EAAS,WAAA;;;;;;;;;;;;;;;;;;;EAoBlB,SAAA,CAAU,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BV,OAAA,CAAQ,UAAA,EAAY,aAAA,EAAe,QAAA;;;;;;;;;;;;;;;;;;;;;;;EA4BnC,IAAA,CAAK,QAAA;;;;;;;EAQL,IAAA,IAAQ,SAAA;;;;;;;;;;;;;;;;;;;;;;EAuBR,IAAA,CAAK,QAAA,UAAkB,UAAA,GAAa,KAAA,EAAO,oBAAA;;;;;;;;;;;;;;;;;;;;;;EAuB3C,IAAA,CAAK,SAAA,EAAW,MAAA,qBAA2B,KAAA,EAAO,oBAAA;;;;;;;;;;;;;;;;;;;EAoBlD,SAAA,CAAU,QAAA;;;;;;;;;;;;;;EAeV,SAAA,IAAa,SAAA;;;;;;;;;;;EAYb,SAAA,CAAU,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BV,SAAA,CACE,SAAA,EAAW,MAAA,2BAAiC,KAAA,EAAO,oBAAA;;;;;;;;;;;;;EAerD,GAAA,CAAI,QAAA;;;;;;;;;;;;;;;;;;EAmBJ,GAAA,CAAI,QAAA,UAAkB,QAAA,UAAkB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA0BxC,QAAA,CAAS,QAAA,UAAkB,QAAA,GAAW,KAAA,EAAO,oBAAA;;;;;;;;;;;;;;;EAgB7C,UAAA,CAAW,QAAA,UAAkB,QAAA,GAAW,KAAA,EAAO,oBAAA;;;;;;;;;;;;;EAc/C,UAAA,CAAW,QAAA;;;;;;;;;;;;;;;;;;EAmBX,eAAA,CAAgB,QAAA,UAAkB,QAAA,GAAW,KAAA,EAAO,oBAAA;;;;;;;;EAapD,OAAA,CAAQ,KAAA,UAAe,SAAA,GAAY,cAAA;EACnC,OAAA,CAAQ,MAAA,EAAQ,MAAA,SAAe,cAAA;;;;;;;EAQ/B,WAAA,CAAY,KAAA;;;;;;;EAQZ,UAAA,CAAW,UAAA,EAAY,aAAA,EAAe,QAAA;;;;;;;EAQtC,aAAA,CAAc,KAAA;;;;;;;;;EAUd,MAAA,CAAO,MAAA,YAAkB,OAAA,CAAQ,CAAA;;;;;;;;EASjC,MAAA,CAAO,MAAA;;;;;;;EAYP,KAAA,CAAM,KAAA;;;;;;;EAQN,IAAA,CAAK,KAAA;;;;;;;EAQL,MAAA,CAAO,KAAA;;;;;;;EAQP,IAAA,CAAK,KAAA;;;;;;;EAQL,MAAA,CAAO,KAAA,YAAiB,MAAA;;;;;;;;EAaxB,OAAA,CAAQ,MAAA,EAAQ,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqChB,OAAA,CAAQ,MAAA,EAAQ,YAAA,EAAc,UAAA,EAAY,MAAA,SAAe,aAAA;;;;;;;EAQzD,UAAA,CAAW,UAAA,EAAY,aAAA,EAAe,QAAA;;;;;;;EAQtC,MAAA,CAAO,KAAA,UAAe,KAAA;EACtB,MAAA,CAAO,KAAA,UAAe,QAAA,EAAU,aAAA,EAAe,KAAA;EAC/C,MAAA,CAAO,SAAA,EAAW,WAAA;;;;;;;EAQlB,SAAA,CAAU,UAAA,EAAY,aAAA,EAAe,QAAA;;;;;;;;;;;;EAiBrC,IAAA,CAAK,OAAA,EAAS,WAAA;;;;;;;;;;EAed,GAAA,CAAI,OAAA,GAAU,MAAA;;;;;;;EAQd,MAAA,IAAU,SAAA,aAAsB,IAAA,cAAkB,CAAA;;;;;;;;EASlD,KAAA;;;;;;;;EASA,GAAA,CAAI,QAAA,GAAW,OAAA;;;;;;;EAQf,IAAA,IACE,SAAA,EAAW,CAAA,8BACX,QAAA,GAAW,OAAA,QAAe,KAAA,EAAO,CAAA,WACjC,SAAA,IAAa,OAAA;;;;;;;EAaf,GAAA,UAAa,CAAA,KAAM,OAAA,CAAQ,MAAA;;;;;;;EAQ3B,KAAA,UAAe,CAAA,KAAM,OAAA,CAAQ,MAAA;;;;;;;;EAS7B,WAAA,UAAqB,CAAA,KAAM,OAAA,CAAQ,MAAA;;;;;;;EAQnC,IAAA,UAAc,CAAA,EAAG,KAAA,YAAiB,OAAA,CAAQ,MAAA;;;;;;;EAQ1C,KAAA,IAAS,OAAA;;;;;;;EAQT,GAAA,CAAI,KAAA,WAAgB,OAAA;;;;;;;EAQpB,GAAA,CAAI,KAAA,WAAgB,OAAA;;;;;;;EAQpB,GAAA,CAAI,KAAA,WAAgB,OAAA;;;;;;;EAQpB,GAAA,CAAI,KAAA,WAAgB,OAAA;;;;;;;;;EAUpB,QAAA,cAAsB,KAAA,WAAgB,OAAA,CAAQ,CAAA;;;;;;;EAQ9C,KAAA,CAAM,KAAA,WAAgB,OAAA;;;;;;;EAQtB,KAAA,cAAmB,KAAA,WAAgB,OAAA,CAAQ,CAAA;;;;;;;EAQ3C,MAAA,IAAU,OAAA;;;;;;;EAQV,SAAA,IAAa,OAAA;;;;;;;EAQb,aAAA,CAAc,KAAA,WAAgB,OAAA;;;;;;;;EAS9B,SAAA,CAAU,KAAA,UAAe,MAAA,YAAkB,OAAA;;;;;;;;EAS3C,SAAA,CAAU,KAAA,UAAe,MAAA,YAAkB,OAAA;;;;;;;EAQ3C,aAAA,CAAc,KAAA,UAAe,MAAA,YAAkB,OAAA;;;;;;;EAQ/C,aAAA,CAAc,KAAA,UAAe,MAAA,YAAkB,OAAA;;;;;;;;;;;EAgB/C,KAAA,CAAM,IAAA,UAAc,QAAA,EAAU,aAAA,CAAc,CAAA,IAAK,OAAA;;;;;;;;EASjD,QAAA,CAAS,OAAA,EAAS,iBAAA,GAAoB,OAAA,CAAQ,gBAAA,CAAiB,CAAA;;;;;;;;EAS/D,cAAA,CAAe,OAAA,EAAS,uBAAA,GAA0B,OAAA,CAAQ,sBAAA,CAAuB,CAAA;;;;;;;;;;;;;;;EAoBjF,KAAA,IAAS,WAAA;;;;;EAMT,MAAA;;;;;;;EAQA,OAAA,IAAW,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BX,SAAA,CAAU,MAAA,UAAgB,SAAA,YAAqB,KAAA;AAAA"}
1
+ {"version":3,"file":"query-builder.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/contracts/query-builder.contract.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DeleteStrategy, MigrationDefaults, ModelDefaults, RelationDefaults } from "../types.mjs";
2
- import { DriverContract } from "../contracts/database-driver.contract.mjs";
2
+ import { DriverContract, RawQueryResult } from "../contracts/database-driver.contract.mjs";
3
3
  import { IdGeneratorContract } from "../contracts/database-id-generator.contract.mjs";
4
4
  //#region ../@warlock.js/cascade/src/data-source/data-source.d.ts
5
5
  /**
@@ -154,6 +154,26 @@ declare class DataSource {
154
154
  * ```
155
155
  */
156
156
  get idGenerator(): IdGeneratorContract | undefined;
157
+ /**
158
+ * Execute a raw query against this data source's driver.
159
+ *
160
+ * Thin passthrough to `driver.query`, so it is transaction-aware: inside a
161
+ * `transaction()` scope the query auto-joins the active transaction
162
+ * client/session.
163
+ *
164
+ * @typeParam T - The expected row shape.
165
+ * @param sql - Raw SQL string (driver dialect).
166
+ * @param params - Optional positional query parameters.
167
+ * @returns The driver's raw query result (`rows` + `rowCount`).
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * const { rows } = await dataSource.raw<{ count: number }>(
172
+ * "SELECT COUNT(*)::int AS count FROM users",
173
+ * );
174
+ * ```
175
+ */
176
+ raw<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<RawQueryResult<T>>;
157
177
  }
158
178
  //#endregion
159
179
  export { DataSource, DataSourceOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/data-source/data-source.ts"],"mappings":";;;;;;;KAMY,iBAAA;EAAA,+CAEV,IAAA;EAEA,MAAA,EAAQ,cAAA,EAagB;EAXxB,SAAA;EAiCgB;;;;;;;;;;EAtBhB,qBAAA,GAAwB,cAAA;EAYxB;;;;;;;;;;EAAA,iBAAA;EAuDO;AAAA;AA8BT;;;;;;EA3EE,aAAA,GAAgB,OAAA,CAAQ,aAAA;EA+FY;;;;;;;;EArFpC,iBAAA,GAAoB,iBAAA;EAyEJ;;;;;;;;;EA9DhB,gBAAA,GAAmB,gBAAA;EA6EgB;;;EAxEnC,UAAA;;;;;;;AAiH6C;;;;;IArG3C,aAAA;;;;;;IAOA,KAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8BS,UAAA;;WAEK,IAAA;;WAGA,MAAA,EAAQ,cAAA;;WAGR,SAAA;;WAGA,qBAAA,GAAwB,cAAA;;WAGxB,iBAAA;;WAGA,aAAA,GAAgB,OAAA,CAAQ,aAAA;;WAGxB,iBAAA,GAAoB,iBAAA;;WAGpB,gBAAA,GAAmB,gBAAA;;WAGnB,UAAA;IACd,aAAA;IACA,KAAA;EAAA;;;;;;cAQiB,OAAA,EAAS,iBAAA;;;;;;;;;;;;;;;;;MA4BjB,WAAA,IAAe,mBAAA;AAAA"}
1
+ {"version":3,"file":"data-source.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/data-source/data-source.ts"],"mappings":";;;;;;;KAMY,iBAAA;EAAA,+CAEV,IAAA;EAEA,MAAA,EAAQ,cAAA,EAagB;EAXxB,SAAA;EAiCgB;;;;;;;;;;EAtBhB,qBAAA,GAAwB,cAAA;EAYxB;;;;;;;;;;EAAA,iBAAA;EAuDO;AAAA;AA8BT;;;;;;EA3EE,aAAA,GAAgB,OAAA,CAAQ,aAAA;EA+FY;;;;;;;;EArFpC,iBAAA,GAAoB,iBAAA;EAgKV;;;;;;;;;EArJV,gBAAA,GAAmB,gBAAA;EAuEqB;;;EAlExC,UAAA;IAwEmC;;;;;;;;;;;IA5DjC,aAAA;IAkIA;;;;;IA3HA,KAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8BS,UAAA;;WAEK,IAAA;;WAGA,MAAA,EAAQ,cAAA;;WAGR,SAAA;;WAGA,qBAAA,GAAwB,cAAA;;WAGxB,iBAAA;;WAGA,aAAA,GAAgB,OAAA,CAAQ,aAAA;;WAGxB,iBAAA,GAAoB,iBAAA;;WAGpB,gBAAA,GAAmB,gBAAA;;WAGnB,UAAA;IACd,aAAA;IACA,KAAA;EAAA;;;;;;cAQiB,OAAA,EAAS,iBAAA;;;;;;;;;;;;;;;;;MA4BjB,WAAA,IAAe,mBAAA;;;;;;;;;;;;;;;;;;;;EA4BnB,GAAA,KAAQ,MAAA,mBACb,GAAA,UACA,MAAA,eACC,OAAA,CAAQ,cAAA,CAAe,CAAA;AAAA"}
@@ -80,6 +80,28 @@ var DataSource = class {
80
80
  const driver = this.driver;
81
81
  if (typeof driver.getIdGenerator === "function") return driver.getIdGenerator();
82
82
  }
83
+ /**
84
+ * Execute a raw query against this data source's driver.
85
+ *
86
+ * Thin passthrough to `driver.query`, so it is transaction-aware: inside a
87
+ * `transaction()` scope the query auto-joins the active transaction
88
+ * client/session.
89
+ *
90
+ * @typeParam T - The expected row shape.
91
+ * @param sql - Raw SQL string (driver dialect).
92
+ * @param params - Optional positional query parameters.
93
+ * @returns The driver's raw query result (`rows` + `rowCount`).
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const { rows } = await dataSource.raw<{ count: number }>(
98
+ * "SELECT COUNT(*)::int AS count FROM users",
99
+ * );
100
+ * ```
101
+ */
102
+ raw(sql, params) {
103
+ return this.driver.query(sql, params);
104
+ }
83
105
  };
84
106
 
85
107
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/data-source/data-source.ts"],"sourcesContent":["import type { DriverContract, IdGeneratorContract } from \"../contracts\";\nimport type { DeleteStrategy, MigrationDefaults, ModelDefaults, RelationDefaults } from \"../types\";\n\n/**\n * Configuration options used when registering a data source.\n */\nexport type DataSourceOptions = {\n /** Unique name identifying the data source. */\n name: string;\n /** Driver bound to the data source. */\n driver: DriverContract;\n /** Whether this data source should be considered the default one. */\n isDefault?: boolean;\n /**\n * Default delete strategy for models using this data source.\n *\n * - MongoDB: Typically `\"trash\"` (uses RecycleBin collection)\n * - PostgreSQL: Typically `\"permanent\"` or `\"soft\"`\n *\n * Can be overridden by model static property or destroy() options.\n *\n * @default undefined (falls back to \"permanent\")\n */\n defaultDeleteStrategy?: DeleteStrategy;\n\n /**\n * Default trash table/collection name for \"trash\" delete strategy.\n *\n * - MongoDB: Typically `\"RecycleBin\"`\n * - If not set, defaults to `{table}Trash` pattern\n *\n * Can be overridden by Model.trashTable static property.\n *\n * @default undefined (uses {table}Trash pattern)\n */\n defaultTrashTable?: string;\n\n /**\n * Default model configuration for all models using this data source.\n *\n * These defaults override driver defaults but are overridden by\n * individual model static properties.\n *\n * @default undefined\n */\n modelDefaults?: Partial<ModelDefaults>;\n\n /**\n * Migration-level defaults (UUID strategy, etc.).\n *\n * These defaults override driver migration defaults but can be\n * overridden by individual migration calls.\n *\n * @default undefined (uses driver defaults)\n */\n migrationDefaults?: MigrationDefaults;\n\n /**\n * Default relation conventions (FK suffix, pivot-table naming order).\n *\n * Consumed by the runtime convention helpers in\n * `relations/key-conventions.ts` whenever a relation definition omits\n * an explicit `foreignKey` / `pivot` / pivot-column override.\n *\n * @default undefined (uses framework defaults)\n */\n relationDefaults?: RelationDefaults;\n\n /**\n * Migration configuration options.\n */\n migrations?: {\n /**\n * Whether to wrap migrations in database transactions.\n *\n * Overrides driver defaults:\n * - PostgreSQL default: `true` (DDL is transactional)\n * - MongoDB default: `false` (DDL cannot be transactional)\n *\n * Individual migrations can override this with their own `transactional` property.\n *\n * @default undefined (uses driver default)\n */\n transactional?: boolean;\n\n /**\n * Name of the migrations tracking table/collection.\n *\n * @default \"_migrations\"\n */\n table?: string;\n };\n};\n\n/**\n * Wrapper that couples a driver with its metadata.\n *\n * A data source represents a database connection with all its associated services.\n * The ID generator (if needed) is provided by the driver itself.\n *\n * @example\n * ```typescript\n * // MongoDB with auto ID generation\n * const mongoDriver = new MongoDbDriver({\n * host: \"localhost\",\n * port: 27017,\n * database: \"myapp\",\n * autoGenerateId: true, // Driver creates its own ID generator\n * });\n *\n * const dataSource = new DataSource({\n * name: \"primary\",\n * driver: mongoDriver,\n * isDefault: true,\n * });\n *\n * // Access ID generator from driver\n * const idGenerator = dataSource.idGenerator;\n * ```\n */\nexport class DataSource {\n /** Unique name identifying this data source. */\n public readonly name: string;\n\n /** Database driver for executing queries. */\n public readonly driver: DriverContract;\n\n /** Whether this is the default data source. */\n public readonly isDefault: boolean;\n\n /** Default delete strategy for models using this data source. */\n public readonly defaultDeleteStrategy?: DeleteStrategy;\n\n /** Default trash table/collection name for \"trash\" delete strategy. */\n public readonly defaultTrashTable?: string;\n\n /** Default model configuration for all models using this data source. */\n public readonly modelDefaults?: Partial<ModelDefaults>;\n\n /** Migration-level defaults (UUID strategy, etc.). */\n public readonly migrationDefaults?: MigrationDefaults;\n\n /** Default relation conventions (FK suffix, pivot ordering). */\n public readonly relationDefaults?: RelationDefaults;\n\n /** Migration configuration options. */\n public readonly migrations?: {\n transactional?: boolean;\n table?: string;\n };\n\n /**\n * Create a new data source.\n *\n * @param options - Configuration options\n */\n public constructor(options: DataSourceOptions) {\n this.name = options.name;\n this.driver = options.driver;\n this.isDefault = Boolean(options.isDefault);\n this.defaultDeleteStrategy = options.defaultDeleteStrategy;\n this.defaultTrashTable = options.defaultTrashTable;\n this.modelDefaults = options.modelDefaults;\n this.migrationDefaults = options.migrationDefaults;\n this.relationDefaults = options.relationDefaults;\n this.migrations = options.migrations;\n }\n\n /**\n * Get the ID generator from the driver (if available).\n *\n * NoSQL drivers like MongoDB can provide their own ID generator.\n * SQL drivers return undefined as they use native AUTO_INCREMENT.\n *\n * @returns The ID generator instance, or undefined\n *\n * @example\n * ```typescript\n * const idGenerator = dataSource.idGenerator;\n * if (idGenerator) {\n * const id = await idGenerator.generateNextId({ table: \"users\" });\n * }\n * ```\n */\n public get idGenerator(): IdGeneratorContract | undefined {\n // Check if driver has a getIdGenerator method (duck typing)\n const driver = this.driver as any;\n if (typeof driver.getIdGenerator === \"function\") {\n return driver.getIdGenerator();\n }\n return undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwHA,IAAa,aAAb,MAAwB;;CAEtB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;;;;;CAUhB,AAAO,YAAY,SAA4B;EAC7C,KAAK,OAAO,QAAQ;EACpB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ,QAAQ,SAAS;EAC1C,KAAK,wBAAwB,QAAQ;EACrC,KAAK,oBAAoB,QAAQ;EACjC,KAAK,gBAAgB,QAAQ;EAC7B,KAAK,oBAAoB,QAAQ;EACjC,KAAK,mBAAmB,QAAQ;EAChC,KAAK,aAAa,QAAQ;CAC5B;;;;;;;;;;;;;;;;;CAkBA,IAAW,cAA+C;EAExD,MAAM,SAAS,KAAK;EACpB,IAAI,OAAO,OAAO,mBAAmB,YACnC,OAAO,OAAO,eAAe;CAGjC;AACF"}
1
+ {"version":3,"file":"data-source.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/data-source/data-source.ts"],"sourcesContent":["import type { DriverContract, IdGeneratorContract, RawQueryResult } from \"../contracts\";\nimport type { DeleteStrategy, MigrationDefaults, ModelDefaults, RelationDefaults } from \"../types\";\n\n/**\n * Configuration options used when registering a data source.\n */\nexport type DataSourceOptions = {\n /** Unique name identifying the data source. */\n name: string;\n /** Driver bound to the data source. */\n driver: DriverContract;\n /** Whether this data source should be considered the default one. */\n isDefault?: boolean;\n /**\n * Default delete strategy for models using this data source.\n *\n * - MongoDB: Typically `\"trash\"` (uses RecycleBin collection)\n * - PostgreSQL: Typically `\"permanent\"` or `\"soft\"`\n *\n * Can be overridden by model static property or destroy() options.\n *\n * @default undefined (falls back to \"permanent\")\n */\n defaultDeleteStrategy?: DeleteStrategy;\n\n /**\n * Default trash table/collection name for \"trash\" delete strategy.\n *\n * - MongoDB: Typically `\"RecycleBin\"`\n * - If not set, defaults to `{table}Trash` pattern\n *\n * Can be overridden by Model.trashTable static property.\n *\n * @default undefined (uses {table}Trash pattern)\n */\n defaultTrashTable?: string;\n\n /**\n * Default model configuration for all models using this data source.\n *\n * These defaults override driver defaults but are overridden by\n * individual model static properties.\n *\n * @default undefined\n */\n modelDefaults?: Partial<ModelDefaults>;\n\n /**\n * Migration-level defaults (UUID strategy, etc.).\n *\n * These defaults override driver migration defaults but can be\n * overridden by individual migration calls.\n *\n * @default undefined (uses driver defaults)\n */\n migrationDefaults?: MigrationDefaults;\n\n /**\n * Default relation conventions (FK suffix, pivot-table naming order).\n *\n * Consumed by the runtime convention helpers in\n * `relations/key-conventions.ts` whenever a relation definition omits\n * an explicit `foreignKey` / `pivot` / pivot-column override.\n *\n * @default undefined (uses framework defaults)\n */\n relationDefaults?: RelationDefaults;\n\n /**\n * Migration configuration options.\n */\n migrations?: {\n /**\n * Whether to wrap migrations in database transactions.\n *\n * Overrides driver defaults:\n * - PostgreSQL default: `true` (DDL is transactional)\n * - MongoDB default: `false` (DDL cannot be transactional)\n *\n * Individual migrations can override this with their own `transactional` property.\n *\n * @default undefined (uses driver default)\n */\n transactional?: boolean;\n\n /**\n * Name of the migrations tracking table/collection.\n *\n * @default \"_migrations\"\n */\n table?: string;\n };\n};\n\n/**\n * Wrapper that couples a driver with its metadata.\n *\n * A data source represents a database connection with all its associated services.\n * The ID generator (if needed) is provided by the driver itself.\n *\n * @example\n * ```typescript\n * // MongoDB with auto ID generation\n * const mongoDriver = new MongoDbDriver({\n * host: \"localhost\",\n * port: 27017,\n * database: \"myapp\",\n * autoGenerateId: true, // Driver creates its own ID generator\n * });\n *\n * const dataSource = new DataSource({\n * name: \"primary\",\n * driver: mongoDriver,\n * isDefault: true,\n * });\n *\n * // Access ID generator from driver\n * const idGenerator = dataSource.idGenerator;\n * ```\n */\nexport class DataSource {\n /** Unique name identifying this data source. */\n public readonly name: string;\n\n /** Database driver for executing queries. */\n public readonly driver: DriverContract;\n\n /** Whether this is the default data source. */\n public readonly isDefault: boolean;\n\n /** Default delete strategy for models using this data source. */\n public readonly defaultDeleteStrategy?: DeleteStrategy;\n\n /** Default trash table/collection name for \"trash\" delete strategy. */\n public readonly defaultTrashTable?: string;\n\n /** Default model configuration for all models using this data source. */\n public readonly modelDefaults?: Partial<ModelDefaults>;\n\n /** Migration-level defaults (UUID strategy, etc.). */\n public readonly migrationDefaults?: MigrationDefaults;\n\n /** Default relation conventions (FK suffix, pivot ordering). */\n public readonly relationDefaults?: RelationDefaults;\n\n /** Migration configuration options. */\n public readonly migrations?: {\n transactional?: boolean;\n table?: string;\n };\n\n /**\n * Create a new data source.\n *\n * @param options - Configuration options\n */\n public constructor(options: DataSourceOptions) {\n this.name = options.name;\n this.driver = options.driver;\n this.isDefault = Boolean(options.isDefault);\n this.defaultDeleteStrategy = options.defaultDeleteStrategy;\n this.defaultTrashTable = options.defaultTrashTable;\n this.modelDefaults = options.modelDefaults;\n this.migrationDefaults = options.migrationDefaults;\n this.relationDefaults = options.relationDefaults;\n this.migrations = options.migrations;\n }\n\n /**\n * Get the ID generator from the driver (if available).\n *\n * NoSQL drivers like MongoDB can provide their own ID generator.\n * SQL drivers return undefined as they use native AUTO_INCREMENT.\n *\n * @returns The ID generator instance, or undefined\n *\n * @example\n * ```typescript\n * const idGenerator = dataSource.idGenerator;\n * if (idGenerator) {\n * const id = await idGenerator.generateNextId({ table: \"users\" });\n * }\n * ```\n */\n public get idGenerator(): IdGeneratorContract | undefined {\n // Check if driver has a getIdGenerator method (duck typing)\n const driver = this.driver as any;\n if (typeof driver.getIdGenerator === \"function\") {\n return driver.getIdGenerator();\n }\n return undefined;\n }\n\n /**\n * Execute a raw query against this data source's driver.\n *\n * Thin passthrough to `driver.query`, so it is transaction-aware: inside a\n * `transaction()` scope the query auto-joins the active transaction\n * client/session.\n *\n * @typeParam T - The expected row shape.\n * @param sql - Raw SQL string (driver dialect).\n * @param params - Optional positional query parameters.\n * @returns The driver's raw query result (`rows` + `rowCount`).\n *\n * @example\n * ```typescript\n * const { rows } = await dataSource.raw<{ count: number }>(\n * \"SELECT COUNT(*)::int AS count FROM users\",\n * );\n * ```\n */\n public raw<T = Record<string, unknown>>(\n sql: string,\n params?: unknown[],\n ): Promise<RawQueryResult<T>> {\n return this.driver.query<T>(sql, params);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwHA,IAAa,aAAb,MAAwB;;CAEtB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;CAGhB,AAAgB;;;;;;CAUhB,AAAO,YAAY,SAA4B;EAC7C,KAAK,OAAO,QAAQ;EACpB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ,QAAQ,SAAS;EAC1C,KAAK,wBAAwB,QAAQ;EACrC,KAAK,oBAAoB,QAAQ;EACjC,KAAK,gBAAgB,QAAQ;EAC7B,KAAK,oBAAoB,QAAQ;EACjC,KAAK,mBAAmB,QAAQ;EAChC,KAAK,aAAa,QAAQ;CAC5B;;;;;;;;;;;;;;;;;CAkBA,IAAW,cAA+C;EAExD,MAAM,SAAS,KAAK;EACpB,IAAI,OAAO,OAAO,mBAAmB,YACnC,OAAO,OAAO,eAAe;CAGjC;;;;;;;;;;;;;;;;;;;;CAqBA,AAAO,IACL,KACA,QAC4B;EAC5B,OAAO,KAAK,OAAO,MAAS,KAAK,MAAM;CACzC;AACF"}
@@ -5,7 +5,7 @@ import { DatabaseDirtyTracker } from "../../database-dirty-tracker.mjs";
5
5
  import { SQLSerializer } from "../../migration/sql-serializer.mjs";
6
6
  import { QueryBuilderContract } from "../../contracts/query-builder.contract.mjs";
7
7
  import { SyncAdapterContract } from "../../contracts/sync-adapter.contract.mjs";
8
- import { DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, InsertResult, TransactionContext, UpdateOperations, UpdateResult } from "../../contracts/database-driver.contract.mjs";
8
+ import { DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, InsertResult, RawQueryResult, TransactionContext, UpdateOperations, UpdateResult } from "../../contracts/database-driver.contract.mjs";
9
9
  import { IdGeneratorContract } from "../../contracts/database-id-generator.contract.mjs";
10
10
  import { MongoDriverOptions } from "./types.mjs";
11
11
  import { ClientSession, Db, MongoClient, MongoClientOptions } from "mongodb";
@@ -278,7 +278,7 @@ declare class MongoDbDriver implements DriverContract {
278
278
  * Execute a raw SQL query.
279
279
  * Not supported for MongoDB.
280
280
  */
281
- query<T = unknown>(_sql: string, _params?: unknown[]): Promise<any>;
281
+ query<T = Record<string, unknown>>(_sql: string, _params?: unknown[]): Promise<RawQueryResult<T>>;
282
282
  /**
283
283
  * Create a new database.
284
284
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-driver.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/cascade/src/drivers/mongodb/mongodb-driver.ts"],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-driver.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/cascade/src/drivers/mongodb/mongodb-driver.ts"],"mappings":"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"}
@@ -481,7 +481,10 @@ var MongoDbDriver = class {
481
481
  * @throws {Error} If transaction fails, is explicitly rolled back, or replica set not configured
482
482
  */
483
483
  async transaction(fn, options) {
484
- if (databaseTransactionContext.hasActiveTransaction()) throw new Error("Nested transaction() calls are not supported. Use beginTransaction() with savepoints for advanced transaction patterns.");
484
+ const ctx = { rollback(reason) {
485
+ throw new TransactionRollbackError(reason);
486
+ } };
487
+ if (databaseTransactionContext.hasActiveTransaction()) return fn(ctx);
485
488
  await this.ensureReplicaSetAvailable();
486
489
  const session = this.getClientInstance().startSession();
487
490
  try {
@@ -491,9 +494,7 @@ var MongoDbDriver = class {
491
494
  });
492
495
  databaseTransactionContext.enter({ session });
493
496
  try {
494
- const result = await fn({ rollback(reason) {
495
- throw new TransactionRollbackError(reason);
496
- } });
497
+ const result = await fn(ctx);
497
498
  await session.commitTransaction();
498
499
  return result;
499
500
  } catch (error) {