@c9up/atlas 0.1.18 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +55 -14
  2. package/db.darwin-arm64.node +0 -0
  3. package/db.darwin-x64.node +0 -0
  4. package/db.linux-arm64-gnu.node +0 -0
  5. package/db.linux-x64-gnu.node +0 -0
  6. package/db.win32-x64-msvc.node +0 -0
  7. package/dist/AtlasProvider.d.ts +6 -0
  8. package/dist/AtlasProvider.d.ts.map +1 -1
  9. package/dist/AtlasProvider.js +2 -2
  10. package/dist/AtlasProvider.js.map +1 -1
  11. package/dist/BaseEntity.d.ts +171 -7
  12. package/dist/BaseEntity.d.ts.map +1 -1
  13. package/dist/BaseEntity.js +339 -31
  14. package/dist/BaseEntity.js.map +1 -1
  15. package/dist/BaseModel.d.ts +91 -0
  16. package/dist/BaseModel.d.ts.map +1 -0
  17. package/dist/BaseModel.js +193 -0
  18. package/dist/BaseModel.js.map +1 -0
  19. package/dist/BaseRepository.d.ts +77 -15
  20. package/dist/BaseRepository.d.ts.map +1 -1
  21. package/dist/BaseRepository.js +1423 -354
  22. package/dist/BaseRepository.js.map +1 -1
  23. package/dist/ModelQuery.d.ts +429 -11
  24. package/dist/ModelQuery.d.ts.map +1 -1
  25. package/dist/ModelQuery.js +1733 -145
  26. package/dist/ModelQuery.js.map +1 -1
  27. package/dist/Transaction.d.ts +17 -0
  28. package/dist/Transaction.d.ts.map +1 -1
  29. package/dist/Transaction.js +57 -5
  30. package/dist/Transaction.js.map +1 -1
  31. package/dist/adapters/NapiDbAdapter.d.ts +33 -4
  32. package/dist/adapters/NapiDbAdapter.d.ts.map +1 -1
  33. package/dist/adapters/NapiDbAdapter.js +101 -11
  34. package/dist/adapters/NapiDbAdapter.js.map +1 -1
  35. package/dist/console/migrationCommands.d.ts +48 -0
  36. package/dist/console/migrationCommands.d.ts.map +1 -0
  37. package/dist/console/migrationCommands.js +220 -0
  38. package/dist/console/migrationCommands.js.map +1 -0
  39. package/dist/decorators/entity.d.ts +37 -6
  40. package/dist/decorators/entity.d.ts.map +1 -1
  41. package/dist/decorators/entity.js +32 -2
  42. package/dist/decorators/entity.js.map +1 -1
  43. package/dist/events.d.ts +64 -0
  44. package/dist/events.d.ts.map +1 -0
  45. package/dist/events.js +82 -0
  46. package/dist/events.js.map +1 -0
  47. package/dist/index.d.ts +5 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +3 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/metadata-keys.d.ts +3 -2
  52. package/dist/metadata-keys.d.ts.map +1 -1
  53. package/dist/naming/NamingStrategy.d.ts +7 -0
  54. package/dist/naming/NamingStrategy.d.ts.map +1 -1
  55. package/dist/naming/NamingStrategy.js +16 -0
  56. package/dist/naming/NamingStrategy.js.map +1 -1
  57. package/dist/schema/Migration.d.ts +26 -3
  58. package/dist/schema/Migration.d.ts.map +1 -1
  59. package/dist/schema/Migration.js +33 -24
  60. package/dist/schema/Migration.js.map +1 -1
  61. package/dist/schema/MigrationRunner.d.ts +43 -32
  62. package/dist/schema/MigrationRunner.d.ts.map +1 -1
  63. package/dist/schema/MigrationRunner.js +211 -26
  64. package/dist/schema/MigrationRunner.js.map +1 -1
  65. package/dist/schema/Schema.d.ts +57 -0
  66. package/dist/schema/Schema.d.ts.map +1 -1
  67. package/dist/schema/Schema.js +138 -3
  68. package/dist/schema/Schema.js.map +1 -1
  69. package/dist/schema/SchemaCheck.d.ts.map +1 -1
  70. package/dist/schema/SchemaCheck.js +3 -1
  71. package/dist/schema/SchemaCheck.js.map +1 -1
  72. package/dist/schema/TableBuilder.d.ts +247 -8
  73. package/dist/schema/TableBuilder.d.ts.map +1 -1
  74. package/dist/schema/TableBuilder.js +607 -41
  75. package/dist/schema/TableBuilder.js.map +1 -1
  76. package/dist/schema/catalog.d.ts +47 -0
  77. package/dist/schema/catalog.d.ts.map +1 -0
  78. package/dist/schema/catalog.js +111 -0
  79. package/dist/schema/catalog.js.map +1 -0
  80. package/dist/schema/introspect.js.map +1 -1
  81. package/dist/schema/types.d.ts +150 -1
  82. package/dist/schema/types.d.ts.map +1 -1
  83. package/dist/schema/types.js +11 -0
  84. package/dist/schema/types.js.map +1 -1
  85. package/dist/services/db.d.ts +6 -0
  86. package/dist/services/db.d.ts.map +1 -1
  87. package/dist/services/db.js +17 -0
  88. package/dist/services/db.js.map +1 -1
  89. package/dist/testing/DatabaseCleanup.d.ts +7 -4
  90. package/dist/testing/DatabaseCleanup.d.ts.map +1 -1
  91. package/dist/testing/DatabaseCleanup.js +21 -18
  92. package/dist/testing/DatabaseCleanup.js.map +1 -1
  93. package/dist/testing/Factory.d.ts +70 -5
  94. package/dist/testing/Factory.d.ts.map +1 -1
  95. package/dist/testing/Factory.js +209 -10
  96. package/dist/testing/Factory.js.map +1 -1
  97. package/index.darwin-arm64.node +0 -0
  98. package/index.darwin-x64.node +0 -0
  99. package/index.linux-arm64-gnu.node +0 -0
  100. package/index.linux-x64-gnu.node +0 -0
  101. package/index.win32-x64-msvc.node +0 -0
  102. package/package.json +4 -1
  103. package/scripts/guard-publish.mjs +15 -0
  104. package/src/AtlasProvider.ts +8 -1
  105. package/src/BaseEntity.ts +449 -40
  106. package/src/BaseModel.ts +324 -0
  107. package/src/BaseRepository.ts +1659 -371
  108. package/src/ModelQuery.ts +2290 -203
  109. package/src/Transaction.ts +68 -5
  110. package/src/adapters/NapiDbAdapter.ts +159 -10
  111. package/src/console/migrationCommands.ts +258 -0
  112. package/src/decorators/entity.ts +53 -6
  113. package/src/events.ts +112 -0
  114. package/src/index.ts +19 -0
  115. package/src/metadata-keys.ts +3 -2
  116. package/src/naming/NamingStrategy.ts +23 -0
  117. package/src/schema/Migration.ts +42 -3
  118. package/src/schema/MigrationRunner.ts +270 -27
  119. package/src/schema/Schema.ts +210 -3
  120. package/src/schema/SchemaCheck.ts +7 -2
  121. package/src/schema/TableBuilder.ts +735 -41
  122. package/src/schema/catalog.ts +166 -0
  123. package/src/schema/introspect.ts +3 -4
  124. package/src/schema/types.ts +137 -2
  125. package/src/services/db.ts +28 -0
  126. package/src/testing/DatabaseCleanup.ts +23 -22
  127. package/src/testing/Factory.ts +332 -15
@@ -6,27 +6,46 @@
6
6
  *
7
7
  * Builds SQL fluently and executes against the database connection.
8
8
  */
9
- import type { BaseEntity } from "./BaseEntity.js";
10
- import type { DatabaseConnection } from "./BaseRepository.js";
9
+ import { type BaseEntity, type DomainEvent } from "./BaseEntity.js";
10
+ import { type DatabaseConnection } from "./BaseRepository.js";
11
11
  import { type AtlasDialect } from "./query/native.js";
12
12
  type PreloadCallback = (query: ModelQuery<BaseEntity>) => void;
13
13
  type ColumnResolver = (column: string) => string;
14
+ /**
15
+ * Lower a value bound for a given property to its DB form — mirrors
16
+ * `BaseRepository.#applyPrepare` (a `@column.dateTime` DateTime → ISO string, a
17
+ * `@Column({ prepare })` adapter runs). Threaded into ModelQuery so the fluent
18
+ * `update()` / WHERE paths don't bypass prepare the way direct repo writes don't.
19
+ */
20
+ type ValuePreparer = (column: string, value: unknown) => unknown;
14
21
  type WhereCallback = (q: ModelQuery<BaseEntity>) => void;
15
- /** Enable or disable Atlas strict mode. When enabled, whereRaw/joinRaw throw in user code. */
22
+ /** Enable or disable Atlas strict mode. When enabled, whereRaw/joinRaw/havingRaw throw in user code. */
16
23
  export declare function setAtlasStrictMode(enabled: boolean): void;
17
24
  /** Current strict mode state — lazy env var read on first access. */
18
25
  export declare function isAtlasStrictMode(): boolean;
19
26
  export declare function runWithAtlasInternalBypass<T>(fn: () => T): T;
20
- /** Multi-condition join builder passed to innerJoin/leftJoin/rightJoin callbacks. */
27
+ /**
28
+ * Multi-condition join builder passed to innerJoin/leftJoin/rightJoin callbacks.
29
+ * `on`/`andOn`/`orOn` join two COLUMNS; `onVal`/`andOnVal`/`orOnVal` join a column
30
+ * to a bound VALUE (AdonisJS/Knex parity) — the value flows through the join-params
31
+ * channel into the compiled parameter list.
32
+ */
21
33
  interface JoinBuilder {
34
+ /** A column-to-column part (`value` absent) or a column-to-value part (`value` set). */
22
35
  parts: Array<{
23
36
  kind: "and" | "or";
24
37
  left: string;
25
- right: string;
38
+ right?: string;
39
+ value?: {
40
+ v: unknown;
41
+ };
26
42
  }>;
27
43
  on(left: string, right: string): JoinBuilder;
28
44
  andOn(left: string, right: string): JoinBuilder;
45
+ orOn(left: string, right: string): JoinBuilder;
46
+ onVal(left: string, value: unknown): JoinBuilder;
29
47
  andOnVal(left: string, value: unknown): JoinBuilder;
48
+ orOnVal(left: string, value: unknown): JoinBuilder;
30
49
  }
31
50
  /** Offset-based paginator (Story 29.10). */
32
51
  export declare class Paginator<T> {
@@ -43,24 +62,53 @@ export declare class Paginator<T> {
43
62
  total: number;
44
63
  perPage: number;
45
64
  currentPage: number;
46
- });
65
+ }, metaKeys?: Record<string, string>);
47
66
  all(): T[];
67
+ /** Total row count across all pages. */
68
+ get total(): number;
69
+ /** Rows per page. */
70
+ get perPage(): number;
71
+ /** The current page number. */
72
+ get currentPage(): number;
73
+ /** The last page number. */
74
+ get lastPage(): number;
75
+ /** The first page number (always 1). */
76
+ get firstPage(): number;
77
+ /** True when there is more than one page of results (AdonisJS `hasPages`). */
78
+ get hasPages(): boolean;
79
+ /** True when there is at least one more page after the current one (AdonisJS `hasMorePages`). */
80
+ get hasMorePages(): boolean;
48
81
  serialize(opts?: {
49
82
  fields?: string[];
50
83
  }): {
51
84
  data: unknown[];
52
- meta: Paginator<T>["meta"];
85
+ meta: Record<string, unknown>;
53
86
  };
54
87
  baseUrl(url: string): this;
55
88
  queryString(qs: Record<string, unknown>): this;
89
+ /**
90
+ * Build the URL for a page number, honouring `baseUrl` + `queryString`.
91
+ * Returns `''` when no `baseUrl` was set (AdonisJS `getUrl`).
92
+ */
93
+ getUrl(page: number): string;
94
+ /** URL of the next page, or `null` when on the last page (AdonisJS `getNextPageUrl`). */
95
+ getNextPageUrl(): string | null;
96
+ /** URL of the previous page, or `null` when on the first page (AdonisJS `getPreviousPageUrl`). */
97
+ getPreviousPageUrl(): string | null;
98
+ /** URLs for an inclusive page range, clamped to `[1, lastPage]` (AdonisJS `getUrlsForRange`). */
99
+ getUrlsForRange(start: number, end: number): Array<{
100
+ page: number;
101
+ url: string;
102
+ isActive: boolean;
103
+ }>;
56
104
  toJSON(): {
57
105
  data: unknown[];
58
- meta: Paginator<T>["meta"] & Record<string, unknown>;
106
+ meta: Record<string, unknown>;
59
107
  };
60
108
  }
61
109
  export declare class ModelQuery<T extends BaseEntity> {
62
110
  #private;
63
- constructor(tableName: string, db: DatabaseConnection, hydrateFn: (row: Record<string, unknown>) => T, entityClass: new () => T, resolveColumn?: ColumnResolver, softDeletes?: boolean, dialect?: AtlasDialect);
111
+ constructor(tableName: string, db: DatabaseConnection, hydrateFn: (row: Record<string, unknown>) => T, entityClass: new () => T, resolveColumn?: ColumnResolver, softDeletes?: boolean, dialect?: AtlasDialect, prepareValue?: ValuePreparer, onDomainEvents?: (events: DomainEvent[]) => Promise<void>);
64
112
  /** Include soft-deleted rows in the result (default behavior excludes them). */
65
113
  withTrashed(): this;
66
114
  /** Return ONLY soft-deleted rows (deleted_at IS NOT NULL). */
@@ -84,6 +132,29 @@ export declare class ModelQuery<T extends BaseEntity> {
84
132
  orWhere(column: string, operator: string, value: unknown): this;
85
133
  whereNull(column: string): this;
86
134
  whereNotNull(column: string): this;
135
+ andWhere(callback: WhereCallback): this;
136
+ andWhere(column: string, value: unknown): this;
137
+ andWhere(column: string, operator: string, value: unknown): this;
138
+ /** Alias of {@link whereNot} (Lucid parity). */
139
+ andWhereNot(column: string, value: unknown): this;
140
+ /** Alias of {@link whereIn} (Lucid parity). */
141
+ andWhereIn(column: string, values: readonly unknown[]): this;
142
+ /** Alias of {@link whereNotIn} (Lucid parity). */
143
+ andWhereNotIn(column: string, values: readonly unknown[]): this;
144
+ /** Alias of {@link whereNull} (Lucid parity). */
145
+ andWhereNull(column: string): this;
146
+ /** Alias of {@link whereNotNull} (Lucid parity). */
147
+ andWhereNotNull(column: string): this;
148
+ /** Alias of {@link whereBetween} (Lucid parity). */
149
+ andWhereBetween(column: string, range: readonly [unknown, unknown]): this;
150
+ /** Alias of {@link whereNotBetween} (Lucid parity). */
151
+ andWhereNotBetween(column: string, range: readonly [unknown, unknown]): this;
152
+ /** Alias of {@link whereLike} (Lucid parity). */
153
+ andWhereLike(column: string, pattern: string): this;
154
+ /** Alias of {@link whereILike} (Lucid parity). */
155
+ andWhereILike(column: string, pattern: string): this;
156
+ /** Alias of {@link whereColumn} (Lucid parity). */
157
+ andWhereColumn(left: string, operator: string, right: string): this;
87
158
  /** `WHERE col != ?` — negation of `where`. */
88
159
  whereNot(column: string, value: unknown): this;
89
160
  /** `WHERE col IN (...)` — accepts an array of values OR a `ModelQuery` subquery source. */
@@ -102,6 +173,24 @@ export declare class ModelQuery<T extends BaseEntity> {
102
173
  * on SQLite and MySQL at compile time.
103
174
  */
104
175
  whereILike(column: string, pattern: string): this;
176
+ /** `OR col IS NULL`. */
177
+ orWhereNull(column: string): this;
178
+ /** `OR col IS NOT NULL`. */
179
+ orWhereNotNull(column: string): this;
180
+ /** `OR col != ?`. */
181
+ orWhereNot(column: string, value: unknown): this;
182
+ /** `OR col IN (...)` — array or `ModelQuery` subquery source. */
183
+ orWhereIn(column: string, source: readonly unknown[] | ModelQuery<BaseEntity>): this;
184
+ /** `OR col NOT IN (...)` — array or `ModelQuery` subquery source. */
185
+ orWhereNotIn(column: string, source: readonly unknown[] | ModelQuery<BaseEntity>): this;
186
+ /** `OR col BETWEEN ? AND ?`. */
187
+ orWhereBetween(column: string, range: readonly [unknown, unknown]): this;
188
+ /** `OR col NOT BETWEEN ? AND ?`. */
189
+ orWhereNotBetween(column: string, range: readonly [unknown, unknown]): this;
190
+ /** `OR col LIKE ?`. */
191
+ orWhereLike(column: string, pattern: string): this;
192
+ /** `OR col ILIKE ?` (rewritten to LOWER() LIKE LOWER() on sqlite/mysql). */
193
+ orWhereILike(column: string, pattern: string): this;
105
194
  /**
106
195
  * **⚠ UNSAFE** — append a raw SQL fragment to the WHERE clause with
107
196
  * `?`-style bindings. The Rust compiler re-indexes the placeholders so they
@@ -125,6 +214,29 @@ export declare class ModelQuery<T extends BaseEntity> {
125
214
  * @unsafe Raw SQL fragment — never concatenate user input into `sql`.
126
215
  */
127
216
  whereRaw(sql: string, bindings?: readonly unknown[]): this;
217
+ /** Alias of {@link whereRaw} (Lucid parity). Subject to the same strict-mode gate. */
218
+ andWhereRaw(sql: string, bindings?: readonly unknown[]): this;
219
+ /**
220
+ * `OR <raw fragment>` (Lucid parity).
221
+ *
222
+ * @unsafe Raw SQL fragment — never concatenate user input into `sql`.
223
+ * Subject to the same strict-mode gate as {@link whereRaw}.
224
+ */
225
+ orWhereRaw(sql: string, bindings?: readonly unknown[]): this;
226
+ /**
227
+ * Framework-internal: register the deferred m2m EXISTS predicate for a lazy
228
+ * `related().query()`. The builder is re-invoked on every `#buildSpec()` with
229
+ * the pivot constraints known at that moment, so `.wherePivot()` added after
230
+ * the proxy returned still applies. Not exported from the barrel.
231
+ */
232
+ setPivotExistsBuilder(builder: (pivotWheres: ReadonlyArray<{
233
+ column: string;
234
+ operator: string;
235
+ value: unknown;
236
+ }>) => {
237
+ sql: string;
238
+ bindings: unknown[];
239
+ }): this;
128
240
  /**
129
241
  * **SAFE** alternative to `whereRaw` for the common case of a single
130
242
  * SQL expression built from a validated column + operator + bound value.
@@ -143,6 +255,73 @@ export declare class ModelQuery<T extends BaseEntity> {
143
255
  */
144
256
  whereExpr(column: string, operator: string, value: unknown): this;
145
257
  whereExpr(column: string, extraExpression: string, operator: string, value: unknown): this;
258
+ /**
259
+ * Compare two COLUMNS (AdonisJS/Knex `whereColumn`) — `WHERE "a" op "b"`.
260
+ * Both sides go through the identifier quoter (injection-safe) and the
261
+ * operator is allow-listed; nothing is bound (it's a column reference, not a
262
+ * value), which the standard `where`/`whereExpr` value-binding path can't do.
263
+ */
264
+ /** `WHERE EXISTS (subquery)` (Lucid parity). */
265
+ whereExists(subquery: ModelQuery<BaseEntity>): this;
266
+ /** Alias of {@link whereExists} (Lucid parity). */
267
+ andWhereExists(subquery: ModelQuery<BaseEntity>): this;
268
+ /** `OR EXISTS (subquery)` (Lucid parity). */
269
+ orWhereExists(subquery: ModelQuery<BaseEntity>): this;
270
+ /** `WHERE NOT EXISTS (subquery)` (Lucid parity). */
271
+ whereNotExists(subquery: ModelQuery<BaseEntity>): this;
272
+ /** Alias of {@link whereNotExists} (Lucid parity). */
273
+ andWhereNotExists(subquery: ModelQuery<BaseEntity>): this;
274
+ /** `OR NOT EXISTS (subquery)` (Lucid parity). */
275
+ orWhereNotExists(subquery: ModelQuery<BaseEntity>): this;
276
+ /**
277
+ * `WHERE <col at path> <op> ?` — compare a value inside a JSON column
278
+ * (Lucid/Knex `whereJsonPath`). `path` is a JSONPath (`$.a.b`, `$.items[0]`).
279
+ *
280
+ * query.whereJsonPath('data', '$.address.city', '=', 'Paris')
281
+ */
282
+ whereJsonPath(column: string, path: string, operator: string, value: unknown): this;
283
+ /** Alias of {@link whereJsonPath} (Lucid parity). */
284
+ andWhereJsonPath(column: string, path: string, operator: string, value: unknown): this;
285
+ /** `OR <col at path> <op> ?` (Lucid parity). */
286
+ orWhereJsonPath(column: string, path: string, operator: string, value: unknown): this;
287
+ /**
288
+ * `WHERE <col> @> ?` — the JSON column contains `value` (Lucid/Knex
289
+ * `whereJsonSupersetOf`). `value` is any JSON-serialisable value.
290
+ *
291
+ * Postgres and MySQL only — SQLite has no JSON containment operator and the
292
+ * compiler raises `E_UNSUPPORTED` there.
293
+ */
294
+ whereJsonSupersetOf(column: string, value: unknown): this;
295
+ /** Alias of {@link whereJsonSupersetOf} (Lucid parity). */
296
+ andWhereJsonSupersetOf(column: string, value: unknown): this;
297
+ /** `OR <col> @> ?` (Lucid parity). See {@link whereJsonSupersetOf}. */
298
+ orWhereJsonSupersetOf(column: string, value: unknown): this;
299
+ /** `WHERE NOT (<col> @> ?)` (Lucid parity). */
300
+ whereNotJsonSupersetOf(column: string, value: unknown): this;
301
+ /** `OR NOT (<col> @> ?)` (Lucid parity). */
302
+ orWhereNotJsonSupersetOf(column: string, value: unknown): this;
303
+ /**
304
+ * `WHERE <col> <@ ?` — the JSON column is contained in `value` (Lucid/Knex
305
+ * `whereJsonSubsetOf`). Postgres/MySQL only; see {@link whereJsonSupersetOf}.
306
+ */
307
+ whereJsonSubsetOf(column: string, value: unknown): this;
308
+ /** Alias of {@link whereJsonSubsetOf} (Lucid parity). */
309
+ andWhereJsonSubsetOf(column: string, value: unknown): this;
310
+ /** `OR <col> <@ ?` (Lucid parity). See {@link whereJsonSubsetOf}. */
311
+ orWhereJsonSubsetOf(column: string, value: unknown): this;
312
+ /** `WHERE NOT (<col> <@ ?)` (Lucid parity). */
313
+ whereNotJsonSubsetOf(column: string, value: unknown): this;
314
+ /** `OR NOT (<col> <@ ?)` (Lucid parity). */
315
+ orWhereNotJsonSubsetOf(column: string, value: unknown): this;
316
+ whereColumn(left: string, operator: string, right: string): this;
317
+ /** `OR`-combined {@link whereColumn}. */
318
+ orWhereColumn(left: string, operator: string, right: string): this;
319
+ /** `WHERE NOT (left <op> right)` — negation of {@link whereColumn} (Lucid parity). */
320
+ whereNotColumn(left: string, operator: string, right: string): this;
321
+ /** Alias of {@link whereNotColumn} (Lucid parity). */
322
+ andWhereNotColumn(left: string, operator: string, right: string): this;
323
+ /** `OR NOT (left <op> right)` (Lucid parity). */
324
+ orWhereNotColumn(left: string, operator: string, right: string): this;
146
325
  /**
147
326
  * `WHERE EXISTS (SELECT * FROM related WHERE <join> AND <cb>)` — filter parent rows
148
327
  * by the existence of related rows, optionally constrained by a callback.
@@ -155,6 +334,10 @@ export declare class ModelQuery<T extends BaseEntity> {
155
334
  /** `WHERE NOT EXISTS (...)` — negation of whereHas. */
156
335
  whereDoesntHave(relationName: string, callback?: (query: ModelQuery<BaseEntity>) => void): this;
157
336
  orWhereDoesntHave(relationName: string, callback?: (query: ModelQuery<BaseEntity>) => void): this;
337
+ /** Alias of {@link whereHas} (Lucid parity) — `whereHas` is already AND. */
338
+ andWhereHas(relationName: string, callback?: (query: ModelQuery<BaseEntity>) => void): this;
339
+ /** Alias of {@link whereDoesntHave} (Lucid parity). */
340
+ andWhereDoesntHave(relationName: string, callback?: (query: ModelQuery<BaseEntity>) => void): this;
158
341
  /**
159
342
  * Short form of `whereHas`. With an operator + count, emits a count threshold:
160
343
  * has('comments') → EXISTS (SELECT * FROM comments WHERE <join>)
@@ -164,6 +347,12 @@ export declare class ModelQuery<T extends BaseEntity> {
164
347
  orHas(relationName: string, countOp?: string, countThreshold?: number): this;
165
348
  /** `WHERE NOT EXISTS (...)` — short form. */
166
349
  doesntHave(relationName: string): this;
350
+ /** `OR NOT EXISTS (...)` — the OR form of {@link doesntHave} (Lucid parity). */
351
+ orDoesntHave(relationName: string): this;
352
+ /** Alias of {@link has} (Lucid parity) — `has` is already AND. */
353
+ andHas(relationName: string, countOp?: string, countThreshold?: number): this;
354
+ /** Alias of {@link doesntHave} (Lucid parity). */
355
+ andDoesntHave(relationName: string): this;
167
356
  /**
168
357
  * Set this query's projection alias — only meaningful when this ModelQuery
169
358
  * is used as the sub-builder callback argument of `withCount` / `withAggregate`.
@@ -204,12 +393,181 @@ export declare class ModelQuery<T extends BaseEntity> {
204
393
  */
205
394
  withAggregate(relationName: string, callback: (query: ModelQuery<BaseEntity>) => void): this;
206
395
  orderBy(column: string, direction?: "asc" | "desc"): this;
396
+ /**
397
+ * `ORDER BY <raw fragment>` (Lucid/Knex `orderByRaw`) — for orderings with
398
+ * no typed form: `NULLS LAST`, `RANDOM()`, a CASE expression, a computed
399
+ * alias.
400
+ *
401
+ * query.orderBy('rank').orderByRaw('created_at DESC NULLS LAST')
402
+ *
403
+ * The fragment keeps its position among the plain `orderBy` terms.
404
+ *
405
+ * **Strict mode**: like {@link whereRaw}, this throws when
406
+ * `setAtlasStrictMode(true)` (or `ATLAS_STRICT`) is on.
407
+ *
408
+ * @unsafe Raw SQL fragment — never concatenate user input into `sql`.
409
+ */
410
+ orderByRaw(sql: string): this;
411
+ /**
412
+ * `GROUP BY col1, col2, …` (AdonisJS/Lucid `groupBy`). Columns are resolved
413
+ * through the entity's column map (camelCase → snake_case) like `orderBy`.
414
+ * For a grouping expression with no typed form, see {@link groupByRaw}.
415
+ */
416
+ groupBy(...columns: string[]): this;
417
+ /**
418
+ * `GROUP BY <raw fragment>` (Lucid/Knex `groupByRaw`) — for groupings with
419
+ * no typed form, e.g. `DATE_TRUNC('day', created_at)`.
420
+ *
421
+ * The fragment keeps its position among the plain `groupBy` terms.
422
+ *
423
+ * **Strict mode**: like {@link whereRaw}, this throws when
424
+ * `setAtlasStrictMode(true)` (or `ATLAS_STRICT`) is on.
425
+ *
426
+ * @unsafe Raw SQL fragment — never concatenate user input into `sql`.
427
+ */
428
+ groupByRaw(sql: string): this;
429
+ /**
430
+ * `HAVING <col> <op> ?` — applied after `groupBy` (AdonisJS/Lucid `having`).
431
+ * A bare model property is resolved through the entity column map (honouring
432
+ * `@Column({ columnName })`) via {@link #resolveHavingCol}; an aggregate
433
+ * expression (`COUNT(*)`, `SUM(col)`, …) or a result alias is left verbatim so
434
+ * `having` can still reference `withCount`/`withAggregate` aliases.
435
+ */
436
+ having(column: string, operator: string, value: unknown): this;
437
+ /** `OR HAVING <col> <op> ?` — OR-combined {@link having}. */
438
+ orHaving(column: string, operator: string, value: unknown): this;
439
+ /**
440
+ * **⚠ UNSAFE** — append a raw SQL `HAVING` fragment with `?` bindings
441
+ * (AdonisJS/Lucid `havingRaw`). The Rust compiler re-indexes the placeholders;
442
+ * everything else in `sql` is trusted verbatim. All values must go through
443
+ * `bindings`.
444
+ *
445
+ * @unsafe Raw SQL fragment — never concatenate user input into `sql`.
446
+ */
447
+ havingRaw(sql: string, bindings?: readonly unknown[]): this;
448
+ /**
449
+ * `UNION (<query>)` (AdonisJS/Lucid `union`). The other query is compiled and
450
+ * appended as a parenthesised UNION branch; its bindings are re-indexed into
451
+ * the outer parameter list.
452
+ */
453
+ union(query: ModelQuery<BaseEntity>): this;
454
+ /** `UNION ALL (<query>)` — duplicate-preserving {@link union}. */
455
+ unionAll(query: ModelQuery<BaseEntity>): this;
456
+ /** `INTERSECT (<query>)` — rows present in both (Lucid/Knex `intersect`). */
457
+ intersect(query: ModelQuery<BaseEntity>): this;
458
+ /**
459
+ * `INTERSECT ALL (<query>)` — duplicate-preserving {@link intersect}.
460
+ *
461
+ * Postgres and MySQL only: SQLite's compound operators are UNION, UNION ALL,
462
+ * INTERSECT and EXCEPT — there is no INTERSECT ALL — so the compiler raises
463
+ * `E_UNSUPPORTED` there rather than emitting a syntax error.
464
+ */
465
+ intersectAll(query: ModelQuery<BaseEntity>): this;
466
+ /** `EXCEPT (<query>)` — rows in this query but not the other (Lucid/Knex `except`). */
467
+ except(query: ModelQuery<BaseEntity>): this;
468
+ /** `EXCEPT ALL (<query>)` — duplicate-preserving {@link except}. Not on SQLite; see {@link intersectAll}. */
469
+ exceptAll(query: ModelQuery<BaseEntity>): this;
470
+ /**
471
+ * `WITH <name> AS (<query>)` — register a Common Table Expression
472
+ * (AdonisJS/Lucid `with`). The CTE name is validated as an identifier; the
473
+ * sub-query is compiled and its bindings are re-indexed into the outer list.
474
+ */
475
+ with(name: string, query: ModelQuery<BaseEntity>): this;
476
+ /**
477
+ * `WITH RECURSIVE <name> AS (<query>)` — a self-referencing CTE
478
+ * (Lucid/Knex `withRecursive`), for trees and graph walks.
479
+ *
480
+ * RECURSIVE is a property of the WITH clause rather than of one CTE, so a
481
+ * single recursive entry makes the whole clause recursive — which is what
482
+ * all three dialects require. Mixing `with()` and `withRecursive()` is fine.
483
+ *
484
+ * The recursive term itself is a `UNION`/`UNION ALL` inside `query`, e.g.
485
+ * an anchor `SELECT` unioned with a select that references `<name>`.
486
+ */
487
+ withRecursive(name: string, query: ModelQuery<BaseEntity>): this;
488
+ /**
489
+ * `WITH <name> AS MATERIALIZED (<query>)` — force the CTE to be evaluated
490
+ * once and stashed (Lucid/Knex `withMaterialized`).
491
+ *
492
+ * Postgres 12+ and SQLite 3.35+ only; MySQL has no such hint and the
493
+ * compiler raises `E_UNSUPPORTED` rather than emitting a syntax error.
494
+ */
495
+ withMaterialized(name: string, query: ModelQuery<BaseEntity>): this;
496
+ /** `WITH <name> AS NOT MATERIALIZED (<query>)` — let it be inlined (Lucid/Knex `withNotMaterialized`). See {@link withMaterialized}. */
497
+ withNotMaterialized(name: string, query: ModelQuery<BaseEntity>): this;
498
+ /**
499
+ * `@ManyToMany` only — filter loaded relations by a PIVOT-table column
500
+ * (AdonisJS/Lucid `wherePivot`). Recorded separately from the related-table
501
+ * WHEREs and applied to the pivot lookup query by the m2m preload resolver;
502
+ * inert on non-m2m relations.
503
+ *
504
+ * userRepo.query().preload('roles', q => q.wherePivot('active', true))
505
+ */
506
+ wherePivot(column: string, value: unknown): this;
507
+ wherePivot(column: string, operator: string, value: unknown): this;
508
+ /** Alias of {@link wherePivot} (Lucid parity) — pivot filters already AND together. */
509
+ andWherePivot(column: string, value: unknown): this;
510
+ andWherePivot(column: string, operator: string, value: unknown): this;
511
+ /**
512
+ * `@ManyToMany` only — OR form of {@link wherePivot} (Lucid parity).
513
+ *
514
+ * The pivot filters are compiled as a parenthesised group, so an OR joins
515
+ * the other pivot filters and cannot escape the `pivot_fk IN (parents)`
516
+ * scoping that makes the preload correct.
517
+ */
518
+ orWherePivot(column: string, value: unknown): this;
519
+ orWherePivot(column: string, operator: string, value: unknown): this;
520
+ /** `@ManyToMany` only — `WHERE <pivotCol> IN (...)` on the pivot table (AdonisJS Lucid `whereInPivot`). */
521
+ whereInPivot(column: string, values: readonly unknown[]): this;
522
+ /** Alias of {@link whereInPivot} (Lucid parity). */
523
+ andWhereInPivot(column: string, values: readonly unknown[]): this;
524
+ /** `@ManyToMany` only — OR form of {@link whereInPivot} (Lucid parity). */
525
+ orWhereInPivot(column: string, values: readonly unknown[]): this;
526
+ /** Alias of {@link whereInPivot} kept for the earlier atlas name. */
527
+ wherePivotIn(column: string, values: readonly unknown[]): this;
528
+ /** `@ManyToMany` only — `WHERE <pivotCol> != <value>` on the pivot table (AdonisJS Lucid `whereNotPivot`). */
529
+ whereNotPivot(column: string, value: unknown): this;
530
+ /** Alias of {@link whereNotPivot} (Lucid parity). */
531
+ andWhereNotPivot(column: string, value: unknown): this;
532
+ /** `@ManyToMany` only — OR form of {@link whereNotPivot} (Lucid parity). */
533
+ orWhereNotPivot(column: string, value: unknown): this;
534
+ /** `@ManyToMany` only — `WHERE <pivotCol> NOT IN (...)` on the pivot table (AdonisJS Lucid `whereNotInPivot`). */
535
+ whereNotInPivot(column: string, values: readonly unknown[]): this;
536
+ /** Alias of {@link whereNotInPivot} (Lucid parity). */
537
+ andWhereNotInPivot(column: string, values: readonly unknown[]): this;
538
+ /** `@ManyToMany` only — OR form of {@link whereNotInPivot} (Lucid parity). */
539
+ orWhereNotInPivot(column: string, values: readonly unknown[]): this;
540
+ /** `@ManyToMany` only — `WHERE <pivotCol> IS NULL` on the pivot table (Lucid `whereNullPivot`). */
541
+ whereNullPivot(column: string): this;
542
+ /** Alias of {@link whereNullPivot} (Lucid parity). */
543
+ andWhereNullPivot(column: string): this;
544
+ /** `@ManyToMany` only — OR form of {@link whereNullPivot} (Lucid parity). */
545
+ orWhereNullPivot(column: string): this;
546
+ /** `@ManyToMany` only — `WHERE <pivotCol> IS NOT NULL` on the pivot table (Lucid `whereNotNullPivot`). */
547
+ whereNotNullPivot(column: string): this;
548
+ /** Alias of {@link whereNotNullPivot} (Lucid parity). */
549
+ andWhereNotNullPivot(column: string): this;
550
+ /** `@ManyToMany` only — OR form of {@link whereNotNullPivot} (Lucid parity). */
551
+ orWhereNotNullPivot(column: string): this;
552
+ /** Read-only accessor for pivot constraints — consumed by the m2m preload resolver. */
553
+ get pivotConstraints(): ReadonlyArray<{
554
+ column: string;
555
+ operator: string;
556
+ value: unknown;
557
+ type: "and" | "or";
558
+ }>;
207
559
  limit(n: number): this;
208
560
  offset(n: number): this;
209
561
  /** Execute and return the first matching entity or null. Fires beforeFind/afterFind. */
210
562
  first(): Promise<T | null>;
211
563
  /** Execute and return the first matching entity or throw. */
212
564
  firstOrFail(): Promise<T>;
565
+ /**
566
+ * Return the single matching row, or throw if there are zero OR more than one
567
+ * (AdonisJS/Laravel `sole`). Use when exactly one row is a correctness
568
+ * invariant — a second match signals a bug the silent `first()` would hide.
569
+ */
570
+ sole(): Promise<T>;
213
571
  /**
214
572
  * Thenable — `await someQuery` is equivalent to `await someQuery.exec()`.
215
573
  * A chain like `await repo.query().where('active', true).orderBy('id')`
@@ -229,6 +587,19 @@ export declare class ModelQuery<T extends BaseEntity> {
229
587
  };
230
588
  /** Execute and return all matching entities, with preloaded relations. Fires beforeFetch/afterFetch. */
231
589
  exec(): Promise<T[]>;
590
+ /**
591
+ * Execute and return PLAIN row objects (raw snake_case DB columns), skipping
592
+ * model hydration, `@column({ consume })`, dirty-tracking and preloads —
593
+ * AdonisJS Lucid `pojo()`. Fast read path for reports/exports where model
594
+ * instances aren't needed.
595
+ */
596
+ pojo<R = Record<string, unknown>>(): Promise<R[]>;
597
+ /**
598
+ * Thread arbitrary context onto every instance this query hydrates, exposed as
599
+ * `entity.$sideloaded` (AdonisJS Lucid `sideload`) — e.g. the current tenant or
600
+ * user, so hooks/computed can read it. Merges across calls. Chainable.
601
+ */
602
+ sideload(values: Record<string, unknown>): this;
232
603
  /**
233
604
  * Resolve a relation to its table + correlated join predicate and return an
234
605
  * `ExistsWhere` clause. Used by whereHas / has / doesntHave / whereDoesntHave.
@@ -265,7 +636,7 @@ export declare class ModelQuery<T extends BaseEntity> {
265
636
  *
266
637
  * @unsafe Raw SQL fragment — never concatenate user input into `fragment`.
267
638
  */
268
- joinRaw(fragment: string): this;
639
+ joinRaw(fragment: string, bindings?: readonly unknown[]): this;
269
640
  /**
270
641
  * **SAFE** helper that builds an `INNER JOIN <table> ON <left> = <right>`
271
642
  * with dialect-correct identifier quoting on both sides. Thin sugar over
@@ -279,8 +650,26 @@ export declare class ModelQuery<T extends BaseEntity> {
279
650
  */
280
651
  joinOn(table: string, left: string, right: string): this;
281
652
  distinct(): this;
653
+ /**
654
+ * `SELECT DISTINCT ON (cols) …` — keep the first row per distinct set of
655
+ * `columns` (Lucid/Knex `distinctOn`). Takes precedence over
656
+ * {@link distinct}.
657
+ *
658
+ * Postgres-only, and the compiler refuses it elsewhere: MySQL and SQLite
659
+ * would parse `DISTINCT (a, b)` as a plain DISTINCT over a row value and
660
+ * return a *different* result set rather than fail — a silent wrong answer
661
+ * is worse than an error.
662
+ *
663
+ * Postgres also requires the leading `ORDER BY` terms to match `columns`;
664
+ * that is left to the database to enforce.
665
+ */
666
+ distinctOn(...columns: string[]): this;
282
667
  /** `SELECT COUNT(DISTINCT col)`. */
283
668
  countDistinct(column: string): Promise<number>;
669
+ /** `SUM(DISTINCT col)` (Lucid parity). */
670
+ sumDistinct(column: string): Promise<number | null>;
671
+ /** `AVG(DISTINCT col)` (Lucid parity). */
672
+ avgDistinct(column: string): Promise<number | null>;
284
673
  /** `SELECT 1 FROM ... LIMIT 1` — returns boolean. */
285
674
  exists(): Promise<boolean>;
286
675
  doesntExist(): Promise<boolean>;
@@ -325,14 +714,43 @@ export declare class ModelQuery<T extends BaseEntity> {
325
714
  clone(): ModelQuery<T>;
326
715
  /** Execute a fluent UPDATE. Returns affected rows (or rows when `returning` is set). */
327
716
  update(patch: Record<string, unknown>, returning?: string[]): Promise<number | Record<string, unknown>[]>;
328
- /** Execute a fluent DELETE. Returns affected rows (or rows when `returning` is set). */
717
+ /**
718
+ * Execute a fluent DELETE. For a `@SoftDeletes` model this SOFT-deletes the
719
+ * scoped rows (stamps `deleted_at`) — consistent with the entity-level
720
+ * `delete()`; use {@link forceDelete} for a hard `DELETE`. For a non-soft-delete
721
+ * model it issues a hard `DELETE`. Returns affected rows (or rows when
722
+ * `returning` is set).
723
+ */
329
724
  delete(returning?: string[]): Promise<number | Record<string, unknown>[]>;
725
+ /** Hard `DELETE` of the scoped rows, bypassing `@SoftDeletes` (AdonisJS/Lucid `forceDelete`). */
726
+ forceDelete(returning?: string[]): Promise<number | Record<string, unknown>[]>;
727
+ /**
728
+ * Bulk restore: clear `deleted_at` on the trashed rows matching the user's
729
+ * predicates (the soft-delete counterpart of {@link delete}). No-op count `0`
730
+ * on a non-soft-delete model. Independent of the current soft-scope — it always
731
+ * targets trashed rows (`deleted_at IS NOT NULL`).
732
+ */
733
+ restore(returning?: string[]): Promise<number | Record<string, unknown>[]>;
330
734
  increment(column: string, amount: number): Promise<number>;
331
735
  increment(patch: Record<string, number>): Promise<number>;
332
736
  decrement(column: string, amount: number): Promise<number>;
333
737
  decrement(patch: Record<string, number>): Promise<number>;
334
738
  forUpdate(): this;
335
739
  forShare(): this;
740
+ /** Postgres `FOR NO KEY UPDATE` — a weaker lock that doesn't block FK checks (AdonisJS/Knex). */
741
+ forNoKeyUpdate(): this;
742
+ /** Postgres `FOR KEY SHARE` — the weakest share lock (AdonisJS/Knex). */
743
+ forKeyShare(): this;
744
+ /**
745
+ * Append `SKIP LOCKED` to the lock clause — locked rows are skipped instead of
746
+ * waited on (AdonisJS/Knex). Requires a base lock (`forUpdate`/`forShare`/…).
747
+ */
748
+ skipLocked(): this;
749
+ /**
750
+ * Append `NOWAIT` to the lock clause — error immediately instead of waiting on
751
+ * a locked row (AdonisJS/Knex). Requires a base lock (`forUpdate`/`forShare`/…).
752
+ */
753
+ noWait(): this;
336
754
  }
337
755
  export {};
338
756
  //# sourceMappingURL=ModelQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelQuery.d.ts","sourceRoot":"","sources":["../src/ModelQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelQuery.d.ts","sourceRoot":"","sources":["../src/ModelQuery.ts"],"names":[],"mappings":"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"}